Tuesday, August 31, 2004

commentary: an open laboratory

what is an open laboratory?

it is an online community of computer scientists (programmers, hackers, hobbyists) experimenting with computers and software. the lab is not affilated with any corporation or university or government. the lab should provide to its members the same benefits of working in an actual laboratory; diversity of thought, collaboration, peer review ...

why a lab?

the distinction we'd like to make is that the lab is used for learning, discovery, and innovation. we are not developing products for market, or rewriting existing applications for open source distribution. the lab environment would encourage collaboration by making the notebook the medium for sharing work products before they reach the stage suitable for presentation in a report. coming up with new ideas is messy. but peer review, discussion and mentoring are valuable at this early stage.

how would an open lab operate?

we'd begin by agreeing on a common programming environment (inferno, squeak, mathematica, ...), and a format for the lab notebook. the lab notebook needs to be reviewed and signed by a colleague in the lab, possibly a mentor. every lab session is documented in the notebook. it includes all details needed to repeat what was done and analysis and conclusions drawn from the lab session.

at some point a report is written for the lab's journal which describes the path of research taken. the report's details being derived from the notebook. through peer review, discussion, and further experimentation good ideas rise to the top and reputations are built.

why the common programming environment?

convenience. foster a lab culture. a good candidate for a programming environment is one where all the source is available; the system is small and well written so that any part of it can be modified for experimentation; and the complete system is easily understood.

commentary: getting started

even getting started is harder than i thought.

i'm having trouble deciding what tools to use to present the notebook. i already started it as a blog here thinking i'd just write html as i go and post it at the end of each session.

but thinking a little more about it, i want more interaction, and i want it to integrate well within inferno.

i could write it in troff man macros, which would work well in inferno. but inferno doesn't support full troff and preprocessors eqn, tbl, and pic. i considered LaTeX; but this seems more appropriate for a final printable version of a report.

looking around on the web; the Mathematica Notebook is closer to what I had in mind. a interactive technical notebook. code can be run, graphics and sound presented and manipulated.

another similar concept is the Squeak environment. Workspaces can be saved and exported. These can present models, simulations, experiments with objects.

so what do we have in inferno. plumbing can drive the interactivity for the notebook. the notebook could be presented through wm/man and other files, objects, can be plumbed from there. the notebook file system could be exported for viewing.

we'll have to experiment as we go :)

Saturday, August 28, 2004

Inferno lab

this is my inferno lab notebook.

each entry, when it describes a programming session in inferno, should include at least the following.

  • purpose; what i hope to get done in the session
  • apparatus and settings; so someone else could reproduce what i've done
  • diary; record of actions and results
  • analysis and conclusions

i use inferno for fun. the sessions i describe take place at home, in the evenings, usually monday to friday, 9:00pm to 11:30pm. This isn't always enough time to get things done, so some of the tasks may seem quite trivial.

i want to move through a wide range of subjects in computer science and elsewhere, wherever my curiosity takes me. i don't want to limit myself by false subject boundaries. i hope to experiment a little, learn a lot, and, just maybe, discover something new. inferno presents a good environment to do this work, for a variety of reasons i'll explore while i'm using it.

welcome. and if you like the idea join the lab.