Tuesday, October 16, 2007

Art in Programming

Andy and I gave a talk a JAOO a few years back called The Art n Programming. Since then, I’ve been giving variants around the world, talking about the ways in which developers can learn from artists (and, along the way, how we should avoid the false dichotomy of art vs. engineering).




David Troy came up to me after and said that he’d heard that the Museum of Modern Art in New York might be featuring two of his Rails applications in an exhibition.


Now it’s official: Twittervision and Flickrvision will be on display next year.


In his blog announcement, David says:


Today, creativity and imagination (what some folks are calling the right brain) are becoming the key drivers of software and design. With imagination, we can see around the corners of today’s most pressing challenges. While technical skill is certainly valuable, if it’s applied to the wrong problems, it’s wasted effort.

Creativity, imagination, and artistry help us identify the areas where we should put our efforts. They help us see things in new ways.




Hear hear! I like to think of it as bringing balance back to a process that for too long has been seen as some poor bastard child of mathematics and engineering.


Software development is neither. Nor is it art. It’s just software development. People who look for the “software is like xxx" analogies are missing the point. Software develpment is like software development. Let’s decide what works for us, and have fun while doing it.



Wednesday, August 29, 2007

Superators: neat Ruby hack

imageImage stolen from jicksta.com

So, I’m not sure if Jay Phillips (of Adhearsion fame) is trying to annoy the purists with a remarkably Perlish hack in Ruby. I just know that his superators gem is a clever bit of pure Ruby code that allows you to apparently define new infix operators in Ruby programs. Imagine the joy of being able to write


a /~ b

and


rocket <=- fuel

You can with superators:



require 'rubygems'
require 'superators'

class String
superator "<=-" do |arg|
self << arg.upcase
end
end

Is this a good idea? I don’t know. I can see that it would have been useful in some DSLs that I’ve written. But I do think that it’s a wonderfully clever implementation (it doesn’t do anything nasty to the interpreter–it simply intercepts built-in operators (such as <<= and -) in my example above. And that’s what makes it great. Every now and then, just when you think you know Ruby. someone comes up with something—such as symbol.to_proc or superators—that makes you go “oh!.”


Every long-lasting relationship needs the occasional surprise to keep it interesting and fun. This kind of hack is one of the reasons I love Ruby.

Sunday, August 12, 2007

Possibly my favorite Rake target

rake gerbils:deploy


Cry “Havoc!” and let slip the rodents of PDF generation.

Saturday, June 23, 2007





Riding the elevator up to my room in a Tokyo hotel, I glanced at a poster on the side wall and had to do a double take. Is it just me, or does this bear an uncanny resemblance to someone we know…?

Monday, May 21, 2007

Paying Back

$33,000


That’s how much was raised in charitable donations during the course of this weekend’s RailsConf.


It started with the Rails Guidebook. This was a pre-conference all-day tutorial intended to bring people up to speed in Rails, and to point them towards interesting talks. We waived the fee, and asked for a minimum donation of $75 from each attendee. The conference organizers graciously donated the room and AV support. That event raised $12,000.


Then Chad Fowler took it to the next level. During his conference introduction the next day, he threw down the gauntlet. As a result, attendees continued to give.


The Challenge


So the Rails Community has shown what’s possible. Let’s not let it stop there. Everyone in our industry is privileged; we’re all way better off than the folks being helped by these charities. So let’s take this up to the next level. Let’s see if we can make all industry conferences into fund raising events. It’s not hard:



  • If you run a conference, set up a charitable giving site and advertise it in the program and during the event. (The Pragmatic Studio used JustGive). Sell off extra T-Shirts (the way O’Reilly did during RailsConf) and donate the proceeds.


    Consider running a pre-conference Guidebook session. Attendees find them really useful, they have a small marginal cost, and they raise a lot of money. Your speakers will be keen to help out.




  • If you are speaking at a conference, consider donating your fee to charity. Invite attendees to contribute too. If the conference isn’t planning a charitable tie-in, push them to experiment with one. The overhead is low, and the payback is great.




  • If you’re attending a conference that isn’t offering a charitable tie-in, ask them why not. Point them to this blog post and to Mike Clark’s description of RailsConf. Tell the organizers that they can contact me if they’d like more details.



Just imagine the difference we could make if, as an industry, we turned each of these conferences into a chance to raise much needed money for worthy charities. Imagine if, rather than getting yet one more burlap bag with a sponsor’s name on it, you instead got a slip of paper saying that the price of that bag was being used to buy vaccine for 5 kids, or a book for a literacy project. Imagine what could happen if a conference with 5,000 attendees raised just $20 per attendee. Then imagine $50, or $100. It starts to get serious.


Let’s start paying back.