About keyboard layouts

When I moved to the UK a couple of years ago I gladly switched to the UK keyboard layout which, unsurprisingly, happens to be far better than the Italian one to type all those nasty non-alphabetical characters you need when programming.

Despite the wide availability of those on-the-fly layout switching tools, I decided to use the UK design exclusively, as anyway the Italian layout is not even particularly good to type Italian! For instance, it’s impossible to get capitalized accented characters. Fail.

Luckily, I found out a good alternative. Apparently most Linux distributions include a nice UK keyboard layout that makes AltGr followed by most punctuation keys behave as a dead key. That way, you can not only type «è» and «È», but also «ñ» (AltGr+]) and even crazier stuff very easily. Unfortunately the default UK layout in Windows doesn’t behave this way, and the “dead keys” layout makes «’» itself a dead key, which is very inconvenient in my opinion. So in the end, thanks to the excellent Microsoft Keyboard Layout Creator I ended up “porting” the behavior of the default Linux layout to Windows.

While I was at it I also decided to learn touch typing. I ended up using KTouch, an excellent little program. All in all I was a bit disappointed to find out that touch typing is really just optimized for textual English, while, again, I was hoping to cover also a heavy use of punctuation and accented characters. In this case I eventually wrote a small script to generate new lectures for KTouch according to my requirements.

Should someone be interested, both tools are now available here.

Note: all this stuff is based on Querty. I’m not that hardcore.


Ouch, two full years have passed since my last post here… and I wholeheartedly hate abandoned websites! In the meanwhile I graduated, moved to a different country, got a job in the visual effects industry and also got married. Quite a time.

In this period my amateur interests moved away a bit from 3d and onto digital painting, a passion that found an outlet in my other blog-turned-kinda-webcomic (sorry, in Italian).

Someone may still have this blog in their feeds from my short spell as a Blender developer. I’m unlikely to contribute anything substantial anytime soon, but luckily, since then, the evolution of the rendering side of Blender has been in the safe hands of Brecht, who is definitely heading in the right direction. At the moment I’d rather devote my scarce resources to help out Gimp, which gets a lot less developer love!

In the meanwhile I’ll start reusing this blog to post code snippets, scripts and the odd technical rant mainly to have them handy for my own convenience but also in the hope that someone might find them useful occasionally. Blender aggregators who wish to keep this feed are advised to track only the Blender category as most other posts wouldn’t be of interest.

About getters and setters in Python

Fatal error: Uncaught Error: Call to a member function id() on array in /var/sites/k/kerid.org/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php:36 Stack trace: #0 /var/sites/k/kerid.org/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php(538): CrayonFormatter::format_code('', Array, Object(CrayonHighlighter)) #1 [internal function]: CrayonFormatter::delim_to_internal(Array) #2 /var/sites/k/kerid.org/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php(516): preg_replace_callback('#()#msi', 'CrayonFormatter...', 'class Foo(objec...') #3 /var/sites/k/kerid.org/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_highlighter.class.php(166): CrayonFormatter::format_mixed_code('class Foo(objec...', Object(CrayonLang), Object(CrayonHighlighter)) #4 /var/sites/k/kerid.org/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_highlighter.class.php(186): CrayonHighlighter->process() #5 /var/sites/k/kerid.org/publi in /var/sites/k/kerid.org/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 36