Moving to the new flat took longer than expected. But I think the extra time was worth it. The whole flat and my room look pretty nice and comfortable now. Most things are organized, only for the party on friday there is some planing left to do . Internet is still an issue after two weeks of having (almost) no internet-access. Currently we are using the neighbours WLAN until our ISP is done with installing the new connection.
The Southside festival was great too. Radiohead and Sigur Ros, yeah! Tegan and Sara were also amazing. Looking back I would say it was one of the best music festivals I’ve been to so far.
Nevertheless, being away for two weeks kept me slightly behind my schedule. Version 0.1 is ready but not released, because of organizational reasons. In the meantime I’m already working on v0.2.
Last week I finished the foundation of libsoylent. That basically means I thought in greater detail of the architecture (see below), designed the needed GObject classes and made stubs for most functions and methods. From now on there should be a release every week, and a solid foundation will help a lot.
The libsoylent architecture as shown in the diagram: SlBook is the addressbook where people (SlPerson) and groups (SlGroup) are stored. People and Groups are entities (i.e. objects with attributes that can be modified etc.). SlEntities are backed by SlEntityHandlers. For SlPerson there will be an EDS-handler and for SlGroup a file-handler. More handlers can easily be added (if needed).
The storage of attributes (SlAttribute) is managed by attribute-handlers (SlAttributeHandler). They are responsible to convert runtime-values to values that can be stored by the entity-handlers (e.g. a SlAddress C-struct to a VCard-string for EDS).
If you have any thoughts on the architecture I’d be glad to hear them. This week I will have more time and work on people, group and addressbook management. And of course on the first release .
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 .
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:
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!