Articles

  1. 10 January 2012

    The minimax algorithm is used to determine which moves a computer player makes in games like tic-tac-toe, checkers, othello, and chess. You can think of the algorithm as similar to the human thought process of saying, "OK, if I make this move, then my opponent can only make two moves, and each of those would let me win. So this is the right move to make."

    Continue reading

  2. 05 January 2012

    An attempt to describe an approach to programming within an integrated framework.

    Continue reading

  3. 03 August 2011

    I don't want to start a startup because of the experiences I've had with working for them. Also, the idea of financial freedom is not as appealing to me as it once was. Finally, there are already big challenges in my life.

    Continue reading

  4. 02 May 2011

    Thank you, everyone who has viewed Clean Up Your Mess. Thanks as well to everyone who has passed it on.

    Continue reading

  5. 21 January 2011

    If your configuration is convoluted as all hell, Higml might be for you. Also, this is my first attempt at writing first-class documentation.

    Continue reading

  6. 19 January 2011

    The learning curve for code libraries is often unnecessarily steep. I frequently feel that if the author had written better documentation, I'd be able to use his work much more quickly, or at least figure out that it's wrong for me and move on. I'm trying to write better documentation myself.

    Continue reading

  7. 14 January 2011

    It's been nearly a year since I've added anything to this site. There are a few reasons for that, though for now I'll only mention that I didn't like that the site existed in part to sell an iphone app and possibly future apps. Well, it turns out that I don't really care about overtly selling stuff. What I really want is a place to write about the pursuits I care about most.

    Continue reading

  8. 15 February 2010

    The world abounds with wacky models that help actual people actually overcome actual fear. Some people believe their obstacles are put there by God as tests for them to pass. Others believe that mortal life is a game played by immortal energy beings, just for the fun of it. And some folks believe that there is nothing more to life than what we see; when we die, that's the end, so we better make the most of it. Wacky!

    Continue reading

  9. 10 January 2010

    My first attempt to give myself super powers merely gave me sore palms. Riding in the back of my mother's beater as a five-year-old, I focused sunlight on the center of each hand using a magnifying glass likely found in a cereal box. After I was "charged up" I would point at trees, cars, fire hydrants, and other hapless objects and think to myself, "In five years, that thing's going to burst into flames."

    Continue reading

  10. 06 January 2010

    A few months ago, I was really psyched about some project (don't recall which), and said to myself, "I'm going to finish this thing, and nothing's going to get in my way." Immediately it occurred to me that a better attitude would be, "I'm going to finish this thing -- and I'll take all the help I can get."

    Continue reading

  11. 01 January 2010

    Today I finally wrapped up Control Time and submitted it to the app store :-). Hopefully they'll publish it soon.

    Continue reading

  12. 12 December 2009

    A lot of people view their motivation as something out of their control. It comes and goes, catlike in its fickleness. By breaking down motivation to its components, however, you'll be able to troubleshoot your lack of motivation and figure out ways to increase it.

    Continue reading

  13. 01 December 2009

    I'm a young software developer and caregiver. This web site is about my experimentations in creating and following a system for constant personal growth. This article gives some background on the circumstances that motivated me to start those experimentations and this site.

    Continue reading

  14. 21 May 2009

    A quick way to automatically follow people who follow you on twitter.

    Continue reading

  15. 11 May 2009

    A way to avoid namespace collisions.

    Continue reading

  16. 24 August 2008

    A few years ago I ordered DSL service. The DSL modem came with an ethernet cable, and one end was labeled "this end goes in your computer", and the other was labeled "this end goes in the modem." Obviously, it doesn't matter which end goes where, but the labels undoubtedly eliminated any possible confusion.

    Continue reading

  17. 14 July 2008

    I've been learning more about electronics, in part to get a ground-up understanding of computers. In the process I've become interested in learning to build robots.

    Continue reading

  18. 02 June 2008

    This is meant to save me from having to write the same boilerplate profiling code over and over.

    Continue reading

  19. 14 May 2008

    A tool for finding and fixing mysql bottlenecks in Ruby on Rails

    Continue reading

  20. 12 May 2008

    The following code lets you iterate over large collections of Active Record objects without having to load them all at once, thus reducing memory usage. It's allowed me to run cron jobs which iterate over thousands of records without getting the cron'd process killed for using too much of a system's resources.

    Continue reading

  21. 05 April 2008

    Give your models javascript-esque prototypal methods. When accessing an attribute on the prototypal object, the attribute's value is returned if not nil. Otherwise, the "linked" object's attribute value is returned.

    Continue reading