Brasil em Conserva


Tags:

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

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

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.

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

References

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 screw. 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 steps 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 proceed.

Accessing the superuser shell inside ChromeOS

Now, you will need to access the superuser (root) shell inside ChromeOS, to enable SeaBIOS. Follow the steps described in the Arch[GNU/]Linux wiki page. For this specific step, you don't need to login, which is good.

Enabling SeaBIOS

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:

1
> crossystem dev_boot_usb=1 dev_boot_legacy=1

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 guide, again on Arch[GNU/]Linux wiki. DO NOT DO THAT IF YOU DID NOT REMOVE THE WRITE-PROTECT SCREW!!!!

Booting Fedora

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:

#!bash boot: linux mem=1980M

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

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 Defais. After 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:

1
GRUB_CMDLINE_LINUX="tpm_tis.force=1 tpm_tis.interrupts=0 ..."

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:

1
> grub2-mkconfig -o /boot/grub2/grub.cfg

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 comment 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:

1
2
echo TPAD > /proc/acpi/wakeup
echo TSCR > /proc/acpi/wakeup

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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
> cat /etc/rc.d/rc.local
#!/bin/bash

suspend_tricks()
{
  echo TPAD > /proc/acpi/wakeup
  echo TSCR > /proc/acpi/wakeup
}

suspend_tricks

exit 0

Don't forget to make this file executable:

1
> chmod +x /etc/rc.d/rc.local

Conclusion

Overall, I am happy with the machine. I still haven't tried installing Linux-libre on it, so I am not sure if it can work without binary blobs and proprietary craps.

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

Emacs provides EasyPG 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:

1
hidden-encrypt-to ID

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!


Após quase 1 mês, cá estou pra compartilhar minhas impressões a respeito do FISL 15, que aconteceu em Porto Alegre, RS, entre os dias 7 e 10 de Maio de 2014.

Antes de mais nada, gostaria de fazer um pequeno “jabá”. Acho que mereço, por conta do trabalho que tive pra fazer isso (já explico) dar certo! Estou falando da palestra do Diego Aranha, que foi um dos destaques dessa edição do evento. A palestra, entitulada Software Livre e Segurança Eleitoral (veja o vídeo dela aqui) é, na minha opinião, algo que todo cidadão brasileiro deveria assistir e refletir a respeito. Comecei a me envolver mais no assunto da urna eletrônica brasileira depois que assisti essa mesma palestra (proferida pelo próprio Diego), há mais de 1 ano atrás, na UNICAMP. Considero impossível não se sentir minimamente indignado com a falta de escrúpulos (e de competência!) daqueles que, teoricamente, estão zelando pela democracia no país.

Enfim, depois de assistir essa palestra pelo menos umas 3 vezes (sendo uma delas na edição do Software Freedom Day Campinas, que eu organizei em nome do LibrePlanet São Paulo), achei que devesse tentar “mexer os pauzinhos” e colocá-la na grade oficial do FISL. Só pra garantir, eu e o Diego também submetemos a mesma palestra pelo sistema normal de submissão. Mas no fim, depois de conversar com algumas pessoas “de dentro” (agradecimento especial ao Paulo Meirelles da UnB nesse ponto), consegui encaixar o Diego na grade de destaques do evento! Foi uma grande conquista, e tenho certeza de que quem viu a palestra saiu de lá com a pulga atrás da orelha...

Mas enfim, vamos aos fatos. Minha participação no FISL desse ano foi mais tímida do que no ano passado, mas após alguma reflexão, cheguei à conclusão de que ela também foi mais proveitosa. Apesar de ter submetido praticamente 8 propostas de palestras, cobrindo os mais diferentes níveis e assuntos, não tive nenhuma proposta aceita! Obviamente fiquei bastante chateado com isso, ainda mais depois de ver o nível de algumas palestras que foram aprovadas... Confesso que considerei não ir ao evento, já que, além de não ter tido nenhuma palestra aprovada (o que significava que eu não receberia nenhum patrocínio pra ir), também não ia poder rever muitos amigos que não puderam comparecer nessa edição (podem botar isso na conta da Copa).

Passada a fase de chorar as pitangas, decidi ir de qualquer maneira. O Alexandre Oliva havia me convidado para fazer parte de uma “mesa redonda” cujo objetivo era debater a suposta morte do movimento Software Livre no Brasil. Senti-me honrado com o convite, e como participo da causa há bastante tempo, tinha bastante coisa a dizer. Foi uma honra ter feito parte da mesa com o próprio Oliva, o Anahuac, o Fred, e o Panaggio. Tivemos 2 horas para falar nossas opiniões a respeito do tema, e abrir a discussão para o público presente no auditório. Infelizmente, acabou sendo muito pouco tempo para tanta coisa que tínhamos pra falar! Eu mesmo acabei dizendo muito pouco, e resolvi parar antes para deixar a platéia se manifestar, na esperança de que o microfone iria voltar às minhas mãos para que eu pudesse fazer as considerações finais. Ledo engano! Todos queriam um pedacinho do tempo, e acabou que ficou faltando muita coisa a ser dita, de ambos os lados (palestrantes e platéia). Aliás, se quiser ver o vídeo do debate, faça o download dele aqui.

Não é exagero dizer que esse debate explicitou um sentimento recorrente nos ativistas do movimento Software Livre. Há algum tempo vínhamos tendo essa “consciência coletiva” de que as coisas não estavam muito bem pro lado do Software Livre (ao contrário do Open Source, que vai de vento em popa). Eu mesmo já havia feito alguns posts a respeito do assunto, e do meu incômodo quando pedi para que o nome Software Livre não fosse utilizado indevidamente (post em inglês), e o Anahuac levantou esse ponto durante o debate também. Achei bastante sintomático isso. E depois que voltei do FISL comecei a pensar bastante a respeito desses (e outros) assuntos novamente, o que já gerou alguns posts por aqui.

Gostei, também, da maior parte das colocações que ouvi da platéia. Apesar de eu ter tido a impressão de que algumas pessoas não entenderam muito bem o que estava sendo discutido, considero que os contrapontos levantados por parte da platéia são dignos de serem pensados, mesmo que a pessoa que trouxe esses contrapontos não seja necessariamente uma ativista. Talvez eu prepare mais um post a respeito do que ouvi por lá...

Por último, já no final da palestra, não pude deixar de pedir o microfone pro Oliva e levantar um ponto que eu queria que tivesse tido mais atenção: precisamos hackear mais! O Software Livre, enquanto movimento social e político, precisa de pessoas que discutam e tragam à tona os problemas que nós, como sociedade, devemos resolver. No entanto, o Software Livre também é um movimento técnico, e como tal precisa de ferramentas que façam frente ao domínio proprietário. Hackers, precisamos de vocês :-).

Mas... mudando um pouco de assunto, eu também fui ao evento para divulgar, mais uma vez, o nosso grupo de Software Livre, chamado LibrePlanet São Paulo. Nesse ano, levamos duas propostas interessantes ao evento: contas grátis na nossa instância do GNU Social, e no nosso servidor Jabber.

O GNU Social, que antes era conhecido como StatusNet (e que era utilizado pelo site Identica, que depois migrou para um outro tipo de serviço), é como se fosse um “Twitter distribuído”, implementado com Software Livre. O ponto é que você consegue utilizar seu próprio servidor (se quiser), e consegue conversar com pessoas que estão usando GNU Social em outros servidores. Se quiser registrar sua conta na nossa instância do GNU Social, pode acessar a página de cadastro.

O Jabber (XMPP) é um “conhecido anônimo” de quase todos. É a tecnologia que o Google Talk, o Facebook Chat, o WhatsApp, e vários outros serviços proprietários utilizam. Nós, do LibrePlanet São Paulo, estamos oferecendo contas de graça no nosso servidor Jabber. Ainda não possuímos uma página de cadastro de usuários, então se você quiser uma conta, entre em contato comigo através do e-mail (ou deixe um comentário aqui). É importante dizer que o Jabber/XMPP também é um protocolo totalmente distribuído, e que você vai conseguir conversar com outras pessoas que estão utilizando Jabber em outros servidores! Infelizmente, você não vai poder falar com quem usa o Facebook Chat e o WhatsApp, porque essas empresas proíbem essa funcionalidade. O Google permitia isso para quem utilizava o Google Chat “normal”; se a pessoa já tiver migrado para o Hangout, ela também não vai conseguir falar com outros servidores Jabber. Mais um motivo pra largar esses “serviços” vampíricos, não acha? :-).

O saldo final foi de 5 contas Jabber criadas, e nenhuma conta GNU Social. Infelizmente, isso é absolutamente normal em qualquer tipo de evento; o FISL, apesar de ter “SL” no nome, é, em sua esmagadora maioria, composto por pessoas que às vezes não se importam tanto com a parte social.

Por último, gostaria de deixar registrado o excelente trabalho que o pessoal do LibrePlanet São Paulo e Espírito Santo fizeram durante o Encontro Comunitário dos grupos. Veja o vídeo do encontro aqui.

No final, fiquei feliz com o resultado do evento. O ponto alto, pra mim, certamente foi o debate. Acho que uma “mexida” no status quo é sempre bem vinda, e foi isso que tentamos fazer. Esse movimento acabou gerando atividade dos dois lados (Software Livre e Open Source), e também ajudou-nos a diferenciar melhor quem é quem nessa história toda. Agora, é esperar o próximo FISL pra ver o que saiu e o que ficou no lugar. Até lá!

Abraços!


This post is massively inspired by a post in the gnu-prog-discuss mailing list. This is a closed list of the GNU Project, and only GNU maintainers and contributors can join, so I cannot put a link to the original message (by Mike Gerwitz), but this topic is being discussed over and over again at many places, so you will not have trouble finding similar opinions. I am also “responding” to a recent discussion that I had with Luiz Izidoro, which is a “friend” (as he himself likes to say) of the LibrePlanet São Paulo group.

Mike's point is simple: we, Free Software activists, are the geeks (or nerds) at school, surrounded by the “popular guys” all over again. In case it is not clear, the “popular guys” are the people who do not care about the Free Software ideology; the programmers who license their softwares using permissive licenses using the excuse of “more freedom”, but give away their work to increase the proprietary world.

It is undeniable that the Free Software, as a technical movement, has won. Anywhere you look, you see Free Software being developed and used. It is important to say that by “Free Software” I mean not only copyleft programs, but also permissive ones. However, it is also undeniable that several proprietary programs and solutions are being developed with the help of those permissive Free Softwares, without giving anything back to the community, as usual.

Numbers speak for themselves, so I am posting here the example that Mike used in his message, about Trello, a “web-based project management application”, according to Wikipedia. It is quite popular among project managers, and I know about two or three companies that use it, though I have never used it myself (luckily). Being web-based, it is full of Javascript code, and I appreciated the work Mike had to determine which pieces of Free Software Trello uses. The result is:

jQuery, Sizzle, jQuery UI, jQuery Widget, jQuery UI Mouse, jQuery UI Position, jQuery UI Draggable, jQuery UI Droppable, jQuery UI Sortable, jQuery UI Datepicker, Hogan, Backbone, JSON2 (Crockford), Markdown.js, Socket.io, Underscore.js, Bootstrap, Backbone, and Mustache

You can see the license headers of all those projects here:

This is only on the client-side, i.e., the Javascript portion. I will not post the link to the full Javascript code (condensed in one single file) because I do not have permission to do so, but it should not be hard to take a look yourself if you are curious.

On the server side, Mike came up with this list of Free Softwares being used by Trello:

MongoDB, Redis, Node.js, HAProxy, Express, Connect, Cluster, node_redis, Mongoose, node-mogodb-native, async, CofeeScript, and probably more

Quite a lot of Free Software, right? And Trello advertises itself as being “free”, which might confuse the inexperient reader because they are talking about price, not about freedom.

The lesson we learn is obvious but no less painful. He who contributes to Free Software using permissive licenses is directly contributing to the dissemination of proprietary software. And the corolary should be obvious as well: you are being exploited. Another nice addition made by Mike is a quote by Larry Ellison, CEO and founder of Oracle Corporation, about Free Software (and Open Source):

“If an open source product gets good enough, we'll simply take it.... So the great thing about open source is nobody owns it – a company like Oracle is free to take it for nothing, include it in our products and charge for support, and that's what we'll do. So it is not disruptive at all – you have to find places to add value. Once open source gets good enough, competing with it would be insane. ... We don't have to fight open source, we have to exploit open source.”

So, do you really think you have more freedom because you can choose BSD/MIT over GPL? Do you really think you it doesn't matter what other people do to your code, which you released as a Free Software? What are your goal with this movement, contribute to a better Free Software ecosystem (which will lead to a society which is more fair), or just getting your name in the hall of (f|sh)ame?

Back to the initial point, about not being “popular” among your friends (or be the “radical”, “extremist”, and other adjectives), I believe Mike hit the nail when he said that, because that is exactly how I am feeling currently, and I know other Free Softwares activists feel exactly the same. To defend a copyleft license is to defend something that is wrong, because, in the “popular kids' view”, copyleft is about anything but freedom! The cool thing now is to be indifferent, or even to think that it is nice that proprietary software can coexist with Free Software, so let's give it a help and release everything we can under permissive licenses. I could mention lots of very nice Free Softwares that chose to be permissive because their maintainers thought (and still think) GPL is evil.

I contributed and still contribute to some Free Softwares that are permissive licensed. And despite trying to use only copyleft software, sometimes I replace some of them by permissive ones, and do not feel guilty about it. I do that because I believe in Free Software, and I believe we should support it in every way we can. But doing so is also nocive to our cause. We are supporting softwares that are contributing to the proprietary world, even if that is not what their developers want. We are making it very easy for people like Larry Ellison to win and think they can exploit what other people are doing for free(dom). We are feeding our own enemy in their mouths. And we should be very careful about that.

This post is a request. I am asking you a favor. Please, consider (re)licensing your project using a copyleft license. If you do value what Free Software is about (or even what Open Source is about!), then help spread it by not helping the proprietary side. I am not asking you to join our ideological cause (or maybe I am?); feel free to stay out of this if you want. But please, at least consider helping the Free Software community by avoiding making your code permissive, which will give too much power to the unethical side.

Thank you!


Sei que ainda estou devendo um post sobre minha participação no FISL 15, mas o tempo anda meio curto pra falar tudo o que eu quero. Tenho decidido falar de maneira mais “picada”, até pra não fazer o texto ficar muito chato. E esse post aqui é sobre um comportamento que vejo há algum tempo, mas que foi exacerbado por conta do debate sobre a suposta morte do movimento Software Livre no Brasil.

Antes de mais nada, se quiser assistir ao debate, o link direto está aqui. Também sugiro uma visita à página wiki do grupo LibrePlanet São Paulo, na qual você pode encontrar algumas sugestões de outras palestras interessantes que rolaram no evento. Você pode acessá-la nesse link.

Mas voltando ao assunto. Meu objetivo no post não é discutir o debate em si; pretendo fazer isso em um post futuro. O ponto que quero discutir é o comportamento do que chamo de “zeladores da coerência”. São pessoas que existem em qualquer movimento social/político/filosófico, e não poderia deixar de existir no Software Livre. Mas curiosamente, vejo mais contundência naquelas pessoas que não defendem o Software Livre, do que naquelas que o fazem. Explico-me.

O Anahuac fez alguns posts recentemente atacando a falta de distinção entre os movimentos Open Source e Software Livre, especificamente por parte daqueles que fazem parte do primeiro mas se dizem defensores do segundo. Posso classificar, nesse meu post, o Anahuac como sendo um zelador da coerência, apesar de ele mesmo admitir algumas incoerências no seu comportamento, como o uso do Twitter. E, apesar de nem sempre concordar com o tom que ele usa em seus textos, muitas vezes combativos e até perigosamente ácidos, concordo com a maioria dos pontos que ele levanta nos dois artigos que mencionei. Se quiser lê-los, o primeiro é esse aqui, e o segundo tá nesse link. Há bastante tempo, publiquei minhas opiniões (em inglês) sobre esse mesmo assunto, nesse post aqui.

Pois bem, como o Anahuac não tem problema em levar pedradas, ele postou ambos os textos no site BR-[GNU/]Linux, notadamente um reduto Open Source brasileiro. Parei de ler o site há bastante tempo, por conta de diferenças de opinião com o conteúdo publicado, e principalmente por notar sempre um tom irônico e parcial travestido de uma suposta “isenção aos fatos” nos comentários que o autor do site faz sobre as notícias. No entanto, o próprio Anahuac fez questão de trazer à minha atenção a repercussão que os textos estavam tendo, e pediu-me pra ler os comentários do post no BR-[GNU/]Linux. Vale mencionar que o site utilizar o Disqus para oferecer um sistema de comentários, um serviço que não respeita a privacidade dos seus usuários e realiza tracking das atividades dos mesmos. Como não possuo uma conta lá, e utilizo alguns plug-ins para não executar código Javascript não-autorizado no meu navegador, acabei tendo um pouco de trabalho pra conseguir ler os comentários de forma mais ou menos anônima. Mas no fim, consegui. E o que vi, apesar de ser “mais do mesmo”, me deixou bem pensativo.

Não esperava uma reação diferente de parte da comunidade. Como disse, os textos do Anahuac são feitos pra “tocar na ferida” de uma forma às vezes brusca, e que desagrada muita gente. Vários comentários eram ad hominem, e nem merecem menção. Mas o que me chamou a atenção foi a quantidade de pessoas apontando incoerências (supostas ou verídicas) que o Anahuac comete, e retirando dele o direito de apontar qualquer tipo de incoerência na própria comunidade da qual faz parte. E aí fico pensando, será que nós mesmos, ativistas do Software Livre, não estamos colhendo o que plantamos?

Não consigo deixar de falar da minha experiência. Sempre tentei basear meus atos e opiniões em cima da minha própria coerência. Sei que é difícil, e, apesar de muitas vezes (pré)julgar alguém por uma incoerência cometida, tento sempre lembrar que eu mesmo já usei Gmail e Twitter para criticar o Software Livre. Obviamente que, na época, eu não tinha tanto conhecimento a respeito dos perigos de se usar essas ferramentas, mas mesmo assim nada impedia (como, de fato, não impediu!) que alguém chegasse e me acusasse de incoerência. Já, inclusive, condenei o uso do Facebook para divulgar um ex-grupo de Software Livre do qual fazia parte, e recebi como resposta um “conselho” (não muito educado) dizendo que, se eu quisesse usar apenas Software Livre, deveria parar de usar computador, já que independente da máquina eu ia ter que usar algo proprietário. Isso foi proferido por um dos fundadores do tal grupo, um rapaz muito famoso pela falta de educação, mas que, há bastante tempo atrás, acreditava nos mesmos ideais que eu.

É muito difícil rebater um argumento desse tipo. Aliás, é muito difícil rebater um dedo apontado na sua cara mostrando alguma incoerência que você comete, e que está lá como uma resposta a uma acusação sua de uma outra incoerência. Algumas pessoas tendem a se defender justificando seus erros através dos erros dos outros, e quando elas podem usar o próprio “acusador” como um exemplo, melhor ainda (pra elas)! É isso que está havendo, e é essa maré desses zeladores da coerência alheia que me preocupa um pouco. Afinal, sempre vai ser possível encontrar incoerências em qualquer pessoa.

Não sei direito onde quero chegar com esse texto, mas acho que uma coisa está ficando um pouco clara na minha cabeça, ou pelo menos eu estou começando a ver um lado diferente da história toda. Apontar incoerências, por mais evidentes que elas estejam aos nossos olhos, pode não ser a melhor forma de conseguirmos explicar nossos ideais. Pode parecer óbvio (e talvez seja), mas ninguém gosta de ser colocado contra a parede, e pouquíssimas pessoas têm a coragem necessária pra assumir publicamente um erro. Talvez o caminho para a cabeça e o coração das pessoas seja outro. Durante o debate no FISL, o Fred falou algo que tem estado na minha mente com cada vez mais frequência. Pode parecer piegas, mas nós precisamos de mais amor ao próximo, até para podermos entender que nós, também, já estivemos do lado de lá. O Software Livre, como movimento social, político e filosófico que é, vai florescer cada vez mais quando cada ativista olhar pra si mesmo e reconhecer, mesmo que com dificuldade, aquele a quem espera passar um pouco do seu ideal.

É difícil, mas é necessário.


It has been a while since I wanted to write about this subject. At many presentations that I gave during these last 2 years, I used the expression in the title in order to try to raise more awareness about why we should take care of our privacy (and maybe everyone's). But what does it really mean?

First of all, this article is not a copy of Benjamin Mako's Google Has Most of My Email Because It Has All of Yours. And I would also like to take this opportunity to recommend this great article; it provides many insights that some people do not even realize.

But back to the point: privacy is a collective good, and we should preserve it. The explanation of why I am calling privacy something “collective” is simple, and if you read Ben's article you probably know it by now: whenever I send an e-mail to someone who uses Gmail, Google will have a copy of it, even if I don't have a Google account. What does it mean? It means that I pay my own server in order to run my own e-mail infrastructure and not have my privacy disrespected, but in the end of the day the majority of my efforts are useless. Which boils down to something that may be hard to read, but is true: you are not respecting my privacy. Your displicence with your privacy is forcing me, who needs to communicate with you, to give up my privacy as well, even if for a small portion of time. But it's not only about e-mail...

Another common example is Facebook. I don't have an account there, and don't plan to have one, despite the pressure coming from the society sometimes. However, when you take a picture of me and post it there, or when you mention something about me on your Facebook, you are also disrespecting my privacy. If I don't have Facebook, it is because I do not want to become a product for them and have my personal data sold to advertisement companies, nor have it shared with the NSA. You, on the other hand, do not care about this, and post things about me and other people without their permission. This is wrong, and you are disrespecting my privacy.

I chose to use this argument because oftentimes people are not concerned about their privacy, and think that “if I have nothing to hide, then I don't need privacy”. I won't even begin discussing this absurd, because that is not the point of this article. Instead, I noticed that sometimes people pay more attention if you say that they are disrespecting someone else's right. Maybe I am wrong, but I still think it is worth trying to open everyone's eyes for something that seems to have been forgotten by most.


After trying (and failing!) to find a guide, how-to, or anything that could help me in the migration from Jabberd2 to Prosody on my personal server, I decided to write my own version here. I hope it can help other people who want to do this somewhat painful procedure!

Struggling with Jabberd2

When I installed my personal server, I chose Jabberd2 as my Jabber server. At that time, this choice seemed the most logical to me because of a few reasons:

  1. It is written in C, which is my favorite language and, therefore, would make it easier for me if I ever wanted to fix something in the software (as it really happened afterwards).
  2. Looking at the page comparing different Jabber servers at Wikipedia, I found that Jabberd2 was mature enough to be used seriously.
  3. I knew some people who uses it in their own servers, and they said good things about it.

So, the decision seemed pretty simple for me: Jabberd2 would be my choice! And then the problems started...

The first issue I had to solve was not Jabberd2's fault: I am using Debian Wheezy (stable) in my server, and Jabberd2 is only available for Debian Jessie (testing) or Sid (unstable). Therefore, I had to create my own version of the Jabberd2 Debian package (and all its dependencies that were not packaged) for Wheezy, which took me about 1 day. But after that, I managed to install the software in my server. Then, the configuration hell began...

Jabberd2 uses configuration files written in XML. They are well documented, with helpful comments inside. But they are confuse, as confuse as XML can be. Of course you have to take into account that it was my first time configuring a Jabber server, which added a lot to the complexity of the task. However, I feel compelled to say that the way Jabberd2 organizes its configuration files makes it a much more complex work than it should be. Nevertheless, and after lots of fails, I managed to set the server up properly. Yay!

Now, before I continue complaining, one good thing about Jabberd2: it has never crashed with me. I consider this to be something good because I am a software developer myself and I know that, despite our best efforts, bad things can happen. But Jabberd2 takes the gold medal on this one...

However... My confidence on Jabberd2's security was severily damaged when I found that the SQLite backend could not encrypt the users's passwords!!! I stumbled on this issue by myself, while naively dumping my SQLite database to check something there... You can imagine how (badly) impressed I was when I saw my password there, in plaintext. I decided to fix this issue ASAP. Hopefully next users will benefit from this fix.

After that, the bell rang in my head and I started to look for alternatives for Jabberd2. Though I still want to contribute to the project eventually (I am even working on a patch to merge all the database backends), I wanted to have a little bit more confidence in the software that I use as my Jabber server.

Meeting Prosody

Prosody came to my attention when I was setting up the server for our local Free Software group in Brazil. You can reach our wiki here (in pt_br) if you are interested. We wanted to offer a few services to our members/friends, and Jabber was obviously one of them. This happened after I discovered the bug in Jabberd2's SQLite backend, so using Jabberd2 was not a choice anymore. We had heard ejabberd, which was being used by Jabber-BR (they recently migrated to Prosody as well), but the fact that it is written in Erlang, a language that I am not familiar with, has contributed to our decision of dropping the idea. So, the only choice left was Prosody itself.

Since I am brazilian, I also feel a little bit proud of Prosody because it is writte in Lua, a programming language designed by brazilians.

We installed Prosody on our server, and it was amazingly easy to configure it! The configuration file is writte in Lua as well, which makes it a lot easier to read than XML. It is also well documented, and I felt that they were more organized too: you have small configuration files splitted by categories, instead of one big XML to edit.

The modular structure of Prosody also impressed me. You can load and unload many modules very easily, generally just by (un)commenting lines on the configuration file. Neat.

Prosody also offers a command-line program to manage the server, which is really helpful if you want to automatize some tasks and write scripts. There is a little thing that still annoys me, which is the fact that this command-line program does not have a very useful "--help" command, but I plan to propose a patch to fix that.

And at last, but definitely not least, Prosody is also very robust, and have not crashed one single time with us. It runs smoothly in the server, and although I haven't really compared the memory footprint of Jabberd2 and Prosody, I have nothing to complain about it too.

The Migration Process

Well, so after all this story, I think it is clear why I decided to migrate to Prosody. However, it was not an easy task.

Before we begin to understand the procedure needed to do the migration, I would like to say a few things. First, I would like to thank the guys at the Prosody chatroom, who were very helpful and provided several resources to make this migration possible. And I would also like to say that these instructions apply if you are running jabberd2_2.2.17-1 and prosody-0.8.2-4+deb7u2!! I have not tested with other versions of those softwares, so do it at your own risk.

The first thing you have to do is to convert Jabberd2's database to XEP-0227. This XEP is very nice: it defines a standard format to import/export user data to and from XMPP servers. Unfortunately, not every server supports this XEP, and Jabberd2 is one of those... So I started looking for ways to extract the information which was inside Jabberd2's SQLite database in a XEP-0227 compatible way. Thanks to the guys at the Prosody chatroom, I found a tool called sleekmigrate. It allowed me to generate a XEP-0227 file that could be imported into Prosody. Nice! But... I needed to extract this information from Jabberd2, and sleekmigrate could not do it. Back to the beginning...

It took me quite a while to figure out how to extract this info from Jabberd2. I was initially looking for ways (other than using sleekmigrate) that would allow me to extract this info directly from Jabberd2's SQLite database, but could not find it. Only when I read that sleekmigrate could actually work with jabberd14 data directories directly, I had the idead to find a way to convert my SQLite database into a jabberd14 data directory, and then I found this link: it teaches how to migrate from Jabberd2 to ejabberd, and has separate instructions on how to do the Jabberd2 -> Jabberd14 conversion! Sweet!

The first thing you have to do is to download the j2to1 Perl script. I had to patch the script to make it work with SQLite, and also to fix a little bug in a SQL query; you can grab my patched version here. Save the file as j2to1.pl, and run the script (don't forget to edit the source code in order to provide the database name/file):

1
2
3
$> perl j2to1.pl jabberd14-dir/
Converting user@host...
$>

This will convert the database from Jabberd2 to Jabberd14, and put the XML file of each Jabber user in the server into jabberd14-dir/host/. Now, you have a Jabberd14 version of your user data. Let's proceed with the migration.

After following the instructions on the sleekmigrate page on how to set it up, you can run it on your Jabberd14 data directory in order to finally generate a XEP-0227 XML file that will be imported into Prosody.

1
$> ./sleekmigrate.py -j /path/to/jabberd14-dir/

This should create a file called 227.xml on your current directory, which is the exported version of the Jabberd14 data directory. As a side note, it is always recommended to check those generated files in order to see if everything is OK.

Right, so now you have 227.xml, which means you can finally import it into Prosody. Fortunately, Prosody has a tool to help you with that: it is a Lua script called xep227toprosody.lua. However, if you are doing this using Debian and the same versions of the softwares that I was using, you may find it harder than it seems to run this script without errors. Here is what I had to do.

First, grab a copy of version 0.8.2 of Prosody. I had to do that because using the latest version of the script was not working. I also had to build some POSIX module of Prosody in order to make everything work. To do that, unpack the tar.gz file, go to the Prosody source code directory, and do:

1
$> apt-get build-dep prosody && ./configure --ostype=debian && make

Only after I did that I could finally run the conversion script successfully. The script is locate inside the tools/ directory. To run it:

1
$> cd tools && lua ./xep227toprosody.lua /path/to/227.xml

And yay! I finally had everything imported into Prosody!!!! Then it was just a matter of finishing the server configuration, initializing it, and everything was there: my contacts, my user, etc.

Conclusion

The migration was not very easy, especially because Jabberd2 does not support XEP-0227. I found a bug against Jabberd2 that requested this feature to be implemented, but it was not receiving any attention. Of course, if Jabberd2 implemented XEP-0227 it would make it easier for people to migrate from it, but it would also make it easier to migrate to it, so it is definitely not a bad thing to have.

Despite some difficulties, Prosody made it really easy to import my data, so kudos to it. The Prosody community is also very responsive and helpful, which made me feel very good about it. I hope I can contribute some patches to the project :-).

So, that's it. I hope this guide will be helpful to anyone who is planning to do this migration. Feel free to contact me about mistakes/comments/suggestions.

Happy migration!


A Droga do Crédito


Tags:

É uma droga querer crédito por algo. Alguns dizem que é seu direito, dado que você efetivamente tenha feito aquilo pelo qual está pedindo crédito; por outro lado, pessoas com almas supostamente mais evoluídas nos ensinam que o prazer em se fazer algo está contido no ato de fazê-lo, e não no crédito que nos é dado após a realização da tarefa. Quem está certo? O que funciona pra você?

O movimento de Software Livre, visto por um ângulo um pouco não-ortodoxo, funciona na base do "dar e receber". Você contribui com tempo, dedicação, código, relatórios de problemas, correções, arte, texto, e no fim espera, mesmo que inconscientemente, receber crédito pelo esforço colocado no projeto. Não há nada de errado nisso, e, se o crédito for realmente merecido (o que é uma outra reflexão por vezes dificílima de ser feita!), nada mais justo do que dá-lo.

Por outro lado, é interessante analisar o que ocorre quando o devido crédito não é dado. Sem entrar no mérito do porquê isso aconteceu (relapso, esquecimento, má fé), a pessoa que devia receber esse crédito, mesmo que não o estivesse conscientemente esperando, sofre um abalo --- irreversível, por vezes --- na vontade de continuar dedicando seu tempo a determinada tarefa. Pode parecer óbvio, mas é preciso olhar para isso com cuidado. O movimento de Software Livre é composto não somente por funcionários de empresas interessadas (financeiramente) no sucesso de determinado software, mas também (e principalmente) por voluntários.

E onde eu entro nisso tudo? Contribuo com Softwares Livres há bastante tempo, e já passei pelas duas situações: fui agraciado com o devido reconhecimento, e fui "esquecido" depois de me esforçar por alguma coisa. Felizmente, na esmagadora maioria dos casos o devido crédito foi-me dado, e não tenho do que reclamar. Mas recentemente passei pelo caso inverso, e senti na pele, mais uma vez, como é ruim não ser lembrado pelo trabalho que realizei, mesmo que isso tenha ocorrido por falta de comunicação e sem nenhuma maldade envolvida.

Tentei, com algum esforço, me colocar na posição de observador, e deixar o papel de "vítima" um pouco de lado. É uma situação muito complicada, e por qualquer ponto que eu tente olhar, não consigo ver uma solução diferente daquela que, de modo egoísta, elegi como a melhor para mim.

Sei o quanto me esforcei para conseguir colocar em movimento uma engrenagem nem sempre fácil de funcionar, que é a de um grupo de apoio ao movimento de Software Livre. Talvez você se lembre do anúncio de fundação do grupo, há mais de 1 ano atrás. E agora, depois de ter feito muita coisa pelo grupo, senti falta de ter um reconhecimento de alguém que considero bastante. Sei que, numa análise mais cuidadosa, a culpada disso foi a falta de comunicação. Mas às vezes não consigo deixar de pensar em como seria bom ter tido um pouco do gostinho de "fiz minha parte, e aquele cara reconhece isso!".

Enfim, coisas da vida. Esse post ia ficar bem maior, mas decidi cortar mais da metade dele porque não quero ficar no "chororô". O que importa, no final das contas, é o quanto você acha que está fazendo a coisa certa. No fim do dia, é você quem vai dormir tranquilo, sabendo que se esforçou bastante e que nada do que fez foi em vão. O resto, se vem ou não, é um complemento àquilo que você fez.