Category Archives: Uncategorized

Slides From Software Transactional Memory Talk

Below are my slides from my STM talk this past Thursday. I have posted both pptx and pdf. The links don’t seem to export to the pdf. I will be posting a much longer post that incorporates the talk plus more content in the next couple of weeks.

PDF Slides

PPTX Slides

AHGTH: The Unhandled Exception Handler

I originally wasn’t going to write this post as I thought it was too trivial but Max Cantor talked me into it so here it is.

One of the unfortunate things about GHC is that if an exception occurs on a non-main thread it is silently swallowed by the runtime. The behavior on most runtimes such as the JVM and CLR is that an exception on any thread that is not in a catch block will take down the process. Fortunately GHC provides a hook for providing a global handler for receiving these exceptions. In GHC.Conc.Sync down at the bottom with no docs you will see setUncaughtExceptionHandler. This allows us to pass a handler that GHC will route any exceptions that we don’t catch to. Code sample below.

SimpleDB to MongoDB

I have just completed moving all my database related code from SimpleDB to MongoDB. Maybe I am just the latest in a trend since Netflix is migrating to Cassandra ( This has been a two stage process.

The first stage was to move my write dominant tables. Specifically I first moved the table that holds url meta data for our web crawler. As I scaled up the crawler SimpleDB started to have large numbers for problems with write pressure. Crawlers generate considerable write pressure and while a few dropped writes is not a real concern SimpleDB returned large numbers of errors. The transition to Mongo was smooth and Mongo has handled ever increasing write pressure. I also found SimpleDB to be too expensive and it does not have good tools for analyzing queries to analyze the load they create.

The second stage which I completed this weekend was cutting over all remaining metadata. This was also completed without fanfare and took just a couple of hours to copy and redeploy all executables.

Why did we choose Mongo? Well it has an excellent Haskell package. I very much enjoy increased type safety, which SimpleDB does not have since it stores everything as strings. I also like its operators for mutating lists atomically. The query model is pretty sweet. In fact MongoDB has become a kind of data swiss army knife for us. We use it in almost everything we do. Not that I would not use other types of solutions such as Cassandra in the future.

Workflow and efficient use of technology

Workflow is one of those all encompassing topics that is thrown about. I think of it as human involved business processes. Pure technological processes can be optimized in a different way. Human processes are a source of a great deal of variance as far as a business is concerned. Variance can be bad since it means that a processes is not operating normally. Consider a cat scan(CT). If for any given type of study there is a great variance in the time it takes to complete a practice cannot determine with certainty how many studies can be completed in a day. If a business can reduce this variation it can limit the amount of time that the CT scanner is idle. As a very expensive piece of equipment its utilization should be approaching 100%. For the sake of discussion I am going to assume that if you can have more capacity that you will find a way to fill it. If your CT scanner could always be busy you would make a lot more money than you would otherwise.

used to scan patients and then bill for performing the study. This is direct revenue. For the 3D technology maybe it makes the radiologist more efficient. He can now read more complex studies faster and with fewer errors. This is indirect revenue. Remember that errors cost money such that the total cost of errors equals the sum of the probability of an error times the expected cost of an error or Cost = Sum( Pr(E) * C(E) ). Quantifiable reduction in errors does lead to decreased cost and decreased risk so that a piece of technology can be weighed as a risk reduction tool although I don’t think that you could justify it on a purely cost basis.

Questions like these need to be answered when buying a piece of equipment or technology. The questions related to variance, cost and revenue. The truth is that to answer these questions you need a deep understanding of your business. Most healthcare practices do not have this deep understanding of their business.

Technorati tags: , , ,

Healthcare Vertical Search Engines

Vertical search engines are search engines that target a specific industry vertical, for instance healthcare. There are actually a couple of good vertical search engines out there for healthcare. The first is Kosmix. This was the first one that I used so it might be biased. It was started by some guys from Stanford, the same place that Google was born. It offers many different ways to get at subgroups of results for instance, just those related to clinical trials.

The second is Healia.I found this today and it actually inspired me to write this article. It is alot simpler than Kosmix but also seems to return good results. Have a look at them. I think that they are both better than Google for general health information.

Tags: , , , ,

RSNA Blogger Meetup

So the blogger meetup did not work out as planned. We could not find eachother in NetWorks, which at 5:30 PM during RSNA is a mad house. I did however meet Dalai from Dalai PACS. I had a great time talking with him about IT issues in Radiology. Next year I want to have a more formal event, possibly with some sponsorship or something. Maybe a blogger panel or some kind of discussion would be good too. I will write more when I get home but I don’t know when that will be since it is snowing here in Chicago and lots of flights have been cancelled.

Tags: , ,

Vista Goes Gold

So Windows Vista has gone gold, meaning the code is finished and the development team is in a celebratory alcoholic haze. Check out the coverage over at Microsoft Watch.

Tags: , ,

We are live

We are now live on wordpress. Hooray.

Switching to WordPress

I am in the process of switching my blog to WordPress. Hopefully this will be the last move.


Windows Vista

Chris Prillo points out Vista’s sloppiness. I completely agree. It is very sad that the top new features I am looking forward to are a networking stack that doesn’t suck (although Beta 2’s wireless tools have not given me alot of hope) and the fact that non administrators can add printers. There are not alot of new features to talk about. If people were buying a computer for photos or movies I would tell them to buy a mac. My next computer is going to be a MacBook Pro.

Microsoft had a chance to get things right with Vista and the users experience will be marginally better than XP. The graphics as Chris points out are very inconsistent. In his podcast he points out many things that are inexplicably incorrect.

From a developers perspective Vista is going to kick ass. But from a users perspective it will be more secure, have rss (which you already have although more apps might be able to do cool things with a unified API), gadgets (yahoo already gave us widgets and other people have done similar things for a long time), Search (minus that relational file system we were promised), SideShow (which is cool but requires new hardware), Performance tuning (although I am not sure how much this works – I would like to see some objective metrics), Backup, Speech Recognition (which 98% of you still won’t use). Thats basically it. Oh yeah and IE 7 Protected Mode which is a good thing.

Windows 3.1 components still in Vista.

I wish I could be more positive but I just can’t. Its so little, so very very late.

This weblog is sponsored by iVirtuoso, Inc.