Hi there! I'm Gabriel Poesia, a Brazilian Computer Science undergraduate student beginning a journey in free software and competing in programming contests. It's the first time I post to a blog. I'm starting to write this one to:
- Describe my first steps in contributing to free software, namely KDE and Nepomuk,
- Write about interesting computational problems and algorithms, mainly those related to programming contests, like ICPC and TopCoder,
- Write more! I rarely write in English when not programming, and I think it's a good opportunity to practice it.
For these three reasons, I'm sure this blog will be useful to me. I'd be happy if anyone else could benefit from it. I'll try to write here twice a week.
So, where did this idea come from? I thought it was already time to give something back to the free software community. We all use lots of free software, directly or indirectly. Just to start, even if the browser you're using to read this post isn't free software, you probably found this page using Google, which internally uses a lot of FOSS.
If you try to measure how your life is affected by the free software movement as a whole, you rapidly realize it's impossible to contribute back in the same amount. In spite of that, we can do something (little, but still something) to help.
Gratitude is already a nice reason to contribute, but there are tons more. For instance, it's an invaluable opportunity to learn about API design, large software release cycles, real-world technologies and also, as an ICPC contestant, apply non-trivial algorithms to real problems. Additionally, you get to know very experienced and knowledgeable developers from all over the world, and make something that impacts many users.
Nepomuk, the project in which I'm starting to get involved, has all of that. It's a framework that intends to provide the whole KDE Desktop with metadata and a powerful search that goes way beyond file names. That means it interacts with many others projects, and thus needs to offer a very well designed API. Also, given the amount of information we have in our hard disks, it needs to handle large sets of information efficiently, and as seamless as possible in the user's point of view, as you don't want a slow browser because there's something indexing your files.
If that's not enough, it also utilizes many technologies that will probably be everywhere in the future: ontologies. If you've heard of the Semantic Web before, then you have a pretty good idea of what's the philosophy behind Nepomuk, but targeting the desktop. And the Semantic Web is based on ontologies and file formats like RDF. And so is Nepomuk.
That seems enough for a first post. In the next ones, I want to talk a little more about my first steps in Nepomuk. This week, I managed to get a commit pushed for the first time. I'd find it very nice if more "first commits" from other people appear after this one :)