Wha?
I am developing a cookbook. It will be instructional in the way that sicp is meant to teach you about programming through essential concepts, but it will feature the almost outrageously detailed nature of Julia Child's Mastering the Art of French Cooking.
That is, sicp doesn't actually teach you that many concepts, but the ones you learn happen to be incredibly useful. Cooking is kind of like programming. There are a few concepts that are very important and then there are the others which are stylistically important. Those concepts, we can practice, refine, and turn into an art, but they are based on an understanding of the basic principles of programming.
I do not want this to be a book for snobs.
Help
Those intrepid enough to volunteer their time are welcome to do so. There are lots of little aspects of the book right now that are being worked on. Here are a couple, off the top of my head:
- schema design (relax ng)
- inDesign layout and design
- editing
- recipes
- visualizations
- photography
- test-cooking
Technicalities
Because we live in the future, i am producing the book as an xml document. The main reason for this is so that i can easily import it into Adobe inDesign, but also so that i can create intelligent resources based on what attributes are popular, which ingredients are used, what utensils get lots of attention, which author is most prolific, and so on.
Because xml can also be transformed in a ton of ways, this means that the book can be ported to a website, or perhaps just some parts of it can be extracted to visualize recipes and so forth.
Structure
I have developed a Relax NG schema to validate the xml files that constitute the book and have also added a couple of convenience scripts along the way. One generates a proper relax ng xml file from a compact working edition and another validates the project against the current schema. Both these use jing and trang, both of which are supplied in the bin/ directory within the cookbook's subversion repository.
Because it is highly likely that the book will eventually outgrow the single recipe.xml
file that currently exists, i am also considering creating an (egads) ant build for the book. For now (with only 1.3 recipes), the cookbook will probably be ok as-is.
Subversion
The cookbook is currently available via a subversion repository hosted at csail. Folks without an athena/csail kerberos principal (almost everyone) can still help out, though. Thanks to the magic of computers, we can allow almost anyone access via https. Send me an email if you want to help out, my address is: thinker at mit dot edu. I will add you to the repository and you will be able to do work with it.
The subversion repository for the cookbook lives at: https://svn.csail.mit.edu/marcos/cookbook/trunk/
[browse]
You can check out from it, on a system that has subversion installed, by doing something like the following:
svn checkout https://svn.csail.mit.edu/marcos/cookbook/trunk/ cookbook
The subversion book (in particular, Chapters 2 and 3) is a pretty good reference if you understand the concept of revision control, but don't yet understand the commands that subversion uses.
Tools for the Mac
If you want to install subversion on your mac, Martin Ott has a great package of subversion 1.3.0 on his webpage. I ditched fink's subversion and went for this one because it had fsfs support and because it was just easier.
I do most of my file editing using SubEthaEdit because it is free, a little nicer than textedit, and has nice xml support. I don't feel like paying for textmate, otherwise i would probably recommend it.
Tools for Windows
Got me! If you have any popular combinations/etc, then drop me a line.