Esse blog traz várias dicas de programação, principalmente voltadas para o mundo Java, mas também fala sobre Front-End, Banco de Dados e muito mais.
quinta-feira, 18 de dezembro de 2025
API first - ótimo com IA
domingo, 4 de agosto de 2024
Metodologia Twelve-Factor
A metodologia Twelve-Factor App é um conjunto de 12 regras para manter uma aplicação de forma eficaz, sendo elas:
Codebase (Código-fonte único): Uma aplicação deve ser armazenada em um único repositório de código, com múltiplas implantações derivadas do mesmo código-base.
Dependencies (Dependências explícitas): Todas as dependências da aplicação, incluindo bibliotecas e ferramentas de sistema, devem ser declaradas explicitamente e gerenciadas de forma isolada.
Config (Configurações): As configurações da aplicação devem ser armazenadas em variáveis de ambiente, não no código-fonte, para permitir a configuração flexível em diferentes ambientes.
Backing Services (Serviços de Back-end): Os serviços de back-end, como bancos de dados e filas, devem ser tratados como recursos externos, acessíveis por meio de interfaces padrão.
Build, Release, Run (Construir, entregar, executar): O processo de build, entrega e execução da aplicação deve ser separado em etapas distintas, com cada etapa tendo suas próprias responsabilidades e garantindo a consistência entre ambientes.
Processes (Processos): As aplicações devem ser executadas como processos independentes, leves e sem estado (Stateless), para facilitar a escalabilidade e a resiliência.
Port Binding (Ligação de porta): As aplicações devem ser autocontidas e expor serviços por meio de portas, para que possam ser facilmente conectados a outras aplicações e serviços.
Concurrency (Concorrência): As aplicações devem escalar horizontalmente, adicionando instâncias concorrentes para lidar com cargas de trabalho aumentadas.
Disposability (Descartabilidade): As aplicações devem ser fáceis de iniciar e parar rapidamente, sem impacto para outras partes do sistema, para facilitar o deploy e a atualização contínua.
Dev/Prod Parity (Paridade dev/prod): Os ambientes de desenvolvimento, testes e produção devem ser o mais semelhantes possível, para minimizar diferenças e evitar problemas de compatibilidade.
Logs (Registros): As aplicações devem produzir logs estruturados e acessíveis por meio de interfaces padronizadas, para facilitar a depuração e o monitoramento.
Admin Processes (Processos de administração): As tarefas administrativas, como migrações de banco de dados e limpeza de caches, devem ser executadas como processos únicos e rastreáveis.
sábado, 4 de fevereiro de 2023
Instalando o Docker no Windows usando WSL 2 e Ubuntu
Nesse artigo vamos configurar o Docker pra rodar no Ubuntu através do WSL 2 de forma nativa (como se a máquina fosse Linux puro). Caso não tenha o WSL 2 configurado veja aqui como fazer: Configuração WSL 2
Agora vamos ao Docker! O
primeiro passo é atualizar a biblioteca do Ubuntu de gerenciamento de programas:
$ sudo apt update && sudo apt upgrade
Depois
instalar as dependências como Http, certificados, acesso a URLs, etc...
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \lsb-release
Agora
adicionar o repositório Docker na biblioteca do Ubuntu:
$ sudo
mkdir -p /etc/apt/keyrings
$ curl
-fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o
/etc/apt/keyrings/docker.gpg
Agora
para configurar o repositório:
$ echo \
"deb [arch=$(dpkg --print-architecture)
signed-by=/etc/apt/keyrings/docker.gpg]
https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Vamos
mais uma vez atualizar a biblioteca:
$ sudo
apt-get update
Agora
sim vamos instalar o Docker. Para a instalar a última versão usamos:
$ sudo
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
Para
instalar uma versão específica primeiro listamos as versões:
$ apt-cache
madison docker-ce | awk '{ print $3 }'
E
então instalamos a que desejamos. Ex:
$ VERSION_STRING=5:20.10.13~3-0~ubuntu-jammy
$ sudo
apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING
containerd.io docker-compose-plugin
É
preciso também dar permissão a pasta criada. A instalação do Docker já espera
que haja um grupo chamado "docker". Veja com o comando "groups"
se esse grupo "docker" já existe, caso não tenha sido criado, siga as
duas linhas abaixo, caso tenha sido criado, apenas adicione seu usuário a ele.
$ sudo
groupadd docker
$ sudo
usermod -aG docker $USER
Pronto,
agora é só fazer logoff e login ou fechar o app do Ubuntu e abrir novamente para
poder usar o docker.
Atenção!
Em alguns casos ao sair e entrar no App do Ubuntu (e outras distribuições) ele
desliga o serviço do Docker. Caso isso aconteça pode ser resolvido da seguinte
maneira:
$ sudo
systemctl enable docker.service
$ sudo
systemctl enable containerd.service
Isso
adiciona o serviço do Docker ao Systemd que gerencia serviços que inicializam
automaticamente. Caso queira remover basta usar o "disable" ao invés
do "enable".
Fonte:
https://docs.docker.com/engine/install/ubuntu/
https://docs.docker.com/engine/install/linux-postinstall/
https://github.com/codeedu/wsl2-docker-quickstart#instala%C3%A7%C3%A3o-do-wsl-2
terça-feira, 12 de abril de 2022
Glowroot - Ferramenta grátis para profiling remoto de aplicações Java
sábado, 7 de dezembro de 2019
Debug remoto no Tomcat com o Eclipse
Primeiro precisamos criar um arquivo na pasta raiz do Tomcat, e esse arquivo muda de extensão e de conteúdo de acordo com o S.O..
Vamos primeiro ao do Windows: pode chamá-lo de startupDebug.bat e o conteúdo básico deve ser o seguinte:
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
bin/catalina.bat jpda start
No ambiente linux o arquivo pode ser chamado de startupDebug.sh e deve ter permissão de leitura e execução (+rx). O conteúdo básico é o seguinte:
export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
bin/catalina.sh jpda start
Feito isso, quando quisermos debugar o Tomcat pelo eclipse, basta executar o Tomcat a partir desse script, ao invés do startup.bat (ou startup.sh em ambientes Linux) que executamos de costume. A porta de acesso ao sistema via browser continua a mesma de antes, a nova porta configurada foi para o debug. Será necessário liberação da porta no firewall em caso de acesso a servidores protegidos.
Tendo feito isso e com a aplicação já startada, vamos ao eclipse configurar o debug remoto.
No eclipse, no menu Run vá em Debug Configurations, a seguinte janela abrirá:
Clique com o botão direito do mouse na opção Remote Java Aplication e escolha a opção New Configuration. A imagem abaixo mostra em realce cada ponto de configuração, que são bem intuitivos. Após escolher a aplicação e dizer o endereço da aplicação onde está o localhost, no campo Port coloque a porta que configuramos no arquivo e clieque em Debug.
Pronto, se todas as configurações estiverem corretas, o eclipse vai se conectar com a aplicação e você poderá debugar normalmente o código. Abraços!
terça-feira, 6 de fevereiro de 2018
Git – Configurando o SSH no Windows e no GitHub
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
http://guides.beanstalkapp.com/version-control/git-on-windows.html


