Ruby Quiz #1

by john on February 6, 2014

The rules: If you have to look stuff up or Google for it, you may post comments but not a solution. If you have a solution in your brain and can solve it without consulting authorities, post your solution.

You have a class like this and an example of its usage:

class Vector
  def initialize(x, y)
    @x, @y = x, y

  def *(value) * value, @y * value)

  def to_s
    "#{@x}, #{@y}"

v =, 5)
puts v
puts v * 3


3, 5
9, 15

You would like to make the #* method commutative, so that the following script

puts v * 3
puts 3 * v


9, 15
9, 15

Add one method to the Vector class to produce this result. The method body should have only one line.

{ 1 comment }

User prioritization of bug / issue tickets

by john on January 30, 2014

I’ve used tools like ZenDesk and UserVoice to provide a means for users and customers to report bugs and make suggestions.

One thing that is very hard for busy professionals is to make clear how important something is.

Here’s my idea:

You report an issue. Example: “The font could be a bit bigger on the ‘notes’ page.”

After submitting, the reporter is given a list of issues and bugs that have been prioritized for resolution by the product manager or whoever is managing the ticketing tool.

Perhaps the list might look like this (in order of priority, highest to lowest):

1. Allow logins via Twitter.
2. Provide a means to change fonts in the ‘notes’ page.
3. Provide a means to forward a note to another user for pre-publication review.

Hmm, my issue? I’d put it after 2 and before 3.

This would provide the end user some perspective on all of the other things the product team is doing. In my experience, we get suggestions all the time. Are they that important? Frequently not. Additionally, sometimes we get a bug report that is truly important, but due to the passivity of the reporter, we may not know that it’s a blocker and should — in that user’s opinion and experience — come before everything else.

With this information, the product manager might slot it in after item 3 . . . or figure out how much work is needed to do it properly and get it prioritized.


Notes and Translations for the New York Times coverage of software

October 21, 2013

I fear that the reporters at the New York Times are having a hard time sorting through the language of software contractors in their article today (here) on issues with Here are some notes, based on my long experience in “contractor world,” on both sides of the contract: “Federal contractors have identified most of [...]

Read the full article →

Tribal Leadership (Book Review)

June 23, 2013

Every now and then I hear about a book that is “all the rage” in my circles: When that happens, I have to read it, because I want to be able to detect when people are using ideas from such a source to effect change in the organization. This time the book is Tribal Leadership: [...]

Read the full article →

Jeff Gothelf, Lean UX (Book Review)

April 24, 2013

Jeff Gothelf’s Lean UX (2013) advocates bringing “lean” product strategies into the design process. The broad outline of this book will come as no surprise to people who have read Eric Ries’s The Lean Startup (2011) and earlier books like Cooper’s Winning at New Products (1986): It’s all about staunching the flow of time and [...]

Read the full article →

Boxen workflow – notes to self

February 21, 2013

Making a change in one’s own “my-boxen” Did it work? Yes. Then … Upgrading a Module Fork the module you need (e.g., puppet-postgresql) Make changes; and make sure to tag with a new version number (e.g., 1.0.1) Now use the new repo and tag in your my-boxen Now open a new shell. This is because [...]

Read the full article →

OS/X, Puppet (and boxen) and installing new software versions from DMGs (VirtualBox for me)

February 19, 2013

Puppet can install from an OS/X DMG. The manifest looks like this: However, there is some bad news about that pkgdmg provider. Unless I am mistaken, there is no way to remove that package in such a way that Puppet believes it’s gone. This is bad because it means that Puppet won’t let you install [...]

Read the full article →

Sandi Metz, Practical Object-Oriented Design in Ruby (Book Review)

November 25, 2012

It’s been awhile since I’ve reviewed a book (here are some:, but Sandi Metz’s new one is so good I need to unburden myself. Sandi Metz’s Practical Object-Oriented Design in Ruby: An Agile Primer (Amazon) may go down as one of those slim classics like The C Programming Language that people actually reread occasionally [...]

Read the full article →

The Most Important Social Network: GitHub

July 14, 2012

Now that GitHub has raised $100M (, I should publish this blog post I started a few weeks ago. TL;DR: GitHub is the largest public repository of the everyday experience of work. Ever. If you’re a scholar or journalist interested in collaboration, this is perhaps the most important archive you will find regarding what actually [...]

Read the full article →

US Airways can’t validate my email

June 16, 2012


Read the full article →