Recent blog entries for claudio

28 Apr 2002 (updated 28 Apr 2002 at 22:03 UTC) »

Contrary to the rumours you may have heard, I'm not dead. I was only, uhm, resting.

I've just reconstructed the partition table of my hard disk by hand, after gpart's failure on correctly put all my logical partitions inside an extended. The missing one was, of course, a large partition with my LVM volume group. So I've learned an important lesson today: don't try to install OS/2 on a disk with (Linux) LVM. So no Sarien port to OS/2 anytime soon.

Abridged condensed summary of the past few months' events:

  • Finally ported Sarien to MacOS classic, using MPW and the BasiliskII emulator. MacOS interface programming is quite interesting, but the memory manager sucks.
  • Bought a Canon Powershot S110 digital camera. It's a very nice looking, portable and feature-packed 2.1 megapixel camera, with stainless steel body and excellent picture quality at daylight, mediocre performance with the flash. Perhaps the new S200 with ISO400-equivalent sensibility could address this problem (or perhaps the fact that my EOS is usually loaded with an ISO800 or so is giving me bad habits).
  • Considering to buy a small sportbike (the Ninja 250 is my favourite so far).
  • Considering to learn how to ride a motorcycle (useful prerequisite for the previous item).
  • Some progress with the guitar.
  • Should I spend my next vacations in Maldives or Seychelles, or perhaps the Caribbean?
  • Winning the war against spam, I hope I'm not losing logitimate emails.
  • Fought SANE stdarg portability problems on Alpha.
7 Nov 2001 (updated 7 Nov 2001 at 13:19 UTC) »
Bash bashing

Let me state that I have nothing against bash itself. I know it's a very fine, full featured shell with many interesting improvements over other shells. Most, if not all, Linux distributions use it as the system's /bin/sh, which is also fine, but it's the fact that it leaks bash-isms when invoked as sh that is somewhat disturbing. First of all, it allows the creation of a multitude of /bin/sh scripts that are not compatible with the Bourne shell -- replace /bin/sh by ash in your system to see the extension of the damage. Now take your bash-contaminated /bin/sh scripts and try to run them in other, erm, Linux-like systems such as commercial SysV or even BSDs. You can try /bin/ksh, but it won't work in all cases, and you'll be forced to use bash. That's, IMHO, very Microsoftian in nature. It's embrace and extend.

What I advocate here is that bash scripts must use #!/bin/bash, not #!/bin/sh. Let Bourne shell scripts use #!/bin/sh, Korn shell scripts use #!/bin/ksh, C shell scripts use #!/bin/csh and so on. Let's stick on standards. It just makes sense!

Busybox patches

I busyboxed install-info, a patch is available. The dietlibc patch mostly works, except for strftime() calls. The tr applet must be fixed. (Busybox - dietlibc - ash... did you connect the pieces?)

Other developments

Trying to learn Python, to work in bm/dm with niemeyer. Read a bit about CSS. Fixed bugs in Sarien. Trying to work around libtool lossage to build an old rpm package in the current environment.

So marcelo is the man. Hey congratulations kid! I'm sure you'll do a great job! :)

Other developments: Trying to learn Python. Moved xmp to sf. Started a gallery of games finished with Sarien. Preparing daily builds of scummvm. Postponed vacation.

1 Nov 2001 (updated 1 Nov 2001 at 10:21 UTC) »

Why do I think that NSI sucks?

Oh, I know. It's because I requested a registrar transfer three weeks ago and they waited until the domain expired to tell me that I must renew the domain to transfer it. Now, what should I do?

Latest developments:

  • Busyboxed install-info. Now let's see what I can do for update-alternatives.
  • niemeyer's dm is doing a superb job detecting broken relationships between packages.
  • Dwrap is a bit more usable (well, and a lot more usable than the plain ed2k client). Check it if you're into this sort of thing.
  • I'm producing daily builds of scummvm.

At least one of the two affirmations is false:

  • Bash, when invoked as /bin/sh, will behave like the Bourne shell.
  • Ash is a fairly complete Bourne shell.
I installed ash on a test box as /bin/sh and it broke lots of local scripts running with /bin/sh, previously a link to bash. A statically linked ash has 100 Kb (built with dietlibc), which is much smaller than a dynamic bash, and doesn't depend on ncurses.

Also built busybox with dietlibc. Now I'm planning to implement install-info and update-alternatives as bb applets.

Spent a few hours discussing dm with niemeyer last Friday. dm is a python-based modular dependency analisys tool for RPM-style packages with helpers to detect and fix incorrect, stupid, or brain-dead inter- and intra-package dependency issues. You don't know how messy your packages are untill you start to chart them.

Once you start to use APT, correctness of the dependency tree becomes critical. We (at conectiva) tried to pay special attention to this issue and to fix existing problems. We thought we were mostly clean, but dm shows us otherwise.

Also our experience with APT helped us to understand the reasons of many seemingly arbitrary entries in the Debian packaging policy: APT ditactes that way. Tests on our policy-enforcing autotester should be improved to block packages based on dm's analysis.

And this, after all, seems to be a worthwhile to learn python (and try to get used to the annoying braceless syntax). The results of the preliminary dm prorotype are already helping me on the redesign of some important packages, where dependency mess should be kept at a minimum. Let's see how it evolves...

16 Oct 2001 (updated 8 Jul 2008 at 23:23 UTC) »

Oh boy, I'm so stupid.

I spent six hours this afternoon trying to understand why this old Sound Blaster card wasn't returning the correct value after a reset. I read all the available documentation on Sound Blasters I could find in google. I read the Linux and FreeBSD drivers to confirm that they do exactly the same as I was trying. Tried two different cards and they didn't work. And they would never work, unless you set up PnP correctly :P (Yeah, I checked all other details and forgot this stupid PnP thing. Oh well.)

At least I got some experience points, or so I hope.

Totally unrelated note: Edonkey2000 has a strange name, but it seems to work pretty well. The binary-only Linux client has a messy output, so I wrote a curses-based wrapper.

Running in kernel mode for a couple of days, after many months of userland activities.

Debian should try not to break mozilla and konqueror at the same time. So I'm stuck with old Navigator 4 in my Debian Box.

I'm transferring helllabs.org from (ick!) NSI to dotster. With the price difference I can donate $10 to dyndns and save $10.

[RPM-]Packaging several versions of gcc in such a way that they'll all work is a PITA. kgcc and stackguard will be integrated after 2.7/2.95 and 3.0 can coexist peacefully. The 2.95-based cross-compilers will be next.

Do QNX and BeOS run under VMware?

107 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!