My name is Brenton Cleeland and I'm a web developer in Melbourne, Australia. Currently working as a Consultant at ThoughtWorks.

Brenton Cleeland

Posts, Projects & Talks

A smattering of content I've created over the last few years.

Most of my other talks and intro slides from the first 3 years of MelbDjango are availble on my account. I have a whole bunch of open-source personal projects on GitHub.

I post updates down below
Which sometimes post to @sesh on Twitter

Starred in March 2018: Block Facebook, deploy to AWS, play beats in Python, delete Redux and enjoy some triply visuals

Again with the stars, and again with posting this nice and late the next month.

Here's a few projects that caught my eye in March.


Not a new one but a very important one. Steven Black's hosts file provides a tailored list of hostnames to block using your /etc/hosts file. In the age of websites using third-party tracking services the simplest way to ensure your privacy is to never let your computer communicate with known trackers. It only takes a couple of minutes to completely block Facebook and others from tracking you across the web.


Ever needed to play audio in a Python project? py-simple-audio enables just that in an incredibly easy way (simple, even?). If you've ever tried to play audio with PyAudio or PyGame you've run into the same dependency nightmares I have. To keep things simple it only supports WAV files – which is plenty for a lot of use cases (including a simple drum machine that I made last month).


Apex's up service launched last month and promises to deploy highly scalable, serverless application to AWS "in seconds" from you command line. It already supports a multitude of languages including Python and Node.js and intends to be cloud agnostic (though, only AWS Lambda is supported right now). I'll be using the OSS version of this to deploy a Django project ASAP, the paid version is $20/mo and offers things like instant rollbacks and encrypted secrets.


Flux/Redux takes quite a while to get your head around when you jump into the React world. unstated removes the "all your state in one place" concept and builds on top of React's existing context patterns to share state between components. Unstated introduces Containers, Subscribers and Providers to manage state closer to the Components than you would in a Flux-like architecture. It's an interesting departure from the traditional "React way" and seems to be gaining a lot of traction.


Finally, a fun one: pixel-synth is a lo-fi video synthesiser written in Javascript that runs in your browser. There's a demo online and the visuals are fun and Trippy.

That's it for now. I'll be back in May to talk about some fun discoveries in April. Then I'll be heading to Germany for DjangoConEU – can't wait!

Starred in February 2018: Making HTML parsing easier, a better Jupyter experience, Winamp in your browser, some creating image resizing & a bunch of quick Python examples

So the monthly thing is still happening! It's just a few weeks late. Hopefully more on time for March :)

kennethreitz / requests-html

Kenneth Reitz with another great Python package that will no-doubt make thousands of developer lives easier. requests-html provides a much simpler interface for the sort of web-scraping a lot of Python developers would lean on beautiful-soup for. It has built in support for JQuery selectors, XPath and Javascript execution.

Hard not to drop everything and play with this one!

jupyterlab / jupyterlab

Jupyter Lab is the next iteration of the amazing Jupyter Notebooks and has recently been released in beta. It provides a web-based interface into an interactive Python shell. Like notebooks, these can be saved and shared with others, and have become incredibly popular in the academic community.

Next time you want to play with a new Python package (like maybe requests-html) fire it up in Jupyter Lab.

captbaritone / winamp2-js

Not a lot to say here, other than the fact that it's a fully-functional Winamp clone written in Javascript. If you used Winamp in the early 2000s this will surely bring back memories! You can drag and drop your MP3 collection into your browser then re-arrange tracks with the playlist manager. It even has support for skins!

This one really whips the llama's ass.

esimov / caire

Caire, or Content Aware Image Resizing Engine, is an implementation of a seam carving algorithm for image resizing. Not sure what that means? Me neither, but this allows you to crop and enlarge images while keeping the content looking relatively normal... Check out the examples in the repository and you'll understand the power!

kriadmin / 30-seconds-of-python-code

Based on the popular [30 seconds of Code][30sec-js] project using Javascript, kriadmin's 30 Seconds of Python Code is a great resource for anyone learning Python. It's full of easy to grok examples of common programming tasks, written in idiomatic Python.

Cool, that's it for February. Back in a week or two with a list of interesting projects from March!