Today I Learned

Short TIL posts

1864 posts latest post 2026-06-04 simple view
Publishing rhythm
May 2026 | 29 posts
If you need to target a specific k8s node in the cluster, you can use labels. You want to treat your nodes as much like cattle as you can, but sometimes budgets get in the way. You might be like me and just run any free hardware you can get in your cluster, or you might have some large storage or gpu needs that you can’t afford to put on every node in the cluster. kubectl get nodes --show-labels # add the bigpool label kubectl label node k8s-1 bigpool=true kubectl get nodes --show-labels # remove the bigpool label kubectl label node k8s-1 bigpool- To use the label in a pod set spec.nodeSelector to the label that you applied. apiVersion: v1 kind: Pod metadata: name: busybox spec: containers: - name: busybox image: busybox nodeSelector: bigpool: "true"
Adding a Dynamic Now Page in Jekyll Make an auto-updating now page on a static site like Jekyll, Hugo, 11ty or Gatsby Derek Kedziora · derekkedziora.com [1] wow looking at how this is done kinda draws me towards jekyll a little bit, I did not realize some of the similarities that it has with markata. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://derekkedziora.com/blog/dynamic-now-page [2]: /thoughts/
- css if() just landed, I’m struggling to understand what I an do with this that I can’t do with something as old as classes. I can get it if I don’t have control over html [1] creation or js to add classes. The example that Una shows includes data that could directly be a classname with a set of styles in css rather than this crazy css variable unpacking out of a data attribute and an if statement. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /html/ [2]: /thoughts/
External Link maya.land [1] Allen Carr1 on quitting smoking: [Carr] recommends working to really notice and internalise that disconnect [between what we want and what we enjoy]. He tells smokers to pay attention to their next cigarette. It’s like mindfulness but for noticing the unpleasantness. I can appreciate the restraint here, theres something about the mindfulness behind it all. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://maya.land/wants/ [2]: /thoughts/
Blogroll Blogroll - a collection of awesome people I follow online Waylon Walker · reader.waylonwalker.com [1] I rolled out the blogroll today, nothing pretty, but is one single page of the rss feeds I follow. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://reader.waylonwalker.com/blogroll/ [2]: /thoughts/
- Markata got a shout out part way through the latest episode of LNL, I will go back, re-listen and take some of the feedback. His thoughts on Markata were interesting. On one hand it really is a thing for me that works for me, and as a person with too many side projects I don’t have the focus to really give it polish. On the other hand it really confirms why listen to podcasts, news, finger on the pulse, opinions and how often these guys are wrong, they are not the expert they probably look at 6 things like this a week. He said that it was some sort of javascript thing, that maybe he could fix or customize with javascript if he wanted, kinda shocking, I thought maybe I accidentally added node modules or something dumb, nope, I have a whopping 1.4% js. So most of the comments were plain wrong. I get it he probably peeked at it for 30s and realized it wasn’t the thing for his problem. At the same time I should probably do a better job at marketing what it really is, cleaning up the docs and demo. Note This post is a thought [1]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /thoughts/
[1] Such a great message right now. I feel like everywhere I turn is negativity, especially social media. It feels like so many things are trying to divide and create hate. “This” is what we should be doing with social media. There are a lot of elements of “there are two ways to have the biggest building in town, tear down all the bigger buildings, or just build the biggest fucking building”, If you want to be successful in X then surround yourself with others successful in X. This is a catalytic skill that everyone needs to have in their belt. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /static/https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html [2]: /thoughts/
I’m currently [[replacing-google-search-apps-with-self-hosted-web-apps]] and decided to create a simple b64 encoder/decoder, just start typing to enter text, escape to deselect, then e/d to encode/decode. I’m trying to make these apps super simple, self hosted [1] out of minio, static html [2], and javascript. It’s been fun to get back to some simple interactive web development like this. No build just a website that does something. No broken builds, no containers to deploy, just push to minio. encoded = btoa(content); decoded = atob(encoded); Here is the result. [3] References: [1]: /self-host/ [2]: /html/ [3]: https://b64.wayl.one
f2 [1] by ayoisaiah [2] is a game-changer in its space. Excited to see how it evolves. F2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go! References: [1]: https://github.com/ayoisaiah/f2 [2]: https://github.com/ayoisaiah
- Great conversation with Billy Basso the creator of Animal Well on the code architecture of Animal well. It’s all hand crafted C++. He talks about early games he tried to build being heavy in oop, and really got lost in oop. Animal well is very flat, there is no inheritance, just lists of entities that all implement similar methods in their own way. Layering and order of entities becomes very important. Its crazy how much he had to think about hardware and MS build being very helpful with this, but needing to know all of the console apis. Note This post is a thought [1]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /thoughts/
Just fucking code. justfuckingcode.com [1] This is great, beautifully captures a modern backend view of https://motherfuckingwebsite.com/. I honestly resonate with almost all of this. I have found myself in more trouble than help when trying to fully vibe out a project. It never refactors, it leaves it shit everywhere, it mostly does what you say, until you get to something that seems easy, so you try to do it yourself, but you break its brittle piece of shit into pieces any time you try to touch it. AI coding help is great, mcp seems like it really has some game changing abilities, but hands of vibe coded crap aint there yet for me. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.justfuckingcode.com/ [2]: /thoughts/
k8s-monitoring-helm/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml at main · grafana/k8s-monitoring-helm Contribute to grafana/k8s-monitoring-helm development by creating an account on GitHub. GitHub · github.com [1] k8s-monitoring requires setting imageregistry and pullsecrets twice global: image: registry: my.registry.com pullSecrets: - name: my-registry-creds imageRegistry: my.registry.com imagePullSecrets: - name: my-registry-creds Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/grafana/k8s-monitoring-helm/blob/main/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml#L29 [2]: /thoughts/
No docs, no bugs If your library doesn't have any documentation, it can't have any bugs. Documentation specifies what your code is supposed to do. Your tests specify what it actually does. Bugs exist … Simon Willison’s Weblog · simonwillison.net [1] Bugs exist when your test-enforced implementation fails to match the behavior described in your documentation. Without documentation a bug is just undefined behavior. This is quite an interesting thought, so does this mean that, none of my undocumented side projects have bugs? no I think there is still some implied behavior that naming things covers. a function get_bucket_contents implies doing something wtih s3, getting stuff from your local filesystem or crashing would be considered a bug. I think the argument here is that if I start mining bitcoin when you call get_bucket_contents and I have not documented it that this is a feature not a bug. If I were to take this a step further, now do I need to document that this does not also start a bitcoin miner? maybe this is more of an unwanted feature than a bug, I’m convincing myself more and more. Note This post is a thought [2]. It’s a short note that I make about someone else’s ...
- So many small details go into making hollow knight such a great game, but it starts with such good controls, every thing is so fluid and predictable. I knew about coyote time, but not some of the other details that Juniper covers, such as hang time, and faster decent than jump. Note This post is a thought [1]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /thoughts/
I’m trying to replace my usage of google inline search apps with real apps, today I used a stopwatch to time some things out at work by opening stopwatch. This was something I just wanted running in a tab on another screen, it was not timing running code or anything, I was using it as a reminder to check browser caches every 5 minutes or so for some testing. So tonight I whipped up a stopwatch [1], clock [2] and timer [3], all of which are using the wakelock API to keep the screen on while the app is running. // Wake Lock support let wakeLock = null; async function requestWakeLock() { try { if ('wakeLock' in navigator) { wakeLock = await navigator.wakeLock.request('screen'); console.log("Wake lock acquired"); } } catch (err) { console.error("Wake lock error:", err); } } document.addEventListener("visibilitychange", () => { if (wakeLock !== null && document.visibilityState === "visible") { requestWakeLock(); } }); requestWakeLock(); References: [1]: https://stopwatch.wayl.one [2]: https://clock.wayl.one [3]: https://timer.wayl.one
I’m impressed by dbztui [1] from pypeaday [2]. A DBZ TUI built with an early version of ninesUI and Windsurf References: [1]: https://github.com/pypeaday/dbztui [2]: https://github.com/pypeaday
I’ve been working on ninesui [1], inspired by k9s see thoughts-633 [2]. I want a good flow for making video for the readme and I am using charm.sh [3]’s vhs [4] for this. Its running in an archBTW distrobox and looks gawdaweful. sort.mp4 [5] The over saturated colors give it a really retro look, seems fine, but not my cup of tea. I tried to change the textual theme to tokyo-night and it might have made it a bit better, but still over-saturated. After # [6] What I found is that vhs has themes, setting it to dracula made everything much better. # sort.tape Output assets/sort.mp4 Output assets/sort.gif Require echo Set Shell "bash" Set FontSize 32 Set Width 1920 Set Height 1080 + Set Theme 'Dracula' sort.mp4 [7] NinesUI # [8] I’m using these in my ninesui [9] project, right now they are in the readme, but maybe some docs will grow eventually. Right now its hardcore explore phase. References: [1]: https://github.com/WaylonWalker/ninesui/blob/main/README.md [2]: https://thoughts.waylonwalker.com/post/633 [3]: https://charm.sh/apps/ [4]: https://github.com/charmbracelet/vhs [5]: https://dropper.waylonwalker.com/api/file/e86047ed-6881-43f7-8e3a-30411d51afaf.mp4 [6]: #after [...
External Link christopherbiscardi.com [1] Interesting take on kubernetes from a front end perspective. All valid arguments to me, and really the answer to any do you need to any specific implementation of tech is probably no. We got along just fine before k8s ever existed and you still can, but its really nice in a lot of cases. If your skills lean toward backend or infrastructure I encourage you to give it a try. k8s distros # [2] There are a lot of beginner friendly k8s distros that you can setup with relative ease, kind and k0s are great for single node, If you want multi-node k3s is what I generally use. If you want a very lightweight OS that you only interact with through an api, and has a very small attack surface talos is an amazing product. When else might you want k8s # [3] Internal, on-prem, self hosted [4]. If you are trying to avoid the cloud for cost, rules, regulations, red tape, kubernetes is a great option to manage your container workflows yourself without needing to have a cloud budget, get approvals and sign offs on running workflows in a public cloud. Note This post is a thought [5]. It’s a short note that I make about someone else’s content online #t...