A brief history of copyright

Tyler Ochoa (law professor and two time “Jeopardy!” champion) writes an interesting post about the 300th anniversary of the first copyright law, called the Statute of Anne. Referring to the motivation behind the original law, Ochoa says “Although the Stationers were chiefly concerned with restoring and perpetuating their monopoly, they framed their petition to Parliament in terms of justice for authors.” In many respects, not much has changed since 1710.

April 10, 2010 · 1 min · Owen Wengerd

AutoCAD for Mac

There have been rumblings and rumors 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. ...

April 10, 2010 · 2 min · Owen Wengerd

Follow Me

Thanks to Google’s decision to eliminate FTP publishing as of May 1, I’ve moved my blog to Wordpress. I’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): ...

April 10, 2010 · 1 min · Owen Wengerd

What's In A Name?

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. This leads to some interesting, and sometimes funny, names. For example, it leads to gimmicks like the authoritarian “Democratic People’s Republic of Korea”, and bug fixes called “updates” (or “stability improvements” as I saw recently). 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 GUIDs (or for the less democratically inclined, serial numbers issued by a central numbering authority).

April 3, 2010 · 1 min · Owen Wengerd

Port Your ObjectARX Code to 64 Bit

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. 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). 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 “managed”) applications typically work fine in both architectures – I’m referring to native C++ ObjectARX applications only.] 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. 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’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. In fact, if you rely on an application that hasn’t been ported to the 64 bit architecture, I’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 contact me – I will gladly port it for you. Even large applications can typically be ported in several hours. 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.

March 11, 2010 · 3 min · Owen Wengerd

RIP Alan Kalameja

I saw in the March 8 edition of the TenLinks Daily newsletter that Alan Kalameja passed away at age 55. Condolences to his family. Alan hired me to write test questions for an AutoCAD certification exam in the early ’90s (I don’t recall which version, but probably either R12 or R13). That was one of my first real contracting jobs. Although it wasn’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.

March 9, 2010 · 1 min · Owen Wengerd

Google killed the radio star

This post is inspired by a conversation I had with a nephew, and it hearkens to the same nostalgic emotions engendered by the first music video on MTV. 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. 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’t remember what I did with the project after it was complete. 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. 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. 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’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. I explained to him how he needed to remove the external circuitry from his motor so that it wouldn’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’s face as he anticipated more adventure. 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. 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.

January 17, 2010 · 3 min · Owen Wengerd

Visual Studio 2010 and VC Build Hook

[Update: See Visual Studio 2010 Native Multi-Targeting] Many of you use my VC Build Hook utility to target multiple versions of AutoCAD from a single solution in Visual Studio 2008. Visual Studio 2010 now includes a new feature called native multi-targeting 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. ...

January 11, 2010 · 1 min · Owen Wengerd

Automatic LISP Loading

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’s AutoCAD configuration, work the same way across all versions of AutoCAD, and easily undone when the application is uninstalled. ...

December 24, 2009 · 3 min · Owen Wengerd

Evil Banks

A lot of you are probably having to cut back on your expenses to make ends meet in this economic downturn. I’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’ve also been streamlining and reorganizing my finances, which inevitably involves a lot of contact with banks. Kean Walmsley’s post about his recent bank customer service issue motivated me to post about one of my recent bank experiences. First of all, I’m here to tell you that banks do make mistakes. I’m sure that the vast majority of the time when your check book doesn’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 (after 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. In both cases, the bank eventually fixed the error, but I’m still out the returned check charges and whatever damage that has done to my credit rating. One of the “returned” payments was a credit card payment. Of course, I did not get notified about this until the day after 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. 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. That’s what I’m talking about!

November 11, 2009 · 2 min · Owen Wengerd

ArxDbg Utility

ArxDbg is the name of a sample project that has been included with the ObjectARX SDK for many years. It’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. ...

September 23, 2009 · 1 min · Owen Wengerd

AutoCAD Missing Language Pack Drawing File Corruption

I’ve been chasing a drawing corruption problem on behalf of a customer. The problem manifests itself by causing a “Missing Language Pack” dialog to display when the drawing is opened (but only in Windows XP with no language packs installed – my Vista installation apparently has all the language packs installed). Installing the language packs “fixes” the problem, in that the drawing files open without error. 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. So, I need your help. Have you recently noticed a “Missing Language Pack” 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 send me an email 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. [Update: Autodesk has released a technical document with information about the virus. See also Shaan Hurley’s blog post.]

August 3, 2009 · 2 min · Owen Wengerd