41554 blogs · [ { "id": "01a0ca86-a8ad-71a4-8dbc-82c357136b50", "title": "Host migration", "url": "https://sebastiano.tronto.net/blog/2026-09-13-host-migration", "published_at": "2026-09-13T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f5d3cb35c", "title": "From stagit to cgit", "url": "https://sebastiano.tronto.net/blog/2026-09-05-cgit", "published_at": "2026-09-05T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f5d96e81c", "title": "Dotfiles backup and bootstrap", "url": "https://sebastiano.tronto.net/blog/2026-08-15-dotfiles", "published_at": "2026-08-15T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f5e7aaf10", "title": "tmux trick #3: open URLs without the mouse", "url": "https://sebastiano.tronto.net/blog/2026-06-28-tmux-open-urls", "published_at": "2026-06-28T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f5f3a1d3b", "title": "tmux trick #2: copy to clipboard", "url": "https://sebastiano.tronto.net/blog/2026-05-17-tmux-clipboard", "published_at": "2026-05-17T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f5ff4e495", "title": "20 years of programming", "url": "https://sebastiano.tronto.net/blog/2026-03-27-programming-20-years", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6072b0c7", "title": "FOSDEM 2026", "url": "https://sebastiano.tronto.net/blog/2026-02-02-fosdem", "published_at": "2026-02-02T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f60b00c28", "title": "Pipelining and prefetching: a 45% speedup story", "url": "https://sebastiano.tronto.net/blog/2026-01-28-prefetch", "published_at": "2026-01-28T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6140a09f", "title": "Downloading AoC puzzle inputs with curl", "url": "https://sebastiano.tronto.net/blog/2025-11-29-aoc-download", "published_at": "2025-11-29T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f61de21c3", "title": "The hike", "url": "https://sebastiano.tronto.net/blog/2025-10-22-hike", "published_at": "2025-10-22T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f62de06e3", "title": "When I say \"alphabetical order\", I mean \"alphabetical order\"", "url": "https://sebastiano.tronto.net/blog/2025-09-28-alphabetic-order", "published_at": "2025-09-28T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f63923835", "title": "Declarative package management with Alpine Linux", "url": "https://sebastiano.tronto.net/blog/2025-08-16-alpine-declarative", "published_at": "2025-08-16T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f642e2375", "title": "Stunned by the borrow checker 🦀", "url": "https://sebastiano.tronto.net/blog/2025-06-26-borrow-checker", "published_at": "2025-06-26T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6499c462", "title": "Cargo culture shock 🦀", "url": "https://sebastiano.tronto.net/blog/2025-06-13-cargo-culture-shock", "published_at": "2025-06-13T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f64b231b1", "title": "A masochist's guide to web development", "url": "https://sebastiano.tronto.net/blog/2025-06-06-webdev", "published_at": "2025-06-06T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f64efd3aa", "title": "Things I learned rewriting a project from scratch", "url": "https://sebastiano.tronto.net/blog/2025-04-05-learned-rewrite", "published_at": "2025-04-05T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f65b4b096", "title": "Getting started with QT, without the nonsense", "url": "https://sebastiano.tronto.net/blog/2025-04-04-qt-minimal", "published_at": "2025-04-04T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f66340bc4", "title": "Elliptic curves and JavaScript", "url": "https://sebastiano.tronto.net/blog/2025-02-27-elliptic-curves-javascript", "published_at": "2025-02-27T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f666a317a", "title": "Taming C++, episode 3: templates, constraints and concepts", "url": "https://sebastiano.tronto.net/blog/2025-01-21-taming-cpp-templates", "published_at": "2025-01-21T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f66c59421", "title": "Taming C++, episode 2: RAII", "url": "https://sebastiano.tronto.net/blog/2024-12-26-taming-cpp-raii", "published_at": "2024-12-26T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f66fefc15", "title": "2-factor authentication without a smartphone", "url": "https://sebastiano.tronto.net/blog/2024-12-03-2fa", "published_at": "2024-12-03T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f67443d16", "title": "How to write a Python module in C", "url": "https://sebastiano.tronto.net/blog/2024-10-08-python-c", "published_at": "2024-10-08T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f67ba6d90", "title": "Sometimes it's the hardware", "url": "https://sebastiano.tronto.net/blog/2024-09-29-fail", "published_at": "2024-09-29T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6837e73d", "title": "Shell scripting in C", "url": "https://sebastiano.tronto.net/blog/2024-09-20-c-scripting", "published_at": "2024-09-20T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f688a82e0", "title": "tmux trick #1: battery status indicator", "url": "https://sebastiano.tronto.net/blog/2024-07-11-tmux-battery", "published_at": "2024-07-11T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f68f3902b", "title": "Another C trick: flexible logging with callback functions", "url": "https://sebastiano.tronto.net/blog/2024-06-20-callback-log", "published_at": "2024-06-20T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f691c053e", "title": "UNIX text filters, part 2.6 of 3: fold", "url": "https://sebastiano.tronto.net/blog/2024-05-31-fold", "published_at": "2024-05-31T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f696018c9", "title": "Taming C++, episode 1: motivation", "url": "https://sebastiano.tronto.net/blog/2024-04-30-taming-cpp-motivation", "published_at": "2024-04-30T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6a594a57", "title": "UNIX text filters, part 2.5 of 3: expand and unexpand", "url": "https://sebastiano.tronto.net/blog/2024-04-07-expand-unexpand", "published_at": "2024-04-07T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6a781294", "title": "UNIX text filters, part 2.4 of 3: cut", "url": "https://sebastiano.tronto.net/blog/2024-03-28-cut", "published_at": "2024-03-28T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6ad22fc5", "title": "UNIX text filters, part 2.3 of 3: rev", "url": "https://sebastiano.tronto.net/blog/2024-03-27-rev", "published_at": "2024-03-27T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6af0e9a2", "title": "Rubik's cube: how to figure it out", "url": "https://sebastiano.tronto.net/blog/2024-03-10-figure-out-cube", "published_at": "2024-03-10T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6af9c831", "title": "UNIX text filters, part 2.2 of 3: head and tail", "url": "https://sebastiano.tronto.net/blog/2024-02-20-head-and-tail", "published_at": "2024-02-20T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6b109c0e", "title": "Virtualization with vmm: brief history of a failure", "url": "https://sebastiano.tronto.net/blog/2024-02-04-vmm-failure", "published_at": "2024-02-04T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6bbdaa82", "title": "UNIX text filters, part 2.1 of 3: tr", "url": "https://sebastiano.tronto.net/blog/2024-01-13-tr", "published_at": "2024-01-13T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6c395f92", "title": "Advent of Code", "url": "https://sebastiano.tronto.net/blog/2023-12-25-advent-of-code", "published_at": "2023-12-25T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6cd655e2", "title": "UNIX text filters, part 2 of 3: sed", "url": "https://sebastiano.tronto.net/blog/2023-12-03-sed", "published_at": "2023-12-03T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6dd5b990", "title": "Making functions public for tests only... with C macros!", "url": "https://sebastiano.tronto.net/blog/2023-11-14-test-visibility-c-macro", "published_at": "2023-11-14T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6e4bcd7b", "title": "Spooky shell expansions", "url": "https://sebastiano.tronto.net/blog/2023-10-31-spooky-shell-expansions", "published_at": "2023-10-31T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6efd5c7e", "title": "Build time!", "url": "https://sebastiano.tronto.net/blog/2023-10-15-build-time", "published_at": "2023-10-15T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6f75f138", "title": "Why C?", "url": "https://sebastiano.tronto.net/blog/2023-09-15-why-c", "published_at": "2023-09-15T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6f7d2580", "title": "I donated 100€ to Wikipedia", "url": "https://sebastiano.tronto.net/blog/2023-09-06-wikipedia-donation", "published_at": "2023-09-06T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f6fd3444b", "title": "UNIX text filters, part 1 of 3: grep", "url": "https://sebastiano.tronto.net/blog/2023-08-20-grep", "published_at": "2023-08-20T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f7074e1d9", "title": "My minimalistic RSS feed setup", "url": "https://sebastiano.tronto.net/blog/2023-07-11-feed", "published_at": "2023-07-11T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f709eba42", "title": "UNIX text filters, part 0 of 3: regular expressions", "url": "https://sebastiano.tronto.net/blog/2023-06-16-regex", "published_at": "2023-06-16T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f70b0a38d", "title": "I had to debug C code on a smartphone", "url": "https://sebastiano.tronto.net/blog/2023-05-05-debug-smartphone", "published_at": "2023-05-05T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f710189bd", "title": "The big rewrite", "url": "https://sebastiano.tronto.net/blog/2023-04-10-the-big-rewrite", "published_at": "2023-04-10T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f71f86092", "title": "The man page reading club: dc(1)", "url": "https://sebastiano.tronto.net/blog/2023-03-30-dc", "published_at": "2023-03-30T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f72ccf309", "title": "Resizing my website's pictures with ImageMagick and find(1)", "url": "https://sebastiano.tronto.net/blog/2023-03-06-resize-pictures", "published_at": "2023-03-06T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f73519c05", "title": "Job control: one shell is all you need", "url": "https://sebastiano.tronto.net/blog/2023-02-25-job-control", "published_at": "2023-02-25T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f74292ebf", "title": "The year of the Windows desktop", "url": "https://sebastiano.tronto.net/blog/2023-01-28-windows-desktop", "published_at": "2023-01-28T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f74cf63e4", "title": "Aaron Swartz", "url": "https://sebastiano.tronto.net/blog/2023-01-11-aaron-swartz", "published_at": "2023-01-11T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f75c9728a", "title": "Getting my blog ready for 2023", "url": "https://sebastiano.tronto.net/blog/2022-12-30-blog-ready", "published_at": "2022-12-30T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f76240f62", "title": "The man page reading club: ed(1)", "url": "https://sebastiano.tronto.net/blog/2022-12-24-ed", "published_at": "2022-12-24T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f768e8aba", "title": "Self-hosted git pages with stagit (featuring ed, the standard editor)", "url": "https://sebastiano.tronto.net/blog/2022-11-23-git-host", "published_at": "2022-11-23T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f76c0d8f7", "title": "Keeping my email sorted (the hard way)", "url": "https://sebastiano.tronto.net/blog/2022-10-19-email-setup", "published_at": "2022-10-19T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f77696375", "title": "The man page reading club: tetris(6)", "url": "https://sebastiano.tronto.net/blog/2022-10-01-tetris", "published_at": "2022-10-01T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f77816d21", "title": "The man page reading club: sh(1) - part 2: commands and builtins", "url": "https://sebastiano.tronto.net/blog/2022-09-20-sh-2", "published_at": "2022-09-20T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f78783592", "title": "The man page reading club: sh(1) - part 1: shell grammar", "url": "https://sebastiano.tronto.net/blog/2022-09-13-sh-1", "published_at": "2022-09-13T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f78f07964", "title": "Long live netbooks!", "url": "https://sebastiano.tronto.net/blog/2022-09-10-netbooks", "published_at": "2022-09-10T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f79995490", "title": "Pipe man into col -b to get rid of \\^H", "url": "https://sebastiano.tronto.net/blog/2022-09-05-man-col", "published_at": "2022-09-05T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f7a570915", "title": "How I update my website", "url": "https://sebastiano.tronto.net/blog/2022-08-14-website", "published_at": "2022-08-14T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f7ac51d3d", "title": "The man page reading club: shutdown(8)", "url": "https://sebastiano.tronto.net/blog/2022-07-07-shutdown", "published_at": "2022-07-07T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f7b41b954", "title": "The UNIX shell as an IDE: look stuff up with sed", "url": "https://sebastiano.tronto.net/blog/2022-06-12-shell-ide-sed", "published_at": "2022-06-12T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f7bb692e4", "title": "The man page reading club: more(1)", "url": "https://sebastiano.tronto.net/blog/2022-06-08-more", "published_at": "2022-06-08T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f7c5a2360", "title": "The gemini protocol", "url": "https://sebastiano.tronto.net/blog/2022-06-04-gemini", "published_at": "2022-06-04T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f7c7aca48", "title": "The man page reading club: man(1)", "url": "https://sebastiano.tronto.net/blog/2022-05-29-man", "published_at": "2022-05-29T00:00:00+00:00" }, { "id": "01a087dd-9608-7388-9c4e-832f7cb5db51", "title": "Blogs", "url": "https://sebastiano.tronto.net/blog/2022-05-21-blogs", "published_at": "2022-05-21T00:00:00+00:00" } ] posts Claim your blog
Back to Blog | Sebastiano Tronto
Blog · corpus.blog/blogs/sebastiano.tronto.net/posts

Blog | Sebastiano Tronto

sebastiano.tronto.net

2026

2025

2024

2023

15 Sept 2023

2022