Archive for the ‘Thoughts’ Category

Take your use case and shove it.

Thursday, February 14th, 2008

UML is horrible, cludgy, trying to be all things to all men, and all in all an over-complicated method of shoehorning an OO system into a non OO modelling framework.

It’s the kind of thing that actually gets in the way of real work, the type of thing generated by some consultant ’systems analyst’ to make the development team stop programming and document the system using a godawful syntax. Then the ‘consultant’ can look at the UML diagram and say “here’s your problem, this arrowhead should be filled in” when in fact the only reason it isn’t is because the developers couldn’t give two shits if the arrowhead is filled, hashed, open, closed or even pointing to the right place.

Seriously, I’ve spent longer trying to draw the UML than I would have taken to just write the damn program. Even in COBOL.

Heroes

Saturday, December 8th, 2007

Without spoiling things for the UK citizens who haven’t been grabbing Chapter 2 via the internet (Try WatchHeroesOnline or cucirca), Heroes continues to be slightly ass-whuppin.

Despite a few slow points, the 2nd chapter (First 11 episodes of Season 2) is a good arc which really builds some characters. The ending makes you wish there wasn’t a mid-season break. Curse that Writers’ Guild strike! 

Curious

Thursday, November 29th, 2007

Why do some women who I know for a fact are taken still mark themselves as single on Facebook? As far as I can tell it’s a mostly female thing to do… anybody know why?

Adobe Cannot Design UIs

Friday, November 23rd, 2007

Why is Adobe incapable of designing sensible, coherent and consistent user interfaces?

Photoshop and Premiere, whilst being very powerful, rely on you having attended a large training course and having a reference manual next to you in order to find the bloody feature you’re looking for. Sometimes that feature may or may not work, based on a small change you made 3 weeks ago in trying to make something else work properly.

Adobe UIs suck.

OK, Enough Diana Already

Thursday, September 27th, 2007

It’s been 10 years and had countless official inquests and investigations. For the love of God, just accept them.

We’re now at the point with some people who believe that the whole thing was a conspiracy that any official report to the contrary is obviously a government-influenced cover-up of the truth. Since you will refuse to believe anything which doesn’t say “Yes, MI5, MI6 and Philip had everything to do with it and it was all an evil plot!” is there any point in pushing for more inquests?

Get over her people. Seriously.

Check mirrors, engage brain…

Sunday, May 13th, 2007

Please, don’t be this stupid. Your satnav is not to be blindly followed, and if you are unable to read instructions on a level crossing then you should not (I repeat, not) be allowed in charge of a vehicle. At all. Ever. In any way.

IFFMIX

Wednesday, November 1st, 2006

I’m going to be radical here, and propose something clever with a funky sounding name. IFFMIX. What is IFFMIX I hear you cry?

International Format For Medical Information eXchange

Sorry about the use of the X in exchange, but IFFMIE just didn’t have the same ring to it. Anyway, on to the important bit. What is IFFMIX? Simply put, it enables important medical information to be packaged into a very small format which can be understood universally. It requires no complex technology to read (Although it is recommended so you don’t have to do big maths), and can be conveyed over virtually any format. How does it work? Here goes:

IFFMIX information is a string of letters and numbers, containing some basic information followed by a series of bitfields. For those unfamiliar with bitfields, they allow a great many ‘yes/no’ options to be encoded into a single number. Each part of the IFFMIX string will be delimited with a dash, since this is a unique looking symbol.
To begin with, the IFFMIX string must be declared. This is simple, put “IMI” (International Medical Information). If anybody sees this, for example on documentation or personal ID, then they know that it can be translated into medical details.

Second comes the first bitfield, core information. This is a lot of stuff about your basic body. This can be turned into the following bitfield:

  • 1 - Blood Type Positive
  • 2 - Blood Type Negative
  • 4 - Blood Type A
  • 8 - Blood Type B
  • 16 - Blood Type O
  • 32 - Do Not Transfuse
  • 64 - Gender Male
  • 128 - Gender Female (If both genders present, assume intersexual)

Again, more information can be added by professionals as necessary. However, assume I was a male AB Positive Jehova’s Witness, I would calculate my blood ID number as 1 + 4 + 8 + 32 + 64 = 109. It is impossible to get this number with any other combination in this bitfield. At this point, some number shifting is necessary. To elegantly deal with big numbers (As bitfields use 2^n numbers they can get big fast) this number must be converted to base 16, hexadecimal. For 109, this number is 6D. If we were to zero-pad this to 6 characters, the basic info bitfield could potentially store up to 23 true/false statements. If compression such as was used for reducing 4 blood groups to 3 options (AB is A+B) is implemented, this is a lot of data.

My IFFMIX string is now IMI-00006D. From that you know I am male with an AB positive blood type and I don’t accept blood transfusions. For me, you could leave it at that. Put that number on my passport and driving licence, and suddenly a load of information which is important to paramedics across the world is right there with me.

However, assume I suffer from an allergy to penicillin and I am currently on medication following surgery, but I also donate blood and am a registered organ donor. Watch the magic of IFFMIX, as it encodes all this information into a short series of letters and numbers. This is the huge bitfield which declares anything at all that may be of medical significance. Here are just a few of the things which may needed, but as always I’ll leave it to the pros to work out exactly what’s important.

  • 1 - Allergic to Penicillin
  • 2 - Allergic to Peanuts
  • 4 - Allergic to Insect Stings
  • 8 - Is Diabetic Type 1
  • 16 - Is Diabetic Type 2
  • 32 - Has Heart Condition
  • 64 - Has Suffered Cardiac Arrest
  • 128 - Has Suffered Stroke
  • 256 - Is a Hemophiliac Type A
  • 512 - Is a Hemophiliac Type B
  • 1024 - Suffers Sickle-Cell Anaemia
  • 2048 - Is Blood Donor
  • 4096 - On Current Medication
  • 8192 - Has Had Recent Surgery (3 Months)
  • 16384 - Has Had Recent Surgery (12 Months)
  • 32768 - Is Registered Organ Donor.

In my case, I would have to put together my number as follows: 1 + 2048 + 4096 + 8192 + 32768 = 47105. Again, do the hexadecimal conversion to save space and you get B801. We’ll pad this to 12 characters, hence 00000000B801. For the curious, this is a mere 48 true/false statements maximum. However, read on for my solution to that.

My IFFMIX string is now “IMI-00006D-00000000B801″. If we put in some more symbols to break it up (every 3 characters) you get “IMI-000.06D-000.000.00B.801″. Et voila, medical details in a 27 character string. Decodable (Slowly, but it’s possible) by human hands and very easy for a paramedic in a more developed country to punch into a portable decoder. Capable of holding 23 basic personal detail statements and 48 true/false statements.

On the subject of compression, here’s my suggestion. Instead of base 16 numbers, why not use base 36? A-Z plus 0-9 allows a huge compression of numerical data. Even if similar symbols are removed (So no Is and Os) it is still possible to perform a massive reduction, albeit at a reduced manual decoding speed.

Finally, a voice of logic.

Wednesday, October 4th, 2006

I would like to draw all your attentions to this article, which covers a huge swathe of reasons on why western integration with Islamic and Arabic cultures is damn well impossible.