+++*

Symbolic Forest

A homage to loading screens.

Blog : Post Category : Technology : Page 3

Curious problem

In which we have an obscure font problem, in annoyingly specific circumstances

Only a day after the new garden blog went live, I found myself with a problem. This morning, I noticed a problem with it, on K’s PC. Moreover, it was only a problem on K’s PC. On her PC, in Firefox and in IE, the heading font was hugely oversized compared to the rest of the page. In Chrome, everything was fine.

Now, I’d tested the site in all of my browsers. On my Windows PC, running Window 7 just like K’s, there were no problems in any of the browsers I’d tried. On my Linux box, all fine; on my FreeBSD box, all fine. But on K’s PC, apart from in Chrome, the heading font was completely out. Whether I tried setting an absolute size or a relative size, the heading font was completely out.

All of the fonts on the new site are loaded through the Google Webfonts API, because it’s nice and simple and practically no different to self-hosting your fonts. Fiddling around with it, I noticed something strange: it wasn’t just a problem specific to K’s PC, it was a problem specific to this specific font. Changing the font to anything else: no problems at all. With the font I originally chose: completely the wrong size on the one PC. Bizarre.

After spending a few hours getting more and more puzzled and frustrated, I decided that, to be frank, I wasn’t that attached to the specific font. So, from day 2, the garden blog is using a different font on its masthead. The old one – for reference, “Love Ya Like A Sister” by Kimberly Geswein – was abandoned, rather than wrestle with getting it to render at the right size on every computer out there. The replacement – “Cabin Sketch” by Pablo Impallari – does that reliably, as far as I’ve noticed;* and although it’s different it fits in just as well.

* this is where someone writes in and says it looks wrong on their Acorn Archimedes, or something along those lines.

Hello, Operator

In which we consider switching OS

Right, that’s enough of politics. For now, at least, until something else pops up and ires me.

Back onto even shakier ground, so far as quasi-religious strength of feeling goes. I’m having doubts. About my operating system.

Back in about 1998 or so, I installed Linux on my PC. There was one big reason behind it: Microsoft Word 97. Word 97, as far as I can remember it, was a horribly bug-ridden release; in particular, when you printed out a long document, it would skip random pages. I was due to write a 12,000 word dissertation, with long appendices and bibliography,* and I didn’t trust Word to do it. I’d had a flatmate who had tackled the same problem using Linux and LaTeX, so I went down the same route. Once it was all set up, and I’d written a LaTeX template to handle the university’s dissertation- and bibliography-formatting rules, everything went smoothly. And I’ve been a happy Linux user ever since.

Now, I’m not going to move away from Linux. I like Linux, I like the level of control it gives me over the PC, and the only Windows-only programs I use run happily under Wine. What I’m not sure about, though, is the precise flavour of Linux I use.

For most of the past decade, I’ve used Gentoo Linux. I picked up on it about a year after it first appeared, and liked what I saw: it gives the system’s installer a huge amount of control over what software gets installed and how it’s configured. It does this in a slightly brutal way, by building a program’s binaries from scratch when it’s installed; but that makes it very easy to install a minimal system, or a specialist system, or a system with exactly the applications, subsystems and dependancies that you want.

There are two big downsides to this. Firstly, it makes installs and updates rather slow; on my 4-year-old computer, it can take a few hours to grind through an install of Gnome or X. Secondly, although the developers do their best, there’s no way to check the stability of absolutely every possible Gentoo installation out there, and quite frequently, when a new update is released, something will break.**

I’m getting a bit bored of the number of times in the last few months that I’ve done a big update, then find that something is broken. Sometimes, that something major is broken; only being able to log in via SSH, for example, because X can’t see my keyboard any more.*** It can be something as simple as a single application being broken, because something it depends on has changed. It turns “checking for updates” into a bit of a tedious multi-step process. I do like using Gentoo, but I’m wondering if life would be easier if I switched over to Ubuntu, or Debian, or some other precompiled Linux that didn’t have Gentoo’s dependancy problems.

So: should I change or should I go stay? Can I be bothered to do a full reinstall of everything? What, essentially, would I gain, that wouldn’t be gained from any nice, clean newly-installed computer? And is it worth losing the capacity to endlessly tinker that Gentoo gives you? I’m going to have to have a ponder.

UPDATE: thanks to K for pointing out that the original closing “should I change or should I go?” doesn’t really make much sense as a contrast.

* The appendices took up the majority of the page count, in the end, because of the number of illustrations and diagrams they contained.

** Before any Gentoo-lovers write in: yes, I am using stable packages, and I do read the news items every time I run “emerge –sync”

*** I was lucky there that SSH was turned on, in fact; otherwise I’d have had to start up and break into the boot sequence before GDM was started.

Performance

In which things turn to treacle

I’ve noticed, over the past few months or so, that sometimes this site seems to load rather slowly. The slow periods didn’t seem to match any spikes in my own traffic, though, so I didn’t see that there was necessarily much I could do about it; moreover, as it wasn’t this site’s traffic that seemed to be causing the problem, I wasn’t under any obligation to do anything about it.

As I’ve mentioned before, a few months back I switched to Google Analytics for my statistics-tracking. Which is all well and good; it has a lot more features than I had available previously. Its only limitation is: it uses cookies and Javascript to do its work. Because of that, it only logs visits by real people, using real browsers,* and not spiders, robots, RSS readers or nasty cracking attempts. Often, especially if you’re a marketing person, that’s exactly what you want. If you’re into the geekery, though, it can cover up what’s exactly going on, traffic-wise, at the server level.

Searching my logs, rather than looking at the Google statistics, showed that I was getting huge numbers of hits for very long URLs, consisting of valid paths joined together by lots of directories named ‘&’:

Logfile extract

That’s a screenshot of a single request in the logfile – the whole thing being about 850 characters long. ‘%26′ is an encoded ‘&’ character. Because of the way WordPress works, these things are valid URLs, and requests for them were coming in at a pretty fast rate. Before long, the request rate was faster than the page generation time – and that’s when the problem really starts to build up, because from there things snowball until nobody gets served.

All these requests were coming from a single IP address, an ordinary consumer type of address in Italy.** Moreover, the user-agent was being disguised. Each hit was coming in from the same IP address, but with a different-but-plausible-looking user-agent string, so the hits looked like a normal, ordinary browser with a real person behind it.

The problem was solved fairly easily, to be honest; and the site was soon behaving itself again. It should still be behaving itself now. But if you came here yesterday afternoon and thought the site didn’t seem to be working very well, that’s why it was. I’m going to have to keep an eye on things, to see if it starts happening again.

* and only if they have Javascript enabled, at that, although I know that covers 99% of the known world nowadays.

** which made me think to myself: “I know I’ve pissed people off … but none of them are Italian!

Brokenness

In which things go wrong in hard-to-diagnose ways

We go away for the weekend. We come back. And the house is cold. Turn on the hot water tap: freezing. The boiler has given up the ghost.

I turn on the PC this morning: and that refuses to come on, too. Which, to be honest, is a recurrence of a problem I was already aware of. Sometimes, on start up, it gets partway and loses contact with the disk drive. Or, sometimes, if you ask it to do too much disk-thrashing just after booting, the same thing happens. On the other hand, if it starts up all its services and is fine for 15 minutes, it will probably stay fine until it’s switched off.

All that points to something like a loose contact somewhere, if you ask me. As I say, it’s been happening for months now; but today I was in the mood to sort it. The computer now has a new hard disk cable. It booted up first time, and it’s still running. Let’s see if it still works in the morning.

The boiler might be suffering from something similar. The gas engineer came out, poked around at it, and fixed it. The chap wasn’t sure what the problem was, or how he fixed it, but fix it he did. Maybe. It’s working now, but we still have to see if that, too, will come on again come tomorrow.

The size of things

In which we measure monitors

The redesign is now almost done, which means that soon you’ll be saved from more posts on the minutiae of my redesign. It’s got me thinking, though: to what extent do I need to think about readers’ technology?

When this blog first started, I didn’t really worry about making it accessible to all,* or about making sure that the display was resolution-independent. It worked for me, which was enough. Over time, screens have become bigger; and, more importantly, more configurable, so I’ve worried less and less about it. When it came to do a redesign, though, I started to wonder. What browsers do my readers actually used.

Just after Christmas, for entirely different reasons, I signed up for Google Analytics, rather than do my own statistics-counting as I had been doing. Because Google Analytics relies on JavaScript to do its dirty work, it gives me rather more information about such things than the old log-based system did. So, last week, I spent an hour or so with my Analytics results and a spreadsheet. Here’s the graph I came up with:

Browser horizontal resolutions, cumulative %

The X-axis there is the horizontal width of everyone’s screens, in order but not to scale; the Y-axis is the cumulative percentage of visits.** In other words, the percentage figure for a given width tells you the proportion of visits from people whose screen was that size, or wider.

Straight away, really, I got the answer I wanted. 93% of visits are to this site are from people whose screens are 1024 pixels wide, or more. It’s 95% if I take out the phone-based browsers at the very low end, because I suspect most of that is accounted for by K reading it on the bus on her way home from work. The next step up, though, the graph plunges to only 2/3 of visits. 1024 pixels is the smallest screen width that my visitors use heavily.

Admittedly there’s a bit of self-selection in there, based on the current design; it looks horrible at 800 pixels, and nearly everyone still using an 800×600 screen has only visited once in the two-month sample period. However, that applies to most of the people who visit this site in any case; just more so for the 800-pixel users. Something like 70% of visits are from people who have probably only visited once in the past couple of months; so it’s fair to assume that my results aren’t too heavily skewed by the usability of the current design. It will be interesting to see how much things change.

I’m testing the new design in the still-popular 1024×768 resolution, to make sure everything will still work. I’ll probably test it out a fair bit on K’s phone, too. But, this is a personal site. If you don’t read it, it’s not vital, to you or to me. If I don’t test it on 800×600 browsers, the world won’t end. The statistics, though, have shown me where exactly a cutoff point might be worthwhile.

* For example, in the code of the old design, all that sidebar stuff over on the right comes in the code before this bit with the content, which does (I assume) make it a bit of a bugger for blind readers. That, at least, will be sorted out in the new design.

** “visits” is of course a bit of a nebulous term, but that is a rant for another day.

The Unconnected

In which we bear bad news

Breaking bad news to people is always hard to do. Even if it’s something as mundane as a dead computer. I took a quick look at a machine one of the staff had brought in from home, in my lunch break; it’s vitally important she gets it working again, apparently, because it’s got all her daughter’s schoolwork on it, and they have to have a computer now to do all their assignments on.* It only needed a quick look to show that it’s not coming back to life. Its hard disk is almost certainly now a former hard disk, with no hope of getting her homework back.** But how do I tell her?

Latest addition to my RSS reader: Bad Archaeology. The navigation is a bit awkward, and their “latest news” page doesn’t seem to get archived, but there’s some very good stuff in there, if, like me, you would love to try poking members of the Erich von Däniken Fan Club with long pointy sticks. Their latest article is on King Arthur, as an example of what happens when you set out to prove a point, and try to use archaeology to do that. I’m tempted to write something longer about exactly that, soon.

In other news: I’ve been listening to Phoebe Kreutz lately. Her songs make me smile, and make me want to listen to more of her songs. So that has to be a good thing. Hurrah for good things!

* I’m not sure I believe that. This isn’t a rich town, and there must be many many children in the area whose parents don’t have a PC.

** A normal boot sequence halts with “Non-system disk or disk error”, which, if your other drives are all empty, is never a good sign. A Linux boot CD finds the hard disk, prints out lots of nasty disk hardware errors, and then says it can’t read the partition table. Not good, not at all.

Lost terminology

In which a word is snappy but fails to catch on

Jargon changes over the years; bits of it get picked up, some bits become mainstream, and some wither away.

On a trip to Wet Yorkshire the other day, I started thinking: there’s one piece of jargon which I think it’s a shame didn’t get picked up. It’s Charles Babbage‘s term mill, which he used to name something that was, for him, a new concept: a machine which would carry out arithmetic calculations according to a sequence of instructions. Today, we’d call it a computer CPU; but there isn’t really any better term for it other than that awkward three-syllable abbreviation. I’d much rather be talking about the newest Core Duo mill, or Athlon mill; it rolls off the tongue. A twin-mill machine sounds much snappier than a dual-processor one. If you look at one under a microscope, it even looks vaguely like the giant mechanical grids of 19th-century looms,* just like the mills Babbage was originally alluding to. Is there any chance of the word making a come-back? Probably not; but it would be nice if it did.

* I was tempted to take up “loom” and segue into a Doctor Who discussion, but that reference would be too geeky even for me.

Frustration

In which things always go wrong … unless we want them to go wrong

A Work Story.

We need a new printer. The MD says: “Order a new printer!” Our manager waits until he’s out of earshot, then says: “get Spare Printer X working and use that instead.”

So, I find Spare Printer X out, and do manage to get it working. I test it. It seems to be fine. But then, a strange thing starts happening.

I give it a page to print. Let’s call it Page A. It prints it. All is well.

I test a different page. Page B. The printer happily prints another copy of Page A.

A third page to the printer? Out comes Page A again.

Let’s try a four-page document. I get: four copies of Page A.

Switch to a different application. It works! It prints what I tell it to—Page X this time.

I print Page Y from that application. I get Page X again.

Go back to the first program. Still printing Page A.

Let’s reboot the printer. Let’s print. Oh look, Page A.

OK, it’s not the printer. Let’s reboot the printer, and the computer, wait ten minutes, turn them back on. Check there are no files spooled and waiting. Print something. Out comes: Page A. Now this, surely, is physically impossible.*

The boss pops down to check how I’m getting along. “It’s borked,” I say. “It only ever prints copies of the first thing you told it to print. It’s useless. Look.” I repeat my last, failed, print request. It prints perfectly. Arse.

“Looks fine to me,” says the boss. “Put it in, and see if they have any problems.”

Of course, I know it’s never going to work now.

* or at least, extremely improbable, if you follow Sherlock Holmes’ philosophy.

Legal news

In which Microsoft are on the good side for once

Legal news of the week: Microsoft has lost a patent infringement case brought by Alcatel, the company that owns the rights to the MP3. That is, they don’t own the file format itself, but they own the patent on understanding what they mean.

Now, normally, “Microsoft losing a court case” would be Good News for computer users everywhere, because Microsoft generally aren’t a very nice company and seem to spend most of their time thinking up new ways to extract money from people.* This case isn’t, though, because software patents are a bad thing, a bad thing indeed. If you’re a geek you can skip this next bit, because you’ll already know why they’re a bad thing.

Software is, basically, a list of instructions for doing arithmetic. Forget all the flashy graphics you see on the screen. Forget your email and your IM programs. Computers are machines for pushing numbers around,** and computer software is a list of instructions for doing that. Remember doing long division at school? That was essentially a list of steps for working out division sums that are too hard to do in your head – software for your brain, in other words.

Now, imagine if the inventor of long division*** had patented it. Every time you did a long division sum, you’d have to pay him a royalty. If you invented a machine to do long divisions for you, you’d have to pay a bloody big royalty. That’s how patents work.

Software patents are even worse, because often they involve access to data which is otherwise locked up. All those MP3 files on your computer? There’s no practical use for them without decoding software. Decoding software is patented. Microsoft thought they’d paid the patent holders for the right to write a decoder and sell it with Windows – but then the patent holder changed, and the new owner thought otherwise. The courts agreed with them.

Imagine if the first person who ever thought of the idea of reading a book in the bath had patented it. They managed to get a patent on the following: “run bath, select book, get in bath, pick up book, hold book in a cunning way to avoid getting it wet, read.” That’s no different, essentially, from a software patent that involves reading data from a file. If someone had done that, then you could only read a book in the bath if you’d licensed the right to do so. That’s why software patents are bad and wrong.

In more amusing legal news, the right-wing UK Independence Party has been told to return over £350,000 in illegal donations, made by a businessman who wasn’t registered to vote at the time. The party think the ruling is ridiculous. It shines a light, though, on the underside of their philosophy. There are rules there to ensure that only British people with a stake in British politics can fund political parties. UKIP think the ruling is silly because the man is obviously British even though he couldn’t prove he was a British voter. Which just goes to show that they’re not interested in proof or evidence or process; their definition of Britishness seems to be that you’re Someone Like Us.

* which, to be fair, is what capitalist companies are supposed to do.

** that’s why they’re called “computers”, and not “communicators” or “info-readers”, despite that being their main use.

*** apparently the sixteenth-century Yorkshire mathematician Henry Briggs, according to this lecture from his old college

Flooding

In which Exchange causes problems

Microsoft, everyone’s favourite evil behemoth, have been getting as much press as they can in the past few days to push their new operating system. At the same time, though, their software has been making my life a drag. And there’s nothing at all I can do about it.

The problem is their email server “messaging solution”, the horrible and nightmarish Microsoft Exchange. I know it’s a horrid system to babysit, but fortunately I don’t have to do any of that. Worse, though, it can make life bad for people like me who shouldn’t have to have anything to do with it.

Like most things Microsoft produces, it has a showstopper of a bug. It’s triggered by an innocent salesman* who decides to send an email to a long, long list of people at once. His (or her) own system has nothing to do with this; the problem is when one of the people in the recipient list uses a buggy Exchange. Their server will read the email, and send it out again. To all of the recipients. Thousands and thousands and thousands of times. Each copy looking like it’s coming from the original sender.

Moreover, some of those people will then reply, saying things like “why are you sending me thousands of emails, you fuckwit?” They don’t really help, though, because inevitably they push the “reply to all” button. Meaning they then generate a second email which triggers the same bug, so that email, too, gets duplicated thousands and thousands and thousands of times, until the administrator of the buggy server wakes up and takes their server offline to recover for a while.

Bugs in software are unavoidable. Most of them, though, don’t cause problems for more than one person at once. Bugs like that, though, that can block up internet connections and mail servers for hours at a time, should never have been released. Releasing software that disrupts the rest of the world, in that way, is verging on unforgivable.

* Well, it’s not salesman-specific. But for some reason, it seems to be salesmen that set it off most of the time