Tuesday, July 31, 2007

Harry Potter

I just finished the 7th and final book in the series, Harry Potter and the Deathly Hallows. It was good. A very good ending for the series. And as a whole, the series was actually very good. Not many books can follow an eleven year old through school and teenage years as well as J. K. Rowling has done here. Many criticize the later books for being darker and less humorous, but in reality it was the first couple movies that brought out the humor initially rather than the early books. I think for an eleven year old to pick up the first book and read them as they were released, the maturity level increases appropriately. The final book isn't one I would recommend to many pre-teens.

I resisted reading the series until the third or fourth book was on its way and everyone was raving about getting it. So I picked them up to key in on this cultural phenomenon that I had let pass by without much regard. I was so engrossed, I read through the series non-stop and became one to eagerly anticipate the next story. Since then, once another book was announced, I would re-read the previous one to get back up to speed and then read the next installment. A strategy much required for the later books that follow previous events closely and draw upon your growing store of knowledge of past characters and events.

While they can be classified as children's books, I really whole-heartedly recommend them to everyone. They're good stories and a nice escape from the real world. The movies are good too, but no match for the books -- think of them as Cliff's Notes that cover the high points of the stories. It's sad to see the series end, but I am confident any number of side projects and parallel universe books will crop up in the future. Think about the Star Wars and Star Trek series of novels. Most of us just know the movies, but there are entire legions of books that fill in every void and cover all the important historical events left out of the core set. I look forward to seeing the Harry Potter universe expand in this way as well. The various characters are just too rich to let die: Luna Lovegood, Hagrid, the Longbottoms, etc. With the first couple books, some of the text books students were to buy were published along side the novels, so it would be nice to see The Life and Lies of Albus Dumbledore in print too. I think. That has the potential to be done very poorly, however.

Anyway, read the whole series. It's worth the time.

Friday, July 27, 2007

Dodge Magnum


I'm thinking I should start doing little reviews of the cars I rent. Or maybe not. But I wanted to comment on the Dodge Magnum that I drove around Houston last week. When these were first released, I really liked the idea. Rear wheel drive, lots of power, unique look. They got some bad reviews on rear visibility, which is to be expected. And in the end, no matter how cool you think it might be, it's still a Dodge.

Anyway, I had a few comments on the garden-variety rental version I had. This was a standard automatic 6 cylinder (no Hemi for me).

PROs:
  • A good amount of power. Stomping on the pedal got you moving fairly quickly.
  • Roomy interior - lots of leg and head room in the front, the rear looked good size, and the trunk seemed to be accessible. Not huge, but better than either a sedan trunk or a hatch back.
CONs:
  • Poor driver's seat. No lateral support. Taking a normal turn at highway speeds means you start to roll out of the seat. You shouldn't have to grasp the steering wheel tighter to stay seated. My old TBird had nice side bolsters that kept you in place and that was 10 years ago!
  • Lame handling. Good power, but the back end is where all the power is and the weight isn't. Hit the gas on a turn and you feel it get awfully squirrelly awfully quickly. That's a bad combination - especially with a little wetness on the roads. It didn't inspire confidence as a go-fast car, that's for sure.
  • Rear window sucks. First, it's is horribly small, with all these pillars all over the back cargo area. Visibility is bad. But what's really laughable is this little tiny windshield wiper they stuck on the back. The window there is somewhat vertical, so a wiper may be required in low-speed, heavy-precipitation driving. But the glass is very wide and very short. With this limiting aspect ratio, they stuck a very tiny wiper there in the middle. The edges don't get cleared at all -- you just get this little peephole in the middle of the window. Either do it right or don't do it at all. I wouldn't have missed it during the rain if it wasn't there; I would just turn on the rear defroster and deal. Otherwise, if you have to stick a wiper back there, put two. Or one big one mounted on the side. Something, anything, better than what ended up there. It was just silly embarrassing to turn this thing on in traffic.
  • Ignition location. What's wrong with the steering column anymore? If you're doing something fancy with fobs, okay, move it around and be stylish. But this one was flat against the dash behind the steering wheel. A good place for the various fog light or other switches, but it housed just the ignition all alone. Along the steering column this rather ugly but necessary area is hidden away most of the time. It's just ugly there. Negative style points and no added convenience.
  • Cruise control stick location was poor. The wipers and turn signals were located on one stick on the left side of the steering wheel (no on-wheel controls). And the cruise control was on a smaller stick, slightly further back and slightly up. More than once my first day in the car I hit this little tiny twig with the typical force of a turn signal and I thought it would break. Just a poor design choice. What's wrong with the other side of the steering wheel? I hope this car has an option to put all this on the steering wheel, then it's not an issue. But it just harked back to old cars with 3 or 4 different wands poking out of the steering column.
I could nit-pick some more. The wiper controls were counter intuitive. You push the headlight switch to toggle the fog lights, but it wasn't clear at first how to turn on all the interior lights. The arm rest along the door was in the wrong position. The gas tank lid was kind of flippy floppy and not clear how to open. Do you push it to pop? There's no dent to indicate you just pull it, but that's how you got it open. Cheap.

If the high-end SRT version also comes with a major suspension upgrade, it might be worth considering. But it's still kind of hard to justify that much $$ just for the Hemi name. After all, it is still a Dodge.

Tuesday, July 17, 2007

Application.EnableVisualStyles()


Alrighty, I just found a solution to something that's been bugging me for quite a while. When you create a standard .NET 1.1 Windows desktop application with Visual Studio .NET 2003, the user interface elements (controls) look like those on the left of the picture. They're very much Windows-like, but basically very plain - kind of old-school Windows 2000 era looking. However, when you create a standard desktop app with Visual Studio 2005 based on .NET 2.0, the controls have a much more modern look that we're all used to by now (as seen on the right picture). A little snazzier and much for Windows XP looking with the shaded button, colored slider, etc.

This is all find and dandy. But now say you have a VS 2003 (7.1) project that gets converted to VS 2005 (8.0). With all the version 2.0 assemblies linked in, I expected the converted, re-built application to look just like a standard .NET 2.0 app. It didn't. It still looked old-school. Everything looked to convert without issues, and many of the ancillary XML files were similar. I was missing any differences until I finally looked at the source code of an application written in VS 2005. By default, the main method looks like:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

See? Trickiness here. A normal VS 2003 application only has the single Run() method call. The key addition that changes the user interface look is the first one - EnableVisualStyles(). There's some good background information on this blog. Turns out you can add this to a .NET 1.1 application as well. Not all the elements are updated, but at least the method call is backwards compatible so you can add it to your code and still build in either .NET 1.1 or 2.0. But the key point is that in their infinite wisdom, MS decided that they'd add something to the default template for desktop applications to make your .NET apps look better on newer versions of Windows. I can't hold that against them, but it seems like a strange way to do this - adding extra lines to the Main() method. But then again, if they had done something sneakier, everyone would complain about that too.

They've also added the SetCompatibleTextRenderingDefault method call also. This is another line to basically make up for changed internal things - they fixed the text rendering engine, but if you relied on the old one for spacing, things could get messy. More info here. Instead of sneaking this in the back door and moving everyone to the new model, they added this explicit call to the template. Again, kind of messy but the best way I guess. I can just see the Main() method for Forms applications when .NET 6.0 comes out -- 28 different method calls to make sure things still work OK for .NET 1.1. I wonder why Java doesn't suffer from such problems?

There you have it. For newbs that are just seeing Windows.Forms since VS Express stuff came out, none of this matters. Unless you want to uglify your desktop apps and make them look old by removing these new method calls. But for .NET 1.1 app writers, you can beautify your apps a bit by using the OS visual styles. And for those of us that are always moving between platform versions, it's a good feeling to find out why things change sometimes. I'll admit that I should have noticed this sooner, but .NET 2.0 and VS 2005 now does the partial class thing, so the Main() method is in a source file called Program.cs instead of with all the design stuff as it is in 1.1 and 2003. Oh well, eventually I dug it out myself because searching the internet was useless here. All the search terms you would use just lead you in circles because they're too common or too many are needed. Searching for "user interface change visual studio 2005" is a good example -- lots of stuff, but nothing even close to the issue I'm trying to solve.

Friday, July 13, 2007

I hate garage sales


I really do.

This topic comes up today as I sit in my home office facing the neighborhood street. Both neighbors that I can see are participating in the weekend community garage sale that runs Friday and Saturday.

First, I hate the general concept of a garage sale. If you have old junk to get rid of, get rid of it. Give it to Goodwill or the Salvation Army. If it has any value, sell it on Craig's List or eBay. What is the point of selling a beat up 10 year old soft cover book for 10 cents? And your turntable from the early 80s is garbage to 99% of the populace and valuable only to those looking for old turntables -- who will be watching eBay or Craig's List. Then you'll get $10 for it instead of $1.

Just about the only exception I can think of are used kids toys. I'm not talking a beat up spiderman action figure, but those large plastic buildings and things every modern 2 year old ends up with somehow. These things will last forever, and they're too big to ship anywhere, and Goodwill probably doesn't have the space either. So these should be recycled within the current community of parents of young children. But still, why a garage sale? Know what I do? On Sunday evening before Monday morning trash pickup, I set it at the end of my driveway slightly away from the rest of the garbage (or wait until the next morning to put out the real trash). In a dozen times of doing this with big plastic kids toys or old furniture, the stuff has been there the next morning exactly once. And in that case the piece was crap. And the large-item pick up of our trash service got it Monday morning anyway. Easy. And I didn't have to put up with hundreds of strangers wandering through my garage all day long.

I'll admit some of this feeling is left over from my childhood of being dragged to various garage sales. Back then though, there was a little more innocence to everything. There was a slight chance of hitting a nice antique somewhere. My brother and I were also keenly aware of baseball cards and possible hidden gems. But in today's age, anyone with valuable antiques or baseball cards know it. And if they're for sale, they're on eBay or for auction at the local auction house. The owners are going to get every last dime their personal treasures may be worth. You're not going to score a $5000 antique shaker desk at a garage sale for $20.

Working a garage sale also stinks. A majority of these are held on days that end up being just too hot. Why do I want to stand in my garage all day on a Saturday? To make maybe $100 haggling for every last dime? Here's a task for all the garage seller people: take the amount of money you made and divide by the sum of hours you spent running the sale, advertising the sale, and setting up for the sale. What's that come out to? $2/hour maybe? If you're lucky. I can think of a million other things I'd rather do with my weekend than earn $2/hour standing in a garage talking to morons.

Which brings me to the next topic of the attendees of garage sales. It's been interesting this Friday morning watching this cross section of York county park in front of my house. The first thing is that this is a Friday -- so I'm really only seeing a) retired people or b) unemployed peopled. Now both these groups could certainly be in a position where every last dime helps. Here's one way I can help you folks out -- stop going to garage sales and buying crap you don't need. Really. Sure, 50 cents is a great price for that 5 year old $50 remote control car. But I could have saved you another 50 cents. And how much are you paying for gas driving from sale to sale in that '86 Cutlass? 50 miles * $3 per gallon / 17 miles per gallon = $8.82. There's another $8 I could have saved you. Or at least you could have driven to Walmart with that job application in hand.

Even on a Saturday where whole families are drug out of the house bargain hunting for used bicycles and decades old video games. Nobody that visits a garage sale is ever in a very good mood. Mothers yelling at kids, kids running around wildly, fathers wishing they were home either a) watching TV or b) taking care of something that needs done and this is his only 'free' day of the whole weekend where he can finally get one of the nagging tasks off the list, but no, here he is digging through stuff that will be in the trash Monday morning unless his spoiled kids just have to have it.

But here we are anyway with half the people trying to get a couple bucks for their old crap and other people with money burning holes in their pockets that can't wait to buy old crap. Capitalism at its best. Or worst?

Wednesday, July 11, 2007

Leonard Cohen


I've been a fan of some Leonard Cohen stuff for years. Honestly, it first started with the soundtrack to Natural Born Killers where a couple of his songs appear. Definitely one of the top 10 movie soundtracks ever and includes Waiting for the Miracle and The Future from Cohen, but also a great cover of You Belong to Me by Bob Dylan. So I've been somewhat familiar with his stuff, but just recently got a lot more familiar as my little lady was choosing songs to sing at performances this summer and fall. Turns out she kept picking songs that he wrote. These include Halleluha (you'll know this from the Shrek soundtrack as covered by John Cale) and Suzanne, which again lots of people covered, but the Judy Collins version is the one she was into.

While familiar with him, I didn't actually have any albums. His stuff is pretty popular to cover, so I've got many songs he wrote, but nothing of his. I just grabbed a couple and am even more impressed. Awesome lyrics in just about every song. His voice is one of those that is give or take (think Bob Dylan or Tom Waits), but it's good music to play while working.

So go pick up The Essential Leonard Cohen two CD set. Now. Go. Great stuff.

Tuesday, July 10, 2007

First MINI modification


In what may be a long series of upgrades for the MINI, I made my first modification. I replaced the standard antenna with a little stubby one. The stock on is about 18" long and skinny given the car that RC look. So I ordered a replacements that's just 4" tall. It tapers a bit as it goes up, but the bottom bit is the same size as the stock one.

I order from MiniCarParts.net where we've order a few other things (hat, clothes, etc.). The tiny envelope was delivered by DHL and I was caught off guard. I don't know why, but I expected something larger than an envelope you might get a CD shipped in. Timidly I opened it up to find the packing slip and the tiny little antenna. But no installation instructions, which worried me for a minute until I saw the threads at the bottom.

Installation was trivial. I just reached over and unscrewed the stock one, screwed this one on, then stuck in they key and turned on the radio. Reception was fine. And it looks cool.

A search after the fact reveals that this antenna will fit a lot of late model cars besides the MINI:
So why did they put that goofy looking thing on the MINI to start with? Surely the 350Z doesn't have an 18" remote control car looking thing on it! Even though I do see that the Scion tC comes with the same stock one as the MINI does.

Monday, July 9, 2007

Corrupt Registry!!!!

Oh my, two blog posts in one day. But this one had me sweating quite a bit (not that Forza 2 doesn't )

After playing around installing and testing some old games for my son to play (he's into StarCraft now, but I was always more of a Command & Conquer fan). So I installed the second in the series - Tiberium Sun which had a good story line and much better graphics than the original. But for some reason it wouldn't run correctly, so I uninstalled it this morning (not long after my blog post). I also uninstalled a few other things I don't use while the control panel was open. A dialog wanted me to reboot, but I always decline because I'll do it when I want to. But then my system started acting a little odd, so I obliged and closed everything up and rebooted. And I see the following:

Windows XP could not start because the following file is missing or corrupt: \WINDOWS\SYSTEM32\CONFIG\SYSTEM

along with a suggestion to boot from a Windows XP CD and select 'r' to repair. In my experience, this never works, but I tried it anyway. It didn't work. After some poking around and lots of other things, I found an MS Knowledge Base article that gave me the right clues. Luckily I have a clue with these things and knew not everything was kosher here, so let me outline my fix for anybody else with this issue and also for myself when this happens next time!

The article suggests that you back up your current registry files, which I did and I recommend doing yourself too. Boot with an XP CD and choose 'r' and let it complain about the registry - but it then drops you to a command line. Now just copy the 5 key files: DEFAULT, SAM, SECURITY, SOFTWARE and SYSTEM from c:\windows\system32\config to somewhere like c:\windows\tmp. We can always return to this broken configuration if we need to.

But the next step says to restore backup versions of these files from c:\windows\repair. The problem here is that all these files are dated on my system from when Windows XP Service Pack 2 was released - May 2005. Which means overwriting my corrupt files with these basically blank registry files will reset my system to largely a fresh installation. All the user files will be gone and you'll need to re-install everything. This is not what you want to do unless everything else has failed.

Instead, you want to find more recent versions (un-corrupted hopefully) of your registry files to repair. This is outlined in Part Two of the article. Dig into c:\System Volume Information from the command prompt in the recovery console. Change into a recent _restor{} directory and you'll see a bunch of subdirectories with names like RP815, RP816, etc. Be careful and check times because if you grab the absolute latest, it may be corrupt too -- or if you tried the first suggestion from MS will have the old 2005 registry with new dates. Look into the highest RP### directory under the 'snapshot' directory. Hopefully you'll see a bunch of files with names like _REGISTRY_MACHINE_SYSTEM. If not, move to the next newer restore point -- not every restore point will have a backup of the registry. I had to go back two or three versions to find them. Now, do as the article suggests and copy the 5 files again to c:\windows\tmp so you have another place to restore to. From there, copy these guys to c:\windows\sytem32\config and rename them to their proper names.

Now cross your fingers and type 'exit' to reboot the machine. Hopefully your standard startup screen will show up. Unless you were just doing a major overhaul when the registry was corrupted, you shouldn't notice anything different. Success!

Next step is to load up your backup programs and back up everything you care about. Everything. Go buy an external firewire drive if you need to. Back up everything now because you never know if the next crash will be worse or not!!!

Forza 2


I've been playing Forza Motorsport 2 for the last week or two. Unlike other racing games like PGR3 which are largely arcade-style racing, Forza is really more of a racing simulation. The idea is that it keeps track of lots of various aspects of physics and tries to model tire friction, weight balance, etc. Overall, it does a pretty good job. Running around in a Lotus Exige, if you lift the throttle slightly mid-turn, you feel the car start to oversteer, which is what you'd expect in real-world cars of this caliber. It also has various things like ABS brakes, traction control and stability management to keep the car planted; but you can turn these off and the difference is quite accurate to real life. This is much different than the arcade racers where you keep the gas pedal floored and bounce off the walls or other cars.

So if you're into racing sims, FM2 for the XBox 360 is a good one. But what prompted me to write today isn't my addiction to this type of game where I must win every event as quickly as possible before I go insane.

It's some of the artwork I've seen posted online of how people are painting their cars. At first, I thought, "pretty cool" and wondered of various themes I could possibly create (limited though they may be being my artistically-limited self). But then I read a tutorial, and my thoughts changed lines. First off, because the tutorial will easily draw out a TLDNR for those not interested, the primary point is that you cannot upload pictures to the game. That means all of this artwork you see of fancy cars was done by hand.

Now, there are some very talented people out there doing this stuff. And I certainly respect their talent. However, I'm just not on their page. Given my limited XBox time, I would rather play the game rather than draw pictures using primitive shapes and basic effects. Having said that, my kids will spend an hour or more in front of Microsoft Paint making random things, but I for one cannot. Sure, I'll pick an appropriate color for a car I've purchased -- dark blue for the Audi RS 6, please. And yellow for the Lotus of course. But beyond that, I'm just not going to spend the time.

I'll admit that if they let you upload graphics from the network or a thumb drive that I would be slightly more tempted to create something original (well, kind of, because I wouldn't have drawn the original source). But I refuse to use my gaming time to draw rather than race!

Friday, July 6, 2007

"These are the real heroes"

3 Hurt in Vegas Casino Shooting

Some local Vegas idiot starts shooting randomly down onto a casino floor. He managed to hit a few people, but luckily none of them were hurt critically. But the coolest part is that some bystanders saw this going on -- and they tackled the psycho and pinned him down. They were off duty police officers from out of town and two military personnel. Bravo.

"These are the real heroes. They saw him shooting and tackled him and held him," police Lt. Randy Sutton said. He identified those who stepped in as three off-duty out-of-town police officers and two military personnel, but he did not know their names.

I agree totally. I would like to have been one of these guys, but in reality if I was there I'd probably be one of the people knocking over chairs running for cover. I can't say I'd pull the George Costanza move of rushing past children and elderly women, but my mindset is not one to throw myself on top of a gun-wielding nutbar.

Tuesday, July 3, 2007

Roswell in the news. Again.

Here's a fox news story that came out today: Dead Airman's Affidavit: Roswell Aliens Were Real. It discusses a death-bed confession of a person apparently involved in the original story 60 years ago.

I admit and agree that these stories sometimes make one second guess what really happened out in the desert at the start of the cold war. But really, why would aliens who have mastered space travel be coming out her to monitor Earth? Why? Surely close to 100% of what they'd need to know could be gleamed from remote sensing, so why buzz us? If we found primitive life on a planet we would either get down in there and get involved or just put a satellite in orbit to observe. Whatever, the arguments are numerous.

But people will always be fascinated by the possibilities. I don't really doubt there's life out there somewhere. It's almost a statistical certainty. There's a recent article in Scientific American about the odds for life on Mars (slim) and Titan (better) - and those are just in our solar system. But being capable of space travel and actually coming to visit Earth to observe/abduct humans borders on absurd.