54,302 blogs · [ { "id": "01a087b1-8497-70b6-9a41-7a48d7c2297e", "title": "Manually Restoring Scroll Position on Reload with JavaScript", "url": "https://nora.codes/tutorial/manually-restoring-scroll-position-on-reload-with-javascript/", "published_at": "2026-01-03T16:33:29+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48d83f0e23", "title": "Infrastructure Photography Manifesto (and Decker-in-HTML)", "url": "https://nora.codes/post/infrastructure-photography-manifesto-and-decker-in-html/", "published_at": "2025-11-09T01:04:22+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48d891d3d9", "title": "nimi sin", "url": "https://nora.codes/post/nimi-sin/", "published_at": "2025-04-01T00:00:00+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48d8fa086e", "title": "Adding Tags to My Projects Page", "url": "https://nora.codes/post/adding-tags-to-my-projects-page/", "published_at": "2024-10-03T15:23:02+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48d9489746", "title": "A Matter of Time", "url": "https://nora.codes/filk/a_matter_of_time/", "published_at": "2024-06-02T00:00:00+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48d9646b70", "title": "Methods Should Be Object Safe", "url": "https://nora.codes/post/methods-should-be-object-safe/", "published_at": "2024-05-04T23:06:36+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48d9c509d8", "title": "Adding Full Post Content to my RSS Feed", "url": "https://nora.codes/post/adding-full-post-content-to-my-rss-feed/", "published_at": "2024-02-27T15:26:52+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48da600ce7", "title": "Pinning nixpkgs with Morph and Colmena", "url": "https://nora.codes/post/pinning-nixpkgs-with-morph-and-colmena/", "published_at": "2024-02-18T23:55:24+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48db1c41d2", "title": "Fly On, Columbia! (Fly Columbia II)", "url": "https://nora.codes/filk/columbia/", "published_at": "2023-08-28T00:00:00+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48dbea047a", "title": "The Horror", "url": "https://nora.codes/post/the-horror/", "published_at": "2023-06-08T17:55:11+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48dbf0bda4", "title": "The Fediverse is Already Dead", "url": "https://nora.codes/post/the-fediverse-is-already-dead/", "published_at": "2023-02-24T03:21:52+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48dcc9e920", "title": "Fallout: New Vegas Is Like a TTRPG With a Bad DM", "url": "https://nora.codes/post/fallout-new-vegas-is-like-a-ttrpg-with-a-bad-dm/", "published_at": "2023-01-13T02:09:56+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48dd9b3b3c", "title": "Scaling Mastodon in the Face of an Exodus", "url": "https://nora.codes/post/scaling-mastodon-in-the-face-of-an-exodus/", "published_at": "2022-11-10T17:15:18+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48dde7ac95", "title": "It's Time to Get Hyped About Const Generics in Rust", "url": "https://nora.codes/post/its-time-to-get-hyped-about-const-generics-in-rust/", "published_at": "2021-11-06T00:00:00+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48de90a52f", "title": "Modular Synthesis and UNIX", "url": "https://nora.codes/post/modular-synthesis-and-unix/", "published_at": "2020-08-01T16:06:41+00:00" }, { "id": "01a087b1-8497-70b6-9a41-7a48df6b822f", "title": "Back to Zsh", "url": "https://nora.codes/post/back-to-zsh/", "published_at": "2020-07-14T14:36:23+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9adccd1e", "title": "Names, Legal Names, and Fractally Deferred Responsibility", "url": "https://nora.codes/post/names-legal-names-and-fractally-deferred-responsibility/", "published_at": "2020-05-11T05:05:15+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9b38efaf", "title": "Stop Making Students Use Eclipse", "url": "https://nora.codes/post/stop-making-students-use-eclipse/", "published_at": "2020-04-11T00:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9b390c2e", "title": "Packaging Desktop Apps With Flatpak", "url": "https://nora.codes/tutorial/packaging-desktop-apps-with-flatpak/", "published_at": "2019-09-10T20:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9c1466ed", "title": "HackRF Tripups with GNURadio", "url": "https://nora.codes/post/hackrf-tripups-with-gnuradio/", "published_at": "2019-09-07T21:48:29+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9c4f9bf2", "title": "Arduino Geiger Counter Dosimeter", "url": "https://nora.codes/post/arduino-geiger-counter-dosimeter/", "published_at": "2019-08-20T00:19:44+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9d30c3f9", "title": "Simple Elixir Functions", "url": "https://nora.codes/post/simple-elixir-functions/", "published_at": "2019-07-20T19:03:23+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9ddcd2d4", "title": "What Is Rust's unsafe?", "url": "https://nora.codes/post/what-is-rusts-unsafe/", "published_at": "2019-07-12T17:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9e84d20c", "title": "Speedy Desktop Apps With GTK and Rust", "url": "https://nora.codes/tutorial/speedy-desktop-apps-with-gtk-and-rust/", "published_at": "2019-07-05T21:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9f0baeb7", "title": "System76 Thelio: A Review", "url": "https://nora.codes/post/system76-thelio-a-review/", "published_at": "2019-02-23T17:31:34+00:00" }, { "id": "01a087b1-8498-730e-a290-80aa9fd99c69", "title": "Let's Build a Terrible Search", "url": "https://nora.codes/post/lets-build-a-terrible-search/", "published_at": "2019-02-04T03:09:52+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa05e65fc", "title": "Fedidict Implementation: Setting Up the Database", "url": "https://nora.codes/post/fedidict_implementation_01_setting_up_the_database/", "published_at": "2018-09-06T17:31:37+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa11ffcd3", "title": "FediDict UX Design, Part 2", "url": "https://nora.codes/post/fedidict_ux_design_part_2/", "published_at": "2018-09-02T00:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa14aa444", "title": "FediDict UX Design, Part 1", "url": "https://nora.codes/post/fedidict_ux_design_part_1/", "published_at": "2018-08-23T18:04:14+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa1fb9b8f", "title": "PDF Embedding Attacks", "url": "https://nora.codes/post/pdf-embedding-attacks/", "published_at": "2018-08-04T17:17:11+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa275867e", "title": "Building Readable Tests with Fluent Testing APIs", "url": "https://nora.codes/tutorial/building-readable-tests-with-fluent-testing-apis/", "published_at": "2018-07-23T14:56:24+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa291be79", "title": "Chaining Fallible Operations with Combinators", "url": "https://nora.codes/tutorial/chaining-fallible-operations-with-combinators/", "published_at": "2018-06-26T17:54:53+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa2f6fa84", "title": "Improved User Interface 0.3.0!", "url": "https://nora.codes/post/improved-user-interface-0.3.0/", "published_at": "2018-06-13T13:46:55+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa3053f79", "title": "#DeleteFacebook and FOSTA/SESTA", "url": "https://nora.codes/post/deletefacebook-and-fosta/", "published_at": "2018-03-28T16:16:18+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa3f244d7", "title": "U2F Zero in Firefox", "url": "https://nora.codes/post/u2f-zero-in-firefox/", "published_at": "2018-03-26T16:48:21+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa462d77c", "title": "A Methodology for Fontconfig Editing", "url": "https://nora.codes/post/a-methodology-for-fontconfig-editing/", "published_at": "2018-03-07T17:16:38+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa4faa30a", "title": "Additional Exercises in Reverse Engineering", "url": "https://nora.codes/tutorial/additional-exercises-in-reverse-engineering/", "published_at": "2018-02-03T17:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa5bbb24e", "title": "An Intro to x86_64 Reverse Engineering", "url": "https://nora.codes/tutorial/an-intro-to-x86_64-reverse-engineering/", "published_at": "2017-11-16T18:29:37+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa629eefa", "title": "RandomUA", "url": "https://nora.codes/projects/randomua/", "published_at": "2017-11-08T00:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa6333f88", "title": "Locking Down Firefox", "url": "https://nora.codes/tutorial/locking-down-firefox/", "published_at": "2017-11-06T17:32:43+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa6484966", "title": "A Gentle Introduction to Practical Types", "url": "https://nora.codes/tutorial/a-gentle-introduction-to-practical-types/", "published_at": "2017-09-29T00:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa715a177", "title": "BattleDome VR, a Review", "url": "https://nora.codes/post/battledome-vr-a-review/", "published_at": "2017-06-16T00:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa7f0b045", "title": "Quanero VR, a Review", "url": "https://nora.codes/post/quanero-vr-a-review/", "published_at": "2017-05-27T00:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa8cb6f4b", "title": "Thoughts on Virtual Reality", "url": "https://nora.codes/post/thoughts-on-virtual-reality/", "published_at": "2017-05-26T00:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa9259387", "title": "SBrain, an extension of BrainF.ck", "url": "https://nora.codes/post/sbrain-an-extension-of-brainfzck/", "published_at": "2017-05-02T00:00:00+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa9b1a7d5", "title": "MLeM, a VM for genetic programming", "url": "https://nora.codes/post/mlem-a-vm-for-genetic-programming/", "published_at": "2017-04-17T04:48:50+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaa9c3eee5", "title": "Getting started with Piston, a game library for Rust", "url": "https://nora.codes/tutorial/piston-a-game-library-in-rust/", "published_at": "2017-03-14T04:48:50+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaaa7a5608", "title": "Session Types", "url": "https://nora.codes/tutorial/session-types/", "published_at": "2017-02-16T01:49:50+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaaa8918d2", "title": "socketserver: the Python networking module you didn't know you needed", "url": "https://nora.codes/tutorial/socketserver-the-python-networking-module-you-didnt-know-you-needed/", "published_at": "2016-12-24T05:04:24+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaab40c216", "title": "Rewriting tinyhttpd in Rust, Part One", "url": "https://nora.codes/post/rewriting-tinyhttpd-in-rust-part-one/", "published_at": "2016-10-21T14:07:09+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaabefef4b", "title": "Am I in a Terminal?", "url": "https://nora.codes/tutorial/am-i-in-a-terminal/", "published_at": "2016-09-13T01:55:38+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaac83785a", "title": "Learning Japanese the Python Way", "url": "https://nora.codes/post/learning-japanese-the-python-way/", "published_at": "2016-08-29T22:06:19+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaac92bed6", "title": "Why Linux on the PC Needs a Focus on Hardware Support", "url": "https://nora.codes/post/why-linux-on-the-pc-needs-a-focus-on-hardware-support/", "published_at": "2016-08-02T16:28:47+00:00" }, { "id": "01a087b1-8498-730e-a290-80aaad4d92fe", "title": "Porting Deucalion to Rust", "url": "https://nora.codes/post/porting-deucalion-to-rust/", "published_at": "2016-07-11T15:33:38+00:00" }, { "id": "01a087b1-8499-7010-bdf9-0255538ce4bb", "title": "I Repaired My Headphones", "url": "https://nora.codes/post/i-repaired-my-headphones/", "published_at": "2016-06-04T14:53:55+00:00" }, { "id": "01a087b1-8499-7010-bdf9-0255546e2c81", "title": "Open Source for Normal People", "url": "https://nora.codes/post/open-source-for-normal-people/", "published_at": "2016-04-11T05:54:17+00:00" }, { "id": "01a087b1-8499-7010-bdf9-0255552a0cb7", "title": "The Sinclair ZX-81/TS-1000", "url": "https://nora.codes/post/the-sinclair-zx-81-ts-1000/", "published_at": "2016-04-10T15:42:56+00:00" }, { "id": "01a087b1-8499-7010-bdf9-0255560209f6", "title": "IPFS, the Interplanetary File System", "url": "https://nora.codes/post/ipfs-the-interplanetary-file-system/", "published_at": "2016-04-10T15:37:11+00:00" }, { "id": "01a087b1-8499-7010-bdf9-0255560321de", "title": "Keys and Fingerprints", "url": "https://nora.codes/keys/", "published_at": "2016-01-22T00:00:00+00:00" }, { "id": "01a087b1-8499-7010-bdf9-025556a61518", "title": "Off-site Writing", "url": "https://nora.codes/elsewhere/", "published_at": null } ] posts Claim your blog
Back to nora.codes
Blog · corpus.blog/blogs/nora.codes/posts

nora.codes

nora.codes

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

Undated