RSSAmplifier

Blog

Pointless Ramblings

Recent content on Pointless Ramblings

pointlessramblings.comRSS feed ↗44 posts

Latest posts

2025

Past years: 2024 Another busy year, pretty much entirely dominated by the new house and arrival of second child. January/February/March/April Nesting in the new house. Spot of skiing and a trip to visit family in Abu Dhabi. More house stuff, everything takes at least twice as long as planned. But we started putting our own stamp on the place. Crunch time at Beeper - heads down on local bridges…

Adventures with Elasticsearch

At old work we did some pretty wild things with Elasticsearch. It’s been a few years for my memories to rot but roughly we’re talking thousand node clusters, a petabyte of data and billions of documents. We didn’t just do search though, nor just metrics. We combined the two together so you could generate metrics over time filtered by many fields including paragraphs of text. Documents were large…

Build a Thing

I recently started building a thing to help me track, manage and store content and links. It’s somewhat undefined, this is my note to self that kicked it off: not really sure what this is, but been on the mind for years really, some kind of totally private wiki/collection space. It turns out building a thing just for myself is immensely satisfying. I can write scrappy code and hack features…

2024

As I age the desire to write things down has (re)grown, particularly yearly notes. My dad has been doing this for years in his private photo albums, perhaps that’s where it comes from. Or maybe a natural anti-memory-fading mechanism. Anyway: 2024 was pretty eventful. Janurary - recovering from the Beeper Mini adventure and collapse in December. February - Enjoyed some good skiing in France and…

2024 Refresh

I have refreshed the design again, instead of writing anything. But now there’s more colors (tap or click to copy): #F2318D #318DF2 #F29632 #0DCA70 An improved info page, a (very) WIP now page and at some point an updated work page! Before/after shots:

Everything is an Abstraction

Literally everything is an abstraction, and I’m not just talking about software. This post presents an ominous future. in which no one actually knows how to build things from the ground up. I’m inclined to partially agree. Let’s talk about Kubernetes, since it’s where I spend most of my ops-y time currently. How does one setup a Kubernetes? Well any documentation or tutorial you read will almost…

Do Fewer Things Better

Becoming a father has radically changed my life (yeah, duh). In particular time is now at an extreme premium and lower priority projects get less, or zero, input. This blog, pyinfra, my ever growing inbox. I have a bunch pending ideas I’ve paused or permanently shelved. This shift has been surprisingly free-ing. I always had too many things on the go in parallel, each inching forward at a snails…

Release Anxiety

I build pyinfra, a tool for deploying infrastructure using Python. I recently not so recently released v2.0 and it was months late for absolutely no reason. Enter release anxiety. What if someone PRs a cool new thing tomorrow? What if there’s undiscovered bugs? What if documentation is missing? There is an endless stream of anxiety inducing what-ifs floating in my head in the run up to a release.…

A Quick Note on Analytics & Ad Blockers

I used to be fixated on the idea of tracking as many hits as possible. Figuring out ways to get around ad blockers or capture stats via the server logs. I realised recently that this is simply unncessary bollocks. It’s all meaningless vanity stats. Good analytics tracking isn’t about capturing the number of users on your website but the behaviour of the users, such that you can…

2021

It is somewhat ironic that my last post of 2021 is also my first. As we appear to be rapidly going back towards restricted life here in the UK it’s a good chance to reflect on the highlights from this last year. What a year it has been! Absolute top highlight - I got married to my beautiful loving wife, it was a properly fantastic day in late summer and meant the world to both of us.

Replacing ReadTheDocs with GitHub

I’ve been putting significant effort into improving the pyinfra documentation as of late. This has meant many builds via, and much waiting on, ReadTheDocs. I’m a huge fan of the service, but recently it has felt like build times have slowed to a crawl. I already use GitHub actions/pages for this blog and have been thoroughly impressed so far, so I set about figuring out how to move the…

Migrating this Blog to Hugo

This post marks the first release of this blog built using Hugo; hopefully nothing looks out of place! Hugo replaces my own Luapress that was in use since 2013. Hugo brings more functionality enabling me to do more interesting stuff without having to implement it myself. A blogroll, link summary posts or even a shit company rant section (another place to rant alongside Twitter). Back on topic,…

On the Consolidation of the Web

In recent years, the web has been consolidating. From the servers to the apps, a growing majority of the web is controlled by a small pool of companies. When AWS was founded in 2006 I was just starting out with my first VPS, running this blog on WordPress (the good ol’ days!). For the last 10 years I have part-run a small VPS (“cloud server”) host called Afterburst. Throughout…

JavaScript vs Logs

A war has been raging over the last few years between consumers and advertisers. A never ending cat and mouse game where each side tries to out-do the other. It’s tracking vs blocking, clicks vs privacy, readers vs publishers. Gone are the days when adding the GA/et-al snippet to your blog captured almost every user. My theory is that, for tech oriented blogs, GA misses a significant portion…

Why You Should Try pyinfra

These days tools to automate, provision or configure servers are dime a dozen. There’s Puppet, Chef, Salt, Ansible and so on. They all suffer from “over abstraction” - each has it’s own syntaxes and debugging processes. This is far removed from a manual provision over SSH, where feedback is instant. These tools work a dream, until they don’t. This is why I built pyinfra. pyinfra is what you’d get…

Over 10 years of Pointless Ramblings

It’s the end of 2018 and I’ve yet to write a single blog post. This was originally titled 10 years of Pointless Ramblings which became 11 and now I might as well call it 12. I bought the domain pointlessramblings.com over 10 years ago(!) when I was first learning the basics of web development. The endless desire to tinker with the site led me to my degree and then my career; from html…

Why Always Electron?

Electron is fast becoming the go-to solution for non-desktop developers who want to build desktop apps. Say what you want about that (I’m doing it!) but, for better or worse, the trend of using web technologies for desktop is here to stay. Unfortunately Electron comes a whole load of bloat. They tend to use high amounts of CPU and memory in return for sub-native performance. Having each app…

What Mailchimp Considers an Email Address

Recently I’ve been working with Mailchimp’s API. The task was simple: to write a script to keep in sync an internal user list with a Mailchimp mailing list - simple stuff. I set about writing the thing and, bar for the fairly regular API timeouts (don’t batch >500), all was good. And then I ran the thing. After a couple of hundred users the script encountered an error -…

2017

Dev Write more (blog posts) Push new blog headers every month (incl. December!) Learn vue.js Launch Service Canary Build new pyinfra connectors and modules Continue Afterburst growth and re-launch KVM Update Luapress HTTPs every site I manage (incl. this one) Personal Read at least one (non-technical) book Reduce late-night screen usage -> sleep better Walk more Hopes Brexit stalls Trump fails to…

Agentless Everywhere

In a world where everything must be distributed across multiple servers, datacenters and continents the task of managing & monitoring server state has become significantly more complex. Hundreds of solutions have spawned in recent years - and in general these tools can be split into two groups: those with, and those without, agents on the target servers. I’m writing this post to argue in…

Why Always Docker?

I love Docker. I’ve recently spent a lot of time learning about both Docker & Kubernetes. Combined with stateless containers they provide fantastic scalability, service discovery and near-instant deploy times (excluding initial image build!). There is a trend, however, of using Docker containers for everything, and this makes no sense to me. . Let’s look at an example - running a…

Luapress v3(.2)

Recently static website generators have been gaining lots of attention. Inspired by this I have been working on a new major Luapress version, targetting some of the annoyances I find when building this blog with it. A couple of weeks ago I released v3 and two additional minor versions; this post runs through some of the more exciting features and changes: Environments With v2, you could pass in a…

selected.js

selected.js is a dependency free <select> replacement. It supports both single and multiple select boxes, has a tiny JS & DOM footprint and is incredibly easy to style. Option one Option two Option three Option four Option five Setting this up is as simple as: <link type="text/css" rel="stylesheet" href="selected.min.css" /> <link type="text/css" rel="stylesheet" href="selected-light.min.css" />…

Querying 50k Gameservers in 100 lines of Python

A long while back I built a built a web app which provided search and aggregated stats for Valve gameservers. At any time there are ~50k of these registered with the &ldquo;master server&rdquo;, but only 20-40% of these are accessible publically. The original collector was written in PHP and would take about 20 minutes to discover and collect stats from the gameservers. I have rebuilt the…

El Capitan for Developers

In spite of the risks, I always install the latest OSX betas on my personal laptop/dev-machine. This always brings a whole host of compatability issues and broken things, but fixing/discovering these is all part of the fun! This post is a summary of issues/solutions found so far - hopefully it&rsquo;ll be of help to someone. I shall keep updating as I discover more. /usr/bin /usr/bin is no longer…

Benchmarking in Virual Machines

Since the earliest programming days hackers have benchmarked and compared pretty much every language/software/stack out there. These benchmarks are often shared with the public, which allows other hackers to make more informed tooling decisions based on their specific problem. Although this is an awesome feedback system, I worry that recently the quality of benchmarks has been affected&hellip;…

Switching to Windows Phone

A couple of months ago, while trundling along the Circle line at snails pace, it dawned on me that I rarely use more than around 5 apps on my iPhone. At the time, I was checking my emails in Mail and had just finished reading the latest blog posts on Flipboard. A couple of phone calls, a text and quick snap with Autostitch brings us to 5. Given the massive bias towards wall-of-apps style phone…

Democracy is a Farce

Democracy, in the forms it&rsquo;s employed across the globe, is bullshit. The concepts and ideas are great, but when it boils down to the nitty gritty - actually running a country in it and it&rsquo;s people&rsquo;s best interest - the system fails. The reason for this is because politicians don&rsquo;t do what&rsquo;s best for the country and voters, they do what they believe will gain them a…

Learing to Chef

Over the last three months I&rsquo;ve been learning how to cook with Chef. Prior to this I have stuck faithful to bash scripts for provisioning servers, and Chef/Puppet/Ansible/etc all claim to make this job a whole lot easier. Having now used Chef extensively, I can for sure say it does not make the job of deploying easier. My first encounter with Chef was when working in a Vagrant box to deploy…

pngquant vs pngcrush vs optipng vs pngnq

A couple of days ago I saw pngquant appear on Hacker News. I&rsquo;d never really looked in depth into image compression, and after reading up on the subject I scanned through the comments on HN, discovering a number of alternative png (and other formats) optimisers. So I decided to benchmark/compare pngquant, pngcrush, optipng and pngnq. Setup Images: I tested a number of different images, some…

Work Life Balance

The work-life balance has been discussed a thousand times over; there are hundreds of articles telling you that a good balance is essential for a healthy, fulfilled life and that we should all be careful of becoming overworked and stressed. In many ways I couldn&rsquo;t agree more, of course these things are essential and a good balance will improve both work and life sides of the equation. My…

Learning by Working

I recently started working for EDITD which I am really enjoying. At the same time, I&rsquo;m learning a lot. It&rsquo;s been a crash course in a range of subjects; Python, Ruby, Chef, Git, AWS, Mongo etc. My thirst for knowledge is definitely being filled, I&rsquo;m going to learn a huge amount very quicky. Until and even during University most of my &lsquo;programming knowledge&rsquo; was self…

Introducing mdoc

View on GitHub / View Demo Over the last two days I&rsquo;ve been writing a small PHP-powered markdown based documentation/wiki/website &lsquo;generator&rsquo; called mdoc. Inspiration / Why I recently set up Daux.io to document Luawa. Daux looks very nice and runs well, however the UX is flawed in that the left navigation column takes up way too much space, leaving a (too) thin column in the…

Starting a Business for $250

In March 2010, age 18, I rented a low-grade server from Hetzner for just $214/month which I borrowed from my parents (I was living in a Canadian snow/party town on a housekeepers wage). The idea was to sell these OpenVZ VM&rsquo;s I had been renting elsewhere to host a few projects. At the time I named my business Fanatical VPS (now Afterburst). I also had very little knowledge about managing…

My PRISM Fallout

So we&rsquo;ve all read about the PRISM scandal and we know that the NSA have some kind of access to our data from a number of large internet based companies. Although I have &rsquo;nothing to hide&rsquo; I still believe I have a right to privacy. It scares me that a huge, overreaching and seemingly above-the-law agency from another country can start digging around in my personal data. My mistake…

Learning New Things

The first two years of University turned out to be relatively simple (to be honest I was in the lucky position of having covered most of the material prior to arriving). But this third and final year, now just under than two months from completion, has stepped up to another level. I used to believe PHP was the greatest thing ever. Fool I know, though I believe it definitely has its uses.

Lua vs Node vs LuaNginx

As part of my final year dissertation I&rsquo;ve been learning about building web servers & apps using Lua, LuaJIT, LuaJIT+Nginx & Node. Because it&rsquo;s relatively simple to implement a basic HTTP server in each, I decided to run some benchmarks to compare them. Setup/Notes Nginx+LuaJIT has 1 worker process All three are &rsquo;non-blocking&rsquo; on IO operations Each is set to only write…

Welcome to Pointless Ramblings v2

For the last six years this domain has been serving up my blog using Wordpress as the backend. Ignoring a couple of re-installs, today is the first day it&rsquo;s no longer Wordpress. I was 16 when I started this blog, just starting to learn PHP. During these years the site has undergone six different designs I can find on archive.org. The site has always (and probably will always be) been more of…

Info

I am Nick Mills-Barrett, a full stack software engineer specialising in infrastructure and scaling backend services. I currently work at Automattic building Beeper. In my spare time I maintain a few side projects. I&rsquo;ve been blogging here at pointlessramblings.com on and off since 2006. I use this website as place to experiment with design which is something I enjoy greatly but am not…

iPhone to Lumia

My notes from trying out a Lumia 1020 for 20 days instead of my iPhone 5C. First Day Camera is, as expected, fantastic Battery life: Lumia > iPhone Lumia is MASSIVE, but feels nicer than the iPhone Yellow Camera Low-light test & cropped (left Lumia, right iPhone): Lumia allows for shooting in RAW/DNG format, which is awesome (left auto-5MP from Lumia Camera, right photoshop-imported 35MP RAW):…

No Copyright

The content of the posts & pages on this blog are free domain. As are the HTML and CSS code. The sources are available in this GitHub repository. Third party images, code and design projects each have their own licenses.

Now

Moving house.

Ramble

Work

During the day I work at Automattic building Beeper, leading the infrastructure team. Lots of Kubernetes, Go services, bit of sysadmin. I also spend some of my spare time hacking on various code based projects. These are my current favorite in-progress projects: Babbleserv Babbleserv is a Matrix homeserver built on top of FoundationDB primitives. Language: Go Database: FoundationDB GitHub pyinfra…