Future

Things to think about...

Posting UI

 * Cleaner attachment interface
 * Cleaner location controls
 * Kill the focus-setting?
 * TinyMCE

Caching
HTTP caching ...

Storage cleanup
The way we handle file storage for avatars, background images, and attachments is pretty wonky right now. Consider some things...


 * unified internal API for storing, fetching, getting info about, and displaying files/images
 * pluggable backend API for actual physical storage
 * local filesystem (back-compat with current system)
 * database (no permission / script execution worries)
 * remote storage (S3, etc)
 * explicit support for using a caching-style CDN (we store ourselves, but send out URLs that go through the CDN's fancy caching proxy)
 * support for multiple simultaneous backends, rolling conversions of files from one backend to another

Some convenient factors in our favor:
 * file contents are immutable; once uploaded, a given file stays the same until it's deleted
 * (when replacing an avatar, the new avatar has a new filename and new URL.)
 * makes caching, distribution easy
 * deletions usually aren't time-critical; an old avatar that sits in a CDN cache for a while is no problem

Related things to consider:
 * global/site quotas?
 * garbage collection for things like remote avatars?