codahale / esi-blog

A sample application for playing around with some ESI ideas I had.

This URL has Read+Write access

codahale (author)
Wed May 07 14:35:22 -0700 2008
commit  6e0366c646246fc31403210fe4af1cf973d1b935
tree    72d8c00e658ea4290d5830e267da7467a350df1d
parent  4c41c16cbc98a9fc3088f0b80e56b705bbb1c507
name age message
file .autotest Wed May 07 12:38:53 -0700 2008 Added an autotest dot-file in hopes that one da... [codahale]
file README Loading commit data...
file Rakefile Tue May 06 21:24:23 -0700 2008 Add a JRuby/Rails skeleton app. Uses Derby, has... [codahale]
directory app/ Wed May 07 14:35:22 -0700 2008 Don't cache by default -- it's a little weird. [codahale]
directory config/
directory doc/ Tue May 06 21:24:23 -0700 2008 Add a JRuby/Rails skeleton app. Uses Derby, has... [codahale]
directory lib/ Tue May 06 21:46:24 -0700 2008 Small cleanup in ESI rake tasks. [codahale]
directory public/ Tue May 06 21:24:23 -0700 2008 Add a JRuby/Rails skeleton app. Uses Derby, has... [codahale]
directory script/ Tue May 06 21:57:38 -0700 2008 Added RSpec plugin. [codahale]
directory spec/ Wed May 07 11:20:51 -0700 2008 Added a fully-spec'd esi_include helper for views. [codahale]
directory stories/ Tue May 06 21:57:38 -0700 2008 Added RSpec plugin. [codahale]
directory test/ Tue May 06 21:24:23 -0700 2008 Add a JRuby/Rails skeleton app. Uses Derby, has... [codahale]
directory vendor/ Wed May 07 10:42:06 -0700 2008 Move from GoldSpike to Warble. (Jeez, NetBeans.... [codahale]
README
= esi-blog =

An experiment in leveraging Edge-Side Includes to build an application with the
following properties:

  1. Doesn't suck to develop.
  2. Uses as much HTTP-level caching as possible.
  3. Leverages HTTP invalidation side-effects (e.g., POST clears cache) to make
     cache invalidation not suck so much.

= Getting Squid3 To Work =

Ho man. This is complicated.

1. Install an ESI-enabled version of Squid3:

  sudo apt-get build-deps squid3
  apt-get source squid3
  cd squid3*
  nano debian/rules
  <add --enable-esi to the list of config flags>
  debuild -us -uc
  cd ..
  sudo dpkg -i *.deb

2. Configure it:

  sudo ln -s THIS_APP/config/squid3-development.conf /etc/squid3/squid.conf

3. (Re)Start it:

  sudo /etc/init.d/squid3 restart