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.
November 28th, 2005
tonyg
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.
November 4th, 2005
tonyg
I’ve just finished reading Versioned Boxes as the Basis for Memory
Transactions,
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
execution.
These innovations bring STMs closer to being a universal memory
model, as discussed here. 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.
November 4th, 2005
matthias
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!
November 1st, 2005
tonyg