General Ramblings comments edit

Yesterday was pretty eventful from a “lots of crap happening” standpoint.

I started off the day with a routine eye exam, which meant I did a little bit of work from home prior to the appointment. I also found the AK Rocker I was looking for at Circuit City. Ordered with a web special, it’s $8 less than it was at Costco and I can pick it up from the store to save on shipping. Ordered and done; planned on picking that up after work.

Went to the eye exam. My glasses prescription has changed in such a minor fashion that I don’t even have to worry about getting an update unless my glasses break (which just happened about four weeks ago) or get lost, so I’m good there. Also, no signs of iritis, so I’m good there, too. Two years to my next checkup.

Of course, they dilated my eyes so coming in and working was kind of a pain. Polarized sunglasses on polarized LCD monitor makes for some interesting contortions to be able to see the screen.

After work - haircut. Once every four weeks, baby.

On the way to the haircut, Jenn calls me. Guess who has a flat tire.

Okay, so the thing is, on Sunday I looked and told her that her front tires looked a little low. The bottoms were bulging out pretty bad and indicated some air could be had. She, of course, ignored it.

Sigh.

I was already halfway across town by the time I heard about it, so I told her to go back inside her work and stay warm (it’s been pretty cold out) and I’d come over right after my haircut and bail her out.

Finished up my haircut and stopped by Fred Meyer on the way to help Jenn and picked up some gloves. No need to get all dirty, right? My hairdresser even donated some old towels to the cause.

Got up to where Jenn was and she was cold because she had stayed in the car rather than going back into work and sitting in the warmth. Sorry, babe, got nothin’ for you. Got the tire iron out, stuck it on one of the bolts and…

Nothing. That sonofabitch wasn’t moving. I stood - full weight - on the handle of the wrench to try to get those things to move, but it just wasn’t happening. You have to love the impact wrenches tire stores use to put those things back on. Set the torque, guys, seriously.

Cranked on that for quite some time when a lady who was parked nearby provided a much larger cross-shaped lug wrench. That one gave me enough leverage to get the nuts unscrewed and get the wheel off. My arms were sort of shaking with the effort expended, and I’m not sure whether that’s a sign of my lame physique or something more legitimate. (Each nut made a loud cracking noise as I broke it free - that’s how tight they were. I wonder if maybe some WD-40 would have helped…)

Anyway, got the tire changed and sent Jenn on her way.

Made it back across town to Circuit City to pick up the chair I had ordered online that morning. Turns out the “pick it up from the store” process works pretty smoothly; I had anticipated problems. I may have to try that again.

Got everything back home and put my new chair together while watching TV. It’s really cool, and much more comfortable than the other two video rockers I have, so I think that’s my new favorite game chair.

All in all, not a bad day, but a lot more effort than I was hoping for. Jenn’s heading over to Les Schwab this morning to see what can be done with her tires, and I’m wallowing in the bajillion things I have to get done today. It’s kind of like when you have a big report to write - starting is the hardest part.

General Ramblings comments edit

The training I was in transitioned nicely into Thanksgiving. It was almost like having a whole week of vacation… but not.

Thursday (Thanksgiving) we went to the Hometown Buffet for dinner. My parents, my sister Tori, Jenn, my grandfather, Stu, and Tif all went. This proved to be an excellent answer to all of the issues that usually arise with Thanksgiving dinner. For example, what if someone (like me) doesn’t like turkey? No problem - you can have pretty much anything you want. What about the cleanup? There is none. Preparation? Nope. Everyone gets what they want, and as much of it as they want. It couldn’t be any better. I even had a cheeseburger. Right on! Plus, Granddad paid. Thanks, Granddad!

After dinner, Jenn went off to visit her family (and would later rejoin us), Granddad went to visit some other friends, and the rest of us returned to my parents’ place for some games. We played Lord of the Rings Risk, Apples to Apples, and even got some Donkey Konga in there. (Bongos on Thanksgiving is cool.) That went reasonably late into the evening, then we called it a night and departed for our respective residences.

Black Friday came and I had no intention of going anywhere, nor did I. Instead, Stu and Tif came over. Stu and I played some of The Warriors (like, 8 hours’ worth) while the ladies entertained themselves. The night ran late, but it was awesome - the first time in a while I’ve gotten a decent gaming session in.

(As far as The Warriors is concerned… it’s a lot of fun, but the camera could use some work. It’s a pain to control. That, and in a two-player game the screen is split vertically and it would have been better to split it horizontally because there is very little vertical movement. But it’s fun, and a good two-player game.)

Saturday Jenn and I ran around to stores looking to reap the benefits of the remaining sales on a few items but came out empty-handed. That evening, though, we went to the Winter Hawks hockey game to see the Teddy Bear Toss. When the Hawks score their first goal, the crowd throws stuffed animals onto the ice which then get collected and distributed to local childrens’ hospitals. Good fun for a good cause. Each year they try to break the record set by the year before. This year we beat last year’s record (and set the new league record) with 21,067 bears donated. That’s pretty good.

Oh, Saturday I discovered I’m allergic to my deodorant, too (causes a nice rash - thanks, Speed Stick Gel), so I’m going without for a couple of days (sorry, co-workers) to let the rash go away and I’m going to have to shop for a new one. (They stopped making the one I had been using for years, so I had to switch - unfortunately, I chose poorly.) Awesome.

Sunday was sort of a “catch up on all the stuff you’ve neglected” day. From morning until around 1:00p Jenn and I were outside cleaning up the yard. Had a hell of a time getting the lawnmower to start and just about kicked the crap out of it when I found the secret - you have to tip it back slightly while you’re starting it. That’s not documented anywhere and I don’t remember having to do that before, but that’s the trick. Weird.

After the lawn, having played The Warriors with Stu on Friday, I went to the video store and rented the 1979 movie the game is based on. It wasn’t too bad, and the game is totally dead on with its reproduction. I also rented Logan’s Run (I wanted to see it for the pop culture reference, but the movie itself is horrible) and The Jacket (which was pretty decent, plus Keira Knightley is hot).

And now it’s Monday and I’m catching up on email and so on. Somehow I think it’s going to be a looooong week.

General Ramblings comments edit

I finally caved in and decided I want one of those AK Rocker game chairs, so when Jenn went to Costco yesterday I told her to pick me one up. They’ve been there for months and I figured it was time.

Guess what they don’t carry anymore. That figures.

media, music, sql comments edit

I’m working on setting up various Smart Playlists in iTunes and every time I’m working with them I totally run into all these shortcomings with the way they work. Like, what if I want all of the pop songs by Depeche Mode and Erasure that show up between 1980 and 1990? You have your choice of AND or OR, right? So it’s “Genre is Pop” and “Year is in the range 1980 to 1990” and… what? “Artist is Depeche Mode” and “Artist is Erasure” won’t work. I need an OR.

Why can’t I just do this: SELECT * FROM Library WHERE Year BETWEEN 1980 AND 1990 AND Genre = 'Pop' AND Artist IN ('Erasure', 'Depeche Mode')

No reason, that’s why. Come on, guys, get with the program.

sql comments edit

I’m going to combine days two and three into one big entry because I don’t think I’ll get a chance to do a full day-three review at the end of today.

Yesterday was day two and we looked at SQL Server 2005 service broker stuff, its native HTTP support, and Notification Services.

The service broker facilities they’ve added are pretty cool. The ability to set up messages and queues and such inside the server is neat, and it folds nicely into the native HTTP support to allow for exposure of these things via web service. Cool. SQLXML has rolled into SQL Server, which we all anticipated and love.

Notification Services, though… OK, I’m just going to be brutally honest:

SQL Server 2005 Notification Services sucks big fat donkey dong.

Seriously.

Notification Services is the biggest hunk of claptrap Rube Goldberg mechanics I’ve been introduced to in a long time. It’s not debuggable, it’s super-hard to set up, and for what it offers I’m not sure it’s worth the effort.

We had a lab to set up some rudimentary Notification Services. The lab involved us creating a lot of hand-cranked XML configuration, running some setup to get the services up and running, then testing it out.

Problem 1: The XML contains SQL that turns into stored procedures. Why is that bad? When they make the stored procedures, there’s nothing to tell you whether you have a typo in the SQL. I mistyped a database object name and it never had a problem with it. In fact, I found that error in the Event Viewer - not even in the SQL error log - and only when it actually tried to execute the procedure. NO!

Problem 2: There’s insufficient logging. After I corrected my error, I tried to use the service again and something else went wrong. What happened? I have no idea. It just swallows the errors and moves on like there’s no issue. No errors, no warnings, no log. How am I supposed to debug that?

The whole thing where the XML that you have to hand-generate (and there’s a LOT) has a lot of magic words in it that you just have to sort of “know” about (like you have to just “know” that when you type “Foo” in one element that it becomes a stored proc with a name like “ServiceFooSomeProcNameHere” - yeah, that’s intuitive. It really does work like Rube Goldberg machines - this bit of XML kicks this block of code out that rolls down the hill and knocks this table row down and flips over and tosses a message over to that service… Come on, guys. It’s like someone took a weekend, architected the thing, and clamped it on the side of SQL Server 2005 so they could have a selling point or something.

Today we’ll be learning about managed code in SQL Server 2005, which looks great; working with client apps (ADO.NET), which won’t be news for me; and SQL management objects, which also looks great.

Oh, and before I forget, tomorrow is Thanksgiving, so Happy Thanksgiving to all!