jerous' ::1

Listing of these articles

A while ago I submitted a paper to a PhD workshop AIMS, and it got accepted. As it was to be held in Brno, a place I've visited before as part of my explorations in Czech Republic, I decided to go afterwards to Slovakia, as it's a relatively small country, right next door.

And so, I left a couple of days before AIMS to go see my old friends Prague and Olomouc and their inhabitants, then attend the conference in Brno, followed by some exploring and hiking in Slovakia.


It all starts at an early Saturday morning, at 5:25, when my alarm went off. It was the first time I used my tablet as my alarm. I couldn't figure out how to disable it, so I just shut it down (that'll teach him!) and went to take a shower. After I exited the shower, I suddenly heard the alarm sounding, as if nothing had happened. This time I was able to turn it off, but until this day I don't know how.


2014-05-31 [E] [D]
hardware,linux Comments 0

Got myself yesterday a Lenovo Yoga Tablet 10, a 10.1" Android 4.2 tablet.

I finally decided to get a tablet, as it might be useful when playing some piano and not having to look at my laptop. Now I can just comfortably put it on my sheet music stand, and display anything I need.

I chose to get this one, as it was immediately available, not too small nor too large, with good battery life (18 hours, they report) and reasonably priced.

So far, it feels sturdy, the stand mode is quite enjoyable. The camera lacks in quality (but well, it's not as if I'm going to use it as my main camera), browsing is sometimes a bit slow (I think, as I can't really compare with other tablets) and the minimum volume is way too loud (but is a problem in general with Android, it seems).

If I find any valuable apps, I'll update this post :)


2014-05-06 [E] [D]
linux,code Comments 0

Recently I bought a Raspberry Pi which I intended to use for some little projects. One of those projects is to use it as a relay to my wireless headphone, which isn't as portable as I would've liked: the basestation needs to be connected to the audio-out jack of my laptop, making my laptop rather immobile.

So I had to the idea of plugging the wireless headphone basestation into the Raspberry Pi, and send my laptop's audio data over wifi to the RPi.

There are a couple of solutions, involving jack and pulseaudio, but I wanted something very simple (both jack and pulseaudio took longer than I wanted to get it working, even though the time I put in might be more than the time I would've, researching more PA or jack :)).

My initial idea was to capture ALSA's output, redirect it to a fifo that get's piped to Raspberry, where a player like aplay just plays it onto the jack-out.

In what follows, I refer to the raspberry as speakers and server as the one producing the sound, like a laptop.

TLDR: Update ~/.asoundrc, download and execute ./ --both speakers-ip


2014-04-24 [E] [D]
osx Comments 0

OSX has a pretty nice dictionary, but is a lacking in available dictionaries. provides a lot of translation dictionaries.

I also recently discovered that three-finger tapping on a word will open the entry for that word :)

Just having finished a batch of work, and easter holidays. What more reason does one need to go out and see a little bit of the world?

As I didn't want too much hassle of moving to my destination, the plane was already left out, and the feasible options were reduced more or less to the train. Checking the trains from Belgium to somewhere else, I thought about going to Lille. Good connection, and a cheap ride. That's the way I like it :)

Lille is next to Belgium, and although it is the capital of the Nord-Pas de Calais region and the prefecture of the Nord department. In 2008 Lille got a lot of attention due to the film Bienvenue chez les Ch'tis which broke La Grande Vadrouille's record of 17 million admissions, which spawned interest in tourism since. It is not too big of a place, so I could explore it all, at an easy pace.

My train of 9.55 a.m. was right on time. At the site and when buying my ticket (one-way, as I had no idea yet when I'd return) it was said that the train only went to Mouscron. From there on, there was a bus that'd take us to the Lille-Flandres station. However, on the train they said it was a direct connection to Lille-Flandres (they even called for it in the morning to confirm), however, before arrival they corrected themselves. Excellent communication :/ A whole slew of people were already waiting for the 11.40 a.m. bus, but it let us wait for about half an hour.

Mouscron station

Lille-Flandres station, 300m away from Gare de Lille Europe


2014-04-11 [E] [D]
/tag/ Comments 0

gimp allows you to open and edit pdfs. However, multipage pdf support is primitive: it allows you to read each page in a separate layer, but one can not save back to a multipaged pdf.

A simple solution [1] is to export the layers in reverse order (Layers -> Stack -> Reverse layer order) as a .mng file (Multiple-image Network Graphics), and use ImageMagick's convert to rewrite it to a pdf: convert file.mng -compress Zip file.pdf

[1] source

2014-04-04 [E] [D]
programming,code Comments 0

I just added a new project to my projects page: ImgCmp.

It allows one to compare visually and easily many images in a large set of files. For more information, a better screenshot and downloads with more info, go to its project page

Quick download links:

2014-04-02 [E] [D]
music,jazz Comments 0

With Paco's sudden passing away a couple of weeks ago, and after thinking of his concert I saw a while back, I revisited him, and got hooked to a beautiful concert where the Guitar Trio (why don't they have a wikipedia page yet?), consisting here of Paco de Lucía, Larry Coryell and John McLaughlin, play mostly own compositions.

The recording is called Meeting of the Spirits, after a composition of John McLaughlin, and was recorded back in the old days (14th of February 1979) in the famous Royal Albert Hall.

View on youtube.

I'm particularly hooked on The Morning of the Carnival (starts at 11:40 in the video), also called sometimes Black Orpheus.

The video starts with a quick glance at the trio, preparing their encore, before the concert starts, and then moves on to the songs:


2014-03-13 [E] [D]
programming,code Comments 0

As I was archiving some documents lately, I thought about using git as my backup tool.

I considered other tools, like boar (not distributed), git-annex (had a git-annex binary not working due to bad dependency, and couldn't use it anymore; also I somehow lost some videos using it) and bup (still considering it :)).

Main advantages of git are that its a very stable and common program, supported on UNIX and Windows, it's fast, has checks for the integrity of the repository, and can be synced distributed easily using push and pull.

Disadvantages are that it's not a backup solution. It is not suitable for binary files (well, it does just fine, but it doesn't diff), can't handle large files well. Another disadvantage I encountered using git (after writing this script), is that when a checksum fails, you'll have to retrieve the correct object from somewhere else. And, finally, it doesn't track metadata like user id, permissions, modification time.

Especially the latter bothered me; there can be some valuable information in mtime and permissions. Hence, based on etckeeper I devised a small script which keeps track of uid, guid, atime, mtime and permissions. Upon committing, checkout and update it will store or restore these attributes.

As it tracks all files, commit, check-out and pull operations can take (a lot) more time, as it will stat or update all files metadata.

Quick usage instructions: download Navigate to the root of the git-repository, and

 # install
 # store
 # git push

In the other repositories, do

 # git pull
 # install

As of now, the attributes should be kept up-to-date transparently.

I have not tested this script extensively, nor have I checked the edge cases yet. So, use at your own risk.

Edit: Preliminary par2 support was added for the .git/objects folder to protect against corruption of the repository. It allows you to generate recovery files that can detect and correct errors. These recovery files are stored inside the .git folder, so are not a part of any commit or repository, and are local only. As it takes a lot of time, I have to look for a good tradeoff between correctability and time.

 # generate
 # repair
Will respectively generate recovery files, and repair will check and if errors are detected, they will be repaired, if possible.

The par2 support is only on the local repository. I.e. if you push the remote repository no recovery files are created on the remote repository. This is mainly because it seems difficult to keep the par2 files up to date on the remote. For example, pushing to a remote repository sometimes succeeds and sometimes fails. However, if pushing to a remote succeeds, then the existing par2 files are not up to date with the new set of files, and repair is not possible anymore.

Another critical thing to keep in mind: after a garbage collection has been performed, the par2 metadata must be regenerated. However, as there is no hook after a garbage collect (there is a pre-auto-gc, which is only run after automatic, or "--auto" garbage collects), this can not be done automatically. After a gc, a verify and/or repair will fail.

Also if there are many files, gathering or restoring metadata might take a while, so maybe we can take the commits into account to determine what files to update.

Read further for a detailed working example, and the source code of the script.


2014-01-06 [E] [D]
/tag/ Comments 0

To clockwise rotate an aac-encoded .mov file with ffmpeg, use:

ffmpeg -i INPUT.MOV -vf transpose=1 -r 30 -strict -2 -ar 44100 INPUT_rotated.MOV 


  • -vf transpose=1 takes care of the rotation [ffmpeg filters]
  • -strict -2 enables the experimental aac encoder
  • -r 30 ensures we have enough B-frames, and thus enhances quality [source 1] [ffmpeg doc]
  • -ar 44100 sets the audio bitrate; not setting this results in ffmpeg exiting with an error code [source 2] [ffmpeg doc]

I used it to rotate a video that had been captured by a photo camera. Other angles can be easily accomplished too, just check the ffmpeg filter documentation.

Listing of these articles
[printer friendly] [static version] [Post listing] [Page listing] [Tags: music tab jazz travel wdb europe code live programming youtube record ]