This OSError: write error
issue has been frustrating me for years — ever since
I began switching Python/Django web applications across from gunicorn to uWSGI
Emperor. Up until recently, I didn't understand what caused these errors,
whether they represented a problem worth solving, and if so how to deal with …
Other articles
Getting started with Guix deploy
It's still early days for Guix's
guix deploy
, but it may well be my server deployment tool of the future. I'm quite excited!
read moreguix deploy
promises to simply and reliably drop predefined operating systems onto remote machines; including services, configuration, packages and data. In the past I've used Ansible …This week I learnt (Week 33, 2021)
SVG supports SMIL animation — no JavaScript or CSS
SVG can use SMIL animation elements such as
read more<animate>
and<set>
to create declarative animation/interactivity. This allows you to dynamically change attributes like position, opacity, fill and CSS class. These features seem very widely used, but would be handy for a …Talks I've watched (March 2021)
Emily Ashley: 7 Falsehoods Programmers Believe about Place & Time
Emily described how the human side of collecting and visualising time-based data is more complicated than you might think, highlighting issues like varying precision where some data might have a year only, or some might be ordinal where some event happened …
read morePractical Clojure/Java interop, CSV parsing with Apache Commons CSV
One particularly powerful aspect of Clojure is that it allows you to use Java features without actually writing any Java. And the best way to get my head around the Java interop features is to do a practical example; something like I'd do for work. And as far as examples …
read moreDisabling Django's password strength checking for development
Django 1.9 comes with a feature that enforces strong passwords. It's an excellent security feature, but password complexity is not what you want in development. Here's how to turn the feature off to allow simple passwords.
It goes like this. You've created a new database, run the migrations and …
read morePython, FTPS and mis-configured servers
Today's project involves automatically uploading electrical metering data to an FTPS server (explicit FTP over TLS, otherwise knowns as ESFTP). Shouldn't be a problem, since Python supports FTPS out of the box. Only it doesn't work. Here's the code:
read moreimport ftplib ftp = ftplib.FTP_TLS('host', 'user', 'password') ftp.set …
Angular eats my default form values
Today, AngularJS isn't doing what I expect. I've auto-generating a really long form in Django, and adding
ng-model
attributes so I can summarise the form. Unfortunately, Angular is overwriting my defaults. Here's a shortened example:read more<html> <head> </head> <body> <form ng-app="testApp" ng-controller="TestCtrl"> <select name="colour" ng-model="colour"> <option …
Bruising first experience with ClojureScript
"Bruised" is a little how I feel about my first experience porting a program to ClojureScript — configuring production builds has a few traps for newcomers. That said, I am very pleased with the results and excited to do more working with ClojureScript.
My Dad is a soil conservation officer with …
read more