Public Radio Week '08

It’s public radio week on nule.org. If you watch public TV or listen to public radio (NPR, PRI, etc.) you know and love the regular periods where they ply you for donations to keep their shows running. After hosting nule.org for over 8 years now, my hosting costs have constantly grown, from a few bucks a year to almost $500. (I do offer hosting to others which helps offset the cost, along with running some google ads. For that reason it’s hard for me to name an exact amount.) Every month I serve over 3GB of software (over 60% of my traffic is in jar files) to around 3000 different users.

Now, I definitely feel guilty about asking for donations, as I make a good salary (though I still haven’t been able to sell our old house, so I’m broke), but the time I spend working on this software is worth a lot in real dollars, and I’ve never asked for much more than a note of thanks. But, I figure, at the very least, the time I spend shouldn’t also cost me real dollars for having to deliver the bandwidth as well.

So there it is. Donate or don’t. The software will always be free, regardless, but if you use it and like it, this is one way to let me know.


HCM Updates and Future Plans

HCM 0.1.1 was released, it’s a bugfix release mostly related to wrong behavior in displaying logs interactively. Regular logging to file was not impacted. I also tried to make the logging page look a little nicer, and I increased the log history from 250 lines to 500.

Unless there are more bugs, that’ll be the last of the 0.1 series. 0.2 will start by adding in database support (I’m including the HSQLDB jars so you won’t have to install a heavy-weight database), that will allow interactive configuration in the future, as well as support for message queues. Before I get too far into the queuing (I’m not sure if that’ll be in 0.2 or 0.3) I’d like to add some basic email support (that’s what is going to require configuration) to see if I can have HCM send out notifications if there are problems with interfaces. At first this will have to be just if the clients are stopped for whatever reason, but maybe I can provide inactivity, queue depth or even external down notification in the future. (From experience, external down is usually not useful information unless data that’s supposed to be flowing and isn’t.)

I’ll be added probably three properties to the hcm.properties file. They should be “hcm.db.url”, “hcm.db.user”, “hcm.db.pass”. It’ll auto create the DB if it doesn’t exist (letting you specify any DB system you want, if you have the support jars handy). But before you go out and buy an Oracle license, for this kind of work it’s entirely possible the HSQLDB will be both faster and more robust.

Lastly, I’m working on moving the repositories from CVS to SVN. Hopefully I can make it easier for people to get the source if they want it (not that anybody’s been banging at my door to download it). I also want to try it for my own purposes as CVS over SSH is pretty clunky.

HCM Released and a note about HL7 Comm

I’ve released HCM version 0.1 right here. I’ve even included pretty detailed install instructions, which is a bit of a rarity for me, but it’s pretty easy to work with compared to many server-type software installs I’ve dealt with.

Also, a user pointed out on the forum that HL7 Comm might not be working on Java version 1.4. More and more libraries that I’m using aren’t working with versions older than 1.5 these days. This is an unfortunate situation, but I’m not sure if there’s much I can do about it. It’s not just a matter of recompiling a library for 1.4, some may be using annotations or generics, and those don’t easily translate back to 1.4.

I’m not giving up on 1.4 yet, but it’s not supported by Sun any longer, and even 1.5 is getting scarce these days. I hate the relentless upgrade grind as much as any of you do, but the move to 1.5 might be inevitable these days.

HCM and other releases

Yesterday I unleashed HL7 Comm 1.0 into the wilds. I replaced version 0.8 as the main version as 1.0 had very little updated in the core code. Some of the threading code was reorganized in most of the integrate clients (i.e. the HL7 listeners and senders) and there were some feature enhancements as well.

I also checked out clean copies of all of the HL7 utility source trees and zipped them into a collection of pretty much everything you need to build them. Information about what’s included is here. Just a reminder that the code is all released under the GPL and the vast majority is copyrighted by me.

Lastly, I’m getting ready to release the first version of HCM, or HL7 Comm Multi, so I thought I would detail what’s involved there and you can choose if this is a better integration product for your needs compared to the regular HL7 Comm.

First of all, HCM uses the exact same integration code as HL7 Comm, and always will. The idea is that I want you to be able to prototype your interfaces in HL7 Comm and feel comfortable deploying them without modification (except maybe paths, etc. in the configuration files) in HCM. Right now HCM doesn’t have the ability to modify or add configurations directly, you would create the files you need in HL7 Comm and point your HCM install to those files using a configuration file specifically for HCM. HCM gives you the ability to run a number of HL7 Comm instances (called processor agents) in a single Java process and to monitor and manage those instances via a web browser. To perform this feat, HCM is deployed on top of an Apache Tomcat (or probably equivalent jsp/servlet container) that you configure. That process involves installing tomcat and editing two files, which is pretty trivial.

Of course, at the moment HCM is limited to exactly the same clients that HL7 Comm is. That will change as soon as I get more comfortable with letting configurations be performed within HCM. After that I’ll be adding queuing functionality and the ability to manage queues. That will make HCM an official, honest-to-goodness integration engine (though technically you can do essentially the same thing today using the appropriate file in and out listeners). After that I do want to add something like a general FTP client, because I feel driven in a Nietzschean way to implement those protocols that I fear the most.

So look forward to a HCM 0.1 release real soon. Don’t let the low version number scare you – this is the same reliable integration code that HL7 Comm uses, it’s just a new way of managing your interfaces. I’ll also be reorganizing the documentation here to cover installing and using both HL7 Comm and HCM, which will hopefully make more people feel comfortable implementing these as integration solutions. And don’t forget, I can probably provide commercial support for you if you wish to use any of the HL7 tools here in a production environment.

I’ll close with a screen capture of the HCM overview screen.

HCM main 1