Yesterday I spent a few hours building an elaborate web photo gallery for our wedding photos before my wife and I realized we’re more interested in seeing everyone’s likes and comments than in building yet another elaborate web thing for our wedding. (That’s to say we do value building nice web things, we just value getting Facebook love from our friends more.)

The photo gallery I made is modeled after Facebook’s newest lightbox UI for browsing and viewing photos, which has some nice details that I love, such as pushState support so browsing between photos doesn’t break your browser’s back button. But the best one is how they handle scrolling: you can scroll the contents of a photo lightbox (which can include comments, likes, and other metadata that can make the viewer taller than your browser window) while preserving your scroll position on the photo grid underneath.

I was afraid I wouldn’t be able to figure out whatever strange web magic they used to create this effect. But it turns out Facebook’s own frontend dev team posted a detailed explanation of how it all works, and it’s beautifully simple. In fact, almost all the important layout and scrolling magic is handled with just CSS. Really cool.


The inferno of the living is not something that will be; if there is one, it is what is already here, the inferno where we live every day, that we form by being together. There are two ways to escape suffering it. The first is easy for many: accept the inferno and become such a part of it that you can no longer see it. The second is risky and demands constant vigilance and apprehension: seek and learn to recognize who and what, in the midst of the inferno, are not inferno, then make them endure, give them space.

From Italo Calvino’s Invisible Cities.

May we fight the things that reduce us for the company and truth that make life big. Happy new year, everyone. Here’s to 2012.

(via viafrank)


Heroku Supports PHP! Yay! (Yes, Yay!)

This week I (re-)discovered that Heroku’s polyglot Cedar stack supports PHP. The PHP support was launched a while back in partnership with Facebook, to attract developers of Facebook apps to Heroku’s cloud. While it’s not listed on their website as a fully supported, featured language alongside Ruby, Python, Node.js, and Java (not to mention JVM languages Scala and Clojure), it works amazingly well for really basic stuff. You can try it out for yourself by just creating a new project folder (i.e. Git repo) with an index.php file in it, then creating a Heroku project. When you push to Heroku, they’ll automatically identify it as PHP and compile/install Apache and PHP into your slug.

PHP on Heroku could be more accurately described as “Apache+PHP on Heroku” — PHP apps are Apache web server instances, including support for .htaccess directives. I haven’t run everyone’s favorite security hole, phpinfo(), to determine what modules are compiled into Heroku’s PHP, but it seems like support for PostgreSQL and MySQL are both present, which means PHP apps can use either Heroku’s Postgres-based shared DB storage or a cloud-hosted MySQL like Amazon RDS.

I’m excited about this because it allows me to stop maintaining a fully fledged Apache server on a VPS just to publish the occasional semi-static web site. Need to publish one or two pages? Before I’d have needed to configure a virtual host in Apache, then create some directories, then figure out a publishing thingamabob, which was different for every project…now I can just git push heroku master and it’s done. Boom.

My wife’s yoga site is mostly plain HTML with some PHP. It’s not at all demanding in terms of server horsepower, and while Coda makes it fairly easy to track and publish changes over SFTP, Heroku’s Git-based deployments are just so much nicer, and I like being able to run all of my small, personal projects on a single app platform.


Our wedding photos are up on our photographer’s blog. They’re UH-MAZING, just like my suit.

Our wedding photos are up on our photographer’s blog. They’re UH-MAZING, just like my suit.


As a software developer currently working on a search feature, I understand why Siri falls short. I acknowledge it’s logical to expect that an electronic brain capable of understanding the semantic relationship between “broke a tooth” and “dentist” is also capable of mapping “raped” or “attacked” to “crisis center” or “dial 911”.

The problem isn’t that Apple has programmed Siri to suppress information about abortion, emergency contraception, or rape. (They haven’t.) The problem is that Apple hasn’t yet trained Siri to handle anything outside of a small, family-friendly, easily demoable box. What’s worse, her default “cheeky” responses when queries fail — meant to imply a personality and intelligence you can trust — don’t account for the difference between trivial or important questions. Siri needs a better database, but more than that she needs empathy (or at least a convincing simulation of it).

Apple has set expectations very, very high, and their stipulation that Siri’s in “beta” won’t fly with most users who see it in a commercial or try it in stores and expect it to work.



A really nice, simple iPhone interface for the really nice, simple website analytics service from GitHub (who acquired it a couple of weeks ago along with its developers, Ordered List). I tried using their web interface to look at my Gaug.es stats on my phone this past weekend, and it was an okay, not great, experience. This app is much better.



Verge, the new project from the former Engadget editors who left to start their own site after theirs was acquired by AOL, is probably the best shitty gadget rag out there. But it’s still a shitty gadget rag, and Ben Brooks wanted more:

There is just a lot of vanilla tech reporting going on — the kind that I expect to see on CNET. Which is a shame because by all accounts the writers for the site are smart — the type that should get it, but refuse to spell it out for readers.

In fact the most compelling and interesting writing in The Verge are the posts that its senior editors post in the “forum” in response to criticism. That shouldn’t be the case, yet they are the only posts I look forward to reading on the site.

Given I’m what many internet people would call an “Apple fanboi”, and that Gizmodo was making me vomit even before they stooped to theft in pursuit of an exclusive scoop, I can’t honestly say I expected much from The Verge. I will grant them this: if you’re gonna read a gadget rag, theirs is the best one.

But if you want to read a technology site that aims higher than just cataloguing an endless parade of mediocre crap, sorry, but it doesn’t exist. No one is trying to hold technology companies to any kind of standard.

Then again, press outlets generally don’t hold anyone accountable for anything these days. Just as there’s “a debate” about whether global warming is real when it’s 45º in Chicago on December 19, a cell phone that’s too big to fit in your pocket, and can’t hold a battery charge for more than an hour, is said to have “drawbacks.”

Someone should try putting out an Onion-style satirical publication devoted exclusively to the tech industry. It wouldn’t be at all hard to find material for it.


Watts Martin:

The key to understanding Paypal is this: Their policies in dealing with their customers are all crafted with the assumption that their customers are out to screw them. It’s not that they don’t want to do business with you, it’s that they don’t trust you. Ever. Under any circumstance. They want your money, but they hate you.

They hate you because in a measurable percentage of their transactions, people are trying to screw them over. As the cliché goes, it’s not paranoia when they really are out to get you.

Except that approaching every transaction with that attitude really is paranoia.

And it gets better from there.

(Source: chipotle)


To most customers, search is just expected to be there, and it’s expected to search everything all the time. They don’t realize and don’t care how much complexity is behind the scenes to make it happen. The best designs hide as much of that as possible and just present the customer with a single search box that works.

Gowalla co-founder Josh Williams:

About two months ago, my co-founder Scott [Raymond] and I attended F8. We were blown away by Facebook’s new developments. A few weeks later Facebook called, and it became clear that the way for our team to have the biggest impact was to work together. So we’re excited to announce that we’ll be making the journey to California to join Facebook!

Gowalla, as a service, will be winding down at the end of January. We plan to provide an easy way to export your Passport data, your Stamp and Pin data (along with your legacy Item data), and your photos as well. Facebook is not acquiring Gowalla’s user data.

A few disconnected reactions:

This was inevitable. The fact is that Gowalla was a distant second to Foursquare in the social check-in app space. Gowalla was never a serious competitor in hyper-local advertising and daily deals, which are practically the only way besides an acquisition that a company like that can make money for their investors.

Plus, though I liked Gowalla’s product better as a piece of software, I can’t deny Foursquare’s “game” was more accessible and fun. I have friends who never really “got” Gowalla yet check in on Foursquare constantly. Gowalla tried adding its versions of badges and titles, but not until after half the internet was working to take over the mayorship of their favorite coffee place.

Also, I’m really starting to respect Facebook for the simple fact that when they buy companies just to acquire their teams — something they’ve done a lot recently, of which Gowalla is just the biggest example — they don’t even pretend to be interested in keeping the products going. There’s no uncertainty. Facebook knows what they want, they say so, and everyone knows where they stand.



Mark Richardson, for Pitchfork:

“Wicked Game” covers were as common this year as covers of Springsteen’s “I’m on Fire” were in 2007. Washed Out’s tossed-off take was weak, but something about the Widowspeak’s carbon-copy version hit home when I working through Retromania. Faithful covers of existing songs are as old as popular music, but something here felt new: It was part of what I heard as the subtle Tumblr-ization of indie; music-making as re-blog. They weren’t just covering a song that they loved, they were essentially re-producing it, unchanged, and saying, “This is me.” It’s the band as lonely teenager in a bedroom: What do people think of me? “Oh that band Widowspeak? They’re the ones that are into Lynch, right? ‘Wicked Game’?”

At the end he references the “Most Photographed Barn in the World” passage from Don DeLillo’s White Noise, a passage I think about at least every other week.

(Source: theverge.com)


This is cute: if Google knows your birthday (i.e. if it’s in your Google+ profile), on your birthday they display a special birthday doodle on the homepage. The alt text is a personalized birthday greeting (“Happy Birthday David!”).

On a related note, I’ve gotten automated birthday greetings from:

OKCupid, who say “ordinarily we’d send you on a birthday fling, but our records show you’re in a happy relationship.” So instead they just send a JPEG of a cake.
My dentist’s office (via whatever software they use for online appointment booking). They also send a cake image, but theirs is more reminiscent of Microsoft Word clip art.
Starbucks, who also (as part of the Starbucks Card Rewards thingy) always send a birthday postcard good for one free drink.
All this in addition to the many tweets and Facebook posts from friends and colleagues.

Thanks, everyone!

This is cute: if Google knows your birthday (i.e. if it’s in your Google+ profile), on your birthday they display a special birthday doodle on the homepage. The alt text is a personalized birthday greeting (“Happy Birthday David!”).

On a related note, I’ve gotten automated birthday greetings from:

  • OKCupid, who say “ordinarily we’d send you on a birthday fling, but our records show you’re in a happy relationship.” So instead they just send a JPEG of a cake.

  • My dentist’s office (via whatever software they use for online appointment booking). They also send a cake image, but theirs is more reminiscent of Microsoft Word clip art.

  • Starbucks, who also (as part of the Starbucks Card Rewards thingy) always send a birthday postcard good for one free drink.

All this in addition to the many tweets and Facebook posts from friends and colleagues.

Thanks, everyone!