Now that edgy has been frozen for the beta release in a week’s time, and the next developer summit, where the plans for the next release will be discussed, has been announced, I think it’s the perfect time to start thinking about the kinds of features we want to see in that release.
At our recent sprint in Wiesbaden, Mark reminded us that when Ubuntu first released we were leading the field in many of the components we installed by default. Many users came to us because we provided Linux 2.6, hotplug/udev and Project Utopia by default; along with the latest GNOME release and development framework. Now everybody does that, butwe led the way.
With the dapper release, we produced something that could be supported for a long time. With edgy we’ve scratched our itches and fixed things under the hood that have been causing us problems. edgy+1 seems a good time to integrate the hottest new technologies and lead the way again.
So what do I think is exciting, and what do I want in edgy+1?
telepathy, farsight and galago
Anybody who has used the 2006 software release for the Nokia 770 Internet Tablet will have seen these in action already.
They’re, in my opinion, some of the most exciting projects currently being worked on; and ripe for integration into Ubuntu.
Telepathy is a communication framework built on DBus that allows any application to establish communication with users all around the world, using any protocol from IRC to MSN to VoIP.
It uses Farsight to provide the codecs and protocol support on top of the GStreamer media framework.
And Galago glues it all together; providing presence information about contacts and allowing users to specify their own status.

This means that you’ll be able to contact your contacts. Your calendar alarm tells you that it’s a colleague’s birthday, you’d be able to click their name and see a selection of different ways that you can contact that person right now. From e-mail, opening an MSN or Jabber window or even establishing a VoIP or SIP call to them.
The most exciting thing is that because every application on the desktop has easy access to this, people are coming up with fantastic ideas for using it!
zeroconf
By this, I mean zero configuration networking. Something the OLPC project appears to be going to do very well indeed.
Where no existing network infrastructure exists, your computer should still be able to communicate with other nearby computers. It should use ad-hoc wireless networks, link-local IP addresses and server-free DNS resolution with libnss-mdns.
Play games with your friends on the train without touching a button. Chat with other people in a lecture hall or at a conference where the existing network is unavailable. Hassle-free home and office networking without any complicated set up.
Networking that “just works”.
avahi
Whether your computer is on an infrastructure or ad-hoc network, it should be able to locate resources on the network and share its own to other people.
Avahi allows applications to, via DBus, do this by using a mulicast form of DNS; compatible with Apple’s Bonjour protocol.
The immediately obvious benefits of this are that one can locate such things as file servers without any complicated directory; more fun things can be done too, such as sharing your music from RhythmBox with other users on the network.
Combine it with telepathy, etc. and you can establish communication with anyone else, with a wide range of different protocols.
The immediate problem here is that we currently have a “no open ports” policy, which if we’re going to give the users the opportunity to establish ad-hoc networks is almost certainly a very good thing. We already have exceptions for that policy for DNS and DHCP, it may be that Avahi (mDNS) joins that list. Another option is a “mobile-phone like” interface for enabling and disabling discovery and sharing.
Bluetooth
I don’t think we should stop discovery and sharing at 802.* networking either. Linux actually has a pretty decent bluetooth stack, it’s something that we should start taking advantage of.
Your computer should be able to discover paired or known bluetooth devices when in range without intervention and communicate with them.
If I attempt to establish a network connection, and my phone is nearby, that should be offered as a method for getting on the Internet. If possible, it should also be offered through telepathy as a method for contacting people in my address book!
Synchronisation
These technologies together give us a really big possibility, automatic synchronisation of user’s information.
When I bring my laptop home, it should automatically update my desktop with any changes I’ve made to my address book or calendar, and any shared files, etc.
Likewise it should be automatically be updated with any changes made on the network, to a company address book on a server, for example.
And why stop there? Don’t use share your music, synchronise it so that your laptop, desktop and iPod have the same selection available at all times.
Hassle-free backups is an obvious win here.
But we’re stopping again. Why is my mobile phone, and PDA excluded from this? Via bluetooth, my address book and calendar should be automatically updated from these and these should be automatically updated themselves.
If I add a new number to my phone’s memory, it should appear in my computer address book; and my computer should offer me the ability to contact that person (using VoIP, for example).