56,966 blogs · [ { "id": "01a08786-c6b8-7191-b37c-dd0ba2bf8e6a", "title": "Foiling a Protohackers email spam bot", "url": "https://incoherency.co.uk/blog/stories/foiling-protohackers-spam-bot.html", "published_at": "2026-08-18T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba324c5b4", "title": "Trailer", "url": "https://incoherency.co.uk/blog/stories/trailer.html", "published_at": "2026-08-12T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba3db32b5", "title": "Should you wash your solar panels?", "url": "https://incoherency.co.uk/blog/stories/should-you-wash-your-solar-panels.html", "published_at": "2026-07-21T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba4aabfc0", "title": "Optimistic epsilon-greedy", "url": "https://incoherency.co.uk/blog/stories/optimistic-epsilon-greedy.html", "published_at": "2026-07-13T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba5319123", "title": "ProofToken16: My Proposal for Private Decentralised Age Verification", "url": "https://incoherency.co.uk/blog/stories/private-decentralised-age-verification.html", "published_at": "2026-07-04T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba61f78e7", "title": "Telepresence Burglary", "url": "https://incoherency.co.uk/blog/stories/telepresence-burglary.html", "published_at": "2026-07-01T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba6dd60ad", "title": "How to make a hyperlink", "url": "https://incoherency.co.uk/blog/stories/hyperlink.html", "published_at": "2026-05-24T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba7c994ff", "title": "How to publish your secrets on Docker Hub", "url": "https://incoherency.co.uk/blog/stories/secrets-on-dockerhub.html", "published_at": "2026-05-21T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba85e1a7c", "title": "Stealth Browser Survey: April 2026", "url": "https://incoherency.co.uk/blog/stories/stealth-browser-survey-april-2026.html", "published_at": "2026-04-24T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba89119d7", "title": "Bot Forensics", "url": "https://incoherency.co.uk/blog/stories/botforensics.html", "published_at": "2026-02-25T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba8aad2d4", "title": "Claws", "url": "https://incoherency.co.uk/blog/stories/claws.html", "published_at": "2026-02-22T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0ba961030d", "title": "Evidence of absence", "url": "https://incoherency.co.uk/blog/stories/evidence-of-absence.html", "published_at": "2026-02-13T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0baa5f25d3", "title": "Tractor", "url": "https://incoherency.co.uk/blog/stories/tractor.html", "published_at": "2026-01-19T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bab0ee946", "title": "A parametric mannequin for FreeCAD", "url": "https://incoherency.co.uk/blog/stories/freecad-mannequin.html", "published_at": "2026-01-07T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bab2cf221", "title": "Against Gift Aid", "url": "https://incoherency.co.uk/blog/stories/against-giftaid.html", "published_at": "2026-01-04T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bab6b2ecd", "title": "Anticloaking", "url": "https://incoherency.co.uk/blog/stories/anticloaking.html", "published_at": "2025-12-15T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bac32933b", "title": "Student loan deductions", "url": "https://incoherency.co.uk/blog/stories/student-loan.html", "published_at": "2025-12-08T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bac79690c", "title": "AI Test User", "url": "https://incoherency.co.uk/blog/stories/aitestuser.html", "published_at": "2025-07-15T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0baccfbc8c", "title": "The Story of Max, a Real Programmer", "url": "https://incoherency.co.uk/blog/stories/the-story-of-max.html", "published_at": "2025-06-29T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bad477769", "title": "The web program manifesto", "url": "https://incoherency.co.uk/blog/stories/web-programs.html", "published_at": "2025-06-03T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bada71b94", "title": "Against exponential backoff", "url": "https://incoherency.co.uk/blog/stories/against-exponential-backoff.html", "published_at": "2025-05-22T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bae8e0c48", "title": "Conservation of tins of paint", "url": "https://incoherency.co.uk/blog/stories/conservation-of-tins-of-paint.html", "published_at": "2025-05-12T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0baf56b531", "title": "You never ask how I'm doing", "url": "https://incoherency.co.uk/blog/stories/you-never-ask-how-im-doing.html", "published_at": "2025-04-17T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0baff1cff9", "title": "Building blocks for F-Rep CAD", "url": "https://incoherency.co.uk/blog/stories/frep-cad-building-blocks.html", "published_at": "2025-04-08T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb0ce26a0", "title": "Thoughts on Signed Distance Functions for CAD", "url": "https://incoherency.co.uk/blog/stories/sdf-thoughts.html", "published_at": "2025-03-07T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb113f5ab", "title": "How to abort calculations in OpenCascade", "url": "https://incoherency.co.uk/blog/stories/freecad-abort-long-running-operations.html", "published_at": "2025-02-27T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb1f34168", "title": "The world's stupidest AppImage", "url": "https://incoherency.co.uk/blog/stories/worlds-stupidest-appimage.html", "published_at": "2025-02-18T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb20014b0", "title": "Timeline of Discovery", "url": "https://incoherency.co.uk/blog/stories/timeline-of-discovery.html", "published_at": "2024-12-02T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb2b5c56f", "title": "Clock Gear Train Calculator", "url": "https://incoherency.co.uk/blog/stories/clock-gear-train-calculator.html", "published_at": "2024-11-11T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb31262c9", "title": "The Principles of Mr. Harrison's Time-keeper", "url": "https://incoherency.co.uk/blog/stories/principles-harrison-timekeeper.html", "published_at": "2024-11-09T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb3aab110", "title": "My diaphragm piston air engine with rotary valve", "url": "https://incoherency.co.uk/blog/stories/diaphragm-piston-air-engine-rotary-valve.html", "published_at": "2024-11-08T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb4266cbe", "title": "Prompts as source code: a vision for the future of programming", "url": "https://incoherency.co.uk/blog/stories/prompts-as-source-code.html", "published_at": "2024-11-04T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb4cfc12c", "title": "Bare minds", "url": "https://incoherency.co.uk/blog/stories/bare-minds.html", "published_at": "2024-10-06T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb584f697", "title": "The free space equation", "url": "https://incoherency.co.uk/blog/stories/free-space.html", "published_at": "2024-09-15T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb5d1010b", "title": "Encyclopedia Mechanica", "url": "https://incoherency.co.uk/blog/stories/encyclopedia-mechanica.html", "published_at": "2024-09-10T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb69c3397", "title": "I made an LLM-powered Colonel Blotto game", "url": "https://incoherency.co.uk/blog/stories/colonel-blotto-game.html", "published_at": "2024-07-21T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb73d958d", "title": "2014 Nissan Leaf: first impressions", "url": "https://incoherency.co.uk/blog/stories/nissan-leaf.html", "published_at": "2024-07-08T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb7e3a972", "title": "Secrets of the ChatGPT Linux system", "url": "https://incoherency.co.uk/blog/stories/chatgpt-linux.html", "published_at": "2024-06-16T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb84ca48f", "title": "My first microlighting experience", "url": "https://incoherency.co.uk/blog/stories/microlighting.html", "published_at": "2024-05-04T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb85b27eb", "title": "I'm building a fixed-gantry CNC machine out of composite kitchen worktop material", "url": "https://incoherency.co.uk/blog/stories/minerva-cnc-machine.html", "published_at": "2024-04-21T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb8be2893", "title": "How to read from a TCP socket (but were too afraid to ask)", "url": "https://incoherency.co.uk/blog/stories/reading-tcp-sockets.html", "published_at": "2024-02-10T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb902a0ed", "title": "We're not in a simulation", "url": "https://incoherency.co.uk/blog/stories/simulation.html", "published_at": "2024-02-02T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bb9e000b9", "title": "The watch project", "url": "https://incoherency.co.uk/blog/stories/the-watch-project.html", "published_at": "2023-11-23T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbac885cc", "title": "Interesting features of John Harrison's sea clocks", "url": "https://incoherency.co.uk/blog/stories/harrison-clocks.html", "published_at": "2023-11-12T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbaffeae3", "title": "Incongruous technologies redux", "url": "https://incoherency.co.uk/blog/stories/incongruous-technologies-redux.html", "published_at": "2023-11-05T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbb89cc26", "title": "A self-aligning Boggle board", "url": "https://incoherency.co.uk/blog/stories/self-aligning-boggle.html", "published_at": "2023-10-25T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbb93262e", "title": "The Douzieme gauge", "url": "https://incoherency.co.uk/blog/stories/douzieme-gauge.html", "published_at": "2023-10-02T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbba57045", "title": "Five interesting things from the Science Museum", "url": "https://incoherency.co.uk/blog/stories/science-museum.html", "published_at": "2023-08-23T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbc1d3b3c", "title": "Designing a Bangle.js commute timer", "url": "https://incoherency.co.uk/blog/stories/banglejs-commute-timer.html", "published_at": "2023-08-16T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbc9f23d1", "title": "The Egyptian coin box", "url": "https://incoherency.co.uk/blog/stories/egyptian-coin-box.html", "published_at": "2023-08-05T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbcc0e130", "title": "dnstweak: quick local DNS spoofing tool", "url": "https://incoherency.co.uk/blog/stories/dnstweak.html", "published_at": "2023-07-11T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbd2a3195", "title": "Exploiting an insecure cipher in the wild", "url": "https://incoherency.co.uk/blog/stories/opensips-topology-hiding-encoding.html", "published_at": "2023-07-06T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbe08be47", "title": "Incongruous technologies", "url": "https://incoherency.co.uk/blog/stories/incongruous-technologies.html", "published_at": "2023-07-02T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbe5b2efd", "title": "Triangle strip encoding", "url": "https://incoherency.co.uk/blog/stories/triangle-strip-encoding.html", "published_at": "2023-06-22T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbe6023d8", "title": "Did I receive fraudulent DMCA takedowns?", "url": "https://incoherency.co.uk/blog/stories/hardbin-fake-takedowns.html", "published_at": "2023-06-21T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbedbe8df", "title": "Book Review: Bloodhounds (includes spoilers)", "url": "https://incoherency.co.uk/blog/stories/bloodhounds.html", "published_at": "2023-05-31T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bbfd36274", "title": "Taxonomy of locked room murders", "url": "https://incoherency.co.uk/blog/stories/locked-room-murders.html", "published_at": "2023-05-24T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc0b8d7b0", "title": "The crank position sensor works", "url": "https://incoherency.co.uk/blog/stories/crank-position-sensor.html", "published_at": "2023-05-06T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc1192de2", "title": "A quick 3d-printed light gate", "url": "https://incoherency.co.uk/blog/stories/3dprinted-light-gate.html", "published_at": "2023-05-04T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc212b31f", "title": "Revisiting oscillating engine loss calibration", "url": "https://incoherency.co.uk/blog/stories/calibrating-oscillating-engine-losses-2.html", "published_at": "2023-05-01T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc2f49178", "title": "Coriolis fountain", "url": "https://incoherency.co.uk/blog/stories/coriolis-fountain.html", "published_at": "2023-04-29T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc3c645d4", "title": "The KRC-2 regenerative receiver kit: a review", "url": "https://incoherency.co.uk/blog/stories/krc-2-regenerative-receiver-review.html", "published_at": "2023-04-25T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc3cbf1f6", "title": "More inlet pressure measurements", "url": "https://incoherency.co.uk/blog/stories/more-inlet-pressure-measurements.html", "published_at": "2023-04-18T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc476b163", "title": "Measuring Wig-Wag inlet pressure fluctuations", "url": "https://incoherency.co.uk/blog/stories/measuring-wigwag-inlet-pressure.html", "published_at": "2023-04-17T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc54e7de1", "title": "Calibrating losses in the oscillating engine simulator", "url": "https://incoherency.co.uk/blog/stories/calibrating-oscillating-engine-losses.html", "published_at": "2023-04-13T12:00:00+00:00" }, { "id": "01a08786-c6b8-7191-b37c-dd0bc6367634", "title": "My Wig-Wag", "url": "https://incoherency.co.uk/blog/stories/wig-wag.html", "published_at": "2023-04-08T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0a243b55", "title": "Oscillating Engine Simulator", "url": "https://incoherency.co.uk/blog/stories/oscillating-engine-simulator.html", "published_at": "2023-03-19T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0ae91157", "title": "My mini lathe stand", "url": "https://incoherency.co.uk/blog/stories/mini-lathe-stand.html", "published_at": "2023-02-25T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0bb79ea5", "title": "Prime Combination: Solution", "url": "https://incoherency.co.uk/blog/stories/prime-combination-solution.html", "published_at": "2023-02-11T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0c18d721", "title": "Prime Combination", "url": "https://incoherency.co.uk/blog/stories/prime-combination.html", "published_at": "2023-02-05T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0c21d8af", "title": "Optimal eccentric-weighted coins", "url": "https://incoherency.co.uk/blog/stories/optimal-eccentric-weighted-coins.html", "published_at": "2023-01-12T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0ce556c7", "title": "Problems with Protohackers", "url": "https://incoherency.co.uk/blog/stories/protohackers-problems.html", "published_at": "2022-11-18T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0dc1ce31", "title": "Classifying minds", "url": "https://incoherency.co.uk/blog/stories/classifying-minds.html", "published_at": "2022-10-25T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0e8ca45b", "title": "Alternative revolutions", "url": "https://incoherency.co.uk/blog/stories/alternative-revolutions.html", "published_at": "2022-10-03T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0e8eca8f", "title": "Solving Protohackers with Fly.io", "url": "https://incoherency.co.uk/blog/stories/protohackers-flyio.html", "published_at": "2022-09-24T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0f081fcc", "title": "Nightdrive", "url": "https://incoherency.co.uk/blog/stories/nightdrive.html", "published_at": "2022-09-16T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0f88aff4", "title": "Protohackers problem 2 retrospective", "url": "https://incoherency.co.uk/blog/stories/protohackers-problem-2.html", "published_at": "2022-09-11T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f0fa300be", "title": "How small can you make text with a drag engraver?", "url": "https://incoherency.co.uk/blog/stories/drag-engraver-text.html", "published_at": "2022-09-05T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f10888015", "title": "The future of virtual reality", "url": "https://incoherency.co.uk/blog/stories/future-vr.html", "published_at": "2022-09-03T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f11440f29", "title": "Protohackers problem 1 retrospective", "url": "https://incoherency.co.uk/blog/stories/protohackers-problem-1.html", "published_at": "2022-08-27T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f11e13576", "title": "Protohackers: a new server programming challenge", "url": "https://incoherency.co.uk/blog/stories/protohackers.html", "published_at": "2022-08-23T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f11f05606", "title": "A SLANG interpreter for SCAMP", "url": "https://incoherency.co.uk/blog/stories/slang-interpreter.html", "published_at": "2022-08-10T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f1204aa6e", "title": "A Lisp interpreter for SCAMP", "url": "https://incoherency.co.uk/blog/stories/scamp-lisp.html", "published_at": "2022-08-03T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f1264b3ce", "title": "Cheating at chess with a computer for my shoes", "url": "https://incoherency.co.uk/blog/stories/sockfish.html", "published_at": "2022-07-30T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f12d1c377", "title": "Do I really want a lambda calculus cyberdeck?", "url": "https://incoherency.co.uk/blog/stories/lambda-calculus-cyberdeck.html", "published_at": "2022-07-13T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f12d7e93b", "title": "Eldood: what Doodle used to be", "url": "https://incoherency.co.uk/blog/stories/eldood.html", "published_at": "2022-07-01T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f13b23c88", "title": "Consciousness is computable", "url": "https://incoherency.co.uk/blog/stories/consciousness-is-computable.html", "published_at": "2022-06-20T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f14523261", "title": "The ultimate SCAMP development environment", "url": "https://incoherency.co.uk/blog/stories/scamp-development-environment.html", "published_at": "2022-06-15T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f14760165", "title": "Toolmaker's Clamp", "url": "https://incoherency.co.uk/blog/stories/toolmakers-clamp.html", "published_at": "2022-06-14T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f152b46ea", "title": "Progress on the CNC mini mill", "url": "https://incoherency.co.uk/blog/stories/mini-mill-20220609.html", "published_at": "2022-06-09T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f1560174b", "title": "FreeCAD vs SolveSpace", "url": "https://incoherency.co.uk/blog/stories/freecad-vs-solvespace.html", "published_at": "2022-05-24T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f15f50225", "title": "CNC milling machine project", "url": "https://incoherency.co.uk/blog/stories/cnc-mini-mill.html", "published_at": "2022-05-07T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f1688cf04", "title": "Meshmill: open source 3D CAM", "url": "https://incoherency.co.uk/blog/stories/meshmill.html", "published_at": "2022-05-03T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f16a780fd", "title": "Using the weird rotary axis", "url": "https://incoherency.co.uk/blog/stories/using-the-rotary-axis.html", "published_at": "2022-03-24T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f16ab9eb7", "title": "Librem 5: first impressions", "url": "https://incoherency.co.uk/blog/stories/librem5-first-impressions.html", "published_at": "2022-03-21T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f17a7098a", "title": "Packing puzzle: Six Fit", "url": "https://incoherency.co.uk/blog/stories/six-fit-puzzle.html", "published_at": "2022-03-17T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f18157946", "title": "A weird rotary axis for my CNC machine", "url": "https://incoherency.co.uk/blog/stories/cnc-rotary-axis.html", "published_at": "2022-03-10T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f186f9a73", "title": "Party Puzzling: themed puzzle sets for special occasions", "url": "https://incoherency.co.uk/blog/stories/partypuzzling.html", "published_at": "2022-02-24T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f188624e4", "title": "An Arduino-based USB interface to the Psion Organiser II", "url": "https://incoherency.co.uk/blog/stories/psion-organiser-ii-arduino-usb-interface.html", "published_at": "2022-02-05T12:00:00+00:00" }, { "id": "01a08786-c6b9-70a1-a038-466f18c4d3ce", "title": "Waypointer Moto: motorcycle navigation for Bangle.js", "url": "https://incoherency.co.uk/blog/stories/waypointer-moto.html", "published_at": "2022-01-27T12:00:00+00:00" } ] posts Claim your blog
Back to James Stanley
Blog · corpus.blog/blogs/incoherency.co.uk/posts

James Stanley

incoherency.co.uk

2026

2025

2024

2023

2022