Wednesday, June 28, 2006

Cruise Control.net update

I have decided to disable cc.net. There isn’t anything wrong with cc.net, and I still think it’s a great tool for teams larger than one person.

The usefulness, however, for a single dev shop is limited, at best. I have spent over 10 hours working on cc.net, to get it all set up and running. All this so that I can know what I already did know: whether or not the build is broken. Since I don’t check in unless the build is working, there’s very little value added by cc.net.

Add to that the complexity inherent in keeping two machines configured with all of the tools and such that I use during the build process, and the costs greatly outweigh the benefits.

My plan is to leave the server installed, and the config files intact, so it should be an easy matter to re-enable it in the future, if I want to. If I do get involved in any multi-dev projects, I will certainly push to use cc.net. I will probably try to write a better application to monitor the build, though. The cc.net tray application takes like 60 seconds to start up.

Great Customer Service Experience

Today, a single employee at a huge corporation retained my business by great customer service. Any of you that have been near me during or after a retail experience in the last few years have heard my opinion of the general state of the customer service industry.

Courtney and I decided to go with Washington Mutual for our bank here. I opened us an account over a month ago. As of this morning, I still didn’t have a working ATM card or checks. I ordered both in mid May. Needless to say, I was very frustrated.

Today, I went to a branch, to get the ATM card straightened out, and see what was going on with the checks I ordered. If I heard “no” or “we can’t do that”, I was going to close my account, and walk across the street to First Technical Credit Union.

The teller, Ashley, did such a good job of addressing my concerns, and taking care of my needs, that before I left I grabbed the branch manager, and told him how I felt walking in, and that Ashley had singly-handedly saved my business. Ashley seemed to be a youngun, and was somewhat embarrassed when I grabbed her manager, and sang her praises in front of her. Sorry for that, Ashley.

If there is anyone who works for Washington Mutual that reads this blog, Ashley at the Overlake Financial Center in Bellevue, WA is the kind of employee that you should want to stick around in your company, and promote into a position where she can positively affect more customers’ views of the bank. If anyone else is in the financial industry, you might want to drop by and see if you can steal her away from WaMu.

Courtney can tell you how big of a deal it is that I even remember this girl’s name. I am horrible with names, so the fact that I can still remember it hours later should be an indicator of what a good job she did.

Saturday, June 24, 2006

Potty Training - Day Two (technically Day Five, but who's counting? Surely Not Me!)

Day Two: We are taking the whole potty training thing pretty slowly. She is only 18-months old after all. I don't believe there are many adults who aren't potty trained. That's a good sign, right? Can't be that hard, right? Mwahahaha!

Sometimes, while she's playing, she kinda bends her knees a little and stares off into space with this blissful look on her face. To anyone taking a glance, she looks just like a little girl daydreaming...Not so much. She's really just happy now because her
Number 1 just warmed her ass right up in our 40 degree house. Since I am trying to get Mikayla to understand exactly what is supposed to go into her Royal Potty, once I see that peaceful look, I scare the shit outta her (sometimes literally) and say, "Hurry, Mik! To the bathroom!". She jumps a little and takes off running for the bathroom. Now, only people who have seen her run will know just how cute this really is...she swings her right arm from front to back and her nonmoving left arm is plastered to her moving left leg.

But, I digress...


So, on Day Two, before she sat on her
Royal Throne, I took off her diaper and pointed to it and said, "Pee Pee," a couple of times. I then pointed to her and said, "You go pee pee," and then pointed to the toilet, "in the potty".

A pee pee in the pot-tay...A pee pee in the pot-tay!
(This is purely for my own entertainment and her misery. That's my job.)

She grabbed the diaper outta my hand and dropped it into her potty and sat down. She was promptly rewarded with a Royal Tune to which she clapped and did her Potty Jig. The Pee Pee was now in the Potty.

OOOkkaaaay. I had a different idea, but I can deal with that. Slowly but surely...they say that is what wins the race...right?

Potty Training - Not For the Computer Geeks...Sorry!

I was asked to repost this here by the MSN Group...

Mikayla has started showing some of the classic signs of being ready for potty training. So we decided that we would give it a shot.

Day One – We went to Target to purchase a potty chair for our little Mik. After looking at the small selection they had available at Target, I had picked out a very simple (read easy to clean) potty made by BabyBjorn. Of course, Daddy wanted the potty with all of the bells and whistles…literally. My thought was that if I was doing my business and all of a sudden the toilet started playing a nice little tune, I would be pretty freaked out. This was not a battle to win…I caved and we purchased the
Royal Potty by Fisher-Price for $19.99.

“The Royal Potty is themed with a colorful "throne" which includes a child directed potty story book. Features 2 musical rewards, one for sitting on the potty, and a much more royal reward which activates after a successful potty "experience".”

A "child directed potty story book"? WTF?

A guide also came along with the potty on how to help your little prince or princess in the toilet transition:


“So your little prince or princess is ready to use the Royal Potty! Are you ready with the time, energy and patience required for this giant step? While there is no “magic” process that will instantly train your little one, your Royal Potty can make things more fun along the way.”

Big, freakin’ whoop…can’t you tell I’m so excited. <insert sarcasm here>

“Reading a book – keeping some favorite books handy may help your little ones pass the time while sitting on the potty. You can start with ‘A Throne of Their Own’, the book included with your Royal Potty, then perhaps introduce some other favorites as potty training progresses.”

Hmmm…Check. She learned this step months ago from Daddy. If she follows us into the bathroom, she brings her own book.

“Royal rewards – the royal tunes children hear every time they sit, and again when they make a ‘contribution’ in the Royal Potty, is a fun way to reward success and a great motivation for a return trip. For those princes and princesses who need additional incentive, you’ll also find a rewards chart and reusable stickers. Celebrate each successful potty trip with a sticker on the chart. The stickers come in two different colors, representing each type of potty ‘contribution’.”

Lemme guess. A yellow sticker for number one and a brown sticker for number two? I was wrong; a sticker with one dot on it is for...you got it! Number 1! And a sticker with two dots on it is for Number 2! How Creative! (For those of you who might not have caught on…a contribution means pee or shit.)

Yip. E. Skip. E. What fun. <insert even more sarcasm here>

We were sitting on the couch getting ready to watch Treasurer Hunters when Mik walked into the living room holding the box (that was as big as she was) that contained her Royal Potty. Cullen took it out of the box and put it together for her (a huge task all in itself). He showed her how if she put her hand in the hole it would sing her a cute, little song. She promptly sat on it and shoved her hand between her legs and into the hole (keep your heads outta the gutter people!). It played the song and she did a little dance…on the toilet…feet kickin’ and arms swingin’. “Oh, that was great!,” she thought. For the next half-hour she sat on the toilet and put her hand between her legs so she could listen to the song.

<Mental Picture Time!>

How in the hell we are going to get her out of that habit once she starts making “contributions”, I have no idea. I guess that’s a story for another day.

Tuesday, June 20, 2006

Live Messenger

The new version of Live Messenger is out. If you guys are still using an old version of MSN Messenger, or using the beta of Windows Live Messenger, I’d recommend upgrading. I love the new features in the Live version.

Here’s the link: http://get.live.com/messenger/overview

SpaceRocks! update (finally)

Tonight, I finally had the energy to work on my computer some at home. And, since the beta build of Flight Simulator X kept dying on me before I could take off, I decided to do some code work.

A while back, I finally got around to converting the SpaceRocks! code to use a high performance timer (the one included with the DirectX SDK, slightly modified), instead of just using a simple frame counter.

This is a Good Thing™. And a difficult thing. In game programming (at least my game programming), I have found the need for several constants. I originally tweaked these constants to get decent playability (like in version 0.0.8). After switching to the high perf timer, I had to re-tweak nearly every constant. So, that’s what I’ve been doing for the last few coding sessions.

In addition to tweaking the game settings, to achieve some measure of playability, I also tweaked the particle code. Finally, I am fairly happy with the particles, and how they behave. That was much more of a frustration than I thought it would. Over time, I will continue to play with the particles. Specifically, I plan to change them so they attenuate over time, and I am going to randomize the colors somewhat. I’m planning on specifying a base color, and creating particles whose colors are close to that base, but not exact, with probably a few white ones thrown in for fun.

Lots of good stuff, for a couple of hours worth of work.

Oh yeah, cruisecontrol.net is working just fine. I was having more source control issues, but they seem to have cleared up (magically). Actually, now that I think about it, the computer was rebooted due to a power outage. I bet that cleared some cache somewhere. I had been making changes to the config file, and relying on the service being restarted to apply the changes. I wonder if the hard reboot forced some changes to be applied that were being cached before.

It’s actually building right now, as I type this. Beautiful, isn’t it?

Question for Eric Sink: Do I need to purchase a seperate Vault license for the cc.net service?

Wednesday, June 14, 2006

More Microsoft goodies

In addition to my work on Flight Sim, and my start at helping on Wix, I answered a survey targeted at independent/hobbyist game developers. Once the survey master found out I was coming to MS, she got me all set up.

I attended a round table about the new XNA Framework that MS is going to release. I had heard of XNA before, but the marketing blurbs I had read didn’t really explain how XNA was going to help small shops like me. Well, I know better now. I can’t say much since it’s all MS Confidential for now, but there’s going to be a big announcement soon.

After the round table, I was contacted by one of the SDEs on the team, to get my input on starter kits for the project. How cool is that? I’m helping shape future indie game dev tools; not to mention making great contacts on the team, in case I need any special help down the road.

There’s going to be a game conference here in Seattle, Microsoft GameFest. The XNA team is trying to hook us(those that are participating in the discussions about XNA) up with regards to the conference fee. I’ll be going, and if any of you are going to be in the Seattle area, I’d suggest you go as well. There are going to be some big announcements coming.

Here’s the list of study tracks from the site:

  • Graphics
  • Audio
  • Systems – Windows and Xbox
  • Visual Arts
  • Cross-Platform Xbox Live
  • XNA, Visual Studio & Developer Tools
  • Casual Games
  • Middleware
  • Publisher and Business
  • QA and Certification
  • Hands-on Workshops

Quite a list, eh?

Immortalized

I have been immortalized.

The number of perks that come with working for Microsoft are amazing. I found out that we are currently building the next Flight Simulator, and that employees are encouraged to become play testers.

Being a huge Flight Sim fan, I signed up right away. One of the guys on the team (an audio engineer) sent out an email request for people to come in and be recorded for the game. They are trying to get some diversity in the in-game voices.

I volunteered immediately, and was chosen. Somehow, somewhere in the next version of Flight Sim, you will be able to hear my voice. The audio engineer working on the project is going to send us all an email telling us exactly what has to happen to be able to hear ourselves in the game. Once I get that email, I’ll post it, so you can all hear me in the game, too. I’m also going to try to get permission to post the .wav files once they are all edited and such.

Coolest job ever.

Happy Father’s Day to me

It’s not even Father’s Day yet, and I’ve already had a great day.

As most of you know, Courtney’s parents were in town for the last week. Today, they wanted to go to the company store, and get some software using my allowance. They got a ton of stuff. The coolest part is that they bought me the Bluetooth keyboard and mouse set that I have wanted for a couple of years now.

It took a bit of doing (meaning reading the directions) to get the keyboard and mouse hooked up, but they’re ready to go now.

While at the company store, Mike & Mindy also got some accessories for the Xbox 360 that Mindy was planning to buy Mike. We can’t get the systems at the store, but we can get MS games and controllers and other accessories way cheap. They got three games, and three controllers.

Then, Courtney did it again. She totally surprised me. I was upstairs, messing with my new keyboard and mouse, and she calls up to ask me to bring her down a quilt. I go in the closet, and grab the quilt for her, and notice this cool, white box, with green stripes. At first, I was like “oh crap. I did it again. I ruined another surprise”. Then it hit me that she sent me into the closet, and I realized that Xbox was probably for me!

Turns out, all the stuff Mike & Mindy bought was just to throw me off the scent, so I wouldn’t figure out that Re was getting me the 360. I had no clue, as always.

My wife is truly amazing. Every time I think she’s done everything cool that a wife can do, she goes and surprises me again. I certainly don’t have to worry about being bored when she is around. Sometimes I feel like I ought to be checking the closets every day, to see if there are any gifts laying around.

I sure hope she never decides to cheat on me (which she wouldn’t, of course). If she ever started sneaking around on me, I’d have absolutely no clue. That girl is sneaky, I tell you.

Thank you honey. Once again, you have made a good holiday great!

Tuesday, June 13, 2006

The best software feature ever

I just read an article about the best software feature that has ever been created. Now, the author didn’t put it in those terms, but I am. This feature has been a long time coming.

Do you know someone who thinks that there blog is all about what goes on over their? Don’t you hate those kind of errors? The ones that people never fix, because Office doesn’t flag the word as misspelled, and they are too illiterate to learn the rules around when to use there or their?

Office 2007 to the rescue! Read this entry: http://blogs.msdn.com/jensenh/archive/2006/06/13/629124.aspx

Friday, June 09, 2006

Who’s a punk now?

A few days ago, one of my ‘friends’ put a comment on this blog calling me a punk. I’d like to respond.

First, some background on the perpetrator.

  1. He’s old. Really old. Over 30 old. He tries to hang out with younger guys, to look hip and cool, and it’s just sad.
  2. He blow-dries his hair. How much more of a woman can you be?
  3. He rides a bike. It’s a sissy blue bike, but it’s still a bike. If you can’t ride a raven R6, then an older, not as fast, no inverted fork blue R6 is probably the next best thing.

What’s the purpose of this post? Just a little rubbing in. You see, I’m way cooler than he is. Here’s why:

  1. My bike is black, and has inverted forks, and is faster. At least .1 seconds faster in the ¼ mile.
  2. I don’t blow dry my hair. I never have. Ever.
  3. There are mountains all around me. There is a crazy steep, twisty road right near our temporary housing, and a whole range of mountain roads about an hour away.
  4. There is a motorcycle road racing track
    35 miles from my house.
  5. On July 15th, I am going to a free
    track day at the aforementioned track. I don’t have to buy any new gear, and I don’t have to do anything to my bike except fold back the mirrors. I get two 20 minute lap sessions in the morning, to see how much I love riding on a track.

Eat that, sucker.

Wednesday, June 07, 2006

One other thing

I spent some time today unpacking boxes in the office. I got all of them unpacked, except for books and games. We’re going to go through our books again, and sell/donate a bunch more of them. We have like 10 boxes of books, still. That’s after purging a whole bunch of books, and selling them at a second hand book store. We sold so many books, we made over $250 (at about $0.75 each). That’s a lot of books.

I’ve decided that I am going to get rid of almost all of my non-technical books. I’ve found that the books I kept last time are such favorites that I don’t read them anymore. There are about 20 books that I can read in just 3 or 4 hours, since I know the stories so well. I find that I’m basically skimming them, and relying on my memory to fill in the storyline. Seems kind of pointless to keep moving them around the country, when I could just think about them for a couple of hours, and get the same result.

I will, of course, be keeping the Corps series by W.E.B. Griffin, though. That is a requirement for all jarheads. Actually, I’m a big fan of all of his books.

Cruise Control .Net working

I got cc.net up and working. After fixing the way the service logs on, the vault task was failing again. This was caused by my installation path containing spaces (like “Program Files”). I fixed it rather easily; the fix came from dealing with the same type of issues using command line applications. I surrounded the path to the vault executable with quotes. That took care of the failing source control tasks.

After that, I had to install NUnit on my server, to build the test project. Because I haven’t developed on that box since the last rebuild, I was missing some required components (NUnit, DirectX SDK, etc). Those are all installed now, and my cc tray utility shows green (meaning the projects are building properly). Next up is to integrate NUnit into the cc.net build, so it automatically runs the NUnit tests, and then NCover, so I get a code coverage report with every build. This stuff is way cool.

Who needs it?

Tonight, rather than sleep, I have been working on getting continuous integration set up in my personal development environment.

What is continuous integration, you ask? I’ll tell you. Basically, CI is the process by which every time code is changed in the repository, a build is kicked off, and the results of the build are displayed for all to see. A repository is the place where good developers(Eric’s thoughts, Joel’s thoughts) store their source code, and provides many benefits. Check out Eric Sink’s articles on source control for more information.

This task was not as simple as I thought it would be. I’m monitoring two projects (SpaceRocks! and my ‘engine’) with my CI server. I chose CruiseControl.NET for my CI server. Download the really small installer, and it’s ready to go in minutes. Of course, then you have to configure the projects.

I ran into a couple of gotchas, mostly around using cc.net and Vault (still the best source control system for smaller shops ever built). The biggest one is that the cc.net service has to run as a user account (not the system account), in order for the Vault tasks to work. I had to look for a long time to find the problem. The looking time was compounded by the fact that the cc.net error message was less than informative.

Second, I ran into a couple of minor issues using cc.net and MSBuild. Recently, I converted SpaceRocks! and the supporting projects into C# 2.0, so I could use the new features of the language, and of VS 2005.

Once I got those two things worked out, I was ready to roll. Of course, the build was still failing, since I hadn’t ever built the project on the server machine before (I do all my dev work on laptops and on my main desktop). I need the DirectX SDK before I can build successfully (which I’m downloading now).

Next, I’m going to spend some time in the code getting the unit tests working again, and I’m going to start working towards increasing my code coverage. I had let my tests slack off, since I was on such a roll with the game. I’m ahead of schedule, and feeling guilty about not having more tests in the code.

Monday, June 05, 2006

Quiet

Courtney and I moved into our semi-permanent housing Friday. This caused an outage of internet proportions, so we can't post from home. Thus, the lack of any updates for the last few days. We'll be posting again after tomorrow, when the internet gets hooked up.