beautiful technology

Why Software Development Requires Servant Leaders May 05 2018

The idea of “servant” leaders has been on the rise in the agile community of late. Robert K. Greenleaf coined the term in a 1970 essay, but the idea is timeless. Virtually every religion describes the concept. This one from the Tao Te Ching is particularly poignant: The highest type of ruler is one of whose existence the people are barely aware. Next comes one whom they love and praise.

Read more

Monadic Error Handling Mar 12 2018

Nemanja Mijailovic has a nice summary of a monadic error handling pattern in #golang.

If you find if err != nil { return err } littering your codebase, look here for ideas to improve your architecture.

What's My Software Worth? Jan 27 2016

A prospective client recently asked this in regards to a proposed build for their startup. I know an accountant who would say, “it depends,” although he says that in response to just about any question. Unfortunately, there’s not a formula for post-construction software value as you might have with a house. With a house, you can generally assume that $X in lumber and $Y and labor multiplied by some kind of “neighborhood value multiplier” results in a rough estimate of a home’s value.

Read more

F.A. Hayek on Software: A Response to Tim Bray's 'Doing it Wrong' Jan 06 2010

Tim Bray’s post on how enterprise systems are “Doing it Wrong” just triggered a realization for me. This whole agile vs. whatever debate has been a kind of red herring for a much larger argument about how businesses themselves ought to operate. I’ve seen large companies adopt agile methodologies, and they don’t magically transform as a result. Something of the earlier culture persists, and the tendency to overplan, overbuild and generally waste tons and tons of money continues.

Read more

Update Row Values in MySQL Based on Order Clause

Say you have a database table which contains an integer sort order column, but it’s incorrect. Perhaps you forgot to sort before creating the records. Let’s say you have another column which, when sorted, would produce the correct order. You can use that column to fix the sort order column in pure SQL. Here’s an example using the MODX CMS, which has a menuindex column (the sorting column), and a pagetitle column.

Read more

Which Modules Implement a Drupal Hook?

Working on a deep-dive Drupal rescue project, we encountered an enormous mess of modules, and needed to know which of those modules were related to Ubercart checkout features. drush eval 'print_r(module_implements("uc_payment_gateway_charge"));' On a related note, the full list of available Ubercart hooks is here.

Read more

What am I About to Merge (with Git)

This is one of my own personal Git FAQs. Here’s the scenario: You’ve created a topic branch of new code, and done all the work required to complete the feature. But before you can merge it back into the main tree, you get assigned to some new work, and the branch sits dormant for several days. Now the time has come to merge that feature back in, but it’s been so long, you forgot exactly what the code included.

Read more