Recent Entries [entries|reading|network|archive]
simont

[ userinfo | dreamwidth userinfo ]
[ archive | journal archive ]

Thu 2011-06-30 20:32
Bah

A pleasant evening; a good book, a silly iPad game, a nice bowl of soup almost ready to eat, and then the prospect of the pub.

One ill-judged arm movement later: a fiddly and unpleasant job of cleaning up soup from all over what seems like 3/4 of the kitchen, half my clothes thrown in the wash, a sudden need to find emergency backup dinner, and no realistic prospect of getting to the pub at all. Bah.

That last point is probably just as well today, I suppose. If I can make this much mess in ten seconds while sober

[xpost |http://simont.livejournal.com/233510.html]

Link4 comments | Reply
Fri 2011-06-17 00:01
Pub poetry

Crashety-bashety
Microsoft Windows is
badly in need of a
UI that's nice.

Some feature filed under
‘Accessibility’
makes it superb – but you
can't find it twice.

(Brought to you by several pints of Kopparberg and [livejournal.com profile] fanf praising the ‘mouse trails’ feature in Windows.)

[xpost |http://simont.livejournal.com/233469.html]

Link14 comments | Reply
Wed 2011-05-11 18:15
You couldn't make it up

Oh, good grief.

My missing prescription from Monday turned up in the post yesterday, after the surgery got their printers working again.

I took it to a pharmacy just now – who refused to fill it, because the doctor had (presumably due to the unusual circumstances) forgotten to sign it.

[xpost |http://simont.livejournal.com/232974.html]

Link4 comments | Reply
Mon 2011-05-09 09:49
Medical farce

Two weeks ago I tried to make an appointment with my GP. Since it was tedious administrative routine (renewing my prescription for gluten-free pasta, which I still can't bring myself to believe is worth wasting a medical professional's time for in the first place), I didn't think it was worth booking an urgent same-day appointment, and instead tried to book in advance. It turned out they didn't have any advance appointments earlier than a week later – you can have today, or next week, and nothing in between.

When I arrived for my appointment they said I didn't have one.

I was not best pleased, but the receptionist was utterly unwilling to do anything to compensate, so the best I could do was to walk away with an appointment card promising me an appointment in another week's time.

This morning I turned up for that one, and this time I got to see a doctor. However, I still didn't walk away with a prescription in my hand – because all their printers, or at least all the ones they tried, were broken!

[xpost |http://simont.livejournal.com/232728.html]

Link45 comments | Reply
Tue 2011-05-03 18:28
Murphy strikes again

When wielding a Stanley knife, I concentrate extremely hard on not cutting myself with the Stanley knife.

So hard, in fact, that I manage to completely overlook the possibility of cutting a finger on the thumbnail of my other hand. Sigh.

[xpost |http://simont.livejournal.com/232703.html]

Link3 comments | Reply
Thu 2011-04-14 17:15
Machine translation gets it spectacularly right

In a debate at work about development workflow, I somewhat whimsically responded to a suggestion by writing ‘Jira issues non sunt multiplicanda praeter necessitatem’. (For those lucky enough not to have encountered it, ‘Jira’ is the name of a bug tracker.) I wondered briefly whether that would be too incomprehensible to post (but decided not, and posted it anyway).

Chris had the obvious idea that if someone didn't understand it, they might try pasting it into Google Translate, and tried it. Google Translate renders the sentence into English as ‘Jira issues must not be multiplied beyond necessity’. Very good; I'd have preferred should, but must is acceptable.

But what's impressive is that if you switch the target language to something else, it turns out that it's not (as I initially assumed) identifying the language as Latin, applying a Latin-to-English translation step, and giving up on the English fragment and passing it through unchanged. No: it actually managed to translate the English part from English, and the Latin part from Latin, both into the specified target language, and as far as I could tell it even got the two fragments in their correct grammatical relationship. I may be out of date with the state of the art, but I was impressed by that!

[xpost |http://simont.livejournal.com/232244.html]

Link4 comments | Reply
Wed 2011-04-06 00:21
Exploding toothpaste

Warrgh, that was unexpected. I picked up my toothpaste tube, squeezed it gently until toothpaste began to emerge from the nozzle … and there was a sudden pop, a fingertip-sized blob of toothpaste flew out of the tube and landed in the basin, and I was hit in the eye by a sharp puff of minty air.

There must have been a big bubble of air in the tube due to a manufacturing defect of some sort, and the instant there was no longer enough toothpaste blocking the nozzle to impede its bid for freedom, off it went.

But for all that the cause is comprehensible after the fact … I've never had a tube of toothpaste explode in my face before!

[xpost |http://simont.livejournal.com/231949.html]

Link2 comments | Reply
Tue 2011-03-22 11:26
Gadgets I would like to exist

I've occasionally thought it would be nice to have a coffee mug with a built-in heater, so it keeps the coffee from getting completely cold. But this is an obviously impractical idea: heating costs serious energy, so you'd have to have a stand to supply the power, which is inconvenient; also there are probably some exciting failure modes.

This morning it occurs to me that there's a much smaller, simpler and more realistic coffee-related gadget that would deliver a similar benefit: a thermometer you could attach to the outside of the mug which would go beep when the temperature dropped to a predefined threshold, signalling ‘last chance to drink up your coffee before it gets unpleasantly cold’. That could much more easily be a standalone device running off a battery.

I suppose you'd also want it to notice if you'd already finished the coffee, and not go beep just because an empty mug had cooled past the threshold. Hmm. Must be something clever you can do about that…

[xpost |http://simont.livejournal.com/231750.html]

Link20 comments | Reply
Fri 2011-03-18 13:33
Errata

Ahem. In yesterday's post about iterating over a circularly linked list, I made a mistake. The construction I exhibited, because it completely skips any test at the start of the loop, will crash if the list is empty and hence its head pointer is NULL.

Fortunately, this is fixable by putting an additional test in the switch statement:

    switch ((elephant = head) == NULL)
while (elephant = elephant->next, elephant != head)
case 0:

Then if the head pointer is NULL, the switch's input value will be 1, so it won't execute anything in its body at all.

However, I now also realise that there's a better answer in the first place. One commenter yesterday observed (and I had also thought myself) that the problem would be easy if only you could declare an extra flag variable and use it to suppress the first loop test. You can't, under the constraints of C90 syntax, because there's nowhere to put the declaration that doesn't cause further syntactic problems. But actually, I just realised, you don't need an extra variable at all – all you need is an extra value for the loop variable you've already got, and we already have a good special value for pointer variables in the form of NULL. So you can just do this:

    for (elephant = NULL;
elephant ? elephant != head : (elephant = head) != NULL;
elephant = elephant->next)

So if elephant is NULL on entry to the loop test clause, that's the signal that it's the very first iteration, and we reassign elephant to the loop head pointer (and terminate if even that is NULL). Otherwise, it's a non-initial test, and we do the obvious thing of checking whether we've arrived back at head.

This is a cleaner solution than the switch-based one, because it doesn't interfere with case statements inside the user-provided loop body. It's far less exciting, but there we go.

[xpost |http://simont.livejournal.com/231512.html]

Link8 comments | Reply
Thu 2011-03-17 10:23
C abuse of the week

A while back I wanted to write some C code that looped over every element in a collection. But I wanted the code to be parametrisable in the face of different implementations of that collection, because it might have to link against several other pieces of code which might all store the things in question in a different format.

iteration over a collection of elephants by C switch abuse )

eta: there's a bug in the switch-based solution above. See my follow-up post for details.

[xpost |http://simont.livejournal.com/231422.html]

Link23 comments | Reply
Wed 2011-03-16 11:36
Layer-free shell syntax

Here's a question I've been pondering for a while, to which I don't have any good answer.

could we make the Unix shell syntax not unmanageably complicated? )

[xpost |http://simont.livejournal.com/231126.html]

Link19 comments | Reply
Mon 2011-03-14 14:33
Placing a foot into the other camp

More migration seems to be occurring, so it's probably about time I got round to doing this: I'm now simont.dreamwidth.org as well as simont.livejournal.com. I have no plans to deactivate my LJ or stop reading stuff via it; I expect to cross-post everything and accept comments anywhere people feel like posting them.

There will doubtless be annoying teething problems as I sort out this dual presence and integrate it with the rest of my setup. In fact I've already made one cock-up just in the last half hour, by pasting the wrong list of usernames over from my previous OpenID-based presence on Dreamwidth and then hastily correcting. People who've unexpectedly found I subscribed to them and then unsubscribed again immediately: it was part of a mass update gone wrong, no personal insult was intended, and I'm very sorry.

Link28 comments | Reply
Mon 2011-03-14 14:32
Placing a foot into the other camp

More migration seems to be occurring, so it's probably about time I got round to doing this: I'm now simont.dreamwidth.org as well as simont.livejournal.com. I have no plans to deactivate my LJ or stop reading stuff via it; I expect to cross-post everything and accept comments anywhere people feel like posting them.

There will doubtless be annoying teething problems as I sort out this dual presence and integrate it with the rest of my setup. In fact I've already made one cock-up just in the last half hour, by pasting the wrong list of usernames over from my previous OpenID-based presence on Dreamwidth and then hastily correcting. People who've unexpectedly found I subscribed to them and then unsubscribed again immediately: it was part of a mass update gone wrong, no personal insult was intended, and I'm very sorry.

Link4 comments | Reply
Tue 2011-02-01 09:14
The Moment of Jinx

There's something about screwing the lid back on to a computer's case that seems to act as a magnet for bad luck. Especially if the same machine has been running just fine for weeks or months with the lid off; you finally decide that's cause to declare it working, so you put the lid back on and do up the screws … and the tightening of the final screw, symbolic of your overconfident belief that the job is at last done, is the cue for every intermittent fault, every surprising and hitherto unmanifested bug, every glitch and gremlin and gribbly to come out of the woodwork and make itself known.

Just occasionally there's a causally valid reason for this – the machine actually won't run with the lid on because its CPU fan is dead, or the act of putting the lid back on disturbed a loose connection that would have preferred to be left alone – but usually, it seems to me, it's just Murphy's Law.

(Preliminary indications suggest that the one of these that happened to me last night was not even a fault in the computer in question, but I'm half expecting further nasty surprises…)

Link3 comments | Reply
Sun 2011-01-09 09:56
A foolish thought

If somebody had been programming exclusively in FORTH and PostScript for years on end, they'd probably think a change would be inorder.

Link4 comments | Reply
Sat 2010-12-18 23:37
Truly this is the age of the Internet

Brushing the loose snow off the roof of my car, I found that the layer of more solid ice underneath had a message engraved in it. Some passing scamp had presumably written with their finger in the initial layer of snow, and when that solidified under the next layer the message was preserved.

The message just read ‘LOL’.

Link12 comments | Reply
Sat 2010-12-11 08:50
Trust

When I was a child, I remember that I used to have a peculiar problem whenever I replaced my watch. For days or weeks after strapping the new one on to my wrist, I'd wonder what the time was, look at my watch … and then feel unsatisfied, as if somehow I still didn't actually know what the time was in spite of having just read it off. I'd feel a strong urge to go and find another clock and look at that. It's as if I didn't trust the new watch.

I suppose it's possible that this was my subconscious reminding me of the practical consideration that I didn't yet have a feel for how accurate the new watch was, but that seems far-fetched to me. I think it was just a nonspecific feeling of ‘this thing is newfangled, it has to prove itself’.

I haven't replaced my watch in well over a decade, so until today I had no idea whether I would still have this odd feeling. But just now …

I've recently acquired an iPad, and also I've finally got round to setting up wireless networking at home to use it with. So today I thought I'd do my morning spod – check email, LJ, news, etc – before getting out of bed. (Just to prove I could, and also because it's warmer.)

So I did that; but as soon as I got up, I felt a strong visceral urge to make for the nearest ‘real’ computer and reassure myself that there weren't any urgent emails waiting for me. But I just looked! Arrgh!

(This is even less rational than the one about the watch. A new watch might have turned out to be hopelessly inaccurate compared to the old one, but I check my email over SSH, which is really, really not going to present me with wrong answers depending on where I connect from. If it gives me any recognisable answer at all, it'll be the right one.)

Link8 comments | Reply
Thu 2010-12-09 13:56
Intellectual weaknesses

For a while now I've been trying to think a bit about the way I think. When I get something wrong, fail to solve a problem, misunderstand something, or whatever, I try to look back on what went wrong, and I try to notice if it's the same thing that went wrong on other occasions. I now think I'm in a position to write down some of my most noticeable intellectual weaknesses. (At least, most noticeable to me. I expect other people probably notice different weaknesses about me from the ones I notice about myself.)

Neophobia. I often find that I'm extremely reluctant to get into a new piece of thought: picking up a new problem, or starting to learn about a new thing. Typically once I finally do get over that activation-energy barrier, I find it's not at all as difficult as I'd imagined it would be, but for some reason I still don't remember that the next time I'm having the same problem.

Too uninterested in the actual compared to the possible. To some extent this almost isn't a weakness – my feeling is that there's plenty of room in the world for on the one hand people who look at things that are possible and go and do them, and on the other hand people who have a good working knowledge of all the stuff that's already been done and can get it to where it's needed. But even the former kind of person needs to have some awareness of what's already been done, to avoid repeatedly reinventing wheels and wasting effort, and I think I err just a little too far in the direction of lacking that awareness: I'm reluctant to spend brain-space on holding a mental catalogue of stuff that already exists when I could instead spend it on knowing how to make new stuff.

Difficulty keeping track of many things. I much prefer to have a small number of problems to work on, each of which is complicated and fiddly, than a large number of problems each of which is in itself simple. I can handle complicated problems fine (or rather, I have at least as much of a fighting chance with them as anyone else), but keeping track of lots and lots of things without forgetting about one of them is much harder for me. Of course I can and do compensate by constant list-making, but as soon as I have to manage without a list it all goes pear-shaped.

Compartmentalisation. When I learn a fact in one context, I often find I've failed to apply it in another context, or failed to relate it to a fact I learned in another context which in combination with the first one would have told me something really useful. I seem to have a few mental compartments for thinking about different kinds of thing, and sometimes those compartments don't link up and talk to each other when they really ought to.

Insufficiently bold imagination. Quite a few times in the past couple of years I've tried to solve a problem by considering a lot of candidate solutions and then judging which of them are sensible or workable or likely. Often I've failed to solve the problem, and found out afterwards that this was because the real answer was completely outside the space of possibilities I'd considered – either because it was totally different from any idea I'd had at all, or (perhaps more embarrassingly) because it was an idea I had had but hadn't taken far enough. It typically seemed to me afterwards that my judgment was not obviously at fault at any point – all the solutions I dismissed as wrong were indeed wrong for pretty much the same reasons I thought – but in each case my imagination let me down by not coming up with a wide enough range of possibilities to submit to my judgment.

I wonder what can be done about these. One feels that the neophobia ought to be dealable-with just by more forcibly reminding myself that it's never as bad as I expect, but it probably isn't that easy in practice, and with the rest of them it's not even clear what I might be able to do to stop it…

Link15 comments | Reply
Fri 2010-11-26 09:33
A foolish thought from the pub

Everybody knows what wisdom teeth are. But under the influence of booze it occurred to me to take the concept in an unusual direction.

Strength teeth must surely be the molars; the sheer leverage available to them allows them to effortlessly crush things that the front teeth would have a hard time getting into.

Dexterity teeth are the canines: they grip on to things to allow them to be manipulated.

Charisma teeth, as [livejournal.com profile] ptc24 pointed out, are the incisors right at the front, which are conveniently placed to (if properly cleaned and polished) catch the light photogenically when you smile.

What I'm not so sure about is where intelligence teeth and constitution teeth come in. Premolars are still to be assigned, but I can't make a good case for them being either of those…

Link10 comments | Reply
Tue 2010-11-02 18:42
That's going to take a little getting used to

As of yesterday, apparently, I am now Uncle Simon.

Link21 comments | Reply
navigation
[ viewing | 60 entries back ]
[ go | earlier/later ]