#Google Analytic Tracker


Apr 17, 2009

Windows 7 - Problem Steps Recorder (psr.exe)

This tool maybe a godsend for the software developers.  It enables the end users record their problems. This helps a lot because customers aren’t usually good when expressing their software problem:


Here is how it works, you click on the “Start Record” button, and you try to reproduce the problem of your application. Isn’t it simple! Once you get to the problem, you can click “Stop Record” to end the record. You can also “Pause” if you need to do something else in the middle. It will create a zip file that contains a .mht (MIME HTML). That’s easy!

Once you open the .mht in your web browser, you would see something like this:


Basically, the .mht files contains screenshots for each user actions. Notice that there is a green border around the Windows Live Writer, because this the current window user is interacting.

Each screenshot comes with a description of what the user was doing. For example:
Problem Step 9: User left click on "OK (push button)" in "Options"

At the end of the file, you will see this detail description:

The details contains all of your user actions. This definitely going to help us developers a lot!

Windows 7 - Application Compatibility with Shims

One of the biggest concerns when user migrate from one OS version to a new version is program compatibility. Since I am not a Vista user, I don’t know what is would be like if I migrate from XP to Vista.

However, today, I learned a great tool that come with Window 7. It is called the Application Compatibility Toolkits. You should able to find this tool under the “Microsoft Application Compatibility Tools” folder.


Microsoft has come up with a lot of “Shim” to help old applications run in Windows 7.

In addition, Windows 7 has this mini-database that contains a great number of applications (5832 apps when I looked at the 6.1.7000 build) that have tested, and verified that can be run in Windows 7.

Here is an screenshot of the Shims Windows 7 has for “Command and Conquer – Red Alert 2”. It is interesting to the see the applications that Windows 7 team has chosen to test so far.  The shims are displayed on the right panel (i.e. EnulateSlowCPU, VirtualzeHKCRLite, etc…)


I bet the list will continue to grow before Windows 7 is released and afterward. However, if you happen to have an application that doesn’t run properly in Windows 7, you can run Standard User Analyzer tool to figure out what you need to get your application running.


Once you specified the execution path for your application, you can click the Migration menu item. You should see something like the following:


The analysis will show a list of suggested shims that you can apply to your application if you start your application.

There are 353 Shims (Compatibility Fixes) in the build 7000.


In addition, it comes with 46 Compatibility Modes, each contains a set of Compatibility Fixes you can apply to your application.


Once Windows 7 come out, we will see how good these shims really work.

For developers, one big reason why most of the programs failed to run in Vista, or possible Windows 7 is because they hardcoded Windows Version number check for enable/disable program features. It may not even run if the version is not correct.  MS suggests we should avoid checking windows version number when developing your applications. Another thing to note is that Windows 7 version number is 6.1, not 7. That’s because MS hopes user can run Vista (6.0) programs under Windows 7. So, be prepare to update your application to run in Windows 7!

UAC in Windows 7

From what I know about Windows Vista, you can only turn the UAC (User Access Control) either on or off.  I definitely believe most of the developers and advance user would have turn it off completely. Now I am thinking about this Apple commercial

Fortunately, Windows 7 has fine tuned the option in UAC. There are now 4 levels of UAC you can set.


1. Always notify me when:

  • Programs try to install software or make changes to my computer
  • I make changes to Windows settings

2. Default - Notify me only when program try to make changes to my computer:

  • Don’t notify me when I make changes to Windows settings

3. Notify me only when programs try to make changes to my computer (do not dim my desktop):

  • Don’t notify me when I make changes to Windows settings
  • Not diming the desktop might allow programs to interfere with the User (i.e. automatically click Yes for your dialogue box)

4. Never notify me when:

  • Programs try to install software or make changes to my computer
  • I make changes to Windows settings

After using Windows 7 for a couple of days, the default settings feel like the security set up in Mac OS X.

Administrative Account Changes

In the past, we all NEED to be in the Administrative group to do pretty the simplest task in Windows. Now, it is a bit different.

When you are in Administrative group, you run as Standard User.

The idea is that administrator should not need administrative right during normal use of Windows. So what’s the different if you are in Administrative group?

  1. Standard User – when you need to administrative right, you will required to type in an admin password.
  2. Administrative User – You just need to click Yes/No to confirm that you want to get your administrative right.

This is probably more security than simply having administrative right all the time. You will be more conscience when the program asks you for administrative right. Saying that, us developers will need to more work. Our software should requires the minimal right to run your program, unless your program needs administrative right.

Apr 16, 2009

My First Windows 7 Experience

For awhile, I had been avoiding of trying out new OS. Windows XP works so well that I rarely care about other OSs. Until last year, one of my colleges, who is more or less a Mac fanatic, talked me into getting a Mac.  After many months of indecision, I finally brought a MacBook Pro, and got to experience what is like to use a Mac.

Mac OS X has many nice features that I wish to see in XP, but at the same time, I struggled to understand some of the UI design  philosophies behind Mac OS X. I will talk about this concern in another time.

Of course, there is Windows Vista. Its bad reputations on the medias deter me from try it.  I tried it one time, and the UAC pops up for pretty much for everything I do. Even opening your Control Panel would require your permission.

This week, I got a rare opportunity learn about Windows 7 in a 3 days training session. Yes, this is for software developers! There are hand-on-labs to do and you get to try to do some programming with the Windows 7 features.

So far, I like Windows 7 beta a lot. Here are some of the things that I like.

  • Taskbar
  • Libraries and Federated Search
  • Background Services and Tasks

In addition, the session also covers Power Management, Multi-Touch and Ink, and the obvious the Windows Ribbon (Office Ribbon).

Snipping Tool

But first, I have to mention about this tool that I find in Windows 7 (Ultimate), the Snipping Tool.


This tool obviously does more than your typical “Alt-Print Screen”. You can do capture in these 4 modes:

  • Free-form snip – allow you to draw around an area
  • Rectangle snip – a rectangle screen capture
  • Windows snip – allow you to select a windows and do a screen capture on it
  • Full screen snip

In addition, you can draw and highlight the captured screenshot.



One major improvement that I find in Windows 7 compare with XP is the Taskbar


  • Icon display only, no text, it saves you space
  • Activate your program right from the task bar. There is no quick launch.
  • All related windows are hidden in a single program icon, it only shows the running and pinned programming.

So, how do you see your opened Windows? You can simple hover your mouse pointer over the executing program on the taskbar and it will display all it related windows in a thumbnail.


In terms of programming, you can dictate what you want to display.


The taskbar get even better, than you put your mouse on the program thumbnail, all the other windows will become glass, leaving only your selected window.


In addition, you can close your windows with the little red cross button on the preview screen.

Notice that if you have multiple windows open, you can see the icon look like a stack:


Other things including the following also make the taskbar attractive:

  • Thumbnail Toolbars
  • Progress bar icon
  • Jump List- right click on the icon

The item in the Jump List and Thumbnail can be customized though Windows 7 API.


Ribbon from Office 2007 has comes to Windows7. Both Ribbons look very similar. My question is why not just rip the Ribbon out from Office.

Windows 7 Paint:


Windows 7 Word Pad:


Oh you can’t use Ribbon in Windows XP. Your application will not be able to run under XP if you have Windows Ribbon. For developers, this make our life a lot tougher. You either need have 2 different version of your program, or buy a third party ribbon that works in Windows XP.


Another feature that I like is the Library feature. The concept is similar to Unix’s links. This is like a virtual folder where you can put whatever you want in it.

The idea is that you can use the library to “collect” other folders’ contents. For example, if I have a number of folders storing pictures, I can add these locations to the library and I can get a single view of all my pictures. This is similar to your Windows Media Player, or iTune where it scans all your music, videos and pictures into an organized folder view.

Libraries and Preview functions:


You can also create your own libraries:


One thing to note, my college and I have some concerns where the users may get confuse on how the folder system works. Note that if you delete the file from the library, it will delete it from your harddrive, which is not the same as a link.  We will have to wait out the public feel about this feature.


One thing I notice that that Windows 7 is not as annoying as Vista. UAC only shows up when I try to run program in administrative mode, or when I install new programs. Opening your Control Panel doesn’t need your UAC permission, yeah!

Boot Time

Another thing I should mention is Windows boot time significantly faster because:

Less start up background service – Service that not needed are removed.

Delayed Auto Start service – Service that doesn’t need to start at boot time.

Service can start up by Trigger – A service doesn’t start up unless an event occurs.

These strategies help Windows 7 Start up faster.

Software Development

I never do any COM and unmanaged programming (C++) in Windows. Fortunately, Windows 7 SDK will comes with managed code for me to do Windows 7 programming in C#.

However, this SDK is not the final product from Windows 7, so use it at your own risk. .NET 4.0 should include the API needed to program in Windows 7.


There is a lot I want to talk about Windows 7, but I will probably stop here for now.  In some ways, I feel that MS took a number of UI design idea from Apple.  However, if it works, why not use it.  One of the things I learn from the training is that programming in C++ (unmanaged) is a lot more troublesome compare with C# (managed). Am I glad I am working in C#!