OK, so I haven't been just sitting around for the last few years. I think it sounded like that in my last post. Things I've done:
- Helped build two apps for a popular startup (Bump and Flock)
- Moved my family to CA and back to OH (no small feat)
- Learned Java and Android programming
- Helped build the Google Photos for Android app
At some point in the past few years, I stopped making things.
- I used to make fresh salsa. I haven't made it for over two years.
- I used to make little software projects all the time. I don't program for fun anymore.
- I used to write blog posts. It's been over two years since the last post on this blog.
- I used to draw or do watercolor paintings from time to time. Can't remember the last time I did that.
On the flip side, I've really enjoyed doing more running and photography. I also really enjoy the time I spend with my family. But there's just this part of me that I've forgotten. I think it's time to make things again.
I started writing this blog post on 2012/1/10 at 11:04:00 AM. Over a year ago!
I've been reading a book called Code, researching Bloom Filters and generally thinking more about bits. I don't think about bits very often. I do most of my programming in Python and bits are a few levels of abstraction below my typical operating plane.
A fair "bit" has changed since then.
I finished that book. It was fantastic, and gave me more of a general appreciation of the electronics that underly so much of what I get to do.
I'm now fairly comfortable operating at a lower level of abstraction; namely coding in C. I've had a hand in a number of C codebases over the past year. First was extending a k-d tree library with range query support. Then it was helping to build an application that made use of the library. Most recently I've been retooling that k-d tree library to support disk-based persistence and tinkering with writing a Python extension module in C. Oh, I also released a silly utility called preptime that prepends a timestamp to lines of input that are fed to it.
I don't have too much more to say about that. I mostly just thought I should finish this poor blog post when I saw it sitting there all lonely and unpublished.
At most coffee shops and restaurants there is a sign in the restroom that says:
Employees must wash hands before returning to work.
That's great. I'm glad that employees must do that.
I think we should aim higher though. I'd like to see a sign that says:
All human beings must wash their hands before leaving this room.
To start, I'm going to post that sign in the bathroom at home. After all, there are some human beings at home that could use that reminder.
There was some discussion amongst friends and family around the dinner table tonight about the Internet. Someone quipped that our kids were going to grow up in a world where the idea of no Internet is silly. It's just there.
The thought was disturbing to some, but to me, I am the one who grew up with the Internet. Let me explain.
Ever since I watched WarGames when I was a kid and saw that computers could be used to connect to each other, I was hooked. I had to connect computers and the people at either end.
When my family finally got a PC clone with a modem, I remember dialing up to a friend's computer, just so we could type back and forth to each other. Of course, only one of us could type at a time. But right there we had independently invented the Internet, social networks, IM, etc.
Later I picked up some long-distance BBS phone numbers from some pirated C64 games. Despite the penalty for unauthorized long-distance calls in the house, I had to connect to these BBSes. It was amazing, and while connected, I found phone numbers for local BBSes. I could connect without fear (but not without the good chance of someone picking up the phone and ruining my connection!).
So it turned out that there were nerds like me out there who wanted to connect their computers and their experiences with each other. There were message boards, multiplayer BBS games and pirated software. There was Fidonet for messages between BBSes, and lo-and-behold, one of the local BBSes offered a real Internet email address and Usenet access for a one-time $10 fee.
Eventually I got a hold of a dial-in number to a Kent State University mainframe. It had a Gopher client installed and I think it was CERN that offered a Gopher-to-WWW gateway or something. Anyhow, my first experience browsing the web was using Lynx via Gopher over a 2400bps modem. I think I get some nerd points for that.
By this point I was connecting to computers and people all over the world. It was/is awesome. Since then I've learned to program thanks to countless open-source devotees on the Internet, met some people who have become great friends over the Internet and I do 99% of my work remotely over the Internet.
To bring this in for a landing, I think it's cool that at Bump (where I work) my job is to write software that lets people use the Internet to connect in new ways. The Internet is not this scary, far-away place. It's right there in your hand, helping you connect with people just like it always has.