Will Dormann made a nice post with Firefox settings that a security-/privacy-conscious user may want to enable: If anybody else is making the switch to (or back to) Firefox, there are a few settings that a security-/privacy-conscious user may want to enable: Enable the Block AI enhancements toggle to disable all AI-related nonsense globally. Disable Telemetry & Data Collection. Disable "Firefox…
Try staying still and "doing nothing" when your head is a beehive of thoughts, ideas, emotions, intentions, and desires. Sadly, I often end up scrolling. It gives the illusion of "stopping", but it doesn't help the beehive. So I have a collection of "rest activities". Jigsaw puzzles. Listen to a podcast or watch a TV series. Read a book. Listen to a song. Physical activity of course, but that's…
A free browser game that teaches real Vim motions. Drive the ice-cream van (your cursor) around town (your text) and serve every customer under par. Another fun Vim learning game. Refreshed my memory about f and ; 🍦 Thanks for reading this post via RSS. You're awesome ♥️
Another quick trick from Practical Betterments : Create a default folder for screenshots Press Shift + Command + 5 to open the screen capture interface. Click the Options dropdown. Under Save to select Other location… . This will open up Finder. Navigate to the location you want to save the screenshots to — e.g. Documents. Click New Folder and name the folder Screenshots or whatever you want.…
A handy guide by Nathanael to help reducing your iCloud data usage: Channel your anger at big tech into a cloud storage saving session I especially liked the part about using the Photos App to automatically bring up a list of pictures of receipts. This way I could easily delete all the business travel expense pictures that accumulated over the years 🧹 Thanks for reading this post via RSS. You're…
[...] Instead, I picture a specific person and I just write for them. Often this person is "me, but 3 years ago" or a good friend. Great writing advice from Julia Evans . ( via ) Thanks for reading this post via RSS. You're awesome ♥️
Since the end of last month, I no longer see new podcast episodes for a podcast that produces daily episodes. No amount of refreshing or unsubscribing/re-subscribing helped so far. Especially annoying is that the episodes are there when searching for them, but do not show up in the subscribed podcast while episodes of other podcasts show up without any issues. Today I finally found a way to fix…
Volker explains in a post how he uses the Brave Browser . The DuckDuckGo No-AI Search extension sounds intrigueing and thus I installed it for my Brave Browser. Will see how this performs in the long term and hopefully improves my personal web search experience. Thanks for reading this post via RSS. You're awesome ♥️
Nice writeup by Alex, how to render a chat thread in CSS: Rendering a chat thread in CSS and JavaScript Might be fun to try this on a future re-design of the blog 🤔 Thanks for reading this post via RSS. You're awesome ♥️
Passkey Path by techBrandon . A choose-your-own-adventure guide to understanding, deploying, and supporting passkeys ( via ) Thanks for reading this post via RSS. You're awesome ♥️
Passweird - Passwords too Gross to Steal This website will create for you passwords that are not only secure*, but also so utterly repulsive that not even the most hardened criminal, identity thief, NSA agent, or jealous boyfriend would ever want to use them. ( via ) Thanks for reading this post via RSS. You're awesome ♥️
The Multiple URLs in Git Remote article explaines how git handles multiple URLs. Biggest takeaway for me is that you can have git push transparently push to two URLs at the same time. Might become handy in all the ongoing discussions about GitHub reliability… Thanks for reading this post via RSS. You're awesome ♥️
Blog Quest is a Firefox extension by Robert Alexander that quietly collects RSS feeds when you surf the web. I like the idea of passively collecting feeds of websites I potentially find interesting, all while preserving my privacy and being unintrusive (no notifications, popups or similar). Installed it today and already looking forward to review my surfing from time to time 😎 Thanks for reading…
zkbro explains in a post how to configure Librewolf . One of the mentioned add-ons catched my eye: Google Sign-in Popup Blocker This should block the annoying sign-in with Google dialogs that popup on some websites. As this sounds promising, I installed the add-on in my Firefox. I briefly tested it on a site that uses the annoying sign-in with Google dialog, and this time the dialog did not…
Well written article by Redowan Delowar , explaining how to achieve type-safe logging with Go's log/slog library. Take the logger as a constructor argument. Never reach for slog.Default() or any package-level slog function. Always use logger.LogAttrs(ctx, level, msg, attrs...) . Not logger.Info , logger.Warn , or any of the kv-flavored helpers. Every attribute comes from a helper in…
"Nothing" is the secret to structuring your work is a very nice article from Steven van Gemert outlining a simple approach to reduce mental baggage and increase focus. The next time you begin your workday, try this: clear your work surface completely. Close all browser tabs. Create a fresh page in your notebook. Open only the one file you need. It might feel strange or even scary at first. But…
Warm Burnout — A warm, contrast-audited color theme suite. Mostly warm palette, one cool type accent, WCAG AAA dark and AA light variants. For developers who are already burned out but still have deadlines. Built on one premise: your eyes have been bullied enough by radioactive blue themes. Warm Burnout is a mostly warm syntax palette with one cool steel-blue accent for types and…
Some things I’ve learned/am learning: • 99% of things aren’t about you. • Only you can complete you. • Let people enjoy things. • Kindness is imperative. • Actions > words. • Stop, look, & listen. • Love others. You’ll grow. • Laugh like it’s your job. • Never stop learning. ( via ) Thanks for reading this post via RSS. You're awesome ♥️
Email address obfuscation: What works in 2026? Here are some of the best techniques for keeping email addresses hidden from spammers—along with the statistics on how likely they are to be broken. ( via ) Thanks for reading this post via RSS. You're awesome ♥️
Today is CSS Naked Day . Enjoy the blog without any CSS 😎 (CSS should come back again tomorrow). Thanks for reading this post via RSS. You're awesome ♥️
With the following ethtool command you can make an individual network port blink. Can come in handy with the ever changing interface naming conventions of newer Linux distributions. ethtool -p <interfacename> Thanks for reading this post via RSS. You're awesome ♥️
Go the right way: the Zen of Go coding Write packages, not programs Test everything Write code for reading Be safe by default Wrap errors, don’t flatten Avoid mutable global state Use (structured) concurrency sparingly Decouple code from environment Design for errors Log only actionable information The security engineer in me especially likes the pointer to the os.Root API to avoid path traversal…
Recently I needed to extend/increase a LVM partition to give it more space: Create a partition on the additional disk: cfdisk /dev/sdb Create a physical volume on the partition: pvcreate /dev/sdb1 Add the physical volume to the existing volume group: vgextend vg-foo /dev/sdb1 Extend the logical volume to use 100% of the new free space in the volume group (and directly resize the filesystem…
The work moved. It didn't disappear. Whether your organization thrives or drowns depends on whether you've moved with it upstream into design, specifications, guardrails, and the messy human work of reducing ambiguity, or whether you're still standing where the code used to be, wondering why everything feels faster and worse at the same time. The Work Moved Thanks for reading this post via RSS.…
Best Practices for Claude Code contains a lot of high-value tips when using agentic coding (most of them apply not only to Claude Code). Very helpful and reflects my experience using agentic coding tools. ( via ) Thanks for reading this post via RSS. You're awesome ♥️
In some rare cases you might need to copy a file from a VM in Qubes OS to Dom0. This can be done with the following command in a Dom0 console: qvm-run --pass-io my-vm 'cat /path/to/file/in/my-vm/file.doc' > /path/fo/file/in/dom0/file.doc Thanks for reading this post via RSS. You're awesome ♥️
I made some config changes to the .screenrc and wanted to directly apply them to the running Screen without restarting. Turns out one can trigger a reload of the config inside a running Screen session: CTRL + a :source ~/.screenrc Thanks for reading this post via RSS. You're awesome ♥️
This Github project from Ankur Gupta allows you to "generate beautiful, minimalist map posters for any city in the world". You can install the Python scripts on your computer or use this website . ( via ) Thanks for reading this post via RSS. You're awesome ♥️
Had to work with some machine generated XML files. To make them more readable, I looked for a way to format and indent them in Vim. There are many tools for this, I stumbled upon xmllint which also validates the XML. This can be useful, but restricts it to formatting valid XML files only. :%!xmllint --format % Thanks for reading this post via RSS. You're awesome ♥️
Simulating Crop Marks is a fun CSS experiment. It uses html::before/after body::before/after together with some background: linear-gradient magic to draw crop marks around a website. ( via ) Thanks for reading this post via RSS. You're awesome ♥️
Two very interesting blog posts explaining how Alex manages multi-factor recovery codes and memorises passwords: Where I store my multi-factor recovery codes The passwords I actually memorise But enabling MFA isn’t everything – what if you lose access to that second factor? For example, I store my MFA codes in an app on my phone. What happens if my phone is broken or stolen? I generally trust my…
Feeling burnt out? A bush blessing for the end of the year Now is the time to think of new beginnings Illustration: Jess Hardwood ( via ) Thanks for reading this post via RSS. You're awesome ♥️
A long time ago I learned about the gf command in Vim . It g oes to the f ile whose name is under the cursor. This can be pretty handy if you have a bunch of Markdown files that reference each-other. But I never knew to go back to the previous file again. So this week I took the time to find out how to do it. And it turns out that there are multiple ways :-) The most straightforward one is: CTRL-6…
Infomaniak released Euria , a free, privacy-respecting, swiss-hosted AI assistant. I briefly tried their web version, and it gives a good impression so far. Good to have this available as a local alternative. 🇨🇭 ( via ) Thanks for reading this post via RSS. You're awesome ♥️
I have a little framework that I often use when I want feedback/when I give feedback on a blog post, a tutorial, a project, a product, etc. to get as much clarity as possible, quickly. what’s Awesome? what’s Boring? what’s Confusing? what Didn’t you believe? These “ABCD” questions are basic, but they get to the meat of the good and the bad (and the in between) of what you’re producing. ( via )…
This article about Building a multi stage timetable with modern CSS using grid, subgrid, round(), and mod() , could become handy the next time you need to build a timetable on a website for a conference or festival. Timetables are one of those components that look simple but contain a surprising amount of layout logic. For a project in 2026 I needed a version that supports multiple stages, adapts…
Cassidy Williams wrote a post explaining the what, how and why of CSS clamp() . In a sentence, clamp() lets you assign a value to a CSS property between a minimum and a maximum range, and uses a preferred value in that range. It’s really helpful for responsive layouts and typography! ( via ) Thanks for reading this post via RSS. You're awesome ♥️
Susam Pal shows how to solve Fizz Buzz in CSS: li { counter-increment: n } li:not(:nth-child(5n))::before { content: counter(n) } li:nth-child(3n)::before { content: "Fizz" } li:nth-child(5n)::after { content: "Buzz" } ( via ) Thanks for reading this post via RSS. You're awesome ♥️
By inserting an empty string, Liquid's whitespace control can be used to remove newlines in templates while keeping them readable: <p class="title"> {{- article.title -}} </p> {{- "" -}} <p class="summary"> {{- article.summary | strip -}} </p> ( via ) Thanks for reading this post via RSS. You're awesome ♥️