I don’t know this bush is, but anything that blooms in January with such a fragile-looking flower deserves some recognition.
Archive for January, 2006
Winter Mystery Bloomer
Monday, January 30th, 2006JDBC Providers for JSPWiki 2.3.72
Sunday, January 29th, 2006The WikiPageProvider interface for JSPWiki has changed again with version 2.3.72, so I’ve updated the JDBC providers which I sort of maintain. 2.3.72 is still in alpha, and I’m not familiar with the new authentication features, which may be limiting my testing. For instance, there’s now a call to move a page in the API, but I haven’t figured out how it’s surfaced on a wiki.
Checking Range Check Elimination, Part 2
Sunday, January 22nd, 2006I’ve updated the article on the range check elimination optimization in Java. I added a case that provided a hint to the JIT which helps when the index is otherwise too complex for the JIT to realize that the range check can be eliminated.
Checking Range Check Elimination, Part 1
Sunday, January 15th, 2006I’ve started an article of my investigations into the range check elimination optimization in Java. The optimization aims to reduce unnecessary array subscript index checking, but I haven’t found many details on when the JIT compiler will apply the optimization, and how much time it saves anyway. So far, my investigation explores simple cases, but at least it finds situations where the optimization is applied (index is loop counter) and situations where it isn’t applied (index is computed).
Better Buddy System
Thursday, January 12th, 2006I recently saw a Simpsons episode where Bart and Lisa go on a field trip. The teacher pairs up students to use the buddy system to make sure know one gets left behind. Bart and Lisa are buddies and they both get lost. On the bus to return to school, the teacher asks, “is anyone missing their buddy?” Since Bart and Lisa are both missing, they get left behind, and a big deal is made later about the failure of the buddy system, previously believed to be infallible.
So that got me wondering, what modifications would have to be made to the buddy system to make sure no subset of the members got left behind? What’s the minimum number of buddies each member would have to have for a given population size? Some kind of hypercube of connections?
I think the solution is simpler than that: a chain system. That is, line everybody up and each person is responsible to remember the person before them and the person after them. Everyone except the first and last members has two buddies each. That gives N-1 links with mostly 2 links per member compared to the buddy system, which has N/2 links for exactly 1 buddy per member. Plus, the chain system works for odd numbers of members, unlike the buddy system.
Previous Life: GreasePencil and KISRs
Thursday, January 5th, 2006
When I was a freelance programmer in the ’90s, one of my larger projects was Mac medical imaging application called GreasePencil. The app was the brainchild of Dr. William Glenn in southern California, and a coarse description might be “Photoshop for medical imaging.” You could read all sorts of images (e.g., CT, MRI, xray), manipulate them, add annotations, and output them in various formats. There were also satellite applications to serve as print spoolers, tape readers, and film scanners plus stand-alone viewer apps for Mac and Windows.
The most interesting output was the Key Image Summary Report, written “KISR” and pronounced “kisser”. It summarized a study on one page for the referring physician. The summary included a text write-up and snapshots from various key images from the images. There was even a talking KISR with voice annotations.
I recently caught up with Bill and was pleased to hear that he still uses GreasePencil for reading films on his 30″ monitor, even though it’s a pre-carbon app that has to run in Classic mode. He’s got a web site for NetKISR, Inc. where you can see some sample KISRs and his newest venture, virtual colonoscopies.