At my job we've been doing a quarterly hackday
for almost a year now. My coworkers have made some amazing stuff, and its nice
to have an entire day dedicated to hacking on ... well, whatever you want.
Tomorrow marks the 4th hackday and I need to scrounge up a good project, but in
the meantime I thought I'd write a post about what I did last time around -- a
lightweight python task queue that has an API similar to celery.
I've called it huey (which also turns out
to be the name of my kitten).
Design goals
The goal of the project was to keep it simple while not skimping on features. At
the moment the project does the following:
Backend storages implement a simple API, currently the only implementation uses
Redis but adding one that uses the database would be a snap.
The other main goal of the project was to have it work easily for any python
application (I've been into using flask lately), but come
with baked-in support for django. Because of django's centralized configuration and
conventions for loading modules, the django API is simpler than the python one, but
hopefully both are reasonably straightforward.
|
Tags:
python
irc
|
January 24th, 2012 10:59p.m.
As an IRC bot enthusiast and tinkerer, I would like to describe the most enduring
and popular bot I've written, a markov-chain bot. Markov chains can be used
to generate realistic text,
and so are great fodder for IRC bots. The bot I am writing of has been hanging out in my
town's channel for the past year or so and has amassed a pretty awesome corpus from
which it generates messages. Here are few of his greatest hits:
Over the last two months I've spent a lot of time working on improvements to peewee,
a lightweight ORM written in python.
Some of these features are present in Django and were added for better parity,
some I found a need for while working on other projects,
and others were requested by opening an issue on GitHub
or bringing it up on IRC (#peewee on freenode). If you're interested in trying
peewee out, it ships with an example app which is described here.
Here's a rundown on what has been added recently:
- atomic updates
- select related models
- basic transaction support
For a change, I've been doing all of my new app development using flask,
a python web framework built atop the werkzeug WSGI
toolkit. Having used django for the last two years
it's been fun to do something different, but at the same time stick with python.
In this post I'd like to show a couple of the small projects I've written using
flask over the past few weeks.
Recently I stumbled across the twitter bootstrap project, which is a set of cross-browser compliant stylesheets and scripts. I liked them so much that I've ported the admin templates to use bootstrap. Here's a little screenshot of the design refresh taken from the example app:
http://media.charlesleifer.com/images/photos/flask-peewee-admin.jpg
I hope this will make the admin easier to work with in the long-run!
I'd like to write a post about a project I've been working on for the past month
or so. I've had a great time working on it and am excited to start putting it
to use. The project is called flask-peewee --
it is a set of utilities that bridges the python microframework flask
and the lightweight ORM peewee. It is packaged
as a flask extension and comes with the following batteries included:
Over the past month I've been working on adding support for both MySQL
and PostgreSQL to peewee. I'm happy to
say that after a couple weekend hack sessions all tests are now passing.
I'm pleased to announce that I've added support for MySQL to peewee. All tests are now passing. In the process I uncovered a few small bugs which have also been fixed.
I also added some new reference documentation which describes succinctly how to do basic configuration and querying with peewee.
After several months of running the task queue bundled with django-utils, I decided to re-evaluate certain aspects of the design. This post describes those changes.
Just a quick heads-up to anyone out there using django-completion,
I've released a couple important updates this weekend and you may be interested
in updating your checkouts. These changes are purely additive, so don't worry
about having to update your own code.
There are three important updates:
- Bug: the (experimental) Redis backend could fail to return results under
certain conditions and, if data were removed frequently, leak memory all over
the place
- Bug: partial titles generated for the Redis and Database backends were
too restrictive, i.e. "testing python code" would not complete on "python"
unless the AUTOCOMPLETE_MAX_WORDS setting was 2 (or 1)
- Feature: it is now possible to restrict suggestions to certain models by
passing in a list of acceptable models to the suggest() method