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
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!
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)!.
Yesterday I stumbled upon CallTrack. Calltrack is an android program than monitors your calls (incoming, outgoing and missed calls) and adds them as events to one of your google calendars.
I have been looking for a program that can do this for some time now and I have to say it works like a charm. It does not show up in the android market for me but installing it directly from asterdroidmobile did the trick, and so far it has been running for > 24 hour without any problems.
You can export your call history so that you do not just start logging from when you installed the program.
So if you like to keep track of yourself and want to know who you called when. Give it a try!
I think the diaspora project is a fail, and judging from the messages posted around the web I am not the only one thinking this. However the idea of distributed social media is still very appealing to me. So here are just some things I am thinking about and who know maybe I (or somebody else) will eventually do something with it .
Public & Private streams
Most people using social media do not mind sharing certain information. Take for example sharing of news items, most people probably wouldn’t mind if others could “follow” them and also get the news. Or you could be a private person and only want to share data with your friends, or you could be a journalist wanting to share everything you post.
In my view these are two distinct things and should be treated as such. Private streams allow for pushing content, or some sort of publish-subscribe mechanism. While public streams are more suited to be served on a location and then pulled by anyone who wants it. One could even consider sharing a public stream as a static file (in for example json format) and just updating this as one posts something to the stream. Etag checking would then avoid unnecessary transfer and otherwise the webserver is just serving a static file which is cheap.
Private streams on the other hand would benefit from a publish-subscribe approach since that would require minimal data transfer and people would get the data as soon as it is available. However a side effect of the publish-subscribe mechanism is that the publishing peer has to keep track of send data (and is that really what you want?). However this could be simply solved by each peer keeping a list of last update (unix timestamp anyone) of all his peers and then do some communication once a peer comes online or when an update is posted and decide what to communicate.
Specify the communication not the implementation
Keeping the open spirit the communication should be specified and not the implementation. Many people do not want to (or can’t) run RoR however anything that can be implemented in RoR can also be implemented in an other language. When specifying the communication anyone can implement it, be it in RoR, php, C, asembly whatever…
The whole idea of distributed social media is that you are in control of your data. So you probably do not want to send your (private) stuff in plain text over the internet. So it makes sense to use some sort of encryption to transfer the data. However that does not quaranty privacy. A lot of people do not have their own server running, and probably a lot of peers will be hosted on the same server. Now would you want the hosting company to be able to read all your private data? Of course not!
So the data should also be encrypted on your peer. GPG encryption could do this. That only on a host where you have your private key that you can decrypt the messages. Now I do understand that this brings certain complications. Then I would only be able to read messages on my laptop, in order to read (or send) messages on my phone I would need to copy my private key to my phone, which might not be what you want.
Another down side of this approach is that you can’t view or send messages when you are at someone else’s computer…
You could of course store your private key on the machine that hosts your peer instance but then anyone that could read your key (sysadmin or even more people due to a potential security bug) could get their hands on your private key, which is certainly not what you want.
Anyone else any idea’s on distributed social media?
Yesterday my good old HP Deskjet 5440 died on me But after almost 4 years of great service it was his time. I needed to print something so I went and bought a new printer. The shiny HP Deskjet 3050, it is a so called “All-in-one”… which basically means I can copy at home now Now the printer is equipped with wifi ( I did not really care about that but since it has wifi I will of course use it )
Installing the printer on my girlfriends windows machine was relatively straight forward, but I still do not uderstand why I would need a 50mb download for some printer drivers?
Installing on my laptop was also made easy thanks to hplip. However I could not print! My cups log had the following message:
Which is not that clear at all. Enabling debug loglevel in cups did not make things any clearer. After a lot of googling I found someone suggesting to install avahi. Which indeed is the solution!
So now I am happily printing! And will not try to get scanning up and running
In order to further comply to the Web 2.0 I now linked my twitter account to my blog (or vise versa). There now is a twitter widget (on the right) which shows my latest tweets. Don’t really know the use of this but it didn’t look to bad and follows the css rules pretty well. The other thing is that every time I blog (once every two months) this a tweet is send automatically.
Well I hope you are as excited as I am about this
P.s. The site also had a wordpress upgrade (finally on 3.x) and as a bonus I also upgraded the theme to a new version
Long story short I now have a separate partition for portage (not my distfiles) on my laptop with a block size of 1KiB. This results in a portage tree that is only less than half the size of the previous portage tree! I have not done any timing measurements but it also seems that syncing the portage tree is now much faster! So if you have your portage tree on a separate partition (or want to play with resize2fs) why not change the block size to 1KiB?
According to the statistics many of you use my bash.org rss feed. The traffic generated by this feed has grown over the last year and right now it is around 70% of the total traffic of this website (around 600MB a month).
Just out of principle this is a bit much for a RSS feed so I decided to move the feed to feedburner. Thanks to a .htaccess rule the feed is already forwarded. This means that current subscribers to the feed should not notice anything