Wednesday, May 27, 2009

My Developer Environment

I’ve read Steve Smith post regarding Developer’s Machine.  Great post.  Got me thinking about my development environment…

Background: to fully understand the whole lifecycle of a solution, you need to know not just Unit test or integration tests. But also about  the backend/infrastructure where this application would eventually live. 

For instance, I have been involved in several integration projects at different clients. The solution calls for situations that involved multiple users, multiple roles, multiple permission profiles.  Yet, they only provided me with a SINGLE account to their environment to fully test my application.!

Being an integration geek, you need to have a bigger bag of utilities to help you being certain that your app works as intended.  IMHO, you not only need to know about IIS settings/security, but also about AD, Clustering, SQL roles, etc.  And it is not enough to just READ it from a blog.  You need to experienced it and work with it.  You need to be a JOAT.

Ideally, like Steve’s view, the Developer workstation will be both mobile and desktop.  It is nice to be able to take that mobile environment with you.  However, most of the times while working at home, I would trade my portability for some speed and flexibility. I like desktops with Dual screens (wish I had more than 2 monitors… :) and full size keyboards. I like to feel a mouse and not those annoying keypads/touchpads. Yes, I do HATE touchpads…!

I had built my own controlled environment (SandBox).  This is so that I can experience what the network operator/admin that is going to inherit my application would experience. Under this controlled environment, I can test the full cycle of my software (deployment, running, integration) . Nothing worse that going into a client’s environment and say: “… but, it works on my machine…”

I know that now a days, with VM’s (VPC/VMWare), building a Sandbox environment is easier and cheaper.  However, there are pros/cons for virtualization vs real machines. I feel that my investment was well spent.  My future upgrade will be to beef up my SQL server (still keeping it as a real machine).  Then put a couple of VM’s on the app and the web servers to test NLB and some Farm features of BizTalk and SharePoint.

CIMG6596 old CRT 14" monitor. No LCD here… :(
CIMG6592 I selected 4u cases for my servers, since they can fit  standard hardware (MB, Power Supl., video, nic’s) = cheaper…

4U – App Server
4U – SQL Server
2U – Web server
Guess which case I bought first…. ;)
CIMG6580 16-Ports Switch used to be plenty of ports over 5 years ago… :(
 CIMG6581 LAN lines.  Rest of my hardware ( 3 laptops, NetBook, Wii, NDS’s) are all on the Wi-Fi.
CIMG6573 Power master switch for all servers.
CIMG6587 KVM switch.
CIMG6595 My mini-keyboard. Love it…

 

BTW, I think building your own computer is still the way to go.

Friday, May 01, 2009

PANAMA 2009 Elections: RERE, TE, PLAGEL, CPP

Having dual citizenship give me the opportunity to choose and to compare 2 different ways of voting. I casted my vote for the most powerful man of the free world back on Nov. 2008, and now I have the privilege to influence who will lead my Querida Panama for the next government.

Since most people I know in the US have no idea about presidential elections outside of the US, I want to share a little bit of knowledge.

There are 8 political parties (as of today ;)  in Panama.  The main one is the PRD (Partido Revolucionario Democratico). It stands for Revolution and Democracy.  BTW, it is the same government that we had with Noriega. All of the other parties are opposition to this one.  Each of them claims to be different because of  X-Some facts/view. 

People line up with the political party that they feel, closely matches their views, concerns.  However, if you work for any government institution it is expected that you lined up with the PRD, if you don’t your job might/will be at risk.  All of the parties put their candidates up and start the political satire that occurs everywhere, in which they try to convince the audience that they party is better than the other ones.

This all seems very similar to the US elections.  Start with the flow of information on the Radio, TV, Newspapers (negativity and lies).  However, in Panama, they also do Posters, Billboards, Musical Tours. There are about 3.5 million people in Panama according to the CIA world factbook. Since the population is so disperse, one of the ways to get your message across is to *tour* the small towns.  What is different about this, is that they bring what is called MURGAS to each city.  It is basically a band playing folklore music. There is plenty of free drinks and dancing. Most of the times they close the roads and make the whole road a big staging area.

DSC_1105 Another of the ways they publicize their slogans.

People rent their cars/time to drive around small towns and playing loud messages over their megaphones. ANY time of the day.!!

 

One thing you need to know about the Panamanian culture, and all Latin cultures for that matter.  We are very centric on socializing and having a good time. So the Murgas, attract the majority of the local audience, and if you have a good time with this candidate’s murgas, then voting for this candidate will bring more of the good time, right?… ;)

This is what an official ballot looks like. You need to select ONE entry only.  As you notice there are only 3 candidates to president.  Just like in the US (Rep., Dem., Waste-your-vote).  Now, we started with 8 political parties, and as the election date gets near, each party aligned with the candidate that they think will win. 

CIMG6555

In Panama, there is still a lot of bribery. (just like in the US, but not as organized ;).  So if you are in one of the political parties that have won, you can expect to have favoritism over jobs and influences once the new party takes over.  One step further, you can even put your own people on jobs that are already filled by people from the losing party..!  And this is regardless of qualifications/tenure.  It is all about who you know.

image
Molirena
image
Union Patriotica
image
Vanguardia Moral de la Patria
image Partido Popular
image
PRD
image
Partido

Panameñista

image
Cambio Democratico
image
Partido Liberal

So you see, there is LOTS of thing riding on your vote. Not just the future of your country, but also your vote affects DIRECTLY your future.  The percentage of people willing to vote in Panama is a LOT higher than in the US for that matter.  In the US, we get to elect the most powerful man in the world, and yet I see many people that are not even excited about having this privilege.!

Hope this little bit of info have brought you a new insight into exercising your right to vote.

BTW, there are LOTS of acronyms used in Panama.  TE: Tribunal Electoral.  CPP: Centro de Procesamiento Postal.  PLAGEL: Plan General de Elecciones. RERE: Registro de Electores Residentes en el Extranjero.

Thursday, March 19, 2009

Exam 70-541 – Developing for WSS 3.0 Study Guide

One of my goals for 2009 is to get certified in SharePoint development. I have found that you can get some good/cheap/professional online training from Microsoft Learning.  If you go to this link Microsoft eLearning Collection and follow the instructions, you can obtain the e-learning promotion code.  Then you get to use this code to choose ANY training material for only $35.00.  I have chosen the Collection 5385, which coverts all of the topics needed for the 70-541 test.

  • Course 5386: Working with Server and Site Objects WSS 3.0
  • Course 5387: Programmatically Securing WSS 3.0 Sites
  • Course 5388: Programming Lists and List Events in WSS  3.0
  • Course 5389: Managing Documents and Libraries in WSS 3.0
  • Course 5390: Working with List Metadata and Content Types in WSS 3.0
  • Course 5391: Customizing Navigation and Layout in WSS 3.0

Their course is very interactive. It contains videos, labs, code snippets, games, etc

image

Once you finish with the course, then you can start doing the interactive labs. Microsoft gives you one full hour to use on the virtual labs.  I’ve found that this is plenty of time to complete the labs, if you don’t do the extra assignments.

image

The only issue I have with the labs, is that I wish I could get a hold of the solution code that is being used in those labs.

Overall, I did like the simplicity of these labs.  I would highly recommend them for anyone looking to pass the exam 70-541.

I took the 70-541 test today.  It is a 3:00 hour test.  According to my calculations, I needed to get 41/59 correctly answered questions in order to pass. I did get more than 41 questions correctly answered. ;)    At the end of the test, I have but 22 minutes left, time flies when you are having fun.!

Hints for the test?  Setup your own VPC and a Domain Controller, so that you can go explore web parts and Document Workflows a little deeper than what they offer on the eCourse.  It certainly helped me a lot… ;)

Thursday, February 12, 2009

How to Synch Google Calendar with a SmartPhone Running Windows Mobile without a Computer.!

Finally.!

image

I just discover that Google has a setup that supports the Microsoft Exchange ActiveSync protocol to provide synch between their products and your Windows powered device. Follow the instructions in Set Up Your Windows Mobile Phone.

I did this configuration without having to craddle my SmartPhone to the computer.  I have the Motorola Q9c running Windows Mobile 6.1.  On your phone, open up  ActiveSync.

image

select Menu

image

select Add Server Resource.  After this step. I followed the instructions on their site. [I repeated them here for posterity]

image

add your username and password, leaving the domain field blank

image

Now on the next screen, I selected the Calendar option ONLY.

image

It was giving me some errors when I selected tasks, email, and contacts.  I think it does not handle tasks created in Outlook.

Click on Finish and Voila.!  It synchs wirelessly.!

image

Once it had synch all of my calendar entries, I went back and added the option to synch my Contacts.  The one drawback to synching your contacts for the first time, is that you have to go to Gmail and categorized them all.  And this is not fun when you have too many contacts…

image

This is very cool.  I have a share calendar with my wife and now we both can add/delete/modify entries into it, and it is REAL TIME synch.

Tuesday, February 10, 2009

Enterprise-in-a-Box Series – Creating users in an AD

When dealing with Enterprise applications, you often need to use VM’s to try to replicate the environment where your solution is going to ultimately live on.

For SharePoint and BizTalk development, the best way to ensure that your solution will deploy and run on the target environment is to create a Virtual Environment that closely resembles what your customer has.  Besides the obvious benefits to the IT department (less heat, more CPU utilization, etc, etc.), there is the hidden benefit of efficiency and less integration bugs on a Virtualized environment.  How many times you have developed the “perfect software”, and when try to deploy to the QA or Production environment, you’ve spent lots of hours troubleshooting security permissions, user profiles, IIS settings, SQL permissions, Service account not having proper rights, etc, etc. I know I have had my share.!

To setup a Virtual Enterprise from scratch, the easiest way is to follow the steps by steps directions from Microsoft: Using Microsoft Virtual Server 2005 to Create and Configure a Two-Node Microsoft Windows Server 2003 Cluster

I recommend that you use a 64bit Operating System as a host to run the Virtual Server.  I have used a Dell D820 running Vista x64 with 4GB of RAM.  I have found this configuration to be very responsive and not very expensive.

Let’s assume that the solution for my customer will have 3 users, and each of them have different roles and responsabilities.

Role

User

First

Last

email

user asmith Aaron Smith asmith@contoso-local
supervisor jsmith John Smith jsmith@contoso-local
CEO msmith Michael Smith msmith@contoso-local

 

Once you have your virtual environment setup, it is time to add users and roles to get your environment setup. I have used Neil Thompson’s script to create AD accounts programatically.

Here is a slightly modified version of his script:

image

image

As you can tell, now I am able to programmatically add users so that I can test. One more benefit of this Enterprise in a box, is that once you are done with it, you can bundle all of the configuration and setup to your integration team.  No more manual configurations.!

Noticed that regardless of what my solution does, or what the problem is. I would be able to test and troubleshoot my solution under 3 separate roles.  There is no need to deploy to production for *real* users to test if my application does what it is expected to do.!

Wednesday, January 14, 2009

CodeMash 2009

Once again this event was like a good wine.!  The older it gets, the better and more concise it becomes.!

Just when you think, how can they improve on something that is already great? The organizers of this event did an absolute outstanding job (Jim, Dianne, Jason, Brian, Jeff, etc).

Pre-Compiler: oh yeah, I got the most of this session.  In the spirit of CodeMash, I have decided to try something out of my comfort zone.  Last year, I tried Ruby.  This year, I have decided to give Groovy and Grails a try.  I immerse myself for a FULL day of these 2 technologies.  While I can't say I am a Groovy developer at the end of that day, I have a much better understanding of the technology.

KidzMash:  One word to describe this:  INSANE.  This is my 2nd year volunteering for this event. [CodeMash 2008].  Learned a few new things from the experience last year.  This year, I've decided to make it a little bit more interactive, so I've packed 4 laptops with Scratch.  Out of those, one have BabyMash installed, just in case there were some young developers in the making there (<6yrs old).   I was completely blown up by the number of kids we have:  35 kids.!!  Thankfully, Sarah Ford and Michelle and another mom  in there step up to help by providing extra laptops and balloons animals.!  Hopefully, I was able to influence those young minds to become a future RIA developer.

Open Spaces: I've got a lot of value attending these.!  I was just being a fly-on-the-wall. Intimidated by the sheer brain power of those people talking.! Looking forward more Open Spaces.!

Sessions:

  • Scala with Venkat.  Got a candy with the infamous: "do I need to ask a question to get a candy?…" ;)
  • Scaling of ASP.NET apps with Richard Campbell.  The man is a legend.!
  • WCF with Keith Elder.  Good refresher course.
  • User Experience with Josh Walsh.  Solid session.  Very good presenter.  Even though I have not worked on end user apps for a while, this session was a very good background information.

KeyNote: This might be the only portion of CodeMash that I have to skip.  Last year's keynote with Scott Hanselman was awesome.  Venkat was a terrific follow up this year.!  His analogy of how writing unit test compares to doing physical exercise was right on target.  All of the other keynote presenters were good, but they just could not capture my attention.

Negatives:  yes, there were negatives.

  • Too many repeated sessions or content was very similar to another talk. Open spaces filled that void. :D
  • Keynotes were not hitting the CodeMash audience (except Venkat… ;)
  • Evaluation forms.  Why aren't the evaluation forms online instead of paper?  It would be awesome to fill them up online.  Instant feedback.!

Moments: CodeMash is also about networking with others, and I use Breakfast, lunch, dinner, party, water park, etc to meet someone new.  I love the small conference atmosphere where you don't feel like another number in a group.

  • Met developer that work for Overdrive.  They developed the application that I just installed last year to get audio books from my public library into my Zune. And you know, they are based on Akron, OH.!
  • My Twitter count went up by 10.
  • Carl Franklin rocked the house on Thursday night.!
  • Sponsors ads during meal time. FTW..!!!

Looking forward CodeMash v.2010 next year

Wednesday, December 03, 2008

How to get Hyper-V to read corrupted VHD files

We have a lots of projects that are virtualized.  When we finish with a project it is common practice to de-hydrate the servers and put them away.  For one of our customer's project, we followed this process over a year ago.  Lots of things have changed in the past year. First, we moved from one building to a different building.  On the process, we added new servers, clean up some old AD's, change OS's (Windows 2008 DataCenter... oh yeah.!), etc...

Now trying to hydrate back online this one project's environment with all of the infrastructure changed was a challenge. For this enterprise application we have Oracle, App Servers, Web Servers, Test Servers, etc.

Out of all of the VHD's that we needed to bring back, only 2 were recognized by Hyper-V.! Doing a check on the rest of those VHD's gave me the file or directory is corrupted and readable message... :(

image

This is how to check for integrity using the Hyper-V. Add the vhd file to the IDE controller and then hit the Inspect button.

image 

[Main Instruction]
An error occurred when attempting to retrieve the virtual hard disk "F:\hydrate\Project1-Agent.vhd" on server XXX.

[Content]
The file or directory is corrupted and unreadable.

At this point, if we try to recreate all of the settings/configurations stored on those servers will take days.! Some entries in the TechNet forums mentioned that they got it working by re-opening the files on VirtualPC. This is the way I got my corrupted vhd's to work:

First, I create a new Virtual Machine with a new HD.  Then went to Settings|Hard Disk 1 and loaded this corrupted vhd file.

image

There you will find the Virtual Disk Wizard. Click on it, go through the prompts and select the option to Edit an existing virtual disk.

Then choose to Compact it.  The reason for this, is that if you select the Convert it to a fixed-size virtual hard disk, the wizard will make the new hard disk EXACTLY the same size of what content is written at the moment in it.  Which means, if you have allocated 20GB to this disk initially, and have used 12GB of it.  Now instead of having a 20GB with 8GB free, you ended with a fixed 12GB hard drive with NO SPACE LEFT on it.

image

On the next screen, I save the file under a different name for precaution. Now click next and wait. It will take about 1hr for a 28GB file.  Once this process completed, I copied the new file back to our Windows 2008 server, load it on Hyper-V and it was recognized.!

Success.

Wednesday, November 12, 2008

Windows 2008 DataCenter Mouse Blues

Working with the Windows 2008 Datacenter version, I had to create a couple of Virtual machines. Once I remote into that server, and created the virtual machines, I've found out that connecting to those VM while using Remote Desktop causes the VM machine to not recognize the mouse.!

I keep getting this annoying dialog box: Mouse not captured in Remote Desktop session.

Of course the content help wasn't helpul at all:

The mouse is available in a Remote Desktop session when integration services are installed in the guest operating system. For more information, search on 'integration services' in Help.

image

if you look at the bottom of the Virtual Machine Connection screen you see this

image

I have tried removing the virtual machine additions, adding the Hyper-V Integration Services, etc, etc.  It is still did not work. I found a blog post from Maarten van Stam that talks about making the VM look at the HAL by adding an extra CPU to the VM.  At this point, I'm very aggravated that I don't have a mouse and keep having to use TABS and SHIFT-F10 keys all over, so I give it a try.

After adding an extra CPU, rebooted the VM, and now my mouse works.!  WTF?  I remove the extra CPU from the VM, and confirmed that in fact the mouse still works.

One more thing, you can get your mouse working if you install the Hyper-V Management Tools on your Windows Vista, here is the MSDN article that talks about it http://support.microsoft.com/kb/952627.

Thursday, October 30, 2008

How to configure a MOSS VPC Development image

On the Microsoft TechNet site, there is a couple of articles on how to set up a MOSS environment. Following those steps will give you a good environment.  However, I have found that there is not that much control over the naming of the databases.  This is fine, but then you have to come back and do some extra steps to rename them correctly.  These are the steps that I follow to avoid having to come back and do all of that work.

I have already configure a VPC image with Windows Server 2003, SQL Server, Visual Studio 2008, etc.  I have also set it up as a Domain Controller (DC) and create a couple of accounts (SharepointService, SQLService, etc).

There are instructions on TechNet on how to setup the SQL Server before setting the MOSS environment: Prepare the Database servers. Follow those steps.

Now start the MOSS setup, select the Advance installation

image

I choose to install the Web Front End, since it gives me the most flexibility

image

Once this step has finished running, this is a good point to rename the Content DB's.

image

Do not run the configuration wizard yet.

image

Uncheck and close this window. Now use the psConfig utility, which it is available on this location:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN

parameter value
Server MossOnlyAW
Domain MOSSBSG
User SharepointService
Password *********
Config DB name STS_Config
Admin Content DB name STS_AdminContent

this is the parameters to configure the initial Databases

psconfig.exe
  -cmd configdb
  -create -server MossOnlyAW  
  -database STS_Config
  -user MOSSBSG\SharepointService
  -password <myPassword> 
  -admincontentdatabase STS_AdminContent

Run this from the command prompt window and you will get the following results:

SharePoint Products and Technologies Configuration Wizard version 12.0.4518.101
Copyright (C) Microsoft Corporation 2005. All rights reserved.

Performing configuration task 1 of 3
Initializing SharePoint Products and Technologies configuration...

Successfully initialized the SharePoint Products and Technologies configuration

Performing configuration task 2 of 3
Creating the configuration database...

Successfully created the configuration database.

Performing configuration task 3 of 3
Finalizing the SharePoint Products and Technologies configuration...

Successfully completed the SharePoint Products and Technologies configuration.

Total number of configuration settings run: 3
Total number of successful configuration settings: 3
Total number of unsuccessful configuration settings: 0
Successfully stopped the configuration of SharePoint Products and Technologies.
Configuration of the SharePoint Products and Technologies has succeeded.

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN>

now if you check your SQL server, you will see the 2 databases that were created, it also went and added that SharepointService account to the valid logins in your SQL Server.

image

Now go ahead and run the SharePoint Configuration Wizard. It will pick the databases that you have created, do not disconnect from this server farm:

image

I like to specify a port number that is easy to remember

image

Gotchas:  You might run into an error if the service account does not have enough rights:

Server Error in '/' Application.
--------------------------------------------------------------------------------

The current identity (MOSSBSG\SharepointService) does not have write access to 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files'.

so open up this folder and add the SharepointService account to the list of  authorized users. Give this account access to modify.

image

Close the browser and re-open the Central Administration page. You can now start to configure your MOSS sites.

Friday, October 17, 2008

Certification vs Google Developer

 

I have seen this thread so many times.  Those who don't have certifications always batching those that have them. Yes there are lots of paper certs developers out there.  Braindump sites has brought the core values of the certification down.  But consider the facts:

Certification Preparation Facts:

  1. to become certified you need to at least study the preparation guide for the exam
  2. you will need to read at least one book on the subject
  3. you would probably take some simulation test before taking the exam

 Summon the vast power of certification - Dilbert

A certification WILL not get you a job.! There are lots of factors that influence the decision to hire someone.  However, having achieve a certification in a new technology goes a long way to show that you have the Passion and Commitment to stay on top of the technology.

Yes, writing a blog entry does show that you are into technology.  But having to study to pass a test is a different beast.  A blog is written on your spare time, and there is no commitment to when you need to blog.

I hate when someone will tell me that they don't know something, but they are fast learners and they can find it really quick on google.  That's great, but when you are in presenting in front of a client, they expect you to know EVERYTHING right there.  When hiring a developer, there should be a base level knowledge that they should have. Knowing the basics first and then knowing how to find information in the internet for other stuff is fine with me.

Basic knowledge like how to use the xmlWritter, or what the background worker is? or creating a delegate. Using globalization and resources?  About ClickOnce deployment?  All of these concepts and more are required on the certification exam for .NET.

When you start getting into the Enterprise playing field, certifications are more valuables in terms of knowledge, rather than chrome on your resume. i.e. knowing what can be done and how it can be done in BizTalk is more important to a client, than the actual detailed implementation of it.  This is because every client out there has a different problem that they want you to solve, and they are looking at you for answers.

Once again, certification alone does not qualify ANY developer to get a job, but at least it shows that this person has the determination to study and learn the basic to do his job.  Which one will I hire?  The one that has a black belt in google searching or the one that took the extra time, to learn something.

Do you have the time to study?  Do you have the determination and commitment?  Do you have the experience? and most important of all Are you Passionate about Technology?

Certification Pros:

  1. your team will only move as fast as the slowest developer.  Requiring a certification, will set the base by which you can start moving forward.  You don't have to start guessing what level is each of your team members.
  2. Invest some training $$ on your team, they will feel appreciate [read more...]
  3. Think like an owner..!! Everyone wants to work for a Gold Certified Partner. Well, getting those Microsoft competencies takes some requirements:
    1. Customer references
    2. CERTIFICATIONS Requirements...!!

If you think that certifications are used only for evaluating a prospective candidate, think again. How does your company benefits from having certified developers?  Can you company truly stand out among other companies out there without certified people? If you want to be a Business Partner with some of the big companies out there like Microsoft, IBM, Sun, guess what?  You need certifications...!

The guy that study and did that extra effort is the one I want on my team, and in my Company [Quick Solutions, Inc.]

Thursday, October 09, 2008

Visual Studio 2008 free eBooks

Offer from Microsoft to download some cool content, check it out

 http://csna01.libredigital.com/?urvs5cn3s8%20

Programming Microsoft LINQ
Introducing Microsoft® Silverlight 2, Second Edition Programming Microsoft® ASP.NET 3.5
by Paolo Pialorsi and Marco Russo by Laurence Moroney by Dino Esposito
ISBN: 9780735624009 ISBN: 9780735625280 ISBN: 9780735625273
     

Thursday, October 02, 2008

DocTools not working

For one of the projects we are working on, we need to make sure our end user documentation matches correctly the template provided by the customer. I have started playing with one of the products that the Patterns and Practices at Microsoft is using to generate their documentation. Take a look at their package: http://www.codeplex.com/doctools

After going through all of the installation and pre-requisites.  I was ready to try the sample Word Document they provide.  Snag.!  

First thing I notice is that the sample scripts are looking for the Microsoft DocTools in the c:\program files\Microsoft DocTools.  Changing those scripts brought to my attention that the install program gives you the ability to specify the path on where to install the DocTools.  However, it will always install to the (x86) directory on my Vista x64.

The main error I was getting was:

PS C:\DocToolsDemo> .\HTML.cmd

C:\DocToolsDemo>PowerShell ConvertToHTML.ps1 ESBIntro.docx .\outputHTML """C:\Program Files (x86)\Microsoft DocTools\Document Converter\Formatting\MSDN2\xsl""" convertESBConfig.xml

    Directory: Microsoft.PowerShell.Core\FileSystem::C:\DocToolsDemo

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         10/1/2008   9:10 AM            outputHTML

    Directory: Microsoft.PowerShell.Core\FileSystem::C:\DocToolsDemo\outputHTML

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         10/1/2008   9:10 AM            html
Add-PSSnapin : No Windows PowerShell Snap-ins are available for version 1.
At C:\Program Files (x86)\Microsoft DocTools\Document Converter\ConverterLibrary.ps1:9 char:15
+         Add-PSSnapIn  <<<< ppConverter.Cmdlets

--Splitting: C:\DocToolsDemo\ESBIntro.docx
An Error Ocurred: The term 'Split-Document' is not recognized as a cmdlet,
function, operable program, or script file.Verify the term and try again.

PS C:\DocToolsDemo>

After doing all of the regular stuff (check PATH, re-install, start/stop program, google), I could not get this error to go away.

The problem seems to be with the OS I am running.  Since I am running a 64bit OS, I need to call the PowerShell that is on the c:\windows\syswow64 and not the one in the regular 32bit.  This is accomplish by running the one marked with the (x86)

image

Once I opened this one, ran the set-executionpolicy remotesigned command.  It ran and split the Word document successfully and generated my HTML help compile file.

image

One of those simple bugs that can waste a whole hour for you.!