The Curious Engineer

All blogs / DevOps / SRE / infrastructure

VADOSWARE

vadosware.io

Professional (software) yak shaving, writ large. No part of the software stack is left unshaven.

DevOps / SRE / infrastructureRustLinux / UnixSoftware / engineering practice

Posts
266 from 17 Dec 2012 to 28 Dec 2024
Posting
now and then
Kind
personal blog
Feed
https://vadosware.io/index.xml

2024 7

  1. Stop Using Merge Commits
  2. Fixing Pinentry With Emacs
  3. Yet Another IPC in Rust Experiment
  4. From Zellij to Tmux Back to Zellij
  5. Starting locally installed Postgres instances in 2024
  6. Getting Features to Show Up in Your Rust Docs
  7. A Year Hiatus with Rust and Webassembly

2023 4

  1. Building Custom Kernels for Kata Containers
  2. Fixing GPGME Error on Arch
  3. Makefile Tips: help text and preambles
  4. Software Sessions: Yak-shaving interview (2022)

2022 30

  1. Faster CI builds for Rust with pre-baked builder images and sccache
  2. PSA: Email Submission should be on port 465
  3. Tooling spotlight: direnv
  4. PSA: Getting __dirname and Package Information with ES Modules
  5. Introducing the Awesome F/OSS Newsletter
  6. The Preamble to Crypto might have just ended
  7. TIL: How to Import or Open .ics Files in the Calendar App (iOS)
  8. Remember the Firefox Phone?
  9. App Runner finally works on Apex domains
  10. Introducing pg_idkit: A Postgres extension for generating UUIDs
  11. Self-Hosted email is the hardest it's ever been, but also the easiest.
  12. Even Amazon SES Has IPs blocked by Spamhaus sometimes
  13. Was Service Catalog Redundant After All?
  14. Slonik is Awesome
  15. Why don't more people use Throat Mics?
  16. Building an interface (even if there's only one implementation) is unquestionably right
  17. Learning to Love the Plus Addresses
  18. Cool CLI: lstopo
  19. Installing Fluent Bit and Loki for lightweight logs
  20. A script for copying PVC data across StorageClassses
  21. cert-manager moved from Bazel to Make
  22. A Pattern for ENV in Sveltekit
  23. Lets call pre-launch market-validation pages 'prospecting' pages
  24. Thunderbird Autoconfig for your self-hosted email server with MTA-STS
  25. The Future of Free and Open Source is AGPL
  26. Upgrading a k0s cluster in-place from single-master to HA
  27. How to Install newer versions and bleeding edge ZFS
  28. How I Built LoginWithHN
  29. Starting 2022 with a Bang: Ceph on ZFS
  30. Infra Fun: Prometheus Broke My Haraka Installation

2021 33

  1. Everything I've seen on optimizing Postgres on ZFS
  2. New node who dis? DNS Issues and Calico Failures on a resurrected Node
  3. Handling your first dead Hetzner hard drive
  4. Using Baserow to power the landing page for NimbusWS
  5. Bare metal k8s storage: OpenEBS ZFS LocalPV + Rancher Longhorn
  6. How and why Haskell is better (than your favorite $LANGUAGE)
  7. Ansible tip: Variables from inventory file
  8. Automating k0s cluster backup with Ansible and SystemD
  9. Sometimes the problem is DNS (on Hetzner)
  10. So you need to wait for some Kubernetes resources?
  11. The Deployment Spectrum
  12. Wicked Landing Gear
  13. Novice Arch Pitfall: watch out for kernel mismatches (after system updates)
  14. Level 1 Automated K8S Deployments With GitLab CI
  15. Postgres Tip: Covering with primary key indices
  16. Paxosmon 2: The Paxos Journey Continues
  17. Years later, REST-ish Services in Haskell Part 4
  18. Setting Up SES With Pulumi
  19. Stuffing both SSH and HTTPS on port 443 with stunnel, sslh, and Traefik
  20. K8s storage provider benchmarks round 2, part 5
  21. K8s storage provider benchmarks round 2, part 4
  22. K8s storage provider benchmarks round 2, part 3
  23. K8s storage provider benchmarks round 2, part 2
  24. Automatically closing issues is violence
  25. K8s storage provider benchmarks round 2, part 1
  26. K8s Upgrade Sunday 03-21-21
  27. Serving a single file over HTTP with Rust and Go
  28. Ingress Controller considerations in early 2021
  29. Adding to the NodeJS Package Heap: async-wait-for-promise
  30. SADE: a pattern for Services as DOM Elements
  31. Stale kubeconfig breaking service to service communication with kube-router
  32. Back to Docker After Issues With Podman
  33. Right Sizing PM2 Clusters

2020 17

  1. Protect Your Eyes From Strain on Arch
  2. INCOMPLETE: Getting Started With Vue 2 (An Onion Guide), Part 1
  3. Improving security easily with Traefik and Kubernetes
  4. Downgrading to Kernel 5.8.9 to fix Bluetooth on Arch (2020-10)
  5. Cookie Authentication Without Nuxt Auth
  6. Bits and Bobs With Podman
  7. Rootless Containers in 2020 on Arch Linux
  8. A recipe for running containers in your Tape tests
  9. Upgrading Cert Manager From 0.4.0 to 0.16
  10. A Safer Price Type in Postgres
  11. Running containers for dependencies at will on Gitlab CI
  12. Announcing redis-bootleg-backup (rbb)
  13. A Servant API Testing Example From the Wild
  14. Updating From Traefik V1 to V2.2
  15. Setting Up Mailtrain on K8s
  16. Haskell exceptionfree-readfile library released
  17. 2019-12 K8s certificate expiration outage

2019 19

  1. Python E2E Test Config on Circle CI
  2. Running Zulip on Kubernetes
  3. Announcing Maille 0.1.1
  4. Starting my journey with the System76 Oryx Pro and Arch
  5. An Emacs Indentation setup for Java
  6. I don't (fully) trust the CNCF
  7. Kubernetes 1.15 upgrade (from 1.13.0)
  8. A couple talks on Postgres and Gitlab (June 2019)
  9. Count-Min Sketch in Haskell
  10. What is a Backend? A selective guided tour through terminology, approaches, and technology
  11. Comparing OpenEBS and Hostpath
  12. Ops Pearl: Managing Git Personas
  13. A Quick introduction to manual OpenAPI V3
  14. Setting Up Statping
  15. A Galaxy Scale Addressing Scheme for Compute Availability
  16. Ops Pearl: fast-forwarding a Git clone without a full pull
  17. Mithril SystemJS and ParcelJS Getting Started Guide
  18. Component Styling with CSS Variables, BEM-like class selectors, and some Tachyons
  19. Kicking the Tires on OpenEBS for Cluster Storage

2018 33

  1. Paxosmon: Gotta Consensus Them All
  2. Rest-ish Services in Haskell Part 3
  3. A small collection of Day 2 Vue Patterns
  4. How to get off Yahoo! mail
  5. Rhymote: a Remote for Rhythmbox
  6. REST-ish Services in Haskell: Part 2
  7. REST-ish Services in Haskell: Part 1
  8. Disassembling Raid on Hetzner Without Rescue Mode
  9. Using Gitlab Deploy Tokens With k8s
  10. Up and Running With Linkerd v1
  11. Running Untrusted Workloads K8s Container Linux Part 3
  12. Running Untrusted Workloads K8s Container Linux Part 2
  13. Running Untrusted Workloads K8s Container Linux Part 1
  14. Kicking The Tires On Fathom
  15. Hetzner fresh Ubuntu (18.04 LTS) install to single node Kubernetes cluster with ansible
  16. A Pattern For Component Based Program Architecture In Rust
  17. Trying (and failing) to get LXD running on Container Linux
  18. Securing Your Kubernetes Cluster
  19. Using Makefiles And Envsubst As An Alternative To Helm And Ksonnet
  20. Even faster rust builds in Gitlab CI
  21. k8s Container Linux ignition with rkt and kube-router
  22. SQLite Is threadsafe, parallel access safe, but I still want to extend it.
  23. Yet another cluster re-install after switching back to Container Linux
  24. Minimal effort build improvements and a GHC 8.2.2 upgrade
  25. The cure for impostor syndrome is knowing things
  26. Dedicated server rescue (RAID + Grub2 issues)
  27. Better k8s monitoring part 3: Adding request tracing with OpenTracing (powered by Jaeger)
  28. Switching From kube-lego To cert-manager
  29. Awesome Dev Tool: MailCatcher
  30. Better k8s Monitoring Part 2: Adding logging management with the EFKK stack
  31. Better K8s Monitoring Part 1: Adding Prometheus
  32. Fun with Gitlab CI
  33. Using Both Integrated And Discrete Graphics Cards

2017 61

  1. A reliable fix to Docker not keeping it's IPV4 address on Arch
  2. Adding (naive) email templating to my servant-powered haskell web application
  3. Custom registries in JSPM from CI
  4. Haskell build issues on Arch Linux (tinfo6)
  5. Adding a very naive in-memory cache to my Haskell web app
  6. Continuous Integration To Continous Delivery Haskell Project With Gitlab
  7. Zero To Continuous Integrated Testing A Haskell Project With Gitlab
  8. Switch From ployst/docker-letsencrypt to Jetstack's kube-lego
  9. Adding Sqlite Powered Fts Search To A Servant Powered Haskell App
  10. Update JSPM (SystemJS) + JSDOM + Vue testing integration
  11. Moving From Server Side Sessions To Client Side Session Tokens with Servant
  12. SSH tunneling using an intermediary computer
  13. Docker on Arch Linux - docker0 just doesn't seem to want it's IPv4 address
  14. Setting Up Piwik on Kubernetes
  15. Gandi 2017 Redesign
  16. Serving email on Kubernetes with Mailu
  17. Within seconds of using Pingdom I got email spam
  18. Kicking The Tires On Rancher 2.0
  19. Serving a HTTPS enabled application on Kubernetes
  20. Setting Up SSL Certs on Kubernetes
  21. Running a Database on Kubernetes
  22. Serving HTTP Applications on Kubernetes with Ingress
  23. Fresh Dedicated Server to Single Node Kubernetes Cluster on CoreOS, Part 3: Setting up essential Kubernetes addons
  24. Fresh Dedicated Server to Single Node Kubernetes Cluster on CoreOS, Part 2: Getting Kubernetes Running
  25. Fresh Dedicated Server to Single Node Kubernetes cluster on CoreOS, Part 1
  26. Static Binaries for Haskell: A Convoluted Approach
  27. Graylog as a hslogger backend in Haskell
  28. Ansible Is Awesome
  29. Stop Using React
  30. Revisiting E2E Testing With Tape (on a new project)
  31. End To End Testing With Hspec (Almost)
  32. Adding A Merge Patch Content Type To Servant
  33. Installing Python On CoreOS with Ansible (to enable Ansible)
  34. Quick And Dirty Forward-Only DB Migrations
  35. An easy fix for the diversity "problem" in tech: A 4-step plan starting with fully anonymized interviews
  36. Research Idea: Maintaining A Write Ahead Log For Application Runtime State
  37. Case Study: Building A URL Bouncer
  38. Trying And Failing To Expand Servant Cookie-Based Auth With Roles
  39. Stop Worrying And Use Gitlab
  40. LetsEncrypt Systemd Recipes
  41. Useful Boilerplate For PureCSS
  42. Adding Cookie Based Auth To Servant
  43. JS component-centric libraries and my rationale for considering MithrilJS
  44. Working with PDFs on Arch linux
  45. Getting started with servant, Part 2
  46. Getting started with servant (Part 1)
  47. Three month (coding) bootcamps are not enough
  48. Spotify's 2017 web app redesign
  49. Switching from Mocha to Tape and testing E2E
  50. Testing DOM with Mocha, part 3
  51. Using dockerized Ghost with local SMTP
  52. Issues with Thunderbird and Dovecot
  53. more testing with jspm mocha and vuejs
  54. Unit testing with JSPM (SystemJS), mocha and vue.js
  55. Using jspm, systemjs, and vuejs together
  56. Default docker settings on arch
  57. Moving from catalyst/fglrx to amdgpu
  58. Moving to Hugo from Wordpress
  59. EZ Wordpress instance with docker compose
  60. systemd service that runs docker
  61. docker nginx firewall postgres random setup notes

2016 5

  1. From zero to kvm docker application
  2. I moved all my projects to Gitlab, and you should too
  3. Arch Adventures: Changing the volume with the buttons on a Logitech G930 Headset
  4. Fx0 FirefoxOS device goes on sale!
  5. Using Mocha with JSPM

2015 17

  1. Arch Adventures: Installing Steam on Arch Linux
  2. Fixing emoji display in Firegraph
  3. A case for using Pure over Skeleton
  4. Building B2G (FirefoxOS) for a Nexus 5
  5. Rooting the Huawei (Softbank) 201HW/U9201L
  6. Absurdly useful tooling: entr + make (+ find)
  7. Arch Adventures: Hibernating to swap file
  8. Fun with Arch Linux
  9. Why is there a debate about ad-blockers at all?
  10. Using JSPM, ES6 React, and React-Router
  11. Who still fiddles with Samba in 2015?
  12. Emacs in daemon mode is awesome, when it properly loads your init config
  13. Firegraph v0.1.0
  14. WebAssembly, and the rise of transpilation
  15. Cache busting with SystemJS/Aurelia
  16. Bringing a “native” Instagram client to FirefoxOS
  17. VCFPorter v1.2 Release!

2014 19

  1. A pattern for organizing *DD tests in golang
  2. Small fix to the R2D2B2G extension
  3. Go’s default testing package is not enough
  4. Keep calm and watch Javascript churn
  5. Announcing VCFPorter v1.1
  6. VCFPorter, an open-source cross-platform Ember app for importing contacts (vCard) on FirefoxOS
  7. Handling UTF-8 Quoted Printable strings
  8. Meteor Patterns
  9. Using mozrepl and emacs to live-reload Firefox
  10. Working with EmberJS and EmberData
  11. Merry Go Form
  12. Developing a web application/API in Go? Use Gin
  13. Building Apps for FirefoxOS
  14. Device Storage API Quirk in FirefoxOS
  15. Automatically creating RethinkDB instances,databases, and tables for testing fixtures
  16. Getting pycrypto and NodeJS crypto package to play together
  17. Introducing Loltrove
  18. minor ursa + node-gyp issue
  19. Debugging issues with Piwik

2013 20

  1. Usering in a new age of inter-program communication, with JSON?
  2. Powerline, Konsole, and Tmux
  3. Pretty terminals for all
  4. Some small tips on WPA wifi setup on Linux
  5. Inserting users on a branch in RethinkDB
  6. Using my own product
  7. Breaking stuff in production
  8. Configr.io v0.1 Update
  9. Launch of Configr.io
  10. Building a small webapp on Iniz servers with nginx, nodejs, and postgresql
  11. First Foray into web chat
  12. Vaipr
  13. Voice Recognition
  14. TideSDK is awesome.
  15. Working with TideSDK
  16. Some minor updates made to Konvention
  17. Starting a new side project
  18. Konvention is a go?
  19. Progress on Konvention
  20. Konvention’s almost ready for an alpha

2012 1

  1. Hello world!