<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Chatterbox, Reloaded</title>
	<atom:link href="http://pauleveritt.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pauleveritt.wordpress.com</link>
	<description>Paul's ramblings about projects and Python/Zope/Plone/Repoze/BFG technologies.</description>
	<lastBuildDate>Thu, 27 Oct 2011 17:56:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='pauleveritt.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/b4345850285023fbd98c4a40e02f7cbd?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Chatterbox, Reloaded</title>
		<link>http://pauleveritt.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://pauleveritt.wordpress.com/osd.xml" title="Chatterbox, Reloaded" />
	<atom:link rel='hub' href='http://pauleveritt.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Humans, Python, web development, tutorial next week</title>
		<link>http://pauleveritt.wordpress.com/2011/10/26/humans-python-web-development-tutorial-next-week/</link>
		<comments>http://pauleveritt.wordpress.com/2011/10/26/humans-python-web-development-tutorial-next-week/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 13:10:16 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=112</guid>
		<description><![CDATA[(Aimed at Python folks.) If you&#8217;re interested in learning Python web development using Pyramid, and you&#8217;re not a framework guru, I&#8217;m giving a &#8220;Pyramid for Humans&#8221; tutorial next week in San Francisco. I&#8217;m aiming this particularly at web developers who are responsible for the UI/UX and customer interactions, versus people who like talking about thread [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=112&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>(Aimed at Python folks.)</p>
<p>If you&#8217;re interested in learning Python web development using Pyramid, and you&#8217;re not a framework guru, I&#8217;m giving a &#8220;Pyramid for Humans&#8221; <a href="http://www.eventbrite.com/event/1971884961">tutorial next week</a> in San Francisco. I&#8217;m aiming this particularly at web developers who are responsible for the UI/UX and customer interactions, versus people who like talking about thread locals.</p>
<p>I&#8217;ve really enjoyed working on the material for this and I&#8217;m looking forward to going through it next week.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=112&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/10/26/humans-python-web-development-tutorial-next-week/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>Pyramid tutorial at Plone Conf</title>
		<link>http://pauleveritt.wordpress.com/2011/10/14/pyramid-tutorial-at-plone-conf/</link>
		<comments>http://pauleveritt.wordpress.com/2011/10/14/pyramid-tutorial-at-plone-conf/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 10:34:37 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=109</guid>
		<description><![CDATA[Let&#8217;s all pretend that this post went out 2 months ago, which would have been a grown-up and mature time to have promoted it. In a couple of weeks I&#8217;m giving a Pyramid tutorial at the Plone Conference in San Francisco. I&#8217;m hardly an expert, so this is pitched as &#8220;Pyramid for Humans.&#8221; I&#8217;ll start [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=109&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s all pretend that this post went out 2 months ago, which would have been a grown-up and mature time to have promoted it.</p>
<p>In a couple of weeks I&#8217;m giving a <a href="http://ploneconf.org/event/training">Pyramid tutorial</a> at the Plone Conference in San Francisco. I&#8217;m hardly an expert, so this is pitched as &#8220;Pyramid for Humans.&#8221; I&#8217;ll start at the very beginning, establish a UI-first approach to building an app, then gradually add much of the machinery needed for a project.</p>
<p>I&#8217;d really like it if <a href="http://www.eventbrite.com/event/1971884961">you attended</a>. [wink]</p>
<p>Joking aside, I&#8217;m really hoping I can get a crowd of first-starters there. Women and men who aren&#8217;t framework gods, who like using tools more than making them, and we build a nice base understanding of getting started in Pyramid. I want this tutorial to kick ass.</p>
<p>Drop me a line if you have any questions or suggestions about what should go in &#8220;Pyramid for Humans.&#8221;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/109/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/109/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/109/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=109&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/10/14/pyramid-tutorial-at-plone-conf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>Giving a &#8220;Pyramid for Humans&#8221; tutorial at Plone Conf, Nov 1-2</title>
		<link>http://pauleveritt.wordpress.com/2011/09/20/giving-a-pyramid-for-humans-tutorial-at-plone-conf-nov-1-2/</link>
		<comments>http://pauleveritt.wordpress.com/2011/09/20/giving-a-pyramid-for-humans-tutorial-at-plone-conf-nov-1-2/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 20:29:59 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=105</guid>
		<description><![CDATA[Yep, me. Paulie. Giving a tutorial on Pyramid at the conference. Stop snickering! Ok, sure, Dad (Chris McDonough) will be there supervising. But I&#8217;m hoping to give a whirlwind tutorial of Pyramid stuff for people like me. Civilians. It won&#8217;t be too in-depth, and it will for damn straight make sure you are successful at [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=105&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Yep, me. Paulie. Giving <a href="http://www.eventbrite.com/event/1971884961">a tutorial</a> on Pyramid at <a href="http://ploneconf.org/">the conference</a>. Stop snickering!</p>
<p>Ok, sure, Dad (Chris McDonough) will be there supervising. But I&#8217;m hoping to give a whirlwind tutorial of Pyramid stuff for people like me. Civilians. It won&#8217;t be too in-depth, and it will for damn straight make sure you are successful at accomplishing each thing we cover.</p>
<p>The <a href="http://ploneconf.org/">registration page</a> has more details on who it is aimed and not aimed at, as well as the topics I hope to cover. I&#8217;ve started writing some of the material and reading some previous tutorial material from Chris and Carlos de la Guardia.</p>
<p>If you&#8217;re looking for a gentle but productive introduction to Python web development using Pyramid, come join us. I&#8217;m really excited about this and expect it to be a crap-ton o&#8217; fun.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/105/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/105/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/105/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=105&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/09/20/giving-a-pyramid-for-humans-tutorial-at-plone-conf-nov-1-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>Giving a keynote at PyCon DE</title>
		<link>http://pauleveritt.wordpress.com/2011/09/20/giving-a-keynote-at-pycon-de/</link>
		<comments>http://pauleveritt.wordpress.com/2011/09/20/giving-a-keynote-at-pycon-de/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 20:08:17 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=103</guid>
		<description><![CDATA[Filed under &#8220;they must REALLY be scraping the bottom of the barrel to dig up ME&#8220;, I&#8217;ve been asked to give a keynote at the PyCon DE conference in Leipzig. I&#8217;m 15:30 to 16:30 on Thursday, October 6. Lightning talks are just after me, so I&#8217;m not completely the thing in between the audience and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=103&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Filed under &#8220;they must <em>REALLY</em> be scraping the bottom of the barrel to dig up <em>ME</em>&#8220;, I&#8217;ve been asked to give <a href="http://de.pycon.org/2011/schedule/timetable/">a keynote at the PyCon DE conference</a> in Leipzig. I&#8217;m 15:30 to 16:30 on Thursday, October 6. Lightning talks are just after me, so I&#8217;m not <em>completely</em> the thing in between the audience and happy hour.</p>
<p>I used to give talks all&#8230;the&#8230;time. And now I don&#8217;t. Haven&#8217;t in what seems like a long time, unless giving a halftime talk to a team of girls lacrosse players qualifies. I&#8217;ve been out of the game for a long time and the relevance of my perspective is a bit rusty.</p>
<p>So I&#8217;m going to stick to perspective and look backwards. I&#8217;m collecting a bunch of moments over the last 18 years participating in steering Python/Zope/Plone/Pyramid projects. Hopefully funny, possibly poignant, certainly embarrassing. I also hope to include some anecdotes and wisdom from people I&#8217;ve met along the way who have guided projects over a long period of time.</p>
<p>I always used to say my talks had a content-free guarantee: if you actually learned something, I&#8217;d give you your money back. Definitely doubling down on that for this talk.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=103&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/09/20/giving-a-keynote-at-pycon-de/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>Kinda liking PyCharm</title>
		<link>http://pauleveritt.wordpress.com/2011/01/29/kinda-liking-pycharm/</link>
		<comments>http://pauleveritt.wordpress.com/2011/01/29/kinda-liking-pycharm/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 16:42:16 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=100</guid>
		<description><![CDATA[I&#8217;ve been tinkering around with IDEs for a while.  It&#8217;s hard to justify it&#8230;every time I try, I spend a tremendous amount of time using the hoped-for new tool, using it for real, only to eventually find the fatal flaws.  Then it&#8217;s back to Emacs with a dozen flowers, a box of chocolates, and the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=100&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been tinkering around with IDEs for a while.  It&#8217;s hard to justify it&#8230;every time I try, I spend a tremendous amount of time using the hoped-for new tool, using it for real, only to eventually find the fatal flaws.  Then it&#8217;s back to Emacs with a dozen flowers, a box of chocolates, and the hangdog expression that says &#8220;Sorry I set my eyes on another.&#8221;</p>
<p>This has happened for Pydev/Eclipse, Aptana, Textmate, and Komodo.  Each brought down by some level of (a) horrible performance on OS X, (b) extreme amount of tinkering to get something working such as indentation, or (c) a realization that the cost (Komodo) meant I&#8217;d be the only one I know using.</p>
<p>Thought I&#8217;d give PyCharm a try.  It&#8217;s based on a larger IDE project so it automatically gains a lot of features, such as really good HTML and Javascript support.  Getting it working with virtualenv and buildout wasn&#8217;t excruciating, in fact, the added specific support for it.  And the performance was pretty good.  Considering I still can&#8217;t get decent Javascript indentation, even after manual help from others, it was a good sign.</p>
<p>Last week my trial run ran out.  I could have chintzed by asking them for an open source license.  But I plopped down the modest cost, expecting that I would find the fatal flaw about 10 minutes after the credit card charge cleared.</p>
<p>But today I looked at my screen and realized&#8230;damn, I&#8217;m pretty happy.  Still scratching the surface.  When they add reST/Sphinx support later this year, I&#8217;ll be even happier.  Maybe happy enough to put out a bounty for Chameleon/Pyramid support.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/100/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/100/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/100/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=100&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/01/29/kinda-liking-pycharm/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Did you mean FOOBAR?&#8221; in PostgreSQL text indexing</title>
		<link>http://pauleveritt.wordpress.com/2011/01/28/did-you-mean-foobar-in-postgresql-text-indexing/</link>
		<comments>http://pauleveritt.wordpress.com/2011/01/28/did-you-mean-foobar-in-postgresql-text-indexing/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 22:00:13 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=96</guid>
		<description><![CDATA[This is a reminder-to-self kind of post.  Chris Rossi and I were talking about some of the &#8220;improved search&#8221; features we have planned for KARL thanks to pgtextindex and the use of PostgreSQL&#8217;s under-appreciated text indexing/retrieval story. One thing we think we could add is &#8220;Did you mean?&#8221; support.  That is, if someone did a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=96&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a reminder-to-self kind of post.  Chris Rossi and I were talking about some of the &#8220;improved search&#8221; features we have planned for KARL thanks to pgtextindex and the use of PostgreSQL&#8217;s under-appreciated text indexing/retrieval story.</p>
<p>One thing we think we could add is &#8220;Did you mean?&#8221; support.  That is, if someone did a typo on a search term, offer some alternatives.  It&#8217;s a valuable feature (at least to me.)</p>
<p>The most natural thing to think about is brute-force spellchecking.  That has a number of flaws.  First, lots of things (names, for example) won&#8217;t be in any dictionary, much less some default language dictionary.  Second, you can&#8217;t show a bunch of corrections, which ones should you show?  Finally, what if you show a correction for which the word doesn&#8217;t occur in the corpus?</p>
<p>In <a href="http://www.postgresonline.com/journal/archives/169-Fuzzy-string-matching-with-Trigram-and-Trigraphs.html">Fuzzy String Matching With Trigram and Trigraphs</a> you see how PostgreSQL helper functions can, well, help.  You can compare a term to all the reduced forms of all the words indexed in all the documents.  Then issue a query that does a soundex-style comparison to the query terms.  All using optimized indices, weighting, and scoring.  Perhaps you could also use <a href="http://www.postgresql.org/docs/9.0/interactive/textsearch-features.html#TEXTSEARCH-STATISTICS">corpus statistics</a> to narrow the list down to words that occur in many documents.</p>
<p>Chris and I previously came across this when he had a neat idea on speeding up prefix searches.  Rather than do a prefix, instead find all the expansions of words/lexemes for that prefix which occur in the corpus, select the 100 most likely candidates, and do full-word searches for those 100 words.  You get better performance by omitting prefixes.  One might assert you get better quality results by letting all the full-word scoring machinery, synonyms, stemming, etc. kick in.</p>
<p>It&#8217;s interesting to look at some of the machinery PostgreSQL has which doesn&#8217;t get talked about much.  Like the <a href="http://www.postgresonline.com/journal/archives/173-Using-LTree-to-Represent-and-Query-Hierarchy-and-Tree-Structures.html">ltree for hierarchies and tree structures</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/96/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/96/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/96/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=96&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/01/28/did-you-mean-foobar-in-postgresql-text-indexing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>First pypi release of repoze.pgtextindex for searching</title>
		<link>http://pauleveritt.wordpress.com/2011/01/21/first-pypi-release-of-repoze-pgtextindex-for-searching/</link>
		<comments>http://pauleveritt.wordpress.com/2011/01/21/first-pypi-release-of-repoze-pgtextindex-for-searching/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 17:04:04 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Pyramid]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=93</guid>
		<description><![CDATA[Interested in faster/better searches in Pyramid/BFG without a change to your application, but don&#8217;t want a massive addition to your server software responsibilities?  Eager to keep transactional integrity?  repoze.pgtexindex uses the text indexing in PostgreSQL 8.4+ as a replacement for text indexing/searching in repoze.catalog&#8217;s zope.index. Two Julys ago Shane Hathaway was working with us on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=93&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Interested in faster/better searches in Pyramid/BFG without a change to your application, but don&#8217;t want a massive addition to your server software responsibilities?  Eager to keep transactional integrity?  <a href="http://pypi.python.org/pypi/repoze.pgtextindex/0.1">repoze.pgtexindex</a> uses the <a href="http://www.postgresql.org/docs/9.0/static/textsearch.html">text indexing in PostgreSQL</a> 8.4+ as a replacement for text indexing/searching in repoze.catalog&#8217;s zope.index.</p>
<p>Two Julys ago Shane Hathaway was working with us on the KARL project.  We had been discussing switching our KARL deployments to RelStorage.  The topic came up about text search, how important it is in our applications, and whether our search performance and quality were up to snuff.</p>
<p>We did some research on the text search capabilities in PostgreSQL.  Sure, it&#8217;s no Lucene or Xapian, but it looked like a significant improvement without a major change in deployment architecture.  Especially if someone was already looking at RelStorage and pgtextindex, they&#8217;d already have committed to supporting the dbms server.</p>
<p>That led to some experiments and we were pleased with the results.  But we&#8217;re really conservative about adding in software we can&#8217;t completely support so we put it on hold.  We then kept tinkering with it.  Chris Rossi got involved, Shane overhauled the transaction management, Chris added in implicit field weighting, etc.  We did another evaluation, then worked with Six Feet Up to make sure they were comfortable hosting/supporting RelStorage/pgtextindex/PostgreSQL.</p>
<p>And now we&#8217;re getting close to making the transition, so Chris worked with Shane and made a pypi release.</p>
<p>I&#8217;m excited about it.  Some might be attracted to big search solutions, but that&#8217;s quite a jump from the target for Zope-style applications.  I worked on a project that went big and it wasn&#8217;t exactly a pain-free drop-in.  If you&#8217;re a Pyramid/BFG person happy with zope.index then stick with it, that&#8217;s your least complex route.  But maybe you want much better search features, much faster search, half of your ZODB objects out of the ZODB and cache, and you&#8217;re already using PostgreSQL or comfortable with it.  If so, this is a much smaller step than adding a ginormous search engine and losing transactional integrity.</p>
<p>Some may prefer big search servers, some may prefer zope.index.  But I humbly submit that repoze.pgtextindex is another choice with certain positive qualities.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=93&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/01/21/first-pypi-release-of-repoze-pgtextindex-for-searching/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>Chris McDonough on pluggable apps</title>
		<link>http://pauleveritt.wordpress.com/2011/01/14/chris-mcdonough-on-pluggable-apps/</link>
		<comments>http://pauleveritt.wordpress.com/2011/01/14/chris-mcdonough-on-pluggable-apps/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 16:46:36 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=88</guid>
		<description><![CDATA[We&#8217;re from the world of Zope and Plone, so we have a long history on the topic of frameworks and pluggability.  We&#8217;ve helped foist the good, the bad, and the ugly on large populations of developers over the years.  So we&#8217;re continuing to learn the right balance on frameworkiness. Chris wrote a very good email [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=88&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re from the world of Zope and Plone, so we have a long history on the topic of frameworks and pluggability.  We&#8217;ve helped foist the good, the bad, and the ugly on large populations of developers over the years.  So we&#8217;re continuing to learn the right balance on frameworkiness.</p>
<p>Chris wrote a <a href="http://groups.google.com/group/pylons-discuss/msg/b19df600ddb8be3f">very good email</a> yesterday on the Pylons mailing list on the topic of Pyramid&#8217;s pluggability story.  The &#8220;Pylons Project&#8221; wants to have a story over the long haul.  But we&#8217;re still in the mode of thinking, learning, listening, and then building.</p>
<p>To summarize Chris&#8217;s note (at least from my POV):</p>
<ul>
<li>Pyramid provides a pretty attractive <em>extensibility</em> story for application developers.</li>
<li>Pluggability is harder, because a plug-in will need cooperating systems (storage, authentication, etc.) and Pyramid isn&#8217;t going to have opinions on all that.</li>
<li><em>Your</em> application will have opinions, though, thus you can provide plug points built with Pyramid&#8217;s extensibility story.</li>
<li>A plugin-story&#8217;s success is directly related to the ruthlessness of the decisions and opinions being made.  The more you define the surface area by making the choices, the more viable the plug point.  Over-generalization is the enemy.</li>
<li>The Pylons Project would like to make an application on Pyramid that has opinions, provides higher-level services, and thus has a strong plugin story.</li>
</ul>
<p>At the end of the day, the Python world has a lot of great alternatives already for web frameworks.  Anything new that tries to emerge needs fresh ideas.  I feel like extensibility and pluggability are still areas ripe for new thoughts.</p>
<p>While many might want less (e.g. single file microframeworks) but there might be a constituency for those that want more.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/88/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/88/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/88/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=88&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/01/14/chris-mcdonough-on-pluggable-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>Wonderful blog post on Pyramid development</title>
		<link>http://pauleveritt.wordpress.com/2011/01/14/wonderful-blog-post-on-pyramid-development/</link>
		<comments>http://pauleveritt.wordpress.com/2011/01/14/wonderful-blog-post-on-pyramid-development/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 16:28:40 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=85</guid>
		<description><![CDATA[I&#8217;ve wanted for a while to write an introductory piece on Pyramid.  That is, how to use Pyramid to do a style of development that I find very simple and intuitive: traversal and ZODB. Alex Marandon wrote exactly the article I wished I would have written.  He doesn&#8217;t presume you know Zope.  He then takes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=85&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve wanted for a while to write an introductory piece on <a href="http://www.pylonsproject.org/">Pyramid</a>.  That is, how to use Pyramid to do a style of development that I find very simple and intuitive: traversal and ZODB.</p>
<p>Alex Marandon wrote <a href="http://alexmarandon.com/articles/zodb_bfg_pyramid_notes/">exactly the article</a> I wished I would have written.  He doesn&#8217;t presume you know Zope.  He then takes the (from my POV, super-easy) ideas of traversal and persistence, and introduces them in a simple, obvious way.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=85&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2011/01/14/wonderful-blog-post-on-pyramid-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
		<item>
		<title>I like jQuery UI</title>
		<link>http://pauleveritt.wordpress.com/2010/11/09/i-like-jquery-ui/</link>
		<comments>http://pauleveritt.wordpress.com/2010/11/09/i-like-jquery-ui/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 13:10:19 +0000</pubDate>
		<dc:creator>Paul Everitt</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://pauleveritt.wordpress.com/?p=82</guid>
		<description><![CDATA[Over the last year I&#8217;ve done more work with jQuery and specifically, widget frameworks atop it.  I&#8217;ve spent most of my time with jQuery UI and jQuery Tools.  I like them both, but I wound up settling on the former and spending quite a bit of time with it. Thus I&#8217;ve watched with some amount [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=82&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Over the last year I&#8217;ve done more work with jQuery and specifically, widget frameworks atop it.  I&#8217;ve spent most of my time with <a href="http://jqueryui.com/">jQuery UI</a> and <a href="http://flowplayer.org/tools/index.html">jQuery Tools</a>.  I like them both, but I wound up settling on the former and spending quite a bit of time with it.</p>
<p>Thus I&#8217;ve watched with some amount of curiosity an anti-jQuery-UI meme emerging in some projects I&#8217;ve participated in.  It isn&#8217;t just that they favor jQuery Tools.  Rather, they also seem intent on some broad-brushed jQuery UI bashing to go with it.  Most of the time the word &#8220;bloat&#8221; emerges, and I thought I&#8217;d look into it.</p>
<p>&#8220;Bloat&#8221; is usually something that can be easily measured.  For example, ahem, some open source content management systems ship with a significant amount of code, thus a lot of &#8220;bloat&#8221;.  But when looking at jQuery UI (jqUI) vs. jQuery Tools (jqT), I found:</p>
<ul>
<li>jqUI: 19 Kb</li>
<li>jqT: 2.4 Kb</li>
</ul>
<p>That&#8217;s the size of the JS for each, gzip&#8217;d (in the way any normal production webserver would deliver it.)  For the comparison, I made a jQuery UI download that matches the same widget framework features used by Plone, to make it even.  It isn&#8217;t utterly apples-to-apples: jQuery UI also has CSS and images which add marginally to the Kb needed on a site.</p>
<p>But just to put this into perspective, the difference is about 1/2 the size of the Plone logo.  I don&#8217;t think &#8220;bloat&#8221; could apply to pageload impact, but even if it did&#8230;who cares?  Any intelligent site uses far-future expires and versioned URLs to ensure visitors only need one request for the JS library&#8230;ever.</p>
<p>So perhaps &#8220;heavy&#8221; and &#8220;bloat&#8221; don&#8217;t mean measurable things.  Perhaps the point is conceptual heaviness.  It&#8217;s true that the jQuery UI widget framework adds some ceremony in the constructor and method dispatch.  But two notes in its defense.</p>
<p>First, the method dispatch pattern is the one recommended by the jQuery core team for plugin extensibility.  Well, I&#8217;m sure &#8220;jQuery core team&#8221; probably includes lots of viewpoints, but the page I read on the topic seemed authoritative.</p>
<p>Second, there is a reason the ceremony is there: widget re-use and extensibility.  There&#8217;s always a price to be paid for this.  But when building a big system, the price can be worthwhile.  I suspect systems like Plone will be paying that price at some point, just with perhaps different ceremony.</p>
<p>I&#8217;ve seen &#8220;bloat&#8221; connected to &#8220;CSS bloat&#8221;.  I&#8217;m also not sure what specifically that means, I haven&#8217;t seen any comparisons to jqT selector hierarchies.  I certainly can sympathize with this point: the jQuery UI CSS Framework has lots of classes for things such as .ui-widget and .ui-widget-container and .ui-widget-content.  But so does Plone&#8217;s templating, and for the same reason as the above: large systems need fine-grained extensibility and customizability.</p>
<p>Personally I&#8217;m happy jqUI went that way, as they are busy stripping their main widgets down dramatically, composed from a small set of building blocks that get extended.  Even better, they <em>documented</em> their selector hierarchy in a fairly-visible contract.</p>
<p>At the end of the day, my best guess is that &#8220;bloat&#8221; is being used in a non-measurable way as a style choice.  Which is absolutely fine.  It&#8217;s great to say &#8220;I prefer jQuery Tools&#8221;.  It&#8217;s great that both exist, as I think they target different audiences.  jQuery Tools when you want to quickly get something done without learning a lot of ceremony, jQuery UI when you have a big system that needs a focus on extensibility and customization.</p>
<p>Maybe I have it wrong, and &#8220;bloat&#8221; is something specific and empirical.  Either way, they are both good choices and fairly similar in features, size, and support.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/pauleveritt.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/pauleveritt.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/pauleveritt.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/pauleveritt.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/pauleveritt.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/pauleveritt.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/pauleveritt.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/pauleveritt.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/pauleveritt.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/pauleveritt.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/pauleveritt.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/pauleveritt.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/pauleveritt.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/pauleveritt.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=pauleveritt.wordpress.com&amp;blog=5206833&amp;post=82&amp;subd=pauleveritt&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://pauleveritt.wordpress.com/2010/11/09/i-like-jquery-ui/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/997998127a1b170dadd043e5474ab0db?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">pauleveritt</media:title>
		</media:content>
	</item>
	</channel>
</rss>
