May 19th, 2008

There was a nice blurb about my work on the local news the other day.  You can watch the video here:

USC Creates Virtual Environments For Hollywood, Military


April 16th, 2008

Ian sent me this slashdot link the other day (since I can’t bring myself to read slashdot for any length of time):

The Return of Ada

Allow me some nostalgic reminiscing:

Most of my college buddies are fondly aware of Ada, having it being forced down them in their first couple years of school.  Cal Poly’s CS dept was very pro-Ada, my guess is that it was because they wanted to cater to government recruiting.  Perhaps this was why most professors laughed when I told them I wanted to go into the games industry.   Just like my dad, “nobody’s going to pay you to play videogames”.

So anyway, we were forced to use Ada for the intro data structures courses.  This bugged me to no end.  It wasn’t so much the language, although it is unnecessarily wordy IMO.  But the lack of any serious tools was its shortcomings.  We’re talking: No code editor, No IDE, No Debugger.  Syntax highlighting?  Ya right.

Even the Ada compiler wasn’t natively Ada, it simply converted the Ada code to C++ and then called g++ on it.

And this is the time when Microsoft had Visual C++ 5, leading up to Visual Studio 6, which many hard-core C++ programmers still believe as their best IDE (but poor standards compiler).  Every version after has added more latency, and no useful features.  VS.NET 2002 was a huge step backwards and they’ve been playing catch up ever since.  I think you’d find many people who would be more than happy if they scrapped their entire .NET trunk, rolled back to version 6 of the IDE and hooked it up to the latest compiler.

Anyways, working with Ada was such a chore, it was a breath of relief when you got past the data structures courses and could use any language of your choice.  In fact, it was always my first question on the first day of class.

Ironically, the year after I graduated, the school introduced a new curriculum, starting with Java for the intro courses, then moving to C++.   No more Ada.  And they got a brand new computer lab to top it off.  Sigh…

Of course, this probably degenerated the school into one of those JavaSchools, but that’s a debate for another time.

Engineers and Cats

April 15th, 2008

Everyone like cats!  Oh, maybe it’s just us geeks.


My Christmas List?

April 7th, 2008

Reasons why it’s worth to be a PCgamer in 2008

Wow, there are a lot of games released in one year.  Granted, there are probably more than half on this list that don’t look all that great.  But still, that leaves like 20 or 30 that I would at least like to check out.

How many games did I play last year?  Just one.  I really have to break my WoW addiction.

But seriously, there’s no way I have time to play all of these…  But I would like to…

Vote on VS2008 bug

April 2nd, 2008

Do me a favor and vote on this bug. All that requires is that you have a MS passport ID. It’s a bug in Visual Studio 2008 that I get, and suposedly they won’t offer a full patch until Octobor. Here’s hoping a few more votes in the issue tracker will speed things up:

C2471 error

Craig in the newspaper!

March 22nd, 2008

Well, at least his head is…

Here’s the electronic version, but his picture was in print on Tuesday in the Local section.
Youth fields completed on time for opening day

Click the More Photos link to see the Cubs in a circle during their cheer. I haven’t quite figured out which head is Craig, but one of them is his!

Intel & Microsoft to support Multithread Research

March 20th, 2008

Microsoft and Intel Launch Parallel Computing Research Centers to Accelerate Benefits to Consumers, Businesses

I initially wrote about the importance of multi-core programming back in 2004. And Herb Sutter’s “The Free Lunch Is Over” was written in 2005. So on some levels I’m thinking “What took them so long?!?” But it is good that advancement in this area continues.

Don’t install that driver!

January 20th, 2008


My daughter got a real simple kid’s digital camera for Christmas this year. She loved it and immediately filled it up with pictures.

So then I had to transfer the pictures off so she could fill it up again.

I plugged it in to my laptop with the supplied USB cable (I’m asking myself why it’s a proprietary plug requiring a special cable rather than a standard connector…)

Well, Windows didn’t recognize it, so I go for the driver CD that came with it (I can already hear you say, “don’t do it!”)

Driver starts to install… Blue Screen.

Of course, nobody likes to get a blue screen, but come on, this is a usb digital camera. What kind of special driver is required to cause a blue screen??

So I reboot the thing, hoping to try the install again. Unfortunately, I didn’t get very far.

When I rebooted:

- My DVD drive didn’t work
- My Webcam didn’t work
- My sound card didn’t work
- My modem didn’t work

In Device Manager it was a sea of yellow exclamation marks.

Now, I’m worried. What in the world did this stupid camera driver do to my machine?!? Worst of all, this is my work laptop, and I’ll be really embarrassed telling IT this story.

I’m looking at this camera and I get no hints. It’s some sort of Toys R Us generic brand that has no website, no support page, no method of getting help at all.

Then I noticed that one of the exclamation points was a thing called the “Plug and Play Enumerator.” I figured that maybe I’ll start with this device, seems harmless enough.

Normally, when you uninstall a device and reboot, the device tries to come back and offers you a chance to reinstall it. So I uninstalled that device and rebooted.

However, it never came back. This was troubling, but I didn’t think much about it. So I tried uninstalling the rest of the yellow exclamation points, one at a time. There goes my dvd drive, my webcam, my sound card, etc.

But they never came back after reboot. I thought that it must have something to do with that PnP device. So I went surfing. I found a site that explains how to reinstall this device (hmm, must have happened to other people). So I follow these really hacky instructions, and voila, all the devices came back.

I still have a rogue unknown device in Device Manager, and I suspect it’s that half-installed digital camera. But am I going to try reinstalling that CD? No chance.

W, X, Y, and …?

December 29th, 2007

This is a fake “laptop” that was received as a gift for a friend of ours.  Watch how it says the ABCs:

What letter is Zed?

Just think of what this is teaching our children.  You can even hear Craig in the background saying his own “Zed” in response. I love it! :)

Firefox… that’s like a browser or something?

December 17th, 2007

In the spirit of trying something new, I’ve decided to see what all the hubbub is with this new fangled browser.  Yes, I’m probably the last person on earth that hasn’t installed Firefox (at least out of all my friends).  I usually hesistate installing something new on my machine unless there’s a clear benefit of better productivity.  Here’s why:

- Every program that’s installed on the OS adds to the “cruft.”  This is every little piece of data that’s added to the system that contributes to overall system slowdown.  Paranoid?  Yes.  I keep my systems pretty vanilla…  Usually not even setting a wallpaper, or changing the system colors.

- I typically don’t replace something that’s already built-in to the OS unless there’s a clear reason to do so.  I replace Explorer with Total Commander because Explorer is impossible to navigate with a keyboard (however, I knew someone who did, and it was impressive to see him work).  I replace the default image viewer with Vueprint because I like hitting space bar to view the next image in a directory.  I replace MSN Messenger with Trillian because I only want to use one IM client for all of my contacts.  You get the idea.

- I want a consistent OS experience.   I work on several machines both at home and work.  I want the same browsing experience on each machine.  This would require me to install Firefox on each machine I come in contact with.  Raymond describes the problem here.  Requiring third party components every time you get on a new machine isn’t good.  Not that you’re likely to hear “First install Firefox, then go to this site.”  However, I had that exact experience not too long ago on a beta site I was looking at.


Of course the big feature touted by Firefox everyone immediately mentions is  “TABS!  You just gotta have tabs!”   Unfortunately, as a die-hard keyboarder, tabs just doesn’t work.  Coding Horror explains this much better than I could (The Problem With Tabbed Interfaces).  It essentially boils down to this:  When task switching, I keep the Alt-Tab stack order in my head (order of most recently used).  This way, I know that the last app I used is one Alt-Tab away, and the 2nd to last app is two Alt-Tabs.  When using browser tabs, I now have to maintain multiple stacks in my head.  Most recently used apps, plus most recently use tabs in each opened browser window.  If I’m in Outlook, and I want to switch to my blog, which is buried 3 tabs in, on the 2nd browser window, how do I remember that?  I just have to hunt around for it with the mouse.  Boo. 

So, I can live without tabs. 

Other than that, the other Firefox features don’t really give enough reason to switch.  Faster browsing?  Maybe…  More secure?  Well, it might keep my WoW password more safe, that would be nice.  It’s not a Microsoft app!  Sorry, but I don’t wear a tin foil hat.

Actually, the main reason I decided to try Firefox was rather simple.  I’m a big fan of Homestar Runner.  However, when your screen resolution is 2560×1600, those little flash windows makes it very hard to see.  So I was googling around, and lo and behold, I found a plugin that makes the Homestar Runner cartoons as large as the browser!  However, the plugin is for… Firefox.

So, off I went to install it.  (the plugin worked great btw!)


Here are my thoughts so far, after about a week using it off and on.

My first criteria I judged it on was screen real estate.  How much space do all of those buttons take up.  I’m a real stickler for wasted screen real estate.  Yes my combined resolution is about 4100×1600, but I still obsess over wasted toolbar space.


Firefox doesn’t dissappoint.  Let’s look at some screen shots.  Here you’ll see my current IE6 browser setup next to my Firefox setup.  Actually, the Firefox bar is a tad smaller than IE6.  Bonus!

While we’re at it, let’s compare both IE7 and Firefox 3 beta as well:


IE7 is hideous!  There is no way to get that toolbar any smaller.  Why can’t you embed the address bar into one of the other bars?  The wasted space is mind boggling, especially when maximizing the window on my 30″ monitor.  Sigh.   On the other hand, Firefox 3 is able to squeeze an even smaller footprint.  Yay!   I can’t for the life of me figure out what the designers of IE7 were thinking.


I was afraid that Firefox would throw convention out the window and introduce all new keyboard shortcuts for browsing.  So far, I am happy that all the shortcuts I have been using work just like IE.  Ctrl-D, Alt-Left, Alt-Right, Ctrl-F.  Incremental Ctrl-F is nice.

In terms of rendering speed, I noticed that Firefox doesn’t exactly render any faster, but it feels different.  I think Firefox does a better job of multithreading the rendering so that the text displays first, and the images come in afterward, bit by bit as they download (just like the good old days).  Lately, in IE, most pages seem to pause for a second while the entire page downloads and then displays all at once (cnn.com, for example).  The incremental display is a better user experience.

Also, plugins were a breeze to deal with.  Download and copy it to the right folder, Firefox finds it right away and asks you to install it.  Neat.  Go to a site that requires flash, click the window and the flash plugin page displays and lets you install it.   It just seems more complex with IE.


So, now that the good stuff is out of the way… let’s start nit-picking.  After all, I don’t really want to switch, so I’m trying to find everything wrong with it as I possibly can.  (Actually, I noticed these things right away, and boy do they bug):

- Toolbar buttons.  I think every menu option should have a icon for it.  This isn’t the case with Firefox.  Firefox is missing a Print Preview button and a Font Size button.  These two options I use frequently in IE.  Fortunately, I guess other people do as well, because there are two plugins that offer this capability.  On the one hand, it’s nice that Firefox is extensible, and people are willing to extend it.  On the other hand, I feel this is functionality that should have been added out-of-the-box.

- Scroll speed.  Take the same page in IE and Firefox.  Scroll down the same amount with either the mouse scroll wheel or the arrow keys.  The Firefox page scrolls about half as much as IE.  I much prefer a faster scroll speed.  However, I would prefer them to be consistent.  Why the difference?

- In IE, click the URL in the adrress bar.  Then click and drag in the middle of the URL to select half of the URL.  Notice how you can select part of the text?   Try the same thing in Firefox.  For some reason, it thinks you want to drag the icon somewhere.  In order to select that text, you have to move the pointer out of the address bar, then back in.  Then it will let you select text.  Why build in different behavior from the default Windows text box?  This is the danger of Non-native UI


Well, that’s my Firefox story.  I’m almost convinced.  Actually, if IE7 becomes mandatory (as it is on Vista), then I think the decision has already been made.  When it comes to wasted screen real estate, that usually trumps every other reason.