Today I Learned

Short TIL posts

1852 posts latest post 2026-05-13
Publishing rhythm
Apr 2026 | 23 posts
Configure the Tempo data source | Grafana documentation Grafana Labs · grafana.com [1] Really helpful article to getting tempo datasource setup in grafana, this enables you to see span and trace data within grafana. This data helps debug and work through issues that you might come into with performance and need to see the timing of requests along with logs. 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://grafana.com/docs/grafana/latest/datasources/tempo/configure-tempo-data-source/ [2]: /thoughts/
I’m trying to learn proper logs, monitoring, otel, and grafana. Today I imported a bunch of pre-made k8s dashboards and made a few of my own for specific apps, and it made me want to know how I can turn my own custom dashboards into infrastructure as code. Turns out grafana makes it pretty easy to do this, if you have the grafana dashboard sidecar running. It will pick up any ConfigMap with the grafana_dashboard label and import it. Go to Dashboards -> Pick a Dashboard -> Export -> JSON. [1] [2] [3] apiVersion: v1 kind: ConfigMap metadata: name: my-dashboard namespace: meta labels: grafana_dashboard: "1" data: my-dashboard.json: | { "annotations": { "list": [ ... "uid": "fel2uhjhepg5ce", "version": 3 } References: [1]: https://dropper.waylonwalker.com/api/file/530e8515-a72a-4341-82d7-37f6f985e327.webp [2]: https://dropper.waylonwalker.com/api/file/d792b2db-2dcf-465f-a400-e84f199ec22d.webp [3]: https://dropper.waylonwalker.com/api/file/684701cc-efec-4e2b-9630-c8aea7ff5b14.webp
Just starred postiz-app [1] by gitroomhq [2]. It’s an exciting project with a lot to offer. 📨 The ultimate social media scheduling tool, with a bunch of AI 🤖 References: [1]: https://github.com/gitroomhq/postiz-app [2]: https://github.com/gitroomhq
I recently discovered wezterm [1] by wezterm [2], and it’s truly impressive. A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust References: [1]: https://github.com/wezterm/wezterm [2]: https://github.com/wezterm
External Link fafo.fm [1] Steve is such a great listen, the neurospicy 🌶️ rambles this episode goes on is so relatable. I feel like I really missed out on some great takes on intellij vs neovim, but got some really great knowledge about vector db’s, embedding, text compression, similarities to vector algegra like infinite craft. Just popped open infinitecraft and I’ve definitely played this with my kids before, super fun, just could not remember the name of this one. I do remember an android one as well that is alchemist or something like that, which we have also played a lot. 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.fafo.fm/vectorizing-your-databases-with-steve-pousty/ [2]: /thoughts/
Recovering from Disaster with Seth Eliot Disaster recovery is more than automation and infrastructure. There's a lot that goes into your services and some of those things can't be defined as code or automa… Fork Around And Find Out · fafo.fm [1] This episode really got me thinking about the difference between HA and DR and my approach to each one. They talk about it from the perspective of a cach cow kind of app rather than a homelab [2] or internal tooling, but think of HA as 9’s how many 9s are we willing to pay for, tink of DR as dollars how many dollars will we loose during the period of recovery. So much more in the episode, a lot of talk around cloud vendors and what they give you vs a purpose build platform with HA and DR in mind. Note This post is a thought [3]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.fafo.fm/recovering-from-disaster-with-seth-eliot/ [2]: /homelab/ [3]: /thoughts/
Just starred kubero [1] by kubero-dev [2]. It’s an exciting project with a lot to offer. A free and self-hosted [3] PaaS alternative to Heroku / Netlify / Coolify / Vercel / Dokku / Portainer running on Kubernetes References: [1]: https://github.com/kubero-dev/kubero [2]: https://github.com/kubero-dev [3]: /self-host/
I’ve been using ruff to lint my python code for quite awhile now, I was pretty early to jump on it after release. Some of my projects have had a nice force-single-line setting and some have not. I dug into the docs and it was not clear what I needed to make it work. [tool.ruff] select = ['I'] # you probably want others as well [tool.ruff.isort] force-single-line = true Turns out I was missing Isort in the select list.
- Astral is doing great things in the python industry. They are disrupting entire categories of tools with extremely fast, easy to use, and feature rich alternatives that make it really hard to keep using the incumbent. So far I am seeing no signs of evil, sometimes with such a disrupter there is some sort of downside that make it hard to want to do the switch. In the interview they even mention things like leaning on lsp so that it works across all editors rather than building out vscode integrations that work for most developers. As a neovim user I greatly apreciate this. 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/
Playground | ty An in-browser playground for ty, an extremely fast Python type-checker written in Rust. types.ruff.rs [1] ty, has a playground running at types.ruff.rs. You can edit code in there and see what the type checker results would be in browser. This looks good, excited to see it running in my lsp. Here is an example where a Optional may not be defined. [2] Checking for existance before using it resolves the issue. [3] Note This post is a thought [4]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://types.ruff.rs/ [2]: https://dropper.waylonwalker.com/api/file/783e4d9e-8b23-4304-8921-2ae05aebcc8a.webp [3]: https://dropper.waylonwalker.com/api/file/cc28335c-4130-4bf4-829d-0ff39f2aa32d.webp [4]: /thoughts/
I was looking back at my analytics [1] page today and wondered what were my posts about back at the beginning. My blog is managed by markata [2] so I looked at a few ways you could pull those posts up. Turns out it’s pretty simple to do, use the markata map with a filter. from markata import Markata m.map('title, slug, date', filter='date.year==2016', sort='date') Note the filter is python eval that should evaluate to a boolean, all of the attributes of the post are available to filter on. Result # [3] [ ('⭐ jupyterlab jupyterlab', 'jupyterlab-jupyterlab', datetime.date(2016, 12, 13)), ('⭐ nickhould tidy-data-python', 'nickhould-tidy-data-python', datetime.date(2016, 12, 9)), ( '⭐ mikeckennedy write-pythonic-code-demos', 'mikeckennedy-write-pythonic-code-demos', datetime.date(2016, 11, 22) ), ( '⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast', 'mikeckennedy-write-pythonic-code-for-better-data-science-webcast', datetime.date(2016, 11, 22) ), ('⭐ rajshah4 dlgroup', 'rajshah4-dlgroup', datetime.date(2016, 11, 18)), ('⭐ pandas-dev pandas', 'pandas-dev-pandas', datetime.date(2016, 10, 5)) ] You could use the list command as well right within y...
ty An extremely fast Python type checker, written in Rust. PyPI · pypi.org [1] Astral is working on some great things around python, they have created a high standard for python tooling built on rust that works really well, runs fast and covers everything in the space it resides in. ty appears to be their linter coming soon. 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://pypi.org/project/ty/ [2]: /thoughts/
3D Printable Power Brick Bracket Designer Generate custom 3D printable power brick brackets for your devices. Design and export your own mounting solutions. Bracket Engineer · bracket.engineer [1] This is madness that Wes Bos made this with manifold.js and no openscad! Yes, I have these stupid brackets everywhere, yes, I hand model my own brackets. No I don’t do it enough. I don’t like that these model generators like openscad cannot make fillets and chamfers, but I appreciate the heck out of the speed and automation you can make iterations of things. Link to the promo video. https://bsky.app/profile/wesbos.com/post/3lo4h7unk6s2i 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://bracket.engineer/?width=113.5&height=63&depth=98&bracketThickness=3&ribbingCount=9&ribbingThickness=2.5&holeDiameter=5&holeCount=1&earWidth=17&keyHole=on&color=%2344ff00 [2]: /thoughts/
bracket.engineer [1] by wesbos [2] is a game-changer in its space. Excited to see how it evolves. Generate 3D printable power brick brackets. References: [1]: https://github.com/wesbos/bracket.engineer [2]: https://github.com/wesbos
661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options What are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac… ShopTalk · shoptalkshow.com [1] Chris hit me where it feels about 10 minutes in. He said he has not been writing on his site as much lately and how hard it is to get back in. He mentions having a baby idea of a post, but then having the thought do you really want to come back from a long break with this! Momentum is a b**** when you got it you cant stop, and when you don’t you can’t stop. 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://shoptalkshow.com/661/ [2]: /thoughts/
- How is usability and it doing the thing I paid for it to do a selling point?? Any time I’ve touched a windows machine in the past 7 years has felt awkward, I have no idea where things are now, but they look so much worse. 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/
- How is usability and it doing the thing I paid for it to do a selling point?? Any time I’ve touched a windows machine in the past 7 years has felt awkward, I have no idea where things are now, but they look so much worse. 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/
A quote from Mark Zuckerberg You also mentioned the whole Chatbot Arena thing, which I think is interesting and points to the challenge around how you do benchmarking. How do you know what models are … Simon Willison’s Weblog · simonwillison.net [1] Interesting how confidently he says we can easily go to the top. really makes you wonder what we the normies are leaving on the table by using these general purpose models and what could be achieved with really tuned in models. Could I make an automatic blog tagger more accurately, maybe smaller, maybe tuned so well it runs fine on cpu? 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://simonwillison.net/2025/May/1/mark-zuckerberg/#atom-everything [2]: /thoughts/
P. Martin Ortiz: Web apps can easily adapt to whatever device you’re on. A single responsive website can run on your desktop, phone, tablet, or even a VR headset. What’s even more, they can be ... Chris Coyier · chriscoyier.net [1] The web is everywhere, its the one true write once and run anywhere platform. Millions sunk into browser performance and things like the v8 engine allow us to run our shitty websites anywhere and it still runs good…. most of the time 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://chriscoyier.net/2025/04/30/12292/ [2]: /thoughts/
Helm - Postiz Documentation Install Postiz using Kubernetes and Helm Postiz Documentation · docs.postiz.com [1] I didn’t realize that postiz had a helm chart, I just hand rolled mine based on the compose file they provide. I went from running the compose stack locally to running in my homelab [2] with kubernetes. I am using cnpg rather than a postgres container which I really like the workflow of as far as backup and restore. The one hiccup I ran into was changing the domain from localhost to my homelab domain killed all of my integrations and they needed the redirect url updated. Note This post is a thought [3]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://docs.postiz.com/installation/kubernetes-helm [2]: /homelab/ [3]: /thoughts/