January 19th, 2012 — gnome
Oi gente!
Semana passada tava portando um código compilado em cima da uClibc para glibc. Tudo tranquilo, até que certa parte do programa dava crash. Investigando, vi que a falha acontecia em uma chamada à função free(). Primeira coisa que veio à minha cabeça: porque raios tá dando crash aqui se o mesmo programa, compilado na uClibc roda perfeito? Fiz um programa simples que simula a situação:
#include <stdio.h>
#include <stdlib.h>
typedef struct {
char *field1;
} s_test;
s_test test = {
.field1 = NULL
};
int main (int argc, char **argv) {
s_test *t;
t = &test;
free (t);
t = &test;
t->field1 = "bug";
printf ("%sn", t->field1);
return 0;
}
Preste atenção na linha 16. Estou executando um free() num ponteiro que aponta para uma variável estática, ao invés de uma variável que foi alocada com malloc() ou similar. Um crash é esperado aqui, certo? Em partes! Usando a glibc, sim. Já com a uclibc, não! O código acima funciona como [não] esperado! Estranho, não? Tudo o que aprendemos na escola de programação vai por água abaixo aqui hehehe.
Então, o que acontece é que temos um código similar aqui e que sempre funcionou, justamente por ser compilado na uclibc. Já vi essa e outras diferenças de comportamento entre a uclibc e a glibc. A solução? Mudar o código para torná-lo portável, não só para que compile corretamente, mas para que tenha os mesmos resultados, independente da plataforma.
A princípio, achei que isso era um bug na uclibc, mas fui apontado que isso não fere “os padrões”. De fato, os padrões dizem que nesse caso, o comportamento é “indefinido”. Ah, padrões
… Para evitar surpresas do tipo, fica aqui a lição aprendida: programar da forma certa, mesmo que dê um pouco mais de trabalho. Não se acomodar dizendo: “ah, testei aqui e funciona, deixa assim mesmo!”
Bons códigos!
November 17th, 2011 — gnome, Linux
[português]
Oi gente, tudo bom?
Este é um post rápido, quero compartilhar uma novidade com vocês: Estou dando um grande passo na minha carreira profissional. Me mudei para São Paulo e estou trabalhando na Vex/OI como desenvolvedor linux embarcado.
Foram pouco mais de 6 anos no meu último emprego, numa usina de açúcar e álcool em Alagoas. Fiz muitos amigos e aprendi bastante lá. Foi uma ótima empresa de se trabalhar. Infelizmente lá eu não trabalhava com o que eu gosto: linux. Por isso estou de mudança.
Espero aprender bastante nesse novo emprego e, no tempo certo, contribuir de volta com a comunidade FLOSS, visto que usamos muita tecnologia livre aqui.
Por enquanto estou só, procurando lugar pra morar. A família vem no final do ano. Quem quiser nos visitar em Sampa, pode entrar em contato, será um prazer receber os amigos!
May 27th, 2011 — Linux
Este post é direcionado a programadores. Repasse-o pra todos os programadores que você conhece. O software livre agradece!
Oi gente, esse é um assunto que sempre menciono nos eventos que vou, e que me incomoda bastante. Por estes dias tava com vontade de fazer um post simples e prático sobre o assunto. Felizmente aconteceram 3 coisas que me motivaram a escrevê-lo:
- Depois de ter aberto um bug no ano passado, ainda sem solução, resolvi escrever um pequeno patch que foi aceito, com modificações;
- Li isso: http://www.dicas-l.com.br/arquivo/yad_yet_another_dialog.php;
- Jomar escreveu um ótimo artigo exatamente sobre esse tema: http://www.trezentos.blog.br/?p=5907
Por que as pessoas se referem ao software livre sempre na terceira pessoa: “Eles”? É comum a gente ouvir:
- Quando o software X implementar a feature Y eu migro.
- Software X? Ah, ele tem muitos bugs, prefiro esperar ficar redondo.
- Não gostei da versão nova do software X. Vou ficar na atual ou testar uma alternativa.
- O pessoal do projeto X é devagar demais.
Gente, quando é que vai cair a ficha que o software é livre e que nós podemos mudá-lo? Vocês já pararam pra pensar que podem tornar o software X um software melhor? Não tô entrando aqui no mérito da liberdade de escolha, você é livre pra usar o software que quiser. O recado aqui é para programadores, que querem ao mesmo tempo ganhar experiência e contribuir para um mundo melhor.
Contribuir com código não é um bicho de 7 cabeças. Software é software em todo lugar do mundo, e software livre é a melhor forma de espalhar e receber conhecimento. Vejam aqui um exemplo muito simples, porém prático de como você pode fazer a coisa acontecer, ao invés de simplesmente esperar “eles” resolverem o bug (explicação do item 1 lá de cima):
- Ano: 2008. Senti a falta de um conversor de moedas no GNOME. Reportei meu desejo no bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=533690. Pouco mais de 1 ano depois esse recurso foi implementado.
- Ano: 2010. Usando o recurso acima, senti a falta de um botão pra trocar de moedas. Da mesma forma, reportei meu desejo: https://bugzilla.gnome.org/show_bug.cgi?id=633193.
- Ano: 2011. 7 meses depois, usando muito o recurso e sentindo realmente falta do tal botão, resolvi dar uma olhada no fonte e ver se seria fácil sua implementação. E foi. Submeti um patch, que no mesmo dia foi aceito, com algumas modificações feitas pelo mantenedor. Na próxima versão, a calculadora do GNOME virá com esse recurso.
O que quero mostrar com isso? Que o software livre basicamente é movido por empresas e voluntários. Se uma empresa não tem interesse em determinado recurso (a ponto de alocar um funcionário para implementá-lo), o recurso tem que ser implementado por algum voluntário. Então, ao invés de ficar dizendo “Eles não ligam pra minha opinião, reportei o bug há mais de um ano e nada até agora…”, simplesmente tente resolver você mesmo! Algumas considerações:
- Mesmo que o seu patch não esteja correto, não tenha medo de enviá-lo. Dependendo do grau de complexidade, o desenvolvedor pode sugerir algumas modificações, explicar porque tá errado, onde tá errado e tal e pedir pra você corrigir e reenviar… ou ele pode simplesmente modificar e seu patch e aplicá-lo diretamente (foi o que aconteceu comigo acima).
- Há sempre a possibilidade de entrar em contato direto com o desenvolvedor/mantenedor, via email, irc, jabber, etc. Assim, você pode tirar dúvidas, pedir um direcionamento, e coisas do tipo, antes de efetivamente enviar seu patch para avaliação.
Quanto ao item 2 lá em cima, até mencionei minha “indignação” nos microblogs, e algumas pessoas me perguntaram o por quê. Deixa eu explicar: Minha indignação, neste caso, não é com a pessoa do Júlio. Não quero nem discutir isso. É que tô cansado de ver empresas e pessoas que ganham a vida com software livre, seja usando em seu trabalho, seja escrevendo livros, seja dando aulas, enfim, você captou a ideia, e que são aptas a escrever (ou pagar alguém que escreva) código livre mas não o fazem. Neste caso específico, o Júlio citou no post:
“Sempre esperei que a qualquer momento o gnome lançaria uma nova versão deste software [...] Estava enganado, acompanhei o lançamento de diversas revisões do software mas elas simplesmente tratavam bugs e apresentação. Infelizmente nada de inovação. Porém um dia descobri o YAD.”
Veja que o gnome está sendo tratado na terceira pessoa. “Eles”. Segue o mesmo raciocínio que usei acima. Tanto para o Júlio como para os criadores do YAD. Se o zenity não tava atendendo as expectativas, por que não ajuda-lo? Por que não implementar os recursos tão desejados?
Quanto ao item 3 lá de cima, não tenho muito o que falar. Leiam o texto do Jomar, é muito bom!
Enfim, esse “desabafo” é uma forma de mostrar pra vocês que o software livre é nosso! Vamos colaborar mais (com código). Afinal de contas, já recebemos tanto, de tantos desenvolvedores espalhados pelo mundo, o que custa doar um pouco do nosso tempo e conhecimento como uma forma de retribuição?
Então, esse lance de falar na terceira pessoa (“eles”, “o gnome”, “o pessoal do kde”, etc), deixa para os leigos, meros usuários de software. Na próxima vez que for criticar algum software livre, tome ele para si e pense em uma forma de ajudar, beleza?
December 12th, 2010 — gnome, Linux, ubuntu
Hi, folks. Vino and Vinagre are an one-person projects. Since I hadn’t have been much time to improve them, I decided to look for new blood, new maintainers. Perhaps this will be a hard task, since nobody seems to care much about these two GNOME modules.
Anyway, if you are interested, send me an email.
October 20th, 2010 — gnome, Linux, ubuntu
E aí gente? Quanto tempo hein?
É com um prazer imenso que anuncio que esse ano teremos mais uma edição do Fórum GNOME. É aquela época do ano onde reunimos GNOMErs de todos os lugares para nos divertir!
Eu disse divertir? Iapois! A gente reencontra amigos, conhece face-a-face amigos de internet, discute sobre GNOME, divulga-o pra um monte de gente. Isso não é diversão?
E quem sabe sobra um tempo pra outras diversões também! 
Este ano o fórum vai acontecer em Natal, Rio Grande do Norte, nordestão do Brasil, junto com o Encontro Nordestino de Software Livre, ENSL. Vai fazer o que nos dias 5 e 6 de novembro? Tá de bobeira? Aproveita aí uma promoção aérea e vai pra Natal! Ou então faz como eu, vai de carro com a família!
Você pode conferir a grade do fórum diretamente no site do ENSL. Em breve você poderá ver também o resumo das palestras. O mini cv dos palestrantes também tá no site. Além dos brasucas, contamos com a presença ilustre de Frédéric Peters, um cara pau-pra-toda-obra no GNOME! Confira informações sobre ele lá na página de palestrantes.
Também vai acontecer no fórum a reunião anual do GNOME Brasil. Vamos conversar sobre a nossa comunidade, nossas atividades, nossas metas. Se você tem alguma sugestão, ou quer fazer parte dessa turma, ou quer apenas saber o que tá se passando, você é muito bem vindo! Apareça lá!
Ah, o GNOME 3, próxima versão do GNOME, a ser lançado em Abril será um tema de destaque nesse fórum. Se você quer ficar por dentro das novidades, ou até mesmo quer ajudar no seu desenvolvimento, não perca o fórum. Confira a programação!

Gostaria de agradecer a turma do ENSL e a GNOME Foundation, que tornarão o fórum possível! Você já fez sua doação à GNOME Foundation hoje?
Espero vocês lá! Abração!
August 27th, 2010 — gnome, Linux, ubuntu
Post atrasado sobre a GUADEC… mas todo mundo tá fazendo isso né?
Bem, eu só queria dizer que esta edição do GUADEC foi fantástica! Ótima organização, ótima localização, pessoas ótimas, tudo foi bem massa mesmo! Foi o melhor GUADEC que já fui.
Algumas notas aleatórias:
- O torneio de futebol FreeFA foi massa. Bastien e outras pessoas reclamaram porque eu trapaceei, ficando só na “banheira” (posição de impedimento). Bom, o que importa é que fiz alguns gols e ganhamos a partida né mesmo?

- Pizza de carne crua não é uma das nossas favoritas:

- Definitivamente hackers não sabem fazer churrasco (na verdade a gente prefere comer, não cozinhar
)

- Depois que foi anunciado o adiamento do GNOME 3 para março de 2011 (sábia decisão!), decidi não lançar o Vinagre 2.32. Em vez disso, vou lançar o 3.0 beta, que usa tecnologia do GNOME 3 e vem com suporte ao protocolo RDP.
- Ah, ele também virá com uma interface mais GNOMEzada, graças ao fantástico Vinicius Depizzol.
- Depois da GUADEC (que aconteceu em Haia), visitei Amsterdã e Londres. Gostei da Holanda. Amsterdã é a nova Sodoma. Londres é ótima, mas bem carinha. Almoçei com Lucas lá.
- Minha palestra sobre o GNOME Brasil rolou legal. Espero ter compartilhado minha experiência com outros grupos regionais.
- Finalmente, meu obrigado à Fundação GNOME por patrocinar minha viagem!

July 12th, 2010 — gnome, Linux, ubuntu
Oi gente! Graças a Fundação GNOME estou indo mais uma vez para GUADEC – conferência anual dos GNOMErs! Desta vez vai ser na Holanda!

Hackers going to FreeFA soccer match!
Este ano estarei com três atividades “formais” lá: Uma palestra junto com Emily Chen sobre o GNOME no Brasil/Ásia, uma palestra relâmpago no slot da Stormy sobre “Get things done” in GNOME, e finalmente uma sessão BoF sobre acesso remoto no GNOME.
Quanto às informais, bem, aí vem o tradicional jogo de futebol, campeonato de sorvete, festas com direito a jam sessions, e por aí vai… Vai ser muito bom encontrar toda a turma de novo!
Já que vou falar sobre GNOME Brasil lá, se você tem alguma sugestão, comentário, ou quer que eu leve algum assunto pra lá, entre em contato comigo!


June 17th, 2010 — gnome, Linux, ubuntu
E aí gente!
Vocês já devem ter ouvido falar sobre o uso de Javascript para programação em desktops (ao contrário de web), especialmente com o gnome-shell se tornando parte do GNOME 3. Acabei de descobrir a maravilha que é programar em Javascript. Tô fascinado!
Este post é para anunciar a criação da lista de discussão javascript nos servidores do GNOME, que nos permitirá discutir o uso do Javascript no GNOME e o desenvolvimento em javascript com seus bindings: gtk+, glib, etc.
Então, se você, assim como eu, gosta de programar em Javascript, ou está dando seus primeiros passos nessa nova tecnologia do GNOME, se inscreva na lista! E se você já tem algum conhecimento nessa linguagem, entre também na lista e nos ajude com nossas dúvidas!
Obrigado a Johan Dahlin por aceitar ser o administrador da lista
May 11th, 2010 — gnome, Linux, ubuntu

Oi gente. Final de semana passado rolou o IV ENSOL, lá em João Pessoa – PB. A turma da organização está de parabéns. O evento foi show de bola.
Chegamos na quinta no começo da noite; peguei uma carona com o Marcelo Santana, de Recife até Jampa. Viajar com o Marcelão a noite: Modo adrenalina ON! Altas aventuras. Não recomendado para quem sofre de problemas cardíacos. Encontramos o Fernandes no hotel e de lá seguimos junto com outra turma de palestrantes para um rodízio de camarão. Nunca comi tanto camarão na minha vida hehehehe.

Rodízio de Camarão
Na sexta rolou minha palestra sobre GNOME e GNOME Foundation. Foi muito legal, sala cheia, muitas perguntas, inclusive algumas tendendo para o troll GNOME x KDE ou GNOME copiando Mac OS.

Falando sobre GNOME
A noite fomos a um rodízio básico de pizza, perto do hotel.
No sábado rolou a palestra do Fernandes, sobre tradução do GNOME. Vi que a turma se interessou bastante pelo tema, vamos ver se pinta algum tradutor novo por aí.

Fernandes falando sobre tradução
A noite rolou uma festa no “John People” (ainda acho que deveria ser “John Person” hehe). Outro rodízio, dessa vez de petiscos. Saí cedo (por volta de meia noite) porque tinha que acordar as 5h da manhã pra voltar a tempo do almoço do dia das mães (E consegui!)
O evento ainda rolou no domingo, GNOME teve mais uma palestra com a Izabel falando sobre mulheres no GNOME.
Considerações gerais:
- Como sempre, muito bom rever e fazer amigos. Dessa vez, tive o prazer de conhecer Fernandes Neto, que apareceu devagarzinho e traduziu boa parte do GNOME 2.30. Também revi o Marcelo Santana (Debian Brasil) e o Rodrigo Padula. Rodrigo que está entrando na nossa turma pra ajudar na divulgação do GNOME! Marcelo rendeu altas risadas com seu jeito “delicado” de ser hahahaha.
- João Pessoa é a cidade dos brutos. Cara, todo dia a gente levava “um fora” de algum paraibano. Isso rendeu altas risadas. Depois a gente entrou no clima deles também!
- Evento dia de domingo não rola. Ainda mais no domingo dia das mães. Esse foi o único ponto fraco do ENSOL.
- Não deu pra passear, conhecer mais a cidade, devido a correria na volta por causa do dia das mães. Fica pra próxima.
- Tivemos uma variedade de cores nas camisas show de bola. Vejam as fotos para ficarem com inveja!
- O local do evento é simplesmente lindo. Arquitetura fantástica. Também, Niemeyer né?
- Fotos: http://www.flickr.com/photos/jwendell/tags/ensol/
- Slides das palestras: http://br.gnome.org/GNOMEBR/Apresentacoes
É isso aí, adorei o ENSOL e espero poder participar ano que vem!

May 5th, 2010 — gnome, Linux, ubuntu
Oi gente!

Eu esqueci de falar sobre o FLISOL que aconteceu semana passada. O GNOME Brasil esteve representado em 4 cidades, incluindo Maceió! Estive lá e, claro, falei sobre o GNOME, o que ele é (sim, muita gente não “conhece” GNOME, só conhece Ubuntu, Fedora, Linux, OpenOffice, etc), como ele é organizado e como é bom fazer parte deste projeto!

The talk

Two guys winning a GNOME t-shirt
More pictures

Amanhã vou viajar para João Pessoa, para participar do ENSOL. Nós do GNOME Brasil teremos três palestras e também teremos um estande/quiosque, onde poderemos nos encontrar e nos divertir! O evento acaba no domingo, então, na próxima semana blogarei sobre ele.
Inté!