Functional programming language for Python programmers and friends

Just for you, and this time in the Pythonesque rendering. <strong>module</strong> main: <strong>import</strong> std (range) <strong>import</strong> std.io (printf, IO) #<em> print the Fahrenheit-Celcius table for fahr = 0, 20, ..., 300</em> <strong>function</strong> main(<strong>mutable</strong> IO io): <strong>Int</strong> lower = 0 #<em> lower bound</em> <strong>Int</strong> upper = 300 #<em> upper bound</em> <strong>Int</strong> step = 20 #<em> step</em> <strong>for</strong> <strong>Int</strong> fahr in range(lower, upper, step): <strong>Double</strong> celcius = 5 * (fahr - 32) / 9 std. Read On →

[updated] Functional programming language for C programmers and friends

Just for you: <strong>module</strong> main { <strong>import</strong> std (range); <strong>import</strong> std.io (printf, IO); <em>/* print the Fahrenheit-Celcius table for fahr = 0, 20, ..., 300 */</em> <strong>function</strong> main(<strong>mutable</strong> IO io) { <strong>Int</strong> lower = 0; <i>// lower bound</i> <strong>Int</strong> upper = 300; <i>// upper bound</i> <strong>Int</strong> step = 20; <i>// step</i> <strong>for</strong> (<strong>Int</strong> fahr in range(lower, upper, step)) { <strong>Double</strong> celcius = 5 * (fahr - 32) / 9; std.io.printf(io, "%3d\t%6. Read On →

hardlink 0.2 RC1 released

I have just released version 0.2 RC1 of my hardlink program. Compared to the 0.1.X series, the program has been rewritten in C, as Python was to memory-hungry for people with millions of files. The new program uses almost the same algorithm and has almost completely the same bugs as the old version. The code should be portable to all UNIX-like platforms supporting nftw(). I have tested the code on Debian, FreeBSD 9, and Minix 3. Read On →

Managing system package selections using custom meta packages

Over the last years, I have developed a variety of metapackages for managing the package selections of the systems I administrate. The meta packages are organized like this: jak-standard Standard packages for all systems jak-desktop Standard packages for all desktop systems (GNOME 3 if possible, otherwise GNOME 2) jak-printing Print support jak-devel Development packages jak-machine- The meta package defining the computer X Each computer has a jak-machine-X package installed. Read On →

Combining ikiwiki and Twitter's bootstrap

Just because Julien did it, I moved my website to almost the same design now. Still using ikiwiki, of course. I’m still missing a few things, such as marking the currently active page in the menu, but I hope to get that done as well soon. Go to http://jak-linux.org/ to see it.

Looking for HP Touchpad, Intel tablets, and other devices

If someone in Germany (or want to send it to Germany [at low costs]) still has (new) Touchpads to sell, I’d buy one or two of them at the reduced price (16GB: 99€, 32GB: 129€), or take them for free. I promise that I will not sell them to others. I’m interested in WebOS, in running Debian and/or Ubuntu on those devices (for the extra fun factor), and lend it to family members for surfing, etc. Read On →

World, Space, and Licenses

Common licenses for software include the term “worldwide”. Now, what does worldwide mean? The problem with the term worldwide is that it is ambigous and depending on it’s interpretation, violates against DFSG 6 which states: “No Discrimination Against Fields of Endeavor”. The reason: Space travel. If we take the term worldwide to mean “everywhere on earth”, the license becomes non-free, as it prohibits the use outside of this planet. Affected by this problem are the patent section of GPL-3, the Apache 2. Read On →

dh-autoreconf v4 released, patching ltmain.sh for as-needed support

Yesterday I released version 4 of dh-autoreconf, fixing two bugs, and introducing a new feature: Patching ltmain.sh to make -Wl,–as-needed work. For this new feature, run dh_autoreconf with the –as-needed option. dh_autoreconf will then patch all ltmain.sh equal to the system one (which should be all ltmain.sh files if libtoolize ran before or via dh_autoreconf). On clean, dh_autoreconf_clean reverses the patch again. So, if your package runs autoreconf, and patches ltmain. Read On →

0x15 + 1/365

Yesterday was my 21st birthday, and I received all “Hitchhiker’s Guide to the Galaxy” novels, the five ones in one book, and the sixth one written by Eoin Colfer in another book. Needless to say, the first book weights more than an N900. I did not read them yet, so now is the perfect chance to do so. Yes, I did not know that 25th is towel day, sorry for that. Read On →

Project APT2: new cache format and small things

I did not write much code or merge much of my prototype code, but some things happened since the last blog post about APT2 specific things in August and I forgot to write about them. First of all, I dropped the GVariant-based cache. The format strings were simply getting ugly long and were not very understandable, performance was just much too slow (needing more than a few nanoseconds for a package lookup is obviously too slow for solving dependency problems); furthermore, building the cache was also slow and complicated because we needed all attributes of an object at once to pass them to GVariant, leading to ugly API. Read On →