The Aftermath (by )

I'm still tidying!!!!!

The party detritus still covers our house!

Thanks everyone who came, brought food, helped in many and varied ways and big thanks for those who have stayed to help me clear the devestation!

Jean is loving her presants - we are rationing them - so she is still excitedly opening them everyday 🙂

Eyes (by )

As I've mentioned before, I have a lazy eye.

To recap, this is because I have really bad vision in my left eye - I'm astigmatic - and have been that way since I was born, so my brain didn't properly develop to use the blurry vision that eye gave; it just focussed on my right eye. Having very different vision in each eye is called Anisometropia; when this causes a lazy eye, it's known as refractive amblyopia.

Anyway, we are of course concerned that my eye badness might be a genetic trait, so we want Jean checked for it so that if she is also anisometropic she can be treated and not develop amblyopia.

So we raised this concern with the health visitor, and she arranged an appointment with the orthoptic screening clinic. A letter duly arrived telling us to attend the "orthoptic service filter screening clinic" at Stroud general hospital this morning.

Sarah and Jean (with Sarah's father driving) set off this morning, only to find that Stroud General Hospital has an orthoptic filter screening clinic every third Friday of the month - last Friday - but their database knows nothing of Jean anyway.


This makes me inordinately sad. I'm a bit prone to rolling in self-pity about my eye - I know it's only a minor thing, I can see and drive and stuff, but for whatever reason I'm easily upset about it. And I'd hate hate hate to think that I might pass it on to Jean.

However, while researching it for Jean, I come across:

To quote Dr. Leonard J. Press, FAAO, FCOVD: "It's been proven that a motivated adult with strabismus and/or amblyopia who works diligently at vision therapy can obtain meaningful improvement in visual function. As my patients are fond of saying: "I'm not looking for perfection; I'm looking for you to help me make it better". It's important that eye doctors don't make sweeping value judgments for patients. Rather than saying "nothing can be done", the proper advice would be: "You won't have as much improvement as you would have had at a younger age; but I'll refer you to a vision specialist who can help you if you're motivated."

Every amblyopic patient deserves an attempt at treatment.

Treatment of Amblyopia


Anisometropic amblyopia: is the patient ever too old to treat?

I've spent years having opticians take one look in my left eye, shake their head sadly, and tell me nothing can be done. 🙁

Anyway... enough wallowing. We need to find out how to get Jean tested, that attempt having failed! Prevention is better than cure.

XML (by )

For ages I've been considering writing an egotistical "ha ha I was right" post about how, back in the day, I was the devil's advocate on the XML-DEV mailing list for continuously bickering about how people kept hyping XML as a data interchange file format, rather than as a document markup language; while nowadays, the idea that XML is better than various alternatives for data interchange is no longer widespread, and many consider it somewhat unpleasantly heavyweight compared to JSON, YAML, CSV, and so on.

Seriously, sometimes people get the idea that XML is lightweight and simple - "it's just text, plus angle brackets that make up elements and stuff" - but they don't realise that a standards-compliant parser has to have a hell of a lot of character encoding logic; compliant parsers must reject documents containing Unicode characters not in an extensive list, must accept various different character encodings (yet a valid XML document may use ANY character encoding, meaning that a standards-compliant parser is not guaranteed to be able to decode a standards-compliant document), etc. And that's before we get into the higher-level semantics of What Do Namespace URIs Mean? and Should I Use Attributes Or Child Elements? and Does Giving Each Element Or Attribute An English Name Make XML Self Documenting? and so on.

Uhoh, I just started to rant. Sorry. The point of this posting is meant to be that I was going to have this big long rant about all the problems with XML as a data interchange language (although, for the record, I quite respect it as an actual markup language; XHTML and DocBook are nice), and how I was actually accused by an XML fan of being part of a conspiracy of folks who were pushing "inflexible complicated nonportable binary formats" as being better than XML purely because we recognised that XML was the Wave of the Future and would destroy the market for our software (alas, I've yet to find a link to that message in the XML-DEV archives, perhaps partly due to XML-DEV changing list host - or was it an offlist discussion? Can anyone remember it?)

...but as I was preparing my big XML rant, I came across a much better-written (meaning: less bile-ridden) writeup that lists pretty much every problem I have with XML for data.

So go and read that instead, and leave me to mutter darkly.

Although I can't resist quoting:

The Web as we see it has stagnaged since Microsoft wiped out Netscape. But all of the most innovative emerging technologies on that front are XML-based: RSS, SVG, XUL, XForms. It is way too early to say that XML didn't change the Web. Give it five years.

...from 2002, nearly 5 years ago, when I suggested that XML wasn't going to change the Web as we knew it - RSS is widespread, SVG still needs a special browser plugin, dunno about the others, and the Web looks pretty similar to me.

Splay trees, compression, encryption, and embedding (by )

There's a little-known data structure with some useful properties; the Splay tree.

It's quite a useful data structure in its own right, but it also has interesting applications in data compression, and cryptography...

Read more »

Integrated Life Management (by )

I used to keep a todo list in OmniOutliner, with the help of an AppleScript that sucked up completed tasks into monthly archives, so I could easily tally the Time Spent column to generate invoices/timesheets for hourly-rate work.

However, then one client set up their own task management and timesheeting app, so suddenly I had to juggle their system for that client's tasks, and my own system for tasks relating to other clients, my internal projects, and personal tasks. Without one integrated list, it was then hard to produce a single prioritised list of what I should do next.

However, there was trouble even before then; lots of little requests to do work come in by email. I either do them there and then, reply with a reason why not (such as asking for more details), forward the message to delegate it - or flag it as a todo and come back to it later. However, those flagged todos tend to get lost amongst the drifts of spam and old emails. I really wanted a button in my mail client to turn an email message into a todo item. Most ideally, I'd want a RT instance, to manage correspondance relating to a task. But again, that would not be integrated with my todo system.

Read more »

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales