Not that it should be too surprising to me, but (even as a long time Rubyist) I’m finding the Haskell posts on Slick or Slack to be the most beautiful so far. When I took my first look at Haskell years ago, I thought it was ugly. Every progressive year it strikes me as more and more beautiful.
Why am I not a Haskell programmer, then? More on this in an upcoming post.
In my previous post, I asked for examples of great Ruby code. I got emails, comments, instant messages, and twitter messages with suggestions. I’d still like more.
But one really cool suggestion came from an idea Bil Kleb and Peter Provost had. They proposed a Hot or Not -like site for code.
I thought that would be fun, so Bruce and I whipped something up in a couple of hours over the weekend: Slick or Slack?.

It’s not done yet, but we deployed it anyway. My experience helping Ze Frank with Color Wars 2008 has convinced me that deploying things that aren’t done is more often a good idea than not. If for nothing else that for mental health reasons.
What we want to do now is to start collecting potentially “Slick” code snippets. This could mean beautiful code, clever code, code which does something awesome, or whatever. You can also post code that sucks. We just need code to start the tallies running.
When you visit the site, you’ll be presented with two code samples, probably doing totally different things. They might even be in different languages. Your job is to choose the better of the two. If you can’t make up your mind, just hit refresh.
I doubt this is going to unearth great code in the same way that I doubt Hot or Not unearths great people. But I hope it will be fun to play with. It will probably be broken and we know it’s lacking some necessary features to make it more useful and/or fun. Suggestions are welcome. Just don’t take it too seriously.
Tonight, Rich, Marcel and I spoke at the DC Ruby Users Group. Instead of choosing a topic, preparing a set of slides, and droning on about something for an hour we decided to involve the group to help us answer a question. It’s a question I get a lot when I do training with The Pragmatic Studio: “Which Ruby projects should I look at to see examples of great Ruby code?”
I have my standard answers (I’m sure we all do), but two things occur to me about answering such a question. The first is that when asked a question like this, I have a gut reaction. There are names that spring immediately to mind. If I scrutinize these reflex reactions I realize that I haven’t really examined the code I’m thinking of in enough detail to call it great. So though I have some cursory knowledge that makes me pretty sure when I give my recommendations (I’m holding off on naming specifics so as to not influence your answer to this question), I’m not 100% sure which projects contain great Ruby code.
The second realization about this is that some of the names that spring to mind are based on potentially the wrong criteria. I, like all humans, am more likely to mention something popular than something obscure. There is also a Ruby community folklore. Some names are synonymous with “great”. But it’s just folklore. So the knee-jerk reactions are at risk of being heavily influenced by the Ruby popular culture. Looking at how successful popular culture is at picking great music, visual art, fiction, and other artistic mediums, it’s pretty clear that we shouldn’t trust pop culture when making decisions about which projects are composed of “great” code.
So we asked the DC RUG: “Who are the greatest Ruby programmers in the world?”
Then, all together, we looked at code written by the people they came up with.
Some of it was beautiful. Some of it was ugly.
We talked about what made some of it beautiful and some of it ugly. We talked about the importance of writing beautiful code. It was fun.
Anyway, I still don’t have a satisfactory list of great Ruby code. I’d like to build such a list. So, please leave a comment saying the name of an open source Ruby project you feel represents truly great Ruby code.
I’m always looking for ways to get humans together for meaningful (potentially lasting) interactions at our conferences. So we’re trying something new this year during the tutorial day. It happens on the first (or 0th?) day of the conference on purpose: so the work can continue for the rest of the conference. My hope is to bring project owners/committers together with aspiring contributors and bring more people into the fold of projects which need help. Think of it as a room full of code sprints happening all at once. Here’s the description:
Project Owners: Do you have a project you’d like to work with other people on? Maybe it’s an established Open Source project. Maybe it’s a new idea. Come find like-minded developers and spend the day hacking together.
Developers: Are you looking to get involved in an Open Source project but need a bootstrapping session to get you started? Looking for chances to meet other developers and establish collaborative working relationships? Looking to learn by collaborating with others? Come find a project and spend the day sitting side-by-side with one or more of its developers learning the ropes and contributing code.
RailsConf is the largest physical gathering of Ruby and Rails developers internationally. Let’s take advantage of all being in one place at the same time AND take the chance to give something back to the projects and community which we so greatly benefit from.
In the morning, project leaders and representatives will have a chance to make a short pitch for their projects and the work they hope to get done. For the rest of the day, groups will self-organize and write code! Roll up your sleeves and prepare to learn, teach, and most importantly, contribute.
Go to this page and add your project or idea to the list of projects likely to be active in the Code Drive.
I’m out in not-so-sunny Cupertino, CA with Dave teaching an introduction to Ruby course for a big company this week. Though I’d always rather be back home with Kelly, we’re having a great time out here. In addition to a lovely dinner with Laurent, Jordan, and Luke from Apple last night, I’ve been having a blast introducing a 15-person group to Ruby for the first time.
I do a lot of advanced level courses and Rails courses, but this one is rewarding in a different way: I’m reminded of how absolutely beautiful the Ruby language is. When you use a language every day it’s easy to forget the things about it that originally roped you in. I’m finding this experience to be an excellent way to relive that through the delighted looks on the faces of the students in this class.
Dave and I are doing this course together for the Pragmatic Studio later this month in Denver. If you or someone you know have been meaning to dig into Ruby, I invite you to come share the joy with us
Scanning through the videos this morning, I was reminded of what a great time I had at RailsConf. Planning is well underway for RailsConf 2008 (keep your eyes peeled for registration to open soon). An initial batch of proposals have been selected, and I’m already excited about the program this year.
The Rails community is maturing, and the level of proposed content has matured along with it. Expect more advanced content this year from a more experienced (obviously) group of practitioners.
Seeya there!
This has been a long time coming, and it is admittedly kind of arbitrary, but it feels good to see our little package manager growing up:
Macintosh-2:~ chad$ gem -v
1.0.0
Thanks to Eric for gradually taking the lead over the past year and putting the nail in a few of the long-standing TODO items for RubyGems.
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/284268
You may remember that I was working on Advanced Rails Recipes earlier this year. I’m not anymore. I’ve been over-committed and I finally decided to face facts and withdraw myself from the authoring process.
That’s OK though. Someone has pressed the “Kick Ass” button on the Mike Clark book-writing machine, and Advanced Rails Recipes has appeared in beta.
The book is a collection of recipes by Mike and top members of the Rails community. There is literally no one I trust more to put together timely, trustworthy advice on how to develop Rails applications right more than Mike. This one is a must-read, and beta is a great time to get in on the action in that it gives you a chance to make an impact on the final product.
The book is not yet complete, but it’s already worth the price.
There were more proposals for RailsConf this year than there were attendees at RubyConf 2006. This means two things:
1. The state of the Rails community has changed significantly in that it has grown and there is a larger subset reaching the expert level.
2. It’s going to take us a while to sort through all of these proposals and make selections. Apologies in advance.
It’s fun to watch the rush to be first to market with a new piece of open source functionality. You probably already know that Amazon released their SimpleDB this week. I was thinking we might whip up a Ruby wrapper but I knew if I just waited a day or so there would already be libraries available. Tonight I checked RubyForge and the three most recent projects are all SimpleDB wrappers:
It will be fun to see which one (or more?) of these gains and keeps mind share. Competition among open source projects is an interesting topic given the abstract nature of the stakes.
Sam Larbi is running a cool little contest over on his weblog. The idea is to try to create a competition on learning new programming language paradigms. This is obviously a topic that’s dear to me (he’s referencing my book), and I think it’s cool that Sam has turned it into a contest.
I also generally like the idea of taking some potentially valuable item that you haven’t used and throwing it onto the internet to promote learning, good will, fun, or whatever. When I get home I may go out into the garage and see what I can find :)
Today I installed Apple’s latest OS release: Leopard. One of the most exciting features for me as a Rubyist is the inclusion of a well-designed Ruby installation, complete with RubyGems and a bundle of pre-installed gems for the software I typically use as well as some of the Mac-specific gems most Rubyists would like to have (dnssd, rubycocoa, etc.)
Some of the gems shipped with Leopard are slightly out of date, as can be expected. But since they shipped the software as gems, updating Rails (for example) was as simple as ‘gem update rails’.
Apple has shipped Ruby as one of its Frameworks and has provided first-class integration with its development tools for the first time. They’ve been working with us in the community for nearly a year to get this right and it shows. Kudos to Apple and especially to Laurent Sansonetti and Jordan Hubbard for a job well done.
I can finally remove that extra non-Apple Ruby install I’ve been carrying around for years now and just use the Apple-supported Framework.
(FYI, Giles has completely jumped the shark on this one. Don’t let his poo-pooing worry you.)
When I was in middle school, my friends and I started a rock band. We picked a name; we had a logo. If we’d had money the next obvious step would have been to print band t-shirts. This all happened, of course, before we ever learned to play any relevant instruments (saxophone and bassoon don’t count).
For well over a year, I’ve been wearing a Scotland on Rails shirt. Scotland on Rails has a name, a logo, and t-shirts.
Now they’ve got a conference.
Organized in part by my good friend and big thinker, Alan C. Francis, Scotland on Rails is sure to be a great time. If you’re in or around the UK, I highly recommend putting it on your calendar (or at the very least considering a mouse pad or pair of boxers).
We’ve just opened RubyConf registration. There are more spots than last year, but it’s probably still going to sell out. I would book soon if I were you.