Bye bye Google+
Update to EuropeanWafaa
Status ownCloud Desktop Syncing
It has been a busy week where I was working on the ownCloud Desktop sync client. As described in my last post this will be based on a csync module to handle ownCloud as well as mirall, a Qt based desktop client to sync.
That involved basically three things: A csync module, a patch in ownCloud and work on mirall.
For csync, there needs to be a module that handles the connection to ownCloud, for code see [1]. ownCloud has a WebDAV interface, and its used for this. Csync requires the the implementation of a couple of POSIX functions such as opendir, readdir, closedir, stat and these kind of things. I did that using WebDAV equivalents.
Unfortunately one method is needed for the sync algorithms which has no equivalent in WebDAV, which is utime. utime sets the modification time of a file. csync needs that to fix the time after a file was copied to the other side. For that, I made a little patch to ownCloud to allow a PROPPATCH method on the modified time of a resource. That makes csync happy and working, but that also means that the module is not a general csync webdav module but a csync owncloud module. Named it accordingly.
The first action I started on mirall this time is a bit cleanup. First, I introduced a class to move all the code which loads, edits and monitors the folders out of the main application class, which was long overdue. That separates the sync folder management in mirall from the GUI stuff. Furthermore I added a few helper classes such as a config file class for mirall. Ah yes, a theming class was also added to handle the future two faces character of mirall easily, as said before mirall should either appear as traditional mirall client, or as ownCloud client. Duncan and me agreed to build that from one source, the theming class supports that.
Last but not least I polished the wizard in which a user connects to his ownCloud and added a test call that immediately evaluates the url and credentials. For the curious, the code is in my work repository but I promise to move it to the ownCloud repo on gitorious soon.
So far for now, if you have suggestions for me I’d love to hear them. Thanks :-)
Announce: Linux Desktop Testing Project (LDTP) 2.3.0 released
YaST++: next step in system management
All of you probably know YaST, the installation and system configuration tool for openSUSE.
With current YaST, plenty of tasks that system administrator could image are doable using understandable UI: creating users, bootloader configuration, network setup and even Apache configuration. However, it has its drabacks. While being do-it-all tool, it comes with large package dependency even for only simple tasks. It is largely written in an outdated language which has its roots in last century and only few people in the world know it. It lacks the testing abilities of modern languages. It is SUSE specific and lacks larger developer community.
So last year, we (actually, Josef) came with the idea for YaST++: new configuration library that could be a common layer for configuration tools in SUSE (and beyond). Such library should provide simple and understandable API for all tools around. Written in up-to-date language many people know and like, so they can join the development (spoiler: we chose Ruby). Offering bindings to various other languages, so different tools could benefit from it,
Now, this “YaST++” does not actually mean to be replacement of current YaST (with its Qt/GTK/ncurses UI), but it could replace the lower layer of YaST, which is doing the real system configuration. And it would be open for other library users as well: the obvious targets for now are WebYaST and SUSE Studio, but we’d like to see if other tools are interested: even from non-SUSE world.
From architecture point, YaST++ is itself divided into two layers, we call them YLib and config agents. YLib is the high-level library, providing the API (like ‘create user’, ‘set new time zone’ etc.). Config agents form the lower layer, that is actually touching the system. This low level consits of D-BUS services, which are running as a root (thus have the full access to the system) but are started only for users with proper permissions (we are using polkit for policies definition). So YaST++ offers role based access management, where specific users can be allowed to do specific sets of actions. For more, check our architecture document (still WIP).
We’ve started to work on several modules (none of them is finished, though). Let’s look at example in module for users configuration (packages yast++lib-users and config_agent-passwd). Look at example code in ‘users_read’ script of examples subdirectory. With simple ruby call of
YLib::Users::read({})
you get the list of current users. If the script gets additional parameters, it can list e.g. all data about selected user, or only specific information about all:
> ./users_read root
{“gid”=>”0”, “name”=>”root”, “uid”=>”0”, “shell”=>”/bin/bash”, “password”=>”x”, “home”=>”/root”}> ./users_read only name
{“result”=>[“Batch jobs daemon”, “User for Avahi”, “bin”, “Daemon”, “dnsmasq”, “FTP account”, “Games account”, “User for haldaemon”, “User for OpenLDAP”, “LightDM daemon”, “Printing daemon”, “Mailer daemon”, “Manual pages viewer”, “User for D-Bus”, “MySQL database admin”, “News system”, “user for nginx”, “nobody”, “NTP daemon”, “User for build service backend”, “openslp daemon”, “PolicyKit”, “Postfix Daemon”, “PulseAudio daemon”, “qemu user”, “Router ADVertisement Daemon for”, “root”, “RealtimeKit”, “Smart Card Reader”, “user for smolt”, “SSH daemon”, “NFS statd daemon”, “Novell Customer Center User”, “TFTP account”, “usbmuxd daemon”, “Unix-to-Unix CoPy system”, “WWW daemon apache”, “User for YaST-Webservice”, “LXDE Display Manager daemon”]}
YaST++ developement is in its early stage (even the name is not final), but we already have something to offer.
Check the code and documentation at github project. There’s already a simple tutorial for those who want to try writing new parts.
Download packages from Build Service project.
Comment/propose/oppose in public YaST mailing list.
openSUSE Travel Support Program is on
I'm proud to announce the official kickoff of the openSUSE Travel Support Program. This program will provide openSUSE contributors with some financial support for traveling to conferences and events where they represent openSUSE.
The openSUSE Travel Support Program aims to support contributors representing openSUSE at events, conferences and hack-fests with their travel and hotel costs.
The Current Committee are:
We look forward to doing this! If you have any questions, you can bring it up at the next openSUSE Project meeting (Wednesday 22) or email us directly.
Have Fun
Kostas 'Warlordfff' Koudaras
SUSEStudio as a tool for master thesis
In some of them we've used SUSEStudio in order to build LiveCDs as a demonstration of their work. It has been a very useful tool and I am sure we'll be using it on the next semesters.
This is the list of the projects that we've used susestudio:
Eucalyptus migration
This project deals with all life cycle phases in a migration project of a Data Center to IAAS (Infrastructure as a Service). The chosen solution was Eucalyptus, an open source software. In practice it involved the creation of a Live CD to display this technology, it was developed with SuseStudio and published in SuseGallery.
SLES securization
This project shows how to securize sles and how to create a livecd with suse studio with this securization.
Study and implementation of a cybercoffe with free software
This project shows how to build a cybercoffe by using free software. Different appliances are made with susestudio.
Next semester is about to start. Students will be choosing their projects during the first week of March. As I am responsible for proposing projects (that they may or may not choose), any ideas will be very welcome.
Meet the Hackers
This past week, I've started to get back into photography a bit more (thanks, Nina!) and started taking my camera into the office with me every day to remind myself to take photos. As a result, I've taken a bunch of photographs of my co-workers in the office.
Would you like to meet the hackers?
The Founders
Most of you would probably recognize the infamous Miguel de Icaza, Xamarin's CTO:
Next up is our very own Steve Jobs, Nat Friedman, our CEO and the man who reminds us to pay attention to the details:
Another person many of you will recognize is our very own COO, Joseph Hill:
MonoDevelop Team
Well, okay, I've only got a photo of the famous Michael Hutchinson, but he's a very important player in the development of MonoDevelop.
QA Team
Next up, we have the QA team. They do their best to make sure that we, the developers, didn't break anything. When they aren't testing a specific application before a launch, they hammer away at our products and try to find weak spots in our code (but we still love them anyway!)
This is PJ, and as you can see, he's demonstrating how to QA popcorn corn cobs:
(Did it pass the test, PJ?)
Next up is Lindsey. She's been working on writing automated tests to make it less likely for releases to include regressions. Let's hope she's successful!
Release Team
Alex Corrado is the man behind the curtain. He's our head Release Team engineer and also the brilliant mastermind that started CXXI, the Mono C++ interop project that we hope to give him time to finish someday soon.
Web Team
The newest addition to our ranks (just this week, in fact!), but long-time contributor to the Mono project, is Bojan Rajković. You can see we've already put him to work (he is no doubt puzzling over some ASP.NET code on his screen).
Documentation Team
Nina is the only Cambridge resident on our Docs Team. Specifically, she hacks on our Documentation Portal. She's also the one who has encouraged me to get back into taking photographs, so she'll have to put up with me using her as a guinea pig the most. Here she is taunting me with her hot cup of Chaider:
German labelings of birthdays in KOrganizer
I can see that it is a birthday due to the candle-symbol (yes, that is not a battery symbol) and the colour of the item (calendar colour). (I think the english version is "%name's birthday" where "birthday" is cut away when the text is too long.)
So I filed a bugreport but it seems to be more difficult to get a real good solution for that. However the text is changed (thank you Frederik) in the next version.
I didn't want to wait that long and Burkhard was so kind to give me a howto so I could change it on my local machine. I want to share that with anyone who wants to change that, too (it seems to be a problem in other languages as well). This howto is for openSUSE but you should change that easily to your distro of choise.
0) install package gettext-tools
1) msgunfmt /usr/share/locale/de/LC_MESSAGES/akonadi_birthdays_resource.mo >/tmp/akonadi_birthdays_resource.po
2) edit /tmp/akonadi_birthdays_resource.po
Change "Geburtstag von %1" to "%1 (Geburtstag)"
[shortcuts: i = edit esc = exit edit :wq = save and exit] or use "kwrite" instead of "edit"
3) sudo msgfmt /tmp/akonadi_birthdays_resource.po -o /usr/share/locale/de/LC_MESSAGES /akonadi_birthdays_resource.mo
It takes a view minutes until the titles will be changed.
FOSDEM Aftermath.
First off, i would like to thank the FOSDEM organizers and the ULB. The already unique event that is FOSDEM just keeps getting better and better. Pascal & friends: congratulations, like every year, you've outdone yourselves.
Secondly, i would like to thank all the speakers in my devroom. It is clear by now why the first-come-first-serve algorithm has to be used, and it is also clear that it is working. But thank you all for making this a successful event (even Chris, who couldn't make it due to a train derailment). I hope you guys had a lot of fun too, both during your talk and with the rest of FOSDEM.
Lastly, to all those who attended my talk (and those who couldn't get in anymore as well): Thank you all for your very positive feedback. No matter what happens with lima in future, this talk will be the most memorable moment. (oh, and a big thanks to Will Stephenson, from SuSE and KDE, for getting a webcam up that quickly). To whoever shouted something along the lines of "we don't see that, it looks like a perfect cube to us" when the caching went off in the rotating cube hack: this is the open source spirit in its most tangible form. Thank you very much.
To end this post, let me plug the lima website again. We also have a mailinglist and the #lima channel on freenode. The limare code has been available since yesterday night. Heise and lwn posted the story already, and the videos from the FOSDEM talk should soon hit phoronix as well.

