If you're building a web app with ruby on rails, there's a pretty good chance you're using the willpaginate gem to make it easy to split a long list of items across multiple pages. If you have a couple hundred items, willpaginate works great out of the box. However, once you start paginating thousands and thousands of items, you'll start to run into performance issues. I'll show you how to fix them in this post.
My car was recently totaled, and you can read more about it in My Experience with a Hit and Run in Texas. Anyway, the truck that hit my car left some paint transfer on my car's front bumper, left rear door, left rear quarter, and rear bumper. (The left fender and left front door were both damaged enough that they need to be replaced.) Rather than shell out hundreds of dollars to a body shop, I decided to take matters into my own hands.
I learned this lesson the hard way, so you should learn from my mistakes. Don't put big fields like TEXTs or BLOBs in your main database tables. Doing so will result in a negative step change in the performance of your database one day when you least expect it. You'll think your database is humming along when suddenly your database queries that used to finish in a couple milliseconds start taking hundreds of seconds.
I recently ran into a problem with the Facebook share button on my blogging platform, Bloopist. Whenever I shared an post, the share box from Facebook showed an incorrect image and description of the post. This led me to ask the question, "How can I force Facebook to rescrape or update a URL or Open Graph object?"