Thursday, June 28, 2007

Biztalk 2006 Functoids not working on Vista

Trying to create a spyke on a Biztalk Map, I encountered this weird error.

Somehow, when you run Biztalk 2006 under Vista, the functoids do not get the correct XPath parameters. For instance, dragging a connection from the source schema into a functoid, should put the relative XPath for that element:

This is the correct behavior. Now if I tried to do the exact same thing in my Vista environment running Biztalk 2006, when I drag a connection from the source schema to the functoid I get a connection.

However, double-clicking the functoid shows that there is no XPath information on it.

Of interest is 2 things that are happening right now:
1. The functoid icon does not display the correct link:

2. Now, while the functoid is in this *connected* state, if you try to delete the functoid without deleting the link first, it crashes Visual Studio....!

It seems from the newsgroups that the only way to get this working under Vista is to put the link on the functoid. Then save and close the map. Then re-open the map. Now the links will be there and the functoid will work as expected. (visual clues and input parameters xpath are now visible.)

Tuesday, June 26, 2007

Exam 70-631: WSS 3.0 Configuring - Study Guide

I have passed the 70-631 test.! Now I am the proud owner of a new MCTS:
Microsoft Certified Technology Specialist: Windows SharePoint Services 3.0, Configuring
To prepare for the exam, I have used the Preparation Guide for Exam 70-631 from the Microsoft site.
  • Deploy Windows Sharepoint Services 3.0 (WSS)
  • Monitor Windows Sharepoint Services
  • Configure Network Infrastructure for Windows Sharepoint Services
  • Managed Customization
  • Administer Windows Sharepoint Services
  • Configure Security for Windows Sharepoint Services
I will say that this guide is very close to the test. I think each skill being measured had almost a corresponding question on the test.

One thing that came handy for me was the Help file that comes with Sharepoint Services. This is where you can find it: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Help\1033\PSCONFIG.CHM.

The product team apparently did not spend enough time putting this together. They took the information and made it into a CHM file. No contents, no navigation, no search. But still, it has some good background information.

BTW, hit the BACKSPACE when you want to navigate back on this CHM.

I will recommend to go through this document at least once before taking the test.

Friday, June 22, 2007

Web Service Studio: GotDotNet vs Codeplex

I have been using this tool for a LONG, LONG time, and everytime I have a hard time trying to find the download for it. So I am putting in here GotDotNet: .Net WebService Studio. Coincidentally, there is another version of this tool on Codeplex. It is called CodePlex: Web Service Studio Express. So I have decided to give it a try and compare it against the old version.

Technically, they are both trying to do the same thing: Help you debug Web Services. For instance, if you have a web service that expects a non-primitive type, you can't use the IIS testing.

This is the Web Service Application I'm going to use to compare both applications:

    1 using System.Web.Services;
    3 [WebService(Namespace = "http://Blog.Demo.WebServiceStudio.v1")]
    4 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    5 public class StudioSpyke : WebService
    6 {
    7     public class Customer
    8     {
    9         private string _FirstName;
   10         private string _LastName;
   11         private int _CustID;
   13         public string FirstName
   14         {
   15             get { return _FirstName; }
   16             set { _FirstName = value; }
   17         }
   18         public string LastName
   19         {
   20             get { return _LastName; }
   21             set { _LastName = value; }
   22         }
   24         public int CustID
   25         {
   26             get { return _CustID; }
   27             set { _CustID = value; }
   28         }
   29     }
   30     [WebMethod(Description = "Testing Web Studio")]
   31     public string HelloUser(Customer inC)
   32     {
   33         return string.Format("Hello [{0} {1}] your ID is [{2}]..!", inC.FirstName, inC.LastName,inC.CustID );
   34     }
   35 }

if you try debugging this Service, this is what you will get:
The test form is only available for methods with primitive types as parameters

This is where the power of this application comes into play.

GotDotNet Version:
Using the Web Service Studio original version is no sweat.!. You will get the WSDL, and then it figures out the parameters and the type of parameters. It then allows you to enter the values foreach of the Customer object and it will dynamically invoke this method:

Once you hit the Invoke button, it executes the method and returns the result back.

Codeplex Version:
After compiling the source code, I was very dissappointed with the functionality of this tool. The interface seems nice, but it does not do ANYTHING...! Besides invoking the WSDL and give the user a list of methods.

and then the instructions are in Italian (I think...).

In conclusion, stick with the old version for now. :D

Thursday, June 14, 2007

Outlook 2007 is not responding in Vista

Yesterday, my windows update pick up a lot of updates to be performed to my Vista machine. Being the good MS citizen, I say yes, go ahead. After the reboot (of course there is a reboot.!) my Outlook 2007 keep freezing up on me.

Looking through all of the updates, I've found that one of the updates was the, which tries to fix some of the performance issues in outlook 2007.

This update is related to this other KB article: that states that the size of the PST file might affect performance... hummm...

My outlook.pst file is 131MB. Googling around found a couple of post that directed me to rename some files from the upgrade/import from Outlook 2003 to 2007.

Shut down Outlook 2007, then I renamed the following files:
"C:\Users\awing\AppData\Local\Microsoft\Outlook\extend.dat" [to extend.old]
"C:\Users\awing\AppData\Local\Microsoft\FORMS\FRMCACHE.dat" [to frmCache.old]
Open Outlook 2007 back, and now it seems to be working fine again. I have not experienced any more Not Responding hang ups.

oh well.

Tuesday, June 12, 2007

Broken Window Paradigm...

Sometimes we forget the human factor. As a professional I have dealt with people from many layers above me (specially me, I am the bottom feeder in a fish scale). Recently I have encountered the Broken Window Paradigm., A living, real-life broken window..!!

Perhaps you are used to seeing the broken window and keep reminding yourself that one of these days this would all magically go away. Then the days turn into weeks, weeks turn into months, months turn into years. Next thing you know, you have been living with this broken window for so many years that you don't realize it is broken, you just take it for granted.

Then comes new people. They see this broken window and inquire about it. What do you say? Don't worry, I will deal with it and fix it. Then you developed rules to which you try to prevent anyone from looking into this window. To you perhaps this is just another way of life, to the new people, this is shocking behavior, some might even call it un-professional, un-responsible, un-heard of, etc, etc....

When small rules are disregarded, other things start happening, and they will happen at a very high speed. When it becomes intolerable, then it might get to the point that you would just move and start over, rather than getting a new window.

Perhaps, you are attached to this broken window for so long, that you start bonding with it and don't want to replace it. Sentimental value? As a rule of thumb, a window is cheaper to replace than replacing the whole wall, or for that matter the whole house. So why living with a broken window?

Am I the only one that has not drink from the well?

Monday, June 11, 2007


I must admit, I like to see new Technology all of the time, however, after seen this demo, I was completely blown away.

First watch the video at TED [Technology, Entertainment, Design] Conference. Then head to the Photosynch site and hit the Try the Tech Preview button.

After clicking on the pictures and be blown away by the fluidness of the application, don't forget you can zoom in/out, and drag the picture around as well.!!

They explain how they put 2 separate pictures together in here:

I can't wait until Microsoft Research Labs release more collections, or allow a person to put his/her pictures into the collection.

One word to describe this technology: AWESOME...!!!

Sunday, June 10, 2007

Outlook 2007 Error

My laptop ran out of battery juice last night. This morning, when I reboot it and try to access my email this is the dreaded message I got:

Cannot open your default e-mail folders. Errors have been detected in the file c:\Users\awing\AppData\Local\Microsoft\Outlook\Outlook.pst. Quit Outlook and all mail-enabled applications, and then use the inbox repair tool (Scanpst.exe) to diagnose and repair errors in the file. For more information about the Inbox repair tool, see Help.


I haven't backup my PST file since I installed Vista x64. Fearing the worst, I followed the instructions and found the ScanPST.exe utility. BTW, this utility can be found at "C:\Program Files (x86)\Microsoft Office\Office12\SCANPST.EXE"

When I ran it, this is what it found:

After hitting the the details button, hoping that the pain will go away, I see this other message:
Internal errors were found in this file. They must be repaired for this file to work correctly.

Ok. So crossing my fingers and trusting that this will fix my email I hit the repair button. The process goes through several steps: checking for consistency, looking for lost data, checking Folder and Items, etc.

Finally, it ended with a Repair complete.

YEAH.... My outlook is back.! Thanks Microsoft.. My only concern is that there might have been some email lost in the repair. Oh well, if I don't reply to your email this week, you at least know why... ;)

Tuesday, June 05, 2007

WSS 2.0 upgrade to WSS 3.0 Gotchas

To complement my first publication on ASPAlliance, I have decided to start posting gotchas that I have encountered during the upgrade migration from WSS 2.0 to WSS 3.0 to MOSS. Read my article at It is about using Biztalk 2006 with Windows Sharepoint Services 3.0. Dont forget to rate it if you like it. ;)

WSS 3.0 seems to be a lot more robust and a lot more strict in general.

Gotcha "1" or '1'
In WSS 2.0 you can add the following Processing Instructions (PI) to your assignment shape in a Biztalk orchestration:

    3 <?mso-infoPathSolution PIVersion='' href='http://evo/Forms/template.xsn'?>
    4 <?mso-application progid='InfoPath.Document'?>
    5 <?mso-infoPath-file-attachment-present?>

However, after upgrading to WSS 3.0, these set of PI's are no longer valid. The file will show up on your sharepoint site as an XML document, but the ICON wont be associated with an Infopath application (i.e. Legacy_WSS_2.xml)

So all you have to do is to put double quotes around the PI's for WSS 3.0 to recognize the document as a valid Infopath type (i.e. Converted_WSS_3.xml)

    3 <?mso-infoPathSolution PIVersion="" href="http://evo/Forms/template.xsn"?>
    4 <?mso-application progid="InfoPath.Document"?>
    5 <?mso-infoPath-file-attachment-present?>

Notice how the icon reflects the association. If you try opening the file named Legacy_WSS_2 file, this is what you will get:

So if you are dynamically putting the PI in an Infopath, make sure to put escape chars around the double quotes as I have explained in my article.

Sunday, June 03, 2007

Volunteering = Priceless

It's been a grueling 7 weeks. My son was initially talking to some of his classmates about him learning how to write computer games. Talking to one of the moms (Lisa L.), she suggested that maybe I could offer to teach the same to some of the kids at school. Well, to make the story short, I agreed to give it a try. After going through all of the pre-requisites to become a volunteer (Protecting God's childrens seminar, finger printing, etc.) I was finally slated to start teaching kids how to write computer games.

I have chosen Kids Programming Language for its ease of use and fun approach to programming. In the beginning, discussing with Mrs. Frecker (Computer Teacher) about the target audience, we decided to open it to students from the 4th to the 8th grade on a first-come-first serve basis. So we open it to the first 35 kids that sign up (there are 35 computers in the computer lab). To my surprise, we had over 20+ signed up by the end of the first day after the invitation flier went out...!!

This was an after school activity so all of the logistic were worked out by the wonderful Mrs. Frecker and the help of Ms. Taylor. I got the list of kids and the spread of ages was very large. Using this information, I came out with a temptative schedule that would try to fit all of them, and at the same time get the concept across.

The schedule was:
  1. Get familiar with KPL interface (Hello world..!)
  2. Get familiar with KPL.
  3. If-then-else
  4. While Loop
  5. Sprite animation
  6. 2-player mode interaction
  7. Interacting with background

How to introduce KPL to kids? Well KPL's interface is just like VStudio 2005.

It is all structured in one single file. All programs start from the MAIN routine. It even has intellisense.!

The assignments that I gave the students were nothing more that scavenger hunts. I modified the original games and added new functionality. I then proceed to delete some of the code and have the students follow instructions to find where the missing code was, and to type the code back in.

The purpose for this approach, was that they would get familiar with moving around the KPL interface and typing code. Fortunately KPL is not case sensitive. However, kids very soon discovered that spaces and "_" are not the same. ;D

They (Morrison Schwartz) did an excellence job at making KPL very simple to write games. Once you pass the intellisense and the the VB-like syntax, then loading a sprite and animating it, is just as easy.

Explaining the concept of multiple frames in a single sprite

To get this sprite to animate, this is the code needed:

Handling User input is very straight forward:

As you can see, there are already constants defined.

Sprite intersections and IF-THEN-ELSE logic. To explain the IF-THEN concept, I've used a very useful system function called SpritesIntersect. This function takes on the name of 2 sprites and return True/False if they are touching at any point. This function makes it very easy to explain graphics collision without getting into all of the calculations behind. The code that I used to explain this logic was:

it was not very hard to see their faces *clicking* right away with this concept.!

Lessons Learned:
  1. Kids can't type that fast: To this end, by week 5, I start dividing the labs into 2 parts. One that was mandatory, and a *bonus* section. The mandatory was for them to learn the main focus I was trying to convey. The Bonus section was for those advanced enough that wanted to get some more functionality.
  2. Keeping kids attention is hard.! I discovered very soon, that some of the kids did not wanted to do the labs. Instead they just wanted to go on their own and change the program and the sprites by themselves. This was probably the most difficult part to handle. Specially, since I had a wide range of ages in the class. So I spent a couple of hours every night prior to the class, customizing some of the games that came with KPL. For instance, the racing cars. I had modified it in such a way, that after you typed in your assigment, there will be a *cheat* code that will allow your car to be driven at 3x the speed of the other cars. So while you could play the original racing car, there was an incentive to do the lab, so that you can get the extra capabilities.

In average, I have spent close to 3hrs every night for the past 7 weeks just to prepare the labs and the concepts. However, at the end of week 4 my hard work was finally rewarded. While waiting for some of the students to ask for assistance in finishing the lab. We saw a couple of students from the 4th grade making changes to some of the KPL original games. It was just awesome to see them moving around the program with confidence. Initially, they were afraid of changing anything. However, by now they are changing the sounds, colors, words, sprites, sizes, scales, etc.

Hours spent volunteering programming classes: 7.0 hrs.
Hours spent becoming a volunteer: 6hrs
Hours preparing for classes: 20+ hrs.
Time spent discussing how to write a computer game with 10-to-14-year-olds = priceless...