23 Mar 2002 scjody   » (Journeyer)

My Western Digital drive went from intermittantly bad to intermittantly good, so I replaced it with a venerable Quantum 850Mb that has been in almost continuous use for the past 5 years. Sadly, the software I use every day consumes more than 850Mb, and NFS mounting the drive in my server was just too slow, so I bought a new Maxtor 160Gb. This was a completely ridiculous purchase considering that I barely used the 10Gb capacity of the drive that died, but with things like CRPM and the CBDTPA looming, I thought I should get the largest drive I could afford while unrestricted drives are available. So that's in the server and the server's 60Gb drive is in my desktop. The kernel only sees 137Gb of the drive's capacity - apparently I need a new controller to see the entire 160Gb. Sigh.

Work has been interesting lately, with talk of a merger with "a medium sized Montreal computer services firm". I know the name of the firm but it hasn't been released publically. This has led to a good deal of Fear and Uncertainty at work.

I am currently trying to eliminate the need to restart X between users for our software. This is required to disconnect all X clients and generate a new MIT-MAGIC-COOKIE-1 key for the new user. Killing all X clients without restarting is easy, but generating a new key seems to be impossible. The documentation led me to believe that you could delete the key from the .Xauthority file, shared between client and server, then add a new one, but doing so does NOT remove it from the server's access list, which seems to only get read at startup. X11R6 defines a security extension that allows you to generate and remove keys. But generating a key does not add it to the X server's list, and you can't even do so manually, so the XSecurityGenerateAuthorization function seems nothing more than a cumbersome PRNG. Ah, but with the ..RemoveAuthorization function I could generate a few thousand keys before the Xserver starts, dole them out one at a time to users, and revoke old keys when the user logs out, right? Well yes, except that Revoke requires an auth_in identifier for the key that is only available from Generate, which generates keys I can't use! Finally, I thought of a kludge: X has an -audit option that prints a message when clients connect and disconnect. I could watch for "invalid" clients and kill them. Sadly, an exhausive search of the X documentation reveals no way to translate the number -audit prints into something actually useful, like a Window XID. If I am wrong about any of this, please let me know, but after a lot of experimentation it really looks that way.

My USB DAC project is progressing slowly. I need to etch a circuit board for the USB controller since it's surface mount. For practice, I have been trying to etch a 24Cxx EEPROM programmer, but many of the traces end up being too thin. For something as simple as the programmer, I can retouch them with a resist pen, but the USB controller board is too complex for that. Also, PCB is possibly the most user-surly application I have ever used. Very few commands work as documented, and many don't work at all. Several times, I have been reduced to randomly pressing function keys until I select the tool I want to use. If there was a suitable Free vector graphics program I would use that instead, but I haven't been able to find one.

On a sadder note, I haven't worked on the Polegame in so long that it should be declared legally dead. For now.

Latest blog entries     Older blog 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!