The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Wednesday, Debtember 01, 2004

Conferencing conference calls

It's been over a year, and we're still not quite there with the “virtual gaming table” that Bob wants.

After several months we've given up on sound—the ability for us to talk over the Internet using our voices rather than text. It was a painful lesson to learn, and yet there's still a person or two that wants to keep trying.

But the technology isn't there yet.

This is how we're currently setup—the image shows the private networks (red areas) and their connections (green areas) to the Internet (blue area) with the lines widths representing the relative connection speed (hence the thickest connections are local networks; the DSL connections are thinner and the thinnest connection being Lorie stuck out on a 56k dialup through AOL). And assuming we're trying to use “voice” instead of the gaming specific chat software we usually use. And assuming that NAT issues (dealing with the translation of network traffice between the “private” networks and the “public” Internet) aren't an issue (and they are since most, if not all, VoIP type protocols assume both sides are on “public” networks) and assuming that the VoIP on each user's computer sends a copy to everybody else in the “conference call” then it works like this: Fritz says something, and his computer then has to copy it out to eight other players, five copies of which are headed towards Bob's house (the big red area on the right). And what if Lorie, on her 56k dialup says something? Her connection is suddenly swamped sending out all that data.

And heaven help Bob's network if everybody at the table starts talking.

Things are only marginally better if there's a central server handling the messages. Sure, then everybody's computer only sends a single stream to the central server, which then streams copies out to everybody, but that still leaves five streams headed towards Bob's house.

Today I was taking with Dan, the network engineer here at the office, and he mentioned Asterisk, an open source PBX. Put one Asterisk server out on the internet, another one at Bob's house. Those not at Bob's do a “conference call” to the server on the Internet; those at Bob's house do a “conference call” to the server at his house, and possibly with some hacking, have the two Asterisk servers pass the “conference call” data between them.

It might be possible, but, and this is a big one, but, it's more possible that we can do this on a stupid network than if we waited for this functionality from the “intelligent phone network” (“We're the phone company, we don't have to care!”).

Thursday, Debtember 02, 2004

anger hate rage

Blood pressure rising.

During the hack attacks, I lost my CVS repository (through my own stupidity). I didn't loose the source code, since I hade the latest version here. But my CVS repository was on swift, emphasis on “was.” So I had to start over again.

Only I apparently didn't do it right, and now I'm in the not-so-envious position of having two CVS repositories that can't be reconciled with each other, or with the current copies of my source code. The only resort I have left is to delete every XXX XXXXXX XXXXXXX repository I have and start over from scratch.

anger hate rage

So now I have to find the CVS book to figure out how to re-create my repository. Only I can't find it.

anger hate rage

It is impossible to find anything here at the Facility in the Middle of Nowhere. And it's been that way ever since day one.

I'm lost in my own home. Nothing stays where I put it. It vanishes. Gone. And then there are the piles of stuff that build up everywhere. It makes for finding stuff even more difficult.

I never had this problem back in Condo Conner. Sure, piles of stuff would accumulate there too, but nothing migrated. It was all my stuff. I didn't have to contend with other people's stuff.

So I'm now down to literally throwing stuff off the desk and across the Computer Room, swearing up a storm because of all this stuff that's accumulated on the desk over the past few months.

anger hate rage

The book ends up in a stack of books on the other side of the room, only it's so slim it wasn't visible.

This is not exactly how I wanted to spend the evening.

Friday, Debtember 03, 2004


I'm feeling better.

Saturday, Debtember 04, 2004

Building character

I've been working on mod_blog for the past few days. Bob, who runs the Friday D&D game, has a site that used to use Blogger but due to reliability problems (as well as certain security issues related to FTP) I switched them over to mod_blog.

It's installed, but the input portion is … shall we say … less than user friendly. Frankly, it suits my needs, and it suited the needs for Mark (back when he had a blog) and a variation of it suits Spring, but that's because the three of us know HTML and aren't intimidated by it. But most of the other players don't know, or don't care, to type their entries with HTML so I've been adding code to allow them to input plain text and have it converted to HTML.

It seems like it would be straightforward, but it isn't. Like I said, I'm confortable with HTML and the input side of things reflected that comfort. The first problem was adding a text-based (for lack of a better term) plug-in. The second (and more annoying) problem is the utter horror that are Buffers.

In my CGI library (which I've been developing for easily seven years) I have a concept of a “buffer,” which is 1) horribly misnamed—it's not so much a “buffer” as it is a “stream”—either a stream of input or a stream of output and 2) is so buggy as to be nearly useless. The problem stems from my attempts to support both “read” and “write” methods on a given buffer (did I mention it's really a stream and not a buffer?) and that's why they're so buggy as to be nearly useless. There's only this vauge notion of reading and writing and detecting the end of the stream. I've been having to go in kludging up fixes for the various buffer modules I have, allowing me to write to a buffer, then backup and start reading from said buffer. And 3) what the XXXX was I thinking when I created LineBuffers? They shouldn't exist, period. I think.

Anyway, it's not pretty, and the fixes are rather ad-hoc and I have to “know” which type of buffer I'm dealing with and what I can and can't do with it. Which defeats the purpose of abstracting things behind a “buffer” in the first place.

And then there's the third problem. This is a doozy and it affects nearly every other blogging software out there as well. It's the “copy-n-paste” problem (the linked article explains why a certain page appears corrupted, but it ultimately stemmed from a copy-n-paste operation). What exactly is the “copy-n-paste” problem?

It stems from character encodings and the lack of character encoding information when you copy-n-paste text between applications that have different ideas of what character encoding it is expecting. For instance, viewing a Microsoft Word document using the character set WINDOWS-1252, and copy that into a website that might be expected ISO-8859-1, UTF-8 or even US-ASCII (like who ever would use US-ASCII? Sheesh!). You know what you can expect?


It really bugs me when I see stuff like “sensorâ€and” on a page.

I could try to use the ACCEPT-CHARSET attribute of the <FORM> tag in HTML 4.01, but really, that's just a “hint” to the browser on what to send—it doesn't actually have to pay attention to that at all. To get around that little problem I'm playing around with GNU's libiconv (a large library to convert from one character encoding scheme to another) in an attempt to prevent this problem. You input the text, then I scan it, attempting to classify what character encoding scheme is in use (and right now it only detects US-ASCII, ISO-8859-1, WINDOWS-1252 and UTF-8) then converts whatever it finds into Unicode (specifically UCS-4) then back to US-ASCII, using HTML numeric entities for anything outside of US-ASCII.

All that, just to support easy text entry into a blog, without having it look like crap in case someone decides to copy-n-paste from some other application.

And that's why adding a text plug-in isn't that straight forward.

Update early Sunday morning, December 5th, 2004

Some more details.

Sunday, Debtember 05, 2004

Building more character

It's even worse than I expected.

Or funnier, depending upon your viewpoint.

I'm follwing Sam Ruby's advice on Iñtërnâtiônàlizætiøn and testing what comes through as I copy-n- paste.

I'm using FireFox verion 1.0 under Linux for testing; I've yet to use Microsoft's Internet Explorer (which should prove to be dreadful and amusing at the same time).

So I'm copy-n-pasting the following from my last entry:


It really bugs me

Building character

And what I get back is:

text is WINDOWS-1252

00000000: 0D 0A 26 23 39 31 35 3B AA 26 23 39 36 31 3B DF ..Γ.ρ.
00000010: E5 26 23 39 34 37 3B 80 0D 0A 0D 0A 49 74 20 72 .γ.....It r
00000020: 65 61 6C 6C 79 20 62 75 67 73 20 6D 65          eally bugs me


It really bugs me

What the XXXX?

Not only is Firefox, under Linux, sending input to the test form as WINDOWS-1252 but it's also sending me HTML entities in numeric form! They're the correct numeric entities for the characters in question, but … what the XXXX?

To say I wasn't expecting this is a bit of an understatement.

Well, back to hacking.

Yet more character building

Back from hacking.

And it's been an interesting session. Learned quite a bit, and picked up some new tricks as well.

I'm doing some testing when I copy-n-pasted the following:

sensor—and? How did that happen?  Let's look at the O'Reilly source from which Cory copy and pasted:

The phone has become a platform, moving beyond mere voice to smart mobile sensor—and back to phone again, by way of voice-over-IP.

Sam Ruby: Copy and Paste

The program I wrote would classify the text as UTF-8, then iconv() would return an error. I rewrote the conversion routine so that when it failed (iconv() would return where it failed doing the conversion) I would re-classify the remaining text and continue.

Doing that, the text fragment above would be first tagged as UTF- 8, then WINDOWS-1252 and displayed it correctly:

sensor—and? How did that happen? Let's look at the O'Reilly source from which Cory copy and pasted:

The phone has become a platform, moving beyond mere voice to smart mobile sensor—and back to phone again, by way of voice-over-IP.

But if I copied the text twice, it would still be tagged as first UTF-8 then WINDOWS-1252, but the second copy would be incorrect:

sensor—and? How did that happen? Let's look at the O'Reilly source from which Cory copy and pasted:

The phone has become a platform, moving beyond mere voice to smart mobile sensor—and back to phone again, by way of voice-over-IP.

sensor—and? How did that happen? Let's look at the O'Reilly source from which Cory copy and pasted:

The phone has become a platform, moving beyond mere voice to smart mobile sensor—and back to phone again, by way of voice-over-IP.

Not really sure how to handle that (“garbage in, garbage out” and all that) but it's a lot better than things were before. All that was left was to add some more code to allow plain text or HTML formatted text and a preview mode; I put it online so those of you who are curious can play around with it.

The trick I learned (an epiphany if you will): I added the following to the code:

volatile int g_debug = 1;


That will cause the program to just sit there, doing vast amounts of nothing really fast. The reason for such a weird thing is that debugging a CGI program (and yes, this is written in C—don't ask) is not easy (I used to go through quite a bit of rigamarole to simulate the webserver environment so I could use a debugger). This trick allows the webserver to run the program (which will just sit there) and then I can then use gdb to attach to the running process to debug it (once in, I set my breakpoint, then do set g_debug=0 and resume execution of the program—wish I knew about this eight years ago).

Another amusing thing I learned—that the “/” character in Firefox will bring up a search box. It's not a bad thing, until you try typing a “/” in a <TEXTAREA> field. Then it gets right down annoying.

Now to take what I have and integrate it.

Monday, Debtember 06, 2004

&amp;amp;amp; … or something like that …

I made some more tweaks to the demo program; it now supports a “mixed” mode—you can type in HTML tags, but the system will add <P> tags if you leave a blank line between paragraphs (in fact, it was only five lines of C code—easier than I thought).

There's still one bug and it has to deal with HTML entity encoding (and mostly with populating the <TEXTAREA> with the text that was submitted). Type “&amp;” (which is the HTML entity for a lone “&”) then submit the data. The <TEXTAREA> will come back with a lone “&” where you typed “&amp;” before. Basically, to display “&amp;” you need to display “&amp;amp;” (and to display that I had to type “&amp;amp;amp;”—I think I got the right number of “amp;s”).

Ow—my brain hurts (and if the above is incorrect, I'm not bothering to fix it—which goes to show you how nasty this little problem is).

Oh, the demo program—it also supports a few shortcuts, like “---” (three dashes in a row) will be converted to “—” (the em-dash, and the code that processes entries for this blog will do the same, so check the source if you want to see how I got around that—geeze, this sef-referential stuff will kill me!) and “...” (three periods) will be converted to “…” (elipsis—it's own character); some short-cuts like that (and these shortcuts happen in any of the modes by the way).

Okay, I'm going to lie down now.

Update on Wednesday, April 13th, 2022

The demo program has long since been deleted. This entry can be safely ignored.

Tuesday, Debtember 07, 2004

Control panels redux

Have I mentioned how much I hate control panels? Oh, I guess I have.

A simple operation. Changing the IP address of a site. Make a one, maybe two line change to the DNS zone file, a one, maybe two line change to the Apache configuration file, restart both (and maybe add the IP address to the machine, another file and a command). Ten minutes, and that's if I'm taking my time.

With the control panel C uses?

You can't!

The control panel has two “plans” for websites, a name-based plan, where the website shares the IP address with all the other sites on the server, and an IP-based plan, where the site has its own IP address. The IP-based plan allows you to change the IP address of the site. Except to the IP address of the box. If you try, you get:

And once a site is set to an IP-based plan, you can't switch to a named-based plan. Nor can you switch from a name-based plan to an IP-based plan. “Once created, a name-based domain cannot be changed to an IP-based domain.” (emphasis added)

Oh, you still want to change it anyway?

You'll have to create a new domain. It can't have the name as the old domain, unless you delete it first. And it doesn't matter if you try to create the domain on a different server—you still have to delete the existing website if you want to use the same name.


Sure, the control panel makes it easy to do the typical things you do, create a website, with users, and manage email accounts and FTP accounts, as long as you don't mind doing things its way. Once you start straying from the proscribed course of things (such as earlier today, I had to create a user account with restricted FTP access—it's possible, but not through the control panel) things become difficult, if not outright impossible, quickly.

The inability of this XXXXXXX control panel software to change the IP address of a site is just mind bloggling to me. And this is not like this is the first time, or the second time, this has come up—no, this is like the third or fourth time this has come up since I've started.

Did I mention I hate control panels?

Wednesday, Debtember 08, 2004

Control panels redux redux

I may have been a bit too quick on the draw yesterday.

It seems that the previous sysadmin had started to move the site I was trying to move but didn't finish it. And the initial move was to the server I was trying to move it to, so of course the control panel software complained.

Yes, I should have looked first, but I didn't.

And I still hate control panels.

Blackhole network

Blue Yonder has either ignored me and doesn't care, or the system that keeps spamming me is so infected with virii that nothing short of cutting the network cable will stop it.

Their spam via my backup MX host has stopped, as Rob (previous roommate and sysadmin of my backup MX host) has blocked the IP address, so now I'm blocking that address on my primary MX host.

The only thing I have to decide is if I want to “reject” the packets (which sends back notification that a connection isn't wanted) or “deny” (which silently drops the packets with nary a word as to why causing the sending side to keep trying and trying … )

Decisions … decisions …

[I ended up doing a “deny,” in the hopes of tying up the box and keeping it busy doing nothing.]

Thursday, Debtember 09, 2004

They're leaving on a jet plane

It is quiet here at the Facility in the Middle of Nowhere.

It is quiet here at the Facility in the Middle of Nowhere because The Kids are not here.

The Kids are not here because they are currently in Colorado with their father.

They are currently in Colorado with their father for the rest of the month.

For the rest of the month, it will be quiet here at the Facility in the Middle of Nowhere.

Ahhhh … blessed quiet.

Friday, Debtember 10, 2004

Didn't know it was today …

Happy Nobel Prize Day!

Confectioner or fasion designer?

I have my doubts this this remake (via Ceej's black book) of Willy Wonka and the Chocolate Factory. Johnny Depp is no Gene Wilder and if anything, is … freakier than Wilder's portrayal of the reclusive confectioner; more androgenous—more wacked out fasion designer if you will. The movie also has this wierd Clockwork Orange vibe to it, not in the “ol' ultra-violent in-out in-out” manner, but set-wise, the future as seen through a 60s sensibility (guess that means Charlie will hanging out with his droogs at the milk chocolate bar).

And now I'm earwormed with the music from the preview! Aaaaaaaaaaah! Make it stop!

Saturday, Debtember 11, 2004

Conservation of cats

The Prodigal Cat returns!

About a week, week and a half ago, Spodie, Spring's cat, decided to take yet another walk-about (he took a week long walk-about sometime last year) and we were getting rather concerned about his absence.

But guess who shows up today, looking much thinner?

Spodie O'Dodie.

Whereas Spodie doesn't need to loose any weight (he didn't need to loose any before leaving, and now he could stand to gain a pound or two) Tula, our other resident cat, has enough poundage on her to spare a few towards Spodie. It's like we have some form of conservation of cats going on here.

Sunday, Debtember 12, 2004

How to cheat at art

Even a pencil can “cheat”. In fact, the idea for this lecture was partly inspired by Paul Spooner, an artist who only half jokingly accused me of cheating while watching me draw a cartoon. I start with a pencil, scrubbing about, gradually deciding where the lines should be, what looks right. (I never went to art school, I'm an engineer by training, and I can only draw in this one style which evolved over 14 years doing a weekly cartoon strip for the Observer (called The Rudiments of Wisdom) so I remain a sort of primitive. Eventually I go over the lines I like with a pen, and finally rub out the pencil. Paul had previously admired my drawings, assuming I had some unerring ability to get my pen in the right place every time—but this use of the pencil was “cheating”, it was almost copying, not drawing.

Historically, though, artists have done much more cheating than simply using pencils. The renaissance artists were so keen to make their paintings look “real” they used all sorts of tricks. Realising that medieval paintings had rather strange perspectives, they drew elaborate geometrical constructions to make sure they got it right. But they went further, inventing a whole series of grids, screens and sights to “improve” their work. I had been drawing for several years before I found myself holding out my thumb at arms length to compare the relative sizes of things—a simple version of these renaissance drawing aids which I had assumed was simply an artists pose, but it's actually very useful.


Now I don't feel so bad about cheating on my Drawing I final.

Well, it felt like cheating to me. But I went ahead with it anyway.

It was December of 1989, and for our final in Drawing I (at FAU) we had to do a self-portrait. Our first assignment in Drawing I was a self-portrait and I suppose this was to show us how much (or little) we had progressed during the semester. And like our first assignment, our final was a “take-home” test—one that we had to do at home, to turn in before date such-n-such. And time was running out.

Of course it was the night before it was due before I even started. All my life I've been one to procrastinate (although oddly enough, I never procrastinate procrastinating—go figure) and now was no different. Knowing me, I might have even waited until midnight—the day it was due to start.

With a very hard deadline staring me in the face, I started looking for the quickest, easiest thing I could do that could still be considered “drawing a self-portrait.” It was then I saw the copy machine in my closet.

Yes, I had a copy machine in my closet. No, I am not going to explain why I had a copy machine in my closet (doesn't everybody have a copy machine in their closet?) but the fact was, I had one. I also saw the homemade light table (plywood box with a glass top and lightbulb inside used for animation and tracing—doesn't everbody have one of those in their closet?) when inspiration (or was it despiration) hit.

Within the later chapters of Drawing on the Right Side of the Brain (one of our textbooks for the class) was a technique of drawing where you shaded (using graphite) the entire paper, then used an eraser to “draw” the picture. The technique lent itself very much to a “photo-copyesque” look.

Copy machine. Light table. I also had the means to produce the vast amount of graphite powder to shade the drawing paper. And enough erasers to get through this scheme of mine.

So. Photocopy my hand (sorry, I wasn't about to photocopy anything more risqué). Generate copious amounts of graphite. Smear graphite over drawing paper. Tape photocopy and graphite covered paper to the light table. Grab eraser and start to erase “draw.”

All in all, it was probably two hours worth of work (even with the light table, it was hard enough to see through a graphite smeared paper, and mostly black black-n-white photocopy) to get a “drawing” of a photocopy of my hand.

Which is why it felt so much like cheating; but I never said anything. I had a grade to get.

And grade I did. Got an “A” on the final.

A few weeks later, I had the drawing framed (a cheap frame, but still, framed) and took it into my office (at the time, at IBM). About two weeks later, my picture was gone!

Someone stole my art from IBM!

The cynical side of me says that someone stole the image to get the frame, but then again … how often is it that someone can claim their artwork (no matter how it was made) was stolen?

Monday, Debtember 13, 2004

It may be illegal to protect your own network

A road less traveled

On July 31, 2001, I began the development of what would eventually become LaBrea. The road that was traveled to its current incarnation is well documented, because it was traveled quite publicly and with the help, encouragement, and feedback of many people.

On February 18, 2003, I released the current stable version of LaBrea (version 2.4). By that time, I had begun work on “the next big thing,” although I still get questions about LaBrea daily.

On April 15, 2003, it was brought to my attention that distributing LaBrea from this site may place me in violation of Illinois Compiled Statutes 720 ILCS 5 (Criminal Offenses / Criminal Code of 1961), specifically, Section 16-18 through 16-21.

The “Super DMCA” vs. LaBrea

This section of the Illinois Criminal Code was added on January 1, 2003 by Public Act 92-728 and defines an “unlawful communication device” as “any communication device which is capable of … facilitating the disruption… of a communication service without the express consent or express authorization of the communication service provider …”


It's a shame really. The concept of a network tarpit is wonderful— basically a computer that accepts network connections and puts it on hold (for the technically inclined, it accepts a TCP connection, then only sends out “keep-alive” responses), indefinitely, which is useful in trapping network scans, exploits and virii. Dan (the network engineer I work with) and I were talking about them today and I was surprised he never heard of LeBrea. He was enthusiastic about the concept, and so am I (but never really had a chance to play around with it alas).

But this … gah! In-bloody-sane. It may be illegal to protect your own network—never mind that NATing may be illegal depending on how you read these laws.


Tuesday, Debtember 14, 2004

As if …

We're looking around for a new place to live and since today was a relatively slow day at the office, I decided to poke around the Detroit area just to see how economically depressed it was. I grew up in the area and it was more curiousity than a real desire to live there that made me poke around the site (especially since it seems half the city seems abandoned).

City: Detoit, 3 or more bedrooms, single family homes, no rental units, show me what you got.

A 2,522 square foot home, 4 bedrooms, 2½ bathrooms, for $2,000.

In Grosse Pointe.

Grosse Pointe, which is the South Hamptons of the Detroit area.

I had to double check to make sure I had not selected rental units.

I didn't.

So I'm looking at a 2,522 square foot home, in Grosse Pointe, for $2,000. An “estimated” $9 per month, according to the site.

I knew Detroit was an economically depressed area, but I didn't expect it to be that economically depressed.

As if that wasn't bad enough, the next listing was for a seven thousand square foot home for $2,500. Sure, the taxes for this house run an approximated $8,000 a year, but hey, that's less than $700 per month, which is almost half of what we pay to live here in the Facility in the Middle of Nowhere.

Needless to say, I was having a hard time wrapping my brain around this. The realtor must have dropped a few zeros when listing the price. Must have!

I then started poking around the listing for the cheaper, 2,522 square foot home when I found the punch line: it's a lease! It's probably $2,000 per month to live in the house, not $2,000 and here's the title.

Okay, that's a bit more reasonable then.

At least I can stop thinking about the house now …

Wednesday, Debtember 15, 2004

Server Room Lights

[Blinkenlights 1] [Blinkenlights 2] [Blinkenlights 3] [Blinkenlights 4] [Blinkenlights 5] [Blinkenlights 6] [Blinkenlights 7] [Blinkenlights 8] [Blinkenlights 9] [Blinkenlights 10] [Blinkenlights 11] [Blinkenlights 12]

Thursday, Debtember 16, 2004

For Your Information

This entry intentionally left blank.

Sunday, Debtember 19, 2004

My first auction

Last month I wondered how well a score of small, genuine imitation conflict-free diamonds would do in an eBay auction. Well, I put them up for auction (just the diamonds, not the transparent case and visual amplification module). But not at eBay.

At a site called Jittery.

I'm participating in the BlogPoint iPod Give-away, where:

BlogPoint iPod Give-away

So I signed up with this blog, I'm displaying the BlogPoint (and intend to for at least through mid-January), this blog is more than one month old (it's … oh … um … five years old at this point), this is the only blog I'm entering into the Give-away, I'm a member of Jittery and over 18, and I am a US citizen.

Well see how this goes …

The Jittery site itself seems interesting, not only allowing one to sell items, but to put up ads for items you want to buy. Neat twist—now I can scan the site to see what people want that I might have, thus avoiding the hassle of listing the item(s).

Me, I'm just hoping to get an iPod out of this …

Monday, Debtember 20, 2004

Yeah, they're that bad

Spring picked up the Sunday paper on, well, Sunday and the first thing I snagged was the Sunday Comics.

I shouldn't have bothered.

Thankfully it wasn't my money this time.

Even Berkeley Breathed's new comic strip, Opus, was … eh (the first three panels were funny, then it went downhill fast).

Foxtrot was mildly amusing.

Everything else? Dilbert? Peanuts? Baby Blues? For Better or for Worse? Mutts? Sherman's Lagoon? Born Loser? Brewster Rockit: Space Guy? Prickly City? Zits? Red and Rover? Luann? Blondie? (is that strip ever going to die?) Non Sequitur? Doonesbury? Prince Valiant? (the artwork on that one is worse than it was a decade ago—what happened?) Hi & Lois? Mary Worth? (do people still read this?) B. C.? Marmaduke? The Lockhorns? The (gag!) Family Circus? Get Fuzzy? Cathy? (“Aaaaaaaaack!”) Baldo? Rose is Rose? The Wizard of Id? Curtis? Garfield? Hagar the Horrible? Sally Forth? Beetle Bailey?


Or worse (and really, the artwork on Prince Valiant was bad, really bad).

There wasn't even a joke in the Garfield strip:

Panel 1: Garfield: Food! (Pointing to food bowl)

Panel 2: Garfield: Bed! (Pointing to bed)

Panel 3: Garfield: Punching bag! (Pointing to Odie)

Panel 4: Garfield: Confidant! (Pointing to Pooky

Panel 5: Garfield: Soft touch! (Pointing to Jon)

Panel 6: Garfield: Honestly, what do you get the cat who has everthing?

Garfield, Sunday, December 20th, 2004

Basically, it was a waste of about fifteen minutes.

I'll stick with the web-based comics. Not because, as a whole, they're better, but because there's a wider variety, and even if 90% of them are worse than the syndicated newspaper comics, that still leaves more web-based comics that are better than the number of syndicated newspaper comics. Or a larger number of web-based comics that cater to my tastes.

Tuesday, Debtember 21, 2004

“They were all spam!”

If you get notification that your webhosting account is overquota, and you get your email through your webhosting account, check to see if you have an email account that isn't getting regularly checked.

I only mention this because yesterday one of our clients exceeded their disk quota, and it was due to over 55,000 emails sitting in one account, unchecked (or left there) for the past year. Even deleting 25,000 of them yesterday (starting with the oldest—I figure that if the user in question didn't bother to delete them off the server, or even check that account, then that user isn't going to miss them) didn't bring them under quota. I had to delete about another 5,000 or so today (unlike yesterday where I deleted the oldest 25,000 I instead started with the largest messages, then obvious spam).

In fact, of the few customers that regularly go over their quota, it's because they fail to delete email off the server (or even check those accounts).

Wednesday, Debtember 22, 2004

“Don't mind us, we're just using these offices …”

The story of two programmers, with no contract and no managers and no access managed to write a very popular piece of software that officially, didn't exist.

In August 1993, the project was canceled. A year of my work evaporated, my contract ended, and I was unemployed.

I was frustrated by all the wasted effort, so I decided to uncancel my small part of the project. I had been paid to do a job, and I wanted to finish it. My electronic badge still opened Apple's doors, so I just kept showing up.

I asked my friend Greg Robbins to help me. His contract in another division at Apple had just ended, so he told his manager that he would start reporting to me. She didn't ask who I was and let him keep his office and badge. In turn, I told people that I was reporting to him. Since that left no managers in the loop, we had no meetings and could be extremely productive.

Twenty percent of Apple's fifteen thousand workers lost their jobs, but Greg and I were safe because we weren't on the books in the first place and didn't officially exist. Afterwards, there were plenty of empty offices. We found two and started sneaking into the building every day, waiting out in front for real employees to arrive and casually tailgating them through the door. Lots of people knew us and no one asked questions, since we wore our old badges as decoys.

On March 11, 1994, the front page of the Times business section contained an article on the alliance among Apple, IBM, and Motorola, picturing Greg and me in my front yard with a view of the Santa Cruz Mountains. Someone I knew in Apple Public Relations was livid. I had asked if she wanted to send someone for the interview, but she had said that engineers are not allowed to talk with the press. It's hard to enforce that kind of thing with people who can't be fired. It was positive press for Apple, though, and our parents were pleased.

Via 0xDECAFBAD, The Graphing Calculator Story

There may be a lesson in this somewhere, but I'm at a loss for what it may be …

La commedia degli errori

Well, that was fun.

I went to make the previous entry, and like nearly every entry I make, I do it via email, since I find it more convenient and the editing environment is much nicer than the textbox thing you get on a webpage.

So I mail off the entry, then go to check the page to see if it posted and I can't get to the server. It's not responding. Can't ping it. Nothing.

Now, the server is one of a pair of server located in the Nap of the Americas in Miami. I can get to the other server just fine. I can't get to this server, which isn't fine.

Not that much of a problem—the server is plugged into a controled powerstrip so it can be power cycled remotely. Only there's a problem: I have the old address for the powerstrip, not the new one.

See, last month there was a major IP renumbering and I neglected to get the new IP address of the power strip.

Not that much of a problem—I can ask the previous admin what that is (since he still has some equipment down there as well). Only there's a problem: it was never given a new address, so it still has the old address.

Not that much of a problem—I still have the old IP addresses programmed into the system so I should be able to get to it. Only there's a problem. The IP block I was using (the old IP addresses) was different than then IP block that the power strip was on.

Not that much—

No, problem. Big one. The network engineer (Dan, I've mentioned him before) was confused at to which block we were using, and which block we are now using. Basically, there was a mess of communications between various parties about what IP addresses were actually in use and when and whatever.

So, I called down to the Nap of the Americas to have them physically power cycle the down box. And while I was waiting for that to happen, Dan and I were trying to puzzle out just what IP addressess we were using and what we should be using and what not.

We were able to finally get access to the power strip via its old IP address via the server that was still up. Only there was one slight problem—no web browser on that server.

Not that much of a problem—with Gentoo, Lynx was one emerge command away. Then log into the power strip. Only there's a problem—the login information I have doesn't work. I can't log in to power cycle the machine.

Not that much of a problem though—the Nap of the Americas had called back and were ready to reboot the server. Which they did (thankfully, they got the right one too!). So the server is finally back up and running.

What I think happened is that some equipment was removed from the cabinet the servers are in, and the server might have been bumped and powered down by mistake, because I can't see any obvious signs of anything else happening to the machine.

But you never know …

Thursday, Debtember 23, 2004

Learning physics the hard way

“I am simply interested in seeing how well my students have absorbed the concepts of the laws of thermodynamics, potential versus kinetic energy, and so forth,” said Gaston at the press conference. “Regurgitating parts of a textbook on an exam is fine, but demonstrating applied knowledge is another matter entirely.”

A typical Gaston exam question involves asking students to choose between catching a small metal box filled with 20 pounds of lead dropped from a height of 1 foot, or the same metal box stuffed with 20 pounds of feathers dropped from the roof of an 8-story building. Each year, about five students try to catch the feather-filled box and end up in the emergency room with concussions.

“I still think it was a trick,” glowered Marvin Stoddmeyer, a student who chose the feathers and failed the final exam, breaking his collarbone in the process. “Gaston said something about momentum and kinetic versus potential energy or something during the year—yadda yadda yadda. But at no point did he specifically warn us not to try to catch a 20 pound object dropped from an 8-story building. That's deception, man.”

Via Joanne Jacobs, Physics Teacher Earns Praise, Criticism for “Applied” Exams

I can bet that Marvin Stoddmeyer will never forget the difference between potential and kinetic energy after this. Nothing quite like learning physics in an applied setting.

I wonder if Spring will me to teach The Kids “Applied Physics” like this?

Hmmmm …

Friday, Debtember 24, 2004

Is there something going on?

It was a calm quiet day today, and with the exception of having to drive to the datacenter to reboot a dead server, not much in the way of excitement. The drive over was relatively traffic free, and when we went shopping later on in the evening, traffic was pretty dead for a Friday night.

So where the stores.

It's like … it's a holiday or something …

Saturday, Debtember 25, 2004

Oh, it's a holiday, isn't it?

.qggL     .gggr.
  PMML    /|MM
  |!MM,  /`|MM   .d/"q,  qgg;+Ml qgg;+Ml vgg. .y.
  | YMM,j' |MM   MM;.jMl |MM` "  |MM` "   qM| j`
  |  qM#'  |MM   MM|     |MM     |MM       MMg'
.j|.  qF  .+MM.. 'MMbxr` jMM.    jMM.      'MF
                                         x, /
  .x/--\xxl ,xx               ,gb           .
.dMT    'q| |MM               '"'         .dM
dMM       ` |MM/dMg,  qgg;+Ml qgg  j/"`+  qMM-. ,g'`fg,  qgg/dM#,w#Mb  j/"`+
MMM         |MM  MM|  |MM` "  |MM  MMbx/  |MM   `P'.jM|  |MM  |M|  MM  MMbx/
'MMl      . |MM  MM|  |MM     |MM  .`vMMl |MM   ,gP`|M|  |MM  |M|  MM  .`vMMl
 'vMb...r/` jMM..MM|. jMM.    jMM. +,.,P' 'MMx: MM|r+M|. jMM..dM|..MM, +,.,P'

Update a few seconds after posting this

I've had this in my quotes file since 1988 and it was only now that I noticed that “Christmas” was misspelled “Christams.”

How embarassing.

A Very Celtic Christmas Tale

It's very early Christmas morning—so early the sun isn't up yet, but we still are. We're just chilling out, half watching Divine Secrets of the Ya-Ya Sisterhood dubbed in Quebecian French (don't ask me—Spring is the one who started it) and half surfing the Inter—

—power goes out.

Dark. The entire area around the Facility in the Middle of Nowhere is sans power this early Christmas morning.

So we end up with Spring telling a Celtic færie tale by candlelight as we sat around our (rather small) Christmas tree …

Sunday, Debtember 26, 2004

Sucker rod

I'm reading the man page for syslogd when I come across the following under the security threats section:

4. Disabling inet domain sockets will limit risk to the local machine.

5. Use step 4 and if the problem persists and is not secondary to a rogue program/daemon get a 3.5 ft (approx. 1 meter) length of sucker rod† and have a chat with the user in question.

†Sucker rod def.—3/4, 7/8 or 1in. hardened steel rod, male threaded on each end. Primary use in the oil industry in Western North Dakota and other locations to pump “suck” oil from oil wells. Secondary uses are for the construction of cattle feed lots and for dealing with the occasional recalcitrant or belligerent individual.

That's just darned amusing …

We had 128 BYTES of memory and we were HAPPY!

Parker: Not really, because it was Atari and was state of the art back then.

Bobby: And because people were stupid and liked addictive games. People were like, “Wow—such good graphics! I mean, they got a dot with a key. Woooo!”

Via Jason Kottke, Child's Play II

Guess the kids really didn't like the Atari 2600 Adventure game. Growing up, my friend Hoade had that game and we played for hours walking around (as far as a large square dot can “walk”) slaying the ducks dragons and even finding the invisible dot.

Loads o' fun I'm telling you.

My absolute favorite Atari 2600 game, in terms of “my god this is so horrible I can't stop rolling on the floor, laughing so hard I can't breath and my side–my god does it hurt—I'm dying here” has to be the Atari 2600 Football game (which my friend Bill owned). The entire field on the screen (and given the low resolution of the system, that's a mightly small field), eight players (four badly flickering blobs per side) and a square dot for a football. Once thrown, you could control the football, moving it left and right as you tried to navigate it around your opponent's men (who tended to move offscreen as if going for hotdogs and beer) to one of your own (who tended to move offscreen at the other end for hotdogs and beer).

Popping that cartridge in was good for a solid hour of side splitting laughter it was that bad.

Kids today just don't know what they're missing.

Monday, Debtember 27, 2004

Notes from a drive through window

The woman in front of me pulls her car out of the drive through lane into a U-turn and starts to head the other way, then stops, and parks across five parking spots. This isn't boding well.

“Um … hello?”

“Brrzzzzzckorder please?”

“Yes, I'd like a number two with tomato—”

“Bzzzzzick drink with that?”

“—um … Coke.”

“BzzzzzzzIs that all?”

“Um … A number two with tomato, lettuce and—”


“Forget it! I'll come inside!”


“Yes, I'd like a number two with tomato, lettuce—”

“Is that for here or to go?”

“Are you people incapable of letting me finish my order?”

“If we let you finish your order, we'll have to actually listen.”


I'm waiting for my food. The cashier then asks the girl behind me of she's ready to order.

“Um … like, yeah. I'll … um … take a bacon cheeseburger, fries and a shake.”

“Would you like a combo meal?”

“Um … yeah, sure … okay.”

“Do you want the junior combo meal or the number four?”

The girl has that “deer-caught-in-headlights” look. “Um … you mean … like … I have to think?

Mercifully my food arrived and I was able to leave.

User expectation

Have I told you how much I hate—

yes, I think I have.

There are about five different trains of thought running through my head about this right now, but it would take some serious effort, and a lot of writing to explain all the thoughts (touching on such diverse subjects as data storage, data organization, configurations, RISC (or rather, a RISCesque approach to service configurations) and process management, in addition to these XXX XXXXXX XXXXXXX control panels.

But alas, I think I'll try to limit myself for now to just control panels.

Now, it may be that it's just this particular control panel we use here at The Company, but my limited exposure to two other control panel platforms hasn't left me feeling all that confident on their overall operation.

The problem, I think, is one of user expectation. And as a user of this control panel, it doesn't meet my expectation of what the tool should do. Sure, it might be easier for some kid out of college with scant experience with Unix to get up and running, but when anything (and I mean anything) goes wrong, it's damn near impossible to clear up without resorting to a lower level approach, like … the command line! (Oooooooooooooh!) And the problem with dropping down to the command line is that often times, you break the control software, or that whatever you fix breaks again when the control software asserts its control over the system and resets the configurations back to how it thinks they should be.

For instance, up until late last week we've been having an IP address conflict—two servers responding to the same IP address. This is not a good thing. Late last week I was finally able to track down which two machines were fighting over the IP address (and to do this, I had to log into the managed switches, check the ARP cache to see which port each machine was plugged into (found out that a third machine was programmed with the same IP address), then track down the two machines in question—no nice graphical user interface for this, no siree). I finally pinned down which machine was supposed to have the IP (this was a case of a website being moved from one server to another then yet to a third). Removed the site (using the control panels) from the two machines that the site shouldn't be on (figuring that the control panel would do its magic to remove everything it should and not break more stuff) and forced the network switch to clear its ARP cache for that IP address.

Then all was right with the world, and the network, and the site. And lo, the customer was happy because now they could get to their website.

Until today.

And lo, the old server said that it has that IP address, and lo, the switch obeyed and started sending network traffic unto it, even though that server servith not under that IP address. And lo did the customer complaineth.

Book of ARP, Chapter 2, verse 17

Yup, the switch was sending traffic for the IP address in question to the wrong server. I log into that server, A, and run ifconfig and well … the IP address does not show up. I log onto the server that is supposed to have that IP address, run ifconfig on it, and well … the IP address does not show up there either!

I log into a third machine, ping the IP address, then check to see which machine is getting the traffic—it's the old server.

I scour up and down the old server, searching every file under /etc (where all the configuraiton files live) and not finding the IP address anywhere. I double check through the control panel that the IP address is not supposed to be there, and nope, according to the control panel, this server is not supposed to be listening in on that IP address.

Yet it is.

It was suggested that I reboot the old server and see if that fixes the problem.

It does.

The correct server now responds to the IP address.

This is not a Windows box! You're not supposed to fix problems by randomly rebooting the server!

Yet I scour through that server, looking for the IP address and not finding it. I can't figure out how the server was told to listen to that IP address, because ifconfig isn't showing any network interface with that address. But nonetheless, it is.

[I found out, through some research, that this control panel uses the ip command, not ifconfig like every other Unix system I've used. Even if this is a better program for what the control panel is trying to do, why, oh why, is it incompatible with ifconfig? What is up with that?]

Perhaps I'm asking too much of a control panel that can manage to deal with manual tweaks of the system from time to time? Or perhaps I'm just bitter that I have to learn yet another system for the umteenth time, and one that can't even do a simple thing like change an IP address of a website (and funny, but I don't have nearly this level of problem with the other servers I admin—the ones that don't have a control panel installed).

… and one more thing

Don't even get me started on FrontPage

Wednesday, Debtember 29, 2004

Probably because some Pointy-haired Boss wanted a prettier button

The fact that the managed power pole (accessible via the web so that remote power cycles are possible) still had the old IP address wasn't a problem—I still had the setup from last week so I could get access. This time, I was able to get the correct credentials to log in to powercycle this server.


The site isn't Lynx friendly. Not in the least.

Frames based, which made it a nightmare to navigate. But I was able to poke around find the right page where the outlets were listed, select power cycle, page down to the bottom of the form to find—

—the XXXXXXX button is JavaScript based!

And what does it do?

Well, let's see …

function send_authentication(formnumber) {


They use JavaScript to simulate the action of a well-defined element of HTML, namely the Submit Button! Which would work reguardless of browser!

“Oooh, but that button graphic looks so good!”

I'm really feeling the need for a sucker rod.

So, if all the JavaSript does is simply simulate <INPUT TYPE="submit"> then let's add it. I save the page, edit it to add a submit button, load it up, and hit submit, and lo (that word—I seem to be using a lot lately) the server is power cycled.

Would it kill them to make the web pages a little more Lynx friendly?


Thursday, Debtember 30, 2004

On the way home today, I was able to catch the train.

[Catching a train]

Friday, Debtember 31, 2004

So long …

Well, here it is, the last day of 2004.

And what a year it's been—honey-filled walls, demolition of the surrounding area, a water heater on fire (how ironic is that?), four hurricanes, getting promoted two days after starting work and spam, spam, spam and more spam.

And oh, yeah … this guy.

I'm kind of glad this year is finally over.

“But they will be tasty!”

It sounds like a battle zone outside as I sit here in the Computer Room during the waning hours of 2004, looking for some guidance, some assurance in what the New Year™ will bring. Predictions of 2005, in other words.

And i come across Psychic Fred, a “cyber caster” of dubious talents who's predictions of 2005 reassure me.

Mother Nature (or, Planetary Mind if you prefer) is struggling to cleanse Earths oceans in an evolutionary plan to create new ocean species as a food source for humankind. Soon there will be some very strange looking life forms coming out of the ocean—but they will be tasty! Also, they will be a life form with minimal self awareness so that consuming them will be karma-free.

Predictions 2005

Reassure me that I shouldn't look to psychics for reassurance of the future.

I tried viewing his predictions for 2004, but sadly, they're expired.

But I've saved a copy of the page and if I remember, will visit them next year to see how well ol' Fred here scored. It won't be easy, since some of his “predictions” aren't predictions at all:

Emissaries of Light have been arriving on Earth since the late 1970s. These are children who were trained in spirit-form to help elevate world consciousness. Unfortunately, many of these children have not been able to cope with the prevailing negative energy of current Earth. These children, who are brilliant and spiritually powerful, are literally disintegrating energy-wise and falling into mental confusion such as ADHD, ADD, depression, and anxiety. We try to make them conform to our sense of reality by medicating them. The medications are literally interfering with the unique neural activity that was the tool they were given to help the world. By reducing their sensitivity through these harsh medications, we have done them and the world a great injustice.

Predictions 2005

Um … yeah. How is that a prediction?

My prediction? He'll sweept these under the carpet and have new, even more innane predictions for 2006.

Obligatory Picture

[The future's so bright, I gotta wear shades]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site:, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.