I've been asked more and more lately how I've gone about creating Hardcore Freestyle Emacs, my literate computing configuration. After all, it's over 100 pages printed, covers damn near everything I use computers for, from chat to email to un-fucking servers to how I remember all of the useless crap that my coworkers love me for knowing. The code itself is mostly the work of others, with my own customizations and improvements and increasingly my own custom ELisp, but the way they fit together is uniquely me.
FSEM was constructed in a declarative fashion; over the course of a week's work trip in Hawaii I broke down exactly the ways I used computers in to broad categories that now form the
H2 headings. In broad strokes, I write code, I manage servers, I track my work very closely, I keep a budget, I read email and blogs and news, and I talk to people a lot on IRC and Twitter, and lastly I blog, I listen to music. That covers, I would say 90% of my computing, the rest of which is probably playing video games or watching videos, neither of which I have found a good way to declaratively reason about yet, and frankly I'm not too worried about that since they mostly take place outside of my primary computing environments.
Once I have those broad categories defined, I can begin to look at both the optimal way in which I would complete those tasks, and how I am currently working through them. Both of these are described more or less completely within the document. Given my Coding environment, for example, I talk a lot of what I should be doing with Phabricator integration, how nice it would be to be able to tie Org-mode tasks to the actual work that other engineers see. Or I have some un-populated
NEXT headings where I will some day having coding paradigms for given languages, such as the Clojure toying I've been doing over the last few months.
Given these three sets of data, we can begin to fill in how it all should work, adding the actual configurations that make my environment flow. Much of this was directly ported and inserted from both my hand-maintained
init.el and Bernt Hansen's Org Mode configration, and when all of this was said and done, there were a lot of blank spaces and a laundry-list of areas that needed to be improved upon. But the end result was that I had a file that could tangle out to an
init.el and accurately document just how I used my computer for a variety of tasks.