Dynamic lab notebook

I’ve been mulling the idea of keeping my lab notes on my Mac for a while, and I’ve started moving in that direction. The problem with keeping notes on a computer rather than on paper is that the computer is far less flexible. It’s much more powerful, but it’s quite constrained by the need for exactly the right software. The major advantage of a computer over a lab notebook is that you can put in a whole lot more data, and interlink the data in ways that you just can’t with paper.

The ideal lab notebook software would combine some of the functionality of a blog with some of the functionality of a wiki. The blog function would be to simply keep a log of all entries, with timestamps. The entries would consist of text, images, and tables of data. The wiki function would integrate the linear collection of entries from the blog to build up a coherent time-independent picture of the object under study. The wiki would include both information about the current state of the experiment and a set of tentative conclusions about the phenomenon under study, along with things like lists of references with comments.


As an example of how such a system might work, let me use my recent lab work. We blew up a voltage divider used to measure high voltages last week. In the blog notes I would note that the voltage divider is kaput and how it got that way, and crosslink to the wiki entry showing the current status of the machine, updating it to show that the voltage divider is now gone, with a linkback to the blog entry. Now I need to design a new voltage divider, so I go to the blog function and lay out a list of requirements for the new voltage divider, and begin designing. Right there in the blog I carry out the calculations using a calculator plugin which logs the calculations with annotations. Having picked resistor values I now go build the thing, based on rough sketches done directly in the dynamic lab notebook. When the new divider is finished I take a picture and upload it to the blog, with markups and annotations as needed. Then I install the divider in its new location, take another picture and upload it. The final step is to update the wiki section to reflect the new voltage divider parameters and link to the blog entries describing the design and installation process.

Following the procedure above it’s relatively straightforward to keep an up to date set of documentation on the machine, and if there is a problem the blog entries can help unravel it. The big issue is keeping the overhead low. If it’s a PITA to use the system it won’t get used. Right now the long pole in the tent seems to me to be loading pictures, which currently takes about 15-30 seconds all told (including going to the machine, plugging in, downloading and dropping into place). Doing that 10 – 15 times a day adds enough overhead to be a problem. It would be nice if there was a way to simply fire the pictures wirelessly to the blog in real time so they are saved, with timestamps. The other problems are software (and the picture problem might be software fixable, given the right camera).

I’ve installed Twiki on my machine and I’m starting to figure out how to configure it to do what I want. I chose Twiki because it’s widely deployed and has a lot of plugins, with more in development. The ideal plugins for my purpose don’t yet exist, but it looks like they might be adapted from some of the existing Twiki plugins. In particular the really important ones are something to do simple photo markup (crop, add arrows, add text, perhaps draw freehand), a calculator (perhaps something derived from Frink), a simple sketch program with enhancements for including measurements (IOW, no need for any color effects, gradients, etc. just easy line drawings), and a way to directly edit pages in a semi WYSIWYG fashion (this is in development for Twiki). I think most of the rest of the functionality needed either already exists or is relatively easy to implement.

The ideal longer term plan would be to implement a system where LabView can be set up to automatically generate a link on the blog to data as it is taken, so that the blog tracks absolutely everything.

Anyway, I’m still in the early stages of exploring this idea and trying to see if I can actually implement it and make it useful. I figured I’d blog it to see if anyone has interesting comments or insights that might make it a little easier.