Mike's Take

Friday, December 30, 2005

I hate Windows so much right now

I have three development machines in my office, all of which are giving me headaches today. On one, a brand new dual core pentium D, I am running a machine vision application that uses DirectShow (DirectX 9.0c). I am capturing images from a NTSC analog camera. The system will run fine continuously for about 3 days, then I'll come back in the morning to face the blue screen of death.

On my second machine, I was trying to record a screen cast, to show some work that I've done. Windows Media Encoder hangs. Too bad, no help here. So I finally manage to record an AVI, which looks and sounds good, but it's 50 MB. A little big for downloading. So I throw it on my third machine, where I have quick time pro. I convert it to MPEG-4, and try to play it full screen, and boom my graphics driver blows up, resolution is reduced to 640-480 and Windows tells me to give up and reboot.

The graphics capabilties of these machines are astounding!

Friday, December 23, 2005

Eclipse

James' posts on Eclipse peaked my interest, so I decided to go try it myself. I decided to check it out with regards to Ruby however, as that language is more appealing to me that Java. The pragmatic programmers recommend learning new technology continually, so I figured now is a good time. I will look at Eclipse and Ruby to write some housekeeping code to automate some tasks that I have to do for building new releases of my software. I googled for a few minutes, and found the one click Ruby installer, Eclipse, and the Ruby Development Tools for Eclipse. A few minutes later and they were all downloaded and installed. I really had no trouble with any of it, and within a couple of minutes I was writing the Song and KaraokeSong classes from the Programming Ruby online book. So far so good. I haven't got into any debugging or unit testing yet, as I am only a few minutes into the process. I'll post again when I have created something of value.

Memory Management

So much of the time I live in blissful ignorance, never really knowing the pain that many developers go through dealing with memory management. Developing in Smalltalk, it never even dawns on me that I might have to worry about an object that I'm done with. Our application, KnowledgeScape, must communicate with lots of different systems to get data. One data bridge we have is DDE. We were having trouble with errors that would occur after a few hours of operation. It turned out that for synchronous transactions, the client is responsible for releasing the resources associated with the request. No big deal, I fixed it. But my point is that life is so much easier when you don't have to think about it.

Monday, December 05, 2005

Humane Interface

Martin Fowler writes about the humane interface principle and its implementation in Ruby. I agree, and I think that Smalltalk does this well. The cost (in bits and bytes) of having a nice api is very small. The cost (in dollars and time) of programmers writing code is high. If your tool of choice can save you money and time, and help you to get to market faster with your product that seems like a good thing. The reality of software development in my experience has been that the faster you can get it done the better off your company will be.

Friday, December 02, 2005

DabbleDb

When I first saw Avi give a presentation on Seaside at Smalltalk Solutions two years ago, I thought: "Man I wish I was smart enough to have done that!". Now, I have had the chance to play with the Dabble beta created using Seaside and it happened again. What an amazing application. In just a few minutes I created a bug tracker, feature request and development time tracking system for my real job. Then I added another app for tracking todo's on non dev projects that I also have to take care of. Dabble creates an RSS feed for me, and if someone reports a bug, I see it in my newsreader. It is super slick.

Of course it is still beta software, so there is a bug or two left to be found. Enter the amazing power of Smalltalk. When I hit one, a stack trace goes to Avi and Andrew, they fix it and email me saying its fixed within a few minutes. All the while I haven't even logged out. Operating on a live image is pretty normal for Smalltalkers, and it lets these guys have a real-time feedback - change - feedback cycle with their customers. It's totally great and about as agile as it gets.

Patrick Logan comments that it's too bad that Dabble is a commercial endeavor, because it won't benefit developers. This isn't so. Even though we don't have access to the Dabble code, everything that makes it work is available in Squeak (or VisualWorks) and Seaside. This is one of those occasions where the creators of the tool actually use the tool. Subsequently, all of us benefit because they are constantly evolving Seaside which is readily available.

There has been a lot of buzz about this, but rightfully so. It's very impressive.

About Time

I guess it's about time to post again. I read tons of blogs every day so I ought to at least come up with a post a week. I've just been lazy. I have been working on a few things lately. Work is keeping me pretty busy (I am the lead developer on an AI process control package called KnowledgeScape). But in my spare time I have been Dabbleing (more on that later) as well as working on my own little app in seaside. I also made it to Moab for a little biking and am getting ready for the new ski season here in Salt Lake City. So, I will try to write a little more frequently.