The Future is Now: IPv6 Dual Stack with Sailfish

Posted on .


Update 2015-06-08: With the latest update, 1.1.6.27 Aaslakkajärvi, there's no longer need to do this from the command line. You can now find the same setting in the Settings app, System → Mobile network → long press your mobile connection and select Edit → select "Dual" in the "Protocol" dropdown. It seems you still need to reboot the mobile network connection after doing this, so I suggest you disable and re-enable it just to be sure.


IPv6 has surely been a long time coming. First RFC'd in 1996, it has been 19 years and it's still not widely available. In Finland none of the three major ISPs offer IPv6 for regular broadband services. We are way past the end of IPv4 address space, but so far no one has seemed to care.

Times are changing, though, at least in Finland. The Finnish Communications Regulatory Authority -- FICORA -- has dedicated the 9th of June this year as the National IPv6 launch day. Any ISP participating must enable IPv6 permanently for all or selected contract types. All the big ISPs are on board, so the future is looking good. So far DNA has opened the game by enabling IPv6 on all of their mobile data packages. And not just some lame transition technology, they have native dual stack IPv4 and IPv6 on the same network, giving a /64 prefix to each client. Elisa have also started IPv6 trials on selected mobile contracts. No word yet from Sonera. Hopefully this will eventually push them to add IPv6 for non-wireless broadband too.

As I have a DNA mobile contract, I obviously had to enable IPv6 straight away. My phone runs Sailfish OS, which got dual stack support in the latest update (1.1.4.29 Äijänpäivänjärvi). There's no UI for it yet, so it has to be enabled through a D-Bus message. The command for enabling dual stack is the following:

/bin/dbus-send --system --print-reply --dest=org.ofono /ril_0/context1 org.ofono.ConnectionContext.SetProperty string:"Protocol" variant:string:"dual"

It can be executed without devel-su. Note that the mobile network must be down when executing the command. So it's easiest to turn airplane mode on while running it. The setting persists through reboots.

Suddenly, IPv6!

Based FingerTerm.
As you can see, my public IPv4 address is different from the internal one (it's NAT'd), but IPv6 allows for direct connectivity.

This is a good start, really looking forward to an IPv6 enabled Internet. Thanks, FICORA! 😊

PS.: If you tried the above and want to go back to single stack IPv4, you need to change the command so that the last part says variant:string:"ip".

Mebe and the Remote Shell

Posted on .

What better way to spend a slow weekend than by writing another blog engine? Plenty, actually, but that's what I did anyway. The result of this work: Mebe! This blog is now powered by a wonderful mix of Elixir and Phoenix. It has all the features that Laine had, with the addition of an actually working Disqus comment system. It's also search engine indexable, which I thought I didn't care about, until I didn't have it anymore. Not that I'm aiming for tons of visitors, but writing about some tech problem I have fixed is kind of pointless if no one can find the post by googling for it.

Emoji Support for WeeChat

Posted on .

Unicode versions 7 and 8 have added many new emoji to the standard. These emojis first became available in mobile phones and are supported by default on modern Android and iOS devices. OS X also has a builtin emoji input method. As such, emojis are beginning to appear on IRC too and it's useful to be able to see them.

🎼 Shairport and the Joys of Multi-Room Audio 🎵

Posted on .

I love listening to music. I carry my music collection wherever I go (in the form of an MP3 player), be it work, school or vacation. My last.fm profile logs tens of tracks every day and can probably creepily accurately pinpoint when I'm at work, alone at home or travelling from place to place. With this said, listening to music at home has earlier been somewhat of a chore – or at least I feel like it now.

Since I'm pretty often on the move with my laptop, I grew tired of having to pull the audio cord from the living room stereo receiver every time I wanted to listen to something. And when I did listen to something, I often alternated between the living room and the kitchen, where nothing was playing. Sometimes I resorted to putting the receiver in the living room at full blast to kind of hear it everywhere in the apartment – sorry neighbors.

Sweden Sans, The Official Köttbulle Font

Posted on .

It seems Sweden has managed to do what other countries have long been attempting -- they have eradicated the use of Comic Sans in their government's official communications. How? By inventing their own font called Sweden Sans (scroll down a bit on the page) and mandating its use on all official branding. And it looks pretty damn cool.

Sweden Sans demo

So cool, in fact, that I just had to put it to some use so I made it the default heading font on this blog. Granted it looks kinda silly because the rest of the site is very plain, but I'll get there some day when I have an excess of free time. In the meantime, our western neighbours were kind enough to include all the necessary web font formats and even example CSS in the download.

But I'm still missing something. Though it's mentioned in the example texts, there's no download for Sweden Mono Sans. If it was available, I'd probably try it out in my terminal instantly -- if only just because of morbid curiosity.

I also think Finland could follow this example and come up with a font of our own. A font that would gather the whole nation as one and make us forget our petty differences. A font already etched into the hearts of millions of Finns. Maybe we can start here:

KARJALA

SuperFish – Race to the Bottom

Posted on .

Earlier this morning it was reported that Lenovo is installing adware to their new laptops. This piece of adware is called SuperFish, and it basically MITM's your connections -- including secure ones -- and inserts ads into webpages you visit. This in itself should be alarming and is an extremely scummy thing to do, but now things have taken a turn for the worse. Yes, it can get even worse.

Since Lenovo has installed a root CA of their own on the computer, they can basically make your browser trust any site they want by using the CA to create certificates for them. But now everyone can. A couple of people have already extracted the private key from the adware app and bruteforced the terrible, inexcusably bad password. A password of only 7 characters in length, consisting of nothing but lowercase a–z characters. komodia. Really, that's it right there.

So now anyone can create certificates that new Lenovo machines automatically trust. Shame on you, Lenovo.

And yes, I know Lenovo is not directly responsible because they didn't make the adware, but they shouldn't have added some in the first place. At the very least they should have had oversight, because this is complete buffoonery. Hopefully some heads will roll as a result. This race to the bottom where laptops are preinstalled with bloat in ever increasing crappiness must stop.

In case you are using a Lenovo computer and want to check if you are vulnerable, try going here. If you get a security warning from your browser, you are safe. If not, douse your computer in some holy water and go make an angry call to Lenovo support.

Nurina – The Elixir URI parser

Posted on .

I had some free time this weekend, so I decided to pick up on an old piece of code I wrote back when I started learning Elixir. It's a URI parser I called Nurina (the word nurina is Finnish and means grumbling or complaining -- it sounded funny and it contains the word URI). It's not really a well put together piece of code but more of a learning excercise. I also decided to avoid using regular expressions entirely and instead used pattern matching to parse the whole URI -- an additional challenge.