Minecraft Server

Here’s a minecraft server: minecraft.deadbeef.codes Feel free to join if you like - it’s completely vanilla survival.

February 17, 2020 · Steven Polley

Restic - Backups Done Right

I’ve been searching for a file-level backup solution that ticks all the boxes, specifically: Efficient - something that only copies differential data when performing backups Secure - Encryption of data at rest and in-flight Deduplication - Only store blocks of data once and use pointers to reference it Storage Provider Support - Ideally NFS out of the box or even rsync, but hey if it supports the typical cloud providers too that’s a bonus Trustworthy - Ideally free and open so that I can audit the source Easy - I don’t want to invest an hour learning how to use it at scale Ideally free Man, let me tell you - there are not a lot of options out there that meet all these requirements - but I stumbled upon restic, and it seems to be the best option I’ve come across....

January 26, 2020 · Steven Polley

TCP Keepalive

Question: How long can an idle TCP connection remain open? Answer: According to the standard, indefinitely, however, most implementations impose a connection timeout. TCP keepalive is a feature that isn’t defined in the TCP specification, as crazy as that might sound. RFC1122 under section 4.2.3.6 mentions keepalives instead. Excerpt from RFC1122 4.2.3.6 TCP Keep-Alives Implementors MAY include "keep-alives" in their TCP implementations, although this practice is not universally accepted. If keep-alives are included, the application MUST be able to turn them on or off for each TCP connection, and they MUST default to off....

January 25, 2020 · Steven Polley

Machine Learning Is Here - AutoML Text for the Average Human - Part 2

Part 1 Machine learning can seem like an intimidating subject to understand. Typically this would require being proficient at advanced math such as linear algebra, calculus, and statistics. However, even without knowing what goes on under the hood, it’s possible to make use of it to solve business problems. You don’t fully understand every aspect of your car, yet you drive it. The same goes for machine learning. AutoML is a product made by Google, which allows pretty much anyone to use machine learning because it looks at your data and builds a model automatically....

January 18, 2020 · Steven Polley

Potato the Bunny Stream

Hey all, I’m working on a scalable MJPEG streaming service for fun, and I’m using my two rabbits as guinea pigs. Their names are Potato and Spud. Currently, a single MJPEG stream is active; however, there are still lots more I’d like to do with this. Check it out here: OFFLINE PotatoTheBunny.com To Do Implement an MJPEG buffering proxy to enable scalability to many distinct unicast streams Implement live chat / commentary Implement clipping moments, triggered by a button on the website....

November 3, 2019 · Steven Polley

Machine Learning Is Here - And It's Here For All to Use - Part 1

Machine learning allows you to take expert judgment, bake it into a mathematical model which can be used to solve similar, but new and different problems. In this short video clip, I highlighted the fact that with little AI development experience, it’s entirely possible to use this technology to build a useful application that solves a real problem. This is a growing field because the potential for return on investment is essentially uncapped at this point....

June 30, 2019 · Steven Polley

Getting Started With Traefik and Docker

There are many ways to expose your containers to the outside world, but I’ve yet to come across something as cool as traefik! Whom am I kidding, there’s a lot of options out there that accomplish similar goals, but I found traefik to be the best at integrating them all into one package, and it’s yet to fail me. Throw any reasonable task at it, and traefik adapts - it supports a variety of integrations, what it calls Providers (see docs for all integrations) right out of the box....

June 26, 2019 · Steven Polley

Fallacies of Distributed Systems

False assumptions in distributed computing happen all the time, and they often have high costs. Peter Deutsch asserts that there are at least 7 false assumptions system architects and software developers are likely to make, and James Gosling later added an eighth fallacy. The network is reliable Latency is zero Bandwidth is infinite The network is secure Topology doesn’t change There is one administrator Transport cost is zero The network is homogeneous We’ll look through each one, why it’s relevant when designing and operating any distributed application, and explain what you should genuinely assume (the worst)....

June 23, 2019

Go-easyDNS

I needed to create and destroy records for Let’s Encrypt DNS validation, so I created some bindings for easyDNS in Go to allow CRUD operations on records. The bindings aren’t near complete, but it’s enough to manage DNS records. https://deadbeef.codes/steven/go-easydns Check it out, and open an issue if there are additional operations you’d like support for.

June 23, 2019 · Steven Polley

Mandelmap

Many years ago, I fell in love with the idea of computer-generated art. While 3D rendering is fun, geometric art is what I love the most. One of my first programming projects was a computer generated Spirograph, which was a lot of fun to create. Spirograph It’s been a few years since making anything like this, but in the past year, I taught myself Go (which is a great language, Rust BTFO)....

June 22, 2019