a t e v a n s . c o m

(╯°□°)╯︵ <ǝlqɐʇ/>

Nice way to keep your local environment synced up with heroku remotes.

Web designers of a variety of stripes often post redesigns of popular sites to show off their skills. Facebook, Craigslist, Twitter. I would love to see industrial designers in tech do something similar. Somebody take the laptop and offer a design that isn't an Apple ripoff. I guess it's hard to convey things like feel, weight, and material through a visual medium like the internet. But even a visual redesign in some CAD program that isn't aluminum, buttonless trackpad and black 2.5mm keyboard would be a breath of fresh air.

Apple spends a lot of time making their devices so simple and obvious it's difficult to imagine any other way. That's what makes their designs great.

a lot of what we seem to be doing in a product like that is actually getting design out of the way, and I think when forms develop with that sort of reason, and they’re not just arbitrary shapes, it feels almost inevitable, it feels almost un-designed, it feels almost like “of course it’s that way, I mean, why wouldn’t it be any other way?” - Jony Ive, in Objectified

But great designers surely can see other ways. And it would be great to get more of those views into the public conciousness. It might make Apple lose its monopoly on cool.

Something different?

Probably want to make this helper file in .js rather than .coffee -- Coffescript and JSON don't get along too well, it seems. Other than that, awesome!

You would not believe how long it took to get to this solution.

Hey, SaaS companies - stop calling me at random times just because I created a free account on your service. Seriously, New Relic, Pingdom, and several others have been guilty of this over the past few months. It's a trend now, and it's annoying as hell.

You want to show that you offer amazing support, go the extra mile, blah blah blah. Well, how about waiting until I actually need support to demonstrate that? That's when it's actually critical, not when I'm playing around with your integration. And even if it's just a customer lifecycle thing, and you want to "make sure I'm getting the most" out of your software, what about the common courtesy of emailing me first asking for an appointment? Maybe I can pencil you in.

Anyway, seriously, stop fucking calling me. Nobody likes telemarketers.

relation.where("status != ?", "complete").exists? # => nil
relation.where("coalesce(status, '') != ?", "complete").exists? # => "1"

Really Postgres? NULL == 'string' ? Really?

Your app has gone haywire. The database is maxed out, you're getting DDoSed, or you're doing some server maintenance. Welp, gotta show something. You don't want your site to have the default Nginx error page, right?

Unfortunately, you can't rely on all the nice asset pipeline stuff you normally use. Your app's dead, remember? So you have to have some totally static pages - html, images, and js you can serve that will get your message up, provide contact info, and hopefully make your users smile a little instead of grimacing so much. Not to worry, S3 has you covered.

But if you've got a few error pages, and they all have the same styles, updating them can be a pain. The solution is a static site generator, of which Jekyll is the go-to. So make a directory in your Rails app, say /jekyll, drop your static files in there, run the site generator and boom! You've got your static pages.

Then you need to upload them to S3. You also probably want all that stuff in /public as well, so your app can use them as fallback error pages. So here's a quick Rake task which handles all that.

Then, when you want to update the styles, you can mess around with the pages, test using jekyll serve, and deploy with the rake task. Easy!

Bonus points:

  1. Set up a subdomain for serving static content, and set your S3 bucket permissions to act as a website.
  2. Use your new static site url on Heroku's settings page for error & maintenance pages.

Some useful bootstrap extensions here.