Mag. Ing.Clemens Fruhwirth

portait picture of meIt is somewhat difficult to describe oneself to an anonymous audience. First of all, my blog gives you pretty good idea of what my intellectual endeavors are at the moment. Please don't hesitate to click, my blog is strictly focused on publishing results.

Back to the task of introducing myself. As the perfectionist that I am, I would like to select certain aspects of my person that you are likely interested in. Therefore I have to divert a bit from the anonymous audience thesis.

Free Software

You most likely viewing this page because you stumbled across a piece of software written by me. I admit it: I am a free software supporter. I contribute to the copyleft world not because of ideological reasons nor some altruistic instinct. I write free software because I am convinced that free software fits best to the properties of the digital domain and therefore — whether produced on voluntary base or not — is welfare maximizing.

In my life, I spent more time with free software than with their proprietary counterparts. I glanced into Linux when I was 15 and since then sticked with it. Of course, creativity and curiosity provoked active participation in the free software movement, and as the community organizes itself on the net, Google finds my name about twenty thousand times; in mostly free software related content. But read more below.


	LogoThe decision for my major was motivated by the insight that at the age of 20, I spent significantly more than the half of my life hacking, tweaking and frobbing computers. It was time to divert from that road — not entirely but still — and so I choose to go for more than that. ''Computer Science & Economics'' was my choice at the Vienna University of Technology.

With my diploma thesis, I returned to my home waters again and chose a topic more traditional with computer science, namely cryptography. My work received the faculty award for the best diploma thesis among all submitted in the summer term 2005.

My present academic activity is my dissertation. Infected with the ideas of automatic program synthesis — rooting from Koza Genetic Programming now diverted to some less ad-hoc formal methods in functional programming — I am aiming to complete my dissertation in that field.

Cryptography in Linux

Cryptography is one of my more serious hobbies, call me Pro-Am if you like. I got involved in Linux hard disk encryption in 2002 with the project. I started porting cryptoloop to the new 2.6 kernel API, and while providing users with an upgrade path to more recent kernel, I recognized the short-comings when relaying solely on the kernel primitives for encryption. LUKS was born.


I consider LUKS to be my biggest contribution to the free software world. With the first patches appearing in 2004, LUKS matured into a Linux-wide hard disk encryption standard. Thanks to its standard nature — in contrast to other products that relay on ad-hoc designs mostly lacking any theoretical backing — it was implemented independently by other parties, most notably by Sarah Dean who provides you with LUKS for Windows.

Among my minor contributions is a port of the 586/686 assembler version of AES to the Linux kernel. I invented and implemented ESSIV for dm-crypt. The first industry-ready implementation of LRW — an encryption mode far superior to the established CBC — has also been penned by me. Unfortunately, the last contribution never made its way into upstream kernels, as the kernel core developers neglected to make necessary clean-ups to their in-kernel memory management.


My first contact with the Lisp world happened in 2004. Koza's first book on Genetic Programming made heavy use of Lisp and motivated me to learn it. Courtesy of Paul Graham, On Lisp introduced me into a vibrant dynamic world full of parenthesis.

On Lisp book closeup

The first real effort to learn a Lisp styled language was "librep", a small Scheme-like implementation used to host Sawfish, a window manager. I was set to clone ion3 for Sawfish, and had partial success with reproducing its behaviour. But, the sawfish maintainer quickly made clear to me that there are not going to be patches of me merged into Sawfish. So, the toy project died. By the way, ion3 is now my favourite window manager, of course with my own heavy set of modifications.

Except for this little excursion, Common Lisp is my favourite dialect and the one where I do most of my work. This work consists of experimenting with my own Genetic Programming kernel, as well with my own typed Lambda Calculus implementation. The next tasks on my to-do list include implementing a minimal-in-syntax but full-flexed-in-capabilities functional programming language. Its big brother should be Haskell, a language so rich in abstract beauty, that I would wish it would have a more Lisp like syntax (My favourite wet dream at the moment is writing a sexp-styled frontend for GHC).

My efforts community-wise: I am the founder of LiLA, Lisp Lab Austria. LiLA is aiming to be a common lisp developer group, providing cookies and tea for all those interested to join our passionated talks about the exactly correct amount of parenthesis.


	Board with stonesI enjoyed playing GO (13-14 Kyu European Rating), the game, which contends with Backgammon about the title of the oldest game in the world played in its original form. I admire the beauty, the balance of this game and the absence of the any stochastic variables. At the moment, I am not much interested in Go, because the reason to play Go is to see a beautiful game.

A game is beautiful when it is gentle, when it subtle. This art requires a certain amount of skill but also the awareness where your skills end. The good ideas I have in one turn are ruined by the bad ideas I have in following. My skill is too volatile let's say. I would really like to resume playing Go, when I am old, settled, done with my life's work. Just like the other one thousand things I have saved for this period of my life.

	grabbing rock

Atypically for the geek activities I am usually involved in, I like sports. That means: Being part of the activity and not just watching it on TV. I swim twice a week, enjoy sports climbing in summer and any kind of mountaineering in winter.