« December 2007 | Home | February 2008 »

Entries From January 2008

January 29, 2008

The Force Unleashed: Webdoc 3

Filed under Video Games, Work

Here's a nice clip on our new game:

Round 1...Puppy vs. The Robot...FIGHT!!!

Filed under Funny

January 27, 2008


Filed under Movies, Reviews


Wow! The last three movies I've seen have been great (Ok, I'm not counting this one).

I saw Juno last night and loved it. For those counting at home, the other two are this one and this one.

This is a funny movie...and the dialog is fast and furious. Juno is what I imagine Sarah Silverman (I love her) would be like if she got knocked up in high school.

This movie is about high school kids and teen pregnancy. It doesn't seem like a movie that I would like...but I loved it.

Go see this movie!

The Oscar nominated screenplay was written by former stripper and phone sex operator Diablo Cody. You can tell Juno gets a lot of her character from Diablo.


Check her out on a recent Letterman appearance concerning Juno:


Here is an earlier Diablo Cody Letterman appearance where she talks about being a stripper:

January 22, 2008

I Feel Another Oscar Coming...

Filed under 3D, Animation, Movies

imageNominations for the Academy Awards were announced today. Ceremonies are Sunday, February 24.

In the Best Achievement in Visual Effects category, ILM has two of the three nominees: Transformers and Pirates of the Caribbean: At World's End.

The other nominee is The Golden Compass.

ILM has won 15 previous Oscars for visual effects, including last year's Pirates of the Caribbean: Dead Men's Chest.

I will be *shocked* if Transformers doesn't win. The effects amazed me, and that doesn't happen very often anymore.

Good luck Scott!

January 19, 2008

Wanted: Somebody That Works At Pixar

Filed under Animation, Travel


I stopped by Pixar today. The above picture is about all you get to see if you aren't a guest of a Pixar employee.

I *really* want to see what their studio looks like inside, but I don't know anybody that works there.

If you know somebody that works for Pixar that wouldn't mind showing me around, please let me know. In exchange, I'd be happy to show them around our campus.

January 18, 2008


Filed under Movies, Reviews

image Stop reading this and go see Cloverfield now.


I'm not kidding.

This is a fun monster movie...and the less you know, the better it is. It may be the perfect monster movie. I *really* liked it.


I got to see a special screening of this film earlier this week. The movie is like a cross between Godzilla and The Blair Witch Project...except much better than either one.

Since the movie is filmed from a video camera held by one of the characters (like Blair Witch)....expect a bumpy ride. There is a lot of running and spinning. A security guard said 16 people ran to the lobby to vomit during the movie. A friend of mine had to get up and leave because he was nauseated. All the people came back to finish watching, though. It is recommended you sit further back in the theater to lessen the impact (or closer if you want the ultimate experience!). I didn't have any problems with it, and I sat about 6 rows from the front.

Oh! And make sure you see this in a theater with good sound...it makes a huge difference! The sound is really well done (props to Skywalker Sound!) and will make you feel like you are there if you go to a good theater.

Here is the teaser (which is essentially the first 5 minutes of the movie):


January 16, 2008


Filed under Reviews, Software


If you have multiple computers on your desk and want to control them all with a single keyboard/mouse...you got to try Synergy.

I have a Windows box and a Linux box at work. I had both systems setup next to each other. I was constantly using the wrong keyboard/mouse when I would switch systems.

Now I use Synergy and just a single keyboard/mouse. When I want to switch to my Linux box from Windows, I simply drag the mouse cursor on Windows in the direction of the Linux monitor and the mouse pointer magically appears on Linux and all keyboard input now goes to the Linux box. When I want to go back to Windows, I just drag the mouse cursor back towards the Windows monitor. It looks like a dual-monitor setup because the mouse just slides back and forth between the two computers as if it were the same mouse.

How does it work? One system is a server (in my case, my Windows box) and one is a client (my Linux box). The server has the keyboard/mouse attached to it. When you move the mouse to an edge, Synergy redirects keyboard/mouse output to the client over the network connection. It works like a software-based KVM switch (but doesn't do the video).

It even supports copy/paste between systems! And when my screen-saver kicks in on Windows, my Linux box does the same...and they both wake up when I touch the mouse.

It is definitely better than a desktop filled with keyboards and mice for multiple systems.

And best of all, Synergy is free!

Highly recommended! Give it a try!

January 15, 2008

Darth Vader Plays the Harmonica

Filed under Funny

Not sure how I missed this part the first 50 times I watched it...

Thanks Trey (via Louis...thanks Louis!).

TV-B-GONE: CES Edition

Filed under Funny, Gadgets

The guys at Gizmodo had some fun at CES with a TV-B-Gone, a remote that can turn any TV on/off...

January 12, 2008

Choosing the Correct C/C++ Runtime Library

Filed under Programming

The C/C++ runtime library contains basic functions like memory allocation (malloc, new), output (printf), and string manipulation (strcpy, strlen).

When building a C/C++ application or library, you must pick a C/C++ runtime library. In Visual Studio 2005, you can select this option using Project->Properties...->Configuration Properties->C/C++->Code Generation->Runtime Library:


You have 4 versions:

  1. Multi-threaded (/MT)
  2. Multi-threaded Debug (/MTd)
  3. Multi-threaded DLL (/MD)
  4. Multi-threaded DLL Debug (/MDd)

The C++ runtime library is dependent on the C runtime library. The C runtime library version must match the C++ runtime library version.  Thus, these options apply to both the C and C++ runtime libraries.

In previous versions of Visual Studio, you had additional options that were single-threaded. These versions would execute faster on a single core than the multi-threaded versions. However, they were not safe to use in a multi-threaded application. I'm guessing these libraries were dropped since multiple cores are quickly becoming ubiquitous and multi-threaded applications are needed to take advantage of these extra cores.

These four choices are all the permutations from two variables:

  • Debug vs. Release
  • DLL vs. Static Library

The first variable is easy. Use Debug on internal software that is not shipped to customers. The debug runtime library *can't* be included with your application legally. Just to be clear, you *can* ship a debug version of your application to a customer, but it should use the *release* version of the runtime library.

The Debug runtime library gives you access to some helpful debugging aids for error reporting and tracking down memory leaks. See the additional debug functionality you get with this version of the runtime library (and macro _DEBUG defined) here.

The next variable is DLL or Static Library. In general, you should use DLL. You might consider the Static Library version if:

  • You have a small application and you don't want to waste memory with runtime library calls you don't need
  • You want a simple application that is not dependent on shipping with an additional runtime library DLL.

The above instructions work well if your application doesn't use any other libraries. That rarely happens. Microsoft has several vague warnings in their documentation about using more than one version of runtime in an application.

The goal is to use one runtime library throughout your entire application.

That is nearly impossible since you typically don't have control of which runtime library other libraries use. For example, OpenGL uses the runtime library. If your application or any other libraries you use don't use the same runtime library as OpenGL, then you are mixing runtime libraries.

How do you know what runtime library a .EXE, .DLL or shared library (.LIB), or .OBJ use? Use this command line:

dumpbin /all XXXX | find /i "msvcr"

...and replace XXXX with the .EXE, .DLL, .LIB (for static libraries...not the stub for .DLL's), or .OBJ in question. You should get something similar to this:


You can use the results from this command with this page to see which runtime library you should use.

If you don't get any output, then it likely means that a static runtime library is used.

Even with information about what runtime libraries are in use, you may find it impossible to make your application use a single runtime library. If you match the runtime libraries, it is possible that one library uses the Visual Studio 7.0 version of the runtime library (msvcr70.dll) but you only have access to Visual Studio 8.0 (msvcr80.dll).

So now what?

It turns out is is OK to mix runtime libraries *except* in certain cases. A well written library should avoid these cases and then it doesn't matter if the runtime libraries match. Libraries that cannot avoid these cases should ship with 4 versions of their libraries that match the 4 versions of the runtime libraries.

Here is a good article with examples of situations to avoid so that you don't have to worry about mixing runtime libraries.

Choosing a runtime library summary...

  • Use the debug version only internally, release for anything that could be used by customers
  • Use the DLL version except in special situations
  • Use consistent settings throughout your project (the runtime library setting can be done per source file)
  • Don't worry if your runtime library settings match other libraries you use (unless the library comes in multiple runtime library versions)

No Country For Old Men

Filed under Movies, Reviews

No_Country_for_Old_Men_posterI went to a screening of No Country For Old Men a couple of days ago.

This is the best movie I've seen in the past year.

It's a Coen Brothers film, so it is quirky and original. I liken it to Fargo in Texas.

I grew up in West Texas, so I enjoyed this movie on another level. The accents, people and locations were very familiar to me.

The main hitman in the film may bump  Hannibal Lecter off the top spot for creepiest villain.

This is a great film...a must-see.

January 9, 2008

My Next Laptop

Filed under Computers, Gadgets

I bought my first laptop (a Dell Inspiron 8000) back in 2001. I'm ready for a new one and I think I found it.

It is the Lenovo IdeaPad U110. Lenovo is the same company that makes IBM ThinkPads. It was introduced at CES this week and should be available in April.

What I like about it:

  • Light: Less than 3 pounds. My old laptop weighed more than 9 pounds.
  • Small: Less than an inch thick...should be able to fit it in my backpack.
  • Sturdy: No moving parts when combined with a SSD.
  • Nice keyboard for its small size.
  • Runs Vista Ultimate
  • Has a dual core processor
  • Built-in web cam that does face recognition (instead of typing passwords)
  • 2 GB of RAM
  • Looks cool with the red cover
  • Less than $2,000

My new phone can act as a 3G high speed modem (5-10 Mbit/s) via bluetooth. I should be able to hop on the Internet anywhere my cell phone works with faster Internet access than I have at home...without connecting the laptop to anything!

I figure I will mostly use this for web surfing, email, blogging, and programming.

Here is a video review of the IdeaPad U110.

January 8, 2008

Windows PowerShell 2.0

Filed under Computers, Programming, Software

Graphical PowerShell Script Output

Linux/Unix (and Mac since OS X) have always had much better shells than Windows. But that is about to change.

Windows PowerShell 2.0 looks very impressive. It should make the Linux/Mac/Unix world scramble to come up with something that matches the features of PowerShell 2.0.

The feature I'm most excited about is called the "Graphical PowerShell." It is pictured above and replaces the pathetic "Command Prompt"...


You can see from the top picture that the Graphical PowerShell is broken into three parts.

  1. The top part is used to store scripts. It has syntax highlighting and debugging (set breakpoints).
  2. The middle section is output from the above scripts or from the interactive console.
  3. The bottom section is what most shells look like. This is where you can interactively type in commands.

One of the things that drove me *nuts* about Windows' Command Prompt was that you could not select a multi-line command. Selection worked in screen space, which is terrible!

For example, below I wrote a command that I want to copy. Because selection is in screen space, the best I can select is 'more *.cpp | find' instead of the whole command 'more *.cpp | find "include"'.


Graphical PowerShell doesn't have this problem. You can select by line now (finally!)...


You can also resize the window which doesn't work very well with Command Prompt.

The PowerShell command language itself is well thought out and very consistent. All commands are made up of verb-noun pairs like Set-Location, Copy-Item, Write-Output, etc. (with aliases that work as shortcuts). It looks to be very competitive with all the other shells out there in terms of shell features.

Passing data between commands in Unix/Mac/Linux involves sending text from one to command to another (like "more junk.txt | grep lenihan"). PowerShell passes *objects* between commands.

This article shows a quick example of the power of passing objects instead of just text. A list of directories is passed to a move command. If this were done with text, the text would need to be formatted in such a way that the move command would recognized the text as file names (like removing the date information). PowerShell already knows what type an object is so you can skip any of this formatting! Very nice!

PowerShell 1.0 is out now. It still uses the old Command Prompt for input/output. The Graphical PowerShell (replacement for Command Prompt) is part of PowerShell 2.0, which is available in alpha right now.

I can't wait for PowerShell to replace the Command Prompt in Windows!

January 6, 2008

Windows Mobile 7

Filed under Gadgets, Software


This blog apparently got access to some internal documents detailing the next version of Windows Mobile. In short, it is a pretty dramatic UI makeover designed to compete with the iPhone. WM7 is scheduled for 2009.

January 5, 2008

1/2 Scale X-Wing Actually Flies

Filed under Funny, Movies

Here is a video clip of the X-Wing taking off...

No surprise that conspiracy theories abound for what went wrong. This one is probably the closest to the truth...


About January 2008

This page contains all entries posted to David's Blog in January 2008. They are listed from oldest to newest.

December 2007 is the previous archive.

February 2008 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.34