teleren/devto huggingface dataset:
Testes Unitários - Como e quando usar para iniciantes
Published: 2023-09-19 20:08:20

> _"Me considero desenvolvedor fazem oito anos ~ desde essa publicação ~ e somente agora entendi como e para quê serve teste unitário."_

Me considero desenvolvedor fazem oito anos ~ desde essa publicação ~ e somente agora entendi como e para quê serve teste unitário.

O teste unitário é algo que é muito requerido pelo mercado, mas POUQUÍSSIMA gente sabe DE FATO, como explicar para um iniciante para que serve um teste unitário e quando utilizá-lo.

E eu vou acabar com esse problema DE VEZ! Já que é um conselho que eu gostaria de ter recebido quando comecei a escrever códigos em React/NextJS em 2020.

### A Analogia

Imagine o seguinte cenário, você tem um carrinho e precisa saber o preço de todas as coisas que nele tem. Seria muito custoso para você ficar pensando em cada preço, fazendo o cálculo de cabeça para finalmente chegar no caixa e dar o dinheiro certinho, certo?

Esse cenário funciona para coisas que a gente consegue carregar na nossa mão, mas quando se trata de um carrinho, é muito trabalhoso e muitas vezes nem vai estar certo.

### O Teste Unitário

O teste unitário nada mais é do que o caixa do supermercado, ele será responsável por pegar cada produto e validar ele, verificando o preço e se de fato ele é o produto que você selecionou. Nossa mente processa isso tão rapidamente que se quer analisa duas vezes se pegamos o produto corretamente, exceto quando é um produto que não foi verificado na primeira vez.

Então saiba que para usar um teste unitário, não é necessário para uma conta de 1+1 por exemplo ou 35+65, ou seja, coisas simples, mas quando envolve muita entrada e saída de dados, algo mais complexo, como o caso de um carrinho de compras, então sim, incremente um teste unitário, verifique se aquela classe ou função está agindo como deveria para evitar qualquer tipo de erro, problema ou dor de cabeça na sua vida, ainda mais quando se trata de pagar pelas compras no final dessa brincadeira.

Antigamente usávamos muito o papel para testar se a lógica de nossa programação estava correta, mas em questões profissionais, não será possível ficar explicando tudo que acontece no papel para cada membro que entrar na equipe, então, escreva testes.

—

Eu ensino através de analogia e é a coisa mais interessante que existe e poucas pessoas usam, já que você ensina usando o cotidiano como exemplo.

Queria ter recebido esse recado mais cedo, teria me ajudado muito e poupado muita dor de cabeça para entender o que é um teste unitário.

Em questão de código, vai de cada um se vai usar um Jest, React Testing Library ou qualquer outro, o importante é saber o que de fato acontece, quando incrementar e como incrementar.

Você pode ver esse artigo escrito [originalmente no meu blog](https://yagasaki.dev/blog).
React Email de Zeno Rocha
Published: 2023-09-19 20:07:40

> _"Zeno Rocha imaginou aquilo que todo desenvolvedor front-end estava cansado de tentar desenvolver."_

Zeno Rocha imaginou aquilo que todo desenvolvedor front-end estava cansado de tentar desenvolver. Ou até mesmo sair das antigas semânticas do HTML que já estão para lá de ultrapassados.

Quando o assunto é email marketing, já sabemos a dificuldade que isso é para muita gente, isso inclui principalmente o CSS já que não temos o CSS-grid ao nosso lado e dependemos de tables para todos os lados.

Zeno foi a frente e já deu seu primeiro pontapé em desenvolver layouts de email marketing usando React e Typescript, dessa forma, produzimos emails mais profissionais e com cara de big techs.

![](https://miro.medium.com/max/720/0*FNaEcpSKyGITB_lC)

A imagem acima é um exemplo de layout produzido como um convite para ingressar em um projeto da Vercel, mas usando a estilização e o modelo direto do React Email.

Interessante o profissionalismo que ele propaga e como isso torna tudo muito bem produzido e mais bonito, não é mesmo?

Em breve ~ com base na data da produção desse artigo ~ Zeno estará produzindo a versão live preview, dessa forma você poderá fazer testes diretamente no browser ao invés de enviar centenas de e-mail testes para avaliar e conferir os debugs.

Mais informações você poderá estar acompanhando a documentação do projeto original [através desse link](https://react.email/).

Você pode ver esse artigo escrito [originalmente no meu blog](https://yagasaki.dev/blog).
3º Lugar no Hackathon pela AMBEV em parceria com a Shawee
Published: 2023-09-19 19:53:24

> _"Nos dias 11, 12 e 13 de dezembro, participei do meu primeiro hackathon como Desenvolvedor Web, o Hackeando a Cervejaria do Futuro …"_

Nos dias 11, 12 e 13 de dezembro, participei do meu primeiro hackathon como Desenvolvedor Web, o Hackeando a Cervejaria do Futuro. O Hackathon, organizado pela Ambev em parceria com a Shawee.

Tínhamos como desafios: Cervejaria Flexível e Sustentável e Produto Perfeito. Minha equipe acabou entre os finalistas, levando o terceiro lugar do evento.

Nosso projeto foi o Hopyeast, onde utilizamos técnicas de Engenharia Genética para obter inovação. Foi uma experiência desafiadora e agregadora de bastantes aprendizados, desenvolver uma solução viável para um problema em um final de semana me proporcionou reflexões sobre meu modo de trabalho, sobre organização e foco. Aprendizados que levarei sempre comigo para os próximos desafios da minha trajetória profissional.

Agradeço ao meu time, Laura Camargos Pimenta, Eric Coimbra e Gabriela Cavalcanti sem eles não teríamos chegado ao pódio.

Você pode ver esse artigo escrito [originalmente no meu blog](https://yagasaki.dev/blog).

<center><iframe width="663" height="382" src="https://www.youtube.com/embed/KOVlXuQGAzY" title="HACKA AMBEV: Grandes soluções para a Cervejaria do Futuro" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center>
Fortaleça suas Habilidades em Python com o "Python Fluente" - Uma Recomendação Pessoal
Tags: python, beginners, programming, learning
Published: 2023-09-19 19:52:56

Se você está em busca de aprimorar suas habilidades em Python e deseja uma fonte confiável para aprender, tenho uma excelente recomendação para você!

📚 O Python Fluente é um recurso valioso para a comunidade de desenvolvedores Python, e o que o torna ainda mais especial é que ele é liderado pelo próprio autor do livro "Fluent Python," Luciano Ramalho. Se você não está familiarizado, "Fluent Python" é altamente respeitado por sua abordagem detalhada e profunda da linguagem Python. Agora, com o Python Fluente, essas informações valiosas estão disponíveis em português.

📕 Este site oferece uma tradução e adaptação cuidadosa do livro, tornando-o acessível a todos que falam português. É uma oportunidade única de aprender Python a partir de um dos principais especialistas na área.

👨‍💻 Como desenvolvedor Python, mergulhar no Python Fluente tem sido uma experiência transformadora. E o melhor de tudo é que podemos acessar esse conhecimento em português, sem custo algum.

🌐 Compartilhe a Sabedoria
Acredito firmemente que compartilhar conhecimento é essencial para o avanço da nossa comunidade de desenvolvedores. Então, convido você a espalhar essa joia com sua rede e colegas desenvolvedores. Juntos, podemos fortalecer a aprendizagem e a excelência na comunidade Python.

🤓 Para iniciar sua jornada de aprimoramento em Python, visite o [Python Fluente](https://pythonfluente.com/) e explore todo o conhecimento disponível.

🚀 O aprendizado é uma jornada emocionante e infindável, e com recursos como o "Python Fluente," estamos no caminho certo para dominar o Python.
Best Software Company in Delhi India - kite Web Technologies
Tags: web3, webdesign, seo, smo
Published: 2023-09-19 19:52:56

**
Kite Web Technologies** is one of the **[Best Software Company in Delhi, India](https://www.kitewebtechnologies.com/)**. We Provides Outstanding IT Outsourcing services and also have good experienced in all web services including Web Development, Mobile application Development, Digital Marketing services, SEO, SMO. We deliver our project on time and at an appropriate cost.
Marketing Talks #CPS01 foi marcado por clima informal e conteúdo direto ao ponto
Published: 2023-09-19 19:51:46

> _"Nesta terça-feira, 30 de julho, aconteceu a primeira edição do “Marketing Talks”, promovido pela La Torre Marketing …"_

Nesta terça-feira, 30 de julho, aconteceu a primeira edição do “Marketing Talks”, promovido pela La Torre Marketing. “Ficamos muito felizes com o engajamento do público, é muito importante que o setor se reúna para rever alguns paradigmas e pensar no futuro”, diz Thiago la Torre, idealizador do evento.

O evento contou com 55 inscritos do ecossistema de marketing: empresários da região, proprietários de agências de publicidade, profissionais de marketing e entusiastas. Nesta edição ocorreram cinco talks de 15 minutos, o tema central foi a saturação do marketing digital e a importância da pesquisa e planejamento. “Modelo extremamente dinâmico com talks curtos e focados. Gostei também do clima informal e da acessibilidade aos palestrantes após os talks.”, comentou um dos respondentes da pesquisa de satisfação, realizada de forma anônima.

Palestraram no evento: Javier Casademunt, diretor da ESADE no Brasil e consultor do Banco Interamericano de Desenvolvimento; Thiago La Torre, fundador da La Torre Marketing e autor do livro “A Mentalidade de Marketing”; Matheus Schimdt, diretor de criação da La Torre Marketing e co-autor do livro; Veridiana Mellilo, diretora de relacionamento da La Torre Marketing, e Emerson BZ, professor universitário e empreendedor.

Foram parceiros do evento: Sociall, Draco Gin e FullBrands.

Você pode ver esse artigo escrito [originalmente no meu blog](https://yagasaki.dev/blog).

Fonte: [La Torre Marketing](https://latorremarketing.com.br/news/marketing-talks-cps01-foi-marcado-por-clima-informal-e-conteudo-direto-ao-ponto/)

![via La Torre Marketing](https://latorremarketing.com.br/news/wp-content/uploads/2019/08/La-Torre-Marketing-Talks-12-2-1024x684.jpg)
![via La Torre Marketing](https://latorremarketing.com.br/news/wp-content/uploads/2019/08/La-Torre-Marketing-Talks-10-1-1024x684.jpg)
Strapi: Create user via api
Tags: strapi, user, api, create
Published: 2023-09-19 17:51:04

The functionality to create a user via api in Strapi 4 is already built in.
Its just that the route is different to the usual api routes.

Route to hit as POST:
```javascript
// route to POST to
localhost:1337/api/auth/local/register

// body data to send
{
   "email": "test1@test3.com",
   "username": "test2",
   "password": "123456",
   "firstname": "Grey", // custom field (see below config)
   "lastname": "Joy", // custom field (see below config)
   "organisers": [1] // id or ids of a relation field (mine is called organisers)
}

// returns
{
  "jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NCwiaWF0IjoxNjk1MTQ1NDA3LCJleHAiOjE2OTc3Mzc0MDd9.9aUrYF4Ws1WCTDXHTFMU_7WUs0i5iLeqPdwubHM62mc",
  "user": {
    "id": 4,
    "username": "test2",
    "email": "test1@test3.com",
    "provider": "local",
    "confirmed": true,
    "blocked": false,
    "createdAt": "2023-09-19T17:43:27.406Z",
    "updatedAt": "2023-09-19T17:43:27.406Z",
    "firstname": "Grey",
    "lastname": "Joy",
    "role": {
      "id": 3,
      "name": "Customer",
      "description": "a logged in customer",
      "type": "customer",
      "createdAt": "2023-09-19T09:51:22.756Z",
      "updatedAt": "2023-09-19T09:51:22.756Z"
    }
  }
}
```

If you added custom fields to your user you will need to enable them by adding a file to the config folder:
```javascript
// ./config/plugins.js

module.exports = ({ env }) => ({
  "users-permissions": {
    config: {
      register: {
        // put the name of your added fields here
        allowedFields: ["firstname", "lastname", "organisers"],
      },
    },
  }
});
```

Reference:
https://docs.strapi.io/dev-docs/plugins/users-permissions#registration
Challenge #10
Tags: reverseengineering, c, assembly, challenge
Published: 2023-09-19 19:41:29

Here I'm again, this time with the [10th challenge](https://challenges.re/10/) from [challenge.re](https://challenges.re/). This one it's quite short, and according to the author, also tricky, let's see what we have in this case.

## Analysis

Assembly code to understand

```asm
f:
    lea     eax, [rdi-1+rsi]
    neg     esi
    and     eax, esi
    ret
```

We have basically 4 operations, including the `ret` one. First we have two arguments, one in `rdi` and the other one in `rsi`. Looking at the use of them, we can assume they are numbers. Let's assume that both of them are 32 bits integers, given that `rdi-1+rsi` its store in the `eax` register, which is a 32 bits register.

The next instruction it's a negation of the number in `rsi`, followed by and **AND** operation between this negation with the first number. This it's confusing when you read all this without a real number examples. Let's put that into C code.

```C
in f(int a, int b)
{
    return (a - 1 + b) & (~ b);
}
```

Still confusing....🤔...no idea what's this? Reading the description of the problem, it says:

> This code snippet is short, but tricky. What does it do? It's used heavily in low-level programming and is well-known to many low-level programmers. There are several ways to calculate it, and this is the one of them.

So...still no idea, this doesn't ring a bell to me. If anyone knows about it, let me know, I'm curious about what this computes.
CARGA DE DADOS PYTHON PARA MYSQL USANDO MOVIDESK
Tags: mysql, python, movidesk
Published: 2023-09-19 19:31:50

Neste processo irei demonstrar o código de como consumir e enviar dados para dentro de um banco MySQL para que seja consumido dados através de uma aplicação chamada MoviDesk.

Movidesk, ferramenta de ITSM utilizada para podermos acompanhar os chamados de nossa companhia.


O processo abaixo já está completo e funcional, comentado, necessitamos apenas alterar as conexões e nomes para podermos dar sequência nas cargas para o banco.


`import requests
import pymysql

# Conexão com o banco de dados
conn = pymysql.connect(host='SEU IP OU NOME DO SERVIDOR', user='USUARIO DO AMBIENTE', password='SENHA DO AMBIENTE', db='NOME DA SUA DATABASE')
cursor = conn.cursor()

# Consumir a API
response = requests.get("URL DE CHAMADA DO SEU GET")
data = response.json()

try:
    for ticket in data:
        for client in ticket['clients']:
            for action in ticket['actions']:
                cursor.execute("""
                    INSERT INTO TicketsSummaryConsolidado 
                    (ticket_id, ticket_origin, ticket_ownerTeam, ticket_createdDate, ticket_subject, ticket_urgency, ticket_status,
                    client_id, client_personType, client_profileType, client_businessName, client_email, client_phone,
                    action_id, action_type, action_origin, action_description, action_htmlDescription, action_status, action_justification, action_createdDate, action_isDeleted)
                    VALUES 
                    (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
                    ON DUPLICATE KEY UPDATE
                    summary_id = summary_id -- Isto é apenas um placeholder; você não está realmente atualizando nada.
                    """, 
                    (ticket['id'], ticket['origin'], ticket['ownerTeam'], ticket['createdDate'], ticket['subject'], ticket['urgency'], ticket['status'],
                     client['id'], client['personType'], client['profileType'], client['businessName'], client['email'], client['phone'],
                     action['id'], action['type'], action['origin'], action['description'], action['htmlDescription'], action['status'], action['justification'], action['createdDate'], action['isDeleted']))
    
    # Commitar as inserções
    conn.commit()

finally:
    # Fechar conexão
    cursor.close()
    conn.close()`
About me
Tags: beginners, introduction
Published: 2023-09-19 19:03:50

Hey everyone, i am currently a Data Engineer. I am a code enthusiast, love reading code and how various people work on them; so yup Tab and 5 spaces does really matter to me :D.
Even though i am working as a Data Engineer my connection to the computer and gadgets hasn't lost so i do work on various electronic things. I do have hard time due to the enterprise things but still does workout, it would be nice to know other folks. Lets catch up and learn more it my objective.
DNS Explained: A Beginner's Guide to Domain Name Systems
Tags: beginners, programming, node, development
Published: 2023-09-19 19:02:33

**H**ave you ever been amazed at how, with a simple click, you can go from typing "www.google.com" into your browser to being on Google's website in an instant? It's like a digital magic trick, right?

Well, let me share the secret with you: this digital wizardry is all thanks to a basic but often overlooked system known as DNS, or the Domain Name System.

**In this article, we're going to explore three key concepts:**

1. DNS: The Internet's Address Book
2. Domain Names: The Names of the Web
3. DNS Resolvers: Your Internet Tour Guide

**What is DNS?**

DNS stands for Domain Name System. Think of it as the internet's address book. When you want to visit a website, your computer needs to know where to find it in the vast digital landscape. DNS is like the GPS for the internet, helping your device find the right destination.


**What's a domain name?**

A domain name is simply the agreed-upon name for a website. It's what you type into your browser's search bar to get to a specific site, like "www.google.com" for Google. Think of it as the internet's version of a street address.



**How does it all work?**
When you type a domain name like "www.google.com" into your browser, there's more to it than meets the eye. Behind that simple name lies a hidden digital address called an IP address. This IP address is like the coordinates on a map that tells your device exactly where to find the website you're looking for.

But here's where the magic happens: a special helper called a **DNS resolver** steps in. You can think of a DNS resolver as your trusty internet tour guide. It's a bit like a router that knows the way to the website's IP address. When you ask to visit a site, the DNS resolver figures out the path to get there, ensuring you reach your digital destination.

So, the next time you marvel at the speed and simplicity of the internet, remember that behind the scenes, DNS is the unsung hero making it all possible. It's the magic that turns your words into websites! 🌐✨
UptimeAPIcloud.com - API Monitoring Solution
Tags: api, apimonitoring, uptimemonitor, programming
Published: 2023-09-19 18:55:16

I would like if you could take a look at this new product we've just launched and provide me with your recommendations/comments.

**🚀 [UptimeAPI](http://uptimeapicloud.com) - Your Ultimate API Monitoring Solution 🚀**

[UptimeAPI](http://uptimeapicloud.com) has been meticulously designed to cater specifically to API monitoring needs. Upon user registration, it offers a 30-day free trial, allowing you to explore its diverse range of features at no cost. 💡

With [UptimeAPI](http://uptimeapicloud.com), you gain the ability to create monitors for tracking the performance of your APIs and define alerts that will be triggered when a monitor experiences downtime. 📊

**Key Features:**

🔍 **API Monitor Creation:**

- Monitor Name: Give your monitor a distinct name for easy identification.
- HTTP Method (Post, Get, Head, Put, Patch, Delete): Choose the HTTP method that suits your monitoring requirements.
- URL or IP (API Endpoint): Specify the URL or IP address of the API you wish to monitor.
- Monitor Interval (from 60 seconds to 24 hours): Set how frequently you want the monitor to check the API.
- Monitor Timeout (in Seconds): Define the maximum time allowed for each monitoring attempt.
- Keyword Absent: Configure specific keywords whose absence triggers alerts.

🔔 **Alert Contact Setup:**

- Name: Personalize your alert contacts with distinct names.
- Type (Email, WebHook, Slack, etc.): Select the alert delivery method that suits your team’s workflow.

In addition to these powerful features, [UptimeAPI](http://uptimeapicloud.com) provides a comprehensive log history of up and down monitors, enabling you to track performance over time. It also calculates the service level for each monitor, ensuring you have actionable insights into your API’s reliability. 📈

Choose UptimeAPI, and take control of your API monitoring needs with a user-friendly and feature-rich solution. Start your free trial today! 🌐🆓
Exploring Modding Systems: A Journey With Lua and Rust
Tags: lua, programming, gamedev, rust
Published: 2023-09-19 18:53:20

## Making a cargo project and integrating Lua
Let’s embark on this journey by creating a new Cargo project and setting up a simple Lua script.

First, create a new Cargo project and navigate to the project directory:
```
cargo new modding-example && cd modding-example
```

Next, add the `rlua` crate to your project:

```
cargo add rlua
```

Now, let’s create a `main.rs` file with the following code to execute a Lua script:

```
// File: src/main.rs
use rlua::{Lua, Result};
use std::fs;

fn exec_lua_code() -> Result<()> {
    let lua_code = fs::read_to_string("game/main.lua").expect("Unable to read the Lua script");

    let lua = Lua::new();
    lua.context(|lua_ctx| {
        lua_ctx.load(&lua_code).exec()?;

        Ok(())
    })
}

fn main() -> Result<()> {
    exec_lua_code()
}
```

If we try to run this, we’ll notice that the script can’t execute because the `game/main.lua` file doesn't exist yet. Let's create the necessary directory and file:

```
mkdir game
touch game/main.lua
```

Now, let’s add some flair to our Lua script by printing some information:

```
-- File: game/main.lua
print(_VERSION)
print("🌙 Lua is working!")
```


**With this setup, you should see the Lua version and the “Lua is working!” message printed to the console when you run your Rust program.**
GCP : A Wrap
Published: 2023-09-13 06:01:47


**The things that google cloud offering**

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

**Cloud computing overview:**

- Through a web interface the users will get the processing power storage and network they need
- The customers can scale the above properties if they needed 
- Only pay for what they use and which is cost effective 
- User controlled and user configure environment 

**IaaS : **
- IaaS providing :
  - Raw computing 
  - Storage 
  - Network capabalities
- In IaaS customers pay for what they **allocated** 
- in PaaS customers pay for what they **used**

**Major 5 geographic location of Google Cloud**

- North America
- South America
- Europe
- Asia
- Australia

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

**What are regions and zones**

- Each of the geographic location is divided into different regions and regions are again divided into zone
- The purpose of division of is ensure the availability and decrease the latency 

_a small startup in India can provide their product to a European country without latency by buying the VMs in the Europe region_


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


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


***_THERE ARE 103 ZONES IN 34 DIFFERENT REGIONS_***


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