Saturday, September 30, 2006


Friday night I had a shindig. It went pretty good. The only downside to it was that it started 2 hours after I told people to start showing up. I'm not sure I know how that worked out...

Either way, once a few people showed up everyone started showing up. We played DDR in the living room. Then we moved one of the couches outside and got guitar hero set up on a TV on the front lawn. Finally, I pulled out a pumpkin and Missy and Hannah carved me playing DDR on it.

I will have you know it was awesome.

Andy handed his camera phone to someone and had them get a picture of us. This is Todd, Andy, Myself, Levi, Honey, and Cody. Yes, Todd is holding a video game guitar. And yes, Cody is enjoying his vodka.

Fun times. We should do it again some time.

Sunday, September 24, 2006

Simple pleasures

I find that I really enjoy stupid stuff. To help qualify that statement lets start with a short list of said stupid stuff:
  • Advanced nonsense
  • Kite flying
  • Blowing bubbles
  • Thinking of ways to cause trouble using items found at Toys R Us
  • Sledding on a couch with skis on it.
The best thing about stupid stuff is that it can help you relax. What are the odds that you can remain irritated after going outside and blowing bubbles? A $1 kite can provide hours of enjoyment. And, don't forget that the rolls of wrapping paper in Toys R Us are great for fencing...


Friday, September 22, 2006

Hardware design = time sink

It's been three weeks since my last post. It's been kind of fun.

Last month I wrote about wanting to learn erlang. I still plan on doing that, but I've run into something else I started learning...


A few weeks ago I was talking to my brother and he is starting into a class where they will be working with robots. I thought that sounded cool so I pulled out my old hardware manuals, bought more books, and started preparing to write some PIC assembly. I even dusted off my educational version of Eagle layout editor. After spending my first $150 I'm ready to start designing something that will cost me another $100+ to get the board etched and populated with parts.

Hardware is fun. Soon I hope to be able to post some pictures of what I'm working on.


PS. In addition to falling behind with this blog, I have also fallen behind with google reader. Almost 90 unread items... For shame...

Friday, September 01, 2006

Next Language

After spending some time reading I think I've found the next language I want to learn. The last one I learned is Lisp. Lisp was my first functional programming language. I was able to learn about the concept of lambdas (aka. Lexical Closures) and lambda calculus.

My programming style will never be the same.

The new language I want to learn is erlang. The funny thing about erlang is that it's kind of like lisp. Not that it's a lisp dialect, but that it's a language that makes people wonder what I'm thinking.

I have a friend who really doesn't see why it is that I would choose Lisp for my current project. However, Lisp gives me great flexibility and freedom in how I write my code and how I think about my code's abstractions. I am able to write more reusable code faster in Lisp than I ever managed to in C#.

Now, why erlang? Seeing as it's more likely to get me more funny looks than dinner party invitations it just doesn't add up. Perhaps its history will help show why I want to learn it.

Erlang was developed by Ericsson for use in designing fault tolerant systems. Since its release in 1998 erlang has been used in telecom equipment built by multiple vendors. What's so great about it? It's a language that allows you to spend more time expressing your particular programming problem and less time handling the details of memory management. In C if you allocate something and forget to free it when you're done you have a memory leak and that memory space will not be useful again until the program is closed and restarted; this becomes a problem when you do it in a loop that runs 5,000 times. In Lisp and Erlang when you associate a value with a variable it adds a reference to the value. When all variables that reference a value go away it's reference count drops to 0 and the value is marked for garbage collection. All you had to do was use it while you wanted it and it goes away when you have no more need for it.

Erlang has other advantages. I hear it's good for concurrent programming. Something that is going to be getting bigger as we start seeing more cores going into processors.

Is it the end all of programming? Probably not.

All the same, I'd rather learn it. Learning a new language can introduce you to design patterns that will help you write better code in whatever language you use most.