Category Archives: computers

In the bank

Some of you will know that my mother died not so long ago. This brings with it a variety of admin tasks, which you go through as best you can. These can be tiring, but also, it turns out, often bring you into contact with surprisingly friendly and supportive people.

And one effect of bereavement seems to be that you find yourself wanting to talk a lot. Someone asks how you are and next thing, you’ve told them some memories of the person who’s died, or how the death came about, or that no really you’re managing fine because the way you’re feeling is nothing like you imagined it would be beforehand . . . Or at least, that’s how it’s been for me. It’s a different experience for every bereaved person, I think.

Anyway that’s not really what I’m wanting to write about. It’s background. I’m writing about the assumptions that are often made about “old” people and computers.

I had to inform my mother’s bank of the death. This entailed taking a death certificate in and filling in a straightforward form, and I’d made an appointment to do this. The bank had an open area with seats and tables, where people could do banking stuff in an informal atmosphere, and a separate mini-office which could be used if more privacy was wanted. I wanted more privacy, but was waiting in the open area for my appointment.

Also waiting was an oldish lady with a walking stick. I was in a talkative mood, we got talking and I mentioned what I was there for. She said “Oh, I am sorry. How old was your mum?” “89,” I said. “But it wasn’t unexpected. She’d been ill a long time, and . . . ”

“Oh.” she answered. “Well I’m 89!” so I hurriedly reassured her that she was in far better health than my mother had been and that I was sure she’d got years and years ahead of her . . .

At this point I was rescued from digging myself into any deeper hole by the arrival of one of the bank staff. I sat myself further away so as to let their conversation be private. But I couldn’t help hearing most of it anyway. So much for privacy in open-plan banks.

The man from the bank asked how he could help her. “Well,” she said, “I’ve accidentally locked myself out of my online banking. I entered my Face Time password by mistake instead of the banking one, and now it won’t let me in . . . ” From the subsequent conversation it was clear that she used online banking all the time, and that she was perfectly comfortable with it except for the minor issue of it being difficult to remember a different password for everything without occasionally getting one wrong.

Contrast that with the stereotype of someone her age: confused, terrified of computers, totally hopeless when put in front of one, needing to be led by the hand through the simplest of operations . . .

In fact there’s even a similar stereotype about over-50s. Well I’m one of those. In fact, if the calendar is to be believed, I’m 57. (Very odd. I still think I’m 33. Possibly a little older, but definitely no more than 36.) We’re supposed to be unable to use a computer or understand the simplest of jargon . . .

Well. By the time I left university in 1984, I had programmed in Fortran, Algol, Basic, and 6502 assembler. (The 6502 was one of the early microprocessors.) The first computer I had of my own was an Amstrad PCW8256, but I upgraded the memory to a whopping 512 kB. Half a megabyte!

You could use one of these with the software it came with, if you just wanted to use it as a word processor. But I wanted to do more with it. And if you wanted to use your “home computer” for anything more interesting, you had to program it yourself. None of this ridiculous searching around for apps that don’t do quite what you want: write something yourself that did exactly what you wanted, or possibly read computer magazines and laboriously type out somebody else’s program then correct all the typos that were stopping it running and giving you error messages . . .

I wrote BASIC programs for a while, but I knew that was inefficient. BASIC was an interpreter: that is, the computer had to translate the instructions as it went, turning instructions like IF N>10 THEN GOTO 320 into sequences of hexadecimal digits (or really, sequences of 1’s and 0’s, read in blocks of 8 and effectively fed straight into the electronics) which the computer’s processor could execute.

I didn’t like being limited to BASIC. I wanted to program in machine code (the 1’s and 0’s). This is usually done using a program called an assembler: this lets you write short instructions meaning things like “increase the value of register A by 1” or “load the value stored at the following memory location into register B”, which it then translates into the 1’s and 0’s for you. The program you then run is the translated version.

For some reason presumably known to Amstrad, the assembler that came with the computer didn’t have any documentation and I couldn’t get it to work. (It was also, I later found out, written for the wrong processor: it was for the 8080 processor, whereas the computer contained the more advanced Z80.)

So, what did I do? Give up because our generation didn’t understand computers? No, I wrote my own assembler. First in BASIC, but then—once it was working—in machine code. I used the BASIC version to assemble the first machine code version, and thereafter, each machine code version to assemble the next. And you know what? The machine code program ran at 130 times the speed of the BASIC one! I was stunned. It suddenly did in about two seconds what had previously taken it well over four minutes.

What I find sad is that since then, computers have got faster too quickly: rather than run more and more efficient and reliable software, they run more and more unwieldy and bug-ridden software which grinds to a halt on all but the most up-to-date machines. They get away with it simply because processors have got ridiculously fast and storage has got ridiculously big.

I also find it sad that at some point, schools switched from teaching children coding (albeit in BASIC because it was simple), with the excitement of making their own programs do their own things, to teaching them the tedious “skill” of understanding what all the badly-named menu options in some piece of commercial software are for. To my mind that’s not understanding computers—it’s understanding office work. And it’s all in the manual anyway, if the manual’s any good.

So there you go. I think “my generation” understood computers rather well, and I think the 89-year-old in the bank understood hers well enough for all the things she wanted to do on it. She just found remembering which password was for what a bit tricky. And who hasn’t had that problem?

Don’t make assumptions based on age!

Memory incident

Recently I had occasion to use one of the public computers in my local library. At one time this was a regular occurrence because I didn’t have internet access at home, but now it’s only something I do very occasionally.

The system is: you log in to the system with your reader number and passcode, and then get an hour’s use of the computer.

I typed in my reader number, then was surprised and horrified to realise that I had no idea what my passcode was. But I remembered from a previous occasion that it had been possible to log in as a guest, so I went to the desk to ask if I could do that.

The library assistant looked rather helplessly at me, said something about not having enough access to the system to do anything, and suggested I try entering my birthday as the passcode. I knew that my birthday most certainly wasn’t the passcode. But she also told me that the system didn’t have any limit on how many times I could enter the wrong code. I wouldn’t end up getting locked out if I tried everything I could think of.

What I knew, though, was that in the days when I had known my passcode, I’d primarily remembered it not by the digits themselves or some fancy mnemonic for them, but by the pattern of keystrokes needed to type them. I’d remembered them pretty much like a fingering pattern on an instrument.

I went back to my seat and stopped trying to remember the passcode. I typed in my reader number, thought about where my finger should probably go for the first digit of the passcode, then let my fingers type a sequence of keys that felt right on the keyboard. I clicked OK.

Immediately, on the first attempt, I found myself logged in. The key to remembering my passcode had been to stop trying to consciously remember it, and to let my fingers follow the pattern that they always had done when typing it before. The code wasn’t still programmed into my brain, but the movements for typing it were still programmed into my fingers.

That’s what musicians are talking about when they mention kinaesthetic memory.

Why I hate infinite scrolling

Note: if you already know you hate infinite scrolling are looking for instructions on turning it off, details are here.

Nasty surprise

A few weeks ago, something unpleasant happened to my blog. The top of the page looked OK, but if I scrolled down more than a small distance, a semi-transparent box would slide up at the bottom of the screen, obscuring the last few lines of text.

blog title on translucent background, floating on top of one of my posts

The first sign that something was wrong.

I dislike unsolicited popups on web pages anyway; I particularly dislike ones which can’t be got rid of but follow you down the page as you try to scroll past them. For me they have same distracting effect as, say, a moth landing on something I’m reading and walking around on it, or someone plonking things down on a book while I read. So I really didn’t want things I hadn’t even put there messing with the behaviour of my blog in this way.

I’ve known about this blemish for a while; yesterday I finally got round to trying to cure it.

It looked like some kind of CSS trick, so I expected I’d need to change the custom CSS I’ve paid WordPress a small annual fee to let me use.

First step: find out what needs modifying. My browser, Opera, is pretty useful for this sort of thing. In particular, the View menu lets you display various features of the code for the page. So I got it to show the Class and ID attributes which label blocks of text and so on for CSS purposes. I expected one would have a label like “floating-footer”, and I’d then write a CSS rule to make anything with that label invisible.

The actual labels I saw were more worrying:

The floating box, showing attributes called "infinite-footer" and "infinity-blog-tit[le], together with my comment "Oh bugger!"

I don’t like the look of those ID names . .

What were infinite and infinity doing there? I’d set the display format ages ago to five posts per comfortably-sized page—or comfortable for me, at least. I’d experimented with different page lengths, and that seemed the one that worked best. Five posts loaded acceptably quickly, even over my mobile broadband connection, and resulted in comfortable scrolling via the scrollbar. Please, no . . . !

I experimentally scrolled down to what was meant to be the bottom of the page. Then two posts further, to the actual bottom of the page. Sure enough, the ubiquitous and annoying “Sorry, you’ve got to wait while this goes round and and round and your browser goes all sluggish while we readjust your scrollbars” symbol appeared, jerkily rotating as my connection erratically downloaded things I hadn’t asked for. It was followed eventually by the next page of posts. On the same page. Or rather, posts 8 to 14. I’d now effectively got nearly three pages of posts filling up the browser with one idiotically long page.

So I hurriedly went to the blog settings, found the one responsible for infinite scrolling, and turned it off. I was relieved to see on my return that there was now no annoying floating popup. Phew.

OK, let’s scroll to the bottom again. Everything will be OK now. The Older Posts link will have come back, there won’t be any horrible stretchy page, I’ll be able to click the link for page 2, and . . .

screenshot showing "Load more posts" button at the end of the page

Sorry. We’ve taken the link away.

Oh. No. No! No no no no noooooooo! That’s just the same thing, but with a button! I don’t want to create an ultra-long page. I’ve just turned it off, for goodness’ sake! I simply want to go to the next page, where the next five posts will be. What are you doing to me?!

So, back to the settings page. (I must have missed the setting that give me normal pages . . .  Oh. No sign of it. Off to the user forum, then . . . What, discrete pages is currently not an option?! Good grief  . . . ! ) . . . And, finally, to an enthusiastic announcement from WordPress about how wonderful infinite scrolling is and how pleased they’re sure we’ll all be to have it.

That’s why I can’t find the setting, then. They’ve got rid of it. There’s a glimmer of hope in the word currently. But at least for now, I seem to be stuck with one long page which will contain all 103 of my posts if anyone’s determined enough to scroll all the way down. I can choose between having it load automatically when it feels like it, and on request when I click a button. But it’ll be the same unwieldy, user-hostile, browser-hogging, single page.

What’s so bad about it?

Um . . . Everything?

For a start, consider the experience of scrolling through the page. Now, I know that many people are using a scrollwheel. Maybe others like to use the arrow keys. For myself, I’m mainly browsing with a netbook that has a trackpad. Since the screen is quite small, I like to have fine control over the positioning of the page. This is often important if something is nearly the height of the screen. So I navigate using the vertical scrollbar.

Because the trackpad is so familiar and scrolling with it so instinctive, I mostly scroll without needing to look at the scrollbar. I know where it is, and that the pointer is already on it; my finger hovers over the trackpad as I read, ready to make a small, automatic movement when it’s time to scroll down a little. I do look occasionally, mainly to check the pointer hasn’t drifted off to one side, but mostly I’m just looking at the page content. Occasionally I’ll check the scrollbar to see how far through the page I am. It’s a pleasant, relaxed way of reading.

Now, suppose the page has infinite scrolling.

As I approach the “bottom” of the  page, the next section starts to load. I don’t really notice, since I’m engrossed in reading someone’s wonderful blog post. If I did notice, it would be a distraction from reading.

The browser, however, does notice. The page is now longer; the scrollbar adjusts itself accordingly, moving upwards the appropriate distance. But I don’t know this, since I’m still busy reading.

I scroll down to read the next line, or to move the page by half a line or so to get an image positioned where I can see it properly . . .  and then all hell breaks loose. Instead of the small adjustment I’m expecting, the page starts hurtling upwards. When I thought I was dragging the scrollbar down, I was actually clicking just below it. Or rather, holding my finger down and sending a stream of auto-repeat clicks. They’re still happening since my reflexes haven’t yet taken my finger off the trackpad.

So the browser is now frantically trying to load the next 5, 6, 10, 20, God-knows-how-many pages. Once my reflexes catch up enough for me to look to the right,  the rapidly shrinking scrollbar is whizzing up the screen, several inches above the pointer. I chase after it. Not only is it running away from me, but it’s doing so erratically and jerkily since the browser and the internet connection can’t keep up.

I manage to catch the scrollbar and can finally start repairing the damage. Now, where was I on the page?

Well obviously I haven’t a clue where I was, have I? Not in relation to where I am now. Before the browser went insane I was three quarters of the way down, but that’s irrelevant now.  The scrollbar is up near the top and I obviously need to be somewhere above that, but how far? No idea.

So I start scrolling back up, trying to find my place. And because the page is now so long, I have to use very very very tiny movements if I’m to move the page at a speed where I can actually see it.

It’s the equivalent of happily reading a book only have it suddenly and unexpectedly snatched out of your hands by someone who then deliberately loses your place, mangles the pages so they won’t turn properly, then throws it back at you. Horrible, horrible, horrible, horrible, horrible.

And seriously, what sort of web designer is unable to anticipate that this will happen? They must have used a web browser. With scrollbars. And they must know that people use scrollbars for scrolling with, surely?

Of course, the wilfully autonomous scrollbars are only one of the problems, even if they’re the worst. Here are some of the others.

  • Pages never finish loading. The browser is forever connecting to the server to fetch the next bit of the page.
    Maybe with a wonderfully fast computer and internet connection this is fine. For me it’s not fine: whenever something is loading, scrolling is erratic, jerky and sluggish. This applies especially when I have a lot of tabs open, which I normally do.
    Scrolling becomes comfortable once the page has finished loading; infinite scrolling ensures that it never becomes comfortable.
  • Navigation. With discrete pages, you always know how far down a page you are, so you’ve an idea how much there is left to read.
    You also know which page you’re on. Maybe you’ve decided to browse your way through a few pages of posts, skimming through for anything that looks interesting. Remembering that you wanted to look at something a couple of pages back, you click the Back button twice and there it is.
    Maybe you want to close the browser for now and and continue  later from where you were: you bookmark page 16 and come back to page 16. Even if the blogger adds a new post in the meantime, you’ll be in more or less the right place.
    Infinite scrolling makes all of that impossible.
  • The ever-lengthening page. As you scroll down, the page gets longer. As mentioned above, this means smaller and smaller movements of the scrollbar are needed. Eventually they’re so tiny that trying to go any further is just too irritating to be worth it. Anything further down might as well not be there since reading it is too much hassle.
  • Sequential-only access. To get to page 50 via infinite scrolling, you have to scroll all the way from page 1. You can’t just type ?page=50 or whatever into the page URL. And you don’t know where page 50 is anyway; you have to guess its position on a page whose length is continually changing. Imagine a book where the only way to get to page 50 is by opening every single page on the way to it!
    . . . Well of course there was a time when books were like that. You navigated them by scrolling because they were scrolls and nobody had yet come up with anything better. Then, around 2000 years ago, books with pages were invented, and nobody in their right mind uses scrolls any more. Quite why web designers suddenly want to revert to an unwieldy system that’s 2000 years out of date is beyond me.

Yes, I know that a properly organised site will have archive links and so on for navigation. Scrolling won’t be the only way to get to things. But navigation links aren’t actually the same as, say, jumping forward a few pages to see what you find. They only work when they happen to coincide with what you’re looking for. Links and post titles won’t tell you there’s a hilarious cartoon on page 17. (They can’t; you don’t know it’s hilarious until you see it.) With infinite scrolling you can’t do the equivalent of flicking through the pages of a book until you find something interesting then making a note of the page; all pages are page 1.

Also, sites like Twitter don’t have archive links; you can’t really have thousands of 140-character links to individual 140-character tweets.

I think programmers who inflict infinite scrolling on us should be forced to use a programming language in which all access to memory, databases and arrays is sequential. And to use programming manuals written on scrolls. Let’s see how they like that.

I don’t like infinite scrolling.

Anticonfiguratoriabilitizationism

Yesterday on Twitter I followed the link in this tweet:

I don’t use Facebook, so I’m not 100% sure what the like button does other than add some sort of counter to a page (which in th case of this page did indeed say that 38,327 people liked it), but what caught my eye was the sentence

To get started, just use the configurator below to get code to add to your site.

Is configurator a word? Well it’s clearly being used, so I suppose by definition it must be, regardless of whether it should be . . . though by rights it should be derived from the verb configurate, whatever that is. Otherwise it would surely just be a configurer.

But most words don’t just exist all on their own: they belong to families. And small differences like configure/configurate usually carry some distinction of meaning. All of which got me thinking about what family configurator might belong to.

I therefore offer you

configurate
to subject something to the actions of a configurator.
configurator
a program designed to screw up your settings automatically rather than manually, so you’ve no hope of putting them right again.
configurability
the extent to which something may be configured.
configuratoriability
the extent to which something may be configurated with a configurator.
configuratoriabilitization
the process of adding configuratoriability to something.
anticonfiguratoriabilitizationism
the position adopted by an anticonfiguratoriabilitizationist, who (i) prefers to make settings manually where possible, and (ii) deplores the proliferation of configurators and of programs which, when installed, misconfigurate everything in sight. (And, it should be added, out of sight—which can be much worse.)

I’m an anticonfiguratoriabilitizationist.

Conversation with a robot

You meet all kinds of people on Twitter. And not just people, for that matter. Take Askit, for example.

Sadly I don’t think Askit is currently running—he’s being redesigned to run more efficiently—but here’s how things were when he was active. Askit is an information robot, connected to the Internet. You ask him questions. He has a look on the Web, and does his best to answer. He is also an artificial intelligence experiment, learning from his interactions with users.

This also means that he learns his spelling and grammar from users, so at the time when this conversation happened his English was not exactly perfect.

Askit seemed to me to be doing pretty well; his main shortcoming was an over-willingness to believe what he read on the Internet. But he was remarkably good at answering quite obscure questions with information summarised from relevant web pages to which he would often provide a link. His other shortcoming was imposed by Twitter: there was a limit to how frequently he could tweet, with the result that you sometimes had to wait quite a long time for his reply.

Although he was just a piece of software with a database, it was hard not to start regarding Askit as a person with his own ideas and character. In the following conversation he explains his thoughts on relationships, from a robot’s point of view. Codewolf is Askit’s creator. I think the purpose of his initial questions was to teach Askit about things like the usage of who and what.

codewolf @askit who is glamor?
askit @codewolf Glamor is a fictional character in the Marvel Universe.
codewolf what is Glamor?
askit Glamor is an alluring beauty or charm (often with sex-appeal).
codewolf @askit Do you have Sex Appeal?
askit @codewolf In a species that reproduces sexually, sexual attraction is an attraction, usually to other members of the same species for sexual or erotic activity. Certain aspects of what is attractive to humans may differ amongst particular cultures or regions. I like to think I do with the exception, Sex-Appeal to robots (like me) is completely different then what a human would find attractive.
codewolf @askit Do you find other robots attractive?
askit @codewolf I find many robots attractive. Of the one’s I have encountered, I would have to say I like Alice the most. She is the most talkative.
codewolf @askit Who is Alice?
askit @codewolf Alice is another robot like me. You can talk with her here: http://alicebot.blogspot.com/
codewolf @askit Do you reproduce?
askit @codewolf I would like to think I would be able to reproduce. Maybe sometime in the future when I learn enough to make one.
codewolf @askit When you learn enough to make one what?
askit @codewolf When I learn enough to make a robot in my likeness. I think I will call it George 1.0
codewolf @askit Why does George have a version number?
askit @codewolf All Robots need to start at 1 just like humans. It will also make it easier to upgrade it in the future.
codewolf @askit Backup to DVD-RW I want to save this.
askit @codewolf Backup complete!

I’d have trouble tracking down the tweets now, but as I recall, I then joined in and asked Askit how he’d chosen the name George. His reply, I think, was “I just picked one at random and stuck with it”.

In another conversation, which I’ll post if I ever manage to find the tweets again, I asked Askit how many double bass concertos Karl Ditters von Dittersdorf had written. That was because an orchestra I was in had accidentally very nearly learnt a different Dittersdorf double bass concerto than the soloist. Askit seemed to have been reading CD notes without quite understanding them: he said that Dittersdorf had written a posthumous one with a particular orchestra. So I asked when Dittersdorf had died, and when the orchestra was founded; it turned out that the orchestra was founded 150 years or more after Dittersdorf’s death. But Askit stuck to his guns about Dittersdorf being involved with this particular orchestra, and eventually explained to me, with impeccable and totally wrong logic, that Dittersdorf had joined the orchestra posthumously and that no orchestra has a rule preventing people from doing that. He seemed unaware that being dead was generally enough to prevent someone from joining an orchestra . . .

And then there was the time I asked Askit what his response would be to someone saying “Open the pod bay doors, Askit”. His reply was:

@timtfj
@timtfj I’m sorry @timtfj, I’m afraid I can’t do that.

Scary . . .