(sort of) First Class Classes in C#
It seems, at first, that C# doesn't have first-class classes. But ...
A Canticle for Diff3
A brief and not necessarily totally accurate history of diff3
Apple Magic Trackpad for Ubuntu Linux 10.10 Maverick
(rather out of date)
Basic Mobile App Architecture
I want to discuss some weirder things on this blog, but I think it'd be a good idea to start off with an overview of how to build a very simple HTML5- or Native App friendly architecture.
BlueSMiRF Bluetooth HID Module
Getting data onto curmudgeonly devices
CQRS for Blue-Green Deployment
Bringing databases into the Blue-Green Deployment process by using CQRS and idempotent work queues.
CSS Buttons for Native Apps
Using CSS to make nice looking buttons for Native Apps (using PhantomJS)
Ciril: Cubic Inch Robots in Labs
A project to create mini robots for education purposes
Comments On More Trickiness With SSH
the only useful blog post comments I ever got before I turned them off forever
I like the idea of ephemeral, immutable servers in light containers but what I really want is to put the entire state in a Git repo ...
Conferences in 2017 ...
Conferencing continues in 2017 ... LinuxConfAU, PyConAU and perhaps YOW
Credit Gateway Policies
Deserialize / Alter / Serialize: an Antipattern?
I was talking to \$PERSON from \$BIG\_COMPANY the other day, and they happened to mention that around 80% of their CPU time was spent on serializing and deserializing data ...
Django REST Framework
Django REST Framework: The Good, the Bad and the Ugly. Presented at MelbDjango 0.9 on 6 Feb 2014
ESP32 Capacitive Sensors
The ESP32's capacitive sensors, and how to use them from MicroPython
FastCGI and Memcached, all in C
Mostly, getting stuff done fast in the web world requires doing things in parallel. However, every now and then you bump into a problem where this just doesn't work ...
Fibonacci Regex Perversity
Repeated substitutions are Turing Complete
FloBot: A Graphical Dataflow Language for Robots
Working on a graphical dataflow language for educational robotics.
Flobot: The Journey Continues
Flobot gets a rewrite into MicroPython, a new hardware platform and a lot more discussion ...
FreeTDS without udp 1434
a quick note for anyone trying to do FreeTDS through a tunnel or a firewall pinhole
Functional Parallel Programming
GCC 4.6 linker switches
Hyperterminal “send text file” eats ASCII LF / 0x0A
Imagine There's No URLs
L2IoT ... IoT Networks without IP
IoT Networks without IP? Madness. But ... maybe ...
LinuxConf 2016 in Geelong
Linuxconf 2016 was held in Geelong ...
LinuxConf 2017 in Hobart
I've been to LinuxConf before and I've been to Hobart before but this time I'm going to LinuxConf in Hobart, for the Open Hardware Miniconf
LinuxConf 2018 in Sydney
Talking MicroPython at LinuxConf in Sydney!
MAC address resolution
Why can't I just ping this widget?
Make your own Client-side Certificates with a Pseudo CA
Making "data" URLs
MicroPython Sprints at PyConAU
Want to sprint on MicroPython?
MicroPython with WebUSB!
Improving the out-of-box experience for MicroPython using WebUSB
I've been doing a lot of work on MicroPython ESP32 lately ...
some utility programs to copy and mount MicroPython filesystems from your computer
More Trickiness With SSH
HTML5 Canvas reminds me of the good old days of the `APPLE ][` ... this article looks at how to do some interesting things with Canvas and numeric.js Splines.
Multiple Inequalities in Google AppEngine
MySQL: Foreign Keys between InnoDB and MyISAM
Accidentally putting a foreign key between an InnoDB table and a MyISAM table results in an error "Cannot add or update a child row: a foreign key constraint fails"
New New Static Blog Site
This site is now on Github Pages.
New Static Blog Site
This site is now created using Pelican and hosted on Amazon S3.
Nginx proxy_pass to upstream Django always giving 400 Bad Request
I was setting up Django using Gunicorn behind an Nginx proxy the other day, and hit this problem which took a while to find an answer for ... all Django would do was return `400 Bad Request`
Improving on the design of the NodeMCU modules ...
Unicode? Too simple! Try Omnicode!
OSDC 2014 Gold Coast
My presentations at OSDC 2014 on the Gold Coast!
OSDC 2015 Hobart
OSDC 2015 "Talking with Leviathan: Interfacing Open Source to SAP"
Oculus Rift DK2
The Oculus Rift DK2 ends a 20 year wait for consumer VR ...
On Conferencing ...
So far in 2016 I've been to LinuxConf, PyConAU and Compose, and if it hadn't been the same weekend as PyCon I'd have gone to DDD as well. I've also been along to plenty of smaller meetups including MelbDjango and BuzzConf Nights. So why all this relentless conferencing?
Postgres without SQL
So some ludicrous proportion of SQL these days is generated by one ORM or another. And all the cool kids have decided to move on to the next thing anyway. So that got me thinking ... when we talk to an SQL database through an ORM, we're turning a bunch of operations on objects into a human readable query language, then turning that back into a query plan. *Why?*
Programming for Startups
PyCon 2016 Melbourne
PyCon 2016 in Melbourne ...
Python in the Browser
Quick guide to setting up TortoiseCVS / TortoiseSVN
Rocket Surgery at Buzzconf 2017
A build log for the "Rocket Surgery" project at BuzzConf 2017
ShellShock: 'bash' vulnerability
A vulnerability in 'bash', popularly called 'ShellShock' has been all over the news this week. I've spent a lot of time talking to clients about it over the last couple of days, and checking up on systems, so I thought I'd write some of those conclusions down.
Some thoughts on AWS
Squawk.CC -- The true story
Distributed Disruption of Surveillance ...
Squilla: Serving up Stored Procedures
A (somewhat sketchy) connector between HTTP and postgres stored procedures ...
Static Sites using jQuery to appear Dynamic
A couple of people have mentioned that while they like the idea of offloading their site to a CDN, they're not ready to have their site look like some relic from 1999 ...
Static vs. Dynamic Sites
The current storm in a teacup seems to be about static vs. dynamic website design. As usual, this is a False Dichotomy ... actually, there's a whole range of options to explore.
SyntaxError: keyword argument repeated
Talking MicroPython at PyConAU 2017 ...
PyCon 2017 in Melbourne!
Taming "cache.manifest" Caching
Testing Django Performance
I presented at the MelbDjango user group on 11 July 2013, here's the slides and some quick scribblings re: the content of my talk, and the feedback from the Djangonauts present.
The Internet of (Not Shit) Things
Trying to better understand the problems of the IoT by actually listening to its detractors.
The Internet of (Not Shit) Things (at IoT Aus)
I did roughly the same talk again for IoT Aus
The Internet of Toys: ESP8266, Flobot and Ciril
The Selfish Secret: Logins Without Passwords
Tranquil is a protocol framework which is designed to be very simple and very extensible.
Try: Except: Pass
A short rant about a common beginner's mistake in dynamic languages
VRML: Very Odd.
Verifying Apple's Signed Receipts
Apple uses a signing mechanism for in app purchases, but its behaviour is a bit weird. This post outlines how to confirm the validity of Apple's receipts in Python.