I started working on support for the facebook message system. Which turned out to be easy enough to do. And the messages branch in git should just give you a nice list of messages to read! There is a lot of room for improvement with respect to syncing the messages or maybe even replying to the messages. One of the awesome things that is in there right now is the automatic threading by kmail, which is just a simple matter of setting a the right reference and all is done automagically.
Right now there we first want to get out a 0.1 release before we will merge the message branch. So a little patience (or checkout the message branch).
Since Thomas and I decided we would like to release a 0.1 version as quickly as possible we started to work on getting the code in decent shape. Which basically means documenting, code refactoring etc. Not always the most exciting work but the code today is already is much better shape (and much easier to understand/extend) than it was last weekend. Which should make fixing bugs and adding/extending features a lot easier!
As a result of this we now also have our own api reference. Now the refactoring process is not yet finished but already we can see nice graphs there. Also the awesome KDE look really motivated me to document more since it will look so cool afterwards!
What is next?
So hopefully we will finish with the polishing and the remaining 0.1 items on the TODO soon so we can make a release. And after that we will continue to try to add more cool features of course!
First of all: Hello Planet KDE!
Last week I read the post by Thomas about Facebook support in KDEPIM. Which is of course awesome to have and is something that has been on my TODO list for some time now. And well since Thomas started it all it is a great way for me to get involved in KDE and to learn how to deal with akonadi.
All my work (be it in separate branches) is already available in the project repository. Thomas will probably try to merge them this weekend but you can of course already check them out for all the new cool stuff.
What did I work on
I started working on note support, so have your notes on facebook available in akonadi and thus in KJots. And this all works out very nice. One of the side effects is that in facebook you can have images in your notes which is not properly supported in KJots.
After retrieving notes I figured it would be awesome to be able to add, delete and modify notes. Adding a new note or deleting a note turned out to be easy to do, however as far as I know facebook does not allow you (yet?) to modify notes trough the Graph API. Which is to bad since that would make notes support complete.
We now have a list of participants attached to events. Also the status of the participant is set correctly (attending, declined etc). Which of course is cool to have. Right now events are still read-only but the API actually allows for setting your RSVP status etc so it would only be “logical” to have support for setting that.
Parallel photo fetch
Up until now all the friends were retrieved and then after that all the photo’s were downloaded one after the other. A simple patch now fires them all off and just waits for them to complete. Which is a lot faster, especially if you have a lot of facebook friends!
There is room for some refactoring which would get rid of some duplicated code and would make extending KFacebook even easier. So I guess that needs to be done first.
Other than that I planet to start working on getting your facebook messages into Akonadi. First only as read-only but hopefully we can soon extend that. Other than that there is more than enough work to do in order to get out a 0.1 release
And now on to some more coding!
Yesterday evening, at a friend birthdayparty, I had an interesting discussion with some people about GPG keysinging (you know the usual birthday-talk-stuff). And the main questions was `why do we do “official” ID verification for the web of trust?` A GPG key contains too little information to make chekking against a government ID usefull. There are many many people with the same name so the only thing you actually verify is the name on this ID matches the name of the identities that I am signing, but that is not really what you are interested in for the web of trust. Since can’t I be part of the web of trust if I have a nickname listed as my identity? Or what if the name of the identity is Joe but the name of the ID is Joseph? The thing we really want to establish in the web of trust is to know that the key that you sign actually belongs to the person that claims that it is his key.
The solution we came up with is actually very simple and already possible with GPG anyway. You attach a photo to your public key! This ways if you (in person) claim that the key belongs to you (you say the fingerprint is correct or whatever) the person that wants to sign your key can check (live) to see if the photo attached to the key is really you. Of course this will require yout to update the photo every once in a while. And well since you only have your private key (or at least I hope that is the case) you are the only person that can add (or replace) the photo in your key.
A nice side effect is that you don’t have to show your ID to a lot of people (which could be a problem to some).
I can’t really think of any reason (right now) why this would be less secure than checkking an official ID. But maybe someone can?
Over the last week I have been reading up on xmpp, I started out with reading two RFC’s: 3920 and 3921. These gave me a more in depth understanding of xmpp. However I am mostly interested in the publish/subscribe extension for xmpp (XEP-0060).
Publish/subscribe can be used for a lot more (see XEP-0163) but one of the most logical implementations to start with would be publish/subscribe as a rss-polling replacement. Right now a lot of people get updates for a website via an aggregator, this basically works by fetching an rss or atom file on a given interval and then parsing the result. Lets say your interval is 1 hour, then a worst case senario would be that you get the update 59 minutes later than it is published. A “solution” would be to set the interval to 1 minute. However this creates unessesarry bandwidth (and load) to the server.
For all this publish-subscribe seems to be the solution. The best way to see it is as a one-way chat. When a news items (or blog post or whatever) is post an item is published to a node. That node then sends out the notification to all subscribed clients. It is clean and simple (for a more in depth explanation you should read the XEP or google a bit!).
Now it would be awesome to see this implemented in some aggregator (especially Akregator since I am a kde-man), of course that would have to be done in such a way that I can use my existing JID (Jabber-ID) but that it does not appear online or receives other messages.
I think a good way to start is for me just to check-out the sources of Akregator, yet another project
I was looking around in the world of QR Code today and found that you can share your WiFi (SSID, password and network type) via a QR code! It works flawless on android and probably also on other platforms. Will safe me a lot of time to tell people the password every time!
- Go to a QR code generator site (I used this one“).
- Choose “WiFi Network for Android” from the drop down list.
- Fill in you network details and export (to SVG of course since vector graphics rule!).
- Print the code and put it on the refrigerator or something .
- Let your friends scan the code.
Awesome stuff those QR codes!
This year I will be attending FOSDEM! Together with Sander and Daan I will be in Brussel from Saturday morning till Sunday evening! I am very excited and really looking forward to all the talks and discussion with everyone!
See you all at FOSDEM!
Yesterday I had some time to kill so I decided to look around for an android upgrade for my HTC Tattoo. HTC only provides (and supports) android 1.6 for the Tattoo, which feels a bit outdated. I like to run a little more up to date OS
The downside of this upgrade is that the FM and camera are no longer working. The FM is a sad thing (but hey I still have my rockbox-enabled-ipod) but the camera is something I can live with, since well it made crappy pictures anyway!
But other than some things not working I am very pleased with android 2.2.1 it runs smooth and after installing all the apps (and some new onces) my phone feels up to date again!
As some of you might have guessed I am quite fond of social media. Thus yesterday (and this morning) I decided to add two more social media to the list The first is libre.fm, an alternative for last.fm but completely open and nice WebID integration! It is a lot less complete and has less features than last.fm but the I am just a sucker for open software and the change to help build an open music library is awesome!
Thanks to mpdscribble it is only 4 lines to scrobble to both last.fm and libre.fm!
The other more open project of the week is status.net. Open microblogging, and it is the software behind identi.ca. I have a personal setup which can also be used by the rest of the family (if they ever choce to) but which can communicate fine with other status.net instances.
A bridge to twitter has been setup so I can keep using that but just use my status.net clients. And one of the best features is that I can post and read posts via XMPP (Jabber)!.