Two project ideas floating around here, both of which are struggling to get from the idea realm to the reality one - any suggestions or comments on whether they're worth pursuing or how one should go about best pursuing it would be awfully welcome.

Blue Sky The First: Engineering Project Notebooks That Don't Suck

In the book "On becoming an innovative university teacher" by John Cowan, he suggests keeping a learning journal, a practice inspired by a book by Jenny Moon. The idea is that you keep a learning journal for every topic you study - like class notes, but with more emphasis on personal reflection - and then if you teach students in the subject later, you pass on your journals so they can read yours while they're making theirs. Keeping a learning journal helps you keep track of your own educational goals, and serves as a record for the transformational thought processes you've gone through.

"Sweet," I thought when I first read that. "I'll do that!" A month later, I'd found that the learning journal concept works beautifully for art and writing, but not so great for engineering. Data on paper is beautiful but dead. You can't type it, compile it, run it, or analyze it mathematically without a lot of rote cranking. I'll be darned if I'm going to print out my code and neatly paste it inside one of those little lab notebooks just so I can point it out to my students years later.

Blogs are the closest things to learning journals I've found on computers, but if I go completely electronic , I lose the ability to quickly sketch diagrams or hash out math notes. Maybe other people can type LaTeX or LyX fast enough to keep up with a lecture - I definitely can't, and besides, I do math with plenty of diagrams. Besides, if I type LaTeX into a blog (assuming I can even figure out how to make that display, whether it's with MathML or something else) it still has no mathematical meaning; I have to re-code it all over again in Maple or Matlab to be able to maniuplate the numerical data.

Enter Matt Tesch, who provided a starting point - a proposal to combine handwriting recognition with LaTeX and a computational library. The idea is that if you have a tablet PC, and you scribble your math syntax in, it'll be recognized as two things simultaneously: (1) LaTeX syntax, so your chicken-scratch suddenly turns into beautifully typeset math, and (2) computational entities, so that you can finish scribbling an equation, highlight it, click "evaluate," and actually get an answer. Your handwriting will have both mathematical and typographical meaning, and it'd be a start in taking math notes this way, at least.

So the two of us are plugging away at that - Matt on the handwriting rec side (since it's his independent study this semester anyhow) and myself on the typography and the numerical computation backend (since it's a hobby of mine anyhow).

Ideas, suggestions, and things we've completely missed are very, very welcome. Is this idea completely useless? Are there things already out there that do what we're trying to do? Do you know of any projects or papers we should look into in the process of figuring out how to make this happen? And the questions I'd really like to find the answer to - do you keep an engineering project notebook? Do you like it? How could we design a program that would entice you to keep your project notebook on your computer instead?

Blue Sky the Second: Peer Review (interface for simultaneous commentary on a paper)

Then there's the problem of commenting on other people's papers. Ben Salinas pointed out something to Matt Ritter and myself one afternoon: tools like Google Documents and Gobby do a great job of letting you edit simultaneously, but what happens if I have a paper draft and want to let a lot of people make comments on it? I can ask them to write comments on the paper as a whole, in which case their comments can't be tagged to specific locations in the document.

This isn't a big deal when you're asking about a 1-paragraph email; it's a problem when you're writing a 300-page thesis. I can also ask them to use Track Changes and Notes in Microsoft Word, but let's face it; that's a less than perfect solution. Aside from the red lines swarming all over the place, it's not really collaborative, and your poor commenters will end up with a dozen different versions in their inbox which they'll have to merge.

The above image is a quick attempt at drafting an interface solution. It's pretty simple - all it is is attaching comments to specific locations on a paper. In order to comment on (blue) or suggest a rewrite of (red) one area of a document, you just highlight that area (no matter how big or small it is) and type. Your comment will be "pinned" to that location, and the section of the document you just wrote about will be highlighted subtly in order to show that it's been commented on. Each successive comment on the same section darkens the highlight. You end up with a commentary heatmap of sorts - heavy highlighting indicates the parts a lot of people are talking about. There are no "threaded discussions"; if you want to comment on someone else's comment, highlight the same part as they did and post a reply.

Here's the catch; these comments aren't usually all displayed, because there might be thousands on a very long paper. In order to view the comments on a section, you highlight that section. In this image, some of the text has been highlighted (yellow) and the two comments applied to that area are displayed on the right. If you want to see all the comments, select the whole document. If you just want to see comments on one chapter or paragraph, highlight those. You could potentially sort & search comments on the right side by author/date/subject/tag/whatever, but plenty of interfaces for that have already been developed and it wouldn't be a hard add-in, as far as I can tell.

Yeah. As I said, it's a pretty lousy demo and a poorly done image, but hopefully some of the ideas squeak across despite my hackish graphics skills. Thoughts? Worth building, not worth building? More importantly, how the heck do you go about making something like this? I come from a programming background of mostly control/simulation software, and should probably pick up Ruby on Rails and Ajax and such at some point; I'm not sure what tools this kind of thing would typically be built in.