41554 blogs · [ { "id": "01a08caa-8ea2-72cd-89d3-825f9add357e", "title": "Soft-deprecating re.match()", "url": "https://hugovk.dev/blog/2026/soft-deprecating-re.match/", "published_at": "2026-09-10T08:08:01+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b0748896b6", "title": "Help test Python 3.15!", "url": "https://hugovk.dev/blog/2026/help-test-python-315/", "published_at": "2026-09-01T14:33:38+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b074fca3fd", "title": "Security: line goes up", "url": "https://hugovk.dev/blog/2026/security-line-goes-up/", "published_at": "2026-07-13T20:44:50+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b075ee0420", "title": "Fixing the dictionary with Python 3.14", "url": "https://hugovk.dev/blog/2026/fixing-dict/", "published_at": "2026-07-08T16:40:05+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b076c9a9c8", "title": "I'm delighted to rejoin the Sovereign Tech Fellowship", "url": "https://hugovk.dev/blog/2026/sovereign-tech-fellowship/", "published_at": "2026-06-12T07:35:12+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b077752374", "title": "A CLI to fight GitHub spam", "url": "https://hugovk.dev/blog/2026/gh-triage/", "published_at": "2026-02-18T13:35:25+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b077815741", "title": "Speeding up Pillow's open and save", "url": "https://hugovk.dev/blog/2026/faster-pillow/", "published_at": "2026-01-28T10:29:04+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b0786f72e8", "title": "Localising xkcd", "url": "https://hugovk.dev/blog/2026/localising-xkcd/", "published_at": "2026-01-03T14:06:51+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b079674a75", "title": "Replacing python-dateutil to remove six", "url": "https://hugovk.dev/blog/2025/minus-six/", "published_at": "2025-12-29T16:53:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b0799fc637", "title": "And now for something completely different", "url": "https://hugovk.dev/blog/2025/and-now/", "published_at": "2025-12-23T13:03:33+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07a7b9cb8", "title": "Steering Council results", "url": "https://hugovk.dev/blog/2025/steering-council-results/", "published_at": "2025-12-13T14:40:12+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07b21cf71", "title": "Steering Council election", "url": "https://hugovk.dev/blog/2025/steering-council-election/", "published_at": "2025-12-08T19:50:58+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18a7ca9714", "title": "Setting secrets in env vars", "url": "https://hugovk.dev/blog/2025/secrets-in-env-vars/", "published_at": "2025-11-27T12:55:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07b882417", "title": "Python Core Sprint 2025", "url": "https://hugovk.dev/blog/2025/python-core-sprint/", "published_at": "2025-11-03T08:58:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07c56bd02", "title": "Three times faster with lazy imports", "url": "https://hugovk.dev/blog/2025/lazy-imports/", "published_at": "2025-10-19T16:05:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07d27a5ef", "title": "Releasing Python 3.14.0", "url": "https://hugovk.dev/blog/2025/releasing-python-3-14-0/", "published_at": "2025-10-11T17:04:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07df71e6f", "title": "Ready prek go!", "url": "https://hugovk.dev/blog/2025/ready-prek-go/", "published_at": "2025-09-06T15:50:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07dffc894", "title": "EuroPython 2025: A roundup of writeups", "url": "https://hugovk.dev/blog/2025/europython-2025-a-roundup-of-writeups/", "published_at": "2025-08-25T13:59:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07edc4085", "title": "Run coverage on tests", "url": "https://hugovk.dev/blog/2025/run-coverage-on-tests/", "published_at": "2025-06-27T17:41:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b07f9f4cbc", "title": "PEPs & Co.", "url": "https://hugovk.dev/blog/2025/peps-and-co/", "published_at": "2025-05-14T15:45:00+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18aca44893", "title": "My most used command-line commands", "url": "https://hugovk.dev/blog/2025/my-most-used-command-line-commands/", "published_at": "2025-04-04T16:50:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b0805ae07c", "title": "Free-threaded Python on GitHub Actions", "url": "https://hugovk.dev/blog/2025/free-threaded-python-on-github-actions/", "published_at": "2025-03-25T10:25:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b0814ab86f", "title": "Improving licence metadata", "url": "https://hugovk.dev/blog/2025/improving-licence-metadata/", "published_at": "2025-02-14T15:11:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b081e6d960", "title": "I'm excited to join the Sovereign Tech Fellowship", "url": "https://hugovk.dev/blog/2025/im-excited-to-join-the-sovereign-tech-fellowship/", "published_at": "2025-02-06T11:40:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b082d5acaa", "title": "How to delay a Python release", "url": "https://hugovk.dev/blog/2025/how-to-delay-a-python-release/", "published_at": "2025-02-04T18:55:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b082d81f59", "title": "A surprising thing about PyPI's BigQuery data", "url": "https://hugovk.dev/blog/2024/a-surprising-thing-about-pypis-bigquery-data/", "published_at": "2024-11-24T20:45:31+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08379bf09", "title": "Speed up CI with uv ⚡", "url": "https://hugovk.dev/blog/2024/speed-up-ci-with-uv/", "published_at": "2024-11-02T13:11:22+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b083e32ee5", "title": "Python Core Sprint 2024", "url": "https://hugovk.dev/blog/2024/python-core-sprint/", "published_at": "2024-10-05T19:39:48+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b0840eb324", "title": "PyCon US 2024: A roundup of writeups", "url": "https://hugovk.dev/blog/2024/pycon-us-2024-a-roundup-of-writeups/", "published_at": "2024-06-13T14:41:55+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b084a41312", "title": "Help test Python 3.13!", "url": "https://hugovk.dev/blog/2024/help-test-python-313/", "published_at": "2024-06-04T13:04:03+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b084ba7f54", "title": "Printable PyCon 2024 schedule", "url": "https://hugovk.dev/blog/2024/printable-pycon-2024-schedule/", "published_at": "2024-05-11T11:01:33+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b085321a79", "title": "Help us test free-threaded Python without the GIL", "url": "https://hugovk.dev/blog/2023/help-us-test-free-threaded-python-without-the-gil/", "published_at": "2024-05-10T12:18:27+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b085d381fd", "title": "Sphinx docs: How to activate tabs for your OS", "url": "https://hugovk.dev/blog/2024/sphinx-docs-how-to-activate-tabs-for-your-os/", "published_at": "2024-04-02T18:41:30+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18b2af2542", "title": "Tech style guides", "url": "https://hugovk.dev/blog/2024/tech-style-guides/", "published_at": "2024-03-02T15:25:54+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08686e644", "title": "TIL: exclude_also with coverage.py", "url": "https://hugovk.dev/blog/2023/til-excludealso-with-coveragepy/", "published_at": "2023-11-06T20:05:55+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b0875f253e", "title": "Why are there still so many downloads for EOL Python 3.7?", "url": "https://hugovk.dev/blog/2023/why-are-there-still-so-many-downloads-for-eol-python-37/", "published_at": "2023-08-22T19:25:29+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b087632966", "title": "Help test the Python 3.12 release candidate!", "url": "https://hugovk.dev/blog/2023/help-test-python-312-beta/", "published_at": "2023-05-26T12:30:43+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18b49dd212", "title": "TIL: how to disable cron for GitHub forks", "url": "https://hugovk.dev/blog/2023/til-how-to-disable-cron-for-github-forks/", "published_at": "2023-05-07T15:59:57+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b087b1824e", "title": "Printable PyCon 2023 schedule", "url": "https://hugovk.dev/blog/2023/printable-pycon-2023-schedule/", "published_at": "2023-04-15T10:10:02+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18b545f9a3", "title": "Bits of Pluto on Mastodon", "url": "https://hugovk.dev/blog/2023/bits-of-pluto-on-mastodon/", "published_at": "2023-02-18T13:16:49+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b088840d24", "title": "How to search 5,000 Python projects", "url": "https://hugovk.dev/blog/2022/how-to-search-5000-python-projects/", "published_at": "2022-12-09T12:44:21+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b089796325", "title": "Help test Python 3.11 beta!", "url": "https://hugovk.dev/blog/2022/help-test-python-311/", "published_at": "2022-05-31T17:10:00+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b089bf7e9d", "title": "Top PyPI Packages", "url": "https://hugovk.dev/blog/2022/top-pypi-packages/", "published_at": "2022-05-29T15:53:36+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08a91f128", "title": "The Python 3.1 problem", "url": "https://hugovk.dev/blog/2021/the-python-3-1-problem/", "published_at": "2021-05-19T14:08:31+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08b812e6c", "title": "Python version share over time, 6", "url": "https://hugovk.dev/blog/2020/python-version-share-over-time-6/", "published_at": "2020-01-01T16:36:25+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08c3fe2db", "title": "Python version share over time, 5", "url": "https://hugovk.dev/blog/2019/python-version-share-over-time-5/", "published_at": "2019-11-04T14:40:48+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08d0fcc5a", "title": "Python version share over time, 4", "url": "https://hugovk.dev/blog/2019/python-version-share-over-time-4/", "published_at": "2019-04-04T14:58:18+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08d6c7fdb", "title": "Python version share over time, 3", "url": "https://hugovk.dev/blog/2019/python-version-share-over-time-3/", "published_at": "2019-01-01T14:40:48+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18b98ebf51", "title": "Words of the year from Twitter, 2018", "url": "https://hugovk.dev/blog/2018/twitter-woty-2018/", "published_at": "2018-12-31T14:03:57+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08e5912a2", "title": "Python version share over time, 2", "url": "https://hugovk.dev/blog/2018/python-version-share-over-time-2/", "published_at": "2018-11-03T14:40:48+00:00" }, { "id": "01a0821c-a39d-7070-aa7f-d2b08f0a4937", "title": "Python version share over time, 1", "url": "https://hugovk.dev/blog/2018/python-version-share-over-time-1/", "published_at": "2018-07-05T14:40:48+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18bb88579c", "title": "Words of the year from Twitter, 2017", "url": "https://hugovk.dev/blog/2017/twitter-woty-2017/", "published_at": "2017-12-30T20:00:10+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18bbd48e95", "title": "Words of the year from Twitter, 2016", "url": "https://hugovk.dev/blog/2017/twitter-woty-2016/", "published_at": "2017-01-05T16:41:29+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18bc58b823", "title": "#woty15 nominations", "url": "https://hugovk.dev/blog/2016/woty15-nominations/", "published_at": "2016-01-08T21:34:16+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18bcd7387b", "title": "Words of the year from Twitter, 2015", "url": "https://hugovk.dev/blog/2016/twitter-woty-2015/", "published_at": "2016-01-02T11:46:01+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18bd3dfdee", "title": "Cutthroat verb-nouns", "url": "https://hugovk.dev/blog/2015/cutthroat-verb-nouns/", "published_at": "2015-05-26T12:54:38+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18bdfce5aa", "title": "Clusterstuff", "url": "https://hugovk.dev/blog/2015/clusterstuff/", "published_at": "2015-05-26T12:37:48+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18be24d2a9", "title": "Manwords", "url": "https://hugovk.dev/blog/2015/manwords/", "published_at": "2015-01-20T12:31:58+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18be91368f", "title": "Words of the year from Twitter, 2014", "url": "https://hugovk.dev/blog/2015/twitter-woty-2014/", "published_at": "2015-01-06T20:19:48+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18bf2de2cb", "title": "Twitter's new favourite words", "url": "https://hugovk.dev/blog/2013/twitters-new-favourite-words/", "published_at": "2013-10-25T10:22:54+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18bfc4c290", "title": "Symbian platform share in the Ovi Store (IV)", "url": "https://hugovk.dev/blog/2013/symbian-platform-share-iv/", "published_at": "2013-04-08T17:27:06+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c063bb2d", "title": "Naurissalmi strait, Helsinki", "url": "https://hugovk.dev/blog/2012/naurissalmi-strait-helsinki/", "published_at": "2012-03-24T09:30:00+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c08ad126", "title": "Symbian platform share in the Nokia Store (III)", "url": "https://hugovk.dev/blog/2012/symbian-platform-share-iii/", "published_at": "2012-03-12T21:59:47+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c17108c5", "title": "How to toggle playing/pausing of Spotify using the Pause key in Ubuntu", "url": "https://hugovk.dev/blog/2012/how-to-toggle-playingpausing-of-spotify-using-the-pause-key-in-ubuntu/", "published_at": "2012-01-13T13:05:26+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c24d57cf", "title": "How to auto-launch Mobbler when plugging in headphones", "url": "https://hugovk.dev/blog/2012/auto-launch-mobbler/", "published_at": "2012-01-05T16:33:39+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c2859d70", "title": "Symbian platform share in the Ovi Store (II)", "url": "https://hugovk.dev/blog/2011/symbian-platform-share-ii/", "published_at": "2011-09-08T22:47:38+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c32e187a", "title": "Symbian platform share in the Ovi Store", "url": "https://hugovk.dev/blog/2011/symbian-platform-share/", "published_at": "2011-04-26T22:14:34+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c3432eb1", "title": "Symbian errors, an illustrated catalogue of errors", "url": "https://hugovk.dev/blog/2009/symbian-errors-an-illustrated-guide/", "published_at": "2009-02-05T12:14:33+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c418822f", "title": "Booze It!", "url": "https://hugovk.dev/blog/2007/boozeit/", "published_at": "2007-04-16T18:04:49+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c498b50b", "title": "Gmail on Series 60", "url": "https://hugovk.dev/blog/2005/gmail-on-series-60/", "published_at": "2005-06-13T10:35:00+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c5684271", "title": "Series 60 Big Clock", "url": "https://hugovk.dev/blog/2005/big-clock/", "published_at": "2005-05-30T21:40:06+00:00" }, { "id": "01a08784-9b93-726f-833e-1b18c613ee7c", "title": "Morse Texter", "url": "https://hugovk.dev/blog/2005/morse-texter/", "published_at": "2005-05-30T17:07:09+00:00" } ] posts Claim your blog
Back to Hugo van Kemenade
Blog · corpus.blog/blogs/hugovk.dev/posts

Hugo van Kemenade

hugovk.dev

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2013

2012

2011

2009

2007

2005