Timo Tijhof
Latest Posts
The below is transcribed from a 1991 talk by John Cleese titled Creativity in Management. I encourage you to watch the 30-minute recording on YouTube. The delivery is hilarious with great comedic timing that my transcript can’t begin to...
Until now, when you visited a wiki (like en.wikipedia.org), the server responded in one of two ways: a desktop page, or a redirect to the equivalent mobile URL (like en.m.wikipedia.org). This mobile URL in turn served the mobile version...
Two months ago, I deleted my YouTube subscriptions. I now follow YouTube channels in my feed reader instead (I use the NetNewsWire app). How does that work? Is it better? How to follow a channel On desktop, or on the mobile site, copy...
TL;DR: My updated take is Lockfiles for Node.js apps, not for other projects. When you run npm install, after you add or change a dependency in package.json, npm finds and selects the latest compatible version, downloads it, and replaces...
How does an open philosophy jive with best practices in performance and security? In short, we’re selective in our dependencies and audit our own upstream sources. Progressive enhancement not only makes for a fast and accessible site, I...
Statistics and anecdotes about PHP at scale.
For two years in 2020 and 2021, I shared Wikipedia’s worldwide browser statistics on Mastodon under #browserstats. They looked a little something like this: As the data includes the browser’s major version, I wondered whether I could use...
Deploying HTTP/2 support to the Wikimedia CDN significantly changed how browsers negotiate and transfer data during the page load process. We found regressions in performance during the transition and are sharing the lessons we learned....
The Internet Archive discovers in real-time when WordPress blogs publish a new post, and when Wikipedia articles reference new sources. How does that work? Wikipedia Wikipedia, and its sister projects such as Wiktionary and Wikidata, run...
I miss the era of very Internet-y things, geocities-style scavenger hunts, with easter eggs and all. So, I devised a treasure hunt of my own! → Enter here
At Wikipedia, we built an efficient sampling profiler for PHP, and use it to instrument live requests. The trace logs and flame graphs are powered by a simple setup that involves only free open-source software, and runs at low...
Today, yours truly got to add his bit.
What’s the deal with these string methods, and how are they different? String substr() str.substr(start[, length]) This method takes a start index, and optionally a number of characters to read from that start index with the default...
How a long sequence of dots allowed a regex to reach its internal stack limit. Premise Wikipedia’s production error logs were reporting an increase in app crashes from the search results page. The internal Logstash error report looked as...
Why does software accept invalid data? And, at what software layer should we reject it? Also, what are “namespaces” and “special pages” on Wikipedia? Premise One day, our server monitoring was reporting a high frequency of fatal errors...