teleren/devto huggingface dataset:
Hello World! - Compartilhando minha jornada de aprendizado
Tags: beginners
Published: 2022-04-20 23:17:19

Olá! Eu sou a Kris e este é o meu primeiro artigo. Decidi compartilhar a minha jornada de aprendizado na programação para, principalmente, colaborar com a comunidade e acompanhar a minha evolução. 

---



## Como entrei nesse incrível mundo da programação?

A tecnologia sempre me interessou, mas não foi o meu foco no primeiro momento. Na época, meu estudos eram voltados para a área do direito. Porém, num dia qualquer de trabalho, vi um colega (que é agora meu amigo) resolver um problema com programação. 

Eu achei tão fascinante que larguei tudo o que estava fazendo, voltei a estudar para o ENEM e passei em uma faculdade estadual aqui do Rio de Janeiro para cursar Análise e Desenvolvimento de Sistemas.


## E então veio a pandemia...

Perdi um semestre na faculdade e depois não consegui continuar presencialmente. Isso me levou a transferência para um curso EAD. Entretanto, por causa da pandemia, comecei a trabalhar remotamente e isso foi um divisor de águas na minha vida. Sempre levei 2/3 horas para chegar ao trabalho/faculdade em todos esses anos (trabalho desde os 18 e atualmente tenho 26 anos). Desse modo, ganhar tempo extra foi muito bom porque conseguia estudar mais. 


## “Erro” de iniciante

Como era bem iniciante e não tinha ninguém experiente em desenvolvimento na minha equipe, eu queria abraçar o mundo e resolver todos os problemas que eram apresentados. Assim, eu aprendi sobre desenvolvimento web, atuei no front-end e no back-end, RPA*, banco de dados com implantação de sistemas, segurança e por aí vai... Aprendi e executei tudo ao mesmo tempo, sem muito aprofundamento. Virei uma generalista logo de cara e não me tornei especialista em nenhuma dessas áreas. 


<aside>
💡 **Robotic Process Automation** (RPA): é o termo que define a tecnologia de criação de robôs para a automação de processos. Robôs programados para desempenhar tarefas de trabalho repetidamente, seguindo sempre regras de negócios e condições pré-estabelecidas pela equipe de automação.

Fonte: [O que é RPA? - RPA Insiders](https://rpainsiders.com.br/blog/artigo/o-que-e-rpa/)
</aside>


## E agora?

Bom, ao notar que a falta de especialidade era um problema, decidi manter o foco de estudo em uma única área que mais me interessava no momento: o RPA. Então fui atrás de conhecimento, pesquisei como o mercado atuava, falei com pessoas experientes no linkedin e uma delas virou um mentor que está me auxiliando nessa jornada. 

Nesse primeiro momento estou compenetrada a ter uma ***imersão RPA*** com foco em programação. Estou estudando sobre:

- **Fundamentos RPA**
- **Java + fundamentos**
    - **Conceitos básicos**
    - **Orientação a objeto**
    - **Estrutura de dados**
    - **Maven**
- **Automação com Selenium**


Esta é a parte inicial do meu roadmap que ainda inclui **performance de robôs, padronização de projetos e qualidade na implementação de automações** e etc... 

Em breve volto aqui para falar mais um pouco sobre o que estou aprendendo e praticando.

Até logo!
What if you don't want to hire someone until they can prove they have what it takes?
Tags: recruiting, interviewing, satire
Published: 2022-04-20 23:06:00

Do you want to hire talented people, but you also don't want to commit? 

Do you find that you start disliking people after a while, and would rather spend a bunch of time making them do things for you first so you can be sure you won't hate them later? 

Did you have to jump through hoops to get where you are and don't feel obliged to give anyone else an easier time?

Well, do I have a product for you!

Introducing Money™.

With this revolutionary product, you can acknowledge to a candidate that your hiring process requires more of their time than other employers and thank them for going through it.

Invented again and again by our ancestors over thousands of years, Money™ is accepted everywhere goods and services are sold.

In a double-blind scientific survey, 10/10 candidates preferred receiving Money™ for interview-related work over not getting Money™ for it. It was also [tested on animals](https://en.wikipedia.org/wiki/Prostitution_among_animals) a few times, so you know it's safe!

To find out if Money™ is right for your business, visit [DoPeopleDeserveToBePaidForTheirTime.com](https://dopeopledeservetobepaidfortheirtime.com).



Photo by <a href="https://unsplash.com/@punttim?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Tim Gouw</a> on <a href="https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
🔐 Authentication: Is Identity-aware Proxy enough for most use cases?
Tags: discuss, cloud, security, webdev
Published: 2022-04-20 22:21:47

Assuming an application is for internal use only (containing sensitive information), there are 3 ways to implement an authentication system.

1. Self-implementation.
2. Using third party auth providers like Google or Auth0.
3. Using Identity-aware Proxy.

Between the 3 choices, self-implementation is too much of a hassle, so only (2) and (3) are most likely the way to go.

Using third party providers is the most well-known choice (e.g., Auth0), and it also offers ability to setup authorization mechanism (e.g., I can see my folder, but am I allowed to see admin panel?)

Identity-aware Proxy on the other hands is an authentication layer to prevent your request from reaching the server. It is used to replace VPN in cloud environment. In a sense, it also offers simple authorization as you can declare which group of users can reach the web server (not down to endpoint level though).

You can have both authentication mechanism implemented in your application, and an Identity-aware Proxy enabled.

![Identity-aware Proxy workflow](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wts8rmf8gb8gihlgsvnt.png)

With that said, for an internal web application (with sensitive information), is using only Identity-aware Proxy enough if there is no complex authorization involved? What are the downsides?

If you are using both at the same time, why? Also, if both Identity-aware Proxy and application login page use the same authentication provider (e.g., Google SSO), does it make the login page become redundant?
AWS Well-Architected Framework - Security Pillar
Tags: cloud, security, aws
Published: 2022-04-20 22:09:33

## What Is the Security Pillar?

The Security pillar encompasses the ability to protect data, systems, and assets to take advantage of cloud technologies to improve your security.

## Why is Security important to improving my architecture?

### Customers

Your customers may be internal to your organization, or external.

### Legal and regulatory requirements

You will have legal and regulatory requirements that appropiate security controls and architecture can help address.

## What are the design principles of the Security Pillar?

### Implement a strong identity foundation

Implement the principle of least privilege, and enforce separation of duties with appropiate authorization for each interaction with Amazon Web Services (AWS) resources.

### Enable traceability

Monitor, alert, and audit actions and changes to your environment in real time. Integrate log and metric collection with systems to automatically investigate and take action.

### Apply security at all layers

Apply a defense-in-depth approach with multiple security controls. Apply to all layers (for example, edge of network, VPC, load balancing, every instance and compute service, operating system, application, and code).

### Automate security best practices

Use automated, software-based security mechanisms to improve your ability to securely scale more rapidly and cost-effectively. Create secure architectures, including the implementation of controls that are defined and managed as code in version-controlled templates.

### Protect data in transit and at rest

Classify your data into sensitivity levels and use mechanisms, such encryption, tokenization, and access control, where appropiate.

### Keep people away from data

Use mechanisms and tools to reduce or eliminate the need for direct access or manual processing of data. This reduces the risk of mishandling or modification and human error when handling sensitive data.

### Prepare for security events.

Prepare for an incident by having incident management and investigation policies and processes that align to your organizational requirements. Run incident response simulations, and use tools with automation to increase your speed for detection, investigation, and recovery.

## What are the best practice areas of security?

- Security Foundations
- Identity and Access Management
- Detection
- Infrastructure Protection
- Data Protection
- Incident Response
Angular Universal ENV Variables with Webpack and Dotenv
Tags: angular, webdev, angularuniversal, firebase
Published: 2022-04-20 22:05:09

In the last week for some reason, my [Vercel Hack](https://dev.to/jdgamble555/angular-universal-env-variables-on-vercel-e6j) stopped working. The variables were not importing as expected. 

In case this does not work for you, here is the webpack version. I wonder if using webpack actually slows down the build process or not? Should it be avoided? Comment if you know please. I am thinking you should avoid any external dependencies when possible, but this makes using `process.env` seemless.

Here are instructions with Angular Universal. I had to compile different results on Google, as I tried to simplify things that others seem to over complicate --- as usual. ( ͡° ͜ʖ ͡°)

## Install Dependencies

```sql
npm i -D @angular-builders/custom-webpack
npm i -D @angular-builders/dev-server
npm i -D dotenv
```
## Create **custom-webpack.config.ts** 

Always use Typescript! This should be a rule for all JS developer companies. Put this in your root directory.

```typescript
import { EnvironmentPlugin } from 'webpack';
import { config } from 'dotenv';

config();

module.exports = {
  plugins: [
    new EnvironmentPlugin([
      'FIREBASE_API_DEV',
      'FIREBASE_API_PROD'
    ])
  ]
}
```
Of course I am using a Firebase example here, as you can import it as a JSON file.

## Edit Environment Files

**environment.prod.ts**
```typescript
export const environment = {
  production: true,
  firebase: JSON.parse(process.env.FIREBASE_API_PROD as string)
};
```
If you are just importing a string, you don't need `JSON.parse()` here. Do the same for all environment version files.

## Edit Angular.json

Replace **projects.architect.build.builder**:
From:
```sql
@angular-devkit/build-angular:browser
```
To:
```sql
@angular-builders/custom-webpack:browser
```

Replace **projects.architect.serve.builder**:
From:
```sql
@angular-devkit/build-angular:dev-server
```
To:
```sql
@angular-builders/custom-webpack:dev-server
```
Replace **projects.architect.test.builder**:
From:
```sql
@angular-devkit/build-angular:karma
```
To:
```sql
@angular-builders/custom-webpack:karma
```

Replace **projects.architect.server.builder**:
From:
```sql
@angular-devkit/build-angular:server
```
To:
```sql
@angular-builders/custom-webpack:server
```

Add to:
**projects.architect.server.options**
**projects.architect.build.options**
**projects.architect.test.options**

```json
"customWebpackConfig": {
  "path": "./custom-webpack.config.ts"
},
```

## Create Your .env File

Put your variables in your `.env` file as usual:

```sql
FIREBASE_API_DEV={"apiKey":"..." ...}
FIREBASE_API_PROD={...}
```

And done. Here is [my repository](https://github.com/jdgamble555/fireblog.io/blob/master/angular.json) if you need an example.

**NOTE:** Remember to add `.env` to your `.gitignore` file.

J
Operational Excellence Pillar - Best Practice Areas
Published: 2022-04-20 21:38:19

## Organization

### Why is the Organization best practice area important?

You need to understand your organization's priorities, your organizational structure, and how your organization supports your team members so that they can support business outcomes.

- _Organization priorities_ - There needs to be common understanding across your organization of the business value of your workload and the role of each team in supporting it. Teams need to have shared business goals to set the priorities that will enable business success.
- _Operational model_ - Teams need to understand their roles in the success of other teams, and the role of other teams in their success. Understanding responsability and ownership will help focus efforts and maximize the benefits of those efforts.
- _Organization culture_ - Your organization needs to provide support for team members so that they can be more effective in taking and supporting the business outcomes.

---

## Prepare

### Why is the Prepare best practice area important?

To prepare for Operational Excellence, you have to understand your workloads and their expected behaviors. You will then be able to design them to provide insight into their status, and build the procedures to support them. The Prepare best parctice area focuses on design telemetry, improving flow, mitigating deployments risks, and understanding operational readiness.

- _Design telemetry_ - It is important to ensure the workload provides the information necessary (for example, metrics, logs, events, and traces) for you to understand its internal state across all its components.
- _Improve flow_ - You need to emphazise practices that accelerate the velocity of beneficial changes towards production, that limit the issues that move forward, and that enable identifying and fixing issues before they can make it to production.
- _Mitigate deployment risks_ - It is important that you adopt approaches that allow you quickly identify quality and rapidly recover from changes that do not have desired outcomes. Implement engineering practices that support reducing the number of defects and that enable quick and safe fixes.
- _Operational readiness_ - It is essential to understand how ready the workload is to enter production and how ready your teams are to support it. By understanding the risks of operating the workload in production, you can make an informed decision about whether to do so.

---

## Operate

### Why is the Operate best practice area important?

You need to know how to operate your wokloads and understand the health of your workload and operations activities. Through this understanding, you can identify when organizational and business outcomes are at risk and respond appropiately.

---

## Evolve

### Why the Evolve best practice area important?

You need to have a process for continuous improvement of both your workload and your operations activities. This includes implementing feedback loops, learning from experience, making improvements, and sharing what is learned to benefit your entire organization.
Youtube and Twitter Feed Clone using TailwindCSS
Tags: tailwindcss, css, youtube, twitter
Published: 2022-04-20 20:31:27

Hi Guys!
I've been learning Frontend CSS frameworks like tailwindcss and Bootstrap for a while now. 

For the first time. I've tried to create a clone of Youtube Homepage and Twitter feed page using TailwindCSS. Hope you like it.

Checkout live demo [Here](https://tronajay.github.io/frontend-clones/)

Checkout Github Source code [here](https://github.com/tronajay/frontend-clones)


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


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3b84o27aj12u9ek8yeps.png)
How to use your machine completely with your keyboard?
Tags: productivity, time, keyboard, shortcuts
Published: 2022-04-20 20:30:43

Hello, developers.
Hope you all having a productive day.

So, I bought a new keyboard and I had to use a mouse along with it to be able to do some tasks on my machine.

Even though I have a pretty fast typing speed and I use plenty of shortcuts, switching back and forth from/to my mouse keeps slowing me down.

I wonder if I can completey use my machine only with my keyboard.
To freely navigate webpages on a browser (to quickly go to a specific position), code, use software like figma/photoshop that focus mainly on using a mouse, do daily tasks, ...

What shortcuts or tricks do you use the most to imporve your productivity and get away from your mouse/touchpad?

Your answers are highly appreciated. ^_^
Cloudflare Pages and updating the Node.js version
Published: 2022-05-03 22:21:58

---
title: Cloudflare Pages and updating the Node.js version
published: true
date: 2022-04-20 19:14:53 UTC
tags: 
canonical_url: https://hannan.codes/deploying-gatsby-on-pages/
---

TLDR: I explain the story here, if you want to go to solution, go a little below.

In the last post, I mentioned, my will to blog and Cloudflare’s automagical ability to setup auto deployments from Github Repository. But it still took me some time to figure that what I was looking for was there all along.

If you are from the same time as me, you’ll probably see a cryptic error mentioning that Node.js version is not supported by Gatsby.

You may think that Cloudflare Pages Build system doesn’t support any higher versions and start deliberating some other options such as Github Actions, which might give you more control over the node version and get your site up and running. But this option has it’s own downsides.

It turns out that Cloudflare Pages unlike it’s Worker’s product, doesn’t have a Github Action for it. Hence, the workflow I brainstormed turned out to be something like the following

- Generate Github Artifacts through a Github Actions Workflow
- Once generated push the artifacts to a branch on the same repository or a different repository
- Let the Cloudflare Pages listen to that branch/repository so it can auto deploy the static artifacts

As you can see, it’s cumbersome and who needs to maintain a separate build process.

Thankfully, there’s an easier way to do this.

### Easiest Solution

The easiest solution I found for this problem was just tell Cloudflare to use a newer Node.js version than the default one it currently uses. This is possible, by changing the `NODE_VERSION` environment variable in the settings of your Cloudflare Pages project.

There are range of configurable environment variables that Cloudflare offer for different languages and runtimes it support. You can take a look on [Build Configuration](https://developers.cloudflare.com/pages/platform/build-configuration/#language-support-and-tools) to learn more about these.

Yes, So No Extra Complicated Build Processes required, thanks for the configurability of Cloudflare Pages.

### Conclusions

So I guess the conclusion of this post is, it always pays to look deeper into the product and see if they have any native solutions to the problem.

In short, Read The Manual and Save Some Time :)
What makes a good QA Engineer Part 1: Tester Mindset
Tags: testing, qualityassurance, testautomation, softwaretesting
Published: 2022-04-20 19:04:17

In this series, we will discover in a nutshell and straightforward points what makes a good Quality Assurance Engineer that rocks.

> The name of the series is inspired by this song [What makes a good man](https://www.youtube.com/watch?v=08h0IVs4RKQ), which I encourage you to listen, it's really a good one. :D

So without long intro, let's go ahead and start with the part 1 and the most important skill (in my opinion), which is The Tester Mindset.

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

The following 10 skills are what shapes the mindset of a good QA Engineer:

1. **Critical thinking**: having an open mindset instead of clinging onto prejudices. Thinks, challenges, explores, investigates and questions rather than just accepts, checks, validates and verifies.
2. Curious about learning and exploring.
3. Evaluating the possibility of failures.
4. Aiming to NOT just find bugs, but prevent them.
5. Flexible: able to switch between big-picture (which could also be called business-oriented) and detailed analytical mindsets at need.
6. Making sure the app doesn’t do what it isn’t supposed to do (which is different than making sure it does what it is supposed to do) but in an efficient manner.
7. Being able to spot patterns and inconsistencies.
8. The more time testers spend doing manual tasks like documenting test cases, the less time they have to do value-added activities like finding defects
9. Don’t focus on the overall defect count (Focusing on quantity over quality is a mistake).
10. Everyone must be focused on creating the best experience possible for the end-user.

Conclusion:
The most important skill that shapes a good QA Engineer is the mindset, that will difference between being an OK QA engineer and good one.

See you in the part 2.
Thanks for reading and happy testing ❤️ ❤️ 😃
Feel free to reach out on [Linkedin](https://www.linkedin.com/in/moaz-moharam/).
Rat Game - A terminal-based RPG
Tags: python, codenewbie, showdev, gamedev
Published: 2022-04-20 18:15:13

Rat Game is a terminal-based RPG that was completely coded in Python. In Rat Game you play as a hero tasked with making their way through a dungeon full of various creatures. 
I made Rat Game as my choice of a final project for the Codecademy CS 101 course. It's one of my only codes thus far that are completely my own, and after 3 long days of working on it, I think that it's something I can feel relatively proud of.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/52vltbzaz2lw35iqp8ac.gif)

Once you start the game you will be asked for a name for your hero and what weapon to equip them with. This weapon can be a choice between a dagger, a sword, or an axe (each with their own unique stats). 
Once you have chosen a name for your hero and have equipped them with your weapon of choice, you face your first foe "Remy the Rat". After "Remy" has been defeated you must fight your way through Skeletons and Ogres in order to make your way to the final boss "The Big Cheese". 
In your encounters you can choose to attack your enemy directly, block for a chance to rebound half of your enemy's damage back at them, or even heal if you're looking a little low on health.

If you're interested in the game and would like to give it a try, you can check it out on [GitHub](https://github.com/TylerB2000/Rat-Game).

Honestly I got way too sucked into this game while making it. I really didn't want it to be too easy or too hard before putting it out there. Even though the program is pretty simple, I really did enjoy my time making it and hope that in the future I will be working on similar and larger projects. Who knows, maybe I'll come back and improve a few things once I finish my course and get a bit more experience.
Welcome Thread - v170
Tags: welcome
Published: 2022-04-20 18:13:54

---
title: Welcome Thread - v170
published: true
description: Welcome to DEV! A thread of hellos and intros.
tags: welcome
canonical_url: 
---

![Oprah saying "welcome to the team"](https://media.giphy.com/media/mCbUi0FyYhHHhutEV8/giphy.gif)

### Welcome to DEV!

1. Leave a comment below to introduce yourself! You can talk about what brought you here, what you're learning, or just a fun fact about yourself.

2. Reply to someone's comment, either with a question or just a hello. 👋 

**Great to have you in the community!**
Welcoming myself to the tech blogging space
Published: 2022-04-20 18:09:02

I am very excited to start documenting my software development journey. My stack is mainly Java Spring Boot and Python Flask for API Development. 
My posts will be centered on general software engineering practices as well as Spring Boot concepts.

Cheers to my tech journey!
![Cheers](https://media.giphy.com/media/29wik0hT7Ck9jppi6D/giphy.gif)