As you can see, the name of this blog is Mental Exoskeletons. I didn't choose it at random. Mental Exoskeletons is the name I give to the information design principals I use to create software. As the name implies, it centers around creating systems that do the work my mind would do, if other limitations didn't get in the way.
These limitations fall into several categories.
1) Long-term memory. In a perfect world, I'd have perfect recall and efficient indexing of every event of my life, the full text of everything I've ever read, and the nuances of every thought I've ever had. Sadly, that's not the case. But I can make strategic choices of what to save. I decided that having a record of every URL I'd visited would be a very useful aid to memory. To do this, I wrote a Firefox plugin that relayed the URLs I visited to my server, and some code that formatted them, added some metadata, and saved them into Amazon's SimpleDB. Since then, I've discovered Google Web History, which does the same thing if you have the Google Toolbar installed, or use Google Chrome. I'll get around to making my version publicly available at some point, for people who don't want to give all that data to Google for whatever reason. A similarly useful application would be a searchable list of every phone number I've ever dialed. As I like to say -- not entirely joking -- the NSA has access to this data, why don't I?
2) The things I forget to remember. If I could remember to do all the things I want to remember to do, I'd be the most productive and yet, most relaxed person alive. I certainly would have been a better student, better employee and all-around better member of any organization I've ever been a part of. I've had a raging case of ADHD for most of the last 34 years, which makes traditional memory aids - Franklin Planners, paper to-do lists, etc - less than optimal, because I forget to carry them with me, or to take them out of my pockets before washing my jeans. What I need is a mental exoskeleton, a trivially-easy way to file ideas, topics for further research and to-do list items while I'm away from a computer, and to have them dropped back into my consciousness when I'm in a better position to deal with them. I've got some ideas of how such a system would work, but I'll save that for a case study down the road (hopefully soon, and after I've had the chance to build it, so I can show concrete details.)
3) IO bandwidth exceeded. There's a lot of useful data in the world which I can't access, process and output into action fast enough to make it worthwhile, or without turning it into a full-time job. One example is stock analysis. I have a fairly simple to explain, but computationally non-trivial value investing algorithm which was taught to me by Arnold Van Den Berg. It takes about 10 minutes per stock to process it manually. I could easily spend three or four hours a day running it for every publicly traded stock that reported earnings that day or which had a large enough percentage change to potentially move it into interesting-to-buy territory. I don't have time to do that. A system that automatically grabbed the new data, ran the numbers and dumped the results into my email would be a classic example of a mental exoskeleton - on-going processing jobs that I only want to see the results of in extraordinary circumstances. Another example is the bus and trolley system San Francisco. All the data on bus locations and arrival times is available via the web, but without the ability to calculate all the nearby stops, read 30 webpages and do a couple hundred simple arithmetic problems in my head inside two or three minutes, I can't choose the fastest route between any two points with any kind of accuracy. This is the problem I'm currently working on, and I hope to have a prototype publicly available in the next few days.
There are numerous other categories, but these explain the concept. They're not just programs that make things faster or feasible, they're ways of taking a desire for data, collecting and processing it outside the realm of my present mental focus, and giving it back to me when I'm ready to receive new data and act on it. And now, it's time to get back to hacking.
Thursday, December 11, 2008
Subscribe to:
Posts (Atom)