Older blog entries for Daniel Casner (starting at number 2)

8 Apr 2007 (updated 8 Apr 2007 at 17:21 UTC) »

One hears the term "Generic Programming" every once in a while in computer science or programming circles as a good practice for code reusability or sometimes just as a buzz word. It is often described as "programming with concepts"[1] or software patterns. I tend to think of the process as writing algorithms without applications. That is, when you write the algorithm, you don't include anything which is specific to one application, hence making it generic.

I am not an expert on the topic and this is not a tutorial, though I have collected a few good links below. What I want to do is advocate everyone who does any programming trying it at least once. Recently I created a library implementing generic Markov chains. I did have an application in mind but decided as an exercise to make in as generic as possible because I anticipate having many future uses for this library. It turned out to be a fun challenge and rewarding to have completed something I'll be able to use for other projects. My implementation was in Python which made it slightly easier due to its weak typing, however, even in Python, one needs to be careful not to assume anything about the type being used (numeric, iterable, etc.) anywhere or to assume too much about the application.

  1. C++ STL
  2. Boost.org library generic programming concepts
  3. Generic-Programming.org
  4. The obligatory Wikipedia link
  5. My generic Markov chainer library

Systm is a geek oriented Internet TV show. It only has a few episodes but they are all interesting and have taught me something new. Of particular interest, I was watching this episode and the second or third segment is an interview with Dr. Trevor Blackwell, the founder of Anybots and my new boss, about his self balancing unicycle. Watch it if you want to see who I'll be working for. The episode is about Maker Faire which looks like an amazing event, exemplifying the spirit of creativity and engineering I aspire to. If only this year's were a little bit later. It will be in the Bay Area May 19th & 20th so I will just miss it by a couple of weeks. Well it's something too look forward to as an advantage of moving to the Bay Area. This any many other tech events. Finding time for them will be the hard part.

This summer I will be working at Anybots in Mountain View CA. If you're not already familiar with them see this previous robots.net article. I'm very excited and hoping to work on some vision and user interface software / hardware.

Share this page