Skip to content

Colin Webb

FFmpeg via Docker

I have previously written about using FFmpeg to convert H264 into MP4, running in a Docker container.

Running desktop applications in Docker negates the need to install anything, and isolates processes more effectively than something like Brew would. I needed to use FFmpeg again this week, and so spent a little bit of time setting it up properly - using Docker. Jessie Frazelle wrote a post in 2015 named Containers on the Desktop that was the inspiration for doing this.

Solving Slow Tests

Everything has a cost. Some costs are obvious. Money costs, time costs, overhead costs. Most, but not all, apply to writing tests for your software.

Rebooting AI - Further Reading

I recently read Rebooting AI, as book discussing how the recent focus on Deep Learning as the path towards Artificial General Intelligence is flawed. It was a good read, and made many interesting points. It left me wanting to learn more about other areas of AI, and luckily there was a 'Suggested Reading' list at the end.

Thoughts on Ansible

I like Ansible, but it has flaws. I'm going to assume you know what Ansible is, and that you have used it before.

Basic Ansible is amazing, compared to the alternatives. When the alternative is half-baked bash scripts that rely on special environmental state, and obscure notation that is used infrequently, it is not hard to better it. I've used other automation tools too. Puppet is the other automation tooling that I've spent considerable time with. Puppet and I did not agree with each other as it required me to learn hundreds of special syntax rules almost immediately.

Hakyll Live Reload

I use LiveReloadX to automatically reload the browser as I work on my Hakyll-generated blog. LiveReloadX, and most other automatic reloading utilities work by watching the file system and notifying something in the browser to refresh the page.

Higher Kinded Play Framework

Higher order functions are functions that accept other functions as parameters. Higher kinded types are types that can accept other types as parameters. In Scala, the syntax F[_] is used to express that F is a higher-kinded type that can accept any type.