I implemented changes on NCANE.COM this week. Firstly, I converted the column that stores your IP address from TEXT to INTEGER, dropping the size of the database by 12%.
Then I changed the way MySQL connections are working, because I managed to rack up a 40MB error log in the last month because of maximum connections implemented by my new Service Provider. That’s still a work in progress, but I’ve got the error messages down to about 30 a day (from between 500 and 1000 a day).
Which brings me to the final point. When I built NCANE.COM in February 2006, there was no Twitter. Now there is, and the site’s popularity has increased, partly thanks to that. The top ten URLs alone have redirected people over 10 million times, while the entire database of 27 500 URLs has redirected 44 million (yes, the top ten URLs comprise 23% of all redirects).
I implemented during the course of 2007, with modifications in 2008, a session and authentication manager, to allow a “premier” user to log in, create custom URLs, and skip the standard advertising page that pops up on URLs that are visited more than 25 times.
Bit.ly does the same thing for free. While I’m not going to guess how they manage their URLs, or whether they take as much interest in the protection of users as I do, I know I cannot compete in that space. I don’t have APIs (my first problem), I don’t have proper tracking (all I show is the number of times your link has been visited), and I don’t have time.
The site isn’t going away, but that’s where I’m at with it. I want to redesign the look and feel (Delano is helping with that – he’s the guy who designed the lettering for the site now), and add an API (the database has been ready for years for when I get around to that).
But most importantly, I want to replace the session and authentication module with OpenID. That means I’ll have to monitor the links being created a little closer, but I think it’ll be worthwhile. Three of my favourite sites, namely ServerFault.com, StackOverflow.com and SuperUser.com all use OpenID to great effect. I think it will resolve the maximum connections problem I’m having with MySQL too, in that I don’t have to track sessions in the database – I can just do it with cookies on your local machine.
Comments and suggestions are welcome.