<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Post on ManuSoft</title><link>http://www.manusoft.com/types/post/</link><description>Recent content in Post on ManuSoft</description><generator>Hugo</generator><language>en-us</language><copyright>1991–2026</copyright><lastBuildDate>Sun, 05 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://www.manusoft.com/types/post/index.xml" rel="self" type="application/rss+xml"/><item><title>Periscope, QuikPik, SuperPurge support AutoCAD 2027</title><link>http://www.manusoft.com/news/2026-04-05-autocad-2027/</link><pubDate>Sun, 05 Apr 2026 00:00:00 +0000</pubDate><guid>http://www.manusoft.com/news/2026-04-05-autocad-2027/</guid><description>&lt;p&gt;&lt;a href="http://www.manusoft.com/resources/products/periscope/"&gt;Periscope&lt;/a&gt;, &lt;a href="http://www.manusoft.com/resources/products/quikpik/"&gt;QuikPik&lt;/a&gt;, and &lt;a href="http://www.manusoft.com/resources/products/superpurge/"&gt;SuperPurge&lt;/a&gt; have been updated for AutoCAD 2027.&lt;/p&gt;</description></item><item><title>All ManuSoft software is now freeware</title><link>http://www.manusoft.com/news/2026-01-01-freeware/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>http://www.manusoft.com/news/2026-01-01-freeware/</guid><description>&lt;p&gt;The store and checkout flows are retired. Download current versions from the &lt;a href="http://www.manusoft.com/resources/products/"&gt;product&lt;/a&gt; pages. There is no customer account on this site.&lt;/p&gt;</description></item><item><title>Bones, clones, and cyclones</title><link>http://www.manusoft.com/archive/blog/bones_clones_cyclones/</link><pubDate>Wed, 07 Nov 2018 09:22:38 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/bones_clones_cyclones/</guid><description>&lt;p&gt;My blogging has taken a nosedive in recent years, but I’m happy to report that I am doing great. I’ve been 100% focused on making sure there’s a viable alternative DWG platform for all you lost, lonely, and depressed CAD users out there. I’m going to keep this short and sweet, because as I write this I am still 100% focused on the task: putting finishing touches on BricsCAD V19 to be released “soon”.&lt;/p&gt;</description></item><item><title>Turning off InfoCenter in AutoCAD</title><link>http://www.manusoft.com/archive/blog/turning-off-infocenter-in-autocad/</link><pubDate>Tue, 21 Mar 2017 13:47:24 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/turning-off-infocenter-in-autocad/</guid><description>&lt;p&gt;Are you looking for a way to turn off the annoying InfoCenter that slows down (or sometimes locks up) your AutoCAD? Of course you are! Hop on over to the ManuSoft &lt;a href="http://www.manusoft.com/software/freebies/misc.html"&gt;Freebies page&lt;/a&gt; and install AcadInfoCenterOff.msi, the most popular ManuSoft download of all time.&lt;/p&gt;</description></item><item><title>LspLoad updated for BricsCAD 17 and ZWCAD 2017</title><link>http://www.manusoft.com/archive/blog/lspload-updated-bcad17-zwcad2017/</link><pubDate>Fri, 04 Nov 2016 15:30:23 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/lspload-updated-bcad17-zwcad2017/</guid><description>&lt;p&gt;I have updated the automatic lisp loader modules (LspLoad.zip on my &lt;a href="http://www.manusoft.com/software/freebies/arx.html" title="ADS / ObjectARX Freebies"&gt;freebies page&lt;/a&gt;) to support BricsCAD V17 and ZWCAD 2017. Note that the source code for LspLoad is &lt;a href="http://www.manusoft.com/resources/arxtips/demandloadvlx.html" title="Demand Loading a LISP File"&gt;also available&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Service Interruptus</title><link>http://www.manusoft.com/archive/blog/service-interruptus/</link><pubDate>Tue, 07 Jul 2015 07:41:11 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/service-interruptus/</guid><description>&lt;p&gt;The ManuSoft web server has been humming along steadily for the last 7 years on an old Compaq server running Windows 2008. You may have noticed that it&amp;#8217;s currently offline. Actually the server is still humming along just fine &amp;#8211; it&amp;#8217;s just that nobody can connect to it.&lt;/p&gt;</description></item><item><title>Ch-Ch-Ch-Ch-Changes</title><link>http://www.manusoft.com/archive/blog/ch-ch-ch-ch-changes/</link><pubDate>Mon, 16 Mar 2015 01:59:57 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/ch-ch-ch-ch-changes/</guid><description>&lt;p&gt;Although my blog has become relatively stagnant, the rest of my life has been changing &amp;#8212; and there are even bigger changes ahead.&lt;/p&gt;
&lt;p&gt;My children have been growing into adulthood one by one, and my parenting time has been shrinking as a result. To take up the slack, I bought a bike a few years ago and started riding it on the many local bike trails. Initially cycling was a way to get healthy and enjoy the outdoors, but it has turned into much more. Riding a bike is great exercise, but it&amp;#8217;s also a fantastic social activity when you do it with friends, and I have made many new friends in the very large and growing cycling community here in Ohio.&lt;/p&gt;</description></item><item><title>QuirkyPolyline updated for Bricscad and ZWCAD+</title><link>http://www.manusoft.com/archive/blog/quirkypolyline-updated-for-bricscad-and-zwcad/</link><pubDate>Tue, 09 Dec 2014 04:39:50 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/quirkypolyline-updated-for-bricscad-and-zwcad/</guid><description>&lt;div class="interactive_right" style="float:right;padding: 0 0 10px 10px"&gt;&lt;div class="button_holder_right"&gt;&lt;g:plusone annotation="bubble" href="http://otb.manusoft.com/2014/12/quirkypolyline-updated-for-bricscad-and-zwcad.htm" size=""&gt;&lt;/g:plusone&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="float: right;margin: 9px;"&gt;
&lt;/div&gt;&lt;p&gt;I’ve updated &lt;a href="http://otb.manusoft.com/2013/01/quirkypolyline-exposing-foolish-programmers.htm" target="_blank"&gt;QuirkyPolyline&lt;/a&gt; and added support for Bricscad 14 – 15 and ZWCAD+ 2014 – 2015. The new QuirkyPolyline download is available on the &lt;a href="http://www.manusoft.com/software/freebies/arx.html" target="_blank"&gt;ObjectARX freebies page&lt;/a&gt;.&lt;/p&gt;
&lt;div id="simple_socialmedia"&gt;&lt;ul class="ssm_row"&gt;&lt;li class="sharetext"&gt;Share This&lt;/li&gt;&lt;li class="twitter"&gt;&lt;a href="http://twitter.com/share?url=http://otb.manusoft.com/2014/12/quirkypolyline-updated-for-bricscad-and-zwcad.htm&amp;amp;text=QuirkyPolyline updated for Bricscad and ZWCAD+&amp;amp;via=owenwengerd" target="_blank"&gt;Tweet&lt;/a&gt;&lt;/li&gt;&lt;li class="facebook"&gt;&lt;a href="http://www.facebook.com/sharer.php?u=http://otb.manusoft.com/2014/12/quirkypolyline-updated-for-bricscad-and-zwcad.htm&amp;amp;t=QuirkyPolyline updated for Bricscad and ZWCAD+" rel="nofollow" target="_blank" title="Share on Facebook"&gt;Facebook&lt;/a&gt;&lt;/li&gt;&lt;li class="linkedin"&gt;&lt;a href="http://www.linkedin.com/shareArticle?mini=true&amp;amp;url=http://otb.manusoft.com/2014/12/quirkypolyline-updated-for-bricscad-and-zwcad.htm&amp;amp;title=QuirkyPolyline updated for Bricscad and ZWCAD+&amp;amp;source=Outside The Box" rel="nofollow" target="_blank" title="Share on LinkedIn"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;&lt;li class="tumblr"&gt;&lt;a href="http://www.tumblr.com/share/link?url=http%3A%2F%2Fotb.manusoft.com%2F2014%2F12%2Fquirkypolyline-updated-for-bricscad-and-zwcad.htm&amp;amp;name=Outside+The+Box&amp;amp;description=QuirkyPolyline+updated+for+Bricscad+and+ZWCAD%2B" rel="nofollow" target="_blank" title="Share on Tumblr"&gt;Tumblr&lt;/a&gt;&lt;/li&gt;&lt;li class="stumble"&gt;&lt;a href="http://www.stumbleupon.com/submit?url=http://otb.manusoft.com/2014/12/quirkypolyline-updated-for-bricscad-and-zwcad.htm" rel="nofollow" target="_blank" title="Share on StumbleUpon"&gt;Stumble&lt;/a&gt;&lt;/li&gt;&lt;li class="digg"&gt;&lt;a href="http://www.digg.com/submit?phase=2&amp;amp;url=http://otb.manusoft.com/2014/12/quirkypolyline-updated-for-bricscad-and-zwcad.htm" rel="nofollow" target="_blank" title="Share on Digg"&gt;Digg&lt;/a&gt;&lt;/li&gt;&lt;li class="delicious"&gt;&lt;a href="http://del.icio.us/post?url=http://otb.manusoft.com/2014/12/quirkypolyline-updated-for-bricscad-and-zwcad.htm&amp;amp;title=INSERT_TITLE" rel="nofollow" target="_blank" title="Share on Delicious"&gt;Delicious&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description></item><item><title>How to fix IntelliSense errors in Visual Studio</title><link>http://www.manusoft.com/archive/blog/how-to-fix-intellisense-errors/</link><pubDate>Thu, 20 Nov 2014 22:39:40 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/how-to-fix-intellisense-errors/</guid><description>&lt;p&gt;New Visual Studio C/C++ users sometimes get tripped up by IntelliSense errors, so today I&amp;#8217;ve decided to share the secret, undocumented solution: &lt;em&gt;just turn them off!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/vstudio/hcw1s69b(v=vs.100).aspx" target="_blank"&gt;IntelliSense&lt;/a&gt; is a nice user interface feature when it works, but it has nothing whatever to do with building and running your C/C++ code. IntelliSense errors do not equal compiler errors, and trying to &amp;#8220;fix&amp;#8221; them is fruitless.&lt;/p&gt;</description></item><item><title>Writing a Custom Debugger on Windows</title><link>http://www.manusoft.com/archive/blog/writing-a-custom-debugger-on-windows/</link><pubDate>Wed, 13 Aug 2014 05:22:38 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/writing-a-custom-debugger-on-windows/</guid><description>&lt;p&gt;Recently I had to debug an intermittent access violation exception in one of my AutoCAD plug-ins. I needed to get the exception while the debugger was attached so I could break the process and analyze the state of memory before AutoCAD&amp;#8217;s global exception handler got control. Unfortunately, sometimes it took several hundred runs before the exception occurred.&lt;/p&gt;</description></item><item><title>AutoCAD 2015: Managing the Application Manager</title><link>http://www.manusoft.com/archive/blog/autocad-2015-managing-the-application-manager/</link><pubDate>Wed, 26 Mar 2014 21:49:04 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autocad-2015-managing-the-application-manager/</guid><description>&lt;p&gt;AutoCAD 2015 includes a new feature called &lt;a href="http://help.autodesk.com/view/INSTALL_LICENSE/2015/ENU/?guid=GUID-448769B1-CA69-4566-9EAF-D97DBD85AF88" target="_blank"&gt;Application Manager&lt;/a&gt;. I&amp;#8217;m sure it serves a lofty purpose, but it comes across a lot like the slimy Norton and Adobe updaters that are really just Trojans in disguise. It gets installed by default, with no option to prevent installation. To Autodesk&amp;#8217;s credit, they do provide instructions for &lt;a href="http://help.autodesk.com/view/INSTALL_LICENSE/2015/ENU/?guid=GUID-FAB40CCD-0A6C-4E55-A994-0D237CD954A2" target="_blank"&gt;preventing installation of Application Manager&lt;/a&gt;, and instructions for &lt;a href="http://help.autodesk.com/view/INSTALL_LICENSE/2015/ENU/?guid=GUID-D2340FA4-3A0C-4B7C-9558-EB50F6402472" target="_blank"&gt;removing it after the fact&lt;/a&gt;. Uninstalling requires several additional clicks, as if they really, really want you to think twice before taking such a drastic measure.&lt;/p&gt;</description></item><item><title>Building a commercial grade lisp plugin installer in 5 easy steps</title><link>http://www.manusoft.com/archive/blog/building-a-commercial-grade-lisp-plugin-installer-in-5-easy-steps/</link><pubDate>Tue, 18 Feb 2014 01:36:34 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/building-a-commercial-grade-lisp-plugin-installer-in-5-easy-steps/</guid><description>&lt;p&gt;Rumors about the death of AutoLISP have been floating around for many years, but fear not, those rumors are greatly exaggerated. Bricscad and ZWCAD both have excellent support for lisp plugins, so well-written lisp code is truly cross-platform and enjoys a large and growing audience. Unlike other languages, the vast majority of lisp code works unmodified on any hardware architecture, in any version of Windows, and inside any host application that supports it, including AutoCAD versions released more than a decade ago. On top of that, &lt;a href="http://www.opendcl.com" target="_blank"&gt;OpenDCL&lt;/a&gt; gives lisp developers the power of a modern event-driven user interface that can put their lisp plugins on the same playing field as plugins written in any other language. This is a powerful combination, and given lisp&amp;rsquo;s low entry cost, it is not surprising to see lisp continuing to enjoy strong support in the developer community.&lt;/p&gt;</description></item><item><title>Don't catch what you can't handle</title><link>http://www.manusoft.com/archive/blog/dont-catch-what-you-cant-handle/</link><pubDate>Fri, 07 Feb 2014 00:10:41 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/dont-catch-what-you-cant-handle/</guid><description>&lt;p&gt;One of the cardinal rules of C++ exception handling is &lt;em&gt;&amp;ldquo;don&amp;rsquo;t catch what you can&amp;rsquo;t handle&amp;rdquo;&lt;/em&gt;. Of course there are always, er, exceptions to the rule, but the basic principle always holds. The consequences of violating the rule are less severe in the .NET world, but even there it&amp;rsquo;s a good rule of thumb.&lt;/p&gt;</description></item><item><title>LspLoad now supports Bricscad V14 and ZWCAD+ 2014</title><link>http://www.manusoft.com/archive/blog/lspload-now-supports-bricscad-v14-and-zwcad-2014/</link><pubDate>Fri, 01 Nov 2013 10:48:12 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/lspload-now-supports-bricscad-v14-and-zwcad-2014/</guid><description>&lt;p&gt;I have updated the automatic lisp loader modules (LspLoad.zip on my &lt;a href="http://www.manusoft.com/software/freebies/arx.html" title="ADS / ObjectARX Freebies"&gt;freebies page&lt;/a&gt;) to support Bricscad V14 and ZWCAD+ 2014. Note that the source code for Lspload is &lt;a href="http://www.manusoft.com/resources/arxtips/demandloadvlx.html" title="Demand Loading a LISP File"&gt;also available&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>LspLoad Updated for AutoCAD 2014 and Bricscad 13 64-bit</title><link>http://www.manusoft.com/archive/blog/lspload-updated-for-autocad-2014-and-bricscad-13-64-bit/</link><pubDate>Sat, 13 Apr 2013 20:58:40 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/lspload-updated-for-autocad-2014-and-bricscad-13-64-bit/</guid><description>&lt;p&gt;The &lt;a href="http://otb.manusoft.com/2009/12/automatic-lisp-loading.htm"&gt;automatic lisp loader modules&lt;/a&gt; (LspLoad.zip on my &lt;a href="http://www.manusoft.com/software/freebies/arx.html"&gt;freebies page&lt;/a&gt;) have been updated to add support for AutoCAD 2014 and Bricscad 13 64-bit. The modules are now digitally signed so that AutoCAD 2014 loads them quietly.&lt;/p&gt;</description></item><item><title>Turning off InfoCenter in AutoCAD 2014</title><link>http://www.manusoft.com/archive/blog/turning-off-infocenter-in-autocad-2014/</link><pubDate>Thu, 11 Apr 2013 01:50:21 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/turning-off-infocenter-in-autocad-2014/</guid><description>&lt;p&gt;The AcadInfoCenterOff.msi file on the ManuSoft &lt;a href="http://www.manusoft.com/software/freebies/misc.html"&gt;Freebies page&lt;/a&gt; has been updated to support AutoCAD 2014 based products. Note that you must log out of Autodesk 360 if you disable the InfoCenter, else some versions of AutoCAD will crash during startup.&lt;/p&gt;</description></item><item><title>C++ function declaration tips</title><link>http://www.manusoft.com/archive/blog/c-function-declaration-tips/</link><pubDate>Wed, 06 Feb 2013 22:59:29 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/c-function-declaration-tips/</guid><description>&lt;p&gt;Creating and calling functions is one of the most fundamental tasks in C++ programming. The function declaration serves as the primary description of a function&amp;rsquo;s interface - or &lt;em&gt;contract&lt;/em&gt; - with callers, thereby making it the most important piece of code documentation. A good function declaration should convey as much information as possible. I&amp;rsquo;m sure an entire book could be written on the topic of function interface design, but I&amp;rsquo;ll just touch briefly on a few factors to consider when designing a function&amp;rsquo;s interface.&lt;/p&gt;</description></item><item><title>Using /delayload to specify dependent DLL path</title><link>http://www.manusoft.com/archive/blog/using-delayload-to-specify-dependent-dll-path/</link><pubDate>Sat, 26 Jan 2013 01:03:48 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/using-delayload-to-specify-dependent-dll-path/</guid><description>&lt;p&gt;Let&amp;rsquo;s say you have an ObjectARX module with an implicit dependency on another DLL. Your installer puts both your ARX module and the dependent DLL into a private application folder. Windows must be able to resolve the implicit DLL dependency at load time, otherwise it will fail to load your ARX module. Alas, Windows will not automatically search for the dependent DLL in your application folder, even though your ARX module is located there. Therefore your ARX module won&amp;rsquo;t load because the dependent DLL cannot be resolved.&lt;/p&gt;</description></item><item><title>QuirkyPolyline: exposing foolish programmers</title><link>http://www.manusoft.com/archive/blog/quirkypolyline-exposing-foolish-programmers/</link><pubDate>Wed, 09 Jan 2013 02:38:45 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/quirkypolyline-exposing-foolish-programmers/</guid><description>&lt;p&gt;In AutoCAD, the &lt;a href="http://docs.autodesk.com/ACDMAC/2012/ENU/ObjectARX%20Reference/AcDbCurve.html" target="_blank"&gt;AcDbCurve class&lt;/a&gt; defines a general parametrized curve. On a parametrized curve, points in space are mapped to real numbers (parameters) by an arbitrary function &lt;em&gt;F(p)&lt;/em&gt; for values of &lt;em&gt;p&lt;/em&gt; from the curve start parameter to the curve end parameter. Defining a curve this way simplifies working with complex 3D curves because one can work in the curve&amp;rsquo;s one dimensional &amp;ldquo;parameter space&amp;rdquo; instead of the more complex three dimensional cartesian space.&lt;/p&gt;</description></item><item><title>RoboCache for Windows offline files cache management</title><link>http://www.manusoft.com/archive/blog/robocache-released/</link><pubDate>Wed, 02 Jan 2013 08:50:27 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/robocache-released/</guid><description>&lt;p&gt;I&amp;rsquo;ve &lt;a href="http://otb.manusoft.com/2010/12/windows-offline-files.htm" title="Windows offline files"&gt;written before about RoboCache&lt;/a&gt;, a command line utility I wrote for managing the offline files cache in Windows Vista, Windows 7, and now Windows 8. After using the utility internally for a few years, I decided that I might as well clean it up and make it available to the rest of you. &lt;a href="http://www.manusoft.com/software/robocache.html" title="RoboCache" target="_blank"&gt;RoboCache is now available at the ManuSoft web site&lt;/a&gt;. There is a shareware version available, and you can purchase the registered version at the ManuSoft store (cost is 25 USD for a single user license).&lt;/p&gt;</description></item><item><title>Polymorphic bit flags in C++</title><link>http://www.manusoft.com/archive/blog/polymorphic-bit-flags-in-c/</link><pubDate>Wed, 19 Dec 2012 11:55:45 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/polymorphic-bit-flags-in-c/</guid><description>&lt;p&gt;I often encounter cases in ObjectARX programming where numerous boolean flags need to be persisted as part of an AutoCAD database object. For filing and for passing around to other functions, it&amp;rsquo;s most efficient to package those bit flags into a single unsigned integer. Below is an example that demonstrates how to use a union inside a containing class that can be simultaneously used as either a single unsigned integer or as individual booleans.&lt;/p&gt;</description></item><item><title>Checking function return values</title><link>http://www.manusoft.com/archive/blog/checking-function-return-values/</link><pubDate>Thu, 30 Aug 2012 15:48:36 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/checking-function-return-values/</guid><description>&lt;p&gt;A lot of you are guilty of not checking return values from API function calls. I&amp;rsquo;ll bet you have a good excuse, like &lt;em&gt;&amp;ldquo;it&amp;rsquo;s a lot of extra typing for no reason&amp;rdquo;&lt;/em&gt;, or &lt;em&gt;&amp;ldquo;that function should never return an error code&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Turning off InfoCenter (aka WSCommCntr4.exe) in AutoCAD 2013</title><link>http://www.manusoft.com/archive/blog/turning-off-infocenter-in-autocad-2013/</link><pubDate>Wed, 28 Mar 2012 00:41:37 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/turning-off-infocenter-in-autocad-2013/</guid><description>&lt;p&gt;I have updated the AcadInfoCenterOff.msi file on the ManuSoft &lt;a href="http://www.manusoft.com/software/freebies/misc.html"&gt;Freebies page&lt;/a&gt; for AutoCAD 2013. If you&amp;rsquo;re not sure what it does or why you need it, see this &lt;a title="Disable AutoCAD InfoCenter" href="http://otb.manusoft.com/2010/11/disable-autocad-infocenter.htm"&gt;previous post&lt;/a&gt; on the subject.&lt;/p&gt;</description></item><item><title>Registering an ARX/BRX module as a COM server</title><link>http://www.manusoft.com/archive/blog/registering-an-arxbrx-module-as-a-com-server/</link><pubDate>Tue, 11 Oct 2011 00:18:41 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/registering-an-arxbrx-module-as-a-com-server/</guid><description>&lt;p&gt;If you&amp;rsquo;re developing ARX modules that need to be registered as a COM server, you&amp;rsquo;re faced with some decisions about how to register them. In the old days before anyone cared about user permissions, registration could be safely accomplished at runtime, even via AutoLISP. Unfortunately runtime COM server registration just doesn&amp;rsquo;t work reliably any more under limited user accounts, not to mention registry redirection on 64-bit platforms. There is only one reliable way to register COM servers, and that&amp;rsquo;s doing it at install time under elevated privileges.&lt;/p&gt;</description></item><item><title>OpenDCL 6</title><link>http://www.manusoft.com/archive/blog/opendcl-6/</link><pubDate>Fri, 05 Aug 2011 14:32:27 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/opendcl-6/</guid><description>&lt;p&gt;You may not have noticed, but AutoLISP is still alive and kicking. This is evidenced by the growing community of developers and hobbyist programmers using the latest release of &lt;a title="OpenDCL" href="http://www.opendcl.com" target="_blank"&gt;OpenDCL&lt;/a&gt;, the free graphical user interface library for AutoLISP applications. If you&amp;rsquo;re not familiar with OpenDCL, check out the &lt;a title="OpenDCL 6 Released" href="http://opendcl.com/wordpress/?p=158" target="_blank"&gt;newly released OpenDCL 6&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>A tale of two tethers</title><link>http://www.manusoft.com/archive/blog/a-tale-of-two-tethers/</link><pubDate>Fri, 03 Jun 2011 13:08:15 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/a-tale-of-two-tethers/</guid><description>&lt;p&gt;Those of you using your Android phone as an internet connection may be paying more than you need to pay. Many phone companies here in the US charge extra to enable tethering capability, either by providing their own OEM tethering app or by enabling the phone to serve as a Wi-fi hotspot.&lt;/p&gt;</description></item><item><title>The MFC Balloon</title><link>http://www.manusoft.com/archive/blog/the-mfc-balloon/</link><pubDate>Fri, 15 Apr 2011 17:24:46 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/the-mfc-balloon/</guid><description>&lt;p&gt;The MFC version that ships with Visual Studio 2010 is known to cause &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/504714/statically-linked-mfc-applications-are-massive"&gt;major explosions in file size&lt;/a&gt; when you link statically. To avoid that problem, I use the Visual Studio 2008 build tools for such cases. I recently got quite a surprise when I rebuilt one such MFC application and discovered that the executable had ballooned from 400kb to 2MB in the space of one week despite only very minor changes.&lt;/p&gt;</description></item><item><title>BRX on Linux: Getting Started</title><link>http://www.manusoft.com/archive/blog/brx-on-linux-getting-started/</link><pubDate>Sun, 10 Apr 2011 11:19:35 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/brx-on-linux-getting-started/</guid><description>&lt;p&gt;When I heard that Bricsys had &lt;a href="http://www.bricsys.com/common/news.jsp?item=402"&gt;shipped Bricscad for Linux&lt;/a&gt;, I was anxious to get to work on supporting the Linux platform. The first order of business was getting familiar with Linux. For that, I chose &lt;a href="http://releases.ubuntu.com/10.10/"&gt;Ubuntu 10.10&lt;/a&gt; 32-bit running on a &lt;a href="http://www.vmware.com/workstation"&gt;VMWare Workstation 7.1&lt;/a&gt; virtual machine hosted on my Windows 7 64-bit workstation.&lt;/p&gt;</description></item><item><title>ObjectARX Wizard for Visual Studio 2010</title><link>http://www.manusoft.com/archive/blog/objectarx-wizard-for-visual-studio-2010/</link><pubDate>Fri, 01 Apr 2011 20:04:33 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/objectarx-wizard-for-visual-studio-2010/</guid><description>&lt;p&gt;If you&amp;rsquo;re an ObjectARX programmer, you may still be using Visual Studio 2008 because you&amp;rsquo;ve been told that you must. It&amp;rsquo;s true that you need Visual Studio 2008 installed to compile native ObjectARX code, but with &lt;a href="http://daffodil.codeplex.com"&gt;Daffodil&lt;/a&gt; you can &lt;a href="http://otb.manusoft.com/2010/10/visual-studio-2010-native-multi-targeting.htm"&gt;do all your work in the Visual Studio 2010 IDE&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>AutoCAD 2012 InfoCenter</title><link>http://www.manusoft.com/archive/blog/autocad-2012-infocenter/</link><pubDate>Fri, 25 Mar 2011 21:44:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autocad-2012-infocenter/</guid><description>&lt;p&gt;If you&amp;rsquo;re upgrading to AutoCAD 2012, don&amp;rsquo;t forget to also &lt;a href="http://otb.manusoft.com/2010/11/disable-autocad-infocenter.htm"&gt;disable InfoCenter&lt;/a&gt; (unless you really need it). Just download and install &lt;a href="http://www.manusoft.com/software/freebies/misc.html"&gt;AcadInfoCenterOff&lt;/a&gt; to disable it on any version of AutoCAD or AutoCAD LT. If you already have AcadInfoCenterOff installed, you can just run a repair install to apply it to a newly installed instance of AutoCAD 2012.&lt;/p&gt;</description></item><item><title>Simplifying the problem: plain vanilla configuration</title><link>http://www.manusoft.com/archive/blog/simplifying-the-problem-plain-vanilla-configuration/</link><pubDate>Sat, 26 Feb 2011 14:21:32 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/simplifying-the-problem-plain-vanilla-configuration/</guid><description>&lt;p&gt;One of the stages in &lt;a href="http://otb.manusoft.com/2011/02/the-art-of-simplifying-the-problem.htm"&gt;simplifying an AutoCAD software problem&lt;/a&gt; is to rule out (or in) third party add-ons as the cause. To do that, you&amp;rsquo;ll need a &amp;ldquo;plain vanilla&amp;rdquo; test bed configuration that consists of only the out-of-the-box components with no add-ons loaded.&lt;/p&gt;</description></item><item><title>Simplifying the problem: divide and conquer</title><link>http://www.manusoft.com/archive/blog/simplifying-the-problem-divide-and-conquer/</link><pubDate>Fri, 25 Feb 2011 14:08:51 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/simplifying-the-problem-divide-and-conquer/</guid><description>&lt;p&gt;When a customer reports a &lt;a href="http://otb.manusoft.com/2011/02/is-it-the-drawing.htm"&gt;drawing-specific issue&lt;/a&gt;, the next stage in &lt;a href="http://otb.manusoft.com/2011/02/the-art-of-simplifying-the-problem.htm"&gt;simplifying the problem&lt;/a&gt; is to eliminate all drawing content that has no bearing on the problem. Unless the drawing object that causes the problem is obvious and can be immediately ascertained, I use the &lt;a href="http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm"&gt;divide-and-conquer&lt;/a&gt; method to zero in on the cause.&lt;/p&gt;</description></item><item><title>Simplifying the problem: is it the drawing?</title><link>http://www.manusoft.com/archive/blog/is-it-the-drawing/</link><pubDate>Thu, 24 Feb 2011 13:54:13 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/is-it-the-drawing/</guid><description>&lt;p&gt;One type of support request that I occasionally receive from &lt;a href="http://www.cadlock.com/products/CADVault/"&gt;CADVault&lt;/a&gt; users goes something like &amp;ldquo;when I create a vault, AutoCAD crashes&amp;rdquo;. I&amp;rsquo;ve learned that problems like this are usually drawing-specific, so before going any further in &lt;a href="http://otb.manusoft.com/2011/02/the-art-of-simplifying-the-problem.htm"&gt;simplifying the problem&lt;/a&gt; I ask the customer to check whether the problem occurs in an empty drawing. But there&amp;rsquo;s a trick to this.&lt;/p&gt;</description></item><item><title>The art of simplifying the problem</title><link>http://www.manusoft.com/archive/blog/the-art-of-simplifying-the-problem/</link><pubDate>Wed, 23 Feb 2011 14:06:57 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/the-art-of-simplifying-the-problem/</guid><description>&lt;p&gt;One of the most important skills in resolving technical problems is not problem solving, but problem definition. Stripping a problem down to its essence often makes the solution obvious. I think this is generally true, but especially true in my experience with software tech support and tracking down software bugs.&lt;/p&gt;</description></item><item><title>All your base are belong to us</title><link>http://www.manusoft.com/archive/blog/all-your-base-are-belong-to-us/</link><pubDate>Mon, 24 Jan 2011 13:15:40 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/all-your-base-are-belong-to-us/</guid><description>&lt;p&gt;Excited news stories this morning about how &lt;a href="http://news.cnet.com/8301-27080_3-20028919-245.html"&gt;your computer is vulnerable to attack from a phone plugged into your USB port&lt;/a&gt; made me chuckle. This &amp;ldquo;novel hack&amp;rdquo; involves making an Android phone mimic a USB keyboard in order to send keystrokes to the computer. Cool, but why wouldn&amp;rsquo;t a hacker just use a USB keyboard in the first place?&lt;/p&gt;</description></item><item><title>What's the diff?</title><link>http://www.manusoft.com/archive/blog/whats-the-diff/</link><pubDate>Wed, 29 Dec 2010 16:32:31 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/whats-the-diff/</guid><description>&lt;p&gt;One of the required tools in a programmer&amp;rsquo;s toolbox is a tool for comparing files. File comparison utilities have come a long way since the original Unix diff command, but this genre of utilities is still referred to as &lt;a href="http://en.wikipedia.org/wiki/Diff"&gt;diff&lt;/a&gt; tools. For Windows, I use an open source diff utility called &lt;a href="https://sourceforge.net/projects/winmerge/"&gt;WinMerge&lt;/a&gt;. WinMerge includes a shell extension that makes it easy to use from within Windows Explorer.&lt;/p&gt;</description></item><item><title>Infinite Computing: Bah, Humbug!</title><link>http://www.manusoft.com/archive/blog/infinite-computing-bah-humbug/</link><pubDate>Thu, 23 Dec 2010 12:49:45 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/infinite-computing-bah-humbug/</guid><description>&lt;p&gt;At Autodesk University, Autodesk CEO Carl Bass &lt;a href="http://www.deelip.com/?p=4963"&gt;introduced the term &amp;ldquo;Infinite Computing&amp;rdquo;&lt;/a&gt; in an attempt to define Autodesk&amp;rsquo;s perspective on &amp;ldquo;the cloud&amp;rdquo; from a unique angle. I think the term is a brilliant and effective use of terminology because it focuses an otherwise nebulous concept and it radiates a sense of real and immediate purpose.&lt;/p&gt;</description></item><item><title>Debugging heap corruption with PageHeap</title><link>http://www.manusoft.com/archive/blog/debugging-heap-corruption-with-pageheap/</link><pubDate>Wed, 15 Dec 2010 12:58:33 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/debugging-heap-corruption-with-pageheap/</guid><description>&lt;p&gt;Heap corruption bugs in C++ code can present some difficult debugging challenges. Often the actual corruption goes unnoticed until some apparently random point in the future when the corrupt memory is accessed by unrelated code. In such cases, it&amp;rsquo;s almost impossible to infer the location of the bug using typical debugging tools.&lt;/p&gt;</description></item><item><title>Windows offline files</title><link>http://www.manusoft.com/archive/blog/windows-offline-files/</link><pubDate>Sun, 05 Dec 2010 13:20:03 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/windows-offline-files/</guid><description>&lt;p&gt;Do you use the &lt;a href="http://windows.microsoft.com/en-US/windows-vista/Understanding-offline-files"&gt;Windows offline files&lt;/a&gt; feature? I asked this question of some IT/CAD administrator types at Autodesk University last week, and was surprised to find that most didn&amp;rsquo;t even know what it was. In fact, of the dozen or so people I asked, only one actually used the feature.&lt;/p&gt;</description></item><item><title>Disable AutoCAD InfoCenter</title><link>http://www.manusoft.com/archive/blog/disable-autocad-infocenter/</link><pubDate>Mon, 01 Nov 2010 23:44:38 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/disable-autocad-infocenter/</guid><description>&lt;p&gt;Over the years, I and others have &lt;a href="http://otb.manusoft.com/2009/03/disable-infocenter-in-autocad-2010.htm"&gt;provided instructions&lt;/a&gt; for turning off the AutoCAD InfoCenter (or Communication Center in older versions). The &lt;a href="http://otb.manusoft.com/2007/09/autocad-2008-slow-startup-fix.htm"&gt;instructions are different&lt;/a&gt; depending on the AutoCAD version. To make things simple, I decided to roll them all up into a single one-size-fits-all MSI file that disables InfoCenter for any and all versions of AutoCAD  or AutoCAD LT in one fell swoop.&lt;/p&gt;</description></item><item><title>Visual Studio 2010 Migration Post Mortem</title><link>http://www.manusoft.com/archive/blog/visual-studio-2010-migration-post-mortem/</link><pubDate>Mon, 18 Oct 2010 23:49:22 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/visual-studio-2010-migration-post-mortem/</guid><description>&lt;p&gt;I have more or less completed the task of migrating my internal projects to Visual Studio 2010. Native C++ programmers are pretty low on the totem pole of programming coolness these days, but Microsoft did throw us a few bones. At this point I have to say I&amp;rsquo;m ambivalent overall with VS 2010, but I really like some of the architectural changes and I&amp;rsquo;m excited about the future.&lt;/p&gt;</description></item><item><title>Visual Studio 2010 Native Multi-Targeting</title><link>http://www.manusoft.com/archive/blog/visual-studio-2010-native-multi-targeting/</link><pubDate>Thu, 07 Oct 2010 02:16:19 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/visual-studio-2010-native-multi-targeting/</guid><description>&lt;p&gt;I was hoping that Microsoft would address &lt;a href="http://otb.manusoft.com/2010/01/visual-studio-2010-and-vc-build-hook.htm"&gt;the need to target earlier versions of Visual Studio&lt;/a&gt; within the Visual Studio 2010 IDE, but since &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/570466/vs-2010-native-build-cannot-produce-ansi-response-files"&gt;they decided to punt&lt;/a&gt;, I tackled the problem myself. I&amp;rsquo;ve released my solution as an open source project named &lt;a href="http://daffodil.codeplex.com/"&gt;Daffodil for Visual Studio&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>QuikPik 4.1 Adds Classic Title Bar Feature</title><link>http://www.manusoft.com/archive/blog/quikpik-4-1-adds-classic-title-bar-feature/</link><pubDate>Fri, 24 Sep 2010 22:54:28 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/quikpik-4-1-adds-classic-title-bar-feature/</guid><description>&lt;p&gt;Those of you with bad eyesight (and the rest of us throwbacks) will appreciate the &lt;a href="http://www.manusoft.com/software/quikpik/news/52-quikpik-41-adds-classic-title-bar-feature.html"&gt;new &amp;lsquo;Classic title bar&amp;rsquo; feature&lt;/a&gt; in &lt;a href="http://www.manusoft.com/software/quikpik.html"&gt;QuikPik 4.1&lt;/a&gt;. This new feature addresses AutoCAD 2009 and later versions of AutoCAD with the fancy schmancy title bar and menu bar.&lt;/p&gt;</description></item><item><title>The Cancel Retry Paradox</title><link>http://www.manusoft.com/archive/blog/the-cancel-retry-paradox/</link><pubDate>Wed, 25 Aug 2010 15:19:09 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/the-cancel-retry-paradox/</guid><description>&lt;p&gt;Yesterday when I attempted to install the &lt;a href="http://withoutanet.typepad.com/without_a_net/2010/08/update-1-released-for-autocad-and-autocad-lt-2011-.html"&gt;AutoCAD 2011 service pack&lt;/a&gt; (er, I mean &amp;ldquo;update&amp;rdquo;), I encountered the classic UI paradox where you&amp;rsquo;re forced to choose from a set of equally undesirable choices, this time with a bonus.&lt;/p&gt;
&lt;p&gt;I received error 1321. My choices were to retry or cancel. If I chose to retry, I got the same error again. If I chose to cancel, I got a bonus question: it asked whether I really wanted to cancel. I had to lie and choose yes, otherwise I would be trapped in an infinite loop.&lt;/p&gt;</description></item><item><title>Missing Language Pack DWG File Repair</title><link>http://www.manusoft.com/archive/blog/missing-language-pack-dwg-file-repair/</link><pubDate>Thu, 22 Jul 2010 00:11:46 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/missing-language-pack-dwg-file-repair/</guid><description>&lt;p&gt;I &lt;a href="http://otb.manusoft.com/2009/08/autocad-anguage-pack-drawing-file.htm"&gt;wrote before&lt;/a&gt; about corrupt text causing bogus &amp;ldquo;Missing Language Pack&amp;rdquo; warnings in AutoCAD. That case prompted me to write a file repair utility. However, since the case appeared to be isolated, I never released the utility to the public.&lt;/p&gt;
&lt;p&gt;The problem has been &lt;a href="http://www.blog.cadnauseam.com/2010/07/22/partial-fix-for-language-pack-problem/"&gt;rearing its ugly head again&lt;/a&gt;, so I decided to dust off the original code and release it. The repair utility is now available on the &lt;a href="http://www.manusoft.com/software/freebies/arx.html"&gt;freebies page&lt;/a&gt; (look for CleanLanguage.zip) for AutoCAD 2007 and later versions of AutoCAD. I have not tested any recent cases, so I can&amp;rsquo;t be sure it is the same problem. If you try the utility, please report your results by leaving a comment here.&lt;/p&gt;</description></item><item><title>Free Confidentiality Agreements</title><link>http://www.manusoft.com/archive/blog/free-confidentiality-agreements/</link><pubDate>Thu, 08 Jul 2010 12:46:08 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/free-confidentiality-agreements/</guid><description>&lt;p&gt;It&amp;rsquo;s not too often that lawyers give away their work, but Gene Quinn of &lt;a href="http://www.ipwatchdog.com/"&gt;IPWatchdog.com&lt;/a&gt; is doing just that by providing some &lt;a href="http://www.ipwatchdog.com/tradesecret/sample-confidentiality-agreements/"&gt;free sample confidentiality agreements&lt;/a&gt;. If you can afford to pay an attorney for simple agreements like this, more power to you; otherwise you may want to grab these free agreements while you can. There is of course a disclaimer, but thankfully it&amp;rsquo;s short and simple just like the agreements.&lt;/p&gt;</description></item><item><title>Deelip Menezes Predicts a Cloudy Future</title><link>http://www.manusoft.com/archive/blog/deelip-menezes-predicts-cloudy-future/</link><pubDate>Mon, 28 Jun 2010 16:28:54 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/deelip-menezes-predicts-cloudy-future/</guid><description>&lt;p&gt;I had the &lt;a href="http://otb.manusoft.com/2010/06/bricsys-2010-developer-conference-post-mortem.htm"&gt;good fortune&lt;/a&gt; of hearing &lt;a href="http://www.deelip.com"&gt;Deelip Menezes&lt;/a&gt; deliver the keynote address at the &lt;a href="http://www.bricsys.com/conference/"&gt;Bricsys 2010 Conference&lt;/a&gt; in person. If you missed it, check out the video now at the &lt;a href="http://www.bricsys.com"&gt;Bricsys web site&lt;/a&gt;. The question and answer session after the speech is an excellent harbinger of the discussions to come if Deelip is correct in his prediction about CAD on the cloud.&lt;/p&gt;</description></item><item><title>Using VC 7 build tools in Visual Studio 2010</title><link>http://www.manusoft.com/archive/blog/using-vc-7-build-tools-in-visual-studio-2010/</link><pubDate>Thu, 24 Jun 2010 16:13:38 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/using-vc-7-build-tools-in-visual-studio-2010/</guid><description>&lt;p&gt;&lt;em&gt;[Update: See &lt;/em&gt;&lt;a href="http://otb.manusoft.com/2010/10/visual-studio-2010-native-multi-targeting.htm"&gt;&lt;em&gt;Visual Studio 2010 Native Multi-Targeting&lt;/em&gt;&lt;/a&gt;&lt;em&gt;]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Developers, if you use &lt;a href="http://www.manusoft.com/resources/arxtips/vcbuildhook.html"&gt;VC Build Hook&lt;/a&gt; and/or need the same capability in Visual Studio 2010, please let Microsoft know by &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/570466/vs-2010-native-build-cannot-produce-ansi-response-files"&gt;voting for a fix&lt;/a&gt;. I&amp;rsquo;ve &lt;a href="http://otb.manusoft.com/2010/01/visual-studio-2010-and-vc-build-hook.htm"&gt;written before&lt;/a&gt; (and &lt;a href="http://otb.manusoft.com/2010/04/visual-studio-2010-ships.htm"&gt;here&lt;/a&gt;) about the problem. I think it is possible to hack a third party solution, but by far the best solution is for Microsoft to add back the ability to produce ANSI response files in service pack 1.&lt;/p&gt;</description></item><item><title>GlowCode Success Story</title><link>http://www.manusoft.com/archive/blog/glowcode-success-story/</link><pubDate>Sat, 12 Jun 2010 18:56:33 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/glowcode-success-story/</guid><description>&lt;p&gt;I use &lt;a href="http://www.glowcode.com"&gt;GlowCode&lt;/a&gt; for profiling ObjectARX applications. As far as I know, this is the only profiler that works with AutoCAD. What makes GlowCode special is that it can instrument code on the fly, including a monster like AutoCAD. It has a clunky interface that takes some patience to figure out, but it&amp;rsquo;s a lifesaver when you need it.&lt;/p&gt;</description></item><item><title>Bricsys 2010 Developer Conference Post Mortem</title><link>http://www.manusoft.com/archive/blog/bricsys-2010-developer-conference-post-mortem/</link><pubDate>Fri, 11 Jun 2010 17:09:02 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/bricsys-2010-developer-conference-post-mortem/</guid><description>&lt;p&gt;I am back home after a whirlwind trip to the &lt;a href="http://www.bricsys.com/conference/"&gt;Bricsys 2010 Conference&lt;/a&gt;. I&amp;rsquo;m very happy to be back to Ohio food and my own bed. It was a great experience and well worth the trouble.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve &lt;a href="http://otb.manusoft.com/2007/12/au-2007-post-mortem.htm"&gt;written before&lt;/a&gt; (and &lt;a href="http://www.manusoft.com/resources/anecdotes/au97.html"&gt;here&lt;/a&gt;) about the problem with food at conferences, and this one was no different. Unfortunately, there are no Burger Kings in Belgium, so the problem was compounded. I was excited when I saw a restaurant touting &amp;ldquo;American Food&amp;rdquo;, unfortunately it was &amp;ldquo;American Food as Europeans Imagine It&amp;rdquo;, which is not American food at all.&lt;/p&gt;</description></item><item><title>Belgium Bound</title><link>http://www.manusoft.com/archive/blog/belgium-bound/</link><pubDate>Sun, 06 Jun 2010 08:24:11 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/belgium-bound/</guid><description>&lt;p&gt;&lt;a href="http://www.bricsys.com"&gt;Bricsys&lt;/a&gt; asked me to give a short presentation about &lt;a href="http://opendcl.com/wordpress/?p=137"&gt;OpenDCL&lt;/a&gt; to developers at their &lt;a href="http://www.bricsys.com/conference/"&gt;Bricsys 2010 Conference&lt;/a&gt; in Bruges next week. I&amp;rsquo;m looking forward to meet keynote speaker &lt;a href="http://www.deelip.com"&gt;Deelip Menezes&lt;/a&gt; and other familiar names in the CAD community, and of course planning to learn more about the ever evolving Bricscad platform.&lt;/p&gt;</description></item><item><title>The customer doesn't count</title><link>http://www.manusoft.com/archive/blog/the-customer-doesnt-count/</link><pubDate>Thu, 27 May 2010 18:31:14 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/the-customer-doesnt-count/</guid><description>&lt;p&gt;Autodesk has been pushing for years now to get all customers onto an annual subscription program. They&amp;rsquo;ve trotted out the typical reasons: it&amp;rsquo;s cheaper, it&amp;rsquo;s easier, it&amp;rsquo;s simpler, you get more free stuff, etc. Clearly the &amp;ldquo;sell now, deliver later&amp;rdquo; model is better for Autodesk, and it&amp;rsquo;s not surprising that Autodesk has been pushing it hard.&lt;/p&gt;</description></item><item><title>New ManuSoft web site</title><link>http://www.manusoft.com/archive/blog/new-manusoft-web-site/</link><pubDate>Mon, 17 May 2010 19:35:50 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/new-manusoft-web-site/</guid><description>&lt;p&gt;After &lt;a href="http://web.archive.org/web/20000510004912/http://www.manusoft.com/"&gt;over 10 years&lt;/a&gt; of the same infrastructure and the same look and feel, the ManuSoft web site has finally been given an overhaul. The original web site used Perl scripts that I wrote myself to serve up pages by patching together a header, table-of-contents, and main content frame and displaying it either as a 3-frame web page or by using an HTML &amp;lt;table&amp;gt; to format the layout. It wasn&amp;rsquo;t exactly pretty, but it functioned well and served its purpose for a long time.&lt;/p&gt;</description></item><item><title>AutoCAD 2011 EULA Changes</title><link>http://www.manusoft.com/archive/blog/autocad-2011-eula-changes/</link><pubDate>Sun, 02 May 2010 02:44:40 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autocad-2011-eula-changes/</guid><description>&lt;p&gt;For AutoCAD 2011, Autodesk made relatively few changes in the EULA. They fixed the &lt;a href="http://otb.manusoft.com/2009/03/whats-new-in-autocad-2010-eula.htm"&gt;grammar error that was introduced in AutoCAD 2010&lt;/a&gt;, but they didn&amp;rsquo;t make any changes to the convoluted &amp;ldquo;License Grant&amp;rdquo; wording that was also added in AutoCAD 2010.&lt;/p&gt;</description></item><item><title>All your tweets are belong to us</title><link>http://www.manusoft.com/archive/blog/all-your-tweets/</link><pubDate>Thu, 15 Apr 2010 16:00:21 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/all-your-tweets/</guid><description>&lt;p&gt;The Library of Congress announced yesterday that they are &lt;a href="http://blogs.loc.gov/loc/2010/04/how-tweet-it-is-library-acquires-entire-twitter-archive/"&gt;archiving every tweet ever published&lt;/a&gt;. I think a lot of people consider their tweets (and Facebook messages) as ephemeral writing that disappears into the ether, without &lt;a href="http://www.lamebook.com"&gt;thinking about the implications of its survival (mildly NSFW)&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Visual Studio 2010 Ships</title><link>http://www.manusoft.com/archive/blog/visual-studio-2010-ships/</link><pubDate>Mon, 12 Apr 2010 20:34:40 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/visual-studio-2010-ships/</guid><description>&lt;p&gt;Visual Studio 2010 &lt;a href="http://blogs.msdn.com/visualstudio/archive/2010/04/12/visual-studio-2010-is-now-available.aspx"&gt;shipped today&lt;/a&gt; accompanied by .NET Framework 4.0. I blogged before about the switch to using the MSBuild build system, and how that theoretically could be helpful in targeting multiple AutoCAD versions from the same solution. The shipping VS 2010 does not support non-Unicode response files, so out-of-the-box it cannot target VC 7.0 (for AutoCAD 2006 and earlier). When time permits, I&amp;rsquo;m planning to see if I can find a workaround; in the meantime, I&amp;rsquo;ll continue to use VS 2008 for ObjectARX.&lt;/p&gt;</description></item><item><title>A brief history of copyright</title><link>http://www.manusoft.com/archive/blog/a-brief-history-of-copyright/</link><pubDate>Sat, 10 Apr 2010 17:32:30 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/a-brief-history-of-copyright/</guid><description>&lt;p&gt;Tyler Ochoa (law professor and two time &amp;ldquo;Jeopardy!&amp;rdquo; champion) writes &lt;a href="http://blog.ericgoldman.org/archives/2010/04/ochoa_on_the_le.htm"&gt;an interesting post about the 300th anniversary of the first copyright law, called the &lt;em&gt;Statute of Anne&lt;/em&gt;&lt;/a&gt;. Referring to the motivation behind the original law, Ochoa says &amp;ldquo;Although the Stationers were chiefly concerned with restoring and perpetuating their monopoly, they framed their petition to Parliament in terms of justice for authors.&amp;rdquo; In many respects, not much has changed since 1710.&lt;/p&gt;</description></item><item><title>AutoCAD for Mac</title><link>http://www.manusoft.com/archive/blog/autocad-for-mac/</link><pubDate>Sat, 10 Apr 2010 16:51:11 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autocad-for-mac/</guid><description>&lt;p&gt;There have been &lt;a href="http://autodesk.blogs.com/between_the_lines/2009/04/i-need-your-input-on-autocad-for-the-apple-mac-os-x.html"&gt;rumblings&lt;/a&gt; and &lt;a href="http://autocadder.blogspot.com/2010/01/autocad-2011-natively-on-mac.html"&gt;rumors&lt;/a&gt; for a while now about a native Mac OS X port of AutoCAD. The ObjectARX 2011 SDK header files contain clear evidence of a native Mac port in the works. The evidence comes in the form of code comments and changes made to the files so that they work with the GCC compiler and the Mac OS X libraries.&lt;/p&gt;</description></item><item><title>Follow Me</title><link>http://www.manusoft.com/archive/blog/follow-me/</link><pubDate>Sat, 10 Apr 2010 00:41:22 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/follow-me/</guid><description>&lt;p&gt;Thanks to Google&amp;rsquo;s decision to eliminate FTP publishing as of May 1, I&amp;rsquo;ve moved my blog to Wordpress. I&amp;rsquo;ve tried to make the transition as seamless as possible by ensuring that the permalink URL for every post remains unchanged. Unfortunately the RSS feed reader URL has changed, so make sure you visit the blog home page and update your feed URL (this will be the last post at the old URL):&lt;/p&gt;</description></item><item><title>What's In A Name?</title><link>http://www.manusoft.com/archive/blog/whats-in-name/</link><pubDate>Sat, 03 Apr 2010 11:53:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/whats-in-name/</guid><description>&lt;p&gt;There is a relationship between what we call something (or someone) and how we feel about it. This relationship works both ways. We use names to convey feelings, but a name can also affect how we feel about something.&lt;br /&gt;&lt;br /&gt;This leads to some interesting, and sometimes funny, names. For example, it leads to gimmicks like the authoritarian &lt;a href="http://en.wikipedia.org/wiki/North_Korea"&gt;&amp;ldquo;Democratic People&amp;rsquo;s Republic of Korea&amp;rdquo;&lt;/a&gt;, and &lt;a href="http://otb.manusoft.com/2008/09/update-vs-service-pack.htm"&gt;bug fixes called &amp;ldquo;updates&amp;rdquo;&lt;/a&gt; (or &amp;ldquo;stability improvements&amp;rdquo; as I saw recently).&lt;br /&gt;&lt;br /&gt;Using a craftily devised name to project an image is not new, but I think the practice is abused to such an extent these days that the value of names has become worthless. Furthermore, all the good names are already taken. Therefore, I propose to abolish all names and henceforth use only &lt;a href="http://en.wikipedia.org/wiki/Globally_Unique_Identifier"&gt;GUIDs&lt;/a&gt; (or for the less democratically inclined, serial numbers issued by a central numbering authority).&lt;/p&gt;</description></item><item><title>Port Your ObjectARX Code to 64 Bit</title><link>http://www.manusoft.com/archive/blog/port-your-objectarx-code-to-64-bit/</link><pubDate>Thu, 11 Mar 2010 23:08:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/port-your-objectarx-code-to-64-bit/</guid><description>&lt;p&gt;AutoCAD versions since AutoCAD 2008 (and since AutoCAD LT 2009) have included both 32 bit and 64 bit flavors on the same media. If you install on a 64 bit Windows system, you get the 64 bit AutoCAD; otherwise you get the 32 bit AutoCAD. The 64 bit AutoCAD can take advantage of as much memory as you can throw at it, whereas the 32 bit version is limited to 2 GB (3 GB if you cheat). They should be otherwise identical in theory, but in practice there are major differences.&lt;br /&gt;&lt;br /&gt;One big difference is VBA. Microsoft put VBA out to pasture many years ago when they introduced the .NET framework, so there will never be a 64 bit version of VBA. Autodesk had to resort to a seriously inefficient kludge to get it to work at all in the 64 bit flavor of AutoCAD (VBA has to run in a separate 32 bit process, which makes typical applications two orders of magnitude slower).&lt;br /&gt;&lt;br /&gt;The other big difference is that any third party ObjectARX applications must be installed for the correct architecture. A 32 bit ObjectARX application will not work in a 64 bit AutoCAD. [Note that .NET (or &amp;ldquo;managed&amp;rdquo;) applications typically work fine in both architectures &amp;ndash; I&amp;rsquo;m referring to native C++ ObjectARX applications only.]&lt;br /&gt;&lt;br /&gt;On the Autodesk discussion groups, many people ask how they can install the 32 bit version of AutoCAD on their new 64 bit operating system. Why would they want to do that? Almost always because they need to use an application that is only available for 32 bit AutoCAD architectures, or because they discover that their VBA applications become unbearably slow.&lt;br /&gt;&lt;br /&gt;It is possible, with some hacking of the AutoCAD installation database, to install the 32 bit flavor of AutoCAD on a 64 bit system, but I don&amp;rsquo;t recommend that. There is just no excuse any more to not support the 64 bit architecture. If you find yourself in this situation, put pressure on the developer of the application to get it ported.&lt;br /&gt;&lt;br /&gt;In fact, if you rely on an application that hasn&amp;rsquo;t been ported to the 64 bit architecture, I&amp;rsquo;d like to hear from you. Add a comment to this post and let me know the name of the application. If you are a vendor or developer that has not yet ported your 32 bit application, please &lt;a href="mailto:owenw@manusoft.com"&gt;contact me&lt;/a&gt; &amp;ndash; I will gladly port it for you. Even large applications can typically be ported in several hours.&lt;br /&gt;&lt;br /&gt;BTW, I am well aware that even Autodesk is guilty of not supporting 64 bit platforms in some of its vertical market AutoCAD versions (and corresponding object enablers). I certainly hope they remedy that situation in the next release cycle.&lt;/p&gt;</description></item><item><title>RIP Alan Kalameja</title><link>http://www.manusoft.com/archive/blog/rip-alan-kalameja/</link><pubDate>Tue, 09 Mar 2010 13:05:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/rip-alan-kalameja/</guid><description>&lt;p&gt;I saw in the March 8 edition of the &lt;a href="http://www.tenlinks.com/news/tl_daily.htm"&gt;TenLinks Daily newsletter&lt;/a&gt; that &lt;a href="http://www.postandcourier.com/news/2010/mar/06/deaths-summary/"&gt;Alan Kalameja passed away&lt;/a&gt; at age 55. Condolences to his family. Alan hired me to write test questions for an AutoCAD certification exam in the early &amp;rsquo;90s (I don&amp;rsquo;t recall which version, but probably either R12 or R13). That was one of my first real contracting jobs. Although it wasn&amp;rsquo;t very glamorous, it made me feel important, and undoubtedly helped focus my fledgling consulting business on AutoCAD. Thanks, Alan, for giving me that opportunity.&lt;/p&gt;</description></item><item><title>Google killed the radio star</title><link>http://www.manusoft.com/archive/blog/google-killed-radio-star/</link><pubDate>Sun, 17 Jan 2010 12:40:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/google-killed-radio-star/</guid><description>&lt;p&gt;This post is inspired by a conversation I had with a nephew, and it hearkens to the same nostalgic emotions engendered by &lt;a href="http://en.wikipedia.org/wiki/Video_Killed_the_Radio_Star"&gt;the first music video on MTV&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I was a young inquisitive child growing up in the 70s in an Amish household. Without access to modern technology, I struggled at age 11 to build an oscillator circuit by using sheet metal cut from an old stovepipe, a 9 volt battery fitted into a piece of 2x6 pine, dynamite wire scavenged from the nearby strip mine, and a speaker and 555 timer IC that I cut out of some electronic equipment dug out of the local garbage dump.&lt;br /&gt;&lt;br /&gt;The achievement was incredible considering the circumstances, but thinking back, I have very little recollection of the actual consummation of the project. I assume I probably showed it proudly to my friends, who would have been awestruck, but completely ignorant of how it worked or why it was important to me. I simply don&amp;rsquo;t remember what I did with the project after it was complete.&lt;br /&gt;&lt;br /&gt;What I do remember fondly is the struggle to achieve; the thrill of the hunt. I struggled to get information. I had obtained a prized 555, but I had to wait for weeks until the next trip to the city so I could stop by Radio Shack to get a pinout of the 555 along with circuit diagrams showing how to use it. Then I had to find components. I had long since built a treasure trove of capacitors and resistors that I had salvaged from discarded electronics, along with a pot full of potentiometers that I could use to adjust the oscillator frequency, but I still had to scavenge for some missing components.&lt;br /&gt;&lt;br /&gt;The challenges of the quest made the final result more satisfying. It was the search for the holy grail that etched itself into my memory; I barely remember the grail itself.&lt;br /&gt;&lt;br /&gt;Over the holidays during a family gathering, one of my Amish nephews was anxious to pick my brain. He explained that someone had told him that it&amp;rsquo;s possible to convert an electric motor into a generator, and so he set out on a quest to build a generator from an old electric motor and a small gasoline engine. The quest involved several letters mailed back and forth between people he knew that might have information about how to go about the task. He tried and tried, but could not get his generator to work.&lt;br /&gt;&lt;br /&gt;I explained to him how he needed to remove the external circuitry from his motor so that it wouldn&amp;rsquo;t foul up the results; how he can add a rectifier and a regulator to generate direct current output. The excitement over this new discovery was written all over the young man&amp;rsquo;s face as he anticipated more adventure.&lt;br /&gt;&lt;br /&gt;On the way home, I thought to myself that Google could quickly and easily have provided the answers that my nephew sought. But then it occurred to me that Google would also have deprived him of the struggle and adventure of discovery that motivates him to continue the quest.&lt;br /&gt;&lt;br /&gt;I wonder how many young minds are missing out on the supreme adventure of discovery because we live in a modern culture where all the knowledge in the universe is seemingly already at our fingertips, just a Google search away.&lt;/p&gt;</description></item><item><title>Visual Studio 2010 and VC Build Hook</title><link>http://www.manusoft.com/archive/blog/visual-studio-2010-and-vc-build-hook/</link><pubDate>Mon, 11 Jan 2010 20:32:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/visual-studio-2010-and-vc-build-hook/</guid><description>&lt;p&gt;&lt;em&gt;[Update: See &lt;/em&gt;&lt;a href="http://otb.manusoft.com/2010/10/visual-studio-2010-native-multi-targeting.htm"&gt;&lt;em&gt;Visual Studio 2010 Native Multi-Targeting&lt;/em&gt;&lt;/a&gt;&lt;em&gt;]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Many of you use my &lt;a href="http://www.manusoft.com/resources/arxtips/vcbuildhook.html"&gt;VC Build Hook utility&lt;/a&gt; to target multiple versions of AutoCAD from a single solution in Visual Studio 2008. Visual Studio 2010 now includes a new feature called &lt;a href="http://blogs.msdn.com/vcblog/archive/2009/12/08/c-native-multi-targeting.aspx"&gt;native multi-targeting&lt;/a&gt; that performs the same function as VC Build Hook. The new feature works great for using build tools back to VC 7.1, but it does not work with VC 7, which is required for targeting AutoCAD versions 2006 and earlier.&lt;/p&gt;</description></item><item><title>Automatic LISP Loading</title><link>http://www.manusoft.com/archive/blog/automatic-lisp-loading/</link><pubDate>Thu, 24 Dec 2009 12:12:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/automatic-lisp-loading/</guid><description>&lt;p&gt;There are a myriad of ways to load AutoLISP applications in AutoCAD, including acaddoc.lsp, an .mnl file, the Startup Suite, and manually by various means. For application developers wishing to deploy their applications to others, all of these methods have drawbacks. The ideal solution should be easy to implement in an installation program, require minimal or zero changes to the user&amp;rsquo;s AutoCAD configuration, work the same way across all versions of AutoCAD, and easily undone when the application is uninstalled.&lt;/p&gt;</description></item><item><title>Evil Banks</title><link>http://www.manusoft.com/archive/blog/evil-banks/</link><pubDate>Wed, 11 Nov 2009 15:10:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/evil-banks/</guid><description>&lt;p&gt;A lot of you are probably having to cut back on your expenses to make ends meet in this economic downturn. I&amp;rsquo;ve drastically reduced my discretionary spending, postponed the purchase of new office equipment, and investigated less expensive alternatives to a lot of my monthly expense items. I&amp;rsquo;ve also been streamlining and reorganizing my finances, which inevitably involves a lot of contact with banks.&lt;br /&gt;&lt;br /&gt;Kean Walmsley&amp;rsquo;s post about his recent &lt;a href="http://through-the-interface.typepad.com/through_the_interface/2009/11/turing-test-for-live-bank-chat-failed.html"&gt;bank customer service issue&lt;/a&gt; motivated me to post about one of my recent bank experiences.&lt;br /&gt;&lt;br /&gt;First of all, I&amp;rsquo;m here to tell you that banks do make mistakes. I&amp;rsquo;m sure that the vast majority of the time when your check book doesn&amp;rsquo;t balance, it was you that made a mistake, and not the bank. But if you are cursed like I am, then banks delight in creating phantom overdrafts and charging you exorbitant overdraft fees, then, when confronted with their error, apologizing and refunding the fees (&lt;em&gt;after&lt;/em&gt; the damage is done and all those bounced checks have caused you to incur returned check charges from your creditors). That has happened twice to me in the past two months, with two different banks and two completely unrelated accounts.&lt;br /&gt;&lt;br /&gt;In both cases, the bank eventually fixed the error, but I&amp;rsquo;m still out the returned check charges and whatever damage that has done to my credit rating.&lt;br /&gt;&lt;br /&gt;One of the &amp;ldquo;returned&amp;rdquo; payments was a credit card payment. Of course, I did not get notified about this until the day &lt;em&gt;after&lt;/em&gt; the payment due date, so it was too late to fix the problem in time to prevent another exorbitant late fee from being charged by the credit card bank.&lt;br /&gt;&lt;br /&gt;Obviously the returned check triggered some alarms at the credit card bank, because I started receiving phone calls begging me to make a payment immediately. Irritated, I decided to make the credit card bank wait until the next due date before making the replacement payment. I figured my late fee bought me that extra time, so I might as well use it. My patience paid off: after a few futile attempts at collecting their late payment, the bank offered to refund the late fee if I made an immediate payment. &lt;em&gt;That&amp;rsquo;s what I&amp;rsquo;m talking about!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>ArxDbg Utility</title><link>http://www.manusoft.com/archive/blog/arxdbg-utility/</link><pubDate>Wed, 23 Sep 2009 18:31:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/arxdbg-utility/</guid><description>&lt;p&gt;ArxDbg is the name of a sample project that has been included with the ObjectARX SDK for many years. It&amp;rsquo;s primary purpose is to demonstrate how to use the ObjectARX API, but it is a complete free-standing utility in its own right. ObjectARX programmers often use this utility during development for testing and exercising their application code, but it can be useful to anybody, not just programmers.&lt;/p&gt;</description></item><item><title>AutoCAD Missing Language Pack Drawing File Corruption</title><link>http://www.manusoft.com/archive/blog/autocad-anguage-pack-drawing-file/</link><pubDate>Mon, 03 Aug 2009 13:38:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autocad-anguage-pack-drawing-file/</guid><description>&lt;p&gt;I&amp;rsquo;ve been chasing a drawing corruption problem on behalf of a customer. The problem manifests itself by causing a &amp;ldquo;Missing Language Pack&amp;rdquo; dialog to display when the drawing is opened (but only in Windows XP with no language packs installed &amp;ndash; my Vista installation apparently has all the language packs installed). Installing the language packs &amp;ldquo;fixes&amp;rdquo; the problem, in that the drawing files open without error.&lt;br /&gt;&lt;br /&gt;However, the real problem is that some drawing objects were corrupted in memory, and corrupt data was subsequently written to the .dwg file. My customer thinks the corruption might be linked to a virus that they were infected with (and have since eliminated). I have a copy of the virus for testing, but I have not been able to catch it in the act of corrupting an open drawing file. Therefore, I cannot conclusively link the virus with the corruption.&lt;br /&gt;&lt;br /&gt;So, I need your help. Have you recently noticed a &amp;ldquo;Missing Language Pack&amp;rdquo; dialog appearing in drawing files that have opened fine in the past? Has your virus scanner recently detected an AutoCAD related virus? If you have, please &lt;a href="mailto:owenw@manusoft.com?subject=Language%20Pack%20Corruption"&gt;send me an email&lt;/a&gt; describing your situation and AutoCAD versions involved. I would like to determine conclusively whether the virus is causing drawing file corruption, and if so, whether the corruption is always in the same location of the drawing file.&lt;br /&gt;&lt;br /&gt;[Update: Autodesk has released a technical document with &lt;a href="http://usa.autodesk.com/getdoc/id=TS13717811"&gt;information about the virus&lt;/a&gt;. See also &lt;a href="http://autodesk.blogs.com/between_the_lines/2009/08/malicious-code-alert-acadvlx-and-solution.html"&gt;Shaan Hurley&amp;rsquo;s blog post&lt;/a&gt;.]&lt;/p&gt;</description></item><item><title>If you want it done right...</title><link>http://www.manusoft.com/archive/blog/if-you-want-it-done-right/</link><pubDate>Wed, 08 Jul 2009 09:05:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/if-you-want-it-done-right/</guid><description>&lt;p&gt;I&amp;rsquo;ve proved once again that if you want it done right, you have to do it yourself. The ManuSoft web site is fully functional again after my longtime ISP had a major network meltdown. I waited for two weeks for them to repair it, then finally moved to a different provider. The new provider&amp;rsquo;s promised &amp;ldquo;24/7 tech support&amp;rdquo; turned out to mean &amp;ldquo;24 hours to respond, 7 days to fix&amp;rdquo; every problem, not to mention that I would need to provide step by step instructions to their techs so they could configure the server the way I needed. After two weeks of that, I gave up and configured my own server and now host it myself.&lt;br /&gt;&lt;br /&gt;Let this be a warning to all of you hosting web sites with reputable providers, or storing your data somewhere in the cloud. I paid big bucks every month to my old provider for secure servers, redundant power supplies, managed and air conditioned server rooms, nightly backups, 99% uptime, etc., but they still lost everything. Almost a month later they still haven&amp;rsquo;t restored their customers&amp;rsquo; data. Luckily, I make my own backups.&lt;/p&gt;</description></item><item><title>Disable InfoCenter in AutoCAD 2010</title><link>http://www.manusoft.com/archive/blog/disable-infocenter-in-autocad-2010/</link><pubDate>Mon, 30 Mar 2009 18:13:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/disable-infocenter-in-autocad-2010/</guid><description>&lt;p&gt;&lt;em&gt;[Update: See &lt;a href="http://otb.manusoft.com/2010/11/disable-autocad-infocenter.htm"&gt;Disable AutoCAD InfoCenter&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In case you missed it, &lt;a href="http://discussion.autodesk.com/forums/thread.jspa?threadID=721735&amp;amp;tstart=1"&gt;Tony Tanzillo has posted instructions&lt;/a&gt; for disabling the InfoCenter in AutoCAD 2010. AutoCAD 2010 starts faster when the InfoCenter is disabled.&lt;/p&gt;
&lt;p&gt;To make it easy, I&amp;rsquo;ve created an AutoLISP file that defines commands named DisableInfoCenter and EnableInfoCenter:&lt;/p&gt;</description></item><item><title>ObjectARX 2010: Dealing With Missing Exports</title><link>http://www.manusoft.com/archive/blog/objectarx-2010-dealing-with-missing/</link><pubDate>Sat, 28 Mar 2009 16:54:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/objectarx-2010-dealing-with-missing/</guid><description>&lt;p&gt;In the new ObjectARX 2010 SDK, Autodesk has added some new virtual member functions that are not exported as they should be. For example, the AcGiFaceData class has had two new virtual functions added for setting and getting the face transparency:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color:#990000;"&gt;class&lt;/span&gt; AcGiFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; public&lt;/span&gt; AcRxObject&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/b&gt;&lt;i&gt;&lt;span style="color:#999999;"&gt;&lt;br /&gt;//[&amp;hellip; deleted for brevity]&lt;br /&gt;&lt;/span&gt;&lt;/i&gt; ACDB_PORT&lt;span style="color:#990000;"&gt; virtual&lt;/span&gt; AcDbObjectId&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;em&gt;&lt;/span&gt;&lt;/b&gt; materials&lt;b&gt;&lt;span style="color:#663300;"&gt;()&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; const&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; ACDB_PORT&lt;span style="color:#990000;"&gt; virtual&lt;/span&gt; AcGiMapper&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt; mappers&lt;b&gt;&lt;span style="color:#663300;"&gt;()&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; const&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#990000;"&gt; virtual&lt;/span&gt;&lt;span style="color:#ff6633;"&gt; void&lt;/span&gt; setTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;const&lt;/span&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; &lt;em&gt;&lt;/span&gt;&lt;/b&gt;transparency&lt;b&gt;&lt;span style="color:#663300;"&gt;);&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; virtual&lt;/span&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt; transparency&lt;b&gt;&lt;span style="color:#663300;"&gt;()&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; const&lt;/span&gt;&lt;/strong&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; AcGiImpFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt; &lt;em&gt;&lt;/span&gt;&lt;/b&gt;mpAcGiImpFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;br /&gt;};&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;As you can see, whoever added the new functions neglected to prefix them with the ACDB_PORT macro. ACDB_PORT evaluates to __declspec(export), which tells the compiler to export the function. Since the macro is missing, the new functions are not exported from acdb18.dll.&lt;br /&gt;&lt;br /&gt;Since these are virtual functions, you won&amp;rsquo;t have any problems calling them through a pointer to an AcGiFaceData object that was constructed by AutoCAD. The problem arises when you derive a class from AcGiFaceData. Since the functions are not exported, the linker has no way of resolving their address for creating the virtual function table of your derived class. This results in linker errors:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;acrxEntryPoint.obj : error LNK2001: unresolved external symbol &amp;ldquo;public: virtual void __thiscall AcGiFaceData::setTransparency(class AcCmTransparency const &lt;em&gt;)&amp;rdquo; (?setTransparency@AcGiFaceData@@UAEXPBVAcCmTransparency@@@Z)&lt;br /&gt;acrxEntryPoint.obj : error LNK2001: unresolved external symbol &amp;ldquo;public: virtual class AcCmTransparency * __thiscall AcGiFaceData::transparency(void)const &amp;quot; (?transparency@AcGiFaceData@@UBEPAVAcCmTransparency@@XZ)&lt;/blockquote&gt;Following is an example that results in these errors:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color:#990000;"&gt;class&lt;/span&gt; AcGiFaceDataEx&lt;b&gt;&lt;span style="color:#663300;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; public&lt;/span&gt; AcGiFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; AcGiFaceDataEx&lt;b&gt;&lt;span style="color:#663300;"&gt;() {}&lt;br /&gt; ~&lt;/span&gt;&lt;/b&gt;AcGiFaceDataEx&lt;b&gt;&lt;span style="color:#663300;"&gt;() {}&lt;br /&gt;}&lt;/span&gt;&lt;/b&gt; Test&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The only solution is to provide an implementation of the missing functions. In this case, it could be accomplished by something like this:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color:#990000;"&gt;class&lt;/span&gt; AcGiFaceDataEx&lt;b&gt;&lt;span style="color:#663300;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; public&lt;/span&gt; AcGiFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt; mpTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;:&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; AcGiFaceDataEx&lt;b&gt;&lt;span style="color:#663300;"&gt;() :&lt;/span&gt;&lt;/b&gt; mpTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt; NULL&lt;b&gt;&lt;span style="color:#663300;"&gt; ) {}&lt;br /&gt; ~&lt;/span&gt;&lt;/b&gt;AcGiFaceDataEx&lt;b&gt;&lt;span style="color:#663300;"&gt;() {&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; delete&lt;/span&gt; mpTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;; }&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; virtual&lt;/span&gt;&lt;span style="color:#ff6633;"&gt; void&lt;/span&gt; setTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;const&lt;/span&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; &lt;em&gt;&lt;/span&gt;&lt;/b&gt;transparency&lt;b&gt;&lt;span style="color:#663300;"&gt;)&lt;br /&gt; {&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; delete&lt;/span&gt; mpTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; mpTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; = (&lt;/span&gt;&lt;/b&gt;transparency&lt;b&gt;&lt;span style="color:#663300;"&gt;?&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; new&lt;/span&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;( &lt;em&gt;&lt;/span&gt;&lt;/b&gt;transparency&lt;b&gt;&lt;span style="color:#663300;"&gt; ) :&lt;/span&gt;&lt;/b&gt; NULL&lt;b&gt;&lt;span style="color:#663300;"&gt;);&lt;br /&gt; }&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; virtual&lt;/span&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt; transparency&lt;b&gt;&lt;span style="color:#663300;"&gt;()&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; const&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt; {&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt; return&lt;/span&gt; mpTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;; }&lt;br /&gt;}&lt;/span&gt;&lt;/b&gt; Test&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;This will fix the linker errors, but there is no guarantee that it will work as intended. AutoCAD might access its internal transparency value directly without calling through the member functions, which means it would never &amp;ldquo;see&amp;rdquo; the transparency set through the replacement member functions. Furthermore, the addition of the new pointer member changes the size of the class, which causes AcGiFaceDataEx arrays to have a different memory footprint than AcGiFaceData arrays. Lastly, what if Autodesk fixes the problem in a future AutoCAD service pack?&lt;br /&gt;&lt;br /&gt;The ideal solution should not change the size of the class. It should check at runtime whether the function is exported, then use the exported function if it exists. That way, code that is written now will use the exported function if and when it becomes available in a future version of AutoCAD. When the function is not exported, an alternate implementation must be provided. This is not an unusual scenario, and the solution I present for the specific case of AcGiFaceData can be adapted to the more general problem.&lt;br /&gt;&lt;br /&gt;In the AcGiFaceData case, the missing functions are virtual functions. Knowing this, it is possible to use a trick to get the address of the real function. In the code below, the function getAcGiFaceData_vtable() constructs a temporary AcGiFaceData object, from which it extracts a pointer to the object&amp;rsquo;s virtual function table. The virtual function table is just an array of function pointers, so the address of the desired function can be obtained by indexing into the virtual function table. The question is, how far? By counting virtual functions and data members starting from the top of the class hierarchy: in this case, 6 virtual functions in AcRxObject plus 16 virtual functions in AcGiFaceData = 22.&lt;br /&gt;&lt;br /&gt;Note that obtaining a function pointer this way relies on Visual C++ implementation details, but this is safe to do since all ObjectARX modules must be compiled in Visual C++.&lt;br /&gt;&lt;br /&gt;Following is my solution to the missing AcGiFaceData functions:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color:#000099;"&gt;#pragma warning(push)&lt;br /&gt;#pragma warning(disable: 4608)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#990000;"&gt;template&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt; &amp;lt;&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; typename&lt;/span&gt; Src&lt;b&gt;&lt;span style="color:#663300;"&gt;,&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; typename&lt;/span&gt; Dest&lt;b&gt;&lt;span style="color:#663300;"&gt; &amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Dest force_cast&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt; Src src&lt;b&gt;&lt;span style="color:#663300;"&gt; )&lt;br /&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; union&lt;/span&gt; _convertor&lt;b&gt;&lt;span style="color:#663300;"&gt; {&lt;/span&gt;&lt;/b&gt; Dest d&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt; Src s&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt; _convertor&lt;b&gt;&lt;span style="color:#663300;"&gt;() :&lt;/span&gt;&lt;/b&gt; d&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#999900;"&gt;0&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;),&lt;/span&gt;&lt;/b&gt; s&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#999900;"&gt;0&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;) {} }&lt;/span&gt;&lt;/b&gt; convertor&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; convertor&lt;b&gt;&lt;span style="color:#663300;"&gt;.&lt;/span&gt;&lt;/b&gt;s&lt;b&gt;&lt;span style="color:#663300;"&gt; =&lt;/span&gt;&lt;/b&gt; src&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; return&lt;/span&gt; convertor&lt;b&gt;&lt;span style="color:#663300;"&gt;.&lt;/span&gt;&lt;/b&gt;d&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#000099;"&gt;&lt;br /&gt;#pragma warning(pop)&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt;static&lt;/span&gt; FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt; getAcGiFaceData_vtable&lt;b&gt;&lt;span style="color:#663300;"&gt;()&lt;br /&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; static&lt;/span&gt; FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt; rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt; = &lt;em&gt;(&lt;/span&gt;&lt;/b&gt;FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;**)&amp;amp;&lt;/span&gt;&lt;/b&gt;AcGiFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;();&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; return&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt; (&lt;/span&gt;&lt;/b&gt;rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt;?&lt;/span&gt;&lt;/b&gt; rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt; :&lt;/span&gt;&lt;/b&gt; NULL&lt;b&gt;&lt;span style="color:#663300;"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff6633;"&gt;&lt;br /&gt;&lt;br /&gt;void&lt;/span&gt; AcGiFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;::&lt;/span&gt;&lt;/b&gt;setTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; const&lt;/span&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt; transparency&lt;b&gt;&lt;span style="color:#663300;"&gt; )&lt;br /&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; typedef&lt;/span&gt;&lt;span style="color:#ff6633;"&gt; void&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt; (&lt;/span&gt;&lt;/b&gt;AcGiFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;::&lt;em&gt;&lt;/span&gt;&lt;/b&gt;F_setTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;)(&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; const&lt;/span&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt; );&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; static&lt;/span&gt; F_setTransparency pfSetTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; =&lt;/span&gt;&lt;/b&gt; force_cast&lt;b&gt;&lt;span style="color:#663300;"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt; FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;,&lt;/span&gt;&lt;/b&gt; F_setTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; &amp;gt;(&lt;/span&gt;&lt;/b&gt;GetProcAddress&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt; GetModuleHandleA&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#009900;"&gt; &amp;ldquo;acdb18.dll&amp;rdquo;&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;),&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#009900;"&gt; &amp;ldquo;?setTransparency@AcGiFaceData@@UEAAXPEBVAcCmTransparency@@@Z&amp;rdquo;&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt; ));&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; if&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;( !&lt;/span&gt;&lt;/b&gt;pfSetTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; )&lt;br /&gt; {&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; static&lt;/span&gt; FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;em&gt;&lt;/span&gt;&lt;/b&gt; rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt; =&lt;/span&gt;&lt;/b&gt; getAcGiFaceData_vtable&lt;b&gt;&lt;span style="color:#663300;"&gt;();&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; if&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt; rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt; )&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; pfSetTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; =&lt;/span&gt;&lt;/b&gt; force_cast&lt;b&gt;&lt;span style="color:#663300;"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt; FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;,&lt;/span&gt;&lt;/b&gt; F_setTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; &amp;gt;(&lt;/span&gt;&lt;/b&gt; rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#999900;"&gt;22&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;] );&lt;br /&gt; }&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; if&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt; pfSetTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; )&lt;br /&gt; (&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;this&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;-&amp;gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt;pfSetTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;)(&lt;/span&gt;&lt;/b&gt; transparency&lt;b&gt;&lt;span style="color:#663300;"&gt; );&lt;br /&gt;}&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;em&gt;&lt;/span&gt;&lt;/b&gt; AcGiFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;::&lt;/span&gt;&lt;/b&gt;transparency&lt;b&gt;&lt;span style="color:#663300;"&gt;()&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; const&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;br /&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; typedef&lt;/span&gt; AcCmTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt; (&lt;/span&gt;&lt;/b&gt;AcGiFaceData&lt;b&gt;&lt;span style="color:#663300;"&gt;::&lt;em&gt;&lt;/span&gt;&lt;/b&gt;F_transparency&lt;b&gt;&lt;span style="color:#663300;"&gt;)()&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt; const&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; static&lt;/span&gt; F_transparency pfTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; =&lt;/span&gt;&lt;/b&gt; force_cast&lt;b&gt;&lt;span style="color:#663300;"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt; FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;,&lt;/span&gt;&lt;/b&gt; F_transparency&lt;b&gt;&lt;span style="color:#663300;"&gt; &amp;gt;(&lt;/span&gt;&lt;/b&gt;GetProcAddress&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt; GetModuleHandleA&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#009900;"&gt; &amp;ldquo;acdb18.dll&amp;rdquo;&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;),&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#009900;"&gt; &amp;ldquo;?transparency@AcGiFaceData@@UEBAPEAVAcCmTransparency@@XZ&amp;rdquo;&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt; ));&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; if&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;( !&lt;/span&gt;&lt;/b&gt;pfTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; )&lt;br /&gt; {&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;&lt;br /&gt; static&lt;/span&gt; FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;&lt;/em&gt;&lt;/span&gt;&lt;/b&gt; rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt; =&lt;/span&gt;&lt;/b&gt; getAcGiFaceData_vtable&lt;b&gt;&lt;span style="color:#663300;"&gt;();&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; if&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt; rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt; )&lt;/span&gt;&lt;/b&gt;&lt;br /&gt; pfTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; =&lt;/span&gt;&lt;/b&gt; force_cast&lt;b&gt;&lt;span style="color:#663300;"&gt;&amp;lt;&lt;/span&gt;&lt;/b&gt; FARPROC&lt;b&gt;&lt;span style="color:#663300;"&gt;,&lt;/span&gt;&lt;/b&gt; F_transparency&lt;b&gt;&lt;span style="color:#663300;"&gt; &amp;gt;(&lt;/span&gt;&lt;/b&gt; rfVTable&lt;b&gt;&lt;span style="color:#663300;"&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#999900;"&gt;23&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;] );&lt;br /&gt; }&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; if&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;(&lt;/span&gt;&lt;/b&gt; pfTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt; )&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; return&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt; (&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#990000;"&gt;this&lt;/span&gt;&lt;b&gt;&lt;span style="color:#663300;"&gt;-&amp;gt;*&lt;/span&gt;&lt;/b&gt;pfTransparency&lt;b&gt;&lt;span style="color:#663300;"&gt;)();&lt;/span&gt;&lt;/b&gt;&lt;span style="color:#ff0000;"&gt;&lt;br /&gt; return&lt;/span&gt; NULL&lt;b&gt;&lt;span style="color:#663300;"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/p&gt;</description></item><item><title>What's New in the AutoCAD 2010 EULA</title><link>http://www.manusoft.com/archive/blog/whats-new-in-autocad-2010-eula/</link><pubDate>Wed, 25 Mar 2009 00:55:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/whats-new-in-autocad-2010-eula/</guid><description>&lt;p&gt;Everyone else is discussing all the cool new features in AutoCAD 2010, so I decided to have a look at what&amp;rsquo;s new in the EULA (End User License Agreement). I compared the AutoCAD 2010 EULA for US/Canada to the AutoCAD 2009 EULA. I won&amp;rsquo;t divulge the process I used to automate the comparison, because the odds are pretty good that I violated the EULA somewhere along the way, and I want plausible deniability.&lt;br /&gt;&lt;br /&gt;The first change I noticed is that the AutoCAD 2010 EULA contains more shouting. The 2009 EULA started out in a fairly mellow mixed case with a few shouts thrown in for effect, but the 2010 EULA dispenses with the lower case and launches right into a multi-paragraph avalanche of screaming block letters. Apparently nobody was listening, so they turned up the volume.&lt;br /&gt;&lt;br /&gt;Substantively, there are a number of very interesting changes. The following was added to the preamble:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SOFTWARE OBTAINED FROM THIRD PARTIES THAT HAVE NOT BEEN AUTHORIZED OR ALLOWED BY AUTODESK, DIRECTLY OR INDIRECTLY, TO SUPPLY SOFTWARE IS LIKELY TO HAVE BEEN MADE AVAILABLE IN VIOLATION OF AUTODESK’S RIGHTS. IN SUCH AN EVENT, AUTODESK IS NOT OBLIGATED TO ISSUE AN ACTIVATION CODE OR OTHERWISE PERMIT YOU TO INSTALL OR USE THE SOFTWARE.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Next time you&amp;rsquo;re eyeing that used copy of AutoCAD 2010 on eBay, be warned that Autodesk is not obligated to permit you to install or use the software. They don&amp;rsquo;t come right out and say that they won&amp;rsquo;t allow it, so maybe they won&amp;rsquo;t mind &amp;ndash; but then what&amp;rsquo;s the point of including this clause? &lt;a href="http://www.cadcourt.com/Docket/207cv01189.aspx"&gt;Tim Vernor&lt;/a&gt; won&amp;rsquo;t be very happy about this change.&lt;br /&gt;&lt;br /&gt;Moving along, I see that they added a definition for &amp;ldquo;Uninstall&amp;rdquo;, defining it as &amp;ldquo;to destroy or remove&amp;rdquo;. The definition of &amp;ldquo;User Documentation&amp;rdquo; was very slightly changed from &amp;ldquo;&amp;hellip;after You acquire or Install the Software&amp;hellip;&amp;rdquo; to &amp;ldquo;&amp;hellip;when or after You acquire or Install the Software&amp;hellip;&amp;rdquo;. Incidentally, did you know that Autodesk considers an AutoCAD reseller&amp;rsquo;s invoice to be &amp;ldquo;user documentation&amp;rdquo;?&lt;br /&gt;&lt;br /&gt;Rounding out changes in definitions is a change in the definition of &amp;ldquo;You&amp;rdquo;. Yes, Autodesk has redefined &amp;ldquo;You&amp;rdquo; whether &amp;ldquo;you&amp;rdquo; like it or not.&lt;br /&gt;&lt;br /&gt;I could go on and on about small wording changes, and while it would be interesting to contemplate why each change was made (and how many scheming lawyers it took to do it), we&amp;rsquo;d risk missing the forest for the trees.&lt;br /&gt;&lt;br /&gt;Section 2.1, &amp;ldquo;License Grant&amp;rdquo;, contains ominous new language. The following has been added:&lt;br /&gt;&lt;blockquote&gt;You may Access the application programming interfaces that may be included with or in the Software or otherwise available from Autodesk for use with the Software (“API’s”) to develop programs, modules, components or functionality that (i) are compatible with and are used and/or interfaced with the Software and (ii) contribute significant value-added functionality or enhancements to the Software (“API Modules”) provided You may Install and Access such API Modules solely on Computers where a licensed copy of the Software is also installed and further provided such Installation and Access is solely in connection with Your Installation and Access of the Software and solely for Your internal business needs. You may not redistribute all or any portion of an API Module.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Read that again. That&amp;rsquo;s right, you may not write any &amp;ldquo;programs, modules, components, or functionality&amp;rdquo; unless they &amp;ldquo;contribute significant value-added functionality or enhancements&amp;rdquo; to AutoCAD. Furthermore, if you do manage to write a program that adds significant functionality, you may not redistribute all or any part of it. What are those guys smoking out there in California?&lt;br /&gt;&lt;br /&gt;Finally at the end of section 2.1, they changed &amp;ldquo;No license is granted under the terms of this Agreement if You did not lawfully acquire the Software&amp;rdquo; to &amp;ldquo;No license is granted under the terms of this Agreement if You did not lawfully acquire the Software from Autodesk or from a third party who has been permitted or authorized by Autodesk either directly or indirectly to supply the Software&amp;rdquo;. Take &lt;em&gt;that&lt;/em&gt; Tim Vernor!&lt;br /&gt;&lt;br /&gt;In another nod to the Vernor case, section 2.3, &amp;ldquo;Upgrades&amp;rdquo;, adds a new requirement to &amp;ldquo;destroy all Autodesk Materials relating to the Previous Version or, upon request by Autodesk, return all such Autodesk Materials relating to the Previous Version to Autodesk or the company from which they were acquired&amp;rdquo;. This is important language that could persuade a court to view an AutoCAD purchase as a license instead of a sale, thereby giving Autodesk the power to control the secondary market.&lt;br /&gt;&lt;br /&gt;Interestingly, section 2.4, &amp;ldquo;Crossgrades&amp;rdquo;, requires that the previous software be uninstalled within 60 days, but has no requirement that it be destroyed. However, new language in section 2.7, &amp;ldquo;Termination&amp;rdquo;, which requires the software to be destroyed &amp;ldquo;upon termination of the license grant or this Agreement&amp;rdquo;, apparently covers both cases.&lt;br /&gt;&lt;br /&gt;A funny change in section 3.2.3, &amp;ldquo;Transfers&amp;rdquo;, appears to close a loophole. The AutoCAD 2009 EULA disallowed transfers to &amp;ldquo;any other person&amp;rdquo;; the AutoCAD 2010 EULA disallows transfers to &amp;ldquo;any other person or legal entity&amp;rdquo;. Considering a license transfer? Make sure it&amp;rsquo;s to an illegal entity!&lt;br /&gt;&lt;br /&gt;Section 4, &amp;ldquo;ALL RIGHTS RESERVED&amp;rdquo;, was rewritten. The rewrite introduced a grammatical error (&amp;ldquo;and You have not other rights&amp;rdquo;), but otherwise I don&amp;rsquo;t see that much changed. It still ends with the now familiar directive that &amp;ldquo;The Software and User Documentation are licensed, not sold.&amp;quot;&lt;br /&gt;&lt;br /&gt;Finally, the infamous &amp;ldquo;audit clause&amp;rdquo; has been revised. Not the way you may have hoped, I&amp;rsquo;m sad to report. Luckily the change was a minor one that doesn&amp;rsquo;t make the clause any more overbearing than it already was.&lt;br /&gt;&lt;br /&gt;Isn&amp;rsquo;t change wonderful?&lt;/p&gt;</description></item><item><title>Software Licensing: A Case For Reform</title><link>http://www.manusoft.com/archive/blog/software-licensing-case-for-reform/</link><pubDate>Sun, 01 Mar 2009 18:03:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/software-licensing-case-for-reform/</guid><description>&lt;p&gt;I want to consider software licensing practices in general, but with the specific facts and history in the &lt;a href="http://www.cadcourt.com/Docket/207cv01189.aspx"&gt;Vernor vs. Autodesk lawsuit&lt;/a&gt; as a backdrop.&lt;br /&gt;&lt;br /&gt;In the Vernor case, Tim Vernor purchased several boxes of AutoCAD software, and never even read, let alone agreed to, the terms of the license agreement inside the box. When Vernor listed the AutoCAD software for sale on Ebay, Autodesk sent Ebay a notice that claimed Vernor&amp;rsquo;s auction violated Autodesk&amp;rsquo;s copyright. In order to benefit from the safe harbor provisions of the Digital Millennium Copyright Act (&lt;a href="http://en.wikipedia.org/wiki/Dmca"&gt;DMCA&lt;/a&gt;), Ebay was obligated to remove the auctions. Vernor responded by filing a lawsuit accusing Autodesk of making false copyright violation claims.&lt;br /&gt;&lt;br /&gt;Additional facts have since come to light. For one, we&amp;rsquo;ve learned that the AutoCAD software that Vernor purchased had been &lt;a href="http://www.cadcourt.com/NewsFeed/tabid/53/EntryID/50/Default.aspx"&gt;previously upgraded to a newer version&lt;/a&gt;. Vernor did not know this when he purchased the software; and in any case, it&amp;rsquo;s not clear that this fact has any bearing on the outcome of the suit.&lt;br /&gt;&lt;br /&gt;Given this set of facts, let&amp;rsquo;s analyze the Vernor case not from a purely legal perspective, but from a more abstract &amp;ldquo;moral&amp;rdquo; perspective. After all, society is the ultimate arbitrator of what is wrong and what is right with respect to our laws. We ultimately determine whether laws are fair by whether we follow them willingly (and whether we put pressure on our legislatures to change them).&lt;br /&gt;&lt;br /&gt;Steve Johnson opines that &lt;a href="http://www.blog.cadnauseam.com/2009/02/21/vernor-v-autodesk-why-i-think-autodesk-is-right/"&gt;Autodesk is morally right&lt;/a&gt; in the Vernor case, because the software Vernor purchased was &amp;ldquo;tainted&amp;rdquo; due to having been upgraded by the original owner. &lt;strike&gt;In Steve&amp;rsquo;s view&amp;hellip;&lt;/strike&gt; &lt;em&gt;[see Steve&amp;rsquo;s comment below where he chides me for ascribing this view to him - O.W.]&lt;/em&gt; Presumably, one who holds this view sees Vernor&amp;rsquo;s original purchase as akin to someone purchasing stolen goods. With stolen goods, the law (and hopefully our moral compass) recognizes that the purchaser of the stolen goods has no legal right to them.&lt;br /&gt;&lt;br /&gt;Autodesk offered the original owner a discounted price for a newer version of AutoCAD in exchange for a promise to destroy the older version. The original owner reneged on its promise to destroy the old version, and sold it to an unwitting buyer instead.&lt;br /&gt;&lt;br /&gt;It follows that both Autodesk and Tim Vernor were treated unfairly by the company that sold the AutoCAD software to Vernor. Despite the company&amp;rsquo;s history of using pirated software, Autodesk gave them the benefit of the doubt when selling them a discounted upgrade. Vernor, by all accounts, had no idea and no way of knowing that the software he purchased had been previously upgraded. This is a recipe for disaster.&lt;br /&gt;&lt;br /&gt;Unfortunately, this sort of disaster is all too common. In many cases, software users simply don&amp;rsquo;t read license agreements. If they do read license agreements, they don&amp;rsquo;t understand them. After all, most of us are not lawyers, and we can&amp;rsquo;t reasonably be expected to hire a lawyer to evaluate the license agreements of every software product we use. How then can we be expected to follow them exactly and without fail?&lt;br /&gt;&lt;br /&gt;Consider that it&amp;rsquo;s entirely possible that the company from which Vernor bought his AutoCAD software had no idea that they had agreed to destroy the upgraded AutoCAD software. At least from a moral perspective, we can have some sympathy for the company if they honestly had no idea they were violating any agreements when they sold the software to Vernor.&lt;br /&gt;&lt;br /&gt;Could Autodesk have required the upgraded AutoCAD software to be returned, or required certification by an independent &amp;ldquo;software recycler&amp;rdquo; that it had been destroyed? Sure they could have. In fact, such requirements did exist in the early days of software license agreements. Had Autodesk done so, the Vernor court would probably have concluded that AutoCAD was licensed, not sold.&lt;br /&gt;&lt;br /&gt;Why even require the old version to be destroyed when upgrading? If we stop using the old version, why shouldn&amp;rsquo;t we be allowed to sell it at market value? Doesn&amp;rsquo;t recycling old software make just as much sense as recycling old tires? We have been conditioned to believe that discounted upgrades are good for us, but are they really?&lt;br /&gt;&lt;br /&gt;Would we accept a legal regime under which tire manufacturers could force us to destroy our old tires as part of the new tire purchase agreement? Oh, you say, that comparison isn&amp;rsquo;t valid because tires eventually wear out of their own accord, whereas old software continues working forever! First of all, old software doesn&amp;rsquo;t continue working forever. How many people still use &lt;a href="http://en.wikipedia.org/wiki/VisiCalc"&gt;VisiCalc&lt;/a&gt;? Furthermore, what would this line of reasoning conclude about potential tires of the future that last forever? We&amp;rsquo;d have to start licensing tires instead of purchasing them!&lt;br /&gt;&lt;br /&gt;What would happen if software vendors could not legally prevent &amp;ldquo;used&amp;rdquo; software from being resold on the open market, no matter how it was purchased or upgraded? For one, it would increase competition, because new versions of software would be competing not only against software from other vendors, but also against older versions of itself. In a world where software is priced based on what the market will bear, the net effect would be lower prices and higher quality (not to mention less frequent &amp;ldquo;upgrades&amp;rdquo;) for all software.&lt;br /&gt;&lt;br /&gt;I think the Vernor case is just one example illustrating how the current software licensing system has sprung a leak, and is in need of repair. Can it be patched, or does it need to be replaced? Can the bleeding be stopped at the ankle, or should it be stopped it at the neck? This is a classical case of the &lt;a href="http://otb.manusoft.com/2009/02/petcock-problem.htm"&gt;Petcock Problem&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Software industry advocates like the Business Software Alliance (&lt;a href="http://www.bsa.org"&gt;BSA&lt;/a&gt;) proclaim that the solution is educating consumers. Education may be important, but I think that &amp;ldquo;educating consumers&amp;rdquo; should not be left to an industry alliance.&lt;br /&gt;&lt;br /&gt;I have some ideas about how the system can be reformed, but I think we have to start by recognizing that there&amp;rsquo;s a problem.&lt;/p&gt;</description></item><item><title>Software Licensing: Who's On First?</title><link>http://www.manusoft.com/archive/blog/software-licensing-whos-on-first/</link><pubDate>Sun, 01 Mar 2009 17:48:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/software-licensing-whos-on-first/</guid><description>&lt;p&gt;I&amp;rsquo;m a firm supporter of intellectual property rights. I fully support the rights of software publishers to own and profit from their creative work. I make my living as both a consumer of software and a publisher of software, so my views on software licensing reflect what I consider to be a healthy symbiosis between producers and consumers.&lt;br /&gt;&lt;br /&gt;Intellectual property laws are (or should be) designed to protect this symbiotic relationship for the public good. The patent system is designed not to protect patent owners from pirates, but to promote inventions and improvements on previous inventions that benefit the public. The fact that patent laws do help to protect patent owners from pirates is merely a side effect of the underlying goal of promoting the public interest. We, the public, grant exclusive rights to patent owners for a specific time in exchange for them making public the details of their invention. Innovative inventors can thus build on a body of previously published inventions rather than starting from scratch. This system of &amp;ldquo;open source&amp;rdquo; innovation speeds the evolution of technology, and everybody benefits from it.&lt;br /&gt;&lt;br /&gt;Copyright laws must be viewed in the same light. Copyright laws are designed to promote and enhance the public good by encouraging the production and publication of creative works. In exchange for giving copyright owners certain rights for a certain period of time, the public gets to enjoy and build upon a body of creative work. Some argue that the benefit of copyright protection provides a financial incentive to create the works in the first place, and that without such an incentive the works would never be produced at all. While this is undoubtedly true, consider that there are other ways to provide financial incentives (by providing government grants, for example), so I think it&amp;rsquo;s important to view this aspect of copyright protection as a consequence of the goal to promote the public interest, not as a goal in and of itself.&lt;br /&gt;&lt;br /&gt;Copyright laws have long recognized a need to prevent copyrights from being abused by providing exceptions to the protection they afford to publishers. The &lt;a href="http://en.wikipedia.org/wiki/Fair_use"&gt;Fair Use doctrine&lt;/a&gt; is the most common such exception in US copyright law. The First Sale doctrine (or &amp;ldquo;exhaustion rule&amp;rdquo; in some jurisdictions) is another example of a limitation on copyrights. These exceptions and limitations evolved in response to attempts by copyright owners to abuse copyrights in a way that contravened their purpose of promoting the public interest.&lt;br /&gt;&lt;br /&gt;Software licenses are a relatively new phenomenon, but they rely on very old law: &lt;a href="http://en.wikipedia.org/wiki/Contract_law"&gt;contract law&lt;/a&gt;. It is important to understand that a software license agreement is a contract. The commercial software publisher agrees to give us limited and conditional copy rights and authorizes us to use the software in exchange for a fee. If the license agreement that we agreed to authorizes us to install and use the software on one computer, but we install it on ten computers, then we are violating both contract and copyright law (because we copied the software without permission). If the license agreement that we agreed to forbids us to resell the software to someone else, but we decide not to use the software ourselves and sell it anyway, we are violating only contract law (because we made no unauthorized copies).&lt;br /&gt;&lt;br /&gt;There are several contract law issues typically encountered with software license agreements.&lt;br /&gt;&lt;br /&gt;First, typical commercial software license agreements suffer from their unilateral nature. The contract is drawn up by the publisher with no negotiation or input from the consumer. Some question whether these are valid contracts in the first place, because they lack the &amp;ldquo;meeting of the minds&amp;rdquo; element that some judicial interpretations of contract law require.&lt;br /&gt;&lt;br /&gt;Second, software license agreements are not usually consummated until after the sale, when the software is finally installed. We purchase the software, essentially committing to our side of the bargain before we even know the terms of the contract to which we must eventually agree in order to use the software. This is inherently unfair, and there are still many unsettled questions about whether or not such a contract can ever be equitable and enforceable.&lt;br /&gt;&lt;br /&gt;If you&amp;rsquo;ve been following the &lt;a href="http://www.cadcourt.com/Docket/207cv01189.aspx"&gt;Vernor vs. Autodesk lawsuit&lt;/a&gt;, you&amp;rsquo;ll know that the US federal district court in that case ruled that AutoCAD software was sold, not licensed, and therefore subject to the &lt;a href="http://en.wikipedia.org/wiki/First-sale_doctrine"&gt;First Sale Doctrine&lt;/a&gt;. The First Sale Doctrine says, in essence, that a publisher cannot contractually restrict the downstream resale or distribution of a copyrighted work beyond the &amp;ldquo;first sale&amp;rdquo;. The court, at least in its initial ruling, rejected Autodesk&amp;rsquo;s argument that AutoCAD was licensed, and therefore exempt from the First Sale doctrine. It should be noted that the Vernor lawsuit is far from over, and this first sale decision could well change before the dust settles.&lt;br /&gt;&lt;br /&gt;The courts will eventually reach a final decision in the specific case of Vernor vs. Autodesk, but why was this lawsuit even necessary in the first place? It&amp;rsquo;s difficult to envision any outcome in which every injury is rectified. It could even be argued that everybody loses, no matter the outcome. And this is just one case in one jurisdiction.&lt;br /&gt;&lt;br /&gt;In the end, the final result of the Vernor case may not have much impact on how software is sold. It ultimately comes down to us, the union of consumers, to decide what kind of system we want. Unfortunately, right now we&amp;rsquo;re doing the &lt;a href="http://otb.manusoft.com/2009/02/software-limbo.htm"&gt;software limbo&lt;/a&gt; while we wait faithfully for the next service pack. I think that we need more than a service pack. A system restore might be in order.&lt;/p&gt;</description></item><item><title>The Software Limbo</title><link>http://www.manusoft.com/archive/blog/software-limbo/</link><pubDate>Fri, 27 Feb 2009 10:51:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/software-limbo/</guid><description>&lt;p&gt;Bruce Schneier argues that &lt;a href="http://www.schneier.com/blog/archives/2009/02/privacy_in_the.html"&gt;data is the pollution of the information age&lt;/a&gt;, and &amp;ldquo;just as 100 years ago people ignored pollution in our rush to build the Industrial Age, today we&amp;rsquo;re ignoring data in our rush to build the Information Age.&amp;rdquo;&lt;/p&gt;</description></item><item><title>The Petcock Problem</title><link>http://www.manusoft.com/archive/blog/petcock-problem/</link><pubDate>Tue, 24 Feb 2009 14:56:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/petcock-problem/</guid><description>&lt;p&gt;Many years ago, I worked for the small town where I grew up. My title was Street Commissioner. This is a very small town, and I was a part time employee with one helper. Basically, I was the guy what fixed things. We had a very old network of water pipes that supplied water from several wells. The water system leaked in many places. Occasionally, a small leak turned into a big leak, and something had to be done about it.&lt;br /&gt;&lt;br /&gt;You might think that the first response to a big water leak would be to close the water valves in order to isolate the leak and prevent the loss of valuable water. Not so fast!&lt;br /&gt;&lt;br /&gt;First of all, in an interconnected network that had been upgraded and patched by piecework for many decades, it wasn&amp;rsquo;t always possible for small localized segments to be isolated, and turning off the water for a large area would inevitably lead to discord.&lt;br /&gt;&lt;br /&gt;Second, closing even a single valve caused pressures throughout the system to change. Any pressure change anywhere in the system had the potential to cause new failures at weak points, which would just compound the problem.&lt;br /&gt;&lt;br /&gt;Furthermore, at some point repairs could be counterproductive and completely replacing parts of the network would be the best option. This would require time for the town council to approve the funds, and for contractors to be hired, and for the work to be scheduled and completed &amp;ndash; all while the leaking water is causing collateral damage to the roadway and inconveniencing the affected residents with low water pressure.&lt;br /&gt;&lt;br /&gt;Eventually the big leak had to be repaired, and the water had to be turned off &lt;em&gt;somewhere&lt;/em&gt; before the repair could be completed. The decision about where and how to accomplish this was not a simple decision, due to the competing factors involved, and the practical realities a small town is faced with.&lt;br /&gt;&lt;br /&gt;I call this problem the Petcock Problem. Imagine &lt;a href="http://en.wikipedia.org/wiki/Petcock"&gt;petcock valves&lt;/a&gt; scattered throughout a network of pipes. I call this the Petcock Problem because petcock valves typically have three positions, analogous to the notion of closing, opening, or redirecting connections on the network in order to isolate a fault.&lt;br /&gt;&lt;br /&gt;The Petcock Problem would apply in many situations involving complex networks, such as when a tree knocks down a power line or when an internet router dies. Sometimes the best solution is to isolate the fault to the most localized part of the network possible, thereby inconveniencing the least number of people at the expense of putting the larger network at greater risk of a much larger catastrophe. Sometimes the best solution is to shut down the entire network temporarily, thereby inconveniencing everybody that relies on the network, but removing any risk of further degradation while repairs are completed. Most of the time the best solution is somewhere in between these extremes. As the network ages and faults become more commonplace, at some point the best solution is to scrap the entire network and build a new one.&lt;br /&gt;&lt;br /&gt;This is the Petcock Problem, or &amp;ldquo;How do you stop the bleeding?&amp;rdquo;. The solution involves balancing several variables, some of which are known quantities, some of which are wild guesses, and some of which are potentially very chaotic (in that a small change in value could have an unpredictable impact on the outcome).&lt;br /&gt;&lt;br /&gt;[Disclaimer: I&amp;rsquo;m sure that the study of &lt;a href="http://en.wikipedia.org/wiki/Network_topology"&gt;network topologies&lt;/a&gt; has its own terms of art and well researched algorithms for describing and solving these types of problems. I&amp;rsquo;m not claiming to have some new revelation about networks here. This is just my own little custom worldview.]&lt;br /&gt;&lt;br /&gt;In a future post I will explain how the Petcock Problem applies to something as diverse as the &lt;a href="http://www.cadcourt.com/Docket/207cv01189.aspx"&gt;Vernor lawsuit&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Autodesk Design Review 2010 Snake Oil Alert</title><link>http://www.manusoft.com/archive/blog/autodesk-design-review-2010-snake-oil/</link><pubDate>Thu, 12 Feb 2009 14:35:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autodesk-design-review-2010-snake-oil/</guid><description>&lt;p&gt;From a &lt;a href="http://dwf.blogs.com/beyond_the_paper/2009/02/autodesk-design-review-2010-new-features-overview.html"&gt;new features overview of Autodesk Design Review 2010&lt;/a&gt; comes the following snake oil claim:&lt;br /&gt;&lt;blockquote&gt;Digital Signatures&lt;br /&gt;To help secure your data, you can now digitally sign DWFx files.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;As I&amp;rsquo;ve &lt;a href="http://otb.manusoft.com/2008/12/design-file-locking-and-snake-oil.htm"&gt;explained before&lt;/a&gt;, digital signatures do not provide data security; they simply authenticate the person that applied the signature. Digital signatures are a welcome feature with many potential uses, but data security is not one of them.&lt;/p&gt;</description></item><item><title>Autodesk Discussion Group Facelift Offer</title><link>http://www.manusoft.com/archive/blog/autodesk-discussion-group-facelift/</link><pubDate>Wed, 28 Jan 2009 12:00:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autodesk-discussion-group-facelift/</guid><description>&lt;p&gt;My participation in the &lt;a href="http://www.autodesk.com/discussion"&gt;Autodesk discussion groups&lt;/a&gt; has been severely curtailed since the notorious &amp;ldquo;upgrade&amp;rdquo; a few months ago. One of the &lt;a href="http://www.blog.cadnauseam.com/2008/10/21/the-autodesk-discussion-groups-are-awful/"&gt;many problems&lt;/a&gt; introduced by the upgrade is the loss of formatting. It&amp;rsquo;s now virtually impossible to post messages that include inline AutoLISP or ObjectARX code without them being reformatted into unreadable garbage. Even attaching the code as a file is difficult (the &amp;ldquo;solution&amp;rdquo; is to rename files with a .txt extension!) As a result, many queries for programming help go unanswered. Autodesk has &lt;a href="http://discussion.autodesk.com/forums/ann.jspa?annID=125"&gt;made an attempt to provide a fix&lt;/a&gt;, but a survey of the posts in any of the programming groups shows that &lt;a href="http://otb.manusoft.com/files/Newsgroup%20needs%20complete%20overhaul.htm"&gt;it&amp;rsquo;s not working&lt;/a&gt;&lt;em&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt; [Thread has been removed by Autodesk, so link was changed to point to archived thread.]&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.marketwatch.com/story/autodesk-to-miss-earnings-target-cut-750-jobs"&gt;recently announced layoffs and related cost cutting measures at Autodesk&lt;/a&gt; have dimmed my hopes for a resolution. Therefore, I&amp;rsquo;ve decided to offer my services to fix the problem. Autodesk, I&amp;rsquo;m offering to donate my time to fix your discussion group software. Just give me access to a development and testing platform, and the right to modify or rewrite the code.&lt;br /&gt;&lt;br /&gt;Readers, can I get an &amp;ldquo;Amen&amp;rdquo;?&lt;/p&gt;</description></item><item><title>AECOPEN Utility</title><link>http://www.manusoft.com/archive/blog/aecopen-utility/</link><pubDate>Sat, 24 Jan 2009 17:07:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/aecopen-utility/</guid><description>&lt;p&gt;James Maeding of Hunsaker &amp;amp; Associates contacted me recently about an irritating problem that his users have with the AECOPEN command in Land Desktop. The AECOPEN command replaces the core AutoCAD OPEN command in AEC verticals. The problem they have is that AECOPEN displays an initial project dialog that requires users to press a [Browse] button to open the file browser dialog. Since they want to browse for a file every time they use the AECOPEN command, James wondered if I could create some code to automatically &amp;ldquo;press&amp;rdquo; the Browse button every time the AECOPEN command is issued.&lt;br /&gt;&lt;br /&gt;I whipped up a little utility for AutoCAD 2007-2009 based products to do what James wanted, and it is now available on my &lt;a href="http://www.manusoft.com/software/freebies/arx.html"&gt;freebies page&lt;/a&gt; as AecAutoOpen.zip. When the ARX module is loaded, AECOPEN behaves as if the user had immediately pressed the [Browse] button on the project dialog. If the [Ctrl] key is pressed, AECOPEN reverts to its original behavior.&lt;br /&gt;&lt;br /&gt;Why not just use the built in OPEN command instead? The AECOPEN command has some important side effects, according to James.&lt;/p&gt;</description></item><item><title>Missing Menu Madness</title><link>http://www.manusoft.com/archive/blog/missing-menu-madness/</link><pubDate>Mon, 22 Dec 2008 18:15:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/missing-menu-madness/</guid><description>&lt;p&gt;One of my many complaints about about the CUI system introduced in AutoCAD 2006 is that it's not very friendly to third party developers. In my opinion, it's not very friendly to end users either, but I digress...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One example of the unfriendly CUI is the case where a third party application installs a partial menu. In the pre-CUI days, adding a partial menu was an easy way to add an application specific menu to AutoCAD without making any changes to the end user's existing menu files. If the application was later uninstalled, the uninstall script could remove its menu and clean up the registry, leaving no trace behind. CUI breaks that scenario.&lt;/p&gt;</description></item><item><title>Design File Locking and Snake Oil Security</title><link>http://www.manusoft.com/archive/blog/design-file-locking-and-snake-oil/</link><pubDate>Sat, 06 Dec 2008 14:52:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/design-file-locking-and-snake-oil/</guid><description>&lt;p&gt;The increased sharing of electronic CAD data (ala &lt;a href="http://en.wikipedia.org/wiki/Building_Information_Modeling"&gt;BIM&lt;/a&gt;) holds a lot of promise, but it also exposes companies and individuals to additional liability and risk. This additional risk is coming into focus more and more as &lt;a href="http://otb.manusoft.com/2007/01/autocad-drawing-files-possession-is-910.htm"&gt;actual cases of costly legal battles&lt;/a&gt; confront engineers and architects.&lt;br /&gt;&lt;br /&gt;The June 2008 &lt;a href="http://www.augi.com/autocad/results.asp?cycle=ACAD008"&gt;AUGI wishlist results&lt;/a&gt; contain &amp;ldquo;Design File Locking&amp;rdquo; as the top wish by a substantial margin, and Shaan Hurley lists it as number 3 in the &lt;a href="http://autodesk.blogs.com/between_the_lines/2008/12/au-2008-wednesday-autocad-wish-list.html"&gt;AU 2008 AutoCAD wish list&lt;/a&gt;. Clearly, interest in file and IP security has been growing steadily.&lt;br /&gt;&lt;br /&gt;As demand for IP security grows, there are sure to be snake oil security vendors trying to cash in on it. I received a spam email a few days ago from SafeNet, Inc. promising &amp;ldquo;a cost-effective and easy to integrate solution that provides reliable and effective security through the use of digital signatures.&amp;rdquo; Whenever I see such statements with a long string of buzzwords, my snake oil alarm goes on alert. Digital signatures are for authentication and establishing trust &amp;ndash; they cannot and do not provide &amp;ldquo;reliable and effective security&amp;rdquo;, although I suppose they could be used by a system that does.&lt;br /&gt;&lt;br /&gt;In the last year or two, a number of companies have claimed to market software that &amp;ldquo;secures&amp;rdquo; AutoCAD DWG files. When I see such a claim, it invariably refers to software that creates an anonymous unequally scaled MINSERT entity. These can be created or &amp;ldquo;exploded&amp;rdquo; with a few lines of AutoLISP code. Frequently these companies claim to &amp;ldquo;encrypt&amp;rdquo; the drawing, which may sound sexy, but is an outright lie. If this is a level of &amp;ldquo;security&amp;rdquo; that meets your needs, at least use one of the many free versions posted throughout the internet (&lt;a href="http://www.dotsoft.com/freestuff.htm"&gt;DETER.VLX from DotSoft&lt;/a&gt; is one I know of).&lt;br /&gt;&lt;br /&gt;There are solutions, but they always require changes in the workflow process that involve difficult tradeoffs and careful evaluation of what is technically feasible and practical versus the costs of implementing the changes. There is no such thing as installing a single piece of software to instantly solve the problem. If you are looking for ways to protect intellectual property in your drawing files, don&amp;rsquo;t be fooled by snake oil security vendors.&lt;br /&gt;&lt;br /&gt;Disclaimer: One of my hats is the president of &lt;a href="http://www.cadlock.com/"&gt;CADLock, Inc.&lt;/a&gt;, makers of &lt;a href="http://www.cadlock.com/products/CADVault/"&gt;CADVault for AutoCAD&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Propagandapedia</title><link>http://www.manusoft.com/archive/blog/propagandapedia/</link><pubDate>Wed, 15 Oct 2008 17:58:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/propagandapedia/</guid><description>&lt;p&gt;Did you ever wonder what press release writers do in their spare time? Given Autodesk's recent &lt;a href="http://www.cadcourt.com/Docket/308cv04397AutodeskvSolidWorks.aspx"&gt;trademark litigation with SolidWorks&lt;/a&gt; and &lt;a href="http://www.cadcourt.com/Docket/92047002AutodeskvODA.aspx"&gt;related efforts&lt;/a&gt; by &lt;a href="http://www.autodesk.com/"&gt;Autodesk&lt;/a&gt; to trademark "DWG", and given the fact that &lt;a href="http://www.uspto.gov/"&gt;US Patent and Trademark Office&lt;/a&gt; (USPTO) trademark examiners are &lt;a href="http://iplitigator.huschblackwell.com/2007/07/articles/trademark/trademark-trial-appeal-board-says-internet-is-here-to-stay/"&gt;known to use Wikipedia during their research&lt;/a&gt;, it doesn't take an evil genius to realize that a little subversive editing here and there might be helpful to the corporate cause. So, I decided to use &lt;a href="http://wikiscanner.virgil.gr/"&gt;Wikiscanner&lt;/a&gt; to go spelunking through the labyrinth of Wikipedia editing history to see if I could unearth any nuggets.&lt;/p&gt;</description></item><item><title>Update vs. Service Pack</title><link>http://www.manusoft.com/archive/blog/update-vs-service-pack/</link><pubDate>Sat, 27 Sep 2008 20:28:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/update-vs-service-pack/</guid><description>&lt;p&gt;Of course I&amp;rsquo;m talking about Autodesk&amp;rsquo;s newly reinvented nomenclature for &lt;a href="http://usa.autodesk.com/adsk/servlet/ps/dl/index?siteID=123112&amp;amp;id=2334435&amp;amp;linkID=9240618"&gt;bug fixes&lt;/a&gt;. Once upon a time they were known as bug fixes, then service packs, and now &amp;ldquo;updates&amp;rdquo;. Is the Autodesk marketing department running amok? The subtle spin is certainly a sign of the times, but I wonder if the change in terminology comes about for another reason as well.&lt;br /&gt;Autodesk promises &amp;ldquo;&lt;a href="http://usa.autodesk.com/adsk/servlet/index?siteID=123112&amp;amp;id=612485"&gt;features extensions&lt;/a&gt;&amp;rdquo; to subscription customers. They have had difficulty delivering such extensions on a consistent basis. One of the reasons, I suspect, is that developers of extensions encounter the same brick walls that third party developers battle all the time: AutoCAD bugs, of course; but also incomplete APIs and feature limitations. It&amp;rsquo;s possible that updates not only fix bugs, but also fill gaps so that extension developers can get their extensions working.&lt;br /&gt;Then again, the change in terminology might be part of a new fad. My wife, who is an engineer working in the automotive industry, informs me that they no longer issue drawing revisions in her company. Instead, they now issue &amp;ldquo;updates&amp;rdquo;. I wonder how long it will be before auto mechanics stop repairing cars and start updating them instead.&lt;/p&gt;</description></item><item><title>OpenDCL Quick Intro</title><link>http://www.manusoft.com/archive/blog/opendcl-quick-intro/</link><pubDate>Sun, 24 Aug 2008 14:42:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/opendcl-quick-intro/</guid><description>&lt;p&gt;If you&amp;rsquo;re an AutoLISP programmer, you&amp;rsquo;ve probably heard about &lt;a href="http://www.opendcl.com/"&gt;OpenDCL&lt;/a&gt;. Maybe you&amp;rsquo;ve even checked it out, but it looked complicated and you weren&amp;rsquo;t sure whether it was worth the trouble to learn how to use it. Either way, do yourself a favor and spend 10 minutes to go through the following 10-step quick introduction to OpenDCL.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://sourceforge.net/project/showfiles.php?group_id=187950&amp;amp;package_id=220267&amp;amp;release_id=570817"&gt;Download&lt;/a&gt; and install OpenDCL Studio. Select the latest version in your desired language (ENU in the filename means US English). The download is an .msi file that can be cleanly uninstalled afterward.&lt;/li&gt;&lt;li&gt;Start AutoCAD (2004 or later). Use the APPLOAD command to load _MasterDemo.lsp from the OpenDCL Studio samples folder (it will be located in a language subfolder of the main OpenDCL Studio folder). When you close the APPLOAD dialog, the OpenDCL &amp;lsquo;MasterDemo&amp;rsquo; dockable form will appear.&lt;/li&gt;&lt;li&gt;Click on the [ListView] button to run the ListView sample. The ListView sample is very simple and will demonstrate some basic principles of OpenDCL. Leave it running as you proceed through the following steps.&lt;/li&gt;&lt;li&gt;Locate and open ListView.lsp in the OpenDCL Studio samples folder. ListView.lsp contains all the code for the ListView sample. Look for the c:ListViewDlg_Close_Clicked function defined near the end of that file. That function is called an &amp;ldquo;event handler&amp;rdquo;, and it is the lisp function that is executed when the [Close] button is pressed. The event handler for the [Close] button simply closes the dialog. The c:ListViewDlg_OnInitialize event handler function initializes the controls on the dialog before it is displayed.&lt;/li&gt;&lt;li&gt;Locate and open ListView.odcl in the OpenDCL Studio samples folder. Files with an .odcl extension can be opened and edited in OpenDCL Studio. OpenDCL Studio is used to design the user interface elements in an OpenDCL project. In the project tree pane, open the &amp;lsquo;Modal Forms&amp;rsquo; folder, then double click on ListViewDlg. The ListView form will be displayed in design mode.&lt;/li&gt;&lt;li&gt;Click on the [Close] button on the ListView form. In the font toolbar at the top of the editor, press the [B] button to make the font bold. Notice that the button&amp;rsquo;s caption becomes bold. In the &amp;lsquo;Properties&amp;rsquo; pane, double click on the &amp;lsquo;Height&amp;rsquo; property value and change it to 20. Press [Enter] to apply the new value. Use your mouse to drag the bottom of the button in design view to resize it dynamically.&lt;/li&gt;&lt;li&gt;Leaving OpenDCL Studio open, switch back to AutoCAD. Resize the ListView dialog, and notice how the controls it contains are also resized. Now switch back to OpenDCL Studio, make sure the [Close] button is selected, then click in the right column of the &amp;lsquo;(Wizard)&amp;rsquo; property in the Properties pane (or right click on the button control and select &amp;lsquo;Properties&amp;rsquo; in the control&amp;rsquo;s context menu). In the Control Properties Wizard, the Geometry tab shows that the button&amp;rsquo;s &amp;ldquo;Left Side Alignment&amp;rdquo; has been set to &amp;ldquo;Offset From Center of Dialog&amp;rdquo; and it&amp;rsquo;s &amp;ldquo;Top Side Alignment&amp;rdquo; has been set to &amp;ldquo;Offset From Bottom Edge&amp;rdquo;. Once these properties are set, no additional code is needed for the control to react correctly when the dialog is resized.&lt;/li&gt;&lt;li&gt;Exit AutoCAD, then restart. Enter the OPENDCL command. This command demand-loads the OpenDCL Runtime using AutoCAD demand loading mechanism. The OpenDCL Runtime must be loaded before the OpenDCL functions will work. The OpenDCL Studio installation includes OpenDCL Runtime, so it already exists on your computer.&lt;/li&gt;&lt;li&gt;If you are developing an application for use by others, you&amp;rsquo;ll need to download and distribute the &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=187950&amp;amp;package_id=219635&amp;amp;release_id=571922"&gt;OpenDCL Runtime&lt;/a&gt; along with your application. This is best done by incorporating the OpenDCL Runtime merge module for your language directly into your own application&amp;rsquo;s installation script. Alternatively, you can distribute the standalone OpenDCL Runtime .msi file for your language, or publish the URL where end users can download the latest version.&lt;/li&gt;&lt;li&gt;Switch back to OpenDCL Studio and double click on the [Close] button control. Intelligent help displays all the properties, methods, and events of the selected control, including their AutoLISP syntax. Click on a property, method, or event in the left pane to see detailed information for it.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Once you complete these ten steps, you are only a few minutes away from creating a fully functional OpenDCL application. Give it a try!&lt;/p&gt;</description></item><item><title>Ed Foster: Loss Of A Legend</title><link>http://www.manusoft.com/archive/blog/ed-foster-loss-of-legend/</link><pubDate>Tue, 29 Jul 2008 22:35:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/ed-foster-loss-of-legend/</guid><description>&lt;p&gt;&lt;a href="http://www.infoworld.com/"&gt;InfoWorld&lt;/a&gt; columnist and legendary consumer advocate Ed Foster &lt;a href="http://www.eff.org/deeplinks/2008/07/memoriam-ed-foster-1949-2008"&gt;died over the weekend&lt;/a&gt;. Ed was a tireless crusader for consumer rights in the digital age, and he will certainly be missed. For many years Ed has authored &lt;a href="http://weblog.infoworld.com/gripeline/"&gt;GripeLine&lt;/a&gt;, where he called companies and politicians to task for abusive anti-consumer practices.&lt;br /&gt;&lt;br /&gt;I&amp;rsquo;ve written before about how Ed exposed and publicised shamefully lopsided &lt;a href="http://www.gripe2ed.com/scoop/section/Eula"&gt;software license agreements&lt;/a&gt;, including &lt;a href="http://www.gripe2ed.com/scoop/story/2004/9/26/13427/0228"&gt;Autodesk&amp;rsquo;s and Adobe&amp;rsquo;s&lt;/a&gt;. Recently, Ed &lt;a href="http://weblog.infoworld.com/gripeline/archives/2008/05/you_can_book_a.html"&gt;commented about the May, 2008 Vernor decision&lt;/a&gt; (see my &lt;a href="http://www.cadcourt.com/"&gt;CAD/Court web site&lt;/a&gt; for more information about the Vernor case).&lt;br /&gt;&lt;br /&gt;It will be no easy task to fill Ed&amp;rsquo;s shoes. We can be certain, though, that his work must go on.&lt;/p&gt;</description></item><item><title>The Magic Baseball Bat</title><link>http://www.manusoft.com/archive/blog/magic-baseball-bat/</link><pubDate>Fri, 27 Jun 2008 22:48:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/magic-baseball-bat/</guid><description>&lt;p&gt;This is a story about my 11 year old son, Nick, and a father&amp;rsquo;s pride.&lt;br /&gt;&lt;br /&gt;I coached Nick&amp;rsquo;s Little League baseball team this year, and now that the regular season is over I&amp;rsquo;m coaching an 11-12 year old All Star team. Being the youngest on the team, Nick struggles with his self confidence even though he&amp;rsquo;s an excellent baseball player. He&amp;rsquo;s not the tallest player, but he&amp;rsquo;s faster and more athletic than many of his older teammates. Even so, he doesn&amp;rsquo;t want to take any risks or make any mistakes, and his insecurities often prevent him from performing at his best.&lt;br /&gt;&lt;br /&gt;A few weeks ago in the league tournament Nick hit a ball against the fence, just short of going over. That was the closest he came all season to hitting one out, and was perhaps the first time he started to believe that it was possible. A few nights after our team was eliminated from the championship tournament, a kid hit a walk off grand slam with 1 out in the bottom of the 6th, down 9 - 6. Nick and I were there to watch it. I heard that the same kid hit one more out of the park later in the tournament. Those were very likely the only two over-the-fence home runs all year in our local league.&lt;br /&gt;&lt;br /&gt;Sometime during tournament time, Nick&amp;rsquo;s baseball bat disappeared from the trunk of my car. I suspect he didn&amp;rsquo;t close the trunk all the way one night, and someone stole it during the night. The following week, in exchange for Nick agreeing to mow the lawn this summer, I bought him a shiny new baseball bat, a new bat bag, and new cleats to replace the old ones with holes in their toes. Nick was itching to play again so he could try out his new toys.&lt;br /&gt;&lt;br /&gt;Fast forward to the all star team&amp;rsquo;s second scrimmage earlier this week. In his first at bat, Nick got walked (then stole second, third, and home over the course of the next few pitches). In his second at bat, Nick hit a hard line drive into the gap, and got to second with a stand-up double. It was just a scrimmage, there was no pressure, and Nick was feeling good about himself, perhaps even daring to feel confident in himself.&lt;br /&gt;&lt;br /&gt;His third time at the plate, Nick crushed the first pitch well over the center field fence amid groans from the opposing team. There was a mixture of surprise and elation among the other players on our team. Some had never seen a player at this level hit a ball over the fence, and I even had to remind them that they were allowed to enter the field to greet Nick as he crossed home plate.&lt;br /&gt;&lt;br /&gt;The excitement was soon forgotten as the game moved along, until Nick came up to bat again and everyone jokingly told him to hit another home run. And then, with two strikes, two out, and two on, he did it again!&lt;br /&gt;&lt;br /&gt;It&amp;rsquo;s amazing how much difference a shiny new bat can make.&lt;/p&gt;</description></item><item><title>Vernor Decision Making a Splash</title><link>http://www.manusoft.com/archive/blog/vernor-decision-making-splash/</link><pubDate>Thu, 22 May 2008 08:03:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/vernor-decision-making-splash/</guid><description>&lt;p&gt;From the &lt;a href="http://www.cadcourt.com/NewsFeed/tabid/53/EntryID/52/Default.aspx"&gt;NewsFeed&lt;/a&gt; on my CAD/Court web site:&lt;br /&gt;&lt;blockquote&gt;&amp;ldquo;The court today &lt;a href="http://www.cadcourt.com/Docket/tabid/55/Default.aspx?Event=90#Doc31"&gt;issued an order&lt;/a&gt; denying Autodesk&amp;rsquo;s motion to dismiss the charges in the Vernor lawsuit. Normally such a denial is perfunctory and mundane, but in this ruling the court performs a breathtaking analysis of whether the AutoCAD software was a sale or a license, and reaches conclusions that, if not reversed, are certain to change the face of software sales in the USA. Technically, the scope of this order is limited to simply refusing to grant Autodesk&amp;rsquo;s motion to dismiss the lawsuit, but the implications of the judge&amp;rsquo;s analysis are almost stunning in their rejection of Autodesk&amp;rsquo;s legal claims. I&amp;rsquo;m sure you will be hearing much more about this order in the coming weeks, as the entire software industry will certainly take notice of this case.&amp;quot;&lt;br /&gt;&lt;/blockquote&gt;&lt;/p&gt;</description></item><item><title>Debugging ObjectARX: Break on Exception</title><link>http://www.manusoft.com/archive/blog/debugging-objectarx-break-on-exception/</link><pubDate>Mon, 12 May 2008 11:11:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/debugging-objectarx-break-on-exception/</guid><description>&lt;p&gt;I have presented a class entitled High Octane ObjectARX at &lt;a href="http://au.autodesk.com/event/"&gt;Autodesk University&lt;/a&gt; the past two years. In 2006 the focus was on project organization, and last year I focused more on techniques for supporting multiple versions of AutoCAD with a single Visual Studio solution, touching briefly on testing and profiling. For 2008 I plan to focus on debugging.&lt;/p&gt;</description></item><item><title>Hotel Autodesk</title><link>http://www.manusoft.com/archive/blog/hotel-autodesk/</link><pubDate>Wed, 30 Apr 2008 12:06:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/hotel-autodesk/</guid><description>&lt;p&gt;Steve Johnson asks &amp;ldquo;&lt;a href="http://www.blog.cadnauseam.com/2008/04/29/where-have-all-the-developers-gone/"&gt;where have all the developers gone?&lt;/a&gt;&amp;rdquo;, and Deelip Menezes wonders &lt;a href="http://www.blog.cadnauseam.com/2008/04/29/where-have-all-the-developers-gone/#comment-270"&gt;in a comment&lt;/a&gt; whether Autodesk&amp;rsquo;s annual release cycle for AutoCAD is part of the problem. I&amp;rsquo;ve always said that an annual release cycle is untenable. The annual release cycle is motivated by Autodesk&amp;rsquo;s desire to make the subscription program look attractive. Has it worked?&lt;br /&gt;&lt;br /&gt;Based on what I&amp;rsquo;ve read and heard through the grapevine, it has definitely worked. More customers than ever are choosing the subscription model. In many cases, the annual subscription business model actually works well for software like AutoCAD, providing benefits for both Autodesk and their customers. But subscription is not for everyone.&lt;br /&gt;&lt;br /&gt;In typical greedy big corporate fashion, Autodesk have overplayed their hand. Instead of concentrating on those customers for whom subscription makes sense and leaving the others to choose a different model, the &amp;ldquo;more is always better&amp;rdquo; marketing machine kicked in. Ergo, the annual release cycle carrot and the AutoCAD retirement program stick were invented. [Oh sorry, it&amp;rsquo;s called the &lt;a href="http://saarc.autodesk.com/adsk/servlet/index?siteID=5967151&amp;amp;id=6053617"&gt;Autodesk Loyalty Program&lt;/a&gt;.]&lt;br /&gt;&lt;br /&gt;I am already seeing the beginnings of a movement of discontent among Autodesk customers, and I expect the annual release cycle to collapse under its own weight within another year or two. In the meantime, tremendous damage is being done. Customers, third party developers, authors, and consultants all suffer under the strain of the annual release cycle, but that&amp;rsquo;s only the tip of the iceberg.&lt;br /&gt;&lt;br /&gt;To pull off annual releases, Autodesk have to be working on multiple versions of AutoCAD in parallel. While AutoCAD 2006 was being beta tested, AutoCAD 2007 and 2008 were already under development, and AutoCAD 2009 was already in the planning stages. When CUI was first introduced to the public, the new ribbon UI was likely already in the planning stages. Is it any wonder that the angry feedback about CUI was ignored?&lt;br /&gt;&lt;br /&gt;When you have an annual release cycle with 3 or 4 future releases on parallel tracks, you can&amp;rsquo;t just stop and fix a fundamental design flaw. All you can do is increase your public relations budget. The harm done to third party developers is substantial, but the inability to shift gears and correct fundamental design flaws is the real travesty of the annual release cycle.&lt;/p&gt;</description></item><item><title>ManuSoft Software Updated for AutoCAD 2009</title><link>http://www.manusoft.com/archive/blog/manusoft-software-updated-for-autocad/</link><pubDate>Wed, 16 Apr 2008 01:10:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/manusoft-software-updated-for-autocad/</guid><description>&lt;p&gt;QuikPik and Periscope are now available for AutoCAD 2009, and SuperPurge will be available later this week. QuikPik users, note that the quick buttons feature does not work with buttons on the new ribbon UI.&lt;/p&gt;</description></item><item><title>The Day the ObjectARX SDK Died</title><link>http://www.manusoft.com/archive/blog/day-objectarx-sdk-died/</link><pubDate>Thu, 27 Mar 2008 15:09:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/day-objectarx-sdk-died/</guid><description>&lt;p&gt;Like &lt;a href="http://en.wikipedia.org/wiki/The_Day_the_Music_Died"&gt;that day almost 50 years ago&lt;/a&gt;, could today be the day that ObjectARX has died?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;There have been a &lt;a href="http://discussion.autodesk.com/thread.jspa?threadID=652855"&gt;flurry of posts&lt;/a&gt; in the ObjectARX discussion group about problems downloading the new ObjectARX 2009 SDK. At first I dismissed the problems as new release hiccups, and expected things to get resolved in short order. Seeing that there were no new complaints this morning, I headed over to &lt;a href="http://www.objectarx.com/"&gt;http://www.objectarx.com/&lt;/a&gt; to download the new ObjectARX 2009 SDK. Instead of the new ObjectARX 2009 SDK, I received the following:&lt;br /&gt;&lt;a href="http://otb.manusoft.com/files/SDK_Request.png"&gt;&lt;img style="CURSOR: hand" alt="" src="http://otb.manusoft.com/files/SDK_Request.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Creative Marketing</title><link>http://www.manusoft.com/archive/blog/creative-marketing/</link><pubDate>Sat, 23 Feb 2008 10:33:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/creative-marketing/</guid><description>&lt;p&gt;This &lt;a href="http://www.tenlinks.com/news/PR/autodsys/022208_accelicad2008_v3.htm"&gt;Autodsys press release&lt;/a&gt; made me chuckle. Their IntelliCAD based AcceliCAD now supports custom entities, announces the press release. &amp;ldquo;Instead of creating custom objects as is necessary in some other CAD packages the application developer can instead use the primitives already built into the program such as LINEs, ARCs, CIRCLEs, and POLYLINEs.&amp;rdquo; Hmmm, that sounds an awful lot like blocks in AutoCAD &amp;ndash; a feature AcceliCAD has surely supported since its inception.&lt;br /&gt;&lt;br /&gt;The press release continues, &amp;ldquo;That means there is no need to define grip points or editing operations for the entities because those functions are already built into AcceliCAD.&amp;quot;&lt;br /&gt;&lt;br /&gt;ObjectARX programmers have been able to create custom objects in AutoCAD for years. One of the most common reasons for creating a custom object is to &amp;ldquo;define grip points or editing operations&amp;rdquo;. Otherwise, blocks work just fine in most cases.&lt;/p&gt;</description></item><item><title>Maps Are Evil</title><link>http://www.manusoft.com/archive/blog/maps-are-evil/</link><pubDate>Wed, 16 Jan 2008 23:55:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/maps-are-evil/</guid><description>&lt;p&gt;One of the defining characteristics that distinguish humans from computers is our ability to act irrationally. Our biological computer system is capable of interjecting an otherwise logical thought process with random perturbations that often result in completely unpredictable outcomes. Looked at in the abstract, this is the essence of how we escape the shackles of destiny and turn an otherwise mundane march of time into a serendipity of human experience.&lt;br /&gt;&lt;br /&gt;In practical terms, it&amp;rsquo;s our ability to make mistakes that gives us supremacy over mere electronic circuits. If we were simply pre-programmed machines, we would be no better, and perhaps no different, than a computer. By making mistakes, we learn. By taking risks, we discover. By challenging and disregarding what is already known, we learn what is not.&lt;br /&gt;&lt;br /&gt;And that, my friends, is why &lt;a href="http://www.news.com/Is-GPS-liability-next/2010-1033_3-6226346.html"&gt;maps are evil&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Periscope Speaks HTML</title><link>http://www.manusoft.com/archive/blog/periscope-speaks-html/</link><pubDate>Sat, 22 Dec 2007 17:06:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/periscope-speaks-html/</guid><description>&lt;p&gt;I hit the jackpot at Radio Shack, so I&amp;rsquo;m back early from my last minute Christmas shopping today. That means I have time to tell you about the new &lt;a href="http://www.manusoft.com/software/periscope.html"&gt;Periscope 4.0&lt;/a&gt; just released this week, in case you&amp;rsquo;re looking for a last minute stocking stuffer for that CAD geek friend of yours that already has everything.&lt;br /&gt;&lt;br /&gt;Periscope shows information about the entity beneath your AutoCAD cursor in a tooltip window (&amp;ldquo;scope window&amp;rdquo;) as you hover over an entity in AutoCAD. Periscope 3 added a COM interface that made it very easy to program a custom &amp;ldquo;extender&amp;rdquo; that added to or modified the displayed entity information. Periscope 4.0 goes even farther &amp;ndash; it uses an excellent &lt;a href="http://www.codeproject.com/KB/miscctrl/pptooltip.aspx"&gt;open source class&lt;/a&gt; by Eugene Pustovoyt to render simple HTML in the scope window. Custom extenders for Periscope 4.0 can now use selected HTML tags to format and beautify their output.&lt;br /&gt;&lt;br /&gt;If you&amp;rsquo;re upgrading from a previous version of Periscope and you already use a custom extender, note that you will need to make a few minor modifications to your extender code. In addition to referencing the new type library (now version 4.0), you&amp;rsquo;ll need to add a new &amp;ldquo;GSMarker&amp;rdquo; argument to your extender&amp;rsquo;s AddScopeText event handler.&lt;br /&gt;&lt;br /&gt;I&amp;rsquo;ve added a new .NET sample extender to show how easy it is to write a Periscope extender in .NET via COM interop. AutoCAD Map 3D 2008 and Topobase 2008 users, check out the commented code in the .NET sample extender to see how you can display feature data in the scope window!&lt;br /&gt;&lt;br /&gt;Happy Holidays!&lt;/p&gt;</description></item><item><title>Blog Posts Immortalized</title><link>http://www.manusoft.com/archive/blog/blog-posts-immortalized/</link><pubDate>Sat, 15 Dec 2007 19:18:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/blog-posts-immortalized/</guid><description>&lt;p&gt;I&amp;rsquo;ve created a compendium of two previous series of blog posts on my web site for posterity (and easier reading):&lt;br /&gt;&lt;a href="http://www.manusoft.com/resources/digest/cmswebsite.html"&gt;I&amp;rsquo;ll take web sites for $200, Alex&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.manusoft.com/resources/digest/digitalsig.html"&gt;Digital Signatures in the CAD Industry&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Digital Signatures: Practical Guidelines</title><link>http://www.manusoft.com/archive/blog/digital-signatures-practical-guidelines/</link><pubDate>Mon, 10 Dec 2007 21:17:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/digital-signatures-practical-guidelines/</guid><description>&lt;p&gt;We use digital signatures every time we visit a secure web site. Visiting a secure web site involves an authentication process that includes verifying the identity of the server by ensuring that its digital certificate, or &amp;ldquo;server certificate&amp;rdquo;, is signed by a trusted certificate authority. This verification process might involve verifying an entire chain of certificates from the actual server certificate up through one or more intermediate certificate authorities and ending with a trusted root certificate authority. This all takes place quickly and automatically before the web page is displayed in your web browser because the web browser includes built in logic to do this work without any user interaction. More importantly, the web browser warns us when the server certificate is expired or invalid.&lt;br /&gt;&lt;br /&gt;The biggest obstacle when using digital certificates in a CAD environment today is not creating them, but easily and automatically verifying them at the receiving end. Even in a completely digital distribution system where everybody works from the CAD model, the various software tools we use to view and work with the model do not handle digital signature verification automatically in a standardized way. As long as downstream consumers of CAD data cannot easily and automatically ensure the trustworthiness of digital data, they will continue to rely on handwritten signatures on paper.&lt;br /&gt;&lt;br /&gt;A second obstacle to the use of digital signatures is the difficulty in accepting that digitally signed data is only trustworthy while it remains in digital format, and therefore the digital file is the &amp;ldquo;record&amp;rdquo; document. There is substantial social inertia that must be overcome before a digital document can gain the same amount of trust as a paper document. Engineers and architects must deal with the specter of previously hidden meta data in their CAD models becoming part of their signed document, thereby exposing them to new liabilities that don&amp;rsquo;t exist with paper drawings. Construction supervisors must learn to refer to the CAD model instead of relying on hardcopy blueprints when resolving disputes or establishing responsibility for errors. Here I think it should be noted that the use of a digitally signed model does not preclude the creation of hardcopy blueprints. Those can be created and &amp;ldquo;wet stamped&amp;rdquo; separately at the same time the CAD model is signed digitally; or they can be created in the field for reference without any signature at all.&lt;br /&gt;&lt;br /&gt;AutoCAD has supported digital signatures for several years, but using the built in functionality is limited to only individual DWG files, lacks support for co-signing (more than one person signing), and forces the signed document to remain in the proprietary DWG format or lose its signature. These problems can be worked around by using third party tools, but doing so requires recipients to use the same tools.&lt;br /&gt;&lt;br /&gt;Over the past few years, many government plan review bodies have amended laws and administrative rules to accommodate digital signatures as part of the plan review process. Without standardization, however, organizations still struggle to effect the necessary changes in their workflow. A lack of uniformity in terminology from one set of regulations to another adds to the confusion. If you are involved in amending or creating rules or regulations that enable the use of digital signatures, you should use generic and well defined terms of art in the regulations, but supplement these with practical guidelines that mention specific technologies, software tools, and file formats that will meet the legal requirements and that you are capable of working with.&lt;br /&gt;&lt;br /&gt;If you are an architect, engineer, or CAD manager working to implement digital signatures into your firm&amp;rsquo;s workflow, there are some concrete steps you can take to make the task easier. Start by segregating your distribution network into &amp;ldquo;digital-only&amp;rdquo; and &amp;ldquo;hardcopy&amp;rdquo; classes of downstream users. Begin the transition with the digital-only part of the network (perhaps only the plan reviewing authority, for example). Next, decide which file format to use for your digital &amp;ldquo;documents&amp;rdquo;. Rather than signing CAD files, many companies start by signing 2D output files such as PDF, DWFx, or XPS. These files are essentially digital versions of the hardcopy documents, so they are more familiar to a wider audience and avoid some of the liability issues of exposing formerly hidden metadata that lives within the CAD model files.&lt;br /&gt;&lt;br /&gt;You&amp;rsquo;ll need to obtain a digital ID and establish internal policies for storing and accessing the digital ID so that only the owner of the digital ID ever has access to the private key. Windows includes a built in certificate manager that you can use to view and manage your digital IDs. To start the certificate manager, run the certmgr.msc management console by entering its name in the Start -&amp;gt; Run command window. Your digital certificate will be installed in your personal certificates folder along with a link to the private key stored in the Windows secure key repository. Make a backup of the digital ID by exporting it to a password protected PFX file. Once a backup is made, the private key should be marked as not exportable to further secure it.&lt;br /&gt;&lt;br /&gt;If you want to create digitally signed AutoCAD DWG files, you can use the digital signature feature of AutoCAD to sign a drawing file either while saving it or after it is saved. You should also consider subscribing to a commercial time service (see &lt;a href="http://otb.manusoft.com/2007/06/what-time-is-it.htm"&gt;What time is it?&lt;/a&gt;) to ensure that your signatures are accompanied by a reliable time stamp in case your digital ID becomes compromised at some point in the future. Third party tools like &lt;a href="http://www.cadlock.com/products/CADVault/"&gt;CADVault for AutoCAD&lt;/a&gt; even make it possible for different people to sign different parts of the CAD model, but such advanced functionality is not needed in most cases.&lt;br /&gt;&lt;br /&gt;If you use different CAD software that does not support digital signatures natively, or if you choose to sign only the secondary files produced by exporting your CAD model to a different format, then you will need to use either tools specific to that format or third party tools that work with files of any format. &lt;a href="http://www.acrobat.com/"&gt;Adobe Acrobat&lt;/a&gt; (PDF) and Microsoft&amp;rsquo;s free &lt;a href="http://www.microsoft.com/whdc/xps/viewxps.mspx"&gt;XPS Viewer&lt;/a&gt; both provide integrated digital signature tools that use the same digital IDs that you would use in AutoCAD, Internet Explorer, or Outlook/Windows Mail, and both applications are easy for recipients to obtain and use.&lt;br /&gt;&lt;br /&gt;Another popular tool for managing digital IDs and signing files is an open source tool called &lt;a href="http://www.gnupg.org/"&gt;GnuPG&lt;/a&gt;. GnuPG utilizes encryption and key storage standards called &lt;a href="http://www.openpgp.org/about_openpgp/"&gt;OpenPGP&lt;/a&gt;. OpenPGP is not compatible with the X.509 standard used by Windows and many other encryption tools, however it is an attractive alternative when cost or closed source tools are a prohibitive barrier. There are many other digital signature resources available on the internet for those wanting more information, or needing specialized tools.&lt;br /&gt;&lt;br /&gt;Unfortunately, no matter what software tools or file formats you use, today&amp;rsquo;s CAD software and document viewers still do not provide the user experience that web browsers do when it comes to digital signatures. These problems can be overcome by end users, but ultimately they need to be addressed by the makers of the software tools we use. Software for handling digital data will need better user interfaces that allow users to easily specify which digital signatures should be trusted for which purposes, and provide requisite warnings when a document should not be trusted. I am confident that these improvements will come in the future, especially as more companies begin to use digital signatures in their workflow and demand for better digital signature support rises.&lt;br /&gt;&lt;br /&gt;If you already use digital signatures with your CAD related documents, I would like to hear about it. Please leave a comment about your experiences, whether good or bad!&lt;/p&gt;</description></item><item><title>Digital Signatures: Under the Hood</title><link>http://www.manusoft.com/archive/blog/digital-signatures-under-hood/</link><pubDate>Mon, 10 Dec 2007 21:15:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/digital-signatures-under-hood/</guid><description>&lt;p&gt;The basic requirements of a digital signature are that it must uniquely identify the signatory, it must be independently verifiable, and it must be invalidated if the signed data has changed. To understand how these objectives are achieved, let&amp;rsquo;s start with the foundation of modern digital signature technology: public key encryption and the &lt;a href="http://en.wikipedia.org/wiki/Public_key_infrastructure"&gt;public key infrastructure&lt;/a&gt;, or PKI.&lt;br /&gt;&lt;br /&gt;In public key encryption, a &amp;ldquo;key pair&amp;rdquo; consists of two parts: a public key and a private key. In simplistic terms, the public key is mathematically derived from the randomly generated private key using an algorithm known as a &amp;ldquo;one way function&amp;rdquo;. A one way function makes it easy to calculate a public key if the private key is known, but extremely difficult to deduce the private key if the public key is known. The end result is a secret private key and an openly shared public key that are mathematically related in such a way that the public key can be used to decrypt data that was encrypted with the private key, and the private key can be used to decrypt data that was encrypted with the public key.&lt;br /&gt;&lt;br /&gt;This interesting property of such a key pair gives rise to a number of useful capabilities. In the case of digital signatures, the act of signing data is essentially nothing more complicated than encrypting the data with a private key. If the data can be decrypted successfully with the signer&amp;rsquo;s public key, then only the signer&amp;rsquo;s private key could have been used to do the encrypting. In practice, this process is simplified so that the signer encrypts only a secure hash, or checksum, of the data to be signed. The recipient then calculates the hash from the raw data and compares the result with the &amp;ldquo;signed&amp;rdquo; hash after it is decrypted. If the values match, the digital signature and data are validated.&lt;br /&gt;&lt;br /&gt;For this process to work properly, there need to be standard ways to package information about the algorithms used, and to provide important information about the keys themselves. This need is fulfilled by digital certificates. A digital certificate is a file or block of memory containing a public key along with ancillary data about the key and its owner. The certificate is itself digitally signed by the entity, usually a mutually trusted third party, that issued the certificate. This enables users to verify that the public key is valid and trustworthy.&lt;br /&gt;&lt;br /&gt;A digital ID is the private key component of a key pair. Normally the private key is not stored together with the public key, but instead is stored in a separate physical location for security, usually requiring a password to access it. A key manager maintains links between the digital certificate and its associated private key. In many cases, it is convenient to use the term &amp;ldquo;digital ID&amp;rdquo; to mean both the public and private keys, even though they are physically separated.&lt;br /&gt;&lt;br /&gt;It is almost always a good idea to time stamp digital signatures. Time stamping involves sending the digital signature to a time stamp authority, who then creates and returns a digitally signed time stamp that is uniquely and securely associated with the original digital signature. The time stamp can then be verified by third parties in the future by using exactly the same technique used to verify a digital signature.&lt;br /&gt;&lt;br /&gt;I think these important terms deserve a review. A &amp;ldquo;digital certificate&amp;rdquo; is a public key, which is itself digitally signed by a mutually trusted third party. Your digital certificate represents your public digital identity, and it should be made freely available to anyone who wants or needs it. A &amp;ldquo;digital ID&amp;rdquo; is a digital certificate &lt;strong&gt;and&lt;/strong&gt; the private key associated with the digital certificate. It isn&amp;rsquo;t difficult to create your own self-signed digital ID, but a digital ID is only as good as the issuing authority that signs it. When you purchase a digital ID from a third party like &lt;a href="http://www.verisign.com/"&gt;VeriSign&lt;/a&gt; or &lt;a href="http://www.thawte.com/"&gt;Thawte&lt;/a&gt;, their reputation makes your digital ID more trustworthy.&lt;/p&gt;</description></item><item><title>Digital Signatures: Philosophically Speaking</title><link>http://www.manusoft.com/archive/blog/digital-signatures-philosophically/</link><pubDate>Mon, 10 Dec 2007 21:11:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/digital-signatures-philosophically/</guid><description>&lt;p&gt;There is nothing magical about &lt;a href="http://en.wikipedia.org/wiki/Digital_signature"&gt;digital signatures&lt;/a&gt;. They are simply an electronic mark used to signify a promise and to cement faith in the document or transaction to which that promise is attached. Some day digital signatures will be as commonplace among CAD professionals as the human readable &amp;ldquo;wet stamp&amp;rdquo; is today. However it must also be said that, just as CAD did not make architects more creative, digital signature technology will not make engineers more trustworthy.&lt;br /&gt;&lt;br /&gt;The technology to use digital signatures has been around for well over 20 years, and a wide variety of software tools exist today that make digital signatures easy to use on almost any platform. So why is the use of digital signatures not more widespread? Primarily because the utopian dream of a paperless world has yet to materialize.&lt;br /&gt;&lt;br /&gt;So long as hardcopy on paper is regarded as the authentic &amp;ldquo;record&amp;rdquo; version of a document, digital signatures are virtually useless. Even if new buildings are designed completely in CAD, an architect&amp;rsquo;s digital signature simply won&amp;rsquo;t mean anything if downstream consumers of the building design require a paper blueprint. The true benefits of a paperless world simply can&amp;rsquo;t be realized until &lt;strong&gt;every&lt;/strong&gt; link in the chain has joined the digital club. So long as even a single node on the distribution tree requires a human readable method of verifying authenticity, the architect is forced to use a handwritten wet signature on paper blueprints from the very start.&lt;br /&gt;&lt;br /&gt;Handwritten signatures can be scanned into an electronic format, but then they lose their putative value because a digital facsimile is so easily reproduced. Therefore only original and unique handwritten wet signatures are trustworthy in a human readable form. Digital signatures do not translate to paper because they are not human readable. Therefore digital signatures only have value for a document in electronic form. This maxim is fundamental to a proper understanding of the emerging digital signature technology: digital data can &lt;strong&gt;only&lt;/strong&gt; be securely signed by computers; and human readable documents can &lt;strong&gt;only&lt;/strong&gt; be securely signed by humans.&lt;br /&gt;&lt;br /&gt;I see many people in the CAD industry looking for a hybrid solution to this paper vs. digital dilemma by using a &amp;ldquo;digitized signature&amp;rdquo; (i.e. handwritten on paper, then scanned into electronic format) so that printed output contains this digitized signature. This cannot even remotely be considered a digital signature! There is simply no such thing as a secure printed digitized signature. Yes, you can digitally sign a document that has an embedded digitized signature, but once it is printed, that digitized signature is not worth the paper it&amp;rsquo;s printed on. Not only could that signature be stolen from the document and used maliciously, there is &lt;strong&gt;no way to tell&lt;/strong&gt; from the signature alone whether or not it has &lt;strong&gt;already&lt;/strong&gt; been stolen and used maliciously.&lt;br /&gt;&lt;br /&gt;The only hybrid approach that is practical and legally sound is to use digital and wet signatures in parallel. Using an architect as an example, this would mean creating and disseminating two sets of signed documents: the CAD model of a building (perhaps converted into a common 2D format like PDF, DWFx, or XPS) with the architect&amp;rsquo;s digital signature &lt;strong&gt;and&lt;/strong&gt; paper blueprints with the architect&amp;rsquo;s individually handwritten wet signature.&lt;br /&gt;&lt;br /&gt;A number of companies claim to sell some sort of hybrid solution involving the creation of a secure digitized signature. This is simply capitalism &amp;ndash; selling something useless just because there is a market for it. A digitized signature is only secure if it is never used. I&amp;rsquo;ve heard the rationalization that the digitized signature printed on paper meets a psychological need for people accustomed to seeing one, even if it has no legal value. In my opinion, such pandering borders on deception and serves only to further alienate digital signature technology from those who would benefit from it. This sort of abuse is typified by an emailed PDF file consisting of a scanned document with a handwritten signature. In such cases, checking the sender&amp;rsquo;s email address likely becomes the most reliable way to verify the document&amp;rsquo;s trustworthiness. Spam filters bear witness to the fact that the sender&amp;rsquo;s email address is the most important &amp;ndash; and often only &amp;ndash; criteria we use in determining the level of trust to place in emailed documents. This is an important point to keep in mind.&lt;br /&gt;&lt;br /&gt;The act of applying a digital signature requires the use of a secure private encryption key, but &lt;strong&gt;the digital signature alone does not provide security in any way&lt;/strong&gt;. Digitally signing a document does not prevent it from being modified or stolen. In that respect it is no different than a handwritten wet signature. However, unlike a wet signature that cannot be easily duplicated, a digital signature does not prevent a signed document from being copied. This does not make digital signatures inferior. On the contrary, making copies is necessary and commonplace in the digital world, so the fact that exact copies of digitally signed documents are still trustworthy is a huge benefit over handwritten signatures.&lt;br /&gt;&lt;br /&gt;There are other notable differences between a digital signature and a handwritten signature. Digital signatures can be time-stamped, thus providing reliable evidence that a document was signed on or before a certain time. A disadvantage of digital signatures is that they are only as reliable as the digital ID used to create them. To combat this problem, a public clearinghouse of compromised digital IDs must be maintained, and auditing systems must be in place to immediately detect and report suspicious activity. Time stamped digital signatures created before a digital ID is compromised can be easily and certainly distinguished from compromised signatures if properly designed and competently managed infrastructure is in place. This is necessary to ensure that previously existing digital signatures survive a compromising event.&lt;br /&gt;&lt;br /&gt;In conclusion, adequate technical solutions and time tested safeguards already exist for successfully using digital signatures in a professional environment, but digital consumers still need to learn how to work within the limitations of the technology. Building an acceptable comfort level with a technology that must by its nature completely replace something as significant and culturally ingrained as the handwritten signature will not be easy or quick, but it is inevitable.&lt;/p&gt;</description></item><item><title>Digital Signatures: Prelude</title><link>http://www.manusoft.com/archive/blog/digital-signatures-prelude/</link><pubDate>Mon, 10 Dec 2007 21:07:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/digital-signatures-prelude/</guid><description>&lt;p&gt;For many, the word "encryption" has a mysterious quality that invokes images of math virtuosos in secret bunkers working feverishly during wartime to break the enemy's coded communications. My first exposure to encryption came in 1996 when I began working with Paul Kohut on the first version of CADLock software for locking AutoCAD drawing files. After overcoming my initial struggle to understand the terminology and get a handle on the mathematics behind encryption, I realized that it wasn't nearly as mysterious and complicated as it first appeared.&lt;/p&gt;</description></item><item><title>AU 2007 Post Mortem</title><link>http://www.manusoft.com/archive/blog/au-2007-post-mortem/</link><pubDate>Mon, 03 Dec 2007 15:12:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/au-2007-post-mortem/</guid><description>&lt;p&gt;The Hot List&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Carl Bass munching on fast food in the food court, and spotted throughout the week yakking with average folks in the halls.&lt;/li&gt;&lt;li&gt;Staggered classes reduced the lunchtime crush experienced at AU 2006.&lt;/li&gt;&lt;li&gt;More ObjectARX programming classes this year. I&amp;rsquo;m pushing for creating a new &amp;ldquo;Developer&amp;rdquo; track for AU 2008.&lt;/li&gt;&lt;li&gt;The &lt;a href="http://www.flickr.com/photos/btl/2077673044/"&gt;Matt Murphy Head&lt;/a&gt; (peace be upon him).&lt;/li&gt;&lt;li&gt;Meeting a lot of familiar faces and a few new ones!&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The Cold List&lt;/p&gt;</description></item><item><title>VC Build Hook utility for Visual Studio 2008</title><link>http://www.manusoft.com/archive/blog/vc-build-hook-utility-for-visual-studio/</link><pubDate>Mon, 26 Nov 2007 02:27:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/vc-build-hook-utility-for-visual-studio/</guid><description>&lt;p&gt;The new&lt;a href="http://msdn2.microsoft.com/vs2008/products/"&gt; Visual Studio 2008&lt;/a&gt; has been released, and to celebrate, I&amp;rsquo;ve updated &lt;a href="http://www.manusoft.com/resources/arxtips/vcbuildhook.html"&gt;VC Build Hook&lt;/a&gt;. The updated utility allows you to use the new IDE while still building with older versions of the build tools.&lt;br /&gt;&lt;br /&gt;Why is this necessary? If you build your AutoCAD 2007/2008 ObjectARX application with the Visual C/C++ 9.0 tools, AutoCAD will display a warning message about an incompatible module when you try to load it. You can use VC Build Hook to target all previous AutoCAD versions from a single Visual Studio 2008 solution (if you have the correct version of Visual C/C++ installed alongside Visual Studio 2008).&lt;br /&gt;&lt;br /&gt;In my testing so far, existing Visual Studio 2005 projects build without problems in Visual Studio 2008 when VC Build Hook is installed and the new &amp;lsquo;BuildToolVersion&amp;rsquo; property is set to the correct version.&lt;/p&gt;</description></item><item><title>OpenDCL 4.1 Released</title><link>http://www.manusoft.com/archive/blog/opendcl-41-released/</link><pubDate>Wed, 21 Nov 2007 10:50:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/opendcl-41-released/</guid><description>&lt;p&gt;&lt;a href="http://www.opendcl.com"&gt;OpenDCL 4.1&lt;/a&gt; adds support for the AutoCAD 2008 64-bit platform, includes many improvements in the OpenDCL Studio editor, and has a completely rewritten grid control.&lt;br /&gt;&lt;br /&gt;Next on the agenda is adding support for localization so that local language translations can be easily created.&lt;/p&gt;</description></item><item><title>The War On Security</title><link>http://www.manusoft.com/archive/blog/war-on-security/</link><pubDate>Thu, 01 Nov 2007 13:35:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/war-on-security/</guid><description>&lt;p&gt;Security and encryption legend Bruce Schneier posted this essay:&lt;br /&gt;&lt;a href="http://www.schneier.com/blog/archives/2007/11/the_war_on_the.html"&gt;The War on the Unexpected&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I think we should all be reminded that representative governments are always at risk of death by democracy: suicide under the watchful eyes of a body politic beholden only to the next election.&lt;/p&gt;</description></item><item><title>Autodesk Resale Prohibition Under Attack</title><link>http://www.manusoft.com/archive/blog/autodesk-resale-prohibition-under/</link><pubDate>Tue, 11 Sep 2007 04:40:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autodesk-resale-prohibition-under/</guid><description>&lt;p&gt;I&amp;rsquo;ve just posted at &lt;a href="http://www.cadcourt.com/NewsFeed/tabid/53/EntryID/47/Default.aspx"&gt;CAD/Court&lt;/a&gt; about a new lawsuit filed by Timothy S. Vernor of Seattle accusing Autodesk of using fraudulent means to enforce its license agreement prohibition on reselling legitimately purchased software. This subject comes up often, and I think there is a lot of grass roots support for Mr. Vernor&amp;rsquo;s argument extending well beyond Autodesk customers.&lt;br /&gt;&lt;br /&gt;The license agreement is not the central tenet of the lawsuit, but questions about its legitimacy do come into play. The legal principle involved is called the First Sale Doctrine, which essentially exempts buyers of copyrighted works from copyright infringement claims when they resell the work. The nebulous legal framework around so-called &amp;ldquo;shrink-wrap&amp;rdquo; software licenses, and the degree to which the First Sale Doctrine applies to software, is still an open question here in the US.&lt;br /&gt;&lt;br /&gt;For those of you interested in learning more about the First Sale Doctrine, listen to this &lt;a href="http://www.techliberation.com/archives/042738.php"&gt;podcast discussion&lt;/a&gt; on the Technology Liberation Front web site.&lt;/p&gt;</description></item><item><title>AutoCAD 2008 Slow Startup Fix</title><link>http://www.manusoft.com/archive/blog/autocad-2008-slow-startup-fix/</link><pubDate>Thu, 06 Sep 2007 15:54:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autocad-2008-slow-startup-fix/</guid><description>&lt;p&gt;&lt;em&gt;[Update: See &lt;a href="http://otb.manusoft.com/2010/11/disable-autocad-infocenter.htm"&gt;Disable AutoCAD InfoCenter&lt;/a&gt;]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve noticed more frequent posts in the Autodesk discussion groups about slow startup problems since AutoCAD 2008 was released, and I have the same problem on my development system. Part of the problem is .NET loading, due to the new .NET gadgets like the dashboard palette. Another long running startup hassle is the communication center (WSCommCntr1.exe if you check running processes in task manager) that Autodesk products use to call home.&lt;/p&gt;</description></item><item><title>Brutal</title><link>http://www.manusoft.com/archive/blog/brutal/</link><pubDate>Fri, 17 Aug 2007 21:45:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/brutal/</guid><description>&lt;p&gt;I&amp;rsquo;ve heard the word &amp;ldquo;brutal&amp;rdquo; used more than once during conversations with Autodesk employees about the &lt;a href="http://www.autodesk.com/discussion"&gt;Autodesk sponsored discussion groups&lt;/a&gt;. It&amp;rsquo;s true that raw unfiltered feedback can be brutal, and it can also hurt your ego if you happen to be the target of criticism. The trick is to learn how to interpret the feedback. If you can master that skill, that raw feedback is a fast, unbiased, low noise-to-signal-ratio predictor of the future.&lt;br /&gt;&lt;br /&gt;I&amp;rsquo;ve seen many recognizable Autodesk names come and go since the days of Autodesk&amp;rsquo;s original online discussion group, the CompuServe ACAD forum. Oftentimes, they came espousing the virtues of such a vibrant community, only to wilt away after they got singed a few times in the inevitable flame wars. Some Autodesk names (Art Cooney comes to mind) have been around forever, and still take it all in stride. Personally, I view the discussion groups as one of Autodesk&amp;rsquo;s biggest competitive advantages, even while they go largely untapped.&lt;br /&gt;&lt;br /&gt;This week saw too issues erupt into what could fairly be termed brutal feedback. The first was caused by the Autodesk University registration site failing under the load of opening day registration. Several threads (&lt;a href="http://discussion.autodesk.com/thread.jspa?threadID=601416"&gt;&amp;ldquo;Dear Carl Bass&amp;rdquo;&lt;/a&gt; and &lt;a href="http://discussion.autodesk.com/thread.jspa?threadID=601214"&gt;&amp;ldquo;AU2007 Registration is now open!!!&amp;quot;&lt;/a&gt;) called Autodesk to the carpet for blowing it again, after a similar fiasco in 2006.&lt;br /&gt;&lt;br /&gt;The second event occurred when AutoCAD product manager Eric Stover &lt;a href="http://discussion.autodesk.com/thread.jspa?threadID=601266"&gt;announced a new &amp;ldquo;bonus&amp;rdquo; tool&lt;/a&gt; called CommandComplete. I pity the poor guy or gal that wrote this tool (on their own time, I&amp;rsquo;m sure), all excited to see how it is received, only to become the victim of a flame war. Okay, not really a flame war in this case because Eric employed his finely tuned flame retardant diplomacy skills to prevent it from getting out of hand &amp;ndash; so let&amp;rsquo;s just call it a &amp;ldquo;venomous reaction&amp;rdquo;.&lt;br /&gt;&lt;br /&gt;There is a moral to this story. Some companies would kill to have access to this kind of critical, unfiltered, instantaneous feedback from the unwashed masses. I hope Autodesk recognizes the goose that lays the golden egg.&lt;/p&gt;</description></item><item><title>OpenDCL 4.0 Debuts</title><link>http://www.manusoft.com/archive/blog/opendcl-40-debuts/</link><pubDate>Wed, 01 Aug 2007 09:51:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/opendcl-40-debuts/</guid><description>&lt;p&gt;OpenDCL 4.0 has finally been released. If you&amp;rsquo;re not familiar with OpenDCL, check it out at &lt;a href="http://www.opendcl.com"&gt;&lt;a href="https://www.opendcl.com"&gt;www.opendcl.com&lt;/a&gt;&lt;/a&gt;, or on SourceForge at &lt;a href="http://sourceforge.net/projects/opendcl/"&gt;sourceforge.net/projects/opendcl&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;OpenDCL, based on the original commercial ObjectDCL software by Chad Wanless, is a modern replacement for the old DCL dialog control language in AutoCAD. The current OpenDCL Runtime supports AutoCAD 2002 through 2008 (except AutoCAD 2008 x64). It is designed to give AutoCAD end users and AutoLISP application developers a simple yet powerful way to design and use rich user interfaces in their applications.&lt;br /&gt;&lt;br /&gt;The goal for version 4.0 was to get it stable and fix all the bugs, with minimal new feature development. OpenDCL 4.1 will add support for AutoCAD 2008 x64. After that we will start working on localized language versions, and adding new features.&lt;br /&gt;&lt;br /&gt;OpenDCL is licensed under the &lt;a href="http://www.gnu.org/licenses/licenses.html#GPL"&gt;GNU General Public License&lt;/a&gt; (GNU GPL) open source license, completely free to use, and source code is available on SourceForge.&lt;/p&gt;</description></item><item><title>What time is it?</title><link>http://www.manusoft.com/archive/blog/what-time-is-it/</link><pubDate>Thu, 21 Jun 2007 20:13:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/what-time-is-it/</guid><description>&lt;p&gt;AutoCAD 2004 introduced the ability to digitally sign drawing files when they are saved, but very few people use this feature. Even fewer use the time stamp feature that goes along with it. Time stamping a digital signature is important when it&amp;rsquo;s not only important to know &lt;em&gt;who&lt;/em&gt; signed it, but also &lt;em&gt;when&lt;/em&gt; they signed it.&lt;br /&gt;&lt;br /&gt;For time stamping to be reliable and trustworthy, you need an independent (and trustworthy) third party to provide the time stamp, along with a verifiable receipt so that anyone can verify the authenticity of a claimed time stamp in the event of a future dispute.&lt;br /&gt;&lt;br /&gt;Since the inception of the digital signature feature, AutoCAD has included three default time servers for this purpose. Unfortunately, none of the three are accessible any more. If you need to digitally sign drawing files with a time stamp, you&amp;rsquo;ll have to modify this list of time servers.&lt;br /&gt;&lt;br /&gt;The list of time servers is maintained in a file named timesrvr.txt in the AutoCAD installation folder. You can edit the file with notepad, and the format is obvious and straightforward when you view the file.&lt;br /&gt;&lt;br /&gt;If you just want to play around with time stamps, try adding the following to the end of the file (you do not need to restart AutoCAD to see the new servers):&lt;br /&gt;NIST A [Maryland] (time-a.nist.gov)&lt;br /&gt;NIST B [Maryland] (time-b.nist.gov)&lt;br /&gt;&lt;br /&gt;As of this writing, both of these NIST servers are available and working, but you get what you pay for. For officially incorporating time stamped digital signatures into your workflow, I recommend subscribing to a commercial time service with guaranteed uptime and a web based time stamp verification console. I can&amp;rsquo;t recommend one, because I have never used a commercial time service myself, but a good place to start is the list of public time servers maintained by &lt;a href="http://www.ntp.org"&gt;NTP.org&lt;/a&gt; at &lt;a href="http://support.ntp.org/bin/view/Servers/"&gt;&lt;a href="http://support.ntp.org/bin/view/Servers/"&gt;http://support.ntp.org/bin/view/Servers/&lt;/a&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Visual Studio Build Configuration Tip</title><link>http://www.manusoft.com/archive/blog/visual-studio-build-configuration-tip/</link><pubDate>Fri, 15 Jun 2007 12:30:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/visual-studio-build-configuration-tip/</guid><description>&lt;p&gt;I&amp;rsquo;ve received several emails recently from users of my &lt;a href="http://www.manusoft.com/resources/arxtips/vcbuildhook.html"&gt;VC Build Hook utility&lt;/a&gt; that mention switching the &amp;lsquo;UseVC7Paths&amp;rsquo; setting on and off depending on the build configuration they are working on. If you are doing this, you need to change your project structure!&lt;/p&gt;</description></item><item><title>QuikPik, Periscope, SuperPurge Updated for AutoCAD 2008</title><link>http://www.manusoft.com/archive/blog/quikpik-periscope-superpurge-updated/</link><pubDate>Fri, 04 May 2007 01:59:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/quikpik-periscope-superpurge-updated/</guid><description>&lt;p&gt;If you use of any of these &lt;a href="http://www.manusoft.com/software.html"&gt;ManuSoft products&lt;/a&gt;, preliminary AutoCAD 2008 support has been available for several weeks at the &lt;a href="http://www.manusoft.com/store/customer.html"&gt;Download Center&lt;/a&gt; for registered users. The &lt;a href="http://www.manusoft.com/software/quikpik.html"&gt;QuikPik&lt;/a&gt; and &lt;a href="http://www.manusoft.com/software/periscope.html"&gt;Periscope&lt;/a&gt; updates are now officially released, and the shareware versions of QuikPik and Periscope are now available as well. &lt;a href="http://www.manusoft.com/software/superpurge.html"&gt;SuperPurge&lt;/a&gt; will be officially released in the next week or so.&lt;br /&gt;&lt;br /&gt;My free AcadStatusBarButton library has also been updated for AutoCAD 2008, and is now available for download on the &lt;a href="http://www.manusoft.com/software/freebies/misc.html"&gt;Freebies&lt;/a&gt; page. The only change is the addition of a blank status bar pane beneath your floating buttons so that the new annotation scale buttons in AutoCAD 2008 don&amp;rsquo;t get covered up (the blank panes force the annotation scale buttons to the left of your custom buttons). If your button position is fixed (i.e. not floating), the blank pane will not be used.&lt;br /&gt;&lt;br /&gt;As always, if you encounter any problems, please &lt;a href="mailto:owenw@manusoft.com"&gt;let me know&lt;/a&gt;!&lt;/p&gt;</description></item><item><title>Rational Ignorance</title><link>http://www.manusoft.com/archive/blog/rational-ignorance/</link><pubDate>Sun, 22 Apr 2007 18:11:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/rational-ignorance/</guid><description>&lt;p&gt;Reading the discussion about the reluctance to move to 3D/BIM in the latest issue of &lt;a href="http://www.upfrontezine.com/2007/upf-515.htm"&gt;upFront.eZine&lt;/a&gt; reminded me of the principle of &lt;a href="http://en.wikipedia.org/wiki/Rational_ignorance"&gt;rational ignorance&lt;/a&gt;. The principle of rational ignorance applies when the perceived cost of obtaining knowledge is greater than the perceived benefit. It&amp;rsquo;s a bit of a chicken-and-egg scenario, where individuals rationalize their decision to remain ignorant based on their perception of the (lack of) benefit in the very thing they are ignorant about.&lt;br /&gt;&lt;br /&gt;It is interesting to think about the 2D to 3D paradigm shift in terms of shifting the balance in the rational ignorance equation. I think there&amp;rsquo;s also another principle at work here: Newton&amp;rsquo;s Third Law. The harder the collective movers and shakers try to push, the harder the end users resist. Maybe if the software companies stopped pushing so hard, the shift would occur naturally with much less resistance.&lt;br /&gt;&lt;br /&gt;By the way, I noticed a familiar theme in the upFront eZine discussion: those resistant to the paradigm shift lament the lost art of drafting and fail to believe that the new paradigm no longer needs artisans. Obviously there are other factors at work here &amp;ndash; factors over which no amount of logic will prevail.&lt;/p&gt;</description></item><item><title>Egyptian Pyramid Scheme</title><link>http://www.manusoft.com/archive/blog/egyptian-pyramid-scheme/</link><pubDate>Sat, 31 Mar 2007 09:41:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/egyptian-pyramid-scheme/</guid><description>&lt;p&gt;Deelip Menezes asks what got me started on lamenting the sad state of the CAD industry in my previous post. Good question.&lt;br /&gt;&lt;br /&gt;It all started with a Fox News story about a French architect&amp;rsquo;s claim to have solved the &amp;ldquo;Pyramid Secret&amp;rdquo;: &lt;a href="http://www.foxnews.com/story/0,2933,262981,00.html"&gt;&lt;a href="http://www.foxnews.com/story/0,2933,262981,00.html"&gt;http://www.foxnews.com/story/0,2933,262981,00.html&lt;/a&gt;&lt;/a&gt;. The article links to Dassault Systemes&amp;rsquo; web site: &lt;a href="http://khufu.3ds.com/introduction/"&gt;&lt;a href="http://khufu.3ds.com/introduction/"&gt;http://khufu.3ds.com/introduction/&lt;/a&gt;&lt;/a&gt;. My snake oil alarm went off when I saw the site. I&amp;rsquo;ll admit I didn&amp;rsquo;t read it, but it looks like a slick marketing ploy. I was irritated that I fell for it. It reminded me of how insideous and incestuous this industry has become, now reaching out to mainstream media in search of new victims.&lt;/p&gt;</description></item><item><title>Lamenting</title><link>http://www.manusoft.com/archive/blog/lamenting/</link><pubDate>Sat, 31 Mar 2007 08:43:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/lamenting/</guid><description>&lt;p&gt;In some ways the CAD software industry is a lot like the fashion industry. The movers and shakers are trying to establish new fads that are just recycled from older fads, while guiding the unwashed masses into adopting new trends that have been carefully molded to ensure perpetuation of the system. Meanwhile the up and comers try desperately to get a share of the action, while an entire industry of hangers-on tries to eke out a living from the scraps left behind by the big players.&lt;br /&gt;&lt;br /&gt;It&amp;rsquo;s a tired old symphony played on the world stage, with pretty much the same players today as twenty years ago. The same seamstresses making the same old faux fluff, dressing it up a bit, draping it over a new model, and parading it down the same old runways.&lt;br /&gt;&lt;br /&gt;Bah! I&amp;rsquo;m going outside, maybe that&amp;rsquo;ll cheer me up.&lt;/p&gt;</description></item><item><title>This Just In: Microsoft Patents Photons</title><link>http://www.manusoft.com/archive/blog/this-just-in-microsoft-patents-photons/</link><pubDate>Fri, 02 Mar 2007 17:26:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/this-just-in-microsoft-patents-photons/</guid><description>&lt;p&gt;No, Microsoft didn&amp;rsquo;t really try to patent photons, but check out the the ironic twists described in &lt;a href="http://www.betanews.com/article/Supreme_Court_Debates_Patentability_of_Software/1172097039"&gt;this account&lt;/a&gt; of a recent US Supreme Court hearing. Here&amp;rsquo;s a summary (exaggerated a bit for effect):&lt;br /&gt;1. Microsoft argues that software is not patentable, therefore it is not guilty of patent infringement.&lt;br /&gt;2. The US Government argues on Microsoft&amp;rsquo;s behalf that software is patentable, but photons are not.&lt;/p&gt;</description></item><item><title>DWFx: The Emperor's New Clothes?</title><link>http://www.manusoft.com/archive/blog/dwfx-emperors-new-clothes/</link><pubDate>Thu, 01 Mar 2007 19:10:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/dwfx-emperors-new-clothes/</guid><description>&lt;p&gt;I pointed out in a &lt;a href="http://otb.manusoft.com/2006/12/does-vista-really-open-dwf-files.htm"&gt;previous post&lt;/a&gt; that while the press release headlines pronounced that Vista will support DWF natively, the fine print says otherwise. What Vista does support natively is Microsoft&amp;rsquo;s new &lt;a href="http://www.microsoft.com/whdc/xps/downloads.mspx"&gt;XPS&lt;/a&gt; (XML Paper Specification) format. Autodesk has since clarified that they are working on a new DWF format called DWFx that is, essentially, a DWF in XPS format.&lt;br /&gt;&lt;br /&gt;A &lt;a href="http://otb.manusoft.com/2006/12/does-vista-really-open-dwf-files.htm"&gt;quick test&lt;/a&gt; verified my suspicions that XPS files produced by the &lt;a href="http://www.microsoft.com/whdc/xps/viewxps.mspx"&gt;Microsoft XPS Document Writer&lt;/a&gt; are much larger than comparable DWF files. The jury is still out on DWFx file sizes, but a recent post on Scott Sheppard&amp;rsquo;s blog (&lt;a href="http://dwf.blogs.com:80/beyond_the_paper/2007/02/autocad_2008_dw.html"&gt;&lt;a href="http://dwf.blogs.com:80/beyond_the_paper/2007/02/autocad_2008_dw.html"&gt;http://dwf.blogs.com:80/beyond_the_paper/2007/02/autocad_2008_dw.html&lt;/a&gt;&lt;/a&gt;) has buried within it a telling comparison point between DWF and DWFx.&lt;br /&gt;&lt;br /&gt;The chart uses a neat gambit by comparing both DWF and DWFx file sizes to the completely different DWG format, but the math cognoscenti among you will notice that &amp;ldquo;typically 1/20 the size of the DWG&amp;rdquo; for DWF and &amp;ldquo;typically 1/10 the size of the DWG&amp;rdquo; for DWFx translates into &amp;ldquo;DWFx files are twice as large as DWF&amp;rdquo;. There is no information on file generation times, another metric worth monitoring.&lt;br /&gt;&lt;br /&gt;Autodesk has been pretty generous lately, first giving away Design Review, now perhaps gearing up for an exclusive two-for-the-price-of-one deal on DWFx. I haven&amp;rsquo;t heard too many customers requesting larger file sizes, though.&lt;/p&gt;</description></item><item><title>Introducing OpenDCL for AutoCAD</title><link>http://www.manusoft.com/archive/blog/introducing-opendcl-for-autocad/</link><pubDate>Wed, 31 Jan 2007 19:44:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/introducing-opendcl-for-autocad/</guid><description>&lt;p&gt;AutoLISP programmers may remember a product named ObjectDCL, by 3rd Day Software. ObjectDCL was &lt;a href="http://www.cadopolis.com/autocad/objectdcl-now-open-source-project-.shtml"&gt;released as open source in the summer of 2006&lt;/a&gt; by developer Chad Wanless due to his inability to continue supporting the software because of &amp;ldquo;health reasons&amp;rdquo;. At the time, many users of ObjectDCL hoped that someone would update the code to work in AutoCAD 2007. Programmer David Robison did some work to get AutoCAD 2007 supported, but the project has been languishing, almost to the point of extinction.&lt;br /&gt;&lt;br /&gt;After being asked by several ObjectDCL users whether I could help, I decided a few weeks ago to contribute to the community by getting the original C++ code updated to support AutoCAD 2007. As I am wont to do, I&amp;rsquo;ve ended up re-architecting much of the code in the process.&lt;br /&gt;&lt;br /&gt;The results of my work are available now at the new &lt;a href="http://sourceforge.net/projects/opendcl"&gt;OpenDCL project&lt;/a&gt; on SourceForge. The new 4.0 release is still in the alpha testing phase. If you program in AutoLISP and want to create rich user interfaces for your applications, check it out!&lt;/p&gt;</description></item><item><title>I'll take web sites for $200, Alex: Part IV</title><link>http://www.manusoft.com/archive/blog/ill-take-web-sites-for-200-alex-part-iv/</link><pubDate>Wed, 17 Jan 2007 01:38:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/ill-take-web-sites-for-200-alex-part-iv/</guid><description>&lt;p&gt;(continued from &lt;a href="http://otb.manusoft.com/2007/01/ill-take-web-sites-for-200-alex-part-iii.htm"&gt;Part III&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Creating custom modules for &lt;a href="http://www.dotnetnuke.com/"&gt;DotNetNuke&lt;/a&gt; is an esoteric process that I don't recommend unless you're prepared to invest quite a bit of time and effort. I slogged through the process because I'm too stubborn to quit, but it's hardly worth the investment in time for a one-off custom module. I don't expect many of my readers to try it anyway, so I won't bother describing the technical aspects in any detail.&lt;/p&gt;</description></item><item><title>AutoCAD drawing files: possession is 9/10 of the law?</title><link>http://www.manusoft.com/archive/blog/autocad-drawing-files-possession-is-910/</link><pubDate>Sun, 14 Jan 2007 13:26:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autocad-drawing-files-possession-is-910/</guid><description>&lt;p&gt;The title sums up the puzzling conclusion in a recent 6th Circuit Court of Appeals ruling (&lt;a href="http://otb.manusoft.com/files/CA6%20Grusenmeyer%20Decision.pdf"&gt;CA6 Grusenmeyer Decision.pdf&lt;/a&gt;) in a decision about a copyright infringement claim filed by Cleveland architect Jeffrey Grusenmeyer.&lt;br /&gt;&lt;br /&gt;Grusenmeyer had contracted to provide a &amp;ldquo;master plan&amp;rdquo; for Magnificat High School. The master plan was provided to Magnificat in hardcopy format, Magnificat paid the architect $15,000 as agreed in the contract, and the project was apparently concluded. Some time later, a Magnificat facility manager requested DWG files for &amp;ldquo;personal use&amp;rdquo;. Grusenmeyer asserted at the time that he retained all rights to the DWG files but agreed to provide them on the condition they only be used internally and not be further distributed.&lt;br /&gt;&lt;br /&gt;Fast forward to the eventual &amp;ldquo;request for proposal&amp;rdquo; for an anticipated new building at the school. Upon request, Magnificat provided the Grusenmeyer files to the defendants (a competing architectural firm), who then used portions of the files in their winning proposal. The defendants were aware that Grusenmeyer claimed copyrights to the files, but they used the files anyway. The appeals court notes that &amp;ldquo;[a]ccording to the individual DSC architects, such reliance on drawings of existing conditions is routine in the industry.&amp;quot;&lt;br /&gt;&lt;br /&gt;In affirming the district court&amp;rsquo;s summary judgement in favor of the defendants, the appeals court noted that the contract between Grusenmeyer and his client (Magificat High School) provided that Grusenmeyer would &amp;ldquo;provide a master plan for the implementation of the capital improvements program, including plans, renderings, and perspectives &lt;em&gt;suitable for use in presentation and future reference during master plan implementation&lt;/em&gt;.&amp;rdquo; They concluded that this &amp;ldquo;plain language&amp;rdquo; gave Magnificat permission to send the AutoCAD DWG files to Grusenmeyer&amp;rsquo;s competitor.&lt;br /&gt;&lt;br /&gt;The district court had previously ruled that Grusenmeyer&amp;rsquo;s drawings were not sufficiently original to warrant copyright protection, but the appeals court did not address the copyrightability issue at all, dismissing the infringement claim out of hand with their opinion that Grusenmeyer had already given Magnificat carte blanche copyrights to the files vis a vis the quoted clause in their contract &amp;ndash; even though the files were never provided as part of the contract!&lt;br /&gt;&lt;br /&gt;I think the court erred in determining that the DWG files were subject to the terms of the master plan contract (its incorrect interpretation of the contract notwithstanding), but what I find really surprising in the ruling is the appellate court&amp;rsquo;s complete disregard of the plaintiff&amp;rsquo;s claimed and federally registered copyrights.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The moral of the story&lt;/strong&gt;&lt;br /&gt;If you are providing electronic files, don&amp;rsquo;t rely on copyright law alone to protect your intellectual property. This case reinforces the 3 C&amp;rsquo;s for protecting AutoCAD DWG files: copyright, contract, and &lt;a href="http://www.cadlock.com"&gt;CADLock&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Update&lt;/strong&gt;&lt;br /&gt;William Patry (Senior Copyright Counsel, Google Inc.) writes about this case at &lt;a href="http://williampatry.blogspot.com/2007/01/make-sure-contract-is-signed.html#links"&gt;The Patry Copyright Blog: Make Sure the Contract is Signed&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>I'll take web sites for $200, Alex: Part III</title><link>http://www.manusoft.com/archive/blog/ill-take-web-sites-for-200-alex-part-iii/</link><pubDate>Fri, 12 Jan 2007 23:20:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/ill-take-web-sites-for-200-alex-part-iii/</guid><description>&lt;p&gt;(continued from &lt;a href="http://otb.manusoft.com/2007/01/ill-take-web-sites-for-200-alex-part-ii.htm"&gt;Part II&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;DotNetNuke (aka DNN) is not simple to set up. It needs at least the free &lt;a href="http://www.microsoft.com/sql/editions/express/default.mspx"&gt;SQL Server Express Edition&lt;/a&gt; on the host system (full SQL Server requires some changes to the default configuration) and either IIS or another ASP .NET 2.0 compatible web server to run on. If you have Visual Studio 2005 fully installed, you have all you need to run DNN.&lt;/p&gt;</description></item><item><title>My ManuSoft manifest manifesto</title><link>http://www.manusoft.com/archive/blog/my-manusoft-manifest-manifesto/</link><pubDate>Thu, 11 Jan 2007 13:10:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/my-manusoft-manifest-manifesto/</guid><description>&lt;p&gt;With the advent of Visual Studio 2005 and automatically generated manifest files, the topic of when and how to use manifest files comes up occasionally. Since a default ObjectARX wizard generated project in Visual Studio 2005 generates an embedded manifest by default, most people don&amp;rsquo;t even think about it. Of course that was the whole idea &amp;ndash; the manifest would ensure that the correct dependent DLLs get loaded, and voila, no &lt;em&gt;need&lt;/em&gt; to think about it. One of my programming axioms applies in this case: &lt;a href="http://en.wikipedia.org/wiki/TANSTAAFL"&gt;TANSTAAFL&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The problem is that ObjectARX applications are not in charge. AutoCAD is in charge, and it will decide which VC runtime and MFC runtime DLLs to load. If your ObjectARX application loads a different VC or MFC runtime than the ones AutoCAD is using, you&amp;rsquo;ll encounter big problems. I&amp;rsquo;ve always advised disabling the manifest completely (see my &lt;a href="http://www.manusoft.com/resources/arxtips/vcbuildhook.html"&gt;ObjectARX Tips&lt;/a&gt; page) to avoid such a possibility. Unfortunately, there&amp;rsquo;s a catch.&lt;br /&gt;&lt;br /&gt;The problem is that linking to the ATL80.DLL file isn&amp;rsquo;t possible by just disabling the manifest and doing nothing more. ATL is now a side-by-side (SxS) assembly, and it no longer lives on the Windows support path, so a standard un-manifested DLL won&amp;rsquo;t be able to find it. The preferred solution is to link statically to ATL (see Configuration -&amp;gt; General -&amp;gt; &amp;lsquo;Use of ATL&amp;rsquo; in VS 2005 project properties) and avoid the problem altogether. If you only have one module that uses ATL, this is always the best solution.&lt;br /&gt;&lt;br /&gt;The less desirable solution is to add a &lt;strong&gt;&lt;em&gt;manually-created&lt;/em&gt;&lt;/strong&gt; manifest that specifies the desired ATL SxS assembly, but ignores the VC and MFC runtime DLLs. You&amp;rsquo;ll still need to decide whether to make ATL &lt;a href="http://msdn2.microsoft.com/en-us/library/ms235531.aspx"&gt;shared or private&lt;/a&gt;, and in either case you &lt;strong&gt;&lt;em&gt;must&lt;/em&gt;&lt;/strong&gt; &lt;a href="http://msdn2.microsoft.com/en-us/library/ms235299(VS.80).aspx"&gt;distribute ATL with your application&lt;/a&gt; to ensure that it is available when your application is deployed. You can cheat, and let VS generate your manifest file (instruct it to &lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt; embed the file), then just edit the resulting .manifest file to remove references to the VC and MFC assemblies. For example, here&amp;rsquo;s one that I generated (you&amp;rsquo;ll need to generate your own to ensure that the manifest matches the version you are redistributing):&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&amp;lt;?xml version=&amp;ldquo;1.0&amp;rdquo; encoding=&amp;ldquo;UTF-8&amp;rdquo; standalone=&amp;ldquo;yes&amp;rdquo;?&amp;gt;&lt;br /&gt; &amp;lt;assembly xmlns=&amp;ldquo;urn:schemas-microsoft-com:asm.v1&amp;rdquo; manifestversion=&amp;ldquo;1.0&amp;rdquo;&amp;gt;&lt;br /&gt; &amp;lt;dependency&amp;gt;&lt;br /&gt; &amp;lt;dependentassembly&amp;gt;&lt;br /&gt; &amp;lt;assemblyidentity type=&amp;ldquo;win32&amp;rdquo; name=&amp;ldquo;Microsoft.VC80.ATL&amp;rdquo; version=&amp;ldquo;8.0.50727.762&amp;rdquo; processorarchitecture=&amp;ldquo;x86&amp;rdquo; publickeytoken=&amp;ldquo;1fc8b3b9a1e18e3b&amp;rdquo;&amp;gt;&lt;br /&gt;&amp;lt;/assemblyidentity&amp;gt;&lt;br /&gt; &amp;lt;/dependentassembly&amp;gt;&lt;br /&gt; &amp;lt;/dependency&amp;gt;&lt;br /&gt;&amp;lt;/assembly&amp;gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;In my work, I&amp;rsquo;ve had very little need for manifests. The VC optimizer is able to strip the unused portions of statically linked ATL out of your code, leaving a much smaller footprint than the entire assembly would require. This eliminates the need to redistribute ATL with your application, thus reducing the overall potential for deployment issues. Nevertheless, there are exceptions to every rule, and your mileage may vary.&lt;/p&gt;</description></item><item><title>I'll take web sites for $200, Alex: Part II</title><link>http://www.manusoft.com/archive/blog/ill-take-web-sites-for-200-alex-part-ii/</link><pubDate>Thu, 11 Jan 2007 01:41:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/ill-take-web-sites-for-200-alex-part-ii/</guid><description>&lt;p&gt;(continued from &lt;a href="http://otb.manusoft.com/2007/01/ill-take-web-sites-for-200-alex-part-i.htm"&gt;Part I&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The kind of web site I wanted to create is usually built on top of a &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_content_management_systems"&gt;Content Management System&lt;/a&gt; (CMS) that becomes the administrative user interface as well as the framework for web pages that get served to web site visitors. The first thing I learned is that there are &lt;em&gt;thousands&lt;/em&gt; of CMS products floating about the internet, from simple &amp;ldquo;guest book&amp;rdquo; type scripts to full blown corporate extranet management systems designed for use by tens of thousands of employees and customers. I&amp;rsquo;ve also been looking for an excuse to learn ASP.NET, so I decided to narrow my search to CMS software that was based on &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt;. Finally, the software had to be free or very inexpensive.&lt;/p&gt;</description></item><item><title>Five things you may not know about me</title><link>http://www.manusoft.com/archive/blog/three-things-you-may-not-know-about-me/</link><pubDate>Mon, 08 Jan 2007 19:37:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/three-things-you-may-not-know-about-me/</guid><description>&lt;p&gt;I&amp;rsquo;m sure that by now all of you have heard about the latest &amp;ldquo;chain letter&amp;rdquo; circulating about the blogosphere. It sounds suspiciously like bloggers patting each other on the back. To wit, I&amp;rsquo;ve been &amp;ldquo;tagged&amp;rdquo; by &lt;a href="http://www.evanyares.com/display/ShowJournal?moduleId=399489&amp;amp;categoryId=31338"&gt;Evan Yares&lt;/a&gt;. On principle, and just because I like to be contrary, I refuse to pass this one on, but I&amp;rsquo;ll go part of the way since there is some redeeming social value to the premise. The five:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I was a difficult child. I ran away from home routinely before I started Kindergarten. I still have memories of the summer just before my third birthday of almost daily forays with my dog &amp;ldquo;Shep&amp;rdquo; into the woods adjacent to my parents&amp;rsquo; property. Sometimes, after a dispute with my parents, I would take off deep into the woods plotting revenge. One day, after some altercation or other, I narrowly escaped my whip-wielding mother by diving under a barbed wire fence and racing into the woods before she could catch up. My mother spent hours searching for me, and finally spotted me hiding under some brambles. After rounding me up and taking me back home, mom tied me with a rope to a post outside our workshop until my father came home from work. When my father came home, he didn&amp;rsquo;t have the heart to punish me further.&lt;/li&gt;&lt;li&gt;I was raised &lt;a href="http://en.wikipedia.org/wiki/Amish"&gt;Amish&lt;/a&gt;. When I was 12, I installed a battery operated radio tuner in my basement workshop, and wired the output through a hidden network of wires (that included our hot water heating pipes as one side of the circuit) into a recessed wall outlet beside my bed so that I could listen to the radio discreetly from my bed through a small earpiece. Later I did something similar when my parents bought my first horse and buggy, by hiding the guts of a portable stereo under the seat.&lt;/li&gt;&lt;li&gt;Amish children are expected to quit school after the 8th grade and begin working (traditionally on the family farm, although farming is becoming less common these days). I chose to continue my education by going on to high school while working evenings and summers to support myself. For this, I was ridiculed and called names in school, and my parents caught a lot of flack from their church elders for my actions (which they had very little control over). I chose not to go on to college after graduating in the top 5 of my class in high school.&lt;/li&gt;&lt;li&gt;My first full time job was as a brick mason, following in my father&amp;rsquo;s footsteps. I did masonary and other construction work the last two summers of high school, and full time for a year or so after I graduated. One day a family friend called to ask if I would be interested in a &amp;ldquo;computer job&amp;rdquo; programming a CNC punch press. The company had unceremoniously fired the previous programmer and had nobody with the skills to replace him. My interview went something like &amp;ldquo;Do you know anything about computers?&amp;rdquo; &amp;ldquo;Yes.&amp;rdquo; &amp;ldquo;Can you start tomorrow?&amp;rdquo; It was at that company where I discovered AutoCAD, and the rest, as they say, is history.&lt;/li&gt;&lt;li&gt;A few years ago, I played poker on a show broadcast across the United States on Fox SportsNet. The show was sponsored by &lt;a href="http://www.ultimatebet.net"&gt;UltimateBet.net&lt;/a&gt;, an online poker site. The winner received 10 thousand dollars and a chance to play again for 200 thousand dollars. I got there by beating several thousand other players in a series of online tournaments. I placed third out of the six finalists at the table, so I walked away with nothing more than an all expense paid (and lavish) weekend in Los Angeles, not to mention the satisfaction of knowing my kids got to watch me on national TV.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Go Buckeyes!&lt;/p&gt;</description></item><item><title>I'll take web sites for $200, Alex: Part I</title><link>http://www.manusoft.com/archive/blog/ill-take-web-sites-for-200-alex-part-i/</link><pubDate>Mon, 08 Jan 2007 17:35:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/ill-take-web-sites-for-200-alex-part-i/</guid><description>&lt;p&gt;I&amp;rsquo;m one of those throwbacks that learned HTML by typing it in Notepad. I&amp;rsquo;ve since moved up to using the &lt;a href="http://msdn.microsoft.com/vstudio/"&gt;Visual Studio&lt;/a&gt; editor; it does syntax coloring, error highlighting, and has a &amp;ldquo;design&amp;rdquo; mode for previewing the page, yet it&amp;rsquo;s a very utilitarian editor that I feel comfortable with. I do use &lt;a href="http://en.wikipedia.org/wiki/Microsoft_FrontPage"&gt;FrontPage&lt;/a&gt; when I need to manage connections between multiple HTML pages, but mostly in raw HTML mode. When I use &lt;a href="http://en.wikipedia.org/wiki/WYSIWYG"&gt;WYSIWYG&lt;/a&gt; design mode in FrontPage, I inevitably end up cleaning out a lot of unnecessary junk that it includes in the generated HTML. I think it&amp;rsquo;s fair to say that my obsession with clean HTML results in utilitarian, functional, and standards conformant presentations &amp;ndash; but with a decided lack of graphic appeal.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.manusoft.com/"&gt;ManuSoft&lt;/a&gt; and &lt;a href="http://www.cadlock.com/"&gt;CADLock&lt;/a&gt; web sites are examples of this utilitarian approach. The ManuSoft site uses no fancy graphics and relies very little on client side scripting, and it supports a hierarchical navigation system using only standard hyperlinks. I like that minimalist approach, but the price for clean HTML being served to clients is a lot of work on the server to maintain the site. As a result, I don&amp;rsquo;t update the site very often because it&amp;rsquo;s just too difficult.&lt;br /&gt;&lt;br /&gt;This blog was the first step toward realizing a goal of making it easier to add new content. After all, the raison d&amp;rsquo;être of blogs is to minimize the latency between the writer&amp;rsquo;s stream of consciousness and words on the web by making it irresistibly easy to add new content. This is precisely why blogs have become so popular.&lt;br /&gt;&lt;br /&gt;Unfortunately, I soon found limitations with my blog. Tabular lists of data still require manual HTML input, it is difficult to customize the content area outside the individual posts on the blog page, and most aspects of the hosted blog software are outside my control. I wanted more.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.cadcourt.com/"&gt;Autodesk vs. Open Design Alliance lawsuit&lt;/a&gt; gave me an excuse to take the next step: implement the &amp;ldquo;blog&amp;rdquo; concept across an entire web site with software that I control. So, I decided to swallow my pride and learn how to create an entire web site that would be so easy to update that I would actually update it frequently &amp;ndash; even if it meant messy HTML code. Stay tuned for Part II, choosing a hosting service and deciding which software to use.&lt;/p&gt;</description></item><item><title>AutoCAD LT Upgrade Windfall</title><link>http://www.manusoft.com/archive/blog/autocad-lt-upgrade-windfall/</link><pubDate>Sat, 06 Jan 2007 11:47:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autocad-lt-upgrade-windfall/</guid><description>&lt;p&gt;Did you know that Autodesk is offering a promotional upgrade price to AutoCAD LT users until January 19th? Check out &lt;a href="http://www.adskhost.net/43404/solution.php"&gt;http://www.adskhost.net/43404/solution.php&lt;/a&gt;. According to that web page, you can upgrade an AutoCAD LT 2004/2005/2006 license to any one of several AutoCAD 2007 based software offerings from AutoCAD 2007 to Inventor Series &amp;ndash; for $1995. If you have an LT license, now might be a good time to upgrade it.&lt;/p&gt;</description></item><item><title>Coming up for air</title><link>http://www.manusoft.com/archive/blog/coming-up-for-air/</link><pubDate>Fri, 05 Jan 2007 12:18:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/coming-up-for-air/</guid><description>&lt;p&gt;While the rest of you were busy enjoying the holiday break, I&amp;rsquo;ve had my nose to the grindstone. I had been looking for an opportunity to learn more about ASP.NET and web site content management, and the &lt;a href="http://www.cadcourt.com"&gt;Autodesk vs. ODA&lt;/a&gt; web site that I started recently was a perfect opportunity. After 3 weeks of sometimes frustrating adventures, the new site is now live (although still not quite finished).&lt;br /&gt;&lt;br /&gt;Total cost of the site, including hosting for 2 years? About $200 and a lot of lost sleep. Over the next week or so I will be documenting some of the things I learned along the way.&lt;/p&gt;</description></item><item><title>Ode to Holiday Shopping, 2006</title><link>http://www.manusoft.com/archive/blog/ode-to-holiday-shopping-2006/</link><pubDate>Thu, 21 Dec 2006 08:36:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/ode-to-holiday-shopping-2006/</guid><description>&lt;p&gt;&lt;em&gt;&amp;lsquo;Twas the week before Christmas, and all through the city&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Highways congested, tempers were tested; the sight wasn&amp;rsquo;t pretty&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;The stores opened early, and stayed open late&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Registers rang, loudspeakers sang; as I tempted fate&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;I proceeded with caution, threading the aisles&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Squeaking wheels, dubious deals; all the new styles&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;I grabbed toys for the boys, and a gift for my niece&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Loaded my cart, doing my part; to help the Chinese&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;I rushed to the checkout, avoiding a wreck&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Teeming masses, slow as molasses; all writing a check&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;After walking a mile, got it all in my car&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Loaded for bear, gasping for air; I didn&amp;rsquo;t get far&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;After dodging and weaving, with skill and deft&lt;/em&gt;&lt;br /&gt;&lt;em&gt;Almost out, stuck en route; they&amp;rsquo;re all turning left!&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Happy Holidays Everyone!&lt;/p&gt;</description></item><item><title>VCBuildHook updated for VS 2005 SP1</title><link>http://www.manusoft.com/archive/blog/vcbuildhook-updated-for-vs-2005-sp1/</link><pubDate>Tue, 19 Dec 2006 17:13:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/vcbuildhook-updated-for-vs-2005-sp1/</guid><description>&lt;p&gt;I&amp;rsquo;ve installed &lt;a href="http://otb.manusoft.com/2006/12/visual-studio-2005-service-pack-1-is.htm"&gt;Visual Studio 2005 SP1&lt;/a&gt; and have been busy testing all my projects to make sure they didn&amp;rsquo;t break. &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; did fix at least one of the bugs I reported (the resource editor choked on resource strings that contained an embedded NULL character), but the IDE still crashes fairly consistently if I initiate a large solution build while the Intellisense database is being rebuilt. SP1 also managed to break my &lt;a href="http://www.manusoft.com/resources/arxtips/vcbuildhook.html"&gt;VCBuildHook utility&lt;/a&gt;, so I&amp;rsquo;ve uploaded an updated version (2.0.3.0) for use with SP1.&lt;/p&gt;</description></item><item><title>Visual Studio 2005 Service Pack 1 is here!</title><link>http://www.manusoft.com/archive/blog/visual-studio-2005-service-pack-1-is/</link><pubDate>Mon, 18 Dec 2006 16:51:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/visual-studio-2005-service-pack-1-is/</guid><description>&lt;p&gt;Finally, the long awaited &lt;a href="http://msdn.microsoft.com/vstudio/support/vs2005sp1"&gt;service pack 1 for Visual Studio 2005&lt;/a&gt; is released! The service pack has been in the pipeline since soon after Visual Studio 2005 shipped last November, with release dates slipping month after month. The latest official release date was announced as &amp;ldquo;early 2007&amp;rdquo;. Perhaps this was an intentional attempt to alleviate some of the waiting pains with a suprise release (or maybe just the Microsoft rumor mill on autopilot).&lt;br /&gt;&lt;br /&gt;Be prepared for a long install. The download page warns that it could take an hour or more to verify digital signatures before the service pack installation even begins.&lt;/p&gt;</description></item><item><title>Autodesk vs. ODA</title><link>http://www.manusoft.com/archive/blog/autodesk-vs-oda/</link><pubDate>Tue, 12 Dec 2006 10:57:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/autodesk-vs-oda/</guid><description>&lt;p&gt;The recently filed lawsuit has been a hot topic lately, and I&amp;rsquo;ve been following it along with everyone else. As a little side project, I decided to create a parallel blog dedicated to the ongoing battle between Autodesk and ODA. The new blog is at &lt;a href="http://www.cadcourt.com"&gt;&lt;a href="http://www.cadcourt.com"&gt;http://www.cadcourt.com&lt;/a&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The site is still a work in progress, but I hope you&amp;rsquo;ll check it out, and offer suggestions for improvements. Click on the Lawsuit Tracker link to view all the court documents in the case, and subscribe to the site&amp;rsquo;s feed to stay informed of new developments.&lt;/p&gt;</description></item><item><title>The secret world of file formats</title><link>http://www.manusoft.com/archive/blog/secret-world-of-file-formats/</link><pubDate>Sun, 10 Dec 2006 16:42:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/secret-world-of-file-formats/</guid><description>&lt;p&gt;No matter the communication protocol used to transmit it, most information gets packaged into a file format for consumption. File formats are like virtual checkpoints along the information superhighway, and we would do well to pay attention to who is manning the gates.&lt;br /&gt;&lt;br /&gt;We&amp;rsquo;ve heard a lot of noise lately about the need for &amp;ldquo;open&amp;rdquo; file formats, but documenting a file format is not the same thing as relinquishing control of the format. The key consideration is who decides when and how the file format changes. This is a dirty little secret about file formats that you are not supposed to know. By controlling when and how a file format changes, an organization can maintain a mindshare monopoly over consumers of its file format &amp;ndash; even when the format is &amp;ldquo;open&amp;rdquo;.&lt;br /&gt;&lt;br /&gt;It may be that the relative anarchy of the internet has given us a false sense of security. We happily use &amp;ldquo;open&amp;rdquo; formats like PDF, DWF, DXF, HTM, and others with relatively little concern about who controls them, but all of those formats (HTM perhaps to a lesser degree) are controlled by corporations whose allegiance is first and foremost to their shareholders. For example, PDF is &amp;ldquo;open&amp;rdquo;, but did you know that third party developers need a digital ID signed by &lt;a href="http://www.adobe.com/"&gt;Adobe&lt;/a&gt; in order to create forms-enabled PDF files that can be opened in the free Acrobat Reader?&lt;br /&gt;&lt;br /&gt;In April of 2006, Autodesk filed a &lt;a href="http://tarr.uspto.gov/servlet/tarr?regser=serial&amp;amp;entry=78852798"&gt;trademark application for the word &amp;ldquo;DWG&amp;rdquo;&lt;/a&gt; when used to refer to DWG files. This may seem benign on the surface, but if successful it will give Autodesk more legal leverage in &amp;ldquo;defending&amp;rdquo; the file format. A few weeks ago, &lt;a href="http://www.autodesk.com/"&gt;Autodesk&lt;/a&gt; filed a &lt;a href="http://www.cadcourt.com/Docket/206cv01637AutodeskvODA.aspx"&gt;trademark infringement lawsuit&lt;/a&gt; against the &lt;a href="http://www.opendesign.com/"&gt;Open Design Alliance&lt;/a&gt; claiming that the ODA infringed their &amp;ldquo;AUTODESK&amp;rdquo; trademark by embedding the mark inside DWG files created with its DWGdirect libraries.&lt;br /&gt;&lt;br /&gt;Much has been written by the pundits about the pros and cons of the ODA lawsuit, and the &lt;a href="http://www.eff.org/"&gt;Electronic Frontier Foundation&lt;/a&gt; predictably suggests that Autodesk is &lt;a href="http://www.eff.org/deeplinks/archives/005038.php"&gt;using trademark claims to stymie interoperability&lt;/a&gt;, but the bottom line is that the contention centers around a file format &amp;ndash; a file format that Autodesk considers valuable enough to wage war over.&lt;/p&gt;</description></item><item><title>Visual Studio Version Hunt</title><link>http://www.manusoft.com/archive/blog/visual-studio-version-hunt/</link><pubDate>Fri, 08 Dec 2006 20:06:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/visual-studio-version-hunt/</guid><description>&lt;p&gt;If you&amp;rsquo;ve been programming with ObjectARX for a while, you already know that each version of the &lt;a href="http://www.objectarx.com/"&gt;ObjectARX SDK&lt;/a&gt; only works with a specific version of &lt;a href="http://msdn.microsoft.com/vstudio/"&gt;Visual Studio&lt;/a&gt;. Mazhar Basa touches on the subject in his article &lt;a href="http://www.dailyautocad.com/objectarx/components-of-objectarx-applications/"&gt;Components of ObjectARX Applications&lt;/a&gt;. My &lt;a href="http://www.manusoft.com/resources/arxtips/vcbuildhook.html"&gt;VCBuildHook utility&lt;/a&gt; makes it possible to build for multiple target AutoCAD versions from a single Visual Studio 2005 solution, but this utility still needs the older versions of Visual Studio to be installed on the same system in order to perform its magic.&lt;br /&gt;&lt;br /&gt;The problem is, legitimate licenses of older versions of Visual Studio are hard to come by. Back in the Visual Studio .NET 2003 days, you could purchase a new license of VS 2003, then get a free license downgrade from Microsoft that allowed you to install Visual Studio 2002 side by side on the same system. That combination allowed you to target AutoCAD versions as far back as AutoCAD 2004. Unfortunately, Microsoft stopped offering the VS 2002 downgrade license when Visual Studio 2005 began shipping in November of 2006.&lt;br /&gt;&lt;br /&gt;The end result is that new ObjectARX programmers are faced with a dilemma if they need to target anything older than AutoCAD 2007. One of the attendees at my &amp;ldquo;High-Octane ObjectARX&amp;rdquo; class at &lt;a href="http://au.autodesk.com/"&gt;AU 2006&lt;/a&gt; reminded me that &lt;a href="http://msdn.microsoft.com/"&gt;MSDN&lt;/a&gt; (Microsoft Developer Network) members can download older versions of Visual Studio from the MSDN subscriber download center.&lt;br /&gt;&lt;br /&gt;I have verified that Visual Studio .NET 2002 (VS 2002) is available for download to MSDN Professional subscribers, but I could not find Visual Studio 6.0, which is required to target AutoCAD 2000 - 2002. Visual Studio 4.2 (required for AutoCAD R14) is available though, so maybe I&amp;rsquo;m just not looking in the right place.&lt;br /&gt;&lt;br /&gt;If you are a professional software developer, whether commercial or in-house, you should consider subscribing to &lt;a href="http://msdn.microsoft.com/"&gt;MSDN&lt;/a&gt; for various reasons. If you&amp;rsquo;re an ObjectARX programmer and need to target older versions of AutoCAD, MSDN may be the only way to obtain the older Visual Studio build tools and libraries that you&amp;rsquo;ll need.&lt;/p&gt;</description></item><item><title>Does Vista really open DWF files?</title><link>http://www.manusoft.com/archive/blog/does-vista-really-open-dwf-files/</link><pubDate>Tue, 05 Dec 2006 05:12:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/does-vista-really-open-dwf-files/</guid><description>&lt;p&gt;Not according to the &lt;a href="http://pressreleases.autodesk.com/index.php?s=118&amp;amp;item=161"&gt;press release&lt;/a&gt;. Vista (and .NET 3.0) includes a built-in &lt;a href="http://www.microsoft.com/whdc/xps/default.mspx"&gt;XPS Viewer&lt;/a&gt; (also available for Windows XP SP2 and Windows Server 2003), which will view any &lt;a href="http://www.microsoft.com/whdc/xps/downloads.mspx"&gt;XPS format&lt;/a&gt; file. Apparently Autodesk plans to add support for output to XPS format in the future, and this output will be called DWFx &amp;ndash; a new file format. It&amp;rsquo;s not clear what the difference will be between DWFx and the output produced using the &lt;a href="http://www.microsoft.com/whdc/xps/viewxps.mspx"&gt;Microsoft XPS Document Writer&lt;/a&gt; that is already available.&lt;br /&gt;&lt;br /&gt;I installed the Microsoft XPS Document Writer and XPS Viewer on my Windows XP SP2 machine. Next, I started AutoCAD 2007 and opened &amp;ldquo;3D House.dwg&amp;rdquo; from the Sample folder. I then plotted this file to DWF, PDF, and XPS, with the following results:&lt;br /&gt;&lt;br /&gt;&lt;table cellpadding="2" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Plotter&lt;/th&gt;&lt;th&gt;Plot Time&lt;/th&gt;&lt;th&gt;File Size&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DWF6 ePlot.pc3&lt;/td&gt;&lt;td&gt;7 seconds&lt;/td&gt;&lt;td&gt;139 kb&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DWG To PDF.pc3&lt;/td&gt;&lt;td&gt;5 seconds&lt;/td&gt;&lt;td&gt;165 kb&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Microsoft XPS Document Writer&lt;/td&gt;&lt;td&gt;34 seconds&lt;/td&gt;&lt;td&gt;829 kb&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I&amp;rsquo;m not suggesting that these files all contain the same content, I&amp;rsquo;m merely suggesting that DWFx/XPS may have some undesirable tradeoffs in practice.&lt;br /&gt;&lt;br /&gt;This whole issue about &amp;ldquo;native Vista support for DWF&amp;rdquo; may be nothing but smoke and mirrors. There is no guarantee that publishing CAD data in the XPS format will be efficient. So what will happen if users can choose between a compact DWF, a slightly less compact but ubiquitous PDF, or a very space-hungry DWFx? Time will tell, but I think this issue of DWF in Vista is getting way to much spin and not enough critical analysis.&lt;/p&gt;</description></item><item><title>Demand Loading a VLX File</title><link>http://www.manusoft.com/archive/blog/demand-loading-vlx-file/</link><pubDate>Mon, 04 Dec 2006 18:34:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/demand-loading-vlx-file/</guid><description>&lt;p&gt;Some years ago I wrote a small ObjectARX module named VLXLoad that loads a .vlx file of the same name and in the same directory as the .arx module. I never claimed credit for the utility, but now that I&amp;rsquo;ve &lt;a href="http://www.manusoft.com/resources/arxtips/demandloadvlx.html"&gt;released the source code&lt;/a&gt;, I guess I&amp;rsquo;ll have to own up to it.&lt;/p&gt;</description></item><item><title>Have you made your mistake today?</title><link>http://www.manusoft.com/archive/blog/have-you-made-your-mistake-today/</link><pubDate>Mon, 04 Dec 2006 07:38:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/have-you-made-your-mistake-today/</guid><description>&lt;p&gt;It may seem strange to some of you, but I consider myself an artist. Visual Studio is my canvas, and the keyboard is my paintbrush. This is why I wouldn&amp;rsquo;t survive in a stuffy corporate environment with committees, red tape, and politics. I&amp;rsquo;m a visionary, not a software engineer. I don&amp;rsquo;t like to plan every little detail; I&amp;rsquo;d rather start with a grand vision and just let the code go wherever my vision leads it.&lt;br /&gt;&lt;br /&gt;I confess this can be both a strength and a weakness. For example, I&amp;rsquo;ll spend two weeks refactoring perfectly working code because I don&amp;rsquo;t think it&amp;rsquo;s elegant enough. On the other hand, aesthetic beauty of structure and architecture is every bit as important in software as it is in other fields. It&amp;rsquo;s just that the benefits are intangible and more difficult to quantify.&lt;br /&gt;&lt;br /&gt;Perfectly working code, you say? I admit, that&amp;rsquo;s a bit of a rarity these days. It&amp;rsquo;s a rarity precisely because not many programmers consider programming as an art form. Real artists are never satisfied with their work; they never stop working toward absolute perfection of both form &lt;em&gt;and&lt;/em&gt; function.&lt;br /&gt;&lt;br /&gt;This leads me to my real point. I have a favorite saying, &amp;ldquo;Have you made your mistake today?&amp;rdquo; Ironically, perfection can only be achieved by making mistakes. If you&amp;rsquo;re not making mistakes, you&amp;rsquo;re not learning. If you&amp;rsquo;re not learning, you&amp;rsquo;re not taking any risks. If you&amp;rsquo;re not taking any risks, you&amp;rsquo;re achieving mediocrity at best. Learn to make mistakes gracefully. Enjoy your capacity to learn and evolve toward perfection, no matter what kind of art you create.&lt;/p&gt;</description></item><item><title>Teaching and learning at AU</title><link>http://www.manusoft.com/archive/blog/teaching-and-learning-at-au/</link><pubDate>Mon, 04 Dec 2006 06:44:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/teaching-and-learning-at-au/</guid><description>&lt;p&gt;This year I taught an ObjectARX class at &lt;a href="http://au.autodesk.com/"&gt;AU&lt;/a&gt;. As usual, there wasn&amp;rsquo;t nearly enough time to cover all the things I wanted to cover. I&amp;rsquo;m still contemplating what I want to do differently next year in order to be able to spend more time on the subject without boring everybody to death.&lt;/p&gt;</description></item><item><title>Do you use protection?</title><link>http://www.manusoft.com/archive/blog/do-you-use-protection/</link><pubDate>Mon, 04 Dec 2006 06:05:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/do-you-use-protection/</guid><description>&lt;p&gt;If you were at &lt;a href="http://au.autodesk.com/"&gt;AU&lt;/a&gt; this year, you may have seen some of my take5 and &lt;a href="http://www.augi.com/"&gt;AUGI&lt;/a&gt; friends wearing blue T-shirts with this tag line on the back. This year my &lt;a href="http://www.cadlock.com/"&gt;CADLock&lt;/a&gt; compatriots (&lt;a href="http://www.crlf.de/"&gt;Dietmar Rudolph&lt;/a&gt; of Germany and &lt;a href="http://www.cadnauseam.com/Steve.htm"&gt;Steve Johnson&lt;/a&gt; of Australia) were both at &lt;a href="http://au.autodesk.com/"&gt;AU&lt;/a&gt;, so we decided to have a little fun with this protection theme. We brought some &amp;ldquo;protection&amp;rdquo; to go along with the shirts (no, those little matchbooks did not contain matches).&lt;br /&gt;&lt;br /&gt;Now that you&amp;rsquo;re back home, I hope you&amp;rsquo;ll take a few minutes to learn how to protect your AutoCAD drawings. You can &lt;a href="http://www.cadlock.com/products/CADVault/"&gt;download CADVault for AutoCAD&lt;/a&gt; from the CADLock web site and run it in fully functional evaluation mode to see for yourself how CADVault can securely lock your AutoCAD drawing content.&lt;br /&gt;&lt;br /&gt;Help fight IP theft: practice safe CAD!&lt;/p&gt;</description></item><item><title>Toot Sweet</title><link>http://www.manusoft.com/archive/blog/toot-sweet/</link><pubDate>Mon, 04 Dec 2006 04:41:00 +0000</pubDate><guid>http://www.manusoft.com/archive/blog/toot-sweet/</guid><description>&lt;p&gt;The French expression tuit de suite pretty much sums up how I feel after every &lt;a href="http://au.autodesk.com/"&gt;Autodesk University&lt;/a&gt;, and this year is no exception. So much gets crammed into one week, with barely any time to decompress or collect my thoughts, let alone catch up with all the latest gossip or relax with old friends.&lt;/p&gt;</description></item></channel></rss>