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...

Como aprender a programar

Imagem
Estava assistindo um vídeo do Fabio Akita, "A Dor de Aprender | Que Cursos/Livros"  e em determinado momento, ele falou sobre os microcomputadores antigos, da década de 80, como o TK95. E logo depois ele pergunta: "Como pessoas como eu, quando criança, conseguimos aprender a programar num ambiente muito mais hostil do que hoje em dia?". Isso me fez lembrar do meu início como programador, em 1985, mesmo ano que comecei a surfar. Já explico o que o surfe tem a ver com isso. Como ele mesmo diz, naquela época as máquinas eram extremamente limitadas. Perto de agora, a situação realmente não era fácil: não existia internet, poucos livros e cursos, e principalmente não existia o Github. No máximo, algumas revistas como Micro Hobby e Micro Sistemas.  O meu primeiro computador foi um TK2000  e ele vinha com um manual que ensinava o básico do Basic (isso soou estranho). Meu pai também sabia um pouquinho: ele criou um programa que escolhia um número aleatório e você tentava ad...

Google Hacking

Imagem
Segurança digital Quando vemos um ataque a um grande site pensamos que o hacker provavelmente utilizou ferramentas sofisticadas, etc. O que nem todo mundo sabe é que muitas vezes facilitamos tanto o ataque que o hacker só precisa fazer uma pesquisa no Google para descobrir como invadir. Antes de prosseguir, uma explicação: o Google consegue trazer tantos resultados (incluindo login e senhas) porque seus robôs (também chamados de spiders ou webcrawlers) vasculham constantemente a internet e indexam as páginas. O problema ocorre quando alguém deixa um arquivo TXT com as senhas utilizadas no desenvolvimento do site, por exemplo, e o site está permitindo a indexação desses arquivos. Isso é mais comum do que você imagina, conforme iremos ver mais abaixo. Esclarecimentos Não é meu intuito ensinar ninguém a fazer algo ilegal, pelo contrário, o objetivo é dar ferramentas para que você descubra as fraquezas do seu site e dessa maneira, possa fazer os ajustes necessários para diminuir as vulnera...

Como ocultar as curtidas de outras pessoas no Twitter

Imagem
Isso estava me incomodando, pois de uns tempos pra cá, começaram a pipocar diversas curtidas na minha timeline que não me interessavam. Depois de extensa pesquisa (ok, 5 minutos googleando), acho que descobri uma maneira. Segue o passo a passo: Entre no Twitter , clique em "Mais..." e depois em "Configurações e privacidade". Em seguida, clique em "Privacidade e segurança", e "Silenciar e bloquear": Finalmente, clique em "Palavras silenciadas": Agora basta clicar no sinal de "+", no alto à direita e colocar as seguintes palavras (uma a uma): suggested_liked_tweet e suggest_activity_tweet: Observações: 1. Opcionalmente, para acessar diretamente a tela de "Palavras silenciadas", basta clicar no link:  https://twitter.com/settings/muted_keywords 2. No celular, muda um pouco, mas a ideia é a mesma: Menu de configurações > Configurações e privacidade > Privacidade e segurança > Palavras silenciadas.

A era dos serviços

 Já repararam na enorme quantidade de serviços que assinamos? Vou começar pelo básico e caso seja necessário, explico o que ele faz: 1. Internet   2. TV a cabo: sei que a tendência é desaparecer, mas por enquanto ainda pago 3. Telefone fixo: vide acima 4. Celular Bom, hoje em dia, tem mais alguns que podem ser considerados básicos: 5. Netflix 6. Amazon Prime 7. Disney + 8. Spotify Continuando, com os "esportivos": 9. Surfview : mostra as condições do mar de determinada praia/pico.  10.  Sócio torcedor : sou Figueirense sim (não importa se for série A, B ou C), e não tenho vergonha! Deixe sua piadinha aqui, mas lembre-se que o mundo dá voltas, então... Por fim, 11. Youtube Premium : não suporto as propagandas 12. Google One : desde cedo aprendi que o backup é importante. 13. XBox Gold Live : quem não gosta de um joguinho de vez em quando? 14. Digital Ocean : provedor de infraestrutura na nuvem. Básico para qualquer desenvolvedor.  Acho que é isso. Imagino qu...

Dica rápida: compartilhar por Telegram (mensagens salvas)

Imagem
Uso o Telegram há bastante tempo, mas só recentemente descobri (mais) uma utilidade: uso ele para compartilhar páginas, artigos, tweets, etc. É só enviar para o grupo "Mensagens Salvas".  Por exemplo: no Twitter, você seleciona "Compartilhar Tweet por...", escolha "Telegram":  e depois o grupo "Mensagens Salvas":

Robô para controlar ações e criptomoedas

Imagem
Uma das vantagens de ser programador é que quando você não encontra o software que quer, você cria um.  Eu estava a procura de um robô para me ajudar no controle de ações e criptomoedas, mas não encontrei nenhum gratuito que faz o que eu quero: monitorar a cotação das ações e criptomoedas que eu tenho e me alertar quando eu tiver um determinado ganho ou perda. Queria algo simples e prático.  Como não achei nada com todas as características necessárias, criei um pra mim. Para isso usei a linguagem Go (Golang). Mas não se assuste, dividi esse post em duas partes: a primeira, uma explicação de como o programa funciona e a segunda, mais técnica.  A ideia é a seguinte: ler um arquivo com a carteira que eu tenho, com as informações necessárias para me informar quando atingir o valor pré-determinado de ganho ou perda. A cada intervalo de tempo (configurável), carregar as cotações atualizadas da carteira e recalcular tudo novamente. Se ultrapassar ...

GO: "try/catch" ou "if err != nil"

Assim que comecei a programar em GO, fiquei bastante preocupado pelo fato dele não ter try/catch. Eu já estava (mal) acostumado a usar try/catch em tudo que é lugar. E isso é um erro. Bom, não chega a ser um erro, mas descobri que usar IF de maneira inteligente, o código fica muito mais claro. Como o Rob Pike, diz: " Errors are values ". Além disso, se você tem um bloco de código grande dentro de um try, logicamente terá que tratar todos os possíveis erros dentro do catch, o que visualmente não fica tão claro. Diante disso, passei a não mais encadear um IF dentro de outro (sempre que possível, lógico), e já trato (e retorno) os erros tão logo quanto possível. Parece bobo, mas nem sempre fiz isso. E agora, me parece algo tão óbvio!