May 10, 2016

Killing Your Babies

I've been wanting to write an Erlang serial port library for a very very long time now.  I've probably talked about it, at this point, more than it will take me to *actually* write the thing.  But I've been stymied (forever it feels like) by mental blocks and knowledge-gap blocks and the general dis-ease of not knowing where to begin.

I was fortunate enough to be able to attend !!con this past Sunday.  (!!con is a weekend conference that features short, 10 minute talks on things you find fascinating in programming.)  Watching people talk about the things in programming that they had been geeking out about lately made me start thinking about what it was that I wanted to present about next year.  And I realized it was the serial port project I've been avoiding for years now.

So today, I booted up an AWS instance and downloaded the source tree and started compiling the Debian sources. One of the current Recurse Center batchees stopped by to say hello, and I outright asked them if they knew anything about kernel modules -- turns out the answer was very much yes!

In less than 20 minutes we had a "hello world" working kernel module! Pris (the Recurser who was helping out) asked me what it was that I was trying to do with a kernel module -- and when I explained the bigger project (getting Erlang interop-ing with C code), Pris explained that since I was using serial, there was no need to write a kernel module -- I could just write "plain" C code as my driver for an Erlang API.  And actually, a project that does exactly this already exist, and if I wanted to I could probably just use them.

Boy do I feel silly for telling so many people about how I was going to write a kernel module.  And even more silly for avoiding setting up a VM that could do kernel things on it. (I thought it would be hard!)

I'm not as motivated to write all this code as I was, but I might do it anyway because I am still curious about how the serial API works.

I've been carrying this project idea around with me for such a long time; it's nice to have killed so many hangups and misconceptions about the amount of work that would be required all in one go.  This project seems so much more tractable now.  More importantly, it's amazing how much mental energy has been freed up from worrying about how hard this would be to finish, or if it would even ever be finished.  Guilt and unfulfilled desire finally deflated into an actual, tangible body of work that I know how to start.  Or not, since it kind of already exists.

I just wish I hadn't deleted all that Erlang code a few weeks back.  Oh well. :)

No comments:

Post a Comment


‪some days I remember the lies you told me and i laugh at both of us‬ ‪at me, for wanting so badly to believe you‬ ‪at you, for having t...