So occasionally when I order my lunch, the person serving me remembers me. Then, the conversation goes even smoother than normally:
<dl>
<dt>Server</dt><dd>The usual?</dd>
<dt>Me</dt><dd>Yes thanks</dd>
</dl>
As Rajkumar points out, its one thing for the user to learn from the UI, but another for the UI to learn from the user.
Read the rest of this entry »
I frequently POP down to the canteen to buy a sandwich. The early conversations with the person serving went a little like this:
<dl>
<dt>Me</dt><dd>I’d like a sandwich please</dd>
<dt>Server</dt><dd>What would you like on it?</dd>
<dt>Me</dt><dd>Erm, Cheese and coleslaw please</dd>
<dt>Server</dt><dd>On what kind of bread?</dd>
<dt>Me</dt><dd>White sliced please</dd>
</dl>
Read the rest of this entry »
April 28th, 2004
9:29 am
Java
Each language feature introduced that tries to enforce safety of some kind invariably introduces some reduction in the power of the language. Some of these tradeoffs’ seem acceptable. The Java security model is an example of a limiting factor in the deployment and execution of a Java application which makes perfect sense to me. Java also hides memory management and pointers from you, which for the majority of applications also makes sense, however sometimes you really want to get hold of the underlying memory model and do nasty things with pointers and that is why C and C++ are still used for writing OS API’s.
Other limitations just become more frustrating over time. Java’s strongly typed language provides a great deal of compile-time checking, at the cost of program flexibility – Python, Ruby et al provide a richer, dynamically typed language which gives the programmer much more power (And anyone saying “You get dynamic typing with Groovy” is going to get smote with the cluestick of death, 1.). At this point I’d like to borrow a phrase from Spiderman (uh oh – nerd alert!) “With power comes responsibility”. Such dynamic languages with their more flexible typing can also get you into a bit of a mess. These dynamic languages can be seen primarily as enabling languages – they make the assumption that developer actually know what they are doing. As a result, they will on occasion let them shoot yourself in the foot. C and C+ likewise let you shoot yourself in the foot – they also however let you shoot the guy next to you, blow your car up, drink your beer and steal your girlfriend, but that perhaps is a discussion for another day.
Read the rest of this entry »
I’ve decided to enable Textile for formatting my comments – consider it an experiment. Format away! Thanks go to Dean Allen for writing the Textile formatter in the first place, and to Brad Choate for providing the Textile plugin for MT.
Well, as per MarkPilgrim’s instructions and with a little help from Dave Dribin’s @MTEntryShortTitle@ plugin, my URL’s should be a little more user friendly, and a little more future-proof. Getting Apache to handle my files as PHP without file extensions was more work than it should of been – conventional wisdom has it that Apache’s DefaultType directive should of worked:
DefaultType application/x-httpd-PHP
Read the rest of this entry »
I’ve been looking at the issue of getting Movable Type to produce some more friendly URLs off the back of my recent site redesign and the decision to start using PHP to build certain parts of the site. By default, MT generates pages with URLs like this:
http://www.magpiebrain.com/archives/000226.html
The first problem with such a URL is that it is by no means friendly. Secondly they are dependent on the server-side technology I’m using – for example what if I decided to produce PHP files rather than HTML? These and other issues are looked at in Jakob Nielsen’s URL as UI and in Tim Berners-Lee’s Cool URIs don’t change so I won’t go over them in any detail here – suffice to say if you’re interested in the subject you could do worse than read both of them.
Read the rest of this entry »
I’ve been looking into using some PHP on this blog in order to reduce rebuild times. My sidebar, which is included on each page using Movable Type’s MTIncludes tag is used to collate information from a variety of sources (although currently just my bloglines blogroll). Due to the way MT handles templates, this sidebar is being rebuilt for each and every page – so in the case of my blogroll, thats one request to bloglines per entry, category page, date archive etc. MTIncludes can be used to include static files rather than other Movable Type modules, so my initial thought was to change my sidebar from a module template to an Index Template so it only gets rebuilt once. The problem with this is that MTIncludes performs a static import – that is to say it imports the content when the page doing the including is built, but won’t pick up any changes to the included file afterwards. This is an even bigger problem when you consider how Movable Type rebuilds files – the index templates are the last to get done, so at best the individual entries will have an out of date include, and at worst might not find the file to be included at all.
Read the rest of this entry »
I’m a big fan of the del.icio.us bookmark service. I started using it primarily because it enables me to keep bookmarks synchronized, but have come to appreciate the ease with which you can categorise your bookmarks into multiple categories, and enables you to look at the bookmarks of other people have linked o the same sites as you, thereby providing you with a vast amount of other links you might be interested in. The one annoyance is that I have to visit the del.icio.us page to access my bookmarks. At a pinch it would be great if they could offer a view of your bookmarks which could sit in the Firefox sidebar (like blo.gs), however even better would be a firefox plugin which would load your bookmarks into Firefox itself.
The beginnings of such a plugin may well be found in the new Bookmarks Synchronizer. Currently it only supports the import of XBEL format XML, but it should be an easy job to parse and load del.icio.us’s RSS feed of your bookmarks.
Well, my first foray into the world of networking has gone surprisingly well. Spured on by the fact that my new company laptop comes complete with wireless networking capability, I thought it was time to clean up some of the mess of wires in my house, replace my IpCop box which was cluttering up the space under my desk, retire my slightly grubby stingray ADSL modem and buy some brand spanking new wireless kit.
After much research, I eventually plumped for a Belkin ADSL Modem With Built-In 11g Wireless Router, and one of their 11g cards for my desktop machine, both purchased from Dabs. Belkin claim the modem can be installed in 5 minutes, and I must say if anything it was quicker. The card took slightly longer to install, but that was due to the incredibly tight fit on the motherboard – but I’ve had trouble with that in the past and put it down to the motherboard rather than the PCI cards themselves. Anyway, after 10 minutes usage, I can highly recommend both the modem and the card. So, I now have a fully functional (WEP-secured) wireless network which will allow me to access the Internet from anywhere within my small, one bedroom flat. Still, it means I can blog on the toilet…
So is this Iñtërnâtiônàlizætiøn thing actually a meme yet? I suppose by virtue of the fact that its appeared in more than one site means it already is…
Just call me the meme slut.