teleren/devto huggingface dataset:
Why OpenGL is better than a game engine?
Tags: unity3d, gamedev
Published: 2021-07-27 13:20:23

OpenGL, the thing that it is. Its used to make games down to the basic levels of programming. It uses older languages mostly c++ for its code. 

#Why Learn OpenGL instead of a game engine?

1. It is basic : Not easy but Basic, that means it gives you an understanding of the deep processes that go into rendering your favourite video games.

2. Its well known & cross platform : Sure you can go use your win32 Api or DirectX, but OpenGL is the cross platform well known easier alternative.

3. A game engine spoils you : {% youtube nBaCRp9UzDw %}Why I am glad I didn't use a game engine by DaFluffyPotato goes well over my point, A game engine does all those rendering processes for you. You don't get to learn a lot.

4. More Code : Game Engines like Unity are pure GUI stuff. 
see this :-

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wyrpiik3g1z31v38c74i.png) 

Now this is OpenGL c++ :-

```
#include <glew.h>
#include <GLFW/glfw3.h>
#include <iostream>


int main(void)
{
    GLFWwindow* window;

    /* Initialize the library */
    if (!glfwInit())
        return -1;
    /* Create a windowed mode window and its OpenGL context */
    window = glfwCreateWindow(1920, 1080, "OpenGL", NULL, NULL);
    if (!window)
    {
        glfwTerminate();
        return -1;
    }

    /* Make the window's context current */
    glfwMakeContextCurrent(window);

    if (glewInit() != GLEW_OK)
        std::cout << "Error!" << std::endl;
    std::cout << glGetString(GL_VERSION) << std::endl;

    unsigned int buffer;
    float positions[6] = {
        -0.5f, -0.5f,
         0.0f, 0.5f,
         0.5f, -0.5f
    };

    glGenBuffers(1,&buffer);
    glBindBuffer(GL_ARRAY_BUFFER, buffer);
    glBufferData(GL_ARRAY_BUFFER, 6 * sizeof(float)  a=);
    /* Loop until the user closes the window */
    while (!glfwWindowShouldClose(window))
    {
        /* Render here */
        glClear(GL_COLOR_BUFFER_BIT);


        /* Swap front and back buffers */
        glfwSwapBuffers(window);

        /* Poll for and process events */
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}
```
I think you get the point now .

:)

PS.Comment pls(If I got anything wrong or just casually)
Day 6 of Training: React Js
Tags: javascript, react
Published: 2021-07-27 13:12:04

Yesterday was my day 6 training at Ryaz. I learnt about the basics of React Js by making a Emoji Interpreter app.

![Capture](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5dgsp8dpeow8spty8h1y.PNG)
 

The live project is up now at [sandbox](https://8u69b.csb.app/). Make sure to visit it. 

It was really fun making this app and I learnt a lot about React during this project. Although the main app work is complete, I will be improving its styling and update the emoji database later on.

Code for the project is present at my [Github](https://github.com/SuryanshChopra/Emoji-Interpreter)

Do you know:
[emojipedia](https://emojipedia.org/) - It is website known as "Encyclopedia of emoji". It shows emojis with their meaning, I find it quite funny. All emoji fans should at least visit this website once. 

AND THAT'S ALL! See you tomorrow
Day 154
Tags: 100daysofcode, programming
Published: 2021-07-27 12:46:44

Day 154/200 of #200DaysOfCode #100DaysOfCode 

- Solved four problems on Codewars.

1 - Nuclear Missile Manager (6 kyu)
2 -  Running Average (6 kyu)
3 -  Sometimes (6 kyu)
4 -  Lazily executing a function (7 kyu)
O que é DevOps?
Tags: womakerscode
Published: 2021-07-27 12:45:16

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/elinssndmuzcyc2sct4t.png)

DevOps é um termo que tem se tornou muito popular nos últimos anos e refere-se a contração de duas palavras que identificam duas equipes:

* Desenvolvimento: time responsável por identificar requisitos, analisá-los e codificá-los.
* Operações: time responsável pela implantação, monitoramento e solução de incidentes em produção.

Uma das primeiras referências a respeito de devOps surgiram por volta de 2009 em uma conferêcia da O'Reilly, a partir de então muitas outras referências foram surgindo até chegar nos dias de hoje, porém atualmente devOps é visto como um papel dentro de TI em muitas empresas, no entanto essa visão está deturpada.

DevOps é uma cultura fortemente focada em colaboração entre equipes de desenvolvimento e operações. O conceito de devOps visa unir essas áreas, pois juntos os times conseguem entregar valor de forma mais rápida e com maior qualidade ao cliente. Essa cultura é fundamentada em quatro princípios.

* Colaboração: no devOps não temos mais a segregação de times, divididos em silos, agora todos trabalham junto com o propósito de entregar algo cada vez melhor para os usuários.

* Afinidade: construir relação entre os times onde ao invés de segregar por papel, unimos os diferentes papeis em para uma atuação conjunta.

* Ferramentas: usar a ferramentas para impulsionar o devOps, a partir de ferramentas podemos proporcionar uma entrega mais valiosa ao usuário em um curto espaço cada vez mais curto de tempo.

* Escala: sempre buscar crescer de acordo com as necessidades  da organização, projeto ou empresa. Ao usar algo novo é comum começar pequeno e com o tempo ir expandindo conforme necessário.
Tornado : ASYNC Framework for Python
Tags: python, tutorial, javascript, devops
Published: 2021-07-27 12:30:32

Tornado is a Python open source framework, but also an asynchronous networking library, and it was originally developed for a company called FriendFeed, which was acquired by Facebook recently in 2009. To understand Tornado we need to know what is it good for.

Make sure to check out my last video on tornado Framework 

{% youtube -gJ21qzpieA  %}


Tornado is ideal for building apps asking for high performance and several thousand concurrent users; it can handle 10K connections at once, in addition to that it's non-blocking network IO. Asynchronous programming was introduced to python since python 3.5 when the asyncio library was introduced.

Before anything, you need to know that Asynchronous programming, more specifically async syntax makes you code faster to execute.

Async is a way of Concurrent ProgrammingAsync is one way of doing concurrent programming, which means doing many things at once or achieving multiple tasks at once.

How does Python achieve multiple tasks at once ?

1 OS makes multi-sharing and multi-tasking happen: One way is to run multiple terminal instances and run your server, and all of them will work concurrently in the same time; and your operating system takes care of sharing your CPU resources among those terminal instances.

2 Another way of achieving multiple tasks at once is by using threads. A thread is a line of execution for several instructions which means that they all share access to common resources, and here the operating system intervens to share your CPU with these threads

3 The last way is asynchronous programming which what Tornado does, even though the opperating system will not have any role here, yet we'll be able to achieve multiple things at once with asynchronous programming

Drop your comment or contact me on: info@bekbrace.com
Github page: https://github.com/BekBrace​

Thank you for reading and watching 
Until next time - Peace out, 
Bek
Weekly Challenge 123
Tags: perl, theweeklychallenge
Published: 2021-07-27 12:23:24

Two nice and quick challenge this week. [Tasks](https://theweeklychallenge.org/blog/perl-weekly-challenge-123/), [My solutions](https://github.com/manwar/perlweeklychallenge-club/tree/master/challenge-123/sgreen)

## TASK #1 › Ugly Numbers

### Task

You are given an integer `$n` >= 1.

Write a script to find the `$n`<sup>th</sup> element of Ugly Numbers.

Ugly numbers are those number whose prime factors are 2, 3 or 5. For example, the first 10 Ugly Numbers are 1, 2, 3, 4, 5, 6, 8, 9, 10, 12.

### My solution

This was relatively straight forward, although I'm not sure if my method is the most efficient (took 16 seconds to find the 1,000th ugly number).

I determine if a number is ugly by dividing it by 2, 3, 5 as many times as it leaves no remainder. If the resulting number is 1, then it is ugly.

Then it was just a case of wrapping this in a while loop decreasing `$n` every time a number is ugly.

### Examples

```
$ ./ch-1.pl 7
8

$ ./ch-1.pl 10
12
```

## TASK #2 › Square Points

### Task

You are given coordinates of four points i.e. (x1, y1), (x2, y2), (x3, y3) and (x4, y4).

Write a script to find out if the given four points form a square.

### My solution

Some fundamental maths is involved with this task, namely:

* The [distance between two points](https://www.purplemath.com/modules/distform.htm) can found by calculating the square root of the sum of the squared difference in each of the x and y values.
* For an item to be square, each side must be of equal length.
* For an item to be square, the distance between points 1 and 3 must be the same as the distance between 2 and 4.

For this task I have a subroutine `_distance_between` that calculates the distance between two points given (x1, y1, x2 and y2). I also have a subroutine `_is_square` that will return 0 when one of the above conditions is false, or 1 if it appears to be a square.

One thing to note that the points provided must be sequential. You can't go from top left to bottom right. Since the task specifically mentions the order of the points, this shouldn't be an issue.

### Examples

```
$ ./ch-2.pl 10 20 20 20 20 10 10 10
1

$ ./ch-2.pl 12 24 16 10 20 12 18 16
0
```
Luos new feature: manage Pipe type and command.
Tags: embedded, opensource, release, luos
Published: 2021-07-27 12:22:39

### 🆕 New feature in the 1.3.0: Manage Pipe type and command

The Gate in a [Luos](https://www.luos.io) environment is something tremendously important and used to check or control a Luos **network**, and (teaser...) it will be even more important for the next revision! 😉

Basically, its task is to share the entire machine capabilities to the outer world by translating Luos things into a standard format easy to use with standard software languages such as **Python**, **Javascript**, **Ruby**, **C++**, etc.

On the previous version of the Gate example, you needed to modify the code to adapt it to your project's specificities, and it was an arduous task. Then we decided to make it simple and portable for you.

We split it into 2 parts, the main Gate App and a Driver: 

Now the Gate is an App. Meaning it doesn't have any code related to hardware. It's a basic ANSI C that you can compile directly for any **MCU** or **CPU** without any additional configuration! This way, you can easily add it to your setup.

We also added a build option allowing you to select the output format managed by the Gate or create your own easily. For now, we have 2 **JSON** options, the one we use on the previous version (cJSON), and a new one (TinyJSON) that doesn't make any dynamic allocation.

The **Pipe** is the **driver** part: This Driver allows sending or receiving data from the outer world and converting those data to the Luos side. A Pipe can be **USB**, **serial**, **Wifi**, **Bluetooth**, an **SD card**, or anything allowing to send and receive information to/from another machine.

This new type of driver can be used for different purposes, and the Gate App needs it to exchange information and share its output format.

As a Gate user, you will only have to adapt this Pipe driver to your needs. The Gate will deal with it.

More details about this can be found in the [Gate](https://docs.luos.io/pages/embedded/tools/gate.html) section of our documentation.
LetsGrowMore Web Development Internship Experience
Tags: html, css, react, javascript
Published: 2021-07-27 12:15:18

Hello everyone, I have successfully completed the web Development Internship at LetsGrowMore by completing the Task-1 and Task-2 
assigned by them.

**Task-1**:Single-Page Website
**Technologies used**: HTML, CSS, javascript
**Code Editor**: Visual Studio Code
**Github Link**: [https://github.com/suji2002/LGM-TASK-1]
**Website Link**: [file:///C:/Users/sujic/Desktop/LGM-VIP-Task-1-main/Task-1/index.html]
 
**Task-1 Experience:**
             * I learnt HTML,CSS and javascript for designing this website. I faced some issues in coding for the responsiveness of the website. I have learnt so many new things about javascript while doing this website. On the whole it was a great experience and I have learnt and cleared the issues about how to code to set our current responsive locations on maps for contact and for the responsiveness of the website. This website has no database linked in for its responsive data storage, It is a simple website that will take you to know about the information of the theme of the website when you click on the responsive button that I have designed.

**Task-2**: Web Application Using Create-React-App
**Technologies Used**: HTML, React js, Javascript, CSS
**Code Editor**: CodeSandBox
**Github Link**: [https://github.com/suji2002/LGM-TASK-1]
**Website Link**: [https://wkxye.csb.app/]

**Task-2 Experience:**
            * I learnt React JS to complete this Web Application. In this I have used API link to fetch the data to display. I have used HTML, CSS to design the layout and the responsive part is made of React js. This is a simple Web Application to display the users of the brand while clicking in the get users button. On the Whole I learnt React js completely while doing this. This gave me a great experience attempting a new thing on Web Development.

**Conclusion:**
          * I thank Mr. Aman Kesarwani and LetsGrowMore for giving me this opportunity to work on the projects based on Web Development. Through this Internship I have learnt and gained a lot of practical knowledge in  the field of Web Development.
          * To know more about LetsGrowMore Internships visit the site [https://letsgrowmore.in/] and [https://letsgrowmore.in/vip/].
Automated Software Testing Services: What and Why?
Published: 2021-07-27 12:07:45

With the high demand of technology, in today’s digital world business needs to lunch good quality software application to deliver world-class user experience. Most of the big companies embracing Test Automation, DevOps and agile practices to achieve user expected quality along with highest business ROI.

As a member of leading <a href="https://www.testrigtechnologies.com/software-testing-company-in-new-jersey/">Software Testing Consulting Companies in New Jersey, USA<a/> Today I am going to explore something regarding the automation testing that include;

• What is Automation Testing?
• Why Test Automation Services in Software Testing is important?


<b>What is Automation Testing?</b>

Software automation testing is the QA testing technique that execute with the help of different test automation tools. On the contrary, QA manual testing executed without any help of tool, testers execute test steps in front of a computer. 
In this process of QA Automation testing, Automation tools are important part of testing to find out the bugs and errors from the application. In the world of technology, Automation testing help in increasing test coverage, and execution speed during software testing. 

The question is Why Automated software testing is important, let’s see:


<b>Why Test Automation Services is Important?</b>
 
As mentioned above, the <a href="https://www.testrigtechnologies.com/service/automation-testing/">test automation services in USA</a> is perform with the help of software testing tools. These tools overcome the challenges of manual testing and ensure the overall test coverage effectively.
1-Automation Testing improve test Coverage
2-Test automation improve speed of QA testing
3-Remove human errors
4-Save money and time
5-Improve accuracy and reliability
6-It is difficult to test for multilingual sites manually
7-Automation solutions help with high security 
8-Test Automation greatly helps reduce the time-to-market
9-Automated testing assures higher efficiency with faster feedback
10-Improve result quality 

<b>To sum up </b>

The most important aspect of software automation testing is quality and business reputation. Good techniques of Test Automation improves brand image and generates higher revenue.
Error handling best practices for Software AG webMethods.io Integration
Tags: integration, errors, bestpractices, handlingerror
Published: 2021-09-21 14:27:37

---
title: Error handling best practices for Software AG webMethods.io Integration
published: true
date: 2021-07-27 12:06:43 UTC
tags: #integration, #error, #bestpractices, #handlingerror
canonical_url: https://tech.forums.softwareag.com/t/error-handling-best-practices-for-webmethods-io-integration/243183
---

## Introduction

This article explains best practices to deal with error handling in [webMethods.io](http://webMethods.io) Integration.

## Audience

It is assumed that readers of this article know [webMethods.io](http://webMethods.io) Integration workflow details such as actions and error handlers.

## Best Practises:

- It is recommended to have a single common error logging framework for capturing all the errors occurring in the Workflow. This can be achieved by implementing an Error Framework Workflow for error handling and invoking it from the main Workflow.

- Global Error Handler is recommended for handling any error in the Workflow unless the user wants to log the error at action level, which is not recommended.

- If the user wants to restart or resume the Error Handling Workflow user should add the step called “Set Workflow Status Failed” otherwise execution status will show as a success.

- For batch executions (i.e., scheduled) alert emails or other notifications must be used to notify the users. To mark batch executions as failed ”Set Workflow Status Failed” step can be used.

- In case of real-time execution, it is recommended to pass on the status codes (i.e., native execution results) to common error handling Workflow to monitor the error code, and for further actions.

[Read full topic](https://tech.forums.softwareag.com/t/error-handling-best-practices-for-webmethods-io-integration/243183)
Autoscaling Calico Route Reflector topology in Kubernetes
Tags: kubernetes, calico, network, autoscaling
Published: 2021-07-27 12:05:16

Kubernetes is a great tool to organize your workloads on a low or high scale. It has many nice features in different areas, but it is totally out-sourcing the complexity of the network. Network is one of the key layers of a success story and happily there are many available solutions on the market. Calico is one of them, and it is I think the most used network provider, including big players in public cloud space and has a great community who works day by day to make Calico better.

For more details please follow my blogpost: https://mhmxs.blogspot.com/2020/12/autoscaling-calico-route-reflector.html
A Fun Programming Joke To Start Your Day
Tags: jokes, dailydeveloperjokes
Published: 2021-07-27 12:00:17

---
title: "A Fun Programming Joke To Start Your Day"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
published: true
tags: #jokes, #dailydeveloperjokes
---

Hi there! Here's today's Daily Developer Joke. We hope you enjoy it; it's a good one.

![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e12590f4ba3c.png)

---

For more jokes, and to submit your own joke to get featured, check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/). We're also open sourced, so feel free to view [our GitHub Profile](https://github.com/dailydeveloperjokes).

### Leave this post a ❤️ if you liked today's joke, and stay tuned for tomorrow's joke too!

_This joke comes from [Dad-Jokes GitHub Repo by Wes Bos](https://github.com/wesbos/dad-jokes) (thank you!), whose owner has given me permission to use this joke with credit._

<!--
Joke text:
___Q:___ What do you call a computer that sings?

___A:___ A-dell.
 -->
How to forward a port in K8s
Published: 2021-07-27 11:57:52

*This is a simple thing that I've discover recently, it's not a revolution or something really hidden, but I think it's cool to share it!*

So to forward a service port in Kubernetes, you just have to do
> kubectl port-forward **element to expose** [**local port**:]**pod/service/deploy... port**

*examples*
```
# Expose port 80 of the service on the local port 80
kubectl port-forward svc/example-service 80

# Expose port 80 of the pod on the local port 36000
kubectl port-forward pod/pod-test 36000:80

# Expose port 27017 of the deployment on a random free local port
kubectl port-forward deployment/mongo :27017
```

---

# Links
- Kubernetes tutorial about it: https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/
- Kubectl documentation about port-forward : https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#port-forward

---

I hope it will help you!
What's new in Polyphony - July 2021 edition
Tags: ruby, concurrency, linux, iouring
Published: 2021-07-27 11:33:29

---
title: What's new in Polyphony - July 2021 edition
published: true
description: The latest updates to Polyphony
tags: ruby, concurrency, linux, iouring
//cover_image: https://direct_url_to_image.jpg
---

[Polyphony](https://github.com/digital-fabric/polyphony) is a Ruby gem that lets you write highly-concurrent apps in Ruby. Here are the [latest updates](https://github.com/digital-fabric/polyphony/discussions/62).
Say no to YouTube ads even without a premium account
Tags: algorithms, tutorial, beginners, learning
Published: 2021-07-27 11:05:34

### Have you been tired of those endless youtube ads in between those videos? Say no to the ads even without a youtube premium account.
![No](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hadgpxbs4xuedayct8t5.jpeg)

All you have to do is simply install this great Google Chrome extension called Adblock for Youtube™. Here's the [link](https://chrome.google.com/webstore/detail/adblock-for-youtube/cmedhionkhpnakcndndgjdbohmhepckk?utm_source=chrome-ntp-icon)

And this will put an end to all the ads for you.
Merging a pdf using Javascript
Tags: javascript, webdev, codenewbie, npm
Published: 2021-07-27 10:43:40



Have you heard about pdflib library, you didn't so here is the documentation page for you.

<h3>Pdflib package</h3>
Pdflib Package

So here what I have done, First I have installed the package and Add this package to json file as usual. Then I have imported that package on code, Then I have used catch syntax to check for errors.

Then we need to load the pdf that we need to merge with the help of the load method inside the asynchronous function. If you want to get pdf as a user input then you can try multer package, but for now, I don't need it. I will provide a documentation link for multer package below.

Multer package

Then, then with create() method, I have created a new empty document. And then I have added the first pdf file into that document with the help of copyPages() method. Once I have copied the first pdf, then I will concatenate the second pdf with the same copypage method. Then the pdf will get merged into that new document, and now it's time for naming a file. With the help of writeFileSync() I have synced the file and named it with .pdf extension. So here what the output looks like.

After merging
Alt Text

Thanks for taking the time to read my blog.
Happy coding :)