April 28, 2006
We’re really making progress on our big conversion at work. The DevExpress conversion is pretty much complete except for one lingering problem. We have a strange error with some of the TreeViews where we get a StackOverflow exception when we assign a DataTable to the DataSource property. However, I managed to create a sample project demonstrating the bug, and DevExpress was able to reproduce the problem on their end using our sample. So now they are working on it, and hopefully they’ll get back to us soon with a fix.
The Atalasoft conversion is also nearing completion. I still need to work out a few of the TWAIN methods, but the documentation is pretty clear, so I’m not anticipating too much of a problem. I do have one odd bug trying to get an ImageInfo object from the JPEGDecoder, and I guess I’m going to have to call that one in to Atalasoft because I’ve tried quite a few things and I can’t seem to get around it. When we feed the control one of our jpeg images as a byte array, it can correctly display the image, and if we pass the array to the GetDecoder method, it correctly returns a JPEGDecoder, but when we pass it into the JPEGDecoder to get the ImageInfo, we get an error message back that says the file is not a valid jpeg image. Weird. I’m probably just doing something wrong, but it looks like I’ll need them to tell me exactly what the problem is.
Yesterday I completed the switch from our old VB6 wrapped WebBrowser control to the new WebBrowser control in the .Net Framework 2.0. Everything is working properly, which is great, but it’s not quite as clean as I had hoped it would be. The new Framework wrapper only wraps a portion of the properties and methods that are actually exposed by the WebBrowser control and the various DOM objects, so the rest of them use what I think of as a “jump” property that flips things back over the unmanaged DOM objects from MSHTML. The downside to that is that our project still needs to keep a reference to MSHTML in order for all of that to work. That means that MSHTML will be the only unmanaged reference in our entire program. If Microsoft had just wrapped a little bit more in the Framework, we could be 100% managed code, which would be great. So that’s kind of a let down, but it’s still way better than the VB6 wrapper we were using before. Plus the new control finally lets us use XP styled HTML controls in the WebBrowser inside our project, which makes things look much nicer. It also makes it possible to do programmatic scrolling down to individual pixels again, which is something we lost when we switched to .Net 1.0 several years ago.
All of that is just to say we are definitely in the home stretch now. I knew the user interface changes were going to be kind of neat, but I never thought they were a particularly big deal. But now that I see the code running with all of the new controls, I have to admit that it really does look good. It’s a big step up in terms of the initial impression that the program makes.
March 21, 2006
Remember the giant stuffed penguins from the Academy Awards that I posted about a few weeks ago? Well, Carrie bought me one she found on eBay (it looks like the same one Christy told me about in her comments). How cool is this?


January 27, 2006
This is just a quick update on our progress at work. We’ve completed the transition from Visual Studio 2003 to 2005. The program had very few errors when we pulled it up in VS 2005, but it had tons of warnings, which are basically things that will compile, but are probably not in line with best practices.
The program had over 10,000 warnings, and at least half of them involved passing objects to functions before the object had been initialized. By our standard practice, all of our functions can handle that without issue, but we decided to go ahead and fix all of the warnings anyway. That way if we make a mistake in the future that causes a more important warning, it will really stand out. So we eventually got to the point where the program was completely free of errors and warnings (and yes, that meant making over 10,000 individual changes to the code!).
The next step was to switch all of the standard Microsoft controls over to the new DevExpress controls we’re going to use from here on out. At this point we have managed to replicate all of our core functionality from the MS controls using the new DevExpress controls. Most of that was pretty straightforward, but we use outlines and grids in fairly complex ways, and it took us a little while to get everything working correctly.
We wrote a program to handle most of the actual switch, but we were still left with lots of old code referencing properties and methods of the MS controls that don’t match up with the properties and methods of the DevExpress controls. So now we are in the process of cleaning all of that up. We probably have a week or two of that left, and then we’ll only have a few major pieces of the puzzle left.
So what are the last few pieces of the puzzle? We still need to switch all of our old Lead Tools based imaging controls over the new Atalasoft controls we recently purchased, and then we need to swap out the ApproveIT digital signature control we use for the native .NET control from Topaz (our signature pad vendor). Once that’s done, I hope to have time to experiment with the new MS HTML control that comes with VS 2005 to see if we can use that instead of the custom control we wrote that currently handles our HTML.
It may sound like a lot, and I can assure you that the work is long and tedious, but I think we are all excited about the direction we are headed. The new controls will allow us to do some really neat things that we couldn’t really do before, and we’re getting very, very close to having the entire project running on 100% .NET code, with no old COM controls whatsoever.
January 3, 2006
Today was my first day back at work after being on vacation since Christmas Eve. I had a great time off (and probably could have used a few more days, if I’m honest), but it was also nice to get back into the normal swing of things. Everyone back at the office seemed fine and there wasn’t even too much work to catch up on (the week between Christmas and New Year’s is traditionally one of the slowest weeks of the year for customer service).
So now I’m back to the big VS 2003 to VS 2005 conversion and moving from the standard Microsoft controls to the new DevExpress controls we’ll be using from here on out. It’s a lot of tedious work to get everything converted, but in a few short weeks we should be in really good shape to get moving on some new functionality for the spring.
December 14, 2005
Joy brought Charis by to visit everyone at my office today. She was in a good mood and very happy when she came, so that was a lot of fun. She was a little overwhelmed by all of the Christmas stuff in Gloria’s pod, but then again I think Joy was, too. Everyone noticed that Charis is a little, um, bigger than the last time she came by. She really is growing. She seems a lot bigger to me and I see her everyday, so the people at my office who only see her once every couple of months must really notice a big difference.
December 10, 2005
Gloria has her pod at work decorated for Christmas again this year and, as hard as it is to believe, it’s even more insane than last year. She added a few thousand more lights on top of what she had before and when you see it in person it’s kind of mind-boggling. The pictures don’t begin to do it justice because more than half of the lights are blinking on and off, so you can’t catch everything in one picture.

(more…)
December 2, 2005
We switched all of our major projects over to Visual Studio 2005 today at work. Overall the switch to VS 2005 seemed to go a little more smoothly than the switch from VS 2002 to VS 2003, so that was a nice surprise. All of our projects converted over without any problems and it only took about three hours to get everything to full compile again. So at this point all of our projects are now “error” free, and we’ll take the next few days to get rid of all of the new “warnings” that have appeared with VS 2005.
From the brief time I have spent with SQL Server 2005, I don’t think that transition will go as smoothly as the Visual Studio transition. We rely heavily on SQL Server scripts and the scripts generated by SQL 2005 are signiticantly different from scripts generated by SQL 7 or SQL 2000. I guess we’ll have to wait and see how that changeover pans out in the coming weeks.
November 2, 2005
At work we’ve been in contact with Microsoft regarding an error we started seeing in our software with the latest service pack for Windows Server 2003 running terminal services. This is the beginning and ending of the most recent email from Microsoft on this issue. I think it is an absolute classic.
“Hello Brad,
It was my pleasure to serve you during your random NullReferenceException issue. I hope that you were delighted with the service provided to you.
…
Case is being closed as ‘unresolved’. Thank you for choosing Microsoft.”
September 28, 2005
I’m joining the ten zillion other people that have written posts regarding Ruby on Rails and AJAX. I’ve been pulled in by the hype and I’m starting a new project to see what all the fuss is about.
At work we frequently use treeview controls in our desktop application to present data and collect input. We plan to eventually create a web based version, and this will be an experimental step in that direction. My goal is to create the HTML equivalent of a treeview control that uses AJAX to dynamically update itself as the user clicks things off. Perhaps that’s a little more complicated than a simple hello world program, but I definitely think I can get it worked out.
I’m also going to use the new MySQL 5 release candidate for the database side of things. We currently use MS SQL Server at work, but we’ve been wating for MySQL 5 to be released since the addition of stored procedures and views makes it a viable alternative for us.
We haven’t decided what web platform we want to use yet, so this will be a chance to try out RoR and see how things go. Our desktop app is currently written in .Net, so RoR would be a big switch, but it makes sense to get a feel for all of the options before deciding which path to take.
August 25, 2005
Today at work JP rediscovered two of the old bird projects. It turns out we had stashed them in a cubby in Martin’s pod the last time the company moved. We took them over to JP’s pod and set them back up and I got a few extra pictures of the guillotine setup since I only had one picture from the original. We have quite a few new employees since we originally did the bird projects, so everyone enjoyed checking them out.

What in the world is this? Explanation after the jump.
(more…)