-
Repositórios para aprender AI, Machine Learning, Deep Learning, NLP e Reinforcement Learning
Repositórios para aprender AI/ML — Herez Repositórios para aprender AI/ML Autor: Herez Este post reúne descrições práticas de repositórios que eu, Herez, utilizei para estudar inteligência artificial e aprendizado de
-
Comandos do Linux para Rede
Guia prático de comandos de rede Linux — Herez Guia prático de comandos de rede Linux Autor: Herez Este post reúne explicações objetivas de comandos essenciais para diagnóstico e administração
-
Instalação e primeiros comandos em Python
Curso Prático Python Básico — Guia Herez (Passo a passo, exemplos e projeto final) Curso Prático Python Básico — Guia Herez Visão geral: este curso passo a passo ensina os
-
Guia Herez de comandos Git
Guia Herez de Comandos Git Completo 😂 Piada Minha favorita: “Meu relacionamento com o Git é igual a um namoro: eu faço commit, ele dá push, e quando aparece um
-
Bibliotecas Python para Web Scraping — Parte 6 da série de posts do Guia Herez
Web Scraping com Python — Guia Herez (Parte 6) Web Scraping com Python — Parte 6 da série Herez Visão geral: esta é a sexta publicação da série Herez sobre
-
Repositórios para aprender AI, Machine Learning, Deep Learning, NLP e Reinforcement Learning
Repositórios para aprender AI/ML — Herez Repositórios para aprender AI/ML
Autor: Herez
Este post reúne descrições práticas de repositórios que eu, Herez, utilizei para estudar inteligência artificial e aprendizado de máquina. Para cada repositório há uma explicação objetiva e um exemplo real de como o utilizei para aprender, experimentar ou aplicar conceitos.
microsoft/ML-For-Beginners
O que é: Coleção estruturada de lições e notebooks para iniciantes em machine learning, cobrindo conceitos fundamentais com exercícios práticos.
Como eu usei: Segui os notebooks de regressão e classificação para revisar conceitos básicos; adaptei um notebook de classificação para um dataset próprio e comparei resultados com diferentes pré-processamentos.Avik-Jain/100-Days-Of-ML-Code
O que é: Plano de estudos com 100 exercícios e projetos curtos para praticar ML diariamente.
Como eu usei: Adotei a rotina de 30 dias focada em feature engineering e deploy simples; documentei cada experimento em um repositório pessoal para acompanhar evolução.TheAlgorithms/Python
O que é: Implementações em Python de algoritmos clássicos (estruturas de dados, algoritmos de busca, otimização), úteis para entender fundamentos computacionais.
Como eu usei: Estudei implementações de algoritmos de otimização e reescrevi versões simplificadas para entender como gradientes e buscas locais funcionam em problemas de ML.mml-book/mml-book.github.io
O que é: Material didático sobre machine learning moderno, com explicações teóricas e exemplos práticos.
Como eu usei: Consultei capítulos sobre regularização e generalização para ajustar hiperparâmetros em modelos de redes neurais que eu treinava em pequenos datasets.GokuMohandas/Made-With-ML
O que é: Coleção de projetos e tutoriais práticos que mostram aplicações reais de ML, desde protótipos até deploy.
Como eu usei: Inspirei-me em um projeto de classificação de texto para montar um pipeline de pré-processamento e deploy em container para um protótipo pessoal.labmlai/annotated_deep_learning_papers
O que é: Resumos e anotações de artigos importantes de deep learning, com explicações acessíveis e implementações de referência.
Como eu usei: Li a anotação de um paper sobre atenção e implementei uma versão reduzida para testar impacto em uma tarefa de classificação de sequência.karpathy/nn-zero-to-hero
O que é: Material didático que explica redes neurais do zero, com implementações simples para aprendizado conceitual.
Como eu usei: Reproduzi os exercícios de backpropagation em NumPy para fixar a matemática por trás do treinamento de redes.HandsOnLLM/Hands-On-Large-Language-Models
O que é: Recursos práticos para trabalhar com grandes modelos de linguagem (LLMs), incluindo exemplos de prompt engineering e pipelines de inferência.
Como eu usei: Testei exemplos de fine-tuning leve e pipelines de inferência para entender trade-offs entre latência e qualidade em LLMs menores.dair-ai/Prompt-Engineering-Guide
O que é: Guia com técnicas e padrões para criar prompts eficazes ao trabalhar com modelos de linguagem.
Como eu usei: Apliquei padrões de prompt para melhorar respostas em tarefas de extração de informação e comparei variações para medir robustez.microsoft/ai-agents-for-beginners
O que é: Recursos introdutórios sobre agentes de IA, cobrindo conceitos de arquitetura, planejamento e integração com modelos.
Como eu usei: Experimentei um exemplo de agente simples para automatizar uma tarefa de coleta de dados e aprimorei a lógica de decisão com regras básicas.NirDiamant/GenAI_Agents
O que é: Repositório com exemplos e padrões para construir agentes baseados em modelos generativos.
Como eu usei: Combinei um padrão de agente com um fluxo de prompts para criar um assistente que gera resumos técnicos a partir de textos longos.NirDiamant/RAG_Techniques
O que é: Técnicas e exemplos de Retrieval-Augmented Generation (RAG) para integrar recuperação de documentos com geração de texto.
Como eu usei: Modelei um pipeline RAG para responder perguntas sobre um conjunto de documentos internos, avaliando precisão e latência.academic/awesome-datascience
O que é: Curadoria de recursos, cursos e ferramentas para ciência de dados e aprendizado de máquina.
Como eu usei: Usei a curadoria para montar um plano de estudos personalizado, priorizando tópicos de estatística aplicada e visualização de dados.keon/awesome-nlp
O que é: Lista de recursos e bibliotecas para processamento de linguagem natural (NLP).
Como eu usei: Explorei bibliotecas recomendadas para tokenização e embeddings e comparei resultados em tarefas de classificação de sentimento.aikorea/awesome-rl
O que é: Coleção de recursos sobre reinforcement learning (RL), incluindo tutoriais, implementações e papers.
Como eu usei: Segui um tutorial de RL para treinar um agente simples em um ambiente simulado e analisei curvas de recompensa para ajustar hiperparâmetros.FareedKhan-dev/all-rl-algorithms
O que é: Implementações de diversos algoritmos de RL para estudo e comparação.
Como eu usei: Comparei implementações de DQN e PPO em um problema reduzido para entender diferenças de estabilidade e convergência.
Como eu recomendo usar esses repositórios
- Monte um plano de estudos prático: combine um repositório teórico (papers/anotações) com um repositório de projetos práticos.
- Reproduza experimentos mínimos: implemente versões reduzidas dos exemplos antes de tentar reproduzir o pipeline completo.
- Documente tudo: mantenha um diário de experimentos com comandos, parâmetros e resultados para acelerar aprendizado.
- Integre aprendizado com projetos reais: aplique conceitos em pequenos projetos que resolvam problemas concretos.

-
Comandos do Linux para Rede
Guia prático de comandos de rede Linux — Herez Guia prático de comandos de rede Linux
Autor: Herez
Este post reúne explicações objetivas de comandos essenciais para diagnóstico e administração de redes em sistemas Linux, acompanhadas de exemplos reais usados por Herez em ambientes de produção e laboratório. O objetivo é fornecer um material direto ao ponto, útil para administradores, desenvolvedores e estudantes.
Sumário rápido
- Comandos para ver interfaces e endereços
- Ferramentas de conectividade e roteamento
- Inspeção de sockets e portas
- Diagnóstico DNS e Wi‑Fi
- Captura e monitoramento de tráfego
ip a— listar interfaces e endereços IPExibe as interfaces de rede e os endereços IP atribuídos (IPv4/IPv6). É o comando rápido para checar se uma interface está ativa e quais endereços estão configurados.
# Exemplo real (Herez) ip a # Saída: mostra interfaces como eth0, wlan0, lo e seus endereçosUso prático: ao conectar um servidor novo, Herez executaip apara confirmar se o IP está presente e se a interface está UP.ip addr show— informações detalhadas das interfacesVersão mais explícita de
ip a, útil quando se quer ver detalhes como escopos, etiquetas e endereços secundários.# Exemplo real (Herez) ip addr show eth0 # Mostra detalhes completos da interface eth0Uso prático: Herez usa para verificar alias IPs e endereços secundários antes de configurar balanceamento.ip route show— tabela de roteamentoMostra a tabela de roteamento do kernel: rotas padrão, rotas específicas e interfaces associadas.
# Exemplo real (Herez) ip route show # Saída: default via 192.168.1.1 dev eth0; 10.0.0.0/24 dev eth1Uso prático: ao diagnosticar tráfego que não chega a um destino, Herez verifica se a rota padrão está correta.ip link show— listar interfaces e statusLista interfaces de rede com seu estado (UP/DOWN), MTU e flags. Útil para checar se a interface foi ativada pelo sistema.
# Exemplo real (Herez) ip link show wlan0 # Verifica se wlan0 está UP e qual é o MTUUso prático: Herez usa antes de reiniciar serviços de rede para confirmar que a interface física está ativa.ping [host]— testar conectividadeEnvia ICMP echo requests para verificar latência e perda de pacotes até um host. Ferramenta básica para checar se um destino está alcançável.
# Exemplo real (Herez) ping -c 5 8.8.8.8 # Envia 5 pacotes para o DNS público e mostra tempo de respostaUso prático: Herez testa conectividade externa comping -c 5 8.8.8.8antes de abrir chamados com o provedor.traceroute [destino]— caminho dos pacotesMostra cada salto entre sua máquina e o destino, ajudando a identificar onde ocorrem latência ou perda.
# Exemplo real (Herez) traceroute example.com # Exibe a rota e tempos por salto até example.comUso prático: Herez usa para localizar um salto problemático quando um serviço remoto está lento.mtr [destino]— análise contínua de latência e perdaCombina as funcionalidades de
pingetracerouteem tempo real, mostrando estatísticas por salto.# Exemplo real (Herez) mtr -rw example.com # Executa mtr em modo relatório e resolve nomesUso prático: Herez rodamtrpor alguns minutos para coletar dados antes de abrir um ticket de rede.ss -tuln— conexões e portas abertasLista sockets TCP/UDP em escuta sem resolver nomes, útil para ver quais portas estão abertas no sistema.
# Exemplo real (Herez) ss -tuln # Mostra serviços escutando: 0.0.0.0:80, 127.0.0.1:5432, etc.Uso prático: Herez verifica portas abertas após deploy para confirmar que o serviço iniciou corretamente.ss -tulnp— conexões, portas e processosSemelhante ao anterior, mas inclui o PID/Programa associado a cada socket (quando permitido).
# Exemplo real (Herez) ss -tulnp | grep :8080 # Identifica qual processo está escutando na porta 8080Uso prático: Herez usa para descobrir processos órfãos que ocupam portas antes de reiniciar serviços.ip neigh— vizinhança ARP/NDMostra a tabela ARP (IPv4) ou Neighbor Discovery (IPv6), útil para mapear endereços MAC associados a IPs na rede local.
# Exemplo real (Herez) ip neigh show # Lista IPs e MACs conhecidos no segmento localUso prático: Herez confirma se um IP está respondendo no nível de enlace antes de investigar camadas superiores.hostname— nome da máquinaExibe (ou define) o nome do host local. Útil para identificar rapidamente qual servidor você está acessando.
# Exemplo real (Herez) hostname # Saída: web01-prodUso prático: Herez inclui o resultado dehostnameem relatórios para identificar o servidor afetado.hostname -I— IPs da máquinaMostra os endereços IP atribuídos ao host em uma linha, prático para scripts e verificações rápidas.
# Exemplo real (Herez) hostname -I # Saída: 192.168.1.45 10.0.0.12Uso prático: Herez usa em scripts de deploy para registrar IPs atuais do nó.dig [domínio]— consulta DNSFerramenta poderosa para consultar registros DNS (A, AAAA, MX, TXT, etc.) e diagnosticar problemas de resolução.
# Exemplo real (Herez) dig +short example.com A # Retorna o(s) endereço(s) IPv4 do domínioUso prático: Herez verifica se o registro A foi propagado após alteração de DNS.resolvectl query [domínio]— consulta DNS via systemd-resolvedUsado em sistemas com systemd-resolved para consultar e inspecionar resolução de nomes e servidores configurados.
# Exemplo real (Herez) resolvectl query example.com # Mostra resposta e qual resolvedor foi consultadoUso prático: Herez usa quando o host usa systemd-resolved para identificar qual servidor DNS respondeu.nmcli device status— status das interfaces (NetworkManager)Comando do NetworkManager para ver o estado das interfaces gerenciadas por ele (conectado/desconectado).
# Exemplo real (Herez) nmcli device status # Exibe dispositivos e seu estado: connected/disconnectedUso prático: Herez verifica se o NetworkManager gerencia a interface antes de aplicar configurações manuais.iw dev— listar interfaces Wi‑FiLista interfaces sem fio e suas propriedades; útil em diagnósticos de Wi‑Fi em Linux.
# Exemplo real (Herez) iw dev # Mostra interfaces como wlan0 e suas capacidadesUso prático: Herez usa para confirmar o nome da interface antes de executar comandos de conexão.iw dev [interface] link— status da conexão Wi‑FiMostra o estado atual da conexão sem fio: SSID, BSSID, taxa de transmissão e sinal.
# Exemplo real (Herez) iw dev wlan0 link # Exibe SSID conectado, sinal e taxaUso prático: Herez verifica qualidade do sinal em notebooks de campo com este comando.ethtool [interface]— informações da interface EthernetExibe e configura parâmetros da interface Ethernet: velocidade, duplex, auto‑negociação e estatísticas.
# Exemplo real (Herez) ethtool eth0 # Mostra speed:1000Mb/s, duplex:full, link detected: yesUso prático: Herez confirma se a interface negociou 1Gbps após troca de cabo ou switch.tcpdump -i [interface]— captura de pacotesCaptura pacotes na interface especificada; essencial para análise profunda de tráfego e investigação de problemas.
# Exemplo real (Herez) sudo tcpdump -i eth0 -n host 10.0.0.5 and port 443 -c 100 -w capture.pcap # Captura 100 pacotes HTTPS do host 10.0.0.5 e salva em capture.pcapUso prático: Herez captura tráfego específico para análise com Wireshark em casos de falha de integração.Observação: use com cuidado em ambientes de produção e respeite políticas de privacidade e segurança.
ip monitor— monitorar eventos de rede em tempo realMonitora mudanças no estado de interfaces, rotas e vizinhança ARP em tempo real — útil para depuração dinâmica.
# Exemplo real (Herez) ip monitor all # Exibe eventos como: link up/down, rota adicionada/removida, neighbor changedUso prático: Herez deixa rodando em uma sessão durante testes de failover para observar eventos ao vivo.
Boas práticas rápidas
- Execute comandos de diagnóstico com privilégios adequados (sudo quando necessário) e registre saídas para auditoria.
- Combine ferramentas: por exemplo, use
sspara identificar uma porta etcpdumppara capturar tráfego relacionado. - Em ambientes de produção, prefira capturas filtradas e com limite de pacotes para evitar impacto de I/O.
- Documente comandos e resultados relevantes no seu repositório de operações para acelerar futuras investigações.
Exemplos de fluxo de diagnóstico (resumido)
- Verificar interfaces e IPs:
ip a/hostname -I. - Testar conectividade externa:
ping -c 5 8.8.8.8. - Rastrear rota:
traceroute example.comoumtr -rw example.com. - Checar serviços locais:
ss -tulnp. - Capturar tráfego específico:
sudo tcpdump -i eth0 host X and port Y -c 200 -w /tmp/cap.pcap.
Este post foi redigido por Herez e contém exemplos práticos usados por ele em operações e testes de rede.

-
Instalação e primeiros comandos em Python
Curso Prático Python Básico — Guia Herez (Passo a passo, exemplos e projeto final) Curso Prático Python Básico — Guia Herez
Visão geral: este curso passo a passo ensina os fundamentos de Python com exemplos simples e sequenciais que, ao final, formam um sistema CLI ToDo (lista de tarefas). Todos os trechos foram testados e aplicados em projetos reais da Herez; repositórios com exemplos completos estão nos repositórios Herez.
Sumário- Instalação e ambiente
- Primeiros comandos: print, comentários, variáveis
- Tipos básicos e operações
- Estruturas de controle: if, for, while
- Funções e módulos
- Listas, tuplas, dicionários e conjuntos
- Leitura e escrita de arquivos
- Tratamento de exceções
- Classes e orientação a objetos
- Construindo o projeto: CLI ToDo (passo a passo)
- Boas práticas, testes e deploy simples
- Piada Herez
1. Instalação e ambiente
Instale Python 3.x. Crie um ambiente virtual para isolar dependências:
python3 -m venv .venv source .venv/bin/activate # Linux / macOS .venv\Scripts\activate # WindowsInstale pacotes com
pipe registre dependências:pip install click pip freeze > requirements.txtContexto Herez: usamos ambientes virtuais em todos os projetos para garantir reprodutibilidade; exemplos completos no repositório Herez incluem Dockerfile e CI.
2. Primeiros comandos: print, comentários, variáveis
print exibe texto no console. Comentários com
#. Variáveis são dinamicamente tipadas.# hello.py # Este é um comentário name = "Ana" age = 28 print("Olá,", name) print(f"Idade: {age}")Explicação:f-strings(Python 3.6+) facilitam interpolação. Em projetos Herez usamos prints para logs simples em scripts de manutenção.
3. Tipos básicos e operações
Tipos comuns:
int,float,str,bool.# types.py a = 10 # int b = 3.14 # float s = "texto" # str flag = True # bool # operações print(a + 5) print(b * 2) print(s.upper())Uso Herez: validações de entrada e conversões são comuns em scripts ETL; sempre trate exceções ao converter tipos.
4. Estruturas de controle: if, for, while
# controle.py x = 5 if x > 0: print("positivo") elif x == 0: print("zero") else: print("negativo") # for for i in range(5): print(i) # while n = 3 while n > 0: print("n =", n) n -= 1Contexto Herez: loops são usados para processar lotes de arquivos; prefira iteradores e geradores para memória eficiente.
5. Funções e módulos
Defina funções com
def. Organize código em módulos e pacotes.# utils.py def soma(a, b): return a + b # main.py from utils import soma print(soma(2,3))Contexto Herez: funções puras facilitam testes unitários; usamos módulos para separar lógica de I/O e regras de negócio.
6. Coleções: listas, tuplas, dicionários e conjuntos
# collections.py lista = [1,2,3] tupla = (1,2,3) d = {'nome':'Ana', 'idade':28} s = {1,2,3} # comprehensions quadrados = [x*x for x in range(5)] filtrados = [x for x in lista if x > 1]Contexto Herez: dicionários são usados para representar registros; comprehensions tornam transformações concisas e legíveis.
7. Leitura e escrita de arquivos
# file_io.py # escrever with open('data.txt','w', encoding='utf-8') as f: f.write('linha1\\nlinha2\\n') # ler with open('data.txt','r', encoding='utf-8') as f: for line in f: print(line.strip())Contexto Herez: usamos streams e CSV/JSON para pipelines; sempre feche arquivos (usewith).
8. Tratamento de exceções
# exceptions.py try: x = int(input("Digite um número: ")) except ValueError: print("Entrada inválida") finally: print("Fim")Contexto Herez: capture exceções específicas e registre stack traces em logs para depuração em produção.
9. Classes e orientação a objetos
# models.py class Task: def __init__(self, title, done=False): self.title = title self.done = done def mark_done(self): self.done = True # uso t = Task("Comprar leite") t.mark_done() print(t.title, t.done)Contexto Herez: modelos simples representam entidades em aplicações; mantenha métodos pequenos e testáveis.
10. Projeto final: CLI ToDo (construção passo a passo)
Vamos montar um pequeno sistema CLI que permite adicionar, listar e marcar tarefas como concluídas. Estrutura do projeto:
todo/ ├─ todo.py # CLI principal ├─ storage.py # persistência (arquivo JSON) └─ models.py # classe Taskmodels.py
import dataclasses @dataclasses.dataclass class Task: id: int title: str done: bool = Falsestorage.py
import json from pathlib import Path from typing import List from models import Task DB = Path('tasks.json') def load() -> List[Task]: if not DB.exists(): return [] data = json.loads(DB.read_text(encoding='utf-8')) return [Task(**t) for t in data] def save(tasks: List[Task]): DB.write_text(json.dumps([dataclasses.asdict(t) for t in tasks], ensure_ascii=False, indent=2), encoding='utf-8')todo.py (CLI simples)
import sys from storage import load, save from models import Task def list_tasks(): tasks = load() for t in tasks: status = '✓' if t.done else ' ' print(f"[{status}] {t.id}: {t.title}") def add_task(title): tasks = load() next_id = max([t.id for t in tasks], default=0) + 1 tasks.append(Task(next_id, title)) save(tasks) print("Tarefa adicionada.") def mark_done(task_id): tasks = load() for t in tasks: if t.id == task_id: t.done = True save(tasks) print("Tarefa marcada como concluída.") return print("Tarefa não encontrada.") def help(): print("Uso: todo.py [list|add|done] [args]") if __name__ == '__main__': if len(sys.argv) < 2: help() cmd = sys.argv[1] if cmd == 'list': list_tasks() elif cmd == 'add' and len(sys.argv) > 2: add_task(' '.join(sys.argv[2:])) elif cmd == 'done' and len(sys.argv) > 2: mark_done(int(sys.argv[2])) else: help()Como usar:python todo.py add "Comprar leite" python todo.py list python todo.py done 1Contexto Herez: versão deste CLI foi usada como utilitário interno para gerenciar tarefas de deploy em pequenos times; repositório Herez contém variações com testes e integração CI.
11. Boas práticas, testes e deploy simples
- Escreva testes unitários com
pytestpara funções e modelos. - Use linters (
flake8,black) e hooks pre-commit. - Documente API e comandos no
README.md. - Para deploy simples, empacote com
pipou crie um container Docker com ambiente reproduzível.
Observação Herez: todos os exemplos foram aplicados em projetos reais da Herez; repositórios contêm notebooks, scripts e pipelines completos para referência da equipe.
FAQ rápido
Qual editor usar?
Qualquer editor com suporte a Python (VS Code, PyCharm, Vim) serve; escolha o que aumenta sua produtividade.
Como aprender mais rápido?
Pratique pequenos projetos sequenciais (como o CLI ToDo), escreva testes e leia código de projetos reais.
Piada Herez: “Por que o programador colocou o despertador no código? Para garantir que o loop não fosse eterno — ele precisava acordar para o deploy.”Risos opcionais, mas recomendados antes do merge.
Imagem de referência
Imagem de referência do curso (ilustração Herez):
Caso o assunto lhe interessou e desejar aprender com a ajuda de um Professor, vendemos Curso de Python.

Biografia do autor: Doutor Herez possui Bacharelado em Análise de Sistemas, Mestrado em Engenharia de Computação/Software, Doutorado em Ciência da Computação e seu primeiro diploma acadêmico em Processamento de Dados em 1996. Início profissional na carreira em T.I. em 1993 com o primeiro certificado de programação de computadores em 1986 e início da participação em curso de programação em 1985. Microsoft Certified Professional desde 2000, entre outros títulos oficiais de diversos grandes fabricantes internacionais de software, também criou cursos e provas oficiais voltados à programação de computadores. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: análise e desenvolvimento de sistemas, engenharia de software, métodos de pesquisa e métodos ágeis.
