The Secret Is To Bang The Rocks Together, Guys

Ponderings on the relationship between programming, systems engineering and systems administration.

‘Nuff respect, as the Young People say, to the late Douglas Adams for the title line.  There is a link of sorts to the topic; I got an email from my talented and beloved brother a few days ago, pointing me at reports on the Snowdon Race.  The company he works for did a wireless link from the summit of the mountain to get the results out; tres impressive.  He’s sort of also in the IT thing, but the big difference between us (other than the fact he came to it later in life and I’ve always geeked out) is this; he doesn’t program.
Last time I was over at his house he was showing me all sorts of monitoring he’s doing on the huge point-to-point wireless WAN that they run over much of North Wales.  All Windows-based stuff, pulling useful information from traffic monitoring.  And all monolithic big programs.  A Unix system might do the same, but chances are that a lot of the same data could easily be gathered using built-in tools plus judicious amounts of scripting.  But he doesn’t program, so he can’t do that.
I find it a difficult thing to imagine – how one can install, maintain and operate complex mixes of kit from multiple vendors without the glue that binds them together – the ability to knock up the sort of tiny script that texts you when the disk space is low, or creatively purges older files, or scans logs for attack attempts.  I suppose one way is to pay; someone out there, especially in the Windows World, will always sell you an application that does the job for you.  But with that, you lose flexibility – the application will do what the designer intended it to do and nothing more.
I’m responsible for around five servers and (depending on how you count) seven desktops or laptops.  These live on a variety of networks, some wired, some wireless, connected together via VPNs over ADSL connections.  The whole thing would have cost a lot more and take a damn sight more work to administer if it weren’t for scripts (and, since I am who I am, if it weren’t for Python).
Consider this here laptop on which I’m typing.  Every couple of hours it does a backup.  The script wakes, checks IP addresses to work out where it is (all the networks use different ranges in the 10.x.x.x reserved space), connects to the appropriate server and kicks off a low-priority trawl through selected directories, copying modified files over to the backup area.  Where another script runs nightly, squirrelling away older material into tar.bz2 files and synchronizing them between work and home.  Nobody could ever sell me an application that’d do the job in exactly the right way, yet it only took a morning’s work to set up.
Programming, I argue, is the equivalent of banging the rocks together.  It’s the difference between using the machines that you watch over and controlling them.  Without the ability to program, to speak their language, you’re condemned to use the tools you were given.  Without the ability to bang the rocks together to make better flint axes, all you can do is pick up what’s lying around.  That’s no way to evolve.

2 thoughts on “The Secret Is To Bang The Rocks Together, Guys

  1. Some people don’t want to bang the rocks together

    Some people would rather head down to Target and just buy a knife. It might not be as perfect a fit as carving your own handle and grinding your own blade, but then again, if you don’t know how to do those things and you want to cut that roast, you gotta do it somehow. Be glad that you have the know-how to grind your own. Also, assuming you don’t want to be in business of custom griding solutions for your brother and anybody else that may come along, be glad they can go out and buy a ready made tool to do the job they need.

    Consider your own situation. Are there areas where Python appears to come up short? Instead of wrestling with Python would you rather write your own language, interpreter, IDE and runtime? You could, ya know. It would be exactly as you wanted and there would be no wrestling required ever, because it would be YOUR language. However, I’m guessing you would rather work with Python’s occasional wart (There has to be at least one somewhere…) than go through the work of specifying a grammer, writing the parser, etc.

    Heck, maybe some people just aren’t good at banging rocks together. Maybe they can weave. Or fish. Axe making isn’t for everybody 🙂

    • Re: Some people don’t want to bang the rocks together

      A point well-made, and taken 🙂 However, I think your analogy falls down; scripting is to systems administration as owning a decent carving knife is to carving a roast – it’s a tool or a skill that’s required to do the job well. Sure, you can hack the meat apart with whatever comes to hand, but doesn’t it make sense to learn a little that’ll let you do it better? I still think that a professional sysadmin should expect to understand the rudiments of programming/scripting. But hey, I’m a programmer, I *would* think that, wouldn’t I? 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s