# Sunday, March 04, 2007

One of the most common questions people ask is, how can we integrate Commerce Server 2007 with Microsoft Office SharePoint Server (MOSS) 2007?  Well, Henry Winkler, a consultant with Microsoft Consulting Services in Denver whom I've had the pleasure to work with in the recent past, has written the following white paper:

http://www.microsoft.com/downloads/details.aspx?FamilyId=2AEB1A5E-43B8-483B-8CB2-86C0E82BF0AB&displaylang=en

This whitepaper includes code samples that make it easy to integrate these two products together.

Thank you Henry!

posted on Sunday, March 04, 2007 12:44:18 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
# Friday, March 02, 2007

I came across a great blog entry today that provided the following script.  This script will setup IIS with the proper configuration to allow Virtual Server 2005 R2 to function.  Just run this in the command line (or create a batch file) before installing Virtual Server.

start /w pkgmgr /l:log.etw /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

Note: this will pretty much install everything under IIS.  I recommend that you either go through and remove some of the above settings, or go in afterwards and do so.

Additionally, make sure that when you run the installer, select "Run as Administrator".

Thanks to Grant Holliday for the tip!

[Updated 06/21/07]

A good friend and former colleague of mine, Rich Finn, had a little trouble getting this to work based on my steps above (I'll have to review them again).  After he finally got the configuration correct, he sent me the following screen shot.  I hope this helps someone!

 

posted on Friday, March 02, 2007 6:14:56 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
# Wednesday, February 28, 2007

If you get the following error with an HTTP send port in BizTalk 2006, you may have an authentication issue:

A message send to adapter "HTTP" on send port "SendPort1" with URI http://localhost/vd/BTSHTTPReceive.dll?QueryString is suspended.

Error details: This request requires buffering data to succeed.

Check the following to see if it's the source of the problem:

  1. Go to the properties of your send port.
  2. Click on "Configure..." next to your HTTP type.
  3. Choose the "Authentication" tab.
  4. Make sure your authentication is set correctly (i.e. valid username and password).

It's best to not use anonymous authentication.  Basic is good for development and testing, but the preferred method is either Kerberos or Single Sign-On.

Best of luck!

posted on Wednesday, February 28, 2007 10:39:32 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
# Sunday, December 03, 2006

In a previous post, I attempted to create a very simple artificial neural network (ANN) to predict the outcome of NFL games.  I found that the approach I took was really no better than random guesses, as I had an average accuracy of 50%.

Consequently, I decided upon a different approach.  I used the same network architecture, but I added data which allowed the network to make more accurate predictions.  This time, I used the following data:

Week Number (1-17)
Away team Yards per Game differential
Away team Yards per Play differential
Away team First Downs per Game differential
Away team Time of Possession differential
Home team Yards per Game differential
Home team Yards per Play differential
Home team First Downs per Game differential
Home team Time of Possession differential
Bias (binary value of 1)

Note: since originally writing this, I expanded the differentials.  Essentially, I'm grabbing everyting from the NFL stats page (requires less work on my end) and creating differentials between the defense and offense.

A typically row pattern looks like this ...

01031033044044027029025049B

... where the first two characters represent the week number, the next three the away team yards per game, and so on.  This value is then converted into a binary array (of 105 binary values), and added to a collection of binary arrays.  This collection represents the training data.  Each "pattern" is pushed throw the network and found to be either true (meaning the away team won) or false (meaning the away team lost).  The error gradient is calculated, and then backpropogation (a subject for another post) refines the weights, and continues to try and get the data to converge.  I decided it was practical to go to an RMSE value of .15 on the training data, before making the prediction.

With this approach, I made predictions for week 11 (excluding week 11 data, of course) ten times, and averaged the values.  I then compared it to the actual results of the game.  I found the accuracy to be 81.25%, which means it made an accurate prediction 13 of 16 times!

So, I decided to include week 12 again, and make predictions for week 13.  Here are my predicted winners:

St. Louis
* Atlanta
* Dallas
* New England
Indianapolis
* Jacksonville
* Cleveland
Minnesota
* N.Y. Jets
* San Diego
* New Orleans
* Pittsburgh
* Houston
* Seattle
Carolina

* Accurately predicted!

So, for week 13, I have accurately predicted 11 of the 15 games (73% accuracy)!  This approach has MUCH more promise than the previous approach, yet isn't as good as I'd like it to be.  I have some ideas one how to make this even MORE accurate!  Stay tuned!

posted on Sunday, December 03, 2006 6:29:18 PM (Central Standard Time, UTC-06:00)  #    Comments [0]

Note: an updated, more accurate method can be found here.

Over the past few months, I have been playing around with artificial neural networks (ANNs) in C#.  For those of you unfamiliar with ANNs, it is an attempt to programmatically reproduce the way the brain processes data. 

Below is a simple ANN architecture:

On the left we have inputs (i.e. data), and on the right we have an output (i.e. the outcome).  The middle is a layer of neurons that essentially map the inputs to the output via weights (i.e. synapses).

The idea is that, given enough data to "train" the neural network", you can create a neural network that is capable of predicting an outcome.

There are many uses for ANNs; I am attempting to see if I can build a network to accurately predict football games.

I've created a VERY simple ANN, and come up with the following predictions for week 13 of the NFL:

Arizona at St. Louis : Arizona
Atlanta at Washington : Atlanta
Dallas at N.Y. Giants : Dallas
Detroit at New England : New England
Indianapolis at Tennessee : Indianapolis
Jacksonville at Miami : Miami
Kansas City at Cleveland : Kansas City
Minnesota at Chicago : Chicago
N.Y. Jets at Green Bay : Green Bay
San Diego at Buffalo : Buffalo
San Francisco at New Orleans : New Orleans
Tampa Bay at Pittsburgh : Pittsburgh
Houston at Oakland : Oakland
Seattle at Denver : Seattle
Carolina at Philadelphia (Monday night) : Carolina

Now, I don't have a lot of faith in these predictions, because my inputs only consist of the following for the first 12 weeks:

Away Team, Home Team, Did Away Team Win?

For example, the first line of my training data looks like this:

17,25,0

Where 17 equals Miami, 25 equals Pittsburgh, and 0 means that the away team lost.

The idea is that the network is built based on 12 weeks of data, and given the inputs it can predict whether or not the away team wins or loses.

Once all the results are in, I'll post and share how well my predictions did!  I'd be surprised if it was more than 50% accurate.  In the future, I plan to try to find additional pieces of data to include in the training, so that the predictions become more accurate.

Note: I just tested this method against week 12 results (meaning I used weeks 1 through 11, excluding week 12), and found that I was only able to get it 50% accurate ... no better than randomly choosing.

posted on Sunday, December 03, 2006 2:09:16 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
# Thursday, November 30, 2006

I recently had to configure a virtual machine on Virtual Server 2005 R2 for Commerce Server 2007.  While setting it up, I only had access to the Internet via my wireless adapter.  Consequently, I had to do the following in order to get the virtual machine to connect to the Internet:

  1. Install the Virtual Machine Additions.
  2. On the host machine, go to "Add Hardware" in Control Panel.  Click next, wait for it to search for hardware, then select "Yes" on the screen that follows.  Scroll all the way down to the bottom of the "Installed Hardware" list and select "Add a new hardware device".  Choose "Install the hardware that I manually select from a list (Advanced)".  Choose "Network adapters" on the screen that follows.
  3. Now you're presented with a list of network card manufacturers and network adapters.  Choose "Microsoft" as the manufacturer and choose "Microsoft Loopback Adapter" as the network card.  Click next and complete the wizard.
  4. You should now see an additional network connection in the Network Connections control panel.  It will be called something to the effect of "Local Area Connection 2", but you can determine which adapter is the one you just added either using the ToolTip or the details view (it should show up as Microsoft Loopback Adapter).
  5. Now you need to share your internet connection with the network adapter you just added.  Right click your real network card and click Properties.  Go to the Advanced tab and check "Allow other network users to connect through this computer's internet connection".  Choose your Loopback Adapter in the dropdown list, if applicable. Then click OK.
  6. Make sure your virtual machine is shutdown.
  7. Create a new "Virtual Network".  Choose your Loopback Adapter.  Rename the virtual network to "Loopback Adapter".
  8. Change the "Network adapters" for your virtual server, and select the new "Loopback Adapter".
  9. Click OK and start the virtual machine up.  You shouldn't have to do any work inside the virtual machine, so just wait for a while (it may take a while for it to get a connection).

You should now be able to connect to the internet!

posted on Thursday, November 30, 2006 4:09:56 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
# Wednesday, November 01, 2006

Update: I have recently joined Microsoft as an Architect Evangelist.  This bio will soon change.

I am a technical lead and application architect, specializing in Enterprise Application Integration (EAI), custom .NET applications, and data warehousing solutions.  I am largely focused on Microsoft products, including Commerce Server, BizTalk Server, ASP.NET (well, all things .NET), Team Foundation Server (TFS), but I also try to actively participate in the open source community.  I am a director for Statera, a Microsoft Gold partner headquartered in Denver, CO.

I have achieved the following professional certifications over the years:

  • Microsoft Certified Technical Specialist, (MCTS), BizTalk Server 2006
  • Microsoft Certified Solutions Developer, (MCSD), .NET 1.1 platform (C#)
  • Microsoft Certified Application Developer, (MCAD), .NET 1.1 platform (C#)
  • Microsoft Certified Database Administrator, (MCDBA), SQL Server 2000

I have experience with the following technologies:

  • Languages: C#, Visual Basic.NET, C/C++, Visual Basic 6.0, T-SQL, XML, JavaScript, VBScript, Perl, XHTML, CSS, VBA, XPath
  • Databases: Microsoft SQL Server (all versions), Oracle 9i, MySQL (5.0, 5.1), Microsoft Access (all versions), PostgreSQL (8+)
  • Operating Systems: Windows (Vista, Server 2003 32-bit and 64-bit, XP, Server 2000, NT)
  • Technologies: .NET Framework (1.0, 1.1, 2.0, 3.0, 3.5), ASP.NET, ASP, XML Web Services, ADO.NET, Active Directory (ADSI), Crystal Reports, Microsoft SQL Reporting Services, Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF)
  • Products/Toolkits: Microsoft Commerce Server 2007, SharePoint Portal Server (2007, 2003), BizTalk Server 2006, Virtual Server 2005 R2, Internet Information Services (all versions)
  • Developer Tools: Microsoft Team Foundation Server, Microsoft Visual Studio (all versions), SQL Server Management Studio, Microsoft Visual SourceSafe (6+, 2005)

Please feel free to send me a friendly e-mail, or leave a comment.  Thanks for stopping by!

     
posted on Wednesday, November 01, 2006 7:01:49 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
# Wednesday, July 20, 2005

After logging in, be sure to visit all the options under Configuration in the Admin Menu Bar above. There are 26 themes to choose from, and you can also create your own.

 

posted on Wednesday, July 20, 2005 1:00:00 AM (Central Standard Time, UTC-06:00)  #    Comments [0]