Archive for February, 2008

Feb 29 2008

Flock, the social browser

Published by Dougal under Computing, Culture

I tried out the built-on-Mozilla-technology Flock browser today and found — to my horror — that the web has adverts.

You can imagine how shocked I was.

But ad blockers aside, Flock looks like a very nifty idea. And more than that, one that shouldn’t be relegated to a fringe-of-a-minority browser. Full integration of blogging, images, bookmarks and so on is as good a “next step” in browser technology as any. Even if you don’t use it, have a look at the idea behind it. Make an application out of the web.

One response so far

Feb 27 2008

All fun and games until someone loses a flower

Published by Dougal under Life, Science

When I got home the amaryllis had leaped energetically off the table and broken one of its flowers when it hit the floor. (Either that or we’ve got some very malicious mice.)

An amaryllis

I picked up the plant and put it back — giving it something to lean against — and then brushed up the spilled soil. I went straight to the bin and threw it out. Why didn’t I put it back in the pot? I guess I would have to explain that one as a capture error. There aren’t many circumstances in which I’d reuse mess that I shovel up from the floor, so I suppose I just didn’t think.

No responses yet

Feb 26 2008

My shame is complete

And Reg will not be happy.

module Main where
 
import Data.Maybe
 
fizz = concat $ repeat $ replicate 2 Nothing ++ [Just "Fizz"]
buzz = concat $ repeat $ replicate 4 Nothing ++ [Just "Buzz"]
fizzbuzz = zipWith (maybeWith (++)) fizz buzz
numbers = map (Just . show) [1..]
 
maybeWith f (Just a) (Just b) = Just (a `f` b) 
maybeWith _ (Just a) Nothing  = Just a
maybeWith _  Nothing (Just b) = Just b
maybeWith _  Nothing Nothing  = Nothing
 
-- an infinite list of fizzbuzzes
results = map fromJust $ zipWith (maybeWith const) fizzbuzz numbers

I bothered posting this at all because I feel sure that maybeWith can be implemented as a simple combination of other functions. It’s sort of like liftM2, except it doesn’t throw away good values when it has one good and one bad.

Also, I used it twice in five lines, so it surely must be a known function. But for the life of me I can’t think what it could be.

10 responses so far

Feb 26 2008

Can also hold paint brush in feet!

From a programming language blogger comes this little WTF:

When talking about how dynamic scripting languages are designed, people have a tendency to divide them into “There is more than one way to do it” and “There is one way to do it”. Perl is the quintessential example of “more than one way”, and Python is the opposite, going so far as to make it impossible to have your own indentation.

I am disturbed by the notion that choosing your own indentation counts as language flexibility. Whither the closures, the higher-order functions, the parametric polymorphism? This seems like arguing that a paintbrush that you can also hold in your left hand is inherently more powerful than one you can only hold in your right. And yet neither actually gives you any more interesting abilities than daubing paint.

No responses yet

Feb 24 2008

‘Equus’ (sans Harry Potter)

Published by Dougal under Family, Food, Gig, Reviews

We saw Equus last night with Helen’s family because it was her father’s birthday. It was a visually impressive and intriguing play, but didn’t have young Mr Radcliffe in it cos this isn’t swanky London. The shows come up here but the famous people are strangely absent. Anyway, I enjoyed it but I am still unsure what it was about.

I could tell you the plot — boy likes horses, boy blinds six horses at a stable where he works, psychiatrist plays detective to work out what happened. That bit is all very obvious. But there was lots of philosophising in a very obtuse way, where people had to ‘account’ for things, where accounting wasn’t really explained. The entire second half seemed to be the psychiatrist having a mid-life crisis of conscience and complaining that he really wanted to go off to see the sights in Greece instead. Also, that he didn’t get on with his wife and couldn’t have kids. And he didn’t think he was helping his patients any.

To which I can only reiterate what his friend said at the time, although not so bluntly: get a grip you big whiner. Watching comfortable people come over all emo isn’t really my idea of a good time.

Before the play we had tea at The Apartment — which seems to have no internet presence at all. It’s suddenly become a lot harder to take it seriously. ;-) Food was very nice though the furniture was a bit too arty for its own good. I was sitting on a wooden square block. Hmm.

2 responses so far

Feb 22 2008

Splashing around like Scrooge McDuck

Published by Dougal under Computing, Life

We’ve spent the evening “arranging our finances”. Which is one of those code words which works in all circumstances. The well organised might imagine I was on the phone to my broker, reading the Financial Times and getting the heavies to visit my tenants and rough them up a bit.

In actual fact I was playing around with GnuCash in a reasonably effective drive to find out if I have any money. After two, maybe three false starts — I really am completely lost with money terminology — I got it all together and stopped randomly losing/deleting transactions. I’m also pretty sure that what I have here matches my current bank balance.

I’ve complained about my bank in the past, but I do have this to say for them: they give me my statements in Quicken format, which is simple text and can be imported by everything. If only they could do it in a more flexible manner than “one month at a time”. But I’m pretty pleased with GnuCash. Check it out if you’re in need of something (reasonably) simple to handle your debt…

So, trivia fans. It seems that in the last ten months I spent the least money on Sundays and the most money on Fridays. The working days seem to be fairly evenly distributed apart from that. Saturday is cheaper than Friday, surprisingly — I guess that may just be an artefact of the banking system, and will explain why there is a small spike on Monday too.

No responses yet

Feb 20 2008

Café Scientifique: Robots ruling the world

Published by Dougal under Friends, Hobbies, Reviews, Science

On Monday night the Edinburgh Café Scientifique was about AI and robotics — specifically, “Why Robots Will Never Rule the World”. I also managed to convince a bunch more people to come along, which is always good. (In fact, it was very busy this time, which is quite difficult because it’s held in a small and awkwardly-shaped room.)

The gist of the speaker’s argument was

  • Computing power, as measured by processing ability, is increasing exponentially (as observed by Gordon Moore). But battling against Moore’s Law is Wirth’s Law: Software gets slower, faster than hardware gets faster. Software must increase in complexity to tackle the latest problems of machine intelligence, and if there’s one thing we’re not very good at it’s minimising the effects of complexity when designing software.

    Dijkstra said that sharpening a pencil with ten blunt axes is no more effective than with one blunt axe. If we don’t know how to solve a problem it doesn’t matter how much faster our machines are. The pace of improvement in AI goes at human thinking speed, not silicon fabrication speed.

  • On the physical level, the square/cube law applies just as much to robots as it does to humans and cockroaches. Anthropoid robots will not have much greater strength and agility than us, because of the limits of materials at their body size.

It was quite an interesting talk but pitched at the wrong level — there were an awful lot of “beards” there (and an XKCD t-shirt) and I don’t think Moore’s law was a great unknown to them all.

But I think a more compelling argument than the ones mentioned here is some historical perspective. If you look at the numbers, bacteria rule the Earth, and they didn’t need intelligence to do it. Our intelligence hasn’t helped us overcome some very real physical barriers preventing us from ruling the planet — harsh climates, limited resources and intense competition.

3 responses so far

Feb 17 2008

‘What is a monad?’

Published by Dougal under Humour

There has been a lot of confusion on this point, so let us be clear:

A monad is to contests of intellectual superiority (at least in internet lamer circles) what a gonad is to contests of physical or masculine superiority.

Comment by username223.

11 responses so far

Feb 16 2008

Rethinking mail clients

Published by Dougal under Computing, Culture

I’ve been slowly coming to the conclusion that email as I currently practise it is broken. I don’t know what the answer is, but the current way mail clients are organised isn’t working for me.

I’ve been thinking about the best way of organising the mail I get — how I would prefer different types of email to appear in the interface, depending on sender, recipient, subject and so on. And have come to a few conclusions that I’ll outline below. The gist of it is that email isn’t really one way of communicating, but three, all using the same underlying protocol.

Three different types of conversation

Unicast

Sending personal email to a single person. This is half of a conversation, and may well develop into a conversation. At some point this conversation may die, or be forked into the next type.

I think of this as being like real post. Each message arrives from a unique person, but it’s all to me. It doesn’t matter which address it was sent to, only who it came from.

In this state, I would like to have email sorted by the sender. So I can instantly see by looking at my mail client that I have a message from Helen not just I have a new message. To do this at the moment I have to create new folders (one for each person I know) and filters to reroute mail from my inbox.

Multicast

This is a group conversation, but one that I’d define as “among friends” or similar. So if there are five of us agreeing to meet at the cinema, this is how we’d do it.

I like to imagine this as a real conversation. We’re all sitting round a table talking to each other. If I want to, I can fork the discussion and create a private discussion between me and some other person (ie, unicast).

Broadcast

This is the one that’s least like anything that I can think about. It’s a proper bulletin system. I’m sending and receiving messages from people I don’t know — on topics I may have no interest in — and most of it is overwhelming my real conversations with people I know.

In this case the actual people posting the messages doesn’t really matter. (Obviously it matters within the context of a single conversation, because who-said-what always matters. But for the sake of sorting and organisation, it doesn’t matter.) The discussion list is all that matters — I only need to know, there are 17 unread messages from Haskell Café.

There aren’t any mail clients that I know of that have this three-stage approach to mail organisation. There seems to be an implicit assumption that everything coming in to the inbox stays there if there is no further user intervention. Which is why, given a few days away from my home or work email, the messages mount up to unmanageable quantities and I resort to generalised purges.

Explicit mechanisms for level of conversation

I want to be quite explicit in what I’m looking for. Most importantly, I would like the behaviour I’m describing to be default — requiring the least configuration to work at all.

Imagine the now-standard format for a mail client, with a slim bar for folders down the left hand side, and the remainder divided into (top half) contents of that folder and (bottom half) content of current message. A bit like this:

Mozilla Thunderbird screenshot

I would like something different. There should be three different view (maybe tabs or similar) for unicast, multicast and broadcast messages1. This is how they should be organised:

Unicast: Dialogues

There should be a separate folder for each correspondent in your personal address book. So all your friends and family get their own folder. But only the folders that have new mail should appear by default. The others should be invisible so as not to overwhelm the screen. This is a bit like the friends list in instant messenger clients — you can optionally look at everyone but by default only the people who are online appear in the list.

I’m not sure what to show if there are no new messages — possibly the N most recent correspondents, or maybe nothing. Of course there’s a big and easy button to Show All at this point, if you want to find the last thing someone said to you.

Messages which come from unknown correspondents could get a New or Unknown folder. I’m not sure about this aspect. Or maybe there should be a different folder-view for every sender, whether they’re known to you or not? Either way, I envisage known senders to be treated differently. And there should be a way to recognise common addresses even if you don’t correspond with them. For example, mail shots from online stores which (a) aren’t your friends and won’t go in the personal address book (b) but similarly aren’t unknown to you. It should be easy to mark messages which fit this criterion so they all fall into a Adverts folder or similar.

Multicast: Group conversations

Group conversations are pretty easy to spot but hard to classify. If you’re not the only recipient then it’s a group email. The only exception I can think of are if the sender CCs another address which belongs to you or to them. But the address book should be able to recognise this situation and strip out duplicates before further analysis.

The hard part is how to group these messages. Thinking about some general use cases (friends organising a night out, people working on a joint project) it seems that the subject is an important classifier. A couple recent examples, one from home and one from work:

  • A friend emails to suggest we go to the cinema. The subject is “Movies anyone?”.
  • A discussion about a bug at work. The subject is the bug tracking ID.

These are both pretty short — a couple of words or less than a dozen characters. Looking through my inbox this seems to be the way people write subjects. In fact, the only long subject lines in my inbox are from:

  • Adverts from Ticketmaster or Dabs telling me about their latest and greatest deals.
  • Automated systems which generate subject lines by joining various IDs, subject headline and other stuff into one massive long “message in a subject”.
  • Mailing list users trying to sum up their discussion point/problem in a complete sentence.

None of these messages are group conversations. It seems to be a feature of intimate human conversation that people use very succinct subjects. I wonder if this intuition is universal, or near enough to make little difference?

Anyway, my thought is that most people write so little for their email subjects that the folder names in the left-hand column could be the subject lines. I’m not really interested in knowing in advance that a particular person has sent me a message. I’m more interested in knowing that a particular conversation has continued, so grouping by conversation seems natural.

Unlike the person-to-person email, it seems less important to hide conversations that don’t have new additions. But there still needs to be some metric by which conversations fall off the radar. So I think old conversations, ones which haven’t been updated recently, should disappear. Maybe something older than a few days is too old? I’m not sure, but that’s my initial feeling for how things should be set up.

Again, none of this requires explicit organisation. The mail client creates these views based on new messages. I think if it’s obvious that a continuing thread has been forked it should be easy to create a new conversation from it — a Fork button or something — but otherwise everything should be managed by the mail client. Certainly if a message goes from being called “Movies anyone?” to “Birthday gifts (was: Re: Movies anyone?)” then that’s a good indication that the conversation has been forked and the new topic should be “Birthday gifts”.

(I just found a small usability study of email subjects which bears out one part of my intuition but refutes another. It seems that short subjects are considered more effective by the recipients, but most people write long ones. Ouch!)

Broadcast: Public message

The final category, of group mailing lists and the like, is the easiest. It’s actually the most like how current mail clients work, or even newsgroup readers (which are largely very similar but seem much better suited to their job). So, the folders in the left column are the different lists you’re subscribed to. In mailing list mode the default reply should be to the list (something that Thunderbird and Gmail get very wrong).

The mail client will have to be told which groups you’re subscribed to, but that seems sensible anyway — then it can reply to the right places. (I often get caught out when hitting “reply all” because someone has sent the same message to two mailing lists. Then I receive a “cannot deliver” message from the list where I’m not an registered subscriber. I don’t know what the best way to do this would be, since it’s not obvious which is a mailing list and which is a real person.)

Writing too long! Help!

So it seems like I’ve been writing forever today. I suppose the next step is to look at Thunderbird to see if it could be altered to do what I want. I guess that it’s quite a hefty job and I know nothing about coding for XUL.

I’m happy to have written it all down though. I may attempt to explore the problem a bit further later, to clarify my thoughts more. Who knows, maybe someone else will be inspired to do something where I can’t!


  1. Can you think of a better set of names than these? Maybe private, group and public? I’m not sure. Suggestions welcome. 

3 responses so far

Feb 15 2008

Yesterday’s meal and today’s meal

Published by Dougal under Food, Friends

I can report that last night’s meal was an awesome success — really hot and tasty tartiflette followed by outrageously sticky chocolate gingerbread. Oh yeah, and the pink champagne. Win! Even better, the same again (apart from the champagne) for lunch today. Leftovers are great and should be mandatory.

We’ve got a couple of friends coming for tea tonight and it’s all going pear-shaped. Helen’s out at the moment trying to hunt down a lettuce that’s suitable for vegetarians (well, something not very similar to that). Waitrose apparently isn’t all that and a bag of potato chips.

3 responses so far

Next »