Older blog entries for firefly (starting at number 10)

28 Mar 2006 (updated 28 Mar 2006 at 17:07 UTC) »

Madness[1]

firefly@charybdis:~ $ man perltoc | wc
Reformatting perltoc(1), please wait...
  12228   37991  385536

firefly@charybdis:~ $ man gcc | wc Reformatting gcc(1), please wait... 10475 60878 494066

firefly@charybdis:~ $ man perlfunc | wc Reformatting perlfunc(1), please wait... 6655 42081 345448

firefly@charybdis:~ $ man mplayer | wc Reformatting mplayer(1), please wait... 6498 32376 297288

firefly@charybdis:~ $ man smb.conf | wc Reformatting smb.conf(5), please wait... 6252 39674 290421

firefly@charybdis:~ $ man ex | wc Reformatting ex(1posix), please wait... 5098 33570 235212

firefly@charybdis:~ $ man bash | wc Reformatting bash(1), please wait... 4818 36418 275736

firefly@charybdis:~ $ man perldiag | wc Reformatting perldiag(1), please wait... 4041 27130 192905

firefly@charybdis:~ $ man lsof | wc Reformatting lsof(8), please wait... 2531 17406 132807

firefly@charybdis:~ $ man 5 terminfo | wc Reformatting terminfo(5), please wait... 2090 13421 129703 firefly@charybdis:~ $

firefly@charybdis:~ $ man gpg | wc Reformatting gpg(1), please wait... 2035 11708 102345

firefly@charybdis:~ $ man sh | wc Reformatting sh(1posix), please wait... 1172 8335 60875

firefly@charybdis:~ $ man cat | wc Reformatting cat(1), please wait... 74 218 1838

------

[1] Rob Pike and Brian W. Kernighan, "Program Design in the UNIX Environment"
(Derived from the talk by Rob Pike, ``Cat -v considered harmful''), Bell Labs Tech. J., 1984.

Clarification

Yes, I know that the only really new thing here are the symlinks instead of the union mount. Just wanted to make that clear.

David Zeuthen stole my idea yesterday...

...and I only got it ten minutes ago. Damn, that man is fast!

Intelligent Directories

Basically, what I've just described is "just" a variant of "intelligent directories". Why should directories just be passive containers? Why not allow extra work to take place behind the scenes when certain magic directories get updated?

I hate configuration files and I hate programs that I manually have to run to catch updates.

I want intelligent directories that automatically email/rsync/backup when I copy/move files to them. I want intelligent directories I can drop fonts or video codecs into.

And I want intelligent directories I can drop applications in.

16 Mar 2006 (updated 16 Mar 2006 at 13:02 UTC) »

Poor Man's Union Mount

(commentary on OLPC applications management)

1) there shall be a daemon

2) the daemon sets up inotify watches on /applications

3) when a new directory shows up, it creates symlinks from /usr/bin/app-cmd to /applications/appdir/app-cmd

4) same thing happens for libraries, manpages.

5) UI data files (sounds, icons, glade files) -- some will have to be symlinked or copied, some can stay "private".

6) notifications have to be posted to the desktop environment: .desktop files, MIME magic files, MIME icons, application icoms -- touching a directory may be enough (because some other daemon-like entity will pick up that signal and take it from there).

7) if there's already an application with the same name, we can create /usr/bin/app-cmd-v1.2 and /usr/bin/app-cmd-v2.0 symlinks in addition to moving /usr/bin/app-cmd to point to the newest version of the app.

Think of this sorta like udev for applications...

why does cpio -i (that is, the copy-in mode) copy files out of the archive and cpio -o (that is, the copy-out mode) copy files into an archive?

12 Feb 2006 (updated 12 Feb 2006 at 15:01 UTC) »

There are two main versions of the C++ ABI in the free world. That's one of the fun things we have to deal with. We solve it by supplying a wrapper around g++ that compiles everything twice; once with a compiler that supports one ABI and once with a compiler that supports the other one.

Some fun filename mangling and parameter massaging takes place behind the scenes in order to make that work.

It now works well enough that I've managed to build a proper autopackage for Scribus 1.3.2 and install it locally (non-root) on charybdis, my desktop machine.

This is good<tm>.

That's nothing, Mike. Try Habermas some day. Half-page sentences are not unusual in his works (which are quite banal, if you manage to penetrate the thick German academic style). One reason why he has become so unreasonably influential and supposedly widely read must be exactly that he is extremely hard to understand.

The Lonely Crowd is another one of those badly written (and boring) books that got extremely influential. The research behind it seems rather poor, too.

I'm afraid that's sociology for you :(

Autopackage is Yet Another Packaging System.

As if there weren't already enough of those. The unique feature it has is that it is distribution neutral. You can make one autopackage and install it on Red Hat, SuSE, and Ubuntu.

The LSB tries to accomplish the same thing both by standardizing a directory structure and by standardizing a package format + a set of standard packages.

Unfortunately, it is not enough. Applications need to integrate well with Gnome and KDE these days. They also need more binary portability than LSB can easily provide.

10 Feb 2006 (updated 10 Feb 2006 at 06:54 UTC) »

I'm testing Gnome Blog...

Okay, so Gnome Blog can't upload images to advogato -- and it can't handle links to them either.

But editing the entry afterwards to manually link to an image works fine :)

1 older entry...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!