RSSAmplifier

Blog

Home on elder.dev

Recent content in Home on elder.dev

elder.devRSS feed ↗22 posts

Latest posts

Hiking With Your Dog

Bobby loves hiking

Lazy Loading YouTube Videos

ⓘ Note First, let me acknowledge up-front that this is neither a novel problem nor a novel solution. This is simply what I cobbled together to fit my own needs, I thought I’d share about how this went / works. Why Lazy Load? YouTube is a pretty ubiquitous for video hosting and very easy to embed. For most videos you can just open the video on youtube.com, click “share”, click…

Open Source Virtual Background

With many of us around the globe under shelter in place due to COVID-19 video calls have become a lot more common. In particular, ZOOM has controversially become very popular. Arguably Zoom’s most interesting feature is the “Virtual Background” support which allows users to replace the background behind them in their webcam video feed with any image (or video). I’ve been…

Digging Into etcd

What Is etcd? etcd, /ˈɛtsiːdiː/, per the official site is: A distributed, reliable key-value store for the most critical data of a distributed system Per the FAQ etcd’s name means “distributed etc directory”. With etc being a reference to the Unix directory for system-wide configuration /etc, and d being a reference to “distributed” 1. The d is perhaps also a pun on…

Self-Driving Debian

For my home server I’ve come to appreciate using it rather than maintaining it 😏 After replacing some parts starting over I really wanted it to be fully “self-driving” to the extent possible – primarily meaning totally unattended and automatic updates. No manual maintenance. Automated Updates Debian 10 “Buster” 🐶 ships with the unattended-upgrades package…

California is Beautiful

Just a few select photos from a short trip away from it all …

Writing Safer Bash

Bash scripts are a really convenient way to write simple utilities. Unfortunately many bash scripts in the wild are littered with bugs. Writing reliable bash can be hard. I’ve been reviewing and fixing a lot of bash while working on cleaning up the Kubernetes project’s scripts and wanted to collect some tips for writing more reliable scripts. Use ShellCheck ShellCheck is an excellent…

Avoiding Burnout in Open Source

This post may come off a bit ironic, coming from someone who burned out pretty hard recently, but I received some really good advice and I hope it can help someone else. Some of the advice I received: Set boundaries, reserve time for yourself Don’t feel guilty for not responding right away. Even if you work on Open Source fulltime, don’t let it become a “second job”, take…

Mapping Appalachia

✎ Update It’s worth noting that I did not wind up playing Fallout 76 much more. After the B.E.T.A. my interest fell off quickly as the locations and quests failed to be as engaging for me as previous Fallout games. I do not recommend Fallout 76 to anyone. October 30th B.E.T.A. (Break-It Early Test Application) During the first B.E.T.A. some places I discovered along my travels were:

GitOps All The Things!

You should use GitOps for everything. Everything. GitOps is a recent-ish term for: use declarative configuration for your infrastructure (e.g. Kubernetes) version all of your configuration in source control (I.E. Git) use your source control to drive your infrastructure (I.E. use CI/CD = Ops) GitOps: versioned CI/CD on top of declarative infrastructure. Stop scripting and start shipping.…

Slackmoji Anywhere

I use slack a lot to communicate with other Kubernetes contributors, and I’m a fan of the emoji reaction feature for reacting to posts without notifying everyone in the group. Positive emoji responses in particular are a simple way to acknowledge messages and make discussions more friendly and welcoming. slack emoji reaction example (thanks dims!) A particularly fun part of this feature is…

Brewing With Kubernetes

My coffee pot is now a node in my home Kubernetes cluster, and it’s awesome. More specifically the Raspberry Pi wired to my CoffeePot controller now runs on Kubernetes thanks to kubeadm in a cluster with the node running my site. I set up a public live status page displaying all of the sensor data as well as the last update time, with control restricted to users on my local network.

Migrating My Site to Kubernetes

Previously when I brought my my site back online I briefly mentioned the simple setup I threw together with Caddy running on a tiny GCE VM with a few scripts — Since then I’ve had plenty of time to experience the awesomeness that is managing services with Kubernetes at work while developing Kubernetes’s testing infrastructure (which we run on GKE). So I decided, of course, that it was…

Prow

Prow - extended nautical metaphor. Go Gopher originally by Renee French, SVG version by Takuya Ueda, modified under the CC BY 3.0 license. Ship's wheel from Kubernetes logo by Tim Hockin. The Kubernetes project does a lot of testing, on the order of 10000 jobs per day covering everything from build and unit tests, to end-to-end testing on real clusters deployed from source all the way up to ~5000…

Automata

JavaScript is required to view the demos in this post.Please enable JavaScript. I am fascinated by automation, both mechanical and software. A particularly interesting form of automation is Automata. While the earliest usage of the term referred to mechanical devices, in Computer Science ‘automata’ and automata theory include abstract machines instead of physical devices. Where a…

Hello Again

Hello World! I am now the proud owner of bentheelder.io. If you are curious, you can find the page source for the new site here, and the scripts used to set up the GCE VM here. The new site is also now on Cloudflare for performance and security. The old site will be redirected to this one soon, and what little content it had has been preserved here. The pages have been reformatted to match the new…

CreatureBox

CreatureBox is a simple evolutionary obstacle avoidance demo I wrote inspired by studio otoro’s awesome creatures avoiding planks. I wanted to build something similar for fun and try out golang’s Go mobile project as well, so over the break between semesters I took a little time to write one. gomobile The first thing I did was get gomobile up and running, and create a basic main loop…

Rust Hotswap

⚠ Warning This post is old! Rust has changed a lot since this post was written, it may not still be accurate. Mozilla’s Rust language has just reached 1.0 alpha. I’ve been learning it off and on for a while now, and I’m quite happy to see the breaking changes slow down. As part of learning rust I’ve played around implementing things that would be normally done in c or c++;…

404 Page not found

About Ben

My name is Benjamin Elder, though I am frequently known as Ben / BenTheElder. I enjoy hiking, reading, gaming, and building things. I love my wife and my dog. I want machines to help people do more and focus on what really matters. I am an open source software developer. I help maintain Kubernetes and the project’s infrastructure. I am a member of the Kubernetes Steering Committee and a…

KubeLife

This automaton requires that you enable JavaScript. pausereplay Inspired by the Kubernetes 1.12 Release /* generic snippet to prevent button focus on click*/ function buttonMouseDown(e) { e.preventDefault(); } function setupButtons() { var buttons = document.getElementsByClassName('button'); for (i = 0; i interval) { then = now - (delta % interval); renderFunc(); updateFunc(); } } render(); } var…

Speaking

I’m a novice speaker with a few KubeCon talks / workshops and a couple of smaller internal (company) talks under my belt. A complete list of my talks is maintained below, with recordings when available. KubeCon NA 2023 The Steering Committee did our usual AMA session at the Kubernetes Contributor Summit (not recorded), I also co-spoke with Arnaud Meukam about SIG K8s Infra in the maintainer…