Organize tasks in Microsoft Outlook

February 2, 2012

To help me better organize my tasks and life, I sorted my task view by due date by subject name by priority.

1 – Select task view settings

View task settings

2 – Select Group By to change the default order of the task list

Select 'Group By' to change the default order

2 – Set the ‘Group By’ order (Default Date, Subject, Name)

Setting the group by order

Finally, here is the order of the tasks I prefer

Task order


Using C# Property to convert ‘C’ #define macro

January 24, 2012

Given these two ‘C’ macros to convert to C#:

#define CFG_FILE(dwChoice) ((dwChoice >> 12) & 0x000F)
#define CFG_ELEMENT(dwChoice) (dwChoice & 0x01FF)

The solution I instituted was to create a class containing the results of the two macros. The macros are placed in set accessor of a property with the result being saved in a private variable (to implement data hiding).

using System;
using System.Collections.Generic;
using System.Text;

namespace TestCfgWord
    class clsCfgWord
        private uint uiTableType;
        private uint uiTableElement;
        private uint uiCfgWord;

        public uint TableType
                return uiTableType;

                uiTableType = (value >> 12) & 0x000F;


        public uint TableElement
                return uiTableElement;
                uiTableElement = value & 0x01FF;

        public uint CfgWord
                return uiCfgWord;
                uiCfgWord = value;
                TableType = value;
                TableElement = value;

To use the CfgWord class:

clsCfgWord CfgWord = new clsCfgWord();

private void cmdXferToStruct_Click(object sender, EventArgs e)
    CfgWord.CfgWord = Convert.ToUInt16(mtxtCfgWord.Text);

    txtTableType.Text = CfgWord.TableType.ToString();
    txtTableElement.Text = CfgWord.TableElement.ToString();

As an example given a value of CfgWord value of 16422, the Table Table is 4 while the Table Element is 38.


Reconnect project schedule to another TFS team project

January 23, 2012

As I’ve been learning and understanding about the capabilities (and limitations [more important!])   of Team Foundation Server, I find myself creating new team projects.  When this happens, I want to reload the team project with my tasks from the MS Project.

To specify a new team project, choose Configure Server Connection in the Team tab in MS Project 2010.  The first thing that Project challenges you with is a sanity check to make sure that is something you really want to do.

Configure TFS Server connection from Project - Sanity check

Next, specify the collection and team project that the MS Project schedule will be connected.

Configure TFS Server connection from Project - Specify collection and team project

Viola!  Your MS Project schedule is now linked to your newly created team project.  Publish the your schedule; these will appear as tasks in team project.


For some guidance: 

Once a plan has been created you need to retain it because not all of the scheduling information round trips with TFS.  In addition, TFS does not send dates back to Project so the project plan will start with today’s date when export from TFS to the project plan.

MS Project owns calendar information, resource units (utilization) and lead and lag information associated with predecessor links.

TFS is the source for all work updates from the team.

Create new TFS team project

January 23, 2012
  • Connect to TFS via Visual Studio
  • On the File Menu, click New Team Project.  The New Team Project Wizard appears.

TFS New Project Wizard - Specify Team Project Settings

  • On the next page, select the process template.  Here, we choose MSF for Agile Software Development

TFS New Project - Select a process template

  • Now, specify the source control. I like to keep the source control in the same tree node as the team project. This is the default setting

TFS New Project - Specify Source Control Settings

  • The final step is to confirm the settings; let the wizard create the project and source control database

    TFS New Project - Confirm settings


Example of youtube censorship

January 18, 2012

Youtube allows shootings, violence, urination on dead bodies, sucking of toes, live births, breast exams, but – if there is a hint of anything sexually suggestive it is banned.

Stop censorship!

Stop PIPA!!

January 17, 2012

In my support of stopping PIPA, please watch this video.  This is not China.  This is not Iran.  This is America!  Innovate not legislate.

Please contact your Senator because a test vote on PIPA will be taken on Jan. 24.    To find our who is your Senator, please visit the US Senate website.

Thank you,


Installing a .Net application on a Windows 2000 computer

January 12, 2012

As part of our commitment to support our customer’s needs, I had to install my .Net application on a Windows 2000 computer.  This provided its own set of challenges that kept me busy for the good part of the morning.


My adventure started when I attempted to run the ClickOnce setup application created by Visual Studio 2010 on the Windows 2000 computer.  I was greeted by the error:

The procedure entry point GetNativeSystemInfo could not be found in the dynamic library KERNEL32.dll.

We will get to the workaround of this problem later.

Realizing that the Setup will not automatically install the .Net Framework for me, I proceeded to install the perquisites manually which are listed here in the order of installation:

  1. Windows 2000 SP4
  2. Security Update for Windows 2000 (KB835732)
  3. Windows Installer 3.0
  4. .Net Framework 2.0

Please note that after each installation, except for the .Net Framework installation, I had to reboot the computer.

Now, finally, I can install my .Net application.  But, this time, I did not run the setup created by ClickOnce.  I ran the Application Manifest, this is the file with the .Application extension as shown below: