So, I started learning C lately, and my life satisfaction has gone way up. In retrospect, I started thinking about all the things within the past three years that I’ve started doing — and they are all things that I’ve wanted to do since I was like 12 — and how much absolutely fun life has gotten since then.
We have:
- learning C
- subsequently, hacking on libdvdread and writing my own DVD programs in C
- learning how to play and be a Dungeon Master for Advanced Dungeons & Dragons (2nd edition baby, yah! nothing but!)
- skateboarding
- reading Star Trek: The Next Generation novels
- switching to paper plates
(I could go on for a while .. )
If I go back a few years before that, then we have me going back to school and studying psychology, which has also been a major life event. And going back a few more than that (so we’re at about 8 now), it would be getting involved doing community service.
So, if I had some words of wisdom to pass down to a lot of people at once, this is what I would say: you can do all your grocery shopping in the frozen foods aisle.
Working on C has been a huge amount of fun for me. When it comes to working with computers and/or development, I love doing things the absolutely most complex and difficult way possible (a la Gentoo). Why? It’s because if there’s some knob I can turn, or some option that I’m given, I want to customize it. Originally it used to be because … well, I dunno why … but I’ve definitely mellowed out a lot over the years. I’ve always dreamed of learning C, though, mostly, because it’s just *hard*.
I mean, the language only has a few data types, and it’s super easy to screw up your memory, your life, your grocery store, you name it. Things just got real. Which means things just got fun.
At the risk of sounding like a snotty kid who wants everyone to know how awesome he is, it occurred to me late last year, that of all the things computer-wise I know about a lot, it’s probably DVDs. Having a moderately-sized library (a few hundred or so … or a few hundred more than that few hundred …), I’ve ripped and accessed all of them, and because of that, I’ve found lots of tweaks and bugs and ways to get certain information out. It kind of clicked with me that, I had a huge wealth of knowledge in my head about one subject, and it may just possibly be something someone else could use. Since I doubt anyone would give me an honorary Ph.D., I had to do the next best thing — slap together a half-finished wiki of my braindumps on the matter.
Honestly, I’m doing it more in a sense of the posterity of knowledge than anything else. Going through my notes, I have a lot of stuff that I just dumped on there. There’s really not *much* content there, but what it does carry behind it is years of working with DVDs on Linux … so when I say “use Handbrake,” I have months of research of saying why that is, or something similar. Like I said, I’m a user and I’ve run into every situation imaginable, so it’s good to be able to kind of share that. And let everyone know how detailed I can get. Because people love that kind of thing. Yahp.
However, learning C has taken me to the next level, where I can do two things: apply patches to the main DVD libraries, and write my own C programs. I would be the *last* person to claim that this stuff is elegant code or wonderful programs, but it does, for me, have the goal of driving towards the point of providing data that users need. Whatever that phrase means. I think I’m trying to say that I like writing stuff that is for *intermediate* users. I used to work on the Gentoo wiki a lot, and I noticed I really liked writing documents that go beyond a basic “this is this and that is that” explanation, and instead dives into the perspective of “let’s assume you know the basics, and want to do something that’s a little more detailed.” Yah. That.
I don’t know where I was going with all this, but there’s two things I’m sure of. No, one. I am out of frozen pizza.