Office Renovation Update #1
posted by pete on January 30th, 2008
Anthony and I have been working closely with Christopher Schutt of Thirst on the new Unspace office. We took our time planning, and now it’s go time. We lucked out with Christopher; he really gets us and what we’re all about. The space will be functional but full of character.

Hampton is a huge proponent of chalkboards. Right now there are several layers of diagrams on most of the blank walls in the office; we keep painting over it, then he draws on it. The obvious solution is to use chalkboard paint on some of the key walls to keep our boy genius in his Good Will Hunting place.

We’ve removed all of the existing lights and fans, and in their place will be a row of seven gorgeous 1940’s era bulbous glass fixtures with sunlight bulbs in them. In the meantime, it’s getting dark really early at Unspace.

We are putting a lot of work into the entry area, as previously the first impression someone would get walking in was that they were in someone’s kitchen. We’ve dropped the ceiling and erected a notched divider wall that will have our logo and lights on it. The closet is coming out, and the stairs/banister are all receiving love. We have a really great chair for this new area, too. It’s orange and made of wood. (You’ll see, soon.)

The “lounge” is currently the staging area for all of the work in progress, with lots of boxes and junk everywhere. It’s very Holmes on Homes at the moment. It’s also the temporary home of the latest addition to the Unspace family, a Black Knight pinball machine.
Scoped Struct: Feel the Tingle
posted by pete on January 29th, 2008
Unspace’s own Mike Ferrier has a gem announcement to make. Scoped Struct is a delicious morsel of meta-programming magic designed to help you organize the functionality of Ruby classes. You can now provide access to a group of related methods using association-style syntax.
Mike uses the example of a class representing an NFL player to illustrate the concept. In a vanilla class, you might see:
class Player
def fumbles_dropped; end
def fumbles_lost; end
def fumbles_recovered; end
def passes_attempted; end
def passes_completed; end
def passes_incomplete; end
def pass_completion_percentage; end
end
However, with scoped_struct, you could re-organize like this:
class Player
scope :fumbles do
def dropped; end
def lost; end
def recovered; end
end
scope :passes do
def attempted; end
def completed; end
def incomplete; end
def completion_percentage; end
end
end
You can then access your methods like this:
my_player.passes.attempted
my_player.passes.completed
my_player.fumbles.recovered
Pretty neat, huh? It’s just a gem install scoped_struct away.
Haml Paves the Earth
posted by pete on January 28th, 2008
Unspace uses Haml for all of its projects. Haml is a view template language that Hampton came up with about two years ago, with philosophical rather than technical goals in mind:
- code should be beautiful
- indentation is a useful tool to denote hierarchy
- share syntax with CSS
At first the idea of yet another template engine horrified me, but I’ve been proven wrong so many times over it’s become completely moot. Picture Old Pete and Old Hampton by the fire, smoking pipes in rocking chairs:
Hampton: “Hey Pete, remember that time you’ve never been more completely wrong?”
Pete: “Yeah, why?”
Hampton: “Oh, I just wanted you to remember.”
Not only are there several efforts to bring Haml to PHP and other languages, there have been entire frameworks designed around using Haml as a default assumption.
Nathan has continued to make Haml faster and faster over time, so that performance is now conservatively comparable with Rhtml and Markaby. More importantly, there are now so many people, projects, and companies using it that it can be considered stable and mature.
Today we noticed that Andrew Peters has been porting Haml to work in the ASP.NET world via his NHaml project. While it doesn’t yet support Sass, he has implemented partials and layouts in the .NET world, a small example of the Rails Way sneaking into the Microsoft world.
Good work, Andrew. We’re impressed! You should pay a visit to John Lam and see how IronRuby is coming along.
Update: Apparently, Obie agrees that Haml is For The Win.
ScoreMobile iPhone Edition is #5 Sports App
posted by pete on January 22nd, 2008
The Score and Unspace teamed up last summer to build the first commercial iPhone app in Canada, long before the device was even available here. Initially launching with Major League Baseball coverage, we’ve added the NHL, NBA, and NFL as well.
Right now the app is floating around the #5/#6 spot on the official Apple application index in the Sports category. [click here]
The iPhone is very well suited to realtime sports updates, thanks to its support for Ajax. We’re looking forward to seeing where the application will go from here. Kudos to Dale at The Score for having the foresight to recognize that iPhone and iPod Touch were going to be a major deal ahead of the game.
Congrats to Mike and the team! Keep up the good work.
Ajax Pub Nite: Join Us!
posted by pete on January 11th, 2008
Two years ago we announced a crazy idea: Rails Pub Nite. We didn’t think anyone would come, because it was early 2006 and we really hadn’t met anyone doing Ruby work in Toronto. Fast forward to today, and RPN is a healthy community of about 50 regulars that come out for a pint or four at The Rhino.
There are Rails Pub Nite events in other cities, most notably Philadelphia, and I have even given a workshop on how to start RPN-like events in your home town at the ETech conference. The mailing list for Pub Nite is over 300 people, and growing.
For our next trick, we’ve decided that Toronto should be on the forefront of embracing Javascript, and give it credit for being the engine that drives the web. Brent Ashley and I were at The Ajax Experience conference in Boston, and decided (at Cheers, of all places) that our pet language, the ugly-cousin which most server developers seem to avoid, needed a healthy dose of PR. After all, Javascript touches the users of our fancy applications in a way that’s ultimately more… intimate than Ruby, PHP, or C# ever could.
Ajax Pub Nite #1
Monday, January 14th, 2008
The Rhino (1249 Queen St. W in Parkdale)
We’ve set up a website: click here
APN will be the 2nd Monday of the month, each month except December. Yes, that means it’s always the Monday before Rails Pub Nite.
Javascript and Ajax are really cool, and it just doesn’t matter what server platform you’re using - if you’re even using one at all. However, if you’re using Rhino or Helma to develop cool things, we want to hear from you. Basically if you want to discuss Javascript or learn more about the cool things going on in the Ajax world, come on down to The Rhino.
Joey DeVilla might remember who said, “If I could go back in time five years and tell myself that Javascript was the most important language on the net, I’d laugh at myself.” Well, unknown male source, you were right.
Happy New Year!
posted by pete on January 1st, 2008

2007 was a banner year for Unspace, and 2008 is shaping up to be even more exciting.
Thanks for being part of the ride. Remember to live in the moment and do everything worth doing with passion.