Lamson Project Blog
2009-06-22 : 0.9.5 Almost There, But Stumped On Templates
Since the 0.9.4 release I’ve rewritten the main part of the decoding parser so that it’s much cleaner and handles more edge conditions. If there’s one word that defines what makes MIME horrible it would be “edge”.
It’s amazing the kind of stupid crap clients are allowed to send out in headers. I’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’s a test I had to write just to cover the one worst case I found:
2009-06-20 : Lamson 0.9.4 With Unicode Super Powers
Lamson 0.9.4 is out and it’s sporting a completely rewritten and meticulously crafted encoding system. With the new lamson.encoding 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.
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.
2009-06-14 : The Mailocalypse Is Upon Us!
I’m currently polishing off the two final features before I start going for the Lamson 1.0 release. I’ve been using Lamson to make a few little cute applications and create one thing for a potential client, and so far I haven’t had to change much since 0.9.3. It’s great so far and I hope that Lamson 1.0 will be a fun release.
The big 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.
2009-06-09 : Lamson At NYLUG Python Workshop Today @ 6:00PM
Just a quick reminder that I’ll be presenting Lamson to the NYLUG Python Workshop today at 6:00PM. The event is at the NY Public Library Hudson Park Branch, 66 Leroy St., NY NY 10014 in NYC and you can find out more here.
I’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.
2009-06-08 : A Screencast And Docs On Deploying Lamson And OneShotBlog
I just finished writing some new documentation on Deploying Lamson and OneShotBlog 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 oneshotblog.com 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.
I also created the first screencast teaching you how to do the same deployment but stopping at installing oneshotblog.com 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 download the video from archive.org to get a better viewing experience.
2009-06-06 : Lamson 0.9.3 Is Out And Sexy As Hell
This release is the result of me working on my little oneshotblog.com project while tweaking and refining Lamson as I go. The end result is 0.9.3 didn’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.
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 have a 1.0 release out once I’ve used it on oneshotblog.com and the new lamsonproject.org mailing lists application.
2009-06-04 : OneShotBlog Sample (Hack) Running
I finally got off my ass and put the OneShotBlog sample up. This is the code (plus a few little tweaks) from the sample that is in the Lamson source running on another server. It’s using all the features of Lamson, include the new Queue Receiver functionality. So far it’s working great considering I’ve just been hacking on it on the side to try out the usability of the Lamson APIs and not really taken it seriously.
The concept of the oneshotblog is a little weird:
2009-06-03 : Lamson 0.9.1 Out, New Docs
I released Lamson 0.9.1 today so please grab it and test it and shoot me feedback.
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’s mostly an internal change since others can’t write their own commands (yet).
2009-06-03-2 : Lamson 0.9.2, Test Coverage 97%
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%.
I also wrote new documentation on Running A Queue Receiver in a separate process using Lamson.
2009-06-01 : Lamson 0.9 Is Out, Find My Bugs!
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’t be terribly painful (assuming you have unit tests).
Getting 0.9
2009-05-31 : Lamson 0.9 Later Today
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:
- Clean up the one-shot-blog demo application a bit more.
- Write a small set of instructions on writing your own StateStorage.
- Do a last final code review to check for any obvious problems.
2009-05-28 : 0.9-pre2 Up For Testing, Docs Too
First off, my apologies to everyone if your RSS reader went crazy today. I include documentation changes in the RSS feed so that people can easily track updates to the Lamson docs. However, that means when I’m writing a lot of documentation it hits the feed repeatedly.
The good news though is that you can now get at the 0.9-pre2 release of Lamson from the releases page and you can read the great new documentation I’ve got.
2009-05-24 : Features For The 0.9 Release (Soon)
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.
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.
2009-05-20 : Lamson Project Ideas
I wrote a blog post about project ideas for Lamson on my personal blog. Head on over if you’re looking for something to hack on, or just want something to read that isn’t about the web.
2009-05-19 : New Site Look, Same Great Content
This is just a quick update to say thanks to Ken Keiter for creating a new lamsonproject.org site layout and design. The new site should be easier to read, have more breathing room, and look easier on the eyes. It’s even got a logo:
2009-05-18 : Bug Fix 0.8.4, Mailing Lists, Spam Blocking
A few announcements from my work on Lamson the last few days. I managed to fix a bug, put Lamson to work doing Lamson’s mailing lists, and use Lamson to do some spam blocking on my own email account.
Hopefully eating my own dogfood won’t be too painful.
2009-05-16 : Lamson Project Site Launched
Today I launched the Lamson Project site at lamsonproject.org 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.
I took the design from one of the many free web design sites and reused the same Python blog script that I use on my own site so getting this up and running was cake.