Antti-Juhani Kaijanaho: I was wrong
I feel a little stupid for my last post about my unstable machine. It was the hardware to blame and my hard drive finally crashed during a Linux conference in Mendoza, Argentina. Typical.
At the conference there wasn´t much new for me and I regret that I didn´t get organised enough to give a talk about the Web and WHATWG stuff. Though I did manage to meet good people and talk about some topics that are of interest to me. As usual the fabulous friendly CafeLUG geeks from Buenos Aires were there, led by the wonderful DD Marcela. I also met an inspiring guy from Cordoba who founded a successful software company that works with free software. His brother gave a great talk about it at the conference. I really love to see Free software power people to start a business.
Oh and about my thinkpad X40 hard drive replacement. With the help of another new friend Fredrico from Mendoza, we called up IBM in Buenos Aires and arranged a new hard drive and a battery within 5 days! I didn´t know if my machine was under warranty still, phew. Unfortunately IBM called the next day saying they didn´t have any stock and the wait from the US is about 2 weeks. Since I have no idea where I will be in two weeks (ok, probably Sao Paulo, Brazil) I cancelled that request and now I have found a free Windoze (hopefully not trojaned) terminal just over the Andes, in Santiago Chile.
Tough life!
I feel a little stupid for my last post about my unstable machine. It was the hardware to blame and my hard drive finally crashed during a Linux conference in Mendoza, Argentina. Typical.
At the conference there wasn’t much new for me and I regret that I didn’t get organised enough to give a talk about the Web and WHATWG stuff. Though I did manage to meet good people and talk about some topics that are of interest to me. As usual the fabulous friendly CafeLUG geeks from Buenos Aires were there, led by the wonderful DD Marcela. I also met an inspiring guy from Cordoba who founded a successful software company that works with free software. His brother gave a great talk about it at the conference. I really love to see Free software power people to start a business.
Oh and about my thinkpad X40 hard drive replacement. With the help of another new friend from Mendoza, we called up IBM in Buenos Aires and arranged a new hard drive and a battery within 5 days! I didn’t know if my machine was under warranty still, phew. Unfortunately IBM called the next day saying they didn’t have any stock and the wait from the US is about 2 weeks. Since I have no idea where I will be in two weeks (ok, probably Sao Paulo, Brazil) I cancelled that request and now I have found a free Windoze (hopefully not trojaned) terminal just over the Andes, in Santiago Chile.
Tough life!
Jan-Marek and Florian talked us through their setup. They're using
FAI to automate
installation of systems, along with LDAP to store
lots of configuration information and GOsa as a user-friendly front-end
to that configuration. They've integrated these to enable some very
clever management features so that all aspects of the city-wide system
can be maintained from one central point. As new machines are
introduced onto the network, they can be configured into one class or
another: simple desktop clients up to so-called "depot" servers, used
as seeds for further clients. Individual user profiles can be tweaked,
giving users access to new applications as they are needed. Shared
resources like network storage and printers are set up automatically
from the LDAP database. Access to USB storage devices can be
controlled on a per-device, per-user basis for security.
That's quite an impressive feature list. Most of the work has been
in configuration and systems work rather than custom packages on the
clients themselves - the vast majority of the packages installed come
straight from the standard Debian archive, with some backports (like a
newer version of KDE). Building on top of standard packages means that
they have access to a huge amount of Free Software without having to
do all of the work themselves. A small team (10-ish at the moment,
growing to 100 or so in the future) can effectively deploy and manage
desktops and associated servers for a huge number of
users - they're expecting to be supporting on the order of 30,000
systems 2 years from now.
The team have just recently made their first stable release and are
starting to roll it out across the city, one department at a
time. There are the familiar issues involved in the deployment, of
course. For example, users don't want to help test pre-release
versions to help nail bugs, but then complain loudly when they find
bugs in the first release. And in such a large project to migrate from
predominantly Windows (NT4!) desktops to KDE on Linux, a major part of
the effort needed is in user training. There is quite a bit of support
and custom work needed to convert people's MS Office macros over to
working on top of OpenOffice. And there are still quite a number of
users who will remain using Windows for specific applications that
still don't have Linux equivalents yet. Apparently the "Wine Cellar"
group will help on that front. *grin*
In terms of collaborating with Debian, the LiMux team are expecting
to help in a few ways. As bug reports are filed against their
applications (apparently very few so far), they'll be pushed upstream
along with (hopefully) fixes for them. They will also be devoting some
full-time developer effort to security work; it would be good for both
sides if this effort can be shared.
It was quite striking to see Tux, the Linux penguin, as a visible
logo in local government offices! The team have clearly made some
excellent progress on this exciting project, and I'm sure that I can
speak for all of Debian in wishing them the best of luck in the
future. I'll be watching with interest...
Press Coverage
The editorial team at IT-Neeger (an A-level Estonian ICT blog) immediately scooped the story [in Estonian] and it produced such a strong response that the traditional Estonian media contacted the IT-Neeger team to write a feature article (stay tuned for details). The local Slashdot, Minut.EE, also reported [in Estonian] on the IT-Neeger article.
Thus, myself and Laurent Bervas spent the better part of this week being blogged, interviewed and podcasted by a variety of Estonian and French publications, which is how I only got around blogging this bit tonight.
Marketing
Contrary to our competitors, we fully intend on keeping this platform open, so our initial market will actually be Free Software developers with a penchant for innovation. As such, our first 50 units are exclusively intended for interested developers who want to improve upon our initial idea and participate in defining the final product. Inquiries are welcome!

$ cat examples/fib TRUE = t.f.t FALSE = t.f.f IF = x.x NIL = x. IF x TRUE NIL ISNIL = x. x TRUE CONS = car. cdr. x. IF x FALSE (y. IF y car cdr) CAR = cell. cell FALSE TRUE CDR = cell. cell FALSE FALSE MAP = f. xs. IF (ISNIL xs) NIL (CONS (f (CAR xs)) (MAP f (CDR xs))) AT = n. xs. CAR (DROP n xs) DROP = n. xs. IF (n = 0) xs (DROP (n - 1) (CDR xs)) TAKE = n. xs. IF (n = 0) NIL (CAR xs (TAKE (n - 1) (CDR xs))) FIBS = CONS (CONS 0 1) (MAP GENFIB FIBS) GENFIB = pair. CONS (CDR pair) ((CAR pair) + (CDR pair)) FIB = n. (CDR (AT n FIBS)) $ ./graph-reduction -t -S10K -H1M examples/fib graph-reduction 1.0 by Antti-Juhani Kaijanaho, report bugs to antkaij@mit.jyu.fi [heap_size=1048560,stack_size=2621440] examples/fib> FIB 3 [...] 1 + (1 + (0 + (f[4].f[4]) (y[11].(x[5].x[5]) y[11] 0 1) (t[3].f[4].f[4]))) 1 + (1 + (0 + (y[11].(x[5].x[5]) y[11] 0 1) (t[3].f[4].f[4]))) 1 + (1 + (0 + (x[5].x[5]) (t[3].f[4].f[4]) 0 1)) 1 + (1 + (0 + (t[3].f[4].f[4]) 0 1)) 1 + (1 + (0 + (f[4].f[4]) 1)) 1 + (1 + (0 + 1)) 1 + (1 + 1) 1 + 2 3 examples/fib>(In the trace output, each bound variable is annotated by a scope identifier that effectively allows me to ignore variable caputure problems.) I plant to further extend the language to handle algebraic data types and simple pattern matching, to get rid of the noise of simulating these concepts in the traces. Technically, perhaps the most interesting part of the program is that it contains a fully portable copying garbage collector.
$ history awk ' print $2 ' awk 'BEGIN FS=" " print $1 ' sort uniq -c sort -rn head -10
234 really
34 fg
25 cd
24 screen
23 tail
22 ls
17 less
16 spammer
13 host
11 man
Spammer is a simple shell function:
spammer()
really iptables -I INPUT -s $1 -j REJECT
On the laptop:
$ history awk ' print $2 ' awk 'BEGIN FS=" " print $1 ' sort uniq -c sort -rn head -10
297 echo
62 ./graph-reduction
53 darcs
30 gdb
10 make
6 ssh
6 LC_ALL=fi_FI@euro
6 cd
4 valgrind
3 top
./graph-reduction is a program I wrote during the week. I’ll blog about it separately. the LC_ALL lines are likely all LC_ALL=fi_FI@euro luit slrn so that slrn would send Latin and not UTF-8 (the latter is strongly discouraged in sfnet).
Next.