RSSAmplifier

Blog

blog.stillinbeta.com

blog.stillinbeta.com

blog.stillinbeta.comRSS feed ↗13 posts

Latest posts

TrueNAS Scale 2: Electic Eel-aloo ft Traefik

Right as I got TrueNAS Kubernetes Edition working, it became clear that it wasn't going to last long. All future development for Apps was in a docker-compose direction Purported advantages include lower overhead and simpler configuration. For me, the advantage was no longer having to deal with Kubernetes in my free time. Docker isn't really that much better, but we have to start somewhere. The…

Danube Dev Log pt 1

Introduction I've never really done game development. Probably part of that is that I don't play a lot of them either. My "Games Of The Year" post from 2023 features [[ https://cohost.org/stillinbeta/post/4039802-p-now-i-play-vide ][six games], which was every game I played. But I have had an idea kicking around in my head for a while. Every year or so I take a look at the Rust ecosystem and see…

New Kubernetes Meta

Forget about image building. CI? We don't need it. This is the next big thing kubernetes, and containers in general Just Stick It In The YAML containers : pony-client : image : python:3 command : - sh - '-c' - | python <<EOF import random import requests import os import time if __name__ == "__main__" : url = os.environ[ "PONY_API" ] + '/ponies/' while True: if random.randint(1, 100) > 99:…

TrueNAS Scale Migration, or: Can't Escape K8s

What and Why I run a small NAS for myself and my family. I hesitate to call it a "homelab" because it's really just the one box. Figure 1: This fancy case was US$120 Until recently this was running TrueNAS Core , which is based on FreeBSD. This was good for cred, but difficult for me to use in practice. I've spent two decades learning how to use Linux, and very little of that transferred. Maybe if…

Let's make an information Display Part 3: Deploying

[ Part 1 ] [ Previous ] The Development Environment Fake API Several of our gauges involve making real requests to APIs. Ordinarily that's not a problem, but when debugging or iterating you can run up your usage very quickly. The solution? Fake data! We could just use static data, but what's the fun in that? This way we can tell when the backend gets updated. Listing 1: fake.rs pub trait Mock…

Let's Make an Information Display Part 2: Frontend

Previous: Part One So we have our data. We need some way to display it in a human-friendly format. Obviously I don't have anything against pure json , but it does not make for good information density. If we're building a frontend application, the most obvious answer is Javascript. But I'm not going to be writing Javascript in my free time. That'd be like writing a Go backend: completely…

Let's Make an Information Display Part 1: Backend

About this Project Our house in Vancouver came with a TV pre-installed in the kitchen, right above the fridge. This was, originally, for monitoring all of the security cameras. But surveillance cameras show the exact same thing, day in and day out. What if, instead, I aggregated a bunch of different datums our house cares about? A former housemate had a little web app that displayed the weather,…

You Gotta Zag On Em

The Good The ! error type is really nifty So in Rust, if you want to to indicate a function can fail, it returns a result type: fn open ( path : & str ) -> Result < File , std :: io :: Error > If you're going to frequently use a single type, it's common to make your own "result" type that includes this: pub type Result < T > = std :: result :: Result < T , std :: io :: Error > ; fn open ( path : &…

Ergodox Aleph Build Log Chapter 5: In Which It's Fine

crossposted from cohost I picked QMK because there was already code for the Ergodox Infinity . There were also already code for the class of LED Drivers I'd chosen for my RGB backlighting. Surely it would just be a matter of combining those two things together! Programming There are many things that make Arduino popular and easy to use. But the most important thing is the ecosystem: You write…

Ergodox Aleph Build Log Chapter 4: Soldering On

crossposted from cohost The boards came! Figure 1: I designed these. how cool is that? Now it's time to solder. When you think of soldering, if you think of anything at all, you probably think of what is now called “through-hole.” A component has long leads, they go through holes drilled in the board, leads get soldered then trimmed. Figure 2: Sparkfun.com This can be automated on an industrial…

Ergodox Aleph Build Log Chapter 3: Case Studies

crossposted from cohost Most keyboards have a case of some kind. Electronics are fragile, and the last thing you want is to short important pins or tear a tiny resistor off the bottom. Even minimal “bare circuit”-vibe keyboards tend to use at least a bottom case: Figure 1: Etsy Now, this leads to a bit of a problem for me. There are plenty of existing 3D printable cases for the original Ergodox.…

Ergodox Aleph Build Log Chapter 2: Building A Board

crossposted from cohost Figure 1: i wish you could get PCBs in pastel pink The first thing any good project needs is a name. I certainly couldn't call it the Ergodox Infinity 2. For one, it was hardly an authorised sequel. I've spoken to the original board designer a few times on Discord, so it's not a complete vacuum, but certainly I don't plan on sending a pull request when I'm done. For…

Ergodox Aleph Build Log Chapter 1: It Started With Keycaps

Crossposted from cohost In late 2020, The Key Dot Company and Mintlodica debuted a second release of the much-lauded DSA Magical Girl. They look like this: Figure 1: DSA Magical Girl Keycaps I was absolutely smitten with it. No particular reason, magical girls weren't a big part of my childhood. To this day I don't think I've seen an entire episode of Sailor Moon. But the vibes&#x2026; the vibes…