Wednesday, December 21, 2005

MS Update

So, I haven't heard anything from Microsoft about my phone screen/interview. I'm guessing that isn't positive. Since I didn't really go through a MSFT recruiter, I don't have anyone to contact for feedback about the call. I guess I just have to wait until someone from there calls me, or accept that I won't get feedback.

It's interesting (to me) how I got the phone screen. Here's the unlikely chain of events: I read a blog called JobsBlog, written by a few people in the MS recruiting department. The woman who primarily posts there went to MS because her husband got a job there. I have contacted her a couple of times about Seattle life, and tips on convincing Courtney to move.

I read another blog, which is about aftermarket developer tools that MS creates.

When I read about this new team they were forming, to create dev tools, I contacted the lady in the recruiting department, and asked her who I should contact to get on this team. It just so happens that her husband is a PM on the team.

So, she forwarded my resume over to her husband, and he talked to the dev side, and I got a phone call from them.

Unlikely chain of events, right?

Friday, December 16, 2005

Game update

Been a while, right? So, now, the game is nearing v1. I only have a few major tasks to accomplish before the game is playable.

  • Make bullets and asteroids and ships hit things, instead of flowing through.

  • Make asteroids blow up.

  • Make the game generate more asteroids.

  • Make items wrap around the screen when they go off (so, you go off the right side, and come on the left).



Sounds like a lot, but the tasks are relatively simple. I would attach a screenshot, but the screen shot code stopped working for some reason, and I can't debug it right now.

Microsoft Report

Well, race fans, you can all calm down. I had my technical screen with Microsoft, and I don't think it went well enough to get me a job. I haven't heard anything from the DDCPX team, but I had to say 'I don't know' a lot during the call. That can't be a good thing. Well, it is and it isn't. It's good that I am willing to admit my lack of knowledge, rather than trying to BS my way in, but not good, because I should have more knowledge.

As to the actual questions asked, they were a different class of questions than I expected, based on technical screens with other companies. None of the questions dealt with the things I do on a daily basis; they were geared more towards the internals of the .Net framework. I guess that is to be expected, though, since the other companies I interviewed with (before getting my job at FNDS) were using the framework, and MS is building the framework.

Here are a couple of the questions (if you'd like to post a comment with your answers, I'll tell you if they differ from the answers I got during the call):

  • Types

    • Explain the difference between value and reference types.

    • What is boxing? What is unboxing?


  • Memory Management

    • What is the garbage collector?

    • How does generational garbage collection work?



  • Algorithm
    • There is a conveyor belt, with a camera positioned above it. Every time a piece of fruit passes under the camera, a picture is taken. The picture is pre-processed, and is converted into an array of booleans, with true everywhere there is fruit in the picture, and false everywhere there is background in the picture. Design an algorithm which, given the array of bools, can determine if the fruit is a banana or an orange. These are the only two fruits that will be on the belt.


Saturday, December 10, 2005

Can you believe it?

I finally have a phone interview with Microsoft! After four years of applying, I got an interview by going through a couple of blogs. This totally rocks! Tuesday at 8pm, don't call the house, I'll be on the phone.

The call is with a member of a really excellent team. The team is the DDCPX (Developer Division Customer Product Experience) team. They build aftermarket add-ons for developer division products. These are the same tools and products that I use every day. Right now, they are working on a fairly substantial add on for Visual Studio 2005. I can't wait for this call. I am SO stoked.

I'll let you all know how it goes.

Thursday, December 01, 2005

SOLD!!!

We sold the house! And, we got our asking price!

I was really starting to get worried, since our new house has to close in 19 days.

Bonus: We are selling the place to a really nice family, just getting started on the path to home ownership. That makes me happier.

Saturday, November 19, 2005

Pictures of the house













Listening to: Bring It On - Insane Clown Posse - Big Money Hustlas OST (03:55)

Friday, November 18, 2005

You won't believe this story

We are sitting on the couch watching "Reba" on WB. One of the women was talking to an OnStar-type guy, and he was talking about all the times they had shared. He mentioned something that reminded me of the funniest story in my life. He was talking about the time that the girl on TV locked herself in the trunk.

Sounds funny, right? Someone locking themselves in the trunk. That could never happen. Not in real life.

Except for that one time. So, imagine this scenario: you're an operator. Not a 911 operator, but a AAA operator. You get a call. Some kookie lady is on the phone, but you're having a hard time understanding her. It sounds like she's in an elevator or something.

"What's that you say, ma'am? You locked your trunk?" I know what you're thinking; just unlock it, right? I mean, trunks lock when you close them. You just open it again. No biggie. "Do you have a trunk release inside the car? Use that. What? You can't get to it? Why not?"

"OH, you're IN the trunk? Well, I certainly think this qualifies as an emergency, we'll get someone out there in the next 10 minutes."

Bet you can't guess who the kook in the trunk is, can you?

Oh yeah, you guessed it. It was my dear wife, Courtney. She was going to the bank, and managed to lock herself in her own trunk. No one pushed her; or forced her into the trunk at gunpoint. She just fell in. Who falls in their own trunk? And lets the trunk close on them?

So, AAA guy comes, and lets her out of the trunk of the car. The funny part is that she had a Neon, and had two LARGE speakers in the trunk. There wasn't enough room in that trunk for a suitcase; no idea how she fit in the trunk. It would take me an hour to fold myself into the thing.

But wait, there's more! When I heard the story, I just had one question for Courtney. Why didn't you use the glow-in-the-dark EMERGENCY HANDLE? The big green thing that, when you pull on it, releases the trunk hatch. The thing that is inside the trunk in case you somehow manage to get locked into your trunk. Like anyone would do that, right?

Well, anyone except Courtney.

I can't tell you how much I laugh every time I think about that story. I just wanted to share it with everyone. Hope you liked it.
Listening to: Bring It On - Insane Clown Posse - Big Money Hustlas OST (03:55)

Tuesday, November 15, 2005

Krypton Toolkit released

The Krypton Toolkit, a set of UI controls for Visual Studio 2005 and .Net 2.0 Windows Forms devlopment, has been released. Get your free copy at http://www.componentfactory.com/downloads.php.

The components let you build Office 2003-like UIs, and are built by a company with a great reputation.

Did I mention that these components are free for commercial use?

Monday, November 14, 2005

House for sale

Our house is for sale. The house is in the Argyle Forest area of Jacksonville.

3 bedroom, 2 bath, with a 2-car garage. 1,744 square feet. Large master bedroom, amazingly huge master bath, with a garden tub. Walk in closet in the master suite. Cathedral ceilings throughout. Large kitchen overlooking family room, formal living and dining rooms. Tiled kitchen, with breakfast nook. Large screened-in lanai, with a great view of the waterfront back yard. We are asking $170,000.

Contact me if you are interested. Cullen_Waters AT hotmail DOT com.

Listening to: Bring It On - Insane Clown Posse - Big Money Hustlas OST (03:55)

Monday, October 31, 2005

Big advances on the game

I made large strides in the game today. Now, I have a ship that shows up on the screen (with transparency), as well as asteroids. To get the game a little more interesting, I set up basic keyboard interaction (using keypress events). This is limiting, because you can only send one message at a time, so hitting two keys (like rotate left and thrust) has only one key's effects.

I created a little extra line, too, to show the ship's current velocity vector. I almost have the physics for the game complete. The ship can thrust and rotate. The asteroids can be set with a given velocity, and they keep that. The only additional physics concept I want to model for v1 is friction; objects will slowly decelerate, with the idea being that they are being affected by space dust or super small asteroid chunks or something.

I started working on the bullet class, because I want to shoot stuff. I guess first I should get collision detection set up for the ship and asteroids, though.

I also got more cool tools for Visual Studio that relate to Test Driven Dev installed. I can now see my code coverage, and run tests from within Visual Studio. Both of these are huge advances. The code coverage will help me design better unit tests. The ability to run tests from within the IDE will greatly increase my productivity.

I also messed with the inheritance chain now. The chain for the player's ship now looks like this:
PlayerShip->Ship->SpaceRockObject->BasicSprite. Getting deep, isn't it?

Friday, October 28, 2005

Got the player's ship on the screen!

Today, I fixed a pretty stumping problem. You'll never guess how I did it. I read the manual. Can you believe that? I am a male man, and I read the manual! So, I was having a real hard time getting my ship to show up on screen. I thought I had thoroughly examined my example code, but I missed two lines somewhere.

Here's what I had to begin:

//Spin, Shift, Stretch :-)
d3dSprite.Transform = Matrix.RotationZ(visualAngle) *
Matrix.Translation(center) *
Matrix.Scaling(scale,scale,1.0f);

//Draw the sprite
d3dSprite.Draw(tiles.Texture, tilePosition, center,
position, Color.FromArgb(255,255,255,255));



Here's what I needed to have:

//Spin, Shift, Stretch :-)
d3dSprite.Transform = Matrix.RotationZ(visualAngle) *
Matrix.Translation(center) *
Matrix.Scaling(scale,scale,1.0f);

//Tell DirectX we are about to start drawing sprites
d3dSprite.Begin(SpriteFlags.None);

//Draw the sprite
d3dSprite.Draw(tiles.Texture, tilePosition, center,
position, Color.FromArgb(255,255,255,255));

//Tell DirectX we're done.
d3dSprite.End();


Here's what it looks like:

Player ship on screen

Sunday, October 09, 2005

The funniest bloggers I have ever met

So, there's these two people. Between the two of them, they have three blogs. You have got read these.

Oh yeah, I used to be really mad at Brian, but Courtney said to let it go, so I did. Damn, that woman can crack the whip.

Here you go:

http://HollyAndBrian.blogspot.com
http://primatebuddy.tesx.com/
http://neonalune.blogspot.com

Technical Pop Quiz

Alright, here's a pop quiz. And, it has a prize. If you can answer this question correctly, and live in Jax, I will get you an interview for a technical position that requires mad SQL skillz(you should be thinking Napoleon Dynamite right now).

There's a database. It has several tables. I need information from one primary table, a related detail table, and two lookup tables. The linked image below is a diagram of the database.


ERD for the quiz

Write me some stored procedures:

  1. Get all customers
  2. Get all customers whose customer name starts with 'Johnson'
  3. Get all customers whose address contains 'FL'
  4. Return a count of the number of orders per customer. I want the complete list of customers, even if they have zero orders.
  5. Get me all of the details about an order. If there is an id field, return the description from the related table, instead of the ID. I will provide the order ID I am interested in.

Seriously, there is a junior dev position open at my work. They are looking for someone with strong sql skills. This position will eventually grow into a development position. There aren't really any requirements (i.e. college degree); other than being pretty good at SQL.

If you are interested, leave a comment with your stored procs, or link to a text file that contains your stored procs.

Job Digest #2 & 3

Digest 2
The day after I told Steve I was going to have to start looking for another job, he and Chuck came back with a plan to make things better. Now, the dev team is on "Flex Time". We have to be at work from 9 until lunchtime. The rest of the day, we can work or not, as we desire; as long as the work gets done. So, now, I can come home and work from home from 1 until Courtney gets home, then spend time with her and Mik till Mik goes to bed, and then work more if necessary. So, that is basically the most flattering thing(professionally) that has ever happened to me. Plus, it helped everyone else on the team too.

They also pushed back the next conversion by two weeks. That was about more than just me, but the timing made it feel pretty personal. Since then, things have been great at work. Coming home every day is the cat's meow. I get a lot more work done, because I don't have people to chat with, and don't get interrupted every 5 minutes.

Digest 3
There once was a developer named Scott. He didn't know shit. He also sucked as a supervisor, and was the laziest dev I ever met. He was skilled at backpedalling, and looking busy, but not at producing results. This idiot was hired to be my lead, and sucked big fat hairy ass at it.

Scott came to me a few days after I spoke with Steve, and let me know that he was looking for another job, because he hated everything about our product. I can't tell you how much of a jackass he was. It still irritates me(because I'm still trying to fix the crap that he messed up). He was such a bad dev, he introduced more bugs than he fixed.

I did everything I could to help Scott find a job where he would be more happy. I put him in touch with several recruiters. I gave him a couple of job leads. What a helpful guy, right?

Well, finally, last Thursday, he made the announcement I had been yearning for. He quit. And, being the asshat that he is, he quit with no notice. He came in at like 6:30, and was walked out at like 10. Seriously, I grinned until the next day at 5 pm. I still get happy any time I think about never having to work with Asshat again.

I have once again expressed my desire to lead the dev team for this project. I also gave Steve a couple of other options, that he will probably find more agreeable.

Monday, October 03, 2005

Sparkle Timeline Performance

Found this interesting post with the title "Sparkle Timeline Performance" on Tales from the Smart Client.

Read the post, and check out the performance times at the bottom. Going from 12.2 seconds to 4 seconds is GREAT. Going from 8.3 seconds to .379 seconds is REALLY, INCREDIBLY great. That is going from a time span that is going to irritate your users to a time span that most users won't even notice, except perhaps as a flicker of the screen.

I love to read stories where developers stepped back from an issue, and went a new way to tackle the problem, and greatly enhanced their product in the bargain. Good job, Sparkle team.

Thursday, September 22, 2005

Job News Digest #1

Lately, we have had a rather hectic work schedule. I have been working 50-70 hours per week, trying to get our existing clients converted to v5.0 of our application. With a conversion every other week, the whole team has been putting in massive numbers of hours.

Monday, at about 7pm, I called Courtney. She was NOT having a good night with Mikayla. I had also worked Saturday, and worked late Thursday and Friday the week before. I asked Courtney what she wanted me to do, and she told me to start looking for another job.

So, of course, I chose family over job, and agreed. Previously, I had promised my manager Steve that when/if(mostly when) I started looking for a job, I would let him know. So, about an hour after I spoke with Courtney, I told Steve I was going to have to start looking for another job, and why.

Steve asked me if he could have a chance to fix things, rather than me just splitting. I told him I was totally into that, since I don't really want to leave the company, team, or project at this point.

At the risk of sounding cocky and self-important, the team needs me. You see, the same day I talked to Courtney, the execs decided to remove CoreSouth from active involvement in the project. CoreSouth is the consulting company that originally developed 5.0, and had been there all along, working on the project.

So, Steve called the powers-that-be that evening, to see what could be done about my unhappiness. His belief, and I agree, is that the other members of the team are in a similar situation, and may be considering the same course of action.

We'll have to wait and see what happens next, I guess.
Listening to: Song 2 - Blur - The Best of Blur (02:01)

Courtney wanted me to share a story

The last time I was at the grocery store, there was a woman in line in front of me. She was purchasing some items that were unusual (in my opinion). She was getting things like a coffee maker, and other household-type stuff that I would have gone to Target for, rather than Publix.
The cashier was curious and chatty, so she asked the lady if she was just moving to the area. The woman seemed pretty shy, but replied that she had just moved to the area. The cashier asked the lady where she moved from, and the quiet response was 'New Orleans'. Cashier asked if she had been back, or if she lost her home or what. The lady told her that she hadn't been allowed to go back to check on the house, but that her car insurance company had totalled her car. She was living right down the street from me, temporarily.

Well, Courtney and I had already spoken about donating to the Red Cross to help out. We had decided on roughly $100.00 as a donation. When I heard that this woman had just moved from New Orleans(fleeing from the hurricane), I thought it would be much more personal to help this nice, unassuming lady than donate to a huge organization.

When the woman's total for the night came to $103, I decided to do something. She had the cash in her hand to pay with. I interrupted her, and asked if she had just moved from New Orleans, and lost her house. She seemed a little freaked out, but replied that she had. I asked her to let us pay for her groceries.

She was stunned. I told her that we were going to donate to the red cross anyway, so we'd rather help her out. She stammered that I didn't have to do that, and I told her that I really wanted to. She said thank you, and introduced herself. I won't post her name, for two reasons:
  1. I don't think she would appreciate it. She seemed to want to avoid any attention.
  2. I don't remember it. Those of you who know me, know that I suck at remembering names, particularly the first time I meet someone.
I wasn't really going to share this story, since that makes it seem like I was looking for recognition when I helped the nice lady out. That wasn't the point at all. However, the wife wanted me to post the story, so it is posted.
Listening to: Bring It On - Insane Clown Posse - Big Money Hustlas OST (03:55)

Monday, September 12, 2005

Game Update

Ok, I know I haven't posted a game update in a while. It's been challenging lately to work on any personal code projects, so not much has happened for the game. I tried to get the ship showing up on the screen, but was thwarted. I added a bunch of logging to the game, and created a framework for additional logging. The code that is in the game (not much) is incredibly well tested, however. I'll have to look at the book's code more, to get the drawing worked out. I may ditch the book's approach to the drawing, and do my own thing. I'll keep you updated as things change.

Maybe people haven't all changed

I have said many times before in my life that people (all people) must have changed since the 1940's. I read accounts of World War II frequently. Pretty much any piece of material that I can get my hands on. One thing that all accounts agree on is that the young men and women of the United States were lying and cheating to JOIN the fight. The Marines' recruiting slogan at the time was 'First to Fight'. That encouraged recruits to join by the hundreds. Stop and think of that for a moment. The idea of getting into the war SOONER caused hundreds to join the most fearsome fighting force in the world.

Fast forward to my generation, and our war. We have people lying and cheating to get OUT of during their duty. We have reservists' parents fighting to bring their kids home from the battle they signed up to fight.

I have always felt that something is missing in the youth of America, and it is that sense of duty and honor and commitment to an ideal that is higher and stronger than any one person's life.

Today, the fourth anniversary of 9/11, I am watching a documentary that details the actions aboard United Airways flight 93. The documentary includes recordings of the phone calls made by the passengers and crew of the flight to their loved ones at home.

It also includes the phone call which has changed my opinion of the average American. My father includes a quote in his emails. It says 'Are you ready? Let's Roll.' The man that said that then led a charge against the armed terrorists who had taken control of their aircraft. The passengers on that flight had learned that they terrorists planned to use their aircraft as a guided missile.

Those incredibly brave men and women then fought back. They fought back for their families at home, they fought back for freedom. They fought back because they were Americans, and by God, Americans don't sit idly by and watch innocent people be killed. They knew if they didn't do something, then an uncounted number of innocents would be murdered. They fought back for all of us. They fought back for America.

Those amazing men and women struck our first blow in the War on Terror. They have shown that America still has a backbone, and that we will NOT stand for the murder of innocents, and we WILL defend our citizens and our way of life by whatever means necessary, even if that means paying the ultimate sacrifice.

I only wish that there was something I could do to ease the suffering of the loved ones that were left behind. All I can do, however, is make sure that we continue to honor their memory. I will never forget, and I will do all I can to ensure that others remember. The things we forget are the things we are bound to relive.

Thank you for your sacrifice, and for restoring our faith in America, and its people.

Friday, August 19, 2005

This is encouraging

Here is the blog of a woman who took five years away from the tech industry, to be a stay-at-home mom. Now, she has decided to rejoin the ranks of the geekdom. Welcome back, Laurie, and good luck.

Confessions of a Ruby Newbie

Thursday, August 18, 2005

One down, four to go!

Guess what? I got a certification on Monday. I am now a Certified Microsoft Professional, as evidenced by the logo below:



Now, I only have 4 more tests before I am a Microsoft Certified Solutions Developer. That should help my career quite a bit(and gets me a bonus at work, too).

Hospital Trip #1,294,763

Monday night, at 11:30, Courtney woke me up to tell me she was heading to the hospital.  Guess what was wrong with her?  Abdominal pain.  Big surprise, right?  It was pretty bad, again.

She got there around midnight, and got taken back into the ER pretty much right away.  Of course, she didn’t see a doctor until 5:30 in the morning.  6 HOURS of excruciating pain before she got any relief.  What is the fucking point of a fucking hospital if they aren’t going to give you any medicine to help you?

They discharged her around noon on Tuesday.  End result: Abdominal pain, unknown cause.  That is like the FIFTH time we have gotten that diagnosis.  They gave her two days worth of pain medicine, and told her to follow up with her primary doctor.  Who was out of ideas 3 months ago.  So, he’ll just refer her to a GI specialist.  Who she saw two weeks ago.  They’ll want to do some scope work.  Which they did two weeks ago.  Then they’ll probably want to do some kind of non-invasive surgery.  Which they did last week.

And then, next month, we’ll have to take Courtney back to the hospital again, to deal with another abdominal pain, unknown cause.

This is so frustrating, even for me.  And I’m not in pain.  I feel so bad for Courtney.  So, if you see her or talk to her in the next few days, be extra nice to her.  And, if you don’t think you’ll be talking to her, call her.  She can use the extra support.

Tuesday, July 26, 2005

Are IT developers second class?

Joel Spolsky wrote a new article the other day. For those who don't know(probably all of my audience), Joel Spolsky is a hugely successful software developer. He worked on Excel for MS, and is now one of the owners of a startup software company, Fog Creek Software. If Joel didn't have his company in New York, I would be pestering him on a daily basis for a job. Look at what his interns have been working on this year: Fog Creek Copilot.

Most people agree that Joel knows his stuff when it comes to the software development industry. In fact, along with Eric Sink, Joel is one of the people I aspire to be.

This time, though, I think Joel made a few remarks that he is going to regret. I've already seen two articles bashing Joel for his (somewhat insulting and poorly thought out) comments. The article is entitled Hitting the High Notes.

Here are a couple of the quotes that have generated a response:
Is software really about artistic high notes? "Maybe some stuff is," you say, "but I work on accounts receivable user interfaces for the medical waste industry." Fair enough. This is a conversation about software companies, shrinkwrap software, where the company's success or failure is directly a result of the quality of their code.

Sadly, this doesn't really apply in non-product software development. Internal, in-house software is rarely important enough to justify hiring rock stars. Nobody hires Dolly Parton to sing at weddings. That's why the most satisfying careers, if you're a software developer, are at actual software companies, not doing IT for some bank.

Now, for the responses: Scott Reynolds and Phil Haack.

I have to agree with both of them. I have worked as a corporate developer, and while I much prefer working at a software company, my job in an IT department was just as important. One example is the little FTP client I wrote that handled moving critical data from one server to another. The process was originally carried out by hand, and was error-prone. I whipped up a little app that handled the load for us, and we never had another file get missed. Now, our company didn't go under because those files got lost, but we did get a lot of complaints from our employees about the stale data.

Am I any better of a programmer because I now work on software that is sold? To be perfectly honest, although our software is the product that drives revenue, we don't sell it per se. We sell a service, which is only possible because of our enterprise software. The reason we make so much money(70+% market share) is because of the software that we make internally. We have never sold our software to another company or individual. Does that make me a substandard programmer?

Ask the people that know me. I certainly can amaze my family with my applications. Granted, there aren't any commercially viable applications that I have written alone, but they are all of great value to my family and friends. How much more talented do I need to be?

What about the developers at Microsoft who work on their internal products? Are they second class as well? Someone at MS has to work on their current source control system(which they don't sell, and which doesn't even have a publicly available name)? Are they second class? The are arguably as successful as Eric Sink, with Vault, but they don't sell their software.

I think, Joel, that you may need to reword your article a little. It may be harder for you to find that talent in the future, since you are going to be getting at least some of those resumes from IT-type developers who are interested in trying something new.

Wednesday, July 20, 2005

Artwork from the front

Here's what I've been working on for the last couple of days. I don't count this time against my dev total, since it deals with artwork.

I found the ship models online, as well as a space station model. The magenta color will be transparent in the game.

Take a look:

The Player Ship

An Asteroid

An Enemy Ship

Tuesday, July 19, 2005

Artwork

Yesterday, I chose the model that will be used for the ship. I don't remember where I got it from, but the model came with like 20 or 30 different textures. Courtney and I went through them and found the one that we like the best.

I created an animation in my 3d editor that slowly rotates the ship around its axis, and I took screen shots every 10 degrees. So, now I have a collection of 35 different images to use for animation/ship aiming. I may change that, though, to have more images(like a 2 or 3 degree resolution, instead of 10).

As soon as my picture sharing program comes online, I'll upload a full size image, and a game-sized image of the ship, so yous guys can see them.

Saturday, July 16, 2005

Ship, asteroid objects and test framework


Unit Tests

Today, I spent one hour building the player's ship class. I also set up NUnit, and created my first unit test for the object project. The code to apply thrust to the ship works properly now! That was the part of the game that stumped me before; thus the desire to get that done first.

I have also created an asteroid class, which I think is done. I don't think the asteroid is going to have any additional, non-sprite behavior for v1.

Still on schedule, 3 hours down so far.

Thursday, July 14, 2005

Class Framework, the Second


Class Diagram, v2

My research discovered an important and irritating detail of the Microsoft.DirectX.Sprite class. It's a sealed class. Why did MS choose to make this class un-inheritable? I would love to extend the class, and add my update into it. But I can't, because MS marked it sealed. Irritating. So, I'm going to use the SimpleSprite class from the book I'm reading now. I'm probably also going to use the sound manager and texture manager class from the book.

All part of my new approach: don't write everything. Use code that is out there, and available.

Tuesday, July 12, 2005

Class Framework


Class Diagram

Here's the class framework, at least the first pass at it. This took about 25 minutes.

Total time invested so far: ~1 hour.

Hour 1 complete


Screenshot #1

Well, hour one is complete. And it only took 29 minutes! I'm on the way now, baby.

RockCrusher Plan

The Goal
Create a clone of the classic arcade game Asteroids®.

The player controls their ship, which dropped out of hyperspace in the middle of an asteroid field. The object of the game is to destroy as many asteroids as possible, while avoiding collisions.

Complete the game in 80 hours or less. That's 80 hours of work, not 80 consecutive hours. I'd like to have the installer complete by 90 hours, too. My goal is to use WiX for the installer, though, so it should be done at the same time as the game.

The Tools
  • C#, using Visual Studio 2003
  • Freely available art
  • Freely available sound
By using freely available art and sound, I should prevent myself from getting bogged down working on the stuff I am least proficient at, and give myself more of a chance of completing the game.

Nominal Project Plan
  • 1 hour: Get Managed DirectX to display a black screen
  • 2-3 hours: Design the class framework for the game
  • 2 hours: Develop classes for the player ship and the asteroids
  • 1 hour: Display the ship on the screen
  • 1 hour: Display some asteroids
  • 3-4 hours: Design the physics simulation system
  • 1 hour: Apply the physics engine to the ship
  • 1 hour: Apply physics to asteroids
  • 2 hours: Handle player input for the ship(DirectInput)
  • 3 hours: Make the ship wrap when hitting the edge of the screen
  • 1 hour: Make asteroids wrap when on the edge of the screen
  • 2 hours: Add a bullet class
  • 1 hour: Get ship firing bullets
  • 2 hours: Make bullets his asteroids
  • 1 hour: Make asteroids explode when their damage threshold is reached
That's already 28 hours of work.

At this point, I should have a playable game, v0.5

For the next version, 1.0:
  • 2 hours: Add scoring
  • 2-3 hours: Add sound effects
  • 2-4 hours: Add levels
  • 1-2 hours: Make the asteroids break into smaller asteroids when you blow them up(this should be a random choice)
  • 4-5 hours: Add alien spaceships that can shoot back once you reach a certain level
  • 2-3 hours: Give the aliens some AI
  • 1-2 hours: Track a high score board
  • ? hours: Improve artwork
That's another 19 hours, for a total of 37 estimated hours.

For 2.0:
  • 13-15 hours: Add a 3d view, where you can go 'inside' your ship, and see the controls and such as you fight, with a radar screen
    • 2-3 hours: Find/modify 3d models of asteroids and enemy ships
    • 3-5 hours: Convert 2d asteroid & enemy sprites to 3d meshes
    • 2-3 hours: Make 3d overlay for controls/viewscreen/radar screen
    • 2 hours: Create radar
  • 5 hours: Add power-ups in some asteroids
    • 1 hour: Modify asteroid class
    • 2 hours: Create powerup class
    • 2 hours: Modify player class to accept powerups
  • 3 hours: Add bosses to each level
    • 1 hour: Create boss class
    • 2 hours: Modify Level to only progress after destroying boss
  • ? hours: Improve artwork
  • 2 hours: Add a 'Comet' class in to the game
    • The comet will be faster and smaller than the fastest, smallest asteroid
    • Successfully destroying a comet will give you some type of bonus
Going from 1.0 to 2.0 will take an estimated 24 hours.

The total from 0 to 2.0 will be about 61 hours. Seems like my 80 hour estimate is reachable, especially if I break it up into 1 hour chunks.

Hopefully breaking the project up into 1-3 hour chunks will keep me married, too!
Listening to: You Won - Keith Urban - Golden Road (05:21)

I have been Inspired

As many of you probably know, I have a strong desire to program 3d computer games. I have always had a problem starting something, and not finishing it. Well, I read an article today that totally inspired me to get my first game out the door. I decided a long time ago to write an Asteroids® clone.

My curiosity has always been the greatest threat to my ability to finish the game. At one point, I had a ship on the screen, and asteroids that flew towards the ship. I got stuck trying to figure out velocities for the ship, and kinda gave up on the coding. I focused on 3d modeling for a while, but then XP broke my 3d modeling program, and the project has languished.

Here's the article that inspired me: A Game in a Week. The article inspired me in a very specific way. I am going to write my Asteroids® clone. I am going to complete it soon.

Since my biggest goal is to get a project out-the-door(OTD), I have chosen .Net as my dev platform, using C# for the language. I am going to use freely available artwork and sound, so I don't get tied up in that part again. I am going to use my game dev books as reference, for when I get stuck, rather than for leisure reading(as in the past).

This is my manifesto. I will complete the game. I am giving myself 80 hours of development time before the game goes OTD. Once v1 is in a playable format, I will post it to my gaming site (Games.CSquaredComputing.com), so you can all download and play it. I will try to include some way for you to submit bug reports and comments, so I can make the game better.

Stay tuned for my project plan, it's coming next.
Listening to: Who Wouldn't Wanna Be Me - Keith Urban - Golden Road (04:16)

Monday, July 11, 2005

OId people are funny

Check out this old lady. She is apparently a frequent guest on the Tonight Show. She is hilarious.

Thursday, July 07, 2005

The bastards have to die

I don't normally take a real hard line on things. This time, though, I will.

Every person who participates in, or has unreported knowledge of, a terrorist organization, should be shot.

How does killing a bunch of civilians in London further any cause in the Middle East? Why do so many muslims feel that killing someone that has no authority or power to change national policy is going to make the US or England change its stance on the Middle East?

Beyond the stupidity of murder as a political statement, don't groups like this ever THINK? The only two nations in the world that you REALLY don't want to piss off are the US and UK. Japan and Germany learned that lesson in WWII. I guess it's time for this group of pansies and murderers to learn it too.

Seriously, what person in the entire world doesn't know that the British are known for their tenacity? Many Brits opposed their involvement in the war on terror, and our actions against Iraq. None of those people are going to oppose Blair now, when he announces that the entire British Empire is going to war to kill terrorists.

Hello, these are people who idolize Winston Churchill, the most tenacious leader in history. Al Qaeda must be run by a bunch of idiots. They should have done this in France, where they could have accomplished something other than just sealing their fate yet again. [Edit]That comment was made in the heat of anger, and isn't worthy of publication. I apologize to the French people for saying such a heartless and thoughtless thing. No one should have to suffer the loss of innonence that comes from a major terrorist attack.

My heart goes out to those who have lost loved ones to the cowards. Thankfully, Dave's mum is fine. He called her this morning to verify. At least there is a small ray of happiness in this crap.
Listening to: Inside Out - Eve 6 - Eve 6 (03:39)

Thursday, June 30, 2005

Negotiation 103; or the time I almost got us shot

Courtney and I agreed that I could buy a pistol. I knew exactly what I wanted: Glock .40 caliber compact. I knew how much it was worth from pricing through the net: about $450 street price.

I found a gun dealer that sells pistols online. You pay this guy, he ships the gun to a local gun dealer. You pay the local guy a transfer fee, and he gives you your pistol. The problem is finding a local dealer who will allow you to do the transfer, instead of insisting that you buy the gun from his shop. Not many people are going to help you buy a $500 item from someone else. And, there are the additional costs.

The cheapest I could find the gun in town was like $530. That's $80 difference. Surely I can do better than that.

What? There's a gun show this weekend? A place where individuals go to buy and sell guns. A veritable swap meet for guns? I am so there.

Courtney and I go to the gun show. We find one individual who has a 9mm compact, and the .40 caliber full size. Then, I see the mecca of Glock pistols. A gun dealer who apparently travels around from gun show to gun show selling glocks, instead of setting up a store in a building.

I approach the guy, and ask to see a .40 caliber compact glock. I ask him how much he wants for the gun. "$490". I walk away, saying thank you. I wander for a while, so the guy doesn't think I'm anxious to buy the gun. I come back, and play with it some more. I ask the current guy how much. "$475". Woah. That's $15 in ten minutes. Clearly these guys don't have set prices. Great, this is the perfect opportunity for negotiation. I might be able to get the gun for the online price, but miss the shipping and transfer fees.

Then it happens. The curse rises up and smacks me in the face.

I tell the guy "I'll give you $450". He takes the gun, looks at the marked price(MSRP $599), and tells me he could just raise the price back up to the normal price of $599. I tell him "Whatever, no one sells Glocks for that price". He tells me that he does.

He says "Well, I'm not going to lose money on the gun, so I'm not going to $450". Yeah right. So this guy is trying to tell me that the markup on Glocks is only $20. Sure. I believe you. And car dealers really are losing money when they pay more than they want for your trade in.

"Ok", I say to Courtney, "I'll just order it online". Keep in mind I'm talking in a low tone to Courtney, not to the guy.

He overhears me, and yells "Go ahead and buy it online. Once you've paid shipping and dealer transfer fees, come back, and we'll see who lost money".

At this point, I get mad. Not only is the guy a dick, but he's yelling at me in front of like 100 people.

So, I start yelling back. "You'll be the one losing money, when you pack that gun back up tomorrow, and take it with you, instead of selling it. What kind of jackass business approach is that?".

At this point, Courtney gets nervous, and pushes me away from the guy, towards the door. Apparently, she didn't think it was a good idea to get in an argument with an armed man, who was surrounded by guns, in the middle of a gun show. She was worried that the FBI was about to appear and tackle me.

The curse is alive and kicking.
Listening to: Aliens exist - Blink 182 - Enema of the State (02:48)

This is why I wanted XBox Live

This group of guys is the exact reason why I wanted to get on XBox live. They are living one of my dreams. A group of friends who get together regularly to play games online, without dealing with the crap you have to deal with playing 17 year-olds.

Pre-Race

Post Race

Sunday, June 26, 2005

Negotiating 102

Lesson #2: Flea Market

What do you expect to do at a flea market? Haggle, right? Bargain with people. They're selling their junk, usually, so they should be pretty flexible on price, right? Not if your name is Cullen.

I was looking for a present for the pops. He's really into old, raggedy tools, so I was digging around in this stall. This place had a bunch of crap that was about ready to be sold for scrap metal. Seriously, this stuff was all rusty, and randomly scattered on shelves.

I dug down about three levels, and found a plane. It was broken, but fixable. There was no price on the plane, but I decided I would pay $10 for it. It needed at least 20 hours of work to get it useful again.

I grab the plane, and go as the "proprietor" what the price is. He tells me $15. I was shocked. The thing was really in bad shape. So I say "I'll give you $10". A great price for that hunk of broken scrap metal. This is where the curse kicks in. The guy snatches the plane from me, and states "I'll keep it". He puts it behind his counter, and walks away from me.

The curse bites again.

What the hell kind of flea market salesman refuses to counter an offer, and then is rude about it? Who wants to take their crap home instead of selling it? How do you make a living by packing your stuff up, displaying it in a booth, and then packing it back up at night to take it home? I don't get it. Where is the profit in taking your stuff back and forth from the house to the flea market? That is a business model that I just cannot understand.

A few stalls later, Re found me three planes, in better shape. The total for the three planes, as marked, was $25.50. Re wanted me to talk the owner down to $25.00. She figured it would be easy(she was an Ingram then, you know). Having just been bit big time by the curse, I knew better. I really wanted to get dad a present. So, I talked them down a lesser amount, but did it successfully.

I bought the three planes for $25.00 even.

Negotiation 101

Courtney wanted me to share some stories with you all. She thinks you'll get a big kick out of these stories.

Lesson #1: Car Dealerships
Everyone knows that when you go to buy a car (particularly a used car), you are going to have to 'wheel and deal' to get a decent ride. Well, unless you're me, that is.

Three times now, I have gone to dealerships, and done what all the financial types recommend. I've given the dealer an offer. Nearly every offer was within $1000 of blue book. I've told the sales person that I won't pay more than X. Twice, I have gotten the sales guy to within $500 of what I wanted to pay. Each time, I have gone home in my old car, deal unmade.

I learned from my friends in sales that the sales guy never wants you to leave the lot. He knows that if you leave the lot, you probably won't come back. Courtney and I went to the Dodge dealership to buy her car. I thought I had all the answers. I knew what the car was worth. I new what the market was like for that model car. I had financing through an outside agency, so they couldn't hose me on financing or add-on services. The dealership had 5 of the cars. No other dealer had more than 1. They clearly had more supply than the market had demand. We were trading in an excellent vehicle. We were a couple thousand in the hole on Re's old car, but I had figured that all out.

My goal was to get blue book for her trade in, and then pay sticker for the new car. Since the dealer's price was $4000 over blue book, I thought that would be a good deal. I came in with all my research and market stats. I wooed the guy with my knowledge and cut to the chase. We got to within $300 in like 5 minutes. The guy told me he couldn't help me, and to come back if I got more money.

Just to reiterate, the guy passed on a $25,000 deal over $300. Who does that? No car salesman in his right mind does that. Unless he's dealing with me, that is. The curse is identified.

EBay tips

Here is the text of an email I sent to my pop:

You can be paid to your paypal account. My suggestion is to only accept paypal. All other forms of payment are too slow. Generally, if you accept checks, people expect that you will make them wait 7 days for the check to clear. Plus, you have to wait for them to mail it and for it to be delivered.
If you are selling any big-ticket items, I would put a statement on the listing that you will cancel bids from buyers with low or no feedback. The feedback system tells you how reliable a buyer will be (past actions are the best predictors of future behavior).
It's usually worth the extra few cents to do a 10 day auction. Start the auction really low, and if you absolutely can't part with something for less than a certain amount, put a reserve on the auction. Don't put reserves unless you really care about the sales price, it scares away bidders.
Always put that the buyer is responsible for shipping. I generally put the shipping calculator on the page, and tell it to add a couple dollars of 'handling'. That's a couple more dollars of profit for each item, and most people will pay that handling fee without blinking, even if they wouldn't have raised their bid by that much.
If you decide to eat the shipping costs, you'll get more bids. One thing I have seen is when people put a statement that if the price goes over $x, the seller will pay for shipping. That's kind of an enticement.

Friday, June 24, 2005

What a crappy bit of news

Courtney got some horrible news today. One of the dogs she grew up with may have to be put to sleep. Her mom found a lot of blood spread around the house this morning, so she is taking the dogs to the vet. My guess is that it was Cookie, because she has been having health problems the last couple of years. Either way, we will all really miss them if someone has to be put to sleep.

Good luck Cookie & Patches. Hopefully you just got cut or something else minor. We love you both.
Listening to: Really Might Be Gone - Bowling for Soup - A Hangover You Don't Deserve (03:43)

Exciting Ride

I had a great ride this morning. It was wonderful. I took the new exit from 295 to 9a. What a blast. I got to work super fast, too. I left the house at like 7:40 or 7:45, and was at work at 8:10. Gotta love the lack of traffic on that new part of 9a!
Listening to: Really Might Be Gone - Bowling for Soup - A Hangover You Don't Deserve (03:43)

Thursday, June 23, 2005

Crazy busy

Work has been crazy busy lately. The last month is the first time since I left Okinawa that I have put in a significant amount of overtime. It's been pretty consistent, too. Yesterday I left at 5, and felt like I had an extra two hours to entertain myself.

Of course, I wasted an hour by making a bad gamble. I heard on the radio in the morning that the 295->9a connection was complete, and open. I figured that meant that you could go from 295s to 9a north, since it was rush hour, and that's the way traffic runs in the am.

When it was time to leave, I was struck by the thought that since they opened one direction, there was a decent chance that they had opened both directions. So, I would be able to take 9a south to 295 north. The only danger is that if the road weren't opened, I'd be stuck way south on Phillips, with no easy way to get home.

It was closed.

So, I thought "no problem, hit US1 N, and get on 95, then 295, should only waste another 5 mins". Not. Phillips was backed up all the way from 95 to 9a. That's a good 4 or 5 miles. Solid, bumper to bumper traffic. And there's the dumb woman who tried to brake check me. She thought I was too close, and I thought she was too slow, since there were like 4 empty car lengths in front of her.

Once I saw Phillips, I decided to hit Greenland, since there were very few people turning onto that road. Yeah, till I hit Mandarin HS. Backed up from there to St Aug. Solid line of cars, for like 2 miles. And they were all going straight. I wanted to go right. That is so frustrating, being stuck behind 200 drivers going straight, when you just want to turn right.

I jumped like 3 curbs yesterday.

Once I got on 295 at St Aug, it was pretty smooth sailing.

Course, it was still a 65 minute drive, which is about 25 minutes past my patience limit.

Definitely not going that route again until the new interchange is done.

Lazy bastard construction guys.
Listening to: Letterbomb - Green Day - American Idiot (Proper Retail) (04:06)

Tuesday, June 21, 2005

It's great being a dad

Last night, when I got home, I found a couple of little notes around the house. Courtney put one right where I would be sure to see it when I first got home. Then she showed me where it was when I didn't notice it.

After following the clues all around the house, I ended up with some GOOD loot. She really took good care of me this father's day, and was pretty frugal too. Rock on babe, you did a great job.

I had such a blast following those clues around the house. Re is the best at gifts, hands down.

Friday, June 17, 2005

I got screwed( a little)

I signed up at this site, where if you have 5 people complete a special offer, you get a free ipod. Well, I had 5 people complete an offer, but not one of them got credit for it. I think the company went out of business or something. I read on Duncan Mackenzie's blog that he got some free stuff, and it wasn't a scam, but NONE of my people got credit for completing the offers. And, one of the offers never even showed up.

That sucks. I was excited about getting an ipod.

Thursday, June 16, 2005

Frustrating Code

I have this function, written in unmanaged(native) C++. I need to call that function from within a .NET application. As I understand it, the only way to accomplish this is to use p/invoke. The only problem is that this method is meant to be added as part of an existing C++ app, so it isn't really designed to go into a .dll. You have to have(I think) your code in a dll to call it from .NET.

I tried creating a C++ dll several ways, but none worked. Anyone have any other ideas?

Tuesday, June 14, 2005

I could be worse

I could always be worse. I don't think Courtney has had to deal with more than 3 or 4 of these:

Dating an Apple Developer. Just take out the word Apple.
Listening to: Wild West Show - Big And Rich - Horse Of A Different Color (04:21)

Something got me worked up today

Today, on the way to work, I was thinking about something, and got worked up a little. I decided I would blog about it, so you could all share in my irritation.

But, I forgot what got me so worked up. Is senility really setting in this early?(Shut up, Re).
Listening to: Inside Out - Eve 6 - Eve 6 (03:39)

This is cool

I'm sitting in the airport in Cincinnati, using their wireless network to connect to the world. This rocks, man. Free wifi should be everywhere.

Halfway to Minneapolis, about 2 hours till I land(I think). I'm not really sure what time zone MN is in, so I'm not sure if I have two hours or three.

Guess I ought to do a little research.

Hmm. Guess I was a little wrong about the wonderfulness. Turns out, there's a charge from Cincinnati broadband. Crap. Oh well, guess you'll have to wait until I get back to see this one.

Thursday, June 09, 2005

Great Geek Parody

Rico Mariani is great. Not only is he incredibly good at analyzing performance and improving it, he has a great sense of humor.

Today he did a good parody of the 'You can't handle the truth' scene in "A Few Good Men". (If I quoted those wrong, get over it. I'm not an englits major, and can't ever remember what gets underlined and what gets quotes).

Here's the link: http://blogs.msdn.com/ricom/archive/2005/06/09/427404.aspx

Thursday, June 02, 2005

Security Awareness for Ma, Pa and the Corporate Clueless

Over on Over on http://securityawareness.blogspot.com/, a guy named Winn is documenting his company's move from Windows to Mac. This could be a really good thing, give a bunch of users a chance to see the upside and downside to moving from one platform and OS to another.

For those who don't know about Macs, they use different hardware, and vastly different software from PCs. The common belief is that Mac OSs are more secure than Windows OSs. I believe this is probably true, although I believe the reason is different than the ones given in most online forums. I don't particularly think Mac's OS is better written, although parts of it seem to be. I think that there are a lot more malicious users targeting Windows, and that there are a lot more half-baked software companies writing poor software for Windows. The mac community is much smaller than the Windows community, so there is less commercial software available for it.

If you are starting a software development company, I urge you to target Windows first, and Mac second, because there are a LOT fewer users using Macs. Those users may be happier, and more secure, but there are still fewer, which means fewer potential sales, which means exponentially fewer actual sales.

Back to the point, though. Why does a simple choice of operating system create more emotional response than two rival football teams meeting head-to-head? This is a business decision folks, and the rest of your life doesn't depend on it. If you read some of the comments, you will see that the responders are clearly in one camp or the other. And they are rabid about defending their position.

I don't get that part. Why be rabid about something so unimportant? I can understand Winn getting fed up with problems, and writing some rants as he was changing over. I wish he would focus more on the mechanics of the switchover, and which things are hard to adjust to, rather than restating what a million other people have written. Clearly, there are a lot of people who feel that the Mac is better, and that Windows users are fools. Those people usually write it as M$ and Windoze.

As another aside, I don't get why people are suprised that MS is all about making money. Duh. They are a for-profit company. That is the purpose in life for MS. And they are really, really, really good at it. Apple is all about making money, too. Why do people not get so upset with Apple for pursuing riches?

It sure gets boring reading so many people's remarks about how Windows sucks, or Mac is too hard. Mr Winn, just give us the facts about switching, please. I'd like to know what was hard for you to adjust to on the mac, and what was easy. You touched on that some in part IV, but mostly fell back on 'Windows is not secure. Mac is more secure'. I grant you that point. How about getting into specifics on the switchover. Do the rest of your users like the new systems? Would you really recommend this for the average corporation of 50+ people? How hard is it to train your network/computer guy to fix the Mac? Or configure the Mac? What are the hidden costs or bonuses in switching. I know you are going to mostly write from the standpoint of security, but hook the rest of us, non-security types, up with some concrete examples of what is better in Mac, or what sucks more in Mac.

5 Months is not long enough

If you are debating with your significant other whether your 5 month old baby is old enough for a weekend trip, in a hotel, don't. Mikayla was not a good girl this weekend. It wouldn't have been so bad, except Courtney and I stayed in a hotel, so we were trapped in a very small room together, and we felt guilty for disturbing the other guests with her screaming.

Either go earlier, when she hasn't developed as much personality and lung capacity, or wait until later, when she can tell you what's wrong, so you can fix it, and she can be happy.

Just my $.02
Listening to: Believe - Yellowcard - Ocean Avenue (04:31)

Thursday, May 26, 2005

Another one of those crazy quizzes

What Video Game Character Are You? I am a Gauntlet Adventurer.I am a Gauntlet Adventurer.


I strive to improve my living conditions by hoarding gold, food, and sometimes keys and potions. I love adventure, fighting, and particularly winning - especially when there's a prize at stake. I occasionally get lost inside buildings and can't find the exit. I need food badly. What Video Game Character Are You?

We are SO lucky

When Mikayla was born, Courtney and I were very upset that we didn't get to take her home on time. We worried constantly while she was in the NICU about when we would get to take her home and show her her new room, and hang out with her on our couch and take naps with her and everything else.

I guess, in focusing on when we were going to be able to take her home, we neglected to remember that we had a mostly healthy baby girl, and didn't really need to worry about whether she would come home. We had the luxury of being upset about when she would come home.

This week I came across a link to a weblog. Be forewarned, I teared up twice when reading the events of the past week.

Mei Giagnocavo's story.

Thank you Mei, for your sacrifice. Your story has reminded me of everything that is good in life, and has encouraged me to remember that the distractions of work are not nearly so important as my family.

God bless you and keep you, Mei.

Wednesday, May 25, 2005

Crunch Time

So, I have my first experience with 'Crunch Time' this week. Pretty much, it sucks.

For those not in the software development industry, crunch time is when the managers of a software development project realize that it's only a few days until release, and we haven't even finished designing the system yet. So, they get all freaked out, and start running around in panic mode, and say things like 'all development must be done by Friday'.

The thing about crunch time is that it is totally avoidable. Most of the time, devs have been warning management that there is a lot of work remaining, and mgmt has been blowing them off.
In my company for example, our qa(testing) department has not touched the new version of our flagship application, despite the fact that it has been in development for over a year. So, this week, they decide maybe it's time to do some testing(30 days before we go live with our first client).

So, mgmt decides that the development group (me & 2 other guys) need to have all of the open bugs completed before the end of the week(the deadline given to the qa department).

We worked until midnight last night(16 hours for me). We got a bunch of issues fixed. I checked in like 40 files yesterday. When we got in this morning, our bug list had almost doubled, since the qa dept is finally doing their job.

How are we supposed to complete all of these bugs when the number of bugs is doubling daily? There are only three of us.

I have the answer: 16 hour days until it's done. Of course, Re is fairly unhappy with that solution. As am I, since I don't get to see either of my girls very much at all.

The frustrating part is that we have been begging for the qa dept to start testing for months. Most of these bugs would have been fixed long ago if they had done so. bahstahds.
Listening to: Twentythree - Yellowcard - Ocean Avenue (03:27)

Monday, May 23, 2005

Moving on...

I am interested in getting together another D&D group. I am thinking that we will be able to play about 1-2 times per month. I can run, if there aren't any more experienced DMs, or someone else can run. I was thinking of building a campaign off a bunch of modules that I have, so we could conceivably change DMs fairly frequently, if the group so desires.

As always, we will take people with any level of experience, and teach those that don't have much. Hopefully, we'll be able to learn from those that do have some experience.

Anyone interested? Leave a comment if you want to join.
Listening to: Wisconsin_Death_Trip - Static-X - Wisconsin Death Trip (03:11)

Friday, May 20, 2005

Bike News

I worked on the bike a bit yesterday. I got all of my new accessories and modifications completed.
  • Side marker lights(removed ugly stock front turn signals)
  • Tank pad(protects the tank finish from zipper scratches)
  • Integrated garage door opener(works when I hit the horny horn)

It was a lot of fun. Working on the Yamaha is a blast. Everything is easily accessible, and laid out pretty logically.

I will be posting a big writeup about the garage door opener. I have seen a couple of other guys online who wired theirs into the high beam headlights, but that seemed inelegant to me. The button on a garage door opener is a momentary switch, normally open. The high beam circuit is controlled by a two-state switch. The horn button more closely matches the original circuit's layout.

Plus, the high beam guy has to use some workarounds. If his highs are on when he gets home, he has to turn them off and back on to get the door to open. That shows the downside of changing a momentary switch to a two-stater. I think the transmitter in his opener is probably getting heated up, and turning off, which is why he has to 'reset' it by flicking the highs off and back on.

Pictures tomorrow.
Listening to: Memory Leak - www.djbolivia.ca - DJ Bolivia - Memory Leak (01:04:17)

Thursday, May 19, 2005

Some background on why Brian and I don't hang out

I was a little hard on Brian in my previous post. I guess reading his blog entry about how he totally disrupted a training session hit a nerve with me.

I guess it just reminded me of what happened when we were in college together.

For those who don't know(most of you, I think), Brian and I signed up for an independent study together. Our idea was that it would be good for us to work on a joint project, to give us some idea of what professional programming would be like. Also, it would be fun to hang out together and do some interesting programming.

Independent studies at UNF work like this: you talk to a professor, and they either give you an idea, or you submit an idea for a fairly major project. They sign a form, and you go register and pay for the course. At the end of the semester, you give your completed project to the prof, and get a grade.

I went to Dr. Eggen, and presented our idea of a joint study. He had reservations, because Brian was not going to register, he was going to wait until the next semester, so he could pay for the class then(money troubles). Eggen was concerned that Brian wouldn't be properly motivated, since there would be no negative consequences if he didn't do the work, or did poor quality work. I spoke with Eggen three times, and vouched for Brian, before Eggen agreed. I vouched for Brian based on the strength of our friendship(we were pretty tight, at the time).

Eggen proposed that since we had two people, we should do two projects. Any other solution wouldn't have been fair to the others who did independent studies in the past.

Summer came, and we scheduled several times to get together and begin working on the projects. Each time, Brian called me and cancelled. Most of the time, he cancelled within 15 minutes of our scheduled meeting. A couple of times, I didn't hear from him until an hour or so after we were supposed to meet.

I started to get worried after the first meeting got missed, but we were still hanging out and stuff, and Brian assured me that the projects would be easy, and we had plenty of time.

At the end of the summer, no coding had been done on either project. I had thoroughly researched one project, and Brian had researched the other. Both looked fairly uncomplicated to code, but the architecture for both was daunting. Since my project was not complete at the end of the summer, I negotiated with Eggen to get an I(incomplete) for the project.

During the winter semester, I talked to Eggen several times about the project, and my inability to get Brian to commit. He decided that I could complete the project alone, and dropped one of the two projects off my list.

So now, in September 02, I am starting off on a new project, and have to complete it by December 02 to graduate. Except, I had my schedule planned out for a certain number of hours, and didn't make room for the extra class.

I didn't get time to work on the project until about two weeks before graduation. My final semester was filled with programming classes, and I spent all my free time in the lab working on projects that were due right away.

The last two weeks before graduation are a blur to me now. I don't really have any clear memories of that time, except for sitting in my room, in front of my computer from the time I got up till late at night. I only left the computer to eat and sleep, so I could get the project and all the documentation done.

I finally finished the project, and met with Eggen to get my grade. That was on the day of graduation, at 3 pm. Until we left his office around 4:30, I wasn't going to graduate. We had to go to the dean of the CS college, and get her to make a special update to my student record so the grade would be recorded and I could graduate.

Everything ended up okay, because I got my degree, but I would have been a lot less stressed if Brian had help up his end of the deal, and worked on the project when it was due. I guess the real reason I got upset is because I counted him as a friend, and he totally screwed me. I don't think friends should do that to each other.

I realize that I bear most of the blame for causing my week long coding marathon, since I could have worked on the project without Brian, and probably got it done over the summer, but I was still going under the belief that we were going to do the project together, as a team thing.

To this day, Brian still hasn't told me that he has bailed on the project. He never told me he didn't want to do it, or wouldn't do it. That is just not the way you are supposed to treat friends.
Listening to: I Will Be Heard - Hatebreed - Preserverance (02:59)

Wednesday, May 18, 2005

It's a trend

I always wondered if it was a one time thing. Maybe he just didn't take the work seriously because it was the summer, and he wasn't getting credit(so therefore couldn't fail). When I hear of programming positions that open up, I consider calling him to let him know, and maybe giving him a positive comment.

I wonder if I am just being childish and holding a grudge.

Then I see this. I am right on this one. My original stance is my current stance.

Never, ever, in a million years, will I work with this person again. Just look at the shit he brags about: Goober of the Year Award


What kind of jackass gets such a kick out of disrupting a training session? Great, glad you don't need the training. Someone else in the room did, and you prevented them from getting it. Good job. You're the head ass in the room.

Tuesday, May 17, 2005

Follow up on managed code controversy

Rico Mariani put it in words better than I can:
Note to reviewers of managed systems: If you want to make a framework -- any framework -- look bad, simply ask it to do nothing. It turns out pretty much all known frameworks are lousy at doing nothing. So "hello world" for instance is a great way to make a framework look like a pig.
Link

Rico Mariani is an MS employee, working on .NET performance issues.

How bout that?
Listening to: landing - moby - XXX OST (03:43)

Friday, May 13, 2005

What a blast!

I rode the bike in to work today. The bridge was a little scary(like I expected). Once I got off 295, though, it was all great. I had a good ride in this morning. It took about an hour, but that was because I had to run to Mom's and drop off the title to the MR2(which is being donated today).

Courtney called me earlier and told me Tiff is in the hospital with abd. pain. It sounded like her gall bladder might be bad. At lunchtime, I rode down to visit with her. It was the least I could do, since she came and visited me & re about a hunnerd times. If she's still in the hospital when I head home, I am gonna stop and say hi again.

The ride to and from the hospital was pretty good. 9A is even more windy than 295 across the Buckman, so that was a little nervy, but it was no biggie.

I have decided that I am definitely going to get a Double Bubble windscreen. The stock screen just doesn't block any wind at all. Broderick gave me a check today for the stereo I sold him a while back; I think that money is all going towards the bike. That will get the fender eliminator, tank pad, and hopefully the windscreen too.

I am really excited about the ride home. I am almost out of gas, so that will be my first full tank of gas. The odo is up to about 155 or so now.


woohoo!
Listening to: Firestarter - The Prodigy - The Fat Of The Land (04:40)

Thursday, May 12, 2005

Developer Summit is over

The 1st annual FNDS dev summit is over now. We spent the last three days meeting from 11-2 about dev stuff. It was a pretty good experience. Slow at times, but mostly worthwhile.

I talked to James today, and he has set aside some time for me to chat with him tomorrow about my status as an employee/contractor. It sounds like everything is going to be okay. That is a huge load off my mind.

Guess that's it for now.
Listening to: Way Away - Yellowcard - Ocean Avenue (03:22)

Tuesday, May 10, 2005

InstallShield

Installshield 11 is a powerful tool. You can do a lot of things with it, and for desktop deployment, it's probably really easy and efficient creating MSI's. Web apps are a little different. Setting permissions in IIS virtual directories is difficult. I actually had an easier time using the VS.Net installer(which is very feature-limited).

I have been beating my head against the wall creating an installshield script for three days. It's getting frustrating, but I think I have it licked now.

Friday, May 06, 2005

What is the deal?

Several times now, I have asked for your input in the form of comments. How come no one ever leaves a comment except for the occasional stranger? Where the hell is my family? This media is a two-way communications technology.

Get with the program, folks.
Listening to: Friends of Mine - Bowling for Soup - A Hangover You Don't Deserve (02:18)

Thursday, May 05, 2005

Project Raven v1

Last night, I installed frame sliders on my bike. For those of you who are cycle challenged, frame sliders are sacrificial plastic pieces installed on the left & right sides of the bike. Mine are black plastic, so they match the surrounding fairings very well.

I am really proud of the job I did installing them, too. It is the first time I have done any meaningful work on a motorcycle, and it came out Great! The 2" hole I had to cut on the right side fairing is about 2mm oversized for the slider puck, giving me the perfect amount of clearance. The hole is nearly centered, too; only about 1mm offset. Pretty impressive considering I positioned the hole using a little piece of bunched up masking tape.

Now that my bike is protected, I will feel much more comfortable getting out on real roads like 103rd St. and US 17. I think I will continue to avoid Blanding Blvd for a while, since they have the street surfaces all torn up and lots of uneven pavement.

It has been raining all morning, but here it is 3 pm, and the sun has come out! If the sun stays out and kinda dries the streets, I am going for a ride when I get home. Stoked!

Motorcycle Glossary:

Fairing

The plastic pieces that form the 'body' of the motorcycle. These are the pretty painted pieces on the sides of the bike.

Slider Puck

The sacrificial plastic piece that bolts onto the slider's base. During a crash, this piece will be sliding against the road surface, preventing the frame from contacting the ground with force, and partially protecting the fairings on the bike.


Listening to: Twentythree - Yellowcard - Ocean Avenue (03:27)

Need a cool name

I need some kind of name for my bike. Something that reflects the mean look and power of my motorcycle. The paint scheme is called 'Raven', but I can't use just that, because everyone's black R6 is a Raven.

Suggestions are welcome, leave a comment with your name idea.
Listening to: Out on My Own - Keith Urban - Keith Urban/The Ranch (1 of 2) (04:56)

Reflections are fun!

I am learning a ton about the System.Reflection namespace this week. The other day, I used some reflection in a developer tool I wrote to dynamically set a property on an object.

Today, I am using reflection to execute a dynamic method, given only the method's name, and an xml file with the parameters for the method. I am building the parameter array from the xml data, and then calling the method using MethodInfo.Invoke().

I am having a blast. I knew this job would be a great learning opportunity for me. Rock on me!
Listening to: Give Me Novacaine - Green Day - American Idiot (Proper Retail) (03:26)

Wednesday, May 04, 2005

Complete a referral, please

So, I decided to start doing this thing to get a free mp3 player. The deal is that I have to complete a free offer(I signed up for BMG music, and got 11 free cds and had to pay for just 1).

Then, I have to get five of you guys to sign up for one of the free offers. There are a large selection of offers to choose from, some of the coolest are the music, book, and video clubs.

Dad, I think you should join one of the book clubs. You only have to sign up and get the first deal(like 6 or 7 books for $1).

Anyway, to complete an offer, just go to this address: http://www.mp3players4free.com/default.aspx?r=357580

Please make sure you complete the offer from this address, and not by typing in the url. If you don't use this link, I don't get credit.

Anyways, thanks for taking a look at the offers, and thanks even more if you complete an offer.

Things have been tiring lately

With Courtney and I both working, it seems like I only have like 20 minutes at home at night before we rack out. We have been getting up at 5:30, so around 9 or so, we are bed-bound.

At least I'm getting enough sleep, though.
Listening to: Out on My Own - Keith Urban - Keith Urban/The Ranch (1 of 2) (04:56)

Monday, May 02, 2005

My bike is Frickin' AWESOME!!!

I had a blast on my bike this weekend. We definitely made the right choice getting this bike. I was totally comfortable riding it. The bike wasn't a monster, like I feared. It's really easy to drive calmly on the bike, and you KNOW that there is a ton more power available when/if you need it.

I don't think I twisted the throttle more than 1/4 of the way the whole time I was on the bike, and I was definitely getting pushed back in the seat, and having to hold on to the bars.

I put gas in the bike at like 37 miles, because the light came on. I think the light came on due to a hard accel or decel, though, because it only took like 3.5 gals to fill. The tank holds about 4.6 gals, so I think the light wasn't supposed to come on for a few more miles. Plus, the light turned back off a minute or so after I noticed it.

Some really cool things I didn't know before:

  • No gas gauge, just an idiot light. To compensate, there is a special trip meter that is automatically activated when the gas light comes on, to let you know how long ago it came on.
  • There are helmet holders inside the cargo compartment on the bike, so I can hang my helmet off the back like an idiot
  • Riding is not nearly as scary as I thought it would be, although I haven't gone on any major roads yet, so that might be part of it


I'm having a hard time keeping my riding to a minimum until I get my frame sliders installed. Maybe I will work on that tonight. I have to get a couple of tools before I can do that, so I'll try to hit HD or Lowes today, on the way home. Wonder if Courtney and Mik will be up for that?

Crap return to work

Courtney is having a shitty day back at work. She found out that her subordinate is now her peer, and got a raise to the same level as Courtney(despite Re's 2 years advantage of experience). She is really freaked out about it.

I thought those bastards had changed their ways, but apparently they didn't.

Thursday, April 28, 2005

Today's Frustration

So, I talked to CitiMortgage yesterday, so verify what the closing agent told me on Monday about when I would get my checks in the mail. To recap, the closing agent told me I would have the checks on Friday(tomorrow). I called Citi, to see if I could get them Fedex'ed, so I would have them in the morning and be able to go get the bike at a reasonable time.

Of course, Citi told me it would be 6 working days before I got the checks. And, since 6 working days is Tuesday, it will probably be Wednesday or so, since no one will be home to sign for the delivery.

I know that guy is going to sell the three bikes before next weekend. I think I may go down there tomorrow, and at least put down a deposit.

This blows. I am SO tired of having problems getting this motorcycle. I'm starting to wonder if God is sending me a message.

Maybe when I am down there, I can see if Yamaha can finance me, and use that financing to take the bike home, and pay it off next week with the HELOC.

I am so incredibly frustrated, it's not even slightly funny.

Tuesday, April 26, 2005

Adjusting

My mood is brightening, slowly.

I am still pretty frustrated, though. What a pain in the ass. I thought the hard part about getting a bike would be convincing Courtney.

That was the easiest.
Listening to: Spank my Booty (Reprise) - Lords of Acid - Our Little Secret (03:53)

Crushing Disappointment

That's what I felt today at lunch. I went to Ron Turner to put a deposit on the bike, so they wouldn't sell it before the starter checks got here.

On Friday, the bike was third in the row. When I walked in, I was a little freaked out, because there was a gap in the row of bikes. Then I saw the black bike, it was fifth in the row. No problem, they just moved it.

Until I got close, and saw that the black bike was an R1, not my R6. They sold the R6 on Saturday. The only day they have been open since I was in there on Friday.

If I had more confidence in Ed St John(mortgage broker), I would have put a deposit down on Friday. I was worried that he was wrong about something, and the loan wouldn't come in, and then I would have been out $500.

As a friendly warning, I am in a piss poor mood now.

God damn it.
Listening to: This Kiss - Faith Hill - There You'll Be: The Best of Faith Hill [Bonus Track] (03:18)

Monday, April 25, 2005

Today's Frustration

This home equity thing is just full of frustration.

I am kinda glad that it took a long time to close, because that let me learn that I could have a new bike, and gave me the time to search for a good used one, and come up empty. It's still somewhat frustrating, though. I could have performed the same search with a check in my wallet.

Today, we closed on the deal. The closing was smooth, only took like 18 minutes or so, and about 15 signatures from me and like 3 from Courtney. No biggie, and the lady doing the close was very nice, although she looked kinda wierd.

During the closing, we find out that if we close/pay off the HELOC before 3 years is up, we have to pay citi back for the closing costs that they are paying right now. That would have been nice to know before the closing.

At one point, Ed told me that there was a federally-mandated three day wait before the loan company could issue funds. About a week ago, Ed called me and asked if we would need any money the day of closing, and I told him I just needed a couple of starter checks. Because he called me and asked this particular question, I thought his earlier statement that there was a three day wait had been incorrect. At the closing, we found out that the original statement was correct, we aren't going to have starter checks until 4 days have gone by. Another frustration.

So, tomorrow, I am going to Ron Turner when they open, and put a deposit on my bike. I called like 5 other Yamaha dealers, and none of them have a black 2005 R6, and all but one said it would be July before they could get me the bike. One guy in Camden County, Ga said he could get one in a week or two, but I think he was full of crap.

Looks like I'll be buying the bike from Ron Turner, and hopefully picking it up by this weekend. That kinda sucks, but not too bad. I was really expecting something like this, so I was trying not to get too excited.

I have to call the MSF course back and find out when I can come and retake the driving test. At least I will get to ride my bike to the test, if I so choose, since I got my permit today.

Have I mentioned how much I love Yellowcard? I totally dig their music. The way they blend punk music with a violin is awesome!
Listening to: Back Home - Yellowcard - Ocean Avenue (03:55)

Passed!

I took the written test for a motorcycle permit today, and passed with flying colors. I didn't even have to answer all the questions, because even if I missed every one remaining, I would have passed.

Geek that I am, I noticed a bug in their testing program; it asked me the same question twice. I imagine that there is a pool of questions that the test program randomly chooses from. The devs didn't correctly solve the problem of making sure that the random question hadn't been asked during that test session.

No skin off my nose, though, made it easier to pass. I got the same question right twice, and got credit for both.

Oh yeah, one other thing; my total time in the DMV was just about 1 hour, and that was waiting in line to get signed up for the test, taking the test, and waiting in line to get my temp cycle permit.
Listening to: California Dreamin' - The Mamas & the Papas - Forrest Gump [Original Soundtrack] Disc 1 (02:41)

Friday, April 22, 2005

Is this guy full of crap?

There is a dealership in Camden County, Ga where the guy says he can order me a black 2005 R6, for $1000 cheaper than I can get one on the showroom floor here in Jax.

The only problem is that I have talked to four other dealers, and they all said they couldn't get a black R6, or that it would be 2-4 months before they got another one. This guy in Georgia says he can get it in 1-2 wks, max.

Is he full of crap? Seems unlikely that this ONE dealership can get a bike that no one else within 100 miles can get. I don't want to pass on the bike that is here, ready to take home, and then find out that the guy can't really get the bike, and this one that is here gets sold. Then I am out the bike until at least the middle of summer. That is a lot of lost riding time.

A thousand bucks is still a thousand bucks.

What to do?

Exciting times at work

If you can buy into the party line(which I do), then there are some exciting, good times ahead for me at work. The biggest complaint of my software development career so far is the lack of defined process for the Software Development Life Cycle(SDLC as my boss calls it).

James(boss) is planning to implement some changes to our software development process. We are going to have actual procedures in place to gather requirements and develop the scope of a project before we begin it. So far, that is a pipe dream in all of my dev jobs.

I hope the hype becomes reality.
Listening to: Bled_For_Days - Static-X - Wisconsin Death Trip (03:47)

Tuesday is the day!

I am starting to get really excited. I am going to have my bike on Tuesday.

Yay!!

Almost got my helmet paid for

I sold an old stereo to one of my coworkers today. Made a cool $150.00. Not bad, considering the radio was $325 like 4 years ago. Since my helmet is going to be $199, I just about got my helmet paid for today.

Rock on.

Poor phone book entry

There is an entry in the yellow pages here in Jax that says there is a welding supply store down the road from my work. I went down there, to check it out and see what kind of stuff they sell there. I may need to get some magnetic clamps to help with my trailer welding, so I wanted to see what was available.

The store is co-located with Tulsa Welding School, so I figured I could ask them about their classes as well.

TWS' shortest class is 3 months, Mon-Fri, 9-5, and costs $7000. The only other course of study is 7 months, and is like $11,000. So much for the idea of taking a two or three day class to get started in welding.

The Lincoln Welding store that was listed in the phone book is really one guy, who is there a couple of hours a day, and only sells wholesale. Why was this guy listed in the yellow pages under welding supply - retail?

What a waste of time. And it was particularly frustrating because it took me three days to get down there to check out the store, so I felt like I had wasted three days thinking about that store. Frustrating.

Wednesday, April 20, 2005

R6 research#1

Ron Turner cycles gave me a quote on the R6. $10,000 plus some change out the door, and they are offering a 15% discount on gear(helmet, jacket, gloves, framesliders). I am going to call around and see if anyone else in town or nearby has a better deal.

If anyone has a friend or some other contact at a cycle dealer in town, please let me know.

I love this song.
Listening to: View From Heaven - Yellowcard - Ocean Avenue (03:22)

Tuesday, April 19, 2005

I'm mended now

I am no longer torn. I went to see the yellow bike yesterday. Let me just say that I am glad it was in Jacksonville. Had I driven several hours to see that bike, I would have been quite pissed off.

It wasn't so much that the guy wasn't there when we got there, even though I was right on time for our scheduled appointment. It wasn't so much that the guy's girlfriend(who was wearing a wedding band) didn't invite us in while we waited. It wasn't so much that the guy had wrecked the bike, but hadn't mentioned that during our phone conversations. It wasn't even the fact that the guy admitted that second gear was slipping.

It was really the combination. Crappy paint, scratched forks, hole-in-the-muffler fast, mechanical defects, and rude. No thanks, dude. I'll go for another bike.

I still haven't decided if I want to get a new bike or not. I think I will keep checking for a used one for a week or two, and if I can't find one or decide I want a new one, I'll go see a dealer.

Monday, April 18, 2005

I am freakin TORN

I thought my bike decision was made already. Courtney threw a wrench in it, though. Originally, it was this bike:

2003 Suzuki GSXR 600

Now she has to go and tell me that I can have a new bike if I want one. This bike is the coolest bike around. This bike, in 2004, was one of the reasons I got all hot about getting a bike. Here's a pic:

2005 Yamaha R6

What the hell do I do now?
Listening to: Fingerlickin' Good - Lords of Acid - Our Little Secret (03:46)

Managed Code Controversy

Normally, I don't get involved in these types of debates. I have my opinion about the .NET Framework, and about which languages to use during development, but I tend to keep those opinions to myself.

I read a couple of articles today that I felt the burning desire to comment on.

Here is the first article, written by a guy named Mark Russinovich: http://www.sysinternals.com/blog/

Here is a response, written by Ken Henderson: http://blogs.msdn.com/khen1234

I don't know who either of those guys are, but I believe that Ken Henderson has to be an MS employee to have a blog at blogs.msdn.com(but I'm not sure).

I think Ken pretty accurately describes the fallacies inherent in Mark's arguments, but I think he missed a REALLY BIG point.

Notepad.exe was written by Microsoft. The program has been through at least 4 versions(win95/NT/2000/XP). Microsoft has a bunch of really, really talented developers, who work on their projects full time, and have to pass rigorous standards for quality(despite what the media would have you believe).

Notepad has been updated and optimized by the best(arguably) developers in the world for at least TEN years. I would expect that an app that has been around for 10 years would be incredibly streamlined and as efficient as possible. Every developer that touches an app should remove some running time, and add some efficiency into the code.

Compare that to the .NET version of Notepad that Mark was evaluating. It was written by one guy, Muhammad M.M Soliman, as an example app, to demonstrate how easy it is in .NET to create an application that does something.

It is ludicrous to compare a 10+ year old production app produced by the most successful software development company in the world to an app written in a day or two last year by an unheard-of single developer. I don't know how good of a developer Mr. Soliman is, and I don't mean to disparage his abilities, but I can almost guarantee that he is less skilled than the team(s) of developers at MS working on Notepad.

For Mr. Russinovich, if you want to spout off about how .NET is the end of the development world, at least compare apps that are comparable. You cannot compare a string to a number and get meaningful results, and you cannot compare MS's Notepad to Mr. Soliman's Notepad-like application. The poor choice of comparison invalidates your entire article, and removes any credibility for the points you were trying to make.

To truly describe the difference between .NET and native code, you would have to write a program in a native language(prob C++), and you would have to write the same app in .NET(prob C#). Then you would have eliminated variables such as programmer ability and application maturity. Only than can you accurately compare .NET and native applications.
Listening to: You Won - Keith Urban - Golden Road (05:21)