teleren/devto huggingface dataset:
Sunsetting the Dev.to iOS App
Tags: changelog, meta, ios, forem
Published: 2021-11-30 21:34:56

2018 was a long time ago...like, a **really** long time ago. 

This November marked the three year anniversary of @ben's [announcement](https://twitter.com/bendhalpern/status/1061323718058786822) of the Dev.to iOS app:

{% twitter 1061323718058786822 %}

Despite his modesty, the first release of Dev.to on iOS was pretty great and just got better and better, thanks in no small part to [impactful contributions from our community](https://github.com/forem/DEV-ios/pulls?q=is%3Apr+sort%3Aupdated-desc+is%3Amerged). 

As all of you know, three years is lifetime in our field, and a lot has changed at DEV and Forem since 2018 (in fact, Forem didn't even formally exist three years ago!). Last summer, [we introduced an iOS app for the entire Forem ecosystem](https://dev.to/ben/forem-s-approach-to-decentralized-social-media-on-mobile-2e1p) (including Dev.to). 

<mark>**Today, we're announcing that we'll soon be discontinuing the Dev.to iOS app in favor of the Forem iOS app.**<mark>

The Forem iOS app works not only with Dev.to, but with other Forems in the [Forem network](https://discover.forem.com) and includes modern mobile features like rich notifications. It's [available on the Apple App Store](https://apps.apple.com/us/app/forem/id1536933197) right now. Your existing Dev.to login credentials work with it, so there's no better time to download it and jump in.

We believe that the Forem iOS app reflects the leaps and bounds we've made as a community since the DEV app was released in 2018 and hope you do, too!   

Thank you for helping us get to this exciting place and cheers to a new and improved Forem iOS experience! 

---

_Questions, comments, feedback? Let team Forem know in the comments below._
Release 0.3 code review
Published: 2021-11-30 21:29:03




**1.** I reviewed the [IPC144 Issue 124](https://github.com/Seneca-ICTOER/IPC144/pull/131 ) - Build PDF in deployment and include when we publish to GH-Pages.
I checked the [docusaurus-config](https://docusaurus.io/docs/api/docusaurus-config#title) optional fields, it seems no field support downloading the document directly if you use the ` links: [ {items:}] `.  I suggest that create a new file, e.g. the name is Seneca-IPC144-download.md.  Then, fill in a back-end interface for downloading files on this page, e.g. https://codeload.github.com/douban/douban-client/legacy.zip/master.
```
var $btn = $("#btn");

//A back-end interface for downloading files is known:
https://codeload.github.com/douban/douban-client/legacy.zip/master

$btn.click(function(){
    window.open("https://codeload.github.com/douban/douban-client/legacy.zip/master");
});
```

After that, in the docusaurus.config.js file, use the following code that can navigate to the download page. 
```
items: [
		{
			label: 'Download',
			to: '/Seneca-IPC144-download',
		 },
          ],
```
**2.** I reviewed another [issue]( https://github.com/Seneca-ICTOER/IPC144/pull/80)-ASCII Collating Sequence image converted into Table
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0wpf4cpwkhorb87mbx4t.png)
I have two suggestions, the first is that at the end of line 47, the table should display " | ", but it is blank.
The second is the page didn't display a subtitle compared with the IPC144 old version.
Tuesday’s Tip – Career-Stalling Habits
Tags: tuesdaystip
Published: 2021-11-30 21:00:42

---
title: Tuesday’s Tip – Career-Stalling Habits
published: true
date: 2021-11-30 20:54:14 UTC
tags: TuesdaysTip
canonical_url: https://www.30minuteproject.com/2021/11/30/tuesdays-tip-career-stalling-habits/?utm_source=rss&utm_medium=rss&utm_campaign=tuesdays-tip-career-stalling-habits
---

It can be easy to get yourself in a rut, but if you're aiming to advance and nurture your career, you need cultivate these common habits. 

## Career-Building Habits

- Learn new things 
  - Employers love to see developers pushing themselves to learn new frameworks, languages, or techniques and will reward initiative (or another employer will).
- Read relevant blogs
  - Keep up to date with your industry and current position by reading relevant blogs so that you’re not blind-sided by a new technology, language, framework, or trend.
- Engage with other developers
  - Networking and engaging with other developers via social media or Meetups will help you stay apprised of current trends and news. 
- Improve your skills
  - Don’t too comfortable in your current position without working to improve your skills continually, or you risk becoming irrelevant, the industry having passed you by.

Sign up for my mailing list and get your free ebook

"The 30-Minute Project: How to improve Your Side Project Game to Become a Better Developer"
at [30-Minute Project](https://www.30minuteproject.com/contact/)
How to structure methods and functions in a React component
Tags: react, reactnative
Published: 2021-11-30 20:18:32

Methods in components could be organized using comments. Common usecases can be broken down into the following comment headers.

1. `// STATES`
2. `// ONMOUNT`
3. `// WATCHERS`
4. `// METHODS`
5. `// COMPUTED`

![comment headers](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1quyqkoi6pbizls5o3at.png)

## Conclusion

- The name of a variable or function should tell you what it is and how it is used.

- Comments can lie. They can be wrong to begin with, or they can be originally accurate and then become outdated over time as the related code changes.

- Comments can often be avoided by using clearly named variables and extracting sections of code into clearly named functions.

- Comments that describe what a method does, what arguments it takes, and what it returns are often redundant at best and misleading at worst.

## References
[In Defense of Clean Code](https://dev.to/thawkin3/in-defense-of-clean-code-100-pieces-of-timeless-advice-from-uncle-bob-5flk)
Release 0.4 – Implementing a Feature!
Tags: opensource, javascript, beginners
Published: 2021-11-30 20:12:19


## Hey Guys
Our last release is finally here, and for my release I decided to implement a feature in someone else’s project.


## Why did I choose a feature?
I decided to go with a feature because I feel like this way, I can learn a lot more. To add a feature I must read, understand, and add to the author’s code, making sure it follows its way of coding.

--- 

## The Project and The Issue


![Lua-patterns](https://i.ibb.co/mvyb19S/Screenshot-2021-11-30-151847.png)


The project basically is small, but I think I can learn a lot by working on it.

The projects’ goal, as the author wrote:
>A tool for inspecting, analyzing and learning Lua patterns.

The issue I decided to work on was [this one]( https://github.com/GitSparTV/lua-patterns/issues/3).

Basically what I should do is to find a way to read from users input, analyze it and add color coded backgrounds to the characters that are not scaped, parenthesis not closed and etc.

Here is an example from [Regex101](https://regex101.com/) on how it could work.

![regex101Example](https://media0.giphy.com/media/UygGBrcEGhW46AgG6d/giphy.gif?cid=790b761143a97213f8eb53081929f463d9f7f3fc931d93b5&rid=giphy.gif&ct=g)

--- 

## How am I going to do that?

First, the entire project is written in vanilla JS, which means no npm modules to help us in this task.
I have talked to the Author of the project and he told me that one option to solve this was to use [Slate]( https://www.slatejs.org/examples/richtext).

![Slate](https://i.ibb.co/TmmwGjp/Screenshot-2021-11-30-150755.png)

But this will require us to install npm and learn how to implement it. How to get input from it and how to edit this input and redisplay it.

The other option was to create two textboxes, one for user input and another one to display the colored result. This option does not need npm modules and will keep it project only with Vanilla JS.

I am still deciding which path to go, this week I will be studying more about Slate and see if it’s the best option.

--- 

## Finally
Thank you for reading until here.
I am pretty sure I can implement this feature; it will be a challenge for sure, but I am confident.
My Coding Bootcamp Odyssey - Week 6
Tags: beginners, postgres, webdev
Published: 2021-11-30 20:10:26

Intensity, highs and lows, and spaghetti - this week had it all!

More complexity layered on what we learnt last week and a sense of building to a 5 -day sprint next week according to our calendar. This meant more files for database seeding, routers, controllers, models, error handling, testing, utilities, etc. It seems like spaghetti code but there is structure there.

There has to be separation of concerns, the alternative is chaos, needle in a haystack time. Finding a typo in 500 lines of code.

I found myself getting disorientated at times: what should I `require` here? Do I need to destructure? What is the actual purpose of this function? Think, what is being returned, does it need to be returned? I am SO SLOW!!!

Break, breathe, it is not a race. You are not competing with anyone, except yourself - had to remind myself this a few times this week.

Although I did not finish everything I wanted to, I feel prepared for an extended project to consolidate what I have learned and maybe learn some more - in a word: progress.

## This weeks tech roll call:
-  [node-postgres](https://www.npmjs.com/package/pg)  to query PostgreSQL data from within an express server.
- Using environment variables to auto-use test or development data.
- Introduction to  [Supertest](https://www.npmjs.com/package/supertest)  to test endpoint responses from a server.
- Node environments and  [dotenv](https://www.npmjs.com/package/dotenv).
- Using error handling middleware in an express application.
- Identifying PSQL errors and creating custom errors.
- Setting up routes using express.Router()
- Connect to different PostgreSQL databases programmatically.
- Seeding database tables programmatically.
- Manipulating data to conform to database requirements.
- SQL injection and handling it with  [pg-format](https://www.npmjs.com/package/pg-format).
- Handling optional queries in a request.
- Testing the order of a response body using a  [particularly excellent npm package](https://www.npmjs.com/package/jest-sorted).
If I Could Build any Technology with no Constraints
Published: 2021-11-30 20:03:31

In this post, I will be talking about a technology that I would create if time, money, and other constraints were not a problem. The technology that I would create would be a combination of a washer and dryer. 

The fact that this does not widely exist already blows my mind. Personally, I need to walk across the building and all the way down to the basement to do my laundry. After doing this with the washer, I then need to go all the way back down just to transfer my clothes to the dryer. If these two were combined, it would eliminate a trip and I would just need to go back down when they are finished.

I believe this would even be of use for a person that is not far from their washer or dryer. For example, a person may hold off on going grocery shopping for say, because they are doing laundry and need to put their clothes in the dryer after they are washed. With the washer and dryer combined, there is time to go grocery shopping since they do not need to wait for the washer to finish.

Although this is completely a first world problem, it would be something very beneficial that I believe everyone would use.
Rails Blog Post
Tags: rails
Published: 2021-11-30 19:42:42

I finished my Rails blog post for my Phase 3 project at Flatiron School.

I decided to create a project similar to my Sinatra project; my Sinatra project was a "pupdate" blog to keep up with puppy updates and my Rails project is about rating dog training. Dogs are given a score, top scores are displayed separately, and the scores have space for descriptions on training progress.

I created models and controllers for the training updates, the dogs, and the users. A breed model also allowed for a dog to belong_to a breed. I set up the has_many and belongs_to relationships as needed.

Users are able to log in, log out, see the dogs listed that are available to provide a training score for, or create a new dog to score. Validations are in place so users are not able to update others' scores or added dogs.

Another element of this project that is more advanced than Sinatra is that there is the option to log in with Google. Omniauth allows users to log in with third-party logins, such as Facebook, Twitter, Github, or Google. I chose to do Google. Users can use their Google account to log in.

If you want to check out my project, here is the [GitHub repo](https://github.com/victoriaehrbar/dog-blog).
⭐️ CodeCast's Coding Advent Calendar 🎄
Published: 2021-11-30 19:26:29

Hello and welcome to [CodeCast's](codecast.io) 2021 Coding Advent Calendar. We are going to be posting a new resource daily. It could be a coding challenge, a tutorial, a Cast, or something else entirely. 

![Advent Calendar Promo Image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gjase6u4qar5g8pyh0lh.png)

Be sure to check back daily to see the next day get released!

You can also be sure to follow us on [Instagram](https://www.instagram.com/codecastapp/), [Twitter](https://twitter.com/CodeCastApp), [Facebook](https://www.facebook.com/codecastapp), and [LinkedIn](https://www.linkedin.com/company/code-cast/) to see our daily advent releases there!
Write a Counter with Redux
Tags: redux, javascript, beginners, webdev
Published: 2021-11-30 19:06:23

* Now that both you and I have learned all the core principles of Redux! We've seen how to create actions and action creators, create a Redux store, dispatch your actions against the store, and design state updates with reducers. You've even seen how to manage complex state with reducer composition and handle asynchronous actions.
* In this section, you'll execute a simple counter with Redux from scratch. The basics are provided in the code editor, but you'll have to fill it all in. Once you're finished you should be able to dispatch INCREMENT or DECREMENT actions to increment or decrement the state held in the store. Good luck building your first Redux app.

* Provided Code: 
```React
const INCREMENT = null; // Define a constant for increment action types
const DECREMENT = null; // Define a constant for decrement action types

const counterReducer = null; // Define the counter reducer which will increment or decrement the state based on the action it receives

const incAction = null; // Define an action creator for incrementing

const decAction = null; // Define an action creator for decrementing

const store = null; // Define the Redux store here, passing in your reducers
```

* Answer:
```React
const INCREMENT = 'INCREMENT'; 
const DECREMENT = 'DECREMENT'; 

const counterReducer = (state = 0, action) => {
  switch(action.type) {
    case INCREMENT:
    return state + 1
    case DECREMENT:
    return state - 1
    default:
    return state
  }
}

const incAction = () => {
  return {
    type: INCREMENT
  }
};

const decAction = () => {
  return {
    type: DECREMENT
  }
}; 

const store = Redux.createStore(counterReducer); 

console.log(store.getState()) // 0
store.dispatch(incAction()) 
console.log(store.getState()) // 1
```
Music Visualiser with Three.JS
Tags: javascript, webdev, programming, beginners
Published: 2021-11-30 18:43:42

  In an attempt to learn THREE.js — the 3D rendering WebGL framework and WebAudio API, I made something that visualises the music in a very simple way. This article documents the whole process.
Final thing first:

{%youtube n3rkF0el0AQ%}


(Just use a .mp3 / .mp4 / .wav file to see it work. If you are out, you can use this)
A Primer on WebAudio API
The HTML5’s <audio> tag when combined with the WebAudio API, becomes quite powerful. It’s a dynamic tool that lets you process and adds audio effects dynamically to any kind of audio.


The Web Audio API involves handling audio operations inside an audio context and has been designed to allow modular routing. Basic audio operations are performed with audio nodes, which are linked together to form an audio routing graph. Several sources — with different types of channel layouts — are supported even within a single context. This modular design provides the flexibility to create complex audio functions with dynamic effects.

The audio pipeline starts by creating an audio context. It should have at least a single audio source — which can be thought of as an entry point for external files, mic input, oscillators, etc. Once we have a source in place, the signal is processed and moved ahead in the pipeline using audio nodes. After processing, the signal(s) are routed to the audio destination, which can only be a single one in the whole context.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l58qub21ma7j23xtczpc.png)


Modular Routing

The simplest illustration has a single source and a destination, without any effects or processing, inside the context. Why would anyone use this? Maybe they just want to play the sound without any changes.

Refer the complete article here:- https://www.epicprogrammer.com/2021/11/music-visualiser-with-threejs-web-audio.html
Content Inspired by [Epic Programmer](youtube.com/c/epicprogrammer?sub_confirmation=1)
¿Vos sabes cuántas pinturas de uña hay que vender para comprar eso?
Tags: spanish, moneyadvice
Published: 2021-11-30 18:39:36

---
title: ¿Vos sabes cuántas pinturas de uña hay que vender para comprar eso?
published: true
description: 
tags: spanish, MoneyAdvice
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yls6nltq0lhti5v2214u.png
---

Me gané $32 dolares, en 15 minutos, y me vino a la mente una historia personal. 

Cuando gano esa cantidad de dinero sin salir de la casa. Solo me pongo a pensar "Cuantas pinturas de uñas tengo que vender"

# Un poco de contexto
Se que algunas personas ya saben, pero si tienen poco tiempo de seguirme, yo soy el menor de 4 hermanos (todos hombres, que paciencia la de mi madre) y mis padres son comerciantes de cosméticos que fueron creciendo de extrema pobreza hasta clase media. 

En mi infancia, mi mamá preparaba el almuerzo e íbamos por las tardes a un [wet-market](https://en.wikipedia.org/wiki/Wet_market) local, llamado **Mercado Oriental**. Ahí pasaba cuando no estaba en el colegio, y ahí tuve a mis 14 años, mi primer trabajo en el negocio familiar, vendiendo cosméticos ambulante.

Como todo niño, si veía un juguete o algo de comer o beber, le pedía algo a mis padres, pero, ya que iba todos los días al negocio, y yo pedía varias veces al día, era muy común que yo escuchara:

# ¿Vos sabes cuántas pinturas de uña hay que vender para comprar eso?

Al ser hijo de padres comerciantes, en ese momento minoristas de cosméticos, ésta era una típica pregunta que escuchaba cuando mis hermanos o yo, le pedíamos algo que queríamos y no necesitábamos. En ese momento no tenía mucho sentido para mí, pero ya sabía que esa frase significaba que no lo comprarían.

Ahora que soy adulto, la frase vuelve a mi mente, y la comprendo por completo; al ser comerciantes minoristas sus ingresos dependían de cuántos artículos vendían y de cuánto ganaban por cada artículo. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jngd582rixrqvbzcqk4z.jpeg)

Al decir pintura de uña (o esmalte de uñas), se pudieron haber referido a cualquier artículo pequeño de bajo precio y baja ganancia. 

Por ejemplo, en moneda local NIO (córdobas) si la pintura de uña era vendida en C$10 y le ganaban C$0.5, para poder comprar algo de C$50 tenían que esforzarse para vender 100 pinturas de uña, es decir había que vender C$1000 (mil córdobas) para poder gastar cincuenta. 

Además, no estaba permitido gastarse toda la ganancia del día, porque había que invertir nuevamente una parte al negocio para luchar contra la inflación o cualquier otra perdida.

Considero que ésta es una de las lecciones más importantes de mi vida sobre el dinero.

Ya esos tiempos quedaron atrás, y ahora que trabajo 100% remoto, me siento feliz cuando genero USD 30 o $50 dólares en una hora, sin salir de la casa. 

Pero aún así lo primero que viene a mi mente al dar gracias es: 
**Cuantas pinturas de uñas tengo que vender**
HTML5 Canvas - Criando e alterando tamanho
Tags: javascript, canvas, ptbr, braziliandevs
Published: 2021-11-30 18:24:56

Olá você que me lê. Hoje vamos criar e redimensionar o tamanho do canvas.

**Criação**

de início precisamos abrir as tags html

```HTML
<canvas id="canvas">Seu navegador não suporta este conteúdo</canvas>
```

Note que a tag canvas possui o atributo "ID" para que possamos capturar a tag pelo JavaScript. Também é usada uma frase em meio as tags para informar navegadores que não possuam compatibilidade com Canvas.

Veja a lista de navegadores com suporte aqui 

Logo após precisamos capturar a tag HTML para o JavaScript

```JAVASCRIPT
const canvas  = document.getElementById('canvas')
```

Foi utilizado a função de captura direto pelo id, mas nada impede de usar outras funções como a de querySelector.

**Redimensionamento**

Após a criação só trabalharemos com o documento JavaScript, para fazer o redimensionamento utilizamos a constante canvas previamente capturada.

Pode-se definir tamanhos em pixels passando os valores para a largura(width) e altura(height)

```JAVASCRIPT
canvas.width = 300

canvas.height = 300
```

Ou pode-se utilizar o tamanho completo da janela que o canvas será executado

```JAVASCRIPT
canvas.width = window.innerWidth

canvas.height = window.innerHeight
```

é possivel alteração de estilo por CSS, porém para um melhor desempenho e para deixar o canvas dinâmico o melhor é redimensioná-lo diretamente no javaScript

Pronto agora sabemos exatamente como podemos criar e alterar o tamanho do nosso canvas, para alteração de estilo, cor, bordas, sombras e etc utilizamos CSS.

Obrigado por ler, dúvidas, sugestões ou críticas, aqui embaixo nos comentários ou por email. Terei o prazer em responder.

**Referências:**

Livro -> [Desenvolva jogos com HTML5 Canvas e JavaScript](https://amzn.to/3DaaJyz)
How to self-learn Automation Testing Skill as a non-IT person?
Tags: javascript, java, selenium, tutorial
Published: 2021-11-30 18:21:54

Hi friends,
I’ve been working as a flight attendant for 7 years
Because of the hardest hit by pandemic, I have had to work as a manual tester for couple months . For now I just recognize that I have to grow up my career in this IT industry by challenging myself with Automation Testing Skill
Please help me to write out any helpful information for self-learn! If somebody could help, I really appreciate!
Hope you guys have a great moment!
Yuna