Thursday, June 25, 2009

Miniapp: My Blog's Going On Vacation

The latest bug with Blogger provided me with the excuse to make a fresh start. Will I take that bait? Maybe I will and maybe I won't. Either way, for my June miniapp I cooked up a new blog. My blog's going on vacation to a sunnier, warmer place called Nassau.

The code's on GitHub; it's a re-styled version of Adam Wiggins' Scanty. The biggest modification I made is that blog posts have no layout at all. The goal is a site like CSS Zen Garden, featuring lots of different looks and stylistic experiments. Whether I live up to my own challenge remains to be seen, but the platform now exists.

Tuesday, June 23, 2009

My Social Media Marketing Qualifications

The question came up recently: am I qualified to be a social media marketing consultant?

It's been years since I worked in marketing, but I believe the answer's yes.

First, google my first name.

If you count video results, I'm number seven on the page. If you don't, I'm number five. Either way, I'm on the first page and above the fold. I'm good at Google. But don't take my word for it - check out the inadvertent testimonial.

A lot of people are desperate for Google love, but the game is easy to win. All you do is produce a lot of good content. It's so easy that taking it seriously is impossible.

For example, I recently set out to teabag Proggit and Hacker News, the two big programmer news sites. I wrote a post called My Balls Are Fuzzy Today and urged people to upvote it - the only time I have ever urged anyone to upvote anything. "Vote for my balls!" I cried, but the people ignored me. My mission failed, but I tried again a little later, with What Killed Smalltalk: My Balls, and got a discussion of my scrotum on the top of both news sites.

Despite this cynicism, I love marketing. Most programmers hate marketing in all shapes and forms. I've got favorite marketing books, and I've written at least 20 blog posts on marketing and social media.

Marking Is Becoming Even More So
Internet Fame: The Voyeuristic Ouroboros
Least Advisable Prediction Ever
Geek Marketing: The Key To Making Money As A Programmer
Marketing On Twitter: Fail And Win
Tweet Bluffing
Remixes: Open Source Music Marketing
Zed Shaw's Marketing 101
Marketing Is Not Deceit
Jerry Springer For Programmers: Only A Matter Of Time
I'm Bad, I'm Nationwide: Job Security vs. Career Security
How To Get A Much Better Job
Does Seaside Have A Marketing Problem?
Seaside's Marketing Problem
Marketing And Leaders
What It's Like Being A Ruby Rock Star
Why Whuffie Is Complete Bullshit
Gary V On Web 2.0 Personal Marketing
Internet Famous Class

I was booked to give a talk on marketing for open source projects at ESUG this year, a Smalltalk conference in Europe.

All this demonstrates expertise in programmer marketing - but does it go beyond that? You need a certain amount of good marketing to make it in any creative field. This presentation on marketing yourself as a motion designer is almost word for word the same advice I would give for marketing yourself as a programmer. And there are a lot of programmers who draw fanboyism. To some extent, this kind of attention is just a side effect of writing good code.

The answer, however, is yes. My interest in marketing goes far beyond that.

For example, recently I had lunch with a friend, an Obie-winning actor, and we kicked around the idea of doing a Web show. I've been in acting classes for years; to this friend, I'm not a programmer per se, I'm an aspiring actor with an unusual day job. During the conversation we talked about strategies that worked for different Web shows. The main show I knew about was The Guild. Although I do follow podcasts and notice other shows, The Guild fascinates me. I've studied it, and I heard the screenwriter, star, and producer Felicia Day talk about it at a Web TV meetup in Los Angeles.

The face at the very top left of the picture is mine

Sitting down with an award-winning actor to talk about starting a Web show, with reference to in-depth strategy decisions of successful shows, is a normal Tuesday for me. That doesn't mean it's going to happen. That's not why I bring it up. I bring it up because most programmers can't say that.

Most programmers can't say that because this has nothing to do with being a programmer. My actor friend's perception about me is to some extent accurate. Looking at me as a programmer only gives you part of the picture. Likewise, looking at my blog as purely a programming blog would be a mistake. That's not really what my blog is about.

I've gotten great fan mail for years.

"You're the best thing going on the net right now...I spend my whole day waiting to read more articles on your blog."

A lot of the enthusiasm isn't about my code at all, but my writing. In addition to posts about code and marketing, I write futurism, science fiction, film criticism, and of course posts about social software and the business of online video.

Where many geeks have issues with their social skills, I won the Ruby Inside Top Presenter award in 2008. The presentation that won me this award received extraordinary accolades.

"This is hands down the best talk I have ever seen at a conference.

I don’t know if the feeling comes across on the video, but I have never seen the kind of reaction to a talk that Giles got to this talk at RubyFringe. The room was totally electric and he had a minute long standing ovation at the end of the talk. The hair was standing up on the back of my neck."

Please understand, I'm not even saying these perceptions mean something. I'm just saying that I was able to create them. Marketing is about creating perceptions in other people. I do my marketing through social media, and it works.

I'm definitely qualified to work as a social media marketing consultant. Whether I want to or not is a different question, but the question of my qualifications is easy to answer. The answer is YES.

Silvery Cinnamon: Motion Graphics Reel

The animated hand in this I actually drew by hand. I started out with 34 drawings of my hand, chose the 17 best/most continuous, and then traced them into Flash frame by frame. I had hoped to use tweening but it just couldn't handle the complexity of the lines. In this I also use Motion particles, AE's Particle Playground, and AE's Expressions, which allow you to control your animations with JavaScript embedded in After Effects. The music is by me.

High-quality Quicktime .mov here (67MB)

No Thirst Software Loves Tender

Kevin Hoctor explains why he loves ENTP's Tender.

It's only been a week of working with Tender and a few days of having it live for our customers to use, but I'm thrilled with it. The discussion forum is much more structured than our old Google Groups forum—we can mark issues as open or resolved, assign priority queues to issues, and, best of all, support emails go to the forum so they can't get lost in a cluttered inbox. It's not as large and in charge as FogBugz, but that's part of its appeal. We're even more committed to offering timely and effective support as our customer base continues to grow, and Tender will help us stay on top of our game. My next blog post will talk more about this customer support tool and why it fits No Thirst Software so well.

Thanks Kevin!

Saturday, June 20, 2009


Hollywood Isn't Scared Of Us (Or Is It?)

I built a popular video portal, along with a few other people, which TechCrunch aggressively predicted to fail. It went on to become incredibly successful, mainly due to its licensed content. I'd love to take credit but it really was the content, not the technology.

So I think there's a lot in this statement that arrogant geeks should wake up to:

Technophiles who think that the Internet is going to topple Hollywood studios, TV networks, and cable companies have their heads up their asses. That's what the analysts at Bernstein Research say -- in more polite language, of course -- inside the 80-page transcript out today from their confab this past Monday called "Web Video... Friend or Foe And To Whom?" The answer, it seems, is that Big Media can put the brakes on progress long enough to figure out how they’ll get paid.

However, I know a lot of people in entertainment, and they're all aware that the big scary monster which devoured music and newspapers is now eyeing them hungrily. Production slowed down for the last two years - between the writers and the actors, nobody's had any work, and the reason was negotiations with the studios about whether or not creators would get paid at all for content that went online. Technology's going to change things in Los Angeles, and nobody really knows yet how.

Novation MIDI AutoMap For iPhone

Friday, June 19, 2009

Tweet Bluffing

"People are calling it Tweet bluffing," Sebok says. "It's a game within a game situation and it's effected the way the games go. It's enabling the fans at home to climb into the minds of the players but if they are smart they know they can climb into each others' minds too: to see who tilts, who rolls with the bad situations and who flies off the handle. Players spread misinformation like 'I'm going to play tight' when they are really going to play loose. We do that verbally but since Twitter is written, it seems more believable. But it's just the beginning of all this, it's blown up in last 2 or 3 months."

How Twitter Is Changing The World Of Professional Poker

Sebok's company doesn't just point its audience at players' Tweets, though. Simple aggregators of messages from players are available elsewhere. His Poker Road Nation site adds several layers of value on top of the flow of messages. It marks up through hashtags and manual categorization each tournament and game for sorting. It shows threaded conversations. It lets site visitors login to Twitter and post live replies to the players right on the Poker Road Nation site. "Inline replies is the most exciting part to me." Sebok says. Soon, the site will add inline photo display and an in-house video hosting and embedding feature. It's an operation so full-featured that anyone interested in Twitter aggregation can appreciate it, whether you're a poker fan or not.

Ironic And Not Ironic

This is not ironic. This is just typing fail.

This is ironic.

Tuesday, June 16, 2009

No Tech Confs For Me In 2009

I cancelled all my upcoming conference presentations.

I had heart surgery twice this year, and once in 2007. I have to make sure it doesn't happen again. I've done the research and it turns out the surgery I received was unnecessary. Not only that, it increases the risk of heart attack. I'm going to look into filing a malpractice suit, but it might not make a difference: this surgery is the norm for my symptoms. (And my symptoms were certainly serious.)

It might shock people to realize this, but there is very little scientific research done to validate surgical procedures. It makes perfect sense if you ask yourself where a researcher would find a valid control group. You would need a group of people diagnosed with identical illnesses, some of whom chose not to receive surgery. Identical illnesses are themselves quite rare. People who choose not to receive surgery are also quite rare.

Fairness to the doctors who performed this unnecessary, endangering surgery on me aside, however, I still need to avoid having any more unnecessary, endangering surgery. And that means I have to avoid any more of these very serious symptoms. I have a solution for this, but its starting assumption is that these doctors must have been idiots. It goes on from there to get even more controversial.

I've discovered that sharing my more controversial opinions leads to all kinds of tweets and e-mails, and "all kinds of tweets and e-mails" includes "idiotic tweets and e-mails" because "all kinds" means all kinds and "idiotic" is a kind. So I'm going to keep silent because of all the idiots who say stupid things to me. I would love to say "you know who you are", but that's the whole problem with idiots in the first place, they never do. Rather than opening up my unusual methods for public debate, I'm going to wait until I have some extraordinary results to report and let you know then.

One last thing: I will be going to at least one conference this year. It isn't a tech conference. It's a conference for professional artists working in the entertainment industry. It's in Los Angeles, where I live, so it doesn't require a plane trip, it doesn't threaten to undermine my very strict dietary regimen, and it isn't in the reserved block of time (at least six weeks) during which, for medical reasons, I won't be working or online.

I'm looking forward to this immensely, but I'm very disappointed to miss the confs I would have been speaking at. I would have gone to Toronto, France, and Hawaii. I would have squeezed in visits with family in both Toronto and England, I might have found the set for LOST while in Hawaii, and I would have very much enjoyed performing live. Greg Borenstein and I hatched up an amazing plan for tech-assisted live music, and Greg will still be bringing his half of it to Future Ruby. I wish I could be there to check it out.

Automated Activism: DDOS Iranian Propaganda

Update: ignore this, read this instead.

This is good idea:

But I don't have watch on my box (which means most of my readers who are on OS X won't have it either).

Here's what I'm using instead:

while(true) do
  system "curl"

Monday, June 15, 2009

Motion Graphics: John Warwicker Interview

One of my favorite video artists of all time.

DrumChuk: Wii Drumming With Ruby

I got an awesome e-mail.


I just wanted to thank you for all the Ruby/CoreMIDI hooks you've written and been involved with surrounding Archaeopteryx, as well as your late-night video demonstrating launching BoingBoing with a wiimote, which gave me probable cause to believe that a Ruby-based real-time wii instrument was possible.

I used your code as a starting point to build a Wii drum controller called DrumChuk, which is on GitHub here:

and there's a video of it in action here:

The goal was to make something really musical and expressive that didn't involve pushing different buttons to differentiate between notes -- DrumChuk uses the angle you hold your hand at when striking to map as many as 6 notes onto each hand. If you use buttons, you can get even more, making for a pretty big kit.

A couple of ghetto improvements I added to midi_in.rb to make it more manageable as a real-time instrument were some more detailed parsing of the MIDI stream from rbcoremidi, which often returns more than one MIDI frame per pull (which might've been the root cause of the occasional button misses you were experiencing in the video), as well as a timer to keep it from slamming the processor in the event loop (it's still plenty responsive, though).

Anyway, cheers.

Saturday, June 13, 2009

Jewish Readers, Your Attention Please

I have discovered an app called iPlotz.

I swear to God it's real.


this() {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'

alias up="git push origin `this`"

Update: put this in your .profile, but don't expect up to work from there. You have to run it from within the relevant directory. The only way around it I can think of at the moment is to set up some kind of auto-aliasing in the prompt.

5th Period Study Hall Graf

Friday, June 12, 2009

After Effects: Old Work (And New May Be Coming)

I'm getting a separate machine for video pretty soon. I'm very excited about it. It's last year's top-of-the-line iMac, and it'll come with all kinds of video editing software, including Adobe After Effects.

I spent a lot of time in After Effects five or six years ago. It seems kinda cheesy to me now, but at the time, I was very proud of this piece:

I also like this one:

To make this, I drew 34 pictures of my hand in pencil, and then traced over 17 of them in Flash. I had wanted to use all 34, but couldn't for some reason. I attempted to use Flash tweening, but it couldn't handle the job. Instead, I just hand-morphed each line somehow. I don't recall all of the details, but I remember it was a lot of work.

Actually, it's funny. I had the same experience with this hand animation that I had with Archaeopteryx and Towelie. I had a specific end in mind, and I had to try several different approaches before I found the one that worked.

Thursday, June 11, 2009

The Terrible Thing Of Alpha-9

By Jake Armstrong

Vim Syntax Colors vs. Git Commit Message Format

This happens to me all the time.

Doug McInnes clued me in to the fact that there is a reason for this apparent madness.

Update: if this really bothers you (like it does me), you can kill it dead by zapping this file:


Power users only. Don't blame me if it makes your computer explode. That was my secret plan all along.

Wednesday, June 10, 2009

Deploying A Compojure "Hello World"

Tonight I got "Hello World" running on Compojure on my Slicehost slice. I modified the code to say "Clojure" instead of "Hello World", but otherwise it was straight cut and paste from the Compojure docs.

Deploying it was an epic, horrifying pain in the ass, and I would not attempt it again for love nor money. However, bear in mind, I only know the absolute basics of Apache config. I'm sure the problem would have been simple to an Apache expert, but I am not one.

Anyway, after wrestling with these horrible unreadable config files for hours, I decided to just say fuck it and I figured out a way to cheat. The config on my Slicehost blocks all incoming connections except for port 80 and port 443. I just opened up port 8080 to incoming connections and set it up to bypass Apache altogether.

In terms of actually building and uploading the app, it was quite painless. The pain only came in when Apache got involved. I said I wouldn't do it again for love nor money, but that really only applies to wrestling with Apache. The Compojure part was fun.

The Real Reason "I'd Just Google It" Is Not An Acceptable Answer To An Interview Question

It's rude. It means you're calling attention to the fact that the interviewer just asked you a stupid question. If they're that dumb, don't tell them you'd just Google it. Just apologize politely, say you have to go to the bathroom, and then run like hell out of the building and never look back.

Vim OS X Clojure Syntax Highlighting

A lot of people seem to have had trouble with this; the creator of vimclojure said he got it running with no problems on his OS X box with the default vim 7.2.2 install, but so many other people have had problems with it that he recommends using MacVim instead. I don't enjoy MacVim as much as regular old command-line vim, so I set about getting it working on my box.

It seemed at first like a lot of effort, but in fact it was easy. First, download vimclojure. Next install some files, and edit your machine's main vimrc.

Your vimrc should look something like this:

Actually, that's not quite right. The line that says filetype plugin on should say filetype plugin indent on. Anyway, you can get all this from the vimclojure documentation - the one piece that's missing is the final line:

au BufRead,BufNewFile *.clj set filetype=clojure

That's the line that tells vim that *.clj files are Clojure files.

I got interested to solve this problem after skimming Matt Sears' Clojure links roundup. Check it out for more Clojure info. There are syntax highlighters for other editors as well. One last bonus tidbit, setting expandtab and tabstop=2 allows you to use spaces instead of tabs, just like in TextMate.

iPhone User Interface Design Stencil

Get it before it sells out (again).

Tuesday, June 9, 2009

Don't Be Evil

Or dicks.

Monday, June 8, 2009

IR_Black: vim Color Scheme (My Fork)

I forked the vim color scheme IR_Black so I could port it across my Macs with some very minor modifications intact.

KJ Sawka's Drumbanger For iPhone

Sunday, June 7, 2009

Future Ruby: Mobile Orchard iPhone Class

If you're headed to Future Ruby, I hope you get there a day or so early, like me, to go to the iPhone class that Dan Grigsby from Mobile Orchard will be teaching.

Spend the Thursday and Friday before the conference learning to build polished, ready-to-ship iPhone applications. Dan Grigsby, a speaker at RubyFringe last year, will be teaching a discounted, adapted-for-Rubyists version of Mobile Orchard's renowned beginning iPhone programming class.

Walk in Thursday morning with no previous Objective-C, Cocoa, or iPhone development experience; walk out - and over to FAILcamp - having built apps that incorporate location, motion and email. On Friday you’ll build table/ navigation style apps (e.g., Apple's Mail and Contacts app) with persistent data storage, hybrid web/native apps, apps that consume ActiveResource RESTful APIs, and more.

The class mixes practical project examples with Objective-C and Cocoa Touch fundamentals like memory management, protocols and delegates, properties and categories.

A lot of people are like, woah, this is a recession, I'm broke. But if you're headed to Future Ruby in the first place, you're not that broke. Also: keep in mind that it's during a recession that competitive advantages become more crucial, because people are competing harder; and that training becomes a bigger advantage, because less people are taking risks of any kind - even intelligent, calculated risks like getting the best training out there in the hottest new field of development which currently exists.

The Pragmatic Studio's iPhone class costs $2195. This class usually runs $1200 - and the special price for the Future Ruby edition is only $699. Seriously, you should go to this class. I've seen Dan speak and he's very good. Sign up and join me there.

ENIAC Originators' Descendants: Terrible Misfortune

Pete Forde says:

I've known the family in this article well for a decade; one sister I met at a 2600 conference and became my roommate — twice — and the other joined me at RailsConf last year and made me promise not to tell anyone about her grandparents.

Of key interest from the article:

"For the last year of her life, Moos' mother allowed Eva to skip her mortgage payments when money was tight, which was nearly always. The mother, Kathleen Mauchly Antonelli, had programmed the first electronic computer, ENIAC, which her first husband and Eva's father, John Mauchly, had developed with his partner, J. Presper Eckert."

So, the direct descendants of some of the key figures in the origin of digital computing are getting fucked by the banks, the day after their autistic brother drowned in the bathtub. It's an emotional, sad story and their outlook is extremely bleak.

I'm really hoping that this story can make make the rounds in the hope that someone might "do something".

The Incredible Pop Will Eat Itself Revolution Continues

If you were paying attention to 2009 back in 1989, you remember PWEI.

Adbusters says that the future they predicted is here.

Saturday, June 6, 2009

Find Your Ruby Gems Path

ruby -r rubygems -e "p Gem.path"

Because different systems put it in different places.

Update: John Dewey clued me in - you can also get it via

gem env

Tuesday, June 2, 2009