Well, that’s my birthday over for another year. Got some cool stuff, ate some cakes, ate a Chinese meal (from a new takeaway place I hadn’t tried before, which was great, and I made the woman on the phone giggle), watched Back To The Future. A pretty good day, all in all.
Since you all had such fun guessing last year, I won’t say how old I am, other than that my age is now a perfect number!
Posted by sil at 12:00 pm on January 31st, 2004.
Categories: Uncategorized.
I’m fairly convinced that it should be possible to set up something that “records” you testing a web page. In a world without security restrictions, it’d work. Basically, you have a bookmarklet which creates a sidebar, and then the sidebar watches what you do in the main frame and stores a script.
In a bit more detail:
The bookmarklet would be called something like “Record a macro on this page“. When you click it, it creates a link in the body of the page, which looks something like this:
<a href="http://webtest.kryogenix.org/" onclick="if (window.sidebar.addPanel) { window.sidebar.addPanel(this.href);" rel="sidebar" target="_search">test</a>
(The very useful sidebars in firebird, mozilla, opera and IE details at unescaped beta helped immeasurably here.) The rel="sidebar" creates a sidebar in Opera. The target="_search" creates a sidebar in IE. The JavaScript addPanel stuff creates a sidebar in Mozilla and Mozilla Firebird. Then the code clicks on the link. Pow, sidebar.
The sidebar then, when it loads, attaches a shedload of handlers to the code in the main page—an onclick to everything, onchange to form elements, all that sort of thing. So when you do anything on the page, it gets told about it. When it gets told about something, it stores that away in a script. You should then be able to save that script and replay it, and the automated system will mimic all your clicks and form typing.
Why this won’t work
Well, there are three reasons. The first is that the sidebar won’t be able to read the contents of your page, because it comes from a different domain, and the security model (which exists for good reasons) won’t let it. I think you could get around this by having the bookmarklet construct your whole sidebar page with document.write statements, but firstly this would make it a very, very complex bookmarklet indeed, and secondly there are limitations on the size of a bookmarklet, especially in IE.
The second reason is that the sidebar won’t be able to access the local filesystem to save the script, again because of the security model. You might be able to fix this with signed scripts, but then I suspect what you will get is ugly confusing security dialogs. It’s possible that pages loaded from the local filesystem can save back to it, but that doesn’t appear to always be the case—Mozilla will, I think, need chrome URLs, and that then means that the test environment has to be installed and then it’s not an easy-to-use cross-browser thing, it’s a Moz XUL application.
The third reason is that when you submit a form, or follow a link, you stop tracking what’s happening in the page. That’s silly in a test environment; you need some way of saying “this thing here on page 2, that has to be there” so that you have some conditions for knowing whether your test has passed. I can’t think of a way around this, either—there’s no way that the security model will ever let you put a page in the sidebar that can watch what’s in the main content window, since that sidebar page could then tell someone nasty on the internet what you were browsing all the time. I’ve seen proxy applications, where the proxy seamlessly inserts stuff into your page—the ones designed for web testing, though, don’t do any JavaScript stuff, so they can only test form submissions and so on. I don’t want that—I want to be able to track what a user does the whole time they’re testing, including whether any interactive stuff on the page works.
Perhaps someone has already solved this. Is there anything that is cross-browser (it’s allowed to demand a modern browser, but at a flat minimum it must work in IE and Mozilla on Windows and Linux) and lets me do this sort of testing?
Posted by sil at 12:00 pm on January 31st, 2004.
Categories: Uncategorized.
The roads are chock-a-block, unmoving. The bus outside has moved about three hundred yards in the last half an hour. Everything is still, engines running but no-one going anywhere. I’m snowed in—or trafficed in, at least.
And I’m still at work.
Tonight was my birthday celebration at the Wolves LUG. Big curry and beer evening, lots of fun and laughter. As it is, I’ll be lucky to get there at all.
I hate everything.
Update: Still at work, 7.10pm. I’m not going to Wolverhampton. A woman outside in her car has apparently not moved for three and a half hours. Hate everything. Even more.
Update: 9.55pm. Still ice everywhere. Still traffic. Still here. Still.
Update: 10.55pm. And yet it continues. The traffic is moving. At about two miles an hour—a car is still taking ten minutes to cover a hundred yards, but this is better than the hour and a half it was taking before. Birmingham is clearly running out of cars to send out to get in my way. Drawing the acceleration on a graph, and assuming that the rate of change in the average velocity of cars passing the office is increasing exponentially, I reckon that by about half six tomorrow morning the cars will be doing the speed of light, so I can be home in well under a second and get an hour’s kip before returning to work. Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargh.
Update: Left work 11.30pm. Arrived home 2.30am after a hellish, hellish journey. I don’t remember the last time I concentrated extremely hard on one thing and one thing only for three hours without a break. I may never have done it. Today: working from home.
Posted by sil at 12:00 pm on January 29th, 2004.
Categories: Uncategorized.
This machine, kryogenix.org, is now a new machine. And it’s loads faster, too. Big ups to Ron and Savvy for helping me get it sorted out. It was remarkably easy—I’ll write up a note later on how it was all done. Now I need to sit back and wait for the cry of anger from my exfriends delightful users as they discover how much stuff I’ve inadvertently broken…
—–
Posted by sil at 12:00 pm on January 28th, 2004.
Categories: Uncategorized.
Lots of snow here. Driving this morning was fun, in that very special sense of fun that means “right on the edge of a hideous metal-ripping accident all the time you’re driving“. Until I got onto the main road, anyway, which is reassuring. I also discovered a new thing about my car’s bonnet design; when there’s snow on it, because of the aerodynamics of the car, the snow gets blown up into the windscreen. So it’s like driving through a blizzard, even when it’s not actually snowing. Marvellous.
This situation was improved by having the car heater on so hot that the snow was steaming off the windows in great plumes. The weather cannot harm me! My Coupe is like a shield of steel!
Actually, it is a shield of steel, thinking about it.
The snow’s very pretty, I have to admit. It does make walking nearly as treacherous as driving, since my work shoes have smooth leather soles. My morning perambulation from the car park to work was like trotting across an ice rink. All this aside, though, the look of the world when it’s just been snowing is like bottled nostalgia—it brings in warm and lovely memories of happy childhood days and that sort of thing. I’m unclear why this is; it snowed enough to be worth talking about twice when I was a kid, I think. Perhaps it’s race memory from the days when humanity lived in Siberia. Or from the space aliens who came from the ice planet to populate the earth, or something.
I think I shall just enjoy the look while I can, before all the snow gets turned into brown mush and the world looks like it’s had a cappuccino bath. Let it snow, let it snow, let it snow…
Posted by sil at 12:00 pm on January 28th, 2004.
Categories: Uncategorized.
What’s with all these spam emails I keep getting that are full of random words? How does it profit anyone to send me that? The best thing I can think of is that it’s designed to poison anti-spam measures so I get annoyed and turn them off, but that seems like a bit of a weak justification…
Posted by sil at 12:00 pm on January 28th, 2004.
Categories: Uncategorized.
Finally got around to setting up a FOAF file. Now I’m part of the semantic web too. I need to flesh it out a bit…
—–
Posted by sil at 12:00 pm on January 27th, 2004.
Categories: Uncategorized.
Anyone got any experience with the IeUnit unit testing framework? We need something to do web user tests, and I don’t like JUnit because I’m not a Java hacker. I need to be able to test client-side stuff, so, to be honest, it sounds a lot easier to automate an actual browser than to use something that attempts to emulate a browser (and has to parse and execute JavaScript and so on). Are there any other Free tools like this, other than IeUnit?
Posted by sil at 12:00 pm on January 23rd, 2004.
Categories: Uncategorized.
Robert Love and others are busily working on Project Utopia, which, from what I can see, plans to do really neat things like automatically handle you plugging in a digital camera or whatever by giving you a nice desktop icon and mounting it and so on. It probably does lots of other stuff too. They’re doing this with dbus and udev and a few other things; really neat. I’ve been planning this sort of thing for a while, just as soon as I can build myself a RoxOS system to test it on…
—–
Posted by sil at 12:00 pm on January 20th, 2004.
Categories: Uncategorized.
So, I want to build RoxOS. But yesterday I used a recent Gnome and it seemed pretty nice. The impression I have is that the Gnome people really have their heads screwed on and have the same goals for an OS that I do—they’ve got some keen hackers and a real focus on usability, what with people like Havoc Pennington and Seth Nickell on board. The Storage work and Project Utopia are just where I want my OS to be going. However, I don’t really want to buy into the whole Gnome deal; Nautilus seems unpleasantly bloated to me. Anyone got any thoughts? I moved away from KDE to ROX and a minimal window manager because I wanted a less heavy environment; I’d be getting all that back again with Gnome. Plus, I really like the way ROX works, it’s just that the rest of the desktop doesn’t work like it. Don’t know what to do…
Posted by sil at 12:00 pm on January 20th, 2004.
Categories: Uncategorized.
This should really be a proper rant but I haven’t got time.
Call centres are really unfair. Now, everyone has lots of reasons why they don’t like call centres: the staff are incompetent, you have to wait on hold for hours and hours, they don’t have the information you need, calling twice gives you two different answers—fill in your own reasons. The reason I hate them, however, is that it insulates the company from criticism. You see, the people working in the call centres are just ordinary Joes like you and me. (Well, like me. You may not be ordinary.) They’re doing a pretty thankless job for pitifully low wages and with (as I understand it) appalling working conditions. So, when the company you’ve rung decides to implement some kind of evil corporate death-to-our-customers policy, the call centre people get to be the ones to tell the callers, like me. But it’s just not fair to get really angry with these call centre people—it’s not their fault, there’s nothing they can do to fix it, and their job is hard enough without me getting irate on the phone. So the company can do what they want and I can’t even shout at them. I can ask to speak to a supervisor, but I always worry that that supervisor will then mark down the person I’m talking to as someone who can’t handle customers and probably have them flogged or something. So I just fume until I start bleeding out of my ears but don’t complain to the company about it. And that’s probably just the way they like it. There’s none so blind as them as won’t listen, as Del Boy once said.
Posted by sil at 12:00 pm on January 20th, 2004.
Categories: Uncategorized.
I am not a big fan of using “real” databases—by which I mean ones with a separate server process, like MySQL, and to a lesser extent inline ones like SQLite or Berkeley DB —for tasks where you don’t have a lot of data. No weblog has that much data. This view normally causes controversy when I come up against one of the LAMP people who use MySQL for everything.
You see, to my mind, a real database process has two things that make it really useful. The first is that it’s got super-optimised access to data. This is important, if you’ve got a lot of data. If you haven’t, then it doesn’t matter anywhere near as much, and indeed you may start finding that the database’s own overheads start to be significant. For example, the difference between grep '^title:' files/*.txt and select title from filelist where filetype = 'txt' (pulling those out of my head) is insignificant over a hundred files, pretty much. Over a hundred thousand, or a hundred million: maybe that would be different. However, no-one’s working with data on those scales on a weblog, as far as I’m aware—the Technorati people and so on probably are, but then I bet they’re using a database.
The second reason that databases are great is SQL. Again, if you’re using complicated SQL queries, then it’s an amazingly powerful tool. If, on the other hand, all your queries are pretty simple ones—select name,time,content from articles where year = 2004 and month = 01—then the overhead of setting up and keeping running a database is a lot to pay to avoid the equivalent file management statement. This is why I like and use pyblosxom: it fits this philosophy down to a tee. Use the filesystem as your database: to add a new entry, just drop a file in a directory. Easy. You don’t need a special interface to do it, you can go in and edit files any time you like.
Posted by sil at 12:00 pm on January 17th, 2004.
Categories: Uncategorized.
Loads of people are starting to get GPS stuff in their cars. I really want this, but I don’t want to pay a lot. Aldi were doing a thing that was a GPS receiver and a PocketPC, so you could use the PDA as a PDA and then plug it in when you were in the car to have it do GPS —it spoke to you and told you where to turn and so on.
I think this should be doable with a Zaurus. You can buy CompactFlash GPS cards, which will plug into the Z, so that would work fine. What’s missing, however, is the map data. It seems that there isn’t any freely available vector map data which a navigation program could use. Damn. (You need vector data, not bitmap data (pictures of maps) because in vector data the points where streets meet and so on are identified. Computers can’t do a lot with bitmap data other than display it; they can’t interpret it.)
I wouldn’t mind the idea of buying some map data, if that were possible. Has anyone done anything like this?
Posted by sil at 12:00 pm on January 13th, 2004.
Categories: Uncategorized.
In the spirit of Aquarion, and what with it being January and all, and because you’re probably sick of seeing Adam Hart-Davies adverts on the TV if you ever work for yourself, we present:
What do an ostrich and the Inland Revenue have in common?
They can both stick their bills up their arses.
Arf, arf, arf! Cheers Jono (I think).
—–
Posted by sil at 12:00 pm on January 9th, 2004.
Categories: Uncategorized.
There are two very similar words, deprecate and depreciate. They are not the same word.
Deprecation is what has happened to a bit of an API that you’re not supposed to use any more. It means, in the technical community, that something is old or broken or has been replaced by a better alternative but still exists for backward coding compatibility, and you should think about not using it because it might go away in the future. (There’s also self-deprecating humour, to take an example of the different meaning of the word, but that’s not what we’re here to talk about.)
Depreciation is what happens to cars and houses and things when they go down in price after you’ve bought them. Economists no doubt have a technical meaning for it, but think of it this way: remember when you bought that beautiful new PowerBook or Mac G5 for about two grand, and ten seconds after you bought it it was worth seventeen hundred quid, and now you couldn’t sell it for mor than about fourteen hundred? That’s depreciation; an item’s price dropping over time just because it’s getting older.
Bits of specs or APIs or programs do not depreciate, in general. The easy way to remember this is as follows:
If you are talking about code, you almost certainly mean to say deprecate or deprecated. If you are talking about prices, you almost certainly mean to say depreciate or depreciation or depreciated.
People getting this wrong annoys me out of all proportion to the (frankly pretty tiny) magnitude of their error.
Posted by sil at 12:00 pm on January 9th, 2004.
Categories: Uncategorized.
I have a handy little bookmarklet that posts to the short‘n‘curlies linklog at the top of the front page. It grabs information about the page title, referrer title, and referrer url, and just lets me type in a supposedly funny (or pithy and useful) summary comment before posting. Very handy. However, I’m finding it less and less useful because of one specific problem; the referrer information it picks up is quite often pointing at Bloglines, my RSS aggregator. I don’t read people’s websites any more, especially if they provide full post content in their syndication feeds; I read the posts in Bloglines and follow the links from there directly. So, if I want to make a note of those posts, I have to go and open Bloglines again, select that feed, choose the “show old posts I’ve read” bit to on, follow the permalink to their website, follow the link again to the destination, and then click my bookmarklet again so I can get the right referrer data.
Now, this is hardly a major problem. Sometimes I can’t be bothered to do this, and so I just don’t provide any information about where I got that link from. But Ned (very politely) pulled me up on that once (and rightly so) so I don’t like doing it. (Getting credit for being the person before me to copy the link of someone else (arf, arf) is hardly a major thing, but it’s a reasonable thing to do nonetheless).
So, how can I solve that?
Posted by sil at 12:00 pm on January 9th, 2004.
Categories: Uncategorized.
To make sure your machine’s time is up to date all the time, install ntp (apt-get install ntp, or do it how your machine does it), and then add to /etc/ntp.conf:
server uk.pool.ntp.org
server uk.pool.ntp.org
server uk.pool.ntp.org
Yes, that’s the same line three times. See the usage instructions for why. Thanks to Peter Oliver for explaining this to me.
—–
Posted by sil at 12:00 pm on January 9th, 2004.
Categories: Uncategorized.
Just a quick note to say: if you’re using a Radeon 7000 with XFree86 4.3.0, and you want DRI to work, don’t run the Radeon framebuffer (either as a module or compiled into the kernel). It makes GLX applications crash. Only taken me a whole day to work that out!!
—–
Posted by sil at 12:00 pm on January 8th, 2004.
Categories: Uncategorized.
New quick hack: a command line DVd cover printer. Just do dvd-cover python grail and watch your printer bang out a nice DVD cover for Monty Python and the Holy Grail, with a cast listing and so on. It’s a hack, not a real thing, but you can grab it from the code page.
Posted by sil at 12:00 pm on January 6th, 2004.
Categories: Uncategorized.
Feeling tired. Shaving foam flecked with red. Rushed breakfast. Traffic jams. Countless FYI emails.
I must be back at work.
Posted by sil at 12:00 pm on January 5th, 2004.
Categories: Uncategorized.
So, now I’ve got my nice shiny Radeon 7000 working, I can do what I bought it for, which is: play Max Payne! Yay!
I have so far discovered that my box is a bit tight for playing it, since it’s running through WineX, but we can manage it. And I’ve discovered that I’m not very good, either, but practice makes perfect…
Posted by sil at 12:00 pm on January 3rd, 2004.
Categories: Uncategorized.