Why open-source will never be mainstream on Brazil

You know, there is something really bothering me on Brazilian open source communities, mainly the ubuntu one.

There are some people “leading” the community, but I mean in the worst possible way. You know when we call someone manager in a bad way? Like someone who says “let’s do something!” and just stand still, without moving his/her butt from the chair? Well, that’s it: the “leaders” from the ubuntu community on Brazil are all managers.

I’ve seen guys saying “we need to complete all the translations. If you want to help, send me an email”. Well, he didn’t made any translations at all. And now another guy saw a good explanation about the “root has no password” issue that comes over and over again and he just said “can you put it in the wiki?”. Man, what the hell? Is he too good to do it himself?

Managers. The damn brazilian community is built on managers. It all means there are a bunch of stupid pricks who take all the credit.

I want to be a storm-trooper

On “Star Wars: Episode II: Attack of the Clones” we can see the original storm-troopers: the clones, created and educated to be warriors, without emotions, without any worries except being a storm trooper. You can almost say that their lifes where their job. Nothing else.

I tried to be a lot of things and get a lot of things, although one at the time. Also, I didn’t let them go with a good fight and got some pretty big bruises from it. But I got tired. I got tired of trying to get more and always being left without nothing. I’ll take the only thing I still can count: work.

I’ll not run around with hopes and dreams and feelings and stuff. I’ll focus on the real and the touchable. If that means being an empty shell, so it will be. I don’t care anymore.

I’m going to be a storm-trooper.

Quote of the day

“The biggest thread open source is to Microsoft, is to show people that there are alternatives” – Jonathan Murray, Microsoft Europe, on BBC “Codebreakers”.

Screwing around with games

For some time, Babaum decided to call me “Sloypers”. I don’t know why the heck he did it, but he call me that every day. And I forgot how the talk managed to get to this point but…

(starting time: 2006-05-11 13:51:54)
<babaum>: You could do a game too
“Sloyper’s Revenge”
<slow>: need for sloypers
<babaum>: Mario in Sloyper’s World
<slow>: sloypers wars
<slow>: sloypers craft
<babaum>: SloyperCraft
<slow>: super sloypers’ world
<slow>: Half-Sloypers
<babaum>: Sloyper Tactics
<babaum>: Final Sloypers
<babaum>: Sloyper Fight
<babaum>: The Return Of The Sloyperizators From Mars
<slow>: Shadow of the Sloypers
<slow>: Sloypetris
<babaum>: Sloypered Beast
<babaum>: Sloyper & Toe Jam & Earl
<slow>: Captain Sloypers: Aliens Ate My Baby sitter
<slow>: Couter Sloypers
<babaum>: Total Sloyperization
<babaum>: Grand Theft Sloypers
<babaum>: (GTS)
<slow>: Alley Sloypers
<slow>: Sloypers Dug
<babaum>: Elevator Sloypers
<slow>: Tomb Sloypers
<babaum>: Duke Sloypers
<slow>: Indiana Sloypers and the last cruzade
<babaum>: Sloypers Paine
<babaum>: Sloyperiana Jones and the raiders of the lost sloyper
<babaum>: Pac-Sloyper
<slow>: back to the sloypers [nao e’ filme!!!]
<slow>: sloypersback
<babaum>: SloyperFox
<babaum>: Sloyper Kart
<babaum>: Sloyper Kong
<babaum>: The Legend Of Zelda: A Sloyper to The Past
<slow>: Sloyperspolis 500
<babaum>: Maniac Mansion: The Day Of The Sloyper
<babaum>: Sloyper Throttle
<slow>: Full Sloypers :)
<slow>: Grin Sloypers
<babaum>: Biker Sloypers From Mars
<babaum>: SloyperRoll Racing
<babaum>: The Sloypers
<slow>: now you are talking about tv series or something?
<babaum>: hahaha
<babaum>: how many shit
<slow>: that goes to the blog, you realized that, right?
(end time: 2006-05-11 14:06:39)

Recursive code on production program: check.

Remember when I said I wanted to add a recursive code on a production program? Well, I managed to do it.

The problem were quite simple: There are several commands, each leading to some string. Say “DISPLAY SECTION = FIELD1, FIELD2”, “DISPLAY SECTION FIELD1 = value1”, “DISPLAY SECTION FIELD2 = value2” (actually, that looks more like the output than the input, but I’ll use it just to show the point). The structure that came in mind when I saw that was a hash table, with structures with a hash and a value (if any).

To walk the line, I was thinking about finding the starting space, look for the next space, copy the block between them (getting just one word at time), repeat the process with the next word and so on. But, right after looking at it, I realized I could look for a space, take the data between the beginning and the space and then call the function again, using the remaining of the string (thanks to the way C deals with char pointers). Once I find an ‘=’, I know the following is the resulting string, so I store it and mark the node as having a leaf node (actually, the fact that the value isn’t NULL marks the node as such).

It was fun to note something and, just a few days later, have the chance to put it to work. And, in the end, the code looked a lot cleaner and easier to understand than using a simple loop.

[And, before anyone else points, I didn’t do it just to prove a point; I did it because it really looked a lot cleaner than using a loop]

I’m a good programmer because I’m dumb and lazy

Today I realized that my bad memory and the fact that I’m lazy is something that is really helping me as a programmer.

You see, I have a bad memory. I mean, I can’t even recall what I had for lunch yesterday. So, after writing a function or idea or even a whole code, I can’t recall what the heck I was thinking when I wrote it. To avoid any problem later, I document every function, idea and piece of code I write. And, as I want to write everything in the same format, I decided to go with the NaturalDocs format, so it doesn’t look like a “code documentation” (like Doxygen or JavaDoc or anything that looks more like garbage than a comment). If my memory serves me well here, an old project got some good reviews because everything was documented.

Also, I’m fucking lazy and I really hate writing code. So every time I had to do something more than twice, I try to merge both pieces and write it just once. And that even applies to “copy’n’paste” code: I hate them too and think there should be only one code path to solve the problem. That not only makes the code easy to manage (’cause, to be the more shareable possible, the code should be small and simple — and small and simple means less problems) but also easy to test (’cause all the code is being “routed” to the same code path — if there is something wrong with the path, fixing one will fix all paths).

I really like being so dumb and lazy. It has its advantages. :)

Edit 1: Later I recalled another advantage of having a bad memory [besides allowing me to put those edits on posts :)]: Usually, I have a bunch of things to code. So I start hacking something and do whatever I need to do. Once I think it is finished, I move to the next problem. And then memory kicks in and remind me that I forgot to do something. Of course, I just move back when I’m done with the current task. No, that doesn’t mean I forget it again and have less things to do — Usually, once I remind the missing bit, it doesn’t go away. When moving back, I have more time to review my own code, out of the heat of the moment. So, bad memory also gives me the change to see whatever I was thinking, if it is right or if there is a bad decision. Or even if I found, on the next step, that there is an easier/faster/more maintainable way to do the same thing — and my code keeps improving.

[pt_BR] slow e os gnomos que te dão maconha durante a noite

A dois dias atrás eu tive um sonho que consegui escrever antes de cair de novo no sono. Seguindo a linha d'”os gnomos que roubam roupa de baixo” e d”os gnomos que te surram de noite” (e por isso tu acorda completamente moído), descobri a existência d”os gnomos que te dão maconha durante a noite”:

escavacao no quintal de casa. containers cobertos com concreto onde
tem tecnologia alienigena. eu foi liberado a pouco tempo e to olhando
as coisas. algumas pessoas estao olhando o que tem la'. "cientistas
desmontaram alguns artefatos e, montando em ordem completamente
errada, continuam funcionando". tem um velho computador que as pessoas
reconhecem e eu digo que ele usava pra alguma coisa. as pessoas
percebem que eu ja' conhecia ele.

andando por um parque, com uma miniatura do et. eu sinto falta dele,
como um amigo. de repente, ele aparece no topo de um morro ao longe e
me ve. vem correndo. nos abracamos como bons amigos. bate-papo. um
MIB aparece pra levar ele dali. eu entrego a miniatura pra ele, como
presente.

`a direita, tem um portico de arvores, onde eu planto algumas lotus
pretas que ganhei da minha mae. minha irma aparece com uma bicicleta
de tres rodas, tentando passar pelo portico. ela pede pra tirar, mas
antes que eu consiga levantar, ela passa por cima de uma das plantas
com a bicicleta e a planta pega fogo.

acontece alguma coisa em uma sala, eu estou segurando as plantas, que
viraram bonecas (parecem barbies, mas a pele e' cinza-esverdeado e o
cabelo e' verde com preto). a parte que pegou fogo era o cabelo dela.
um furao esta' aos meus pes. ele e' meu. eu falo com ele, ele se
levanta sobre as patas de tras, se apoia no meu joelho e chia,
voltando ao chao. eu chamo ele e ele nao me olha.

eu to correndo no entroncamento de entrada em porto alegre, de noite,
sob chuva leve. eu vou correndo direito sobre a pista, como se fosse
um carro mesmo. eu carrego um servidor "slim" sobre o braco. ao chegar
no comeco da freeway, um carro aparece, mas anda na mesma velocidade
que eu estou correndo. eu diminuo e deixo ele passar, entrando na
pista que ele estava logo a seguir (eu quero pegar a pista da
direita). eu pego o retorno, como se fosse retornar pra assis brasil.
um raio atinge um para-raio logo a frente. eu conto os segundos entre
o raioi e o trovao pra ver a distancia do centro da tempestade, e sao
poucos. comeca a chover realmente forte agora. eu escondo o servidor
sob a camiseta.

Só a última parte é que eu me lembro claramente como é. Apesar da destrição, até o raio o sonho até era aconchegante, mas depois tornou-se pesado.

Is this an update?

E1lie said:

First of all I just have to say fuck all of you people and your lack of updating! that makes me really want to tell you whats up and stuff!

Ok, do you want an update, here is your update: work, bang head on desk, bang head on desk, depression, fatigue, work, bang head on desk, meeting, fatigue, depression, somewhat good times with mom, tired, fatigue, depression, work, bang head on desk, depression.

Almost in that order.

Happy now?

[Yes, I could summarize it as “nothing new”, but still…]

“Sombody SAAAAAAVE MEEEEE”

Babaum: How do I create a profile on vim?
slow: profile?
slow: Do you mean your personal configurations?
Babaum: yeah.
Babaum: What file I must edit?
slow: Documents and Settings\[user]\_vimrc
slow: or
slow: [vim directory]\_vimrc
where [vim directory] = that directory before vim[version]
slow: e.g. c:\vim\vim70e\vim.exe
[vim directory] = c:\vim
Babaum: x[
Babaum: ON UNIX!
Babaum: it’s .vimrc, I supose.
slow: yeah
slow: unix?
slow: SEE WHAT THIS DAMN CRAPPY OPERATING SYSTEM FROM MICROSOFT IS DOING TO ME???
Babaum: windows user.
slow: :~~~~(
slow: fucking operating system
slow: screwed my life, my dignity
slow: after that, I should leave everything computer-related and go to the countryside and grow potatos.
slow: never ever see a computer on my life

[Unfortunately, based on real facts. Actually, the whole conversation is real]