41554 blogs · [ { "id": "01a08790-fc44-72b0-a95c-b6befce415a9", "title": "On useful tests", "url": "https://joshduff.com/2025-12-11-on-useful-tests.html", "published_at": "2025-12-11T18:32:05+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6befc14271e", "title": "On making a product listing page that doesn't suck", "url": "https://joshduff.com/2025-11-10-making-a-product-listing-page-that-doesnt-suck.html", "published_at": "2025-11-10T15:56:24+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6befb16b7d5", "title": "The joy of inventory software", "url": "https://joshduff.com/2025-04-09-inventory-software.html", "published_at": "2025-04-09T16:29:53+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6befa2fbf5e", "title": "Communication culture", "url": "https://joshduff.com/2024-07-18-communication-culture.html", "published_at": "2024-07-18T14:44:39+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef9cd384a", "title": "Merle Dean Kilgore", "url": "https://joshduff.com/2024-05-13-merle-dean-kilgore.html", "published_at": "2024-05-13T15:33:14+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef98932fc", "title": "Contra Jane Jacobs on a biblical history of cities", "url": "https://joshduff.com/2024-05-01-contra-jane-jacobs.html", "published_at": "2024-05-04T19:00:58+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef953d86b", "title": "My appendix experience", "url": "https://joshduff.com/2022-10-01-appendix-experience.html", "published_at": "2022-10-01T17:44:36+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef88af86d", "title": "The first letter I wrote to Anna", "url": "https://joshduff.com/2022-09-10-my-first-letter-to-anna.html", "published_at": "2022-09-10T15:04:09+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef8743ae7", "title": "Eschatology of software", "url": "https://joshduff.com/2022-02-07-eschatology-of-software.html", "published_at": "2022-02-07T16:34:49+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef843b98c", "title": "How to remote pair-code usefully", "url": "https://joshduff.com/2021-08-24-pair-coding.html", "published_at": "2021-08-24T18:28:36+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef7dd24c5", "title": "Writing SQL for applications", "url": "https://joshduff.com/2016-07-writing-sql.html", "published_at": "2016-07-26T01:11:19+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef722642a", "title": "Side project post-partum: Communal Checklist", "url": "https://joshduff.com/2015-09-communal-checklist.html", "published_at": "2015-09-02T18:04:27+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef6bedca6", "title": "Why your webapp needs a state-based router", "url": "https://joshduff.com/2015-06-why-you-need-a-state-router.html", "published_at": "2015-06-21T00:05:51+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef5ee8247", "title": "Writing Noddity", "url": "https://joshduff.com/2014-11-22-noddity.html", "published_at": "2014-11-23T03:34:30+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef57f078c", "title": "How Should We Then Drive?", "url": "https://joshduff.com/2011-09-26-how-should-we-then-drive.html", "published_at": "2011-09-26T08:00:00+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef50745c3", "title": "Profanities and other funny words", "url": "https://joshduff.com/2010-06-21-profanities-and-other-funny-words.html", "published_at": "2010-06-21T09:11:00+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef4546706", "title": "Sandwich war crimes: the Dirty Mother", "url": "https://joshduff.com/2010-05-25-dirty-mother.html", "published_at": "2010-05-25T19:57:00+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef35571d5", "title": "Run a query for every table in a database", "url": "https://joshduff.com/2010-02-19-run-a-query-for-every-table-in-a-database.html", "published_at": "2010-02-19T08:16:00+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef33a427e", "title": "Logical errors in queries: DO NOT WANT", "url": "https://joshduff.com/2010-02-04-logical-errors-in-queries-do-not-want.html", "published_at": "2010-02-04T15:17:00+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef2fe9b6c", "title": "Convert blocks of text to sentence case in MySQL", "url": "https://joshduff.com/2010-01-22-convert-blocks-of-text-to-sentence-case.html", "published_at": "2010-01-22T13:31:00+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef2a06d3d", "title": "Running my first campaign!", "url": "https://joshduff.com/2010-01-15-running-my-first-campaign.html", "published_at": "2010-01-16T03:41:00+00:00" }, { "id": "01a08790-fc44-72b0-a95c-b6bef1dfcdf8", "title": "My accomplishment for the day: a MySQL quine!", "url": "https://joshduff.com/2008-11-29-my-accomplishment-for-the-day-a-mysql-quine.html", "published_at": "2008-11-29T12:38:00+00:00" } ] posts Claim your blog
Back to joshduff.com
Blog · corpus.blog/blogs/joshduff.com/posts

joshduff.com

joshduff.com

2025

2024

2022

2021

2016

2015

2014

2011

2010

2008