Back to Profile: earnshaw


  • The P-Invoke Interop Assistant

    Now here's something really helpful!  Been looking for help with a particular P/Invoke for some time now. 
  • Application ​Compatibili​ty - MSI Installer Issues

    I can dig the wants and needs expressed here.  The Windows Security Model is so blasted complex, you get results you never antipicated AND you can't always get the results you want.  It would be nice to install a piece of software and to tell the OS to prevent it from ever touching this, this, this, and that over there.  We muddle through with Group Policy and DACLs.
  • Douglas Crockford, Alex Russell and Joseph Smarr: On the Past, Present and Future of JavaScript

    It is nice to see the enthusiasm for JavaScript, or enthusiasm for anything.  HTML, in its many incarnations, with or without the addition of CSS, and the so-called Document Object Model, and standards promulgated by the W3C, well...  As far as I'm concerned the whole web languages thing is an ad hoc muddle that was pushed by people who needed something, anything, that was able to put eye-popping advertisements on web pages.  JavaScript is a means through which a web page gets to tell the Browser to do "special" things, like ignore a user request to copy text, and like ensure a user fills out a form correctly using only local computing resources.  Naturally, being a full-featured language mainly for Browser instruction, JavaScript can be used to, par exemple, implement translation layers when necessary.   That would be an extension to the Browser that is implemented in a web page.  Whatever it takes.  Interesting name, JavaScript.  Really quite unrelated to the computer programming language Java, which can confuse the uninitiated.  In 100 years I expect the Internet to have evolved beyond ad hoc to something logical, clean, and comprehensible. 
  • Patrick Dussud: Managing Garbage Collection

    Having recently been required to extensively enhance some unmanaged C++ code, I feel the pain of not having the services of a garbage collector.  What were they thinking?  I know what they were thinking.  They were thinking how slowly programs would run when the garbage collector was running half the time.  But, nowadays, with 2GB or greater main memory commonly available and multiple CPU systems, the garbage collector is rightly in style.  And it saves many, many cycles in a programmer's brain.  It is simply too easy to lose track of a disused object.  Long running programs can end up having to be restarted simply to reclaim memory space.  I love my garbage collector.  Wouldn't be without.  I'm impressed that it works reliably and very greatful.
  • IE 8: On the Path to Web Standards Compliance - ACID 2 Test Pass Complete

    So, Web sites written for standards-compliant IE8 will run very well on standards-compliant Brand X browsers as well?  That's unheard of!  Practically the end of the Soviet era as we know it.
  • Patrick Dussud: Garbage Collection - Past, Present and Future

    Having recently been persuaded to make enhancements to a program that was written in unmanaged C++, I was reminded how much effort goes into taking out the garbage.  Hooray for GC!  Hooray for Moore's Law that gives us the spare cycles that it takes to automate reclamation of disused objects. 
  • MIX 2008: What the hell is this MIX thing, anyway?

    The natives are restless tonight.  Of late it appears that many popular web destinations offer a Rich Internet Experience.  Animated this and video that.  And you can be certain it wasn't all executed using Silverlight.  I've been Adobe Flexing for six months.  As per industry standard, the documentation is terrible, the literature execrable and the most useful hints are available via Google.  I hope Microsoft does not repeat Adobe's mistake.  If you want a nice looking column chart, Flex is very good.  If you want eye popping transition effects, that will take some ECMAScript.  All this was supposed to be "a simple matter of coding a few lines of XML."  Well, simple it isn't.  Good enough to meet revenue targets?  Yep.
  • Gordon Hogenson: Documenting Development Technologies

    For a while I was thinking Microsoft had no writers on board.  Good to see that is not the case.

    Technical topics tend to be covered in workplace literature as if books need to be great tomes of wisdom.  Vast swaths of knowledge and experience are treated in depth.  Usually, a minimum of 900 pages is required. 

    So, I was trying to create a managed wrapper written in C# to implement a C++ call to a Win32 API subroutine that gives the program a special privilege.  Bah humbug:  HRESULT.  Of course, such a function should have a managed equivalent, but not yet.  Using P/INVOKE, this should be rather simple.  But it isn't if you cannot immediately get your hands on the decorations that must be put in the C++ function header.  It took Product Support Services several days to correctly identify the decorations.  Something this basic should not be buried in musings on how Microsoft actually implemented versus how they should have implemented something.  In my experience, there is no distinction between practical and vital information versus trivia in technical books.  One must thoroughly plow the books to find the nuggets if they be in the book; something that is not guaranteed.

    For anyone who is interested, the following is an example of the correct decoration:

    extern "C" _declspec(dllexport)  int _stdcall  yBHGQ95Y83Srg76sd24bkVZZ(int togglePosition)
  • Windows ​"​Longhorn&qu​ot; Server Beta 3 Ships!!!

    Making Windows Codename "Longhorn" Server must have been a management nightmare.  And a whole lot of work.  So, congratulations on finally coming to the end of a long journey. 

    I'm a little puzzled to know how this Server operating system differs materially from and is better than its predecesor, Windows 2003 Server.   Can someone point me to the relevant PowerPoint presentation?  Thanks.

    Well, we do know that there is a non-GUI option that cuts out redundant software to permit deployment of key technologies without inadvertently turning on infection vectors.

    What else?
  • MSDN Wiki Projects - #4 (last) - ​Internation​alization

    One man's meat is another man's poison.  That's on old English saying derived from the French "Chacun a son gout."  Some like short videos.  Others like long videos.  Personally, I like both long and short.  With production resources, a long video can be edited down to a short video.  Hence once interview could beget two videos.  

  • MSDN Wiki Projects - #3 - A Huge ​Responsibil​ity

    It occurred to me only recently that the Wiki approach might be an effective way to document, at the level of detail necessary, all of the APIs and operational and configuration aspects of Microsoft products.  It does not seem reasonable to expect the corporate behemoth to undertake the task alone.  Naturally, such a Wiki would need to be closely monitored, as Wikipedia is, to limit the amount of damage done by vandals and the ill-informed.
  • Raj Jhanwar: Windows Vista Component Management Interface (CMI)

    So, anyway, what is a "skew?"  Actually, it is a SKU or Stock Keeping Unit number.  You see, items that are mass produced are assigned SKU numbers so that retail sellers can order and inventory by models which are distinguished by their different SKU numbers.