Wednesday, February 28, 2007

Taquitos and a depressing area

I decided to cash in some of my Discover cash back bonus to get some money off a purchase at Staples, using to get a UPS battery backup for the family server so I can move the existing one to my xPC mini that doesn't have one but I think I'll leave it where it is and put the big, new UPS on my power workstation and move its UPS to the xPC. Yeah, got it. I was hungry and knew there was nothing but scraps at home so I decided to get some drive-thru.

There used to be two Taco Bell stores within a hundred yards of each other when I used to live off the southern end of Hamilton road. Eventually they closed one of the stores, leaving the one next to the Ohio BMV building open. It's in a horrible location; there is really only one way in and one way out and it is cramped. I tried one of those new grilled steak taquitos; nothing spectacular. You really can't taste the carne asada steak, just the cheese and you are encouraged to dip the things in guacamole, sour cream or salsa; three overpowering tastes. Hey it's only fast food, right? One hundred and ten fat calories later I'm sitting here wondering how dark and dreary that part of town has become.

I think the Service Merchandise was the first to go a long time ago, then the Phar-mor after that. Anybody remember Service Merchandise and how you walked around with those clipboards and when you wanted something you wrote down the catalog number then let someone process you then went to exit to get your purchases off the conveyor belt? Fun. That whole section is just dead now; pitch dark. The Good Year center is also closed. It used to be a great place to get tires until the screwed up an oil change; two extra quarts of oil in the crank case and a missing transmission fluid dipstick. More fun. Well, it's dead too. The compact disk store I used to buy all my metal music at is gone. What was the name? Twenty clicks on their card got you a free CD, which was awesome until I found stores on The Ohio State University's campus area. I could always get my music there cheaper and at a downright bargain if I waited for the used discs to roll in. I think there is a Toys R' Us back there. I used to go to Media Play for blank tapes and crap but I'm not sure if it is still there. The BWC building is shut down. The adult bookstore and a strip club are still there. Both AMC theaters are closed. The Big Bear and Central Hardware stores are long gone along with most of the shops in the immediate area. The tuxedo rental place when I got a tux for my friend Terry's wedding is gone along with the golf shop and photo store.

On the bright side, the Olive Garden still does well and there is an Ocean "something" restaurant close to it. Pizza Hut still seems open even though I admit to never having gone there. Papa Johns seems to do okay in the building that used to be a Rally's and a long time ago a Ritzy's that I worked at for a one day special event.

Of course, there is Eastland Mall. Lazarus turned into Macy's then shut down and Macy's took over Kaufmann's almost immediately after it was built. The food court has been rebuilt which is a good thing. I have purchased leather jackets from the same store under three different names. Now that store is gone.

I'm shocked at the change in the area I used to call home. It's just dirty, dark, dreary and depressing to look at.

Tuesday, February 20, 2007

Spam flood, again

Did anybody else get almost triple the amount of unsolicited emails overnight? I usually get a couple hundred but this morning I had just over a thousand waiting for me in my oldest mail account's bulk folder.

Seriously, though; why hasn't someone done something about this? Most messages I am getting appear to be from an eight year old list (i.e. great mortgage rates for the apartment I lived in eight years ago) so you figure someone would have found the ass-bag responsible for spreading that list and fed them to crocodiles somewhere. If you scan through most of your bulk mail message there isn't one damn legitimate business in there. Even if only half of the message are fraudulent, in the above case there were over 500 individual instances of attempted fraud.

Wednesday, February 14, 2007

Surviving the clear death

What started out as the "white death" promised by the weather nerds turned out to be just as bad in most places as they originally predicted. Instead of the "white" death things are more of a "clear death" due to the volume of crystal clear ice covering everything. Thankfully we were lucky and (knock on wood) have yet to lose power. After taking out the trash this morning I decided to take some photos of the neighborhood. I live outside the city and here are some shots of the ice and snow; some of them are quite pretty to look at.

The dog didn't like ice and sleet last night. Get me out of here! Poor thing had to wait for the early morning to go potty.

Tuesday, February 13, 2007

Surviving the white death

Yeah the weather was pretty bad today. It took about eighty-five minutes to get to work today only to get to spend a couple of hours of quality time with the one or two that made it in only to be sent back home again. I work downtown and live on the southeast side of Columbus (Ohio) and the local weather nerds (and nerd-ettes) were saying 4"-8" of snow plus sleet and freezing rain.

The drive home was treacherous but only due to stupidity on the part of other drivers. SR-33 south had one side plowed and those of us using it were going a steady 40 miles per hour with plenty of distance between us. I kid you not, I was passed on the left, in the unplowed portion, by some dumb-ass doing about fifty while talking on his cell phone. He had handicapped tags so I'm assuming the handicap was a mental one. Seriously, is it really worth risking your life and the life of others just to get those couple extra feet (which ended up as zero feet because I pulled into the same shopping center behind the idiot). I was also passed by one of those double-trailer trucks fish-tailing back and forth as it plowed through the slush and sleet, sending chunks of snow and ice into the air to crash against the windshield. There were two dimwits following the trucker in their SUV with no more than a car length between them. Sometimes I wonder how we survive.

The dog hates the ice. He loves playing in the snow but tends to panic and get frustrated when he breaks through the ice and sinks up to his neck in the snow beneath.

Just looking at the ice outside I cannot help but remember the ice storm we got before Christmas in 2004. This year's storm is similar in regards to what is dropping where. The volumes of snow are up north and the ice is down south. In 2004 we lost power and had to fleet to my parent's house until the power came back late night around 11pm or so. There have already been power outages in neighborhoods very close to us that were serviced by our power company. I'm hoping that the power survives the night and doesn't die on us in the middle of the night. I'm sure the noise of all the UPS battery back-up alarms going off will wake us. I think I'm going to turn the heat up a little bit just in case; the extra cost now might buy an extra couple of hours of heat if the power does go.

Thursday, February 08, 2007

Psycho SQL

Back in the old days on an AS/400 with DB2/400, we didn't have the luxury of a CASE statement or IF or DECODE and performance was at a premium when attacking a gigantic detail table. We needed a way to provide real time performance on huge tables summarizing values by quarter without the benefit of a temporary work table or sub-queries. The AS/400 did not have "if-logic" but it had MIN(value1,value2), MAX(value1,value2) and absolute value (ABS(value)) so I cheated and used those functions with some math to produce the result set.

The goal for each quarterly column was to reduce the month (m in examples below) down to a zero or a one (false and true) then multiply that times the quantity and amount being totalled (value). Zero (false) when multiplied would produce a zero and therefore not add anything to the SUM. One (true) when multipled would produce the same number and be added to the SUM.


SELECT grouping_code
, SUM(value*(1-MIN(MAX(m-3,0),1)))
, SUM(value*(1-MIN(MAX(ABS(m-5)-1,0),1)))
, SUM(value*(1-MIN(MAX(ABS(mm-8)-1,0),1)))
, SUM(value*(1-MIN(MAX(ABS(mm-11)-1,0),1)))
FROM large_freakin_detail_table
WHERE criteria = 'whattheywerelookingfor'
GROUP BY grouping_code

So you are probably wondering what the blue heck all that SUM MIN MAX ABS crap is doing. Sometimes it is best to look at results. Assume the left-most column is the month (1 through 12) and see how that number is transformed into a true (1) or false (0) through the magic of math.


SUM(value*(1-MIN(MAX(m-3,0),1)))

m-3 MAX MIN 1-r
1 -2 0 0 1
2 -1 0 0 1
3 0 0 0 1
4 1 1 1 0
5 2 2 1 0
6 3 3 1 0
7 4 4 1 0
8 5 5 1 0
9 6 6 1 0
10 7 7 1 0
11 8 8 1 0
12 9 9 1 0

The first quarter is simple: subtract 3 (March) then take the highest of that value or zero. The 0 is higher than -2, -1 and 0, but not higher than 1, 2, etc. Now we have a zero in months 1, 2 and 3 (1st quarter). By looking for the lowest value between 1 and the last result you will get a 1 for 1 or more but the zeroes will stay 0. Subtract the result from 1 (0 = 1, 1 = 0) and now you have the true/false value to multiply against an amount to either zero it or not before adding it to the SUM. Tricky, eh?


SUM(value*(1-MIN(MAX(ABS(m-5)-1,0),1)))

# m-5 ABS r-1 MAX MIN 1-r
1 -4 4 3 3 1 0
2 -3 3 2 2 1 0
3 -2 2 1 1 1 0
4 -1 1 0 0 0 1
5 0 0 -1 0 0 1
6 1 1 0 0 0 1
7 2 2 1 1 1 0
8 3 3 2 2 1 0
9 4 4 3 3 1 0
10 5 5 4 4 1 0
11 6 6 5 5 1 0
12 7 7 6 6 1 0

The remaining quarters are more difficult but by using the absolute value (the positive value) you can eventually get the number you are looking for.


SUM(amount*(1-MIN(MAX(ABS(mm-8)-1,0),1)))

# m-8 ABS r-1 MAX MIN 1-r
1 -7 7 6 6 1 0
2 -6 6 5 5 1 0
3 -5 5 4 4 1 0
4 -4 4 3 3 1 0
5 -3 3 2 2 1 0
6 -2 2 1 1 1 0
7 -1 1 0 0 0 1
8 0 0 -1 0 0 1
9 1 1 0 0 0 1
10 2 2 1 1 1 0
11 3 3 2 2 1 0
12 4 4 3 3 1 0

This query used one sweep through the gigantic table and one sort for the group by. Grouping on month would have added an additional sort so that was not an option.

Wednesday, February 07, 2007

Form input validation: selective service

I while ago I attempted to locate any information on the selective service number and means of simple validation of selective service numbers collected through the Internet. The answer I received from Public and Intergovernmental Affairs at the Selective Service System was:

The first two digits of a man's Registration Number, who was born January 1, 1960, or later, will be his year of birth (such as 78, 80, 84, etc.), followed by a dash and eight other digits, making ten digits total. These last remaining eight digits are just random numbers (84-XXXXXXX-X).

Like the social security number there are no check digits hidden in the number (so, no code). To do client-side Javascript validation the appropriate regular expression would be: /^(\d{2})-?(\d{7})-?(\d)$/; or /^\d{2}-?\d{7}-?\d$/; if you didn't feel like saving components in an array.

I just love going through old mail messages :D

Useful terminology

  1. Intaxication: Euphoria at getting a tax refund, which lasts until you realize it was your money to start with.
  2. Reintarnation: Coming back to life as a hillbilly.
  3. Bozone (n.): The substance surrounding stupid people that stops bright ideas from penetrating. The bozone layer, unfortunately, shows little sign of breaking down in the near future.
  4. Foreploy: Any misrepresentation about yourself for the purpose of getting laid.
  5. Cashtration (n.): The act of buying a house, which renders the subject financially impotent for an indefinite period.
  6. Giraffiti: Vandalism spray-painted very, very high.
  7. Sarchasm: The gulf between the author of sarcastic wit and theperson who doesn't get it.
  8. Inoculatte: To take coffee intravenously when you are running late.
  9. Hipatitis: Terminal coolness.
  10. Osteopornosis: A degenerate disease. (This one got extra credit.)
  11. Karmageddon: It's like, when everybody is sending off all these really bad vibes, right? And then, like, the Earth explodes and it's like a serious bummer.
  12. Decafalon (n.): The grueling event of getting through the day consuming only things that are good for you.
  13. Glibido: All talk and no action.
  14. Dopeler effect: The tendency of stupid ideas to seem smarter when they come at you rapidly.
  15. Arachnoleptic fit (n.): The frantic dance performed just after you've accidentally walked through a spider web.
  16. Beelzebug (n.): Satan in the form of a mosquito that gets intoyour bedroom at three in the morning and cannot be cast out.
  17. Caterpallor (n.): The color you turn after finding half a grub in the fruit you're eating.
  18. Ignoranus: A person who's both stupid and an asshole.

Tuesday, February 06, 2007

George Carlin's new rules for 2007

  1. Stop giving me that pop-up ad for classmates.com! There's a reason you don't talk to people for 25 years. Because you don't particularly like them! Besides, I already know what the captain of the football team is doing these days -- mowing my lawn.
  2. Don't eat anything that's served to you out a window unless you're a seagull. People are acting all shocked that a human finger was found in a bowl of Wendy's chili. Hey, it cost less than a dollar. What did you expect it to contain? Lobster?
  3. Stop saying that teenage boys who have sex with their hot, blonde teachers are permanently damaged. I have a better description for these kids: "Lucky bastards."
  4. If you need to shave and you still collect baseball cards, you're a dope. If you're a kid, the cards are keepsakes of your idols. If you're a grown man, they're pictures of men.
  5. Ladies, leave your eyebrows alone. Here's how much men care about your eyebrows: Do you have two of them? Okay, we're done.
  6. There's no such thing as flavored water. There's a whole aisle of this crap at the supermarket, water, but without that watery taste. Sorry, but flavored water is called a soft drink. You want flavored water? Pour some scotch over ice and let it melt. That's your flavored water.
  7. Stop screwing with old people. Target is introducing a redesigned pill bottle that's square, with a bigger label. And the top is now the bottom. And by the time grandpa figures out how to open it, his ass will be in the morgue. Congratulations, Target, you just solved the Social Security crisis.
  8. The more complicated the Starbucks order, the bigger the asshole. If you walk into a Starbucks and order a "decaf grande, half-soy, half-low fat, iced vanilla, double-shot, gingerbread cappuccino, extra dry, light ice, with one Sweet-n'-Low, and one NutraSweet," ooh, you're a huge asshole.
  9. I'm not the cashier! By the time I look up from sliding my card, entering my PIN number, pressing "Enter," verifying the amount, deciding, no, I don't want cash back, and pressing "Enter" again, the kid who is supposed to be ringing me up is standing there eating my Almond Joy.
  10. Just because your tattoo has Chinese characters in it doesn't make you spiritual. It's right above the crack of your ass. And it translates to "beef with broccoli." The last time you did anything spiritual, you were praying to God you weren't pregnant. You're not spiritual. You're just high.
  11. Competitive eating isn't a sport. It's one of the seven deadly sins. ESPN recently televised the U.S. Open of Competitive Eating, because watching those athletes at the poker table was just too damned exciting. What's next, competitive farting? Oh wait. They're already doing that. It's called "The Howard Stern Show."
  12. I don't need a bigger mega M&Ms. If I'm extra hungry for M&Ms, I'll go nuts and eat two.
  13. If you're going to insist on making movies based on crappy, old television shows, then you have to give everyone in the Cineplex a remote so we can see what's playing on the other screens. Let's remember the reason something was a television show in the first place is that the idea wasn't good enough to be a movie.
  14. No more gift registries. You know, it used to be just for weddings. Now it's for babies and new homes and graduations from rehab. Picking out the stuff you want and having other people buyit for you isn't gift giving, it's the white people version of looting.
  15. And this one is long overdue: No more bathroom attendants. After I zip up, some guy is offering me a towel and a mint like I just had sex with George Michael. I can't even tell if he's supposed to be there, or just some freak with a fetish. I don't want to be on your web cam, dude. I just want to wash my hands.
  16. When I ask how old your toddler is, I don't need to hear "27 months." "He's two" will do just fine. He's not a cheese. And I didn't really care in the first place.
  17. If you ever hope to be a credible adult and want a job that pays better than minimum wage, then for God's sake don't pierce or tattoo every available piece of flesh. If so, then plan your future around saying, "Do you want fries with that?"