Some goals I’ve ignored, some I’ve forgotten, but one that keeps popping back in my head from the post I made in February of this year is releasing 10 projects. Instead of doing my own stuff, I’ve been doing a good amount of paid client work – which is a departure for me. I have found some time for little things here and there, but nothing worth writing home about.

Well that changed last night. My friend Bruce IM’d me about a micro app he wanted to make on the fast.

It turns out that Bruce is one of 200 people who is hanging with Obama tonight for the election results.

image provided by | original tweet here

He wanted to make a scrolling tweet-viewer, twistori style to show his and Damon‘s (who is going with him) tweets related to the event.

So, we hacked a bit, and Damon (who is going with him) jumped in and we launched a few hours ago:!

Tweet Row to History
Uploaded with plasq‘s Skitch!

If you’re interested in the code, check it out on github

Average Rating: 4.7 out of 5 based on 218 user reviews.

Joe, AJ and Gary recently launched PleaseDressMe – a t-shirt search engine. Being the awesome friend that I am, I waiting until they did a feature on me and what I wear to blog about it.

(I’m such a jerk.)

AJ approached me about a new feature they’ve been running “How They Dress, ” and I’m featured as their second one (why not first dudes?!)

Without further ado, here’s… HOW. I. Dress:

Average Rating: 4.5 out of 5 based on 195 user reviews.

Here’s a tip that took me a while to figure out, but is really easy in retrospect. So easy in fact that I just assumed I was being dense for not knowing it, and everyone else just “knew” this.

However, after a smart friend tweeted about needing a simple logging method, and not getting any replies that nailed it, I thought I’d post this up.

First, require syslog

require 'syslog'

Then, make a call to, with a block and send a message$0, Syslog::LOG_PID | Syslog::LOG_CONS) { |s| s.warning "Danger!" }

In this case I went with a warning level message. Syslog also supports:

  • crit CRITICAL system level events (like “System is going down…”)
  • emerg emergency
  • alert
  • err
  • warning
  • notice
  • info
  • debug

These map directly to the syslog levels you can read about in “man syslog”

It seems that debug and info messages don’t make it to the os x console app, so I use warning.

Here’s the code all together:

And that’s IT! Pretty simple way to get logging into any of your scripts. Don’t want it in main syslog? Just edit your syslog configuration and divert all messages from your app into a dedicated log file (without needing to touch your script).

Average Rating: 4.9 out of 5 based on 239 user reviews.

On August 18th, I’m going to be teaching an intermediate/advanced 4 day rails course with David A. Black in Edison, NJ. If you know enough Rails to be dangerous, sign up and we’ll make you deadly.


Visit RubyPal for more information and to sign up today!


In a previous life, I was very heavily into Martial Arts – TaeKwonDo mostly. From the ages of 12-18, I taught almost every day. Young, old, strong, weak, I trained them all. While there is a lot about the martial arts industry I don’t miss – teaching isn’t one of them.

Now I’m being given an oppertunity to get back to teaching. Not only that, it’s teaching something I’m passionate about, and am good at!


If you sign up (at RubyPal), you WILL learn, and you WILL have a good time.

Use rails at work? Get your boss to send you. Work for yourself? Write it off. Already an expert in Rails? Come heckle me ;)


Without this great community, I wouldn’t even be in this position, hopefully, one of my students will be the next “Rails Rockstar” and I can give back to all the awesome people I’ve met over the past 3 years.

Average Rating: 4.6 out of 5 based on 221 user reviews.

How I Got Started Programming

My good friend Amy Hoy has pinged me in the latest geek-cum-chain-letter-sucker meme. Since I am enamored with myself, I figured I should let the world know my answers to these.

How old were you when you started programming?

The answer to this depends on how you define “programming.” Not to mention how you define “started.”

It could be when I was around 7 or 8 with our Apple IIc.

It could be when I was 10 making pictures out of ascii.

Maybe it was when I was 15 making doors for BBSs.

Maybe it didn’t happen until I was 17 and scrambling for a class.

How did you get started in programming?

Again, this depends on a few things. However here are a couple of possibilities:

  • Sitting in my living room in front of our Apple IIc, a friend (George?) showing me the classic 10 print, 20 goto 10. I tweaked it to make different patterns in the offsets
  • The computer lab in 5th grade (I went to a private school for one and only one year… it’s a long story) making teletype ascii art (on real PCs, not on dumb terminals). They gave us instructions like “line 5: 25 spaces, 5 stars, 1 vertical bar, 5 stars”. When you were all done, you’d see the picture. The one I remember very vividly is a Space Shuttle with “USA” on the booster rockets. I would spend *hours* after-school making and tweaking these things. It’s fair to say that the teacher was programming us, and WE were the “computers”
  • Spending hours making frames for my Etch-a-sketch Animator 2000 Etch-a-sketch animator 2000 - image from Wikipedia

What was your first language?

BASIC was the first language I had any exposure to, but the first language I achieved any proficiency with was Pascal (Turbo Pascal 6.0). I still have a soft-spot in my heart for Pascal, it was my gateway to the beauty and elegance of Computer Science.

What was the first real program you wrote?

Then, as well as now, I didn’t finish many projects. Getting (or not getting, as the case may be) to the “crux” of the problem was my main goal. One project I did finish was in my senior year of high school. I wanted to understand Object Oriented Programming, and started poking around with C++ (I had learned a bit of C before-hand with a friend in school – Jason Kochel). What I ended up making was a program that took two lines of text, put them on the screen, then made them shrink and expand opposite each other. The lines I used were “I love” and some girls name (for a friend of mine – his girlfriend at the time).

What languages have you used since you started programming?

This question should really say something along the lines of “… more than once, ” or “… for any period of time.” Here’s a short list of things I’ve messed with:

ASM, C, C++, BASIC, Pascal, JavaScript, Bash scripting, Java, processing, ASP, Visual Basic, POVRay, Ruby, Python, Perl, Objective C, PHP….

What was your first professional programming gig?

I think I made a few bucks from some BBS Doors, but the first real paycheck had to be from Pacific Bell Internet in 1997. I was working tech support for the ISP when I got bored and attempted to make a demo version of our customer management system (Vantive) in JavaScript. That got the attention of some people higher-up, and I was brought into a skunkworks project to implement our side of a web-based CRM we had just purchased (Silkenet eService). This was my first exposure to server-side programming, and taught me many lessons that I’m still trying to digest. From there, I moved around in the company a few times, picking up VIM, Perl, VB and a few other things along the way.

If there is one thing you learned along the way that you would tell new developers, what would it be?

  1. Don’t be afraid to break things
  2. Once you get past fear, find your joy and follow it completely

I’ve made many, many, many mistakes while programming (Hey John, remember the 2 gig file I wrote out to your 200meg hard drive?) Having a group of awesome friends kept catastrophic computer failures to a minimum. And then having a supportive mother for when I did really mess things up let me explore.

The bigger advice is mostly don’t ask for permission. If you need to jailbreak your phone to explore your passion – do it. If you need to tear apart your Furby and solder his guts together to learn how he works – do it. If you need to stay awake 2 days straight just so you can impress someone – do it.

What’s the most fun you’ve ever had… programming?

There are far too many to name. Every time I stay up all night trying to get something out into the world, it is, to me, the most fun possible. Here are a few instances of pure joy from programming/learning:

  • When I was sans-home, I would hang out at friend’s houses A LOT. At a few of them, they had old computers. I’d load up BASIC, and make it draw circles and spirals. It was nearly an obsession. It’s hard to explain, my technical chops were far beyond sine, cosine and drawing dots. However – it was the first time I can remember that I coded 100% on my own. No books, no articles on line and no source code to crib from. It was truly liberating. To this day, opening up a blank editor and creating something without reference is a beautiful thing.
  • The night before my senior year of high school started…
    I was signed up for Advanced Placement Computer Science (the only honors level class I took in HS), a pre-requisite was the Pascal class the school offered as part of the Math Department. Due to circumstances outside my control, I wasn’t able to take that class before senior year. I lied and said I knew Pascal enough to do just fine in the class. I spent hours looking at all the source examples I could find and retyping them into a stolen version of Turbo Pascal at home. By the time I went to sleep, I knew as much as anyone else in the class (except for Jason.) I ended up getting a 5 (the highest possible grade) on the AP test, and finishing the class with a grade in the high 90s (which was totally unheard of for me.)
  • I recently made an application that I didn’t announce on here. It’s just for me, but complete and not missing any corners. I stayed up until the sun came up writing Ruby (with Sinatra), HTML, JS and CSS. It explores a few interesting concepts and scratches an itch I’ve had for years. If you can’t make yourself happy (and maybe a few geeky friends), then why bother fighting with these wretched machines?
  • “Hello World” on the iPhone.

Bonus Question: How do you get into “The Zone” for programming:

I added this question because I’m a tinkerer and couldn’t leave well-enough alone.

For me, it’s always been music. Not just music, but music on repeat. It filters out noise, and is repetitive enough to sooth the doubting part of my mind. Two times:

  • I had an old, beat up cd player that didn’t have repeat. It didn’t even start the disc over when it ended. I got up to hit play to re-start Jagged Little Pill a thousand times if I did it once.
  • During Rails Day 2006, I played “Unfaithful” non-stop for the entire time I programmed (I think it was 18 hours total.)


Without passing these things on, they’d die. Cold. Alone. Help stave off meme-death. Ping these people and let them know the fate of this meme is in their hands:

(wow, I could keep adding people forever. I need to know everyone’s story…)

For anyone who needs the list of questions, here it is in one easy to copy and paste block:

Average Rating: 4.5 out of 5 based on 238 user reviews.

2008-08-12 update:I’ve renamed the repository on GitHub to be fluid-css.tmbundle to conform to the naming suggested by Allan on the TextMate Blog.

So my last project ended up being a much bigger deal/effort/undertaking than I expected. I’m just now starting to get back in the swing of small releases. Still shooting for 10 projects this year though!

Not counting the super secret project, this is my 3rd release and it’s a huge departure from my normal stuff.

Fluid CSS TextMate Bundle

This will appeal to maybe 10 people in the world, but for them it could be a huge time-saver (it already is for me.)

Fluid (elastic, em-based, etc) layouts are ones that specify all sizes in relative units (usually ems – a typographic term). Here’s a great introduction to making one of these layouts: The Incredible Em & Elastic Layouts with CSS. The advantage to having everything set in a relative unit is that it allows the site to scale (like “Full page zoom” on IE7 and Firefox 3). It’s also a great way to know exactly what’s going on with your layout.

Since you’re working in relative units, you always need to be aware of your current font-size, and use that to calculate the size you’re setting.

In the past, that meant a lot of asking google (did you know it’s a calculator?) or spotlight (did you know it’s a calculator?)

Well, NO MORE!

Here’s a video showing you what it does:

How to use my textmate bundle for em-based designs from kastner on Vimeo.

Grab it on GitHub.

Or – get the tarball

Average Rating: 4.8 out of 5 based on 234 user reviews.

I just gave my first-ever presentation. From what I’ve been told, it went ok despite running 15 minutes short.

I’ve uploaded the code to the microapp I demonstrated here:
Jeff4Good on GitHub

I’ve uploaded my slides on Slideshare

Here they are on S3: Microapps.pdf (3.4 MB)

If you were at my talk, please let me know what you thought about it. Especially if you have any constructive criticism (just no cricket sounds please).

Here it is embeded:

Average Rating: 4.9 out of 5 based on 210 user reviews.

Continuing my goals for 2008, here’s my second project I’m announcing:

Color Wars 2008!

When I heard that Ze Frank had joined twitter, I just knew it would be cool.
One day, he asked for bedtime stories. Then he made mention that he’d like to find a way to show all the cool ones he was getting to everyone else. (here’s where I come in) I direct messaged Ze (he re-followed almost everyone), asking if he needed any help with the bedtime stuff.

He said sure, and the @bedtime script was born.

A few days later, he posted this tweet:
Good Morning! As you can see,  I am now a member of the blue team

And then:

what team are you on

And since I had just helped him out on the bedtime, he asked if I wanted to be part of this “thing” (whatever it was!). Of course I said no… YEA RIGHT!

Color Wars is running Rails, WordPress and come custom git magic. One of the other awesome things about this project is who else I’ve gotten to help at various parts:

This has been a very awesome experience, I’ve learned tons, and had some really cool conversations about really strange things :)

Average Rating: 4.5 out of 5 based on 253 user reviews.

Anil Dash is doing a bit of an experiment. He wanted to see if people would embed his content in their site. Not by copy & paste, but by an embed.

I think this is a really cool concept, and aligns nicely with tumblr’s tradition of re-blogging posts to add commentary and opinion. Let’s hope this takes off! Owning your own data FTW!

Average Rating: 5 out of 5 based on 269 user reviews.

Processing is a really cool language / environment for doing really cool programming projects. One of the things it does really well is graphics. I’ve been playing around with it on and off for a little while now, and here are two things I’ve managed to make.

Video Offset

Video offset in processing from kastner on Vimeo.

This was inspired by Run Lola Run on the IAC wall. Mine isn’t a million miles wide, but I really love the cool effects and patterns I get.

Here’s a link to the code for it. The hardest part was translating the video input from a one-dimensional array, to a 2d one.

Falling Balls

Balls falling in processing from kastner on Vimeo.

This was inspired by a few things – one of which was Mark Chadwick’sGraffiti Particles. Mine isn’t anywhere near his, but I think I kinda understand how he’s doing the camera (maybe?).

Here’s a link to the code for this one. The hardest part was realizing that I needed to push and pop the matrix INSIDE the loop!

I’m just getting started with processing, but looking at some of the things out there it reminds me of sitting at home watching the amazing stuff coming out of the Demoscene and feeling simultaneously inspired and crushed. This is my chance to make great computer graphics, and as long as I have time here and there to work on it, that’s just what I intend to do!

Average Rating: 4.8 out of 5 based on 277 user reviews.