Postagens

Postagem em destaque

WSL: Backup e Restauração

Imagem
Às vezes você tem um drive mais rápido (SSD) que o outro (HD). É o meu caso: meu drive C, é um SSD de 256 GB e meu drive D, é um HD de 512 GB. Um é pequeno e rápido; outro é grande e lento.  Meu drive C, por ser pequeno, acabou ficando sem espaço. Então fui pesquisar por grandes arquivos (usei o excelente TreeSize Free para isso) e descobri um tal de ext4.vhdx que tinha 29 GB. Esse arquivo é a imagem do disco do WSL no Windows e é normal ficar grande. O problema é que mesmo você apagando arquivos ele não diminui. E quando você usa o Docker, a situação se agrava rapidamente. Então, descobri uma maneira de compactar esse arquivo/disco. É um comentário da KarolineWss numa issue do WSL. Funciona maravilhosamente bem. Tanto que consegui diminuir praticamente pela metade o arquivo.  Mas para fazer isso, claro, pesquisei como fazer backup (e restauração). Esse artigo é sobre isso. E com um bônus, esse o arquivo fica numa localização meio complicada para humanos, mas fazendo um bac...

Código Limpo: Nomes Significativos

Imagem
Às vezes fico com um assunto na cabeça por semanas, até achar uma situação ou um exemplo que esclareça a situação. Explico: estava querendo já a algum tempo escrever sobre boas práticas de programação, e pensei em iniciar por "Nomes Significativos", para seguir a nomenclatura utilizada pelo ótimo livro Código Limpo , de Robert C. Martin.  Entretanto, ficava sempre amarrado em exemplos que pareciam ser bons, mas que ainda eu não tinha visto a utilidade prática.  Antes de continuar preciso explicar que tenho um hábito de anotar num bloco de papel todas as ideias que surgem, pois elas desaparecem com a mesma velocidade que aparecem. Para isso tenho um bloco e caneta na mesa de cabeceira (além de um no banheiro), pois esses são os lugares onde tenho mais ideias... Vai entender... Semana passada, estava com um problema bem complicado e tive uma ideia: "vou criar uma variável para indicar que quando um arquivo tiver um certo tamanho deve gravar algumas informações no log. Pois...

A incrível velocidade do Go

Imagem
Um dos motivos que gosto do Go (a linguagem de programação, não o jogo), é que ele é extremamente rápido. E não estou falando de utilizar goroutines pois aí é covardia. Estamos migrando um sistema de Coldfusion para Go e PHP e uma das rotinas insere um registro no banco de dados no início e outra no fim do processo. Pense como se fosse um log, mas um log específico para essa rotina. Dessa forma: 2023-05-18 17:45:03. 687     ... [processaImagem] Incorporando imagem 2023-05-18 17:45:03. 688     ... [processaImagem] Imagem incorporada Entre o inicio e o final do processamento levou 1ms. Até aí, tudo bem, se não fosse o fato dessa tabela ter o campo timestamp como parte da chave primária. Se reparar, o tempo é definido em milissegundos. Com o Coldfusion esse processo dura cerca de 20ms. Simplesmente migrando para Go, o tempo caiu muito, para menos de 1ms e assim, começou a dar erro de chave duplicada. A solução? Depende, sempre depende. No nosso contexto, a ma...

ABS (Arquitetura do Bom Senso): A Importância do Bom Senso na Arquitetura de Software

Durante as últimas semanas acompanhei algumas discussões sobre arquitetura de software e clean code. Por isso resolvi escrever esse artigo. A arquitetura de software é fundamental no desenvolvimento de sistemas de alta qualidade e desempenho. É responsável por definir a estrutura e organização do código-fonte, as interações entre os diferentes componentes e as diretrizes para garantir a escalabilidade, manutenibilidade e extensibilidade do sistema. No entanto, além de técnicas e padrões estabelecidos, existe um fator crucial que muitas vezes é negligenciado: o bom senso. Neste artigo, exploraremos a importância do bom senso na arquitetura de software, apresentando a ideia da ABS (Arquitetura do Bom Senso) e como ela pode impactar positivamente os projetos de desenvolvimento. O que é a ABS (Arquitetura do Bom Senso)? A ABS (Arquitetura do Bom Senso) é uma abordagem que destaca a importância de aplicar o bom senso durante o processo de arquitetura de software. Ela reconhece que as melhor...

Atual Momento da IA: ChatGPT

A inteligência artificial é um tema que vem ganhando cada vez mais espaço na nossa sociedade e tem a capacidade de mudar a forma como vivemos e trabalhamos. Atualmente, estamos testemunhando um marco na evolução da IA, com modelos como o ChatGPT liderando o caminho. O ChatGPT é um modelo de linguagem de ponta desenvolvido pela OpenAI. Ele foi treinado em milhões de páginas da web e possui uma incrível capacidade de compreender e gerar texto natural. Isso significa que ele pode responder a perguntas, escrever textos e até mesmo criar conversas com humanos, sem que eles percebam a diferença. O sucesso do ChatGPT é resultado de anos de pesquisa e desenvolvimento, e ele está mudando a forma como vemos a inteligência artificial. Antes, modelos de IA eram incapazes de compreender o significado por trás das palavras e apenas respondiam com base em padrões previamente programados. Agora, com o ChatGPT, a IA tem a capacidade de aprender e evoluir ao longo do tempo, tornando-se cada vez mais hu...

Dica rápida: .gitignore não "funciona"

Caso você tenha um arquivo que já estava versionado, e você agora quer removê-lo do versionamento, é necessário limpar o cache local do repositório. Para isso basta executar: git rm -r --cached <path_e_nome_arquivo>

Falha ao acessar a API da Binance

De uns tempos pra cá, meu programa que monitora o preço de ações e criptomoedas (tenho um post sobre isso), passou a receber a mensagem:  "Service unavailable from a restricted location according to 'b. Eligibility' in https://www.binance.com/en/terms. Please contact customer service if you believe you received this message in error."  Depois de muito pesquisar, descobri o problema: meu programa fica hospedado nos EUA, e eu uso o endereço base https://api.binance.com . A solução é bem simples, troque o endereço base por https://api.binance.us . O único porém é que alguns assets não existem no novo endereço. Por exemplo:  https://api.binance.us/api/v3/ticker/24hr?symbol=ETHBRL . Nesse caso, a única solução é trocar o ETHBRL por ETHUSD.