hisham hm

That constant background noise in the head

I just came to an interesting realization. In this World Cup, since I’m watching so many games in Globo TV, Brazil’s main network, a side effect is that it’s been a long time that I didn’t watch so many commercial breaks, and so many times the same ads. Each ad individually doesn’t bother me that much. Many of them are even fun. But realizing this constant repetition — with its jingles and slogans echoing in my head — is very uncomfortable.

That got me thinking now of people who watch, for example, telenovelas (or series on network TV), or the same nightly news, every day, six days a week… watching the same commercials. It’s only now that I got unused to watch commercials, that I realize the dimension of this constant background noise in the mind that they are.

Whenever I see someone browsing the internet in a computer without an ad-blocker installed, I have this same shock. I’m reminded of what the internet actually looks like. People are apparently “anesthesized” to watch sites full of ads. When I point this out to them and I recommend an ad-blocker, they say they “don’t really notice” or that it “doesn’t bother” them. But I personally doubt it has no effect (or else a company like Google would be multibillionare based on ads, as it is).

This all makes me, at the same time, a bit happy for myself, as I realize that I found a way to live free from some of these sources of mental noise, but sad for remembering that this noise is so widespread.


Anatomy of a (failed?) free-software fundraiser

UPDATE 2014-05-02: The fine folks at Bountysource extended the fundraiser for a few more weeks! Hurry up!

After more than 10 years developing free software (htop, GoboLinux, LuaRocks), this month I made my first organized attempt to get some funding for a project. Or rather, am making, since the fundraiser is still up at the time of this writing. But with 2 days to go and 22% of the funding goal met, I think it’s already a fine time to take a closer look at the experience and see what we can learn from it.

The idea, in short

htop is a text-mode process viewer. The backend code is Linux-specific, so unlike most free software, it’s not a portable project. Still, some people run it unmodified on FreeBSD (and GNU Hurd!) by using Linux emulation layers. There’s no such layer for Mac OSX, so one user ported htop by replacing its backend with a native implementation. There’s nothing wrong with that, of course — the source is open precisely to allow this kind of thing!

The problem is that, due to the way this fork was done, it couldn’t easily be merged back. So, it hasn’t kept up with the development and bugfixes of htop over the years. This hasn’t stopped it from making its way to Homebrew, through a series of forks. They’re all based on that version of htop 0.8.2 from five years ago, though. The result is that I keep getting bug reports from Mac users, some of them for very old bugs!

My time for free software is short as I usually take on lecturing and freelance jobs in addition to my PhD, so I though that, if there was enough interest, I could take on solving this situation as this season’s “freelance job”. I had just learned about BountySource through the neovim fundraiser so I thought “why not”, and created a fundraiser titled “Mac OS X support in the official htop 1.x tree”.

First contacts

I went through Github and searched for every fork of AndyA’s original htop-osx repository (when this fork was made my own htop repository was still in SourceForge, so his fork is not a “Github fork” of mine) and contacted every author to make them aware of my project. I also looked at the update history of the htop-osx formula in Homebrew and contacted everyone mentioned there. My goal was to reach everyone connected to htop-osx, let them know about the fundraiser (I didn’t want it to look like a “hostile fork” (even though I’m the original author!) ) and ask them how to better reach the OSX community.

Everyone was fine with the idea and nice to me, but unfortunately nobody had any tips on how to reach out to the audience. Fork authors suggested contacting Homebrew; Homebrew told me to contact the “htop-osx project”. Having had already contacted both, that didn’t take me far.

The general advice was to go through word-of-mouth. The thing is, I’m a Linux guy, and so I tend to gravitate around that universe in my online communities. I posted links on Twitter and I’ve got some pledges from friends, who were sure not that interested in the port but wanted to help out (thank you!). Then I posted in the htop mailing list, from which I also got some pledges, as shows of support.

Trying to reach wider audiences, I posted on a few Mac-related subreddits, where I got some pledges from /r/apple (and also on Hacker News, where it instantly tanked of course). After a couple hundred dollars in initial pledges the first few days, the fundraiser sat mostly dormant.

I wondered what else I could do to shake things up, but at the same time I couldn’t dedicate a lot of time to promote the fundraiser, between preparing classes and other commitments. This is a sign of a classic mistake: I didn’t do any planning beforehand. In particular, I was taken by surprise that once went through the BountySource fundraiser signup process, there was no option to set the duration of the campaign (yes, that means I didn’t read the fine print carefully; I guess I just skimmed it to see what was the percentage of their cut — 10%, by the way). It was only when I was up and running that I realized I only had one month to go. With only one month, I’d probably have set a lower goal.

BountySource has since remodeled its site to deemphasize “fundraisers” and focus more on developer teams and “bounties”, which are feature/bugfix requests for which one can set a value but, as I understand, can stay open with no time limit. I think that’s a better model.

An unexpected gift

Things were pretty quiet for a while, when I got a notification from none other than the original author of the Mac fork, AndyA. He got my email early on but could only respond a few weeks later. He apologized about the bug reports that were sent my way (mostly because htop’s segfault handler outputs a message directing the user to report bugs at the main htop website — something that none of the various Mac forks actually changed!) …and was extremely generous to pledge $500 to the fundraiser, which essentially doubled the amount I had raised at that point!

That was really kind of him, and it made me especially happy to know that my porting project had full support from the author of the original Mac fork. With that spur of motivation, I rushed to put to practice an idea I had a few days earlier. I thought of the best way I know to make the userbase of a free software project take notice, which is…

Making a release

htop is a mature piece of software, over ten years old by now. It had been over a year since the last release. There were some new features, bugfixes and performance improvements already sitting in its repository, that I had implemented and merged from contributors over the last year. So, I combed through the bugtracker fixing other pending issues and packed version 1.0.3.

I announced it at the usual places and made a post on /r/linux where it got a quite nice reception. That didn’t translate considerably into pledges, but at that point I didn’t really expect it would shift the fate of the fundraiser.

I even got a comment saying “I do not need a MacOSX version so I donated a few bucks on the regular site”.

What was learned

That comment above sums up a lot of what happened in this fundraiser. My userbase consists of Linux users, not Mac users, so they weren’t really engaged by this project.

Also, there were some fundamental problems with the idea of turning this Mac port into a fundraiser:

With that in mind, I think the fundraiser would have had much better chances if it were aimed at Linux users and proposed cool features, such as

Those are things I keep meaning to do at some point, but they require care in their implementation, in order to keep htop focused and lightweight.

What now

Even though the campaign hasn’t reached its funding goal, I think it has been a positive experience and a learning process (and the raised money is surely welcome, especially because there’s a particularly nice feeling in being compensated from developing free software). And at the very least, if I get new Mac bug reports in the future, I can point them to this and say “I tried!”

Aside from the mistakes listed above, I think the main thing I did right was contacting everyone related to the htop-osx fork. Not because the largest donation came from that, but because it opened a positive channel of communication with other developers, which will hopefully be fruitful for the project in the future.

With the current level of funding I will still have to take other freelance jobs this season, so I won’t have the time to produce a full Mac port. But the raised money will be used in sponsoring the development of the platform abstraction layer, which is the first step. Once I isolate the Linux-specific parts, it should be easier for the Mac development community (some of whom I was able to reach out in this project) to contribute a native backend and hopefully we’ll get the situation of htop on the Mac sorted out sooner rather than later.

UPDATE 2014-05-02: The fine folks at Bountysource extended the fundraiser for a few more weeks! Hurry up!


10 Songs That Shaped The Decade

It dawned on me that, decades from now, when we get nostalgic about the 2000’s, it won’t be whatever songs were playing on the radio that will instantly transport us to that era. But these.

Part I - The Originals

1. “Bed Intruder” - Gregory Brothers feat. Anthony Dodgson

The Gregory Brothers were the redemption to auto-tune. 95 million views.

2. “Chocolate Rain” - Tay Zonday

This song is perhaps the symbol of the golden era user-generated content on Youtube, circa 2006, before Vevo and design changes that moved the focus away from communities and into corporate content. 74 million views.

3. “What What (In The Butt)” - Samwell

What can I say. 44 million views and even a South Park parody.

Part II - The Loopers

4. Nyan cat

Ah, the loopers. The internet is not complete without them. Nyan cat got over 50 million views.

5. “The Llama Song” - Burton Earny

After “Hampsterdance” in the late 90s, I think this was one of the earliest major loopers. Originally from the Albino Blacksheep website, I’m posting here a Youtube upload for your convenience.

6. “Ievan Polkka” - Loituma

Made popular by leekspin.com, this is actually part of a Finnish song performed by a folk local group. Here’s a link to a full performance (it’s quite good!), but the one we’ll remember most is this:

Part III - The Subversions

7. “Dragostea tin dei” - O-Zone

Sometimes one fan can make the fame of one song. In 2004 a guy posted a video of himself… oh boy, Wikipedia can describe it better than I ever could: …”wearing headphones and lipsyncing to the audio of the original O-Zone track whilst moving his head, shoulders and arms gesticulating to the music in an animated and earnest manner.”

And thus was born “Numa Numa“, the second most watched viral video of all time: over seven hundred million views.

8. “Я очень рад, ведь я, наконец, возвращаюсь домой” (”I Am Glad, Cause I’m Finally Returning Back Home”) - Eduard Khil

It all started with this website: http://trololololololololololo.com/. Perhaps the most appropriate domain name in history.

9. “Tunak Tunak Tun” - Daler Mehndi

The song was originally released in 1998, but the video made waves through the internet during the 2000s. The first of many Indian music videos and snippets from Bollywood movies that amused the world:

10. “Never Gonna Give You Up” - Rick Astley

And finally, of course, the song that left a mark in two separate decades, and for very different reasons. Ladies and gentlemen, the one and only:


Cool talk: StackOverflow.com and building an online community

Following @gbedin’s suggestion, I will try to post here links to cool talks I watch and often tell him about, so the links can remain on a more “permanent” place than Twitter.

In this talk, Joel Spolsky describes some practical aspects related to community-building that went into the design of StackOverflow.com.


Books I’ve read

Books I’ve read, by year, with language. Since 2007 I’ve been trying to average a book a month, but I rarely succeed.

Livros que li, por ano, com idioma. Desde 2007 eu venho tentando manter uma média de um livro por mês, mas eu raramente consigo.

pre-2005:

pt_BR Capitães da areia - Jorge Amado
pt_BR As mil e uma noites - vários autores
pt_BR Assassinato no Expresso do Oriente - Agatha Christie
pt_BR Convite para um homicídio - Agatha Christie
pt_BR 2001: uma odisséia no espaço - Arthur C. Clarke
pt_BR O mundo de Sofia - Jostein Gaarder
pt_BR Conversações - Gilles Deleuze
pt_BR Espinosa: filosofia prática - Gilles Deleuze
pt_BR A gaia ciência - Friedrich Nietzsche
pt_BR A prosa do mundo - Maurice Merleau-Ponty

2005:

fr_FR L’existentialisme est un humanisme - Jean-Paul Sartre
en_US The Bourne identity - Robert Ludlum
en_GB The hitchhiker’s guide to the galaxy - Douglas Adams

2006:

pt_BR O mundo como vontade e representação (Livros 1 e 2) - Arthur Schopenhauer
pt_BR A cura de Schopenhauer - Irvin Yalom
pt_BR Alice no país das maravilhas - Lewis Carroll
pt_BR Antologia poética - Mário Quintana
pt_BR A insustentável leveza do ser - Milan Kundera

2007:

pt_PT As intermitências da morte - José Saramago
pt_PT As pequenas memórias - José Saramago
fr_FR Le petit prince - Antoine de Saint Exupéry
pt_BR O texto, ou: a vida - Moacyr Scliar
pt_BR No que acredito - Bertrand Russell
pt_BR O processo - Franz Kafka
fr_FR L’ordre du discours - Michel Foucault
pt_BR Antígona - Sófocles
pt_BR O universo em uma casca de noz - Stephen Hawking
es_CO Cien años de soledad - Gabriel García Márquez

2008:

pt_MZ O outro pé da sereia - Mia Couto
pt_BR Náugrafos, traficantes e degredados - Eduardo Bueno
pt_BR Introdução à metafísica - Martin Heidegger
pt_BR A revolução dos bichos - George Orwell
pt_BR Admirável mundo novo - Aldous Huxley
pt_BR Dias na Birmânia - George Orwell
en_US Gödel, Escher, Bach: an Eternal Golden Braid - Douglas Hofstaedter
pt_PT Ensaio sobre a cegueira - José Saramago
en_US The hacker ethic - Pekka Himanen
fr_FR Qu’est-ce que la philosophie ? - Gilles Deleuze & Félix Guattari
pt_BR A noite das asas vermelhas - Emanuel Neves
pt_BR Paulo Leminski: o bandido que sabia latim - Toninho Vaz
pt_BR A desobediência civil - Henry David Thoreau

2009:

pt_BR A arte de escrever - Arthur Schopenhauer
pt_BR Sobre a televisão - Pierre Bourdieu
pt_BR Além do bem e do mal - Friedrich Nietzsche
en_IE A portrait of the artist as a young man - James Joyce
pt_BR A metamorfose - Franz Kafka
es_AR El Aleph - Jorge Luis Borges
pt_BR Os ratos - Dyonélio Machado
en_IE The picture of Dorian Gray - Oscar Wilde
pt_BR Um lugar azul - Sérgio Medeiros
en_US The long tail - Chris Anderson

2010:

pt_BR Contra o método - Paul Feyerabend
pt_BR Memórias póstumas de Brás Cubas - Machado de Assis
pt_BR Eu, robô - Isaac Asimov
es_UY Las venas abiertas de América Latina - Eduardo Galeano
pt_BR Preconceito lingüístico: o que é, como se faz - Marcos Bagno
pt_PT Mondrian - Susanne Deicher
pt_BR A linguagem das coisas - Deyan Sudjic
pt_BR Uma aprendizagem ou O livro dos prazeres - Clarice Lispector
pt_BR O banquete - Platão
pt_BR Cartas a um jovem poeta - Rainer Maria Rilke

2011:

pt_BR Manifesto do Partido Comunista - Karl Marx & Friedrich Engels
pt_PT Simulacros e simulação - Jean Baudrillard
en_GB Nineteen eighty-four - George Orwell

2012:

en_GB Through the looking-glass - Lewis Carroll
pt_BR Eu sou o mensageiro - Markus Zusak
pt_BR A morte de Ivan Ilitch - Leo Tolstoy
pt_BR Metafísica do belo - Arthur Schopenhauer
pt_BR Poemas para ler na chuva - Sérgio Medeiros

2013:

en_US Coding places: software practice in a South American city - Yuri Takhteyev
fr_FR L’Étranger - Albert Camus
es_AR Ficciones - Jorge Luis Borges
pt_BR O crepúsculo dos ídolos, ou Como filosofar com o martelo - Friedrich Nietzsche
pt_BR Notas do subsolo - Fiódor Dostoiévski
pt_BR Toda poesia - Paulo Leminski
en_US The mythical man-month - Frederick Brooks

2014:

pt_BR Sistemas de poder - Noam Chomsky
pt_BR Não-violência - Mark Kurlansky
pt_BR O ano em que sonhamos perigosamente - Slavoj Žižek
en_US The design of design - Frederick Brooks
pt_BR Sem lugar para se esconder - Glenn Greenwald
en_US Languages for developing user interfaces - Brad A. Myers (ed.) et al.
pt_BR As consolações da filosofia - Alain de Botton

Comics / Quadrinhos:

19XX pt_BR Batman: ano um - Frank Miller
19XX pt_BR Batman: a piada mortal - Alan Moore, Brian Bolland
19XX pt_BR O cavaleiro das trevas - Frank Miller
19XX pt_BR Batman: digital justice - Pepe Moreno
19XX pt_BR Surfista Prateado: parábola - Stan Lee, Moebius
2010 en_US Watchmen - Alan Moore, David Gibbons
2011 en_US Logicomix: an epic search for truth - Apostolos Doxiadis & Christos Papadimitriou
2012 en_US Life in another planet - Will Eisner
2013 en_US One Page Movie - Bruno Seelig et al.