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.
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-evdev/+bug/854445 Edit : Another link at ENAC (ID=0eef:a001): http://lii-enac.fr/en/architecture/linux-input/multitouch-devices.html
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.
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
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:
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.
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)
\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
>>> 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.
Les dépôts source de l’AIL ne sont pas perdus ! Ils sont de nouveau en ligne aux adressess suivantes :
git://marvid.fr/git/olono.git git://marvid.fr/git/bdd-deductive.git git://marvid.fr/git/rd-os.git git://marvid.fr/git/elephant.git git://marvid.fr/git/java_rt.git git://marvid.fr/git/openmoko.git git://marvid.fr/git/patator.git git://marvid.fr/git/rd-neuron.git git://marvid.fr/git/swcup.git git://marvid.fr/git/syncbot.git
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.
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 🙂
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);