01 Nov
by: Matt in Development, Infrastructure
tags: async, asynchronous, asynchttpclient, c-ares, curl, dns, libcurl, Python, tornado
I learned some rather important facts about cURL’s multi interface (which makes it possible to perform asynchronous HTTP requests and what Python’s Tornado framework uses under the hood in it’s AsyncHttpClient helper). I was investigating some intermittent issues in an application at work – transient DNS issues were causing the application to become unresponsive. This [...]
09 Sep
by: Matt in Development, Django, Python, Random
tags: binding, c++, cython, libwkhtmltox, module, Python, wkhtmltoimage, wkhtmltopdf, wrapper
First of all, big shout out to antialize for creating wkhtmltopdf (github repo). Also, this project is being hosted on GitHub @ http://github.com/mreiferson/py-wkhtmltox. wkhtmltox What is wkhtmltox you ask? It’s a utility built on Nokia’s Qt framework for converting HTML (including images, CSS, and Javascript) to a PDF or image. When Qt introduced it’s webkit [...]
01 Jul
by: Matt in Development, Infrastructure, Python
tags: API, asynchronous, non-blocking, Python, REST, tornado, web.py
I’ve been working with Python’s Tornado for about 2 months now and I love it. Tornado is a non-blocking web server written in Python. It’s structure is similar to web.py so users of that popular Python web framework will feel right at home. This is a structure that lends itself really well to developing RESTful [...]
04 Mar
by: Matt in Development, Python
tags: multiprocessing, Python
Python’s multiprocessing module is a great tool that abstracts the details of forking and managing child processes in an interface inspired by the threading module. The benefit to using processes over threads is that you effectively avoid the issues of the GIL (Global Interpreter Lock). I wanted to share my experience with sharing static data [...]
For one off scripts for a particular project: #!/usr/bin/env python from django.core.management import setup_environ from myapp import settings setup_environ(settings) # do some stuff
08 Feb
by: Matt in Development, Django, Infrastructure, PHP, Python, Ruby, Ruby on Rails
tags: deployment, Django, mod_wsgi, mongrel, passenger, php, phusion passenger, Python, rails, ruby, subversion
I finally got around to setting up a more sophisticated deployment system for some of my apps. These apps include some built on a custom PHP framework and others that are Python / Django apps. I figured I’d share my experience… Why is a high-level deployment infrastructure important? Deployment is something that should be simple, [...]
30 Nov
by: Matt in Book Reviews, Clojure, CSS, Development, Django, Infrastructure, JavaScript, PHP, Python, Ruby, Ruby on Rails
tags: book review, clojure, Development, Django, php, programmer, Python, rails, ruby, Ruby on Rails
Send this to your significant other/parent/relative/friend so, instead of that sweater, you get one of these nuggets of awesome this Christmas. The Pragmatic Programmer: From Journeyman to Master Write better, cleaner, more maintainable code. Learn how to manage your projects and focus on shipping your product. With insight that covers the gamut of software development [...]
15 Nov
by: Matt in Development, Django, Infrastructure, Python
tags: centos, Django, linux, mod_wsgi, mysql, mysql-python, mysqldb, Python, setuptools
This is an update to my previous how-to Setup Python 2.5, mod_wsgi, and Django 1.0 on CentOS 5 (cPanel). The biggest reason why I chose to go with Python 2.5 at the time was because the MySQL Python (MySQLdb) package didn’t support Python 2.6. The 1.2.3c1 release does so that roadblock is lifted. The instructions [...]
Read my previous two posts on Django and Python – Part I and Part II I’ve been working on a project management tool suite in Django. It’s been a great side project to really experiment with Django in real-world scenarios. Forms At times I feel like I fight with newforms. In particular, it lacks the [...]
The Django project just announced that v1.1 is ready! Go here for the full release notes. Some notable changes include support for aggregate functions from within the ORM. This includes COUNT(), MAX(), MIN(), etc. Also, the concept of “unmanaged” models which allow you to easily support tables that pre-existed or were created by some other [...]
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.