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…

Ancient Stoic Wisdom for Writing Better Software

My time at a software company has shown me how much focus there is on the new: new smartphone and laptop models, new revs, new development boards, new languages, and so on. But what about the old? I’m talking really old, like “two millennia before the Unix-Epoch” old.

The Stoic philosophers Zeno of Citium, Epictetus, and Seneca spoke at length about logic, control, and truth–all terms we discuss as programmers, but with very different meanings and applications. Still, Stoic works have lasted for thousands of years. What lessons do the ancient Greeks have for an industry with an obsession for the newest, latest thing?
Read more on Ancient Stoic Wisdom for Writing Better Software…

Three Attitudes that Lead to Maintainable Code

When writing code, there are many specific principles that aim to make your code more maintainable: DRY, the single responsibility principle, the Law of Demeter, the open/closed principle, etc. These are great principles to follow, but it can be difficult to keep all of them in your head at once. I’ve found it’s often easier to keep a few broader ideas in mind. Read more on Three Attitudes that Lead to Maintainable Code…

Diagrams as Software Documentation – When a Picture Says it Best

Software documentation is all too frequently overlooked or becomes irrelevant, lost in the inevitable wave of change. Accurate documentation requires not only thought and execution, but maintenance, as reality changes.

One form of documentation that is too frequently overlooked is a diagram. Read more on Diagrams as Software Documentation – When a Picture Says it Best…

Turbocharge Your Coding with Snippets

Hi. I’m Ross, and I’m a software developer who doesn’t really like typing. It’s not that I’m bad at it—I actually think I’m pretty good at it. It’s just that no matter how fast I type, my fingers can’t keep up with my brain. Lately, I’ve been addressing that gap by utilizing code snippets to auto-fill boilerplate code.

Read more on Turbocharge Your Coding with Snippets…

Clojure Development in Spacemacs

I’ve recently been doing some basic Clojure development, and it’s been a huge blast. I’ve played around with it in the past, but never bothered to fully set up a development environment. This time, however, I decided to spend a few evenings perfecting my workflow and becoming familiar with the tools available, focusing on my editor of choice: Spacemacs.
Read more on Clojure Development in Spacemacs…

Debugging Techniques: #1 Break the System into Small Pieces

My PC wouldn’t boot, didn’t even make a sound. I traced the problem down to a particular mounting screw, but there was nothing to indicate that this screw was problematic. It was a perfectly fine screw, correctly installed in the right place. How did I figure this out? Debugging!
Read more on Debugging Techniques: #1 Break the System into Small Pieces…

Security Hygiene for Software Professionals

As software makers, we face a unique threat model. The computers or accounts we use to develop and deliver software are of more value to an attacker than what ordinary computer users have—cloud service keys can be stolen and used for profit, and the software we ship can be loaded with malware without our knowledge. And that’s before we consider that the code we write has a tremendous value of its own and should be protected.

Padlock by Moyan Brenn. Used with permission under CC BY 2.0.

Taking responsibility for our security hygiene is, thankfully, not very difficult. Today, most tools we need are either already present in our operating systems or can be added without much effort. In this post, I’ll take you down a list of things you should consider.
Read more on Security Hygiene for Software Professionals…

Three Tips to Make Your Next Dependency Upgrade Easier

Over time, even well-managed web apps can see their dependencies fall behind. The JavaScript community moves fast, and if you don’t stay on top of it, you can wind up with a package.json from the stone ages (two months ago). A few weeks ago, my team upgraded an aging Ember 1.13 app to Ember 2.10. Here are three tips to help make your dependency upgrade process go smoother than ours. Read more on Three Tips to Make Your Next Dependency Upgrade Easier…