Monthly Archives: January 2004

Mum has died

Hard to write this.

On Saturday night my Mum died in hospital, despite a year long fight against cancer it was sudden and largely unexpected.

Clearly this is dominating life at the moment as we care for Dad and each other. This was a love affair of 53 years, started when she winked at him at a church youth club at the age of 15. It stayed a love affair and if you ever wanted an example of what Jesus meant in Matthew 19:4-6 about men and women becoming one flesh in marriage this was it. Also if you wanted an example of care for others then Mum would also be high on your list.

Got to go now, Dad’s just getting up

We are starting to get into Plone for general purpose Content management, the fit for a number of our sites is excellent. Anyway, here are a few links I have been looking at today about plone.

maestro – a topical example of a Plone site (Mars Exploration Rover mission).

Interview with Plone: Back from Comdex :: Open Source Directory :: :: Open Source Software, Reviews & News – Everyday, It’s-a Gettin’ Faster. – A new article on using mod_proxy with Apache for plone speed (others are available from the plone Documentation page).

Re-writing code

Loads of Blogging springing from an article Rewrites Considered Harmful? – by Neil Gunton that goto posted to Slashdot, I saw it first at Blue Sky On Mars: Agility and rewriting code which pointed to the much better article by Joel on Software – Things You Should Never Do, Part I.

My own take is much the same, it is something that I too have seen more than once (and made the mistake myself at least once). Often we like to say it is because technology has changed, so we need to re-write in another language.

For me the most obvious case was an application I inherited written in DataFlex (an Object Orientated language with it’s own hierachical database). It included one source file with a mixture of OO and procedural code. Total length of this one file was 28,000 lines with 16,000 lines in a single procedure. It was critical to the whole application and nobody knew how it worked, there were no tests. It used global integers so extensively that the limits of the language had been reached, therefore many of them were being used for multiple purposes depending on the part of the program.

It looked like a disaster, there were no specs, there was no time and the original developer had left.

Yet, in less than a week I had a cleanly structured code base neatly divided into multiple packages with few global variables. It was hairy, but it is possible given a good working environment (silence, no interruptions, a good editor, version control system and sample data that you can run on the original and refactored code). The point is not to blow a trumpet but to give hope. The company had reached a point of paranoia about this code, it had the most bugs, the greatest number of extentions wanted and they did not dare touch it – but also could not afford the time for a re-write.

Now you would find it much harder to get me to accept a full re-write. In fact as I look back some of the most enjoyable coding excercies have been major refactorings – with the intention of taming code so that we could move on – many major jumps forward in projects came as a result of these exercises.

Netcraft Web Server Survey – Graphs

Well thanks to /. (2003: Year of Apache) for this Netcraft Web Server Survey – Graphs. Things continue to look good for Apache – that is good because I guess 2003 could have been very different as it must have been a key year in the move from Apache 1 to Apache 2.

In fact it seems even better than I thought for Apache: see Apache is four times more popular than IIS on the Cabalamat Journal.

Ian Bicking “A Python Poka-Yoke”

Good to see Ian posting again in: A Python Poka-Yoke (said as if I have been consistent in my posting ;-)

Good points, on taking a Japanese quality assurance technique and applying it to software based on stuff from MemoRanda by Keith Ray.

We often see programminmg languages and software applications judged by speed or user friendliness, yet it would be very interesting to see them judged by the number of defects that result from their use.

For example, it has been part of folk wisdom that the first WYSIWYG word processors lowered the document quality in terms of spelling and grammer as the writers spent more time on playing with layout and fonts. However, a big win for me is background spell checking, seeing the red wavy lines as I type is definitely better than an end of process spell check.

In programming I can immediately think of 4 big wins

- minimized typing: verbose languages lead to poor code as
- you shorten what you can control to reduce typing time: that means short variable names which means harder to read code
- critical things are hidden in masses of characters
- you code verbose code to avoid re-typing and miss things you should have changed

- strict type checking
- obvious I think, if the language cannot tell that x is a string or an integer then lots of easy mistakes are not caught early.

- automatic memory allocation/collection
- a big winner in my book

- rapid type code to run cycles.
- if you have never had time to make a coffee each time you compile then you don’t know how lucky you are.

So what wins for me? Well at the moment Python scores better than anything else I have used (especially when you add the indentation for block structures which must score highly on any Poka-Yoke scale).

Talibanism in Technology

Interesting article Talibanism in Technology, about how women in technology are invisible.

But a terrible site design to read it. a) the page reloads automatically every few seconds to give different adverts b) the print friendly version loads into a popup window with no toolbar or menu. With Mozilla Firebird in default configuration you have no way of printing the printer friendly version.

So the story is worth reading but the site must have been designed by men ;-)