56,966 blogs · [ { "id": "01a0821e-cbaf-71c2-8782-e2b9f2661c18", "title": "Wikimedia Hackathon Northwestern Europe 2026", "url": "https://taavi.wtf/posts/wikimedia-hackathon-nwe-2026/", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f26f7862", "title": "How to import a new Wikipedia language edition (in hard mode)", "url": "https://taavi.wtf/posts/tokwiki/", "published_at": "2025-12-06T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f3638680", "title": "Tracking my train travel by parsing tickets in emails", "url": "https://taavi.wtf/posts/parsing-train-ticket-emails/", "published_at": "2025-07-05T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f3a66e76", "title": "lua entry thread aborted: runtime error: bad request", "url": "https://taavi.wtf/posts/nginx-lua-runtime-error/", "published_at": "2025-05-12T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f445854b", "title": "Wikimedia Hackathon Istanbul 2025", "url": "https://taavi.wtf/posts/wikimedia-hackathon-istanbul-2025/", "published_at": "2025-05-10T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f486fb5a", "title": "Writing a custom rsync server to automatically update a static site", "url": "https://taavi.wtf/posts/custom-rsync-server-static-site/", "published_at": "2025-04-09T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f4b055dd", "title": "Automatically updating reverse DNS entries for my Hetzner servers", "url": "https://taavi.wtf/posts/hetzner-auto-revdns/", "published_at": "2025-01-03T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f54bb8c8", "title": "Custom domains on the Wikimedia Cloud VPS web proxy", "url": "https://taavi.wtf/posts/cloud-vps-custom-domains/", "published_at": "2024-11-01T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f560fa2a", "title": "Bulk downloading Wikimedia Commons categories", "url": "https://taavi.wtf/posts/comload/", "published_at": "2024-10-13T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f56c4abc", "title": "Wikimedia Hackathon Tallinn 2024", "url": "https://taavi.wtf/posts/wikimedia-hackathon-tallinn-2024/", "published_at": "2024-05-14T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f5d6bf2a", "title": "Wikimania 2023", "url": "https://taavi.wtf/posts/wikimania-singapore-2023/", "published_at": "2023-08-28T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f5f9df78", "title": "Finding files not managed by Puppet", "url": "https://taavi.wtf/posts/puppet-unmanaged/", "published_at": "2023-07-01T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f64d907f", "title": "Wikimedia Hackathon Athens 2023", "url": "https://taavi.wtf/posts/wikimedia-hackathon-athens-2023/", "published_at": "2023-06-01T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f6fc171c", "title": "Wikimedia needs to re-think MediaWiki staging environments", "url": "https://taavi.wtf/posts/deployment-prep-needs-a-replacement/", "published_at": "2022-11-18T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f7a34536", "title": "Introducing Terraform support on Wikimedia Cloud VPS", "url": "https://taavi.wtf/posts/cloud-vps-terraform/", "published_at": "2022-10-24T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f81240f3", "title": "Adding OpenStack Keystone authentication to a Flask application", "url": "https://taavi.wtf/posts/flask-keystone/", "published_at": "2022-01-01T00:00:00+00:00" }, { "id": "01a0821e-cbaf-71c2-8782-e2b9f8d95800", "title": "Google Code-In 2019", "url": "https://taavi.wtf/posts/gci-2019-20/", "published_at": "2020-01-24T00:00:00+00:00" } ] posts Claim your blog
Back to Blog on Taavi Väänänen
Blog · corpus.blog/blogs/taavi.wtf/posts

Blog on Taavi Väänänen

taavi.wtf

2026

2025

2024

2023

2022

2020