<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Today Hynek Learned on Hynek Schlawack</title><link>https://hynek.me/til/</link><description>Recent content in Today Hynek Learned on Hynek Schlawack</description><generator>Hugo</generator><language>en-us</language><managingEditor>hs@ox.cx (Hynek Schlawack)</managingEditor><webMaster>hs@ox.cx (Hynek Schlawack)</webMaster><lastBuildDate>Sun, 26 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://hynek.me/til/index.xml" rel="self" type="application/rss+xml"/><item><title>SQLite WAL Mode Can Lock Short-Lived Readers</title><link>https://hynek.me/til/sqlite-read-only-wal-locked/</link><pubDate>Sun, 26 Jul 2026 00:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/sqlite-read-only-wal-locked/</guid><description>&lt;p&gt;Locked SQLite database errors aren’t just for writers.&lt;/p&gt;</description></item><item><title>How to Push and Pull from GitHub Pull Request Branches</title><link>https://hynek.me/til/github-pull-request-git-push-pull/</link><pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/github-pull-request-git-push-pull/</guid><description>&lt;p&gt;GitHub has this cool feature where while opening a pull request &lt;a href="https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork"&gt;one can allow the maintainers to push changes to that branch&lt;/a&gt;. This is a lot more ergonomic than suggesting larger-scale edits in the insufferably slow GitHub web UI. But it does require setting up remotes and upstream branches correctly.&lt;/p&gt;</description></item><item><title>VS Code Is Hiding Refactoring Tools</title><link>https://hynek.me/til/vs-code-refactoring/</link><pubDate>Tue, 20 Feb 2024 00:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/vs-code-refactoring/</guid><description>&lt;p&gt;It turns out that VS Code can move symbols between Python modules – but it&amp;rsquo;s hiding the feature behind the &amp;ldquo;Quick Fix&amp;hellip;&amp;rdquo; context menu.&lt;/p&gt;</description></item><item><title>What to Do If a Beryl AX Can’t Connect to a Wi-Fi</title><link>https://hynek.me/til/beryl-ax-captive-portal/</link><pubDate>Sat, 07 Oct 2023 00:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/beryl-ax-captive-portal/</guid><description>&lt;p&gt;I&amp;rsquo;m absolutely in love with my &lt;a href="https://www.gl-inet.com/products/gl-mt3000/"&gt;GL.iNet GL-MT3000 (Beryl AX)&lt;/a&gt;, but occasionally, it has trouble connecting to captive portal Wi-Fis.&lt;/p&gt;</description></item><item><title>How to Stop macOS from Stealing Focus after Switching Apps Across Desktops</title><link>https://hynek.me/til/macos-window-focus-desktops/</link><pubDate>Fri, 06 Oct 2023 00:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/macos-window-focus-desktops/</guid><description>&lt;p&gt;For years, I&amp;rsquo;ve had a macOS bug that occurred randomly and that I could only fix by rebooting or logging out. The Internet is full of similar problems, but I never found a solution to mine, and my pleas for help on Twitter went unanswered. Now, I have found a workaround myself.&lt;/p&gt;</description></item><item><title>How to Add Justfile Syntax to bat</title><link>https://hynek.me/til/bat-justfile/</link><pubDate>Fri, 26 May 2023 12:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/bat-justfile/</guid><description>&lt;p&gt;I&amp;rsquo;m a big fan of &lt;a href="https://github.com/sharkdp/bat"&gt;&lt;em&gt;bat&lt;/em&gt;&lt;/a&gt; as a &lt;em&gt;cat&lt;/em&gt; replacement, and I&amp;rsquo;m an even bigger fan of &lt;a href="https://just.systems/man/en/chapter_1.html"&gt;&lt;em&gt;just&lt;/em&gt;&lt;/a&gt; as a Make replacement. Sadly, &lt;em&gt;bat&lt;/em&gt; doesn&amp;rsquo;t (and &lt;a href="https://github.com/sharkdp/bat/issues/2488"&gt;won&amp;rsquo;t&lt;/a&gt;) support Justfile syntax. But you can add it yourself with a little extra effort.&lt;/p&gt;</description></item><item><title>How to Automatically Switch to Rosetta With Fish and Direnv</title><link>https://hynek.me/til/automatic-rosetta-fish-direnv/</link><pubDate>Sat, 18 Mar 2023 12:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/automatic-rosetta-fish-direnv/</guid><description>&lt;p&gt;I love my Apple silicon computer, but having to &lt;em&gt;manually&lt;/em&gt; switch to &lt;a href="https://en.wikipedia.org/wiki/Rosetta_(software)"&gt;Rosetta&lt;/a&gt;-enabled shells for my Intel-only projects was a bummer.&lt;/p&gt;</description></item><item><title>How to Fix the set-output GitHub Actions Deprecation Warning</title><link>https://hynek.me/til/set-output-deprecation-github-actions/</link><pubDate>Fri, 14 Oct 2022 00:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/set-output-deprecation-github-actions/</guid><description>&lt;p&gt;If you have a &lt;em&gt;GitHub Actions&lt;/em&gt; workflow that sets an output using &lt;code&gt;echo ::set-output key=value&lt;/code&gt;, you have started to see an unhelpful deprecation warning. Here&amp;rsquo;s how to fix it.&lt;/p&gt;</description></item><item><title>You Can Build Portable Binaries of Python Applications</title><link>https://hynek.me/til/python-portable-binaries/</link><pubDate>Wed, 07 Sep 2022 00:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/python-portable-binaries/</guid><description>&lt;p&gt;Contrary to popular belief, it’s possible to ship portable executables of Python applications without sending your users to Python packaging hell.&lt;/p&gt;</description></item><item><title>Easier Crediting of Contributors on GitHub</title><link>https://hynek.me/til/easier-crediting-contributors-github/</link><pubDate>Thu, 18 Aug 2022 00:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/easier-crediting-contributors-github/</guid><description>&lt;p&gt;GitHub has the concept of &lt;em&gt;co-authors&lt;/em&gt; of a commit. You&amp;rsquo;ve probably seen it in the web UI, when multiple people are listed to have committed something. I want to be gracious with credit where it&amp;rsquo;s due and I&amp;rsquo;ve found ways to make it easier.&lt;/p&gt;</description></item><item><title>pip-tools Supports pyproject.toml</title><link>https://hynek.me/til/pip-tools-and-pyproject-toml/</link><pubDate>Fri, 12 Aug 2022 08:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/pip-tools-and-pyproject-toml/</guid><description>&lt;p&gt;&lt;em&gt;pip-tools&lt;/em&gt; is ready for modern packaging.&lt;/p&gt;</description></item><item><title>Parametrized pytest Fixtures</title><link>https://hynek.me/til/parametrized-pytest-fixtures/</link><pubDate>Mon, 14 Mar 2022 14:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/parametrized-pytest-fixtures/</guid><description>&lt;p&gt;If you reuse a &lt;code&gt;@pytest.mark.parametrize&lt;/code&gt; many times, it might be time to define a parametrized fixture instead.&lt;/p&gt;</description></item><item><title>Eve Extend</title><link>https://hynek.me/til/eve-extend/</link><pubDate>Sat, 12 Feb 2022 11:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/eve-extend/</guid><description>&lt;p&gt;Don&amp;rsquo;t buy it.&lt;/p&gt;</description></item><item><title>typing.Protocol Across Python Versions</title><link>https://hynek.me/til/typing-protocol/</link><pubDate>Sat, 05 Feb 2022 17:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/typing-protocol/</guid><description>&lt;p&gt;How to seamlessly support &lt;code&gt;typing.Protocol&lt;/code&gt; on Python versions older and newer than 3.8. At the same time.&lt;/p&gt;</description></item><item><title>You Can Stop Updating Copyright Attribution Years</title><link>https://hynek.me/til/copyright-years/</link><pubDate>Tue, 30 Nov 2021 08:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/copyright-years/</guid><description>&lt;p&gt;Every January 1st, an army of open source developers rushes out to update their copyright attributions in licenses and documentation. Why? Because we&amp;rsquo;ve always done it that way.&lt;/p&gt;</description></item><item><title>Template Links in Sphinx</title><link>https://hynek.me/til/sphinx-link-templates/</link><pubDate>Mon, 29 Nov 2021 17:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/sphinx-link-templates/</guid><description>&lt;p&gt;One of my pet peeves are projects without easily accessible changelogs (secondary pet peeve: changelogs without dates). Currently, I&amp;rsquo;m moving most auxiliary docs to Markdown, because that&amp;rsquo;s clearly what GitHub and related tooling wants me to. But I don&amp;rsquo;t want to compromise on my own pet peeve.&lt;/p&gt;</description></item><item><title>SONOS Shares Its Mesh</title><link>https://hynek.me/til/sonos-mesh/</link><pubDate>Tue, 09 Nov 2021 09:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/sonos-mesh/</guid><description>&lt;p&gt;The fact that SONOS devices build a transparent Wi-Fi mesh once one of them has wired Internet, is one of the main features of the ecosystem. TIL that at least the Playbar happily shares that mesh with your other devices.&lt;/p&gt;</description></item><item><title>which is not POSIX</title><link>https://hynek.me/til/which-not-posix/</link><pubDate>Sun, 31 Oct 2021 09:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/which-not-posix/</guid><description>&lt;p&gt;I learn a non-trivial number of things, because there&amp;rsquo;s Debian drama about them. The fact that the &lt;code&gt;which&lt;/code&gt; command is not part of any standard just joined the flock.&lt;/p&gt;</description></item><item><title>TLS Troubleshooting 101</title><link>https://hynek.me/til/tls-troubleshooting/</link><pubDate>Mon, 30 Aug 2021 12:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/tls-troubleshooting/</guid><description>&lt;p&gt;In my day job I spend a lot of time dealing with sketchy TLS setups. The error messages provided by OpenSSL tend to be quite opaque &amp;ndash; fortunately there&amp;rsquo;s tools to help you.&lt;/p&gt;</description></item><item><title>Python Project-Local Virtualenv Management</title><link>https://hynek.me/til/python-project-local-venvs/</link><pubDate>Wed, 25 Aug 2021 12:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/python-project-local-venvs/</guid><description>&lt;p&gt;On UNIX-like operating systems you can have the Python equivalent of &lt;code&gt;node_modules&lt;/code&gt; today, for every Python version, without changing your workflows.&lt;/p&gt;</description></item><item><title>Update All Go Modules</title><link>https://hynek.me/til/go-mod-update/</link><pubDate>Mon, 23 Aug 2021 12:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/go-mod-update/</guid><description>&lt;p&gt;Wanting to update &lt;em&gt;all&lt;/em&gt; dependencies in a way that it doesn&amp;rsquo;t break is somewhat more complicated than expected.&lt;/p&gt;</description></item><item><title>RQ &amp; macOS</title><link>https://hynek.me/til/rq-macos/</link><pubDate>Sun, 22 Aug 2021 12:00:00 +0000</pubDate><author>hs@ox.cx (Hynek Schlawack)</author><guid>https://hynek.me/til/rq-macos/</guid><description>&lt;p&gt;Due to &lt;code&gt;fork()&lt;/code&gt; semantics, using &lt;a href="https://python-rq.org"&gt;RQ&lt;/a&gt; on macOS can lead to confusing crashes.&lt;/p&gt;</description></item></channel></rss>