41554 blogs · [ { "id": "01a08c56-2f31-72e6-875e-3ccae2a9bd5a", "title": "John Cleese on Creativity (Transcript)", "url": "https://timotijhof.net/posts/2026/john-cleese-on-creativity-transcript/", "published_at": "2026-02-14T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae2e81068", "title": "📎 Unifying Wikipedia mobile and desktop domains", "url": "https://timotijhof.net/posts/2025/unifying-mobile-and-desktop-domains/", "published_at": "2025-11-24T14:30:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae39da446", "title": "YouTube in a feed reader is… better?", "url": "https://timotijhof.net/posts/2025/youtube-in-a-feed-reader-is-better/", "published_at": "2025-05-17T13:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae4474660", "title": "Lockfiles for apps, not packages (still)", "url": "https://timotijhof.net/posts/2024/lockfiles-for-apps-not-packages-still/", "published_at": "2024-09-12T23:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae51968f9", "title": "How we balance security and openness at Wikimedia", "url": "https://timotijhof.net/posts/2023/wikimedia-balances-security-and-openness/", "published_at": "2023-10-19T20:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae57f8ad6", "title": "An Internet of PHP", "url": "https://timotijhof.net/posts/2023/an-internet-of-php/", "published_at": "2023-09-04T23:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae5f63db6", "title": "Browser adoption rates", "url": "https://timotijhof.net/posts/2023/browser-adoption/", "published_at": "2023-02-16T20:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae6a36a4b", "title": "HTTP/2 performance revisited", "url": "https://timotijhof.net/posts/2022/http-2-performance-revisited/", "published_at": "2022-11-20T06:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae6e0be6e", "title": "How does Internet Archive know?", "url": "https://timotijhof.net/posts/2022/internet-archive-crawling/", "published_at": "2022-06-20T19:30:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae72776ea", "title": "📎 Krinkle Treasure Hunt", "url": "https://timotijhof.net/posts/2021/treasure-hunt/", "published_at": "2021-06-04T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae81d63bc", "title": "Profiling PHP in production at scale", "url": "https://timotijhof.net/posts/2020/profiling-php-at-scale/", "published_at": "2020-12-11T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae892acfa", "title": "📎 Interview on Uses This", "url": "https://timotijhof.net/posts/2020/uses-this/", "published_at": "2020-10-07T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae9301eaf", "title": "Should I substr(), substring(), or slice()?", "url": "https://timotijhof.net/posts/2020/substr-substring-slice/", "published_at": "2020-09-26T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccae9e95059", "title": "Many dots, do not a query make", "url": "https://timotijhof.net/posts/2020/many-dots-do-not/", "published_at": "2020-01-09T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaeae82eee", "title": "To throw or not to throw, that is the question", "url": "https://timotijhof.net/posts/2019/to-throw-or-not/", "published_at": "2019-12-08T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaebaf9909", "title": "Tomorrow, may be sooner than you think", "url": "https://timotijhof.net/posts/2019/tomorrow-may-be-sooner/", "published_at": "2019-12-07T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaec4cc879", "title": "Missing partitions, disappearing audio players, and extreme packet loss", "url": "https://timotijhof.net/posts/2019/wikipedia-stories-1/", "published_at": "2019-12-06T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaecd1211e", "title": "Wikipedia’s JavaScript initialisation on a budget", "url": "https://timotijhof.net/posts/2019/wikipedia-javascript-on-budget/", "published_at": "2019-09-18T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaed755c34", "title": "How to protect yourself from npm", "url": "https://timotijhof.net/posts/2019/protect-yourself-from-npm/", "published_at": "2019-09-12T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaedd704ea", "title": "Six years of BrowseHappy", "url": "https://timotijhof.net/posts/2018/twitter-browsehappy/", "published_at": "2018-05-16T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaeddbfdcf", "title": "Measuring Wikipedia page load times", "url": "https://timotijhof.net/posts/2018/measuring-wikipedia-page-load-times/", "published_at": "2018-01-09T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaee67cb1a", "title": "QUnit anti-patterns", "url": "https://timotijhof.net/posts/2015/qunit-anti-patterns/", "published_at": "2015-02-13T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaeed994ce", "title": "PhantomJS for CI (anno 2014)", "url": "https://timotijhof.net/posts/2014/phantomjs-for-ci/", "published_at": "2014-10-03T12:00:00+00:00" }, { "id": "01a08c56-2f31-72e6-875e-3ccaef656378", "title": "The word “rebuke”", "url": "https://timotijhof.net/posts/2013/the-word-rebuke/", "published_at": "2013-12-18T12:00:00+00:00" } ] posts Claim your blog
Back to Timo Tijhof
Blog · corpus.blog/blogs/timotijhof.net/posts

Timo Tijhof

timotijhof.net

2026

2025

2024

2023

2022

2021

2020

2019

2018

2015

2014

2013