Monday, July 31, 2006

Using a ContextMenuStrip with a TreeView, my approach

Mike Hillyer posted an entry on his blog that was very useful to me.

I've implemented the same basic thing, but I think I did it in a way that is a little cleaner, and saves some cycles. There are two catches with Mike's implementation: 1) is that the TreeView MouseClick event is fired anytime you click anywhere in the TreeView; not just on a node. 2) is that you can't cancel the action. Users expect to be able to cancel a mouse event by holding down the mouse button, and moving the mouse off of the control. (you can experiment with this yourself. Open any MSFT program, and click-hold on an ok button. Then drag off the button, and let go of the mouse. The ok will not happen).

Rather than catch the MouseDown event, I am catching the NodeMouseClick event. That only fires when a node gets clicked, and the event args include a reference to the node that was clicked. Since it's a mouse click event, it honors the drag off the control to cancel idea.

Here's the code:

private void tvMachines_NodeMouseClick(object sender,
TreeNodeMouseClickEventArgs e)
tvMachines.SelectedNode = e.Node;

Totally funny

Do you ever get the feeling that people are stealing your wireless? I did, once. More likely, have you been stealing wireless? Read this article. Some guy was having his wireless stolen; rather than lock down his network, he decided to screw with the folks stealing it. You can skip most of the text; to see the results, check out the pictures at the bottom.


Thursday, July 27, 2006

A Hero Passes

One of the most inspiring military men I've ever heard of died yesterday. Carl Brashear, who was immortalized in the movie Men of Honor, died in the Portsmouth Naval Hospital. Chief Brashear was the first black Navy Diver, and the first black Master Diver. His story has always touched me; it's sad to think that he won't be here anymore, to inspire young servicepeople.


Are you frustrated by not having a desktop client (like Outlook) to use with your free hotmail account?

Are you tired of dealing with Outlook Express 6, which was released three eons ago?

Do you wish you had a current, flashy little mail client, which integrated with your hotmail account, and your messenger account?

I've got the solution!

Check out this post, where the Windows Live Mail team announces the beta release of Windows Live Mail Desktop (it's basically the next version of Outlook Express).

Monday, July 24, 2006

Vystar Credit Union – The worst bank ever

No matter what you might be thinking of doing, don't do business with the worst bank ever. I have many reasons for saying that they are the worst bank ever.

I had accounts with the worst bank ever for 7 years, from 1999-2006. I cannot tell you how many times I was embarrassed or irritated by them. Here's a list of the worst offenses:

  • If you deposit money in your checking account, and then try to use your checkcard, be careful. The check card balance is about 2 days behind your checking account balance. Several times, I was in line at a store (like the Borders on Southside), and the visa wouldn't work. I can remember at least two times when I just walked out into the parking lot of the store, and used an atm to withdraw the money from my checking account, and paid with cash
  • You can only get some money out of an ATM. There's a daily limit of $570 on atm withdrawals from your account. So, if you are on vacation, and want to splurge a bit, but need cash, tough tittie. When we were trying to pay our deposit, we ran into this problem. There aren't any branches of the worst bank ever anywhere in the world except Jacksonville, FL. So, we couldn't go to the bank to get our money, and had to visit the ATM every day for several days, and take out the max each time.
  • In the move, and switching bank accounts, two withdrawals came out of my worst bank ever checking account, causing my overdraft protection to kick in. We sent them a check (to the tune of $200+). Today, I tried to close my account. They told me I couldn't because of an outstanding balance on the overdraft account. The balance was $2.29. Two dollars! I'm certain that I paid Vystar more than $2,000 in interest over the years I had a car loan through them, and I'm sure they've made thousands off of interest from my deposits. Keep in mind, I was a loyal customer for 7 years, despite the irritations.
  • When we went to buy a new car the last time, I contacted Vystar, since I had a car loan through them already. I had never been late on my loan payment, or any other payment to Vystar, in 4 years. They told me they couldn't finance me. No big deal, I'll get financing through the dealership. The dealership got me financed with a local credit union. Vystar (the worst bank ever). So, when I came to them as a loyal, long-term customer, they couldn't help me. When I came as an anonymous car buyer, they were all ready to give me a loan.
  • They let our information be stolen! I received a ton of phishing attacks in email, from people impersonating the worst bank ever. Here's my question: how did the phishers know I was a customer of the worst bank ever? The worst bank ever let some hacker steal a couple thousand customer emails. God knows what else was stolen.

I realize there are a lot of the same links in this post (worst bank ever). I'm trying to see what I can do to get Vystar as the #1 search result if you search for worst bank ever. If you'd like to help me with this project, just link to the worst bank ever, with worst bank ever as the words in the link.

Dumb bastards.

Sunday, July 23, 2006

High Scores

I completed the backend of a SpaceRocks! feature tonight. I created a high score system that will work for any and all of my games. I haven't done the UI yet, but I added another task item to the project plan for UI work at the end.

Here's a link to the project plan, in case you don't have it bookmarked.

Wednesday, July 19, 2006

Giving back

I feel like the software development industry has provided a lot of opportunity for my family to be happy and successful. In general, I try to live by the idea that if a group helps you out, you should do something to help that group out in turn.

The way that works in the software industry is generally to get on an open source project. For those who don't know (and don't want to read the linked entry), open source software is software that is developed by volunteers, and provided for free to the community (meaning anyone in the world who is interested in the problem the software addresses).

The ideal (at least for me) is to find an open source project that deals with a pain point that you experience. For me, that pain point is software installation. The setup builder that comes with Visual Studio is nearly useless, and the commercial applications that address the problem are all really expensive for cheapos like me.

I'm not the only person who feels this way. There's a group at Microsoft, started by a single guy, who build a tool that makes good setup authoring available to the masses, for free.

I've decided to start helping with this community effort. I contacted Justin Rockwood yesterday, and asked how I could contribute to making Wix work better within Visual Studio. He sent me a long email that detailed his ideas for where the Wix VS integration is headed. Today, he posted nearly the same thing on his blog.

I'm going to try to contribute to a hierarchal designer that shows the features, components, and files/registry keys and their relationship to each other, and the Richer IntelliSense support. This post serves as my dibs on those projects, at least for getting them started. So there, I beat you to it.

This is the thing that is going to consume some of my Tuesday evenings. See honey, there's an altruistic, nice, well-thought-out reason for me to contribute. You thought I was only doing it because I think it's cool.

Too many links?

Apparently, I've been putting too many links in my recent
posts. Sorry about that.

Excellent Excel 2007 resources

I have been reading a blog about Excel 2007 for about a year now. There was a bunch of really good stuff in the blog, but very little of it was useful on a daily basis; it was mostly stuff that I am interested in because I totally dig the new UI.

Yesterday, the author started a new series of posts about how to use Excel 2007 on a daily basis. Those of you that have the beta should check it out. Those that don't, go download the beta, and then check it out. Or, I guess you could check out the blog first, and see why you should go download the beta.

It's the Excel 2007 blog.

Adventures with Subtext

As you know, last week, we set Courtney up with her own blog (

When Courtney came to be asking about setting up her own blog, the first thing I thought was "Hey, cool, now I get to play with SubText". I have considered moving my blog to SubText for some time, but I don't want to break my permalinks. I still think about it at least weekly, but haven't yet decided to do it. There are a couple of people who link to my blog, so moving would cause them problems.

Anyway, back on track (I'm digressing, here).

I went out and downloaded SubText, and ran through the web-based installer. Pretty painless process, actually. There were two manual steps, which isn't ideal, but is pretty close, and damn good for an open source fork of an open source project.

The first post was a breeze. I threw one up, to make sure everything worked. There's a pretty good out-of-the box experience with SubText.

Yesterday, we ran into our first real problem.

Courtney was trying to post an entry about her old job working with a collection agency. She's had longer posts than this one, and has posted several since she tried to post this one. This one post, though, just wouldn't work through the web interface. I finally downloaded and installed w.bloggar (which I don't particularly like), and got the post up there. The only problem was that the post lost all formatting. I told Courtney she would just have to edit the post through the web interface, to fix the formatting. No big deal.

Today, she contacted me because the editing wouldn't work either. Damn it. Now, I'm a bit frustrated. When I get frustrated, I try to talk to the boss. I emailed Phil Haack, and told him the problem. Literally, in 10 minutes, he had responded with the fix. 10 minutes. For a response from an open source software project. That is crazy unheard-of. No other open source project that I have encountered has that kind of response time.

So, here's the email Phil sent me:

I think I know the problem. It's been fixed in the next version. Here's the fix for you.

I believe this is an issue with a ReverseDOS.config (in the webroot) setting. I added the isRegex attribute like so:

<directory pattern="/admin/"
isRegex="true" />

Works for me now.

Let me know if this fixes the problem.

Now, Courtney can totally edit the post, and has done so, happily.

I'm really impressed with the SubText project, and with the responsiveness of Philhimself. Thanks, Phil, for both a great product, and a great user support experience.

I do have a couple of nit-picky little things I'd like to see in the next version, though. Phil, if you're listening, I created feature requests for both on your sourceforge site. Feel free to bump the priority up to 10 on my two requests.

  1. Ability to subscribe to posts. Particularly, I'd like to be able to check a box somewhere so that any time someone posted a comment to the blog, I (as the owner) was sent an email. It'd be nice if users could also choose to subscribe to particular posts, and get email notifications when they were commented on.
  2. Preview for the skins. Right now, if I'm not sure what skin I want to use, I have to edit the skin choice in the admin section, then go back to the blog page, and refresh to see the changes. And, anyone who is reading the blog while I'm doing this gets a confusing experience, since the template might change several times before I settle on one. My wife likes to redecorate a lot, so I see her blog template changing weekly. It's already changed once, and she's only had the blog a week.

Thanks again, Phil, for your help today.

Sunday, July 16, 2006

I may have contributed to the birth of a monster

My wife (a wonderful woman), had been a contributor to my blog for quite a while now. Most of you probably don’t know this, since she rarely posts here.

Well, last week, she asked me about setting up her own blog. I had some misgivings, since she hadn’t really posted here very often.

Now, I have different misgivings. That girl posts like 5 times a day.

Check it out,

Friday, July 14, 2006

FMS – Drunken Master

First, I’ve decided not to try to keep track of the numbers of these posts. From now on, they’ll just start with FMS, and then a title for the story.

While I was stationed on Okinawa, my duties took me on deployment to the mainland many times. Most of the time, I would fly into Yokota Air Base, and then travel by bus or truck to Camp Fuji, nestled at the base of Mount Fuji. Actually, it was about 8000 feet up the mountain. That 8000 feet is just a SWAG (Silly Wild-Ass Guess), so don’t quote me on it.

On a serious note, before the funniness, Camp Fuji was the most beautiful and dramatic place I have been. Seeing this mountain just raise up out of the middle of a plain, with no other terrain in site, is amazing. When I got up in the morning one day, I looked away from the mountain, and realized that I was looking down on the clouds.

Back to the funny. In my first 8 trips to Fuji, I got exactly one (1) evening off. And that one barely counted, because I had to be up at 7 the next morning, to take care of the details of flying my artillery battery back to Oki. Since I had been to Fuji so many times, I knew just about all of the permanent personnel that were close to my rank. Since Fuji was such a small base, there were only like 200 permanent personnel there. There were, I think, 7 females on the whole base.

Since I had my one night out, after spending about 20 nights at Fuji, my friends in the Motor T group decided to take me out for a night on the town, in Numazu.

Numazu was about an hour’s drive from Fuji; at least, the bar we were visiting was. One of my buddies had heard about this bar from his Japanese girlfriend. She was meeting us there.

The bar was crap. We were the only people in there, except for a fat chick from New Zealand, and my friends’ girlfriend and her friends. I was the DD for the night. That didn’t last long, actually. At that time, I was big into drinking Tequila. One of the guys that came with us starting drinking it, and I decided to join him. I purchased 8 drinks, each of which cost 500¥ (~$5.00), and was equivalent to ~3 shots of tequila (they came in tumblers). Well, I drank 8 drinks that I know about. After the 8 drinks, I still had 1500¥ in my pocket. I’m not sure what happened to that money.

I know that I passed out on a couch in the back of the bar, after feeling up the New Zealand chick’s ass. I know that I needed a lot of help walking the mile or so back to where we parked the car.

When we got back to the car, I sat down on the gravel, and leaned against the right rear wheel. Then I started to puke. I made a puddle, then asked for help getting on my feet. One of the Jarheads I was with asked for the keys to the car, to get me in it.

The guy with the girlfriend was the one who drove. When we started yelling for the keys, he responded that he was coming, and then that he was almost there. What I didn’t realize until a couple of years later was that he was in his girlfriend’s car, having relations. He was serious when he said coming.

A few minutes later, he opened the car door, and I stumbled into the backseat.

I remember being in the back of the car, and feeling like I was going to puke. Then I remember puking. A lot. I was drunk enough that I thought I could catch the puke in my hands, and was trying to catch it and throw it out the window. It didn’t work so well.

When they got me back to my barracks, I collapsed into bed, after taking my pants and shirt off (inside out), and throwing them away. I got undressed in the laundry room, which was shared by everyone on that floor of the barracks.

At 6:30 or so, my boss, Sgt Scali, came to wake me up for the day. He told me to get showered, and that we would go to breakfast. Later, he told me that he came back around 7, to tell me that he was going to breakfast, and to meet him at the HQ building in half an hour.

The next thing I remember, it’s right about 8am, and Sgt Scali (who was a body builder) was pounding open my door, and screaming at me to get out of bed. I literally jumped from a prone position on the bed, and landed at attention about three feet from the edge of the bed. I was very confused, and didn’t understand what he was so mad about. I was only a couple of minutes late, after all.

That day, I couldn’t keep anything down, not even water. Finally, at about 1 pm, I managed to keep a pear down. One of my “friends” came over and asked me how I was feeling, and jiggled my head around. I told him it was my stomach, and not my head, so he jiggled my stomach. I threw up in the hallway, about 5 feet from the bathroom door, at a run.

Later that day, I finally managed to keep some Gatorade down. Do you remember the old Gatorade commercials, where the athlete drinks it, and you can see the fluid hit his stomach, and spread outward from there? I felt that. The first sip didn’t even make it to my throat; my mouth absorbed it completely.

Of course, since I was in trouble, Sgt Scali had been riding me all day long. He made me weigh every one of the 26 or so vehicles that we had to move that day, by myself. That consisted of dragging four 50 lb scales (they weigh 50 pounds, not read 50 pounds) in front of, say, a humvee. Then, I drive the hummvee onto the scales, get out, read the scales, pull the humvee off the scales, move the scales, and then park the humvee. After that, I get the next truck, and do it all again. 26 times. While incredibly hung over, and puking every few minutes.

Later that day, I talked to a friend in my unit, and he asked about me getting all drunk. I didn’t understand how he knew, since no one from my unit had been with us. Apparently, he ended up in the same bar, somehow, and had come to talk to me while I was passed out. When he woke me up to say hi, I apparently tried to deck him.

Luckily, I missed, and our friendship continued.

That night is why I don’t drink Tequila anymore, even after 9 years.

Thursday, July 13, 2006

Taking a collection

Alright folks, as many of you know, Courtney and I have had to cut out all frivolous expenses recently.

This sucks for many reasons, but right now, I want to tell you about one particular tragedy. I had planned to attend the Microsoft GameFest game development conference here in Seattle next month. The normal cost for this event is $450, but I am an elite, so my cost is only going to be $150.

As you all should know, it is my ultimate aspiration to support my family by creating and selling games to the unwashed masses. There are a few really huge announcements coming during this conference, and there are like 25 sessions I’d like to attend. Unfortunately, even if I go, it’s only a 2 day event, so I can attend max 16 sessions.

This is where you all come in. I’m putting a hand out in need. Dire need. I don’t know if I will be able to face another year with no game dev conference. The only other conference for game devs that I want to attend costs like $3000, so I’m giving you all a deal.

Now, if everyone that reads this blog donates some money, then I only need $80 from each reader.

That was a joke. Seriously, though, I’m hoping that you will all find it in your hearts to send me some little bit of money, so I can go and check out this conference. You can consider it charity, and you can claim it on your taxes (Note that I said you can claim it, not that it is legal to do so).

The easiest way for you to contribute is to send some dollars to my paypal account (Cullen_waters AT hotmail DOT com). For those that aren’t familiar, you have to replace the ‘AT’ with ‘@’, and the ‘DOT’ with ‘.’ when you send the money, or some other guy will get to go to GameFest in my place. And that would be a whole nother tragedy.

Wednesday, July 12, 2006

Take that, Mac boy

I have been waiting for this for a while now. Someone finally rewrote the Mac vs PC commercials. I think the new versions are a bit closer to the truth, and definitely funnier.

Monday, July 10, 2006

Keep in Mind

We live in the Pacific time zone now. That means that it is 5am in Seattle when it is 8am in Florida. I’ve gotten several calls this week at 5am. Luckily, I’ve had the phone’s ringer turned off. Luckily for whoever called, that is. Mikayla is not a happy girl if she gets woken up early.

Neither is her mommy, and her daddy doesn’t like it too much, either.

Sunday, July 09, 2006

Funny Marine Stories #3

Every night, we had to post a guard in the barracks. Since there were over 100 M16s in the barracks, and they didn’t want anyone going nuts, we had a nightly guard. The way that worked, is 16 guys would get picked each night (it rotated pretty fairly). Each one of us would have one hour of guard duty (called fire watch), either in the head (bathroom), or in the squad bay. We basically had to walk around, and check that everyone’s rifle was locked up, and make sure no one went crazy.

You learn a lot about the human body’s reaction to sleep in that kind of situation. Every time I had guard duty, at least one guy would scream in his sleep, or sit bolt upright in bed, or start reciting some of the facts that we were absorbing every day. I’m pretty sure that boot camp magnified my talking in my sleep (ask Courtney about the snow man sometime).

Well, having people suddenly sit up or scream at you is no big deal, compared to what one guy did.

One morning, the drill instructor told me to gather up about 4 guys’ cammies, and wash them. When we went to sleep at night, we would roll up our uniforms, and put them behind our racks, where the floor met the wall (by the way, rolling your clothes is remarkably effective at keeping wrinkles out of them).

As I went to grab the cammies, of the other recruits stopped me, and told me to grab a towel, and not to touch the cammies with my hands. Naturally, as I was grabbing a towel, I asked why. Apparently, while one of the guys was on fire watch, someone from the lower end of the alphabet (our racks were arranged alphabetically) got out of bed, and walked back to the wall behind his rack. He proceeded to pull out his pecker, and take a leak all over about four guys’ cammies, including his own. The fire watch asked him what the hell he was doing. The pee-er just ignored him, and got back into bed. Turns out, the guy wasn’t even awake. He slept through the whole thing!

Why is it that I always end up with the nasty, clean up the piss jobs? Why am I cursed?

Funny Marine Stories #2

How about something a little lighter?

Writing the last post reminded me of a story that is funny, in a sad sorta way.

There was this guy in our platoon, named Annis. Now, I don’t know about all of you, but to us, there was only one nickname for this guy.

Anus was a geeky white guy from somewhere up north. Quiet, steady, not a tough guy. Anus’ bunkmate was this huge black guy, Albright. Apparently, Albright was a bit unhappy/stressed out about boot camp. He got pretty frustrated every day; until he found a way to relieve that anger.

Every night, for about two months, before he went to bed, Albright would punch Anus. He would wait till the lights were out, and most of us were asleep. He’d get out of his rack, and hit Anus in the side a time or two.

Anus didn’t mention this to anyone. He didn’t tell a drill instructor, and he didn’t tell any of us. Well, not until the night before graduation. He just took it, and was Albright’s punching bag (literally) for a couple of months.

Anus wasn’t the smartest cookie in our platoon, although he was a pretty cool cat. He was a really stoic guy, just took whatever was thrown at him. He managed to get cellulitis (an infection that eats your skin), and just took that, too. He didn’t mention it to anyone for like a week. By the time he did mention it, there was a hole in the side of his cheek, that went all the way through. Dude could breathe with his mouth closed and his nose plugged.

Can you say dumbass?


Over the past 5 years, I have tried several times to put a feeling into words. Until recently, I didn’t feel like I was adequately describing what I was feeling. Then, earlier this week, it struck me. Longing. I feel a strong sense of longing, almost a yearning.

Of course, your response is going to be: What do you long for? I’ll tell you (that’s basically the reason I’m writing this post, after all).

For Father’s Day, in addition to my Xbox360, my wonderful wife got me a couple of military history books. Those of you that know me will immediately realize that this means books about World War II. This period in our history is by far my favorite; I am fascinated by the war, and its effects on our homeland, and the entire world.

While I was in the Marine Corps, there was a series of books being published, called The Corps. These books were written by a man named W.E.B. Griffin (Any of his books are great gifts, by the way). These books were nearly required reading for Jarheads, and definitely shaped my view of what it meant to be a Marine. I closely identify with all of the characters in the book. I think my dad would probably say the same thing about the Badge of Honor series that Griffin wrote.

Anyway, reading these two really good military history books brought back a welter of emotions, and with the emotions came a word. Longing. It was like something in my brain clicked into place. I can finally explain how I feel when I read a book about the Corps, or see news articles about Marines in war. I long for the brotherhood that I experienced as a Devil Dog. I yearn for the closeness, the camaraderie, the friendship. There isn’t anything else that I have ever yearned for. In general, I have a wonderful life. A great, loving, amazing wife, to go along with my beautiful, fun, interesting daughter. My dream job, and work that stimulates and excites me. I’ve got some good friends (even if they are all 3000 miles away now).

But, since I left the Marines, I haven’t made friends like I did when I was in. I haven’t met anyone (except Courtney) who I can stand next to in an open shower, and have a normal conversation while we are bathing. I’ve never met anyone else who I would trust to refill my shower bag while I was washing. I haven’t been close enough to anyone else to be able to tell them that they can’t go out with us unless they take a shower and brush their teeth, and have that person just accept that I am coming from a good place with that requirement.

Question: Is it possible for normal people to be this close? My hypothesis: no. Unless they are in extreme circumstances, people cannot bond this closely (with the exception of your significant other).

I think some examples are in order.

I went to boot camp with a guy named Dent. This guy was a scrawny, skinny black guy, with a heart of gold. We didn’t see each other after boot camp, for a couple of years. When I was in Australia, I went to the laundry to drop off some cammies, and Dent is running the machines. Dent and I weren’t particularly close in boot camp, but we immediately started chatting and complaining like we had known each other since birth, and had just seen each other the day before.

There was another guy in our platoon that stood out. Not in such a good way, though. One of our platoon mates got struck by lightning while we were on the rifle range. Actually, 19 guys got struck. One guy died. I feel horrible, because I can’t remember his name. What I do remember, however, is that all 100+ of us were destroyed by his death. We had a kid die in high school, and the whole school wept, even people that didn’t know him. I didn’t. Lots of people I don’t know die every day, and I can’t mourn them all. This one kid’s death, though I probably only spoke 10 words to him, completely wrecked me. I still miss him, to this day. At least once a month, I think about going back to Parris Island, and going to the Starlite range, and looking at the hole in the concrete between the 200 and 300 yard lines. That hole is there from the electricity passing through our buddy’s foot, into the ground.

Now, when I see or hear about Marines fighting and dying over in Iraq or in Afghanistan, I want to join back up, and go get in the fight. Not because I am a killer, or because I necessarily believe that we should be over there anymore, but because my brothers are dying, and my being there might keep even one guy from getting wounded or killed.

I wonder if I will ever again experience the depth of friendship that I experienced in the Corps. It’s almost worth dealing with the chickenshit to be able to have those kinds of friends again. I wonder if it would be the same as an officer. Do they get as close? I kind of doubt it. Most of the officers I knew when I was in (and those retirees I’ve met since) were very career-oriented. The enlisted guys I knew weren’t out to advance themselves, they were there to do their duty, and hopefully get some enjoyment out of it.

God I miss those guys.