Older blog entries for firefly (starting at number 13)

Does anybody know of a list of D-Bus events it would be useful to subscribe to? I am thinking of events that say "network is down/up", "sound has been muted", ...

There probably isn't a D-Bus event for "sound has been muted", but I think there should be. Audio/video players and (some) games should pause themselves when they receive that event. I don't think they should unpause themselves automatically when the sound gets unmuted, though.


Mike: man setcontext.

Breezy AMD64 qemage

The AMD64 Breezy qemu image I prepared is ready for download at free.oszoo.org.

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


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.


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>.

4 older entries...

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!