Tenho muitas conexões aqui no LinkedIn de diferentes momentos da minha vida, de diferentes experiências e contextos. Muitos eu conheço apenas vagamente ou admiro, já outros são colegas, amigos, líderes e ex-líderes, entre outros.
Entretanto, tem coisas que poucas pessoas sabem. Uma delas é que eu já fui tradutor de diversos apps e softwares, inclusive do projeto Gnome.
Em uma época onde até acesso a sites como Babel e Google Tradutor eram limitados, comecei traduzindo softwares de maneira “não-oficial”, pegando apps do finado “Symbian OS” (um sistema operacional da Nokia para celulares), realizando traduções e disponibilizando os pacotes já traduzidos em sites como 4Shared. Após um tempo fazendo isso com apps menores, comecei a traduzir softwares desktop, como o System Ninja e o iSpy Connect. Eu ficava muito feliz quando encontrava softwares open-source que tinham as traduções no código-fonte, facilmente acessíveis.
Um pouco mais velho, ali pelos 18–19 anos de idade, auxiliei na tradução do livro “Mastering Bitcoin”, do Andreas M. Antonopoulos (livro publicado em 2014).
Ao longo dos anos que fiz traduções (no começo, sem fazer menor ideia do que eu estava fazendo), tive a possibilidade de traduzir cerca de 5 a 6 apps de celular, 10 softwares desktop, 1 livro digital e legendei dezenas de vídeos.
Eu nunca fiz um curso de inglês (não tinhamos dinheiro pra isso), mas o importante foi meter a cara e tentar ajudar.
Se você faz algum curso ou disciplina em plataformas Moodle — seja na universidade, num instituto federal ou num curso online — provavelmente já passou por isso: você navega pelo conteúdo durante o semestre de forma linear, módulo por módulo, e quando chega a hora de revisar para a prova, precisa refazer toda essa jornada.
O conteúdo está fragmentado por design. Aula aqui, material complementar ali, PDF num módulo diferente, vídeo em outra página… Isso torna a revisão lenta e cansativa.
Pensando nisso, criei a Moodle Content Extractor for NotebookLM — uma extensão gratuita para Chrome, Edge, Brave e outros navegadores baseados em Chromium que captura o conteúdo textual da sua disciplina enquanto você navega, e exporta tudo em Markdown pronto para usar no NotebookLM.
🤔 O problema que essa extensão resolve
O Moodle é uma das plataformas de ensino mais usadas no Brasil e no mundo, principalmente em universidades. Mas ele não foi projetado para facilitar a revisão do conteúdo — foi projetado para dar acesso a ele.
O resultado é que o conteúdo fica espalhado: você precisa lembrar em qual módulo estava aquela explicação importante, qual atividade tinha o texto mais relevante, qual página tinha as referências bibliográficas…
A ideia da extensão é simples: capturar o conteúdo textual de forma passiva, enquanto você já está navegando pelas páginas da disciplina, sem nenhum esforço extra. Você só precisa clicar em “Iniciar Captura” uma vez.
✨ Como funciona?
A extensão funciona de forma discreta. Depois de definir a URL base do seu Moodle e ativar a captura, ela registra automaticamente o conteúdo textual das páginas que você visita — organizando tudo por curso e módulo com base nos breadcrumbs do Moodle.
Ao final, você exporta tudo como um único arquivo .md (Markdown) com uma estrutura limpa:
O NotebookLM lida muito bem com essa estrutura porque o conteúdo já vem agrupado por disciplina e módulo, pronto para funcionar com o Gemini.
🚀 O que você consegue fazer com esse conteúdo?
Aqui mora o verdadeiro poder da extensão. Com o arquivo Markdown exportado e os recursos mais recentes do NotebookLM, você consegue:
🎙️ Ouvir um podcast de resumo sobre todo o conteúdo da disciplina — de altíssima qualidade, diga-se de passagem
🃏 Criar flashcards para SRS (Sistemas de Repetição Espaçada), como o Anki
🗺️ Gerar um mapa mental resumindo todos os conceitos abordados
📊 Criar resumos em vídeo, infográficos e apresentações de slides
❓ Fazer perguntas diretamente ao conteúdo da disciplina, como se fosse um tutor particular
Em vez de passar horas relendo materiais lineares, você tem um assistente de IA que conhece todo o conteúdo da disciplina e pode te ajudar a estudar de formas completamente diferentes.
🎯 Fluxo de uso recomendado
Esse é o workflow que tem funcionado bem na prática:
Navegue pelas páginas de aulas, atividades e módulos normalmente
Clique em “Parar Captura” quando terminar
Exporte o curso como Markdown
No NotebookLM, crie um novo notebook
Faça upload do .md exportado e do PDF do plano de ensino da disciplina
Peça ao Gemini para gerar flashcards, criar podcasts de resumo, montar mapas mentais…
Dica: Para deixar o contexto ainda mais focado no material de ensino, além do .md, envie também um PDF com o plano de ensino (syllabus) e as referências bibliográficas da disciplina. Isso ajuda o NotebookLM a entender melhor o escopo do conteúdo.
🛡️ Privacidade e segurança dos dados
Um detalhe que levei muito a sério no desenvolvimento: todos os seus dados ficam no seu próprio navegador. A extensão não tem backend, não usa servidores externos, não envia absolutamente nada para a nuvem.
Tudo é armazenado localmente no chrome.storage.local. Para evitar perda de dados durante o uso, implementei algumas proteções extras:
Gravações com verificação de integridade para evitar corrupção de dados
Capturas serializadas para reduzir risco de condição de corrida
Snapshots automáticos antes de qualquer ação destrutiva
Exportação e importação de backup em JSON
Restauração manual do último snapshot salvo
🔧 Funcionalidades
Captura automática do conteúdo enquanto você navega pelas páginas do Moodle
Agrupamento por curso e módulo com base nos breadcrumbs do Moodle
Exportação individual por curso ou exportação de todos os cursos de uma vez
Extração de links de vídeos e attachments (PDF, DOCX, PPTX)
Zero dependências externas — sem build step
Arquitetura local-first: sem servidor externo necessário
👥 Para quem é?
Estudantes universitários que usam Moodle no dia a dia
Pessoas fazendo cursos online em plataformas baseadas em Moodle
Professores e tutores que querem criar materiais de revisão rapidamente a partir do próprio conteúdo do curso
Qualquer pessoa que queira transformar conteúdo textual denso e fragmentado em algo mais fácil de absorver
A extensão não tem dependências externas e não precisa de build step — o que facilita muito a entrada de novos contribuidores. Se quiser contribuir, comece pelo CONTRIBUTING.md.
📚 Considerações Finais
O Moodle foi criado para dar acesso ao conteúdo educacional, não para facilitar a revisão ou a criação de materiais de estudo a partir dele. Com ferramentas como o NotebookLM e uma extensão simples, dá para preencher essa lacuna e transformar aquelas disciplinas mais densas — ou mais chatas, como alguns diriam — em algo muito mais rico e aproveitável.
Se você testar, me conta nos comentários como foi a experiência! Feedback, sugestões e contribuições são muito bem-vindos. 🎓
While some suggest using Ventoy to create a Windows bootable USB, it often proves to be less user-friendly, especially for those using Linux distributions like Ubuntu 24.04. For a more straightforward and reliable method, I recommend using WoeUSB.
Let’s bypass the bureaucratic details and get straight to creating a Windows bootable USB from Ubuntu 22.04 or any other Linux distro.
1. Download the Windows 11 ISO
Visit the Microsoft download page to download the Windows 11 ISO file. The ISO file is approximately 6.8 GB in size.
2. Install required dependencies
You’ll need to install some dependencies to use WoeUSB. Open your Terminal and run the following command:
Recentemente eu finalmente tive coragem de publicar um conto que já havia escrito há muito tempo: A Anuência. O conto, extremamente curto e com algumas características bem peculiares que lembram em muito Franz Kafka em "A Metamorfose", narra a história e os problemas existenciais de Kauan Ferreira Castro, um jovem escritor residente de Florianópolis (SC). Sinopse do conto Kauan Ferreira Castro, um jovem escritor residente em Florianópolis
(SC), precisa terminar um livro em um prazo extremamente curto para
colocar sua vida de volta nos eixos. Com a pressão da família e da
sociedade, Kauan acaba entrando em um enigmático conflito consigo mesmo:
o que ele deve fazer? Deve ceder à pressão de tudo e todos ou
simplesmente ignorar? Afinal de contas, qual equino ele deve escolher? O livro "A Anuência" está disponível para download na Amazon: https://www.amazon.com.br/dp/B01MTK6VZ6 Veja também a página do "A Anuência" no Goodreads: https://www.goodreads.com/book/show/32927343-a-anu-ncia Espero que passe alguma mensagem para os leitores e, de preferência, a que tentei criar ao escrever este conto.
If you bought audiobooks from Audible and use Linux in your daily live, you're probably in bad hands: besides Audible web player, there's no client that you can run using Ubuntu or a Linux distribution. In order to listen to your Audible stuff you can use this Web Player, but what if you don't have Internet access in the moment? In this case the best thing you can do is convert your AAX files to MP3 files, allowing you to listen to your Audible stuff using any media player at any given moment.
So you're looking for a way to convert your Audible AAX files (.aax) to MP3 files (.mp3) on Linux? There's two programs and some Python dependencies that can make it for you: Audible Activator and AAXtoMP3. The problem is that you don't have a integration between these two softwares and for those who don't have knowledge with scripts, programming or even basic Linux, using these two softwares can be little challenging.
With this people in my mind, I've made a little script that allows you to easily convert Audible .aax files to .mp3. Just download a single script, run it with the correct parameters and it's done!
You can take a look in aax2mp3-easy here. There you can find some instructions on how to download, install and use aax2mp3-easy too. If you have any problem, feel free to contact me in Github or even using the blog comments.
Recently I've meet the awesome Rocket.Chat and for internal reasons I need to access its database using Robomongo, a cross-plataform MongoDB client. The problem is that Rocket.Chat was running in a Docker container, it's MongoDB database was running in another Docker container, all running inside an Amazon Web Service (AWS) EC2 instance. I thought that would be very hard to connect to my MongoDB database using Robomongo, but it was actually quite easy. In the following steps you'll discover how to use Robomongo to connect to a MongoDB database running in a Docker container inside an AWS EC2 instance. 1º Step)Discover your EC2 instance public IP and make sure you can access it through SSH. You can find your instance public IP from your EC2 Management Console:
2º Step) Discover the IP from Docker container running your MongoDB server / database. In order to do that, login to your AWS EC2 instance through SSH and then run:
From here we'll call this value by "MongoDB IP". 3º Step)Now that you have the public IP from your AWS EC2 instance and also the IP from the Docker container running MongoDB, open Robomongo and create a new connection filling the "Address" field with MongoDB IP and the "Port" field with 27017 (MongoDB default port):
Now go to the "SSH" tab and fill the fields with the following: SSH Address: public IP from your AWS EC2 instance. Port 22. SSH User Name: "ec2-user" SSH Auth Method: select "Private Key". Private Key: select the .pem file you use to access your EC2 instance through SSH. Right now you should have the following:
4º Step) Done! Now you can visualize, edit and insert new data as you want.
If you have any questions or issues following this tutorial, let me know through the comments. Leave your comment if you liked it, too!
Recentemente tenho trabalhado bastante com o KairosDB, um banco de dados para séries temporais (timeseries) que roda em cima de bancos de dados como H2, Cassandra e HBase.
Como temos utilizado bastante Python no laboratório em que trabalho (LISHA), resolvi criar um repositório no Github para mostrar alguns exemplos simples de código para consultar/inserir/deletar dados do KairosDB através do Python e do módulo "requests" (aquele famoso módulo do Python).
Criei um exemplo para cada endpoint da REST API do KairosDB, mas em geral os exemplos são bem simples (apenas para se saber como se faz, mesmo). Eu tive muitas dores de cabeça até aprender a fazer todas as requisições de forma correta, pois digamos que a API REST do KairosDB não é muito REST e também não é muito robusta.