<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet MVC / Seaside</title>
	<link rel="self" href="http://www.planetmvc.com/seaside/atom.xml"/>
	<link href="http://www.planetmvc.com/seaside"/>
	<id>http://www.planetmvc.com/seaside/atom.xml</id>
	<updated>2007-03-24T10:48:46+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/1.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="en">
		<title type="html">Heresy and Fried Onions</title>
		<link href="http://smallthought.com/avi/?p=20"/>
		<id>http://smallthought.com/avi/?p=20</id>
		<updated>2007-03-09T02:21:06+00:00</updated>
		<content type="html">&lt;p&gt;There&amp;#8217;s story in Primo Levi&amp;#8217;s &lt;a href=&quot;http://www.amazon.com/Periodic-Table-Primo-Levi/dp/0805210415&quot;&gt;The Periodic Table&lt;/a&gt; (&lt;a href=&quot;http://accordionguy.blogware.com/blog/_archives/2001/12/3&quot;&gt;via&lt;/a&gt;, &lt;a href=&quot;http://www.paulgraham.com/arcll1.html&quot;&gt;via&lt;/a&gt;) about a recipe for varnish that included a raw onion.   Nobody at the varnish plant where he worked knew what its purpose was.  It turned out that it had originally been used as a thermometer: if the onion fries, things were hot enough.  Now, they had (and used) better thermometers, but they kept on throwing the onion in because that&amp;#8217;s just what you did.&lt;/p&gt;
	&lt;p&gt;I think that web frameworks have a lot of onions in them.  A lot of the design decisions that are unconsicously adopted by modern frameworks like &lt;a href=&quot;http://www.rubyonrails.org&quot;&gt;Rails&lt;/a&gt; or &lt;a href=&quot;http://djangoproject.com&quot;&gt;Django&lt;/a&gt; were made 10 or 15 years ago.  They were probably good decisions at the time, but we need to re-evaluate them now that we have new and better tools available to us.&lt;/p&gt;
	&lt;p&gt;That&amp;#8217;s the thesis behind the &lt;a href=&quot;http://conferences.oreillynet.com/cs/et2007/view/e_sess/10628&quot;&gt;Applied Web Heresies&lt;/a&gt; tutorial I&amp;#8217;m giving at &lt;a href=&quot;http://conferences.oreillynet.com/et2007/&quot;&gt;ETech&lt;/a&gt; later this month.  It&amp;#8217;s a follow up to the &lt;a href=&quot;http://conferences.oreillynet.com/cs/os2006/view/e_sess/8942&quot;&gt;Web Heresies&lt;/a&gt; talk I gave at OSCON last July.  Both of these talks are about &lt;a href=&quot;http://www.seaside.st/&quot;&gt;Seaside&lt;/a&gt;, but they&amp;#8217;re not about how or why you should run out and use Seaside yourself - there just aren&amp;#8217;t that many prospective Smalltalkers out there.  Instead, you might say they&amp;#8217;re about Seaside&amp;#8217;s recipe, and what new ingredients it gets to use after taking the bold step of chucking the onion into the compost pile.  In the tutorial, I&amp;#8217;m hoping that we&amp;#8217;ll build some mini Seaside-style frameworks in Ruby, Python, and other dynamic languages.  I don&amp;#8217;t know how far we&amp;#8217;ll get, but at least whatever we make will be onion-free.&lt;/p&gt;
	&lt;p&gt;As an appetizer, here are some things I think are onions: template systems, hidden fields, meaningful query parameters, and sessions stored in databases.  Why?  Because we have, but aren&amp;#8217;t fully appreciating, these thermometers: CSS, RSS, fast CPUs with gigs of RAM, and smart load balancers.  What new ingredients do we get to use?  By far the spiciest of these is closures or blocks: it&amp;#8217;s amazing how much pain they can take away once you&amp;#8217;re committed to using them pervasively at the framework level.&lt;/p&gt;
	&lt;p&gt;I think it&amp;#8217;ll be a fun tutorial, and I&amp;#8217;m really looking forward to it.  See you in San Diego.
&lt;/p&gt;</content>
		<author>
			<name>Avi Bryant</name>
			<uri>http://smallthought.com/avi</uri>
		</author>
		<source>
			<title type="html">HREF Considered Harmful</title>
			<subtitle type="html">Avi Bryant</subtitle>
			<link rel="self" href="http://smallthought.com/avi/?feed=rss2"/>
			<id>http://smallthought.com/avi/?feed=rss2</id>
			<updated>2007-03-09T02:48:32+00:00</updated>
		</source>
	</entry>

</feed>
