28 de August de 2018

(English) Istio, mTLS, debugging a 503 error

Desculpe-nos, mas este texto esta apenas disponível em Inglês Americano.

19 de July de 2018

Summing up GUADEC 2018

That’s my seventh edition of GUADEC (and counting) and I just can’t get enough!

This year’s edition was once again a blast. The best opportunity to put faces into the names we interact daily throughout the communication channels of our community, and to meet new folk.

Once again a volunteer, this year a chaired the sessions in the auditorium during the first day, organized one of the newcomers activities, and the football game. Don’t forget to check out the conference photos.

Lots of work got done, as you must have read from other posts in Planet GNOME. It was no different for Boxes. Our annual Birds of a Feather session was more of a whole afternoon chat under the shadow in front of the university cafeteria. We managed to count with the presence of very experienced members of our community to give us some valuable insights on how we can sanely introduce new features and optimize the existing ones.

We discussed the challenges and possibilities of the OVF support, enabling us to Import and Export virtualization appliances allowing users to easily share their VMs with each other, and perform migrations and backups. That is work that has already started and will be partially shipped in 3.30, and later complemented in the next cycle.

There we often heard of feature requests for enhancements we already landed. Therefore justifying my recent work in the new machine assistant to make the “Download an OS” page, and remote connections more discoverable. Expect more work in this area, making it easier for users to find and benefit from features we already have, such as: bridged network, file sharing, clipboard integration, notifications passthrough, multiple brokers, etc…

Another relevant topic fairly discussed during our meeting was the  integration of Boxes into the Purism mobile development workflow as a simulator in which they could easily run their Flatpak bundles built with GNOME Builder.  Alberto Fanjul participated in the discussions describing their requirements and suggesting features. Expect some interesting work in this regard for our next development cycle.

A few more specific topics were discussed related to changes under the hood related to speeding up things and making some processes more fail-proof.

Boxes among other apps got stickers!

GUADEC was also an opportunity for me to meet our Google Summer of Code mentee Adi Manglik, and chat about his challenges adding Power consumption capabilities to GNOME Usage and of being a newcomer in our community.

I would like to thank the GUADEC organizers for hosting an amazing conference. The Social Events were great, from the sangria at the beach party to the guided tour to Alcazaba ending with a delightful party at the sunset with incredible flamenco dances, it is all fantastic with friends.

Last but not least, I’d like to thank my employer Red Hat for sponsoring my trip! I hope to see you all again very soon!

07 de July de 2018

Istio, Service Mesh, Atualizações

Olá, pessoal! Este blog tá meio quieto ultimamente… Só quero dar uma atualização sobre o que eu ando fazendo estes dias. Segue…

Istio Logo

Projeto Istio

Desde Dezembro de 2017/Janeiro de 2018 eu mudei de time na Red Hat, e comecei a trabalhar com o Istio. Istio é uma ferramenta/plataforma que nos ajuda na implantação de micro-serviços, em vários aspectos diferentes. Eu planejo escrever mais posts sobre isso. Enquanto isso, você pode ler mais sobre o Istio no website do projeto. Vá por mim, Istio é um projeto fantástico que merece uma olhada, se você está envolvido de alguma forma, ou se planeja entrar no mundo dos micro-serviços, seja você dev ou ops :).

Por enquanto nosso trabalho tem sido principalmente em entender os benefícios do Istio quando usado com o Kubernetes e Openshift (versão melhorada e suportada do Kubernetes pela Red Hat). Isso quer dizer que estamos mais envolvidos em tarefas downstream, tipo criar binários RPM para RHEL e CentOS e imagens para containers, embora nós já estamos contribuindo com a comunidade upstream. O plano é se envolver bem mais com a comunidade, muito, muito em breve.


Dezembro passado estive na Kubecon US em Austin, Texas. Foi minha primeira imersão no Istio, visto que rolou uma IstioCon, um pre-evento com um tanto de palestras e workshop. Em Maio desse ano estive na Kubecon EU, que aconteceu em Copenhaguen, Dinamarca. Todas as palestras estão disponíveis gratuitamente (em inglês) no canal da CNCF no YouTube. Confiram! Definitivamente é um ótimo material para se atualizar sobre o que tá acontecendo lá fora, não somente no mundo do Istio, mas no grande ecossistema do Kubernetes.

Em abril estive no ótimo TDC (The Developers Conference) edição Florianópolis, e dei uma palestra sobre o ecossistema dos Containers – alternativas ao Docker (CRI-O, Buildah, Podman, etc).

Agora em julho estarei palestrando no TDC São Paulo. Darei duas palestras sobre Istio e uma sobre o ecossistema de containers, praticamente a mesma que dei no TDC Floripa. O evento já é um sucesso tão grande que os organizadores tiveram que duplicar algumas trilhas, de forma a poder receber todos os inscritos. Assim sendo, minhas palestras nas trilhas de microservices (Introdução a Service Mesh com Istio) e devops (Como o Istio facilita deployments entre micro-serviços) serão duplicadas, assim terão 2 de cada, somando 5 no total! Espero que os brindes que levarei dêem pra todo mundo!

Em agosto viajarei para Boston, MA para participar do primeiro Devconf dos Estados Unidos! Darei uma palestra sobre Istio lá.

Acredito que mais eventos virão, visto o tanto de hype e momentum que Istio/Service Mesh está tendo em todo o lugar.


Meu plano é escrever no blog regularmente sobre as coisas legais que estamos fazendo com o Istio, e como ele pode ser usado para melhorar a implantação de micro-serviços, tornando a vida dos desenvolvedores e administradores mais fácil!

Nos vemos em breve!

02 de July de 2018

Attending GUADEC!

Just passing by to say that I am looking forward to see you all later this week in Almeria. The conference program sounds very promising and the host city is looking outstanding.

We will be hosting a Boxes BoF during the July 9th afternoon, so make sure to swing by if you are interested on contributing to Boxes or have any questions/ideas to discuss.

Besides the normal talks schedule, I will be involved in organizing newcomers and sport activities. Stay tuned!

22 de December de 2017

CEF on Wayland

TL;DR: we have patches for CEF to enable its usage on Wayland and X11 through the Mus/Ozone infrastructure that is to become Chromium’s streamlined future. And also for Content Shell!

At Collabora we recently assisted a customer who wanted to upgrade their system from X11 to Wayland. The problem: they use CEF as a runtime for web applications and CEF was not Wayland-ready. They also wanted to have something which was as future-proof and as upstreamable as possible, so the Chromium team’s plans were quite relevant.

Chromium is at the same time very modular and quite monolithic. It supports several platforms and has slightly different code paths in each, while at the same time acting as a desktop shell for Chromium OS. To make it even more complex, the Chromium team is constantly rewriting bits or doing major refactorings.

That means you’ll often find several different and incompatible ways of doing something in the code base. You will usually not find clear and stable interfaces, which is where tools like CEF come in, to provide some stability to users of the framework. CEF neutralizes some of the instability, providing a more stable API.

So we started by looking at 1) where is Chromium headed and 2) what kind of integration CEF needed with Chromium’s guts to work with Wayland? We quickly found that the Chromium team is trying to streamline some of the infrastructure so that it can be better shared among the several use cases, reducing duplication and complexity.

That’s where the mus+ash (pronounced “mustache”) project comes in. It wants to make a better split of the window management and shell functionalities of Chrome OS from the browser while at the same time replacing obsolete IPC systems with Mojo. That should allow a lot more code sharing with the “Linux Desktop” version. It also meant that we needed to get CEF to talk Mus.

Chromium already has Wayland support that was built by Intel a while ago for the Ozone display platform abstraction layer. More recently, the ozone-wayland-dev branch was started by our friends at Igalia to integrate that work with mus+ash, implementing the necessary Mus and Mojo interfaces, window decorations, menus and so on. That looked like the right base to use for our CEF changes.

It took quite a bit of effort and several Collaborans participated in the effort, but we eventually managed to convince CEF to properly start the necessary processes and set them up for running with Mus and Ozone. Then we moved on to make the use cases our customer cared about stable and to port their internal runtime code.

We contributed touch support for the Wayland Ozone backend, which we are in the process of upstreaming, reported a few bugs on the Mus/Ozone integration, and did some debugging for others, which we still need to figure out better fixes for.

For instance, the way Wayland fd polling works does not integrate nicely with the Chromium run loop, since there needs to be some locking involved. If you don’t lock/unlock the display for polling, you may end up in a situation in which you’re told there is something to read and before you actually do the read the GL stack may do it in another thread, causing your blocking read to hang forever (or until there is something to read, like a mouse move). As a work-around, we avoided the Chromium run loop entirely for Wayland polling.

More recently, we have start working on an internal project for adding Mus/Ozone support to Content Shell, which is a test shell simpler than Chromium the browser. We think it will be useful as a test bed for future work that uses Mus/Ozone and the content API but not the browser UI, since it lives inside the Chromium code base. We are looking forward to upstreaming it soon!

PS: if you want to build it and try it out, here are some instructions:

# Check out Google build tools and put them on the path
$ git clone https://chromium.googlesource.com/a/chromium/tools/depot_tools.git
$ export PATH=$PATH:`pwd`/depot_tools

# Check out chromium; note the 'src' after the git command, it is important
$ mkdir chromium; cd chromium
$ git clone -b cef-wayland https://gitlab.collabora.com/web/chromium.git src
$ gclient sync  --jobs 16 --with_branch_heads

# To use CEF, download it and look at or use the script we put in the repository
$ cd src # cef goes inside the chromium source tree
$ git clone -b cef-wayland https://gitlab.collabora.com/web/cef.git
$ sh ./cef/build.sh # NOTE: you may need to edit this script to adapt to your directory structure
$ out/Release_GN_x64/cefsimple --mus --use-views

# To build Content Shell you do not need to download CEF, just switch to the branch and build
$ cd src
$ git checkout -b content_shell_mus_support origin/content_shell_mus_support
$ gn args out/Default --args="use_ozone=true enable_mus=true use_xkbcommon=true"
$ ninja -C out/Default content_shell
$ ./out/Default/content_shell --mus --ozone-platform=wayland

16 de October de 2017

Who knew we still had low-hanging fruits?

Earlier this month I had the pleasure of attending the Web Engines Hackfest, hosted by Igalia at their offices in A Coruña, and also sponsored by my employer, Collabora, Google and Mozilla. It has grown a lot and we had many new people this year.

Fun fact: I am one of the 3 or 4 people who have attended all of the editions of the hackfest since its inception in 2009, when it was called WebKitGTK+ hackfest \o/


It was a great get together where I met many friends and made some new ones. Had plenty of discussions, mainly with Antonio Gomes and Google’s Robert Kroeger, about the way forward for Chromium on Wayland.

We had the opportunity of explaining how we at Collabora cooperated with igalians to implemented and optimise a Wayland nested compositor for WebKit2 to share buffers between processes in an efficient way even on broken drivers. Most of the discussions and some of the work that led to this was done in previous hackfests, by the way!


The idea seems to have been mostly welcomed, the only concern being that Wayland’s interfaces would need to be tested for security (fuzzed). So we may end up going that same route with Chromium for allowing process separation between the UI and GPU (being renamed Viz, currently) processes.

On another note, and going back to the title of the post, at Collabora we have recently adopted Mattermost to replace our internal IRC server. Many Collaborans have decided to use Mattermost through an Epiphany Web Application or through a simple Python application that just shows a GTK+ window wrapping a WebKitGTK+ WebView.


Some people noticed that when the connection was lost Mattermost would take a very long time to notice and reconnect – its web sockets were taking a long, long time to timeout, according to our colleague Andrew Shadura.

I did some quick searching on the codebase and noticed WebCore has a NetworkStateNotifier interface that it uses to get notified when connection changes. That was not implemented for WebKitGTK+, so it was likely what caused stuff to linger when a connection hiccup happened. Given we have GNetworkMonitor, implementation of the missing interfaces required only 3 lines of actual code (plus the necessary boilerplate)!


I was surprised to still find such as low hanging fruit in WebKitGTK+, so I decided to look for more. Turns out WebCore also has a notifier for low power situations, which was implemented only by the iOS port, and causes the engine to throttle some timers and avoid some expensive checks it would do in normal situations. This required a few more lines to implement using upower-glib, but not that many either!

That was the fun I had during the hackfest in terms of coding. Mostly I had fun just lurking in break out sessions discussing the past, present and future of tech such as WebRTC, Servo, Rust, WebKit, Chromium, WebVR, and more. I also beat a few challengers in Street Fighter 2, as usual.

I’d like to say thanks to Collabora, Igalia, Google, and Mozilla for sponsoring and attending the hackfest. Thanks to Igalia for hosting and to Collabora for sponsoring my attendance along with two other Collaborans. It was a great hackfest and I’m looking forward to the next one! See you in 2018 =)

10 de July de 2017

Da contracultura à cibercultura: Uma reflexão sobre o papel dos hackers.

Da contracultura   cibercultura  uma reflex o sobre o papel dos hackers.

Com o início do século XXI, estamos vivendo um desses raros intervalos na história. Um período em que a base tecnológica das nossas relações em sociedade está — e tudo indica que continuará por um bom tempo — imersa num intenso processo de transformações tecnológicas e culturais. Assim, de forma semelhante ao que aconteceu no século XIX, com a revolução industrial e o surgimento da produção em série mediada por máquinas, as novas tecnologias de informação e comunicação, em especial a internet, revolucionam os meios de comunicação humana, como também alicerçam transformações nas mais diversas áreas da vida em sociedade.

Tendo a liberdade de acesso, produção e compartilhamento de informações como um dos grandes princípios estruturantes, as mudanças propiciadas pelos liames digitais da internet representam até o surgimento de um novo paradigma tecnológico, de uma nova Era Pós-Industrial.

Contudo, cientistas sociais, como Manuel Castells e Fred Turner, nos lembram que não existem revoluções de natureza tecnológica que não sejam precedidas de transformações culturais. Como tecnologias revolucionárias têm que ser pensadas, elas não são o resultado de um simples processo técnico ou incremental, mas sim fruto de pensamentos libertários e subversivos que são, por exemplo, ligados a gestos de rebeldia e desobediência civil. Dentro desse entendimento, esses mesmos autores afirmam que existe uma relação estreita entre os movimentos de contracultura dos anos 60 e a cibercultura libertária dos nossos dias.

Para além dos festivais de música e das manifestações do movimento hippie, os princípios de liberdade de expressão que marcaram essa época também se fizeram presente ao longo de todo o processo de criação e difusão da internet pelo que hoje é denominado de “cultura hacker”. Todavia, antes de seguirmos adiante nessa história, faz-se necessário esclarecer certa ambiguidade ou mal-entendido sobre o termo e a práxis social dos hackers. Afinal, na sua origem, o termo hacker não está associado a indivíduos irresponsáveis que invadem sistemas computacionais de forma ilícita — como é normalmente propagado pela mídia de massa mais tradicional. Esses sujeitos que violam sistemas de segurança e quebram códigos computacionais são, especificamente, denominados de “crackers” e, em geral, são também repudiados pelas comunidades de hackers. É claro que todo “cracker” já foi um hacker e isso possibilita que formadores de opinião — como, por exemplo, o jornalista e produtor cultural Nelson Motta — afirmem que todo hacker seja sim um cracker.

No entanto, de forma contrária a uma visão mais restrita que tenha como base o exemplo de alguns poucos crackers que ganharam fama no mundo por conta de invasões espetaculares em poderosos computadores corporativos, esse artigo tenta ir um pouco além desse entendimento. Em especial, buscamos resgatar a visão do filósofo finlandês Pekka Himanen e os artigos de um dos integrantes da própria comunidade hacker, Eric Raymond, que reforçam a importância desses primeiros “nativos digitais” como uma importante expressão cultural contemporânea de caráter libertário e inovador. Isto porque os hackers estão vinculados a um conjunto de valores e crenças que emergiram, num primeiro momento, das redes de pessoas que desenvolviam softwares e interagiam em redes computacionais em torno da colaboração em projetos de programação criativa. Isso significa, então, partir de um entendimento que essa cultura hacker desempenhou um papel central ao longo da história de desenvolvimento dos principais símbolos tecnológicos da atual sociedade em rede, como os primeiros computadores pessoais (PCs), a internet e os primeiros sistemas operacionais, como o UNIX. E essa cultura criativa perdura até o presente momento de forma pulsante. Afinal, inúmeras pesquisas demonstram como os hackers sustentam o ambiente fomentador de inovações tecnológicas significativas, mediante a colaboração e comunicação on-line, como também acaba permitindo a conexão entre o conhecimento originado em universidades e centros de pesquisas com os produtos empresariais que difundem as tecnologias da informação no “mundo dos átomos” — isto é, na materialidade da economia contemporânea.

Tendo a liberdade técnica de acesso, uso, compartilhamento, modificação e criação como valor supremo, a cultura hacker se manifesta em diversas áreas por meio de uma nova ética de trabalho, que lança alguns “enigmas contemporâneos” sobre o comportamento e as próprias relações sociotécnicas na realidade contemporânea. Mais especificamente, esse suposto comportamento enigmático, em termos de engajamento digital, emerge a partir de questões como: quais os valores que levam hoje milhares de tecnólogos a desenvolverem um software de alta complexidade como o Linux, na maioria dos casos de forma voluntária, além de o distribuírem de forma livre pela internet? Ou ainda, o que exatamente impulsiona milhares de wikipedistas de diversas partes do mundo a se juntarem na internet de forma colaborativa para criar e compartilhar conhecimento de forma livre e gratuita, por meio de um projeto enciclopédico internacional?

Umas das respostas mais encontradas em pesquisas sobre essa temática é que os hackers trabalham e se engajam em projetos dessa natureza, antes de tudo, porque os desafios técnicos e intelectuais são interessantes. Problemas encontrados no processo de criação de um determinado bem causam uma forte curiosidade e atração para essas pessoas, tornando-as sempre ávidas por mais conhecimento para criar ou encontrar uma solução inovadora. Essa atividade de produção exerceria então um poder de fascínio sobre esses sujeitos envolvidos pela cultura hacker, a ponto de o próprio trabalho, em determinadas condições, servir como um momento de se “recarregar as energias” — por mais contraditório que isso possa parecer num primeiro momento. Assim, para definir o princípio que rege as atividades de um indivíduo que se afirma como um hacker, o Linus Torvalds (hacker criador do Linux) acredita que as palavras “paixão” e “diversão” podem descrever bem a força lúdica que move ele a dedicar horas de um trabalho que muitas vezes é empreendido no “tempo livre”.

Por conta disso, não é difícil perceber que esta relação passional com o trabalho não é privilégio dos hackers de computador. Muito ao contrário. Em seu guia Como Tornar-se um Hacker, Eric Raymond também afirma que é possível encontrar outros tipos de hackers entre diversas áreas. “Há pessoas que aplicam a atitude hacker em outras coisas, como eletrônica ou música — na verdade, você pode encontrá-la nos níveis mais altos de qualquer ciência ou arte. Hackers de software reconhecem esses espíritos aparentados de outros lugares e podem chamá-los de ‘hackers’ também — e alguns alegam que a natureza hacker é realmente independente da mídia particular em que o hacker trabalha”.

Por exemplo, há vários pontos de contato entre tecelões, artesãos e a cultura hacker. Isto porque é possível perceber que todos eles (tecelões, artesãos e hackers) comungam de muitos valores inerentes ao trabalho criativo e coletivo, como, por exemplo, o compartilhamento do conhecimento que fundamenta o processo da produção de um bem ou uma obra — além, é claro, do prazer e da alegria inerente ao ato da criação em si. Afinal, o que seria, por exemplo, da gastronomia mundial sem o antigo hábito popular de se compartilhar receitas de culinária para se adaptar e criar novos e saborosos pratos pelos chefes de cozinha.

Richard Stallman, fundador da Free Software Foundation, ressalta, então, que um hacker é antes de tudo alguém que ama o que faz e, por conta disso, busca sempre inovar e explorar novas possibilidades no exercício do seu ofício em colaboração com seus pares. Isso significa dizer que um hacker, como individuo, busca sempre não apenas usar, mas principalmente aprimorar e aperfeiçoar o objeto de sua paixão, no contexto de um setor, organização ou comunidade da qual interage e participa. Para isso, o acesso irrestrito e o compartilhamento do conhecimento associado ao uso e ao processo de produção de um bem em questão é para um hacker, da mesma forma que para seus pares, uma condição vital da sua práxis social.

Dentro dessa perspectiva, esse ímpeto lúdico e colaborativo permite aos hackers romperem com uma dimensão clássica dos sistemas criativos da modernidade industrial: a separação entre quem usa e quem cria, aperfeiçoa ou produz um determinado bem. Em outras palavras, isso significa que a cultura hacker supera a clássica dicotomia entre “criadores” e “usuários”, pois partem de uma (antiga) premissa produtiva: os usuários são a base de toda a organização criativa somente por uma simples razão: todos os criadores eram usuários antes de começarem a contribuir com suas criações.

* Texto originalmente publicado na Revista Objectiva.

13 de March de 2017

Rede Suiça de Educação Artística adere ao Noosfero


Foto guerreiro 03

A rede internacional Another Roadmap for Arts Education (Outro Roteiro para a Educação Artística), que reúne educadores/as e pesquisadores/as em museus, universidades, escolas e projetos culturais e educativos passou a utilizar o Noosfero como plataforma de articulação e comunicação entre seus núcleos ao redor do mundo. A rede agrega 22 grupos ao redor do mundo com a proposta de trabalhar a educação artística inserida nas relações sociais e políticas, respeitando os contextos locais.

Another Roadmap surgiu do anseio de educadores/as e pesquisadores/as de fazer uma análise crítica do Roteiro para a Educação Artística da Unesco, definido em 2006, e da Agenda de Seul (2010), uma série de metas mundiais para o desenvolvimento da Arte e Educação. A rede, que deu início à Another Roadmap School (Escola Outro Roteiro), tem a perspectiva de questionar a hegemonia dos conceitos ocidentais de arte e educação e elaborar alternativas e novos paradigmas para as pesquisas e práticas relacionadas à educação artística.

A plataforma utilizada pela rede foi desenvolvida pela Colivre por meio de um serviço prestado à Universidade de Artes de Zurique na Suiça. Por utilizar o Noosfero, a plataforma permite autonomia para os grupos que fazem parte da rede porque possibilita que cada perfil de comunidade e usuário na rede possa ter seu próprio layout customizado além de possuir funcionalidades de blogs, fóruns, agendam, wiki, pastas de arquivos, galeria de imagens, entre outras.

O Noosfero é uma plataforma web livre para a criação de redes sociais autônomas com foco no compartilhamento de conteúdo. Desenvolvido pela Colivre e lançado em 2009 durante o III Encontro Nordestino de Software Livre, o Noosfero já garantiu o primeiro lugar em diversos prêmios nacionais à cooperativa como o 9º Prêmio Cooperativa do Ano em 2014, o Prêmio Pontos de Mídia Livre do Ministério da Cultura em 2015 e o Prêmio Especial Recursos Educacionais Abertos da Revista ARede Educa em 2016.

Para conhecer mais sobre a rede Another Roadmap for Arts Education acesse o site oficial através do endereço http://another.zhdk.ch/.


30 de March de 2016

Not Found

The URL you requested could not be found.

23 de January de 2015

A successful Git branching model!

Warning: Missing argument 2 for wpdb::prepare(), called in /var/www/html/blog/wp-content/plugins/category-icons/category_icons.php on line 1338 and defined in /var/www/html/blog/wp-includes/wp-db.php on line 1291

Good explanations to have successful with GIT branching model.

16 de December de 2014

The Infamous Windows “Hello World” Program

The Infamous Windows “Hello World” Program (A good and archaeological post by Petzold)

03 de December de 2014

New tablet UI for Firefox on Android

The new tablet UI for Firefox on Android is now available on Nightly and, soon, Aurora! Here’s a quick overview of the design goals, development process, and implementation.

Design & Goals

Our main goal with the new tablet UI was to simplify the interaction with tabs—read Yuan Wang’s blog post for more context on the design process.

In 36, we focused on getting a solid foundation in place with the core UI changes. It features a brand new tab strip that allows you to create, remove and switch tabs with a single tap, just like on Firefox on desktop.

The toolbar got revamped with a cleaner layout and simpler state changes.

Furthermore, the fullscreen tab panel—accessible from the toolbar—gives you a nice visual overview of your tabs and sets the stage for more advanced features around tab management in future releases.

Development process

At Mozilla, we traditionally work on big features in a separate branch to avoid disruptions in our 6-week development cycles. But that means we don’t get feedback until the feature lands in mozilla-central.

We took a slightly different approach in this project. It was a bit like replacing parts of an airplane while it’s flying.

We first worked on the necessary changes to allow the app to have parallel UI implementations in a separate branch. We then merged the new code to mozilla-central and did most of the UI development there.

This approach enabled us to get early feedback in Nightly before the UI was considered feature-complete.


In order to develop the new UI directly in mozilla-central, we had to come up with a way to run either the old or the new tablet UIs in the same build.

We broke up our UI code behind interfaces with multiple concrete implementations for each target UI, used view factories to dynamically instantiate parts of the UI, prefixed overlapping resources, and more.

The new tab strip uses the latest stable release of TwoWayView which got a bunch of important bug fixes and couple of new features such as smooth scroll to position.

Besides improving Firefox’s UX on Android tablets, the new UI lays the groundwork for some cool new features. This is not a final release yet and we’ll be landing bug fixes until 36 is out next year. But you can try it now in our Nightly builds. Let us know what you think!

27 de November de 2014

Joining Facebook

I am really excited to announce that I’m joining Facebook in January! I’ll be bootstrapping Android UI efforts—frameworks and user-facing stuff—in the London office. There are still a lot of details to sort out but that’s the general plan.

Why Facebook? They have an amazing hacker-driven culture, they’re striving to do open source the right way, there’s a lot of space for experimentation, and they have massive reach in the Android space.

I’m really looking forward to learning a lot at Facebook. And there is so much to be done! I can’t wait to start :-)

10 de April de 2014

Barra de progresso no APT

No Ubuntu Trusty 14.04 Beta Final chegou com diversas atualizações  importantes, como o Mesa 10.x, Kernel 3.13.xe, etc… Dentre essas, o gerenciador de pacotes Debian, o APT (Advanced Package Tool) foi atualizado para a versão 0.9.15.x que possui um recurso de barra de progresso chamado Progress-Fancy. Com ela podemos visualizar o status do processo de instalação, remoção e atualização dos pacotes.

Esta barra de progresso está disponível, porém não vem habilitada por padrão. Para ativá-la, basta abrir o seu terminal e executar:

echo "Dpkg::Progress-Fancy \"1\";" | sudo tee -a /etc/apt/apt.conf.d/99progressbar >/dev/null

Pronto! Agora toda vez que você for instalar, remover ou atualizar programas através do apt ou apt-get, aparecerá uma barra de progresso como na imagem abaixo (Clique para ampliar):


Observação: Atualmente só funciona com o Ubuntu 14.04 e derivados.

Até a próxima!

01 de April de 2014

FLISOL 2014 – Salvador

FLISOL - Salvador

O Festival Latino Americano de Instalação de Software Livre – FLISol é um evento internacional, realizado anualmente, e que ocorre de forma simultânea em diversas cidades da América Latina. O Flisol é um evento descentralizado, onde diversas comunidades organizam e realizam seu festival, de forma voluntária, tendo como principal objetivo promover o uso de software livre, apresentando sua filosofia, alcance, avanços e desenvolvimento ao público em geral.

O Flisol acontece, historicamente, no 4º sábado de abril (em 2006 foi no 25 de março; em 2007, 28 de abril; 2008, 26 de abril; 2009 e 2010, no dia 24 de abril; 2011, no dia 9 de abril; 2012, no dia 28 de abril). O Flisol 2014 está marcado para o dia 26 de abrl na faculdade AREA1.

O evento é gratuito e aberto a todo o público: curiosos, interessados e amantes do Software Livre. Nesse dia os voluntários propõe a instalação de Software Livre, como distribuições de Gnu/Linux, sistemas BSD, e aplicativos livres para Windows em geral. Alguns eventos também contam com palestras, oficinas, sala de degustação e gravações de mídias (live-CD/DVD e/ou pendrives).

Programação do evento Endereço da Área1
Te vejo por lá! ;)

Quer saber se a sua cidade também terá o FLISOL? Clique aqui e saiba onde vai rolar o FLISOL pelo Brasil a fora…

Atualização: Realize sua inscrição no FLISOL Salvador, clicando aqui!

Obs.: Este post é melhor visualizado acessando direto da fonte: Blog do Ubuntuser

09 de September de 2013

ANÚNCIO: Final do Planeta GNU/Linux Brasil

The End

Em 2008, depois de algumas discussões sobre o tipo de conteúdo que meu blog estava gerando em alguns agregadores nacionais, eu tomei a decisāo de criar meu próprio agregador com o seguinte objetivo:

Planeta GNU/Linux nasceu da minha necessidade de querer ler blogs de pessoas relacionadas ao movimento Brasileiro de software livre, mas sem a censura bitolada que outros agregadores de blogs usam para filtrar o conteúdo que é publicado.

O critério para entrar no Planeta é super simples: eu tenho de gostar do material! Ao contrário dos outros agregadores que geralmente são vinculados a comunidades ou distribuições, este site aqui é completamente independente e sem censura nenhuma!

Desde entāo eu venho administrando o conteúdo e tentando adicionar material que seja relevante aos meus interesses e daqueles que também acompanham este “planeta”. Mas nos últimos 2 anos tanto o meu tempo como meu interesse por este tipo de fonte de notícias diminuiu bastante e o projeto ficou meio que jogado às traças… até a semana passada quando recebi um e-mail me avisando que estava na hora de renovar o meu domínio. Foi aí que eu resolvi que nāo fazia mais sentido em manter um projeto que eu nāo tenho mais interesse, e em outubro deste ano o Planeta GNU/Linux Brasil deixará de existir.

Agradeço a todos que apoiaram o projeto por tanto tempo e até a próxima :)

20 de November de 2011


Do you have 3 minutes? I’m running a small user survey about the information architecture of the GNOME website and its services. If you do, here’s the link.

18 de November de 2011

About being late, spending time, delivering GSoC tasks and my final paper

It’s been a long time since Google Summer of Code ended, and I still haven’t posted anything since August. I know I am very late (it’s hard to believe that 2011 is already coming to a close — Desktop Summit seemed like it was yesterday!), but besides being extremely busy with my regular job and lots of others little projects and my final paper, I don’t have an excuse.

I got 5 big tasks in my GSoC TODO list. I knew it was a lot right from the beginning, but I didn’t want to worry about the short timetable I would get in the program. I already was contributing in the web team and keeping working on it after GSoC wouldn’t be an issue. From May to August I got intense days in my university (considering it was winter here) and this delayed me a lot. I need to thank to Federico again for his support as my mentor :) .

As for the 5 tasks I got, I only didn’t work in one (which was about reorganizing the developer area). Two of the tasks are ready to be deployed (the one to add support for translating the GNOME website and the other to have a new applications area), and the other two (the community website — which I must say it could be an entire Summer of Code project — and the template update for subdomains) are half-done.

I’m about to give more details about my nearly finished tasks and on deploying them in another post soon (like the new Damned Lies template above which is completely out of context in this post) basically because I’m catching a bigger fish right now. For the past month I’ve been working in my final paper for university. I’m finishing my bachelors in Design and this is consuming all my free time as I need to get it done in the beginning of December. The good part is that it is an analysis of the information architecture for the GNOME website!

And as part of my final paper study, I’m about to publish a user survey which might give me some data regarding how people use GNOME website and its services. Stay tuned!

Meanwhile, please be patient :) . Thank you!

22 de May de 2011

Meu ambiente de desenvolvimento em 7 itens

Resolvi participar deste meme e, aqui vai, meu ambiente de desenvolvimento em 7 itens:

1) Hardware e Sistema Operacional

Minha principalmente máquina para desenvolvimento é um Macbook Pro de 13 polegadas (modelo 2011), com 8GB de RAM, Intel Core i7 2.7Ghz e 256 GB SSD. Confesso que os 8GB de RAM não estão fazendo tanta diferença (utilizo bem menos que isso), mas o SSD faz milagres. Recomendo a todos que, assim que tiverem a oportunidade, substituam seus HDs por SSDs.

UPDATE: Muita gente me perguntou como consegui o SSD. Eu já comprei o Macbook com ele, na loja da Apple, com desconto para desenvolvedores. Na verdade, minha grande amiga e mac maníaca, Marília Guimarães, quem fez a compra nos EUA e o trouxe para cá. O desconto que a Apple dá para desenvolvedores é bem significativo (coisa de $250), mas exige que você tenha um endereço nos EUA. A vantagem de comprar o Macbook com SSD da própria Apple é que ele já vem com suporte a TRIM, o que melhora a vida útil do mesmo.

No Macbook rodo exclusivamente Mac OS X 10.6.8. Há alguns meses o Linux deixou de ser meu sistema operacional principal, apesar de continuar administrando diversos servidores (mas para isso preciso apenas de um Terminal :).

Quando estou desenvolvendo costumo ligar o macbook a um monitor externo de 22′. Programar com duas telas melhora bastante a produtividade, mesmo quando elas não possuem o mesmo tamanho.

2) Linguagens de Programação

Python é, provavelmente, a linguagem que mais utilizo. Escrevo ferramentas para Unix, utilitários no trabalho e estou portando todos meus scripts em bash para python. Entretanto, a cada dia que passa eu tenho programado mais em Objective C, pois tenho feito bastante coisa para iOS (iPhone e iPad). Acredito que em poucas semanas meus pontos na skill “Objective C” irão superar os da skill “Python”.

Também ainda programo um pouquinho em Bash, mantendo alguns scripts antigos.

3) Editores e IDEs

Minhas linhas de Python e Bash são praticamente todas feitas no Textmate, um fantástico editor para Mac OS X, cheio de atalhos e snippets que colocam sua produtividade lá em cima. Recentemente comecei a experimentar o Coda e o Espresso, pois o Textmate está sem atualizações há algum tempo.

Quando estou programando para iPhone e iPad (Objective C) eu sempre uso o Xcode. Não gosto muito dele, mas ainda é a melhor opção (se não for a única) para quem quer programar para estas plataformas.

4) Controle de Versão

No trabalho costumo usar o Git. Em projetos open source depende bastante do resto da equipe. Em alguns casos também uso o Git, hospedando no GitHub, mas em outros uso o Mercurial, hospedando no Google Code. Gosto muito de ambos.

5) Virtualização

Utilizo o Vmware Fusion para virtualizar outros sistemas operacionais quando preciso. Ele é muito bem integrado com o Mac e, sinceramente, não tenho nada a reclamar. Entretanto, minha necessidade de virtualizar algo está cada dia menor. Hoje tenho apenas uma VM para o Backtrack e outra com Cent OS.

6) Softwares

Os softwares que mais uso são:

  • Chrome: Na minha opinião, o melhor browser da atualidade. Leve, relativamente seguro e cheio de recursos. Faço questão de utilizar o build de desenvolvimento do Chrome que, apesar de ser considerado instável, me atende bem e permite que eu teste muitos recursos antes deles chegarem na versão estável.
  • Keynote: Ótimo para fazer apresentações para eventos, clientes e para a própria equipe. Deixa o PowerPoint no chinelo.
  • Adium: Sempre estou disponível no Gtalk e o Adium é um ótimo cliente para Mac.
  • PivotalTracker: Utilizamos SCRUM no trabalho e o PivotalTracker é um ótimo sistema para gerenciamento de tarefas, que se casa perfeitamente com o SCRUM.
  • Campfire: Quando a equipe toda precisa bater um papo online, nós utilizamos o campfire. Além do bate-papo, o sistema permite anexar arquivos e compartilhar códigos.
  • Git-Tower: uma ótima interface gráfica para gerenciamento de repositórios Git. Bonita, prática e funcional.
  • Ecoute: Não gosto do iTunes, então tive que procurar um bom player para o Mac. O Ecoute foi sugestão de um amigo e a escolha foi mais que certa. Possui os recursos que mais gosto como, por exemplo, lastfm, minimalismo, controle no desktop, capas etc.
  • Sparrow: Sou fanboy do Gmail e, quase sempre, o utilizo pela interface web mesmo. Ultimamente estou tentando utilizá-lo no desktop, para ver se tenho algum ganho de produtividade. Nestas ocasiões, uso o Sparrow Mail, o cliente para Mac que mais se aproxima da experiência real do Gmail.
  • Terminal: Vira e volta preciso fazer algo via linha de comando. Utilizo o próprio Terminal do Mac, mas com alguns recursos adicionais.
  • Things: Ótima ferramenta para gerenciamento de tarefas.
  • 1Password: Não dá para lembrar de todas as senhas, de todos os sites. Por isso, deixo o 1Password fazer o trabalho sujo para mim.

7) Música

Não dá para trabalhar sem música. Na verdade, eu conseguiria colocá-la em quase todos os momentos da minha vida. Prefiro escutar música com fones de ouvido, ao invés de som ambiente.

Só gosto do bom e velho Rock And Roll, Blues e Jazz. Led Zeppelin, Deep Purple, Pink Floyd, Black Sabbath, Beatles, Metallica, AC/DC, Neil Young, Creedence Clearwater Revival, Steve Ray Vaughan, BB King, ZZ Top e por aí vai. Axé, pagode e essas bandinhas emo, tipo NX Zero e Restart, são totalmente proibidas na playlist.

E seu ambiente de desenvolvimento, como é?

Agregador com blogs sobre desenvolvimento para iOS

Recentemente criei um agregador com diversos blogs sobre desenvolvimento para iOS.
 Criei dois, na verdade. Um com blogs em inglês e outro com blogs

A ideia é agregar os blogs como um todo, sem a censura bitolada que
outros agregadores de blogs usam para filtrar o conteúdo que é

Para participar do agregador não precisa falar apenas sobre
desenvolvimento para iOS, mas isto tem que ser o foco principal. Eu 
até aceito outros tipos de posts, já que há outros temas que podem nos
interessar (boas práticas, metodologia etc).

Gostaria de sugestões de blogs que podem ser adicionados ao planeta. Principalmente blogs nacionais.

15 de May de 2011

Minha primeira semana com o Xoom

Mensagens subliminares...

A pouco mais de uma semana estou usando o Xoom da Motorola, o primeiro tablet com o Android Honeycomb, e até o momento as impressões que tive são as melhores possiveis.

Desde de quando começou essa explosão de tablets,  sempre me perguntei duas coisas: para que eu teria um tablet e para que isso serve? A resposta para esses questionamentos estará no fim do post.

Logo que você liga o aparelho você tem uma pequena má surpresa, no modelo 3G ele requer um sim card para que você possa entrar no sistema, passado esse pequeno incomodo, logo você está configurando sua conta Google.

O xoom, como dito anteriormente, vem com o Android 3.0 e para quem está acostumado com o sistema Android logo percebe as diferenças, é uma interface bem diferente e com conceitos diferentes. O dispositivo não tem botões de navegação, ele tem apenas o botão de liga e desliga e os controles de volume, toda a navegação é feita por software na própria tela do Xoom.

Transição de tela

A primeira vista a transição de tela do Xoom é lenta ao se comparar com o Ipad, contudo, depois de muito pensar a respeito eu notei que o ambiente do Xoom é 3D e quando você vai mudar de ambiente ele gira o foco e renderiza os icones. Isso é o mais puro achismo e não tem o mínimo embasamento  técnico. De qualquer forma em qualquer programa a transição de telas no Xoom é rápida e suave.


O Xoom tem duas cameras, uma frontal para video chamadas e uma traseira para filmagens e fotos. As duas cameras me impressionaram bastante, mas a camera frontal numa chamada de video do Gtalk me surpreendeu.


Engraçado como ao ler reviews em alguns sites/blogs de tecnologia algo que sempre é colocado em evidencia, talvez por falta de imparcialidade e paixão pelo concorrente, é o fato de ter poucos aplicativos modificados/desenvolvidos para uma tela de 10.1 polegadas. Quando você começa a usar o xoom e instalar os aplicativos que você está acostumado a usar no seu celular, você não nota grandes diferenças ou impecilhos de uso. Por exemplo, uso o twicca que é um cliente para twitter e ele obviamente não é modificado para o tablet e simplesmente ele só amplia a experiência que eu tinha no celular.

As melhores surpresas no honeycomb são os apps do Gmail e Gtalk. A interface do Gmail para tablet é fantastica, dá até vontade de não usar mais a interface web ;) . O Gtalk como eu já disse, tem a capacidade de chat com video que é algo que sempre senti falta e o melhor, as chamadas podem ser feitas do xoom para qualquer outro device com Gtalk e suporte a video, sem restrições de sistema operacional!

Outro ponto forte, a Motorola antes de lançar o Xoom logo correu e fez diversas parcerias e assim é possivel ter app da Saraiva que te dá direito a 6 livros gratuitos, app da Folha e da Abril, entre outros. Eu não sou um grande fã da leitura digital, eu realmente gosto de ter o livro e le-lo da maneira que eu achar melhor. Lê no Xoom não é ruim, mas não chega a ser a experiencia mais agradavel e isso vale para qualquer tablet, o peso deles dependendo da posição gera um certo desconforto. Para leituras ocasionais acredito que ele se de muito bem.


O navegador é uma versão leve do chrome, que na pratica que dizer que você tem um browser normal no seu tablet apesar da maioria dos sites reconhece-lo como um navegador mobile, o que não é tão ruim, pois a leitura nas versões mobiles geralmente são melhores. Outro ponto forte é a possibilidade de sincronizar o chrome do Xoom, desse modo você tem um ambiente de navegação unico em todos os seus devices independente de sistema operacional.


Rá! Nenhuma até o momento, e olha que uso muito e já instalei tudo que é tranqueira nele.


O xoom americano tem software 100% Google, na pratica isso quer dizer que o Google é responsavel pelos updates. No Brasil, a Motorola usa uma room baseada na americana para atender as redes de telefonia 3G e talvez outras coisas mais. Em partes os donos do Xoom brasileiro precisam da motorola para terem versões atualizadas, na pratica isso pode ser um pouco diferente já que o bootloader do dispositivo é destravado…


A ideia aqui não era dar um review tecnico, as especificações estão por toda a internet, queria mesmo era passar um pouco da experiencia de uso.

Ainda continuo sem saber qual a utilidade de tablet, uma vez que ele faz um pouco de tudo. Acredito que o principal seja ter um ambiente, de certa forma ilimitado, a mão a qualquer momento.

Quer comprar um tablet, o Xoom é uma ótima opção e eu recomendo fortemente. Ótimo hardware e muito bom software fazem do Xoom de longe o melhor tablet que já tive contato.



07 de April de 2011

12 de March de 2011

Cheese 2.91.91 using Camerabin

In January I started changing Cheese to use Camerabin as its pipeline base. I blogged about it twice, but, in case you missed it or forgot everything about it, let me repeat myself: Camerabin is the high level GStreamer element that basically does what a camera does, that is, take pictures, record video and show preview. Since Cheese does all that and more, it makes sense to use this element instead of re-implementing it all. The news part is that this work is now in Cheese’s master branch and also in release 2.91.91.

There are some other things I haven’t posted about yet:

Event handling: There was a warning in Cheese after the change to Camerabin which said “Internal GStreamer error: clock problem“. Investigating that I discovered that it was a problem in the input-selector that Camerabin uses internally.

Right now Camerabin has a copy of input-selector, because it uses the “select-all” property that was removed from current input-selector. The problem was that the input-selector didn’t handle upstream events (from the sink to the source direction) when the input-selector had the “select-all” property set. Well, input-selector can have many inputs and choose among them, as you can guess from the name. So, when select-all is set you need to send the event to all of those inputs. Other than the warning, this actually has no effect in Cheese’s case, because the event that is not forwarded (a latency event) wouldn’t actually be handled by the elements that don’t get it. Even so, I submitted a patch which was committed to master branch of gst-plugins-bad.

Taking photo without saving: Cheese Camera has a method that takes a photo and then provides the picture as a GDK pixbuf without saving it. The api may not be the best and there were some nice comments on how to improve it, but at least in Cheese without Camerabin this worked and it was used inside of cheese-avatar-chooser. Well, I didn’t realize that before my last blog post about Camerabin, but this was totally broken in my Camerabin branch, in fact, I hadn’t implement it at all.

Camerabin can send a preview message after taking a photo if you set the preview-caps with the desired format for the preview. I thought using the preview message was the best way to implement cheese_camera_take_photo_pixbuf(). The problem is that Camerabin only took photos to save them too, meaning the file name of the photo to be saved had to be set. Right now Cheese works around that by setting the file name to /dev/null, but I also sent a patch to Camerabin to allow taking a picture without saving if preview-caps is set, meaning it won’t encode the image just to save it to /dev/null. I’m keeping the workaround for now, since the change wasn’t released yet, but we will be able to remove it in the future.

Many thanks to Thiago Santos, who held my hand when I met those and other problems in Camerabin and who always encourages me to fix stuff and send patches.

I’m very excited about this change in Cheese. I’m sure there will be bugs, but I think using Camerabin will make some improvements in Cheese easier and we will grow with Camerabin (and maybe Camerabin2 in the future) and also push it to be better.

02 de March de 2011

Terminator no GNOME

Sim, vamos falar de Terminator, e não, não estamos falando do Arnold ;)

O Terminator é um terminal simples e IMHO muito mais produtivo que os terminais mais comuns(gnome-terminal) ou mais alternativos(guake) encontrados para GNOME.

O principal recurso, que o diferencia dos outros, é o fator de poder dividir e sub-dividir a janela em pequenos terminais. Usando um monitor grande, ele é praticamente a ultima coca-cola do deserto!

Quando você abre o terminal a tela dele é comum

Com essa tela aberta você trata-la como um gnome-terminal e abrir abas com um simples Ctrl+t . Mas nossa ideia é aproveitar as funções de divisão de telas. Então com um Ctrl+shift+e você divide a tela verticalmente como mostrado abaixo.

Com essa tela eu geralmente movo o foco para o terminal da esquerda, você pode navegar entre terminais tanto clicando neles ou com ALT+seta direcional, e a divido-a horizontalmente com Ctrl+shift+o.  Essa é a minha tela padrão de trabalho. Uso o terminal comprido para atividades que requerem uma tela mais extensa e as menores para conexões locais e ssh usando screen(falarei mais e mostrarei dicas e meu arquivo de configuração no proximo post).

Em qualquer um dos terminais você pode maximiza-lo para preencher a tela inteira com um simples Ctrl+shift+x.

Esse é o modo em que eu o uso, eu já tentei faze-lo salvar esse estado mas não consegui e pela mais pura preguiça não tentei mais ou mesmo alterei o Terminator para fazer isso. Se você o usa, ou começou a usar agora por causa do post, conte aqui como é a sua configuração ideal de tela.

Você encontra o Terminator nos melhores repositórios da sua distro favorita. :)

Atualização: o Vitor deixou a dica aqui nos comentários de como fazer para salvar as configurações do Terminator, testei aqui e funcionou bem ;)

20 de February de 2011

My GTK3 porting story

It is now possible to run Cheese using GTK+ 3 getting it from Cheese’s branch gtk3.

Cheese has a gtk3 branch for a while, but until very recently it only had one patch changing mostly versions in configure.ac. Then Bastien Nocera made 3 more patches changing code of CheeseWidget, CheeseFlash and um-crop-area. I wanted to use the changes, and silly me, I thought the branch was going to compile when I first tried to run it. It turns out that I spent days on it until it finally compiled and then a little more time before I was able to run it.

Most of the changes were on build system and Cheese’s vala code. I have never programmed in vala before, so this was a learning opportunity with some challenges in the way.

Funny story

Cheese was still using libunique-1.0, but in order to work with gtk3 I would have to switch to libunique-3.0. There was no vala binding for libunique 3, but I also hadn’t found one for clutter-gtk-1.0 and I was using the GObject Instrospection one instead and it seemed to work at the time.

Using gir files didn’t work so well with libunique. Vala was loading the right gir file, but it said the namespace “Unique” did not exist. So, I asked for help on the #vala channel. The first piece of advice was to switch to GApplication instead of using libunique, but I didn’t know how hard that would be and I wanted to understand why I was unable to use libunique-3.0 first. With some more help from someone else in the #vala channel I found out that the Unique-3.0.gir file had the wrong package name on it. As I didn’t know how to fix that and I didn’t even know if it was a problem in libunique or a GObject Introspection parsing problem I asked for help in #introspection.

In the #introspection channel, Emmanuele Bassi (ebassi) was the one that helped me, libunique’s maintainer. Isn’t it nice when that happens? I mean, you’re just asking for anyone less clueless than you to help, but you can actually talk with people that work on what you’re using. Anyway, continuing with the long story, ebassi told me the problem was in libunique, that he wouldn’t work on it soon, but he encouraged me to file a bug for it and I did. It turned out that the bug was easy to fix (for him at least) and something like 15 mins later he had fixed it and pushed it to master already. That was a nice surprise!

But my problems didn’t end there. After I fixed some GObject Introspection annotation in libunique for my code to work, valac started to crash with a segfault. I reported it, but I still don’t know what the exact problem was. The only way I found to fix it was to switch to GtkApplication and stop using libunique. If only I had listened to that first advice! Using clutter-gtk with GObject Introspection did not work in the end either, but turns out I was just missing the recently released vala binding for it.

I learned many things on this quest. I had never looked at gir files or vapi files before and I learned a little trying to debug and fix problems. The non-technical lessons were: it’s really painful to use stuff that is new and not widely used (yet?), you will find problems. But it’s also very nice to be able to fix the problems and work with helpful people.

By the way, to share my love for GNOME I’m organizing a GNOME 3.0 Release party in my town – Belo Horizonte, Brazil. So, if you’re in the area, save April 9th and get in touch if you want to help with organization.

Update: Patricia Santana Cruz had already made a patch to port Cheese to Gtk.Application (which is also way better than mine), so if I was any smarter I wouldn’t have half of the work I did. And now I know she is also one of the responsibles for we having the clutter-gtk-1.0 binding for vala too and she is working on some more bugs in vala and going after the warnings that affects Cheese. In short, she is awesome!

27 de October de 2010

Listadmin: Administrando as filas do mailman de forma rápida e simples

Além de fazer parte do Sysadmin Team do GNOME também colaboro com o Moderator Team. Esta equipe de 02 pessoas é responsável por moderar todas as 250 listas existentes no Projeto GNOME. Até pouquissimo tempo este trabalho ultra-chato era feito através do ambiente de gerência Web, só que as coisas estão mudando. Christer Edwards, atual […]

09 de October de 2010

Palestras no IV ENSL e participação na H2HC Conference

Em novembro participarei de 02 grandes eventos. Iniciando com o IV ENSL e o VII Fórum Gnome dias 05 e 06 em Natal/RN onde farei 02 palestras. No VII Fórum Gnome que ocorrerá no IV ENSL o tema será “Por trás da Infra-estrutura do GNOME: Trabalho para Sysadmins”, nesta apresentação vou mostrar como funciona a […]

18 de February de 2010

Blog sobre Saúde da Família

Os leitores mais antigos devem lembrar que sou médico de família e comunidade, e que já publiquei um artigo sobre a estratégia Saúde da Família no Kanzler Melo Psicologia, um blog mantido pelo tradutor do GNOME e psicólogo Vladimir Melo e sua esposa. Há poucas semanas assumi a manutenção do Planeta Saúde Brasil, criado pelo mesmo Vladimir Melo, e no embalo dei início a um projeto de muito tempo, que é meu blog sobre saúde, o Doutor Leonardo.

Enquanto o blog que você está lendo agora é voltado para entusiastas do software livre, o Doutor Leonardo é voltado para quem não é profissional da saúde, ou pelo menos não com nível superior na área. A missão do Doutor Leonardo é contribuir para a que as pessoas possam cuidar melhor da própria saúde (ou da saúde de seus parentes), ou administrar melhor as eventuais doenças de forma que não interfiram no dia-a-dia. Os assuntos vão desde estilo de vida saudável até políticas públicas de saúde, sem esquecer de comentar notícias relevantes na área da saúde.

16 de February de 2010

Últimos acontecimentos

Pois é... faz tempo que não blogo :-( . O final de 2009 e começo de 2010 foi bastante corrido: tive que terminar meu trabalho de conclusão de curso e comecei a trabalhar. Mas agora as coisas já estão mais calmas.

Finalmente me formei. Agora posso me declarar cientista da computação e já estou aprovado no mestrado, que começa mês que vem. Minha colação de grau foi na quarta feira e agora fico no aguardo da colação de gala, na qual irão meus familiares e amigos.

Em dezembro comecei a trabalhar. Estou trabalhando na agência de publicidade Sabbre fazendo o desenvolvimento de aplicações web com Ruby on Rails. Um trabalho que tem me dado motivos para gostar do que faço e que me tem feito aprender muitas coisas.

Infelizmente, tive que abrir mão de algumas coisas, principalmente de software livre. Saí da equipe de desenvolvimento do archlinux Brasil, pois não estava conseguindo tempo para me dedicar. Como não gosto de assumir compromissos que não posso cumprir, eu acabei optando por sair. Desejo boa sorte e muito sucesso a todas as pessoas que continuam por lá. Continuo agora só gerenciando a equipe de tradução do GNOME, que aliás já está em pleno ritmo de tradução para o GNOME 2.30.


04 de February de 2010

Portugal define data para Acordo Ortográfico da Língua Portuguesa

Em 2008 o governo português tinha aprovado o Acordo Ortográfico da Língua Portuguesa com seu Segundo Protocolo Modificativo, e após uma audiência pública o Parlamento Português ratificou a aprovação. A questão era quando o acordo seria implementado. Pois bem, a nova ortografia começou a valer em Portugal neste ano, e até 2016 o país terá uma transição igual à brasileira, em que ambas ortografias são consideradas corretas.

Mais ainda, a Lusa, única agência de notícias de âmbito nacional em Portugal, adotou o Acordo Ortográfico. Na sequência, o semanário Sol adotou o acordo, bem como o jornal Barlavento e os jornais Expresso e Diário Econômico. O primeiro veículo de notícias a adotar o Acordo Ortográfico em Portugal foi provavelmente O Despertar, em janeiro de 2009!

De acordo com o professor Carlos Reis, a adoção do Acordo Ortográfico da Língua Portuguesa pelos meios de comunicação é importante para a língua portugesa.

21 de December de 2009

Barcelona campeão mundial

Parabéns ao Barcelona pelo título conquistado. Eu cheguei a pensar que daria Estudiantes.

Enquanto eles comemoram o primeiro título, lembro que já conquistamos três vezes (inclusive uma delas contra eles).

Um fato que eu não sabia e agora sei é que no mesmo ano da disputa ganhamos outro título (do Torneio Teresa Herrera) contra eles. E de 4 a 1!!! Na época o Barcelona era bem "maior do mundo" do que é hoje.

Saudações tricolores!

31 de October de 2009


Semana passada fui no Latinoware e foi bastante interessante. Lá palestrei sobre nossa equipe de tradução do GNOME e tive algumas experiências interessantes:

  • Foi bacana rever alguns e conhecer boa parte do pessoal do GNOME Brasil. Espero vê-los mais vezes;
  • Também revi o Farid, que trabalha comigo no Archlinux Brasil, ficamos de conversar mais como acabei não podendo ir no último dia devido ao atraso do motorista que ia buscar a gente no Paraguay, não conversamos :-( ;
  • As palestras também foram legais: o Lício falou sobre o GNOME Love, eu falei sobre a equipe de tradução do GNOME para nosso idioma, o Binhara falou sobre o Mono, a Izabel e a Luciana falaram sobre o GNOME Women (eu infelizmente perdi essa palestra :-( ), o Vinicius Depizzol falou sobre a experiência do usuário no GNOME e para finalizar o Tiago falou sobre personalização do GNOME. Um ótimo conjunto de palestras :-) ;
  • Foi legal discutir coisas, tanto técnicas como não técnicas, com as outras pessoas do GNOME e de outros projetos como o Fedora. Aliás esses eventos acabam proporcionando trocas de experiências que contribuem em muito com os projetos de SL. Aliás isso é uma das coisas mais importantes de eventos como esses e tenho que ser bastante grato à Fundação GNOME por me patrocinar e ter a oportunidade de fazer coisas como essa, além de poder participar do evento e conhecer mais pessoas;
  • Depois de assistir uma palestra interessante sobre o Mono com o Binhara e depois de ouvir o Everaldo falar horas e horas disso, fiquei com vontade de aprender a programar nesse ambiente;
  • Conversei com o João Sebastião sobre como podemos fazer a adequação do GNOME para a nova ortografia. Para corrigir algumas coisas nas versões antigas ele fez um script que pode ser bastante útil para agilizar nosso trabalho. Próximos capítulos desta trama serão divulgados aqui neste blog em breve ;-) ;
  • Conheci o Paraguay, e embora este país tenha muitos produtos interessantes a venda ele tem a pior poluição visual que já vi;
  • Não consegui ver as cataratas, aliás faltou tempo para isso :-( ;
  • Minha palestra não teve um grande público, mas acho que deu para passar a mensagem da equipe. O pdf aparecerá em breve por aqui;
  • Foz do Iguaçu é uma cidade bastante esquisita: lá é úmido pra caramba, escurece bem tarde e isso me faz perder a noção do tempo;
  • Não gostei muito de comida Baiana. Tem muita cebola. E eu odeio cebola. Aliás, a coisa que menos comi lá foi comida paranaense;
  • A organização do Latinoware também deixou muito a desejar, já fui em eventos mais bem organizados e acho que o Latinoware também podia ser;
  • Agradeço a fundação GNOME por me patrocinar, ao Leonardo por me indicar para palestrar e a Izabel, que correu atrás de tudo por lá (aliás, depois que organizei junto com amigos a ida do pessoal da minha faculdade pro FISL, aprendi a agradecer as pessoas que fazem acontecer);

É isso aí :-) Que o próximo evento venha logo e que eu tenha a oportunidade de vê-los em breve.

UPDATE:Aqui vão os slides.


10 de June de 2007

Violent swerves in life

One day, you’re writing code, packaging and translating it, administering systems and giving talks about free software. The next day, you realise you want to go to Law school.

It does not feel any different from starting all over. Fortunately, it feels like it is soon enough.

23 de September de 2006

Thanks, Murphy!

So yeah… I guess I’ll have to take back what I said about clearing the accounts backlog until the end of the weekend, even though I’ve already gone through more than half of it.

Why? Quite simple. My hard disk finally died, after a couple of months spitting out I/O errors and corrupting filesystems all around.

Oh well…