The 5th Horseman

My wife wrote me recently that Wal-mart is a Humbug. Mostly, she was upset with a shopping experience during the holiday season. A cashier had been inefficient, and in the same week, the portrait studio made us wait an hour before we left in disgust over the delay past our appointment time.

Her pledge not to shop there ever again lasted exactly 4 days. One trip through the local competitor’s checkout lane and she decided a clean store and lower prices were more important that her grudge.

We decided together that this quote from Herman Wouk’s Caine Mutiny also applies at Wal-mart:

“The Navy is a master plan designed by geniuses for execution by idiots. If you’re not an idiot, but find yourself in the Navy, you can only operate well by pretending to be one. All the shortcuts and economies and common-sense changes that your native intelligence suggests to you are mistakes. Learn to quash them. Constantly ask yourself, ‘How would I do this if I were a fool?’ Throttle down your mind to a crawl. Then you’ll never go wrong.”

But in reflection, I think they’re more than a Humbug. I think they’re quite possibly one of the infamous Four (Five?) Horseman of the Apocalypse, foretold in the book of Revelations.


I looked, and there before me was an inexpensive horse! Its rider was named Wal-Mart, and Sam’s Club was following close behind him. They were given power over a fourth of the earth to kill by low prices, gift cards and cheap gas, and by the happy bouncing smiley face logo.

I’ve bought whole-heartedly into the cash-less society they offer. I don’t need to carry cash through the week anymore. I fill up my Wal-Mart gift card dutifully every weekend and buy the cheapest gas around during my weekly commute – either at Wal-mart, or Sam’s Club.

I don’t have to write checks at their checkout lines anymore. I just swipe my ATM card — which was never specifically imbued with debit card power by my election — and poof, transaction complete, have a nice day!

And most unsettling: I like it.

I could shop at Cabela’s 30 miles away, but the prices are outrageous there. Wal-mart has the same hunting stuff I drool over, but much cheaper.

I could get my groceries at the cute little grocery store I was so taken with, before Wal-Mart expanded… but I can also get so much more at Wal-Mart… and if not the same brands, certainly better prices.

I could shell out 3 figures for family photos, but wow… There’s a portrait studio right inside the store — And vision care — And a pharmacy — And a cafeteria with Mmmm, good cinnamon rolls!

I’ll have to watch myself, so that I don’t go clammer to be in line when they offer payment by hand or forehead scan.

A nearby town is organizing a drive to keep Wal-Mart outside of their borders. Resistance is not quite futile, as other cities have won similar fights, but what does it matter? I pass 5 Wal-Marts and 2 Sam’s Clubs between my home and work. Doesn’t everyone? Still, a quiet voice wishes the town luck… Because when I’m not shopping right along to the piped in tv music overhead in the stores, and when the gas tank isn’t empty… that place looks to me like it’s been prophesied for a long, long time.

(er, please, Wal-Mart: don’t sue me. It’s humor. Mostly.)

String Concatenation in ASP Classic

ASP (VBScript) does string concatenation (joining) with the ampersand (&). It’s a bad performer. I’ve heard that for years. I never really understood how or why.

Marcus Tucker exposes why in the best description of the issue I’ve read.

And since I’ll probably use this again somewhere, here’s his String Concatenation class.

'-------------------------------------------
'String concatenation class (using an array)
'-------------------------------------------
'Written by Marcus Tucker, July 2004
'http://marcustucker.com
'-------------------------------------------
Class StrConCatArray
	Private StringCounter
	Private StringArray()
	Private StringLength
	
	'called at creation of instance
	Private Sub Class_Initialize()
		StringCounter = 0
		InitStringLength = 128
		ReDim StringArray(InitStringLength - 1)
		StringLength = InitStringLength
	End Sub
	
	Private Sub Class_Terminate()
		Erase StringArray
	End Sub

	'add new string to array
	Public Sub Add(byref NewString)
		StringArray(StringCounter) = NewString
		StringCounter = StringCounter + 1
		
		'ReDim array if necessary
		If StringCounter MOD StringLength = 0 Then
			'redimension
			ReDim Preserve StringArray(StringCounter + StringLength - 1)
			
			'double the size of the array next time
			StringLength = StringLength * 2
		End If
	End Sub
	
	'return the concatenated string
	Public Property Get Value
		Value = Join(StringArray, "")
	End Property 
	
	'resets array
	Public Function Clear()
		StringCounter = 0
		
		Redim StringArray(InitStringLength - 1)
		StringLength = InitStringLength
	End Function		
End Class 

Christmas List 2004

There’s a whole host of things I’d love to get if I won the lottery. A Hummer H2, A Tablet PC, A 20GB (or more) windows-friendly music player/storage device, a new video card (with TV in/out), a new hard drive, a dishwasher, a rifle, etc… I want KEXP – Seattle to be a local station in Ann Arbor.

But honestly, those aren’t as reasonable right now as these:

  1. A fog proof mirror for the bathroom. Preferably hand-held.
  2. I’d like to get my winter coat cleaned and un-grimy.
  3. I want a digital camera. Doesn’t have to be super new or impressive – just something good enough to take pictures of family or my deer.
  4. I want the Muppet Show on DVD. It’s goofy… the kids ought to love it. I would.
  5. The movie gift certs I got last year were well appreciated.
  6. The Lord of the Rings – The Return of the King (Platinum Series Special Extended Edition)
  7. Late Addition: How about a DVD Writer for just $60?

That’s the list for now. I’ll update this as other things occur to me.