teleren/devto huggingface dataset:
State of Software Engineering in 2020
Tags: software, programming, 2020
Published: 2020-04-07 13:26:00

It is time to talk about the state of software engineering in 2020 and beyond. Software engineering has seen explosive growth over the last 20 years, and it seems to be keeping that momentum up. According to Fortune data, total revenue of top 15 technology companies in the world was a record 1.67 Trillion US Dollars in 2019, which is up 2% from 2018. There are more software companies than ever now. In addition, existing non-software companies are introducing more software components into their products, anything from cars to washing machines. The future is software, but not all software is created equal. Identifying the most promising and fastest-growing areas of software can help you take off your career and projects. Investing in a growing area helps you to find a job easier and get paid better, and helps you in finding funding for your projects. So, let us not waste time and get right into it. This video uses GitHub Octoverse data as the basis, plus my experiences and observations as a software engineer with a decade of experience. 

Video: https://www.youtube.com/watch?v=GesAhP5jYLo
Article: https://quanticdev.com/articles/software-engineering-in-2020

Outline of this video/article:
* Overview
* Growth of Programming
* Growth of Open-Source
* Top Libraries
* Trending Projects
* Top Programming Languages
* Data Science and Machine Learning
* Cloud Computing, DevOps, and Security
* Conclusion
Daily Challenge #220 - What Dominates Your Array?
Tags: challenge
Published: 2020-04-07 13:25:34

---
title: Daily Challenge #220 - What Dominates Your Array?
published: true
series: Daily Challenge
description: Which element is most common?
tags: challenge
---
An array `arr` consisting of `n` integers is given. The dominator of `arr` is the value that occurs in more than half of the elements of `arr`.

Write a function `dominator(arr)` that returns the dominator of `arr`. The function should return −1 if array does not have a dominator. All values in arr will be >=0.

For example, consider the array such that `arr = [3,4,3,2,3,1,3,3]`
The dominator of arr is 3 because it occurs in 5 out of 8 elements of arr and 5 is more than half of 8.
dominator([3,4,3,2,3,1,3,3]) => 3
dominator([1,2,3,4,5]) => -1

**Tests**:
dominator([3,4,3,2,3,1,3,3])
dominator([1,1,1,2,2,2]),
dominator([1,1,1,2,2,2,2])

Good luck!
***
_This [challenge](https://www.codewars.com/kata/559e10e2e162b69f750000b4) comes from joh_pot on CodeWars. Thank you to [CodeWars](<https://codewars.com/>), who has licensed redistribution of this challenge under the [2-Clause BSD License](<https://opensource.org/licenses/BSD-2-Clause>)!_

_Want to propose a challenge idea for a future post?  Email **yo+challenge@dev.to** with your suggestions!_
GitHub Pages is temporarily down for maintenance
Tags: news, githubstatus
Published: 2020-04-07 13:16:58

---
title: GitHub Pages is temporarily down for maintenance
published: true
description: GitHub Pages is temporarily down for maintenance
tags: discuss,news,githubstatus
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/uow5mnlc8xvf8zbty5ck.png
---


GitHub Pages is temporarily down for maintenance

<img src="https://dev-to-uploads.s3.amazonaws.com/i/uow5mnlc8xvf8zbty5ck.png" alt="Github pages is down"/>

Subscribe to updates from this url: https://www.githubstatus.com/incidents/f3xzj5fgfq5b
Generic Components and Bad Design
Tags: angular, typescript, javascript
Published: 2020-04-07 13:13:23

```html
<td mat-cell *matCellDef="let thing">
            {{ getContent(thing, displayedColumns[3]) | date: "MM/dd/yyyy" }}
</td>
```
The snippet above is a part of the [MaterialTable](https://material.angular.io/components/table/overview), in particular it is table data within a table row.  The [mat-cell directive](https://material.angular.io/cdk/table/api#CdkHeaderCellDef) allows us to bind data etc.

This is actual code from a component we built to make use of the MaterialTable easier. Like this:

```html
 <app-material-table     
      [dataSource]="dataSource"
      [showSearchBar]="true"
      [displayedColumns]="[
         'id',
         'groupName',
         'displayName',
         'values',
         'h3',
         'h4'
      ]"
      [columnHeaders]="['ID', 'Group Name', 'Display Name', 'Values']"
   ></app-material-table>
```
We simply reuse our app-material-table by hooking up the datSource, showing the search bar and configuring the column headers to the column property names.

This code:

```typescript
  {{ getContent(thing, displayedColumns[3]) | date: "MM/dd/yyyy" }}
```
Automatically piped the content to a date formatter. While this passed the muster early on, reusing this component proved the pipe to be a *bad design*. Why, because not all data was going to have a dateTime field in this column! 

**Take Away:**

As we design 'generic' components we must take into account data types. For 'generic' component reuse the responsibility on data formatting is NOT on the reusable component unless there's a way to tell it when and how to format data; otherwise, the responsibility is on the caller. 

JWP2020
Top of descent calculator
Tags: react, showdev, aviation, opensource
Published: 2020-04-07 13:05:02

In my free time, I often flying with the X Plane 11 simulator and recently I thought to create the Top of descent (TOD) calculator, to calculate descent path. TOD is the point when the aircraft should start to descent to approach or any other target altitude. The calculator which I created is not strictly accurate, because it just depends on aviation rules of thumb and simply trigonometry. But it is sufficient for the initial decision.

The calculator can be found on [https://descent.now.sh](https://descent.now.sh)

![Top of descent calculator](https://descent.now.sh/descent-app.gif)

Here I shortly discuss how the calculator works.

TOD point is just a distance, how much nautical miles (or other units) take the descent procedure from altitude A to B.

The main parameters we should have are origin altitude, destination altitude, and glideslope:

![](https://dev-to-uploads.s3.amazonaws.com/i/0dn6uu8ioufxua1n9k4g.png)

By simple trigonometry formula, we can calculate the distance:

![](https://math.tools/equation/get_equaimages?equation=d%20%3D%20%7BDelta%20h%7D%2F%7Btan%20alpha%7D&fontsize=36)

Usually, when aircraft descending, it not only decreases altitude but reduces speed too. By the rule of thumb, 1 nautical mile for a speed reduction of 10 knots is a good value to start with. So we include it to the distance calculation:

![](https://math.tools/equation/get_equaimages?equation=d%20%3D%20%7BDelta%20h%7D%2F%7Btan%20alpha%7D%20%2B%20%7BDelta%20v%7D%2F%7B10%7D&fontsize=36)

The same rule of thumb is used to add the wind impact on distance. 1 nautical mile for 10 knots of head or tailwind.

![](https://dev-to-uploads.s3.amazonaws.com/i/vb8al1wiiemcfls7tnmd.png)

Now we know how much distance takes the aircraft descent. But we need to calculate how fast we should descent to maintain the glideslope profile. The descent speed is called vertical speed (feet per minute) and is calculated by the following formula:

![](https://dev-to-uploads.s3.amazonaws.com/i/0e4kcoiov6lniaw9jary.png)

The source code of the calculator can be found at my GitHub repository [github.com/epranka/descent-app](https://github.com/epranka/descent-app)

If you have any questions, feel free to ask in the comments below or contact me directly.

Follow on [Twitter](https://twitter.com/epranka), [GitHub](https://github.com/epranka), and let’s connect on [LinkedIn](https://linkedin.com/in/epranka)
Back-end com Node.js
Tags: node, rocketseat
Published: 2020-04-07 13:04:29

#####[Node.js](#nodejs)
#####[NPM e YARN](#npm-yarn)
#####[Frameworks](#frameworks)

O Node.js é: <a name="nodejs"></a>
- Uma plataforma;
- Criada em cima do V8;
- Comparável à PHP / Ruby / Python;
- Arquitetura Event-loop
 - Baseada em eventos (Rotas na maiorias das vezes);
 - [Call Stack](#call-stack)
- Node single-thread
 - C++ por trás com libuv;
 - Background threads;
- Non-blocking I/O;
- Faz o controle de rotas e integrações;

Call Stack <a name="call-stack"></a>
Call Stack é uma estrutura de dados de Pilha, então a primeira que entrou será a última a ser processada.
Last In First Out (LIFO);

NPM e YARN são: <a name="npm-yarn"></a>
- Gerenciadores de bibliotecas;
- Servem criar, disponibilizar e instalar bibliotecas. Tanto de terceiros, quanto as suas, caso tenha criado alguma;
- Yarn é mais rápido que NPM.
- Comparável com:
 - Composer do PHP;
 - Gems do Ruby;
 - PIP do Python;

Frameworks: <a name="frameworks"></a>
- [ExpressJS](https://expressjs.com/)
 - Sem opinião: Não tem uma estrutura fechada;
 - Ótimo para iniciar;
 - Micro-serviços;
- Outras opções:
 - [AdonisJS](https://adonisjs.com/);
 - [NestJS](https://nestjs.com/);
How To Host Your Codepen
Tags: html, javascript, webdev
Published: 2020-04-07 12:57:16

Codepen is a super useful tool. It's perfect for quickly dabbling with code online without the faff of an IDE. But, did you know that you can easily deploy and host your code in a couple of steps?

**Here's how: **

_Prerequisite: You're logged into any type of Codepen account (free or pro)._
 
### **Step 1: Export your code from Codepen**

Once you've found a Codepen you'd like to host, navigate to the bottom right hand corner your screen and click **_Export_**. You'll end up with a neat zip of all your files.

![Export feature on Codepen](https://tiiny.host/blog/assets/posts/codepen.png)

_Note: This feature only appears on desktop_

<br />


### **Step 2: Upload it to tiiny.host**

Head over to [https://tiiny.host](https://tiiny.host), enter a subdomain, upload the neat zip you just downloaded from Codepen and click **_Launch_**.

![Uploading to tiiny.host](https://tiiny.host/blog/assets/posts/1_UKAOBCE-isMDhZOuEmUrPA.gif)

And you're done! Your Codepen is now properly hosted and ready to show off to the world.
Web Surgery - Ep.2 - using gulp pipeline for the css build
Tags: jekyll, javascript, webdev, tutorial
Published: 2020-04-07 12:51:44

---
title: Web Surgery - Ep.2 - using gulp pipeline for the css build
published: true
description: We continue to work on my website. Introducing Gulp.js, to speed up the Jekyll build by using Gulp to lint and prebuild the css (as well as the js scripts). Gulp will watch and automatically build a minified version of the css and js scripts when there are changes in the source files.
tags: Jekyll, Javascript, WebDev, Tutorial
---
We continue to work on my website. Introducing Gulp.js, to speed up the Jekyll build by using Gulp to lint and prebuild the css (as well as the js scripts). Gulp will watch and automatically build a minified version of the css and js scripts when there are changes in the source files.

(p.s. sorry for the abrupt end, the internet got cut off almost at the end of the streaming and you have not missed anything important really)
Parsing unstructured text without code?
Tags: help
Published: 2020-04-07 12:45:25

Hi there, 

I have a table of unstructured text in the form of brand names. Some cells are clean and others are mushed together (see below). 

Is there a simple way for me to parse this text without code (not a current skill)? The end result I need is a count of mentions per brand. 

`LuluLemon
Nike, Adidas, Champion, Puma, Outdoor Voices, Gaiam, Fila, Fabletics, Under Armor
"Outdoor voices 
Alo 
Lu lu lemon
Nike
Adidas 
Athleta
SDSU
Girlfriend collective 
Puma`
Laravel Passport Scope Tutorial | API Permissions Using Passport Scope
Tags: passport, scope, api, auth
Published: 2020-04-07 12:44:21

Hello Artisan

In this tutorial i am coming with a brand new tutorial. In this tutorial i will show you how we can login with laravel passport. Here i will create two login part, one for user and other for admin. Only admin can access all of the admin features not user. 

In this tutorial we are going to learn about laravel passport. In this tutorial i will show you step by step that how to create api authentication using laravel passport. In this laravel passport tutorial i will also show you user access control using laravel passport scope. Scopes allow your application's users to limit the actions a third-party application can perform on their behalf.

Link : https://www.codechief.org/article/laravel-passport-scope-tutorial-api-permissions-using-passport-scope
How I Built my Website from Scratch: a Complete Journey! 🌍
Tags: webdev, beginners, tutorial, showdev
Published: 2020-04-07 12:41:58

Some days ago, on this website, I asked [if someone wanted to learn how I built my website from scratch](https://dev.to/francoscarpa/how-i-built-my-website-from-scratch-25m0). I love the Web’s ability to **connect people and information**. Furthermore, it allows anyone to create their **own online home**, a place to express whatever they want. Whenever I visit a website, the first thing I do is not looking for the info I need, but rather **analyzing** it. I also love looking for bugs in layout, trying to understand how I could fix them myself. I’m a maniac of perfection, and I feel a slight tingling when I notice a defect in layout, fonts, responsiveness, etc.

I told you these things to make you understand how deep is the love I harbor for web sites and applications. I love all of the aspects concerning their building: from appearance to performance, from the philosophy on the use of personal data to the tools used to build them.

If you haven’t read [my last post on dev.to](https://dev.to/francoscarpa/how-i-built-my-website-from-scratch-25m0) yet, [francoscarpa.com](https://francoscarpa.com) already existed. I accidentally deleted its source code with a ruthless `rm -r _site/` ([Eleventy](https://www.11ty.dev/) users will understand). In other words, I demolished the directory that contained all of its files. Since I hadn’t use source control, I felt like crying: **I had completely lost my website**. Sure, it was online, but it only existed there at that point. I had to start from scratch.

However, in light of the work I’ve done to rebuild it, I can say it has been a good thing. Not because I didn’t like the previous site, but because I like the current one too much. I’ve always promised myself to let other people know how I built my website. [francoscarpa.com](https://francoscarpa.com) has finally come to a new, and (most importantly) stable version, so that moment has come.

I found this premise adequate to inaugurate the series of articles in which I explain how I built my website from scratch. I’ll talk about **_everything_**. Maybe YouTube videos were a better choice, but I have no moments of peace in my house, so this is the best solution.

If you are:

- a passionate web designer and developer like me;
- attracted to websites;
- a beginner who wants to make his first step in the world of Web development;

these articles are for you. I will divide them as follows:

1. tools I used;
2. appearance (layout, fonts, and colors);
3. philosophy, principles and privacy policy
4. PWA behavior.

Get on board! I will take you on a journey up and down on [francoscarpa.com](https://francoscarpa.com)! Argh!
Euclidean algorithm
Tags: algorithms
Published: 2020-04-07 12:31:36

# Euclidean algorithm
The **Euclidean algorithm** is one of the oldest numerical algorithms commonly used to solve the problem of computing the **greatest common divisor** (gcd) of two positive integers.

There are three main implementations of the Euclidean algorithm:

## 1. Euclidean algorithm by subtraction
Here, we recursively subtract the smaller number from the larger number

```javascript
/**
 * Recursively subtract the smaller number from the larger number
 * until the two numbers are equal
 *
 * @param {number} a
 * @param {number} b
 */
const gcd = (a, b) => {
  if (a === b) return a;

  if (a > b) return gcd(a - b, b);

  return gcd(a, b - a);
};
```

The time complexity of the above algorithm is **O(a+b)** which is **linear**

## 2. Euclidean algorithm by division
Here, we use a form of division by to recursively compute the **gcd**

```javascript
/**
 * Recursively compute the gcd using some form of division
 *
 * @param {number} a
 * @param {number} b
 */
const gcd = (a, b) => {
  if (a % b === 0) return b;

  return gcd(b, a % b);
};
```

The time complexity of the above algorithm is logarithmic with **O(log(a+b))**

## 3. Binary Euclidean algorithm

```javascript
/**
 * Recursively compute the gcd using some binary operations
 *
 * @param {number} a
 * @param {number} b
 */
const gcd = (a, b, r = 1) => {
  if (a === b) return r * a;

  if (a % 2 === 0 && b % 2 === 0)
    return gcd(Math.floor(a / 2), Math.floor(b / 2), 2 * r);

  if (a % 2 === 0) return gcd(Math.floor(a / 2), b, r);

  if (b % 2 === 0) return gcd(a, Math.floor(b / 2), r);

  if (a > b) return gcd(a - b, b, r);

  return gcd(a, b - a, r);
};
```

This one has a time complexity of **O(log(a) + log(b))**

Thanks 👍 for making it to the end 👨‍💻 and I really hope you found the content useful.

Leave a comment below or tweet me @ElishaChibueze if you have any questions or suggestions
What are the tools used for PSD to Magento Conversion?
Published: 2020-04-07 12:18:44

Magento is a widely recommended CMS for building eCommerce sites. This platform has become the topmost choice of developers for creating heavy sites like the product and service-based sites. There are many times when Photoshop becomes non-responsive and less attractive, therefore, it becomes essential to migrate. You can opt for Magento to shift to PSD files. 

If you are making use of the PSD file on the site, then it becomes easy to change into a Magento template by <a href="https://www.csschopper.com/psd-to-magento.shtml">seeking the assistance of PSD to Magento services.</a>. There are certain tools that make the conversion process an effortless job for the developers.

Here is the list of important tools for PSD to Magento conversion. 

Photoshop

Although PSD files can be opened in multiple editors, Photoshop is the best editor for PSD file conversion. If you don’t utilize Photoshop, then it would be difficult to convert static PSD files. 

HTML/CSS Editor

HTML and CCS are useful in developing neat and clean code and achieving a responsive outlook. It is advisable to utilize Dreamweaver, Notepad++, and other tools for making HTML mad CSS. 

Note:- The company you should appoint should have hands-on working experience in handling the above-mentioned tools. 

Who you should rely on for this task?

It is not that simple to hire the right firm for this purpose. This is because there are <a href="https://www.csschopper.com/blog/should-you-migrate-from-magento-1-to-magento-2/">several PSD to Magento companies</a> are available that make the decision tough. Before signing a deal with a company, it is important to check for these things:

Efficient Team 

Make sure the company you are collaborating with should have proficient developers on board and are technically sound in rendering PSD to Magento conversion services. 

Offer great communication

The company should provide complete transparency while communicating. They should coordinate with you on a regular basis and ask for feedback for improvement. 

Provides superior results

The PSD to Magento service provider should offer unbeatable and result-oriented services to their clients. Also, the designers and developers can develop highly customizable, SEO-friendly and browser compatible PSD to Magento sites. 

If a service provider satisfies all the above criteria, it is safe to choose them for your project.
Chingu Voyage 19 Starting on May 4
Tags: development, collaboration, education, career
Published: 2020-04-07 12:15:34

Chingu Voyages are a way for you to get out of Tutorial Purgatory by turning what you've learned into expertise.

Get yourself job ready by applying your tech skills on a team project while also practicing the soft skills and team workflows you will need on the job. Our project-based learning community will help you aim higher and achieve more than you could alone.


In a six week Voyage you'll work on a team to design, build, test, & deploy a project.

Learn more at https://chingu.io
C# contextual keywords
Tags: original, shorts, dev
Published: 2020-07-07 09:37:29

---
title: C# contextual keywords
published: true
date: 2020-04-07 12:08:53 UTC
tags: Original,Shorts,dev
canonical_url: 
---

Inspired by [this tweet](https://twitter.com/jaredpar/status/1245419431607455745) I made some strange things in c#. Learn about [Contextual Keywords](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/contextual-keywords)!

![](https://blog.pitermarx.com/wp-content/uploads/2020/04/imagem-5.png)<figcaption>See in <a href="https://sharplab.io/#v2:EYLgxg9gTgpgtADwGwBYA0AXEBLANmgExAGoAfAAQAYACcgRhQG4BYAKDYAcBDKDbL3NQDOGKAFcwGat179BAb2oBfTjz4DhoiVJnqFy1bI0jxk6WrnVFK1rssnt5o/ptsHZggE8AdlwC22GBWBqzuUgDuXBg08mzU8dRevgFBSf6BLKyuoVpmAOYwUvI2YdSRGHRWcQkFUrWM1LXChcFNALwAfM0YDUItnY393Q022aUAbgJiMMHkAMy0dEjUk7jTwyGl5QBMVawJK1Mzq+uK7V0nML39F0cAdH1SbYdrVyFjuVLkAByzC/TLH60ACc1GeBBgADMuGJcD1Np8ylEFrF9gkgT8ABQY74ASjBXQh0NhPTYJUR5RQwXi1XiGOB2N+5GB+IGPzuzMy2QhuBgeSixyO1Fgfgg4xgmNxmS2UQArHsDiKxTMuAQCA0YOLvFIleKXqdaQdqKqCMETdRiM9LiNDYqYKK9YpzXArUcbWj4qM2GxsNqYFBoWAZuEABb+mbFNyIyZQKzk0xfOiVeTzRbLbB+Di4QLYKQQDj+qLQQ5QbFJ6gAfVZhKhMLh7plGAA7GxUQd6HMADwxrr0OidgAqHUlZTDsGoA+oIFH4cNbaNdPLfbBiVrJMyC8XlXITcWdA3m9tCUh0BgXDAIcxMZL1F9e8Hw9x+OXO5LB89ZLYQA" target="_blank" rel="noreferrer noopener">ShapLab</a></figcaption>
Daily Developer Jokes - Tuesday, Apr 7, 2020
Tags: jokes, dailydeveloperjokes
Published: 2020-04-07 12:00:24

---
title: "Daily Developer Jokes - Tuesday, Apr 7, 2020"
description: "Check out today's daily developer joke! (a project by Fred Adams at xtrp.io)"
series: "Daily Developer Jokes"
cover_image: "https://private.xtrp.io/projects/DailyDeveloperJokes/thumbnail_generator/?date=Tuesday%2C%20Apr%207%2C%202020"
published: true
tags: #jokes, #dailydeveloperjokes
---

Generated by Daily Developer Jokes, a project by [Fred Adams](https://xtrp.io/) ([@xtrp](https://dev.to/xtrp) on DEV)

___Read about Daily Developer Jokes on [this blog post](https://xtrp.io/blog/2020/01/12/daily-jokes-bot-release/), and check out the [Daily Developer Jokes Website](https://dailydeveloperjokes.github.io/).___
### Today's Joke is...
![Joke Image](https://private.xtrp.io/projects/DailyDeveloperJokes/public_image_server/images/5e1258b2d77d4.png)

---
*Have a joke idea for a future post? Email ___[xtrp@xtrp.io](mailto:xtrp@xtrp.io)___ with your suggestions!*

*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's the second movie about a database engineer called?

___A:___ The SQL.
 -->
Quarantine-time webinar | Design a professional landing page
Tags: html, css, javascript, tutorial
Published: 2020-04-07 11:51:31

In MDB, we started lately very popularly, live streams in which we convey knowledge about programming in a very simple and accurate way. The demand for such courses turned out to be very motivating, which is why we decided to do a series of live courses.

If you are interested in designing a professional website while learning the basics of HTML, CSS and JavaScript, sign up for the course, which will take place today (**7th April**) at **8 PM** (UTC + 2)

You can find more details on our website, where you can subscribe to the next live streams, and join our private group so you don't miss any news [here](https://mdbootstrap.com/livestreams/join/?utm_campaign=JoinLiveStreams&utm_source=DevTo)!

Don't waste your time and take advantage of the fact that you spend it at home improving and developing new skills 👨🏻‍💻

[Learn more about our live streams](https://mdbootstrap.com/livestreams/join/?utm_campaign=JoinLiveStreams&utm_source=DevTo)