May 2006 - Posts

Unusual software bugs

Have you ever heard about Heisenbug, Mandelbug or Schroedinbug. I must confess I never did but it is always good to learn something new everyday:

A Schroedinbug is a bug that manifests itself apparently only after the software is used in an unusual way or seemingly at the point in time that a programmer reading the source code notices that the program should never have worked in the first place, at which point the program stops working entirely until the mysteriously now non-functioning code is repaired.

More unusual software bugs on wikipedia.

WinHec 2006 keynote

It is happening now! Watch it! :)

How to set up Microsoft Symbol Server

Symbol server is important if you have large projects on the Windows platform within a large organization and your process involves daily/nightly builds. Then you have to distribute really large number of binary files impacting your network traffic. Instead of copying every single one of your symbols you can set up a symbol server, where the symbol files are distributed on demand, this way you can easily save gigs of network bandwidth and storage.

Setting up a Symbol Server.

Wish I have a taskman like this

What you see here is the task manager of a computer equipped with 64 CPUs (execution units). I think it is really cool, wish I would have one at home :)


And this is the actual hardware: Unisys ES7000/600

WMP11 Beta for XP

Available now! Download it from here. And some review as well "Ten reasons to love WMP11". They seem to like it... I am installing it now!

And they are right. WMP11 is really, really, totally cool! I thought I just double the risk and installed IE7 Beta2 as well, oh what is the worse can happen other than loosing all my data and reinstall my machine! And both of the applications are working like a charm. Actually, the Community Server editor is not working anymore, possibly because of IE7. But still happy...

I am a Mac and I am a PC

I found the TV ads from Apple really funny. It almost made me switch :) No, I think this is even funnier.

Original @ Channel9

Deblector, a marriage of Reflector and a debugger.

Felice Pollano has put together a very interesting tool, what is basically a debugger and a reflector - thus the name Deblector. This tool is using Lutz Roeder's Reflector to generate source code using reflection while you are debugging. This can be very handy when you does not have the source code or debug symbols or you just want to figure it out really quick what is happening under the hood. I think I need to give this tool a closer look soon... will post my experiences! 

Check the latest release of Deblector.

Stupid Error : RunTime Check Failure #0 - The value of ESP

I just spent the last hour with this and I have no clue how would I found out this alone. I am trying to figure out the maximum keyframe space of a wmv file and for this I am using the Windows Media Format SDK and the wmvprop sample. At some point of the execution I would make a call for each video stream to find out this property by calling:

hr = pVideoMediaProps->GetMaxKeyFrameSpacing(&pllKeyFrameTime);

When I was stepping through my code and arrived to the call above I received the following error:

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

I must tell you this error message is dead scary, because I am not a COM guru, nor a C++ one. So I spent an hour trying to figure it out and changed all the calling convetions in my call, but no joy! Then I called for help. Another 20 minutes 2 people staring at the screen then my collegue Kalman suggested to comment out my code and see if that works. It worked! Then we know that I am crappy coder :) Another session of blank staring for 2 mins then I saw this piece: like couple of lines earlier:

hr = pConfig->QueryInterface(IID_IWMStreamConfig, (void **) &pVideoMediaProps);

and the definition of my variable like 30 lines earlier:

IWMVideoMediaProps *pVideoMediaProps = NULL;

so that tells me basically that I screwed this up by querying for one interface and supplying another interface to QueryInterface. So tho correct the error it should be queried like this:

hr = pConfig->QueryInterface(IID_IWMVideoMediaProps, (void **) &pVideoMediaProps);

Honestly, I do not understand what happens under the hood - I really would like too, so someone smart please explain it to me - and why this error message shown, but I thought that I would try to save some time to other people with this. I really hope that this will be handy for someone sometimes :)

Another interesting twist was that after looking at the documentation I learned that:  

Remarks

This method retrieves the value set by SetMaxKeyFrameSpacing, or the default value for the key frame spacing, during the encoding process only. If called for a file that is open in the reader, the method always returns zero.

For more information, see the Remarks for SetMaxKeyFrameSpacing.

And I had a reader open and I received 0 as a result when I ignored this error! The moral of the story? COM rulez! Pay respect to it and documentation is your friend!

E3 2006 Coverage - Random links

Coverage of xbox360, PS3 and Nintendo Wii from E3, but I think the most important one is HALO3 :)

Out of the three, Nintendo Wii looks the most interesting, although I am not sure about the whole controller thing! There are some really interesting games coming for Wii: Warioware: Smooth Moves (I would expect this game to be fun to play with the new controller),  The Legend of Zelda: Twilight Princess, Super Mario Galaxy First Look,  Metroid Prime 3: Corruption Hands-On.

Consolas Font Pack for Microsoft Visual Studio 2005

Is now available for download from here.

Brief Description

Optimized for Microsoft ClearType
The Microsoft Consolas Font Family is a set of highly legible fonts designed for ClearType. It is intended for use in programming environments and other circumstances where a monospaced font is specified. This installation package will set the default font for Visual Studio to Consolas.

Boot Camp: Apple Bobs for Suckers

I am thinking nowadays of buying a new computer and one of the very likely candidate would be an Apple iMac Core Duo. The beta release of BootCamp just really made that peace of hardware more desirable. I woudl run my Windows XP and Vista on my sexy Apple hardware and at the same time I can dip into OSX and learn more about this other platform. But somehow something deep inside me just does not want to make this step yet, so because of this I read everything about BootCamp and Apple and OSX. So I read the article  Boot Camp: Apple Bobs for Suckers at PCmag.com and I enjoyed it. It kind of clears up a lots of things and false statements like apple now makes the fastest windows machine on the planet. And it is also funny.

You'll start spending more and more time in OS X, until you—too—become one of the pod people. It's sad to see so many of my compatriots being turned into lemmings. Perhaps they'll wake up and smell the Apple pie in the sky—and realize they've been taken for a ride. But I doubt it. Because I'm a firm believer that once you start using a Mac, your IQ begins to creep downwards, inversely proportional to an increase in your AAF (Apple Acceptance Factor).

In fact, I'm blaming the AAF for a wide-range of habits espoused by supposedly "creative people." I'll bet it's responsible for tattoos, piercings, and the wide-spread adoption of the phrase "no worries." In fact, I believe that most of today's societal ills can be either indirectly or directly attributed to Apple. Widespread hearing loss? Blame the iPod. Carpal tunnel? Blame the Newton. Upswing in hernias? That Infinite Loop idiot who decided to put a handle on the first iMac—and started the whole luggable trend. No, Boot Camp is just the latest diabolical piece of Steve Jobs's grand plan to dumb us down and mangle our bodies.

This is still a hard decision I do nto want to part Windows, because what puts the bread on my table. I guess I will just end up buying a nice Dell and a nice Mac! Hope my miss will acept this  ;-).

Hack Attack: Simple version control

Very simple source control method utilizing zip and .bat file. This is what I need.

"We’ve all been there: You’re working on a project with several important documents that change daily. Somebody makes some drastic and terrible changes (it certainly wasn’t you), saved them, and now you can’t get the files back to their previous state.

It’s easy to fill our hard drives with more movies and music than we know what to do with, yet we can be so careless when it comes to the files that we invest hours of our lives working on. When your important docs get all messed up, where are your old versions?

It’s about time we put your hard drive space to good use for the documents you’re changing every single day. Today I’ve got a Windows batch script that saves a copy of your working documents into dated folders that give you easy access to previous versions of your most important files."

Read the article @ lifehacker.com

Mario Live!

Check this video. Live on stage.. .the first level of Mario! Pretty Cool!