Dear database owner,
I’m not a huge fan of the open letter format - its use for pithy snark has long since diluted whatever potency it once had - so I’ll get right to the point: I want access to your data.
Not in a creepy stalker way, I don’t want to know your three sizes and nor do I want whatever user data you choose to collect. No, I’m talking about the data you have on anime and its minutiae - characters, staff, companies and all the tidbits in between. Whether you call it a database, an encyclopaedia, a list, a planet or otherwise, I’m interested.
Read the rest of this entry
I was recently tasked with recreating an existing supplier search for a client; I was provided with a database of suppliers, most of which had been geocoded, and not much else. This scenario is fairly standard when dealing with mapping applications: a user enters in a postcode and the system will return a list of the closest suppliers to that location. The postcode part of this equation is well travelled - the Post Office in the UK will not relinquish the mapping from a postcode to a latitude, longitude tuple without a large outlay of cash (and numerous non-disclosure agreements), the easiest option is to use an external service for this. I opted for PostcodeAnywhere as I had used them before with great success. The latter part of this challenge - the return of the closest database entries - was something that I wanted to try myself as I didn't known when I would get such an opportunity again.
if something is worth doing, then it's worth overdoing
To say there are many different ways of calculating the distance between two points would be an understatement. One which I had used before involved northing and easting co-ordinates from a known point within the UK (usually the centroid or London). Using this meant a smattering of trigonometry would be enough to return a decent list of matches; this always struck me as crude, despite it's usefulness, using an antiquated and subjective co-ordinate system seemed the wrong way to approach the problem. Latitude and longitude are globally recognised and provide a precise way of defining points on the globe - reading up on how they are calculated was the step one. Step two was finding an algorithm that calculated the distance between two arbitrary points. The first one I found was the Haversine formula:
simple, easy to follow and easy to implement. Knowing that this formula was based upon the assumption that the Earth was perfectly spherical grated slightly with me - I reasoned there must be a more accurate algorithm. I found this precision in Vinencty's algorithm
, it was then I decided to enact a contrived but deliciously fun maxim: if something is worth doing, then it's worth overdoing
Read the rest of this entry