"Life? Don't tell me about life."

Last night part of my dream included writing some data on a calendar. It was my own calendar, but a strange one -- I had written very little on it, and the designers seemed to have given little thought to practical use. The weeks overlapped between months, so March's page also showed a week or two of April. On one page, the calendar was further compressed because the designers had thought to include a listing of all the movies projected to be released around that time. It looked like everything was crap -- uninspired sequels to moderately successful films.

When I awoke, I realized I'd been neglecting my own calendar. I didn't take note of the 23rd, the date my employer inexplicably wants my monthly timesheets so I can get checks on the 8th. It's a rather inconvenient arrangement. When I see Lee I suppose I'll get him to sign this timesheet. Unfortunately I haven't really recorded my hours since midmonth, so I have to try to deduce how much I might have been working for a week or two, and then I have to look within myself to project what I might work in the days before the end of March. It's a rather silly business, which always makes me feel a little uncomfortable. No wonder, then, that I habitually put it off -- which, naturally, only serves to increase my discomfort.

I notice I'm not sore from the long ride yesterday. I seem to have found a rather ergonomic form of exercise, or I'm just young and heal quickly. Tonight I'm going to a half-hour weight-training class at the YMCA, which I hope will get me started on some strength-building exercises. I'd like to develop some more muscles, but I can only laugh at the obsession some men my age have with weightlifing. I've got no interest in spending so much time pressing weights and eating processed supplements. For me, the gym seems a strange place. There's something odd about going to a building to stop in a tiny room and exercise without ever moving. I think joining the Y was probably a good decision. It's good for exercise with little planning effort, because I can go to a class there any night of the week, and intense exercise is good for my body. But I can definitely see that in the long run, outdoor exercise is more rewarding than indoor workouts. At the risk of sounding too pessimistic, working out indoors seems to make exertion into just another modern chore -- work, food, and travel are all technologically defined and scheduled in our busy lives, so why not make exercise into another convenient task? Relatively speaking, this criticism applies more to corporate gyms with a large advertising budget and a focus on body image. The Y is a decent place, and I have fun at the classes there. However, I'm starting to feel that the possibilities it offers me for social and personal development are limited.

I wonder about my knees. Both my knees intermittently display some pain when I'm putting a lot of pressure on them, like running or doing the frog kick in swimming. I had Nicole's dad, a physical therapist, check them out a couple years back, and I can't really remember what he said about it, though I still have the little list of exercises he gave me up on my bulletin board. I didn't do them, ever. It's an issue I've been avoiding, really. My little sister had some trouble with the cartilage in her knee joints, I believe, and had several arthroscopic surgeries. Her recovery seems to have been pretty limited. She hasn't used crutches in a long time, but she doesn't feel comfortable walking too far and can't ride a bike. Not only do I have no money or insurance for intensive care on my knees, I really don't want to be placed in the same sort of situation. I think the Y offers its members a free session of physical therapy -- I might do well to make an appointment.

Writing my pet program is proving difficult. My idea is to write a minimalist program for organizing my life -- while I have fantasies that it might be a great success, used by nerds the world over, I think it's best to just consider myself the target user for the moment. The basic paradigm of this program, which started me thinking about the project, is that there are Projects and there are Tasks to advance those projects. Projects are long-range goals, not necessarily with any clear condition for completion. Tasks are individual checkpoints in the realm of a Project (or multiple Projects). At first, all I need this project to do is to display the uncompleted Tasks and which Projects they relate to. I've been frantically sketching ideas for more powerful interfaces, as well, but that can come later.

After deciding on this basic structure, I spent a long time (well, several days) agonizing over what language to use. The only obvious criterion was that it had to be fun, as I am certainly not going to slog through, pro bono, on some project I hate. My first choice was Scheme or Common Lisp. My attachment to Lisp languages is twofold: they were the first language I did really powerful programming in, back in my first years of college, and they also seem very elegant and consistently designed. Lisp might stand for "LISt Procressing" -- Lisp is built around the data structure of the "cons" -- a two-datum pair of pointers or variables, with conses chained together to form lists. In computer science, lists are not particularly efficient or specialized, but they do have the virtue that they can be used to represent nearly anything. Much of Lisp revolves around manipulating these lists in the very straightforward "functional programming" paradigm, which emphasizes nests of functions, each with a return value and no side effects, if you can help it. But in my opinion the Lisp paradigm breaks down when you try to write more sophisticated applications, with a user interface that is not in Lisp. Larger applications seem to fundamentally depend on side effects -- maybe that's an overgeneralization, but my point is things get awkward when you try to do such a project in Lisp. So I thought about it for a while and gave up on the idea.

I learned some Java for a class in college and I've been using C++ a lot for my current job. But both of these languages suck. Actually, they're quite good for many applications - in particular, Java is great for quickly writing midsize programs, and C++ is a powerful and versatile language, one of the most popular ever designed. But they suck for me to use, so they have to be out. I even got as far as writing some stub code for my project in Java, before I started thinking about the perverse, boneheaded ways Java does all kinds of stuff, and how much I hated casting every last object, and how the clunky interface on Eclipse made me want to die, and before I knew it I'd wiped the IDE off my computer and resolved never to use Java again, except perhaps on my resume. So those two were out, I guess.

I don't know much about Perl, despite the fact that I spend a fair amount of time altering a Perl script that controls simulation batches. It seems nice, but for my tastes it's too focused on practical matters and doesn't deal enough with a beautiful design, like Lisp does. And I want to marvel at my language, darn it! So I adopted Python, for no strong reason -- it's powerful and easy, I guess -- but I got bogged down in the tutorials, because I've started trying to learn so many disciplines without any real commitment and drifted off, and this seemed no different.

I felt lucky when a forum poster referred me to Ruby. Ruby is another "scripting language", commonly used for smaller applications, but it seems to me there's no reason it doesn't scale well to larger apps. It's a strongly object-oriented language, which builds on the experimental idea in Smalltalk that everything is an object, or a pointer to one. So even though you'd normally write something like "4 + 5", in Ruby, that's syntactic sugar; it's shorthand for calling a method of the number object "4", so an equivalent statement would be "4.+(5)". Actually, OOP has had this idea for a long time. But I'd never seen it until the other day, so I'm still in the phase of wonder. Ruby also has a lot of cool concepts, some borrowed from Lisp, like higher-order functions, which allow you to apply an operation to every element of a list or array. This is invaluable, and I always hated Java for making me iterate. Overall, it might be superficial but I get the right "feel" from Ruby -- that the designers really shared a lot of my ideas about how a language should work, and I'd really like to use it for my project. I've been working on the basics and working on stub code, but progress is slow.

I'm not too sure what to do with myself. I could be working on work or Ruby, but I'm not. I could watch another movie I downloaded, but I don't really have a good time doing that. I've been slumped in my chair, reading dull threads on a web forum. No point, really.

This loss of direction and interest in the world seems to be the heart of my depression. This morning I laid in bed for a while, waiting for some reason to get up. It just didn't seem to matter. Staring at the blank ceiling was boring, of course. But the alternatives -- getting to work, entertaining myself -- seemed similarly distasteful. I've done almost nothing today, in the four hours I've been awake. It's not so much that I have a strong aversion to doing things -- but they don't really cross my mind or seem worthwhile.

Sometimes I tell myself I lack a clear plan of how to proceed or definite goals. That's apparently true, but I wonder if it's really the whole picture. Sometimes I'll really take things into my hands, like when I try to make a big scheduling plan for my day. That sort of works, but it's not consistent. It's very frustrating. Things will sometimes work better when I make an effort like that, but I can't keep up that angry drive to turn things around all the time. My momentum to keep struggling just falls off, and things grind to another stop.

Extending this metaphor, now I'm thinking of something from my ride yesterday. Riding a bicycle uphill is a fact of cycling life. Around here, you always ride in the hills, and going downhill is a lot faster than up, so you spend plenty of time climbing. When I climb, I notice I'm not content to ride at a fairly slow pace in low gear. I tend to push myself to be working pretty hard, regardless of the size of the hill. Sometimes this isn't a bad idea. For instance, it's never a long ride to get to the UCB campus, so if I push myself a little on the way there, it doesn't matter because I'll be stopping soon. But if I'm on a two- or three-mile climb, that doesn't work. I push hard at first, but I can't keep it up forever. And once I'm winded, I'm at a serious disadvantage -- even the low effort required to keep at a slow speed seems like hell. It's much more efficient to ride at a steady, sustainable pace the whole way -- my approach is comparatively wasteful. Sometimes it just seems like my nature to work in furious bursts, though, and I don't feel like it really lets me live up to my potential.

Sometimes I feel like a sort of robot, or perhaps Dennett's "zimbo" -- an apparently human creature with a complex capacity to represent the world, but without true experience or consciousness. (Dennett presented this as a logical absurdity -- perhaps I am refuting it thusly?) I wonder if I'm really a state machine, which should be computationally equivalent to a zimbo. For the sake of argument, I attempt to enumerate my mental state:

  • I am hungry.
  • I hear Pet Sounds by The Beach Boys. It's a nice record.
  • My tailbone is a little sore, because I'm sitting with my legs up above my butt, and the chair is not padded too well.
  • I view a laptop computer display, and behind, my bed covered in sheets and detritus such as books and papers. Behind, my messy bulletin board and otherwise bare wall.
  • Few smell or taste experiences are apparent.
  • I have emotional state. My main emotion right now is in a certain disembodied frustration and regret that I can pin on no source.
  • I have active representation of my world. Primary active symbols appear to include: the Emacs session I type this in, the keyboard with which I type it, the song on the stereo, and the class I wish to attend at 6:30. Most symbols are not active -- that is to say, there are a vast number of things I am not thinking about, but could think about.

It's a little simplified, but not by much. Overwhelmingly, my faculties -- my senses of taste, smell, and proprioception, my episodic memory of myriad people, places, and things, my procedural knowledge of everything I have ever become skilled in, et cetera -- lie idle. That's true of most people's minds, most of the time. Indeed, there are cognitive limits emergent in the way our minds work, so one can never be doing too many things at once. But isn't there a certain disappointment inherent in this realization? Why can't I do all I'm capable of, all at once? It's as if you bought a fancy car but discovered you couldn't operate the radio and headlights at the same time -- or you bought a computer and discovered you couldn't run all the programs simultaneously.