Postagens

Postagem em destaque

Huguinho e Zezinho surfando com granizo

Imagem
Certa vez, em outubro de 2023, Huguinho e seu amigo Zezinho foram surfar no final da tarde. O vento estava forte e a chuva, constante. Quando chegaram perto da praia, mal conseguiam segurar suas pranchas. O mar estava bem mexido, e ainda tiveram que andar cerca de 1 km até o pico. Quando estavam se aproximando, começou a cair granizo! Dava para ouvir claramente o barulho das pedras contra as pranchas. Eles se abrigaram embaixo do posto avançado dos salva-vidas, mas não adiantou muito. Ficaram olhando o mar — que estava bem agitado e quebrando bem longe — e perceberam que estava difícil passar a arrebentação. Como o granizo não parava, decidiram entrar assim mesmo. Logo que entraram no mar, o granizo cessou, mas aí começou o verdadeiro desafio: passar a arrebentação. Depois de levar várias séries na cabeça e quase sem forças, finalmente conseguiram. E começaram os raios! Quando estavam quase decidindo sair por causa deles, os raios pararam. Ufa! É algo estranho: você está lá, só você (c...

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.

VSCode não roda?

Esses dias fiz uma atualização do VSCode (gosto de manter os softwares atualizados) e ele simplesmente não abriu mais. Clicava no ícone e ele abria e já fechava em seguida. Depois de muita pesquisa, não descobri o problema. Daí comecei a operar em modo desespero: Primeiro, tentei acessar sem nenhum extensão, pois imaginei que poderia ser um problema de compatibilidade de uma extensão com a nova versão do VSCode. Para isso rodei o comando: code --disable-extensions E nada. Ele simplesmente não dava sinal de vida. Em tempo: se precisar desinstalar uma extensão problemática via linha de comando use: code --uninstall-extersion <ext-id> O <ext-id> você consegue com o comando: code --list-extensions Depois, tentei baixar versões mais antigas, mas também não adiantou. https://code.visualstudio.com/updates Nessas horas a experiência conta muito: resolvi renomear o arquivo settings.json, e deu certo. Ele estava corrompido. Daí foi fácil descobrir o problema do arquivo e corrigir. Es...

Paradoxo Final: sem anúncios

Quando comecei o blog, em 2009, nunca pensei em ganhar dinheiro. Mas como alguns posts fizeram sucesso e tive meses que alcancei mais de 34 mil visualizações, o dinheiro começou a entrar. Quer dizer, os trocados, pois em 13 anos ganhei menos de 130 dólares.  De todo modo, em virtude disso, mantive os anúncios. E como somos acomodados por natureza, e mesmo o blog tendo muito menos visualizações, mantive os anúncios. Mas esse final de semana resolvi removê-los, afinal, não escrevo para ganhar dinheiro (até que gostaria, mas não tenho tempo), escrevo porque eu gosto. Então, espero que aproveitem a nova cara do Paradoxo Final.

Como traduzir (legendar) qualquer vídeo do Youtube

Imagem
Às vezes você encontra um vídeo no Youtube com a solução do seu problema, mas ele está em uma língua que você não domina. Normalmente, você olha se tem legenda, e na maioria dos casos ou não tem, ou só tem na própria língua do vídeo Aí você abandona o caso, certo? O que muita gente não sabe é que o próprio Youtube permite você legendar em qualquer língua (que ele tenha disponível).  O segredo é clicar em Legendas primeiro, e depois em Configurações. Assim, aparecerá a opção "Traduzir automaticamente". Ao clicar nessa opção, basta escolher o idioma da tradução. Clique no ícone Legendas e no item de menu Legendas Clique em Traduzir automaticamente Selecione o idioma Voilá! Infelizmente se você fechar o vídeo será preciso executar o processo novamente.

Dicas Go - #1 - Goroutines

Imagem
Já falei um pouco sobre concorrência em Go , mas percebi que não fui muito esclarecedor, por isso vou fazer uma outra abordagem, mais detalhada, sobre esse assunto. O código completo dos programas está no final do texto. Vamos imaginar que você queira fazer um programa que faça acesso à uma API algumas vezes e retorne o resultado como string. Para não tornar o programa muito complexo, utilizei uma pesquisa fake, que simula um retorno e gasta  100 milissegundos. Ao rodar o programa sequencial.go, vemos na tela uma saída como a abaixo: Como esperado, os resultados são listados em ordem, de "golang 0" à "golang 19". E o tempo gasto, pouco mais de 2s, também não é nenhuma surpresa (20 vezes 100 milissegundos mais algum tempo do resto do código). A coisa começa a melhorar quando rodamos o programa concorrente.go. O tempo gasto reduziu de 2s para 100ms. Qual é a mágica? São as goroutines! Se reparar bem, são poucas mudanças em relação ao código original (na verdade, essa ...

Iniciando o Windows Terminal com layout pré-definido (4 janelas)

Imagem
Se você gosta ou precisa usar o Windows Terminal (WT), talvez já tenha sentido a necessidade de abrir várias abas. Mas dependendo do que você faz, várias abas não são assim tão confortáveis para trabalhar, . Por exemplo: você sobe um servidor numa aba e em outro dispara comandos CURL para verificar se sua API está respondendo a contento. Nesse caso, você precisa ficar alternando entre as abas para ver o resultado. E se desse para ver tudo de uma só vez?  O melhor é que dá sim. E é fácil! Basicamente, você chama o executável do WT (wt.exe) passando alguns argumentos. Nesse link , tem uma descrição completa dos argumentos. Uma janela como a de cima, pode ser obtida com o comando: wt.exe -M -d d:\temp ; sp wsl.exe ~ ; mf left ; sp -d d:\dev ; mf right; sp -d d:\bin\monitor Uma breve descrição dos argumentos utilizados acima: -M maximiza a tela -d abre a janela em um determinado diretório sp (split-panel) divide uma janela/painel mf (move-focus) move o foco numa direção (...