December 4, 2011

New Projects for Christmas Break

Have acquired some more N-Scale goodies in the last few weeks that I hope to complete over the winter break.  First off will be constructing two of the BeNScale Southern Pacific Searchlight kits— I figure I will yield at least one working signal out of that project.  The next project will be a hand laid #10 turnout kit using the machined frogs and points available from Andy Reichert.  Hopefully I'll be able to post a build log here.  Both will eventually end up on Free-moN modules.

November 12, 2011

never stop learning new things

I've been playing with a few new programming tools with an eye toward creating a modern modular control system for my railroad club. The major components in this effort are node.js, redis, and jQuery. As a traditional C programmer by day, this stuff is new and interesting.

The most interesting of these systems has been node.js, in that it allows a complete web server to created using server-side Javascript. The use of anonymous functions as continuations is new to me as a C-guy, but their power is not lost on me.

As a guy who used to write low-level Macintosh completion routines in assembly language, and is playing with Objective-C blocks, this new way of doing things feels really powerful. But after spending few evenings debugging a mysterious failure, I realized that there are more bumps in the road.

The most annoying bugs I've written in the last few days all relate accidentally assuming that I can "fall out" of a nested anonymous function into common error handling code. It caused my server to abruptly truncate responses to clients which caused silent failures.

Over the last few evenings, I've learn to love the WebKit debugger and Mozilla Firebug trying to figure out what the #$% was going on. I guess an experienced Java or Scheme programmer I wouldn't have written these bugs in the first place.

Anyway, it is still really fun to learn new ways of doing things.

October 17, 2011

Block Detector works

Had a chance to test my version of an isolated block detector last Friday night:

September 4, 2011

Processing is cool

I've been playing with doing some CTC signal logic prototyping in Processing ( For whatever reason, since my end goal was to put all my work into actual hardware, I decided to give this environment a try.

In traditional application programming, I find that for whatever reason, I keep managing to get distracted writing of platform-specific "overhead" code. With Processing, I can concentrate on working on my logic and actually learning things.

Stay tuned, as if this goes well I expect to be posting some cool sketches soon.

August 30, 2011

Now this looks interesting...

A $25 linux machine with USB, Ethernet, and HDMI out.

August 24, 2011

Thanks SJ

What I emailed Steve...

"I'm sure I'm not the only one doing this, but I wanted to thank you so much for everything you have done for Apple.

Since I was a young kid playing with an Apple ][ at my dad's work, you (and Woz) have been my hero.

There was a day back in 1998 when I almost left this place, because some people around me were filling my head with tons of shit. My first day back from vacation, which was supposed to be the day that I quit just happened to coincide with the iMac announcement at DeAnza College.  I knew after your presentation that there was a leader in place to help point the way for those of us who want to build good stuff.

Thanks so much for building (and re-building) a company where we can do the right thing— not the stuff that everyone tells us we should do.

Two roads diverged in a wood, and I,
I took the one less traveled by,
And that has made all the difference.
— Robert Frost"

June 30, 2011

Ethernet Pro: a new cool thing

The Sparkfun guys have hacked together the Ethernet shield with the venerable Arduino Uno to create an awesome option for creating networked Arduinos.

March 6, 2011

cute minimalist audio player

Pretty neat little audio player using an AVR Tiny25— would be cool to put this inside rolling stock.