<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: hannibalhorn</title><link>https://news.ycombinator.com/user?id=hannibalhorn</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 22:14:51 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hannibalhorn" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hannibalhorn in "Vinyl Cache and Varnish Cache"]]></title><description><![CDATA[
<p>Did not know this had happened, but does seem PHK (the original author of Varnish) is now with of the Vinyl Cache project, so this is not just a typical fork.</p>
]]></description><pubDate>Sat, 11 Apr 2026 01:47:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47726426</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=47726426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47726426</guid></item><item><title><![CDATA[New comment by hannibalhorn in "A year of uv: pros, cons, and should you migrate"]]></title><description><![CDATA[
<p>If there's a language that does this right, all ears?  But I havn't seen it -<p>The use case described is for a small one off script for use in CI, or a single file script you send off to a colleague over Slack.  Very, very common scenario for many of us.  If your script depends on<p><pre><code>    a => c
    b => c
</code></pre>
You can pin versions of those direct dependencies like "a" and "b" easy enough, but 2 years later you may not get the same version of "c", unless the authors of "a" and "b" handle their dependency constraints perfectly.  In practice that's really hard and never happens.<p>The timestamp appraoch described above isn't perfect, but would result in the same dep graph, and results, 99% of the time..</p>
]]></description><pubDate>Wed, 19 Feb 2025 10:47:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=43100721</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=43100721</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43100721</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Using ARG in a Dockerfile – beware the gotcha"]]></title><description><![CDATA[
<p>That's an interesting link and an argument I hadn't seen before.<p>In my "real world" usage, I've found "bash strict mode" incredibly useful, especially when scripting things that others will be modifying.  It just avoids all of the "somebody forgot an error check", "there's a typo in a variable name", etc., type errors.  And pouring through logs to figure out what actually went wrong in CI/CD is brutal.<p>Looking at the examples:<p>- I don't generally do arithmetic in bash, that's a sign of "time to change language"
- Also generally use `if ...; then ...; fi` instead of `test ... && ...`<p>If you do the advanced type of scripting that somebody who writes a Bash FAQ does, I'm sure `set -e` can be annoying.  But once you learn a couple simple idioms y(covered on the original "bash strict mode" page) you don't have to know much more to have fairly robust scripts.  And future maintainers will thank you for it!</p>
]]></description><pubDate>Tue, 14 May 2024 12:15:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=40354349</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=40354349</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40354349</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Pandas 2.0 and the Arrow revolution"]]></title><description><![CDATA[
<p>I do the same.  Sounds like arrow is being implemented as an alternative, and you'll have to explicitly opt in via a dtype or a global setting, so numpy isn't going away.</p>
]]></description><pubDate>Tue, 28 Feb 2023 14:03:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=34969383</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=34969383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34969383</guid></item><item><title><![CDATA[New comment by hannibalhorn in "LXD containers on macOS at near-native speeds"]]></title><description><![CDATA[
<p>I've been really impressed with what I can accomplish with lima-vm, beyond just "replace docker desktop".  The latest pre-release supports Virtualization.framework, including virtiofs.</p>
]]></description><pubDate>Sun, 27 Nov 2022 14:01:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=33762968</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=33762968</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33762968</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Not Your Grandfather’s Perl"]]></title><description><![CDATA[
<p>Perl actually predates both of those!</p>
]]></description><pubDate>Fri, 09 Sep 2022 01:04:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=32774079</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=32774079</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32774079</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Show HN: WakaQ - a Python distributed task queue"]]></title><description><![CDATA[
<p>I really like the overall design and ethos, but a new project without typehints, pydoc, and at least some tests just isn't the kind of thing I'd bring into my stack.  Hope it gets a little bit of polish!</p>
]]></description><pubDate>Tue, 06 Sep 2022 00:18:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=32731035</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=32731035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32731035</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Is everything falling apart?"]]></title><description><![CDATA[
<p>Even well managed funds can result in someone getting the shaft.  My dad's pension (Delphi Salaried) was cut to 50% of what it was supposed to be after the events of '08, and it was funded to something like $0.86 on the dollar, above the national average.<p>The hourly workers (i.e., unionized) still got 100%, which was pretty unfair.</p>
]]></description><pubDate>Sat, 30 Apr 2022 00:17:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=31212106</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=31212106</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31212106</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Show HN: Flight Penguin – Like Hipmunk, but a browser extension"]]></title><description><![CDATA[
<p>That makes total sense, and glad to hear that it could be on the table when the time is right!</p>
]]></description><pubDate>Wed, 06 Apr 2022 01:12:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=30927239</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=30927239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30927239</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Show HN: Flight Penguin – Like Hipmunk, but a browser extension"]]></title><description><![CDATA[
<p>My gut reaction was that as a browser extension, you would have the ability to add airlines that refuse to participate in the current travel sites, e.g., Southwest?  But I don't see them in the results...</p>
]]></description><pubDate>Wed, 06 Apr 2022 00:37:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=30926986</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=30926986</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30926986</guid></item><item><title><![CDATA[New comment by hannibalhorn in "IRS to ditch biometric requirement for online access"]]></title><description><![CDATA[
<p>I actually gave it a try, and couldn't successfully signup due to the phone number check, even though my name is on the line.  Figure I've wasted a couple hours on it in total.  Unnecessary friction.</p>
]]></description><pubDate>Mon, 07 Feb 2022 22:07:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=30252014</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=30252014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30252014</guid></item><item><title><![CDATA[New comment by hannibalhorn in "PyGaze – open-source eye-tracking software and more"]]></title><description><![CDATA[
<p>Usually the disabled get the hardware through insurance or grants - in Texas, the state provides grants for assistive communication devices out of a fund sourced from a phone bill tax.  My dad's Tobii i16 came out to ~$15k.  Ex-USA, I'm sure the cost of these things is ... unreasonably prohibitive.<p>I'm actually kinda excited to find PyGaze, we might play with it and see if I can tweak a few things to improve his experience.</p>
]]></description><pubDate>Wed, 10 Nov 2021 15:31:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=29175700</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=29175700</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29175700</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Python interpreter written in rust reaches 10000 commits"]]></title><description><![CDATA[
<p>I believe Python C-API compatibility isn't a really a goal for this implementation anyway. [1]  HPy sounds like the best path forward?<p>1. <a href="https://github.com/RustPython/RustPython/issues/1940" rel="nofollow">https://github.com/RustPython/RustPython/issues/1940</a></p>
]]></description><pubDate>Wed, 03 Nov 2021 15:12:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=29095796</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=29095796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29095796</guid></item><item><title><![CDATA[New comment by hannibalhorn in "U.S. government owes over $100M for TSA's patent infringement"]]></title><description><![CDATA[
<p>So the "invention" is stackable trays on a cart?  :-(  I guess it's not just software patents that have become problematic.</p>
]]></description><pubDate>Thu, 28 Oct 2021 14:03:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=29026255</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=29026255</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29026255</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Andrew Yang Founds the Forward Party"]]></title><description><![CDATA[
<p>That is actually what he's doing [1]:<p><pre><code>    We will support candidates for office who align with our core principles so that we can reform the system and make it more responsive to the American people. This means that we will support Republicans, Democrats, and Independents - as well as candidates identifying themselves as Forward Party members.
</code></pre>
1. <a href="https://www.forwardparty.com/whyforward" rel="nofollow">https://www.forwardparty.com/whyforward</a></p>
]]></description><pubDate>Wed, 06 Oct 2021 00:27:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=28767610</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=28767610</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28767610</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Deep reinforcement learning will transform manufacturing as we know it"]]></title><description><![CDATA[
<p>So after reading the article I started reading up on deep RL, and came across what is essentially a blog post that shows you how to train a model to play Super Mario Bros [1].  I have of course done all the mNIST handwritten number recognition stuff, and have done quite a bit of real world analysis with scikit-learn, but this is... pretty cool!<p>1. <a href="https://pytorch.org/tutorials/intermediate/mario_rl_tutorial.html" rel="nofollow">https://pytorch.org/tutorials/intermediate/mario_rl_tutorial...</a></p>
]]></description><pubDate>Sun, 20 Jun 2021 02:56:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=27566711</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=27566711</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27566711</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Use Touch ID for Sudo on Mac"]]></title><description><![CDATA[
<p>Kinda close - I use Hammerspoon to setup a hotkey that runs security(1) via popen to retrieve and paste passwords into some apps.<p><pre><code>    /usr/bin/security find-internet-password -wgs mydomain.com
</code></pre>
It requires the keychain to be unlocked, which can be handled with touch ID, and you can have it confirm with a "are you sure" dialog box every time.<p>If you really wanted to be prompted for a fingerprint basically every time, you could probably use a separate keychain that locks after 1 minute of inactivity.</p>
]]></description><pubDate>Mon, 01 Mar 2021 16:58:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=26304868</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=26304868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26304868</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Pattern matching accepted for Python"]]></title><description><![CDATA[
<p>The accepted PEP is 634: <a href="https://www.python.org/dev/peps/pep-0634/" rel="nofollow">https://www.python.org/dev/peps/pep-0634/</a> and the tutorial has some examples: <a href="https://www.python.org/dev/peps/pep-0636/" rel="nofollow">https://www.python.org/dev/peps/pep-0636/</a> .</p>
]]></description><pubDate>Tue, 09 Feb 2021 20:12:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=26081909</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=26081909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26081909</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Python 3's F-Strings: An Improved String Formatting Syntax"]]></title><description><![CDATA[
<p>You really have to understand how it's translated into actual code, and of course it's Python, so there's some legacy syntax to take into account.  A `:` just means call format(lhs, rhs), for example.<p>You can also actually combine those syntaxes - I often use f"{foo:%Y-%m-%d!r}" to get a quoted, properly escaped date in a specific format, for example.</p>
]]></description><pubDate>Thu, 21 Jan 2021 04:37:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=25855449</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=25855449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25855449</guid></item><item><title><![CDATA[New comment by hannibalhorn in "Changes to the pip dependency resolver in 20.3"]]></title><description><![CDATA[
<p>Then switch to poetry, why break pip?<p>The dependency I referenced actually uses poetry, and the reason it's borked is because "poetry add pandas" back when 0.25.1 was current meant effectively adding "poetry==^0.25.1" to requirements.txt, even though the one line of actual code that uses pandas works on pretty much any version I've ever seen.</p>
]]></description><pubDate>Sat, 21 Nov 2020 04:25:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=25167866</link><dc:creator>hannibalhorn</dc:creator><comments>https://news.ycombinator.com/item?id=25167866</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25167866</guid></item></channel></rss>