teleren/devto huggingface dataset:
Who are women that should get recognition for their contributions to software?
Tags: womenintech
Published: 2019-08-13 13:49:44

An observation that I had this morning is that I don't easily know many of the women who have made contributions to software that should be recognized for their work.

Would you please share who you think should receive recognition and what they've made contributions to? Could be a website, open source project, library or anything that we might be exposed to on a daily basis but aren't easily aware of their contributions.
intro to waits
Tags: selenium, automation
Published: 2019-08-13 11:07:58

---
title: intro to waits
published: true
description: 
tags: selenium, automation
---

In most simple example scripts I have written for dev.to I have not included any Waits. I am going to introduce the topic here.

The concept is easy. 

You as a human when testing a website will click on something and then you wait until the page is "done." What does done mean for a web page?

Ultimately the browser knows when the page is loaded. There is an event you can catch in JS called window.onload.

How does a Selenium program do it? With code if course.

There is a concept of a Wait that matches up to your intuition. It is a programming/code concept that matches that human ability to wait for something to happen.

There are two kinds of Waits in Selenium.

Explicit and Implicit.

Implicit waits are for the entire script. You set one number usually at the start of the Selenium script. I want to Wait for 10 seconds for anything in this script. That is the maximum I will wait for any one command to finish. And that implicit wait applies across the entire script.

For some scripts the implicit wait is enough you can set it and forget it. And if some operation in your script is slow your script will fail.

The Explicit Wait is more fine grained (or more explicit). You can as a programmer say click on this button and then wait up to 15 seconds for a result. Or wait up 10 seconds for the word "monkey" to appear in the title. Or wait up 11 seconds for the 3rd div from the top of the screen to be orange... just about anything you can think of on a web page. You can write an Explicit Wait to handle it.

Here are some of those waits
* title contains a word
* an element becomes visible
* text in an element
* and many others...

This post has been about the two main concepts needed for Waits in Selenium. In another post I will show what Waits will look like in code.
Sports Apps: Reasons for the Sports Industry to Go Mobile
Tags: yalantissportsappsportstech
Published: 2019-08-13 13:12:05

https://yalantis.com/blog/why-the-sports-industry-is-going-mobile/

Though there are so many sports fans around the world, 11% fewer people watched the Premier League matches and 10% fewer people viewed the NFL games than the year before, and the tendency remains. In other words, the engagement rates keep dropping for stadium games, and most sports companies in the US claim that the reasons for this are new technologies and the way modern generation uses them. 

Take a look at this: according to the Sports Business Institute, 87% of sports fans second screen during a match. They can be looking at replays, checking the scores of other games, or using social networks to boast about attending the game in person. Moreover, generations X and Z prefer consuming digital content to attending games in stadiums. What does this all lead to? Sports facility owners and game organizers get less revenue and have to look for new ways to use the facilities, such as for hosting concerts and other special events. 

But should you keep spending tons of money on marketing campaigns, trying to bring everyone back to the stadiums? Or should you work on attracting the techy fans – like theScore, a Canadian company, that got an additional $22.6 million in 2018 from its mobile app for the sports industry? Keep reading this post to learn how mobile technologies can help you engage fans and raise your revenue rates.

How exactly can apps engage sports fans?
Aside from theScore, there are plenty of other successful apps – like DAZN, a live broadcasting app that brought $11.5 million in 2018, and an app by ESPN, DAZN’s competitor, which drove $4.7 million in user spending in just a year.
How open-source will Tumblr become?
Tags: opensource, discuss, wordpress, news
Published: 2019-08-13 13:11:40

In case you hadn't read the news, [Verizon sold Tumblr to Automattic](https://www.theverge.com/2019/8/12/20802639/tumblr-verizon-sold-wordpress-blogging-yahoo-adult-content). Verizon owned Tumblr after it acquired Yahoo! and Automattic is the company behind Wordpress.

The price was around 3m, a remarkable fall from the 1.1 Billion that Yahoo! paid just a few years ago. I assume part of the reason it was so cheap is that the ongoing maintenance costs of Tumblr might be large enough that it's a liability in and of itself and somebody needed to take it on. It's why cities will sometimes unload an old warehouse for $1 to someone willing to fix it up and incur the costs.

With all of this known, I'm curious if anyone has any thoughts about the future of Tumblr, as it's now owned by _huge_ open source proponents.

Matt Mullenweg's [blog post](https://photomatt.tumblr.com/post/186964618222/automattic-tumblr) made vague mentions of plans:

> In the underlying technology of our platforms, I think there are some good opportunities to standardize on the Open Source WordPress tech stack, but the front-end user experience on Tumblr will evolve on its own path.

Tumblr strikes me as one of the most interesting platforms for the future of open source publishing and social networking.

We in this community are, obviously, interested in this kind of stuff.

{% link https://dev.to/devteam/dev-went-open-source-one-year-ago-today-and-we-have-so-much-more-planned-530f %}

Does anyone want to speculate how things will unfold? I'm excited!
Top 5 DEV Comments from the Past Week
Tags: bestofdev
Published: 2019-08-13 13:08:20

---
title: Top 5 DEV Comments from the Past Week
published: true
description: Highlighting some of the best DEV comments from the past week.
tags: bestofdev
cover_image: https://res.cloudinary.com/practicaldev/image/fetch/s--7VrAA2ln--/c_imagga_scale,f_auto,fl_progressive,h_420,q_auto,w_1000/https://thepracticaldev.s3.amazonaws.com/i/qmb5wkoeywj06pd7p8ku.png
---

This is a weekly roundup of awesome DEV comments that you may have missed.  You are welcome and encouraged to boost posts and comments yourself using the **[#bestofdev](/t/bestofdev)** tag.

Adding on to the **[I'm a senior developer and I regularly google "html image tag"](https://dev.to/tobyfee/i-m-a-senior-developer-and-i-regularly-google-html-image-tag-ghc)** post, @midblue talks about their frequently-searched resource:
{% devcomment e1im %}

One especially important attribute of this global and diverse community is the ability to benefit from perspective and feedback from such a wide group of developers.  In the **[Forty and still a dev?](https://dev.to/sandordargo/forty-and-still-a-dev-1hb3)** thread, @anortef talked about their experience working with a developer in their 50s:
{% devcomment dolg %}

In **[What was your worst new job experience?](https://dev.to/techworkersco/what-was-your-worst-new-job-experience-4lgb)**, @vcarl talks about a spiraling work situation with awful management and constantly-shifting expectations:
{% devcomment e163 %}

Replying to **[Explain The Pros & Cons of OSS Like I'm Five](https://dev.to/sloan/explain-the-pros-cons-of-oss-like-i-m-five-1dm5)**, @stereobooster provides a wonderful overview.  This is helpful reading even if you are a veteran in the industry, much less a 5 year old:
{% devcomment e2n1 %}

I normally refrain from including DEV core team on this list, but @jess shared such an awesome _community_ win in the **[What was your win this week?](https://dev.to/jess/what-was-your-win-this-week-f55)** that I had to include her achievement:
{% devcomment e158 %}

Be sure to check out the [issues in the DEV Repo](https://github.com/thepracticaldev/dev.to/issues) to see all the wonderfully-labeled issues!

See you next week for more great comments ✌
Run any Node.js version
Tags: node, javascript
Published: 2019-08-13 13:06:52

---
title: Run any Node.js version 
published: true
description: Run any Node.js version
tags: [nodejs, javascript]
---

<img src="https://raw.githubusercontent.com/ehmicky/design/master/nve/nve.svg?sanitize=true" width="500"/>

[nve](https://github.com/ehmicky/nve) is a library that executes a file, command or REPL using a specific Node.js version.

Unlike [`nvm run`](https://github.com/nvm-sh/nvm/blob/master/README.md#usage) it:

- is [10 times faster](https://github.com/ehmicky/nve#benchmarks)
- does not need a separate installation step for each Node version
- works on Windows
- does not require Bash
- is installed as a Node module (as opposed to a [Bash installation script](https://github.com/nvm-sh/nvm/blob/master/README.md#installation-and-update) downloaded with `curl`)

```bash
# Same as `node` but with Node 12
$ nve 12
Welcome to Node.js v12.8.0.
Type ".help" for more information.
> .exit

# Same as `node file.js` but with Node 8
$ nve 8 file.js

# Any Node CLI flag can be used
$ nve 8 --print 'process.version'
v8.16.0

```
Simple React CRUD app using Material Ui
Tags: react, material
Published: 2019-08-13 12:58:30


App Link : https://rm-crud.herokuapp.com/

Github Repository Link: https://github.com/jeyk333/React-CRUD-using-Material-Ui

My First Commit in Github. I made an Simple CRUD app using Reactjs and Material UI. Please Check and give feedbacks about Code or Ui etc.
The Best Way To Lazy Load Angular Elements
Tags: angular, frontend, javascript, webcomponents
Published: 2019-08-13 12:58:02

---
title: The Best Way To Lazy Load Angular Elements
published: true
tags: angular,frontend,javascript,webcomponents
canonical_url: https://medium.com/@tomastrajan/the-best-way-to-lazy-load-angular-elements-97a51a5c2007
---


![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/mcrtaa46h8q4kbowtx4l.png)

# Or any other Web Components in your Angular applications!

> In this article we will be focusing on learning how to use Angular elements and other web components in the context of parent ( consumer ) Angular applications. 

It’s based on hands-on production ready experience from large enterprise organization with more than hundred of SPAs and libraries combined!


[Read more...](https://medium.com/@tomastrajan/the-best-way-to-lazy-load-angular-elements-97a51a5c2007)
A Guide To Loving Your Terminal
Tags: terminal, linux, beginners
Published: 2019-08-13 12:56:49

*Congratulations, you are a proud terminal owner! *

When I first switched to Linux, I avoided my terminal like the plague. Now I don't know how I managed without my terminal!

But I think there is a lot more we can do to just make our experience easier.

### Write Shell Scripts
Say you have a long list of commands you need to run, but now enough time to sit there waiting typing them all out one at a time. A simple shell script can solve that problem! But shell scripts go beyond just commands. 

Since I use Bash. I am going to focus on Bash. A few people don't realize that Bash is a full featured scripting language. It has while loops, if statements, takes input, and does basically anything that any other scripting language can do. This can be really great for making things automated on your computer. It is also really easy to get shell scripts to start running on startup, which is perfect if you wan't it running in the background. 

I have a joke that I already built AI by myself because of the amount of shell scripts I have running at one time.

### Use the '&&' operator
The && operator is what turns two terminal commands into one. For example:

```
echo "hello" && echo "Lazar"
```

This just prints out in the terminal:
```
"hello"
"Lazar"
```
Word for the wise here this is NOT concatenation! It runs the two commands separately, that's why it printed on two different lines.

So what can you do with this, plenty It really saves time for me. When I used to use Debian, and I was installing something it would sometimes take a really long time for the repositories to update, then I would have to go still and type the command to install something. So I would just type:

```
sudo apt-get update && sudo apt install
```

### Change the terminal font
***Comment down below, if you change the font on your terminal.*** Because I don't know ANYONE who does.  Now, I can't comment on every terminal out there, but for gnome, deepin and tilix, it is really easy. ** Preferences => General => Font**. I find if you wanna make the terminal just a little less scary, just use a font that maybe is a little more calming for you. Also, In deepin, you can change the theme and the opacity of the terminal.

So that's all for now. I think I may have to write a few of these articles like this, this week because I am working on two different projects for two different people and really can't work on anything spectacular right now. 

Y'all have a great day!
Forwarding domains without a server with Cloudflare
Tags: tutorial, cloudflare, showdev, devops
Published: 2019-08-13 12:52:42

---
title: Forwarding domains without a server with Cloudflare
published: true
description: How to forward domains to other domains without configuring a webserver
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ucf3z38thhlbvekdeqgh.jpg
tags: tutorial, cloudflare, showdev, devops
---

_[Photo](https://unsplash.com/photos/H5qxGjUTN-k) by [zhu bing](https://unsplash.com/@zhubing428), sourced from [the Cloudflare forums](https://community.cloudflare.com/t/using-page-rules-without-an-a-record/59069)_

Imagine you've just bought a new domain for your next side project, haven't got a website for it yet but don't want it to point to the void as well. My usual approach to this in the past was this:

* Set up the A record of the domain to point to the IP address of my main website.
* Update the webserver configuration for that site to listen to the new domain.
* Once the side project is ready, revert the settings and update the A record with a new IP address.

Although this is easy enough, it still requires updating an unrelated site, and what if you don't have an existing site to use as a temporary placeholder?

This was the case when I wanted to redirect my (super old) domain [jerome-gamez.de](https://www.jerome-gamez.de) to my current [gamez.name](https://www.gamez.name). I was already on my VPS to update the configuration when I started to wonder if there was a simpler solution - I think I found one using [Cloudflare DNS](https://www.cloudflare.com) and [Page Rules](https://www.cloudflare.com/features-page-rules/), and I'd like to share it with you today.

---

If you haven't already, [create an account at Cloudflare](https://dash.cloudflare.com/sign-up) (it's free), add your site and point your domain's NS records to the nameservers named on your site's dashboard.

### Set up DNS

On the **DNS** dashboard, enter the following entries:

| Type | Name | Value | TTL | Proxy status |
| --- | --- | --- | --- | --- |
| A | `@` | 192.0.2.1 | Automatic | enabled |
| A | `www` | 192.0.2.1 | Automatic | enabled |

_I'm not sure if the `www` entry is really needed - I created it to be sure, and it at least didn't break anything_

![Cloudflare DNS Settings](https://thepracticaldev.s3.amazonaws.com/i/dwbuaeb01au69g9fkhj5.png)

### Set up a page rule

On the **Page Rules** dashboard, create a new page rule:

| URL pattern | Setting | Value |
| --- | --- | --- |
| `*your-domain.tld/*` | Forwarding URL | `your-target.tld` |

In case of a temporary forward, use `302` as the status, `301` otherwise.

![Cloudflare Page Rule](https://thepracticaldev.s3.amazonaws.com/i/2nayd8uxuhdb310v1nx8.png)


### Wait

Most of the time, the process of propagating the settings is a matter of only a couple of minutes, but it took more in some cases. You can check the current progress on [whatsmydns.net](https://www.whatsmydns.net).

Once this is done, your domain (and any path on it) should redirect to the target configured in the page rule.
Setting Up Node API with Typescript
Tags: node, typescript, javascript, beginners
Published: 2019-08-13 12:48:57

I'll be taking us through the steps of setting up a basic Node API with typescript.

> Note: You should have [Nodejs](https://nodejs.org/en/) installed on your machine.


First thing is to create our project folder and initialize it with npm to generate the `package.json` file.
```
npm init -y
```

Install dependencies
```
npm i express --save
npm i @types/node @types/express ts-node typescript nodemon --save-dev
```



Create a `tsconfig.json` file in the root of your application or run `npx tsc --init` on your terminal and add the configuration below.

```json
{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs",
    "allowJs": true,
    "outDir": "./build",
    "rootDir": "./src",
    "esModuleInterop": true
  }
}

```
> Note: More options can be added to the `tsconfig.json` file.
Find out more [here](https://www.typescriptlang.org/docs/handbook/compiler-options.html).


Add scripts to package.json file.

```json
"scripts": {
  "dev": "nodemon src/app.ts",
  "start": "tsc && node build/app"
  }
```

Create a `src` directory where our application would be built. Inside the `src` directory, create an `app.ts` file.

Inside the `app.ts` file, add the code below.

```js
import express, { Application, Request, Response, NextFunction } from "express";

const app: Application = express();

app.use(express.json());

app.get("/", (req: Request, res: Response): object => {
    return res.json({ status: "success", message: "Welcome to API Service" });
  }
);

app.use((req: Request, res: Response, next: NextFunction) => {
  const error = new Error("Route Not found");
  next(error);
});

app.use((error: { message: string; status: number }, req: Request, res: Response,next: NextFunction
  ) => {
    res.status(error.status || 500);
    res.json({
      status: "error",
      message: error.message
    });
    next();
  }
);

const PORT: any = process.env.PORT || 3000;

app.listen(PORT, () => console.log(`app listening on port ${PORT}`));

```

At this point, your project structure should look like the image below.

![Project Structure](https://thepracticaldev.s3.amazonaws.com/i/2lfl5rlcjrjksx9d3ba3.png)

### Development 👨🏾‍💻
To run the application on the development environment, run the command below 
```
npm run dev
```

> Note: The above command compiles the files found in the src directory in memory.

### Production 🚀
To run the application on the production environment, run the command below
```
npm start
```

> Note: The above command compiles the files found in the `src` directory to a `build` directory and runs the app.js file in the `build` directory, as specified above in the `start script` in our `package.json` file.

The project used in this article can be found [here](https://github.com/Easybuoy/node-api-typescript).


If you have any questions or feedback, please leave a comment.

Thanks for reading.
GraphQL Day at the Lake
Tags: graphql, eventsinyourcity, event
Published: 2019-08-13 12:28:51

Before I begin, let me offer some full disclosure. I'm a co-organizer for this event. Together with the wonderful folks at Honeypot and with the tireless support of my company, GraphCMS, we are putting on another in the GraphQL Day series of events that's a little outside of the usual tech metropolises. GraphQL Day Bodensee.

In a little under 3 weeks we will be meeting at the beautiful town of Konstanz, Germany at the "Bodensee" (translated, Lake Constance).

![GraphQL Day Bodensee Header Image, Historic White Building with Pink Textured Pattern Behind](https://thepracticaldev.s3.amazonaws.com/i/2q7o3j2064eh8nqgy9dv.png)

And let me be dramatic here for a moment, you really won't want to miss this. The speaker lineup is fantastic, the location is the definition of "work-life" balance and the community is strong.

## The Bodensee?
There's a tag-line for this region that I love. It's called "the four country region" - composed of Germany, Austria, Switzerland and Liechtenstein. And there is so much happening in this picturesque part of the world. Not to be categorized as a sleepy lake district, there are major companies at work around the lake. Whether it's the aeronautical juggernaut of Airbus or the perennial family favorite of Ravensburger (think puzzles, tip-toi, etc) - there are so many opportunities around the lake for people of any industry.

Additionally, it's the ideal place to really bring together communities from these different countries. With Zürich, St. Gallen, Bregenz and Stuttgart all being within an hour or so of the city, it's a great opportunity to not only learn about our favorite API spec but also to meet the greater tech community from the area. Whether you live in the Alps or the Allgäu, eat gipfeli or brezeln, say Servus or Grüß Gott - you're welcome here.

## The Speakers
No, seriously, look at this speaker lineup!

![A collage of all speakers for GraphQL Day Bodensee](https://thepracticaldev.s3.amazonaws.com/i/cvm19jdhr2m2jspvcqbq.png)

I am floored that so many excellent teachers and developers have agreed to come and speak at this event. We will cover everything from quick-start GraphQL guides, in-depth talks about the finer parts of the specification and interesting ways to add some GraphQL to any project. And the event is quite limited! With less than 200 seats in the house, your chances of getting to meet other enthusiasts like yourself or to ask the speakers your burning questions is significantly higher than at larger conferences.

Nothing like a beer-garden style after-party on the lake. Welcome to lake life.

## Time is Running Out
The conference is happening in just a few weeks! We'd love to have everyone from the nearby communities join us and we have opportunity, student and community tickets available so that everyone has a chance to attend.

Speaking of, head over to the [ticket section with this link](https://graphqldaybodensee.eventbrite.ie/?discount=DT10) to get one of those community tickets right now!  Limited to the first 30.

See you at the lake!