If you get a lot of logspam from systemd in your /var/log/syslog, this might help

Do you get log entries that look like this?

Jun 29 10:40:31 www systemd-logind[329]: New session 3264 of user foo.
Jun 29 10:40:31 www systemd: pam_unix(systemd-user:session): session opened for user foo by (uid=0)
Jun 29 10:40:31 www systemd[1]: Starting user-1000.slice.
Jun 29 10:40:31 www systemd[1]: Created slice user-1000.slice.
Jun 29 10:40:31 www systemd[1]: Starting Session 3264 of user foo.
Jun 29 10:40:31 www systemd[1]: Started Session 3264 of user foo.
Jun 29 10:40:31 www systemd[1]: Starting User Manager for UID 1000...
Jun 29 10:40:31 www systemd[16056]: Starting Paths.
Jun 29 10:40:31 www systemd[16056]: Reached target Paths.
Jun 29 10:40:31 www systemd[16056]: Starting Timers.
Jun 29 10:40:31 www systemd[16056]: Reached target Timers.
Jun 29 10:40:31 www systemd[16056]: Starting Sockets.
Jun 29 10:40:31 www systemd[16056]: Reached target Sockets.
Jun 29 10:40:31 www systemd[16056]: Starting Basic System.
Jun 29 10:40:31 www systemd[16056]: Reached target Basic System.
Jun 29 10:40:31 www systemd[16056]: Starting Default.
Jun 29 10:40:31 www systemd[16056]: Reached target Default.
Jun 29 10:40:31 www systemd[16056]: Startup finished in 13ms.
Jun 29 10:40:31 www systemd[1]: Started User Manager for UID 1000.
Jun 29 10:40:31 www console-kit-daemon[1489]: missing action
Jun 29 10:40:32 www systemd-logind[329]: Removed session 3264.
Jun 29 10:40:32 www systemd: pam_unix(systemd-user:session): session closed for user foo

I got hundreds upon hundreds of kilobytes of logspam like that and I wanted to solve the root cause, not just ignore it in logcheck. I happened to stumble upon the solution on LinuxQuestions.org, and promptly made a fool out of myself there, too. One solution is to enable lingering for user accounts that have cronjobs. For root, that would be: loginctl enable-linger root Since I searched for quite some time but this didn’t come up immediately, I’m putting it here to increase findability.

Why I'm switching from Jolla's Sailfish OS back to CyanogenMod for now

Before you throw any bricks, know that I’ve been a Jolla supporter from before day one. I had my preorder in there and my money earmarked the moment I knew it wasn’t going to be vaporware. I ran the Swiss Jolla Twitter community for several months even before there was a product and I have a TOHKBD and a Jolla Tablet preordered, as well as a second spare Jolla phone sitting in its original packaging.

So why am I leaving this awesome Jolla ship to go back to my old Android barque, a now 4 year old Samsung Galaxy Nexus with CyanogenMod? I won’t bore you for long, the reasons are simple.

Bad readability, bugs and inconveniences

  1. The Sailfish user interface is almost unreadable in daylight.
  2. Calendar and contacts (well, CalDav and CardDav) syncing is frustrating and unreliable.
  3. Some Android apps still do things much better than their Sailfish counterparts, if they exist.

Okay, now throw those bricks. But to illustrate:

Bad readability

Check out this random Sailfish screenshot. The font is too thin, the font’s contrast with the background is too weak, and add to that a very reflective and not too bright phone screen and a bit of sunlight. All of those grayed out podcast titles, they turn invisible.

I picked one of the highest contrast themes available, one I don’t even like, and I still have no clue who is calling me when the phone rings. I have to seek some shade to read SMS. That’s just not cool. Instead of being inspired by Microsoft’s new thin and light typography, maybe they could have copied Google instead and gone with strong, bold fonts that read well even in black on white.

There is a year-old discussion on Jolla Together about this, I don’t see how I could go back to the phone before this gets resolved. The four year old OLED screen on my Galaxy Nexus has many fewer issues even in brightest daylight, and not because it’s a much better screen, mostly because Android’s (or CyanogenMod’s) color theming and typography make more sense for a mobile phone.


I have tried both SyncEvolution before Sailfish even had any built-in CalDav or CardDav sync, and I’m using the built-in one now. Both failed for me. SyncEvolution once a week silently fell into a mode when it couldn’t sync my calendar entries anymore because it wanted either a full refresh from source or a full push from target. That is fine if I get a big fat warning, but I didn’t, so I lost a week’s worth of new calendar entries that didn’t sync to my CalDav server.

But what really made me angry: The built-in CalDav sync now has a bug where it moves all entries ahead by one hour. Yes, the bug is known, it’s being discussed, but there is no workaround. I don’t want to drag around a second mobile device with reliable syncing just to know that I’ll be in the right place at the right time. On Android, I have DavDroid, which works very well and has decent enough status reporting to figure out what’s wrong when it doesn’t.

The Android advantage

There are some apps that don’t integrate too well with Sailfish. I must confess that out of sheer peer pressure, I use WhatsApp for family communication. WhatsApp on Sailfish’s performance is random at best, notifications appear one time out of ten, I keep having to stop and restart the app every few hours to be sure I didn’t miss anything.

I used to use Mitäkuuluu when it still existed, and I am willing to try Whatsup. But I dread something: If text display is as shite as it is in the rest of Sailfish, I might be able to connect, but I won’t be able to read anyone’s messages as soon as we get out of deep dark winter. Also, Facebook’s super-proprietary model means that whatever open WhatsApp client comes along, it will be locked out of WhatsApp at random, and that’s not what I want.

Then there’s email: I haven’t seen anything that does mobile email more reliably and with more options than K-9 Mail on Android. Gladly, that one works just fine on Sailfish too. And it’s readable, because it’s black on white.

All is not lost

What Sailfish did make me learn: I can live with very few apps, Android ones in particular. I can easily live without Google Services or any Google Android apps, so CyanogenMod is more than fine. With very few syncing, privacy-invading and battery hungry apps, I also get two days of battery life out of a four year old battery. Not bad! The Jolla gets 3 to 4 days easily under the same conditions, just so you know.

Right now my setup is simple and fast: CyanogenMod and many apps from F-Droid: Fennec (instead of Firefox and the built-in browser), DavDroid, RedReader, NewsBlur, K-9 Mail, ConnectBot, ownCloud client, Hacker’s Keyboard, KeePassDroid.

This does all I need. You see that my requirements aren’t great. I am looking forward to perhaps this time next year when I can fulfill them all with Sailfish. If anyone wants to buy my excess Jolla gear in the meantime, let me know 🙂

Ebook market still broken

In the last 8 years or so, I’ve regularly looked at the ebook market to figure out if they’ve fixed it yet. In 2015 I can say: no, they haven’t. But there is a new star on the horizon, at least.

Let’s start with a harmless example: Out of the five sci-fi ebooks that Kobo recommends for 2014, they refuse to sell you three. They claim that the books are not available in your country, Switzerland in my case. However, if you check out the competition, you notice that even newcomers to the ebook market like Thalia/Orell Füssli have the ebooks. What’s even worse, Amazon will not hestitate to sell all those five books to you for Kindle.

So here we have Kobo, a company that claims to make premium ebook readers and offer one of the largest ebook collections in the world, unable to fulfill something that both their biggest competitor and complete newbies at this game can do. This shouldn’t be that way — if one company can offer an ebook in one territory, all the others should be able to do that, too.

On the DRM front, things are still broken as well. By far most ebooks are sold with DRM. Fortunately, some countries allow you to remove that DRM from your books, and I can only thank Apprentice Alf again for all his effort in making DRM cracking tools easy to use.

The broken state of the market means that:

  1. Amazon remains the supreme ironfisted ruler of all that is ebooks. Nothing can  compete with them right now. They appear to be able to even get around publishers’ territorial disputes, and their prices and selection are still better than the competition’s. At the same time, they cheat a dozen countries by not paying their taxes and they treat their employees like cattle, but that’s another story.
  2. You can achieve a similar selection to Amazon’s if you’re prepared to hunt through two dozen independent ebook stores for the title you want, and pay a little more for it. It will probably come as an Adobe DRM-encrypted ePUB file. Prepare to crack the DRM. If you’re in a country that doesn’t allow that, you’re fucked.
  3. Publishers and book stores still haven’t managed to find a strategy to kill Amazon, but there is movement on the front. The Deutsche Telekom and a series of German and Italian book store chains are trying with their Tolino alliance, and Tolino has everything it needs to turn into some real competition. The Tolino Cloud that syncs books you uploaded yourself plus books you bought from any Tolino alliance member to all your Tolino devices could be a killer feature.

I don’t know what could be the best interim solution until the market is fixed. Probably buying a Tolino Vision 2 and hunting for books all over, then cracking them and shoving them into your Tolino Cloud Reader so they get synced. You can even buy books from Amazon, crack them and convert them to ePUB using Calibre.

To help your hunting, here are some of my current favorite ebook stores, some even without DRM:

Maybe that helps! See you in two years for an update on the situation.

Presenting the EurKEYboard: A mechanical keyboard for Europeans and coders

For several months, I’ve been using Steffen Brüntjen’s EurKEY keyboard layout. That layout combines a general US feel with special characters for many western European languages.

That’s fantastic for programmers. You get easy access to keyboard shortcuts that would otherwise be impossible or in weird locations — try typing Alt-` on a Swiss-German keyboard for example, you’ll find it’s impossible.

When it comes to braces, most keyboard layouts in Europe are a nightmare. Some require shifting, some require alt-shift to get to the braces and quotes you need several hundred times a day as a programmer. EurKEY instead makes all  manner of braces available with one keystroke, just like on a US keyboard. This makes it much more relaxing to type, whether on the shell, in an editor or in some heavyweight IDE.

Translators are happy as well. Once they’ve memorized the positions of the special characters they can do three-way translation between e.g. Icelandic, Spanish and German without ever switching the layout or memorizing new finger chords.

The only downside? I always wanted to peek at something to see where the special characters are, and looking at a printout of the layout became tedious. So why not create a EurKEYboard in hardware, with all the glyphs printed right on it, and upgrade my plastic piece of crap to a lovely mechanical keyboard in the same step?

This is how I came to be the proud owner of the world’s first EurKEYboard. Behold:


That be still fresh in its packaging, yo.

You can have a closer look at the workmanship and some of the glyphs:


And here’s the other side, with the important braces:


Sorry about the shitty photography.

Now, I’m sure that if you’re European, a translator, a programmer or all of the above, you want to have one of these. In our usual, greedy world I’d be saying, “hand me US$200 and you can have one.” But because I believe in sharing, I’m instead saying “hand US$150 to wasdkeyboards.com and you can have one. Or ten.”

I’m releasing my keyboard layout for printing on their keyboards, it’s on GitHub. Just make sure to open the layout in Inkscape, enable any layers you want (you can put a Windows icon where my Debian swirl is, for example), then convert each layer to a path and boom, there you go, printable layout.

After that, proceed to wasdkeyboards.com, choose a custom Mechanical Keyboard V2, color all the keys the way you want them and attach the SVG of your custom layout. A few days later, the mailman will ring with a EurKEYboard for you. I’ve included two alpha layers as well, one with Mozilla’s Fira Sans font for the main keys, the other with Adobe’s Source Pro Sans.

Marrying Pulseaudio to KDE’s multimedia settings

If you’re running KDE and Pulseaudio and have the problem that you can’t configure your audio sources in KDE’s multimedia settings, there might just be a component missing:

apt-get install vlc-plugin-pulse

I’m not sure if this is usually part of some KDE desktop metapackage, but for me this package had been missing and one of the symptoms was that only “alsa” and “oss” were shown as audio sources, with no sound playing at all. Those icons also had little VLC traffic cones on their heads.

Syncing Sailfish OS's native calendar/contacts with ownCloud

I just found this very helpful blog post by Alexander, listing the proper CalDAV/CardDAV URLs to use with SyncEvolution on Sailfish OS if you want to sync with ownCloud. Make sure to make backups of your contacts and calendars before you start, since setting the wrong side to be master can potentially wipe out all your data on the other end (as it should, you fool!)

An input method for Chinese in KDE 4

If you need Chinese character input in KDE (typing in pinyin and then selecting the correct word), it’s quite simple on Debian GNU/Linux:

apt-get install task-chinese-s-kde-desktop fcitx-pinyin

That’s all there is to it. Afterwards you should be able to start fcitx in KDE and you get a new icon in your system tray. Go there to configure your input methods. By default, ctrl-space will switch to another input method, if you don’t have anything else installed, that will be pinyin input. Ctrl-space again will take you back to one of your previous input methods.

This is what it looks like in Konsole:


Nice and clean.

A secure, free alternative to WhatsApp that is fully under your control

Update: Nowadays, better look into a Matrix homeserver.

With Facebook’s acquisition of WhatsApp, many people are turning to alternatives such as Threema or MyEnigma. But these alternatives, while offering better security than WhatsApp, are still based on proprietary technology and controlled by a single company. Also, they have somve privacy issues:

  • Threema requires that you have the Google apps installed on your Android phone. This is nonsense, since you can buy the .apk file directly from Threema, but cannot use it unless you have the Google apps, and in that case you could have bought it through Google Play as well.
  • Threema uses Google Cloud Messaging for notifications. That means Google still knows about your chat activity.
  • Threema and myEngima are both closed source, so you cannot be sure what they actually do. You also cannot get them through F-Droid or other app stores that carry Free Software.
  • myEngima seems to not be available through any other means than through Google Play. Update: This is wrong, myEngima customer support gave me a direct URL to the .apk file. I just don’t know if they use Google Cloud Messaging, they didn’t respond to that.

If you want to avoid these problems, you can, thanks to Free Software. You can offer your friends and family your own solution for chatting, and as a free bonus, this stuff comes with full desktop support, not just mobile. So you can transparently chat with your friends either from a mobile device, your tablet, your laptop or your desktop, and you have the full source code of all the components involved.

Did I mention it’s encrypted end to end and very simple to use? No? It’s that, too.

All you need to do is:

  1. Set up your own XMPP server. I can recommend Prosody. It’s very easy to set up and has Debian packages available.
  2. Make your friends install ChatSecure. On Android, this is also available from F-Droid. Inside Apple’s golden cage, it’s only available from Apple’s store I guess. It might be on Cydia, but I don’t know of a way to check.
  3. Create accounts for your friends on your XMPP server. Enable the ‘muc’ module if you want to allow group chat via conferences.
  4. Make everybody connect. As an extra bonus, make everybody exchange fingerprints so you can have secure end-to-end messaging.

You might want to consider restricting connections to SSL-only so all possible channels are encrypted.

If you don’t have hardware you control yourself, Prosody is very resource-friendly and runs fine even on very small virtual servers you can rent somewhere. There are services like gandi.net that are reasonably protective of your privacy.

Let me know how this works out for you.

The first week with a Jolla phone and Sailfish OS

I’ve had my Jolla phone for a little over a week now and I’ve completely switched off my Android phone. Time to see how well things are going!

Some native applications I had to grab from alternative sources:

I had to install both on the terminal using rpm: devel-su rpm -i package.rpm. You can execute this either on the built-in terminal application or by SSHing into your phone. The SSH server is built right into Sailfish, by the way, all you need to do to get it is to enable developer mode in phone settings. It even helpfully tells you its own IP.

For some things, no native Sailfish applications exist and so I had to take the second-best option, running Android apps. These were:

  • aCal, a CalDAV-compatible calendar client. Jolla’s own calendar does not have CalDAV support yet.
  • K-9 Mail, a very good email client for Android. Jolla’s own client had many issues, especially problems sending SMTP messages and sorting things into IMAP folders. K-9 is a time-tested alternative.
  • Mozilla Firefox for Android. The built-in browser for Jolla is okay, but things like double-tap to zoom and reflowing of text don’t work well yet. Text would often run off the edge of the page, and because I read a lot of text-heavy pages, that won’t do.
  • TTRSS Reader, a reader application for Tiny Tiny RSS, my web-based RSS feed reader. A port of a native Harmattan app to replace this is planned, and I’m bribing the author with beer.

All the Android applications I use are Free Software and can be obtained through F-Droid, an app store for Free Software on Android. F-Droid works very well on Sailfish OS. It actually updates and downloads faster than on my old Samsung Galaxy.

I mentioned a terminal earlier: FingerTerm, which comes packaged with Sailfish as terminal emulator, is excellent. I’d say it’s better than ConnectBot as it crams a full keyboard with arrow and meta keys into only the lower half of the screen. FingerTerm also appears to be a Harmattan port, and another very good one.

What’s still missing for me

Apart from the things mentioned above, I miss offline navigation and a good ebook reader. I don’t really read ebooks, but sometimes it’s nice to have a copy of the paperback I’m reading on some portable device in case I unexpectedly have to wait for something and don’t have my book with me.

To fill that gap, I’m sure FBReader could be ported. There is actually a Meego port for Harmattan, but it’s beta and from 2011. For offline navigation, I would like to see something that uses OpenStreetMaps data. On Android I was using OsmAnd for that. On Sailfish I haven’t installed any maps system yet — I will probably use the one from Jolla for now, even though that’s online-only.

Conclusion after one week

Am I happy with my new phone? Yes, very! The software side mentioned above isn’t everything: I get around 3 – 4 days of standby time from one charge. The screen is just the right size for me to get everywhere with just one thumb, and the Sailfish UI helps with that. Some of the gestures take a little getting used to, but all in all the learning curve isn’t bad. The thing is fast despite having a “slow” 1.4 GHz processor. I guess it’s the native apps that make all the difference.

I wouldn’t recommend the phone for non-nerds at this time, but as a geek thing, it rocks. The developer community is slowly getting up to speed with the new Sailfish stuff as well, so give them half a year to fill some gaps. It also made me consider picking up C++ again. After all, if you can program for Sailfish, you have C++ and Qt knowledge, something that might land you a few jobs not just in the mobile industry.

I’m also waiting to see what can be accomplished with The Other Half, the removable back cover of the phone that could potentially give it endless expansion possibilities (hardware keyboard, proper digital camera module, barcode scanner…). No other phone has this, and people have already made all sorts of hardware hacks for it.

Finally, I really want a Finnish phone to succeed. I had a decade-long love affair with Nokia phones, and every time I bought a non-Nokia phone it ended up being a disappointment. Of course this was in the era of black and white LCD screens and antennas poking out of the phone case. But those Finns did so many things better than the competition. I hope some of them now work at Jolla and that they’ll bring us the same level of polish.

The Jolla phone is already selling better than the iPhone 5C and 5S in Finland. The future seems bright!

The slow and painful act of ungoogling yourself, part 7: Deleting your account

So you’ve found replacements for all the things you used to get from Google, and you’re ready to delete your account. Nice! Good job. I just did the same thing yesterday:


Make sure to tick every single box, otherwise they won’t let you go. Also, be sure to download any YouTube clips you may have uploaded. I had a YouTube clip with over half a million views and 3000 thumbs up, so that hurt a little bit. But it’s all good, I will be hosting that clip here in the future.

So, did you click that delete button? If you did, welcome to a tiny bit more freedom. If you didn’t: What’s keeping you with Google? I’d like to know. Feel free to comment.