Simon Moon


  Home  |   Contact  |   Syndication    |   Login
  7 Posts | 0 Stories | 2 Comments | 0 Trackbacks



Wednesday, November 21, 2012 #

Does anyone else out there long for the simpler days where you needed to move a jumper in the jumper block to set your modem card to use IRQ7 so it would not conflict with the interrupts used by other boards in your PC and your modem card came with a 78 page manual telling you everything you would need to know to write your own driver for the board including a full schematic along with the board layout showing every chip, capacitor, and resistor?  Ahhhhh, the simplicity!

I am wrestling with UserPnp issues for a USB software licensing dongle that is needed by some third party software in one of our production applications. Of course, every machine in production is virtual, so it could be anything in the chain of the software application library to the device driver running on the VM to the configuration of the simulated USB port to the implementation of the USB connection and transport in the virtual host to the physical electrical connections in the USB port on the hypervisor.

If only there were the virtual analog to a set of needle-nose pliers to move a virtual jumper.

Come to think of it, I always used to drop those damn things such that they would land in an irretrievable position under the motherboard anyway.

Thursday, October 25, 2012 #

Most of my blog posts sound way too whiny. I'm not that guy. (Am I?)

I've been using SUSE-flavored Linux for personal projects since 2002 (SUSE Linux 8.1). This past weekend, I made the heart-wrenching decision to abandon openSUSE (version 12.1) in favor of Linux Mint (version Maya). OpenSUSE had just become too burdensome. Packages that installed easily on RedHat or Debian always had issues running on top of OpenSUSE. And I never could get the Heroku Toolbelt installed in any kind of usable state.

And so, ...

I'm beginning again with this enticing young thing -- Mint with the Cinnamon window environment. Delicious. And while I'll always have fond memories of my years with openSUSE, I've got to admit that Mint makes running Linux feel good again.

Monday, October 18, 2010 #

It bugs me when some commecial site gloms onto a perfectly good technology name and shoves irrelevant information down my browser's throat. Clearly www.Ja\/ (misspelled intentionally so that the assholes that own the domain name won't get a free reference from my blog) are only interested in making money from click throughs.

Anyway, I attended the jQuery Conference this past weekend and I'm complying with Alex's directive to  So, here y'go ...


JavaScript Function apply

Monday, June 28, 2010 #

Microsoft disgusts me.

Out-of-the-box Asp.NET assumes that Google Chrome and Apple Safari are not "modern" browsers.  In order to make use of some of the Asp.NET web controls with those browsers, you need to modify your web application (or the machine.config and GAC on every server in your web farm).  This is simply inexcusable.  This could have easily been corrected with a patch years ago, yet Microsoft forces all of us web developers using Asp.NET to modify every one of our web applications to work with non-Microsoft browsers.

In any case, the simplest remedy I could find to get my application with <asp:Menu> controls to work with Safari and Chrome (excellent browsers, by the way -- much faster than bulky, slow Internet Explorer 8) is to add a file under the project App_Browsers directory.  I named mine safari.browser with these contents:


    <browser refID="Safari1Plus">
        <adapter controlType="System.Web.UI.WebControls.Menu"
                         adapterType="" />


<span sarcasm="true"> Hey, thanks Microsoft!  That's intuitive. </span>

In any case, this fixes the MS out-of-the-box brain damage and makes menus usable on Safari and Chrome.

By the way, I found the answer today buried in this forum thread from THREE years ago.  (Way to stay on top of things, Microsoft!  Woot, woot!)


Friday, April 10, 2009 #

So, I got a good laugh today when I found one of my colleagues from my own ancient history who listed as himself as a "Principle Software Engineer".  Ha, ha.  I wonder what principles he adheres to in his day-to-day work.  Chuckle.  It reminded me of that weird sect that buys radio advertising time to discuss the "high calling of our daily work."

But, then I got to thinking about the American education system and engineers' propensity for poor spelling.  Uh-oh.

So, I did a micro-experiment on Google.  Search for "principle software engineer".  Results ... aproximately 11,100,000 hits.  Okay, search again for "principal software engineer".  ... It only has to beat 11 million.  ... C'mon, c'mon, here it is ...
OH SHIT!  ONLY 868,000 HITS.

Of course, my resume states that I am a Principal Software Engineer.  (Please check any handy Webster's to convince yourself that it is the correct title.)

So, there you go.  I put myself at a disadvantage in today's tough job market just because some genetic accident gave me the ability to spell.

Well, maybe it isn't really a disadvantage. lists 26 jobs for Principle Engineers and 211 for Principal Engineers.  I've seen people who use the title Sr. Principle Software Engineer.  That always struck me as inherently wrong.  Isn't like The Highlander?  Principal Engineer -- there can be only one.

However, I think I'll change my title to Principled Principal Software Engineer the next time I run out of business cards.  There's a niche I would be perfect for!

Wednesday, September 27, 2006 #

Selenium rocks.  My most recent task has been to create an end-to-end system test for our QA environment.  There are a lot of moving parts in QA.  A lot of things can and do go wrong.  The end-to-end test will play the role of a canary in a coal mine.  I'm certain that it will go belly-up frequently, but at least we will now have something that detects that something has died and it will also give us some indication of what has died.

My goal was to create this test with a minumum of cheating.  A test can accomplish anything at all by poking the database, but a good test only interacts with the target system via the interface mechanisms provided by the target system.  When a tested behavior can only be stimulated via web applications, this has always posed a difficult obstacle for me.  Of course, I can create WebRequest objects to accomplish such tasks, but doing so creates an awful lot of brittle test code.  And then, there is the issue of javascript.  Have you ever tried to interpret javascript so that you can perform exactly the behavior a user would cause interacting with the application?  Not fun.

Enter the perfect solution: Selenium.  Now, it's simple to mix browser actions in with the body of a standard NUnit test.  A Selenium script takes care of the text-entry, button-poking, mouse-jumping actions that normally require a user's touch.  It's child's play to create such scripts with the Selenium IDE extension to firefox (why would anyone use any other browser?).  Then launching the script inside an automated test just requires a Process.Start on IExplore.exe with the right URL.  Selenium lays out the actions and the browser does the heavy lifting of parsing the html and javascript. [Note: I haven't been able to convince IExplore.exe to exit from javascript window.close(), but my test can get away with a tap of the Process.Kill hammer, heh, heh.  2nd note: My mouse only touches firefox, but it is useful to run IExplore.exe inside the test so that my sessions aren't affected by the running test.]

The one missing ingredient was the ability to pass arguments in to the Selenium test scripts.  I had to learn enough server-side javascript to pull it off, but essentially, I changed the Selenium test suite files and individual test files to asp instead of html.  This gave me the ability to use <%= Request.QueryString("argname") %>.  I didn't need to change any of the Selenium core code at all!

So, now my end-to-end test runs every night.  The test creates a flurry of file drops, web service calls, and Selenium-controlled web application interactions to verify that the stuff that was working yesterday will still be working tomorrow.

Selenium's mascot ought to be Mighty Mouse, -- "Here I am to save the day!"

Saturday, March 4, 2006 #

I currently work in a very small shop on the right-hand side of the USA. The startup that I work for has three people in the IT department: the CTO, the Head of Development, and me, the programmer guy. 9 people in the company and I'm three people away from the top spot -- not a good sign. So it goes.

Look to this column for hints on how to set up a decent development environment with very little equipment and on a very tight budget. Our first product will be a B2B solution based on BizTalk 2006. The technologies we are using (and therefore, the domain for the hints which may appear here) are:

Although I will strive to focus my comments on technology, I will from time to time take some poetic license to foray into politics, religion, and other social ills. After all, if there are people willing to listen to Hollywood celebrities expound on why U.S. military forces should or should not be in Iraq, how could my comments be any less meaningful?

Thanks for stopping by my blog.