Ruby Supercomputing: Using The GPU For Massive Performance Speedup

Confreaks just released a Ruby/JRuby GPU presentation of mine from Mountain West Ruby Conference 2011 in Salt Lake City, Utah. Slightly stale, but all still very relevant to HPC today!


3D OSX Applications With Ruby-Processing Screencast

A two-part screencast series demonstating two different 3D ruby-processing applications. A slide presentation from 2009 created for the Phoenix Ruby Group is also attached as bonus material. Enjoy!

Part 1: Starfield

Demo of a 3D starfield simulation written in pure Ruby, running on the JRuby runtime as a nicely packaged .app program for Mac OS X. (Runs on Snow Leopard and Leopard.)

Part 2: Twiverse

3D Twitter client written in pure Ruby, running on the JRuby runtime as a nicely packaged .app program for Mac OS X. (Runs on Snow Leopard and Leopard.)

Slide Show


How To Prepare For Ignite

ignite_phoenixI recently had the pleasure of speaking at Ignite Phoenix 4, and thought I’d share my perspective to those presenting in the future.

See, all my life I’ve been in performing musical groups–rock bands, solos with larger concert bands, marching bands etc.–so despite being introverted to a fault, I’m not easily intimidated by anything in the “performing arts” category, and am usually up for giving things the old college try. Within the past couple years I’ve become accustomed to speaking regularly at various city events, local tech groups, conferences etc., so I initially shrugged off the preparation as something I could bust out in an hour or two over a Heineken… or two.

I was wrong.

Now, I’m not dumping this information on you because you need to know my life history, but to strongly emphasize that even if you took Public Speaking in college, have performed literally hundreds of times in public, and have plenty of real-world speaking experience…

Preparing for Ignite is different.

It’s a wonderfully unique and fun experience, but I put more effort into my five minutes of Sun Tzu: The Art of…Business? than I usually do for 30-45 minutes of less creative informational content. Let’s look at why…

(1) Delivery timing is your biggest risk of failure.

Ignite fully automates the progression of slides; you cannot control advancement to give yourself even +/- 1 second. Also, for Phoenix at least, there’s neither a warning for how much time remains on the current slide, nor a preview of the next slide. If you’re accustomed to board-room style speaking with a forgiving remote, secondary screen full of notes/widgets, and 5-10 minutes of “padding” at the end, the Ignite format is a cold glass of water to the nether regions.

With a remote, keeping your verbal momentum lined up with slide advancement is relatively easy. You know exactly when your verbal punchline is going to come, and just hit the remote a split second before you say it. But in Ignite, the only way to get your voice and slides anywhere even remotely in the same synchronization ballpark is to practice the bloody hell out of it way ahead of time.

And when you’re done practicing, take a break and practice some more. Practice going slower and having to catch up. Practice going too fast and having to ad lib a few extra sentences here and there to fill “dead air”. Practice without any “next slide” or timing aids. Lather. Rinse. Repeat.

This is not to say that you should script the entire thing. Scripting sounds unnatural and dull. You should, however, know the subject matter inside and out, and know the outline and “story arc” of the presentation so that when you stumble on words or get out of sync, you’ll be able to recover.

For the audiences standpoint, your level of preparation will be abundantly clear. It’s obvious who didn’t have a verbal outline prepared; who didn’t practice for pacing; who did prepare but can’t handle being over/under time; how generally hard it is to time yourself versus a computer.

And much of this practicing should occur before your slides are due.

(2) Your slides need to be completed waaaay in advance.

Ignite isn’t the only event that requires final decks to be submitted in advance, but I know that many of you are in the habit of staying up ’til 4am day-of putting the (hopefully) finishing touches on slides. You can’t do that. The Ignite superheros need your slides early to prepare their technical voodoo, and asking them to update a few slides at the last minute would be very, very lame of you. Getting your slides prepared and finalized early is critical since you can’t practice delivery without them, and once they’re submitted you should assume that you can’t change them.

Get peer feedback before you submit your slides. My thanks goes out to Erica, Ben and Marc at OpenRain for providing the “you’re trying to say way too freakin’ much” feedback … it made the end result much better than it would have otherwise been. Peer review is always difficult to do, but discovering why you’re epically fail-sucking is the only gateway to improvement.

(3) You don’t get to rehearse in the venue.

The Ignite (Phoenix) folks want to keep your delivery fresh, natural, and full of adrenaline to showcase your passion. This is a good thing. Just be aware that you probably can’t walk out on stage beforehand for a quick run-through by yourself.

(4) Your bar is high.

In general public speaking, the audiences wants you to succeed. And when you’re speaking to an audience that is present for your message–such as Ignite–they’ve already built expectations of how awesome your message and delivery will be. If the message(s) couldn’t sell, there wouldn’t be an audience. You are expected to be awesome.

I’ve yet to meet anyone that says “Ignite sucks”, but have heard plenty of “Oh, it was awesome, but remember that one guy/gal? He/She was horrible.” Don’t be that guy/gal whose idea of originality is to do zero preparation and just “wing it” or divert from the slides in a otherwise distracting, unprofessional mess. People come to see great ideas from passionate, knowledgeable people, and it’s going to take some work to get that across in Ignite’s concise format.

Ignite preparation checklist. (Sorted by due date.)

  1. Well thought out proposal submitted.
  2. Talk accepted.
  3. Slide draft and verbal outline complete.
  4. Peer rehearsal and feedback.
  5. Adjust.
  6. Final sanity check.
  7. Submit final slides.
  8. Practice.
  9. Sit in parking lot for 15 minutes before event practicing by yourself. (Strange looks from passers by expected!)
  10. Be excellent.

You have the idea and the passion. Now go show us! (Just keep it brief.)


Presenting At Phoenix Ruby Monday, February 9th

I’ll be giving a technical presentation to the Phoenix Ruby User Group on Monday, February 9th at 6:30pm. The topic will be using logical programming Prolog concepts within the object-oriented Ruby programming language using the ruby_prolog gem. Attendance is free and open!


Book Review: slide:ology


I recently received a review copy of slide:ology – The art and science of creating great presentations by Nancy Duarte, published by O’Reilly Media. I’m consciously making an effort to increase my frequency of speaking engagements, so I was thrilled to see a modern text on visual aids from a heavy usability-oriented angle. I’ve read the first two chapters so far and skimmed the majority of the remainder.

slide:ology is cleverly designed to read and flow like a presentation itself, although the content is far more in depth than an ordinary slide deck. Each of the 275 pages is a pleasure to look at, and the individual page designs themselves provide a great deal of inspiration. I’m particularly thrilled to see such creative use of negative space and negative geometry in many of the designs. Many texts on marketing effectively use the exact opposite approach.


  • Visually inspirational. Tons of great ideal for your next keynote.
  • Useful outside of the speaking domain. Many of the design ideas can be applied to print media and web design as well.
  • Good copy which is brief and easy to follow.
  • Reasonably priced.
  • A great coffee table/break room book.


  • You may have to implement many of these designs yourself. I’d easily pay an extra $5 for an optional download of Keynote templates ready to go, as well as the raw graphics files used in production.
  • A slightly awkward print format. I understand why, but it doesn’t fit as well on the shelf as I’d life.

Overall, slide:ology is a great little piece of speaking inspiration by Nancy Duarte. Great job! (I expect more like this.)

Buy slide:ology here.

computer personal

Presenting At September 2008 Phoenix Ruby Users Group

I’ll be presenting at the September 2008 Phoenix Ruby Users Group on Monday, September 8th, covering development of Ruby peer-to-peer applications using OpenRain‘s latest gem release, Journeta. Topics will include Ruby’s threading model, basic networking review, Journeta usage, and live demos. 6:30PM, here.

[Location Details] [PRUG Google Group]

See you there!


Featured In Rubyology Podcast #48

The talk I gave at yesterday’s Phoenix Rails meeting will be featured in Rubyology Podcast #48, courtesy of Chris Matthieu. Thanks for the effort and kind words! The demo portion at the end got cut out unfortunately, but the meat of the technical discussion is available for your listening pleasure.
Slides: Keynote PDF

Listen Online or Subscribe on iTunes


Subversion For SCM Slides

I gave a presentation to Arizona’s ASULUG/PLUG yesterday on using subversion for software configuration management. Raw slides: Keynote PDF