Unison on Synology DS211

Unison Logo

I finally replaced my NAS with a newer model, a DS 211, which has the same form-factor, but a faster ARM processor. CPU performance was one reason for replacing it (it would basically get maxed out at around 6 MB/sec) the other was that support was discontinued, and among the newer firmware features I wanted was support for Time Machine in Lion. Most of the stuff worked out of the box, and file transfers are way faster. I reinstalled the ipkg package manager following the instructions you can find on the official wikis. The catch came when I wanted to install the unison file synchroniser which always complicated because it is not written in C, but in Ocaml, which always complicates matters.

  • There is no ipkg for unison in the standard package list.
  • Installing gcc and friends a compiling from the source does not work, because there is no native compiler for ARM processors.
  • Compiling the code but disabling native code generation did not work either, I was getting some random syntax errors.
  • I finally found a package in the unstable tree of NSLU2 Linux, this one installs fine.
  • I had to enable ssh access for the regular user account I use for synchronisation, by default, user-account cannot remote login, simply editing /etc/passwd did the trick.

Now unison works, but when doing a big sync, I’m back to ~6MB/sec, but this time, the bottleneck seems to be sshd which uses around 60% of the CPU, I will have to try other ciphers.

Python shell with Snake Emoji in the Title

Use Emoticons to distinguish shells

Python shell with Snake Emoji in the Title

One application that has been updated in Mac OS X Lion is the venerable terminal.app which finally supports 256 colours. While playing around with emoji characters, I realised they were quite useful to mark different terminals. I typically have multiple windows open with local and remote shells, along with a python interpreter. Previously I used the background colour of the terminal to distinguish the various contexts, but now I also add a relevant emoji in the title. Among the useful characters for this use

  • Shell 🐚
  • Snake (Python) 🐍
  • Camel 🐫
  • Computer 💻
  • Bug 🐛
  • Ant 🐜

To add the character to a terminal’s title, just go into Terminal/Preferences, select the Settings Icon and the Window tab. In the Title item, you can enter the emoticon in the title text.


One of the striking aspect of Mac OS X 10.7 Lion is the extent to which it borrows from iOS. One amusing aspect of this mobile phone influence, is that the system now supports Emoji characters, which have been standardised within Unicode recently. While Emoji are technically characters, they are small icons, and are rendered both in iOS and in Mac OS X Lion as colour bitmaps. Having a font that is both a bitmap and colour is something I had not seen since the Amiga.

Beside cute animals, the Emoji range also contains some semi-useful icons, including ones that represent clocks faces for the twelve hours (between 0x1F550 and 0x1F55B), so I thought I would hack a small javascript that would display the icon corresponding to the current time. In trying to do this, I uncovered one annoying limitation of javascript: it cannot handle characters that do not fit on 16 bits, if you look at the code points mentioned above, they do not fall within the Basic Multilingual Plane (BMP). If you try to call String.fromCharCode(0x1F550) on Safari, you won’t get an error, just a bogus character in the private area (0xF550).

The workaround for this problem is to understand that javascript does not really work with unicode characters, but with utf-16 elements (regardless of the encoding of the page). You can therefore encode your character using Surrogates. Building the surrogate pair implies some bit manipulations. In the end not much has changed in the last twenty years: access to exotic characters invariably involves hacking around with code-point and escape sequences. On the C64, you had to choose between lower-case and graphical characters…

Here is the resulting code (I factored out the surrogate calculation, mostly to avoid escaping problems with WordPress). If you use web-browser that supports emoji, you should see the actual code in action in the top-right corner of this page, if emoji are not supported, you will probably see an empty square.

var date = new Date();
var hour = (date.getHours() + Math.round(date.getMinutes() / 60) + 11) % 12;
var emo = 0x1F550 + hour;
var h = high_surrogate(emo);
var l = low_surrogate(emo);
clock = String.fromCharCode(h) + String.fromCharCode(l);
document.getElementById("emoclock").textContent = clock;

Usagi Yōjimbō

Usagi Jojimbo special edition boxed set

Last year, I was given the special edition of Stan Sakai‘s Usagi Yojimbo. This is the kind of mixed gift when you are travelling around, as this box weights a few kilos. I put it in my shelves until I would have some time to read it. I have finished reading both volumes, and I can say this was a really cool gift.

As the title 兎用心棒 usagi jōjimbō indicates, this is the story of a rabbit bodyguard. More precisely a ronin rabbit in some animalistic variation of the edo period. Interestingly, the drawing style of this comic is quite far from manga, instead it reminded me a lot of the style of Sergio Aragonés, which is hardly surprising as he collaborated with Stan Sakai. The are even a few guest appearances of main character of Aragonés: Groo the Barbarian. The similarities go beyond the drawing style: they share the same depiction style for combat scenes: chaotic and exuberant, but also graphical codes, for dead persons in particular. The general structure of stories, often starting and finishing on a misunderstanding is also similar. One notable difference is that Sakai does not go mad with crowds scenes like Aragonés does.

Usagi Yojimbo – The special Edition
Stan Sakai
Fantagraphic Books
ISBN : 978-1-60699-154-1

While the drawing style is definitely western, the stories felt deeply japanese. This is a story about a ronin, the difficulty of reconciling honour with the turpitudes of everyday. More importantly this is a story about wandering, searching for one’s self, not being able to return back. The character is torn between the friends he has in the higher class and the unsavory types he shared the live with. The narration is full of far villages, bad weather, and you can feel the warmth of tea on a tatami after finding a welcoming place in the storm. The book made me long for Japan, Kurosawa movies and Otoko wa tsurai.

In short, a very good comic which I heartily recommend, in particular if you have a soft spot for Japan.

Le Kanji d’aujourd’hui :Today’s Kanji:
Kanji Kun ON Signification Note Henshal

Rabbit Rare kanji, not in the standard use set. Variant: 兔
Use, business, employ 215
Heart Stylised heart ♥ 215
Rod, stick, cane, club 木 (tree) + 奉 (offer respectfully) 975

Olfactive travel

I just cleaned some stuff with bleach, and immediately I got memories of France. The French prefer using bleach to clean things, so the smell of it is everywhere. Each country has different dominant cleaning product, when I come back from Mountain View, my clothes smell like the US for a few days. While there are many things on the internet, I could not find a map of the cleaning products, of the smells. It’s a shame: with such a map, one could build a selection, and organise travels in one’s mind just by switching the bottles used for laundry or cleaning the floor.

Rules for Web Design

While some companies strive to make the web experience of their users better, this is not the goal of airlines companies, banks and other large administrations. For those entities, discouraging user is a far more important goal, and web design must be aligned with this objective. To achieve this goal, the following rules of web design must be strictly adhered to:

  • Use flash – in particular for interactions that are mostly text based. The expensive marketing campaign must be amortised. For best results, have an heavy, loud, and complex animation that can only be skipped once it has loaded on the front-page.
  • Request the users selects a country on the front-page. Afterwards, redirect him to a web-site with a different url but basically the same content. This effectively destroys the cookies and passwords saved by the browser. Security is important!
  • Use multiple identifiers. Your internal system has three different databases with different primary keys. The user must be made aware of that. You company is only a single entity for corporate reasons, not to make the user’s life easier.
  • Even when the user is logged in, and has provided you with profile data including name, address and identifiers, do not pre-populate the form with this data. This form of auto-population is not accessible to the worker in the call-center in India, you do not want the users to have a different experience. Remember the data you collected is needed for doing marketing research on why the users are unhappy, not make them happy.
  • Maximise the latency for the various form controls. For instance use a drop down with all the countries, this effectively prevents the browser from auto-filing, add indentations in the text so typing a letter to jump to a country will not work. Do not pre-select the country the user was forced to selected earlier.
  • Add form validation code, but avoid any type of normalisation, do not tolerate spaces or dashes in phone numbers: there is no dash or space key on a phone, for bob’s sake!
  • Avoid using the Html5 e-mail and number specific input fields. If the user uses a tablet or mobile phone, he should use the full size keyboard. If the user is prevented from entering characters that are illegal in e-mail addresses, then your validation code will be useless.
  • Avoid any form of automatic form filling, if the user entered a postal-code, he knows the name of the city, and pre-filling it would be an insult to his intelligence.
  • When a form is entered send an e-mail with an incident number, but make sure nothing can be done with the incident number, no web tracking, no field to enter it in web form.
  • When answering the user by e-mail, do not let the user answer to the e-mail. Instead require them to use a web-form. Do not refer to the web-form using an url, instead explain in the email’s text how to navigate to the form in web’s site hierarchy.

This list is of course not exhaustive, the key is to maximise the annoyance. Remember that a user than managed to communicate once has a higher probability of trying to communicate again.

The Kanji of Aikidō Ⅳ:Les Kanji de l’Aikidō Ⅳ : Omote

Le Kanji d’aujourd’hui :Today’s Kanji:
Kanji Kun ON Signification Aikidō Note Henshal
Surface, face, front, coverSurface, face, recto, couverture Many aikidō techniques exist in two forms: omote and ura. Omote techniques are more frontal, and typically make the uke go the way of the tori.
De nombreuses techniques d’aïkidō existent sous deux formes : omote et ura. La technique omote est typiquement plus frontale, et force l’uke à aller dans la direction du tori.
The Kanji is clothing 衣 with samurai 士 on top.Le kanji est vêtement 衣 avec samuraï 士 en dessus. 379

La droite et les vélos

Bike in the white World – Ⓒ amonfog Creative Common Share Alike 2.0

Je ne m’intéresse pas tant à la politique, et je trouve le clivage gauche-droite plutôt fatigant, un dualisme absurde entre des idées intellectuel­lement satisfaisante mais qui ne marchent pas et des idées satis­faisantes du points de vue émotionnel, mais qui ne marchent pas non plus. Chaque mouvance à naturellement ses contradictions, certaines plus amusantes que d’autres.

Une chose intéressante, c’est le manque d’amour que les gens dit de droite portent au vélo. Ils ont tort, j’affirme qu’on ne peut de bonne foi prétendre être de droite et ne pas aimer le vélo, pour les raisons suivantes :

  • Le vélo est le moyen de transport le plus individualiste qui soit : pas de passager adulte.
  • Les règles étatiques qui règlent la circulations des vélos sont très libérales : pas de permis requis, ni d’immatriculation, seulement une assurance (et encore c’est une particularité suisse).
  • Le marché des vélos jouit d’une grande diversité de fabricants, les pièces sont interchangeables entre les vélos, les barrières étatiques pour pratiquer la construction, l’assemblage et l’entretien d’un vélo sont minimales : un particulier peut construire son propre vélo.
  • Du fait de la modularité des vélos, et de l’absence de loi qui force l’obsolescence, les vélos qui ont plus de dix ans sont très courants, et l’ont peut encore voire des vélos militaires de la série de 1905.
  • Malgré cela, il y a eu des progrès très importants dans la conception des vélos. Sur les routes, des modèles avec des technologies différentes de cadre, de transmissions ou de freinage se côtoient.
  • À ma connaissance les fabricants de vélos ne reçoivent aucune subvention et aucun état n’a établi de barrière commerciale pour privilégier son industrie du vélo, aucun politicien n’a cherché à imposer des vélos pendant son mandat.
  • Les coûts d’infrastructure imposés par les vélos sont minimaux. L’usure sur les routes est négligeable. Certains prétendront que les pistes cyclables sont chères, mais soyons honnêtes, les pistes cyclable ne sont pas nécessaires pour rouler à vélo. Elles sont nécessaires pour permettre aux automobilistes d’aller plus vite que les vélos.

Clairement l’univers des vélos correspond assez bien aux idées de droite : interventions étatiques minimales, marché dirigé par une large concurrence avec de nombreuses technologies qui coexistent. Curieusement, on entend assez peu de politiciens de droite mettre en exergue ce marché qui correspond pourtant à leur idéaux…

The Kanji of Aikidō Ⅲ:Les Kanji de l’Aikidō Ⅲ : Ura

Le Kanji d’aujourd’hui :Today’s Kanji:
Kanji Kun ON Signification Aikidō Note Henshal

Inside, reverse, rear, liningInterieur, inversé, verso, doublure Many aikidō techniques exist in two forms: omote and ura. Omote techniques are more frontal, and typically make the uke go the way of the tori. Ura techniques typically imply going to the back of the opponent.
De nombreuses techniques d’aïkidō existent sous deux formes : omote et ura. La technique omote est typiquement plus frontale, et force l’uke à aller dans la direction du tori. Les techniques ura impliquent en général de se placer derrière l’adversaire.
The Kanji is village 里 with clothing 衣 below and a lid ⼇ above.Le kanji est village 里 avec vêtement 衣 en dessous et un couvercle ⼇ au dessus. 992