Fun with Open Source: OpenDental

Tom Opgenorth
The past week I've been dabbling with an open source program called Open Dental - mostly trying to see if can get it to compile under Mono, and running under Linux.  I figure that this would be a good opportunity to and work with a cross platform application. According to their website, Open Dental has been supported under Linux since v4.7.  Here are some notes of my efforts so far.

Javascript Didn’t Rape My Dog

Tom Opgenorth
One thing I noticed since I started doing ASP.NET programming back in 2002: I started using Javascript a lot less, and my copy of JavaScript: The Definitive Guide sits on the shelf gathering dust.  I've noticed a lot of developers I've worked with are the same way. In fact, I'd say that most of the ASP.NET programmers I've worked with these days really don't know much about Javascript. I don't blame Javascript itself for this - I blame ASP.

What is Right About .NET?

Tom Opgenorth
Recently, on one of the mailing lists I subscribe to, a member starting bashing .NET. A bit curious as to why there was this strong hatred of .NET, I posed a simple question: What is wrong with .NET? The answer I got back somewhat suprised me: I guess the standard reply is, what is right about .NET?  .NET was invented so that M$ could provide software as a service. You would end up with a minimal OS on the disk, and no applications.

Why I Love NHibernate

Tom Opgenorth
Why I love NHibernate: I am rather please by the fact that a database schema change involving the creation of six new tables, three one-to-many relationships, and a many-to-many relationship (which includes a sort order on the join table) can be taken care of inside of seven easy hours.  It probably would/could have been less, but I crafted the HBM and class files by hand and had a few typos which hide themselves well.

Edmonton Code Camp 2007

Tom Opgenorth
This Saturday past we had the Edmonton Code Camp.  I'd say things went pretty well.  It's my understanding that some 80 people showed up to hear a variety of topics.  I kicked off the day in "Track #2" with a Introduction to Test Driven Development.  For those who are interested in my presentation / code, you can download it here.

NHibernate and Parent/Child Collections

Tom Opgenorth
On a project that I'm currently involved with, I'm using NHibernate and a persistance-ignorant domain. Today NHibernate threw me a "You may not dereference an collection with cascade="all-delete-orphan"" error. This kind of had me confused for a bit. What this error means is this: When you have a parent-child relation in your domain, say something like this: public class Parent { ISet<Child> _children; } You can't do something like this in the parent class:

Unit Testing Data Access

Tom Opgenorth
One thing that I don't like about writing tests is some of the jiggery-pokery that goes on with testing database access code. Jiggery-pokery being: ensuring the tables are there, up to date, and are holding the data that they are supposed to hold before and after the test has run. If you don't pay attention to these details, you get a lot of false negatives on your unit tests. This will result in a loss of confidence in your unit tests.

Desert Code Camp 2007 Code & PowerPoint

Tom Opgenorth
For those who are interested, I put the PowerPoint slides and code from my Intro to Test Driven Development and Unit Test talk at Desert Code Camp 2007 here. The presentation is in PowerPoint 2007.  If you need me to convert it to another format (PowerPoint 2003, OpenOffice Impress), let me know.

Coding for Fun: Spying on Serial Ports

Tom Opgenorth
Yesterday I was house-bound looking after a sick eight year old boy.  To help pass time, I decided to play around with my chronograph (to clarify: in this context a chronograph is a tool to help you measure the velocity of projecticles, i.e. bullets).  I happen to own a Shooting Chrony Beta Master, which you can, in theory, hook up via a serial port to your computer, download the velocities of up to 60 shots, and use that data to help you with building up some ballisitic tables for your firearm and hand-loaded ammunition.

VisualSVN and VS2008

Tom Opgenorth
So last night I installed Visual Studio 2008 RTM on my laptop.  This was a clean install - I did not have any beta versions of VS2008 installed.  When I went to try and do anything in VS2008, I kept getting the message 'Visual Studio has encountered an unexpected error.".  This error happens when I try to do anything, including VS2008.  The only way to close VS2008 was using Task Manager.