Thursday, May 23, 2013

There Are Only Two Ways to Save Money with Software

To paraphrase a civil war general:

 "The only good code is deleted code."

 I have recently been in several meetings where the phrase

"We'll save resources by doing things with new software",

has been used a justification for change.

This is one of the great lies that drives Silicon Valley. Every line of software is a cost liability.

The only way to save money with software is to delete the number of lines of software you run or to use software to make the problem somebody else's problem. Every advance in computer software engineering has followed these two principals.

Compiled languages follow this principal by both reducing the number of lines of code required to solve a problem and also by handing the problem of turning those lines of code into executable instructions to the people that write compilers.

Operating systems follow the same principal; instead of having to manage access to millions of blocks in both memory and disk, you write enough software to make it the user's problem.

The only way to save resources with new software is to delete old software, or to make the things that the old software was responsible for somebody else's problem.

New software can make doing new things cheaper, but that is a completely different problem.

Wednesday, May 22, 2013

How to build ruby 1.9.3 with libyaml in a funky place

The only solution I've found is to hack the location of libyaml library and include files
into the extconf.rb file in ext/psych

header_dir =  '/afs/slac/package/ruby/@sys/include'
library_dir = '/afs/slac/package/ruby/@sys/lib'

dir_config  'libyaml', header_dir, library_dir