41554 blogs · [ { "id": "01a0878a-5db5-70de-9940-ddd2567a0d00", "title": "Introducing Onus - The Code Is Generated, The Responsibility Is Still Mine", "url": "https://www.jamesdrandall.com/posts/introducing-onus-the-code-is-generated-the-responsibility-is-still-mine/", "published_at": "2026-09-06T09:00:00+00:00" }, { "id": "01a0878a-5db6-7346-a1ef-ddf8ad5775c5", "title": "Onus", "url": "https://www.jamesdrandall.com/projects/onus/", "published_at": "2026-09-06T09:00:00+00:00" }, { "id": "01a0878a-5db6-7346-a1ef-ddf8ad5e6ca4", "title": "Nobody Could Have Written the Ticket", "url": "https://www.jamesdrandall.com/posts/nobody-could-have-written-the-ticket/", "published_at": "2026-08-19T04:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6f918716d", "title": "Someone Still Has to Sign It - and the Research Says They'll Stop Reading", "url": "https://www.jamesdrandall.com/posts/someone-still-has-to-sign-it/", "published_at": "2026-08-18T18:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6f930eb6a", "title": "The Return of the Bedroom Coder - and How I Made My Peace", "url": "https://www.jamesdrandall.com/posts/the-return-of-the-bedroom-coder/", "published_at": "2026-08-01T06:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6f9cbcfcd", "title": "Exile", "url": "https://www.jamesdrandall.com/projects/exile/", "published_at": "2026-07-19T00:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fa6d680b", "title": "Teaching a Computer to Play 4X: How the Annhexation AI Works", "url": "https://www.jamesdrandall.com/posts/teaching-a-computer-to-play-4x/", "published_at": "2026-05-30T06:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fad61c7a", "title": "Does the Data Show Trump Sundowning? A Look at His Posting Rhythm", "url": "https://www.jamesdrandall.com/posts/does-the-data-show-trump-is-sundowning/", "published_at": "2026-05-17T08:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6faf318e8", "title": "GitHub CoPilot and Real Scrutiny", "url": "https://www.jamesdrandall.com/posts/github-copilot-facing-real-scrutiny/", "published_at": "2026-05-01T08:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fb5724d3", "title": "Annhexation", "url": "https://www.jamesdrandall.com/projects/annhexation/", "published_at": "2026-03-29T00:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fb789e06", "title": "Training a Neural Network in 16-Bit Fixed Point on a 1982 BBC Micro", "url": "https://www.jamesdrandall.com/posts/neural_network_bbc_micro/", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fbe09cea", "title": "Building a Real-Time Path Tracer in WebGPU", "url": "https://www.jamesdrandall.com/posts/building-a-real-time-path-tracer-in-webgpu/", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fc802a83", "title": "Path Tracer", "url": "https://www.jamesdrandall.com/projects/path-tracer/", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fd18649f", "title": "Jensen Huang Is Training His Own Replacement", "url": "https://www.jamesdrandall.com/posts/jensen-huang-is-training-his-own-replacement/", "published_at": "2026-03-07T12:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fe115e95", "title": "Neural Networks for Developers - XOR (Part 1)", "url": "https://www.jamesdrandall.com/posts/neural_networks_for_developers_part_1_xor/", "published_at": "2026-03-01T10:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fe5a6d50", "title": "AI Can't Recreate Thrust (But It Can Help You Understand It)", "url": "https://www.jamesdrandall.com/posts/thrust_ai_powered_software_archaeology/", "published_at": "2026-02-23T07:30:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6fe8c5bb2", "title": "Thrust", "url": "https://www.jamesdrandall.com/projects/thrust/", "published_at": "2026-02-21T05:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6feb878f0", "title": "I Started Programming When I Was 7. I'm 50 Now, and the Thing I Loved Has Changed", "url": "https://www.jamesdrandall.com/posts/the_thing_i_loved_has_changed/", "published_at": "2026-02-10T07:30:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6febc0588", "title": "The Real AI Risk Isn't Job Loss — It's Epistemic", "url": "https://www.jamesdrandall.com/posts/real-ai-risk-isnt-job-loss-its-epistemic/", "published_at": "2025-12-31T07:30:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f6ffacf326", "title": "Vektrix", "url": "https://www.jamesdrandall.com/projects/vektrix/", "published_at": "2025-12-13T05:00:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f70060d73e", "title": "Vektrix: Building a Psychedelic Twinstick Shooter with WebGPU in 2 Days", "url": "https://www.jamesdrandall.com/posts/building-a-webgpu-twinstick-psychedelic-shooter/", "published_at": "2025-12-11T07:30:00+00:00" }, { "id": "01a0878a-5db7-7159-adcd-21f700aa0cb6", "title": "Teaching an LLM to Write Assembly: GBNF-Constrained Generation for a Custom 8-Bit CPU", "url": "https://www.jamesdrandall.com/posts/gbnf-constrained-generation/", "published_at": "2025-12-03T07:30:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b17923e3388", "title": "8-bit Console", "url": "https://www.jamesdrandall.com/projects/8bit-console/", "published_at": "2025-11-29T05:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1792816759", "title": "About me", "url": "https://www.jamesdrandall.com/about/", "published_at": "2025-11-29T00:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1792fea47b", "title": "TS-Trek", "url": "https://www.jamesdrandall.com/projects/tstrek/", "published_at": "2025-10-17T05:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b17933717da", "title": "8-bit Golf", "url": "https://www.jamesdrandall.com/projects/8bitgolf/", "published_at": "2025-09-18T05:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1793eb2ea0", "title": "Graph Paper", "url": "https://www.jamesdrandall.com/projects/graph-paper/", "published_at": "2024-10-07T05:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1794e26847", "title": "VoxEd", "url": "https://www.jamesdrandall.com/projects/voxed/", "published_at": "2024-06-29T09:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1794e59057", "title": "SprEd: New selection tools", "url": "https://www.jamesdrandall.com/devdiary/spred_new_selection_tools/", "published_at": "2024-03-30T08:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b17956918a4", "title": "Empire of Asphalt: Selecting ranges and creating zones", "url": "https://www.jamesdrandall.com/devdiary/empire_of_ashphalt_selecting_ranges_and_creating_zones/", "published_at": "2024-03-27T05:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b17962021b6", "title": "Empire of Asphalt: WebGL GUI with JSX", "url": "https://www.jamesdrandall.com/devdiary/empire_of_ashphalt_webgl_gui_with_jsx/", "published_at": "2024-03-24T17:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b179640a269", "title": "Empire of Asphalt: Cameras and Picking", "url": "https://www.jamesdrandall.com/devdiary/empire_of_ashphalt_camera_and_tile_selection/", "published_at": "2024-03-22T06:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1796bb3974", "title": "Elite: ECM and Energy Bomb", "url": "https://www.jamesdrandall.com/devdiary/elite_ecm_and_energy_bomb/", "published_at": "2024-03-17T18:30:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b179704e554", "title": "Elite: Thargoids", "url": "https://www.jamesdrandall.com/devdiary/elite_thargoids/", "published_at": "2024-03-17T10:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b17971e27b0", "title": "Elite: Missiles", "url": "https://www.jamesdrandall.com/devdiary/elite_missiles/", "published_at": "2024-03-10T12:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b179773a16c", "title": "Elite: Lasers and loadouts", "url": "https://www.jamesdrandall.com/devdiary/elite_lasers_and_loadouts/", "published_at": "2024-03-05T19:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1798458a6f", "title": "Elite: Asset loading optimisation", "url": "https://www.jamesdrandall.com/devdiary/asset_loading_optimisation/", "published_at": "2024-03-03T08:30:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b17989e3ca1", "title": "Elite: Loading screen and game saves", "url": "https://www.jamesdrandall.com/devdiary/elite_loading_screen/", "published_at": "2024-03-02T17:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1798aeb22b", "title": "Empire of Asphalt: Landscape Part 1", "url": "https://www.jamesdrandall.com/devdiary/asphalt_landscape_part1/", "published_at": "2024-02-27T06:10:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b179954382a", "title": "Empire of Asphalt: Starting simple", "url": "https://www.jamesdrandall.com/devdiary/asphalt_startingsimple/", "published_at": "2024-02-24T14:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b1799be962c", "title": "Elite: To do", "url": "https://www.jamesdrandall.com/devdiary/elite_todo/", "published_at": "2024-02-24T07:00:00+00:00" }, { "id": "01a0878a-5db8-705d-9ff5-8b179a2ec9a5", "title": "Elite: combat evolved", "url": "https://www.jamesdrandall.com/devdiary/elite_combat_evolved/", "published_at": "2024-02-20T19:10:00+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4a7e693a", "title": "Elite: fix for laser collisions", "url": "https://www.jamesdrandall.com/devdiary/elite_fix_for_laser_collisions/", "published_at": "2024-02-20T05:45:00+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4addb9c5", "title": "Elite: well that's put a crimp in an otherwise damn fine plan", "url": "https://www.jamesdrandall.com/devdiary/elite_crimp_in_an_otherwise_damn_fine_plan/", "published_at": "2024-02-19T19:30:00+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4b0fb2fc", "title": "Elite: spawning tweaks", "url": "https://www.jamesdrandall.com/devdiary/elite_spawning_tweaks/", "published_at": "2024-02-19T06:30:00+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4b735b06", "title": "Elite: sound effects and explosion refinement", "url": "https://www.jamesdrandall.com/devdiary/elite_sound_effects_and_explosion_refinement/", "published_at": "2024-02-18T15:45:00+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4c6455ad", "title": "Elite: laser collision detection, enemy lasers and explosions", "url": "https://www.jamesdrandall.com/devdiary/elite_enemy_lasers_and_explosions/", "published_at": "2024-02-17T18:00:00+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4d175524", "title": "Elite", "url": "https://www.jamesdrandall.com/projects/webglite/", "published_at": "2024-01-28T09:04:13+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4d527769", "title": "Wolfenstein 3D", "url": "https://www.jamesdrandall.com/projects/wolfenstein3d/", "published_at": "2024-01-28T08:04:13+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4d7915d3", "title": "Sprite Packer", "url": "https://www.jamesdrandall.com/shorts/spritepacker/", "published_at": "2023-12-22T09:04:13+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4dc0a1de", "title": "SprEd", "url": "https://www.jamesdrandall.com/projects/spred/", "published_at": "2023-12-01T09:04:13+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4e43c775", "title": "Give By The Mile: Setting up", "url": "https://www.jamesdrandall.com/devdiary/give_by_the_mile_setting_up/", "published_at": "2023-10-28T07:30:00+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4ef0fed4", "title": "GPU Mandelbrot", "url": "https://www.jamesdrandall.com/shorts/gpu_mandelbrot/", "published_at": "2023-05-11T08:04:13+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f4fef70b9", "title": "3D Spectre Maze", "url": "https://www.jamesdrandall.com/shorts/3d_spectre_maze/", "published_at": "2023-04-30T19:04:13+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f50d0baf8", "title": "Simple C++ Voxel Engine", "url": "https://www.jamesdrandall.com/projects/simple_cpp_voxel_engine/", "published_at": "2021-04-08T19:04:13+00:00" }, { "id": "01a0878a-5db9-70e6-8282-f48f50ff9aca", "title": "| James Randall", "url": "https://www.jamesdrandall.com/8-bit-golf/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f51e905a6", "title": "| James Randall", "url": "https://www.jamesdrandall.com/csharpwolf3d/part6/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f52db8aa1", "title": "| James Randall", "url": "https://www.jamesdrandall.com/csharpwolf3d/part6b/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f5359fcc2", "title": "| James Randall", "url": "https://www.jamesdrandall.com/csharpwolf3d/part7/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f54408091", "title": "| James Randall", "url": "https://www.jamesdrandall.com/csharpwolf3d/part8/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f54ab5e55", "title": "| James Randall", "url": "https://www.jamesdrandall.com/gpumandelbrot/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f55276baf", "title": "| James Randall", "url": "https://www.jamesdrandall.com/graphpaper/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f55bc1067", "title": "| James Randall", "url": "https://www.jamesdrandall.com/spred/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f55d2a20d", "title": "| James Randall", "url": "https://www.jamesdrandall.com/tetris/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f56bd3c73", "title": "| James Randall", "url": "https://www.jamesdrandall.com/voxed/", "published_at": null }, { "id": "01a0878a-5db9-70e6-8282-f48f56d2f48b", "title": "| James Randall", "url": "https://www.jamesdrandall.com/webglite/", "published_at": null }, { "id": "01a0878a-5dba-7284-bc01-c8debc1e2cd8", "title": "| James Randall", "url": "https://www.jamesdrandall.com/wolf3d/", "published_at": null } ] posts Claim your blog
Back to jamesdrandall.com
Blog · corpus.blog/blogs/jamesdrandall.com/posts

jamesdrandall.com

jamesdrandall.com

2026

6 Sept 2026

2025

2024

2023

2021

Undated