teleren/devto huggingface dataset:
Building an awesome Todo app 
Tags: octograd2020
Published: 2020-05-22 15:14:09

#githubsdp
## My Final Project
I am building a todo app with react and graphql.

## Demo Link
 
I'm following the tutorial here to learn :
https://auth0.com/blog/building-a-collaborative-todo-app-with-realtime-graphql-using-hasura/
## Link to Code


## How I built it (what's the stack? did I run into issues or discover something new along the way?)
Learning graphql, 

## Additional Thoughts / Feelings / Stories
BVSelect - Jquery Plugin for SelectBoxes
Tags: javascript, jquery, css
Published: 2020-05-22 15:11:55

Hey guys,
I am currently working on a Plugin for Selecboxes.
Replaces native select elements with fully customizable dropdowns & searchbox.

Feel free to try :P

<b>Jquery Version:</b>

Source: https://github.com/BMSVieira/BVSelect
Demo : https://bmsvieira.github.io/BVSelect/

<b>VanillaJS Version:</b>

Source: https://github.com/BMSVieira/BVSelect-VanillaJS
Demo : https://bmsvieira.github.io/BVSelect-VanillaJS/
So, you want to be a programmer?
Tags: programming, motivational, coaching
Published: 2020-05-22 14:58:17

---
title: So, you want to be a programmer?
published: true
description: Plenty of people are wannabe programmers. They'll tell you about their idea, very few actually do anything about it
tags: programming,motivational,coaching,help
cover_image: https://i.imgur.com/MJ2jAMM.jpg
---
*[Originally published on my blog](https://coding.napolux.com/so-you-want-to-be-a-programmer/)*

How many times have you said this?

> "I'd like to learn to code some day."

Sitting at coffee with a friend:

> "I'd like to create a website some day."

Mingling at the office Christmas party:

> "I want to create an app some day."

Plenty of people are wannabe programmers. They'll tell you about their idea, all the research they've done, the cool features they've come up with. **Very few actually do anything about it**. They sit on their nice, comfy couches and say, "I'd like to learn to code some day."

You've said it yourself, haven't you? **The couch is very comfortable**. No one blames you. You work hard at your job. When you get home, you're tired. The couch calls to you: Rest! You've earned it! A fellow enjoying his well-earned rest on the couch.

**But do you ever wonder?** Do you ever wonder what it would be like?

To create that app that's in your head. To see it outside your head, on a screen. **But apps or websites don't get there by themselves**. Programs need a programmer to write them. Do you want to be a programmer?

If so, there are two things you absolutely have to do.

* Decide you want to be a programmer.
* Prove to yourself that you are a programmer.

Do you want to be a programmer? Say it, prove it.

Prove to yourself that you're a programmer. What does a programmer do? A programmer writes code. You must write code. 

Any pro will tell you (I consider myself a professional programmer), the secret is perseverance. Programmers write code.

It's really that simple.

[Adapted from couchto50k.club](https://couchto50k.club)

And now, if you're already a programmer, share this article with the guy/girl you know is always saying: "I want to learn to code some day".
tutorialdb - A small scale search engine for programming tutorials
Tags: devgrad2020, showdev, django
Published: 2020-05-22 14:43:22

Back in Oct 2019 I launched tutorialdb with a simple goal of clubbing programming tutorials, with a option to contribute your favourite tutorials. Got a overwhelming support & feedback from the community
I wrote a brief description of why I created it in the following post 

{% post https://dev.to/bhupesh/tutorialdb-search-engine-for-programming-tutorials-2fd6 %}

## Demo Link
The site is still [live](https://kutt.it/tutorialdb) and works ;)

## Link to Code
And yes the code is Open Source and is waiting for your contributions

{% github Bhupesh-V/tutorialdb %}

## How I built it
I built this using Python, my stack
- Bulma.io (for CSS)
- Django

## Additional Thoughts
I enjoyed working on this, will be merging pending PRs soon and updating with cool new features.
The Top Benefits of Subtitling and Broadcast Captioning Services
Tags: broadcastcaptioningservices
Published: 2020-05-22 14:36:58

Here are some of the top benefits of availing the subtitling and broadcast captioning services.

Ensure Wider Reach

Adding captions to your videos can make it accessible by a large audience around the globe. Without captions, there are chances that you may not reach a few audiences who cannot enjoy the content due to the unavailability of captions. Especially when you are planning to add the videos on YouTube, availing the online [Broadcast captioning services](https://www.quicktranscriptionservice.com/Broadcast-Captioning.php) proves to be beneficial. Mainly because YouTube enables users to filter the options and view the subtitled and captioned videos.

Easy Accessibility

Closed captioning for broadcast television proves to be helpful for individuals having hearing impairments. Availing the broadcast captioning services helps in providing the hearing-impaired community an opportunity to access your videos. It aids in enhancing their viewing experience and enables them to understand the content of your video.

Provides Clarity

Sometimes your videos may contain certain jargon or technical language. Understanding such content could be difficult for common individuals. Here the broadcast captioning companies, as well as the broadcasting subtitling services, come to help. They help in making the content decipherable by the viewers. Adding the captions and subtitles provides clarity and allows the viewers to retain the intended message or information easily. 

Boost SEO

If you are looking for ways to boost your SEO, using subtitles and captions in your video content is one of the most effective ways. Having captions in your YouTube uploads can help your brand rank higher on the popular search engines. According to the surveys, videos that have the closed caption receive more number of views as compared to the ones that do not. 
Avail the best subtitling and captioning services and maximize the reach as well as engagement of your videos.
Extract All of Regular-Expression matches from html page using JMeter
Tags: testing, RegularExpression, jmeter, performance
Published: 2020-05-22 14:29:03

All are well known about JMeter Regular Expression Extractor but today I will share with how to extract all the matches from HTML page and print those value comma(,) separated.

JMeter, the most popular open source performance testing tool, can work with regular expressions, with the Regular Expression Extractor. Regular expressions are a tool used to extract a required part of the text by using advanced manipulations. Regular expressions are popular when testing web applications because they can be used to validate and to perform operations on a response from a web application.

In this article, I’m going to share how to use extract all of Regular Expression Extractor matches form html in JMeter.

I created a very simple test-plan, look at Figure 1:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/hqpi5m27q1lxloom8yxy.JPG)

Figure 2:
Sampler HTTP Request
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/uj63ck72u8h14rj0iw1n.JPG)

Figure 3:
Debug PostProcessor - To check total matchNr and value represent a pattern.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/d11fcwu8rsphq6h3kmf5.JPG)

Figure 4:
After extracting ids it will be put to BeanShell PostProcessor 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/qu9rsq7bu1uu3slhw30r.JPG)

Of course, I cannot cover in one article all possible and impossible cases about using regular expressions. For more information you can refer to JMeter Regular Expressions Tutorial (https://jmeter.apache.org/usermanual/regular_expressions.html) which has exhaustive information.

JMeter uses Jakarta ORO for regular expressions processing. You can quickly test your regular expressions using Jakarta ORO Demonstration (http://jakarta.apache.org/oro/demo.html) Applet which is the fastest way of seeing result matches/groups/etc.
Wizar devlog 17 - first step with Wave Function Collapse
Tags: gamedev, typescript
Published: 2020-05-22 14:20:06

I spent the week on Gatsby and struggle around how to decouple my boilerplate into themes... 60% successful. Not very exciting stuff.

I found joy into this little [code sandbox](https://codesandbox.io/s/relaxed-moon-jui9c?file=/src/index.ts) to begin my procedural generation of Wizar maps. It will be first used for dungeon generation into our level editor.
For now it just handle some ascii to render a map, but it already can to "guess" how arrange tiles arounds.
If you click multiple time into the same cell it will get the next pattern available following this enumeration: water -> sand -> land -> forest -> mountain
Internally it uses a wave function collapse solver algorithm to figure out what tiles need to be updated.
In a reaction of a click, a function will propagate around the clicked cell, and update all the neighbors. The propagation acts like a "ripple". If the last ripple did not trigger any changes, it will stop.
O cão velho
Tags: programming, trabalho, portugues, vidareal
Published: 2020-05-22 14:18:35

Eu tenho o maior respeito por qualquer pessoa que seja, não vejo cor, raça, religião, idade, nível acadêmico, deficiência, crença ou qualquer outra coisa desse tipo pra mim tenha algum peso para segmentar o tratamento que vou dar pra uma pessoa ou outra, trato e sempre tratei as pessoas da maneira que gostaria que elas me tratassem, com o mínimo respeito.

Hoje eu tive mais um ataque de ansiedade, por conta de toda humilhação e incerteza que venho passando nessas ultimas semanas antes de ser desligado do meu trabalho.

Passei um bom tempo desenvolvendo dois client web em [React](https://reactjs.org/), pensando cada detalhe, deixando ele o mais simples e prazeroso o possível para não só eu me manter motivado mas para novos desenvolvedores se sentirem bem vindos de trabalhar com tecnologias novas, porém estáveis.

O meu substituto em uma semana, faz tudo que eu fiz, por conta, contrariando sugestões, contrariando tudo que eu tinha pensado e padronizado, até commits e fluxos do git o cara fez questão de omitir, só pra entregar algo que ja tinha pronto, feito do jeito dele.

Isso me faz pensar _"Que caralho eu to fazendo da minha vida"_? _"Porque eu gasto tanta energia pra fazer algo legal sendo que alguém mais novo que você pode ir lá e fazer você parecer obsoleto"_?

Enquanto os poucos remédios que ainda tenho pra segurar minha ansiedade me mantêm são e salvo, eu deito em minha cama, olho para o teto, olho para a janela e não acho a saída para a minha vida.

"Será que eu amo e tenho futuro na área de tecnologia ainda ou eu estou me forçando a algo que não tenho talento algum"?

O fato de alguém mais novo entrar no seu time, não é nenhum pouco ruim, geralmente os mais jovens, tem mais vontade e são mais engajados a mostrar o que sabem, muitos ja até sabem fazer coisas melhor que nós mais velhos.

Um dos meus melhores lideres de equipe, era 11 anos mais novo que eu e até hoje brinco falando que quando eu crescer, vou ser tão bom quanto ele.

Esse papo todo de idade na verdade, é uma reflexão muito pessoal do que eu estou fazendo comigo.

Escrevi no meu post anterior, que não existe projeto online com algum código fonte escrito por mim faz muito tempo. E cada vez mais isso vem se tornando realidade.

Mais uma vez, todo o trabalho pra fazer algo especial foi perdido, tudo porque eu não consegui me provar rápido o suficiente ou porque o que estava fazendo estava muito além do que alguém poderia fazer, ou não né? Será que eu sou bom mesmo?

Eis que fico exposto como um fracasso dentro do time, o cara que demorou meses para fazer um produto inteiro funcionar que o outro cara fez em poucos dias. Fico como o mal exemplo negativo de eficiência, o cão velho, onde talvez seja util como o mentor de produtividade que desejamos e só isso, porque ninguém precisa fazer o que o mentor fala, basta não fazer o que ele faz, é pra isso que ele serve, para você não ser como ele.
Deep Object Change Handlers in Typescript
Tags: typescript, javascript, webdev, node
Published: 2020-05-22 14:15:56

---
title: Deep Object Change Handlers in Typescript
published: true
description: In this post, we'll write a deep object change handler that both allows us to specify deep object types and satisfies the Typescript compiler.
tags: typescript, javascript, webdev, node
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/7qx0ukzs3m1ywxhgc0na.png
canonical_url: https://typeofnan.dev/deep-object-change-handlers-in-typescript/
---

Typescript's ability to deeply-type objects is incredibly handy: it gives you confidence that you're accessing the right keys on an object and that you're using those keys as the right types. However, this typing doesn't come for free: it can add complexity to things like change handlers. In this post, we'll write a deep object change handler that both allows us to specify deep object types and satisfies the Typescript compiler. 

# A Sample Deep Object Type

Let's use the following `Settings` type as an example. It contains some visual settings about our app and some information about our user.

```typescript
type Settings = {
  display: {
    mode: "light" | "dark";
  };
  user: {
    name: string;
    age: number;
    admin: boolean;
  };
};
```

We can then create a sample object that satisfies this type. Let's use the following example.

```typescript
const settings: Settings = {
  display: {
    mode: "dark",
  },
  user: {
    name: "Betty",
    age: 27,
    admin: false,
  },
};
```

# Writing a Change Handler

So what if we want a change handler that will change any property two levels deep in this object? The secret lies in the use of Generics. We can specify that our `key` is of type `K`, where `K extends keyof Settings`. Likewise, we can specify that our `subkey` is of type `S`, where `S extends keyof Settings[K]`.

Putting this all together, we get the following change handler!

```typescript
const updateSettings = <
  K extends keyof Settings, 
  S extends keyof Settings[K]
>(
  key: K,
  subkey: S,
  value: Settings[K][S]
): Settings => {
  const newSettings = {
    ...settings,
    [key]: {
      ...settings[key],
      [subkey]: value,
    },
  };

  return newSettings;
};
```

And there we have it: a framework by which we can update deep types and keep our Typescript compiler happy!
No More "About Ruby"
Tags: ruby, documentation, hash
Published: 2020-05-22 14:12:31

---
title: No More "About Ruby"
published: true
description: 
tags: ruby, documentation, hash
---

Some may recall the reason I was posting the "About Ruby" series:  I was completing enhanced Rdoc for Ruby methods far faster than the Ruby team was merging my pull requests; so I stashed the stuff on my own site, and was "publishing" by posting here.

Well, now I'm a brand new ruby-committer (and feeling mighty biggity about that!), and so can merge my own Rdoc patches.  I'm porting the stuff from AboutRuby to the Ruby project itself.

So -- no more "About Ruby" posts.

The Rdoc for Hash that's merged into the master branch may be seen here:
* https://docs.ruby-lang.org/en/master/Hash.html
DEV: A Grant for the Web Awardee 
Tags: grantfortheweb, gftwhackathon, webmonetization
Published: 2020-05-22 14:10:04

Grant for the Web is proud to announce a quarter-million dollars in funding to our first five awardees – curated projects and individuals that demonstrate the breadth of experimentation in the expanding Web Monetization ecosystem. One of those first awardees is DEV!

In this grant, DEV partners to help to drive innovation around open standards in Web Monetization. DEV’s platform boasts 350k+ registered developers and millions of monthly visitors and they will not only implement a site-wide payment pointer as a real-life application of the technology, but they will also introduce functionality enabling authors to add their own payment pointer to their own posts.

DEV will serve as a key promotional partner and community resource by amplifying Grant for the Web’s first public Call for Proposals, encouraging developers to learn about the technology through the #gftwhackathon (including offering cash prizes for the best entries), and driving high-quality submissions towards [Grant for the Web’s open call.](https://www.grantfortheweb.org/apply) 

Peter Frank, co-CEO of DEV says about the grant:

>DEV has long espoused the values of a more inclusive, open, and fair
>internet. DEV Founder, Ben Halpern, published an article over two years
>ago titled “How dev.to could topple Facebook” describing the power of
>open-source and aligned incentives with the community. The Web
>Monetization standard and the Interledger protocol have the potential to
be an important part of a broad macro shift on the web.

Without a vibrant, diverse, and engaged developer community, the mission of Grant for the Web cannot be achieved. Innovative ideas need conversation and connectivity to thrive. That is why we are excited that DEV – because they know that the open web relies on collaboration and networked learning and are bringing that energy to Grant for the Web.

With this grant, DEV will:

* Run a DEV x Grant for the Web community hackathon 
* Implement a payment pointer on DEV.to to serve as a key open-source example of the technology
* Enable DEV authors to add their own payment pointer
* Drive quality submissions to Grant for the Web's public Call for Proposals

‍
[Read more about Grant for the Web's early awardees.](https://www.grantfortheweb.org/post/250000-in-funding-to-early-grantees)
Malware, Virus? Let's clarify with a bit of history!
Tags: security, malware, virus, history
Published: 2020-05-22 14:09:17

Most of us in our daily life, we have at least one time, read, heard speaking of various types of "malicious software". 

Malicious software sometimes is referred only with the word **virus**, the most common jargon to call software that could cause problems.
In reality it is only a type of specific **malware**.

A **Malware** is a broad terminology for distinguishing certain software that could cause problems with our computer, software, or computer network. There is a wide range of existing malware (worm, trojan, ransomware, etc..) but one of the most famous and knows is the Computer Virus.

A **Computer Virus** is a software that looks like a clean program that produces itself copies and spread these copies into other programs or files usually to perform a harmful action. For example the corruption or deletion of the same files.

What is the first computer virus detected in history? 

It is named **Elk Cloner**, created by **Rich Skrenta** in 1982 but the documents behind the first computer virus are confusing and fragmented before the beginning of the microcomputer era when computers were situated only in university labs or banking systems. 
We have only got a few science fiction novels that starting to describe something similar to actual computer viruses, the first written in 1970.
 [Here](https://en.wikipedia.org/wiki/Computer_virus#Early_academic_work_on_self-replicating_programs) for more detail.

The Elk Cloner was an innocuous virus, created for joke purposes.
It spread by infecting the Apple DOS installed in the 1977 **Apple II** with a disk game and activated his replication mechanism during the 50th start of the game.
At that moment instead of showing the game on the screen, it printed the message as follows:

```
  Elk Cloner: The program with a personality
  It will get on all your disks
  It will infiltrate your chips
  Yes, it's Cloner!

  It will stick to you like glue
  It will modify RAM too
  Send in the Cloner!
```
After that if you had inserted other disk into the computer Elk Cloner easily jumped into the disk memory contaminated and repeating the spread in another computer and so on... 

For more detail go to this [link](http://www.skrenta.com/cloner/).

I hope that increased your curiosity about the weird but magical world of malware.
How to Extract Email & Phone Number from a Business Card Using Python, OpenCV, and TesseractOCR
Tags: tesseractocr, imageprocessing, computervision, opencv
Published: 2020-05-22 14:03:58

##In this blog post, you will learn how to extract email and phone number from a business card and save the output in a JSON file.

<q><b><i>Side Note: You can try out with this new course on data visualizations, by Datacamp [Web Scraping in Python](https://www.datacamp.com/courses/web-scraping-with-python?tap_a=5644-dce66f&tap_s=841152-474aa4), [Introduction to Matplotlib in Python](https://www.datacamp.com/courses/introduction-to-matplotlib?tap_a=5644-dce66f&tap_s=841152-474aa4) and [Exploratory Data Analysis in Python](https://www.datacamp.com/courses/exploratory-data-analysis-in-python?tap_a=5644-dce66f&tap_s=841152-474aa4) which helped me a lot in starting my journey into Web Scraping, or you can take up this course on [Image Processing and Computer Vision](https://learn.datacamp.com/skill-tracks/image-processing?tap_a=5644-dce66f&tap_s=841152-474aa4) if you have good experience in Python.</i></b></q> 

##Building the email and phone number extractor with OpenCV & TesseractOCR can be done by following five easy steps :

<li><b>Step 1: We will start by detecting the edges of the document we want to scan.</b></li>
<li><b>Step 2: Using these edges, find the contour(outline) representing the piece of the document being scanned.</b></li>
<li><b>Step 3: Apply a perspective transform to obtain the top-down view of the document.</b></li>
<li><b>Step 4: Using pytesseract to extract text from the scanned image.</b></li>
<li><b>Step 5: Apply regex to identify only the email and phone number in the extracted text and save the output.</b></li>

###Here is the link to the article: *https://datascienceplus.com/how-to-extract-email-phone-number-from-a-business-card-using-python-opencv-and-tesseractocr/*

<q><i>You can download the source code to this blog post here: My [Github](https://github.com/abhiwalia15/Document-Scanner-Using-OpenCV-Python) repository.

Follow me LinkedIn: [Mrinal Walia](https://www.linkedin.com/in/mrinal-walia-b0981b158/)
Follow me on Github: [Mrinal Walia](https://github.com/abhiwalia15)</i></q>
Tutorial Selenium
Tags: python, selenium, webscraping, tutorial
Published: 2020-05-22 14:00:35

---
title: Tutorial Selenium
published: true
description: Tutorial for one of the most important libraries.
tags: python, selenium , web scraping , tutorial
---

# Selenium
---

Selenium is library that can be useful when scraping the web. Unlike the other libraries, Selenium wasn’t originally designed for web scraping. First and foremost, Selenium is a web driver designed to render web pages like your web browser would for the purpose of automated testing of web applications.

#### Install Selenium
```python
pip install selenium
```
#### Use Selenium
```python
from selenium import webdriver
``` 
#### Driver setup
[Chrome Link](https://sites.google.com/a/chromium.org/chromedriver/downloads)
[Firefox Link](https://github.com/mozilla/geckodriver/releases)
[Opera Link](https://github.com/operasoftware/operachromiumdriver/releases)
[Edge Link](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)
```python
# Chrome:
chrome_driver = webdriver.Chrome(“Chrome Driver Path”)
# Firefox:
firefox_driver = webdriver.Firefox(“Firefox Driver Path”)
# Opera:
opera_driver = webdriver.Opera(“Opera Driver Path”)
# Edge:
edge_driver = webdriver.Edge(“Edge Driver Path”)
# Safari
safari_driver = webdriver.Safari() # The SafariDeriver is integrated in Safari.
``` 

#### Open A Website
```python
url = "https://www.example.com"
driver.get(url)
```

For many resources on Selenium or anything else on Python, check out Github:
https://github.com/SeijinD/Python-World/blob/master/main/extends_libraries/selenium.md