Archive

2016

May

May 07, 2016

Dealing with Docker

Tips and tricks for porting Python apps to Docker, and lots of complaints.

February

Feb 18, 2016

Notes on debugging

Various ideas about debugging

2015

November

Nov 22, 2015

Memory use and speed of JSON parsers

Memory use is often overlooked when people compare JSON libraries

July

Jul 11, 2015

Publishing to GitHub Pages from Travis CI

A better way to publish to GitHub Pages from Travis CI

April

Apr 14, 2015

Tox tricks and patterns

An overview of Tox and various tricks and patterns

February

Feb 24, 2015

The problem with packaging in Python

Thoughts on the "build" part of packaging

Feb 09, 2015

Understanding Python metaclasses

… and Python objects in general

January

Jan 12, 2015

Proxying objects in Python

Notes about a lazy object proxy implementation in Python

Jan 02, 2015

Speed up pip install

A neat speedup trick using a wheelhouse

2014

December

Dec 28, 2014

Terrible choices: MySQL

The terrible pitfalls I've gotten myself into while using MySQL

Dec 21, 2014

Compiling Python extensions on Windows

It would appear installing the tool-chain is tricky

November

Nov 04, 2014

An interesting Python descriptor quirk

About less known behavior of Python descriptors

September

Sep 22, 2014

Ramblings about data-structures

Thoughts on data and software design

August

Aug 14, 2014

The three sins of software development

A piece about the roots of technical debt and how to deal with them

Aug 03, 2014

The most underrated feature in Python 3

Short praise about exception handling in Python 3

July

Jul 08, 2014

A python package template

Introducing a "nuts and bolts" package template

June

Jun 25, 2014

Python packaging pitfalls

A short list of packaging blunders

Jun 19, 2014

Just another day using Python 3

Jun 15, 2014

lxml's element builder and CDATA objects

About making ElementBuilder easier to use with CDATA

May

May 25, 2014

Packaging a python library

Thoughts on packaging python libraries

May 10, 2014

Django sticky queryset filters

QuerySet's filter is not always conjunctive

May 03, 2014

PyPI package aliases

About making distribution aliases and the lack of a naming convention

April

Apr 28, 2014

Quick tracing

A quick way to trace code from a REPL

March

Mar 17, 2014

Debugging with AOP

Debugging code with aspect-oriented programming

January

Jan 04, 2014

VirtualBox VM auto-shutdown

A notification area utility to shutdown those poor VMs before big bad Windows kills them

2013

December

Dec 21, 2013

Dumping logs on test failures

A base TestCase class that dumps external logs on failures and works with nose

Dec 17, 2013

Nose timelimit

Skip tests over a threshold for some quick feedback

Dec 10, 2013

Adding stacktraces to log messages

Showing stacktraces in Django's SQL query logging

Dec 08, 2013

Static photo gallery generator

Some ideas about a yet-to-be-built static photo gallery generator

November

Nov 01, 2013

Pelican feed analytics

How to get rss/atom feed views in Google Analytics

October

Oct 26, 2013

Django's dictsort template tag

Oct 17, 2013

TinyMCE formatting toolbar buttons

How to have formatting options as toolbar buttons instead of those annoying submenus

August

Aug 26, 2013

Django and pip wheel

Django doesn't currently work properly if installed via wheels

Aug 08, 2013

Dealing with eval'd code

About eval and tracebacks

June

Jun 26, 2013

Testings Python warnings

About making assertions on warnings being issued

Jun 14, 2013

Serving files if they exist or fallback to wsgi app

Breakdown of Apache configuration to achieve this

Jun 08, 2013

Python profiling tools

Small addition to the previous article about the debuggers

Jun 05, 2013

Python debugging tools

Debugging tools I like to generally use with python

May

May 30, 2013

Mysql too slow in tests? ramdisk it!

Creating ramdisk mysql instances on Ubuntu 12.04

March

Mar 11, 2013

Old Ubuntu 10.04 on Hyper-V

2012

November

Nov 18, 2012

Windows 8 doesn't let you change the network type?

February

Feb 16, 2012

How to run jmeter over ssh tunnel

January

Jan 19, 2012

Tweaks for making django admin faster

2011

October

Oct 24, 2011

Drop-in celery AbortableTask replacement

Oct 11, 2011

Django pro tip: if you only use the admin

September

Sep 25, 2011

Tmux scripting

July

Jul 03, 2011

Measure your code

June

Jun 24, 2011

Custom app names in the django admin

Jun 22, 2011

Mercurial tip of the day: tortoisehg's shelve

March

Mar 17, 2011

Stale formsets and the back button

2010

August

Aug 25, 2010

Wondering about django orm caching frameworks

February

Feb 04, 2010

The final literals vs constructors argument

2009

April

Apr 10, 2009

The "yield from" proposal

January

Jan 19, 2009

Cogen and greenlets

2008

November

Nov 29, 2008

Ctypes based iocp proactor for cogen

Nov 29, 2008

Javascript-Flash socket bridge with haxe

Nov 03, 2008

Setuptools install_requires quirk

October

Oct 26, 2008

Functions are descriptors

September

Sep 23, 2008

Giving up on Google Appengine

Sep 15, 2008

On the future of cogen coroutine library

August

Aug 16, 2008

Shortcuts again

Aug 14, 2008

I'm a shortcut freako

July

Jul 10, 2008

Finished my formal CS studies - quite disappointing

Jul 08, 2008

First flex css hack

June

Jun 05, 2008

Rewrite temptation

May

May 01, 2008

ClearType is for color blind people

April

Apr 29, 2008

Comet chat in pylons (with cogen)

Apr 24, 2008

Setuptools & nosetests oddness

Apr 20, 2008

Qt reactor in cogen

Apr 14, 2008

That history meme

Apr 11, 2008

Cogen and pylons can play!

Apr 01, 2008

Curious difference between epoll, poll, kqueue and select

March

Mar 27, 2008

Cogen: python coroutine library introduction