Mittwoch, 29. August 2012

Replacing OpenJDK with Oracle/Sun Java on Ubuntu and Mint

Ever wanted "the real thing" on your lovely Ubuntu or Mint installation when it comes to Java? Search no more, here's the solution: Duinsoft developed a very nice script / installer which does all the installation of the most recent Java Runtime from Oracle (formerly Sun) for you:

So in order to replace the pre-installed OpenJDK on your box you essentially need to follow the quick instructions ("Repository") on the site mentioned above plus purging the OpenJDK stuff afterwards with:

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*

After all the voodoo is over you should get the following prompt when doing a

java -version

Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

(Note: Exact build numbers may vary, depending on when you installed the stuff.)

Best thing is: You don't need to all that installation mess again, the script from Duinsoft will take care of it in the future from now on.

Dienstag, 14. August 2012

Rethinking the shell pipeline

Nice article about rethinking the (ancient) shell pipeline by Alexander

For which who don't like the Windows Powershell (me, for example) this
seems to be nice approach! Give this a read.

Freitag, 3. August 2012

Create an API for a webpage that doesn't have one

Ever wondered why your favourite website doesn't have a nice API to
retrieve some JSON data out of it? Then you probably want to build your
own API for free using APIfy:
This basically is a playground for hacking up a (simple) API to extract
information out of some website. Works pretty well, even if it's still a
bit simple-minded. Let's see what time will tell ...

Nice comparison of responsive JS frameworks

Just stumbled over a nice site which has a pretty nice and deep
comparison of the latest and most popular responsive JS frameworks:

So if you're into Javascript, be sure to check this out!

Montag, 23. Juli 2012

Tahoe-LAFS, a decentralized p2p file system in Python

While browsing through my "to-read" bookmarks I again stumbled upon Tahoe-LAFS, a decentralized peer-to-peer filesystem implemented in Python. This thing really looks promising, providing encrypted and (hopefully) secure storage of all your data across the web. Thaoe is not meant to be for the end-user (yet) really, but maybe there will be some nice addons to all the Dropbox clones out there which then finally could be used with end-to-end encryption. For non-geeks: This means that, if Thaoe is being used together with a service like Dropbox, nobody but you - not even by the Dropbox staff itself - can access your data anymore.

I'll have to play around with this a bit more in the next upcoming days. Let's see how it performs.

Oh, and here's the website in case you can't wait to get your hands on yourself:

Donnerstag, 12. Juli 2012

A (Mostly) Gentle Introduction to Computer Security (by Todd Austin)

Just dug out a nice video recorded over at 2012 from Todd Austin, which gives an introduction of (general) computer security concepts and some details behind it. Well done stuff, be sure to check it out:

Mittwoch, 11. Juli 2012

Another crazy dubstep video (by Mike Tompkins)

Freitag, 22. Juni 2012

Lead Breakfast ('Pulp Fiction' Remix)

Another very cool video remix, this time using flicks from Pulp Fiction:

Dienstag, 5. Juni 2012

What happened to Syncany? Not dead -- really?

I recently visited the Syncany page again to check what (finally) the status is: Apparently a news entry from April 2012 is there telling that the project is not dead. Well, at least something, but hopefully this won't end up being the next Duke Nukem Forever. Don't get me wrong: I'm really looking forward trying out Syncany as soon as it's ready, but competition (aka OwnCloud, CamliStore and such) is not sleeping. While I don't really believe in SparkleShare coming up with something really good anymore there must be a new alternative ...we will see (and hope).

Montag, 4. Juni 2012

ASCIIFlow - diagrams the 1337 style

Ever wondered how much time certain people spent creating cool-looking ASCII diagrams in all sorts of documentation and technical stuff? Well, wonder no more because there's now ASCIIFlow! Without any registration hassle and completely for free you finally can draw ASCII diagrams using a hip and responsive web 2.0 application.

Be sure to give it a try!

Yet another backup solution: Backshift

If you follow my blog a bit more closely you surely recognized my habit of always looking for the perfect backup solution.

Well, here's another (rather new) one: Backshift.
To quote the webpage:
  • rsync can be used to copy a filesystem from one host to another, or for backups using rsync's --link-dest option plus a small wrapper script
  • Backshift is only for backups, and works analogously to rsync --link-dest, but it deduplicates variable-lengthed blocks of the files both intra-host and inter-host, and compresses those blocks using xz.

Although it's pretty new it already claims a lot -- just have a look at the nice comparison table over here.

Sonntag, 3. Juni 2012

O Fortuna Misheard Lyrics (Animated)

Make RSSOwl work with Mint 13 (Maya)

Sigh, that took me a while to figure out. After re-installing my Linux base system (moved from an ancient but steadily upgraded Ubuntu to Mint 13 aka Maya because of their lovely Cinnamon desktop) I could not run RSSOwl anymore.

I'm using RSSOwl because of their nice Google Reader integration which enables me to keep track of all the news on different devices I'm using nowadays.

Anyhow, RSSOwl just failed to load on my brand new Mint with the error message "Failed to create the browser", aborting the whole thing afterwards.

For Mint (and maybe other Ubuntu-related distributions out there) you need to do the following in order to make RSSOwl start successfully again:

  1. Go into your RSSOwl/xulrunner directory (e.g. /opt/rssowl/xulrunner) and execute:
    chmod 755 $(file * | grep executable | sed 's/:.*//')
  2. Then, do a:
    sudo ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-linux-gnu/

    on a 64-bit system, or for 32-bit, do a:

    sudo ln -s /usr/lib/x86_32-linux-gnu/ /usr/lib/x86_32-linux-gnu/
The first step makes sure that all file permissions for xulrunner (a component RSSOwl needs) are set correctly, the second step creates a symbolic link to point from to Xulrunner apparently is dynamically linked with the older libhunspell 1.2 but Mint already has version 1.3.
To manually figure out why xulrunner is unhappy a

./xulrunner --register-user

in the RSSOwl/xulrunner directory will tell you.

After the two steps above your RSSOwl installation should run without trouble again -- happy reading!

Samstag, 12. Mai 2012

[UPDATE] Installing / setting up my Synology DS212+

Lucky me! Right before the weekend all needed parts (that is, the Synology DS212+ itself plus 2 x 3TB Seagate ST3000DM001 7200 RPM) arrived in time to spend some fun hours with it. Bonus: My girlfriend isn't here for the entire weekend, so even more time available! Life can be sooo nice, aww ...

Alright, so after unpacking this nice little box I installed the HDDs and hooked it up to my network. Since the initial RAID parity checks takes a while I did some research on what I need to get working and what I want to do with my DS212+. In case you didn't know: The DS212+ runs a 2.6.32 Linux on an ARMv5 Marvell SoC with 2,0 GHz.

This post will list all the things I did to get my setup into a working state (and also act as a reminder in case I need to set it up another time / migrate).


First, enabling SSH is a good thing to do (but don't go for the ancient and unsecure telnet crap!) -- go right into DSM and enable SSH in the system preferences. You then can login via ssh (on Windows use putty) using root@<ip-of-your-DS212+> as the address. The password is the very same password you use for the DSM administrator account.

Adding external package sources

To get a few more packages to browse I just added some more SPK repository sources to  the DSM package manager:

Security advise: Be sure to only add at least somewhat verified / community accepted repository sources to your DSM. If you install malicious software from untrusted repositories to your poor, little DiskStation this really can bring your stored data into trouble!

Installing IPKG support

Another nice thing to do is to add support for *.ipkg packages to get even more software to your NAS-device: Since the DS212+ has an ARMv5-based CPU one has to do the following to get the IPKG stuff working:

  1. Login as root via SSH to your DS212+ (see SSH section for more information).
  2. Go to the "@tmp" directory by doing a "cd /volume1/@tmp/".
  3. Do a "wget".
  4. Execute the just downloaded script by "sh syno-mvkw-bootstrap_1.2-7_arm.xsh"
  5. Note: The execution will fail because the scripts contains a too tightend processor type check which simply can be changed in the next step.
  6. Go into the directory "bootstrap" (that was created by the script above) by "cd bootstrap", open the required file via "vi", go to the line which has "Feroceon-KW" in it and change it to just being "Feroceon" (without quotes). Leave the rest unchanged though! If you don't know how to operate "vi" then have a look here. After editing that line save the file and exit vi.
  7. Unmount "/opt" if still mounted: "umount /opt".
  8. Due to some wget incompatibilities the pre-installed DSM version vs. the wget version IPKG will install the root's PATH variable needs to be adjusted first: Do a "vi /root/.profile" (note the dot in front of the filename!) and add "/opt/bin:/opt/sbin/" in front of the PATH variable's value so that it might looks like this: "PATH=/opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin:/bin:/sbin:/usr/bin ...". Exit the editor after you saved the file.
  9. Apply the changes to the environment by doing a "source /root/.profile".
  10. Go back to the "@tmp/bootstrap" directory by doing a "cd /volume1/@tmp/".
  11. Execute the script again by "sh".
  12. Now the script should report no error anymore and the IPKG stuff should get installed.
Phew, lot of stuff, wasn't it? So to update your IPKG package list you just need to do "ipkg update". This will retrieve the current repository list which will contain more fun software to install. Do that every now and then to keep your list updated; also mind for security updates.

Installing bash

As the default installation uses BusyBox with ash as the shell I'm not too happy with that. So installing bash with a "ipkg install bash" helps. After installing setting it as the default shell in "/etc/passwd" (usually the first line is for user root) via "/opt/bin/bash" solves this problem.

Installing OpenSSH

To use scp from my desktop box to transfer files to my new DS212+ I needed OpenSSH -- there is a nice small blog post over at Literati Tech which explains what to do. See it here.

Installing rdiff-backup

There's small wiki article over at which explains how to install rdiff-backup. See it here.
Oh, and for getting your self-stitched backup script up and running you also might want to install coreutils by doing a "ipkg install coreutils" (includes mktemp and so on which busybox doesn't offer).

TODO: htop, vim

Fixing German Umlauts for Samba shares

This one took me a while to figure out. As I occasionally read German articles or documentation I got some files with German Umlauts (ä, ö etc.) in it. After putting them on my DS212+ the naming was screwed up on both, the Samba share on my Ubuntu (Mint) box and via SSH (sh).

To fix this you need to edit the file "/usr/syno/etc/smb.conf" by adding
unix charset = ISO8859-1

to the [globa] section. After that you need to restart Samba by doing a

/usr/syno/etc/rc.d/ restart

Also, edit your Samba shares on your local box (probably /etc/fstab) to include

in the mount options per share. For reference, my mount options look like this:

//192.XX.XX.XX/music       /media/ds212/music            cifs    _netdev,auto,iocharset=iso8859-1,codepage=CP850,user,uid=XXX,credentials=/etc/samba/auth_ds212.conf    0       0

After re-connecting to your Samba shares the Umlauts finally should work now.

Developing further out for updates!

Mittwoch, 25. April 2012


Like nicely animated short movies in film noir style? Then don't skip this one:

Dienstag, 17. April 2012

Elsiane - Mechanics of Emotion

Wow, what a great new album the duo Elsiane put out there just a few days ago -- if you like Morcheeba or some of the Archive albums you definitely should give this a try:

Over at you can listen the album for free and download the thing for a few bucks.

Freitag, 13. April 2012

ZeroBin - a client-side encrypted pastebin alternative

If you're interested in running your own pastebin clone but don't want to let the server store the pasted text/code/whatever unencrypted you should give ZeroBin a try: It's a slick alternative to pastebin which uses modern browsers and JavaScript to encrypt the pasted content on the client before the data gets sent and stored on the server. To let someone else decrypt and view the content there's the decryption key built-in to the actual ZeroBin URL. Oh, did I mention it's also Open Source? Here you have it.

Try the demo here, more information can be retrieved on the actual project page here.

Mittwoch, 11. April 2012

x86 Assembly Primer for C Programmers

Some days earlier I stumbled upon a nice project from Ivan Sergeev which is sort of an open book about x86 Assembly for those who already program in C (or C++) to extend your skillz being a system programming ninja. Oh, and using Linux or at least a working GCC toolchain is an advantage here. And be warned though: This isn't an "x86 Assembly for Dummies"; a steep learning curve guaranteed.

As far as I know the whole thing only is available in PDF format over at his github hive. You can download it directly using this link. Be sure to check back for updates (or getting the provided examples).

Thanks Ivan, for this wonderful resource! Keep up the good work!

Dyzz & Rebus – Studio Mix

Oh, and while I'm at it: Here's another deep'n dirty dubstep Mix -- keep it locked:

Gramatik - #digitalfreedom

A fine dubstep / trip hop set from Gramatik:

Stop ACTA, SOPA, PIPA and all that shit, really. Enjoy!

Samstag, 31. März 2012

Mix: Hugo Kant - Follow Up

Just found a very nice mix on Mixcloud -- if you like Hidden Orchestra et al. this is for you:


Mittwoch, 21. März 2012

Les McCann - Maleah

I'm a big fan of Les McCann which did some great albums in the past, and currently I'm really tied to one song called Maleah ...wonderful beat and very smoothly played:

Sonntag, 26. Februar 2012

Bob Marley - Soul Shakedown Party (Fort Knox Five Remix)

The right sound to start in the day:

Freitag, 24. Februar 2012

Xv6 - Unix-like OS in C for teaching purposes

Here's another one from my bookmark cruft: Xv6, a Unix v6-like OS rewritten from scratch (in C, with a little help of Assembly) to teaching operating systems:

About Unicode and Character Sets

Just dug out some older blog article from Joel Spolsky which - in my eyes - really became a classic and a must-read for every programmer out there:

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

Don't know this one yet? Read it, you won't regret it! :-)

Mittwoch, 22. Februar 2012

Paper.js Vs. Processing.js Vs. Raphael

Some while ago I toyed around with Raphael.js and was quite amazed by it -- today there's a nice article over at Smashing Magazine which compares the alternatives Paper.js and Processing.js to Raphael, check it out: Web-Drawing Throwdown: Paper.js Vs. Processing.js Vs. Raphael

Montag, 13. Februar 2012

How to fold a suit, pants and shirt to go in a suitcase without wrinkling

Sonntag, 12. Februar 2012

AMPPS - Try online software with no remorse

Some of you maybe already heard of it or even have used it so far, but I just stumbled over AMPSS, a free package (or better: software stack) containing over 250 software appliances such as Wordpress, Joomla or (my favorite!) Tine 2.0 in a ready-to-go state using the well-known Apache, PHP, MySQL combination.

Don't use this for production systems of course, but AMPPS is compelling and very time-saving when you want/need to evaluate online system like the ones mentioned above. Give it a try!

Donnerstag, 9. Februar 2012

Funky Star Wars Mixtape

May the funk be with you!

Samstag, 4. Februar 2012

[Update 4] Ubuntu + TP-Link TL821Nv3 / TL822N v2.0

After I upgraded my Ubuntu 11.04 to 11.10 due to the upcoming 12.04 version (which I won't upgrade to anymore because of their Unity crap, just a personal rant btw) I had massive problems with my not-so-old TP-Link TL821Nv3 wireless USB-stick which worked fine most of the time all day long.

Now, for those of you who also have problems with this stick: Be aware that there are different versions of  TL821N / TL822N around: On the retail package there are very small version numbers (such as v3 or v2.0) printed on.

Okay, so after having that much trouble with my formerly bought TL821Nv3, I decided to go with the TL822N because of reports that this stick has a slightly different chipset on it. A few days later the new stick arrived and I did some basic lookup using "lsusb" on it: Crap, the very same chipset (0cf3:7015, ath9k_htc) on it as on my former TL821Nv3! They must have changed the chipset between revisions, because older reports claim they used a different Aheros chipset on this stick before. Bad luck for me move on.

After doing some more research I thought it would be worth trying out the latest ath9k_htc driver from the Linux 3.3 kernel (Ubuntu's stock kernel with 11.10 is btw) -- so digging further into the Linux Wireless Project. Here you can get a source package with the latest (stable?) drivers which come with the stated kernel. For getting a list of all current releases, take a look here.

So - finally, after a lot of text - here comes a small how-to for building and installing the latest ath9k_htc driver from the Linux 3.3 kernel on your Ubuntu (also should work on the Linux Mint/Kubuntu/you-name-it equivalents):

  1. First, verify that you're still using the old ath9k_htc module by doing a "modinfo ath9k_htc". The old driver's path in "filename" should point to "3.0.0.something" and the path should contain "kernel/drivers".
  2. Do a "sudo apt-get install --reinstall linux-headers-$(uname -r) build-essential" for installing the required build tools and Linux headers.
  3. Download the latest Linux Wireless package (at the time of writing this is 3.3-rc1-2) by doing a "wget".
  4. Unpack it: "tar xvjf compat-wireless-3.3-rc1-2.tar.bz2".
  5. Go into that directory: "cd compat-wireless-3.3-rc1-2".
  6. Select the correct driver(s) to build by doing a "scripts/driver-select atheros".
  7. Finally, build the stuff by just doing a "make".
  8. After the stuff got built, install the newly built drivers and unload the old ones with "sudo make install && sudo make wlunload".
  9. Verify again that now the new driver got loaded by doing a "modprobe ath9k_htc".  In the filename field the path now should contain "updates/drivers" instead of "kernel/drivers" (as pointed out in step 1).
Update: If connections are still dropping, try disabling the power management of the USB stick by doing a "sudo iwconfig wlan0 power off", where "wlan0" represents your configured wireless device bound to the USB stick.

Update 2: After some more reading about the TP-Link sticks I get the impression they appear to have an overheating problem. Some users even opened their stick cases and added a small passive cooler to the main chip on the logic board. Another option that might help to cool down the stick a bit when processing a lot of wireless traffic is to add "options ath9k_htc nohwcrypt=1" to a newly created file named "ath9k_htc.conf" in the directory "/etc/modprobe.d/". After that just reload the modules or simply do a reboot of your machine.

Update 3: In case the above still doesn't work for you all day long (that's how it is for me -- it works okay, but not through and through yet), here's a simple sudo script called "" which does all the teardown work for you to re-initialize all the stuff to get it back working again:
ifdown wlan0
rmmod ath9k_htc
rmmod ath9k_common
rmmod ath9k_hw
rmmod ath
rmmod mac80211
rmmod cfg80211
pkill wpa_supplicant
ifup wlan0
If, for whatever reason dmesg tells you "Registered led device: ath9k_htc-phyX", where "phyX" in a higher number (let's say > 10) then there is little chance to get the damn stick working again without reloading the modules mac80211 and cfg80211 (which does the script above already).

Update 4: Seems like there were a lot of changes in the 3.4-rc3 compat package (see Changelog). While the USB stick still is not running 100% perfect I'm giving 3.4-rc3 a go on my not-yet-updated Ubuntu 11.10. Go an grab the new compat package here.

Let me know if/how it's working out for you!

Good luck!

Freitag, 20. Januar 2012

Javascript compilation and obfuscation

As a C/C++ guy I'm used to some sort of type safety which Javascript unfortunately can't do out-of-the-box. To start a small new project of mine I was evaluating several mobile development frameworks (see my former post(s)) along with Javascript tools.

What most people (at least at the time of writing) do say is: Forget to try to obfuscate, hide and/or pseudo-encrypt your hardly-written Javascript code. If there's someone who wants to steal your code, then there will be way to do it, period.

But what's more about RTTI or type-safety in general? From former Javascript experiments I know that it's much more likely that some part of an application breaks because some object or variable is used in a different way it was meant to be.

To make it short: I still don't have the definite answer for it, but I found the Closure Compiler so far and it makes a rather good impression to me (besides some critism found on stackoverflow and others).

I really would love to get Javascript compiled (yes, I know, there's Google's Dart coming up!) ...maybe some Lint replacement(s) will help me out? Searching further ...

Samstag, 14. Januar 2012

Mobile (Web) Frameworks in 2012

As I want to do some more development in the mobility sector (that is, for Android in the first place, iPhone comes later, maybe ...) I tried to get an overview of the current status of mobile (web) frameworks in beginning of 2012.

Well, as it sounds that easy -- it really isn't. This seems to be a hot topic all over the place since these frameworks all try (with diferent techniques though) to provide a common interface (API for the techies) to get your application on as much platforms as possible.

This of course also has its drawbacks: While you then can develop your application in pure HTML5 / CSS using regular JavaScript (plus jQuery etc) you cannot access native device feature like the camera or the accelerometer.

If you go for the hybrid approach, that is using a framework which transforms your web application into a native application on Android or iOS, then you finally have access to (some) of the device specific features.

In general (at least for me) it was very hard to get a comprehensive overview of all these frameworks, toolkits and so on since it seems that every day there will be a new one which declares itself being "the ultimate solution (tm)".

Personally I'll give PhoneGap a try which does the hybrid approach mentioned above. With that there are toolkits like Sencha Touch, The M Project or jQuery Mobile which can be used to build your actual application. This especially is nice if you want to provde regular desktop support (for Firefox, Chrome etc) using some node.js server as well. Another nice feature about PhoneGap is that you can write native plugins (for Android that would be in using Java using the Android SDK) which then can be called from the app's JavaScript code. MIT license, nice.

There's another framework called Appcelerator Titanium which does similar things, also for the old-school desktops.

Also consider reading some nice blog articles like Natives are restless, Developers guide to mobile frameworks or several articles over at

Oh, and when you need a HTML5 boilerplate, there's a nice template generator over at, or, if you need a more mobile approach, take a look at

Other (maybe not so well-known) frameworks worth checking out: (iPhone only)

Mittwoch, 11. Januar 2012

Synology DSM 4.0 with Synology Cloud Service

At CES 2012 Synology just announced a new release of their device firmware DSM (DiskStation Manager) in version 4.0.

Besides other improvements one really got my attention: Synology Cloud Service.

While I'm also a big fan of ZFS, btrfs, FreeNAS, OpenMediaVault (OMV) I really like Synology's device lineup with their easy-to-use software. Nothing really to setup, just unpack, configure a bit and you're ready to go.

Synology wants to release a 4.0 beta pretty soon, so I'll follow this one pretty closely ... DS712+ here I come ...

Thoughts: The dilemma of device-bound data

Recently the power supply of my main PC (that is, a regular PC with an old dual-core Intel) just died without a sign of trouble beforehand.

Since I still don't have a NAS and my data on this PC is spread over several hard disks inside I didn't have access to this data while my PC was out of order.
Especially using (and looking up) some E-Mails I really needed really was annoying since I had to use my external backup drive (1TB USB 3.0) on an laptop to get to those files. Being cautious while loading the backed up Thunderbird profile on that latop from my backup drive is necessary because I still do have some good old POP3-style accounts. Now, downloading data from these accounts while running a (temporary) backup profile would be very bad because all this data then would be lost or at least difficult to merge with my "real" profile later.

As more and more people move their data into clouds, on private servers or NASes here's my personal list of items I really should think about becoming an ubiquity:

- Old-style POP3 accounts; only use fat clients (e.g. Thunderbird) for IMAP
- Let retrieve IMAP accounts those old POP3 accounts (hosted by third parties)
- Personal data like pictures, documents, encrypted stuff
- Business data

As I already use a Dropbox alternative for some daily-use and small data I really would like to have a self-hosted cloud solution where I'm finally not bound to any device anymore. Even these two days where I wasn't able to use my main PC I recognized pretty fast - regardless of the backup I had - how much (important) data still is bound to it.

What do you think? Suggestions? How to you manage your daily data-life with multiple devices?

The Page Turner

Mittwoch, 4. Januar 2012

More backup: BUP

A pretty new project is BUP which is using GIT as a base and has some very promising features, as announced at the recent C8C3 in Berlin, Germany.

But be warned: It's far from being complete or even stable (even if they already do testcases and so on), definitly worth a look (later):

Dienstag, 3. Januar 2012

Dubstep Face