Category Archives: General

Open Academy and KDE

It has been a while that I don’t write here but I thought this subject was worth it 🙂

Open source is a huge part of Facebook engineering. Whether we’re building new data infrastructure tools like Corona and Presto to manage our warehouses on Hadoop, releasing a new mobile build tool like Buck, or improving PHP runtime with HHVM, open source projects are integral to our operations.

The hypothesis Facebook is exploring with Open Academy (I love the fact that we have Akademy already :P)  is that the best way to learn about software engineering is to do software engineering. As simple as that sounds, we have not traditionally done a good job with this in academia. CS departments may provide a project experience as part of the curriculum, but it typically does not map well to a real world software engineering experience. Facebook and the partner universities wants to do better.

To help bridge this gap between school and industry, last spring Facebook teamed up with Jay Borenstein, a computer science professor at Stanford, to launch Open Academy. Open Academy is a program designed to provide a practical, applied software engineering experience as part of a university student’s CS education. The program works closely with key faculty members at top CS universities to launch a course that matches students with active open source projects and mentors and allows them to receive academic credit for their contributions to the open source code base.

The idea is that partnering with selected open source projects holds a great deal of promise on a number of levels; it will give students exposure to learning how to come up to speed in an established code base, revision control, project estimation and access to examples of good software engineering practices beyond what we are able to provide inside university walls, among many other things.

One question that might be on top of your mind is: “how is this different than Google Summer of Code?” One key difference is the tight integration with universities. Facebook OpenAcademy runs as a university course offering for which a student receives a grade and academic credit. It also allows the university teaching staff to stay very involved and work in tandem with the open source mentors to give students good support for their software development efforts. Another difference is the team element. This course offering partners students from around the globe on teams that work together, which IMHO is exactly the way KDE works.

In a nutshell, the program works like this:

  • A student team of 3-8 students, potentially spanning multiple universities, is formed
  • A matching process is run that puts a student team with an open source project
  • The team and a “mentor” from the open source project are flown to a location for a weekend ramp up hackathon (the location is Facebook headquarters in Menlo Park, CA). The students can work on improving the project in two ways: by knocking out low hanging fruit issues that already exist or by identifying and pursuing new functionality
  • The students will work on projects for between 8-20 weeks depending upon the schedules of the universities involved Univerisity faculty will be closely involved and consult with the mentor when determining final student grades. Expectations will be set with the students that states the coding contributions they make – the quality and ambition of them – will be the main factor determining their grade
  • Start date: January-Feb depending on university
  • Feb 7-9 Hackathon at Facebook Headquarters in Menlo Park, CA
  • Midterm Acknowledgment (tbd)
  • End date: Mar – Jun depending on university

Summary of expectations for mentors:

  • Attend Kickoff Hackathon at Facebook HQ Feb 7-9, 2014 (your flight and hotel will be paid for)
  • Meet the students working on your project(s)
  • Help the students select project goals and develop plans to achieve them
  • Set expectations for how you like to communicate with the team
  • Be responsive to requests from the team during the course
  • As often as possible, attend weekly, 30 minute remote team meetings (IRC, Hangout or equivalent)
  • Be prepared to provide the course instructor with a grade recommendation at the end of the course.
  • Overall time comittment: You are obviously in control of this and it is also proportional to the number of students you decide to have, but not counting the hackathon, 3-5 hours per week is our expectation

I am asking every interested mentor to fill in project proposals here: . I am excited that KDE can have some slots in this program and as with every other program out there that brings students to open source I am sure KDE is the best place for a student to learn more about software engineering.

If you have questions, feel free to email me.

Big changes!

After 5 wonderful years working with passionate and skilled people I am now moving to SĂŁo Paulo to work at Facebook’s office for Latin America. My official role will be Partner Engineer.

This doesn’t mean that I will go away from KDE, neither from Qt. It just means that I will contribute more on my free time (as it was before Nokia acquired Trolltech) than during working hours.

I am thrilled with this opportunity and I am sure that all of you who know me are also happy with this announcement.

I will be a little bit offline the next days due to my move, but I will be checking emails regularly 🙂


Back to life!

I am back from my honeymoon and I’m starting to organize my life again!

Incredible Circus

Meanwhile, we finally released a game that I’m really proud that is called “Incredible Circus”. It’s the kind of game that is really addictive :). In three weeks we achieved 200k downloads on Nokia Store and today is available for the N9. It’s also a really good showcase for Qt. If you have a Symbian^3 or MeeGo device, just follow the link to try the game.

You can also check it out on the video below.

Apart from that, I’m updating my machine and as soon as I have a developer environment again I’ll start hacking on Plasma again. Probably fixing some bugs, right Aaron? 😉

It has been a while

It has been a while since my last post and a lot happened in the meantime. Just to point a few (in no special order):

  • 11th February for Nokia;
  • Tokamak;
  • GSoC;
  • Qt Contributor Summit;
  • Qt Open Governance announced;
  • Desktop Summit;
  • Release of N9;
  • Google acquired Motorola;
  • Plasma Active;
  • Netflix in Brazil;
  • Use of Tiny Tiny RSS (my share feed)
  • …(many other stuff!)

The sad part though is that I haven’t been able to contribute much code to KDE lately. Next month I’m getting married and as you can probably guess, there is a lot of planning going on (and we can’t forget the famous “bridezilla” effect that usually happens with girls before weddings 😛

On the bright side I’ve been working on awesome projects, trying to eat our own dog food (mainly QML). With these projects we are feeling the pieces of Qt/QML that needs some love and we plan that for the next year we will be able to help the Qt Project to solve these small issues that you can only find when you develop real world applications and not developer/designer-wanna-be demos 😉

IMHO that’s one of the skills that is hard to find today on framework developers: most of them didn’t contribute much to KDE in the last years nor developed real applications. Because of this sometimes it gets harder for them to understand a use case or a “complain” about the technology they develop. I hope that with open governance we can get more help about this (and also use more the rule of the “3 examples” before adding new APIs).

I’ve been following closely the development of Plasma Active and the rest of KDE. I still have one item on my TODO list (related to one of our scripts that get the content of qml files that need translation) that I promised to tsdgeos that I would fix ASAP but I just didn’t have the time unfortunately 🙁 . November seems the month that I will be able to get back to KDE development (after the honeymoon!!).

Well, I think that’s it. I just wanted to make a simple blog post and update my KDE friends 🙂

kdeplasma-addons is on git too

Today we finally converted kdeplasma-addons to git 🙂 The rules itself were written some time ago and we waited for the conversion of kdelibs and kdebase. Thanks to eean I found a last minute problem on the rules and today we fixed that!

Picture by The Rocketeer

Picture by The Rocketeer

You can find kdeplasma-addons on and you can easily clone the repo using:

git clone kde:kdeplasma-addons

Assuming that you did the trick below in your ~/.gitconfig file:

[url “git://”]
insteadOf = kde:
[url “ssh://”]
pushInsteadOf = kde:

I have been working with git for almost four years now and I used a lot of tools to create projects and help with visualizing repositories. With ReviewBoard and RedMine all integrated, the commit mails, integration with BKO and other features (a lot of them were already present with svn) I can say that KDE’s git infrastructure is one of the most complete and professional that I’ve ever seen. It’s really very “PRO” and I would love to have any of our sysadmins working on my IT department. Guys, you really rock! (besides doing an amazing work).

I think that it’s fair also to thank KO that sponsored Ian to work and do the conversions of kdelibs and kdebase. This was not an easy job and it’s really a pain to do the conversion *right*. Of course we may find some rough edges right now as we still need to get used to new workflows and new tools but IMHO we will overcome that and soon we will feel the benefits of git 😉

Small update for ‘share’ dataengine

Invest in sharing! by Toban Black

Invest in sharing! by Toban Black

Following the awesome work done by our sysadmins, I implemented a backend for the share data engine that supports the use of KDE’s official pastebin service: .

This way people using trunk will already have this support upstream and people using earlier versions (which includes 4.6 !) can also use the script provided by Andrea Scarpino thanks to the brand new Get Hot New Stuff support that I integrated into the Pastebin applet for 4.6 🙂


Today I also signed up to Flattr, in order to test this micropayment service that sounds like a great idea to donate small amounts to people that do great work and create awesome content. I must say that I signed up after wanting to Flattr the work done by Lydia (aka Nightrose) and Tom Albers (aka toma).

Of course I don’t expect to earn a lot of money this way, but It’s awesome to be able to help some great workers and also add the possibility of earning a little bit of money, specially in the year of your wedding 😉

KDE Mobile Sprint and MeeGo

Yep, I didn’t blog about MeeGo Conference yet. But come on, a lot happened during the last few days 😛 I barely had time to sleep really well (those that know me can tell histories about my sleep-walking and sleep-talking hehe).

However, just to keep everybody updated before I do a full post or read an article on the dot here it is a simple video that means a lot!

Basically we put Plasma mobile to run on top of MeeGo and thanks to a lot of Marco’s work we already supported screen rotation! Besides the “fail” that drivers don’t properly report that the screen is being rotated on this device, pressing some keys we can make the view rotate and then comes the magic 😀

Of course we also put the Plasma netbook to run on the device but the mobile one was really nice to play with our hands 🙂 Keep your eyes on the Planet as I think more people have news to share 😉

More about the sprint and the conference after the break 😛

Sharing articles using Akregator

A month ago I integrated into Akregator the “share” feature that uses Plasma’s microblog service to help you to share news with your friends using the microblog services ( and twitter). The good thing about using is that all your data belong to you 😉 and you can easily replicate your posts to twitter too. Another place where is better than twitter is that it provides RSS feeds for all kind of information.

You may be asking yourself: “why the heck is this useful?”. The answer is: everytime you share some article on Akregator it publishes the title of the article, the link to the article and put’s a tag “#share”. This way you can use the tag feed to retrieve the news that your friends are sharing: just add the RSS feed to your feed reader and voilĂ  😀 This provides a feature that looks like the one that Google Reader provides, but in completely open environment!

If you are interested in reading my shares, just add this to your reader: .

I’m on vacations so it has been hard to keep doing any development as I’m busy traveling with my fiance 😉 but I can post about some stuff that I’ve been developing before my vacations!

See you!

I am part of the game!

There are several ways of being part of the KDE game: you can develop, translate, be an artist, help users, take care of our infrastructure, organize developer sprints. A lot of ways right? But some people just lack the time to join the game in any of the areas that I just listed but still want to contribute in some way to the project.

Join the Game

The “Join the Game” campaign was launched to create another way of contributing to the project: you donate some money to the project in order to help organizing developer sprints, to represent KDE on conference and trade shows, maintaining the current infrastructure and help the e.V. to legally represent the project in different manners.

As soon as the campaign was launched I wanted to be part of it too because I know how hard it is to sponsor all the activities that we have and how important the activities are. Some weeks after joining the game I received this awesome gift from the KDE e.V. It came in a simple box and when I opened I could find a blue box (no, it’s not a T.A.R.D.I.S. :P) and a letter.

It was really a nice emotion to read the letter that was sent to me, signed by the president of the KDE e.V. (really signed, not that image of the signature that organizations usually use). Opening the blue box another surprise: a nice silver card with my name, the KDE e.V. logo and the number of my membership: 0006! It was a surprise and I am very very happy to be an early adopter of this! And the cherry of this awesome cake: a playing piece (the same that you see on the posters), made of wood and with the KDE logo painted on it and also my membership number. Just great! Congratulations to everybody involved on this campaign! Check below some pictures:

The Letter - really signed

You can see the KDE logo in the center of the box

What you see when you open the box

Membership card

The Membership card

Playing Piece - front

Playing Piece - back

And you? What are you waiting for? Help KDE and be part of it: Join the Game!

Updates on Plasma land!

During the first semester of this year I’ve been playing with the idea of creating a “Share” dataengine that would support scriptable plugins. This idea came from the fact that there were a lot of hacks on the pastebin dataengine that at the time were the only “fast” solutions to the problems I was facing. I was also motivated by the amount of bugs/wishes on bko regarding new services.

I started to hack on this new dataengine and now it’s ready! Since some weeks ago I moved from kdereview to kdebase and now you can write plugins for your favourite services using any of the scripting languages that Kross supports today. Later I will enable GHNS on the pastebin applet so if you have a special service that you want to write a plugin you don’t have to wait for a KDE release (that’s what happened with the old dataengine), you will just write it using JavaScript/Python/Ruby/etc and upload to . Neat! 😀 I hope that a lot of users will use this feature and that this dataengine will be specially useful for mobile devices.

To complete the cycle, yesterday I finished the port of the pastebin applet to use the new dataengine and I advice everyone out there that is using the “pastebin dataengine” (I really don’t think there is anybody, but….) to change your plasmoid to use the new one. People running trunk are already experiencing the new dataengine 🙂 Ah, almost forgot: now it supports remote files because I use KIO for all the file operations. So just grab your samba/nfs/webdav files and share them using your favourite text/image service!

Playing with dataengines I started to hack on another topic: sharing of articles on Akregator. I started to feel too much dependent on Google’s infrastructure and decided to move some of my stuff “out of the cloud”. I started with Google Reader and put all my feeds on Akregator. Kudos for Google for allowing me to export my list of feeds and kudos to Akregator that imports the file. Everybody is happy and Google is not evil trying to hold my data.

The next step was the “share” feature of Google Reader that I like very very much. First, to read my friend’s shares I could just get the URL from their “details” on Google Reader and put the URL on Akregator. Kudos for Google again for using rss feeds into this “share feature”. It made my life easier and I could subscribe to my friend’s shared items.

The missing bit was my shares! How could I share with my friends articles that I wanted? I started playing with Plasma’s  Microblog dataengine and successfully started sharing articles using my microblog account on Thanks to the shares also went to my twitter and could also go to facebook!!!!! When I shared an article it made a post with the title of the article plus the URL to access the article and the tag “#share”. People interested in reading my shares can subscribe to my dents or tweets or go to or even subscribe to on their feed readers. did a great job here providing feeds for everything. I couldn’t find the feeds for my tags on tweeter but maybe it was just me lacking knowledge. By the way, thanks to Lydia for helping me to figure out this URLs. I couldn’t have done without her hehe 😛

Update: to have feeds synced between my different computers I’m using automated scripts with unison. Every time I login and logout unison syncs the feeds with a server. So I just need to login on a different computer of mine and I have the same “status” for my feeds.

Right now I started to move all the code to a proper Akregator plugin and I hope that soon it’s finished and merged into trunk so everybody can enjoy this feature!

As I was playing with dataengines I decided to fix some bugs on the weather dataengine as one of my friends (Aloisio) just migrated to KDE and faced this annoying bugs related to network and retrieval of the weather. There were a lot of small issues here and there but at the end of the day (after a lot of hours hacking and not so much lines of code =/) I could fix the problems and some others that I found on the way.

Summary: 5 pastebin bugs/wishes closed + 3 bug fixes on weather that were not reported yet (I couldn’t find them at least).

Busy, busy, busy day!!

Next post: a little surprise that I received for joining the game 😉