<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0"><channel><title>Lamson Project(TM)</title><link>http://lamsonproject.org</link><description>Lamson The Python SMTP Server and Framework</description><lastBuildDate>Mon, 22 Jun 2009 22:46:40 GMT</lastBuildDate><generator>PyRSS2Gen-1.0.0</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>0.9.5 Almost There, But Stumped On Templates</title><link>http://lamsonproject.org/blog/2009-06-22.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-22.html"&gt;2009-06-22&lt;/a&gt; : 0.9.5 Almost There, But Stumped On Templates&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;Since the 0.9.4 release I&amp;#8217;ve rewritten the main part of the decoding parser 
so that it&amp;#8217;s much cleaner and handles more edge conditions.  If there&amp;#8217;s one 
word that defines what makes &lt;span class="caps"&gt;MIME&lt;/span&gt; horrible it would be &amp;#8220;edge&amp;#8221;.&lt;/p&gt;

	&lt;p&gt;It&amp;#8217;s amazing the kind of stupid crap clients are allowed to send out in headers.
I&amp;#8217;ve actually got test cases from Mutt where it breaks headers up into completely
different encodings across multiple lines for no damn reason at all.  Here&amp;#8217;s a 
test I had to write just to cover the one worst case I found:&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-22.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-22.html</guid><pubDate>Mon, 22 Jun 2009 22:46:28 GMT</pubDate></item><item><title>Lamson 0.9.4 With Unicode Super Powers</title><link>http://lamsonproject.org/blog/2009-06-20.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-20.html"&gt;2009-06-20&lt;/a&gt; : Lamson 0.9.4 With Unicode Super Powers&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;Lamson 0.9.4 is out and it&amp;#8217;s sporting a completely rewritten and meticulously 
crafted encoding system.  With the new &lt;a href="http://lamsonproject.org/docs/api/lamson.encoding-module.html"&gt;lamson.encoding&lt;/a&gt; code Lamson can now decode nearly any nasty horrible encoded spam
or mail you hand it, turn it into pristine nice Python unicode strings, and
then output sweet clean ascii or utf-8 in a consistent way.&lt;/p&gt;

	&lt;p&gt;The purpose of this new encoding system is to make sure that Lamson
is giving your handlers the best input it can, based on the assumption
that the world is evil and Lamson will be handed utter garbage.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-20.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-20.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>The Mailocalypse Is Upon Us!</title><link>http://lamsonproject.org/blog/2009-06-14.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-14.html"&gt;2009-06-14&lt;/a&gt; : The Mailocalypse Is Upon Us!&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;I&amp;#8217;m currently polishing off the two final features before I start going for
the Lamson 1.0 release.  I&amp;#8217;ve been using Lamson to make a few little cute applications
and create one thing for a potential client, and so far I haven&amp;#8217;t had to change much
since 0.9.3.  It&amp;#8217;s great so far and I hope that Lamson 1.0 will be a fun release.&lt;/p&gt;

	&lt;p&gt;The &lt;strong&gt;big&lt;/strong&gt; thing that must improve though is handling character encodings in emails.
After spending a week or more trying to come up with an automated conversion scheme that 
would honor all the encodings on the planet, I had a realization.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-14.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-14.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Lamson At NYLUG Python Workshop Today @ 6:00PM</title><link>http://lamsonproject.org/blog/2009-06-09.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-09.html"&gt;2009-06-09&lt;/a&gt; : Lamson At NYLUG Python Workshop Today @ 6:00PM&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;Just a quick reminder that I&amp;#8217;ll be presenting &lt;a href="http://lamsonproject.org/"&gt;Lamson&lt;/a&gt; to the 
&lt;span class="caps"&gt;NYLUG&lt;/span&gt; Python Workshop today at 6:00PM.  The event is at
the NY Public Library Hudson Park Branch, 66 Leroy St., NY NY 10014
in &lt;span class="caps"&gt;NYC&lt;/span&gt; and you can &lt;a href="http://nylug.org/pipermail/nylug-announce/2009-June/000795.html"&gt;find out more here.&lt;/a&gt;&lt;/p&gt;

	&lt;p&gt;I&amp;#8217;ll be showing people how to set up Lamson, get it installed,
do cool stuff with it, and then just answering questions and helping
people work with it.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-09.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-09.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>A Screencast And Docs On Deploying Lamson And OneShotBlog</title><link>http://lamsonproject.org/blog/2009-06-08.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-08.html"&gt;2009-06-08&lt;/a&gt; : A Screencast And Docs On Deploying Lamson And OneShotBlog&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;I just finished writing some new documentation on &lt;a href="/docs/deploying_lamson.html"&gt;Deploying Lamson and OneShotBlog&lt;/a&gt; that
shows you how to install Lamson and all required software into a completely clean Python 2.6 and virtualenv configuration.
The instructions take you from nothing to a running &lt;a href="http://oneshotblog.com/"&gt;oneshotblog.com&lt;/a&gt; installation that you can 
play with and hack on.  The process of doing Lamson deployments is still a little too rough for me, but these instructions
should get people started.&lt;/p&gt;

	&lt;p&gt;I also created the first screencast &lt;a href="/videos/"&gt;teaching you how to do the same deployment&lt;/a&gt; but stopping at installing
&lt;a href="http://oneshotblog.com"&gt;oneshotblog.com&lt;/a&gt; to keep things short.  It is basically me talking and typing into a terminal 
window to 12 minutes showing you how to do it.  You can also &lt;a href="http://www.archive.org/details/Lamsonproject.orgDeployLamsonInAVirtualenv"&gt;download the video&lt;/a&gt;
from &lt;a href="http://archive.org/"&gt;archive.org&lt;/a&gt; to get a better viewing experience.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-08.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-08.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Lamson 0.9.3 Is Out And Sexy As Hell</title><link>http://lamsonproject.org/blog/2009-06-06.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-06.html"&gt;2009-06-06&lt;/a&gt; : Lamson 0.9.3 Is Out And Sexy As Hell&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;This release is the result of me working on my little
&lt;a href="http://oneshotblog.com/"&gt;oneshotblog.com&lt;/a&gt; project while tweaking and refining
Lamson as I go.  The end result is 0.9.3 didn&amp;#8217;t have a lot of big code changes,
but all the tiny little changes add up to a very nice release.  The highlights
of this release are more secure server runs, better character encoding handling
for headers, various cleanups in how mail is queued, and fixes for Python 2.6
support.&lt;/p&gt;

	&lt;p&gt;My plan is to keep using this release, improving what is there currently and
only adding minimal features, and just making what is there tighter.  The goal
is to &lt;strong&gt;have a 1.0 release out&lt;/strong&gt; once I&amp;#8217;ve used it on
&lt;a href="http://oneshotblog.com/"&gt;oneshotblog.com&lt;/a&gt; and the new &lt;a href="/lists/"&gt;lamsonproject.org
mailing lists&lt;/a&gt; application.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-06.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-06.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>OneShotBlog Sample (Hack) Running</title><link>http://lamsonproject.org/blog/2009-06-04.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-04.html"&gt;2009-06-04&lt;/a&gt; : OneShotBlog Sample (Hack) Running&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;I &lt;strong&gt;finally&lt;/strong&gt; got off my ass and put the &lt;a href="http://oneshotblog.com/"&gt;OneShotBlog&lt;/a&gt; sample up.
This is the code (plus a few little tweaks) from the sample that is in the &lt;a href="/releases/"&gt;Lamson source&lt;/a&gt;
running on another server.  It&amp;#8217;s using all the features of Lamson, include the new &lt;a href="/docs/deferred_processing_to_queues.html"&gt;Queue Receiver&lt;/a&gt;
functionality.  So far it&amp;#8217;s working great considering I&amp;#8217;ve just been hacking on it on the side to try
out the usability of the Lamson &lt;a href="/docs/api/"&gt;APIs&lt;/a&gt; and not really taken it seriously.&lt;/p&gt;

	&lt;p&gt;The concept of the oneshotblog is a little weird:&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-04.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-04.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Lamson 0.9.1 Out, New Docs</title><link>http://lamsonproject.org/blog/2009-06-03.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-03.html"&gt;2009-06-03&lt;/a&gt; : Lamson 0.9.1 Out, New Docs&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;I released Lamson 0.9.1 today so please &lt;a href="/download.html"&gt;grab it and test it&lt;/a&gt; and shoot me feedback.&lt;/p&gt;

	&lt;p&gt;The little changes are easier handling of attachments in MailRequest, a
small tweak to spam_filter, and then a bunch of test enhancements and extra
gear.  The big change is a redesign to lamson.args so that it infers the
command line arguments from the lamson.commands function keyword arguments.
It&amp;#8217;s mostly an internal change since others can&amp;#8217;t write their own commands
(yet).&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-03.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-03.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Lamson 0.9.2, Test Coverage 97%</title><link>http://lamsonproject.org/blog/2009-06-03-2.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-03-2.html"&gt;2009-06-03-2&lt;/a&gt; : Lamson 0.9.2, Test Coverage 97%&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;The 0.9.2 release is out and ready for everyone to easy_install.  I spent the
day getting rid of my tech debt by boosting the Lamson test coverage to a
whopping 97%.&lt;/p&gt;

	&lt;p&gt;I also wrote new documentation on &lt;a href="http://lamsonproject.org/docs/deferred_processing_to_queues.html"&gt;Running A Queue Receiver&lt;/a&gt; in a separate process using Lamson.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-03-2.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-03-2.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Lamson 0.9 Is Out, Find My Bugs!</title><link>http://lamsonproject.org/blog/2009-06-01.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-06-01.html"&gt;2009-06-01&lt;/a&gt; : Lamson 0.9 Is Out, Find My Bugs!&lt;/h2&gt;

&lt;p&gt;
I just pushed Lamson 0.9 up to PyPI for everyone to grab and break.  This release 
features a complete redesign of the routing, state handling, templating, and a full 
set of very complete documentation.  Everyone who was using 0.8.x series should be able 
to migrate to this version with some work, but it won&amp;#8217;t be terribly painful (assuming
you have unit tests).

	&lt;h2&gt;Getting 0.9&lt;/h2&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-06-01.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-06-01.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Lamson 0.9 Later Today</title><link>http://lamsonproject.org/blog/2009-05-31.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-05-31.html"&gt;2009-05-31&lt;/a&gt; : Lamson 0.9 Later Today&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;I have been working hard on the documentation and scrubbing the code for Lamson and the 0.9 release
coming out soon.  The only things I feel I need to do before an official 0.9 release are:&lt;/p&gt;

	&lt;ol&gt;
		&lt;li&gt;Clean up the one-shot-blog demo application a bit more.&lt;/li&gt;
		&lt;li&gt;Write a small set of instructions on writing your own &lt;a href="http://lamsonproject.org/docs/api/lamson.routing.StateStorage-class.html"&gt;StateStorage.&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;Do a last final code review to check for any obvious problems.&lt;/li&gt;
	&lt;/ol&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-05-31.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-05-31.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>0.9-pre2 Up For Testing, Docs Too</title><link>http://lamsonproject.org/blog/2009-05-28.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-05-28.html"&gt;2009-05-28&lt;/a&gt; : 0.9-pre2 Up For Testing, Docs Too&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;First off, my apologies to everyone if your &lt;span class="caps"&gt;RSS&lt;/span&gt; reader went crazy today.
I include documentation changes in the &lt;span class="caps"&gt;RSS&lt;/span&gt; feed so that people can
easily track updates to the Lamson docs.  However, that means when I&amp;#8217;m
writing a lot of documentation it hits the feed repeatedly.&lt;/p&gt;

	&lt;p&gt;The good news though is that you can now get at the 0.9-pre2 release of
Lamson from the &lt;a href="/releases/"&gt;releases&lt;/a&gt; page and you can read the great
new documentation I&amp;#8217;ve got.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-05-28.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-05-28.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Features For The 0.9 Release (Soon)</title><link>http://lamsonproject.org/blog/2009-05-24.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-05-24.html"&gt;2009-05-24&lt;/a&gt; : Features For The 0.9 Release (Soon)&lt;/h2&gt;

&lt;p&gt;
&lt;p&gt;I've been hard at work cooking up the very nice new routing system, and
I must say it is rather tasty.  I've gone and created a whole new
routing and state management design that uses decorators right in your
handler modules to indicate how each state will expect mail addresses.
&lt;/p&gt;

&lt;p&gt;
For the 0.9 release happening tomorrow I've got a new Router setup,
spam filtering baked in nice and clean, improved test coverage, and 
indirect state storage for those who don't like SQLAlchemy.
&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-05-24.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-05-24.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Lamson Project Ideas</title><link>http://lamsonproject.org/blog/2009-05-20.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-05-20.html"&gt;2009-05-20&lt;/a&gt; : Lamson Project Ideas&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;I wrote a &lt;a href="http://zedshaw.com/blog/2009-05-20.html"&gt;blog post about project ideas for Lamson&lt;/a&gt;
on my personal blog.  Head on over if you&amp;#8217;re looking for something to hack on, or just
want something to read that isn&amp;#8217;t about the web.&lt;/p&gt;

&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-05-20.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-05-20.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>New Site Look, Same Great Content</title><link>http://lamsonproject.org/blog/2009-05-19.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-05-19.html"&gt;2009-05-19&lt;/a&gt; : New Site Look, Same Great Content&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;This is just a quick update to say thanks to &lt;a href="http://kenkeiter.com/"&gt;Ken Keiter&lt;/a&gt;
for creating a new &lt;a href="http://lamsonproject.org/"&gt;lamsonproject.org&lt;/a&gt; site layout and
design.  The new site should be easier to read, have more breathing room, and look
easier on the eyes.  It&amp;#8217;s even got a logo:&lt;/p&gt;

	&lt;p&gt;&lt;img src="http://lamsonproject.org/images/lamson.png" alt="" /&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-05-19.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-05-19.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Bug Fix 0.8.4, Mailing Lists, Spam Blocking</title><link>http://lamsonproject.org/blog/2009-05-18.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-05-18.html"&gt;2009-05-18&lt;/a&gt; : Bug Fix 0.8.4, Mailing Lists, Spam Blocking&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;A few announcements from my work on Lamson the last few days.  I managed to fix
a bug, put Lamson to work doing Lamson&amp;#8217;s mailing lists, and use Lamson to do
some spam blocking on my own email account.&lt;/p&gt;

	&lt;p&gt;Hopefully eating my own dogfood won&amp;#8217;t be too painful.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-05-18.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-05-18.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Lamson Project Site Launched</title><link>http://lamsonproject.org/blog/2009-05-16.html</link><description>&lt;h2&gt;&lt;a href="/blog/2009-05-16.html"&gt;2009-05-16&lt;/a&gt; : Lamson Project Site Launched&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;Today I launched the Lamson Project site at
&lt;a href="http://lamsonproject.org/"&gt;lamsonproject.org&lt;/a&gt; and started filling in the
content.  Lamson is really turning into a fun and useful project, and hopefully
the site will get other people interested in it and using it.&lt;/p&gt;

	&lt;p&gt;I took the design from one of the many free web design sites and reused the same Python blog script that I use on &lt;a href="http://zedshaw.com/"&gt;my own site&lt;/a&gt; so getting this up and running was cake.&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/blog/2009-05-16.html"&gt;Read more...&lt;/a&gt;&lt;/p&gt;
</description><guid isPermaLink="true">http://lamsonproject.org/blog/2009-05-16.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Writing A Lamson State Storage Backend</title><link>http://lamsonproject.org/docs/writing_a_state_storage.html</link><description>&lt;h2&gt;&lt;a href="/docs/writing_a_state_storage.html"&gt;Writing A Lamson State Storage Backend&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;Earlier versions of Lamson assumed that you would use SQLAlchemy, and
that you wouldn&amp;#8217;t mind storing your state in the database using
SQLAlchemy.  Well, during the 0.9 redesign it became very easy to let
you store the state however and wherever you want.  In the new Lamson setup
there is a bit more work to create alternative storage, but Lamson comes with
two default stores that you can use to get started.&lt;/p&gt;

	&lt;h2&gt;The Default MemoryStore&lt;/h2&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/writing_a_state_storage.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Primary vs. Secondary Registration</title><link>http://lamsonproject.org/docs/primary_vs_secondary_registration.html</link><description>&lt;h2&gt;&lt;a href="/docs/primary_vs_secondary_registration.html"&gt;Primary vs. Secondary Registration&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;When you design a Lamson application the question of &amp;#8220;registration&amp;#8221;
comes up almost immediately.  The question is one of how you find out
who a person is so that you can interact with them.  In the web world
this involves a form of some kind asking for a login and password at a
minimum.  Some sites even go so far as to require a sign-up process
&lt;strong&gt;before&lt;/strong&gt; they let you see anything about the site, or even their marketing
material.&lt;/p&gt;

	&lt;p&gt;On the web this kind of registration is what I like to call &amp;#8220;Primary
Registration&amp;#8221;.  It comes from the concept of primary vs. secondary data,
or primary vs. secondary analysis.  In the world of measurement a
primary source is one that you gathered the information from directly,
usually by giving them a questionaire.  A secondary source is one that
you gathered in some indirect way, either by evaluating past research
in a new way, data mining, or simply unobtrusive data collection.&lt;/p&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/primary_vs_secondary_registration.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Installing Lamson Into Virtualenv With Pip</title><link>http://lamsonproject.org/docs/lamson_virtual_env.html</link><description>&lt;h2&gt;&lt;a href="/docs/lamson_virtual_env.html"&gt;Installing Lamson Into Virtualenv With Pip&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;The best way to install Lamson in a virtualenv is using the 
&lt;a href="http://pip.openplans.org/"&gt;pip tool&lt;/a&gt; to install it. This will automatically fetch the 
code from bazaar, install it inside the virtualenv and fetch any 
missing dependencies.&lt;/p&gt;

	&lt;p&gt;First, if you haven&amp;#8217;t already, you&amp;#8217;ll need to install pip. Make sure 
you&amp;#8217;ve activated the virtualenv:&lt;/p&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/lamson_virtual_env.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Available Lamson Commands</title><link>http://lamsonproject.org/docs/lamson_commands.html</link><description>&lt;h2&gt;&lt;a href="/docs/lamson_commands.html"&gt;Available Lamson Commands&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;p&gt;The following is also available by running &lt;b&gt;lamson help&lt;/b&gt; and you can get the
help for each individual command with &lt;b&gt;lamson help -for COMMAND&lt;/b&gt; replacing
COMMAND with one of these listed below.&lt;/p&gt;

&lt;p&gt;The format for the printed options show default options as an actual setting,
and required options as a CAPITALIZED setting you must give.  For example, in the
&lt;b&gt;send&lt;/b&gt; command:&lt;/p&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/lamson_commands.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>A Painless Introduction To Finite State Machines</title><link>http://lamsonproject.org/docs/introduction_to_finite_state_machines.html</link><description>&lt;h2&gt;&lt;a href="/docs/introduction_to_finite_state_machines.html"&gt;A Painless Introduction To Finite State Machines&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;Lamson uses the concept of a Finite State Machine to do the internal
processing and keep track of what it should do next.  You don&amp;#8217;t
necessarily need to know the details of how a &lt;span class="caps"&gt;FSM&lt;/span&gt; works, but it
helps you if you want to know enough about Lamson to do advanced work.
Most people could be blissfully unaware of state machines and still do 
plenty of work with Lamson.&lt;/p&gt;

	&lt;h2&gt;Your Computer Science Class Sucked&lt;/h2&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/introduction_to_finite_state_machines.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Getting Started With Lamson</title><link>http://lamsonproject.org/docs/getting_started.html</link><description>&lt;h2&gt;&lt;a href="/docs/getting_started.html"&gt;Getting Started With Lamson&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;Lamson is designed to work like modern web application frameworks like Django, TurboGears,
&lt;span class="caps"&gt;ASP&lt;/span&gt;.&lt;span class="caps"&gt;NET&lt;/span&gt;, Ruby on Rails, and whatever &lt;span class="caps"&gt;PHP&lt;/span&gt; is using these days.  At every design decision 
Lamson tries to emulate terminology and features found in these frameworks.  This Getting Started
document will help you get through that terminology, get you started running your first
lamson application, and walk you through the code you should read.&lt;/p&gt;

	&lt;p&gt;In total it should take you about 30 minutes to an hour to complete.  If you just want
to try Lamson, at least go through the 30 &lt;strong&gt;second&lt;/strong&gt; introduction given first.&lt;/p&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/getting_started.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Filtering Spam With Lamson</title><link>http://lamsonproject.org/docs/filtering_spam.html</link><description>&lt;h2&gt;&lt;a href="/docs/filtering_spam.html"&gt;Filtering Spam With Lamson&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;Lamson supports initial use of the &lt;a href="http://spambayes.sourceforge.net/"&gt;SpamBayes&lt;/a&gt; spam filter
library for filtering spam.  What Lamson provides is a set of easy to use decorators that you
attach to your state functions which indicate that you want spam filtered.  It also uses the
default SpamBayes configuration files and database formats as you configure, so if you have
an existing SpamBayes setup you should be able to use it right away.&lt;/p&gt;

	&lt;h2&gt;Using lamson.spam&lt;/h2&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/filtering_spam.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Frequently Asked Questions</title><link>http://lamsonproject.org/docs/faq.html</link><description>&lt;h2&gt;&lt;a href="/docs/faq.html"&gt;Frequently Asked Questions&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;If a question is missing you can &lt;a href="/contact.html"&gt;contact me&lt;/a&gt; about it and I&amp;#8217;ll answer.&lt;/p&gt;

	&lt;h2&gt; What is Lamson?&lt;/h2&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/faq.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Deploying Lamson And OneShotBlog</title><link>http://lamsonproject.org/docs/deploying_lamson.html</link><description>&lt;h2&gt;&lt;a href="/docs/deploying_lamson.html"&gt;Deploying Lamson And OneShotBlog&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;These instructions will teach you how to setup a completely clean Python 2.6 installation,
a virtualenv with lamson, and all the gear needed to run the &lt;a href="http://oneshotblog.com/"&gt;oneshotblog.com&lt;/a&gt;
software on your machine.  It then leads you through the nitty-gritty details of getting 
oneshotblog.com running on your machine and testing it.&lt;/p&gt;

	&lt;p&gt;Most of these instructions could be easily turned into an automated script, which may happen in
the future.  For now it is meant to teach you about the typically dirty details involved in setting
up a system for the first time.  It also tries to avoid various problems with different operating
systems, so let me know how it works for you.&lt;/p&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/deploying_lamson.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item><item><title>Deferred Processing To Queues</title><link>http://lamsonproject.org/docs/deferred_processing_to_queues.html</link><description>&lt;h2&gt;&lt;a href="/docs/deferred_processing_to_queues.html"&gt;Deferred Processing To Queues&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;	&lt;p&gt;As of the 0.9.2 release there is preliminary support for deferring
handling of a mail message to a queue for another process to deal with
in a separate handler.  This support is rough at this time, but still
useful and not too difficult to configure.  As the feature gets more
use it will improve and hopefully turn into a generic &amp;#8220;defer to queue&amp;#8221;
system in Lamson.&lt;/p&gt;

	&lt;p&gt;What is meant by &amp;#8220;defer to queue&amp;#8221; is simply that you take messages your 
state function receives and you dump them into a maildir queue.  You
then have another separate process read from this queue and do the real
work.  Potentially you could have many processes deal with this work,
and they could even be on multiple computers.&lt;/p&gt;&lt;/p&gt;

</description><guid isPermaLink="true">http://lamsonproject.org/docs/deferred_processing_to_queues.html</guid><pubDate>Mon, 22 Jun 2009 20:41:49 GMT</pubDate></item></channel></rss>