Archive for the ‘software’ Category

Replaced Google Reader by Tiny Tiny RSS

Donnerstag, Juni 20th, 2013

With the immanent termination of Google Reader it was an ever more urgent task to come up with an alternative to maintain, or even optimize, my work flow. Although announced way back in mid March, I took my fine time taking a decision. There was the faint chance, that Google may change its mind… more likely, though, was that the community would come up with an even better (and really free) alternative. The discussions were on, big time – at least amongst the nerds, that is.

I checked out and had hopes for Feedly but could not be bothered to use a service that would require me to install an extension potentially capable of recording my entire browsing activity. Also I want to be able to use the reader on any device (mine or not), store what I have read/stared, and search through it.

After some time it further more became clear, that I did not want again to run into the situation that a cloud provider would shut down a (pay-for or not) product, I so heavily rely on, so hosting it myself was ever more attractive. This criteria gave the final boost to the option of using Tiny Tiny RSS (TT-RSS) – setup is easy, and often described.

Google is kind enough to aid in migrating to other products by providing your subscriptions and Reader usage history for download in Google Takeout (that is for all Google products!). You download an OPML file (appears as a simple ZIP container), which contains, amongst others, a subscriptions.xml, which you can import (Preferences > Feeds > OPML) into TT-RSS to get your feeds integrated.

It was not initially obvious, but there is also a built-in Plugin to import Stared/Shared items from Google Reader, which can be used after activation (Preferences >Plugins > tick „googlereaderimport„), by uploading shared.json and starred.json, which you can extract from your OPML file.

I run it behind a proxy that provides SSL, which messes up the redirect (TT-RSS uses PHP’s REQUEST_URI to determine it) after login, but I don’t think blame for that can be assigned to TT-RSS. Did not take the time to look into that closer; not big enough a bummer.

Done. Works well so far, and does what it should – free after all.


Installation notes:

  • the folders cache, lock, and feed-icons have to be writable by the web server and have little to do with the software itself so architecturally it would have be cleaner to put all of them into a var folder (done that) – makes them easier to keep on update and manage their permissions
  • admin user can not be removed/deactivated, so I gave it a ludicrous password
  • a getting started wizard that notifies of the option to import Reader data would be handy


Number of cloud services I still use: Too many.

Windows (7) netbook HDD replacement

Dienstag, März 12th, 2013
  • EASEUS Disk Copy (freeware)
  • UNetbootin (Universal Netboot Installer), mainly meant as an easy way to create bootable drives of almost all existing Linux distributions, can be used to copy the resulting ISO to a flash drive (prevents wasting a perfectly good CD/DVD, or compensates the lack of such a drive as it is the case in many net books).
  • And fiddeling with diskpart:

    > diskpart
    > list volume
    > select Volume 2
    > extend

PHP extensions

Montag, August 15th, 2011

This is a «thank you», going out to all the people taking on the daring, unthankful, and never-completed task of packaging PHP extensions for all the OS and their ever-changing versions out there. Without your work, setting up new systems would be a massive… well, you know.

That being said, if you do so, please take extra care to get your facts straight. If you for example package, say,


for openSUSE 11.3, you should be aware that the person who has to go through the installation, likely already had quite an unfortunate day by having to deal with SUSE in the first place (because, who would take the decision to use it by himself?), and does not want any extra surprises when using an – already hard to find – rpm. The last thing this person wants, is having to deal with fancy ticks of the setup installed.

For example, it would be really annoying to find out, that after the installation your apache does not like to start again, because, strangely, the extension installed with PHP (e.g. /usr/lib64/php5/extensions/ can not be found, despite being right there, being owned by the right user, having proper permission, …

Long story short. Do _not_ put any white spaces into the extension’s ini file (e.g. /etc/php5/conf.d/mongo.ini) when trying to describe the location of the extension binary on HDD. Because, even to the trained eye

extension =


extension =

look really „similar“. Do it like the big boys, don’t put any white spaces into said line; especially at the end of the line, where noone will be able to see them (except you make a habit out of unsing a hex editor on everything), even when looking right at the file, suspecting something fishy. Be less human friendly, don’t beautify something, the poor person trying to setup the system doesn’t want to look at – and wouldn’t have had to, if you didn’t.


„Optimizing for developer happiness“

Samstag, Juni 11th, 2011

Recently saw a very interesting talk by Chad Dickerson, CTO of „Etsy“, given on the RailsConf 2011. He claims that things, the way they do them, should not work – yet they seem to.

Some facts:

  • everyone is working on trunk
  • direct deploy (avg. 21 mins from commit) by all 70 engineers -> „satisfaction of the finished product“
  • using Jenkins (under 3 mins build time?)
  • using IRC for everyone
  • Jenkins bot posts build results on IRC

happy easter — debugging

Montag, April 5th, 2010

At the moment gearman(d) keeps me occupied at work. I am soon going to give (yes, yet another) deeper insight into that.

Aside of the obvious, my first findings boil down to the following

  • When running PHP workers, don’t even try to make them stay alive forever.  Have them commit suicide (sounds dirty but has the advantage that the process itsself knows when its idle) and be reborn on a regular basis. Saves a lot of hassle.
  • Never do the mistake, even if it seems sufficient, to only have one PHP worker running for each gearman server. I had three servers on three individual physical machines, running with one worker each, and all hell rained down (did you ever happen to see a load 500?).