A friend of mine, Blaise, once told me not to
introduce myself as “… what you would call a radical…”. He had
listened to me talking to a person who were questioning what a Free
Software activist does. My friend’s rationale, to which I totally agree,
is that you must let the other person decide whether she thinks you are
a “radical” or not. In other words, if you say you are a “radical” from
the beginning, it will probably induce the other person to a
pre-judgement about you, which is not good for you and for her.
As I said, I agree with him. But I am going through a lot of situations
in my life that are constantly reminding me that, maybe, I am that
“radical” after all. I do not know whether this is good or bad, and I
can say I have been questioning myself for a while now. This post, by
the way, is going to be a lot about self-questioning.
Maybe the problem is that I am expecting too much from those that have
the same beliefs that I do. Or maybe the cause is that I do not know
what to expect from them in certain situations, and I am
disappointed when I see that they do not follow what I think is best
sometimes. On the other hand, when I look myself in the mirror, I do not
know whether I am totally following what I think is best; and if I am
not, then how can I even consider telling others to do that? And even if
I am following my own advices, how can I be sure that they are good
enough for others?
One good example of this is my opinion about FSF’s use of Twitter. The
opinion is public,
and has been criticized by many people already, including Free
Software supporters. Shortly after I wrote the post, I mentioned it to
Richard Stallman, and he told me he was not going to read it because
he considered it “too emotional”. I felt deeply sad because of his
reaction, especially because it came from someone who often appeals to
emotions in order to teach what he has to say. But I also started
questioning myself about the topic.
Is it really bad to use Twitter? This is what I ask myself sometimes. I
see so many people using it, including those who defend Free Software as
I do (like Matt Lee), or those who stand against privacy abuses (like
Jacob Appelbaum), or
who are worried about social causes, or… Yeah, you got the point. I
refuse to believe that they did not think about Twitter’s issues, or
about how they would be endorsing its use by using it themselves. Yet,
they are there, and a lot of people is following their posts and
discussing their opinions and ideas for a better world. As much as I try
to understand their motivation for using Twitter (or even Facebook), I
cannot convince myself that what they are doing is good for their goals.
Am I being too narrow minded? Am I missing something?
Another example are my thoughts about Free Software programs that
support (and sometimes even promote) unethical services. They (the
are also public. And
it seems that this opinion, which is about something I called
“Respectful Software”, is too strong (or “radical”?) for the majority
of the developers, even considering Free Software developers. I saw
very good arguments on why Free Software should support unethical
services, and it is hard to disagree with them. I guess the best of
those arguments is that when you support unethical services like
Facebook, you are offering a Free Software option for those who want
or need to use the service. In other words, you are helping them to
slowly get rid of the digital handcuffs.
It seems like all those arguments (about Twitter, about implementing
support for proprietary systems on Free Software, and others) are
ultimately about reaching users that would otherwise remain ignorant
of the Free Software philosophy. And how can someone have
counter-arguments for this? It is impossible to argue that we do not
need to take the Free Software message to everybody, because when
someone does not use Free Software, she is doing harm to her community
(thus, we want more people using Free Software, of course). When the
Free Software Foundation makes use of Twitter to bring more people to
the movement, and when I see that despite talking to people all around
me I can hardly convince them to try GNU/Linux, who am I to criticize
So, I have been thinking to myself whether it is time to change. What I
am realizing more and more is that my fight for coherence perhaps is
flawed. We are incoherent by nature. And the truth is that, no matter
what we do, people change according to their own time, their own will,
and their own beliefs (or to the lack of them). I remembered something
that I once heard: changing is not binary, changing is a process. So,
after all, maybe it is time to stop being a “GNU radical” (in the sense
that I am radical even for the GNU project), and become a new type of
As eleições brasileiras já acabaram, e talvez eu devesse me sentir mais
à vontade pra falar do assunto do que realmente me sinto. Não sei, mas
tenho a impressão de que, dessa vez, as coisas aconteceram de um modo um
pouco diferente do que o de costume. Aliás, não acho que tenha sido
“coisa de momento”, e tampouco acho que seja uma exclusividade
brasileira: as pessoas estão ficando mais conservadoras, mais
“endireitadas”. E eu vou tentar explicar, talvez pretensiosamente, por
que eu não acho que isso seja bom.
Nunca votei em candidato algum, em nenhuma eleição até hoje. Sempre me
vi descrente das propostas apresentadas, ainda mais quando percebia que
aqueles que davam rostos às propostas eram basicamente os mesmos. Por
isso, nas primeiras eleições em que pude “exercer a cidadania em sua
plenitude” (uma mentira deslavada contada pela imprensa, que talvez
mereça outro post), lá no longínquo ano de 2002, decidi por anular meus
votos. Depois disso, mudei-me de cidade, e não transferi meu título de
eleitor porque, no final das contas, iria acabar votando nulo novamente.
No entanto, e de uma maneira aparentemente contraditória, sempre
interessei-me por política.
Pode mesmo parecer contradição, mas eu nunca entendi como existiam
pessoas (e são muitas!) que não queriam saber de política, e do que
estava acontecendo no próprio país. Obviamente, essas mesmas pessoas em
geral são as primeiras que reclamam do governo, ou que criticam um
político, mesmo sem saber exatamente o porquê de fazerem isso. E quando
vamos falar sobre política com elas, aquela velha máxima “Política não
se discute!” vem à tona, e você de repente perde qualquer motivação para
continuar conversando. Mas mesmo com toda essa minha “descrença-crente”
com a política, nessas últimas eleições eu tive uma enorme vontade de
Meu voto não iria para o Aécio. E no primeiro turno, provavelmente eu
não votasse em nenhum dos candidatos, como sempre fiz. Mas no segundo
turno, senti que eu não podia deixar de ajudar a Dilma a ser reeleita,
mesmo que isso não necessariamente signifique que eu a apóie e concorde
com tudo o que seu governo tem feito. Mas, usando uma outra velha
máxima, “dos males, o menor”.
Considero-me uma pessoa com fortes tendências para as questões sociais.
Não à toa defendo o Software Livre com empenho, porque acredito que se
olharmos para todos, avançamos mais. Daí deriva minha antipatia pela
maioria das causas individualistas, por acreditar que, apesar de ser
totalmente plausível admitir que o ser humano é egoísta, não acho que
devamos nos acomodar com essa constatação. E isso vai de encontro com o
que o governo da Dilma (e o antigo governo do Lula) tem feito para o
Brasil: avançar nas causas sociais. O crescimento que o país
experimentou nos últimos anos foi, sim, muito perceptível para mim. E,
quando tive a oportunidade de visitar o Nordeste brasileiro há alguns
anos, pude ver que a situação por lá, apesar de ainda não ser a ideal,
também melhorou bastante. Ou seja, o bolo finalmente está sendo dividido
mais igualmente para todos, ainda que falte muito para que a divisão
possa ser considerada boa.
Mas não foi só na área social que eu vi mudanças. Apesar de já estar
nascido na época da inflação galopante da década de 1980, não tenho uma
noção muito grande do que era viver naquela época. Eu era criança, e
crianças não se preocupam com o preço das coisas. No entanto, lembro-me
de que a vida, naquela época, não era fácil. O planejamento familiar era
tarefa ingrata, porque como planejar se você não sabe o preço das coisas
amanhã? E a desigualdade social era muito mais acentuada, porque (por
exemplo) era impossível pensar em viajar de avião, mesmo para uma
família de classe média (Europa, então, era outro mundo). Mas daí veio o
plano Real, e as coisas melhoraram… E obviamente muito do crédito por
essa melhora vai para o ex-presidente Fernando Henrique Cardoso e por
sua política econômica que, pelo menos no começo do seu governo,
conseguiu estabilizar as coisas de forma louvável. Mas, como pôde-se ver
depois, Lula refinou a economia do antigo governo, e atrelou-a ao lado
social, que por tanto tempo ficou esquecido.
Um outro argumento que ouço e vejo muito, principalmente por aqueles que
são anti-petistas declarados, é o da corrupção. Confesso que não entendo
o motivo desse ódio tão grande a apenas uma parcela do governo
brasileiro (o PT não toma conta do Brasil, ao contrário do que muita
gente insiste em dizer). Esquecem-se que denúncias de corrupção sempre
existiram, em todos os nossos governos, e que é contra ela (a corrupção)
que devemos lutar, ao invés de escolhermos um partido específico? Quando
escolhemos um alvo, estamos, de certa forma, dando salvo-conduto para os
outros que cometem o mesmo crime. Para mim, quando ouço um “argumento”
desse tipo, a vontade de discutir cai exponencialmente.
Infelizmente, o argumento anti-petista passa por tantos outros absurdos
(Venezuela, Cuba, bolivarianismo, comunismo), e é tão estúpido, que
parece-me que a pré-condição para ser ouvinte dele é estar imerso na
completa ignorância, principalmente a respeito desses termos. Se você
souber o que é bolivarianismo ou comunismo, por exemplo, você já não
pode ouvir o argumento, porque aí não vai acreditar nas conclusões. É
algo tão impressionante e infantil que, novamente, fica difícil ter
qualquer tipo de conversa com pessoas que repetem essas falácias como se
fossem obviedades que estão aí, para qualquer um que queira vê-las.
Todo esse tipo de conversa, ao meu ver, leva a apenas uma conclusão: o
conservadorismo está se alastrando no mundo. No Brasil, ele está tomando
proporções perigosamente grandes. Às vezes penso qual seria a melhor
maneira de combatê-lo: educar não me parece ser uma solução muito
efetiva, ainda mais quando estamos falando de pessoas que possuem uma
condição social mais favorável, e que julgam-se instruídas e informadas.
Por enquanto, a solução tem sido ignorar o problema, o que também não
vem surtindo efeitos práticos, haja visto a escalada dos conservadores
nessas últimas eleições. Contraditoriamente, talvez a solução fosse
parar de lutar e deixar a água correr. Parece-me às vezes que a
humanidade precisa mesmo repetir seus erros de modo cíclico, para
reaprender o motivo pelo qual eles já foram corrigidos outras vezes.
To what extent should Free Software respect its users?
The question, strange as it may sound, is not only valid but also
becoming more and more important these days. If you think that the four
freedoms are enough to
guarantee that the Free Software will respect the user, you are probably
being oversimplistic. The four freedoms are essential, but they are
not sufficient. You need more. I need more. And this is why I think the
Free Software movement should have been called the Respectful
I know I will probably hear that I am too radical. And I know I will
hear it even from those who defend Free Software the way I do. But I
need to express this feeling I have, even though I may be wrong about
It all began as an innocent comment. I make lots of presentations and
talks about Free Software, and, knowing that the word “Free” is
ambiguous in English, I started joking that Richard Stallman should have
named the movement “Respectful Software”, instead of “Free Software”. If
you think about it just a little, you will see that “respect” is a word
that brings different interpretations to different people, just as
“free” does. It is a subjective word. However, at least it does not have
the problem of referring to completely unrelated things such as “price”
and “freedom”. Respect is respect, and everybody knows it. What can
change (and often does) is what a person considers respectful or not.
(I am obviously not considering the possible ambiguity that may exist
in another language with the word “respect”.)
So, back to the software world. I want you to imagine a Free Software.
For example, let’s consider one that is used to connect to so-called
“social networks” like GNU Social or
pump.io. I do not want to use a specific example
here; I am more interested in the consequences of a certain decision.
Which decision? Keep reading :-).
Now, let’s imagine that this Free Software is just beginning its life,
probably in some code repository under the control of its developer(s),
but most likely using some proprietary service like GitHub (which is an
issue by itself). And probably the developer is thinking: “Which social
network should my software support first?”. This is an extremely valid
and important question, but sometimes the developer comes up with an
answer that may not be satisfactory to its users. This is where the
“respect” comes into play.
In our case, this bad answer would be “Facebook”, “Twitter”, “Linkedin”,
or any other unethical social network. However, those are exactly the
easiest answers for many and many Free Software developers, either
because those “vampiric” services are popular among users, or because
the developer him/herself uses them!!
By now, you should be able to see where I am getting at. My point, in a
simple question, is: “How far should we, Free Software developers,
allow users to go and harm themselves and the community?”. Yes, this
is not just a matter of self-inflicted restrictions, as when the user
chooses to use a non-free software to edit a text file, for example. It
is, in most cases, a matter of harming the community too. (I have
written a post related to this issue a while ago, called
“Privacy as a Collective Good
It should be easy to see that it does not matter if I am using Facebook
through my shiny Free Software application on my computer or cellphone.
What really matters is that, when doing so, you are basically
supporting the use of those unethical social networks, to the point that
perhaps some of your friends are also using them because of you.
What does it matter if they are using Free Software to access them or
not? Is the benefit offered by the Free Software big enough to eliminate
(or even soften) the problems that exist when the user uses an unethical
service like Linkedin?
I wonder, though, what is the limit that we should obey. Where should we
draw the line and say “I will not pass beyond this point”? Should we
just “abandon” the users of those unethical services and social
networks, while we lock ourselves in our not-very-safe world? After all,
we need to communicate with them in order to bring them to our
cause, but it is hard doing so without getting our hands dirty. But that
is a discussion to another post, I believe.
Meanwhile, I could give plenty of examples of existing Free Softwares
that are doing a disservice to the community by allowing (and even
promoting) unethical services or solutions for their users. They are
disrespecting their users, sometimes exploiting the fact that many
users are not fully aware of privacy issues that come as a “gift” when
you use those services, without spending any kind of effort to teach
the users. However, I do not want this post to become a flamewar, so I
will not mention any software explicitly. I think it should be quite
easy for the reader to find examples out there.
Perhaps this post does not have a conclusion. I myself have not made my
mind completely about the subject, though I am obviously leaning towards
what most people would call the “radical” solution. But it is definitely
not an easy topic to discuss, or to argument about. Nonetheless, we are
closing our eyes to it, and we should not do so. The future of Free
Software depends also on what kinds of services we promote, and what
kinds of services we actually warn the users against. This is my
definition of respect, and this is why I think we should develop
Free and Respectful Software.
Yes, you are reading correctly: I decided to buy a freacking Chromebook.
I really needed a lightweight notebook with me for my daily hackings
while waiting for my subway station, and this one seemed to be the best
option available when comparing models and prices. To be fair, and
before you throw me rocks, I visited the LibreBoot X60’s
for some time, because I was strongly considering buying one (even
considering its weight); however, they did not have it in stock, and I
did not want to wait anymore, so…
Anyway, as one might expect, configuring GNU/Linux on notebooks is
becoming harder as time goes by, either because the infamous Secure
Boot (anti-)feature, or
because they come with more and more devices that demand proprietary
crap to be loaded. But fortunately, it is still possible to overcome
most of those problems and still get a GNU/Linux distro running.
For main reference, I used the following websites:
I also used other references for small problems that I had during the
configuration, and I will list them when needed.
Backing up ChromeOS
The first thing you will probably want to do is to make a recovery image
of the ChromeOS that comes pre-installed in the machine, in case things
go wrong. Unfortunately, to do that you need to have a Google account,
otherwise the system will fail to record the image. So, if you want to
let Google know that you bought a Chromebook, login into the system,
open Chrome, and go to the special URL chrome://imageburner. You will
need a 4 GiB pendrive/sdcard. It should be pretty straightforward to do
the recording from there.
Screw the screw
Now comes the hard part. This notebook comes with a write-protect
You might be thinking: what is the purpose of this screw?
Well, the thing is: Chromebooks come with their own boot scheme, which
unfortunately doesn’t work to boot Linux. However, newer models also
offer a “legacy boot” option
(SeaBIOS), and this can boot
Linux. So far, so good, but…
When you switch to SeaBIOS (details below), the system will complain
that it cannot find ChromeOS, and will ask if you want to reinstall the
system. This will happen every time you boot the machine, because
the system is still entering the default BIOS. In order to activate
SeaBIOS, you have to press CTRL-L (Control + L) every time you boot!
And this is where the screw comes into play.
If you remove the write-protect screw, you will be able to make the
system use SeaBIOS by default, and therefore will not need to worry
about pressing CTRL-L every time. Sounds good? Maybe not so much…
The first thing to consider is that you will lose your warranty the
moment you open the notebook case. As I was not very concerned about it,
I decided to try to remove the screw, and guess what happened? I
stripped the screw! I am still not sure why that happened, because I was
using the correct screw driver for the job, but when I tried to remove
the screw, it seemed like butter and started to “decompose”!
Anyway, after spending many hours trying to figure out a way to remove
the screw, I gave up. My intention is to always suspend the system, so I
rarely need to press CTRL-L anyway…
Well, that’s all I have to say about this screwed screw. If you decide
to try removing it, keep in mind that I cannot help you in any way, and
that you are entirely responsible for what happens.
Now, let’s install the system :-).
Enable Developer Mode
You need to enable the Developer Mode in order to be able to enable
SeaBIOS. To do that, follow these
from the Arch[GNU/]Linux wiki page.
I don’t remember if this step works if you don’t have activated the
ChromeOS (i.e., if you don’t have a Google account associated with the
device). For my use, I just created a fake account to be able to
We’re almost there! The last step before you boot your Fedora LiveUSB is
to actually enable SeaBIOS. Just go inside your superuser shell (from
the previous step) and type:
And that’s it!
If you managed to successfuly remove the write-protect screw, you may
also want to enable booting SeaBIOS by default. To do that, there is a
again on Arch[GNU/]Linux wiki. DO NOT DO THAT IF YOU DID NOT REMOVE
THE WRITE-PROTECT SCREW!!!!
Now, we should finally be able to boot Fedora! Remember, you will have
to press CTRL-L after you reboot (if you have not removed the
write-protect screw), otherwise the system will just complain and not
boot into SeaBIOS. So, press CTRL-L, choose the boot order (you will
probably want to boot from USB first, if your Fedora is on a USB stick),
choose to boot the live Fedora image, and… bum!! You will probably see
a message complaining that there was not enough memory to boot (the
message is “Not enough memory to load specified image”).
You can solve that by passing the mem parameter to Linux. So, when
GRUB complains that it was unable to load the specified image, it will
give you a command prompt (boot:), and you just need to type:
And that’s it, things should work.
Installing the system
I won’t guide you through the installation process; I just want to
remember you that you have a 32 GiB SSD drive, so think carefully before
you decide how you want to set up the partitions. What I did was to
reserve 1 GB for my swap, and take all the rest to the root partition
(i.e., I did not create a separate /home partition).
You will also notice that the touchpad does not work (neither does the
touchscreen). So you will have to do the installation using a USB mouse
Getting the touchpad to work
I strongly recommend you to read this Fedora
bug, which is
mostly about the touchpad/touchscreen support, but also covers other
interesting topics as well.
Anyway, the bug is still being constantly updated, because the proposed
patches to make the touchpad/touchscreen work were not fully integrated
into Linux yet. So, depending on the version of Linux that you are
running, you will probably need to run a different version of the
scripts that are being kindly provided in the bug.
As of this writing, I am running Linux 3.16.2-201.fc20, and the script
that does the job for me is this
one. If you are
like me, you will never run a script without looking at what it does, so
go there and do it, I will wait :-).
OK, now that you are confident, run the script (as root, of course),
and confirm that it actually installs the necessary drivers to make the
devices work. In my case, I only got the touchpad working, even though
the touchscreen is also covered by this script. However, since I don’t
want the touchscreen, I did not investigate this further.
After the installation, reboot your system and at least your touchpad
should be working :-). Or kind of…
What happened to me was that I was getting strange behaviors with the
touchpad. Sometimes (randomly), its sensitivity became weird, and it was
very hard to move the pointer or to click on things. Fortunately, I
found the solution in the same bug, in this comment by Yannick
creating this X11 configuration file, everything worked fine.
Getting suspend to work
Now comes the hard part. My next challenge was to get suspend to work,
because (as I said above) I don’t want to poweroff/poweron every time.
My first obvious attempt was to try to suspend using the current
configuration that came with Fedora. The notebook actually suspended,
but then it resumed 1 second later, and the system froze (i.e., I had to
force the shutdown by holding the power button for a few seconds). Hmm,
it smelled like this would take some effort, and my nose was right.
After a lot of search (and asking in the
bug), I found
out about a few Linux flags that I could provide in boot time. To save
you time, this is what I have now in my /etc/default/grub file:
The final ... means that you should keep whatever was there before you
included those parameters, of course. Also, after you edit this file,
you need to regenerate the GRUB configuration file on /boot. Run the
following command as root:
Then, after I rebooted the system, I found that only adding those flags
was still not enough. I saw a bunch of errors on dmesg, which showed
me that there was some problem with EHCI and xHCI. After a few more
research, I found the this
on an Arch[GNU/]Linux forum. Just follow the steps there (i.e., create
the necessary files, especially the
/usr/lib/systemd/system-sleep/cros-sound-suspend.sh), and things
should start to get better. But not yet…
Now, you will see that suspend/resume work OK, but when you suspend, the
system will still resume after 1 second or so. Basically, this happens
because the system is using the touchpad and the touchscreen to
determine whether it should resume from suspend or not. So basically
what you have to do is to disable those sources of events:
And voilà! Now everything should work as expected :-). You might want to
issue those commands every time you boot the system, in order to get
suspend to work every time, of course. To do that, you can create a
/etc/rc.d/rc.local, which gets executed when the system starts:
Don’t forget to make this file executable:
Overall, I am happy with the machine. I still haven’t tried installing
on it, so I am not sure if it can work without binary blobs and
I found the keyboard comfortable, and the touchpad OK. The only extra
issue I had was using the Canadian/French/whatever keyboard that comes
with it, because it lacks some useful keys for me, like Page Up/Down,
Insert, and a few others. So far, I am working around this issue by
using xbindkeys and xvkdb.
I do not recommend this machine if you are not tech-savvy enough to
follow the steps listed in this post. If that is the case, then consider
buying a machine that can easily run GNU/Linux, because you feel much
more comfortable configuring it!
It has been a while since I dream of being able to send encrypted e-mail
to everyone in my contact list. It is still a distant future, but
fortunately it is getting closer with campaigns like the Reset the
Net. And while I already send encrypted
messages to a couple of friends, it is always good to discover (and
share!) some configuration tips to make your life easy :-).
I use Gnus as my e-mail (and news!) reader for quite
a while, and I can say it is a very nice piece of software (kudos to
Lars and all the devs!). For those who are not aware, Gnus runs inside
Emacs, which is a very nice operating
system (and text editor also).
for those who want to make use of cryptographic operations inside it,
and Gnus also uses it to encrypt/decrypt the messages it handles. I am
using it for my own messages, and it works like a charm. However, there
was something that I had not had configured properly: the ability to
read the encrypted messages that I was sending to my friends.
In a brief explanation, when you send an encrypted message GnuPG looks
at the recipients of the message (i.e., the people that will receive it,
listed in the “From:”, “Cc:” and “Bcc:” fields) and encrypts it
according to each recipient’s public key, which must be present in your
local keyring. But when you send a message to someone, you are not
(usually) present in the original recipients list, so GnuPG does not
encrypt the message using your public key, and therefore you are unable
to read the message later. In fact, this example can be used to
illustrate how secure this system really is, when not even the sender
can read his/her message again!
Anyway, this behavior was mostly unnoticed by me because I rarely look
at my “Sent/” IMAP folder. Until today. And it kind of pissed me off,
because I wanted to read what I wrote, damn it! So, after looking for a
solution, I found a neat GnuPG setting called hidden-encrypt-to. It
basically tells GnuPG to add a hidden recipient in every message it
encrypts. So, all I had to do was to provide my key’s ID and ask GnuPG
to always encrypt the message to myself too.
You basically have to edit your $HOME/.gnupg/gpg.conf file and put
this setting there:
That’s it. Now, whenever I send an encrypted message, GnuPG encrypts it
for me as well, so I just need to go to my “Sent/” folder, and decrypt
it to read.
I hope this tip helps you the same way it helped me!