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, February 01, 2006

“On a dark dessert highway, Cool Whip in my hair … ”

My fave, posted to the Usenet by Thomas Dzubin of Vancouver, British Columbia: “There was this fireworks factory just three blocks from the Hotel California … and it blew up! Big tragedy. One of the workers was named Wurn Snell and he was from the town of Colitas in Greece. One of the workers who escaped the explosion talked to another guy … I think it was probably Don Henley … and Don asked what the guy saw. The worker said, ‘Wurn Snell of Colitas … rising up through the air.’”

The Straight Dope: In the song “Hotel California,” what does “colitas” mean?

And here, I thought the song “Hotel California” was about … oh wait … I already covered that.


AdSenseless

I've been doing the Google AdSense thing now for ten months, even since they requested to be here, and in those ten months, I don't think I've made enough to get a Venti® White Chocolate Mocha Frappuccino® Blended Coffee from Starbucks (not that I like coffee mind you).

Now, perhaps that's because the ads are (or were) “below the fold” and therefore not seen. Or perhaps it's because most people read this site via the RSS feed so it matters not where the ads are.

But I'm guessing that by moving the ads up (as you can see), I might see an increase in ad revenue, but I'm not going to hold my breath on this. Also, by moving the ads up, my Obligatory AdSense Snarks are more visible and as far as I can tell, making snarky remarks about AdSense is okay (but telling people to click on the ads is not okay).

I'm also planning on making a change in that space in the next few days as I finish (okay okay, start) a feature that will hopefully have a much better return on investment than this silly Google AdSense.


The Color of Television

The sky above the port was the color of television, tuned to a dead channel.

–William Gibson, Neuromancer (1984)

I saw that it made the Top 100 Best First Lines from Novels (link via Jason Kottke) and it struck me that today's kids will get a vastly different feel from that opening line than I did when reading the book as a kid.

Why?

Because the color of television, tuned to a dead channel, has changed in the past twenty-two years. Twenty-two years, the color of television, tuned to a dead channel was:

The sky above the port was the color of television, tuned to a dead channel.

–William Gibson, Neuromancer (1984)

And the color of television, tuned to a dead channel, these days:

The sky above the port was the color of television, tuned to a dead channel.

–William Gibson, Neuromancer (1984)

I don't think Mr. Gibson envisioned a bright blue sky for the opening of his book.

Thursday, February 02, 2006

Brick walls

Well, I was going to enable the new feature but three things got in the way:

  1. Last month there was a security audit run against a server belonging to one of our customers. Over the past month I harded up the DNS servers and the router and the only thing left was to harden the server itself. And at this point, it was easier to just set up a new server.

    So this past week that's what we've been doing. Tuesday the machine was put together. Yesterday the base operating system was installed. And since I just know we'll be doing the “Update Dance” once this thing gets certified (despite of what Smirk thinks—any bug in any of the services will require an automatic update immediately) I decided to install the critical services (Apache, PHP, OpenSSH) from source just to avoid having to rely upon the vendor. That way, I can just download the latest tarball, ./configure ; make ; make install (which I find easier) than the whole “package manager” crap (“Oooh, sorry. You forgot to upgrade your package manager for a whole week and we've moved the repository—sorry! Oh, and we're no longer supporting that version of the distribution anyway so you're doubly screwed! Sorry.”)

    It was going along fine until PHP and Ravencore (yes, a control panel). PHP because the braindead make install installed the PHP modules in the oh-so-intuitive location of /usr/lib/20020429/ instead of something semi-sane like /usr/local/lib/php-thisweeksversion/modules/, and Ravencore because they only release code in RPM and because it breaks if you change the PHP configuration file after Ravencore itself been installed (because you just realized that PHP installed the PHP modules in /usr/lib/20020429/ but it never complained about them being missing and the default PHP configuration file doesn't bother to even include the PHP modules).

    That's all I'm going to say about that!

  2. I wanted to write to Google explaining my concerns over thier AdSense program and how their ad selection can't deal with my general purpose (read: “horribly unfocused”) blog and how I'm thinking of no longer displaying ads.

    I don't want to drop out of the program entirely, in the hopes they change how it works just slightly. The feature I added (and more on that in a bit) won't be of use with AdSense, but it will be with some other advertising programs (and frankly, I'm surprised this feature hasn't been implemented before—perhaps it has and I haven't come across it, but I suspect that isn't the case).

    I wanted to write to Google first, before revealing the feature, and in the process of writing the email, I came across—

  3. A show stopping bug!

    Sigh.

    And I haven't figured out what triggers it. Oh, it's defintely related to the new feature, and it causes core dumps (a seriously hard crash) and/or infinite loops which causes the server load to increase. Good news is I found a rash of entries that trigger the bug; I just haven't had a chance to figure out what exactly is going on.

So it may be another day or so before I can go ahead and use this feature.

Friday, February 03, 2006

Mysterious network connectivity issues at a D&D game.

Very bizarre. I'm at the weekly D&D game, and as usual we all have our laptops out running kLoOge. Bob, the DM, is on his computer, connected to the router via a network cable; the rest of us (myself, Bibo and Mike) are connected via the wireless network. Every 901 seconds (fifteen minutes, one second) I would get disconnected from the network for 55 seconds. Like clockwork.

Bibo and Mike never got disconnected.

Just me.

At first, I thought it might either be kLoOge or Java 1.5 (I had to upgrade Java last week because the latest version of kLoOge requires Java 1.5, and Bob always makes us upgrade kLoOge), so towards the end of the game I didn't even bother running kLoOge (or Java 1.5).

I still got disconnected every 901 seconds. For 55 seconds.

Go figure.

Saturday, February 04, 2006

Targeting Advertising

The feature is live (and if you are reading this entry via the RSS feed, you may want to click over to the site to see what I'm talking about).

Okay, sure, it's just a block of advertisements from Amazon and you may ask “You had bugs just adding some HTML to your templates?” But you see, it wasn't just some HTML to my templates that I added. Nope, there's a bit more going on behind the scenes than just that. And to describe what that is, I have to digress a bit.

When I first wrote mod_blog, I was on a big kick to add metainformation to every page on my site. And part of that metainformation included keywords embedded in the <META> tags. So mod_blog supported, pretty much from day one, a list of keywords for each entry. That was five or six years ago and while I've kept up the process of adding keywords (or “tags” as the concept is now called) since the start, I haven't really done much with the information.

The intent originally was to have the ability to list entries based on a tag—something like http://boston.conman.org/keyword/programming but you can see I never got around to doing that. I also discovered, over the years, that I had way more tags than actual entries.

One of the problems I see with multi-faceted classification is the proliferation of classifications. My own blogging software allows for the classification of each entry; in fact, it allows multiple classifications for each entry (and although every entry of mine has such classifications, there isn't support yet for using the data for anything).

Out of 1,514 current entries (nearly four years worth) I have created 2,671 distinct classifications—1.76 catagories per entry). Part of that is unintentional duplication (five different typings of “Cue Cat” for example); silly classifications are another reason (“dead zombie languages rising from the dead” anyone?). It's what you get when you allow free form classifications.

I suppose you could go through and automatically pull out relevent words but there is an art to indexing; “Dave Weiner” should not only be treated as one word for indexing, but it should instead be “Dave Winer” (typos and mispellings are another problem).

myself in a comment on Wikis Aren't Enough

Be that as it may, time went on, I kept up with adding tags for each entry, and I still hadn't had a use for them, until I came across this web page about a week or so ago:

Yes, indeed, amongst Howard Tayler's readers there are a lot of computer geeks. I know I am not a typical web user, but I am a pretty typical web developer. And I have zero desire to “Boost XML app performance.” I also have all the “ODBC drivers” that I need.

Many of you, my readers, are bloggers or have regular web sites with AdSense ads. Look at them. How many you'd say are “inefficient, dishonest and a total waste of people's … precious time”?

I say—about 99.5%. And clickthrough ratios are pretty horrible. People try to tweak them by playing around with ad types, look and feel, positioning and excluding advertisers, but it's all rather ineffective.

In short, I feel that even though Google's ads are a step in the right direction, AdSense sucks, especially for a blog with a smallish audience, such as mine. The useless, stupid ads that clog AdSense are a waste, even though they might generate a few “pity clicks.” Only half of my ad revenue for the site came from AdSense last year. The rest came from my experiment that I think will be of great interest to everyone.

I believe that my 1000 readers are a lot like myself. And what do I spend a huge amount of money on every year? Books, movies, cds and gadgets. Also I purchase some rather esoteric items on eBay too, but the majority of my spending happens squarely at Amazon.com. My wishlist there is humongous, and in fact, I spent my advertising revenue there.

Luckily, Amazon has a pretty generous associate program. You can link to any of the products they sell and get a cut of the sale price, if the sale happens as a result of your clickthrough. In fact, you get a cut of the entire shopping cart amount (I am not sure, this could be only the items that were added after the click). In any case, it's decent money, and most importantly, a great selection of new and even used items to sell.

New Billboard Day Effect : How to Advertise More Effectively on Your Blog

I already belong to the Amazon Associates Program. And it's already netted me $200 for a few hours worth of work (I was given that site and the previous owner suggested the Amazon thing—glad I did). So why not?

And in playing around with the Amazon ad layout, I discovered that one can select the catagories one wishes to display ads for.

Hmmm …

Every entry I've written has tags associated with them.

I can choose which catagory Amazon will display ads for.

Hmmm …

Then problem then came one of implementation. And a few hours of thought on that produced the simplist solution: for each entry being displayed, collect all the tags and pick one at random. Feed that tag to Amazon. I do not weed out duplicate tags—if say, all the entries being display (say, the front page here) all have the tag “programming” (among other tags) then the catagory “programming” has a higher chance of being passed to Amazon.

In a way, I'm targeting the ads myself, instead of relying upon the advertiser (and Google, I'm looking at you).

Sure, there'll be some stuff Amazon can't deal with properly (say, “dead zombie languages rising from the dead”) but overall, the targeting of ads from Amazon will be much better than from Google AdSense.

Google AdSense™ Online Standard Terms and Conditions (emphasis added)

But I'm keeping the ads from AdSense, until I'm told otherwise. I'm not sure how to interpret the Terms and Conditions about this, given that I'm the one doing the targeting, not Amazon, and that back in May when I was initially talking with Google, I was told:

From:XXXX XXXXX” <XXXXXX@google.com>
To: “Sean Conner” <sean@conman.org>
Subject: RE: Google partnership
Date: Sun, 13 Mar 2005 16:44:59 -0500

Hi Sean,

Other affiliate programs are fine, all we ask is that on any given page, we are the only ‘text based’ ads running.

How does you schedule look tomorrow? I can be reached at the below number at your convenience.

Best regards,

XXXX

And the ads from Amazon aren't pure text—they include graphics as well. I've written Google to solicit their reaction to this, and to suggest they allow hints as to the type of advertising people want—like Amazon does.

Sunday, February 05, 2006

Food Porn

I had come to Nitke's studio in midtown Manhattan, near the United Nations, to watch food television with her, and to compare the histories of sex porn and gastroporn. Nitke, fifty-four, dressed in black from T-shirt to Ferragamos, had set up a card table between the foot of her bed and a bookshelf, and ordered Mexican takeout. As we ate lunch she told me about her pending contract with HarperCollins for American Ecstasy, a coffee-table book of her porn-set stills, and I began to examine her library, which included copies of Leathersex, The Correct Sadist, and It's not About the Whip. “I know most of the authors,” she said. “It's a small world.”

For the past several weeks, Nitke had been running porn films side by side with Food Network shows, studying the parallels. She had also been analyzing the in-house ads, like a recent one for the network's “Chocolate Obsession Weekend,” which promised to “tantalize your tastebuds.” In this spot a gorgeous model pushes a chocolate strawberry past parted lips as she luxuriates in a bubblebath. The suds shot dissolves into Food network superstar Emeril Lagasse, who shakes his “Essence”—a trademarked blend of salt, paprika, black pepper, granulated garlic, and onion powder—into a pan of frothing pink goo. The camera moves into the frying pan and stays there. There's something very visceral about watching the food,” said Nitke. “It's very tissue-y. It's hard not to think of flesh when you're looking at these close-ups.”

Via The Old New Thing, Debbie Does Salad: The Food Network at the Frontiers of Pornography

I've joked that The Food Network is “food porn” (which sounds better than “gastroporn” but that's me) but I never quite realized it was true! (you can also read a transcript of an interview with the author of that piece, which goes into some more depth (pun unintended) on this subject).

Monday, February 06, 2006

An open letter to people who have email forwarded to AOL from their websites

Error 554 HVU:B1 from AOL

Don't be terribly surprised if email for website that is normally forwarded to AOL stops showing up. Especially if you complain about spam. Because spam can come not only directly to your AOL account, but indirectly, through your website's email server. And AOL, responding to your complaint, will block all the servers that were responsible for handing the spam, including your website's email server.

And don't be terribly surprised if your webhosting company can't remedy the situation immediately. Think the wait time for calling technical support at your webhosting company is long? This is AOL—they handle billions of email daily. And probably receive millions of complaints daily.

So if you use AOL, and have email from your website forwarded, before reporting that spam, please think about where it might have come from. You may end up without email at all!

Tuesday, February 07, 2006

Like sand through the hourglass, these are the timesinks of our lives

Ahhhh! Make me stop! Make me stop! It's too engrossing! And I blame Jason Kottke! Ahhhhh!

Wednesday, February 08, 2006

A readable Garfield

While I don't really care for Garfield all that much, I do hold the cartoon in a special place since Jim Davis was the first (and so far, only) cartoonist I met (at a time when I wanted to be a cartoonist). The reason I don't care about Garfield any more is that … well … it's a safe, predictable cartoon with no edge.

Unless you remove Garfield's speech! (And boy, does that improve the strip)

It then, oddly enough, becomes a much better strip—almost cutting edge even.

Take this Sunday's strip, and remove the dialog:

[Garfield drawing][Garfield drawing][Garfield drawing][Garfield drawing][Garfield drawing][Garfield showing off an artistic Odie]

Or even this one from last year:

[Bordom sets in][Jon: Yaahhh!!! I can't stand the boredom!][Garfield alone, waving at Jon who's not in the frame]

Brilliant stuff! Or at least not as inane.

You paying attention Mr. Davis?

Thursday, February 09, 2006

Debugging other people's code

I understand why Smirk wants this, I thought to myself, but I still don't like them.

I was neck deep in PHP and shell scripts, trying to figure out what the heck Ravencore (a control panel—sigh) was doing when configuring the IMAP and POP servers. You see, the IMAP and POP servers weren't authenticating the users—or rather, they were, but for some reason were not authenticating against the passwords set for the users.

It took a good half hour or so to track the problem down to a shell script that regenerated the password file for the IMAP and POP servers. The script generated the following from MySQL:

4:testuser:example.net:true::guessme

Six fields, separated by colons—and if you look closely, you'll notice that one of the fields is empty. Keep that in mind, it's an important point. Then it was doing the following:

# separate the string into a temp variable so we don't
# have to make several calls to to the sed command

    tmp=$(echo $i | sed 's/:/ /g')

    mid=$(echo $tmp | awk '{print $1}')
    mail_name=$(echo $tmp | awk '{print $2}')
    domain_name=$(echo $tmp | awk '{print $3}')
    mailbox=$(echo $tmp | awk '{print $4}')
    spam_folder=$(echo $tmp | awk '{print $5}')
    mail_pass=$(echo $tmp | awk '{print $6}')

    email_addr="$mail_name@$domain_name"

The problem?

The first line, the one that calls sed to remove the colons. It transforms the line from MySQL to:

4 testuser example.net true guessme

So there's only five fields instead of six! So the password was being set to nothing (there is no spoon sixth field).

The fix was simple:

        mid=$(echo $i | cut -d: -f1)
        mail_name=$(echo $i | cut -d: -f2)
        domain_name=$(echo $i | cut -d: -f3)
        mailbox=$(echo $i | cut -d: -f4)
        spam_folder=$(echo $i | cut -d: -f5)
        mail_pass=$(echo $i | cut -d: -f6)

Have I mentioned that I hate control panels?

Friday, February 10, 2006

An improved Cathy?

It seems that the wordless Garfield meme is getting attention across, and from there, I learned of a similar attempt at improving Cathy. The result is … rather Zen … in its approach.

Saturday, February 11, 2006

That China thang

Executives from Google Inc. and other Internet companies head to Capitol Hill next week, where they will become feature players in an awkward debate: Are U.S. companies giving in to China too easily?

Last month, Google announced an agreement with the Chinese government to censor search results from its Chinese site. It was the latest Internet company to accede to the Chinese government's censorship restrictions, following Cisco Systems Inc., Microsoft Corp. and Yahoo Inc.

The hearing will likely produce more embarrassing publicity for the companies, and it may drive legislative momentum among lawmakers concerned about China's influence on the U.S. economy. Congressional aides are expecting a standing-room-only crowd, and the reception from politicians may be chilly.

Via InstaPundit, Internet Censorship

My thoughts on the whole Google/China thing: as a public company they have to go into China, least they face lawsuits from shareholders for failing in the legally mandated fudiciary oblication to increase shareholder value by their failure to enter one of (if not the) fastest growing economies in the world. If they were still a public company, no problem, they could continue to do No Evil™ by ignoring the Chinese market.

But given they're a public company, they have the legal obligation to help the Chinese in order to increase their bottom line. And from what I understand, they took their time in entering the market (I'm sure that if they had an excuse not to go into China, they wouldn't have).

Remember, Google is a public company, and to a public company, that which is not outright illegal, must be done, all in the name of the dollar.


Crickets

Oh, and speaking of Google, I've yet to hear back from them about my concerns over AdSense.

Sunday, February 12, 2006

Oh, was that this month?

“What happened to the flyer I used to get in the mail?”

Our show runs as a non profit and if it wasn't for our extensive volunteer staff, we could never afford to run a show this size. All of the funds we generate from our show go right back into show operations. The great majority of our attendees have internet access and it just makes sense to take advantage of this resource.

Miami Tropical Hamboree

Oh, so that's why I didn't get a notification of the Miami HamFest this year. I totally forgot about that (that is, until I heard mention of the Orlando HamFest on a mailing list I belong to). Well, not like it's been any good the past few years, so I doubt I missed much.

Ah well.

Monday, February 13, 2006

'Tis the perfect weather to stay snuggled deep under the thick blankets of the bed, keeping the coldness at bay and wondering just what all this fuss about “work” is all about as you slowly doze back into Slumberland …

I think this cold weather is getting to me—I'm oh so very tired; just want to stay in the warmmmmm beddddd adn sleeeeeeeeeeppppppzzzzzzzzzzzzzzzzz

Tuesday, February 14, 2006

Don't blame me if today is rotten

[Jeffrey: “Man, how are we gonna destroy valentine's day?  It seems like an awfully hard thing to do” Weedmaster-P: “Maybe you could issue one of them fatwas”][Jeffrey: “You stupid ass-balls!  You gotta be a Mormon to issue a Fatwa!” Weedmaster-P: “I'm gonna rip off your tongue and use it instead of toilet paper”[Cupid: “Stop fighting!  Valentine's Day is about LOVE!”][Jeffrey and Weedmaster-P look at each other][Jeffrey and Weedmaster-P take aim][SCENE MISSING]

Blame Jeffrey Rowland (and hit his site—I don't want him or Weedmaster-P mad at me for … um … appropriating his artwork).

Wednesday, February 15, 2006

Bugs in Apache, Part II

Between restoring MySQL databases and dumping MySQL databases I finally tracked down an Apache bug from seven months ago (as it relates to mod_blog). At the time, I was testing with Apache 2.0.54, but shortly thereafter Apache 2.0.55 was released and thinking that it might have been addressed, I waited.

Okay, perhaps I waited a bit too long, but hey.

The problem still existed under Apache 2.0.55, and upon reporting it to the Apache Mailing List; a response came back—it might be similar to existing bug first reported on September 4th, 2003!

From: Joshua Slive <XXXXXXXXXXXXXXX>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 11:48:24 -0500

Sounds like: http://issues.apache.org/bugzilla/show_bug.cgi?id=22898

In general, there are not many people insterested in nph scripts anymore, so I'd guess that little testing or debugging is done on them. They aren't useful for very much.

Ouch.

Then this rather amusing exchange took place:

From: Sean Conner <sean@conman.org>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 15:21:04 -0500 (EST)

Be that as it may, but is there some other way for a CGI script to return an HTTP status? That's primarily why I use the “nph-” feature (and no, rewriting the script in PHP is not an option).

From: Joshua Slive <XXXXXXXXXXXXXXX>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 16:51:19 -0500

Yes, there is a Status header, as in Status: 404

From: Sean Conner <sean@conman.org>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 17:07:13 -0500 (EST)

Oh wow … I'll have to try that. Is it also available in Apache 1.3? (just on the off chance that you might know … )

From: Nick Kew <XXXXXXXXXXXXXXXXX>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 22:24:36 +0000

Of course. It's in every version of Apache.

More importantly, it's part of the CGI spec. That's something you should read.

Double ouch.

You see, in all the years I've had the code, I've never once read the CGI spec. The code I have is based off code from the old NCSA tutorial code. And when I needed to set the headers myself, I went through the Apache source code and found the “nph-” hack (probably back in the Apache 1.2 days).

And given that I still run Apache 1.3 …

Anyway.

I fixed mod_blog to send the Status: header and it works as expected under both Apache 1.3 and Apache 2.0.

Life is good now.

Well, except for this stupid MySQL database migration.

Thursday, February 16, 2006

America Online does not want your pork with ham, salt, water, modified potato starch, sugar and sodium nitrite, and will do anything it can to keep it that way

“Hello,” I said. “This is Technical Support, how may I help you?”

“Yes,” said the customer, and then launches into a five minute diatribe about not getting email.

“Are you finished?” I asked.

“No!” The customer then goes into a two minute diabribe about the parentage of The Company.

“Can I help you now?”

Primal screams followed by screaming invectives about the email problem.

“I'm sorry, it won't fit up there,” I said.

Another few minutes of poisonous vituperation about the parentage of The Company comes from the customer.

“May I try to solve your problem now, or do you wish to continue with your current dialog?”

Several minutes of obloquies followed.

“Oh, I see the problem,” I said through the billingsgate at the other end of the phone line. “You're trying to forward your email to AOL and AOL is yet again rejecting email from our server.”

The conversation went downhill from there.

I think Smirk and I are this >< close to telling our customers that they can no longer forward email to AOL. It just is not worth the headaches.


The Myth of the Rule of Law

Stop! Before reading this Article, please take the following quiz.

The First Amendment to the Constitution of the United States provides, in part:

“Congress shall make no law … abridging the freedom of speech, or of the press; … .” (2)

On the basis of your personal understanding of this sentence's meaning (not your knowledge of constitutional law), please indicate whether you believe the following sentences to be true or false.

_____ 1) In time of war, a federal statute may be passed prohibiting citizens from revealing military secrets to the enemy.

_____ 2) The President may issue an executive order prohibiting public criticism of his administration.

_____ 3) Congress may pass a law prohibiting museums from exhibiting photographs and paintings depicting homosexual activity.

_____ 4) A federal statute may be passed prohibiting a citizen from falsely shouting "fire" in a crowded theater.

_____ 5) Congress may pass a law prohibiting dancing to rock and roll music.

_____ 6) The Internal Revenue Service may issue a regulation prohibiting the publication of a book explaining how to cheat on your taxes and get away with it.

_____ 7) Congress may pass a statute prohibiting flag burning.

Thank you. You may now read on.

Via flutterby.com , The Myth of the Rule of Law

A long and thoughtful article on interpretations of law and while indeterminate laws aren't necessarily bad. I'm not sure if I agree with the author, but I haven't fully digested the full article yet. But it is thought provoking.

And while I quote below the answers the author gives to the questions quoted above, you should really read the article to get an understanding of why the author answered the questions above as he did.

Unless your responses were: 1) False, 2) True, 3) True, 4) False, 5) True, 6) True, and 7) True, you chose to interpret at least one of the words “Congress,” “no,” “law,” “speech,” and “press” in what can only be described as something other than its ordinary sense. Why did you do this? Were your responses based on the “plain meaning” of the words or on certain normative beliefs you hold about the extent to which the federal government should be allowed to interfere with citizens' expressive activities? Were your responses objective and neutral or were they influenced by your “politics”?

I chose this portion of the First Amendment for my example because it contains the clearest, most definite legal language of which I am aware. If a provision as clearly drafted as this may be subjected to political interpretation, what legal provision may not be? But this explains why the legal system cannot be reformed to consist of a body of definite rules yielding unique, objectively verifiable resolutions of cases. What a legal rule means is always determined by the political assumptions of the person applying it. (24)

Via flutterby.com , The Myth of the Rule of Law


A calendar of curlers

For Spring, a calendar of curling athletes (link via a round-about way from Jason Kottke—and while the article linked is safe for work, the calendar itself most definitely isn't).

Friday, February 17, 2006

From the “I kid you not department”

And yet another link for Spring: a mixture of your two favorite things in movies—a Bollywood version of “Fight Club” (link via The Ferrett).

Saturday, February 18, 2006

“Now THAT'S a keyboard!”

Dan Lyke linked to several manual typewriters used as computer keyboards (the ElectriClerk perhaps being the coolest of the three, going all Brazil with an old Macintosh SE). As I'm reading about the typewriter-keyboard conversion, I was struck that the person doing it might now know how keyboards work:

Like I said earlier, each key is a connection between two terminals. Some terminals have lots of keys connected to them. For example, connecting terminal 4 and terminal 19 might produce “A” but connecting terminal 9 and terminal 19 might produce “F”. Since 1-13 always connected to 14-26 and vice versa (i.e. no terminal from 1 to 13 connects to any other terminal from 1 to 13), I arbitrarily decided that the levers would all connect to 1 13 and the crossbar would connect to 14-26.

putting it together

A keyboard is basically a matrix of switches. Here's the schematic of the keyboard used on the Color Computer 2 (a very simple 53-key keyboard):

[Schematic of Color Computer 2 keyboard interface]

(“EN” is the Enter key, “CL” is the Clear key, “BR” is the Break key, “SP” is the Spacebar and “SH” are the Shift keys)

You would write a “0” to each column (so, to read the rightmost column, you would write a value of 254 (in binary—11111110) and then read the rows. In each case where there is a 0 there is a key being held down along that row. So, again, for the right most column, if you read in 187 (or 10111011 in binary) the Shift key (either one, since they're wired together) and the “W” key are being pressed.

There's a bit more to it than that—the code to read the keyboard would scan through each column, and it would have to know to flag the Shift key as being up or down, and once it detected a key (or two) being down, it would have to pause for a bit, then re-scan for that key (which is called “debouncing”—as you press the key the electrical contact may switch on and off as the key is being hit)—but that's basically how all computer keyboards work (more or less—your standard PC keyboard these days are very simple computers themselves that scan the keyboard matrix and send a standardized code for each key to your computer).

Sunday, February 19, 2006

A few links on kids today as I moped around the house today not doing much of anything

This past Friday Smirk and I talked a bit about kids and education and we're both in agreement that the educational system today is fubar less than optimal. I found that I don't read these educational blogs all that often, not because they're poorly written, but because of the sheer insanity they document in our educational system today.

I was reminded of this today because flutterby.com linked to an article about parents extorting school districts to pay for private education (this article touches off several buttons of mine that I'd rather not get into, least my head a splode).

Can't we just torch the educational system now? Please?

Monday, February 20, 2006

They'll check ya coming and going

So when I'm faced with the prospect of standing in a long line at the exit to have yet another person rifle through my property, I dodge the line and head for an unused automatic door, countering an insistent “Sir, can I see your receipt?” with a polite “No, thank you.”

I've gotten so used to this trick at Fry's Electronics that I don't really think twice about it. You see, Fry's doesn't trust their underpaid staff manning the cash registers to actually do their jobs right, so they post a door guard to ask people walking away from the registers carrying plastic bags to let them verify that all of the items in the bag were rung up on the receipt.

But this verification step is purely voluntary. Merchants basically have two rights covering people entering and exiting their stores. They can refuse to let you enter the premises and/or to sell you anything, and they can place you under citizens arrest for attempting to leave the premises with any property that you haven't paid for. But the second you hand over the appropriate amount of cash, they lose all rights to the items. They can't legally impair you from leaving the store with your property.

Apparently the employees of my local Best Buy aren't very familiar with annoying pedantic individuals who will choose principals over convenience when walking out with a shopping cart full of expensive home entertainment gear. I manage to get about 5 steps out the door before the door guard catches up to me and grabs my cart, with the “sir” in his “I need to see your receipt, sir” somehow not very complimentary. This is apparently a stalling tactic, as shortly a few more blue-shirted employees make a move to block me from making any more progress toward my car.

Via Jason Kottke, Best Buy Receipt Check

We do half our grocery shopping at Costco (mainly non-perishables and gasoline) and while I like it way more than Wal★Mart there is an aspect that I can't stand about the store, and oddly enough, it isn't their receipt check when leaving the store.

No, it's their insistance on checking for your Costco membership card upon entering the store. Not only does it seem redundant [1] since you have to use the card to purchase the items, but I then have to dig the card out of my wallet and show it to the employee who's job is to interrogate each incoming customer about the presence of the Costco membership card.

Fortunately, tonight there were several people all headed into Costco so I took a chance and rushed right past the employee who's job is to interrogate each incoming customer about the presence of the Costco membership card. As I flew on by, past the 72″ HDTVs for sale, I could hear someone calling out to me, trying to get me to slow down enough to be interrogated for the presense of my Costco membership card—well, it could have been me, or someone else taking advantage of the crowd to slip past this employee. Me? I kept going and didn't bother looking back until I was well past the microwave ovens and deep into the petfood section.

[1] I realize it's their way of making sure that you have the card and waste your time shopping only to find out you forgot it, embarrassing you as you stand there in the checkout line all cardless and what not, and have to put everything back, or their time in putting everything back. I just find it annoying.

Tuesday, February 21, 2006

Tales from The Company

From across the office right behind me, I can hear our accountant as he makes his way through the billing system. “XXXXXXX XXXXXXXXXXXXX piece of XXXX! What the XXXX? XXXX!” A few moments of silence. “XXXX! XXXX! XXXX!” Half the time he's swearing at the computer, and the other half he's swearing at Smirk, which is okay, because Smirk just tells the accountant to go back to XXXX.

It's like watching a married couple.


Snippit of a conversation overheard upon entering Casa New Jersey at the end of a long day laboring over a hot computer keyboard and monitor

“Where's Wlofie?” asked one of The Kids.

“Wlofie?” I said. “Isn't he here?”

“No,” said one of The Kids, eyes wide open.

“He's not?” I said.

“Wlofie isn't with you?” said Spring, rushing into the living room, a look of horror. “You left him at Negiyo⁈”

“No,” I said. “He's outside, smoking a cigarette.”

“Gaaaaah!” said Spring. “Don't do that!

“Ouch ouch ouch ouch ouch!”

Wednesday, February 22, 2006

I should realize the futility in ever thinking I'll get a server configured as I think a server should be configured and learn to love how those jokers at Red Hat or Suse or Debian deem it best to run a server, and oh, by the way, hope you like the Upgrade Dance™ because you'll be doing it for the rest of your life because Red Hat or Suse or Debian say so. So there.

I would have thought that by now, the major Linux distributions, or at least some offshoot of one of the major or even minor Linux distributions, would have targetted LAMP. Really, at this stage of the game, all I really want in a distribution is a base system loaded with the development packages. Most of the servers I'm installing these days (and over the past month I've done quite a few) are doing nothing more than web serving and forwarding email and that's it.

So basically, all I need is a distribution that includes:

Yes, there are ways of taming some of the distributions to only include what you want, but it's quite a bit of work for something that I'm surprised hasn't been done already (or is everyone being lazy and waiting on the Lazy Web to do it?). And what some of these distributions consider “bare bones” I consider “about as bloated as Windows.”

Sheesh.


Arbuckle, which is Jon's last name, by the way …

In 1978, Jim Davis began a newspaper comic strip called “Garfield”. For almost forty years, this strip has endured, primarily because its inoffensive, storyless humour is immediately accessible. It is, if not quite the Lowest Common Denominator of the comic world, at least as close to it as one can get without being obviously mediocre.

The comic changes dramatically when one removes the thought bubbles.

“Garfield” changes from being a comic about a sassy, corpulent feline, and becomes a compelling picture of a lonely, pathetic, delusional man who talks to his pets. Consider that Jon, according to Garfield canon, cannot hear his cat's thoughts. This is the world as he sees it. This is his story.

Arbuckle: Garfield through Jon's eyes.

A while back I mentioned the thoughtless Garfield meme. This person went one futher and is redrawing (with help) Garfield in a more realistic manner.

I wonder what Paws, Inc. will make of all this?

Thursday, February 23, 2006

Don't talk to me about package managers—they're all bad!

So today I get to play around with FreeBSD's ports system, aka a “package manager.”

PORTS(7)           FreeBSD Miscellaneous Information Manual           PORTS(7)
NAME

ports—contributed applications

DESCRIPTION

The FreeBSD Ports Collection offers a simple way for users and administrators to install applications. Each port contains any patches necessary to make the original application source code compile and run on BSD. Compiling an application is as simple as typing make build in the port directory! The Makefile automatically fetches the application source code, either from a local disk or via FTP, unpacks it on your system, applies the patches, and compiles it. If all goes well, simply type make install to install the application.

Okay. Seems simple enough. Do a search (not much better than a simple grep but it's something) and find the package I need to install.

SNMP# cd /usr/ports/databases/mysql41-client/
SNMP# make build
===>  Vulnerability check disabled, database not found
=> mysql-4.1.13.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.easynet.be/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.easynet.be/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.mirrors.cybercity.dk/Downloads/MySQL-4.1/.
fetch: http://mysql.mirrors.cybercity.dk/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://netmirror.org/mirror/mysql.com/Downloads/MySQL-4.1/.
fetch: http://netmirror.org/mirror/mysql.com/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://netmirror.org/mysql.com/Downloads/MySQL-4.1/.
fetch: ftp://netmirror.org/mysql.com/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mirrors.ntua.gr/MySQL/Downloads/MySQL-4.1/.
fetch: http://mirrors.ntua.gr/MySQL/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.sote.hu/Downloads/MySQL-4.1/.
fetch: http://mysql.sote.hu/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://mirror.widexs.nl/pub/mysql/Downloads/MySQL-4.1/.
^Cfetch: transfer interrupted

SNMP#  cd /usr/ports/databases/mysql50-client/
SNMP# make build
===>  Vulnerability check disabled, database not found
=> mysql-5.0.9-beta.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.easynet.be/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.easynet.be/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.mirrors.cybercity.dk/Downloads/MySQL-5.0/.
fetch: http://mysql.mirrors.cybercity.dk/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://netmirror.org/mirror/mysql.com/Downloads/MySQL-5.0/.
fetch: http://netmirror.org/mirror/mysql.com/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://netmirror.org/mysql.com/Downloads/MySQL-5.0/.
fetch: ftp://netmirror.org/mysql.com/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mirrors.ntua.gr/MySQL/Downloads/MySQL-5.0/.
fetch: http://mirrors.ntua.gr/MySQL/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.sote.hu/Downloads/MySQL-5.0/.
fetch: http://mysql.sote.hu/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-5.0/.
^Cfetch: transfer interrupted

SNMP# 

Okay, so how exactly is this better than getting the tarballs?

Friday, February 24, 2006

“You're running ancient and decrepid software. And you're momma dresses you funny.”

Two months ago there was a security scan done against one of our customer's managed servers, and the report came back with a bazillion things they (the security scanning company) didn't like. So we spent the time securing the network path and building a new server from scratch, using the latest versions of Apache, ProFTPd, etc, built from tarballs (the distribution was daring to use ancient, decrepid, months old versions of said software—how dare they!).

So it was earlier this week that a security scan (done by another company this time—the report is only a few pages long instead of the five hundred plus from the other company) and I just now saw the report.

Emphasis added
ProtocolPortProgramRiskSummary
TCP21ftp1The remote host [that's us] is using ProFTPD, a free, FTP server for Unix and Linux. According to its banner, the version of ProFTPD installed on the remote host suffers from multiple format string vulnerabilities, one involving the ‘ftpshut’ utility and the other in mod_sql's ‘SQLShowInfo’ directive. Exploitation of either requires involvement on the part of a site administrator and can lead to information disclosure, denial of service, and even a compromise of the affected system. See also: http://www.proftpd.org/docs/RELEASE_NOTES-1.3.0rc2 Solution: Upgrade to ProFTPD version 1.3.0rc2 or later. Risk Factor: Low
TCP21ftp1The remote ProFTPd server is as old or older than 1.2.10 It is possible to determine which user names are valid on the remote host based on timing analysis attack of the login procedure. An attacker may use this flaw to set up a list of valid usernames for a more efficient brute-force attack against the remote host. Solution: Upgrade to a newer version. Risk Factor: Low

So let me get this straight: the first problem requires the system administrator to be in on the exploit.

Um …

If the system administrator is in on the exploit, you have more serious problems! What? Are all these security scan companies on crack or something?

I found the second problem amusing since it doesn't like ProFTPD version 1.2.10 (or less) even though 1.2.10 is the latest stable release! See, I told you these security scan companies hate currently released software. So I suppose this means I need to upgrade to one of the later release candidates.

Anyway, the problems that were listed (and there were only five total) were sufficiently low risk that we passed the security scan.

Saturday, February 25, 2006

Intervention

Bad stuff.

C12H22O11

Unfortunately, I think we have to stage an intervention. Someone we know has a real bad habit and has gone to great lengths to hide their addiction, including stashes they forgot completely about.

Yeah, it's that bad.

Sunday, February 26, 2006

Just because I have nothing better to link to at the moment

For Spring, ribbed and motorized for your pleasure (I'm guessing, because I fail to see how it can be otherwise).

Monday, February 27, 2006

Is this what they mean by “PC Lusering?”

I'm beginning to really hate email.

No, not my email, span infested as it is. No, I'm beginning to really hate other people's email.

This is semi-related to AOL only because I spent an hour or so with a customer today walking him through configuring Thunderbird to check email on our server since forwarding his email to AOL is a lost cause. And that was bad enough. I'm under Linux, where Thunderbird sees fit to place the Account Manager under the Edit menu option. Whatever operating system the customer was using (I'm guessing Windows) had the Account Manager under the Tools menu option. And we were using different versions, which meant the dialog boxes I was seeing did not match the diaglog boxes the customer was seeing. Compound the fact that the customer's primary interface to the Internet seemed to be exclusively AOL, and his propensity to quickly click ahead made for a trying experience.

But then I spent another hour or so trying to figure out where the heck his email was going. The test messages to his account where simply not showing up. The sending server (my workstation and my home computer) showed sucessful delivery of the message to the MX host, which is our spam firewall (a service we offer). The spam firewall showed a sucessful delivery of said test emails to the actual server. It was when I checked the mail logs on the server that I saw his emails were still being forwarded. I checked the (shudder) control panel (Insipid)—nope—his emails shouldn't be forwarded.

But they were.

Turns out there were some .forward files. And since the control panel didn't see fit to remove them, I had to wonder how they got there in the first place (or I found an actual bug in a control panel! Fancy that).

Hate.

Hate.

Hate.


“You know, I actually new a kid in high school that sniffed this stuff … ”

As if today wasn't bad enough, at 5:59 pm, just a minute before I'm out the door, the phone rings. I hesitate a second, debating whether I should answer it or not.

“Hello,” I said, silently cursing myself. “Technical Support. How may I help you?”

“Yes, this is C from XXXXXXXX.” It's the customer with the Cisco router that we're tunnelling a connection to. “Yeah, our provider just gave us our new IP address and we need our router reconfigured before midnight tonight.”

Looks like it was the wrong week to quit sniffing C12H22O11

Tuesday, February 28, 2006

This entry has two oblique references that only make sense if you know the full story, but I can't tell the full story since it's not mine to fully tell so it may make it seem worse than it really is, but I'm still shaken (but not stirred) by all of it and am still trying to process the whole thing, so that's why the oblique references in this entry (with a title that is entirely too long but that's besides the point)

As a kid, I remember my Granddad (Dad's dad) watching the news, and only the news, on television. And the occasional episode of “60 Minutes”. As a result, I was exposed to the media side of “ambush interviews”—you know, Mike Wallace and some camera man lying in wait for some businessman, politician, doctor, lawyer or controversial public figure about which some bit of scanal or law suit is pending and as they're walking past to or from their car kidney punching with a camera and asking a slew of embarassing and pointed questions.

Such “ambush interviews” always made the ambushee look really bad—why couldn't they answer what always seemed to be a few simple questions and their response was always “No comment” or “I have nothing to say” or a kidney punch back at Mike with a brief case and a comment that was inevitably bleeped out.

What was never said by Mike Wallace or any other reporter involved in an “ambush interview” is that the ambushee might not be legally allowed to answer such questions, or they might not even know how to answer the question and figure the best course of action is not to say anything for fear of looking worse than they already are (or will, when the interview is edited for television).

Such interviews tend to be a “damned if you do, damned if you don't” type of affair.


My friend Hoade is an expert on collection agencies, having done extensive research in the field for his first (and still unpublished) novel. By the time a company approaches a collection agency (or the collection agency approaches a company) the company has pretty much written off the debt (the loss is considered an “operating expense” and can be used to offset any taxes the company pays) and anything the collection agency collects (minus their “fee”) is pretty much gravy (since the offset taxes more than make up for the atual income of any debt so collected).

As a result, there isn't much legally a collection agency can do to actually collect on the debt. Sure, they can trash your credit rating, but it's a fair assumption that if you have collection agents on your tail, your credit rating is pretty much gone anyway. They can't garnish wages, or place liens on property (only the court system can do that, and a company is only going to go through the court system if it's a metric buttload of money involved and skip the collection agency entirely). About the only recourse a collection agency has is intimidation. And surprise. The only two recourses are intimidation and surprise and an almost fanatical devotion to the Pope. The three recourses are intimidation, surprise …

Oh. Um. Sorry about that.

So yes, short of the comfy chair and a ruined credit rating, they can't do anything to you.


And as I'm constantly reminded of, don't sweat the small stuff, and it's all small stuff.

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

https://boston.conman.org/2000/08/01

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.