Category Archives: en

libsoylent API draft and schedule

Finally the libsoylent API draft is available. After another week of discussion, I think it covers most of the functionallity the API should provide and also some interesting background information and implementation detail. I’m really looking forward to comments, ideas, suggestions for improvement and also criticism :) .

Last week, besides enhancing the libsoylent API draft, I also focused on two other things: creating a detailed schedule for the rest of GSoC and getting my hands dirty with coding.

Some implemented things already work: creating addressbooks and also listing all available addressbooks. I mostly found out how to do this with libebook by digging through the Evolution source; really a huge codebase. Furthermore I refactored the little libsoylent test “suite” to better work with make check and added some tests for SlBook.

For the schedule I wrote down the tasks that have to be done for libsoylent, developed a roadmap including milestones and releases and planed when what functionally should be implemented. The schedule is available here.

The next one or two weeks I will be very busy (as you can see in my schedule). Tomorrow I’m going to the Southside music festival for 4 days, and after that I will move to my new flat share, what will probably take about a week. Luckily I started early with GSoC and will have much time after the current university term is over :) .

Designing an API

Last week I put all my effort in the libsoylent API. I started thinking about the API design weeks ago, but now I gathered all my notes and assembled them into one big document, made some diagrams and worked out the API in more detail. The person and the addressbook objects are mostly done, while groups still need a bit of work. All in all it seems like a good base to get started. Currently me and my mentor are discussing the whole draft, and I will publish the API as soon as we are done.

After I had a feeling that the API looked solid enough, I started to get my hands on the “base-code” of libsoylent, i.e. adding the main classes and GObject stuff and making everything compile and work with stubs. I also added a simple “test-suite” that can easily be extended to test certain functionality of libsoylent.

libsoylent is in the Soylent SVN trunk. If you’re interested, you can check it out at:

http://svn.gnome.org/svn/soylent/trunk/

and build it with:

./configure –enable-libsoylent=yes && make

This week we also received a patch from Gilles Dartiguelongue that fixed some issues with the autotools configuration of Soylent / libsoylent. That was the first patch for me to apply (yeah ^^).

In the end something off-topic. After weeks and months of searching for a new flat (it’s not easy in Erlangen, I can tell…) for me, my girlfriend and a good friend of mine, we finally found a new home. Today we signed the lease contract. So, in three weeks I will post from a new flat. Nice! :)

Diving into Soylent (and Gnome)

As this is my first post on Planet Gnome (and also Planet SoC by the way) I’d like to take the chance to introduce myself: I’m Sven Pfaller, a 21-year-old computer science student from Erlangen (near Nürnberg), Germany. In the scope of this years’ Google Summer of Code I work on Soylent, more precisely on libsoylent, a library that will try to integrate people deeper into the (Gnome) desktop. If you want to know more about the project, you can have a look at a previous blog post I have written some time ago. So, hello everyone, nice to be here :) .

The last 6 weeks…
… or “the community-bonding-period”

So, what happened the last weeks? I was busy learning many things, digging through tutorials and writing some sample programs. I’ve put together a list of all tutorials and documentation I studied so far. The first items on the list I found really usefull for entering and exploring Gnome:

Much stuff, isn’t it? The sample programs I wrote include a simple GTK+ GUI, a GObject based mini-game, D-Bus and libebook utilities, and ChabChab, a command-line instant messanger. I am amazed of the capabilities of the Telepathy / Mission Control / Empathy trio, as I was able to write a solid IM in almost no time.

live and in action

Last week…
… or “the start”

With all the things listed above I felt well prepared. After adjusting the SVN repository’s autotools to include libsoylent (outch, pain!) and carefully going through the complete existing Soylent code, I started to write down my thoughts about the libsoylent API. Presumably a first public draft will be available by the end of this week.

There’s still much to do and I am slightly behind my schedule, so I better get going ;) .

GSoC 2008 Application – Accepted!

With a delay of about one hour, the results for GSoC were announced on Monday. At 21:42 a mail from Google landed in my inbox. Subject: “Congratulations!”. My proposal was accepted!

Before going into detail about the proposal, I wanted to thank Travis Reitter, my mentor in this year’s GSoC. He was a great support the last weeks, it was a pleasure and fun to work with him and certainly will be this summer. I’d also like to thank Rainer Müller, Christian Rieß and Karolina Osietzki for proof-reading and constructive criticism on the proposal.

So what is it all about? I applied to GNOME, more exactly to the Soylent Project. Let the abstract of my proposal describe it:

Communication is one of the most important parts of human life. In recent times computers and software made it not only easier to communicate, but helped to create new dimensions of interaction. Whether it’s email, chatting, voice or video, social platforms or blogs, everyone communicates somehow. This is an exciting development. But it is also a challenge for existing desktop systems to better integrate these new technologies. This is where Soylent comes in.

The Soylent Project is an attempt to really make people a part of the Gnome Desktop. Therefore it will provide a library, called libsoylent, that can be used by Gnome applications to have easy access to people-centric functionality. This includes system-wide access to contacts and groups, aggregating and managing individuals’ static information (e.g. name) and dynamic information (e.g. whether he / she is online) and much more.

I’ve created a diagram that shows the components and structure of Soylent:

Soylent components

More information is available in the full application.

This summer I will work on the people framework, namely libsoylent. This includes creating a convinient API, implementing the library and adjusting Soylent to use libsoylent.

For now there is still some organizing left to do before I can dive right into Soylent. I’ll keep the GSoC Soylent Roadmap page up-to-date.

Congratulations to everyone who was also accepted. I’m sure this will be a great summer :) !