Kernel Designs
I really enjoyed my introductory operating systems class at Berkeley. The class focused on classic high level OS concepts like process models, virtual memory, concurrency, and more. To go along with the material, teams of 4 formed to implement components in a toy OS called Nachos. The purpose of this was to keep students focused on the concepts rather than wade through the quagmire that is x86 assembly.
Emacs Tips
Earlier, I wrote a quick into of how to customize your emacs, but then I realized that I had no running list of cool emacs tricks. This article sets out to remedy that with a list of my favorite commands. It's by no means complete, so I'll keep adding on to when when I learn more stuff. The Gnu Emacs Manual is a good reference to flip through from time to time to learn new tricks.
Rails Tips
I have started, abandoned, and restarted many pet rails projects. All hype aside, I've collected a fair amount of rails idioms. Whenever I come across a problem I know I've dealt with in the past, I usually run a few greps through my past projects to look for an answer. The following pages are disorganized tips of things I have done that are useful.
Premature Software Testing
I've fallen victim to it a few times now and would like to remind myself of the causes and consequences. Don't get me wrong, I love testing and have attempted/done/failed at it ever since CS61B. I've used standardized test frameworks, hackish quickie frameworks from school, and created my own small frameworks for specific projects. Testing is a good thing.
Customizing Emacs
My editor of choice is eight megs and constantly swapping. I didn't meticulously choose my editor, but rather had one forced upon me freshman year in CS61A. Being young and impressionable at the time, I saw no downsides to the editor and kept using it more and more day after day. First it was coding, then notes, then email. Now four years later, I'm basically married to my editor, for better or for worse. For a complete reference of my .emacs file, see this link.