William Heath and others over at the Ideal Government Project are putting together a list of what an ideal e-enabled government would look like, in order to present it to the government CIO (formerly known as the e-Envoy), Ian Watmore. This sort of grassroots activity is really important. They’re well aware of the success of FaxYourMP and TheyWorkForYou, which are aiming to make it easy for us to get in touch with our MPs and know what those MPs are doing. Ideal Government is more about defining the utopia we could be in; a list of proposals for how government can be more accessible, more open, and more enabled for all of us. I’m currently involved in a discussion about how your tax return might let you communicate back to the Revenue what you wanted to see that tax spent on. They need your ideas, because they’ve got a chance to present them to the one man who might actually be able to make them happen. Does all this neat stuff we do—RSS feeds for quick alerting of new things, easy access to data, quick ways to comunicate back to a site owner, weblogs, context-based searching, Atom, public-key authentication—have the potential to make the government better? If it does, if there’s any way that it does, then this is the chance to tell them so. Get on over there, read, and propose.
LugRadio forums back online
The LugRadio forums are back!
-----S3 Sonic Vibes (86c617) soundcard under Windows 2000/XP
So, if you’ve got an S3 SonicVibes soundcard in an old machine, and you’re trying to get the sound working, how would you do it? Well, Googling for it gives you loads of links to driverguide.com (and loads of links to places which are links to driverguide.com). None of the drivers there work. They’re all (charitably) out-of-date Windows 95 drivers, or (uncharitably) a timewasting pile of shite that took up two hours this afternoon. Eventually, I came across a note that the 86C617 card is actually the same chipset as the Turtle Beach Daytona. So, off to the Turtle Beach site. They have the driver that works—grab the NT driver from there and install it. Marvellous. That’s two whole hours of downloading, testing, and rebooting that I won’t get back, but at least it’s fixed now.
Incidentally, Linux detected and worked with that soundcard with no extra effort required.
Ubuntu power
My laptop is now feeling the power of the Ubuntu Linux preview release. There are a lot of cool guys hacking on this, including the bloke in the world for whom I have the most technical respect, and it’s niiiiiice. Dig that whole sepia brown vibe, man. Doesn’t seem to be any way to configure my wireless network’s passphrase, though, dammit.
The perversity of banks
Aquarion rants about his bank’s slowness and lameness in the age of instant gratification. He’s not wrong.
I’m with an internet bank. They’re a pain in the arse, for two reasons. The second is that it’s a real pain to pay in cash or cheques into the account there, because you have to send them away or pay them into another account and then bank transfer the money, and we do that all the time, and it’s really annoying!. The first and most important reason is that we told then that we had a payment going out and asked them to transfer a fiver (just a fiver) off the credit card into our current account, so that the payment could be made (we were about 40p short in the account of being able to make it). We asked them if the payment from the CC would clear that night, in order to be ready for the payment to go out the following day, and they assured us yes, repeatedly. So, the next day, the payment went out and was rejected because there wasn’t enough money in our account. I got on the phone to the, bleeding out of my ears with fury, and they told me that they process outgoing payments before they process incoming payments. Now, that not only means that they lied to us about whether it’d work, but there is no reason to process outgoing payments before incoming ones other than to screw people like they did us. They could just as easily process incoming before outgoing and then fewer people would go into an unauthorised overdraft, but then of course they couldn’t hit as many people with unauthorised overdraft fees. So they’re deliberately mean to sting people for money. Fuck that. Moreover, the outgoing payment was the first direct debit for the car insurance, and, because the first one was rejected by the bank, the insurance company automatically cancelled the direct debit and made us pay the whole year’s fees in one lump sum. So i had to find a few hundred quid at no notice at all, and when I later asked the bank for an overdraft to get that money they told me I couldn’t have one because i was a bad credit risk.
It would clearly be a horrible piece of libel for me to tell you, my readers, that the bank is Intelligent Finance, so I won’t.
The mysteries of poker
I was dealt A J. I limped from the small blind and he checked. The flop was A J and a rag. I checked. He went all-in and I called. He had nothing and I won the hand. Pretty straightforward, but I understand why he made the bluff. He just was unlucky that I hit the flop hard.
I mean, that sounds like fun, right? Every now and again I realise that most of the stuff I write here is totally incomprehensible to most of the people I know. Eric Meyer noticed the same thing recently. -----
Quick JavaScript debugging tip
If you’re doing a lot of JavaScript debugging, you tend to put alert() statements all over the place (well, I do, anyway). They can interrupt things somewhat. Instead, stick this in an included JS file somewhere:
alert = function(s) {
var ta = document.getElementById('debug');
if (!ta) {
var ta = document.createElement('textarea');
ta.id = 'debug';
ta.rows = 8; ta.cols = 80;
document.body.appendChild(ta);
}
ta.value += s+'\n';
}
Then, whenever you do alert('whatever');, it’ll just add to a textarea that it creates in your page. You can scroll back through the errors, and you can put alerts inside a loop without fearing that you’ll have to click “OK” fifty times next time you test the page.
(Update: doesn’t work in Internet Explorer)
FreeDesktop shared COM layer
Davyd and J5 are talking about a shared COM layer between KDe and Gnome. Jono’s been talking about the possibility of this for years, and every time he suggests it it meets with utter scorn from me. If it turns out to work and be possible then I will eat a large dish of humble pie (maybe even humble funky pie?), but I won’t care because KDE and Gnome will be totally interoperable and that will be great.
Lugradio.org back online
After a few problems with our DNS servers, the LugRadio site is back online. Next episode should be out a week on Monday.
Using forms rather than links to perform actions
I quite often build pages where there’s a link on the page that actually performs an action (rather than just jumps to another page). For example, imagine a list of documents; next to each document you have a *[Delete]* link, which goes to a cgi (passing the document’s ID in the querystring); the CGI deletes the document and redirects back to the page you were on. I never saw any problem with this.
Don’t do this.
It’s all fine, and a nice technique…until you run a spider over the site which follows every link. And then it deletes all the documents. Oops.
A link like this:
<a href="delete.cgi?id=999"><img src="trashcan.gif" alt="[Delete]"></a>
could be replaced with:
<form action="delete.cgi" method="POST">
<input type="hidden" name="id" value="999">
<input type="image" src="trashcan.gif" alt="[Delete]">
</form>
If you’re looking for a textual link, rather than an image, then you’re a little more constrained; you could use a link that calls JavaScript to submit the form, but everyone should know by now that that’s bad. In a CSS-supporting browser you could style the <input type="submit"> to not look like a button. Of course, you might think, not unreasonably, that it should look like a button, since it does an action.
This could save you a lot of potential grief.
Update: changed the form to POST rather than GET, as reminded by Phil, Tom, and Jim in comments. This might require minor alterations to your CGI, depending on how it’s written; if it’s ASP, for example, you need to swap Request.QueryString for Request.Form.
Debian module-assistant
Debian has this package called module-assistant. You should install it. You see, as Jono has complained about before, the kernel doesn’t ave a consistent ABI. This means that it’s prohibitive for Debian to supply compiled binaries for all the kernel-modules they package, because they’d need millions—one for each kernel. So, instead, they supply source. That’s a pain in the arse; you gotta download the source, unpack it, compile it…nooooo! So, instead, install module-assistant and then run it as root. It presents you with a list of kernel-modules, you pick one, and then it gets it compiles it, and installs it for you. Yay to that! Why can’t, say, lufs-binary be an empty package that just runs module-assistant with lufs-source? Then you’d never have to worry about it again…
-----Lorem ipsum for my generation
Tired of boring old lorem ipsum? Decided that you’re not a classical scholar? Aquarion notes the Malevole text generator, which has cool texts. In particular (and this was clearly the most fun bit, identifying them), it has text from:
- The A-Team
- The Littlest Hobo
- The Fall Guy
- Knight Rider
- Dogtanian and the Three Muskehounds
- Mysterious Cities of Gold
- Barnaby the Bear
- Hart to Hart
- Ulysses
- Eighty Days Around The World (was this called “Willy Fogg” or similar?)
- Thundercats
- Top Cat
- Stop the Pigeon
- Hong Kong Phooey
- B.J. and the Bear (?)
- The Dukes of Hazzard
That was fun.
Images and self-image
There comes a time, I suspect, when you have to stop wondering why it is that in all the pictures people take of you, you’re pulling a silly face, and start realising that it’s because you actually look like that all the time.
I feel sorry for people who are forced to that realisation about themselves. Ahem.
Seamless auth in Mozilla trunk
Yes! yes! yes! Seamless authentication is in the Mozilla trunk !
Just get it into Firefox now and then I can pimp it until my ears bleed for work!
Seamless auth in Firefox nightlies
Seamless authentication has progressed from the Mozilla trunk to being in nightly Firefox builds. That means it’ll be in 1.0. Yay! Fuckin’ yay-hey-hey! Firefox at work, here we come!
Incidentally, in case I haven’t been clear enough about this, Darin Fisher, who implemented this stuff, is the king of the world. All hail Darin! I offered the bloke some payment to hack on the seamless auth bug and he refused it, saying that he was already working on it and therefore didn’t need extra payment. How cool is this guy? For he’s a jolly good fella, for he’s a jolly good fella, for he’s a jolly good fella, and so say all us poor schlubs stuck with IE because we’re using NTLM auth on intranets.
On Losing Weight
Dr Ellis wants to be thinner:
I am getting to the point where I’m truly, utterly, totally tired of being really overweight. I want to lose it. But every time I think about what that’s going to mean, I shudder. We’re not talking about losing ten pounds here. We’re talking about losing almost a hundred pounds. That will bring me to or below my ideal body weight. It means at least two years of eating really shitty food. Don’t fucking argue with me—healthy food is tasteless and bland and it sucks. I like spaghetti, chili, chili dogs, chili burgers, cheeseburgers, chili burgers with cheese, steak, cream-based sauces, chocolate milkshakes, iced blended mochas, fajitas, Mexican fried ice cream, orange chicken…the list goes on and on.
I don’t quite have to lose a hundred pounds, but I do need to lose about fifty. That’s a lot. That’s a year of dieting. Like Josh Ellis, I hate healthy food. And eating little portions of everything. And feeling hungry all the damned time. I like pizzas, and sandwiches, and spaghetti. And for breakfast I’ve just had a damned milkshake, and it’s not a patch on a bowl of cereal and four pieces of toast.
Probably I ought to give up smoking, too, but one thing at a time.
Combine two iCalendar files
How do you combine two iCalendar files? Just catting them together is no good, because there might be duplicate events. All I want to do is share data between KOrganizer on my Zaurus and Mozilla Sunbird on my desktop. They both use iCalendar files to store data. I have spent twelve hours and not worked out how to do this. Help!
Me hearties!
Excellent! On September 19th it is Talk Like A Pirate Day again! It doesn’t seem like a year since the last one.
On professional qualifications
Tom speaks on the nature of professional qualifications, development, and organisations
Almost none of my two year part time degree was directly useful to my current job except for two courses: Cataloguing & Classification and Advanced Cataloguing (and I can’t see how anyone could be set loose on a real catalogue unless they had done the second course too). I could quite easily have gone on a couple of short courses and not been much worse off. I’m sure many other aspects of the profession would be the same. The course did include management, which is unavoidable in this day and age, but management is hardly peculiar to librarianship.
This criticism is not solely levelled at CILIP, the association of librarians: practically everyone I know working in a professional sphere falls into either Tom’s camp (professional development is a waste of time that teaches you how to play the system and get qualifications, not how to actually be better at your job) or the “manager” camp, where qualifications are a perfectly good substitute for competence. Fill in your favourite Dilbert cartoon here. I have nothing but contempt for professional qualifications in computing, and the reason I’m (slowly) doing an MSc is not because I think it will teach me anything useful but specifically and declaredly because it is more likely to convince manager muppets that I know what I actually do know. If I can be competent and have qualifications then clearly I can convince both camps.
I also had the pleasure of working with another qualified librarian whose general competency to turn up to work was far from guaranteed, let alone his mastery of the specialised skills of the information professional.
Spot anyone you know there? -----