Chilling Out
Image credit: Victor Cajiao

Chilling Out

Today was a Sunday and for the first time in probably 5 years I guiltlessly did nothing to advance any business initiative of mine. I worked on no personal projects. I did no client work. I walked down to Bleecker Street maybe 10 blocks south of my apartment and I went to Porto Rico, a hundred year old coffee importer I’ve been going to for a decade that has a little coffee bar in the back. I got a coffee, sat on a bench out front, drank my coffee and watched the streets.

Validation Contexts in ActiveRecord

Validation Contexts in ActiveRecord

Validation contexts are a little-appreciated but immensely practical feature of Ruby on Rails’ object-relational mapper, ActiveRecord. I cannot count the number of times I have seen hacks around a problem for which a validation context would have been a perfect fit simply because this feature lives a bit under the radar and isn’t in every Rails developer’s toolbox.

What is a validation context, precisely? It is a way to constrain a model validation to a particular usage context for a record. This is similar to what you might achieve with something like state_machine, but far more lightweight.

Berlin

Berlin

I’ve been in Berlin for the past month. I ended up here somewhat arbitrarily, on behalf of a client, but I can honestly say I have fallen in love with this city, perhaps more so than any city I have spent time in aside from New York, which has been my home for nearly ten years.

I wanted to do a post to reflect on the things that are unique and wonderful about this city for anybody who may be thinking about traveling to or working from here.

Less Code
This desk is not mine

Less Code

These days I increasingly feel that I am in a minority in my deep appreciation – love, even – of the heaviest weight of heavyweight dynamic MVC web frameworks: Ruby on Rails. I have worked, now, with many of the more popular frameworks on both the server and client side. Flask, Django, Web.py, React, Angular, Express JS, Sinatra and others. I still come back to Rails.

I belive that, for the overwhelming majority of domains, it is the tool – if weilded with healthy reverence for its conventions and idioms – which leads to the most manageable, consistent, non-redundant and all-around sane codebases.

Rodney Mullen on Hackers and Open Source

Rodney Mullen on Hackers and Open Source

I was at a party several days ago and found myself talking to a bunch of other developers about skateboarding. We realized we had all been really passionate skateboarders through some part of our youth. Later that same night, surfing youtube, I found this TED talk by Rodney Mullen, one of the most important figures in the whole history of the sport. I couldn’t believe it when he turned to the subject of hackers and open source software. So unexpected — and yet so relevant, it turned out, to the broader subjects of the talk.

Pattern Vision Redux

A couple years ago I read an article DHH had posted to 37Signals’ “Signal vs. Noise” blog called Pattern Vision. I love that article not because it is at all profound. It isn’t. Kind of the opposite. I love it because I could have written it. The ways of thinking described in it are overwhelmingly common in the work I come across and live with day to day. Every new codebase I encounter seems to carry some new dubiously-applied patterns, some new collection of less-than-idiomatic directories, modules and classes for me to discover nested within “/app”.

Joseph Mitchell, Calypso, and the History of Battle Rap

Joseph Mitchell, Calypso, and the History of Battle Rap

I’ve been reading Joseph Mitchell’s Up In the Old Hotel, a fascinating collection of writings from the first half of the 20th century about New York street characters by one of the New Yorker Magazine’s most famous and eccentric contributors. If you haven’t read it, and you have a deep interest in the history of New York City, I highly recommend it.

In Praise of the Humble Website

The other day I had an informal talk with a friend about a project we had been offered. I can’t divulge much about the project but I can say that it has, structurally, a lot in common with an ecommerce app. Users shop a class of product and check out. Work has already been done on this app. The “MVP” that has been built has a wholly decoupled “thick client” browser-based UI built in AngularJS. I have a decent amount of experience with AngularJS as well as the other, similarly popular (possibly moreso) javascript MVC framework Ember.js.

I have seen a trend firsthand in the last several projects I have been offered – and a couple that I have taken on – toward the use of these javascript frameworks and decoupled, thick client architectures. Stunningly, in every one of these cases, the architecture is unambiguously more burden than benefit (much more, in fact) in respect of both development load and user experience.