I’m finishing up O’Reilly’s Rails Cookbook and wanted to get another round of technical reviewers involved. Please contact me if you’re interested. Ideally your Rails skill level would be intermediate to advanced.

I’m finishing up O’Reilly’s Rails Cookbook and wanted to get another round of technical reviewers involved. Please contact me if you’re interested. Ideally your Rails skill level would be intermediate to advanced.
I’ve been reading Ola Bini’s blog recently, and I’m really impressed with what I’m seeing there. Over the last three days, he’s managed four solid posts, including two that really stood out to me.
MetaProgramming Refactoring is a great piece on the refactorings that could be cataloged around Metaprogramming. He uses Extract Code Template as an extended example. It’s a good read, and a better idea. I’d love to see this get some traction — no matter what mjd thinks of patterns.
Ola also wrote about the power of Ruby in The limits of power: What Lisp can do but Ruby can’t. In this case he jumps off from Why Ruby is an acceptable LISP, and talks about how LISP’s syntaxlessness (how’s that for a word?) enables extra capabilities in a couple of edge cases.
Take a few minutes and go check out his blog. You won’t be disappointed.
Conscientious ruby blogger Pat Eyler is doing wickedly good interviews with Ruby personalities at least once a month and this month doesn’t disappoint in his conversation with Leonard Richardson author of O’Reilly’s Ruby Cookbook (which is tucked away in a glorious corner of my desk right now).
The other day, my PowerBook’s drive croaked and I was given a loaner machine (one of Tim’s old ones; keys worn down, no battery, etc.). Normally I use Panther at work but this loaner came with Tiger.
The first thing I noticed was how slow iTerm (version 0.8.2) runs under Tiger. This is pretty much a show-stopper in my world. I guess I should explain why. For me, the idea of going back to a terminal without tabs would be like using Firefox with a new window for each page!
I confirmed the slowness with other developers at work using it and Tiger. They all had various solutions, including just using a dozen Terminal.app windows instead. I started digging into the iTerm project to see if development was still active. I hadn’t noticed much action since the release of 0.8.2. This was Monday, and the very next day I saw this on the iTerm project page (http://iterm.sourceforge.net/):
New Look 9/12/2006
We are experimenting with a new tab control (PSMTabBarControl) that can mimic Safari-like tabs. Download the binary build from the latest CVS and check it out.
It certainly looks like these guys (Fabian and Ujwal) aren’t bored with the project just yet. I grabbed the latest source from CVS to have a look. You should do the same and help them test it. Download the project source with this:
cvs -z3 -d:pserver:anonymous@iterm.cvs.sourceforge.net:/cvsroot/iterm co -P iTerm
or just grab the binary build from the latest CVS.
I’m running it now and the result is good: I appears the memory leaks are cleaned up and I can fly around vim and the shell like I own the place. Also, check out the new Safari-like tabs:

Fabian and Ujwal: Thanks so much for continued development of this great tool.
In January, being inspired by Simon Willison, I came up with a combined method which would be the answer to my days of entering in dates through drop down selections .
![]()
We use common terms in english to express how we identify a date coming up, or a date in the past. Such as “Next Tuesday”, “Last Month”, or even as simple as “Friday”. We clearly know which date that identifies, but until now, a computer had no idea, as far as forms were concerned.
We have in the past seen date libraries such as RUNT, and the new Chronic library for Ruby directly, but never has there been a way to enter these expressions through a form.
The solution was to be elegant, and intuitive. To be able to select a date, by entering in a grammatical term such as “Tuesday”, “14th of February”, or even a regular binary date such as “2006-12-02″ or “10-24-2006″ and all would be well as far as the input would be concerned. Ideally, the form should be able to be a universal translator to dates. Allowing the input of any expression, and outputting whatever the database expects.

To add to the elegance, the JSCalendar was also to be integrated. So when you found yourself looking for a specific date, one which no expression would be able to match (yet), then you directly choose what you want from a handy DHTML calendar.
So, DateBocks was born. The culmination of a DHTML calendar, and most importantly with the ability to enter in gramatical expressions for the date selection.
I invite you to try it out on the live demo and see for yourself just how useful this tool really is. And hopefully, you may very well find yourself using it or wishing you were using it - whenever you enter a date.
It took 18 months from inception, a lot of hard work from volunteers (and it almost died a couple times), but the new and completely revamped Ruby web site is now live (there is also a Japanese version)!. There is a page on the new web site that acknowledges the hard work from the primary contributors, you can find it here .
There were many people who made significant contributions towards making the new Ruby web site a reality, and I don’t mean to marginalize their efforts. But I do think that two people deserve special recognition because without them the whole effort might have either died or been delayed another year.
I’d like to give special thanks to John Long. John took a couple months out of his life to work fulltime (without pay) on implementing the design that had been hammered out in the previous months. During this time John wrote the Radiant CMS (in Ruby on Rails) specifically for the Ruby web site, and then open sourced the project. If not for John’s willingness to do this, the whole project could easily have died from neglect.
After John had finished implementing the new Ruby web site, there was still the unglamorous task of converting all of the content from the old site, and then rewriting and reorganizing much of it. I want to give special thanks to James Edward Gray II for stepping up and managing this process (he actually did a large percentage of the work, as well). Without James, it could easily have taken another year to get the content in shape.
Please go read the announcement page to see who else was instrumental in this effort.
Finally, I’d like to thank Yukihiro “Matz” Matsumoto and Shugo Maeda for having enough faith in us in the beginning to tell us that “if we build it, they would come”!
The main Ruby website has been updated. It’s much better than it used to be and is much more readable. It’s not perfect, and it’s not going to please everyone, but it will be an evolving site. As James Gray (part of the Visual Identity Team formed last year) put it, sometimes decisions need to be made or no decision is ever made.
Congratulations to the visual identity team for their work and especially to the makers of the CMS that now lives behind the website.
Go see it: http://www.ruby-lang.org/.
[EDIT 2006.10.02: Comments have been disabled due to spam attacks. -az]
This is big news — Sun, while in the midst of reducing its workforce, has hired JRuby developers Charles Nutter and Thomas Enebo. It appears that this was the doing of Tim Bray. They will be paid to bring JRuby to a 1.0 status. This is something I hadn’t expected and I think my jaw is laying on the floor! Anyway, you can read all about in Tim’s blog post.
UPDATE: You should also read Charles Nutter’s blog post on this. Besides his perspective on the deal, he is also maintaining a list of links to major news reports on this.
I love the fact that RubyForge is available for us. It’s one resource that almost every Ruby developer working on free software is bound to need. One thing that I don’t like is how we pull in the GForge juggernaut for projects that often consist of one or two files.
If you look around RubyForge, you’ll notice that many projects have 10 tabs on their project page: Summary, Forums, Tracker, Lists, Tasks, Docs, Surveys, News, SCM and Files. While in theory this is a great idea, it’s rare for a developer to want to use GForge for all 10 of those things. Today I finally decided to poke through the admin interface and find the “Public Information” section. All of these things can easily be hidden.
As I poke around RubyForge, I do see I might be a little late to the cleanup party. The Rails project on rubyforge is blissfully barren, and many other popular libraries have done this as well. But as a word to those who are still showing ten tabs and using two, tweak your UI. It’s better to have a user email you and ask you where your mailing list is than it is for them to post on a forum that you never knew existed and not get an answer.
Just hoping to bring a little zen to RubyForge, and to never see this message again:
“This project has no visible documents”
I was going to write some more about DSLs, but I realized I had something more important to say. And nowhere near as verbose.
Lucas Carlson (author of the Ruby Cookbook) has been doing some great stuff. Check out starfish. It’s a simple, easy-to-use, implementation of Google’s MapReduce for Ruby. It’s available as a Gem, so just gem install starfish and you’re ready.
One of the ideas that came up on the Ruby web page redesign list was a rotating set of application and library spotlights. The idea didn’t take root, but Martin DeMello produced this spotlight on glark, which I’m posting here with his permission.
I’ve often joked that the ruby community seems to produce far more libraries than it does actual applications. One of my favourite exceptions is glark, a command line utility that does everything you’ve always wished grep did, and some things you might not even have thought to wish for.
The glark project page introduces it as
A replacement for (or supplement to) the grep family, glark offers: Perl compatible regular expressions, highlighting of matches, context around matches, complex expressions (“and'’ and “or'’), and automatic exclusion of non-text files.
Even with just the first of these features, glark would have been invaluable — indeed, the majority of the time, I use it as nothing more than a PCRE-enabled grep. However, that’s definitely not all there is to it - glark has a plethora of features that I might not use every day, but which are extremely handy when I do need them. Here’s a quick look at some of the more useful ones.