During July I focused on fixing a lot of the small nagging problems. I also spent some time on improving performance of many aspects of the site, as well as cleaned up a lot of code to make things easier to maintain.
Performance related changes:
Changed My Parts to only show one grouped section at a time so people with huge collections can actually use the page. I know this sucks for some others and I will restore it to the old behaviour later when I finish a rewrite of that page (for multiple parts list feature).
I improved my monitoring tools to be a better idea of where the slow parts are. This has provided some neat stats I'll show below.
Thumbnail images are now using much better compression to improve loading speeds via the neat pngquant tool. Plus, I reduced the resolution of the thumbnails which were stupidly being downscaled. What you see is exactly what you saw before but now the files are ~10 x smaller!
And of course, I performed a migration of the entire site to new hardware. This included upgrades to the latest versions of all the major components (OS, Database, Web Server, etc) as well as some nifty hardware upgrades (SSD disks, 2x RAM, faster CPUs). SSDs are awesome!
I love performance problems, they are a great optimisation challenge :) Here is a summary of the database query runtimes from one day this week after some of the above changes were made (Monday 28/07/2014).
763 queries took longer than 1 sec... still some work left to do :) Of course the fastest query is the one that never has to run, and 95% of queries hit the cache instead of showing up in the above stats. This means Rebrickable is running about 220 million queries per day (2500/sec)!
Other boring fixit stuff:
BrickOwl store names/notes are now updated automatically when they change at BrickOwl.
Fixed quote encoding in moc descriptions (some images/links not working).
Fixed Brickset csv/txt file imports.
Fixed newsets RSS feed (twice!).
Fixed display of some duplicate part molds in part details pages.
Fixed display of some user avatar images.
Fixed Bricklink exports which were no longer mapping parts.
Fixed an issue with Bricksafe gallery not displaying sometimes, plus I reduced load on Bricksafe server which wasn't handling the Rebrickable levels of traffic very well.
Fixed display of duplicate molds on some part popups.
Fixed image overlays in the change log.
Fixed a stupid emailing issue. From 23rd to 30th July I didn't get any emails you may have sent to [email protected] Stupid firewall. I just thought everyone was happy for a change, it was so quiet :)
Fixed breadcrumbs link for MOCs.
Fixed save of premium MOC details.
Improved handling of different character sets within LXF files (MPD files were already handling this correctly).
Plans for August
Sleep. Nahhh, that's boring :)
Multiple loose parts lists - there are a lot of components this touches so it's taking a while but is definitely coming soon.
API enhancements for various external sites and apps in development. This will include things like importing your parts orders from BrickOwl just like you can now with BrickLink.
Bricksafe - I need to spend more time getting it beyond it's initial v1 build and add features such as searching, paging through images, etc.
MOC Feedback - I want to add user ratings, maybe upload photos of fan builds, etc.
There's lots more planned but beyond August timeframe, and I'll be very lucky to get all of the above done anyway.