So I'm releasing a single!

2023, mai 01

I have written a few songs over the years, their lyrics are scribbled down on a personal archive and there are some terrible home-made (phone-made!) recordings of them laying around, stuff that I've shared with friends and family over WhatsApp and the like.

This one is different!

I've written this …

Continue reading →

The Joy of YAML

2021, août 13

I haven't written much on the blog on the last few years, I don't know, I didn't felt like I had much to say. There is so much being said on the Web, lots of great stuff, but also tons of crap too, and I didn't feel like adding to …

Continue reading →

Em busca de conteúdo francófono

2019, janvier 25

Faz pouco mais de um ano que estou morando na França, e ainda estou descobrindo onde encontrar bom conteúdo francófono na internet.

O Netflix tem vários filmes e algumas séries, mas acho que poderia melhorar muito o catálogo francófono. Quando eu estava no Brasil não haviam muitas opções, e o …

Continue reading →

Cool Linux apps you might not know

2019, janvier 25

Trying to ship the old blog post drafts

Here are some cool Linux apps you might not know yet.

sm -- or, screen message

sm is a small app to display text big and fullscreen.

Simple as that.


flameshot is an awesome app for making screenshots.

I've mapped my PrintScr …

Continue reading →

Post Pycon blues

2018, mai 22

When I arrived at Cleveland's airport a few weeks ago to attend Pycon, the customs agent didn't know that there was a tech conference happening in town. I'm sure many other people knew something was going on, because I was welcomed by a screen just after she checked my documents …

Continue reading →


2018, mai 02

I've been wanting to write since a little while but whenever I sit to write a post I end up on an endless yak-shaving of making small adjustments to the blog. I know that if I wanted to optimize my blogging flow for writing I should start using something like …

Continue reading →

Urwid is great!

2017, avril 21
Screenshot showing usolitaire

Ever since I started using the awesome pudb debugger for Python programs I've been curious about the urwid library, an user interface library for console-based applications that the debugger uses. The examples in the gallery are just gorgeous!

So last week I decided I would write a console-based game and …

Continue reading →

Lazy evaluation as alternative to state machines, maybe

2017, mars 27
Picture with diagram of Finite State machine

Some days ago I read this nice article talking about co-routines as an alternative to state machines.

The most popular use case for co-routines in Python has been asynchronous I/O, and there are a bunch of Python things that use them (like Twisted, Tornado and the standard library module …

Continue reading →

Pybee is awesome

2016, octobre 28

I've recently discovered the BeeWare project, also known as pybee, and it's bloody awesome.

BeeWare logo

I had stumbled upon it before at Pycon US earlier, they had a booth set up and their website said "BeeWare, the IDEs of Python".

I didn't gave much attention at it at first, because I've …

Continue reading →

On getting productive with Git

2016, juin 19

I remember the first time I submitted a pull request in GitHub and some reviewer asked me to squash the commits. I had no idea what they were talking about. I didn't have any friends who knew Git, I was pretty much a noob on Git and GitHub. It's easy …

Continue reading →

You're not alone

2016, avril 19

I've shared this text almost as-is internally at @Scrapinghub, the company I work at. As it had a good response, I'm sharing it here after some minor editing. I wrote it mainly to my programmer friends, but many people will probably relate to it.

Here are some things that I …

Continue reading →

Trying out something new

2016, janvier 26

Hey there!

If you liked these drawings, you may like this video teaching you to draw in a few minutes.

Continue reading →

Learning from DAS screencasts - season 3

2015, décembre 30

Here is a summary of my learning from watching season 3 of Destroy All Software screencasts.

Which kind of code should go into Models?

Gary is fond of an architecture style for web applications, which is equivalent to the so-called clean architecture described by Brandon Rhodes here:

The Clean Architecture diagram

Following this architecture …

Continue reading →

Regex metacharacters differences across several environments

2015, décembre 13

Here is a table helpful for learning regular expression metacharacters differences across several languages and environments.

Language/environment Optional More Brackets Border Or Group
Apache, Bash, egrep, Java, JS, Perl, PHP, Python, Ruby, VBScript, .NET ? + {,} \b | ()
Gawk, ? + {,} \<,\> | ()
awk, Mawk, Expect ? + N/A N/A | ()
C, Lex, Tcl ? + {,} N …
Continue reading →

The power of a good template

2015, octobre 18

Almost ten years ago, I was an intern helping to maintain a PHP application and attempting to write a little framework to create the new version of that application. My little framework generated PHP classes from some templates and a description you’d write in a DSL language I came …

Continue reading →

Working on hard problems

2015, septembre 13
a Rubik's cube painted to look solved

We programmers often prefer to work in problems that we already know how to solve, and tend to avoid hard ones that don't have a straightforward solution. Sure we like to think that we love a challenge, but given the choice of something easy to solve and another that requires …

Continue reading →

Learning from DAS screencasts - season 2

2015, août 17

These are my notes for season 2 of Destroy All Software screencasts.

The command line, Unix, git and Vim

In the first episode Gary teaches how to compose a complex Unix command line: the point is that you want to build it slowly, checking if it works at every step …

Continue reading →

Useful small scripts for your ~/bin

2015, janvier 28


So you are a command line geek, you do your shell-scripts and one-liners using bash to get information you need.

You use cut for handling things delimited by some character like comma or space, but sometimes you have a list of stuff separated by a varied amount of spaces …

Continue reading →

Things I Learned from Destroy All Software - Season 1

2015, janvier 18

So, a few weeks ago I purchased and watched the first season of Destroy All Software screencasts (from Gary Bernhard), and it was awesome. I'd say there are different kinds of stuff to learn from it, depending on your personal interests and experience.

Here are my notes for some things …

Continue reading →

The Visual Display of Quantitative Information, or How to Make Better Graphs

2014, octobre 12

The Visual Display of Quantitative Information, by Edward Tufte, is a beautiful book. It's not just well-written, it's really beautiful, you feel like every inch of the book was planned and designed with great care. The book makes the case for better data graphics, shows you several examples of great …

Continue reading →

Web Scraping with Scrapy - first steps

2014, août 30

Update: This tutorial isn't up to date with the latest and greatest of Scrapy. You should follow the official documentation instead, I've worked together with other Scrapy developers to make it better. I'm leaving this article online for archival purposes only.

Leia a versão em Português

Imagine you want to …

Continue reading →

Steve Yegge's Rantings book

2014, août 10
Cover of Steve Yegge's Rantings book

Those who know me well, know that I'm a bit of a Steve Yegge fanboy. That's true, I love reading Steve's mean jokes and I keep coming back to those long blog posts. That dude's writing has been a great influence to me. I've even started to write long posts …

Continue reading →

Tips on Performance and Monitoring of Java Applications

2014, juin 16
I think my Tomcat can handle more work... Now, should I increase maxThreads or the backlog?

I cleaned up my desk this weekend and ended up finding some notes I wrote down some time ago when I attended a course about monitoring JBoss application servers. I haven't been doing much related to Java Web development lately, but I'm going to try to make a quick summary …

Continue reading →

So, here is a story

2014, juin 13

Soon after graduating, I went to work as a software developer for a big public company in Brazil. This company is responsible for a huge part of the country's IT infrastructure, and they keep trying to build a reputation of being innovative and pro open source, the kind of thing …

Continue reading →

Failing to finish a book

2014, mai 31

Okay, here is a book I've been trying to read for almost two months already and barely get to the half of it. Python for Data Analysis has left me with mixed feelings. Of all the O'Reilly books I've got until now, this is probably the one in worst shape …

Continue reading →

Programando Erlang - 1 de Any

2014, avril 05
"Esqueleto de programa Erlang"

Na virada do ano, uma das minhas resoluções para 2014 foi a de que este ano aprenderia Erlang. Eu queria brincar com alguma linguagem que usasse ideias diferentes das que uso no trabalho e que me ensinasse mais do que simplesmente outro jeito de escrever os programas que já sei …

Continue reading →

Trabalho Eficaz com Código Legado

2014, janvier 26
Capa do

Trabalho Eficaz com Código Legado é o título em português do famoso livro sobre código legado (título original: Working Effectively with Legacy Code) escrito por Michael Feathers, um consultor muito experiente e reconhecido na comunidade Agile/XP. Acabei de ler a versão traduzida que um amigo emprestou, e a tradução …

Continue reading →

Você devia aprender shell-script

2014, janvier 11

Se você é programador, você devia aprender shell-script. Ou pelo menos, algo parecido.

Nem que seja apenas o básico para se virar: criar o arquivo e deixar executável, ler e escrever variáveis, redirecionar entrada e saída, encadear comandos, grep e cut basicão.

Você pode ainda não saber que precisa da …

Continue reading →

Problemas da Filosofia

2013, novembre 20

Um amigo indicou-me a leitura de The Problems of Philosophy (Os Problemas da Filosofia), uma introdução a Filosofia escrita por Bertrand Russell, filósofo e historiador britânico. O livro é excelente, esclareceu várias dúvidas minhas e me fez pensar melhor sobre muitas coisas.

O texto original está disponível no Projeto Gutenberg …

Continue reading →

VI Melhorado

2013, septembre 26

Practical Vim é um livro sobre o Vim -- o editor de textos xodó dos programadores. Muito bem escrito, recheado de exemplos e referências, kudos para o Drew Neil, autor dessa belezinha. Drew também faz vídeos sobre o Vim, disponíveis gratuitamente em

Edit Text at the Speed of

Se você ainda não conhece o …

Continue reading →

Alguns programas úteis para usar no Ubuntu

2013, août 14
Comparando duas pastas com o Meld

Ok, hoje estou tirando a preguiça do traseiro para escrever sobre algo que há tempo queria fazer: uma lista de alguns programas úteis que uso no Ubuntu. A maioria deles eu demorei um pouco para descobri-los, por isso acho uma boa idéia falar deles por aqui -- são aplicações bacanas que …

Continue reading →

Programming Grails -- a aventura continua

2013, juillet 28
Programming Grails -- Best Practices for Experienced Grails Developers

Alguns dias atrás terminei de ler o Programming Grails (Amazon), um livro sobre o framework Grails voltado para desenvolvedores experientes, que explica como funcionam várias coisas do framework e aponta vários caminhos das pedras. O autor é Burt Beckwith, conhecido na comunidade Grails por criar vários plugins úteis do Grails …

Continue reading →

Goodbye, JSF!

2013, juin 23

Ok, se você não é javeiro, talvez nunca tenha ouvido falar em JSF. No worries, você não está perdendo muita coisa.

Porém, se você aprendeu a programar em Java, talvez nem tenha procurado aprender outra linguagem de propósito geral (... ainda, I hope) mas já se interessou por programar para a …

Continue reading →

Aventurando-se com Grails

2013, juin 03

Estou usando Grails ativamente há alguns meses atrás. Comecei fazendo manutenção numa aplicação legada usando uma versãozinha do Grails já bem gasta. Eventualmente, acabei migrando de vez, usando Grails 2.x para praticamente todas as aplicações novas lá no trampo. O bichinho é muito bom!

Quem caiu aqui para ler …

Continue reading →

Desenvolvimento de software é um esporte de equipe

2013, avril 27

Dãã, grande notícia, certo? Todo mundo sabe disso, não precisa nenhum anúncio. Bem, pelo menos não era pra precisar. Todavia, pelo que converso com outros amigos desenvolvedores e pela minha própria experiência mesmo, seria muito bom se fôssemos lembrados disso mais vezes.

Há uns dias li o fantástico livrito Team …

Continue reading →

Coisas sobre o VIM que gostaria de ter sabido antes

2013, avril 07

O Vim ainda é o meu editor predileto. Tentei substituí-lo várias vezes, e as únicas alternativas que chegaram perto de ameaçá-lo foram Emacs e Sublime Text: o primeiro pela quantidade de recursos, o segundo pela interface joiada. Mas sempre que precisava resolver um problema rapidão, acabava voltando pro good ol' …

Continue reading →

Desenho de Interface do Usuário - para programadores

2013, mars 18
Lembra desse cara chato?

Joel Spolsky é um cara batuta e muito inteligente. Ele é uma das figuras por trás do Trello e do StackOverflow (e seus sites irmãos), dois produtos show de bola que têm sido parte da minha vida diária ultimamente. Ele também é bastante conhecido pelos excelentes textos que escreveu no …

Continue reading →

Por que as estimativas em desenvolvimento de software normalmente estão erradas por um fator de 2-3?

2013, février 26

Aviso 1: Esta é uma tradução livre de uma das melhores histórias sobre estimativas de software já escritas. O original em inglês é uma resposta no Quora à pergunta do título, e essa tradução foi realizada com o consentimento do autor Michael Wolfe. Caso a língua não seja problema, recomendamos …

Continue reading →

Aventuras apresentando Java EE a mim mesmo

2013, janvier 15
Read the original, dude!

Cuidado: o texto a seguir contém níveis perigosos de nerdice, acrônimos e javeiragem em geral.

Não sou nenhum fã de Java: a linguagem eu realmente não curto (não tenho culpa de ter conhecido Python e Ruby antes :P), todavia a plataforma tem os seus apelos. Só que eu estava ficando …

Continue reading →

Fatos e Falácias da Engenharia de Software - notas do livro

2012, décembre 03

Book coverAcabo de terminar a leitura de um livro simplesmente excelente, Facts and Fallacies of Software Engineering (Fatos e Falácias da Engenharia de Software), do programador/pesquisador/escritor Robert L. Glass. Bob Glass não é um acadêmico que fica falando abobrinha sobre como deve ser feito software mas que nunca quer …

Continue reading →

Sobre construir excelente experiência de usuário - livro EffectiveUI

2012, novembre 25
Effective UI book cover

Este é o primeiro post na idéia de escrever sobre os livros que leio, na tentativa de fixar melhor o que tô aprendendo. Rezemos pra que não seja o último! :)

O livro é Effective UI: The Art of Building Great User Experience in Software, os autores são os fundadores e …

Continue reading →

Algoritmos deviam ser ensinados breadth-first, e não depth-first

2012, novembre 07

Algoritmos deviam ser ensinados breadth-first, e não depth-first!

Note que não me refiro ao aprendizado de programação, mas ao estudo sistemático de algoritmos (envolvendo projeto e análise).

Depth-first é demasiado frustrante, especialmente para quem já trabalha na indústria e sabe que existem muitas outras coisas tão ou mais importantes quanto …

Continue reading →

Primeiras escolhas importam

2012, octobre 18

Nossas primeiras experiências influenciam as seguintes muito mais do que a gente percebe.

Algumas coisas você não escolhe: sua língua materna, sua primeira escola, sua primeira professora de matemática. Mas tudo isso vai deixando umas estampas na sua vida inteira, influenciando o jeito que você pensa, sua habilidade de perceber …

Continue reading →

O que fazer quando o Ubuntu trava

2012, juin 30
Terminando um processo usando o Monitor do Sistema do

Um amigo meu costumava dizer que tudo no Linux é com malabarismos no teclado, porque certa vez ele conseguiu rebootar um sistema que estava travado, apertando várias teclas aleatórias ao mesmo tempo ("Alt+Shift+Ctrl+Del+K+Enter", narrava). Tempos depois, ele acabou adotando o Linux Ubuntu no desktop, e …

Continue reading →

Entre profissionais

2012, juin 21

Alguns dias atrás, tive a chance de fazer duas coisas muito importantes pra mim: apresentar uma performance solo no meu estilo de violão instrumental (acústico fingerstyle in your face :D) e subir no palco com músicos profissionais: o estupendo guitarrista manézinho Luciano Bilu e seu trio!

Há já um bom …

Continue reading →

Idéias e execução

2012, mars 09
Linus Pauling, cientista superprodutivo

Uma vez ou outra a gente topa com um cara que acha que ter uma idéia é uma coisa tremendamente importante. Execução, isto é para noviços (subentenda-se, gente que só faz o que mandam)! O jeito de ter sucesso é ter uma idéia brilhante, e a sorte de ter tido …

Continue reading →

Aprendendo Thumbpicking

2011, décembre 11

Eu, tocando violão

UPDATE: atualizei os links pra download dos MP3, porque estouraram os limites do SoundCloud.

Já faz uns 3 anos que comecei a tocar no violão o estilo conhecido como thumbpicking (alguns também chamam de fingerpicking, embora esse termo parece ser mais genérico).

Desde piá eu já tocava um pouco de …

Continue reading →

A maleta do milhão

2011, octobre 17

maleta do

Anos atrás, eu estava numa sessão de conversação da escola de inglês (que por sinal, paguei caro e não valeu o retorno), e a professora pediu pra cada pessoa dizer o que faria se encontrasse uma maleta com um milhão de reais. Desperta a imaginação do pessoal, surgiram rapidamente novos …

Continue reading →

Vivendo alienado

2011, septembre 21
Will this lo-fi studio

Não tem problema!

Se eu não reconheço as referências a livros ou filmes supostamente clássicos ou nunca ouvi a banda que todo mundo conhece, não tem problema. Se não conheço o último meme do Twitter, nunca assisti o seriado da moda, nem uso a última versão do software/gadget que …

Continue reading →

Tocar vídeo ou música em outra velocidade mantendo o tom

2011, juillet 28

Alguns meses atrás descobri o Play it slowly, um programa para tocar arquivos de áudio em velocidades ou alturas diferentes, no Linux. Você pode usá-lo para, por exemplo, ouvir uma música no mesmo tom da original mas com um ritmo bem mais lento (útil para aprender as notas de um …

Continue reading →

Steve Yegge é meu herói!

2011, juillet 28

Steve Yegge é meu herói!

Já que ele voltou a escrever no blog (dois posts na mesma semana, yay!), obrigo-me a escrever aqui também. A gente acaba criando uma relação afetiva com certos feeds, que quando aparece um post novo o seu dia melhora, nem que seja um pouquinho.

De …

Continue reading →

Economia vs. Consumo

2011, février 03

Dias atrás estava debatendo com alguns amigos, tentando demonstrar como não era muito intuitivo o jeito que acostumamos a pensar sobre consumo de combustível, para efeito de comparação. Perguntei a eles o que fariam se tivessem dois carros, um sedã que fizesse 10km/L e uma camionete que fizesse 5km …

Continue reading →