leandro • nsp Profile picture
apreciador de conteúdo técnico irrelevante • lives na https://t.co/4bVbXhxDac e https://t.co/d8L82UIsj9
Jan 24 11 tweets 3 min read
Não costumo dar dica de inglês pq não sou professor, mas tá aqui oq funcionou pra mim lá atrás qdo tudo era mato e não tinha internet nem dinheiro pra pagar cursinho de inglês.

Short🧵

(tldr; imagem já é pequeno spoiler) Image Disclaimer

Assumindo que vc, assim como
eu, não nasceu com o c# virado pra lua e nao teve acesso a bons cursos de ingles com a devida frequencia. +
Sep 6, 2023 19 tweets 5 min read
Alguns ajustes no NGINX e PostgreSQL e minha versão Ruby ganha um aumento de tput que garante 46k inserts.

"Ajuste pra cima", eles dizem.

Não. É pra baixo.
As queries são rápidas, ñ preciso floodar a stack toda com mtos requests à espera: latência gera custo.

Detalhes na 🧵
Image
Image
TL;DR

- API com I/O assíncrono
- NGINX com 256 worker connections
- NGINX com least_conn para não jogar mais requests em upstream muito ocupado
- PostgreSQL com 30 max connections e tbm com 30 acessos simultâneos ao I/O
- Connection pool de 15 em cada API
Image
Image
Aug 26, 2023 23 tweets 4 min read
pessoal, apesar da zuera do Java não ter estado no TOP 15 da @rinhadebackend (kkkkk), queria deixar aqui algumas impressões sobre aspectos de concorrência em sistemas,

e que a natureza do desafio não coloca nenhuma lang em demérito, apesar da _zuera never ends_™️

as always, 🧵 quando um programa ou processo precisa realizar alguma computação, este é colocado pelo sistema operacional (SO) em uma fila,

tão logo a CPU fica disponível, o processo é atribuído à CPU e ganha uma fatia de utilização definida pelo escalonador do SO, que faz +
Jul 11, 2023 15 tweets 5 min read
xargs for the rescue

nesta pequena 🧵, iremos ver como utilizar xargs pra resolver o problema ali proposto pelo Seraphini. sem precisar de ferramentas adicionais, xargs funciona out-of the-box em qualquer sistema UNIX-based.

cada opção do comando será explicada ao detalhe 🔎 https://t.co/MLAVd4XLyI
um background super simples

vamos partir com a premissa que temos uma função simples que dorme meio segundo e será nosso "background job"
Apr 17, 2023 42 tweets 6 min read
Já ouviu falar de concorrência e paralelismo, mas os conceitos ainda dão nó quando as pessoas falam de threads, coroutines, canais, async etc?

Nesta 🧵, vou tentar trazer alguns pontos essenciais, passando por breve história dos computadores modernos e sistemas operacionais. 🔵 Cartões Perfurados

Nos anos 40 surgiram computadores capazes de interpretar programas que eram "persistidos" em cartões físicos perfurados.

Esses computadores eram lentos e executavam um programa por vez, ou seja, não permitiam o enfileiramento de programas. +
Feb 22, 2023 14 tweets 4 min read
Finalizei minha saga aprendendo (e escrevendo sobre) Tekton CI/CD.

Esta série de artigos é um ciclo completo e automatizado de entrega de uma aplicação simples que tá no Github.

Aqui nesta 🧵 vou dar um overview de cada artigo com o devido link.

0/6

#Kubernetes #Docker Um pequeno disclaimer

Embora Tekton sirva para rodar o próprio CI no Kubernetes, os conceitos aqui apresentados podem ajudar a *entender melhor* de sistemas CI/CD no geral, inclusive os que trabalhamos no dia-dia, tais como Github, Gitlab, CircleCI etc

+
Dec 4, 2022 36 tweets 18 min read
Entender os fundamentos de Git é necessário para quem não quer se deixar dominar pela ferramenta.

Nesta 🧵 vou tentar explicar as estruturas fundamentais do Git e como estas se relacionam com os comandos que usamos no dia-dia. Os principais componentes do Git são:

.git/objects
.git/refs
HEAD
Oct 17, 2022 12 tweets 4 min read
Race Condition 🏎️💥🚗

Pra explicar race condition, eu costumo buscar um pouco no modelo computacional as razões para isto existir.

Entendendo race condition em 10 passos, a thread 🧵 Um programa por vez

Num cenário primitivo sem concorrência, os programas ficam em fila à espera para que possam utilizar os recursos físicos.

Um programa de cada vez.

Aqui, não há qualquer tipo de race condition, era assim que se desenvolvia programas nos anos 40. Image
Sep 5, 2022 22 tweets 7 min read
SQL 101

Como gerar volume de dados para testes no PostgreSQL com CTE's, com explicação detalhada de cada statement, mais precisamente SELECT, FROM e WITH.

Segue a 🧵👇 SELECT

O statement SELECT permite projetar informações a partir de estruturas de tabelas. Com isso podemos projetar qualquer tipo de informação em um SELECT.
Aug 26, 2022 22 tweets 4 min read
Aproveitar o assunto, quero deixar meus 2 centavos empíricos sobre algo que raramente escrevo aqui:

*Testes em Software*

Minha reflexão é uma mistura de sentido empírico com base na minha experiência e algum estudo do que no sentido concreto ou literal.

Testes, a thread 🧵 Primeiramente, como devemos testar um componente de software?

Eu começo dizendo que o teste de um componente é uma forma de refutar seus comportamentos, independente de quais sejam.

+
Aug 26, 2022 4 tweets 1 min read
não to lembrado ou não conheço um guia oficial de linguagem de programação que tenha feito uma explicação tão sólida e clara sobre Stack e Heap como o guia de Rust

doc.rust-lang.org/book/ch04-01-w… btw dá pra aprender muitos conceitos de computação enquanto aprende-se Rust pelo guia oficial.

não que seja algo inovador, mas com tal clareza e didática, desconheço outro.
Aug 4, 2022 9 tweets 4 min read
ultimamente to numa de impulsionar conteúdo bom, então vou deixar na thread links de blogs (dos que acompanho no dev.to) de pessoas que eu sigo por lá.

quem tiver links pra compartilhar, manda aqui também 💪

🧵 simplesmente a melhor.

sou fã do conteúdo que a @anakbns produz e da forma que ela explica as coisas. pra não mencionar que já tive a honra de trabalhar junto :P

dev.to/anakbns
Aug 4, 2022 17 tweets 6 min read
☕️ O quê é OOP?

Sei que vocês estão cansados de ver artigos e threads do tipo, mas vamos nesta 🧵 de 15 passos tentar dissecar algumas características primordiais de OOP através de uma simulação de OOP em, isso mesmo, Bash script.

OOP em Bash, a thread 👇 Se você não tem hábito em Bash script, não há problema.

Os conceitos aqui explicados não exigem conhecimento avançado de Bash, a ideia é apenas tentar entender e simular OOP.
Jul 27, 2022 27 tweets 9 min read
🧦 Se você quer entender o que são Network Sockets, como funcionam e qual sua relação com a famosa Internet, acompanha esta 🧵 em 25 passos 👇 É preciso antes ter uma noção do que são standard streams, file descriptors e pipes.

Se você não tem familiaridade com esses termos, dá uma olhada nessa sequência que criei dias atrás e depois volta aqui 👇

Jul 19, 2022 21 tweets 7 min read
💻 Mais uma thread 🧵sobre processos em sistemas UNIX-like.

Desta vez vamos entender um pouco mais sobre file descriptors, named pipes e *tee* 🫖 🥁.

Por isto, busque um ☕️ ou chá e venha tranquile que são 17 passos 🧵👇 Image Se você não viu a outra thread sobre *standard streams* e redirecionamento de streams, sugiro primeiro ver a outra e depois voltar para esta 👇

1/17

Jul 14, 2022 20 tweets 6 min read
💻 Em sistemas operacionais baseados em UNIX, processos são isolados e têm seu próprio espaço de memória.

Como eles se comunicam?

Nesta 🧵, em 20 passos vou explicar sobre standard streams e mostrar algumas formas de comunicação entre processos🕸️

1/20 Tendo como exemplo o programa "echo", e uma vez que o processo é isolado, como a mensagem aparece no screen?

2/20
May 17, 2022 24 tweets 8 min read
Sempre quis saber o quê é e como funciona uma tabela hash?

Então em 20 steps tento mostrar um problema e também como implementar uma hash table passo-a-passo em Ruby :foguinho: e :navinha:

🧵 Começamos por definir um algoritmo do maior número em uma lista utilizando nested loops (loop dentro de loop).

Utilizando o benchmark do Ruby, para 10 mil elementos na lista, leva-se 3.63 segundos para encontrar o maior número.

1/
Apr 12, 2022 4 tweets 3 min read
Como entender volumes no Docker e fazer o melhor uso para experimentar em ambiente de desenvolvimento, *painless*

👉 Mastering Docker Volumes { by @leandronsp } from @hashnode

#docker #containers #linux leandronsp.com/mastering-dock… E pra quem ainda não viu, tenho mais 2 artigos sobre Docker

1. "Thinking like containers" leandronsp.com/thinking-like-…

2. "Docker in development, the right way" leandronsp.com/using-docker-i…
Mar 3, 2022 5 tweets 2 min read
não quer subir código pro github blz, não quer fazer teste técnico em entrevista blz, mas aprenda como funciona a web plmdds + tem muito webdev front/back que não faz a *mínima* noção como funciona a web (ou até mesmo a internet e suas aplicações no geral), mas trabalha com web.

saber isso ajuda a fazer a pergunta correta e fazer debugging mais eficiente. +
Feb 8, 2022 11 tweets 2 min read
Se você tem algum cargo ou peso nas decisões arquiteturais do software da firma, e a firma *não* tem dinheiro infinito, aqui vão 10 insights e lições aprendidas da minha parte tendo tido alguma experiência nisto 🧵 1. o dinheiro não é infinito

principalmente se a empresa tá em early stage ou não tem muito investimento alavancado.

qualquer decisão técnica tem que ser baseada nesta premissa que é a mais importante.
Jan 8, 2022 15 tweets 5 min read
O que é esse tal de Docker e pra quê ele serve?

Recomendo fortemente a usar Docker caso você não sinta confortável em instalar Ruby, NodeJS etc no computador.

Apesar de dizerem o contrário, uma vez q você
o aprende, facilita mto a vida de quem tá iniciando.

🧵 Vamos supor que você escreve sua app em Ruby ou Javascript.

Precisa então instalar um ambiente de execução para rodar sua aplicação, que se chama "runtime" Image