Two-factor authentication, or 2FA, provides extremely effective protection against account takeovers. But as SIM-swapping attacks have become more commonplace, more and more folks are starting...more.
"I think if you maintain a force in the world that comes into people's sleep, you are exercising a meaningful power." — Don DeLillo, Underworld...more.
As software developers, we're often given access to various pieces of sensitive information in order to do our job. This could be anything from database...more.
Pair programming is two coders working together at one workstation on a single piece of code. Done well, the coders sit together and discuss the...more.
The Problem Working in many different languages across multiple projects means it's often a pain to remember how to build all the different components. How...more.
When I first started working in Vim, reading Bram Moolenaar's Seven Habits of Effective Text Editing was very helpful. In it, he outlines three fundamental...more.
If you have ever used Docker Compose to run multi-container applications, there is a good chance that you have run into the following situation. Service...more.
I mostly work with developers who prefer Vim or Emacs as their editor of choice. This is certainly understandable, because each of those editors provides...more.
Welcome! Often times when working with Clojure newcomers I sense a bit of confusion around the relationship between functions, symbols, vars, and namespaces. Typically the...more.
Being able to run your unit tests quickly from Vim is vital when doing test-driven development. I've often seen developers using Vim to write code,...more.
Flexbox is a CSS module that efficiently lays out items inside a container. It makes sure that spacing and alignment are always consistent and that...more.
In building professions, as well as software development, there is the saying “don't blame your tools.” During a recent project, my pair and I were...more.
strace is awesome [1] [2] [3]. It lets you see exactly what system calls are being made by your running application. Wondering what configuration files...more.
"Programming today is all about doing science on the parts you have to work with." — Gerald Sussman Designing and maintaining good software is an...more.
There are already several eloquent web postings available explaining the Strong Parameters feature of Rails 4. In this post I’ll provide my take on one...more.
ClojureScript is an incredible new project that any Clojurian can appreciate. What could be better than replacing vexing JavaScript with the clean, flowing syntax of...more.
If there's anything where opinions amongst my development colleagues differ heavily, it's about the evil of context blocks inside a spec suite. Proponents of nesting...more.
Unit test frameworks automated the tedious work of verifying bits and pieces of code by hand, replacing a haphazard process of trial, error, and judiciously...more.
I use TDD as my development workflow. Red, green, refactor. It creates a quick feedback cycle, allows me to build momentum, and gives me confidence...more.
Most of us use distributed systems on a daily basis, and for good reason; the stability, fault tolerance and scalability they offer give us the...more.
Some Background Thoughts There is an experiment from Richard Held and Alan Hein who raised kittens in total darkness. For a short period during the...more.
The Riak database provides a great MapReduce framework allowing you to execute complex queries, leveraging the parallel processing power of distibuted systems. However, I recently...more.
I’ve been using routing constraints a lot lately. Before I learned about constraints, my controllers were littered with data typing checks and filters, some of...more.
JavaScript frameworks like Backbone.js can provide the structure missing in ad hoc approaches but there are some common pitfalls. Like many developers today my first...more.
When writing my first Clojure application, I came across a very common problem, validating user input. Even though there are a few libraries out there...more.
There's a special sort of satisfication I get from turning absolutely awful code into a well-tested, well-factored program. Not only have I increased the amount...more.
Monads are ... .stanza { font-size: 1.1em; text-align: center; } Boxes full of fruit And a fruit to fruit transformer That takes apples from the...more.
“polymorphism is a programming language feature that allows values of different data types to be handled using a uniform interface” -Wikipedia In most Object Oriented...more.
When first getting started with iOS development, there were very little resources to get up and started. And with the strict NDA Apple had over...more.
Working with Javascript can be, at best, a mildly frustrating experience. As I've started to work more with Jasmine and Backbone.js, I've added some simple...more.
I recently sat through a software development team retrospective. The facilitator began the retro by taking the “temperature” of the room. He asked us to...more.
This February 13th will mark a decade since the creation and signing of the original Agile Manifesto. The lean development thought leaders who came together...more.
At Agile 2010, I shared an airport shuttle bus with Henrik Kniberg and César Idrovo Carrillo, the organizers of the manifesto translation project. They told...more.
Today we released a new and exciting version of Limelight. Just a reminder, Limelight is a user-interface framework for Ruby. Included in this release are...more.
I’m pleased to announce the open source Limelight project: A thin client and application framework written in Ruby (JRuby). Check it out at https://github.com/slagyr/limelight. https://github.com/slagyr/limelight...more.
When building a software system composed of multiple decoupled components, the need typically arises for interprocess coordination and communication. As an example, say that we...more.
I’m a big fan of agile. I’ve long been convinced that the agile movement truly is uncovering ways to do software better. It’s revolutionizing the...more.