Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 200
  1. Manage .env files across Git worktrees with Dottler, a local Rust CLI that imports, stores, and dumps project environment variables without a server.

  2. Checking Mermaid Diagrams in CI

    I wrote a small GitHub Action to catch broken Mermaid diagrams in Markdown and standalone diagram files before they land in a repository.

  3. Why Tailscale SSH can log you in when OpenSSH would reject you: tailscaled, ACLs, root privileges, and Unix users.

  4. Love's Labour Lost

    On building Merrilin in the blind, choosing a hard problem with no promise of money and no light at the end of the tunnel

  5. Understanding Traceroute

    I never understood how traceroute discovers each hop.

  6. A practical deep dive into Tailscale exit nodes: route changes, traceroute evidence, DERP fallback, trust boundaries, and why this model can be free.

  7. Syncing reading progress across devices sounds simple until you try it.

  8. Dogfooding Is Hard

    I've been using only Merrilin to read books since we built it, and I need things to improve constantly.

  9. Code blocks in your books, finally

    Your programming books deserve better than monospace blobs.

  10. GoForGo v0.9.0

    I've made some updates to https://github.com/stonecharioteer/goforgo

  11. Merrilin - We built an app to read books

    We built Merrilin, an AI-powered reading app with spoiler-free book companions, live sync, and beautiful themes.

  12. I use a Macbook now

    After using Linux for nearly 20 years, I've gotten an M5 Macbook Pro as my daily driver.

  13. My process for learning Data Structures and Algorithms, with some segues into data visualization

  14. I wanted to stop using IP addresses to access my homelab services, and I spent a Friday evening fixing that.

  15. Distributed Systems Learning Resources

    Curated collection of books, papers, and articles for learning distributed systems and performance engineering

  16. Direction

    Reflections on my career and where I want to go

  17. KOllector - Publishing KOReader Highlights

    How I built an application to merge KOReader highlights across devices and publish them.

  18. gbt: branches touched in the last 24 hours

    A tiny Fish function I use at Chatwoot to remind myself which Git branches I touched in the last day.

  19. A Soiree into Symbols in Ruby

    A Pythonista opens `irb` and looks at all the symbols in Ruby.

  20. Some Smalltalk about Ruby Loops

    Sending a message about why you shouldn't write `for` loops in Ruby.

  21. Ruby Blocks

    How to start really getting Ruby, especially blocks.

  22. How does `return` work within blocks, procs and lambda?

  23. Ruby

    How I started learning Ruby and Ruby on Rails in 2025 and what my experience has been like so far.

  24. OpenWRT

    How I spent my week setting up multi-wan failover on OpenWRT on my Beelink EQI12

  25. After years of living with Linux laptop quirks - battery surprises, broken suspend, useless gestures, and monitor chaos - I partnered with Claude to actually fix these problems instead of just accepting them as "the Linux experience."

  26. Today I learned about watchexec, a cross-platform file watcher that replaced entr in my development workflow with better defaults and intuitive usage patterns for Hugo, Rust, and Go projects.

  27. A Less Busy Mind

    Using Coding Assistants frees me up to do other things

  28. GoForGo - Learn Go through live examples

    Small exercises to get you used to reading and writing Go code; Inspired by Rustlings

  29. Migrating My Old Blog to Hugo with Claude

    I finally managed to migrate all the tech content from my older blog(s).

  30. My journey from XFCE to Qtile, a tiling window manager written entirely in Python, including setup, configuration strategies, and real-world config examples.

  31. Read the RFCs that Built the Internet

    I built an interactive tutorial platform for learning internet fundamentals through RFCs, built with AI.

  32. Failing in Public

    June 17, 2025 I was 17 when I failed school for the very first time.

  33. Why Protocol Buffers are superior to JSON for microservice communication.

  34. 🧡 Favourites

    These are a list of my favourites in tech, whether they’re podcasts, blogs, youtube videos, or books.

  35. 🖥️ My Gear

    I get asked what devices I use (since I have a LOT of them).

  36. Python Reverse a List

    Comparing three methods to reverse lists in Python: slice notation, reversed(), and .reverse().

  37. New Beginnings

    Restructuring my website into subdomains with separate themes.

  38. Leaving ChainSafe Systems

    I've left my role as Lead Software Developer at ChainSafe Systems in January 2025.

  39. A simple solution using Zenity to create a confirmation dialog for screen locking in Cinnamon Desktop on Fedora 39.

  40. Crews Not Teams

    Building effective teams by leveraging individual strengths instead of competing.

  41. A System for Getting Better at LeetCode

    Building sustainable habits for coding interview preparation.

  42. So Far So Rust

    My journey learning Rust over 145 days as my primary programming language, including gotchas, resources, and why I chose Rust over Golang.

  43. Retrying HTTP Requests with Rust

    How to implement retry logic for HTTP requests in Rust using reqwest and the again crate.

  44. The Two of Three Rule

    A career framework based on statistical quality control: Pay, People, Work - you can only have two good things at any job.

  45. A Primer on Control Charts

    An introduction to statistical quality control using control charts and Shewhart charts.

  46. Learning Rust

    My journey learning Rust after 3 years of attempts, finally succeeding after 40 days and building a webservice at Merkle Science.

  47. A comprehensive introduction to Rust for Python developers, covering why Rust matters, memory management, ownership, borrowing, and practical code examples.

  48. Using Custom Delimiters in Jinja Templates

    How to use custom variable markers in Jinja templates to avoid conflicts with Apache Airflow or other template engines.

  49. TIL how to create fixed-length iterables in Python using collections.deque with maxlen parameter.

  50. Documentation Without Assumption

    Why good documentation means caring about your audience and stating the obvious.