56,966 blogs · [ { "id": "01a0875f-8faf-7233-a3d4-19ad16772dfd", "title": "Space Cadet Pinball Decompiled", "url": "https://www.chris-saylor.com/link/space-cadet-pinpall/", "published_at": "2026-05-10T15:20:00+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad176188e2", "title": "PICO-8 Image Pixel Mapping Color Palette", "url": "https://www.chris-saylor.com/link/pico-8-image-pixel-mapping-color-palette/", "published_at": "2025-09-15T14:10:13+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad17ea854c", "title": "Automate Recruiting with Slack", "url": "https://www.chris-saylor.com/posts/automate-team-hiring-communication-slack/", "published_at": "2025-08-09T20:49:12+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad18781032", "title": "A Return to \"Hard\" Science Fiction", "url": "https://www.chris-saylor.com/books/three-body-problem/", "published_at": "2025-02-03T20:26:57+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad189fc9e1", "title": "Lazy Load Data in PICO-8 with Metatables", "url": "https://www.chris-saylor.com/link/lua-metatable-lazy-load/", "published_at": "2024-08-29T19:38:22+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad18b315d4", "title": "Intercepting Sprites", "url": "https://www.chris-saylor.com/games/make-code-arcade-intercept-sprites/", "published_at": "2023-12-15T12:00:00+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad18c4f46e", "title": "Ship of Fools", "url": "https://www.chris-saylor.com/games/ship-of-fools/", "published_at": "2023-01-17T14:54:17+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad199c30fb", "title": "Walnut Tray", "url": "https://www.chris-saylor.com/gallery/walnut-tray/", "published_at": "2021-11-10T16:32:38+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1a3d0ee9", "title": "Live in the Future; Delegate the Present", "url": "https://www.chris-saylor.com/posts/live-in-the-future-delegate-the-present/", "published_at": "2021-05-14T00:24:05+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1b041475", "title": "You Should Keep a Journal", "url": "https://www.chris-saylor.com/posts/you-should-keep-a-journal/", "published_at": "2021-03-07T01:45:56+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1b843664", "title": "Piano Table", "url": "https://www.chris-saylor.com/gallery/piano-table/", "published_at": "2021-01-26T03:06:22+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1c5c2627", "title": "Framed Gift", "url": "https://www.chris-saylor.com/gallery/framed-gift/", "published_at": "2020-12-31T03:02:26+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1cf14c57", "title": "Interop in PHP Should Not Be Exceptional", "url": "https://www.chris-saylor.com/posts/interop-in-php-should-not-be-exceptional/", "published_at": "2020-12-22T13:00:00+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1dedd807", "title": "Cabinet Saw", "url": "https://www.chris-saylor.com/gallery/cabinet-saw/", "published_at": "2020-11-06T02:52:38+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1e907765", "title": "Make Any Printer AirPrint Compatible", "url": "https://www.chris-saylor.com/link/make-any-printer-airprint-compatible/", "published_at": "2020-07-28T19:38:22+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1eea6c13", "title": "Managing Polylingual Side Projects", "url": "https://www.chris-saylor.com/posts/managing-polylingual-side-projects/", "published_at": "2020-07-19T15:06:37+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad1fac6d27", "title": "Ruminate More", "url": "https://www.chris-saylor.com/posts/ruminate-more/", "published_at": "2020-06-30T13:00:00+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2089c97c", "title": "Book Nook Shelves", "url": "https://www.chris-saylor.com/gallery/book-nook-shelves/", "published_at": "2020-04-16T02:46:45+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad21367d2e", "title": "Deploying CSRF Protection to an Active Site", "url": "https://www.chris-saylor.com/posts/deploying-csrf-to-an-active-site/", "published_at": "2019-12-18T11:10:37+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad214c8ea7", "title": "Feel the Heat in Overcooked 2", "url": "https://www.chris-saylor.com/games/feel-the-heat-in-overcooked-2/", "published_at": "2019-12-11T15:49:59+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad217a8034", "title": "Coasters", "url": "https://www.chris-saylor.com/gallery/coasters/", "published_at": "2019-12-03T02:39:56+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad226ec8a4", "title": "Choosing Controllers for Younger Players", "url": "https://www.chris-saylor.com/games/choosing-controllers-for-younger-players/", "published_at": "2019-11-21T14:44:37+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad22bd83ce", "title": "The Swords of Ditto: Mormo's Curse", "url": "https://www.chris-saylor.com/games/swords-of-ditto/", "published_at": "2019-11-13T19:34:10+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad23bc68a8", "title": "Mallet", "url": "https://www.chris-saylor.com/gallery/mallet/", "published_at": "2019-11-05T02:34:07+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad240b9b79", "title": "Sewing Table Extension", "url": "https://www.chris-saylor.com/gallery/sewing-table-extension/", "published_at": "2019-10-07T02:24:44+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad247544da", "title": "The Tree House", "url": "https://www.chris-saylor.com/gallery/treehouse/", "published_at": "2019-06-11T01:46:04+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad248b5741", "title": "Learning to Be a Tech Lead", "url": "https://www.chris-saylor.com/posts/learning-to-be-a-tech-lead/", "published_at": "2019-04-25T14:40:21+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad248c30a5", "title": "Meta: How this blog is built and deployed", "url": "https://www.chris-saylor.com/posts/meta-blog-deploy-pipeline/", "published_at": "2019-04-11T14:37:55+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad252525e7", "title": "Jamestown: Legend of the Lost Colony", "url": "https://www.chris-saylor.com/games/jamestown/", "published_at": "2019-04-11T01:00:06+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2536fdf4", "title": "Snakebird: Primer", "url": "https://www.chris-saylor.com/games/snakebird-primer/", "published_at": "2019-04-02T12:28:48+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad25593e38", "title": "Blossom Tales: the Sleeping King Review", "url": "https://www.chris-saylor.com/games/blossom-tales-the-sleeping-king/", "published_at": "2019-02-27T01:42:16+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad255f9535", "title": "Chickadee on a Fir Branch", "url": "https://www.chris-saylor.com/gallery/chickadee/", "published_at": "2019-02-10T21:11:45+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad25669a86", "title": "Cardinal Study", "url": "https://www.chris-saylor.com/gallery/cardinal/", "published_at": "2019-02-10T21:07:37+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad25fdf904", "title": "Submitting Chessbot to the Slack App Directory", "url": "https://www.chris-saylor.com/posts/submitting-chessbot-to-slack-app-directory/", "published_at": "2018-10-19T18:15:52+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2619c1dd", "title": "Building a Chess bot for Slack", "url": "https://www.chris-saylor.com/posts/building-a-chessbot-for-slack/", "published_at": "2018-08-23T00:00:00+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad26ef803c", "title": "Design for Success", "url": "https://www.chris-saylor.com/posts/2018-storybook-presentation/", "published_at": "2018-06-07T00:00:00+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2718b660", "title": "\"Blue Whale\"", "url": "https://www.chris-saylor.com/gallery/bluewhale/", "published_at": "2018-05-31T17:01:26+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad27316b61", "title": "\"Storm Tree\" (in a Canolla Field)", "url": "https://www.chris-saylor.com/gallery/storm-tree-in-canolla-field/", "published_at": "2018-05-26T17:01:26+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad27be15a0", "title": "Parental Commissions", "url": "https://www.chris-saylor.com/gallery/parental-commissions/", "published_at": "2018-05-23T17:01:26+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad27d0b5b0", "title": "Why Use Generators in PHP?", "url": "https://www.chris-saylor.com/posts/why-use-generators-in-php/", "published_at": "2017-01-03T03:40:41+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad283355fb", "title": "Elasticsearch Series: Let It Work for You", "url": "https://www.chris-saylor.com/posts/elasticsearch-series-let-it-work-for-you/", "published_at": "2016-05-19T12:25:22+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad28a05e47", "title": "Elasticsearch Series: Rebuilding Indices with No Downtime", "url": "https://www.chris-saylor.com/posts/elasticsearch-series-rebuilding-indices-with-no-downtime/", "published_at": "2016-03-02T12:25:22+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad298b69cb", "title": "Enforce code standards with composer, git hooks, and phpcs", "url": "https://www.chris-saylor.com/posts/enforcing-code-standards/", "published_at": "2014-04-14T12:25:22+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2a1fdd78", "title": "Forever Is a Long Time to Wait", "url": "https://www.chris-saylor.com/posts/forever-is-a-long-time-to-wait/", "published_at": "2013-02-07T19:24:46+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2ad5078a", "title": "Debugging PHP with Xdebug and MacGDBp", "url": "https://www.chris-saylor.com/posts/debugging-php-with-xdebug-and-macgdbp/", "published_at": "2012-10-20T19:10:06+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2b19eb09", "title": "Google Visualizations Api Cakephp", "url": "https://www.chris-saylor.com/posts/google-visualizations-api-cakephp/", "published_at": "2010-11-21T18:42:52+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2b385405", "title": "Time Warner Defeated by Munin", "url": "https://www.chris-saylor.com/posts/time-warner-defeated-by-munin/", "published_at": "2010-11-18T18:31:37+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2b4c2e09", "title": "Scrolltab: Dynamic Page Navigation Tool", "url": "https://www.chris-saylor.com/posts/scrolltab-dynamic-page-navigation-tool/", "published_at": "2010-11-16T18:18:20+00:00" }, { "id": "01a0875f-8faf-7233-a3d4-19ad2c46de3f", "title": "About Games with Sam", "url": "https://www.chris-saylor.com/page/about-games-with-sam/", "published_at": null } ] posts Claim your blog
Back to chris-saylor.com
Blog · corpus.blog/blogs/chris-saylor.com/posts

chris-saylor.com

chris-saylor.com

2026

2025

2024

2023

2021

2020

2019

2018

2017

2016

2014

2013

2012

2010

Undated