Rails 5’s Best Feature Is One You May Not Have Noticed

Rails 5’s Best Feature Is One You May Not Have Noticed

I noticed something curious when I booted my first project atop Rails 5 in development mode: that when the development server was idling, the title bar on Terminal.app would read “fsevent_watch”.

On Boring Stacks

A good friend sent me Jason Kester’s article Happiness is a Boring Stack a few weeks ago. The friend knows me well and knew the words of the piece would resonate strongly. The piece is worth a read. Its essential point is that while Hacker News,  Medium, or certain of your colleagues may give you the impression that you have woefully mis-stepped if you aren’t building your application atop the latest and greatest JavaScript framework and containerization solution, from a perspective of pragmatism and quality of life this is often not at all the case:

Practice

I recently read Chad Fowler’s The Passionate Programmer, a book broadly concerned with finding fulfillment through work in software development. The book had an unexpectedly strong impact on me. Many of Fowler’s key points aligned uncannily with recent experiences and observations of my own. One section that leapt out in particular to me concerned practice.

Document-Centric Thinking

Document-Centric Thinking

Most websites are functionally and spiritually a collection of inter-linked documents. Gathering user input or generating portions of content that are unique to certain users does not itself change this. We have had faculties for both of these things for nearly as long as the HTML and the World Wide Web have existed, with the form element and server-scripting interfaces like CGI.

There is a certain zen and empowerment in approaching projects with this understanding, but it is becoming sadly fringe to do so these days.

From Jekyll to WordPress

From Jekyll to WordPress

I’ve been lazily running this blog since 2013, though for long stretches I’d find time to post only every few months. Initially I published with a minimal blogging engine I’d written myself in Ruby on Rails. At some point I came across Tom Preston-Werner’s article Blog Like a Hacker in which outlines the many raisons d’être for his static site generator, Jekyll. The thrust of it all is that the tools we use for managing code, such as the Git version control system, are actually uncannily suited to prose writing as well. In fact adopting a programming-like workflow and tooling for your blog alleviates some very real pains that you’ll experience if you use a more ordinary CMS like WordPress.

A Review of PeerStreet

A Review of PeerStreet

Investing is not something I have historically written much about on this blog, but it is something that I have cared about, studied and practiced for the last several years. My investments are largely in boring, low-fee, broad-market index funds like VTI, VYM and XLK, but I have been experimenting with the Peer-to-Peer lending site PeerStreet for several months and wanted to write a review as I have now backed several loans through their platform. This experience has given me a good sense of PeerStreet’s features, upsides, downsides and how it could align with different investor profiles and goals.

The Empty Vessel Makes the Greatest Sound

I did never know so full a voice issue from so empty a heart. But the saying is true: “The empty vessel makes the greatest sound.”

Shakespeare's Henry V, Act IV, Scene 4

A decade living in New York has conditioned me to have an instinctive skepticism of the loudest voice in the room. The loud people, the pushy people, the bullies, those who take up the most space, whether in the workplace or hooting on the sidewalks at night on the weekend – these are almost always also the people of least consequence, but its a fact that is tragically lost on most.

Robust AJAX UIs with jQuery-UJS and Server-Generated Javascript Responses

Robust AJAX UIs with jQuery-UJS and Server-Generated Javascript Responses

The jQuery-UJS (“Unobtrusive Javascript”) library has been around since 2010, making it quite old by the standards of frontend tooling, whose pace of evolution is swift. In many contexts, however, jQuery-UJS, along with complimentary Server-generated Javascript Responses (SJR) still surpass more modern frontend tooling and frameworks in metrics that should matter to anybody building a web app with dynamic UI requirements, even in 2016.

The most profound virtue of UJS is probably how palpably it minimizes your overall code surface area. AJAX bindings are made to the specification of certain data-attributes read off of elements in the DOM, which in practice oftentimes means a lot of boilerplate Javascript files you might otherwise have in your codebase you simply do not need. Furthermore, with UJS, most of the custom Javascript that you do execute to implement your rich user interactions is, by necessity, nicely compartmentalized in server-side templates oftentimes only 1-3 lines long, and very clearly named and situated.