Bob Nadler, Jr. Bob Nadler, Jr.

Don't miss a post! Subscribe to my mailing list.

No spam, ever. Unsubscribe at any time.

Iceberg Classes and Inheritance

Published over 6 years ago less than 1 min read

Better developers than I have written about iceberg classes and why they are a code smell. I’d like to talk about a specific kind of iceberg class I’ve recently come across. This type involves inheritance. Here’s an example of what I mean.

class Job
Read more →

Database Tests with Rollbacks in Clojure

Published about 7 years ago 2 min read

I recently purchased a beta version of Eric Normand’s Intro to clojure.test screencast. In it, he demonstrates how to use the use-fixtures function to set up and tear down state for tests. The function can be used for :each test run, or :once. For...

Read more →
Welcome to Hoboken

Hoboken: A Sinatra Project Generator

Published over 7 years ago 1 min read

I'm a huge fan of the Ruby web library, Sinatra. I think its biggest strength is that it allows me to structure my applications to fit the problem at hand, instead of trying to shoehorn my problem to fit a pre-determined structure.

A couple of years...

Read more →
Setting up home

Setting Up Middleman with Jasmine

Published over 7 years ago 2 min read

Currently, my favorite tool for generating static websites is Middleman. I recently wrote my version of the TodoMVC app using Middleman and KnockoutJS. I wanted to use Jasmine for my unit tests and had a little trouble setting it up. Here are the steps...

Read more →

GitScore Parts 2 & 3

Published about 8 years ago less than 1 min read

Here are parts 2 & 3 to the GitScore project. They are a follow-up to an earlier post. I originally intended the screencast to be two parts, but I had to split up part two so that I would be under the allowed YouTube length. I've also put the example...

Read more →
Shadow Stormtrooper vs. Storm Shadow

Delegation in Python

Published about 8 years ago 1 min read

At my current client, we use Python. The other day I needed to wrap a class from the requests library, specifically a response object. I wanted to add a couple of custom methods to the class and have the other methods delegate to the original object...

Read more →

GitScore Part 1

Published about 8 years ago 1 min read

UPDATE: Parts 2 & 3 are now done.

Recently I've been playing around with Screenflow, creating screencasts illustrating how I build Sinatra applications in Ruby. My goal was to create a few well-polished screencasts, but finding the time is hard. In...

Read more →
X-Wing Plans

How to Conduct an Iteration Planning Meeting

Published about 8 years ago 2 min read

A couple of weeks ago I wrote an article about how to conduct a Release Planning meeting. This is the follow-up to that piece.

The purpose of an Iteration Planning Meeting is to break down a list of User Stories into tasks to be completed for the...

Read more →
The Pesterer


Published about 8 years ago 1 min read

A few days ago a colleague and I were having a discussion. We work for Cyrus, an Agile consulting company. Another co-worker of ours is (among a myriad of other things) in charge of making sure our clients are billed correctly. As part of that job...

Read more →

How to Conduct a Release Planning Meeting

Published over 8 years ago 3 min read

The purpose of a Release Planning meeting is to have a team commit to a release goal in a set of iterations. The output of the meeting will be a tentative release date, a roadmap of time-boxed iterations with User Stories, and a rough estimate for...

Read more →