(Clojure) Spec-ing Data from JSON

I’ve returned to Clojure after some time using other tools, so I’m late to the party regarding learning and experimenting with Spec. The first order of business was to build some specs for data I’m receiving from an external system in JSON format. Given that it was my first real experience with Spec, and I had no control over the shape of the data I was spec-ing, I was uncertain how to proceed. Read more on (Clojure) Spec-ing Data from JSON…

Reflecting on Single-Page Applications

Although I was an early adopter of client-side web applications, it’s hard to fully divorce yourself from all the tradeoffs that go into a system you’ve built when analyzing a single aspect. Recently, I’ve been noticing that some of the websites and services that I rely on in my day-to-day life have been rewritten into SPAs, so I’ve taken the opportunity to step back and reflect on the effects that are visible to end users. Read more on Reflecting on Single-Page Applications…

Why I Ditched Spotlight for Spreadsheets

Besides its intended focus of searching your entire computer, did you know that macOS’s Spotlight search makes it really easy to perform simple arithmetic? Over time, this has actually become one of my favorite things about Spotlight. It’s a hugely convenient handicap for my dyscalculia, always ready and only two keystrokes away. Despite this, if I were forced to promulgate something approximating a New Year’s resolution, it would be that I’m not going to use Spotlight for calculations anymore. Read more on Why I Ditched Spotlight for Spreadsheets…

The Tradeoff of Multiple Repositories

More often than I expect, I come across software projects that consist of multiple source control repositories. The reasons vary. Perhaps it’s thought that the web frontend and backend aren’t tightly coupled and don’t need to be in the same repository. Perhaps there’s code that’s meant to be used throughout an entire organization. Regardless, there are real costs involved in the decision to have a development team work in distinct, yet related, repositories. I believe these costs are always overlooked.
Read more on The Tradeoff of Multiple Repositories…

A Swift Architecture for Managing State: Revised

In my previous blog post, I wrote about an approach for managing state in a Swift app. Following that post, some changes were made to the Swift language that deprecated some convenient syntax my approach relied on. After some thinking, and with a better understanding of Swift’s approach to mutability, I’ve slightly revised this architecture to reduce a lot of friction. Read more on A Swift Architecture for Managing State: Revised…

A Declarative Architecture for Swift Apps

Update: I’ve written a new blog post describing how I’ve improved upon this architecture.

I’ve long been interested in seeking ways to design software in a declarative way. That’s why I’ve lately been very interested in tools like Om Next that provide good patterns for managing the state of your entire application and rendering UI based off that state.

I was recently assigned to a new iOS project using Swift, which was a great opportunity to to learn Apple’s new language and see if I could leverage it to bring a greater level of declarativeness to iOS programming. Read more on A Declarative Architecture for Swift Apps…