-
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
-
Bibliotecas Python para Aprendizado de Máquina — Parte 1 da série de posts do Guia Herez
Bibliotecas Python para Aprendizado de Máquina — Guia Herez Bibliotecas Python para Aprendizado de Máquina — Parte 1 da série de posts do Guia Herez
Visão geral: existem muitas bibliotecas Python úteis para diferentes etapas do fluxo de trabalho de Machine Learning. Por isso esta publicação faz parte de uma série que agrupa bibliotecas por área: Aprendizado de Máquina, Desenvolvimento Web, Testes Automatizados, Processamento de Imagens, Web Scraping e Desenvolvimento de Jogos. Este é o primeiro post da série e foca nas bibliotecas essenciais para aprendizado de máquina.
Publicado por Herez em
Como usar este post
Este artigo apresenta cada biblioteca com uma breve descrição, motivos para usar, comandos de instalação e exemplos de casos de uso. Use-o como referência rápida ao montar ambientes, escolher ferramentas para prototipagem ou planejar pipelines de ML.
Resumo rápido
Biblioteca Função principal Quando usar NumPy Arrays N‑dimensionais e operações numéricas Base para cálculos e outras bibliotecas Pandas Manipulação de dados tabulares ETL, análise exploratória, feature engineering Matplotlib Plotagem 2D Gráficos personalizados e publicação Seaborn Visualização estatística de alto nível Exploração de dados e relatórios SciPy Rotinas científicas avançadas Otimização, integração, álgebra avançada scikit-learn Algoritmos clássicos de ML Modelos de baseline e pipelines TensorFlow Framework de deep learning escalável Produção, treinamento em larga escala Keras API de alto nível para redes neurais Prototipagem rápida de modelos PyTorch Framework de deep learning com execução dinâmica Pesquisa e modelos customizados Theano Compilador de expressões matemáticas (histórico) Legado e compreensão histórica Bibliotecas detalhadas
NumPy
O que é: biblioteca fundamental para computação numérica em Python. Fornece o tipo
ndarraye operações vetorizadas de alto desempenho.Por que usar: base para Pandas, SciPy e muitos frameworks de ML; substitui loops Python por operações vetorizadas, acelerando cálculos.
# Instalação pip install numpyCasos de uso: álgebra linear, manipulação de tensores simples, geração de dados sintéticos e operações matriciais em pipelines de pré‑processamento.
Pandas
O que é: biblioteca para manipulação e análise de dados tabulares com estruturas
DataFrameeSeries.# Instalação pip install pandasCasos de uso: ETL, análise exploratória (EDA), tratamento de valores ausentes, criação de features e integração com scikit‑learn.
Matplotlib
O que é: biblioteca clássica de plotagem 2D; altamente configurável e a base para muitas outras bibliotecas de visualização.
# Instalação pip install matplotlibSeaborn
O que é: camada de alto nível sobre Matplotlib para visualizações estatísticas com estética pronta.
# Instalação pip install seabornSciPy
O que é: conjunto de algoritmos científicos construído sobre NumPy, incluindo otimização, integração, interpolação, álgebra linear avançada e estatística.
# Instalação pip install scipyscikit-learn
O que é: biblioteca padrão para algoritmos clássicos de machine learning: regressão, classificação, clustering, redução de dimensionalidade e pipelines.
# Instalação pip install scikit-learnTensorFlow
O que é: framework de deep learning escalável, com suporte a CPU, GPU e TPU, e um ecossistema para produção.
# Instalação pip install tensorflowKeras
O que é: API de alto nível para construção e treino de redes neurais; atualmente integrada ao TensorFlow como
tf.keras.# Instalação (opcional se usar tf.keras) pip install kerasPyTorch
O que é: framework de deep learning com execução dinâmica (eager execution), muito usado em pesquisa e com forte comunidade.
# Instalação pip install torch torchvisionTheano
O que é: biblioteca histórica para definição e otimização de expressões matemáticas que geram código eficiente para CPU/GPU.
# Instalação pip install Theano
Como escolher a combinação certa
- Preparação de dados: NumPy + Pandas + SciPy.
- Visualização: Matplotlib para controle fino; Seaborn para análises estatísticas rápidas.
- Modelos clássicos: scikit‑learn para protótipos e pipelines.
- Deep learning: TensorFlow/Keras para produção; PyTorch para pesquisa e experimentação.
Boas práticas
- Use ambientes virtuais (
venv,conda) para isolar dependências. - Documente versões das bibliotecas (arquivo
requirements.txtouenvironment.yml) para reprodutibilidade. - Ao usar GPU, verifique compatibilidade entre versões de CUDA/cuDNN e as bibliotecas (TensorFlow/PyTorch).
- Combine bibliotecas: Pandas para ETL, scikit‑learn para baseline, e TensorFlow/PyTorch para modelos complexos.
Dica Herez: comece com um pipeline simples (Pandas → scikit‑learn) para validar hipóteses antes de migrar para deep learning.Próximo post da série
No próximo artigo cobriremos bibliotecas Python para Testes Automatizados (Splinter, Robot, Behave, PyUnit e PyTest), com comparações práticas e cenários de uso. Veja o próximo post.

-
Guia prático Herez sobre os diretórios essenciais do Linux com explicações e exemplos

Diretórios essenciais do Linux: /home /etc /var /usr /bin /sbin /boot /lib /dev /proc Diretórios essenciais do Linux
Resumo: este post explica por que o Linux é um sistema operacional baseado em arquivos e detalha a função, o conteúdo típico e as melhores práticas para os diretórios
/home,/etc,/var,/usr,/bin,/sbin,/boot,/lib,/deve/proc.Importância da hierarquia de arquivos no Linux
Linux é um sistema operacional baseado em arquivos: tudo — desde dispositivos e processos até configurações e dados — é representado por arquivos organizados em uma hierarquia que começa na raiz
/. Essa padronização facilita administração, segurança, backup e interoperabilidade entre distribuições, seguindo convenções como o Filesystem Hierarchy Standard.
Visão geral rápida
Diretório Finalidade Conteúdo típico Quem usa / Ponto de montagem raiz Estrutura do sistema Sistema /home Diretórios pessoais Arquivos e configurações do usuário Usuários /etc Configurações do sistema Arquivos de configuração em texto Administradores /var Dados variáveis Logs; spool; cache Serviços /usr Programas e dados de usuário /usr/bin; /usr/lib; /usr/share Usuários e sistema /bin Binários essenciais Comandos básicos como ls, cp Todos /sbin Binários administrativos Ferramentas de manutenção Root /boot Arquivos de inicialização Kernel; initramfs; bootloader Sistema/bootloader /lib Bibliotecas essenciais Bibliotecas compartilhadas Sistema /dev Arquivos de dispositivo Discos; terminais; interfaces Kernel e processos /proc Informações do kernel /proc/cpuinfo; /proc/<pid> Ferramentas e administradores Descrição detalhada dos diretórios
/
Descrição: raiz do sistema; ponto de montagem principal onde todos os outros diretórios residem. Montagens adicionais (discos, partições) são anexadas sob a hierarquia a partir daqui.
/home
Finalidade: armazenar os diretórios pessoais dos usuários. Cada usuário normalmente tem um diretório como
/home/usuariocom documentos, configurações de aplicações e dados pessoais. Manter/homeem partição separada facilita reinstalações sem perda de dados./etc
Finalidade: contém arquivos de configuração do sistema e dos serviços instalados. São arquivos de texto que definem comportamento de rede, contas, serviços e scripts de inicialização; alterações aqui afetam o sistema globalmente.
/var
Finalidade: destinado a dados que mudam com o tempo, como logs, filas de impressão, caches e spools de e-mail. Serviços escrevem continuamente em
/var, por isso é comum monitorar e rotacionar logs para evitar esgotamento de disco./usr
Finalidade: abriga programas, bibliotecas e documentação que não são essenciais para a inicialização mínima do sistema. Subdiretórios comuns incluem
/usr/bin,/usr/libe/usr/share. Em ambientes gerenciados,/usrpode ser montado como somente leitura para segurança e consistência./bin
Finalidade: contém binários essenciais necessários para todos os usuários e para recuperação do sistema, como
ls,cpebash. Esses comandos devem estar disponíveis mesmo em modo de manutenção./sbin
Finalidade: contém binários administrativos usados para manutenção e administração do sistema, como
fsck,reboote utilitários de rede. Normalmente requer privilégios de root./boot
Finalidade: armazena arquivos necessários para a inicialização do sistema, incluindo imagens do kernel, initramfs e arquivos do bootloader (por exemplo, GRUB). Problemas em
/bootpodem impedir a inicialização do sistema./lib
Finalidade: contém bibliotecas compartilhadas usadas por binários em
/bine/sbin, como alibc. Em sistemas 64 bits existe também/lib64. Sem essas bibliotecas, executáveis essenciais não funcionam./dev
Finalidade: diretório de dispositivos que expõe hardware e interfaces do kernel como arquivos especiais de bloco e caractere. Exemplos incluem discos (
/dev/sda) e terminais (/dev/tty). A maioria dos arquivos em/devé gerada dinamicamente pelo kernel ou por udev./proc
Finalidade: sistema de arquivos virtual que fornece informações em tempo real sobre o kernel e processos, como
/proc/cpuinfoe/proc/<pid>. Não contém dados persistentes em disco; é uma interface para consultar e, em alguns casos, ajustar parâmetros do kernel.
Boas práticas e recomendações
- Particionamento: separar
/home,/vare/bootem partições distintas melhora recuperação e segurança. - Rotação de logs: configure
logrotatepara evitar que/varencha com logs. - Gerenciamento de pacotes: evite editar diretamente arquivos em
/bine/lib; use o gerenciador de pacotes da distribuição para manter consistência. - Monitoramento: monitore uso de disco e integridade de
/boote/varpara prevenir falhas de inicialização e interrupções de serviço.
Dica rápida: antes de reinstalar o sistema, faça backup de/homee dos arquivos de configuração em/etcpara preservar dados e personalizações.Dicas
Conhecer a função de cada diretório torna a administração do Linux mais eficiente: procure configurações em
/etc, dados variáveis em/var, binários essenciais em/bine/sbin, e informações do kernel em/proc. A hierarquia baseada em arquivos torna o sistema previsível, modular e mais fácil de manter.
Diretórios essenciais do Linux — Guia Herez completo e prático Aprofundando o conhecimento sobre a hierarquia de Diretórios do Linux
Resumo: Guia Herez com explicações, exemplos práticos, comandos úteis e boas práticas para os diretórios essenciais do Linux. Ideal para administradores, desenvolvedores e profissionais de infraestrutura.
SumárioPor que a hierarquia importa
Organizar arquivos em diretórios padronizados torna sistemas previsíveis, facilita automação, backups e segurança. Seguir convenções internas da equipe e padrões de mercado reduz tempo de investigação quando algo falha.
Piada curta: se o Linux fosse uma casa,
/etcseria o manual,/homeos quartos e/proca câmera que conta quantas vezes você abriu a geladeira.Visão geral rápida
Diretório Finalidade Exemplo de uso prático / Raiz do sistema Montagens e pontos de recuperação /home Dados pessoais Perfis, chaves SSH, dotfiles /etc Configurações do sistema systemd, rede, serviços /var Dados variáveis logs, caches, bancos locais /usr Programas e dados não essenciais /usr/bin, /usr/share /bin Binários essenciais ls, cp, bash /sbin Binários administrativos fsck, reboot /boot Arquivos de inicialização kernel, initramfs, grub /lib Bibliotecas essenciais libc, módulos compartilhados /dev Arquivos de dispositivo discos, terminais, /dev/null /proc Informações do kernel /proc/cpuinfo, /proc/<pid> Descrição detalhada e exemplos de finalidade
/
Finalidade: raiz do sistema; ponto de montagem principal. Mantenha a raiz enxuta para facilitar snapshots e restaurações.
- Usar partições separadas para
/home,/vare/boot. - Evitar armazenar grandes dados temporários diretamente em
/.
/home
Finalidade: diretórios pessoais dos usuários.
- Armazenar dotfiles e chaves:
~/.ssh,~/.config. - Aplicar quotas para controlar uso de disco em ambientes multiusuário.
- Montar
/homeem partição separada para preservar dados em reinstalações.
/etc
Finalidade: arquivos de configuração do sistema e serviços.
- Versionar arquivos críticos do
/etcem repositório interno para auditoria e rollback. - Exemplos:
/etc/ssh/sshd_config,/etc/fstab,/etc/systemd/system.
/var
Finalidade: dados que mudam com o tempo.
- Logs:
/var/log— configurelogrotate. - Dados de serviços:
/var/lib/mysql,/var/lib/docker. - Cache:
/var/cache— limpar periodicamente para liberar espaço.
/usr
Finalidade: programas, bibliotecas e documentação que não são essenciais para a inicialização mínima.
- Instalar software compilado em
/usr/localpara evitar conflitos com o gerenciador de pacotes. - Montar
/usrcomo somente leitura em ambientes imutáveis para segurança.
/bin e /sbin
Finalidade: binários essenciais e administrativos.
/bin: comandos usados por todos os usuários e scripts de inicialização./sbin: ferramentas de administração que normalmente requerem root.
/boot
Finalidade: arquivos necessários para inicialização do sistema.
- Gerenciar kernels e initramfs; remover kernels antigos com cuidado.
- Verificar espaço em
/bootantes de atualizações de kernel.
/lib e /lib64
Finalidade: bibliotecas compartilhadas essenciais.
- Não remova arquivos manualmente; use o gerenciador de pacotes.
/dev
Finalidade: arquivos de dispositivo que representam hardware e interfaces do kernel.
- Discos:
/dev/sda,/dev/nvme0n1. - Dispositivos especiais:
/dev/null,/dev/loop0.
/proc
Finalidade: sistema de arquivos virtual que expõe informações do kernel e processos em tempo real.
- Consultar status do sistema:
/proc/cpuinfo,/proc/meminfo. - Ajustar parâmetros do kernel temporariamente via
/proc/sysousysctl.
Exemplos práticos com comandos
Trechos de comandos que ilustram operações comuns relacionadas aos diretórios.
Montar /home em partição separada
sudo mkfs.ext4 /dev/sdb1 sudo mkdir -p /mnt/newhome sudo mount /dev/sdb1 /mnt/newhome sudo rsync -a /home/ /mnt/newhome/ # editar /etc/fstab com UUID para montar em /home no bootVer uso de disco e localizar arquivos grandes
df -h / du -sh /var/log/* sudo find / -type f -size +100M -exec ls -lh {} \;Rotacionar logs manualmente
sudo logrotate -f /etc/logrotate.conf journalctl --vacuum-size=200MConsultar informações do kernel via /proc
cat /proc/cpuinfo cat /proc/meminfo sudo sysctl -w net.ipv4.ip_forward=1Recuperação com chroot
sudo mount /dev/sda1 /mnt for d in dev proc sys; do sudo mount --bind /$d /mnt/$d; done sudo chroot /mnt /bin/bash # executar fsck, atualizar initramfs, reinstalar bootloaderBoas práticas Herez
- Particione conforme carga:
/home,/var,/bootem discos separados quando necessário. - Automatize backups de
/homee/etce teste restaurações regularmente. - Use
logrotatee monitore métricas de disco com alertas. - Evite editar binários e bibliotecas manualmente; prefira pacotes e repositórios internos.
- Documente políticas de montagem e permissões no repositório de operações da equipe.
Checklist Herez: backup de/homee/etc; limpar kernels antigos; configurarlogrotate; monitorar/vare/boot.Perguntas frequentes
Onde devo instalar software compilado manualmente
Coloque em
/usr/localpara evitar conflitos com o gerenciador de pacotes da distribuição.Devo montar /usr como somente leitura
Em ambientes imutáveis e de produção, montar
/usrcomo somente leitura aumenta segurança e previsibilidade, desde que atualizações sejam gerenciadas por processos controlados.Como evitar que /var encha
Configure rotação de logs, limpe caches antigos e monitore uso com alertas. Para serviços que geram muitos dados, use partições dedicadas ou armazenamento em rede.
Conclusão
Conhecer a finalidade de cada diretório torna a administração do Linux mais eficiente e segura. Siga as práticas recomendadas, documente decisões de particionamento e automatize backups e monitoramento. Quando algo misterioso aparecer no sistema, antes de culpar o kernel, verifique se alguém não deixou as meias no
/. - Particionamento: separar
-
A four-minute video introduction covering workflow, the Cynefin framework, and the RUT matrix
Developers often prefer a pull workflow because it allows them to select the tasks they want to work on. However, when a project is well-planned and clearly defined, the workflow tends to become push-based, making it difficult for developers to make those choices. This situation highlights a common trade-off between agile methods and structured planning. The Cynefin framework can assist in determining which aspects of a project should be approached with agility and which should follow a more structured plan. Additionally, when prioritizing tasks within a project, a RUT matrix can be used to assess the relevance, urgency, and potential risks of items that are not addressed immediately.

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.
