Published

All published posts

2565 posts latest post 2026-07-13 simple view
Publishing rhythm
Jun 2026 | 27 posts
Custom Keyboard Keycaps
A comparison of different custom mechanical keyboard keycap sets.

m9a devlog 1

It’s sad to see textualize.io close the doors, but textual is still alive and maintained as a n open source project. I tried to use it very early, and struggled, this was before docs and tutorials really existed, before a lot of the widgets and components existed. Then as we all do I got busy and moved on to other things in life and did not have the capacity to build TUIs. I like tuis # [1] I like tuis, I like staying in the terminal. I use lf [2] daily to move files around when I want something more than mv and cp. I use k9s [3] hourly to monitor and manage my kubernetes cluster. Are they worth the effort?? # [4] As awesome as tui’s are, they are more effort to build, and less automatable. I feel like the first stage into automation of a project really needs to be a good cli, and this is often good enough for the project and I move on. m9a (em - nine - ah) # [5] inspired by k9s Like I said I really like k9s and use it all the time, It really makes running kubectl commands a ...
- Just listened to this as I am really starting to get into grafana and feel like there isn’t a mountain of setup this time around realizing how much of my stack is brand new. Drill Down and Alloy are both new and key to my setup. The Ai integrations at the end sound wicked good, I will be interested if you can do similar things with an MCP vs how much proprietary stuff needs grafana cloud.
Textual - The future of Textualize Textual is a TUI framework for Python, inspired by modern web development. Textual Documentation · textual.textualize.io [1] Ultimately though a business needs a product. Textual has always been a solution in search of a problem. And while there are plenty of problems to which Textual is a fantastic solution, we weren’t able to find a shared problem or pain-point to build a viable business around. I can totally see this. Finding a marketable business idea is not easy, working in the developer space where everyone wants to do it themselves is no better. Textual specifically I could see, I really wanted to build things on it as it came out, I had ideas, it was hard to use at the time and changing, so I took a break, got busy with far too many other things, and really I ’m good with rich most of the time. I daily use k9s, its absolutely amazing at what it does and appreciate that I could build something like it in python, its just hard to justify the time investment for the things I tend to work on. Which is why Textualize, the company, will be wrapping up in the next few weeks. Damn, that hit hard, its been an adventure watching textual ge...
What’s next? Some years ago I had the opportunity to work fulltime on project of mine. This was at a time where I fully intended to take a year off, but being able to make a living off a project of your own cre... Will McGugan · willmcgugan.github.io [1] So it’s back to plan A: taking a year off. I plan on using this time to focus on my health–something I haven’t prioritized while working as a CEO / Founder of a startup. Wish you the best Will, you have given us textual and rich, and from what I can tell left it in some great hands. All I can say for certain is that I would like to write more. Writing scratches many of the same itches as software development, and it is a skill I’d like to nurture. Go get em Will, write to your hearts desire, and resist the urge to make an SSG company this time. References: [1]: https://willmcgugan.github.io/whats-next/
Too much magic A common criticisms of frameworks like Textual is that they have “too much magic”. Will McGugan · willmcgugan.github.io [1] Now “too much magic” is not the same thing as “bad magic”, although they are often conflated. Bad magic is when the implementation details leak out from the level below. This can manifest itself as cryptic errors that reference the magic’s implementation. References: [1]: https://willmcgugan.github.io/too-much-magic/
- Dang Strong takes against markdown here with a strong push for bespoke content models/structures. This idea is completely foreign and wild to me. I get it that markdown has its issues with flavors, add ons and what not, but overall its mostly transportable, its a skill that works most content sites and writing tools. I am so far on the other side that I seek out tools with markdown as an option and lean away from wsiwyg tools with specialized data formats on the backend. I’ll end with, I’m also a dev that creates very simplified content and maybe seeing the backend of a site with lots of custom fields would be very eye opening for me.
Week Links №2: April 2025 Last year I attempted to do some newsletter-style link aggregation… that good intention imploded spectacularly. But I switched to Obsidian this month and now I have a better system for aggregatin... daverupert.com · daverupert.com [1] Last year I attempted to do some newsletter-style link aggregation… that good intention imploded spectacularly. But I switched to Obsidian this month and now I have a better system for aggregating links (post on that coming later). Inside this issue you’ll find some games, some homelab [2] server hardware, some AI discourse™, some musical instruments, and more. This hits so close to home, I even went through the effort of making a weeknotes script, one weeknote post. I also was inspired by obsidian but it didn’t work out for me, so my script uses data from markata. [3] References: [1]: https://daverupert.com/2025/05/week-links-2/ [2]: /homelab/ [3]: https://dropper.waylonwalker.com/api/file/b1a5212b-846f-4144-82ab-51cd9ace086d.webp
What ChatGPT is NOT - Tech Raven Blog There is a lot of excitement about ChatGPT and how it allows us to interact with information and technology. I am actually excited that it now exists and still, I think it is being way overhyped. I... Tech Raven Blog - · blog.techravenconsulting.com [1] Do you remember regression models from college: given some data, you find a best fit line that allows you to predict Y given X. At the end of the day, ChatGPT, and LLMs in general, are the same thing as the regression model – it’s just that ChatGPT is the largest and fanciest model we currently have to model language and information. I really am coming to the idea of calling it a “word calculator”, this seems to be the most succinct description of llms that the lay person can comprehend and relate to. ChatGPT does not hallucinate or become unhinged I think Steve goes much deeper on this in his intervew on fafo.fm [2]. They describe it more as a pleaser or “yes man” essentially all the companies that are building these models want to give the “best” answer, better than their competitors. With this comes the risk of it being completely wrong, they are designed to always give an answer. O...
“I’d rather read the prompt” Clayton Ramsey grades student assignments and gets papers that are just obviously ChatGPT output. I think any of us can spot it by now: awkward repetitive prose, heavy on bullet points with bold in… Chris Coyier · chriscoyier.net [1] I’ll triple down on the link-blog chain here, see this one going around all over this week and finally had time to read through when it hit my rss reader via Chris. It should come as no surprise that nearly every vibe-coded app on the Internet struggles with security issues; look no further than the vibe-coded recipe app that leaks its OpenAI keys. Every time one generates code by prompt, they create a new stillborn program; vibe coding [2] is the art of stitching together their corpses into Frankenstein’s monster. Damn, that is a strong statement, stitching together the corpses, strong statement here. The OpenAI key thing feels kind of obvious to me, every set of docs, blogs and examples on the internet need to be runnable for people to learn and try out new tech easy, putting secrets in the wrong place is easy, putting them somewhere that you can decode them without sharing them is hard team specific, app specific...
- Under 2000 everything is happy, green field. Any decision you have made is relatively easy to back out of (barring you making a library with downstream users), but as you go, regret kicks in. Regret we didn’t make that pydantic 2 upgrade earlier, as new features become more apealing. Regret that we chose sqlite for simplicity, speed, agility, and now we might need robust and distributed. Regret that you chose a front end framework, or to have a front end at all to a backend problem. Regret that you put 6 layers of abstraction on your db early on and now that you understand the problem you want different abstractions, but all of your endpoints deeply depend on the current one. Vibe coding [1] will not save you, it will only make these wrong decisions for you without the context that you have. You will hate it’s decisions more because you had no input into some of them. References: [1]: /vibe-coding/
- “Gradually roll out your releases to a small group of people” ~ roughly what prime said (I’m listening live) This really hit home with me, tests can be so good at making sure that we dont repeat bugs and that laser focused things work, tests are generally small and focused, but this does not replace some sort of integration testing. These days very few things are written as a monolith, and hence there are a lot of interactions that really need to play well together accross various systems. They call out Crowdstrike here, which took down the world blue screening critical windows systems everywhere in 2024. It was revealed that a small changed was rushed through and skipped critical rollout paths since it seemed like a small change. Crowdstrike also runs at a super low kernel level of access and a small memory bug can kill the system.
External Link waylonwalker.com [1] I’m trying to level up my sre game. I’m trying to set up grafana dashboards for everything and it is such a wide surface area. It’s never just one thing you have to have 3 or more things hooked together in order for the data to flow. I’m really getting not invented here vibes, and thoughts that I can just build this myself. Not grafana and it’s scalability necessarily, but small components of observability. References: [1]: https://waylonwalker.com/thoughts/thought-623/
Kubernetes Monitoring Helm tutorial | Grafana Loki documentation Grafana Labs · grafana.com [1] This is a really great guide to setting up kubernetes monitoring with helm, it uses loki as a log datasource and alloy as a collector of kubernetes logs, events, and nodes. The charts are setup really well to start collecting logs from all your kubernetes pods. References: [1]: https://grafana.com/docs/loki/latest/send-data/k8s-monitoring-helm/
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. References: [1]: https://grafana.com/docs/grafana/latest/datasources/tempo/configure-tempo-data-source/

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.

image
image
image
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-dashboard
  namespace: meta
  labels:
    grafana_dashboard: "1"
data:
  my-dashboard.json: |
    {
      "annotations": {
        "list": [
      ...
      "uid": "fel2uhjhepg5ce",
      "version": 3
    }
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

hollow knight home row layout

I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT guidance, but mostly just figuring it out. I only just discovered the ⭐ ReznoRMichael hollow-knight-completion-check [1] which got me an extra 2% for a few items I must have got and not saved on, because I was sure I had them. Controller # [2] Hollow Knight is a game that can be played with keyboard or controller, You can use analog stick for movements, but they just translate to dpad, there really are no analog moves in the game. This makes it ripe for playing on pure keyboard. I really favor controller when there are more than one analog (throttle, brake, steering for example). On controller I’ve switched to only using d-pad as I feel like it gives me the most crisp of controls. It is really easy to miss a pogo on analog by hitting slightly left or right. My Keyboard # [3] My daily driver keyboard is a custom built 40% monoblo...
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

fix feed descriptions

Today I fixed a bug in markata that has been occurring for a few months where the description for posts come out as None if coming from cache, the issue was a pretty simple check and pull properly from cache. This fixes all the descriptions in feeds and metadata on the post. Better description # [1] While in there we went ahead and improved our get_description to more accurately return plain text without escaped characters, remove cutoff words, and add an elipsis if the description cuts off the text. More description # [2] While I was there I made longer form posts, til, blog-post use the super description of 500 characters instead of the regular 120 character description. Before # [3] [4] After # [5] [6] References: [1]: #better-description [2]: #more-description [3]: #before [4]: https://dropper.waylonwalker.com/api/file/8e9cf8e3-50ab-4e0a-be76-7241fbfe44c5.webp [5]: #after [6]: https://dropper.waylonwalker.com/api/file/29f96255-a89f-4ec6-b9e7-f61551366264.webp