Fixing k9s 'Too Many Open Files' Error on K3s

The Problem I was using k9s to check logs on my K3s homelab cluster when I hit this frustrating error: to create fsnotify watcher: too many open files stream closed: EOF for development/drawdb-ddf8d9569-grfff (drawdb) The log stream would just close immediately, and I couldn’t see anything. Annoying. What’s Actually Happening Here’s the thing - this isn’t a problem with k9s on your laptop. It’s happening on the K3s node itself. When applications watch files (like development tools, file syncing services, or even k9s monitoring your cluster), Linux uses something called inotify watchers. There’s a limit to how many of these you can have. ...

IntelliJ IDEA: White Markdown Preview with Dark Theme

Note: This post preserves and references the solution from Ivan Aloneguid’s original article. Full credit goes to the original author for this elegant solution. Quick Solution If you use IntelliJ IDEA with a dark theme but want a white Markdown preview, here’s the simplest fix: Go to File → Settings → Languages & Frameworks → Markdown In the “Custom CSS” field, add: body { filter: invert(1); background: #fff; font-family: 'Segoe UI'; font-size: 16px; } img { filter: invert(1); } Click Apply and OK Why This Works The CSS uses filter: invert(1) to flip the dark preview to light. Images are also inverted to preserve their original appearance. You can customize the font family and size to your preference. ...

My little home server :)

A Professional Reminder: Keep Politics Out of LinkedIn

I’ve been noticing more political content and engagement on LinkedIn lately. While I understand we’re living through complex times both in Israel and globally, and people naturally want to share their perspectives, I wanted to offer a gentle reminder about the potential professional risks. When recruiters and hiring managers review your profile, they inevitably see your activity—including political posts you’ve liked or shared. Even the most professional individuals can be unconsciously influenced by views that differ from their own. This bias might affect their perception of you as a candidate, even if they’d never admit it to themselves. ...

AI Won't Replace Programmers—At Least Not Anytime Soon

I may not be the smartest person in the room, but after working closely with Claude and ChatGPT over the past few months, I want to share some observations. AI won’t replace programmers—at least not anytime soon. For AI to truly replace programmers, one of two conditions must be met: Accept that our codebases will eventually become completely unreadable to humans. Once no human can maintain the code, all bugs must be fixed by AI. Inevitably, the AI will encounter a bug it can’t solve, and we’ll need human programmers to refactor and essentially rewrite everything from scratch. ...

Claude Code: First Impressions - Disturbingly Good

Just installed and played a little bit with Claude Code, and it’s disturbingly good. I played with it for a few hours—it took me that time to write an MCP server from scratch, create a simple OAuth proxy, debug it, and then perform some refactoring to make it modular and maintainable. Yes, without human touch it writes spaghetti code that works but is barely maintainable. However, the nature of programming is changing; you will need to read more than write. But without writing, you won’t be able to read and understand. I think developers with many years of experience who know how to write code and are able to adopt new AI tools will be invaluable, because one such developer can easily replace a small team. But for newcomers, it will be extremely difficult to gain the required experience to work productively with AI tools. ...

The Highest Appreciation an Employee Can Receive

You know what the biggest appreciation for an employee is? It’s not a title, not a good review, and not even a salary raise. The best appreciation comes when your old teammates or managers call you to join them at their new company. When there are no company rules involved, no need to be nice just to keep good work relationships—when your former manager needs to hire someone and remembers you, decides to message or call you to join their new team. ...

No, AI won’t take jobs from us, not yet.

No, AI won’t take jobs from us, not yet. Claude struggled to write a script to unseal the vault in my k8s cluster until I split the job into small chunks and guided it step by step through what needed to be done.

Mastering Asynchrony in the Browser: A Comprehensive Guide

Acknowledgements This article was originally written in Russian by Grigory Biziukin and was published on Полное понимание асинхронности в браузере on 28/02/2023. I would like to thank Grigory Biziukin for creating such informative and insightful content. I have made every effort to accurately translate the content while maintaining the author’s original message and intent. However, any errors in translation are solely my own. I hope that my translation will allow a wider audience to access and appreciate this valuable content, and I encourage readers to visit the original publication or website to read more of Grigory Biziukin’s work. ...

How I Accidentally Reinvented RPC: A Lightweight Alternative to GraphQL

Author’s Note (2025): When I originally wrote this article, I didn’t realize I was essentially reinventing RPC (Remote Procedure Call) - a pattern that’s been around for decades. What I built here is very similar to JSON-RPC over HTTP, just without knowing it had a name! Today, I’d recommend using battle-tested solutions like tRPC or oRPC which provide the same benefits I was seeking (type safety, simplicity, single endpoint) but with better tooling, community support, and production-readiness. However, I’m keeping this article as-is because building this from scratch taught me valuable lessons about API design, and sometimes reinventing the wheel is the best way to understand why the wheel is shaped the way it is. ...