I'll take web sites for $200, Alex: Part IV

(continued from Part III) Creating custom modules for DotNetNuke 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. ...

January 17, 2007 · 2 min · Owen Wengerd

AutoCAD drawing files: possession is 9/10 of the law?

The title sums up the puzzling conclusion in a recent 6th Circuit Court of Appeals ruling (CA6 Grusenmeyer Decision.pdf) in a decision about a copyright infringement claim filed by Cleveland architect Jeffrey Grusenmeyer. Grusenmeyer had contracted to provide a “master plan” 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 “personal use”. 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. Fast forward to the eventual “request for proposal” 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 “[a]ccording to the individual DSC architects, such reliance on drawings of existing conditions is routine in the industry." In affirming the district court’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 “provide a master plan for the implementation of the capital improvements program, including plans, renderings, and perspectives suitable for use in presentation and future reference during master plan implementation.” They concluded that this “plain language” gave Magnificat permission to send the AutoCAD DWG files to Grusenmeyer’s competitor. The district court had previously ruled that Grusenmeyer’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 – even though the files were never provided as part of the contract! 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’s complete disregard of the plaintiff’s claimed and federally registered copyrights. The moral of the story If you are providing electronic files, don’t rely on copyright law alone to protect your intellectual property. This case reinforces the 3 C’s for protecting AutoCAD DWG files: copyright, contract, and CADLock. Update William Patry (Senior Copyright Counsel, Google Inc.) writes about this case at The Patry Copyright Blog: Make Sure the Contract is Signed.

January 14, 2007 · 3 min · Owen Wengerd

I'll take web sites for $200, Alex: Part III

(continued from Part II) DotNetNuke (aka DNN) is not simple to set up. It needs at least the free SQL Server Express Edition 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. ...

January 12, 2007 · 4 min · Owen Wengerd

My ManuSoft manifest manifesto

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’t even think about it. Of course that was the whole idea – the manifest would ensure that the correct dependent DLLs get loaded, and voila, no need to think about it. One of my programming axioms applies in this case: TANSTAAFL. 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’ll encounter big problems. I’ve always advised disabling the manifest completely (see my ObjectARX Tips page) to avoid such a possibility. Unfortunately, there’s a catch. The problem is that linking to the ATL80.DLL file isn’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’t be able to find it. The preferred solution is to link statically to ATL (see Configuration -> General -> ‘Use of ATL’ 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. The less desirable solution is to add a manually-created manifest that specifies the desired ATL SxS assembly, but ignores the VC and MFC runtime DLLs. You’ll still need to decide whether to make ATL shared or private, and in either case you must distribute ATL with your application to ensure that it is available when your application is deployed. You can cheat, and let VS generate your manifest file (instruct it to not embed the file), then just edit the resulting .manifest file to remove references to the VC and MFC assemblies. For example, here’s one that I generated (you’ll need to generate your own to ensure that the manifest matches the version you are redistributing): <?xml version=“1.0” encoding=“UTF-8” standalone=“yes”?> <assembly xmlns=“urn:schemas-microsoft-com:asm.v1” manifestversion=“1.0”> <dependency> <dependentassembly> <assemblyidentity type=“win32” name=“Microsoft.VC80.ATL” version=“8.0.50727.762” processorarchitecture=“x86” publickeytoken=“1fc8b3b9a1e18e3b”> </assemblyidentity> </dependentassembly> </dependency> </assembly> In my work, I’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.

January 11, 2007 · 3 min · Owen Wengerd

I'll take web sites for $200, Alex: Part II

(continued from Part I) The kind of web site I wanted to create is usually built on top of a Content Management System (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 thousands of CMS products floating about the internet, from simple “guest book” type scripts to full blown corporate extranet management systems designed for use by tens of thousands of employees and customers. I’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 ASP.NET. Finally, the software had to be free or very inexpensive. ...

January 11, 2007 · 3 min · Owen Wengerd

Five things you may not know about me

I’m sure that by now all of you have heard about the latest “chain letter” circulating about the blogosphere. It sounds suspiciously like bloggers patting each other on the back. To wit, I’ve been “tagged” by Evan Yares. On principle, and just because I like to be contrary, I refuse to pass this one on, but I’ll go part of the way since there is some redeeming social value to the premise. The five: 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 “Shep” into the woods adjacent to my parents’ 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’t have the heart to punish me further.I was raised Amish. 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.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.My first full time job was as a brick mason, following in my father’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 “computer job” 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 “Do you know anything about computers?” “Yes.” “Can you start tomorrow?” It was at that company where I discovered AutoCAD, and the rest, as they say, is history.A few years ago, I played poker on a show broadcast across the United States on Fox SportsNet. The show was sponsored by UltimateBet.net, 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.Go Buckeyes! ...

January 8, 2007 · 3 min · Owen Wengerd

I'll take web sites for $200, Alex: Part I

I’m one of those throwbacks that learned HTML by typing it in Notepad. I’ve since moved up to using the Visual Studio editor; it does syntax coloring, error highlighting, and has a “design” mode for previewing the page, yet it’s a very utilitarian editor that I feel comfortable with. I do use FrontPage when I need to manage connections between multiple HTML pages, but mostly in raw HTML mode. When I use WYSIWYG 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’s fair to say that my obsession with clean HTML results in utilitarian, functional, and standards conformant presentations – but with a decided lack of graphic appeal. The ManuSoft and CADLock 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’t update the site very often because it’s just too difficult. This blog was the first step toward realizing a goal of making it easier to add new content. After all, the raison d’être of blogs is to minimize the latency between the writer’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. 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. The Autodesk vs. Open Design Alliance lawsuit gave me an excuse to take the next step: implement the “blog” 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 – even if it meant messy HTML code. Stay tuned for Part II, choosing a hosting service and deciding which software to use.

January 8, 2007 · 2 min · Owen Wengerd

AutoCAD LT Upgrade Windfall

Did you know that Autodesk is offering a promotional upgrade price to AutoCAD LT users until January 19th? Check out http://www.adskhost.net/43404/solution.php. 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 – for $1995. If you have an LT license, now might be a good time to upgrade it.

January 6, 2007 · 1 min · Owen Wengerd

Coming up for air

While the rest of you were busy enjoying the holiday break, I’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 Autodesk vs. ODA 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). 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.

January 5, 2007 · 1 min · Owen Wengerd

Ode to Holiday Shopping, 2006

‘Twas the week before Christmas, and all through the city Highways congested, tempers were tested; the sight wasn’t pretty The stores opened early, and stayed open late Registers rang, loudspeakers sang; as I tempted fate I proceeded with caution, threading the aisles Squeaking wheels, dubious deals; all the new styles I grabbed toys for the boys, and a gift for my niece Loaded my cart, doing my part; to help the Chinese I rushed to the checkout, avoiding a wreck Teeming masses, slow as molasses; all writing a check After walking a mile, got it all in my car Loaded for bear, gasping for air; I didn’t get far After dodging and weaving, with skill and deft Almost out, stuck en route; they’re all turning left! Happy Holidays Everyone!

December 21, 2006 · 1 min · Owen Wengerd

VCBuildHook updated for VS 2005 SP1

I’ve installed Visual Studio 2005 SP1 and have been busy testing all my projects to make sure they didn’t break. Microsoft 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 VCBuildHook utility, so I’ve uploaded an updated version (2.0.3.0) for use with SP1.

December 19, 2006 · 1 min · Owen Wengerd

Visual Studio 2005 Service Pack 1 is here!

Finally, the long awaited service pack 1 for Visual Studio 2005 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 “early 2007”. 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). 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.

December 18, 2006 · 1 min · Owen Wengerd