Cloud Four Blog

Technical notes, War stories and anecdotes

Dare to Repeat Yourself (At First)

It was mid-afternoon on a Wednesday when my team started finding strange bugs in older versions of Internet Explorer. At first these appeared to be unrelated… until we noticed seemingly random chunks of style appeared to be missing entirely. What was going on?

After some digging, we found the issue: Our project had exceeded old IE’s infamous CSS selector limit. Weeks prior, I’d lost an argument to resist including a sizable framework in the project. Mentally, I was already patting myself on the back. “I told you so,” I practiced saying in my own head.

Then I looked at the compiled CSS, and realized it was actually my fault.


I’d designed a custom interface element that was pretty complex. Because we were using Sass, I used some fancy mixins and loops to avoid repetition between a handful of breakpoint-specific modifiers. It was easy to read, maintain and modify.

It was so easy, in fact, that I failed to notice that the compiled CSS made up about 25% of the total project’s styles! Even more embarrassingly, I discovered that I could replicate the exact same functionality without most of the loops. I ended up reducing the selector count for that component from 1,207 to just 42 (seriously).

While it was great to find and fix the problem, it shook me up a little. Sass didn’t write crap code; I did. I was so focused on automating my repetitive solution that I hadn’t stopped to ask myself if it was even the right solution.

We recently started using PostCSS for a few of our projects. Every PostCSS feature is a plugin, which we include as needed. So far, we’ve yet to include plugins for nesting, mixins or loops.

Every time we’ve thought to include those features, we’ve instead found a simpler way to do the same thing. Nesting gives way to descendent class names, mixins become utilities, loops are questioned entirely. The initial pain of having to repeat ourselves motivates us to approach the problem in a different way. Repetitive selectors that survive this process are intentional, because a human being actually wrote them.

I know that’s probably silly. It’s definitely not DRY. But there’s a fine line between “smarter stylesheets” and “dumber designer.” Embracing painful repetition by nerfing my preprocessor (especially in combination with analysis tools like Parker) helps me draw that line.

Responsive Field Day Speakers, Tickets and Community

Late spring. We are now officially entering the marvelous season in Portland. That means gorgeous weather and cheerful citizens from now well into October. This part of the year is why everyone wants to be here. Let’s forget about the rest of the year (hint: dim, misty). Let’s just talk about the wonderful things.

Like Responsive Field Day, this September 25 (Friday) at Revolution Hall here in marvelous-season Portland. We announced the event back in March, but now it’s time to up the ante with some real details.

Responsive Field Day


The first half of our confirmed speaker roster looks like a dream team of responsive all-stars.

  • Stephanie Rieger, consummate researcher whose humanist talks explore anthropological and technical realms
  • Ethan Marcotte, who, you know, invented Responsive Web Design. And who also weaves a riveting presence in his talks.
  • Jeremy Keith, whose impact on web practices are legion, and who spices up the discourse on any panel.
  • Yesenia Perez-Cruz, who synthesizes her talents in writing, communication and graphic arts for a nuanced perspective on responsive challenges.
  • Jen Simmons, whose powerhouse weekly podcast _The Web Ahead_ is on the required listening list for those who build the web.
  • Brad Frost, whose bounding enthusiasm and thought leadership have helped to lead us toward a clearer responsive future.

And that’s only the first half! We’re kind of giddy with excitement right now. Stay tuned: we’ll announce the rest of our speakers soon.

Tickets and Community

Tickets will go on sale soon. They’ll be $175. We are keeping ticket prices low so that more of you can join us.

Any proceeds from the event will be donated to programs that support open web technologies, the tech community and education.

The whole Cloud Four crew hopes you can join us for Responsive Field Day!

Responsive Field Day Portland!

For the last two years, I’ve devoured the podcasts from Responsive Day Out—the conference that Jeremy Keith and Clearleft put on across the pond in Brighton.

I’ve encouraged anyone who would listen to subscribe to the podcast. It is my favorite conference that I’ve never been to.

That’s why I’m so thrilled to announce that we’re bringing the Responsive Day Out format to Portland!

Responsive Field Day

We’re calling it Responsive Field Day. It is a one-day conference on responsive design. It will take place on September 25 at Revolution Hall.

We plan to continue the spirit of the Brighton event where Jeremy famously said that “every expense has been spared.” So you can be certain the event will be affordable and inclusive.

Lyza, Aileen and I are traveling to Brighton for Responsive Day Out 3: The Final Breakpoint to watch the masters and learn how to make Responsive Field Day a success.

We’ve already got some fantastic speakers lined up. We’re not ready to announce the lineup yet though, so you’ll have to trust us when we say, “OMG! OMG! I can’t believe they said yes!

So mark September 25th on your calendar and start planning your trip to Portland. Sign up for email or follow us on Twitter to receive updates when the speakers are announced and tickets go on sale.

Finally, thanks so much to Jeremy and Clearleft for inspiring us and sharing what they’ve learned.

The End of Mobile Portland

In December 2007, Lyza, Aileen, John and I decided to start Mobile Portland so we would have place to talk about mobile.

After eight years, Mobile Portland is coming to an end. Tonight is the final meeting.

Over the years we’ve had some amazing speakers and topics. I’m proud of the quality of the talks and the community we built.

We also inadvertently started a worldwide open device lab movement. It’s been amazing to see device labs spread and know they started in Portland.

I’d like to thank everyone who attended a meeting and those who helped out in any way. Every small contribution lifted a huge burden off the shoulders of frantic organizers.

I want to extend a special thank you to my co-founders at Cloud Four for helping get Mobile Portland off the ground and funding it; Matt Gifford for organizing so many meetings; Seth Shikora for recording nearly every meeting we’ve held; and to Elia Freedman, Dylan Boyd and Rob Mills for being the best board members I could have asked for.

Tonight’s meeting

But before Mobile Portland rides off into the sunset, we have one final meeting tonight, and it is going to be the best one yet!

I can’t think of a better speaker and a more fitting topic than Josh Clark talking about Magical UX and the Internet of Things. This is the next frontier of technology and mobile plays a bit part in it.

This will also be our largest meeting ever. We’ve had to create a waitlist for the first time so if you’ve already RSVP’d and are unable to make it tonight, please update your RSVP so people on the waitlist can attend.

What’s next?

Since we announced the end of Mobile Portland, people keep asking me two questions. First, “Why end Mobile Portland when there is still a lot of interest?”

Because eight years is a long time to do anything and instead of the group gradually winding down and losing relevance, we made the decision to go out on top.

The second, inevitable question is, “What’s next?”

I’m pleased to say that I can finally answer that question. Let me tell you about Responsive Field Day.

Did you try to reach us?

I’m embarrassed to admit it. I screwed up and if you tried to contact us over the last few months, there is a chance your message didn’t get through.

Specifically, messages sent via the contact form on our site weren’t always reaching us.

In case this saves anyone else from making the same mistake, here’s what happened. We switched our mail to Google. Instead of having an email alias, we had to use a Google Group.

Everything seemed fine for a few months, but then at some point Google Groups decided contact form submissions were spam. And we didn’t have any moderators for the group.

I set up the Google Group so I must have screwed it up. Because things worked great for several months, we don’t know when the problem started and how many messages were missed.

The most painful part about screwing up something like this is that there is no way to know who you need to apologize to.

So if you tried to contact us and didn’t hear back, I’m very sorry. The contact form is fixed now. We’d love to hear from you.