I was thinking of a way to make LANThrax pages load faster by decreasing the server processing power required for the realtime generation of avatars. This would be particularly useful on pages where there are comments by multiple members.
This is how it currently works. When a page requests a certain avatar picture to be shown, instead of calling the picture directly, it calls a special thumbnailer page and passes the name of the original picture as a parameter. This thumbnailer page then fetches the picture (server side), shrinks it according to the specified dimensions and posts the resulting thumbnail to the browser. This saves on bandwidth but increases server load. It works like that for JPGs and PNGs but it does not do that for GIFs. The reason is that when a GIF is resized programmatically, the animation is lost. Therefore in the case of GIFs, the whole picture is posted to the browser and the resizing is done client side. Not very efficient, ay?
So, I was thinking of updating the avatars to make them more efficient. Recently I discovered a technique that fetches a pre made picture thumbnail of a specific size and if it does not find it, it creates the thumbnail on the fly and saves the new thumbnail for future use. I have already tested it successfully on the list of boxarts in the boxarts minigame. Not sure if anyone noticed the speed difference.
But here is the catch. If I use this technique it will mean the end of animated avatars. This does not seem to be a problem for FaceBook since they don't allow animated Gifs as avatars. Besides, there were recent occasions where some uploaded animated gifs were giving people epileptic fits.
While I am at it I was thinking of restricting avatars to 1:1 aspect ratio, that is, avatars will always be squarish. The idea is to have more consistent looking forum/comments pages. Again, this does not seem to be a problem with FaceBook. I would, of course, provide ways for the users to select which part of tehir original upload they want to be included in the square avatar. I would probably use something like the plugin below (I have not tested it yet):