41554 blogs · [ { "id": "01a08760-e5c5-7053-8e41-5d739d4b3210", "title": "Crash recovery in 256 bytes", "url": "https://cliffle.com/blog/exhubris-super/", "published_at": "2024-12-14T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d739d8de37f", "title": "Revisiting Hubris appconfigs", "url": "https://cliffle.com/blog/exhubris/", "published_at": "2024-11-25T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d739e7dc868", "title": "From Hubris To Bits", "url": "https://cliffle.com/blog/from-hubris-to-bits/", "published_at": "2024-11-18T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d739f451582", "title": "Putting custom firmware on the WASD CODE v2", "url": "https://cliffle.com/blog/recode/", "published_at": "2024-10-31T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d739fae3f2f", "title": "lilos v1.0 released", "url": "https://cliffle.com/blog/lilos-1-0/", "published_at": "2024-04-23T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d739ff7b970", "title": "The server chose violence", "url": "https://cliffle.com/blog/hubris-reply-fault/", "published_at": "2024-04-08T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a08d04b1", "title": "Who killed the network switch?", "url": "https://cliffle.com/blog/who-killed-the-network-switch/", "published_at": "2024-03-24T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a1653b1d", "title": "I made a thing to help you make a thing out of a keypad", "url": "https://cliffle.com/blog/keypad-go/", "published_at": "2024-02-27T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a1b18fce", "title": "Making my website faster", "url": "https://cliffle.com/blog/making-website-faster/", "published_at": "2024-01-13T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a1d78563", "title": "Planning to redirect traffic to HTTPS", "url": "https://cliffle.com/blog/turning-off-http/", "published_at": "2024-01-08T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a1d92015", "title": "An STM32 WFI bug", "url": "https://cliffle.com/blog/stm32-wfi-bug/", "published_at": "2023-07-17T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a24274d2", "title": "Mutex without lock, Queue without push: cancel safety in lilos", "url": "https://cliffle.com/blog/lilos-cancel-safety/", "published_at": "2023-07-10T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a2f757bd", "title": "Getting file/line in await traces", "url": "https://cliffle.com/blog/async-decl-coords/", "published_at": "2023-07-05T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a346320b", "title": "Composing concurrency in drivers", "url": "https://cliffle.com/blog/composed-concurrency-in-drivers/", "published_at": "2023-07-04T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a3869c37", "title": "How to think about `async`/`await` in Rust", "url": "https://cliffle.com/blog/async-inversion/", "published_at": "2023-06-30T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a3aa9f79", "title": "Writing a basic `async` debugger", "url": "https://cliffle.com/blog/lildb/", "published_at": "2023-06-30T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a42e0e0a", "title": "Safely writing code that isn't thread-safe", "url": "https://cliffle.com/blog/not-thread-safe/", "published_at": "2022-11-22T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a4832aaa", "title": "Why Rust mutexes look like they do", "url": "https://cliffle.com/blog/rust-mutexes/", "published_at": "2022-03-31T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a5297987", "title": "RSS Feed Back On", "url": "https://cliffle.com/blog/rss-back-on/", "published_at": "2021-12-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a5f6b485", "title": "On Hubris And Humility", "url": "https://cliffle.com/blog/on-hubris-and-humility/", "published_at": "2021-12-06T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a5fd923a", "title": "Vanilla sweet potatoes", "url": "https://cliffle.com/food/sweet-potatoes/", "published_at": "2021-10-27T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a62a7019", "title": "Oatmeal Lace Cookies", "url": "https://cliffle.com/food/oatmeal-lace-cookies/", "published_at": "2021-03-20T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a6e1d03f", "title": "Sorghum gingersnaps", "url": "https://cliffle.com/food/sorghum-gingersnaps/", "published_at": "2021-03-09T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a7448dfc", "title": "Boosted cinnamon rolls", "url": "https://cliffle.com/food/boosted-cinnamon-rolls/", "published_at": "2021-03-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a76327c4", "title": "Citrus cream cheese frosting", "url": "https://cliffle.com/food/citrus-cream-cheese-frosting/", "published_at": "2021-03-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a856dd8b", "title": "Tangy collard greens", "url": "https://cliffle.com/food/collard-greens/", "published_at": "2021-03-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a8998522", "title": "Basic granola", "url": "https://cliffle.com/food/granola/", "published_at": "2021-03-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73a976156d", "title": "Saag Whatever", "url": "https://cliffle.com/food/saag-whatever/", "published_at": "2021-03-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73aa385875", "title": "The First-Mover Allocator Pattern", "url": "https://cliffle.com/blog/rust-first-mover/", "published_at": "2020-09-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73aa4c3895", "title": "Accessibility Updates", "url": "https://cliffle.com/blog/accessibility-updates/", "published_at": "2020-01-24T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73aa8592f7", "title": "Let The Compiler Do The Work", "url": "https://cliffle.com/p/dangerust/6/", "published_at": "2020-01-05T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73aa947ca0", "title": "Making Safe Things From Unsafe Parts", "url": "https://cliffle.com/p/dangerust/5/", "published_at": "2019-12-14T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73ab90a866", "title": "A More Perfect Union", "url": "https://cliffle.com/p/dangerust/4/", "published_at": "2019-12-11T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73abad1669", "title": "Measure What You Optimize", "url": "https://cliffle.com/p/dangerust/3/", "published_at": "2019-12-09T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73abcf56b2", "title": "Why Learn Rust the Dangerous Way?", "url": "https://cliffle.com/p/dangerust/0/", "published_at": "2019-12-02T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73ac019d37", "title": "References Available Upon Request", "url": "https://cliffle.com/p/dangerust/2/", "published_at": "2019-12-02T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73ac2bcc7e", "title": "You Can't Write C in Just Any Ol' Language", "url": "https://cliffle.com/p/dangerust/1/", "published_at": "2019-11-24T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73ace01db5", "title": "Making really tiny WebAssembly graphics demos", "url": "https://cliffle.com/blog/bare-metal-wasm/", "published_at": "2019-06-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73ad637ae0", "title": "The Typestate Pattern in Rust", "url": "https://cliffle.com/blog/rust-typestate/", "published_at": "2019-06-05T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73add3bb9e", "title": "Rewriting m4vgalib in Rust", "url": "https://cliffle.com/blog/m4vga-in-rust/", "published_at": "2019-02-23T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73ae546bac", "title": "Prefer Rust to C/C++ for new code.", "url": "https://cliffle.com/blog/prefer-rust/", "published_at": "2019-02-07T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73ae7bf5c2", "title": "Racing the Beam", "url": "https://cliffle.com/blog/racing-the-beam/", "published_at": "2015-06-16T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73aede2489", "title": "A Glitch in the Matrix", "url": "https://cliffle.com/blog/glitch-in-the-matrix/", "published_at": "2015-06-10T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73afce0d70", "title": "Pushing Pixels", "url": "https://cliffle.com/blog/pushing-pixels/", "published_at": "2015-06-06T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73afee8918", "title": "Introducing Glitch", "url": "https://cliffle.com/blog/introducing-glitch/", "published_at": "2015-06-05T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b0a75677", "title": "Switching this site from Jekyll to Hakyll", "url": "https://cliffle.com/blog/hakyll/", "published_at": "2015-05-09T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b10805c5", "title": "Project Loon", "url": "https://cliffle.com/blog/loon/", "published_at": "2013-06-18T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b15fe420", "title": "My Recommended Publicfile Patches", "url": "https://cliffle.com/blog/publicfile-patches/", "published_at": "2013-01-26T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b19ab222", "title": "Attacks on my Server: The Data", "url": "https://cliffle.com/blog/data-on-attacks/", "published_at": "2013-01-20T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b1fbe15c", "title": "SSH Usernames Used in Attacks On My Server", "url": "https://cliffle.com/blog/data-on-attacks/ssh-usernames/", "published_at": "2013-01-20T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b2bd0f28", "title": "Ultimate Guide to 3D Printing", "url": "https://cliffle.com/blog/ultimate-guide-to-3d-printing/", "published_at": "2013-01-20T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b389e606", "title": "Introducing swddude", "url": "https://cliffle.com/blog/swddude/", "published_at": "2012-03-23T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b3e0fa41", "title": "Language-Independent Sandboxing of Just-In-Time Compilation and Self-Modifying Code", "url": "https://cliffle.com/pub/safe-self-modification/", "published_at": "2012-03-14T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b4041f8e", "title": "Being a Social Hacker", "url": "https://cliffle.com/blog/ace-monster-toys/", "published_at": "2011-03-13T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b438a500", "title": "Making Thingiverse Faster", "url": "https://cliffle.com/blog/making-thingiverse-faster/", "published_at": "2011-02-24T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b52a642f", "title": "Fixing the Heated Build Platform's Bolts", "url": "https://cliffle.com/blog/fixing-cupcake-hbp-bolts/", "published_at": "2011-02-21T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b5e2372c", "title": "Implementing the Luhn Algorithm", "url": "https://cliffle.com/blog/luhn/", "published_at": "2011-02-17T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b5fa3a67", "title": "Using PLA with the MakerBot Plastruder MK5", "url": "https://cliffle.com/blog/using-pla/", "published_at": "2011-02-17T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b6b504c6", "title": "Hello Blag!", "url": "https://cliffle.com/blog/hello-blag/", "published_at": "2011-02-15T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b797a47e", "title": "Adapting Software Fault Isolation to Contemporary CPU Architectures", "url": "https://cliffle.com/pub/native-client-paper/", "published_at": "2010-08-11T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b7a68130", "title": "Beatnik", "url": "https://cliffle.com/esoterica/beatnik/", "published_at": "2001-05-19T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b82de0a3", "title": "4DL", "url": "https://cliffle.com/esoterica/4dl/", "published_at": "2001-05-16T00:00:00+00:00" }, { "id": "01a08760-e5c5-7053-8e41-5d73b85139be", "title": "HQ9+", "url": "https://cliffle.com/esoterica/hq9plus/", "published_at": "2001-05-11T00:00:00+00:00" } ] posts Claim your blog
Back to Cliff L. Biffle
Blog · corpus.blog/blogs/cliffle.com/posts

Cliff L. Biffle

cliffle.com

2024

2023

2022

2021

2020

2019

2015

2013

2012

2011

2010

2001

16 May 2001
11 May 2001