56,966 blogs · [ { "id": "01a0d943-1b56-723c-9f06-28b8bfec363c", "title": "tokens too cheap to meter", "url": "https://jyn.dev/tokens-too-cheap-to-meter/", "published_at": "2026-09-16T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23a31f7af", "title": "we have a year to fix security everywhere", "url": "https://jyn.dev/a-year-to-fix-security/", "published_at": "2026-09-04T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23b2ad504", "title": "simple is not small", "url": "https://jyn.dev/simple-is-not-the-same-as-small/", "published_at": "2026-08-27T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23b90985b", "title": "distributed identity", "url": "https://jyn.dev/distributed-identity/", "published_at": "2026-08-24T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23bd1b99c", "title": "i've started drawing again", "url": "https://jyn.dev/i-ve-started-drawing-again/", "published_at": "2026-07-16T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23cced6b7", "title": "explaining myself through stories", "url": "https://jyn.dev/explaining-myself-through-stories/", "published_at": "2026-07-01T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23cf28adf", "title": "Precise, consistent, reliable code coverage", "url": "https://jyn.dev/talks/coverage/", "published_at": "2026-06-11T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23d949a65", "title": "Flower: an SSG with a Clojure template language", "url": "https://jyn.dev/talks/flower/", "published_at": "2026-05-08T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23db796ee", "title": "callgraph analysis", "url": "https://jyn.dev/callgraph-analysis/", "published_at": "2026-05-03T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23e7b5f23", "title": "remotely unlocking an encrypted hard disk", "url": "https://jyn.dev/remotely-unlocking-an-encrypted-hard-disk/", "published_at": "2026-01-22T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23ec6e602", "title": "pre-commit hooks are fundamentally broken", "url": "https://jyn.dev/pre-commit-hooks-are-fundamentally-broken/", "published_at": "2025-12-26T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23f4db810", "title": "i'm just having fun", "url": "https://jyn.dev/i-m-just-having-fun/", "published_at": "2025-12-15T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd23f9095be", "title": "what is a build system, anyway?", "url": "https://jyn.dev/what-is-a-build-system-anyway/", "published_at": "2025-12-12T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2405a1366", "title": "I want a better build executor", "url": "https://jyn.dev/i-want-a-better-build-executor/", "published_at": "2025-12-05T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd240b6b5de", "title": "I want a better action graph serialization", "url": "https://jyn.dev/i-want-a-better-action-graph-serialization/", "published_at": "2025-12-04T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd241622e50", "title": "negative build dependencies", "url": "https://jyn.dev/negative-build-dependencies/", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24235f2ce", "title": "brownouts reveal system boundaries", "url": "https://jyn.dev/brownouts-reveal-system-boundaries/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd242af1520", "title": "the terminal of the future", "url": "https://jyn.dev/the-terminal-of-the-future/", "published_at": "2025-11-11T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2432301b6", "title": "build system tradeoffs", "url": "https://jyn.dev/build-system-tradeoffs/", "published_at": "2025-11-02T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2440127b1", "title": "the core of rust", "url": "https://jyn.dev/the-core-of-rust/", "published_at": "2025-08-21T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2447f16bf", "title": "how to communicate with intent", "url": "https://jyn.dev/how-to-communicate-with-intent/", "published_at": "2025-08-11T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd244cb485f", "title": "an engineer's perspective on hiring", "url": "https://jyn.dev/an-engineers-perspective-on-hiring/", "published_at": "2025-08-08T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd245b1427a", "title": "you are in a box", "url": "https://jyn.dev/you-are-in-a-box/", "published_at": "2025-07-14T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2466581cd", "title": "constrained languages are easier to optimize", "url": "https://jyn.dev/constrained-languages-are-easier-to-optimize/", "published_at": "2025-07-12T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24740b641", "title": "sorry for the rss screwup", "url": "https://jyn.dev/sorry-for-the-rss-screwup/", "published_at": "2025-07-06T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd248339cd3", "title": "operators, not users and programmers", "url": "https://jyn.dev/operators-not-users-and-programmers/", "published_at": "2025-07-05T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd248fdf7ba", "title": "complected and orthogonal persistence", "url": "https://jyn.dev/complected-and-orthogonal-persistence/", "published_at": "2025-06-30T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2499d71ac", "title": "how i write blog posts", "url": "https://jyn.dev/how-i-write-blog-posts/", "published_at": "2025-06-18T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24a66ba36", "title": "how i use my terminal", "url": "https://jyn.dev/how-i-use-my-terminal/", "published_at": "2025-06-16T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24af4deab", "title": "theory building without a mentor", "url": "https://jyn.dev/theory-building-without-a-mentor/", "published_at": "2025-05-24T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24ba4b2f5", "title": "technical debt is different from technical risk", "url": "https://jyn.dev/technical-debt-is-different-from-technical-risk/", "published_at": "2025-05-23T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24bee7ebf", "title": "sftp sandboxing", "url": "https://jyn.dev/sftp-sandboxing/", "published_at": "2025-05-05T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24c36ec3f", "title": "tools", "url": "https://jyn.dev/tools/", "published_at": "2025-05-03T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24c672651", "title": "Terrible Horrible No Good Very Bad Python", "url": "https://jyn.dev/terrible-horrible-no-good-very-bad-python/", "published_at": "2025-03-28T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24ccc737d", "title": "Scheduling Do-Not-Disturb in GNOME", "url": "https://jyn.dev/do-not-disturb-in-gnome/", "published_at": "2025-02-22T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24d57c85e", "title": "building your own rustc_driver", "url": "https://jyn.dev/rustc-driver/", "published_at": "2024-10-24T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24e2a336e", "title": "the rust project has a burnout problem", "url": "https://jyn.dev/the-rust-project-has-a-burnout-problem/", "published_at": "2024-01-16T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24e57a9c5", "title": "wonder", "url": "https://jyn.dev/wonder/", "published_at": "2023-12-20T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24f0138d3", "title": "How to maintain an Open Source project", "url": "https://jyn.dev/how-to-maintain-an-open-source-project/", "published_at": "2023-12-04T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd24fdadacc", "title": "Why is Rust's build system uniquely hard to use?", "url": "https://jyn.dev/bootstrapping-rust-in-2023/", "published_at": "2023-01-12T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd250b39cc3", "title": "Git cheats", "url": "https://jyn.dev/git-cheats/", "published_at": "2022-09-02T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd250f3a369", "title": "bootstrapping: the once and future compiler", "url": "https://jyn.dev/talks/bootstrapping/", "published_at": "2022-08-05T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd251bcce58", "title": "async() => { await }", "url": "https://jyn.dev/talks/async-await/", "published_at": "2022-02-09T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2528b80d3", "title": "I'll Rust With You: the song", "url": "https://jyn.dev/i-ll-rust-with-you-the-song/", "published_at": "2021-09-10T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2530d231a", "title": "borrow-checker FAQs", "url": "https://jyn.dev/borrow-checker-faqs/", "published_at": "2021-03-20T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd253bfd388", "title": "&'borrow mut dyn FnMut(BrokenLink and other valid rust programs", "url": "https://jyn.dev/borrow-mut-dyn-fnmut-brokenlink-cowstring-and-other-valid-rust-programs/", "published_at": "2020-12-08T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd254272b22", "title": "The intra-doc links saga", "url": "https://jyn.dev/the-intra-doc-links-saga/", "published_at": "2020-10-23T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd2547e0ebe", "title": "Rust in 2021", "url": "https://jyn.dev/rust-in-2021/", "published_at": "2020-09-05T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd254ad8bf8", "title": "Building Docs.rs", "url": "https://jyn.dev/building-docs-rs/", "published_at": "2019-11-26T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd254bbc14d", "title": "Intro to Reverse Engineering", "url": "https://jyn.dev/talks/assembly/", "published_at": "2019-11-11T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd25514b8b0", "title": "Intro to C", "url": "https://jyn.dev/talks/c/", "published_at": "2019-11-05T00:00:00+00:00" }, { "id": "01a08793-1605-702a-9854-5cd255bf1e76", "title": "Intro to Linux", "url": "https://jyn.dev/talks/linux/", "published_at": "2019-09-16T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-591214360b7c", "title": "Intro to Python", "url": "https://jyn.dev/talks/python/", "published_at": "2019-09-11T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-59121505d0aa", "title": "Fun with gaming on Linux", "url": "https://jyn.dev/fun-with-gaming-on-linux/", "published_at": "2019-08-04T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-5912155ebf99", "title": "Buffer Overflows and Stacks and Assembly, Oh My!", "url": "https://jyn.dev/buffer-overflows-and-stacks-and-assembly-oh-my/", "published_at": "2019-04-29T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-5912161366d4", "title": "Reverse Engineering x86 assembly", "url": "https://jyn.dev/reverse-engineering-x86-assembly/", "published_at": "2018-09-29T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-59121624e672", "title": "Keepass on Linux and Android", "url": "https://jyn.dev/keepass-on-linux-and-android/", "published_at": "2018-08-24T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-591216e1a850", "title": "Rewriting Jython", "url": "https://jyn.dev/rewriting-jython/", "published_at": "2018-06-09T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-5912177a6602", "title": "Copying Generic Arrays in Java", "url": "https://jyn.dev/copying-generic-arrays-in-java/", "published_at": "2018-03-29T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-59121831ea70", "title": "Object Oriented Python", "url": "https://jyn.dev/object-oriented-python/", "published_at": "2018-03-03T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-591218f32a10", "title": "Password Safety", "url": "https://jyn.dev/password-safety/", "published_at": "2018-02-24T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-5912193e5c43", "title": "Speed Up!", "url": "https://jyn.dev/speed-up/", "published_at": "2018-02-14T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-591219e05769", "title": "Using PGP Keys", "url": "https://jyn.dev/using-pgp-keys/", "published_at": "2018-02-11T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-59121a229dac", "title": "THERE IS A CAR IN SPACE", "url": "https://jyn.dev/there-is-a-car-in-space/", "published_at": "2018-02-06T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-59121a67a483", "title": "Using DNSSEC", "url": "https://jyn.dev/using-dnssec/", "published_at": "2018-01-06T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-59121ae90db8", "title": "Setting up Jekyll for GitHub Pages", "url": "https://jyn.dev/setting-up-jekyll/", "published_at": "2017-12-28T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-59121b70e3d4", "title": "Hosting an SSH Server", "url": "https://jyn.dev/hosting-an-ssh-server/", "published_at": "2017-12-27T00:00:00+00:00" }, { "id": "01a08793-1606-7151-a8e7-59121c21cd64", "title": "Hello, World!", "url": "https://jyn.dev/first-post/", "published_at": "2017-12-23T00:00:00+00:00" } ] posts Claim your blog
Back to the website of jyn
Blog · corpus.blog/blogs/jyn.dev/posts

the website of jyn

jyn.dev

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017