Archive for the 'Geeky' Category

Ping server survey

Everyone seems to be pinging everyone else these days, so I thought it would be interesting to do a bit of a survey so see how these ping relay services perform. I’m talking about services like Ping-o-matic and Pingoat.

If you don’t know what pinging is (in the blog sense), then take a look here (geeks look here). Essentially, it is a means for a blog to tell any interested parties that it has been updated, and if you want to read the latest post then you should drop by now.

There are many lists of sites that accept pings, but getting your blog to ping all of these can be a bit of a pain (and slow down the posting process). This is where the ping relay services come in. These ping services relay a single ping from your blog on to several other services on your behalf. This makes it easy for you to notify loads of services that your site has been updated, all from one ping!

There are usually two methods to use these ping relay services: (a) by visiting the site, manually filling out the form and submitting it, or (b), by using XML-RPC, and getting your blog to notify these services directly.

For the first part of this survey I’ll be testing the latter - using XML-RPC. I’ll be using a really good monitoring service to measure both the performance (how quick they are) and availability (how much of the time they are up and running) of these services, and will report back here in due course.

The test will involve pinging these services every ten minutes, and measuring things like DNS lookup time, connect time (establishing a connection with the server), initial response time (time before the first byte of data comes back in the response), and time to download the complete response.

The services I’ll be measuring for this first survey are:

Sadly, the XML-RPC interface to Pingoat is down at the moment.

The second part of the survey will look at some of the web form based services. The three services listed above all offer this feature, as do the following sites:

In the meantime, if anyone knows any other XML-RPC ping relay services, please do let me know and I’ll add them to the survey.

Tags: , ,

Sony GPS tracker for photography

How cool is this?? This is a GPS tracker to attach to your belt whilst taking photos. The supplied software can then later be used to geotag your photos (EXIF) based on your location at the time a photography was taken. Cunning eh? You can then plot yor photos ona map etc.

This looks like a fantastic device, and should cost about $150 (so knowing our luck ~ £800!!)

Photo from dpreview.com

Tags: , ,

Undefined property: etag in rss_fetch.inc

Been playing with MagpieRSS (Version 0.72, which has come on loads since I last looked at it), and seem to have come across a bug. Anyway, I’ve been using the caching (which seems to work quite nicely), but get the folowing error from time to time:

Notice:  Undefined property:  etag in /…/rss_fetch.inc on line 156

Did a quick Google and found the following solution by Mark McIntyre:

I made the following modification to rss_fetch.inc which fixes the problem:

Change the following line (156):

if( $rss and $rss->etag and $rss->last_modified) {

To the following:

if ( $rss and array_key_exists("etag", get_object_vars($rss)) and
array_key_exists("last_modified", get_object_vars($rss)) ) {

This will prevent the notice output if etag or last_modified keys don’t exist.

Time will tell if it works, but it looks like a sensible solution. My googling threw up loads of pages suffering from the problem but only this one solution, so hopefully others will find this useful.

Tags: , , ,

Wankr: A flickr API project

Wankr logo I’ve been playing with web service APIs quite a lot lately, especially the amazon and flickr ones. Anyway, my current tinkering lead to … wait for it … wankr.co.uk.

It’s a pretty simple site: it displays recent photos tagged with the word ‘wankr’. However, the important thing for me was building a workable caching mechanism. The main advantage of web services is also be their biggest problem: they typically run on remote web servers. This means that (if you want to incorporate results from a web service call into a web page), there can be a noticeable delay for the user of your web site while they wait for the page to be compiled (server-side) and returned to them.

wankr.co.uk screenshotSo as I said, the caching mechanism was the important thing for me on this one, and so far it works quite well I think (famous last words…). The main cause for delay here is getting the tag details for each photo that is displayed. You have to run a seperate query against each image, so in this particular example that is 1 query to get the list of images, plus 36 queries to get the tag details for each of the photos.

That’s a lot of queries, and as you can see in the graph below (at 12:46:05), it takes quite a while. (The data start time shows how long it takes for the first byte of data to come back from the web server once the request has been made. This typically is the time taken for the web server to generate the page, pulling in content from sources like databases, and in this case, remote web services.)

The caching I’ve implemented stores tag details for each photo indefinitely. I’m guessing that photo tags won’t be updated that frequently — at least in the time they’re displayed on the wankr homepage — so this shouldn’t cause a problem. The remaining task here is to write a process to clean up old cache files.

In terms of the main API call (the one that gets all the photos tagged with ‘wankr’), this is effectively cached for 5 minutes. I actually cache the rendered HTML for five minutes, so the response in the event of cache validity is quite good. On the graph below, the results at 12:46:42 show cached image tag data (so no need to make those 36 queries to flickr) and a re-query of the flickr API (to look for any new photos). Finally, the results at 12:47:19 show totally cached HTML (so no web service queries), and as you can see a nice quick data start (the yellow) time!

Effect of caching web service calls

The cache model isn’t perfect (for example there is no file locking implemented), so things could get a bit messy if there were a few users on the site at once. I’ve added some cache-friendly HTTP headers too, which may improve the performance for some frequent visitors…

Anyway, the site is just a bit of an experiment at the moment, but feel free to mention it to others ;-) It’s got a tag cloud, so does that make it a Web 2.0 project?!

Tags: , , , ,

AXA Insurance screw up

AXA Insurance screen shotI seem to be encountering lots of web site screw-ups these days. Today it is AXA Insurance’s turn.

I just did a google search for camera insurance (I want to get my gear covered), and in the google ads on the side of the results page was a link to AXA Insurance. “OK” I thought, “let’s give it a whiz”.

I’m having a hard time making this sound interesting, so to cut the story short, I visited their site and got a wonderful template page, complete with Lorem ipsum text, holding images and so on.

So my question is this: if AXA Insurance can afford to just throw money away at pointless adverts, why can’t they reduce their premiums too? (Or improve their customer service…)

Tags: , ,

Related Link: Car Insurance free quotes

SQL Injection made easy

Don’t you just love Windows? I’ve just been looking on a fairly popular online store running IIS on Windows, but it appears to be having some problems:

…snip…
Dim Connectview, RSview, Queryview, qtyview, line_totalview, subtpriceview, full_totalview, clientidview
clientidview = Request.Cookies(”user”)
Set Connectview = Server.CreateObject(”ADODB.Connection”)
Connectview.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;” & “Data Source=D:stagingbasketdb******.mdb”
Connectview.Open
Set RSview = Server.CreateObject(”ADODB.Recordset”)
Queryview = “SELECT * FROM basket WHERE Clientid =’”& clientidview & “‘ “
RSview.Open Queryview, Connectview
…etc…

Read the rest of this entry »

Lacie 319 - 19" LCD Display

Lacie 319Well I’ve finally taken the plunge and ordered my first TFT display - a Lacie 319. On the face of it it’s not the best specification in the world (only 1280×1024 screen resolution and not that bright), but if you dig a bit deeper you’ll see it offers a CRT-grade color gamut which I’m hoping will actually be as good as it sounds.

The screen comes with a colour calibrator and a hood too, so the theory is I should be able to get good colour rendition in my images. Anyway, if this works well I may think about getting a higher resolution 20″ one in a few months :-)

Read the rest of this entry »

FlickrViewer 1.1 released

I’ve just released version 1.1 of FlickrViewer. (I didn’t find any bugs in 1.0 beta so there was never a 1.0 release.) Download it here.

Read the rest of this entry »