Showing posts with label hot. Show all posts
Showing posts with label hot. Show all posts

Wednesday, 8 February 2017

Development : The Art of Fungibility

Fungibility is about being able to substitute one thing for another seamlessly, let us say you have a paint sprayer which contains red paint today, but tomorrow you want to paint the wall blue, you simply swap the paint... The unit remains unchanged... The paint is fungiable.

When it comes to software, especially in the past, it was of paramount importance to write your code to conform to the system, you had to write code which was compiled for one processor only, you had to conform to the calling conventions of the underlying architecture and most importantly the OS... Software was generally not very portable.

High level languages, like C, were created to get over this problem and indeed the Unix system as created by Dennis Richie could be recompiled from source on various platforms, however, things were sill very specific and the "portability" was the case of recompiling and overcoming the localisation quirks of each underlying platform.

However, with the advent of portable interpreted languages like Java or Python, and manageable tool-chain assistants like Docker and Kivy you can write your code once and have it move between systems without effort.  The first of these which I encountered really was Java, I had this run on both a Sun Sparc station and a PC, and when I wrote my degree dissertation (Parallel Computing in an Open Environment) in order to open up that platform the interop module was all Java, running on a Windows PC or any other Java 1.1.4 (AWP) functional system.

Little did I understand, at undergraduate level, how important a trend this cross platform context for an application would become.  Smart Phones, Tablets, Consoles, various PC Hardware, Linux, Windows... At one point I was even writing work in Personal Pascal on the Atari ST, then porting it to Turbo Pascal on the PC for profit, when I didn't own a PC myself, so one had to be careful and thoughtful.  There were not so many avenues for a system to truly be the same on one platform or the next.

So, as I learned to program you had to sit down with a pencil & paper, with a process flow chart stencil and work out how you wanted to lay the system in order.  To order what was being written when.

This lead to bring frugal with your time, and ultimately lead me to see fungiability as a key component of my way of working.  Because it was such hard work to cover all the bases and to make your code truly portable across machines.

As great as Java was, and python is now, or technology like Docker & Kivy are though, I believe they are pushing fungiability into decline, sometimes with it not even being considered, take my post of a few weeks prior, replacing an older system with a new, I simply looked at the API being exposed, boiled it down to a few function calls then re-implemented them and the system came back up.  Replacing the code inside the functions was hard work, but the API swapped over for me.

I've since learned that other, younger, developers would simply have re-written all the code, they'd not have cut out what wasn't needed; because they have the tools, they have the machine power (ram and processor) to support continuing with the added load, they don't pair things down, they don't binary chop what's not required, they only create and ever expanding gaggle of code (If you are young and don't do this, please don't think I'm painting all with the same brush!)

So as you start to consider scale-ability, on demand computing and cloud computing, keep fungibility in mind, think and design like for like replacement of systems, can you swap the service back end from an instance of Ubuntu on AWS to running on your local XEN host?  Can your developers in Canada send their data to dedicated local machine today, but deploy to a virtual instance hosted by yourself in the UK tomorrow?

Consider your file system advanced RAID arrays offer a form of Fungibility, that you can swap bad disks out and replace them with new, ZFS does this in software in the same manner, so long as you include your disks into the pool by disk-id.

Fungibility, in code, in provision, in hardware... It's an art which is sadly not often mentioned, indeed it's not even in my spellchecker's dictionary.

Friday, 29 April 2016

21 Degrees: The Office Nirvana

There's drama in the office... And to be honest, I'm on the loosing end of it...

We've recently had lots of work done in our office, we've had new double glazed windows, which no longer allow fresh air, so then they added a new air system, which supposedly brings in ten cubic meters of fresh filtered outside air per person, but it's never on, you can really tell when it is, and it's great, but it's never on.  Then they added a very expensive set of air conditioners.

Now, I know, and you all probably know and office is not meant to be warm and cozy, if you want a place to sit and read or code which is very warm and comforting, try the local library; if it's not already shut through budget cuts.

No, your office is meant to be slightly cool to the feel, around 21 degree's I've always been lead to believe.  High ceilings are best, and if not, air condition to that temperature.

How do I know this?... Well, I used to be an office manager, and I managed the air conditioning, and I managed the people, all shapes, sizes, ages and sexes... The consensus was too warm and most people drop off late afternoon.

So, what's my problem here?  Well, I'm the latest arriving person on the flex, I always arrive around 9:30-10:00, which means I'm always the latest to leave, around 18:30-19:00.  The problem?  Everyone else in this area want the air conditioning warmer, the reason is they're all cold in the morning, they all wonder in around 7am, and disappear, leaving their phones ringing and desks empty around 15:30... This is a problem.

It's a dichotomy, because right now they're all moaning it's too cold, according to my desk thermometer (a hang over from being an office manager and worker for many years) says 21 (this is centigrade before anyone complains), and it's perfect.

The other folks around me are complaining they're cold, they're wearing jumpers, and cardigans and one chap has the biggest fleece on... They're all a lot older than me, yes at nearing forty I'm the young one, and I can't help but believe it's their age.

And, don't get me wrong, I understand they're cold, but they might need to get up and get moving, have a warm porridge breakfast, something, other than disturb the cool air situation.

Because when they've all gone home, and the sun is around this side of the building, through the un-opening double glazing, it's boiling at my desk, literally boiling.  And in this ridiculous circus I end up needing a desk fan on, because the temperature goes way up to 26+.

21 Degrees people, please, and you deal with it, I'm not the only one to know this.