Cycling through Switzerland

It’s hard to believe, but only two years ago, around this time, I had just finished school and had the whole summer for myself to enjoy and do whatever I pleased. I ended up cycling to Italy with my good friend Adam (@adsized). Because my memories of the trip are slowly fading, I am going to try and document it here in the hope of being able to read it even years from now.

We departed from where I used to live in Kortenberg. We got on a train to Aachen where we crashed at Niklas’ (@salkinium) place for the night. The next morning, we continued our journey by train and headed down to Karlsruhe. Even though I had already decided that I would study computer science there, it was my first time visiting the city. We did a bit of sightseeing and I submitted some documents to the Studienbüro at the university and before we knew it, the day had gone by.

Day 1: Freiburg - Mulhouse

We got off the train at Freiburg and started cycling. We crossed the border at Neuenburg and headed towards Mulhouse. Somehow, we managed to get lost (we didn’t have a map…), but in the end we managed to find a campsite very close to the city, Camping de l’Ill. The next problem we faced that we didn’t remember to buy anything to eat and we couldn’t be bothered to cycle all the way into the city. We ended up spending far too much money at McDonalds. It was delicious.

Day 2: Mulhouse - Liestal

After packing up our stuff, we headed into the city with the goal of buying a map. We found none that fit our needs, but we did find a wonderfully old-school cafe where we had a wonderful goat cheese crêpe for breakfast. We headed south towards Basel, following the Rhine but staying on the French side all the way. I met a cyclist who scammed me by selling me his map of the Rhine cycling route for a scandalous 4€. He had travelled all the way from Rotterdam to Basel and was now on his way back to Germany, probably to go home by train. We had coffee in Basel and then continued southwards. We stopped for the night at a small campsite near Bubendorf, just south of Liestal.

Day 3: Liestal - Solothurn

When we woke up the next day it was raining buckets. Still, we had no choice but to continue our journey southward. As we did not have a map (an iPod touch with a few low-resolution OpenStreetMap tiles doesn’t count), we were surprised to learn that we had to climb to reach Solothurn. Crawling up the mountain in the pouring rain was tedious, but the satisfaction after having reached the top was well worth it.

But the satisfaction didn’t last very long. Moments after the picture above was taken, I noticed that the cassette hat detached from my rear wheel. Luckily, it was all downhill from thereon (literally!) and I found a bike shop near Balsthal. After having installed a new cassette, the mechanic laughed at my worn-out brakes and hopelessly run-down chain. I figured that working breaks would be a great idea for the rest of our journey, so he replaced both the brakes and the chain for me as well.

We stayed at the TCS campsite in Solothurn for the night. In the evening, each of us blew around 15€ on pizza, which was absolutely worth its money. We also saw a very special tent on the campsite, built exclusively from trash!

Day 4: Solothurn - Lake Murten

In a rather uneventful day of cycling we continued through the moderately hilly landscape until we reached Lake Murten. Unfortunately, all we could find was a rather unpleasant campsite at at the southern end of the lake. We were hungry, so we decided to cycle to the nearby city of Avenches, but unfortunately all it had to offer were a few shady bars and an upper-class restaurant. We ended up buying bread and cheese at a gas station and calling it a night.

Day 5: Lake Murten - Chatel-Saint-Denis

The next morning we went into Friburg to find a decent supermarket to restock or food supplies. We found one and, while we were at it, also purchased some ice cream for immediate consumption.

We followed to southbound motorway until we reached Châtel-Saint-Denis, where we found a small campsite hiding in the woods on the slopes of the valley.

Day 6: Chatel-Saint-Denis - La Saravaz

The next morning, we only had to cycle a few kilometers to catch a first glimpse of the Lake Geneva. Rolling downhill into Montreux with a view of the lake was exhilarating. We stopped at the lake for a bit and then continued eastward, entering the Rhone valley.

In the afternoon we had the brilliant idea to barbecue in the evening, so we bought a throwaway grill, some meat and a few vegetables and stopped for the night at the Camping de la Saravaz. Even though I don’t think the owners of the campsite were very happy about the huge amounts of smoke that we produced and even though the grill didn’t heat up as much as we’d hoped because of the light drizzle, we didn’t stay hungry.

Day 7: La Saravaz - Brig

We continued to follow the river Rhone until Brig and decided to stay for the night at the campsite Brigerbad. We went into the town in the evening to eat a delicious Käseschnitte and went to sleep before nightfall; We knew we’d have to get up early the following morning (at least compared to our usual departure time around 11:30).

Day 8: Brig - Lago d'Orta

I got up at 4:30, departed the campsite alone and started crawling up the Simplon pass. I had the road practically to myself and even though it was freezing cold and I was tired, I could still enjoy standing on the Ganter bridge, the longest spanning bridge in Swizerland, all alone.

The lorries started rolling past me more and more around 7:30, but by 8:30 I’d reached the top. I’ve crossed this pass dozens of times by car, but standing up there alone with my bike was still an amazing feeling.

But it wasn’t over yet - the downhill part was still to come! I got back on my bike and joined the two-and-a-half-lane E62 highway. I took the exit to Simplon-Dorf and had breakfast at the Cafe Arnold, which is where I usually stop for a break when crossing the pass by car with my family. I rejoined the highway and rolled across the border into Italy. I met up with Adam who had taken the train through the Simplon tunnel in Iselle and together we continued southward.

Because cycling infrastructure in Italy seems to be practically non-existant, we sometimes had to use main roads on our way from Domodossola to Omegna, which was not a lot of fun. However, in the end we did arrive at the Lago d’Orta.

Automatically switch to Bluetooth headset with PulseAudio

I recently bought a brand-new pair of Philips SHB 9100 Bluetooth headphones. I like them a lot; They are relatively compact and light, not too expensive and offer sufficient audio quality for my mobile audio needs.

After having convinced the Gentoo system on my beautiful Thinkpad X220 to talk to my shiny new gadget, I wondered if there was a way to get PulseAudio to set the headphones as the default output automatically as soon as I switch them on. Turns out there is!

Even though this feature does not seem to get a lot of attention, it’s there, all that is required to enable it is to add the following to your /etc/pulse/

# automatically switch to newly-connected devices
load-module module-switch-on-connect

Now, if only PulseAudio and Empathy would talk to eachother to switch between high-quality audio mode (A2DP) and telephony mode (HSP/HFP) automatically like my iPad does…

XMPP - yet another chat protocol?

Before I get started with my rant, I would like to make clear that I am not an expert on XMPP - some of the things I say could be wrong. Also, this is only my perception of the status quo, although I’d love to hear what you think about this topic. My email address can be found at the top.

XMPP is awesome

Ever since I learned about the Telepathy framework and the magic it does on the Nokia N900, I’ve been a supporter of XMPP. Of course Telepathy does a lot more and is protocol-agnostic, but a lot of the really neat features such as detailed presence status, voice and video calling, Telepathy tubes and even location awareness are specifically developed for and only work with XMPP.

Most XMPP clients suck

However, all of these exciting features are not really being widely implemented. Sure, the N900 had great Telepathy integration, but the N900 is dead and it’s successor, MeeGo, has yet to ship in any real, usable device. It doesn’t look much better for the various other contenders in the mobile space either - on iOS, XMPP is a total disaster because IM applications are limited to 10 minutes of running in the background. Android is a bit better, with Google Talk being well integrated into the system, but as the name already implies, limited to Google Talk.

It doesn’t look much better in the desktop space. I don’t know much about Windows clients, but last time I checked about half a year ago, most of the clients tried to differentiate themselves through integration of more protocols, platforms, social services and the rest of that mumbo jumbo.

Mac OS X has Adium, which is nice for chatting but doesn’t have very many advanced features. As far as I can see, development is happening at a very slow pace, audio and video chatting have been "coming soon" for ages.

On Linux, the situation is a bit better. GNOME has Empathy, a nice chat client based on Telepathy. It supports a lot of XMPP extensions like audio and video chat, location reporting and things such as screen sharing through tubes. It’s got integration with gnome-shell which works very nicely and hopefully, the GNOME Contacts application that is coming up will also fit in with the existing chat experience. Apparently KDE is also working on deeper system integration of Telepathy and I’m excited to see what they have coming up.

Most XMPP servers suck

But why is the client situation so bad? With Facebook Chat, XMPP is shaping up to quickly become the most used chat protocol on the planet. It would seem like IM, a tool that millions of people use every day, would be a top priority for every operating system vendor, both in the desktop and the mobile space, to integrate tightly into their software product.

I don’t think it’s because people don’t care about these “advanced features” that I’m talking about - many people use weird web-based location services like foursquare, gowalla or Facebook Places. People use Skype every day for voice and video chat. FaceTime has been one of the main selling points of the iPhone 4 (which has been selling well, so I hear). There clearly is a demand for diverse IP-based communication.

The main problem that I see at the moment is the quality of the servers that most people use. Although Facebook is based on XMPP, they’ve created their own little chat network with no possibility to benefit of the distributed nature of XMPP. Also, as far as I can tell they don’t support any of the advanced features that I would like to have and that are available on many other servers.

I can haz fix nao?

So how do we escape this dilemma? Well, I don’t think there’s a good way to fix the current situation. People are lazy, they don’t switch to another chat provider unless they are forced to. Facebook already had millions of users and therefore became a relevant IM service overnight. or Not so much. The best option at this point in my opinion would be for Facebook to fix their servers. New, better XMPP clients would be written overnight and everybody would be happy - except of course those like me who don’t really want their chat network tied to a huge monster that is the Facebook platform. But I guess we would just have to tolerate that and benefit from the distributed nature of XMPP by using different servers to communicate with those trapped inside Facebook. At least we would have a feature-rich, omnipresent distributed communication protocol to communicate with all of our peers at last!

TL;DR Most XMPP clients suck because the biggest provider, Facebook Chat sucks. If Facebook fixed their servers at least we’d have a universal IP communication protocol.

14 Apr 2011

I hate storing data. I really do. I don’t think there is a future for storing music collections when the internet is around, ready to serve any song at any time, wherever you are. However, there is still a problem: This market is a giant vacuum at the moment, with a few smaller companies doing a good job at providing services solving this problem, but not for every usecase, not in every country.

One example: Spotify. Let’s disregard that I can only buy it by telling a friend in the UK with a credit card to buy a gift certificate for me, their service is just not good enough. There is conflicting information about how many employees they have and how they are doing business-wise, but what I see as a costumer is that their service has not at all improved over the last year. Still the playlist-based syncing approach for the mobile app, still the same closed-source library for 3rd party developers that discourages client development on other platforms. If they can’t fix the most obvious usability flaws in their mobile app, I don’t think that they can survive in the long run.

Enter Grooveshark. Half as expensive, same usability flaws in their mobile application, desktop application is even worse than Spotify’s, their music library is a mess and they’re having “licensing issues” that prevent them from getting into the iPhone app store. Need I say any more?

Next up: Rdio. Reasonably priced, it looks like they are the only ones with an iPhone app that simply offers an iPod-like interface for all your music collection and cached music (is that really so hard?) with the option to add new things to it with search. Their cross-platform desktop app looks more like a small helper application, with the web interface remaining the main way of managing music, which is fine if done properly. Also, they might have a better desktop client coming up for Linux in the near future. Not available outside the US yet, so it’s not the omnipresent solution I envision either yet.

It seems like this business needs a big player like Apple or Google to jump in, face the music labels and tackle the engineering challenges associated with creating a good listening platform to make this way of consuming music the norm rather than the exception here in the western world. Of course, all the startups would be dead instantly if something like this happened, but at least I would have a decent music streaming service available.

snowy - the road ahead

5 months ago I traveled to Boston to discuss the future of snowy, Tomboy Note’s online companion application. We made lots of plans and talked about how we wanted to implement note editing, sharing and loads of other cool things.

Looking back over these 5 months, we’ve managed to implement some of if; Jeff has made progress on implementing note sharing and I’ve redesigned the theme quite a bit. Brad has managed to crank out a non-regex-based parser for snowy-flavored markdown (which I was convinced nobody would ever be able to write, but it seems I underestimated Brad’s ninja-skills) and Natan Yellin added support for associating multiple OpenIDs to one account.

Even though a lot has happened, we’re clearly not where we wanted to be after these 5 months. The note editor and the mobile application are two things that are very high on our priority list and are not yet finished.

Recently, Sandy stepped down as the maintainer of the tomboy and snowy modules and I totally understand his decision. You can read his announcement on tomboy-list. I’d like to thank him as a maintainer for reviewing my patches and playing an important role in getting me involved in GNOME.

A killer-feature

However, this lead me to rethink the next steps of snowy. With only two active free-time developers, running after a generously-funded startup like Simplenote or an established platform like Evernote is both unrealistic and unmotivating for me as a volunteer. But we already have a feature plan that sets snowy apart from other notes platforms: Encryption, privacy and freedom (whatever that means…). I think that putting the focus on the ability to install snowy on any computer, being able to store encrypted notes on the GNOME servers and maybe even sharing encrypted notes with other people would be a worthy goal to achieve and a good reason for people to choose snowy over other services.

What also partly motivates me as a developer is that building an all-javascript mobile web application with offline capability is fun and hip. Everybody (even Gruber!) is talking about webapps, so I think trying to make one would be fun!

Short-term: Make snowy more useful

That said, in the short term we really have to tackle note editing and the mobile client. Without them, snowy is more of an online backup service for notes rather than an online version of Tomboy Notes. That said, I think that implementing these features in their most basic forms is not too much work. The difficult part will be to support some of the more advanced features of the Tomboy note format on both the desktop as well as the mobile browser client.

Once we actually have a product that is being used by many Tomboy users, maybe we can get some more contributors involved - from my own experience I know that it’s a lot more fun to work on things that you yourself want. After all, the goal is to build a product that shines beyond the borders of GNOME and its fantastic community!