A second, and more successful attempt to use static type checking in a real Python project
How to use Sass/SCSS in a Django project, without needing Node.js/npm or running a build process
5 different things you might be using type annotations for, or might want to.
A response to Hillel Wayne’s “I am disappointed by dynamic typing”
Patterns for creating model instances in Django project test suites, and some anti-patterns
How I tried and failed to add static type checking to Parsy, and settled for type hints as documentation instead.
A collection of tools that can be run to automatically rewrite Python code in a number of ways
Release announcement for pyastgrep, a tool for grepping Python code at the syntax level.
How returning error objects can provide some advantages over raising exceptions in Python, such as for static type checking tools.
The flows I use for exploratory programming using a REPL and their advantages.
When using Django database models and adding a calculated property of some kind, you should probably ensure it will be efficient in bulk even if that isn’t needed yet.
Analysis and examples of the popular high-level pattern of making all the things in your system conform to a common interface.
Tips for winning the automated testing battle.
Announcement of my guide to writing Django Views.
Keyword-only arguments are a feature that has been around since Python 3.0 but I've not seen them used much. This post explores the how and why.
How to implement the classic double-checked locking pattern with Django ORM/PostgreSQL.
Some analysis on the false positive rate when using Pylint on a codebase.
How to replace 6+ design patterns with one concept in Python
Some lessons from the recent WordPress vulnerability
Follow @djangoadmintips for curated tips about the Django admin
Why Django's GenericForeignKey is (usually) a bad idea
A simple password-less login system to consider for some use cases, with Django code.
We need languages and systems that are less powerful, not more powerful, and easy ways to create and use such languages.
A way to use Class Based Views and avoid some of the problems with Django's versions.
A review of the above book by L. Felipe Martins.
Trickiness surrounding subclassing
Why I think we need the context of a language to have meaningful debate about language features.
Pretty much what it says in the title...
An attempt to put something down about the idea of self-hosting software
An example that might help a new programmer struggling with the insanity of counting from zero.
Some attempts to solve the seating headache with software.
The order of service requires some Python hacking
Using my programming skills for higher purposes, part 1
We should just introduce people to MVT
Some answers and questions on the subject of bundling copies of dependencies in a project
WebFaction should encourage a much better deployment process
Porting a Django app to Python 3
Success story with Linux, Chrome, Android, Coversal and Python
A complete WebView Android app, full screen, with a progress bar and back button that works as normal
An example of why dynamic typing in a statically typed language can be painful
With examples from the web development world especially PHP, and lessons for Pythonistas
Notes to self on how (not) to convince people.
I switched my site/blog to blogofile and disqus, sorry for any incovenience for feed readers.
A response to "Things you should test" by Noah Sussman.
Django's CBVs are complex, unpythonic solutions to simple problems, (IMHO :-), here's why.
I've probably written lots of blog posts on this, so I can't claim 'x' = 1, and I've no idea what 'y' is...
I launched my new Django Bible memorization site, LearnScripture.net
TimeCult works well, and I wrote a script for converting KTimeTracker files.
How to do logging calls to Sentry asynchronously (until Sentry gets UDP support).
Some tips for keeping your Django apps lean and mean from the beginning, using lessons from django-fiber,
O gods of software development and operations, I have sinned. Your anger falls on me, and I feel your wrath...
Announcing django-easyfilters, a new library for Django, and a bit of heretical editorial about Django's ORM.
First part of a series of posts that attempt to explain Python by the dissection method.
Writing good quality documentation for the software libraries you publish always matters. Otherwise, you are doing the world a disservice by publishing.
An app to help protect your customers' data when in development.
Class based views are very cool. I am starting to clean up an existing project using them, and lots of existing views are turning into declarative code. But it makes me worried about the ravioli effect.
I tend to use several music/media players, such as shell-fm, moc and Clementine. In order to be able to use the media buttons on my keyboard for pausing/skipping, I wrote this Python script to automatically route the commands to the right one.
Using IPython deep inside a program...
I discovered hgview, a really great replacement for hgk.
How can I get the Mercurial Eclipse plugin to just recognise an existing folder as a Mercurial repository?
How I set up Eclipse to work with an existing project using virtualenv
Based on my recent Haskell experience, I highlight some cases where I think static type checks provide a better testing mechanism than unit tests or other automated tests.
A lot of discussion recently has missed the point: the big question is whether the terms of any software licence are really relevant to dynamic languages...
I've blogged before about using trac as a personal wiki, now I've found I can use Emacs as my editor and trac browser it's even better...
A review of "Django 1.0 Template Development" by Scott Newman, from Packt Publishing.
An article from Django 1.0 Template Development by Scott Newman, about how to output a document in multiple formats/styles using Django templates.
A simple way to use Mercurial Queues in a Subversion working directory to manage patches before committing to Subversion.
After reading that in Python 2.5 some big memory leaks are fixed, I just switched a Django site from Python 2.4 to Python 2.5. I wasn't disappointed -- the combined memory usage of my Apache processes (which are using mod_python) went from 100Mb to 60Mb. So, for anyone else wanted to conserve memory, this is the first thing I'd suggest!
Django newforms fixes lots of things...
I created a system and web app to help me organise my Bible memorisation. And I rant a bit Django and web.py.
How to use Twill within Django unit tests
Some tools to help organise your computer and files.
I present below some example code for using Django, newforms and MochiKit to do AJAX validation, in case anyone else is doing the same, complete with a live demo...
My results on the O'Reilly's code quiz...
Why Haskell's 'Maybe' totally pwns Python's 'None' and null pointers.
I've updated my `validator app
`_ to latest Django trunk and finally done a release.
A rant about how annoying programming in C# is, really.
An attempt to explain monads and their usefulness in Haskell, assuming only some simple knowledge of Python.
Paul Graham was right again...
An attempt to debunk some of the '20 minute web app' hype that is so prevalent at the moment, and present a more realistic and balanced account of the Django site I have just finished.
I've noticed in Python and in Django I almost always create a module or a template by starting with a completely empty file, and typing...
I fixed my blog comments so that leading whitespace is now preserved – making it much more friendly to posted Python code.
Using pychecker and pylint on Django – and each other...
Here is a not-too-awful hack to make the admin give different 'add/change' forms depending on who is using it.
I've implemented a module that provides protection against Cross Site Request Forgeries for Django - and as always with both Python and Django, I've got that "surely it can't be that easy" feeling...
Just discovered the Django web development framework, and I think I'm in love...