Geekeries et Salade Cui(s)t(r)e

Un blog axé sur l'Internet avec un grand I, avec des choses geek et intelligentes, parfois …

Moving OUT

I’m moving this blog to my own place :

This site will not be updated anymore.

The tablet that will have multipoint support

My last article about the EEE Slate and its configuration with Debian is now obsolete on one point : the touchscreen. According to launchpad Ubuntu bugs, evdev is completely fit for the task whereas evtouch is really outdated.

A fix is announced for both normal behaviour and multipoint support as of linux kernel 3.3!
It is not soon to be in Debian stable, but the info warms my heart 😉 (back to Arch!)

See you in a few weeks to verify this info.
Edit : 
Another link at ENAC (ID=0eef:a001):

EEE Slate, install notes for Debian (Cont’d)

As promised, this is some tips to make the the EEE slate work right. It is tuned for Crunchbang.
Note : I tried it with Ubuntu 10.10 yesterday and everything ran fine, except the touchscreen.

Read the rest of this entry »

Asus EEE Slate, an almost perfect geek tool

A few month ago I wrote a post about the archos 101 tablet. Well I must admit that I kinda lost hope on this one. One big drawback was that I wasn’t able to run my Linux distro on it at a satisfying speed. I ended up installing Uruk Droid and reading stuff, to me it is even too slow to browse those new heavy-content internet webpages.

So today’s subject is the Asus EEE Slate, my new PC/tablet.

Reading the comments on the Asus’ tablet, I realized that the drawbacks pointed out by the users were mostly unconsistent and related to the default environment provided (W7). It has an average 4h on battery (which to me is quite good in regard with the internal specs) and yeah, it is costy but less than a new macbook from Apple’s which I’m dropping too.

The equation is the following : EEE Slate = Macbook + Archos Tablet + more

What’s contained in “more” ? Well there are both the touchscreen (eGalax) and the Wacom surface (stylus and pressure support), as well as a big 64Go SSD and 4Go RAM for a little more than a kilogram.

After toying with it for a few days, and setting my environment, I can say that this tablet/PC is the most polyvalent machine I’ve ever got. A shame Asus is stopping the distribution, and shame on the consummers who just wait for shiny software without taking the hardware into consideration.

If anyone needs it, I’ll post my configuration for bluetooth and for the eGalax touchscreen, the two only thing that weren’t working out of the box.

Till then

A way to Redemption

The world of RDP is was not really sunny in term of free software, until recently.
A new RDP Proxy called ReDemPtion (got it ?) just appeared on Github.

As I’ve seen it grow for over 7 months, I can only wonder what will come out of it, such as nicer and nicer features and better support and stability. There was a long way down to debug and it’s still in
progress until the protocol layers are hardenned enough.

Here’s a selection on the current roadmap:

  • Create independant libraries with protocol layers, meaning easy and coherent implementation of clients AND servers with redemption’s library
  • Create a few sample server applications using Redemption, so it’s easy to debug RDP clients and servers
  • Make pluggable interface usable, moving toward ANY to ANY protocol proxy! Imagine X to VNC using redemption!
  • and so on…

Just imagine what will be possible! At last some simple way to transparently comunicate to Windows or Linux, using both as both. To me this means a real terminal client
when I’m stuck on Windows, for others this would mean installing Linux at work and work transparently on their Windows servers.

A bit later, I’ll tell you about the documentation system of the project.

PS : I’m NOT the author of Redemption, but I did work on it.

A useless way to (in)elegantly (not) hide text

I assume that when programming languages are an other world for you, it may seem impressive to see code, for instance I could write \x57\x6f\x77\x2c\x20\x31\x33\x33\x37\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x72\x6f\x63\x6b\x20\xc2\xb7\x2f\x3f\x23 and that wouldn’t mean anything to you.

But, it is merely an hexadecimal reference to a unicode character! (see the article on wikipedia)

A simple way to transform letters from a string back and forth to their unicode reference follows (in Python):
>>> for letter in "Wow, 1337 used to rock ·/?#":
... t += hex(ord(letter)).replace('0x', '\\x')
>>> print(t)
>>> print("\x57\x6f\x77\x2c\x20\x31\x33\x33\x37\x20\x75\x73\x65\x64\x20\x74\x6f\x20\x72\x6f\x63\x6b\x20\xc2\xb7\x2f\x3f\x23")
Wow, 1337 used to rock ·/?#

And yes, it could be more elegant.

Retour des repositories de l’AIL

Les dépôts source de l’AIL ne sont pas perdus ! Ils sont de nouveau en ligne aux adressess suivantes :


Ce sont tous des dépôts GIT. Olono est un jeu d’Otello en C et Patator un projet d’éditeur d’animation en Java, syncbot fait des jolies couleurs en Python.

Way to pack your icon themes in Gnome

I have long been looking for a simple tool to easily create and pack icon themes for gnome, yet the only specimens I could find on the gnome project were either outdated and broken, or non existing anymore.

I managed to uncover a functionnal (but old) python/bash script that seemed to do the trick, but it wouldn’t work with my gnome3 and GTK3 (pygtk only supports GTK up to 2.26 or something), so I decided to upgrade it. I forked it (hard) on and it is available through :

It is for now almost iso-functionnal with the previous version, the GUI hasn’t been (yet) updated but it is planned for a future version. Read the rest of this entry »

Why use OpenCL ?

You may own a nVidia graphic card with CUDA support, in this very case, you may hesitate between OpenCL and CUDA framework for parallel computing. While CUDA is very optimized for nVidia’s GPU, OpenCL is much more portable and will work in heterogeneous environment and has a CPP API !

But one thing is for sure, after spending an afternoon trying to get a simple SubBuffer to work I just want to shout : DAMN nVidia’s OpenCL IMPLEMENTATION ! This things just segfaults, that’s it:

cl_buffer_region: 0, 2359296
==18995== Jump to the invalid address stated on the next line
==18995==    at 0x0: ???
==18995==    by 0x80C2FDB: Parallel::draw_rect(int, int, int, int, int, int, int) (in ...)
==18995==    by 0x80C4E76: Capture::rect(Rect const&, int, int, Rect const&) (in ...)
==18995==    by 0x80C5F0A: Front::opaque_rect(Rect const&, int, Rect const&) (in ...)
==18995==    by 0x80C72DD: client_mod::opaque_rect(Rect const&, unsigned int) (in ...)
==18995==    by 0x80D6B4A: rdp_orders::process_opaque_rect(Stream&, client_mod*, RDPPrimaryOrderHeader const&) (in ...)
==18995==    by 0x80D69EE: rdp_orders::rdp_orders_process_orders(Stream&, int, client_mod*) (in ...)
==18995==    by 0x80D9E39: rdp_rdp::process_update_pdu(Stream&, client_mod*) (in ...)
==18995==    by 0x80D913C: rdp_rdp::process_data_pdu(Stream&, client_mod*) (in ...)
==18995==    by 0x80DABC7: mod_rdp::mod_signal() (in ...)
==18995==    by 0x80AA085: Session::step_STATE_RUNNING(timeval&) (in ...)
==18995==    by 0x80AA57C: Session::session_main_loop() (in ...)
==18995==  Address 0x0 is not stack'd, malloc'd or (recently) free'd

It feels much better once it’s out 🙂

Happy Numbers, Kata in Lua

For my first kata, I picked Happy Numbers at Coding Kata and decided to play with Lua, which I don’t know well.

The user-story is as follows :

You are dead (yes, again). You see a long queue leading up to what you belief must be heaven’s gate. You get in line. After a few minutes of waiting you reach the gate. Suddenly you hear loud sirens, balloons and confetti rain from above.

The gate keeper says that you are the 6666th visitor today! As a reward you get to choose your reincarnation form. Cool! You think for a moment and come to the conclusion that after an unhappy life as a math teacher you want to be happy – so you decide to become a happy number!

Which one will you pick ?

The mathematical definition for happy numbers can naturally be found on wikipedia.

The point is to implement the function isHappy() which takes a number and returns true if the number is happy.

 * Check if a number is a 'happy number'
 * @param number    number to be checked
 * @return          true if parameter is a happy number
boolean isHappy (long number);

Read the rest of this entry »