41554 blogs · [ { "id": "01a0d482-11d4-729f-a0fe-d4b64b740af3", "title": "What has Athens to do with Palo Alto?", "url": "https://tommorris.org/posts/2026/what-has-athens-to-do-with-palo-alto/", "published_at": "2026-09-16T12:12:57+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0bc1d6a1", "title": "The invisible dragon discovered magical security vulnerabilities but they go to another school", "url": "https://tommorris.org/posts/2026/the-invisible-dragon-discovered-magical-security-vulnerabilities-but-they-go-to-another-school/", "published_at": "2026-07-24T20:50:42+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0c3b0786", "title": "European court lawsplains trade marks to Sam Altman", "url": "https://tommorris.org/posts/2026/european-court-lawsplains-trade-marks-to-sam-altman/", "published_at": "2026-07-15T21:20:06+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0d1c84d6", "title": "Impedance mismatch at the University of Chicago", "url": "https://tommorris.org/posts/2026/impedance-mismatch-at-the-university-of-chicago/", "published_at": "2026-07-14T14:33:54+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0d280a52", "title": "A trip report into agentic coding", "url": "https://tommorris.org/posts/2026/a-trip-report-into-agentic-coding/", "published_at": "2026-06-10T23:23:04+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0d8f3eb4", "title": "Turn it off and run - upskilling for the AI age", "url": "https://tommorris.org/posts/2026/turn-it-off-and-run-upskilling-for-the-ai-age/", "published_at": "2026-01-28T17:22:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0dbdd153", "title": "Irrelevant is better than fake: testing a legal AI tool", "url": "https://tommorris.org/posts/2025/irrelevant-is-better-than-fake-testing-a-legal-ai-tool/", "published_at": "2025-09-25T15:00:40+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0e0842b4", "title": "What does the government think an algorithm is?", "url": "https://tommorris.org/posts/2025/what-does-the-government-think-an-algorithm-is/", "published_at": "2025-08-12T06:26:08+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0e11523e", "title": "TIL: track changes in Emacs with highlight-changes-mode", "url": "https://tommorris.org/posts/2025/til-track-changes-in-emacs-with-highlight-changes-mode/", "published_at": "2025-04-26T18:44:26+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d0f105547", "title": "The adolescents are alright. So are the common people. Let’s make tech good for them.", "url": "https://tommorris.org/posts/2025/the-adolescents-are-alright-so-are-the-common-people-lets-make-tech-good-for-them/", "published_at": "2025-04-11T18:00:46+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d100fac9e", "title": "Beware government ministers hyping technologies", "url": "https://tommorris.org/posts/2025/beware-government-ministers-hyping-technologies/", "published_at": "2025-01-14T15:23:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1073941d", "title": "Copyright anti-circumvention: an AI hypothetical", "url": "https://tommorris.org/posts/2024/copyright-anti-circumvention-ai-hypothetical/", "published_at": "2024-12-19T18:47:20+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1090585d", "title": "Testing the Firefox alternatives", "url": "https://tommorris.org/posts/2024/testing-the-firefox-alternatives/", "published_at": "2024-09-09T13:14:18+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d11513131", "title": "A world run by tools", "url": "https://tommorris.org/posts/2024/a-world-run-by-tools/", "published_at": "2024-08-01T11:43:45+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1178650a", "title": "TIL: Wikidata SPARQL trick - getting item and subclasses", "url": "https://tommorris.org/posts/2024/til-wikidata-sparql-getting-item-and-subclasses/", "published_at": "2024-07-14T12:10:12+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d11f3a415", "title": "TIL: Setting default browser on macOS using Nix", "url": "https://tommorris.org/posts/2024/til-setting-default-browser-on-macos-using-nix/", "published_at": "2024-07-12T12:38:26+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1203acb8", "title": "Lies, damn lies, and business cases for AI hype", "url": "https://tommorris.org/posts/2024/lies-damn-lies-and-business-cases-for-ai-hype/", "published_at": "2024-07-11T07:52:58+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d12281322", "title": "TIL: Using nix run to lint one-off Python scripts", "url": "https://tommorris.org/posts/2024/til-using-nix-run-to-lint-oneoff-python-scripts/", "published_at": "2024-07-08T14:33:40+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d12a4740b", "title": "Staying cool with OpenStreetMap", "url": "https://tommorris.org/posts/2024/staying-cool-with-openstreetmap/", "published_at": "2024-06-26T12:36:17+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d136e7596", "title": "A little Nix fix", "url": "https://tommorris.org/posts/2024/a-little-nix-fix/", "published_at": "2024-03-02T14:49:50+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d143526a6", "title": "TIL: Monorepo Makefile inheritance with shared variables and targets", "url": "https://tommorris.org/posts/2023/til-makefile-inheritance-and-overriding/", "published_at": "2023-01-30T13:11:50+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d143959dd", "title": "TIL: Emacs Lisp - write a string to a file", "url": "https://tommorris.org/posts/2023/til-emacs-write-string-to-file/", "published_at": "2023-01-05T14:28:47+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d150c16ec", "title": "TIL: Encode and decode text in Emacs Lisp", "url": "https://tommorris.org/posts/2023/til-emacs-text-encoding/", "published_at": "2023-01-03T10:24:38+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d15ce3b3a", "title": "Today I Learned: Background", "url": "https://tommorris.org/posts/2023/til-meta/", "published_at": "2023-01-03T10:23:59+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d16c62e03", "title": "Writing better API documentation: a few lessons from enterprise integration", "url": "https://tommorris.org/posts/2022/writing-better-api-documentation/", "published_at": "2022-06-29T16:35:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1740735a", "title": "Possible vulnerability in Sainsbury's and Nectar website", "url": "https://tommorris.org/posts/2022/possible-vulnerability-sainsburys-nectar-website/", "published_at": "2022-03-16T15:57:40+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d17e2272b", "title": "iTerm2 URL matching is pretty neat", "url": "https://tommorris.org/posts/2021/iterm2-url-matching-is-pretty-neat/", "published_at": "2021-03-20T08:45:03+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1890252f", "title": "Too sarcastic for the Twitter joke police: an adventure in automated moderation", "url": "https://tommorris.org/posts/2021/too-sarcastic-for-the-twitter-joke-police/", "published_at": "2021-02-18T10:33:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d19825769", "title": "Never trust a Time Machine made by a computer company", "url": "https://tommorris.org/posts/2020/never-trust-a-time-machine-made-by-a-computer-company/", "published_at": "2020-12-31T15:53:41+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1a661457", "title": "Using AST parsing for deriving IAM rules", "url": "https://tommorris.org/posts/2020/using-ast-parsing-for-deriving-iam-rules/", "published_at": "2020-05-19T09:55:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1b0ec792", "title": "That's not what the law says: the coronavirus regulations", "url": "https://tommorris.org/posts/2020/thats-not-what-the-law-says/", "published_at": "2020-04-08T07:10:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1b71566b", "title": "Hart contracts, not smart contracts", "url": "https://tommorris.org/posts/2020/hart-contracts-not-smart-contracts/", "published_at": "2020-02-06T07:20:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1bd8293c", "title": "The NHS Data Commandments and the memory hole", "url": "https://tommorris.org/posts/2020/nhs-data-commandments/", "published_at": "2020-02-04T10:00:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1c1af262", "title": "Essential reading on the MIT Media Lab", "url": "https://tommorris.org/posts/2019/essential-reading-on-the-mit-media-lab/", "published_at": "2019-09-08T10:41:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1c9decfc", "title": "Making QR codes with cloud functions", "url": "https://tommorris.org/posts/2019/qr-codes-cloud-functions/", "published_at": "2019-06-07T20:45:40+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1cc41aed", "title": "Apple ID's two-factor and app-specific passwords leave a lot to be desired", "url": "https://tommorris.org/posts/2019/apple-id-s-two-factor-and-app-specific-passwords-leave-a-lot-to-be-desired/", "published_at": "2019-05-08T22:33:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1cee2bf2", "title": "Facebook Instant Articles: why hiding URLs hinders careful reading of media", "url": "https://tommorris.org/posts/2019/facebook-instant-articles-why-hiding-urls-hinders-careful-reading-of-media/", "published_at": "2019-04-01T14:26:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1cfc7df2", "title": "Instamuseums and the Tyranny of Engagement Metrics", "url": "https://tommorris.org/posts/2018/instamuseums/", "published_at": "2018-09-20T10:15:55+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1d662c0d", "title": "Quietism", "url": "https://tommorris.org/posts/2018/quietism/", "published_at": "2018-09-13T19:52:37+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1e3a118a", "title": "Hello World", "url": "https://tommorris.org/posts/2018/hello-world/", "published_at": "2018-09-13T17:28:04+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1e7cadb1", "title": "Open plan offices are basically terrible in every way", "url": "https://tommorris.org/posts/2015/open-plan-offices-are-basically-terrible-in-every-way/", "published_at": "2015-12-15T14:31:00+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1eae7d8e", "title": "Why primary identity documents matter (and why the DVLA is incompetent at it)", "url": "https://tommorris.org/posts/2015/why-primary-identity-documents-matter-and-why-the-dvla-is-incompetent-at-it/", "published_at": "2015-08-05T14:56:33+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1f80e614", "title": "On showing URLs and why security and usability will always have a rocky relationship", "url": "https://tommorris.org/posts/2014/on-showing-urls-and-why-security-and-usability-will-always-have-a-rocky-relationship/", "published_at": "2014-05-04T17:26:04+00:00" }, { "id": "01a08c57-30e9-719d-84d1-863d1febcee3", "title": "How to quit vim's easy mode (vim -y)", "url": "https://tommorris.org/posts/2009/how-to-quit-vim-easy-mode/", "published_at": "2009-05-20T14:55:05+00:00" } ] posts Claim your blog
Back to tommorris.org
Blog · corpus.blog/blogs/tommorris.org/posts

tommorris.org

tommorris.org

2026

2025

2024

2023

2022

2021

2020

2019

2018

2015

2014

2009