I've been reading several articles about GUIs (notably the new one for
MacOS-X) and it seems like there is a simple solution to the complexity
plaguing them—complexity of features. Windows has both menus and
toolbars, with each application having a custom menu and/or toolbar.

Now, since most modern GUIs are message (or event) driven, it would seem a
much better idea to construct an application as a client/server model—the
GUI being the client sending messages of what needs to be done to the
application, or server.

Just document the messages and parameters required by the server and you can
customize the GUI to send those messages. So one user can have a window
full of those cryptic hieroglyphic iconic toolbars, another can have a
traditional pull-down menu, a third can bind weird keyboard macros and a
fourth can have a mixture.

This would also make applications scriptable. Imagine you could do the
following with Photoshop:

I just now noticed that the paper napkins I bought are decorated with icons
of crayons, lipstick containers or bullets. I can't tell which though. I
suspect crayons or lipstick because some of them give the impression of
drawing another icon nearby.

Mark and I
tried to get PHP
installed on the main webserver. Or rather, I was doing it while Mark
looked on.

Snag one—when following the PHP instructions to install mod_php3
I found that it excluded the module I wrote,
mod_litbok. That's
when Mark took over and spent the next hour trying to get both PHP and my
module compiled into the same webserver.

I remarked that had I been the only one doing it, I wouldn't even give PHP a
consideration after 20 minutes—complexity for complexity's sake and the
poor quality of the install documentation and all that.

But Mark, who thrives on solving problems that shouldn't exist in the first
place due to poorly written software, got both modules installed. We copied
the (now huge) executable to the webserver.

My module didn't work properly. Mark was upset that I put the old
executable up. I consider my webserver a production server and until I find
the problem, I'm not going to have a half-working module.

If you start asking yourself “why work?” you may discover the connection
between wage slavery, misunderstandings of leisure, lifestyles based on
consumption, corporate welfare, education that often amounts to little more
than conditioning, and the global social and economic crises we are now
facing. We hope that the materials we feature here will encourage critical
thinking about such things.

After spending a few hours experimenting, I figured out what the problem was
in getting PHP and mod_litbook
working in the same server—it was entirely my problem.

I re-extracted Apache from the archives, and proceeded to add my module
first, see that it works properly, then adding PHP (paying very careful
attention to the directions for adding it manually) and testing to see if
both worked.

They did.

I then moved the new executable to the webserver and tried it.

mod_litbook didn't
fully work, like last time. That was a clue I should have punced upon last
time.

Turns out I wasn't running the latest version of mod_litbook on the
primary webserver. The version I released was a bullet proof version that
Mark had (at my
urging) criticized for some potential bugs that I fixed. In the process I
had included a few more configuration directives and it was those missing
directives that was causing my module to fail.

Yes, you read right—a way to tunnel TCP/IP over the SMTP
protocol, which itself runs over TCP/IP. The author of the page
states that this is for firewalls so restrictive that only email passes
through. Issues of latency aside, is seems so … convoluted … to do such
a thing.

But remember—the Internet sees censorship as damage and routes around it.
Often times in ways people don't expect.

I've been helping someone setup DNS—more specifically, so he can control
the reverse lookups. I use NS
records but according to the documentation of
BIND
and RFC2317, you're supposed
to use this horrible CNAME hack. The only thing I can think of for doing
that, beyond the Complexity for Complexity's Sake Syndrome, is to avoid
confusing a person over having to configure an IN-ADDR.ARPA domain
they're not really delagated to serve.

I was told the trick by my friend
Kelly who used it for
his home network. He sat down and applied some thought as to how DNS works
and came up with this method.

One of my many-years-ago friends, long since deceased, was a giant, a member
of the Morgan family. He said to me: “Bucky, I am very fond of you, so I am
sorry to have to tell you that you will never be a success. You go around
explaining in simple terms that which people have not been comprehending,
when the first law of success is, `Never make things simple when you can
make them complicated.' ”

I'm still working on the
tumbler code and it's more
interesting (read: complicated) than I originally thought. Basically, I
think I want too much here.

I already parse
Bible notations and
to that I want to add a date-based reference system for the journal here.
The bible notation is of the form:

book `.' chapter `:' verse

while the date based version is:

year `/' month `/' day `.' entry

It's easy enough to specify multiple unit separators, but I do want to
maintain a canonical form for the search engines—I'd rather not pollute
them with multiple references to the same page, so if someone were to
request Genesis.1.1 (note the
period instead of a colon), they would be redirected (via a permanent
redirection) to
Genesis.1:1 (note the
colon). Similar for the date tumblers.

So now, while I can accept multiple unit separators, I need to keep track of
which are the prefered ones, and which aren't, and do redirection
accordingly. Doing this without making the code a horrendous mess is not
easy.

Then there is the spelling correction (at least as far as the Electric King
James goes)—someone can still have a correctly formatted reference to
a book, say Eklesiastics.1:3 and
yet it isn't correct. It's not E-K-L-E-S-I-A-S-T-I-C-S, it's
E-C-C-L-E-S-I-A-S-T-E-S (don't worry, I can't spell either). In that case,
I can detect what the user was most likely trying to get to and again, send
a redirection to Ecclesiastes.1:3.
But that's something else I need to keep track of.

Eight versions of the tumbler code later, I think I have it working, but I
decide to ask for a second opinion. So I ask
Mark how he
would do it.

“A single unit separator, and if a user specified the wrong unit
specifier, it's an error that is reported back to the user,” he said.

“What type of error? 404? Technically it's not found,” I said.

“Maybe not a 404, but an error page should come back, possibly saying `This
is how you need to form the request,' ” he said.

“I hate programs like that, Mark. They can detect the error, they
can even correct for the error yet they don't.”

“I'm for strict parsing rules and if they're not correct, it's an error.”

In once sense, his way is easier for the programmer—it's this format or
it's an error. The code is eaiser to write and possibly maintain but it
makes more work for the user. My way is harder to write, get correct and
possibly maintain but is more forgiving of human input error and tries to do
the Right Thing.

Coincidently, Mark doesn't like computers that attempt to do The Right
Thing. Can't say I blame him much—many programs that attempt to do The
Right Thing fail miserably all around. And he does have a point in that my
tumbler code may be trying too hard to be general use, what with flags being
passed back and forth.

Mark and I were
suckered into helping our friend John unload his truck of music equipment
and move some furniture in his house.

For the record, John is a paper millionaire when is dot-com company
was bought for $19,000,000.00 in stock options. It's quite amusing to see
him fret about gaining or loosing several million a day depending upon how
the stock market plays. It's also amusing to hear him say he needs more
than $10,000,000.00 for a house.

He also belongs to a local Grateful Dead cover band, hense the music
equipment.

This was the first time I've been to his house. It's a beautiful house and
much larger than you would expect because of the all the stuff they (John
and his wife) have. George Carlin had them in mind when he did his
Stuff Routine.

The furniture moving process involved moving an entertainment center about a
foot to the right, then juggling the placement of exercise equipment (“No,
over there. The feng shui isn't right,” his wife said) and then the
movement of a filecabinet from his former home office to the den. The major
problem being the racks of clothes in his former home office.

Two commercial clothes racks of clothes. Two other rooms where filled with
more commerical clothes racks. And shoes. Lots of shoes (“Celine Dion has
over seven hundred pairs of shoes. That's my goal,” his wife also said).
Pretty much all belonging to his wife.

“Our house it too small!” they both said.

“So, get rid of all this stuff,” I said. “Just toss it.” A horrified
look crossed his wife's face. “Or pack the stuff and store it. After six
months if you haven't gone back, toss it. You'll never miss it.”

Chuck's weekly meeting was
today. There are four of us working on a small web-based project that could
be worth quite a bit and over the past few weeks we've been meeting on
Thursdays to talk business over dinner.

Only this week, two of our four member team couldn't make it, so Chuck and I
ended up going to dinner with Chuck's brother Jeff. Over dinner we talked
about various topics at Lucile's, the local BBQ place with the
killer hot sauces.

I was actually surprised when he said he's read R. Buckminster Fuller's
Grunch of Giants, a
non-political satire (as it's called and if there is such a thing) about
large corporations. Once my copy from the
Buckminster Fuller
Institute arrives and I finish reading it, we'll have to have to have a
talk about it.

We also touched briefly on the whole RIAA and MP3 fiasco. Chuck is thrilled
with the developments the Internet has made possible over music distribution
and absolutely loves MP3s. It doesn't hurt that he's a musician and is
currently building a home studio. Although he has no idea how a musician
will make money in the new market.

“There is the Street Performer's
Protocol,” I said. “Musicians give away their recordings and make
money by performing live and other merchandising,” I said.

“That's great if you can perform live,” Chuck said. “I've practiced as
much as I can and I just can't jam. I'm more of a lyracist. I have much
respect for John.”

“Guess it does screw the studio musician like you,” I said. There are no
easy answers for this, other than perhaps sponsorship (which wasn't
discussed but I bring up here now).

Afterwards, back at Chuck's house, I stuck around to watch Chuck get blown
away in Half Life.

Leaving Chuck's house I proceeded to Fisherman's Wharf to listen to my
friend John, the Paper Millionaire, play in his Grateful Dead cover band. I
arrived to find Mark and John's wife Lynae
sitting outside listening to the band. Not as many people this week as last
week but I'm guessing that might have something to do with it being St.
Patrick's Day and people generally hanging out in pubs drinking.

I'm not really a Grateful Dead fan. I mean, their music is okay, I can
listen to it, unlike Country or Western. But friends of mine (like
Chuck)
have claimed to have attended dozens, if not hundreds, of Grateful Dead
concerts. I never understood the attraction that would keep people
attending concert after concert, day after day, year after year.

But after hearing John's band play for the past few weeks, I think I
understand the phenomenon better. They're an incredible band that jam more
than play, each song lasting ten, fifteen, twenty minutes at a stretch,
often blending into the next song with no clear break between them.

They'll start a song, sing a few verses, then jam out for ten minutes,
resume singing a few verses (oh, they're still playing that
song I think), jam a few more minutes, sing the last verse, then
start the next song.

Just incredible.

But more incredible are the people. A large crowd, dancing on stage,
spinning, whirling, stomping and otherwise just having a great time being
abosrbed into the music, letting it take them where ever. It's effetious.

While sitting at Fisherman's Wharf
listening to the Grateful Dead coverband
Crazy Fingers I was
watching attractive girls dance to the music. There was one I found
compelling, her dance coreographed perfectly to the music, a real joy to
watch.

Unfortunately she seemed to be there with a significant other, one who
didn't look like he was enjoying it there at all. Large, well muscled with
the short crop hair of a Marine, sitting in an uptight position. Other than
being physically large and well muscled, I couldn't see what she
saw in him, but I would probably say that of any guy she was with
that I didn't know.

It's odd doing stage work again after years of not doing it. Each Thursday,
if I get to the Fisherman's Wharf early enough, and most times afterwards, I
help John setup and tear down his equipment. Even though I'm not getting
paid, I am getting compensated in other ways. It's not often anyone gets to
say, “I'm with the band.”

After attending a disapointing meeting (I thought certain issues were going
to be discussed but they weren't) and lunch, I decided to head on over to Home Depot. Nearly all
the light bulbs in the condo are burned out, and I needed to repair my
toilet.

I spend about half an hour preparing to go. Checked what bulbs I needed.
Two 36" kitchen lights. Two 48" kitchen lights. Nine regular 60W
bulbs. Four decoration bulbs. One three way bulb. One colored bulb,
yellow, preferrably yellow. One halogen lamp, 300W, type J. Four bulb
light unit for ceiling fan, chrome. And one toilet flapper.

It used to be bookstores were dangerous territory for me. Now it seems to
be home improvement, office or art stores.

Rows upon rows of items that can be used for any number of nefarious
reasons. Wire. Screws. Pipes. Wood. Abstract styrofoam shapes. Pens.
Pencils. Protractors. Art pads. Sewing thread. Stuff. Stuff! STUFF!

Ahem.

I was both overwhelmed and underwhelmed by the selection of light bulbs at
Home Depot. Overwhelmed at the types of bulbs availble. Underwhelmed at
the selection of any one type. It seems that 36" kitchen lights are
only 30W, while the 48" ones are only 40W. I couldn't find a 60W
yellow light bulb, so I ended up with a 25W. Found plenty of 60W bulbs.
And the three way bulb only came in two different settings, 50/100/150 or
50/150/200 (or something like that). I could not find the proper halogen
bulb, but I really don't need one quite yet.

Going through the ceiling fan section, I did find light units to replace the
one that's shorting out in the dining room, but it was brass, not chrome. I
guess chrome is out this year. And I really don't want to get a new ceiling
fan because I happen to like the one I have now, with the transparent fan
blades. So I still need a light unit.

And it took me a long time to find the flapper.

It was odd—I picked the correct isle but it took me a long time to actualy
find the flappers. I couldn't find them, found one or two that were almost,
but not quite right. I almost got a complete toilet repair kit ($7 to
replace all the components in the tank—seems pretty cheap to me) when I
found a partial toilet repair kit (about half the parts for about half the
price) when suddenly I found all the flappers I wanted. Even five-packs of
flappers. Flappers everywhere! And cheap. Only a buck.

Got out fast, not wanting to spend any more time or money there.

Got home, replaced all the light bulbs. I now have lightage. I then
replaced the flapper. I now have a quiet non-leaky toilet.

Not words like clang or pththththt but words that can be
ignored in Natural Language Processing. Interesting problem. Words like
the and a can be stripped as noise words. But what else?
And does frequency of occurance count?

Conjunctions, interjections, and maybe propositions can be cut. Maybe.

According to Mark, TCP/IP is WRONG WRONG WRONG WRONG WRONG (did I get
the correct number there, Mark?). No attempt at error recovery, much less
error detection. And it has no flow control. And it seems to exhibit poor
behavior across multiple slow links (i.e. from my house to his house).

Mark has experience with telephony protocols, which include things like
error detection, error recovery, retransmission, duplication detection, flow
control and a dozen other features that the designers of TCP/IP
either left out or left to higher level protocols.

Went with
the roommate to
play laser tag. About a dozen of us showed up, paid our money for unlimited
games for several hours and ran around shooting at each other with light.

One game was played lights out. Not completely though, a few strobe lights
blinking randomly provided brief glimpses of the arena (it's Laster Storm,
so there are plastic barricades separating the two teams) and the red light
from the gun gave your position away (even the headset lights were turned
off). Very fun if you can do it.

I'm attempting to find a list of “noise words,” word to avoid indexing for
a search. I found plenty of references to noise words, but no actual list.
Half an hour I spent, and then it hits me—would a web page that lists
typical noise words actually be indexed?

Mark and I
ended up helping John (the dot com paper millionaire and keyboardist for a
Grateful Dead coverband) set up a new feature on his site. It involved deep
hacking of both sendmail.cf and the Sendmail source code itself.

Some things we found out:

Sendmail ignores the current environment setting, using its own
environment when it runs.

It's easy to see why sendmail has so many buffer overwrites—the code
is attrocious.

Sure, sendmail now allows you to name rule sets instead of number them
(in sendmail.cf), but does it show the name when running in address
test mode? Nooooooo …

Network analyzers are fun. Very impressive the way they can determine
cable length.

I learned that John, the paper millionaire of a dotcom, is no longer part of
a Deadhead cover band. It seems they want someone who can play full time,
and it seems that John can't play full time due to commitments with his
dotcom.

Mark called,
needing some help with sendmail. He's working on a project for John the
paper millionaire of a dotcom and needs to get it to do something rather
silly actually. But Mark does not care for TCP/IP programming or Internet
programming at all.

“I don't understand what I'm doing,” he does. “What do I get from
sendmail?”

“You get the header section in RFC822 format, then a blank line, then the
body of the message, on standard input to the program,” I said.

“Why do I have to concern myself with this crap?” he asked. Seems he's
too used to having library code handle any lower level protocol stuff. Yes,
SMTP is low level to him in this project. Parsing this crap is too
much for him to handle. I can relate—databases are alien to me, what with
all that SQLcrap and what not.

“Sorry, no one has really bothered with making libraries for this.
Something about it being too easy or something.”

He continued one bitching about the SMTP protocol and having to actually
know anything about it. He's happier working with telephony protocols,
which to him, work better since they have error detection and recovery,
while nothing in the TCP/IP world does. At least, not to his satisfaction.

Investment class. Gruelling but well worth the time and the money. Had to
be there at 8:30 am. I made it, but I don't know how.
Afterwards I hung out with friends till about 2:00 am, only to have to get
up the next morning to meet the next class at 8:30 am. Ick.

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: http://boston.conman.org/, then add the date you are
interested in, say 2000/08/01,
so that would make the final URL:

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.