Sat 15 Jul 2006
Uncategorized
Fri 30 Dec 2005
Some things I wished for, but Santa Claus didn’t bring:
- a “reverse” Aqua-X11-client application for OS X that allows me to put Aqua windows inside an ion frame of an ion window manager running on XDarwin
- an application that turns the SMS of my mobile phone into an IMAP mailbox
- an easy to extend general interrupt mechanism for scsh that allows C code to signal the VM that there is some work to do
Technorati Tags: OS X
Sat 5 Nov 2005
Somehow I managed to miss the one feature of OS X 10.4 that is really useful to me:

When was this introduced? How come I didn’t notice? I pledged everlasting loyality to my 93 IBM Model-M keyboard, which has no Windows or Apple/Command key of course. Ever since I used the IBM keyboard this was a problem.
The problem is the strangeness and mystery surrounding the Command key on OS X. Some time ago, I wrote an kernel extension for OS X that tried to make CapsLock the Command key. This extension was based on iJect, SwapCommandOption and uControl and involved some low-level C++ hacking. With this extension it was possible to intercept CapsLock key events. However, turning them into Command key events was not easy. I don’t remember all the details, but I think that the Command key event was so special that it wasn’t possible to create a fake event that yielded the same effect as a the mysterious real event. Never mind, that’s nonrelevant by now! Hurray, long live Model M!
Update: I didn’t know that the Model M had so many fans. Try a Google search on “Model M”. Some examples: Here, there, and the Wikipedia entry.
Sat 24 Sep 2005
So, here I am in Tallinn, attending the Scheme Workshop and ICFP. There is an WiFi access at each corner of the city, however, there is no WiFi access in the hotel room (actually, it’s supposed to work there…).
Last week, I was in Dublin attending the IFL workshop. A few of the talks were quiet interesting. I found the talks given by the guys from the Clean gang especially interesting. I didn’t know that they gave up to sell Clean and that it’s available for free on the web. It seems that they have lots of good stuff to offer. I think Clean can become my second favourite functional programming language. Well, I was a bit disappointed by Dublin, it doesn’t have much to offer. It’s much smaller than I thought, only few historical buildings, however, lots of Pubs. I enjoyed the excursion to Glendalough a lot.
So, I’m sitting here in the conference room where the Scheme workshop takes places trying to recover from my talk on Commander S. A lot of people asked questions about Commander S, which I consider to be a good sign. My talk itself wasn’t as good, clear, and understandable as I hoped it to be…
There were some interesting talks. I especially liked Jacob Matthew’s talk on the operational semantics of Scheme, Manuel Serrano’s talk on his IMAP synchronisation tool, and Jonathan Sobel’s talk on the explicit monadic reflection in Scheme.
During the last week Martin and I added tons of features to Commander S and we rewrote some parts of the code. I’ll hope to committ these changes to the CVS soon. I also need to upload the final version of the paper to my home page…
Technorati Tags: Scheme, IFL, ICFP
Wed 14 Sep 2005
So, I’m back from a ten day vacation. However, just for one week. On friday, I’m leaving for Dublin to attend the IFL workshop. After this, the journey continues to Tallinn, where the ICFP takes place. I’ll be giving a talk on “Commander S” at the Scheme Workshop which is co-located with the ICFP. “Commander S” is a full-featured graphical (that is, ncurses-based) shell built on-top of scsh. It adds features like a command history, line-editing, programmable completion and job control to scsh. In short, features users are accustomed to by traditional shells like tcsh or bash.
However, there is more. The screen is split into a command buffer (for entering commands) and a result buffer. The result buffer acts as a “browser”. The browser allows viewing and manipulating arbitrary system objects and command output such as file lists, processes, user information graphically. So, if you evaluate (directory-files “/etc”) or ls, for example, a browser for file lists will pop up in the result buffer. Using this browser you can manipulate files, enter a sub-directory, or mark some files and paste the marked files back into the REPL as a Scheme list.
Works the same way for processes, you enter ps and end up with a pretty view of the processes in the browser window which enables you to select, kill, and paste some processes. These browsers are implemented in object-oriented faishon (in Scheme). The interface is pretty simple, thus, it’s very easy to add custom browser for the command output or system object of your choice.
We also have a complete and nice implementation of a tradionatiol shell’s job control features. Such as running a process in foreground or background, and additionally connect a job to a separate (pseudo) TTY. The implementation of job control makes rather heavy use the Concurrent ML API, which yields an elegant implementation (at least I think so).
The paper describing the motivation, the most dazzling features, and the interesting parts of the implementation. I’m not sure if it’s legitimate to upload that (final) version of the paper to my homepage yet (will do so, when I found out). However, don’t expect faustian insights from this paper: it’s a description of an application not a research paper. Although the CFP explicitly invites papers on applications, I entertain suspicion that nobody will take this stuff seriously or pay much attention. Well, never mind. I hope that I manage to give a good talk anyways.
Apropos. This will be my first talk with slides made with PLT slideshow. I believe that the Scheme workshop is a good place to try this out: In case anything goes wrong, there are tons of experts around, in fact, Tallinn will probably have the highest density of slideshow users on the planet. If slideshows turns out to be nice, I think I’ll use it to make the tons of slides I need for my web application programming course.
Technorati Tags: Scheme, scsh, IFL, ICFP
Wed 3 Aug 2005
A few months ago my ADSL provider introduced a new flat rate. The rate was even cheaper than the volume based rate I used until yesterday. Thus, I ordered this new rate along with some subsidised new DSL hardware: a Fritz!Box WLAN 3030 DSL modem, router, firewall, and WLAN accesspoint. Finally, a WLAN access point supporting WPA2, I thought, not yet having experienced the unreliability of Apple’s WPA2 implementation…
At first, I was really disappointed by my new Fritz!Box. The web interface sucks, obviously made for total n00bs: only a few configurations options and features compared with my Draytek Vigor router. For example, there is now way to see (and thereby debug) the firewall log files…
A colleague pointed me at a wiki (in German) which explains some of the internals of a Fritz!Box. Well, here begins the reconciliation! Fritz!Box runs Linux with busybox and it is easy to start a telnet server and do the complete configuration work via command line.
Following the instructions presented in the wiki, I installed this “firmware update” and rebooted the router. This “update” overwrites some files and starts telnetd. The “update” process ended up with an error message explaining that no error occurred. Ok, and there it is: telnet access!
Exploring the system:
# uname -a Linux fritz 2.4.17_mvl21-malta-mips_fp_le
699-4 Fr Mai 13 10:38:09 CEST 2005 mips unknown
# cat /proc/cpuinfo
processor : 0
cpu model : MIPS 4KEc V4.8
BogoMIPS : 149.91
wait instruction : yes
microsecond timers : yes
extra interrupt vector : yes
hardware watchpoint : yes
VCED exceptions : not available
VCEI exceptions : not available
# cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 15020032 14274560 745472 0 1462272 4956160
Swap: 0 0 0
MemTotal: 14668 kB
MemFree: 728 kB
MemShared: 0 kB
Buffers: 1428 kB
Cached: 4840 kB
SwapCached: 0 kB
Active: 2308 kB
Inactive: 6356 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 14668 kB
LowFree: 728 kB
SwapTotal: 0 kB
SwapFree: 0 kB
I started by setting up a root account with a password (as described here). Using vi (yes, the router comes with vi installed), I modified /var/rc.user which seems to be some kind of start script. Here is it (I have deleted my crypted password):
# cat /var/rc.user
#!/bin/sh
/sbin/syslogd -R 192.168.77.1
/bin/cat /var/tmp/passwd | /bin/sed "s/^root.*//;s/^$.//;d" > /var/tmp/passwd
/bin/echo root:CRYPTED_PASS:0:0:root:/var/tmp:/bin/sh >> /var/tmp/passwd
/bin/hostname fritz
/bin/echo "192.168.77.254 fritz" >> /var/tmp/hosts
/usr/sbin/telnetd
/usr/bin/killall dsld
/bin/sleep 2
/sbin/dsld -i
/bin/sleep 2
/sbin/dsld -i
With cat /var/rc.user > /var/flash/debug.cfg this file may be stored in non-volatile memory.
This is, what I have done so far. Next, I’ll try to find out how this dsld works and how to configure the firewall manually. The web pages of the Karlsruhe LUG contain the slides (in German) for a talk explaining even more details of the Fritz!Box. A good starting point, maybe.
Technorati Tags: FritzBox, DSL
Sat 2 Jul 2005
The combination of OS X, X11, and XEmacs is driving me mad. I don’t know how many times I have fiddled with xmodmap to set up the keyboard for my needs. I was perfectly happy with the xmodmap configuration I found on a Mac and ion user’s home page (Can’t find the link anymore).
And along came Tiger and ate the Alt-key. For some unknown esoteric reason the Alt-key stopped working. Only Steve knows. This thread on one of Apple’s mailing lists was very helpful for solving the problem.
Technorati Tags: OS X, XEmacs, keyboard
Mon 2 May 2005
I have been pretty lazy updating my blog in the last month. However, I had good reason: I have moved to a new appartment and organising this and renovating the old and the new appartment ate up all my time.
Sat 15 Jan 2005
I have been busy, however not very productive, lately. A hacked mail and proxy server foiled my plans to work on the Xft-Xemacs project. This server used to be the gateway server to the Internet at the company my parents run. Well, ran, by now. They sold their company, including this proxy server, of course. However, just a few weeks before the date at which the company should be handed over, I discovered the break-in. I decided to fix the problem just before christmas, so I set up the system with the brand-new FreeBSD release 5.3 and turned off the computer for the christmas holidays.
Now for the absurd part. After the christmas holidays the hardware ceased to exist, gone to meet its maker and became an ex-computer: the hardwared didn’t survive the shock of being turned off. After getting new server hardware from a computer dealer in Hamburg, I spent another two days to set up FreeBSD and all the software needed to run a mail and proxy server. This means: Squid as the proxy server, the Cyrus imapd IMAP mail server, Postfix as the MTA and Squirrelmail as a webmail application for the Intranet use. And tons of other services for the Intranet.
I’m very sastisfied with FreeBSD 5.3 — it just works fine! Before the server got hacked, it ran some flashy colorful sissy linux, sorry, SuSe linux. I’m not sure how the intruders hacked the system, but I’m quite sure that those guys where not the brightest hackers around: They managed to install a root kit, however, the programs the root-kit replaced (like pp and netstat) linked against a new version of libc.so which wasn’t installed on the system. So, issuing a ps on the command line just brought up an error message. Very inconspicuous… Well, however, they didn’t do anything more destructive than that.
Just after returning to Tübingen a writer for a German Mac magazine invited my to write an article on the basics of XML. Writing this article ate up my last weekend and my time reserved for hacking.
However, this weekend I have some time to spend on Xft-XEmacs. The first step will be to make my new, much simpler bindings to the fontconfig library work with Stephen’s Xft work. Since I do have commit access to the Xft branch in the XEmacs CVS repository now, I plan to commit this. Can’t wait to try out my commit access!
Sun 20 Jun 2004
Reading this weeks’ postings on the OpenAFS port-darwin mailing list was very insightful! Lots of good news. I learned that there are two (!) implementations of Kerberos 5 plug-ins for MacOS X that given an Kerberos 5 ticket do aklog, thus obtain an AFS token for the user. There is one implementation by Nicholas Riley and another by Ragnar Sundblad. Finally, I understood why it’s not good to remove tokens upon logout (at least on OS X). Ok, I’m going to throw away my aklog plugin which just executed the aklogin command line program (what a miserable hack!) and replace it with one of those plug-ins.
Technorati Tags: OS X, Kerberos, AFS