“Pragmatic Guide to Sass” is in Beta!


Sass, which is said to be short for “Syntactically Awesome Stylesheets”, is a meta-language that extends CSS3 to do things that plain old CSS can’t do easily or at all, with goodies we’ve come to know and love from our programming languages: variables, nesting, mixins and inheritance. It compiles to well-formatted standard CSS, and you can even have Sass watch your Sass files so that it automatically updates your compiled CSS files as you update your Sass source.


Sass is the creation of Hampton Catlin, a “Shopifriend” and programmer who’s all about optimizing his programming tools. When he got fed up with building HTML templates for his Rails projects, he created the Haml markup language. Haml’s popular enough that it’s found its way into the most unlikely of places, such as the .NET world, where they’ve implemented it as NHaml. Just as Haml is Hampton’s optimization of HTML, Sass is his optimization of CSS.

Pragmatic guide to sass

It’s only fitting that Hampton is the co-author of the upcoming Pragmatic Bookshelf book Pragmatic Guide to Sass. Like Hampton, it gets straight to the point; it’s going to be about 100 pages long. He recently tweeted that “doing more than 100 pages just seemed like filler.” Given that I’m already behind in my tech reading, I’m glad that Hampton (and his co-author Michael) insist on keeping things concise.

Pragmatic Guide to Sass is currently in beta. You can get it in ebook format immediately (with downloadable updates as more of the book is finished, including the final, finished ebook) for US$13 or buy the ebook + paper book bundle, where you can get the ebook now and both the paperback edition and the final, finished ebook when the book is complete for US$30.

This article also appears in the Shopify Technology Blog.


RubyFringe Guide: FAILCamp (Friday, July 18 – 4 to 7 p.m. at The Rhino)

Joey\'s Unofficial Ruby Fringe Guide to Toronto - Small logoWelcome to the fifth installment of Joey’s Unofficial RubyFringe Guide to Toronto, my guide to Accordion City for attendees of the RubyFringe conference as well as people just curious about this place.

In case you missed the earlier articles in this series, I’ll list them here:

  1. Where Did All the Cigarettes Go?
  2. Getting from the Airport to the Hotel
  3. Boozin’ in Accordion City
  4. The Lay of the Land, Part 1

In this article, I’m going to cover FAILCamp.

The first event of RubyFringe is the only one that’s open to anyone, whether or not they’re attending the conference itself. It’s FAILCamp, a gathering where we’ll share stories about and lessons from failure. It will take place at The Rhino Bar and Grill (1249 Queen Street West, just west of Dufferin) and runs from 4:00 p.m. to 7:00 p.m.. Once again, you don’t have to be a RubyFringe attendee to catch this one. Admission is free, but you’ll have to buy your own beer.

Here’s a quick description of the event, as written by its originators, Amy “Slash7” Hoy and Thomas “Scriptaculous” Fuchs:

We believe that it’s time to give our personal fail some tough love and talk it out over beer!

Join us for a brief, rousing introduction followed by camaraderie, beer, and show-and-tell. We’ll present a little about failure through the ages, mining your personal suck, maybe some science, pithy quotes from people you may or may not respect, and share some failure stories of our own.

Then it’ll be your turn. If all goes to plan, you may even win in our friendly “race to the bottom” for the most public, most expensive, or most ridiculous Story of Fail.

I believe that the original plan was for Amy and Thomas to host the event as a dry run for a much larger FAILCamp event taking place on the 26th in Philadelphia. Circumstances have arisen and they will be unable to make it to Accordion City this weekend. While this fits with the theme of FAILCamp, it hasn’t stopped it — instead, two new hosts have stepped up to fill in for them:

  • Hampton “HAML” Catlin, who very well might be the best Ruby hacker in town, and
  • Yours Truly, who very well might be the worst Ruby hacker in town.

Hampton’s going to provide a lot of insight and programming know-how to FAILCamp. Me? I’m going to be responsible for innuendo-laden stories of personal and professional failure peppered with gratuitous Zardoz references.

As for the Rhino itself, it is truly pub with a “neighbourhoody” feel. Where many places are content to be mere endpoints in the Anheuser-Busch/Molson-Coors supply chain, the Rhino is what some sociologists call a “third place”, a neighbourhood gathering point for all kinds of people, from the locals who’ve been in the Parkdale area since it was a more rough-and-tumble place to the artsy and musician types who moved into the neighbourhood to the geeks who use it as the venue for the monthly Rails Pub Nites and Ajax Pub Nites. Even though the neighbourhood is gentrifying in a manner similar to New York’s Lower East Side or certain parts of Brooklyn, The Rhino has managed to remain pretty much douchebag-free and inexpensive, unlike a number of the other pubs in the area.

The only way in which The Rhino gets fancy is with their beer menu. There are about 200 beers on the menu hailing from a few dozen countries, and they’re generally well-stocked and priced in the 5 to 7 dollar per pint/bottle range. Be sure to try the locals: their own lager, as well as Mill Street, Wellington and Creemore Springs.


TSOT’s Ruby/Rails Project Night

Andrew Burke, Hampton Catlin and Mike Ferrier

Tonight is TSOT’s first monthly Ruby/Rails Project Night, where we invite the local developer community into our offices to see presentations on Ruby and Rails development and socialize. We’ve got a great lineup of speakers:

  • Yours Truly, on the lessons and challenges of Zed Shaw’s rant
  • Andrew Burke on the business and technical aspects of his current Rails project
  • Hampton Catlin on
  • Mike Ferrier on The Score’s iPhone application

The event will take place at TSOT’s office — 151 Bloor Street West (on the south side, just east of Avenue Road), suite 1130. The doors open at 5:30 p.m., during which time we’ll serve food. Presentations start at 6-ish, with breaks in between and some time for socializing afterwards. Admission is free, but space is limited — to register, please email