technology from back to front

Archive for November, 2005

Arithmetic is the Simplest Thing That Could Possibly Work

In an essay by Marvin Minsky I read over the weekend, Communication with Alien Intelligence, Minsky explores the idea that arithmetic spontaneously arises in computing systems, analogously to the spontaneous assembly of amino acids in the Miller/Urey Experiment. In the process of exploring the first few thousand simplest Turing machine programs, he and his student discovered that the only really interesting behaviour exhibited was a simple form of counting.

After a bit of musing along the main theme of the paper, there’s this interesting aside:

I wonder if it’s dangerous to make our children think so much about arithmetic if, when it’s seen this way, it leads to such a singularly barren world. Some of us discover in it a universe of different ways to add, and different ways to think up more such ways. But most children find it dull just endless, pointless pain and rote the tedium of working abstract clay too cold and stiff to mold and shape. The only ones who benefit are those who, seeing that they cannot bend the rules, distort instead the ways they’re used.

In other words, arithmetic is such a cold, inflexible, crystalline structure, that you have to be really desperate for something interesting to do with it in order to escape from its boring homogeneity.



LShift senior developer Francis Tang has contributed to the WebTst open source project.

WebTst is an open-source test management tool aimed at creating and managing user-centric testing. It’s goals include: Provide a tool to assist site developers in adding new features to their sites in a controled fashion; Provide a tool to assist site testers in making sure of the proper functioning of the site; Provide a tool to assist site maintainers in making sure of the proper functioning of the site. WebTst is a tool written in Perl and dependent on Apache.


Thunderbird’s Ridiculous Menu Structure

It so happened that, having just installed the beta of Thunderbird 1.5, one of the first things I wanted to do was compose an email. Early on in the message, I typed the word “summarise”. This spelling is correct in UK English, but clearly is not in US English, as the check-spelling-as-you-type indicator flashed up. “No problem,” I thought, “I’ll simply install the correct dictionary.”

The compose window had a Tools menu, with an Options entry. Choosing this brought up the options dialog, as you might expect. There was a link to click on to install more dictionaries. “Great,” I thought, “they’ve designed this well.” I clicked on the link. Firefox opened up, and took me to the dictionary selection page – so far, so good – and I chose the UK English dictionary, and clicked on its link.

An installation window popped up, I accepted the offer of installation, and after a brief interval a confirmation message popped up indicating I had successfully installed my chosen dictionary.

Problem One: Of course, it had been installed in Firefox. Not a whole lot of use for someone wanting to use the dictionary in Thunderbird.

Being a computer programmer has its advantages sometimes: I know what a URL is! So, smugly copying the URL of the .xpi for my chosen dictionary to the clipboard, and having a tolerant chuckle about the little problems in user interface design we all run into now and then, I headed back to the Thunderbird window to try to ask it to install the extension over there. Some time later: “That’s funny,” I thought. “I cannot for the life of me find the option for installing extensions! Not under the Tools menu, where it usually is, and not under the Options dialog, either. Bizarre!”

Problem Two: It took me several minutes to realise that the Extensions menu is only available on the main Thunderbird window, and is not available on Composition windows. This is the point of this whole rant. What on earth is the motivation for making the menus different like that? Did the designers think they were saving screen real estate? Did they think they were adroitly avoiding the pitfall of confusing the poor, helpless, ignorant users? The space where the function I expected should have been isn’t even being used for anything – it’s filled with empty, useless, function-free menu bar background!

Graphical User Interfaces have been actively regressing since 1976. So much for the creative power of a free competitive market. Thanks a whole bunch, computer industry. Way to innovate.


Restartable Nested STM Transactions

I’ve just finished reading [Versioned Boxes as the Basis for Memory
which proposes some neat extensions to the STM model to make it more
suitable for applications with long-running transaction and high
contention. It also solves another problem of traditional STMs by
guaranteeing that transactions will always see a consistent state during

These innovations bring STMs closer to being a universal memory
model, as discussed [here](/blog/2005/09/26/transactions-everywhere). They do, of course, come at a price. There is significantly more
bookkeeping involved, and it is also not yet clear whether a efficient
lock-free implementation, like in simpler STM models, is
possible. Overall though the approach looks very promising.


GRIN as intermediate representation for Lazy Functional Languages

Shae Erisson points out Urban Boquist’s GRIN thesis. It’s very interesting: the choice of the GRIN intermediate language allows a number of good optimisations. A control-flow analysis is done to enable inlining of evals. The information the analysis computes is similar to the kind of information you get from dynamic profiling in a Self-like system – which is why I’m finding it interesting. I’m building a lazy functional object-oriented language, and I want to use Self-like dynamic optimisation techniques to recover efficiency. It’s nice to see it being done!




You are currently browsing the LShift Ltd. blog archives for November, 2005.



2000-14 LShift Ltd, 1st Floor, Hoxton Point, 6 Rufus Street, London, N1 6PE, UK+44 (0)20 7729 7060   Contact us