Let me buy you an awesome book in exchange for your FOSS contributions

I have recently started reading books (on my smartphone) during my regular long public transit commute, since reading news for hours every day kept me well-informed but somehow drove me nuts.

The sci-fi novel I just finished reading is called Rapture of the Nerds by Cory Doctorow and Charles Stross. It is such an awesome read that I just have to share it – both to support the authors financially, and to spread the joy I experienced to people I care about. So I thought about whom I could share this book with. But in the “real world” most people I know are not geeky enough or could language-wise not keep up, to fully appreciate that book.
Then it occurred to me: why not combine my passion for FOSS with my love for that book and the desire to support the authors – and that this blog might just have the right audience.

So here it is: I will sponsor this book (as dead-tree version or as DRM-free digital version of any kind that’s available for purchase) for the first three contributors to any popular FOSS project. Just submit a comment or send an e-mail telling me what project(s) you are or have been contributing to, and then we can figure out how I can get your edition of choice of Rapture of the Nerds to you.

Update (2012-12-28): Slight rewording, republished.

Firefox Beta (“Fennec Native”) Sync on Android – no SNI support anymore

I’m a long time user of Firefox on Android. The main reason why I started using it (and kept using it, although it sometimes really taxed my patience by slowing down my G2 / Desire Z to a degree that it was barely usable, due to high memory usage) is Firefox Sync (formerly Weave). It allows me to have my bookmarks, history and even passwords synchronized between all my desktop Firefox instances and my phone.
As with most of my Internet needs, I try to be self-sufficient from hosted services (a.k.a. cloud), so I run my own Firefox Sync server. I have this running for quite some time already, and it “just worked”. Until Firefox on Android got some major changes some weeks ago (installing the Firefox app today still brings you the “old” Firefox, from before the changes, but the Firefox Beta app, often referred to as “Fennec Native”, is the one I’m talking about now). As far as I understand it now uses more Android standard functionality, and less custom code shipped within the app. One aspect that is now “native” Android, instead of implemented in the app itself, is Sync. Firefox’s syncing is now integrated into Android’s syncing framework, and you find the sync account under Settings / Accounts and sync.

That sounds like a good thing, and I generally like the idea – but there is one small detail that caused me some trouble: Since the change, Firefox could not sync with my server anymore.
After two rounds of debugging, I figured out that this was due to the fact that the new Sync method does not work with a server that relies on SNI – Server Name Indication anymore. I reported this to Mozilla, and it became clear that there won’t be a short-term resolution of this issue, because it would require changes to the Apache HttpClient, which in term would possibly require changes to Java’s SSL functions(?).

It’s a pity, but I understand that there is not much Mozilla can do, and it’s probably regarded not as very important to satisfy the needs of the few who run their own Sync server AND use SNI. So I took one of the precious remaining IPv4 addresses I had left for the server, and used it for my sync service. Other possible solutions / workarounds would have been to buy a wildcard SSL certificate, or wait for Bug 756763 – Native Sync can’t accept self-signed certificates for custom Sync servers on Android 2 to get fixed.

Anyway, now it works again, and with my new phone having enough juice, using the new Firefox on Android is a great experience.

Thoughts on HTML5’s <time> element and other semantic info on the web

I just read about the <time> HTML5 element, and how it was introduced, then removed, and then re-introduced. While I think proper syntax, consistency, etc. are important, I am more concerned with what such new “semantic” elements will actually mean for the web and its users. This is not limited to <time>, but here it should be easy to explain my general concern, using an example:

It’s March 2012
Joe from the U.S. writes on his blog: “I’ll be on vacation in Europe starting 5/4/12, looking forward to meeting you there!”
Pierre from France reads the blog, and, knowing Joe is from the U.S., he will have the following thoughts: “Cool, Joe will be around… what’s that date… ah, Americans with their month/day/year format… ok, I interpret this as 4th of May, i.e. 4/5/12 in proper French format”

It’s March 2015, HTML5 and <time> are starting to get used
Joe from the U.S. writes on his blog: “I’ll be on vacation in Europe starting <time>2015-05-04</time>, looking forward to meeting you there!”
Pierre from France reads the blog, and having set his browser language to French, it shows “I’ll be on vacation in Europe starting 4/5/15, looking forward to meeting you there!”. Not knowing about is browser being clever, and showing him the date in the format he is used to, he thinks: “Cool, Joe will be around… what’s that date… ah, Americans with their month/day/year format… ok, I interpret this to 5th of April, i.e. 5/4/15 in proper French format”

Of course, with proper highlighting of automatically localised dates this could be mitigated to some extent, but I can imagine lots of cases where our current assumptions, coupled with technology that is trying to help, will cause even more confusion than we have now. When communicating, lots of information is “out of band” or just assumed known context. Therefore we need to be very careful when programming our machines to help us communicate, otherwise we achieve the opposite.