Easy Concurrency with Stackless Python (Saturday, October 03, 2009) - Since messing around with Erlang over the last couple months I've been very impressed with it's simplicity in managing concurrency. Erlang's message passing infrastructure really allows developers to have the locking just work without doing anything unnatural in code for synchronization. You almost let the problems define the locking behavior for you. Such elegance
Windows Services in Python (Monday, November 02, 2009) - Any more it seems that virtually all the code I write on the windows platform ends up being a windows service. It's just the nature of the kind of work I do: the underappreciated guts that sit far beneath the software that users directly interact with. Obviously windows services are typically written in mainstream .Net languages like C# or VB these days but it's
Using Solr in Django for Full-Text Searching via Solango (Friday, January 01, 2010) - I've been doing quite a bit of work with Solr lately, both at the office and at home and, by golly, I love it! It's very powerful and simple to integrate with regardless of your platform. In this post I'll explain how to use Solr as a data-store independent search provider for Django projects. I'll assume that you have a functional Solr install and generally understand
Using MongoDB as a Backend for Django with django-mongodb-engine (Wednesday, October 13, 2010) - I've been pretty taken with MongoDB of late. It's nearly disgusting how productive it is. However, like all database systems it's only as productive as the higher-level systems that interface with it. Personally I've used it primarily from Java and Ruby on Rails (via MongoMapper) and from Python via PyMongo. PyMongo essentially exposes MongoDB via Python dictionaries.
Stored Procedures in Django (Sunday, August 09, 2009) - Web development platforms like Django go a long way to removing the need for writing hand-crafted SQL with all of their ORM goodness. Sometimes, for some reason or another, it's handy to execute hand-crafted SQL code or even a stored procedure. Naturally that should be a last resort and I don't intend on starting a discussion about when it is and when is not appropriate,
Tale of a Website, from Rails to ASP.NET to Django (Thursday, August 20, 2009) - I hesitate to call it complete yet but for the most part www.chrisumbel.com has been ported from ASP.Net to Django. Sure, there really isn't a lot to this site so no port would have been incredibly painful but I'm quite pleased with the effort level (or lack thereof) required to get it done. Aside from just this port it's been a long and interesting ride for
Scripting Your .Net Applications with IronPython (Tuesday, November 03, 2009) - At several points in my .Net development career I've had the need to make an application I wrote scriptable. Sometimes it was to provide easy product extension to customers or lower level information workers. Sometimes it was to ease maintenance of very fine grained logic that has the capacity to change frequently or unpredictably. But every time I found it to
Home-Brewing a Full-Text Search in Google's AppEngine (Sunday, November 22, 2009) - I've recently deployed a django application on Google's AppEngine. I'm not sure how I've avoided it thus far but seems to fit my needs relatively well. DataStore (AppEngine's data storage engine) really impressed me. The python API feels so much like django's ORM that there was practically zero learning curve for a chap like me. One thing that disappointed
Using reCAPTCHA With Django (Saturday, November 21, 2009) - I sure was naive. When I launched a certain django-based site that accepted user comments (wonder which one that is?) a while back I thought I could block the comment spam myself without CAPTCHA. After a few months of traffic I started getting hammered with it and tried blocking IPs, keywords and patterns. All to no avail. The trouble-spot was a strait-forward,
Now in Django (Wednesday, August 19, 2009) - Welp, this site has been ported to Django. It's my second Django project but this is the first one that extends beyond two pages. Since putting it on production equipment a few things aren't working quite right but it's passable for now. Tomorrow I'll clean up any loose ends and write the story of the port. The URL rewrites to .aspx filenames are annoying me, but