Monday, December 29, 2008

New version of Hyper

Hyper is a Smalltalk library available under the LGPL which implements RFC 2616 and friends aka HTTP. You can use Hyper to build a web server or a web client. As an example, you could use Hyper as an HTTP server underneath Seaside (a rather cool website content library).

The new version is 1 340 and can be found in the Cincom public Store repository. This version picks up a number of changes made by Dale Henrichs of GemStone. Thanks Dale!

There are no big changes here, but if you happen to want to run a robust HTTP server for Seaside from within your Gemstone database, then this is the version for you.

Have fun :-)

Wednesday, November 19, 2008

An interesting detour or three

Well, I've had a very interesting second half of the year. Unfortunately 'interesting' has not included as much OpenSkills and open source coding as I would have liked, but it has included:
  • Home hunting
  • Home buying
  • A rather exciting trip around the Med' and through the Suez Canal to see Petra, Luxor and Cairo among other things
  • Getting the new place ready to live in
  • Moving into our new home
  • Dad's 8oth (happy birthday dad)
  • And some fun with my paid-for work as I'm engaged with a bank at the moment
But now we have the boxes unpacked in the new place. The Internet connection is good. So, no excuses. I must get on and do the things I have been promising myself and others. The list is long. ... but there are still some pictures to hang and shelves to put up ... ah, well.

Saturday, October 04, 2008

PDF and Smalltalk

PDF is a very handy way to deliver documents over http and there are a number of ways to do this from within Smalltalk. A write up of several techniques can be found here: PDF in Seaside

I'm one of the main authors of the SPDF library, so it's nice to see it listed among the options. SPDF was developed for use in the insurance industry where 'forms' needed to be produced on the fly, sometimes including TIFF images. SPDF did it's job well enough for the problem at hand, but it's capabilities are rather, ah, narrow.

Having said that, the library is an implementation of the PDF spec, so the terminology of the spec is reflected in the Smalltalk implementation (e.g. data structures and class & method names) ... so it should not be too hard to implement more of the spec as and when needed.

As a case in point, on a recent project I used the SPDF library to produced documents that required automatic line breaking and breaking over pages, and even using the Frame classes to have text flow from a rectangle on one page to the same rectangle on the next page - which happens to addresses some of the weaknesses of SPDF (correctly) identified in the write up.

The current version of SPDF is available from the Cincom public Store repository.

Sunday, September 28, 2008

Reasonable article, silly spin

A recent Computing article looked at the dangers of using externally sourced software when 'selling' a software 'product'. They pointed out that the terms of licenses for the 3rd party software may be problematic when selling-on bundles, or even when selling a company which made money that way.

Absolutely. Think what might happen if a company did not comply with a license from Microsoft, Adobe or Oracle ... swarms of lawyers may well blacken the skies, or perhaps just the BSA.

But the unfortunate thing about this article is that it does not promote general diligence when it comes to software licenses, instead it takes a pot-shot at 'open source' software:

Open source's dark side by David Boutcher & Bob Stankey

Their silly stance rather dilutes an important message, i.e. make sre you understand the licenses of the software you depend upon.

Sunday, August 24, 2008

EXDI fix for PostgreSQL in VisualWorks

Here at ESUG I planned to work on my syslog code and presentation. Michael Prasse had other ideas. Michael uses the PostgreSQL library for his app at work, but there was a problem. For some kinds of nested queries the library lost the plot.

Well, a camp smalltalk session sorted things out nicely.

Michael is going to do a bit more work on this back at his work offices, and then it will be released along with the rest of the PostgreSQL library.

Thanks to Michael for an interesting debugging session. Now, back to syslog.

Monday, June 23, 2008

The Economist covers the Lisbon Treaty

You'll have to buy a copy of The Economist for the details, but the cover of this week's edition captures The Economist (and my) view of the treaty:


Tuesday, June 17, 2008

Petition to PM: No to the Lisbon Treaty.

If the Lisbon treaty is something you would have liked to have the chance to vote against specifically, now you can on the PMs petitions wib site. As is often the case, the wording is less than perfect, but the sentiment is spot on:

Petition to: Respect the result of the Irish referendum and abandon the attempt to ratify the Lisbon Treaty.

Sunday, June 08, 2008

Non-blocking sockets in VisualWorks - the problem

I want to be able to know immediately when the other end of a socket connection closed the socket when using TCP sockets in VisualWorks. I need this for my work on Slaps, the smalltalk LDAP library.

Here is something you can try to see the issue. Run the following code and your image will wait for an inbound socket connection on port 12345. Use "telnet localhost 12345" to connect, enter a few characters and hit enter (whereupon telnet sends the characters over the socket to your server). Now you'll hit the first halt in the code. At this point close the telnet session (+] and then "quit" works for me). Now in the debugger, just press proceed and you'll get the next halt pop up - no exception indicating that the socket has closed by telnet. You can keep on reading from the socket for ever, getting zero bytes each time. So how can I get an exception when telnet (or the other end of any TCP socket) has closed unexpectedly? This post is already too long so I'll put what I've found in another post.

| serverSocket connectionSocket |
[|buffer octetsTransferred readOctets actuallyRead|
serverSocket := SocketAccessor newTCPserverAtPort: 12345.
serverSocket listenFor: 10.
connectionSocket := serverSocket accept.
buffer := ByteArray new: 100.
octetsTransferred := connectionSocket
readInto: buffer
startingAt: 1
for: 100.
readOctets := buffer copyFrom: 1 to: octetsTransferred.
readOctets halt: 'Now close the client connection'.
octetsTransferred := connectionSocket
readInto: buffer
startingAt: 1
for: 100.
octetsTransferred halt: 'Any exception? Nope.'.
actuallyRead := connectionSocket writeFrom: readOctets.
actuallyRead halt: 'Any exception? Nope.']
ensure: [
connectionSocket notNil ifTrue: [connectionSocket close].
serverSocket notNil ifTrue: [serverSocket close]]

BBC NEWS: "ID cards 'could threaten privacy'"

Good to see that some MPs are slowly working out that, far from reducing identity theft, ID cards will probably make identity theft a bigger problem:

BBC NEWS | UK | UK Politics | ID cards 'could threaten privacy'

The UK identity card system is a naive idea backed by the people who stand to make lots of money from supplying the support systems.

Sunday, April 20, 2008

The mystery of the double emails

Since the last upgrade, the OpenSkills membership management system (MMS) has been sending out double email messages to some people in some cases.

Here's why:

The objects that make the MMS tick are Actions. There are actions for checking email addresses, confirming OpenPGP keys, checking account status ... in short everything that needs doing in the background is done by an Action object. Each action, when completed, can be followed by one or more other actions and these are held by each Action in a Set called responseActions.

The start of the trouble was that for older version of the MMS I needed an implementation of the messages "=" and "hash" for Actions to help with using a relational database as the primary persistence mechanism when reading responseActions back in.

Now that the MMS runs in the GemStone OODB, the "=" and "hash" are no longer needed (because the database understands object identity) ... but the methods were still there. To add a little spice note that the "=" and "hash" methods were based on the external ID of the action and the identity of the class of the action (there are many many kinds of, and thus classes of, Action).

Now we move forward to the last MMS upgrade which involved a schema migration within GemStone. At the point in time that the upgrade was in progress there were two Action classes in existence, the old one and the new one.

... and through a mix up with a time machine, class versions, hash and = and a schema migration some actions ended up with duplicate actions in their responseActions.

To use one concrete example to explain what happens next: Each account review action adds itself as a responseAction (since reviews automatically happen). In the broken case each account review had two instances of itself in the responseActions Set (oh, yes). This meant that for those cases the same account review messages were sent out twice. Every time.

The fix was to make responseActions an IdentitySet, remove the "=" and the "hash" methods from Action and run a quick fix script to have every action rebuild it's response actions. All fixed now.

And sorry to those people who have suffered from the mysterious double emails.

Thursday, April 17, 2008

Smalltalk PostgreSQL drivers

The latest version (1.4 102) of my Smalltalk PostgrSQL driver library has just been submitted for the next release of VisualWorks Smalltalk. This is mainly just a bug fix version, but I do use some new non-blocking socket code hence bumping from 1.3 to 1.4.

This new version should work in any Smalltalk dialect for which there is an implementation of the Sport portability layer.

VisualWorks users can just wait for VisualWorks 7.7 to come out, or if you want to try the new driver version now you can pick up the parcels from SourceForge.

Tuesday, April 15, 2008

Oyster & Tfl: No action

A couple of weeks ago I posted the response I received from TfL about the assault and detention of my wife at the Bank tube station by a member of TfL staff. I've discussed this response with people and thought about it. I'm sure TfL don't mind me taking a few weeks to respond to them, after all it took over a year for them to respond to us.

The problem with the TfLresponse is that it includes no action at all. It's all just words again. All kinds of claims are made, but there is no follow through. My sense is that because senior TfL management could not pin this on a minion, they are wishing the matter away.

This highlights the greater problem. There are systemic problems with TfL management, the main one being a complete inability to take responsibility and take action. Look at the wording of their response - it's empty of substance.

Here are some actions TfL can take today:
  • Put up posters that explain to everyone how to respond in the event of an assault by anyone, upon anyone. The current signs are all about protecting TfL staff with no help at all for the public.
  • Put the same information on the TfL, Oyster and LU websites.
  • Have the directors and managers responsible for an area take personal responsibility for problems in their area and take action to resolve those problems.
Real harm was done on that evening last March. It took TfL over one year to produce a coherent, if feeble, response. Very poor. Very poor indeed.

Lastly I feel I must comment on the barb directed our way at the end of the TfL letter. We have not sought financial compensation beyond what the broken Oyster system took when it should not have done. The childish gall in suggesting that we are gold diggers is astonishing, and just plain rude. If TfL feel the need to give to salve their conscience, let them give to a charity.

Friday, April 11, 2008

In Europe copyright infringement is naughty but not a crime

Despite the headline, this BBC article has nothing to do with ships:

BBC NEWS | Technology | Europe rejects anti-piracy plans

Rather, we see that Europe has wisely refrained from criminalising copyright infringement. Infringing copyright in Europe is still unlawful of course, but it's not something the police will arrest you for. It's a civil matter.

For real news about piracy, see here.

Wednesday, April 02, 2008

MOOXML: sad day for ISO & world

So, Microsoft have succeeded in undermining the ISO standards process to the degree that their half baked non-specification, the Microsoft Office Open XML (MOO-XML) format (which remains unimplemented by anyone anywhere, including Microsoft) has been dubbed a "standard" by the previously trusted standards body ISO:

Official: OOXML approved as international standard | The Register

Groklaw - And now the appeals and reactions while OOXML sits on hold

To paraphrase one of today's quotes: This outcome is a clear loss for the customers, technology providers and governments that want to choose the format that best meets their needs and have a voice in the evolution of truly open standards.

I hope that ISO has sufficient integrity and courage to undo this mess. If not, Microsoft have won a huge victory against their mortal enemy: open standards and an open market.

Monday, March 24, 2008

>1 year later, TfL respond

At long last, TfL have made a serious attempt at addressing the issues raised by the incident, over a year ago, in which my wife was detained and assaulted by a member of TfL staff because a failure in the Oyster system meant her card didn't work correctly.

Sorry this is quite long, but since I have blogged for so long about this it seems only fair to show you all of what TfL have to say. Note, though, that this letter is not actually from TfL, it is from London Travel Watch who seem to be acting as editors ...

Dear Mr Badger,

Subject: Dissatisfaction with Oyster

Thank you for your recent email, TfL have now provided a response which was received on 14 March 2008. Tfl apologise for the delay in replying.

In order to answer the points raised, TfL have answered them one by one and I have set this out for you in the same format below; the bold text being your further questions.

TfL need to acknowledge that there are systemic problems with the Oyster system and the training of station staff regarding the Oyster system.

By and large, TfL say the Oyster system has proved to be a success. Its introduction has reduced congestion in ticket halls, as well as allowing station staff to be more flexible, out with the customers where they are needed. However, there are occasions when an error will occur on a card and they do sympathise, as this can be very frustrating. Fortunately, they say the majority of these problems can be resolved by their Station staff. That said, some more complicated issues will require the help of specialist Oyster staff. This is due to the significant scale of the Oyster system, as well as the complex mechanisms and procedures that govern its operation. We would agree with TfL that on the whole Oyster has been a success, but there have been issues and this could be put down to it being a new system.

In terms of the training of their staff, all London Underground station staff undergo an extensive three week initial training programme, before taking up their post within the station. During this course they are trained to effectively provide customers with support, advice and assistance in many areas including Oystercard protocol. This training is further consolidated by an additional two weeks of mentoring with a senior member of staff.

TfL say with the ongoing support of their training and development department, station staff continue to be trained, and develop the appropriate skills to ensure excellent customer service standards.

TfL need to explain what station staff should be expected to do in
situations such as the one we suffered.

If an error occurs on a customer's card, TfL say a Customer Service Assistant (CSA) should take them to the ticket office where a statement can be printed. If this does not resolve the issue, the CSA has access to further information from the staff Oyster helpline. London Underground Station staff are the public face of TfL. As such, they are expected to be courteous and respectful at all times. They are sorry that your experiences were contrary to this.

TfL need to explain what passengers should do in situations such as the one we suffered. (e.g. should we have immediately called the police?)

If a customer wishes to complain about an incident or a member of TfL staff, they can speak to the Station Supervisor. If this is still not sufficient, the supervisor should explain the complaints procedure, where matters can be investigated further. If the incident is a particularly serious one, the customer can demand that the British Transport Police are contacted.

Most of all, TfL need to take this matter seriously. Some of their words suggest they are taking this seriously. Their actions say very loudly and very clearly that they are not taking this seriously at all.

TfL say they are eager to resolve this matter to your satisfaction. In order to do this however, they require a detailed account of what happened (e.g. in what way was your wife assaulted), including a detailed description of the member of staff involved. Without this information, they say there is very little they can do to pursue this incident further.

If you would like to meet with an appropriate manager to discuss the matter, TfL say you should phone Cassius Powell, the Group Station Manager (GSM) at Bank station on 020 79189875.

TfL do not feel it would be appropriate to offer a further goodwill gesture, as they feel that the earlier cheque was sufficient. They also do not wish to give you the impression that they are simply giving you money in the hope that you will drop the matter. As already mentioned, TfL repeat they are very keen to resolve this incident to your satisfaction, and the emphasis they feel must be on that.

The offer of a meeting might prove helpful as face to face contact rather than correspondence can be beneficial. If you have any comments or questions on the above, please let me know. If you are dissatisfied and in order to see if we can progress this further with TfL, it might be helpful to state why and to do so in point format in response to their answers.

Yours sincerely

Wednesday, March 19, 2008

Patent Office loses software not a patent case | The Register


Patent Office loses software not a patent case | The Register

IMO the UK should not accept software idea patents at all but it seems that the EPO think that the UK patent office should grant even more of the ghastly things.

We really need the legislators to step into this and make it clear, again, that software really is not patentable.

Sunday, March 16, 2008

An Oyster Anniversary

It's a year ago today that my wife was detained and (verbally) assaulted by a member of TfL staff at the Bank tube station.

After a year TfL have essentially done nothing about this incident. They did give us a refund to cover the financial cost of the bug in the Oyster system, but have not done anything at all about the far more serious matter of the assault. So, what are we looking for out of this?
  • TfL need to acknowledge that there are systemic problems with the Oyster system and the training of station staff regarding the Oyster system. (e.g. staff don't know how to react when the Oyster system causes problems)
  • TfL need to explain what station staff should be expected to do in situations such as the one we suffered. The public should know what to expect.
  • TfL need to explain what passengers should do in situations such as the one we suffered. (e.g. should we have immediately called the police?)
Most of all, TfL need to take this and like matters seriously. Some of their words suggest they are taking this seriously, but their actions say very loudly and very clearly that they are not taking this assault seriously at all.

The TfL method for dealing with such serious matters appears to be to absorb them rather than to respond to them, they are a veritable tar baby. But if TfL are hoping that this matter will go away if they just ignore it for long enough, they are going to be sorely disappointed.

Monday, March 10, 2008

Bin liner sales to soar in London

We use plastic shopping bags as bin liners, among other things. We even have a nice linen dispenser for them so newly acquired bags squish in the top and we pull them out of the bottom when needed.

But it seems that we will have to start buying plastic bin liners instead of using the shopping bags even though ...

Plastic bag campaign falls apart at the seams | The Register

... And the bin liners are not as good as the shopping bags because they don't have the handles we use to hang the nominated trash bag on the kitchen cupboard door.

As Private Eye might say - it's trebles all round for the bin liner manufacturers and the stores that will now sell lots more of them.

Saturday, March 01, 2008

MOO-XML: not quite dead yet

It looks like ISO are ridding themselves of the MOO-XML (Microsoft Office Open - XML) format embarrassment:

Groklaw - OOXML Fails to Get Majority Approval at BRM - Updated 2Xs

... but I think we can expect some last minute squirming and manipulation as Microsoft desparately try to salvage their attempt to undermine ODF with their proprietary format.

Microsoft dread having to compete on merit, but perhaps it would do them some good if they were forced to do so rather than continuing to abuse their monopoly position in the market.

Thursday, February 28, 2008

Trust me not

The biggest problem with the ID cards being proposed by the UK government is trust, and here is a great example of it being misplaced ...

The public have been trained to trust the "Chip and PIN" (C&P) system of card payment authorisation. The banks in the UK have sold the idea that C&P is totally safe and thus any misuse of a card and it's PIN is the responsibility of the card holder. Under a deluge of relentless marketing the public have indeed come to trust C&P. Of course the public should not have been so trusting, as is now clear.

If you have time, do watch the BBC Newsnight video on this subject. (BTW, Jane Badger is not a relative of mine, as far as I know).

... For every mention in the video of the term "Chip & PIN" replace the term "National Identity Card", and you have a flash forward to a sampling of the kinds of identity theft problems that any national ID card will cause.

It is not the technological weakness of such systems that cause the big problems, it's the trust we the public place in them.

And as an aside, I had a C&P transaction fail just last week in London. I immediately went to my bank and said I wanted a note on my file that something weird had happened at the particular store. The response from the bank staff member was initially that I should not worry because C&P is perfectly secure (in fact she was rather annoyed that I was bothering her with such a 'trivial' matter).

Trust them not.

UK ID card strong points

The centralised UK identity card proposals are pretty stupid in every dimension. The strongest bits are probably the IT security measures:

Minister defends National ID Register security | The Register: "Meg Hillier"

... but IT security is the smallest part of the problem. Look at the recent security leaks and personal data losses and you'll see hardly any cracked systems. Mostly the problem is people being asked to look after highly valuable data and either being corrupted or making a stupid mistake.

So the fact that great care is being taken to make the IT parts of the proposed system secure just makes the most secure bit more secure (perhaps). The gaping holes are elsewhere.

If there is an ID card system (and I hope there is not) then it should be distributed to minimise the value of the data in any one place. All the personal data should be under the control of the individual subject (e.g. on the card itself) and this should be digitally signed so that if a duly authorised person wished to see the data they can ask the subject, get the data from the card and verify that the data is good.

Tuesday, February 19, 2008

Sydney STUG meeting on Tuesday 26th

The Sydney Smalltalk User Group will be having one of it's irregular meetings on Tuesday 26th Feb at the James Squire Brewhouse at Kings St. Wharf in Sydney. The meeting will be in the Ward Room which is at the back of the pub and will start at 18:30.

Andrew McNeil has made the arrangements and as he says:
Speakers so far who have put there hands up -
Michael Lucas-Smith -- Seaside / Web Velocity
Myles Byrne -- a code browser written in squeak and seaside
Bruce Badger -- Slaps, the Smalltalk LDAP library and a summary of progress on the Smalltalk ANSI standard.

Cincom is even supplying a new nibbles to kick things off, so get there early.
To keep up with such events join the Sydney Smalltalk User Group mailing list.

Sunday, February 17, 2008


In Australia, a car with lots of low end power is said to have "grunt".

For example, the taxi we just took from Sydney airport demonstrated enormous acceleration from 0 to about 20 KPH swiftly followed by a demonstration of heavy braking. This was repeated for the whole journey through heavy traffic to the CBD. This was grunt in action. It made me feel quite ill.

London black cabs have fairly small diesel engines which accelerate the cabs quite well, but compared to the Sydney cabs the acceleration is pathetic ... but, the passenger experience in a London cab is much smoother because the driver must nurse the momentum of the cab, so no violent acceleration and less heavy braking. Less scary too.

It also helps that London cabbies almost always know the way

Friday, February 15, 2008

In my lifetime

More thoughts on the extension of copyright terms:

Copyright really is a deal with the public where the holder of the copyright gets a temporary monopoly and the public get to have the work in the public domain when the copyright expires.

I think that there should be a chance of seeing both ends of the deal. By that I mean that the tunes I heard when I was a kid should have entered the public domain during my lifetime (assuming three score years and ten).

The Register adds their view:

EU commissioner backs record biz on copyright extensions | The Register

So the big winners in any term extension will not be the starving artists, who will continue to starve anyway. The big winners will be the record companies and a small handful of super-stars.

I think a reduction to 25 years for all new copyrights would be a better move. This could be introduced over a long period to avoid any big bangs. While I may not see the music of my childhood in the public domain, it should be a goal to ensure that future generations do.

Thursday, February 14, 2008

Copyright dilution

Copyright is supposed to be an incentive for creativity. The current term of a copyright is so long that people have a reduced incentive to be creative if they have had one or two smash hits (whether music, literature or software). e.g. the oft cited, and rather wealthy, Sir Cliff Richard.

So, yes, change is needed. But not this:

BBC NEWS | Business | Bands set for longer music rights

Extending the term of copyright reduces the incentive to be creative and so dilutes the value of copyright to the public at large, the very same public that is supposed to be represented by people like Charlie McCreevy, the European Union's internal market commissioner.

The commissioner wants to extend copyright terms because, he claims, the moral rights of the performers are at stake, but what about the moral rights of EU citizens? So a few wealthy people want to get even more money from their existing body of work, but what about the other side of the coin - what do the public get out of this that they do not already have?

Just like home

I think my namesakes keep a tidier home than I do! ...

BBC NEWS | Science/Nature | Secret lives of badgers revealed

... though we have less fighting and we do tend to use electric lights at night.

Study protocols with bridges

While working on the Slaps LDAP library I wanted to study the messages exchanged by current implementations of the LDAP protocol, capturing LDAP messages and adding them to the Slaps SUnit test suite before building a Slaps instance to directly respond to the client. I have done this using a couple of bridges that can sit between any client and server and capture messages. One is the octet bridge and the other is a parsing bridge.

The octet bridge does not try to understand the messages flowing back and forth between the client and server but looks out for bursts of traffic. These bursts are then logged using the OpenSkills logging library. Here is an example of a captured burst between the ldapsearch LDAP client and the OpenLDAP server:
<t>Thu, 31 Jan 2008 05:52:38 GMT</t>

This sample can then be added to SUnit tests for the Slaps parser. Once we have captured the messages for an exchange we are interested in, perhaps a client logging into a PostgreSQL database and PostgreSQL then issuing an LDAP request to see if that client can indeed login, we can set up the SUnit tests and make sure the Slaps parser can handle the various messages in the flow.

Now we can use the parsing bridge instead of the octet bridge. Instead of looking out for bursts, the parsing bridge relies on the Slaps parser to know when a complete message has been received. The parsed message is then re-encoded by the Slaps library and sent on it's way. Once we have the entire exchange passing to and frow through the parsing bridge without any problems we know we can reasonably handle the messages in this kind of request.

The last step is to use the Slaps library to respond to the LDAP messages directly. For example, in the case of OpenSkills we want to manage access our internal Store repository. With Slaps we can refer to the objects that make up the membership system to answer an LDAP authentication request from a PostgreSQL server.

Using bridges and SUnit testing to build up support for a protocol is not limited to LDAP and Slaps, and could be used for any streaming protocol. These techniques are not new, of course, but it is nice to have this all working smoothly in my Smalltalk development environment. It certainly makes working on Slaps much easier.

Wednesday, February 13, 2008

Another crook magnet

Here we go again. This time the UK government want to create a valuable concentration of personal information about school children:

Government wants every English child on 'secure' database | The Register

This will be yet another valuable source of identity information for the villains of the world. A really bad idea.

How about this instead: For each subject (initially a child student) there is a digital file. The subject (once 18, or their guardians before that) may have a copy of this file and the current places of learning may have a copy of this file. Nobody else. As the subject progresses through their education, records may be added to the file by the people teaching them. Each record is signed using OpenPGP. Each person who may sign such a record must have their key signed by an approving authority and their key must be on a public key server.

When the subject moves from learning to working they may wish to submit some of the records to a potential employer (for example records of recognised qualifications but perhaps not the results of a spelling test taken when they were 12). The employer can verify the education record by confirming that each record was signed by someone who, at the time, was authorised to do so.

Once the subject leaves education and becomes an adult the file must not be retained in any form by any party without the authorisation of the subject.

Clearly, the subject should be very careful indeed to make sure that their file of education records is safely backed up since if they asked for every copy to be destroyed, and they then lost their own copy, the file would be irretrievably lost.

But I think such a distributed system would be much better than another centralised government system and crook magnet.

Tuesday, February 12, 2008

London Congestion Charge improved?

Ken Livingston, the Mayor of London, has announced changes to the so-called "congestion charge" for central london:

London Congestion Charge becomes CO2 tax | The Register

This has been a very confused programme. It certainly has not prevented congestion in the City of London where I live and work, and many people think the charge is just a ruse to raise more tax.

I'm comfortable with the idea of a charge to reduce the impact of traffic on the City, and this new change seems to be an improvement. We will see.

... but I would prefer to see a scheme where the overall polution impact of a vehicle was assessed in terms of:
  • Air pollution (which is what this new change does)
  • Sound pollution (Harleys pay more than BMWs)
  • Size (Hummers pay more than Minis)
The new CO2 based system must have some way of working out what charge applies to each vehicle, perhaps by make & model, and this same catalogue could hold size and noise data.

Lastly, the scale should be sliding. By that I mean that over time the tolerance for air pollution, noise and large vehicles should be reduced.

But Ken's CO2 move is a step in the right direction, I think.

Monday, February 11, 2008

Microsoft & email protocols

Few things have existed on the Internet for longer than email. Standard protocols such as SMTP and POP have been with us forever it seems, and even the relatively new IMAP is widely used. Email interoperability has been working pretty well for a long time.

Microsoft bought HotMail, who at the time were using BSD and were conforming to the expected email standards. Microsoft have changed that:

Hotmail vs Live accounts � FastMail.FM Weblog

So much for bleating about their desire for interoperability. Once again, Microsoft's actions speak much more loudly than their words.

So, what could we expect if Microsoft were allowed to buy Yahoo!? More warm words about interoperability no doubt, but much more chilling action pulling in exactly the opposite direction, if history is any judge.

Wednesday, February 06, 2008

Fix My Street and more

A group called My Society have put together a number of really useful sites to help people interact with all levels of government in the UK.

A pedestrian crossing close to where I live has a broken request button. What to do? Who to call? It's Fix My Street to the rescue! I just enter my post code, click on a map to set a flag pointing to the offending crossing, briefly describe the problem ... and Fix My Street sends a report to the appropriate body (the City of London in my case). Brilliant! The system lets the council respond to the problem by, for example, saying when and how the problem was fixed.

Another application from My Society is Write to Them. Again I start with my post code and in this case I get a list of all my representatives including local aldermen, MP, MEPs etc. I click on one of these and a letter template pops up with the correct form of address in place. I just need to enter the essential text of my message. After confirming that I really want to send the message (by sending me an email message), Write to Them send off the message to the representative. After a couple of weeks Write to Them sends me another email message asking if I heard back from my representative, adding my response to a database which records who is good at responding to the people they represent and who isn't.

My Society has other systems too, and what they all have in common is providing a very easy to use wrapper around public services that should be easy to use anyway, but often are not.

Tuesday, February 05, 2008

Oyster vs. Nat West

I got an email message from the Oyster card system this morning. It seems that the "auto top-up" failed. No information about why. I followed the link in the message and was simply asked to reconfirm that I really did want the payment to go from the card I had nominated (the one they said had "failed", remember?). I clicked on the "yes I really did mean that card" button and was told that all was now well, except ... there is still a "payment failed" message showing on the screen.

To the phones. TfL have one of those for-profit phone numbers that mean that they earn more money when they force their customers to call them, and also by keeping them on the line as long as possible. After jousting with the options for a while, I went for the one I knew would work right away; the "I want to buy something from you" option. Sure enough, a real person answered. This person was very nice and said that everything looked fine on the card, but she was unable to tell me what the problem was with the payment, for that I had to speak to another department. I managed to persuade this person to just put me through rather than go through the monster phone system again. And she did.

And so I sat in a queue waiting to talk to another person. I waited several minutes (with the Reassuring Messages and the Calming Music) because this is not a "let me give you money" number. In the end I speak to someone who tells me that everything is just fine, and that I have no need to worry. But wait a minute, I say, what was the problem that caused the payment to fail? No idea, he says. The only people who could answer that are a department that will not talk to customers (I kid you not).

At this point I am taken by surprise as the operator tells me that they will walk over to the hidden department and ask them what the problem with my payment was, and he will then call me back with an answer in just a few minutes. Gosh. Sounds good!

... and he called back! Holy moley. It seems that my bank refused the payment because of some kind of anomaly with my address. I need to sort this out with my bank. OK, I say, so what is the reference number of the payment that the bank rejected so I can call them and ask about it? I don't know, he said, ... but I'll go and ask and call you back again. Knock me over with a feather.

... and he called back again! I was not surprised at all to hear that there was no reference number for the payment request (well, of course there is, but I was not surprised to be told there isn't one) and that I'd just have to call the bank and mention TfL and the date. So, top marks for Derek (for it is he) for being the best customer service representative I have dealt with for many years. Big pat on the back there. However, no brownie points for TfL whose systems should have saved me from having to bother Derek in the first place by giving me a reference number I can use to call my bank.

At this point I should be able to go via an on-line banking system and see exactly what the problem was by entering the id of the failed transaction, but no, no such system exists, even if I did have a reference number. And so to the bank and yet another for-profit phone number. The bank spends ages digging through their systems while I am on the phone. I get bulletins every few minutes as they look through one system after another. In the end, they can't see any problem, can't see any rejected transactions. No idea. What should I do? Call Oyster because they will know exactly what the problem was at their end. Can I get Nat West to talk direct TfL to sort this out? Not a chance.

In the end I just have to be happy that both my bank and Oyster think that my accounts are in a good state. Nobody knows what the problem was, and only I care.

So, what can we learn from this mess? First that good customer service is important and apreciated (thanks again Derek). Second that if a customer is presented with a problem there must be a way to understand what the problem actually is (or was) so that there is confidence that the problem will not re-occur. Lastly that bouncing a customer back and forth is not nice. One or other of the organisations should have offered to call the other and get to the bottom of the problem.

BTW, the other matter with Oyster/TfL is still outstanding. Very poor show indeed.

One last thing: standards. If there was a standard for exchanging financial information it could include a reference number which would be valid regardless of whether the transaction was accepted or not. In cases where a transaction fails I could receive the exact data structure that (in this case) Oyster tried to send to my bank. That would be a big help.

Friday, February 01, 2008

Slaps speaks

Slaps is a Smalltalk LDAP library that can be used to implement either LDAP clients or LDAP servers. Slaps talks directly via sockets to other LDAP clients and servers.

Today I have Slaps talking nicely with the command line ldapsearch and OpenLDAP. Woohoo!

There is still more to do, but from here on it should be a matter of extending a working library rather than nutting out fundamental problems.

Wednesday, January 30, 2008

Microsoft: real competition is unfair

Microsoft love to throw their monopoly-backed weight around, but when technical weakness finally leads to a failure in the market, it's not their fault for making poor products, it's someone else. IBM this time:

Microsoft: IBM masterminded OOXML failure - ZDNet UK

But what is funny in this specific situation is that Microsoft blamed Sun as being the sole supporter of the ODF standard not so long ago, and now they blame IBM for the same thing. This smacks of lashing out in panic.

With any luck we are starting to see the market become selective again. That would be good news all around, even for Microsoft because it might give them the incentive to start producing competitive software again, something they have not done for over a decade now.

Sunday, January 27, 2008

"Forward!" they cried from the rear ...

One group of people have not been exposed to the recent losses of personal data by HMRC. "Important" people including our glorious "leaders":

BBC NEWS | UK | 'Double standard' on data safety

How about leading from the front, guys?

Thursday, January 24, 2008

UK ID card scheme close to collapse?

The endless procession of government data loss incidents has woken people up to the dangerous reality of a centralised identity system. The government have been stretching out the time scales so that adult ID cards would only be mandated after the next election. But even so the government have plugged on with this lemon.

But is the scheme starting to fall apart by itself? ...

Accenture and BAE pull out of ID card project | Channel Register

I hope so

Monday, January 21, 2008

Groklaw on the BBC's iPlayer

Groklaw do a great job of bringing all the threads together. Here is their write-up following the recent grilling given to the BBC by UK MPs ...

Groklaw - The BBC's iPlayer Goes to Parliament, by Sean Daly

Tuesday, January 15, 2008

British Gas come through!

I wrote about some problems I was having with British Gas.

It turns out that I was not alone in raising the issue that a formal report listed a gas safety problem that an engineer said, verbally only, that we should not worry about.

The very nice people I spoke to in the end said that from now on they would include a letter with the report explaining that when a device was listed as being defective that meant only that it did not meet the standards required of new installations, but was perfectly fine and safe for existing ones. I now have a copy of that letter to file away with the report I must keep for two years.

So that's OK, then. And thanks to the very nice people at British Gas.

Internet Explorer: really part of the OS?

The EU is going after Microsoft for market abuse again. This time the EU are thinking about tackling interfaces to office and .Net (among other things) and also the bundling of Internet Explorer.

In response to the latter I have seen a couple of people write that, really, IE is part of the operating system and trying to remove it would be, to quote one person, a "calamity".

I suspect that this is largely a word game. Internet Explorer is whatever Microsoft say it is since "Internet Explorer" is just a brand name. Certainly there is a web browser in there somewhere which one may (currently forlornly) hope would render documents made up of W3C standard elements like HTML, CSS etc.. Lets call that web browser IEWB.

So while "Internet Explorer" (whatever that might be defined as today) may indeed be an inseparable part of Microsoft's operating systems, I see no sane reason why IEWB should be.

I do hope that the EU pick up on this bundling abuse and help Microsoft to take another step towards being a competitor in an open market place rather than the creator and sole custodian of a closed one.

Monday, January 14, 2008

iPlayer - BBC grilled, but not enough

The high and mighty of the BBC attended a Public Accounts Committee meeting at the Houses of Parliament last week at which the closed nature of the iPlayer came up.

The most pointed questions on the subject came from Dr. John Pugh MP. His questions were about platform support, and the answers are pretty much what I would have expected, e.g. (taken from a Register article on the meeting):
John Pugh asked: "At what stage will you be able to download and stream to a Mac or a Linux computer?"

Mark Thompson, Director General of the BBC replied "You can do that now,"

Well, the Director General was incorrect. You can't do that now. You can stream in YouTube style with the right plug-ins, but you can't download a programme to view later using iPlayer unless you have Microsoft Windows Vista or Microsoft Windows XP and use Microsoft Internet Explorer too.

You can see the entire meeting on Parliament Live for the next couple of weeks. The questions put by John Pugh start at ~12 minutes in. In there we hear that other platforms will be supported some time in the next two years. I'll believe it when I see it.

The meeting video is in .wmv format, unfortunately, and this is the area in which Dr. Pugh did not ask the questions I would have loved to hear answered, for example:
What UK or international standards body(s) control the file and streaming formats used by the BBC iPlayer?
The answer is none, of course. All the key formats are owned and controlled by US corporations.

Oyster: no progress

In March of last year we had a very unpleasant experience while travelling on the London Underground. My wife's Oyster card failed (the Oyster system double dipped in error and made the card go into the red) and my wife could not get through an exit gate. She asked for help and was taken aside and verbally assaulted by a member of TFL staff. The member of staff made no attempt whatever to examine the card or to understand the problem. All his energy was directed at shouting and berating. After a few minutes of sport, he let my wife go.

TFL have sent us a cheque for a small amount of money which covered the erroneous double dipping by the Oyster system, but the more serious matter of the detention and assault (for that is what it was) has not been resolved. TFL have made no attempt at all to contact us to ask what happened. Through London Travel Watch we have received messages that TFL take this kind of thing very seriously, but that's it. No action.

While trying to get TFL to deal with this matter other people have told me that they have been in just the same situation themselves. The assault and detention of my wife was not an isolated incident.

Given our experience, and the reaction (or total lack of it) of TFL I suggest the following:

If you are detained and assaulted (verbally or otherwise) by a member of TFL staff it seems that your only option is to call the police right away. No internal TFL process will help you at all, so don't try to deal with TFL. Get an external party involved, i.e. the police.

That way there will be a record of exactly what happened and when, and details of the member of staff involved will be also recorded. This is important because the technique TFL use in resolving such matters, if left to themselves, is to drag the thing out so that all memory of the event is eventually lost.

Or so they hope.

Wednesday, January 09, 2008

OLPC: Intel's Duty of Care?

Being on the board of an organisation is not to be taken lightly. Directors have a duty of care towards the organisation and failing in that duty can have serious repercussions, such as being banned as a director.

So looking at this article:

BBC NEWS | Technology | Intel 'undermined' laptop project

We see :
The head of Intel Paul Otellini said an accusation that the firm had failed to deliver on promises was "hogwash".
"I don't want to get into specifics but we met every obligation that we were committed to," he said.
What about the duty of care towards OLPC, Mr. Otellini? It seems to me that Intel failed in that duty and perhaps questions need to be asked about whether the people on the respective boards should be banned as directors.

Monday, January 07, 2008


Ah, the fun one has with the big corporations in the UK. British Gas this time.

I subscribe to the British Gas "Home Care" scheme which includes an annual "Safety and Maintenance Inspection" of the central heating system. In August last year (2007) the engineer visited and told us that everything was fine. He handed over a big wad of paper to prove it, which I didn't bother to read until last month when I was doing my end of year filing.

The front page of the tome is a "Landlord's Gas Safety Record" which is a document that I am required to keep for a minimum of two years (or else, no doubt).

Right there, on that front page, the engineer had noted a "defective flue". A dodgy flue can kill people, so this is not something to be taken lightly. But why did the engineer tell us that everything was OK if the flue was defective? Eeeep!

We got in touch with the engineer who said, in essence: Oh, it's OK. Don't worry about it. Hmmm.

I called British Gas HQ and explained the situation and asked for advice. I was told that they would schedule an engineer to visit the flat and carry out another inspection from which I would get a new report. Super duper.

Today I got a message to say that the engineer had cancelled the visit since he felt that the original report was fine. Again it was: Ignore that flue defect in the report. Don't worry, be happy.

Back to British Gas HQ to whom I gave an update. I put it to them that either the report needs to be redone or I need a letter from them saying, in black and white, that they felt everything was OK and that there was indeed no need to worry. After some back and forth with some more experienced people I was told that if it's on the "Landlord's Gas Safety Record" then I *should* worry and that it was my responsibility to get have things sorted out!

I put it to British Gas that they were being somewhat inconsistent with something that could cause harm to people. I was told that the more experienced people would call me right back to discuss the matter and work out what needed to happen next.

And of course no call came. Pretty defective, I'd say.

Sunday, January 06, 2008

Intel does the dirty to OLPC

Last week we heard that Intel were so very sad, but were forced to reluctantly leave the OLPC board. They had tried to work for the good, but had been done down by OLPC politics.

But that's not how it was.

What happened was that Intel were on the the board of OLPC (a non-profit organisation) whilst at the same time trying to undermine done deals made by OLPC:

Intel Quits Effort to Get Computers to Children - New York Times

It seems fairly clear that Intel were on the OLPC board on a "know your enemy" basis in much the same way that Microsoft were on the Oasis board putting together the, now ISO standard, Open Document Format. Both Intel and Microsoft only bailed when their position became too obviously untenable.

If you are a shareholder of corporations that pull such dirty tricks you may wish to applaud. If you are a potential partner of such corporations you may wish to tread very carefully indeed.

Friday, January 04, 2008

The W3 Validator

I am surprised that so few people know about, and use, the W3C validator service. Even people who claim to be professionals in the field.

Using valid HTML makes it easier for browsers to render a page, and thus makes it more likely that a page will be rendered consistently across all browsers. A valid page also make life easier for accessibility tools, such as screen readers for the visually impaired.

So if you are creating HTML, just take the extra little bit of time to run it through the W3C validator. People viewing the resulting pages will thank you for it.

Thursday, January 03, 2008


Rob Weir sees many similarities between the tactics Microsoft is using to lock people into MOO-XML and the tactics they have used in the past, particularly with RTF:

An Antic Disposition: Those who forget Santayana...

Wednesday, January 02, 2008

Actually talking about Smalltalk

In a remarkable turn of events, we actually spent some time talking about Smalltalk at the London Smalltalk gathering. We even had a presentation:

Here we see Bryce giving forth about Exupery (an optimising Smalltalk compiler).

London Smalltalk gathering tonight

The first London Smalltalk gathering of 2008 will be happening this evening (2nd Jan) at our regular venue, the Counting House, starting from 18:00.

If you are interested in wide ranging conversation that sometimes even touches on Smalltalk, please do come along.

These gatherings happen every month on the first Wednesday of the month. The announcements are usually made on the "uksmalltalk" mailing list.