Shortlog - a log of everyday things



I baked cookies with white chocolate chips and walnuts. The recipe I used was ridiculous, and called for too little flour and too little baking time. The first batch turned out a bit messy, but the rest were all right (after I added more flour to the dough and baked them for two more minutes).

For the record, the weather is downright gorgeous today. Cool and breezy, but with a nice sunbeam. The serenity makes me want to just sit outside and let my mind wander.


I may use libtomcrypt to implement the cryptographic authentication involved for the Kinect (since GNUTLS doesn't understand the cert I have to deal with), but that's getting put off until later, on the grounds that I don't have the time to learn Yet Another Library right now. I think I'm getting close to having that part working, though.

I feel like I've learned an awful lot lately. I've taught myself some reverse engineering, learned more intricate details of how USB works, read the TLS spec and a good portion of the TCPA spec (pdf), and come to understand much more deeply how cryptography is implemented. I've written a big integer library, starting with increment and going to addition to multiplication to modular exponentiation, and deduced several techniques that will make such code faster.

And that's just what I've done in my non-school time. I've learned how speech recognition works, about a thousand problems that are equivalent to least-congestion routing, and a similar number of ways to solve a linear system of equations. I've learned that most security techniques aren't about providing absolute security, but rather making things less easy for people to screw up. I've found that satisficing is way more effective a strategy for getting things done than seeking perfection, but that the latter's purity is itself rewarding. I've started toying with an idea that I think I might be able to turn into a thesis.

Yet, for every fact I learn, I find a dozen more questions, a pile of things I still have yet to learn. There are a zillion lectures that I want to go hear. I have a significant reading list backlogged. My TODO list above is but a tiny sample of what I actually have to do. There is never enough time. I must choose what is worthwhile.

I wonder how close I am to ten-thousand hours spent working with computers. Maybe I've gone over it already. I hope I'm choosing wisely.

Recently, someone asked me through a mutual friend how to become pro enough with computers to pass a particular (rather stringent) interview. I replied with a link to Peter Norvig's Teach Yourself Programming in Ten Years. I didn't mean to be snarky, simply realistic. My friend replied: "it is upsetting to think that I can only be great at a handful of things before I die." It's true. That limiting factor is enough to make you question the sincerity of someone who claims to want to learn something. How much can they really want to understand? Should any of us bother to be a mentor at our field of expertise for someone who isn't willing to put forth the same effort we did to gain our talent?

Is it fair to expect such reciprocity? Is it just to demand it? Is it kind? Who am I to judge whether you're trying to get the cheap benefit of my labor, or if you too are beginning the journey of a lifetime? How could I stand to crush another's curiosity, when curiosity and the passion to learn are the most beautiful things I know in this world?

I will share everything I can, for that is what I would wish from everyone else. In turn, I must recognize that learning doesn't always happen on my own terms. I hope you'll do the same.