The Wayback Machine - https://web.archive.org/web/20170630201824/http://www.advogato.org/person/ncm/diary.html?start=22

Older blog entries for ncm (starting at number 22)

mrorganic wrote:
In my view, callbacks are no more "evil" than other types of event-handling; they just require more care on the part of the programmer. C++ methods are more robust, but also lard the program with additional overhead and execution lag.

Monty, do you have even the faintest idea what you're talking about? Where is this supposed "execution lag"? What's the practical difference between a C++ "method" (by which I assume you mean a virtual function) and a callback, anyhow, aside from the compiler accounting? (Hint: about three instructions.)

Anything that calls for "more care on the part of the programmer", that could be entirely automated at essentially no cost, is inherently evil. The inevitable lapse of that painfully limited resource, care, is the most fertile source of bugs. Hoard and husband your care, and defend against all things that squander it.

* * *

A new aphorism: "Array boundaries are representatives of God. Disrespect them and God will surely smite you." This leads to assert()s as prayers, and the miracle of a bug-free program for the sufficiently penitent, such as Saint Knuth. (This is not a wholly new concept; "Cleanliness is next to godliness" correctly connects failures of hygiene to the traditionally divine curses of pestilence and plague.)

"Overindex shalt thou not, nor call strcpy() on untested input. gets() is right out."

So, why do people still put lynx on anything anymore? It has so many remotely-exploitable buffer-overflow holes nobody is even trying to secure it.

Now that we have good alternatives, w3m and links, it's time to put lynx to bed, and good riddance.

I've never had Netscape crash during Advogato diary "preview", but I run with Javascript, CSS, and dynamic fonts turned off. Try it.

It turns out the K6-II -> K6-3 surgery wasn't entirely successful; with the K6-3 in the laptop freezes every few hours. I saw a report somewhere recommending changing the RAM delay from 60ns to 70ns, but of course my laptop BIOS doesn't offer such an adjustment.

I found out why the Linux 2.4 kernel on my main laptop wasn't using IDE DMA: because I hadn't configured it in. Likewise, I had missed telling it to optimize for PIIX. It's remarkable how well some things work misconfigured.

On my old (K6-II) laptop, the 2.4 kernel won't boot at all. With a PCMCIA card in, it hangs right after recognizing the slot. Without, it hangs starting init.

Interestingly enough, it also won't run 2.2.19pre7; that hangs at various points in the init sequence (e.g. starting apache).

Turned on my old Mac SE/30 again for the first time in years. It boots from the external drive (a 4G SCSI drive I bought, at a steep discount, for $1200 yea many years ago) but not from the internal 170M Quantum that I bought with it, in 1990 (CPU w/8M RAM & disk, $2800). I don't remember how to boot AUX (Apple UNIX) from the external drive :-).

Recently

Replaced an AMD K6-II with a K6-3 ($30) in my old laptop, today, because the TX chipset that's there would only cache 64M of RAM, whereas the K6-3's on-chip L2 cache works up to 2G. Now I can expand its RAM. It's too fragile to use as a laptop, but will become my router, 802.11 hub, and spare desktop. (Its "glidepoint" touchpad, unusually, supports two-finger and three-finger taps, to click the other mouse buttons. I miss that.)

Replaced a failing 6G laptop drive in my main laptop with a 12G, in time to prevent any loss, last weekend. Whew. Backing up a system by replacing drives is too expensive to do often enough.

Had to install Realplayer8 because 7 expired. For a while all 2G of my South Park episodes were just random bits, because the Real download page is broken. (I managed to hack around it by typing in what I deduced must be the right URL.) Isn't there a window-contents- to-raw-bits (thence to Ogg or something) converter, so I needn't care any more what expiration games they play?

Built and booted a >2.2.x Linux kernel for the first time last night. 2.4.0 does feel zippier than 2.2, particularly on program startup. (Everything works, so far, although bugs in the latest Helixcode GNOME session manager, or libraries it uses, gave me a scare: windows get put in the wrong virtual screen. E window-motion animation shows them dashing off to their improper homes.)

Does anybody know why the Linux 2.4.0 PIIX4 IDE driver now refuses to use DMA?

16 Nov 2000 (updated 16 Nov 2000 at 11:38 UTC) »

I'm now a certified Debian Maintainer. The responsibility is almost more than I can bear.

15 Nov 2000 (updated 15 Nov 2000 at 07:16 UTC) »
graydon wrote:
We definitely need to replace mathworld; I fear the UberWikis of the world may not adequately support editing mathematical notation inline, and that some sort of blend of HTML renderings and LaTeX source might be in order. Recent positive impressions of Hevea spring to mind.
You don't need Hevea or anything else fancy. Just encode LaTeX for the math expression into the URL for an image tag representing it, and make your server generate and cache a PNG rendering of it from the URL. (For safety, serve only out of the cache, and fill the cache only for privileged clients, i.e. yourself.)

mrbill: MSWindows networking is tuned for modem connections. There's something somewhere in the control panel that lets you increase a window to get faster transfers. (Good luck.)

Got DSL today. Essential details below.

On Nov 4, I signed up for Earthlink's ADSL promotion (US$40/mo, 6-month commitment, no setup fee). (I failed to give the "promotion code" to avoid the $100 setup fee, so will need to try to weasel out after the fact.) They said PacBell would take a month for their part; instead PacBell took nine days. The "do-it-yourself" kit arrived a week ago: the modem, a NIC (kingston kne111tx, a tulip clone? haven't tried it), and a half-dozen low-pass filters for the analog phones. (If you have a laptop, be sure to tell them; it seems they would send a PCMCIA NIC instead.)

Software was easy: "apt-get install pppoe", and follow instructions in /usr/share/doc/pppoe/README.Debian. (Since Earthlink will drop the line once a day, I will need more foolery to make it come back by itself, and more yet to get a DNS entry updated each time.) The .deb needs more work to support PCMCIA properly.

Authorization turned out to be a problem. Tech support reports they hadn't entered me in the NoCal "Radius server". Also, the README was wrong: my login name for PAP authentication was not "ELN/damnfool@earthlink.net" as suggested, but just "ELN/damnfool".

Waiting anxiously for Debian New Maintainer status -- all approved, now, just waiting for the final account setup.

schoen: Are you going to prove that RMS exceeds all averages? By all means do. (Requisite apologies here.)

schoen: You can find an image of the curve of (nucleon) binding energy here.

Yesterday, Sunday morning, I took my wife, Katherine, and infant daughter Lily to the Santa Clara train stop to put them on the 7:46 train to Sacramento. I had had only three hours' sleep.

On the way home after sending them off, I recalled seeing her copy of the house key loose in her bag, and hoped she didn't lose it; then I thought about where my keys were, which was on the table in the house.

When I got home, of course the door was locked and all the windows were latched shut. Forcing a window would mean breaking it. I considered calling a locksmith, but didn't know of any way from outside to prove I live there; anyway it was early Sunday morning. The landlady's phone number is unlisted.

I was wearing a sarong, a T-shirt, and my belt pack containing $20. I got in the car and drove to Sacramento, hoping to catch her getting off the train.

When I got there, the train from San Jose was in the station, but she wasn't. I continued up to Placerville and got there, where she also wasn't, a bit before 11 AM. I took a shower and a nap, and read a book. (Michael Palin, "Hemingway's Chair"; recommended for Anglophiles.)

When she got there at 5 PM, it turned out that the train from SJ that I had seen was the "early" train, and that she hadn't arrived yet. Had I got out and checked the schedule, that would have been obvious, and I could have just waited a few minutes and gone home.

I finally got back on the road at 7:36 PM. Fifteen minutes later, on Highway 50, the car started dragging, with a loud thumping under the floor. After a bit of fooling around and taking careful advantage of the lights of passing cars I established that something large and dead was wrapped tightly around the drive shaft.

After fifteen minutes a State trooper stopped behind me. They were equipped with a flashlight and (crucially) a Leatherman with serrated and saw blades. I spent the next hour under the car (still in my sarong) hacking at what turned out to be a fake-sheepskin seat cover wrapped very, very tightly into the groove where the U-joint meets the differential. (Note: cutting the loose stuff, well away from the groove turned to be sufficient to get the tight stuff off; a nice puzzle for a topologist.)

At 9 PM I was back on the road, and got home a little after 11.

I think I have used up my quota of dumb mistakes for the week, so please expect perfection for the next few days.

Finally posted a draft of my article, "It's All in the Packaging". (Please read & comment.)

Went to Stan Kelly-Bootle's 71st birthday party last night. If you don't know who Stan is, he's best known for his books, "The Devil's DP Dictionary" (and its recent re-edition, "The Computer Contradictionary"), and his long-running column in Unix Review magazine, "The Devil's Advocate". He also writes and sings folk songs, drawing heavily on his Liverpudlian heritage. He programmed the very early EDSAC computer, and is (or was) intimate with most of the founders of the computer industry.

Steve Bourne was there. You may have heard of him -- he wrote the Bourne shell (/bin/sh). Some time after meeting him, I recalled that I had actually hacked on his code back in c. 1985, to add "#" comments in our local version of BSD 2.8. (Before that we used ":" for comments, but you couldn't have many of them, for reasons we never bothered to track down.) Mr. Bourne is now a VC.

I learned a new expression useful for testing typewriters: "Mad picky Jews have quit buying frozen lox." It's shorter than the "quick brown fox" line, and more fun. There's also:

To A Quick Young Fox:
Why jog exquisite bulk, fond crazy vamp,
Daft buxom jonquil, zephyr's gawky vice?
Guy fed by work, quiz Jove's xanthic lamp --
Zow! Qualms by deja vu gyp fox-kin thrice.
-- Lazy Dog

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