Archive for the 'Programming' Category

The Central Tension Of Programming

Saturday, September 4th, 2010 (10:21)

The central tension in the software process comes from the fact that we must go from an informally identified need that exists in-the-world to a formal model that operates in-the-computer.

From “Beyond Programming” by Bruce Blum, as quoted in “The Design of Design” by Frederick P. Brooks Jr.

The Perils of Error Reduction; or, Starbucks for Programmers

Wednesday, August 4th, 2010 (14:28)

By taking advantage of an asynchronous approach Starbucks also has to deal with the same challenges that asynchrony inherently brings. Take for example, correlation. Drink orders are not necessarily completed in the order they were placed. This can happen for two reasons. First, multiple baristas may be processing orders using different equipment. Blended drinks may [...]

Universal Constructor Sighting “In The Wild”

Friday, July 9th, 2010 (08:30)

For those of you who don’t know, “universal constructor” is the name I give to PHP constructors that always and only take a single parameter. The parameter is an array of key-value pairs, which is then merged with a set of default keys and values. Finally, the array is unmarshalled, usually into object properties.
One [...]

Offer Accepted: Vice President of Engineering at Company 52

Monday, June 28th, 2010 (19:20)

I have accepted an offer from Company 52 to be their Vice President of Engineering. Many thanks to everyone who helped get the news out about my job search, to those who provided referrals and leads, and to those with whom I had the pleasure of speaking regarding their open positions, including such luminaries [...]

Nashville PHP User Group

Wednesday, June 16th, 2010 (10:56)

I was lucky enough to be in town for the inaugural Nashville PHP User Group as resurrected by Ben Ramsey last week. The presentation by Josh Holmes was interesting though over-long.
My favorite part of these things (as always) is meeting the other attendees. We retired to a nearby bar after the meeting, where [...]

Disaster Rituals

Wednesday, June 16th, 2010 (09:27)

Combine How Complex Systems Fail with Fooled By Randomness and throw in some organizational behavior models, and you get the human response to unforeseen disaster. We think we can prevent future disaster, somehow, by going through a particular set of rituals. Then Malcolm Gladwell asks, way back in 1996:

But what if the assumptions that [...]

On The Job Market Again

Tuesday, June 1st, 2010 (21:23)

After a 4-month hiatus, I’m back on the job market again. If you need a web architect, expert (senior) PHP developer, or someone to manage your programming team as a leader/mentor, send me an email: pmjones88@gmail.com.

How Complex Systems Fail

Thursday, May 13th, 2010 (11:36)

The paper How Complex Systems Fail by Richard Cook should be required reading for anyone in programming or operations. Hell, it should be required reading for most everyone. You should read the whole paper (it’s very short at under five pages), but here are the main points:

Complex systems are intrinsically hazardous systems.
Complex systems [...]

Seven Pillars of Pretty Code

Wednesday, April 21st, 2010 (20:04)

The essence of pretty code is that one can infer much about the code’s structure from a glance, without completely reading it. I call this “visual parsing”: discerning the flow and relative importance of code from its shape. Engineering such code requires a certain amount of artifice to transform otherwise working code into working, readable [...]

Does Software Development Have A Culture Of Rewarding Failure?

Sunday, April 11th, 2010 (18:36)

Why yes, yes it does.
Crappy, death-march projects are routine in software development. Projects begin with unrealistic expectations, concrete commitments are made based on estimates and information that is far from concrete. And when things inevitably go pear-shaped developers cop the brunt of the fallout. We are forced to shortcut our process and compromise on quality [...]