A DVD player that doesn't suck?

DVD players seem to be disposable devices these days. You really only get a year out of one before it starts randomly skipping on brand new discs. So I'm in the market for a new one.

This time around, I'd like one that doesn't insist on following the studio's instructions. When I press the "root menu" button, I don't want to be told "Operation not allowed by disc" given that I own both the disc and player.

So does such a device exist? Are there DVD players that obey their owners?

Bricked my router

Last night while upgrading the Firmware in my (otherwise excellent) Billion 7404VGP-M ADSL modem/router/wireless thingy, I managed to brick it. It lost connectivity at 20% through the upgrade (though the entire file had transferred to the modem) so I left it for forty minutes or so, then rebooted it. Nothing. Reset to defaults does nothing. Gah!

My gripe is that the recovery utility they supply for such situations runs only on Windows and requires a serial port. I have neither.

Why can't they just provide a technical description of what it'll do? I suspect it'll do some trick to verify the modem is alive, then upload by xmodem the new firmware. Or something.

Anyway, I'll go around to a mate's place to do this, probably. Fortunately I work for an ISP so I can probably borrow a modem/router until I get this one fixed.

Blogroll is not a recommendation

Russell makes the assumption that linking to someone's blog is some kind of unconditional recommendation. Far from it! If you look at the standard version of my blog you'll see I've just added the text "Blogs I read", to clarify this. I don't recommend any of these for anyone's reading but my own. In fact, some of this stuff I very strenuously disagree with, but I find it interesting to hear ideas that are well argued, passionately held but that I disagree with. It's an intellectually challenging thing to do.

However, where a blogroll is interesting is similar to the way I browse a person's book and CD shelves when I visit their homes. You can learn a lot about people by what they read, listen to, watch and otherwise consume. It's interesting and gives you more of an understanding of the person.

Similarly, I quite enjoy the various Planets I read because I get to read more about people. I read about their cats, their struggles with the landlord, their healthy problems, all kinds of stuff. While the Planets themselves represent a particular interest, the people posting to them are human beings too, and have more in their life than just the interest. This is a good thing.

Of course, the shadowy cabal who run Planet Linux Australia clearly don't agree with this thinking, by silently dropping all of my blog except the geek category.

Howie's Firefox extension suggestion

Howie suggested FireBug as a must-have extension. While I agree it is amazing for debugging web pages, the reason I've had it uninstalled is what I'd call a bug. When you have it switched off for all pages, it still causes a very noticable lag when you open a new, blank tab. I'm not the only one either.

If this could be fixed, I'd probably keep it installed. As it is, I install it when I'm doing hardcore dev stuff, but keep it disabled most of the time.

In other Howie news, if you've seen Control, Howie lives just around the corner from where Ian and Deborah Curtis live in the film. How he justifies living in Sunny Macclesfield after living in Sydney or so long, I don't understand, but each to their own. If you haven't seen Control, go and see it. Best movie of the year.

FireBug tab opening delay redux

Ben, having read my last post about FireBug, notes that you only get the delay opening a new tab if you have FireBug disabled. if it's disabled it checks a whitelist to see if it should be enabled in the new tab... should be a simple fix.

Hopefully this will be fixed soon. In the meantime, however, FireBug seems to incur no performance hit if you keep it enabled, somewhat paradoxically.

Testing Google Analytics

Google Analytics is a great tool for tracking users on your site, and it's incredibly easy to set up the basic features. You just bung a bit of JavaScript on every page in your site which, if your site is sensibly designed, should only mean editing one file. You then get access to a plethora of amazing data about what your users are doing.

The more advanced features, particularly tracking ecommerce transactions, are a lot harder to implement and test other than on the live site. The help is somewhat minimal and hidden on a different page, without being stated quite explicitly, is the fact that it will drop any transactions coming from a domain other than the one the account lives in.

If it's not a subdomain of the main domain, you have to do some JavaScript link shenanigans to get GA to recognise it. This wouldn't be an uncommon problem for people using third-party shopping carts, and the solution there is quite well described.

What's less well described is how the hell you can test this thing. For example, our test server sites inside the domain of our parent company, which bears no resemblance to our live domain. Fortunately, we'd already configured our test web servers to respond to the live domain when we were testing for going live.

So what you do is edit the c:\WINDOWS\system32\drivers\etc\hosts file in Windows XP, or /etc/hosts in Unix-like systems. Put in a line like this: www.mycompany.com.au

This overrides the name server lookup for "www.mycompany.com.au" to "" and, providing the web server at that IP address has been configured to serve for that domain, you'll see your test site as if it's live and, crucially, that's what the cookie management and JavaScript in your browser will think too.

You might be behind a firewall that requires use of a proxy. Hopefully you can get to your test web server directly, otherwise you're kinda screwed. You can just turn off proxy use for the domains you're testing, leaving it in place for everything else. This is crucial since you still need to be able to get to the Google Analytics server to send the data.

Another wrinkle might be if you're using the GA IP filtering to filter out users from your own network. We do this to reduce the false data from our own staff on the site, but that means it's hard to test things. For this purpose I use a FoxyProxy rule to push hits to the analytics system via an ssh tunnel that pushes the data through my own proxy server sitting in the US. That way the data comes from a different IP range than the ones that are filtered out.

As you can see, there's quite a bit to think about when trying to test this stuff. It's all exacerbated by the fact that processing of the data occurs overnight, rather than anything close to real time. It means every time you make a change, you have to wait until the next day to see if it worked. Then when it didn't, you've got no feedback as to why, so you try again and wait another day.

Over the Xmas break, if I get the time and energy, I'm thinking of making a dropin test replacement to the Google Analytics JavaScript code. This would give you a real-time view of the data hitting the analytics server, with helpful hints on diagnosing why it's not working. We'll see if I get the time.

The other Firefox extension that I've found invaluable for testing has been Live HTTP Headers, for watching what's going to the remote servers. This handy tool is useful and quick for doing the URL decoding so it's more readable.

Firefox extensions

So last week I promised Stig, a Norwegian living in London, that I'd get off the political blogging this week. Haven't achieved that yet, so here's a start.

I use the Firefox browser constantly and one of the reasons is that you can install useful extensions that add functionality. Some of these are incredibly valuable to me, helping enormously with my work. Some are just a nice convenience. Here's the extensions I use. What ones do you use?

Adblock Plus and Adblock Filterset.G Updater
Advertising never really bothered me until the day some bright spark at Hotwired discovered the animated GIF. Ever since, I've filtered them out. I just can't stand having some annoying, flashing animation beside something I'm trying to read. I don't filter out static ads like Google, as they're often quite relevant. Just the annoying ones. I used to use Craig's Squid filtering system but doing it in the client, particularly when Filterset.G automatically gets most of them, makes more sense. What's more, I can turn it off if there's a false positive.

Web Developer
I use this nearly every day for my work. It's just invaluable if you're developing web stuff. There's more features than you can imagine, but the ones I use most are:

  • Edit CSS: edit the stylesheets live, see the result immediately
  • View Generated Source: shows the HTML after any scripts have run.
  • Display Element Information: shows all kinds of details about any object you point at.
  • Display Div Order: outlines all the divs on the page, so you can see what they look like.

Net Usage Item
Australia has bandwidth charging, so most ISP plans have a quota of downloads. This extension downloads your usage for the current month and displays a handy graph.

Shows the weather. Handy, and does what you'd expect.

Live HTTP Headers
Shows you all the traffic going on between the server and the browser, which is absolutely essential when doing some web work.

A really cool proxy server manager. Sometimes you need to have your browser session come from a different location, so you can set up a rule for which requests go through which proxy. When diagnosing problems (like our lousy MS ISA proxy servers at work) it's really handy to be able to push all content through a particular proxy. You could also use this to get around filtering proxies, but that would be naughty and possibly career-limiting.

Sydney Dams Item
We Sydney people are obsessed with the amount of water in our dams. Comes from living in a dry country. Doesn't help that we get plenty of rain in the city, but not a lot where the dams actually are. This extension shows the latest data.