Author Archives: Dan Siemon

RedHat summit videos

Red Hat has posted videos of the keynotes from the Red Hat summit in Nashville. So far, I have only watched two of the three videos. Both were excellent.

Eben Moglen: Discusses the philosophical and political ideas behind free software. He argues that free software is about allowing individual creativity. If you don’t ‘get’ free software you need to watch this speech.

Cory Doctorow: Provides a bit of history on copyright change and how the incumbent industries always try to stop progress. Lots of good DRM discussion as well.

There is no future in which bits will be harder to copy than they are today … Any business model that based on the idea that bits will be harder to copy is doomed. [Cory Doctorow (2006 RedHat summit in Nashville)]

I found both of these speeches to be inspiring. Free software is the start of a wider revolution. As Moglen says in his keynote (paraphrasing), it is an incredible privilege to live through a revolution.

A Broadband Utopia

A Broadband Utopia from IEEE Spectrum describes how a few municipalities in Utah joined together to build the high speed Internet infrastructure that for-profit telecommunication companies were not willing to. This article is definitely worth the somewhat long read. Several good points are made. The physical network duplication between the phone and cable companies is very expensive. The analogy given in the article is that this duplication is similar to every airline building its own airport instead of sharing the costs. I also find the argument that public Internet infrastructure opens up the market to new entrants very compelling. Competition is a good thing. Customers using the public network described in this article have their choice of companies offering TV, Internet, phone and other network services.

Fishburn says that the Utopia design makes it easy for every high school to have, in effect, its own TV station. “And not just the school,” he says. “Why not every high school student?”

Extra, Extra – Read All About It: Nearly All Binary Searches and Mergesorts are Broken

If you follow many software or computer science related blogs you may have already seen the article linked below. I’m going to link to it again anyway because everyone who is involved in software should read it.

Extra, Extra – Read All About It: Nearly All Binary Searches and Mergesorts are Broken

The general lesson that I take away from this bug is humility: It is hard to write even the smallest piece of code correctly, and our whole world runs on big, complex pieces of code.

Dispatches

CBC has recently made some of its excellent radio programming available as podcasts. You can see the list of podcasts here.

Of particular note is Dispatches. This program offers short radio documentaries from reporters all over the world. The perspectives offered in these documentaries form a sharp contrast with the simplistic reporting that usually constitutes news.

Operating system design

The following article offers a nice introduction to some design techniques that may be used to create more reliable operating systems.

Nevertheless, it is interesting to note that microkernels long discarded as unacceptable because of their lower performance compared with monolithic kernels might be making a comeback due to their potentially higher reliability, which many people now regard as more important than performance. The wheel of reincarnation has turned.

Can We Make Operating Systems Reliable and Secure? by Andrew S. Tanenbaum

Jabber/XMPP pubsub

Most people who know about Jabber/XMPP think of it as an instant messaging platform. Of course, that is the primary use for Jabber at present but that may not always be the case.

The Jabber/XMPP network forms an XML based overlay network. Each message or packet of information carried by this overlay network is an XML stanza. You can think of Jabber servers as being XML routers and the clients as end nodes. In fact, the instant messaging portions of the XMPP standards are defined in a separate RFC from the core XML streaming technology (RFC 3920, RFC 3921).

One example of a non-IM use of Jabber is defined in JEP-0072: SOAP over XMPP. This document specifies how SOAP, which is normally used with HTTP to form web services, can be carried on top of Jabber/XMPP.

Another interesting non-IM use of Jabber comes from JEP-0060: Publish-Subscribe (aka pubsub). Pubsub is basically an event notification system that runs on top of Jabber/XMPP. In pubsub, a user publishes some XML data to a Jabber server which supports JEP-0060. Other users are then able to “subscribe” to this node. Whenever the node changes, a notification will be sent to all subscribed users.

There are lots of interesting things that could be done with pubsub. Off hand, here are a few of examples:

  • You want to checkout a book from the local Library. Unfortunately, someone else already has the book. In order to find out when the book has been returned, you subscribe to the node that represents that book on the library’s pubsub server. Once the book is returned you will know instantly.
  • You plan on purchasing a large, expensive TV in the near future. Rather than manually looking at the websites for several major retailers every few days, you subscribe to the pubsub node at each retailer for the particular TV model you are interested in. If any of the retailers have a sale, you find out instantly.
  • If like many people you use a RSS reader to keep up with new posts on your favourite blogs, you know that RSS readers periodically poll all feeds on your list. Often there are no new posts and this polling is a waste of resources. Instead, a pubsub enabled blog could notify interested readers of a new post. Not only do you find out about the new post sooner, network resources are saved.

In all of the above examples, subscribing to the particular pubsub node could be as simple as clicking on a link (JEP-0147: XMPP URI Scheme Query Components).

Also interesting is JEP-0163: Personal Eventing Protocol which defines a subset of the full pubsub (JEP-0060) specification which can be used for simpler instant messaging related tasks such as providing current geographic location information (JEP-0080: User Geolocation) or providing contacts with information about the music you are currently listening too (JEP-0118: User Tune).

It will be interesting to see how pubsub will be integrated into other network applications such as RSS readers and Jabber IM clients. It seems likely that pubsub notifications will be handled either by a Jabber client separate from the one that is used for IM or at least the Jabber IM client will have to distinguish these events from normal IM traffic.

For a nice overview of pubsub (with pretty pictures) see Jive Software: All About Pubsub.