Follow me on Twitter at
FYI, I'm blogging most of my stuff over at More Wally now.
You might want to add my rss feed to your reader at:
June 2006 - Posts - Wallace B. McClure

Wallace B. McClure

All About Wally McClure - The musings of Wallym on Web, HTML5, Mobile, Xamarin.iOS, Xamarin.Android, and Windows Azure.


Visual Studio Magazine Column Personal Blog


Book Authors




Georgia Tech Bloggers



June 2006 - Posts

Atlas June CTP is out

The Atlas June CTP is out.

The Information Technology (IT) Body Shop Scam

In the IT world, there are these businesses that are called body shops.  They are a mechanism for companies to use people without having to about several factors:

  • Managing Individual contracts.
  • Insurance.
The problem with these types of organizations is that the people that work for them are typically are in and out looking for the quick buck

Today, Infoworld had one of the few editorials that I mostly agree with.  The fact that I find Infoworld terribly wrong on many things is a different discussion.  The editorial cast a fairly bad light on these body shops.
Some of the quotes are rather interesting:
  • An ugly truth about the IT job market is that opportunists too often dominate it. Honest employers and job candidates suffer because they’re forced to compete with cutthroats. Black hat employers see workers through the lens of the recession -- as property to be loaded, spent, and replaced like rounds in a Gatling gun.
  • An employer who uses boiler-room agencies to look for help misses out on prime prospects, and can end up with the agency’s dregs: joyless workers who came your way only after being run once too often through the agency’s soak cycle. But then, if you use contract-to-hire, you get what you deserve.
I remember back when I first got interested in writing my first book.  This girl from this body shop asked me to go to breakfast.  During breakfast, she made the deragotry comment "Why would you ever want to right a book?  At the end of the day, just go home."  The discussion pretty much ended at that point. 

I recieved a call from a body shop guy just a few weeks ago.  The only reason he got my info is because of a violation of a contract we have with another company, but thats a different story.  He gave out the old and tired shtick of how great I was (Obviously, he hadn't bothered to Google for me because he didn't know that I had written one book, let alone three.  He didn't know what a podcast or a blog where, geez what a loser.).  Since he had not done his homework, I also had to explain to him rates and what intellectual property is.  You can imagine how that discussion went.

Don't trust them and I don't like them.  They're in and out for the quick buck.  Me, I believe in the long term.  My suggestion is not to get wrapped up with them folks.
ASP.NET Podcast Show #57 - Wally on Interfaces

Subscribe.  You KNOW you want it.


Download.  Kinda like your father’s Oldsmobile.




Show Notes:

namespace CallingInterface


      /// <summary>

      /// Summary description for Class1.

      /// </summary>

      public interface ICalling


            bool GetConfig();

            bool Start();

            bool Stop();

            string Test();

            string ConfigFileLocation







Dynamic Loading & Calling a mehod
      string strConfigFile;

      string strType = String.Empty;

      ArrayList aryListClassInfo;

      cLoader objLoad = new cLoader();

      AssemblyTypeClassInfo atci;

      strConfigFile = objLoad.GetConfigFile();

      Assembly assembly;

      aryListClassInfo = objLoad.LoadAssemblyInfoConfigFile(strConfigFile);

      aryListClassInfo = objLoad.LoadAssemblyInfoConfigFile(strConfigFile);

      foreach(Object obj in aryListClassInfo)


            atci = (AssemblyTypeClassInfo)obj;

            assembly = Assembly.LoadFile(System.Windows.Forms.Application.StartupPath + @"\" + atci.AssemblyLocation);

            if (null != assembly)


                  foreach(Type typDyn in assembly.GetTypes())


                        if ((typDyn.FullName == atci.ClassName) && (typDyn.IsClass == true))




                                    object objClass = Activator.CreateInstance(typDyn);

                                    if ( objClass is CallingInterface.ICalling  )


                                          atci.TypeOfObject = typDyn;

                                          atci.objRef = objClass;

                                          typDyn.InvokeMember("ConfigFileLocation", BindingFlags.SetProperty | BindingFlags.Default, null, objClass, new Object[] {strConfigFile}); // Set a property

                                          object Result = typDyn.InvokeMember("GetConfig", BindingFlags.Default | BindingFlags.InvokeMethod, null, objClass, null);  // Call a method.

                                          Result = typDyn.InvokeMember("Start", BindingFlags.Default | BindingFlags.InvokeMethod, null, objClass, null);  // Call another method.



                              catch(Exception exc)


                                    Console.WriteLine("Exception: " + exc.Message);









WinFS standalone died, So what
As everyone and their brother in the development community knows, Microsoft has killed off the standalone version of WinFS for Windows.  Instead, they are going to integrate WinFS with Sql Server or something else and come out with a better product that will.........blah, blah, blah.

I honestly have to say, so what.  Personally, I am glad that they have pulled.  Have you ever used Lookout to do full-text searching in Outlook?  It is painful to see the processor on my laptop spike to 100% for hours as it tries to reindex my email.  Ever had a system run a full text index in sql server.  Thats another situation where the processor spikes to 100% for a long time (even when its setup up correctly).  Thanks, but I think I'll keep my processor.  WinFS on the desktop is probably just too much to handle for today's processors.
ASP.NET Podcast Show #56 - Paul on Atlas and Load Testing


Show Notes:
  • Personal Update
    • Work with Atlas
    • Getting a 4th degree black belt.
  • Work
  • Listener shout out to Peter Tassell
  • Web Load testing
    • Load testing for 10,000 concurrent users
    • Visual Studio Team Test, Perfmon, Excel
    • Strengths/likes, difficulties
    • Why 10,000 concurrent users?
    • Ideal setup of test rig
    • Setting up controllers, test agents
    • Automated recording and gathering of test data
    • Scheduling tips
Macs don't get no love
Code Camp Videos
I just ran across these the other day and I have to post about.  It looks like Russ Fustino (mostly Russ) and Joe Healy are producing videos of some of the Code Camps that they are involved with.  Wow, are they into community or what?!?  I love the music that Russ puts with them.

Doug Turnure's sample code and presentation files from Multi-threading in .NET

Doug came to Knoxville and did a really good talk on Multi-threading in .NET.  I have uploaded his sample code and presentation to my site, if you are interested in reading it.

Zip file with the presentation and source code:

Doug Turnure

Doug Turnure, a Microsoft Developer Evangelist in Atlanta, came to Knoxville and did a talk on Multithreading in .NET.  I've always enjoyed Doug's talks and this was no exception.  In March in Atlanta, I listened to Doug talk about interfaces and really enjoyed it.  Doug takes these complicated concepts and breaks them down into really simple items.  I didn't know this, but Doug had previously worked at Developmentor.  I guess that's why he is pretty good at explaining these concepts, he has worked as an instructor doing that.  To go one step further, I think that Atlanta, which is where Doug is based, is outside of his georgraphic area as a MS DE.

Anyway, thanks to Doug for coming to Knoxville and presenting.

AS400 / iSeries and .NET (ADO.NET)
copyied from:
I have been working with writing an interpretor for converting AS400 graphics to create images in .NET.  There is an RPG program out on the AS400 / iSeries that generates the necessary files.  There are a couple of things that I have found out.
  • You can use named parameters to call a stored procedure using V5R3 of the IBM Client Access Software.
  • If you get an error like: "The stored procedure cannot be found in SYSPROCS.  Unable to derive parameters."  This most likely means that the necessary stored procedure to map the RPG program to an iSeries DB2 stored procedure is not there.  Basically, if you can't see it in the IBM Operations Navigator, it doesn't exist.  You will need to set that up.  This may also be the case if you don't have the proper security to get at the stored procedure. Another common error that we got that was similar to the error above is:
    SQL0204 OER4016A in DIST4000C type *N not found.
    Description: An unhandled exception occurred during the execution of the
    current web request. Please review the stack trace for more information
    about the error and where it originated in the code.

    Exception Details: IBM.Data.DB2.iSeries.iDB2SQLErrorException: SQL0204
    OER4016A in DIST4000C type *N not found.

  • The iSeries uses a different set of terminology than Sql Server, Oracle, and other traditional client server databases.  This is due to its legacy of being around before the widespread use of the sql language.  As a result, the terminology is different.  There are several items of interest to not.  A "file" is a table.  A "library" is a database.  And on and on.
  • Remember that you are going through the database subsystem when you use the iSeries .NET Data Provider.  As a result, if you can't see things there or do things, you can't do anything.
Link to the IBM ADO.NET document for their driver.
More Posts Next page »