A good way to become a generally happy person is to find your talent and a way to live by it. My talent is software; and writing about software.
Software in my lifetime has been mostly a wonderful way to live, because we're just learning how to do it and anybody with some time and talent and initiative can try out any crazy idea. Most of them don't work, but that's OK.
I am occasionally delighted and often irritated by my interaction with computers. We have so much processing power and so much memory and such great tools and we still fail, most times, to produce things that are fun to use. Every time I start out with a new software tool (a video editor, a stylesheet language, an instant messenger) I know in advance that there are going to be some moments of extreme pain when I want to do something obvious, basic, and necessary and I can't figure out how to do it. Then once you know how to do it, you understand why that is the natural and correct way.
The lesson is that software is hard, that what is natural and correct is often not self-evident, and that we have a lot of learning to do.
I am typing this on a Macintosh laptop (beautiful LCD screen, slick
peripherals: good), one of the "Titanium" models (scarred and ugly after six
months' use: bad), using the Emacs text editor (infinitely powerful,
infinitely flexible, very fast: good) in non-WYSIWYG mode (somewhat crippled
because I can't use the function keys as function keys: bad), and will run it
through a Perl script (fast, flexible, wonderful text-processing primitives:
good) using the
XML::Parser module (I had an immense
struggle with CPAN, involving a major new Perl release, to get it working: bad)
to generate an HTML+CSS rendition (decent-looking "liquid" screen layout
achieved with not too much work: good) that checks out in multiple browsers
(but Mac OS X gets confused about what its hostname is every time I take it
somewhere else and the DHCP resets: bad).
That's just the way it is.