Unit & Integration Testing
In part 1 of this series, I talked about the test pyramid, and how to approach applying it in your testing process. In this post, I’m going to focus on the lower levels of the pyramid, where you should ideally be spending most of your time.
Continue reading “On Testing – Part 2”
In this series of posts, I’m going to cover my views on software testing. I’ve spent a lot of time recently re-factoring some fairly large test suites, and would like to share some best practices I’ve learned a long the way.
In this first post, I’d like to cover some high-level testing strategies and my philosophy towards testing. In subsequent posts, I’m going to dive deeper into testing in each part of the stack.
Continue reading “On Testing – Part 1”
I’ve blogged about why software podcasts are awesome and why you should listen to them in the past. In this post, I’m giving an update on my favourite podcasts in 2017.
Continue reading “My Favourite Podcasts in 2017”
TL;DR Wikis are awesome tools. When used poorly, they’re like black holes; documents disappear into the ether. When used intelligently, they can be powerful, self-organizing knowledge centers for your team.
On most large software projects, organization is key. Developers aren’t always the most organized people in the world (I’m no exception) and project managers tend to focus on the project schedule. This can leave something to be desired or tracking the team’s progress and keeping everyone on the same page in terms of technical decisions and understanding of the larger system architecture as the project progresses.
Most projects hit a speed bump or two along the way, and it isn’t uncommon to have people scrambling trying to remember what was agreed to and when or struggle to remember why or how a certain decision was made.
Continue reading “Rein in the madness: Intelligently using wikis for your dev team”
The term legacy code conjures thoughts of dread in developers everywhere. It’s code that’s perceived (justly or unjustly) to be tightly-coupled, hard to understand, hard to change, and just plain out-dated. It’s an immovable object.
The reality is, legacy code is everywhere, and it isn’t going anywhere. So why not make it better, and make our lives working with it everyday easier?
Continue reading “The Importance of Modernizing Legacy Code”
At work we have a lot of configurable settings in our application. Like a lot. For a long time, nobody tackled the task of properly exposing the management of these settings in a UI because they thought it would be way too much work. The settings have a flat unified structure in the back-end, making them awkward to manage logically as a set of related settings. Building support for a large set of arbitrary data types, different editors for each, custom validation, etc. seemed like a daunting task.
In this blog post, I’m going to show how you can use the json-editor library to build these kinds of complex back-office admin apps really quickly and easily.
Continue reading “Truly rapid development of admin apps with json-editor”
I heard a great podcast interview recently with Edwin Brady. He was discussing his upcoming book Type-driven development With Idris. After listening to the podcast, I immediately picked up a copy of his book. Having now completed the book (well it’s a MEAP, so what’s finished so far), I’m finding Idris the language really intriguing.
I’ve always had a preference toward statically-typed languages. I just like the ability to specify type constraints and have some level of confidence of correctness in my programs before I run them.
Continue reading “Hello Idris”
In a previous blog post, I showed an example of using plumatic’s schema with test.check and test.chuck. With the introduction of Clojure’s new spec library, I thought it would be interesting to revisit that post and port it from schema to spec. The code from this post is available on github.
Overall, the port was relatively straight-forward, though spec took some getting used to. spec provides similar facilities for what I was using in schema. It integrated with both test.check and test.chuck with no significant modifications!
Continue reading “From plumatic’s schema to clojure.spec”
Before you get going with Emacs on a Mac, there are a number of keyboard settings that you generally want to tweak to get the most fluid and comfortable experience. This post outlines the keyboard settings changes I’ve made that I find essential.
Note: this is targeted towards OSX users. Not all of this will apply to other systems.
Continue reading “Emacs Keyboard Setup – OSX”
Emacs is a classic piece of software that has stood the test of time. It has been around for decades and will probably be around for decades to come, so though it has a bit of a learning curve, it’s well worth the effort to learn.
Although my original motivation for learning Emacs was in pursuit of the ultimate clojure IDE experience, I’ve quickly realized it is extremely valuable as a general-purpose editor. My background has always been as an IDE guy (eclipse, IntelliJ IDEA, etc.), aside from knowing just enough vi to get around on the command-line.
Here’s some of the reasons I chose to invest in learning Emacs whole hog:
Continue reading “Why I’m learning Emacs”