<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: zanecodes</title><link>https://news.ycombinator.com/user?id=zanecodes</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 11 Sep 2026 12:59:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=zanecodes" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by zanecodes in "Rust is tier-1 language at Microsoft"]]></title><description><![CDATA[
<p>Android's permission system conflates the Bluetooth scanning permission with the "Fine location" permission, because in theory any app that can enumerate nearby Bluetooth devices (including things like nearby Bluetooth Low Energy beacons commonly found in stores and malls) could use that information to locate your phone within a few hundred feet.<p>It seems like there's a newer build option to explicitly disable the "Fine location" permission prompt while still being able to scan for Bluetooth devices, but such beacons are somehow filtered from the list if it's enabled, and it's only available for builds targeting newer Android versions.</p>
]]></description><pubDate>Thu, 10 Sep 2026 18:53:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49648604</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=49648604</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49648604</guid></item><item><title><![CDATA[New comment by zanecodes in "Dates That Don't Exist (2015)"]]></title><description><![CDATA[
<p>Interesting, I didn't know that! I suppose I could edit my post accordingly, maybe a better example would be "the pharmacy won't let me get a refill until the date written on my prescription: Wednesday, August 12th 2026"? I think the point gets across regardless.</p>
]]></description><pubDate>Tue, 04 Aug 2026 20:46:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49174880</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=49174880</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49174880</guid></item><item><title><![CDATA[New comment by zanecodes in "Dates That Don't Exist (2015)"]]></title><description><![CDATA[
<p>Dealing with dates becomes much simpler conceptually when you realize that you are actually dealing with two different ideas masquerading as one: dates, and the actual instants in time which they name. Instants in time can only be unambiguously referenced by measuring some fixed unit of time intervals from some commonly agreed upon event (e.g. seconds since the Unix Epoch).<p>Dates are a mapping from human-readable labels to instants in time; critically, this mapping is not a total function (there are dates that map to no instant in time in a particular calendar, such as October 5-14 1582 in the Gregorian calendar, or 2:30am March 8 2026 in US timezones due to DST), nor is it in fact a function at all depending on how you define your inputs (1:30am November 1 2026 in US timezones is ambiguous if you don't specify DST/ST).<p>Furthermore, the mappings (both for past dates and future dates!) can themselves change over time (changes to DST, timezones, and calendars such as in TFA), and you need to keep track of these changes in perpetuity, as well as at which instant in time they were implemented, and we don't necessarily have that information for some of these historical changes, we only have the date as written down, which itself can suffer from the ambiguity problem (is it the date pre- or post- calendar change?).<p>This makes dealing with past dates tricky, and dealing with future dates speculative at best. For instance, what's February 28th + 1 day? The answer depends on the calendar system and the year; we can answer it definitively for past years but not necessarily for future years (maybe in 2040 we'll move the leap day to December 32nd). This is why it's important to immediately convert past dates (and sometimes future dates, depending on the use case) to unambiguous instants in time, and only convert them back to dates for display purposes.<p>"Wednesday, August 12th 2026" and "8 days from now" are also semantically distinct for some purposes: if have 8 doses of a daily prescription left, I'm still going to run out in 8 days even if tomorrow the government decides to repeal the Gregorian calendar, thus changing the name of "8 days from now" from "Wednesday, August 12th 2026" to "Sunday, August 2nd 2026". My medication doesn't care what the government decides to call 8 days from now, I'm going to run out either way. The pharmacy, on the other hand, very much does care what the government decides to call 8 days from now, because perhaps they're closed on Sundays. The calendar change means that "8 days from now" went from being not-a-Sunday to a Sunday, affecting their operating hours.<p>It's really just another instance of one of the two hard problems in computer science: naming things.</p>
]]></description><pubDate>Tue, 04 Aug 2026 18:54:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=49173217</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=49173217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49173217</guid></item><item><title><![CDATA[New comment by zanecodes in "The development pipeline is a production system"]]></title><description><![CDATA[
<p>Docker has made this much much easier than it used to be, and the ease of publishing images has led to many SaaS companies providing "dockerized" versions of their services.<p>I write a lot of Terraform to manage internal infrastructure with dependencies on other internal and external infrastructure that's outside of my control. I define a module parameter for each dependency (usually with a default value that points to the real service URL) and then create a second module that uses Docker to spin up and configure local instances of each dependency and overrides the corresponding parameter.<p>This makes local testing very straightforward: `terraform -chdir=tests apply`</p>
]]></description><pubDate>Sat, 01 Aug 2026 20:25:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49138099</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=49138099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49138099</guid></item><item><title><![CDATA[New comment by zanecodes in "Producing ammonia and fertiliser using wind power in Morris, Minnesota"]]></title><description><![CDATA[
<p>Not to mention indirectly subsidised by ignoring the externalities imposed on the health of ourselves and our environment.</p>
]]></description><pubDate>Sun, 26 Jul 2026 02:06:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49053914</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=49053914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49053914</guid></item><item><title><![CDATA[New comment by zanecodes in "Producing ammonia and fertiliser using wind power in Morris, Minnesota"]]></title><description><![CDATA[
<p>Fossil fuel being heavily subsidised kind of undermines both of your points.</p>
]]></description><pubDate>Sat, 25 Jul 2026 21:00:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49051514</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=49051514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49051514</guid></item><item><title><![CDATA[New comment by zanecodes in "git's –end-of-options Flag"]]></title><description><![CDATA[
<p>Sometimes you're using git in a context where you don't control the filenames, or where a potential attacker could influence or fully control them, at which point edge cases like this can easily turn into exploits.<p>I also chafe whenever I run into artificial restrictions on things like characters in names of things, because there's no good reason for them besides the laziness of developers or the limitations and inertia of existing systems that might be used under the hood, like DNS for instance.</p>
]]></description><pubDate>Thu, 23 Jul 2026 05:02:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49017152</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=49017152</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49017152</guid></item><item><title><![CDATA[New comment by zanecodes in "Which streaming service was that on again?"]]></title><description><![CDATA[
<p>Poob has it for you.</p>
]]></description><pubDate>Wed, 22 Jul 2026 16:37:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49009555</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=49009555</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49009555</guid></item><item><title><![CDATA[New comment by zanecodes in "Goes-19 weather satellite enters Safe Hold mode"]]></title><description><![CDATA[
<p>I doubt you need an LLM for that, a diffusion model or perhaps even a deep CNN could probably do a passable job. You could train it by taking consecutive triplets of images [A, B, C] and providing [A, C] as inputs with B as the expected output.</p>
]]></description><pubDate>Thu, 16 Jul 2026 17:58:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48937931</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=48937931</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48937931</guid></item><item><title><![CDATA[New comment by zanecodes in "Just Let Me Write Digits"]]></title><description><![CDATA[
<p>My equally uninformed guess is that the presence of six empty boxes communicates that the code entered must be exactly six digits long in a way that a generic text input doesn't. It clearly delineates the digits which makes it easy to see how many you've entered and how many are empty, and the presence of an empty box suggests that it needs to be filled while a number that's simply shorter than the input field doesn't. At least, that's my steelman; maybe browsers should check if a field's min-length and max-length are the same and style them similarly?</p>
]]></description><pubDate>Tue, 14 Jul 2026 16:28:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48909317</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=48909317</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48909317</guid></item><item><title><![CDATA[New comment by zanecodes in "Have you restarted your computer this week?"]]></title><description><![CDATA[
<p>So I don't have to spend 10-15 minutes saving all my open files (including the scratchpad ones I haven't named) and then later reopening all my applications, recreating all of my tmux windows and panes, setting up my vim splits and tabs again, and starting all of my stopped Docker containers?</p>
]]></description><pubDate>Tue, 30 Jun 2026 16:47:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48735419</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=48735419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48735419</guid></item><item><title><![CDATA[New comment by zanecodes in "Coreutils for Windows"]]></title><description><![CDATA[
<p>Not that it detracts from your point, but PowerShell defined Linux-like aliases for PowerShell commands, not the old CMD.exe binaries.<p>So ls would actually match the behavior and accept the flags for Get-ChildItem, not dir.</p>
]]></description><pubDate>Tue, 02 Jun 2026 19:08:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48374755</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=48374755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48374755</guid></item><item><title><![CDATA[New comment by zanecodes in "Can we have the day off?"]]></title><description><![CDATA[
<p>If only there were some kind of third party we could all collectively agree to delegate enforcement of cooperation to...</p>
]]></description><pubDate>Thu, 28 May 2026 01:22:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48303111</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=48303111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48303111</guid></item><item><title><![CDATA[New comment by zanecodes in "Local Stack Archived their GitHub repo and requires an account to run"]]></title><description><![CDATA[
<p>>MinIO<p>I have some bad news for you: <a href="https://news.ycombinator.com/item?id=47000041">https://news.ycombinator.com/item?id=47000041</a></p>
]]></description><pubDate>Mon, 23 Mar 2026 20:17:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47494538</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=47494538</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47494538</guid></item><item><title><![CDATA[New comment by zanecodes in "Amazon Ring's lost dog ad sparks backlash amid fears of mass surveillance"]]></title><description><![CDATA[
<p>I'm pretty sure that if you need ubiquitous surveillance to ensure that your citizens don't commit crimes, you don't have a high-trust society, by definition.</p>
]]></description><pubDate>Wed, 11 Feb 2026 23:18:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46982619</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=46982619</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46982619</guid></item><item><title><![CDATA[New comment by zanecodes in "Parse, Don't Validate (2019)"]]></title><description><![CDATA[
<p>Ah yeah, I guess I assumed by the use of the term "contructor" that GP meant a language like Python or Java, and in some cases it can difficult to prevent misuse by making an unsafe constructor private and only providing a public safe contructor that returns a sum type.<p>I definitely agree returning a sum type is ideal.</p>
]]></description><pubDate>Tue, 10 Feb 2026 18:36:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46964655</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=46964655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46964655</guid></item><item><title><![CDATA[New comment by zanecodes in "Parse, Don't Validate (2019)"]]></title><description><![CDATA[
<p>Given that the compiler can't enforce that users only enter valid data at compile time, the next best thing is enforcing that when they do enter invalid data, the program won't produce an `Email` object from it, and thus all `Email` objects and their contents can be assumed to be valid.</p>
]]></description><pubDate>Tue, 10 Feb 2026 17:37:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46963635</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=46963635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46963635</guid></item><item><title><![CDATA[New comment by zanecodes in "Court Filings: ICE App Identifies Protesters; Global Entry, PreCheck Get Revoked"]]></title><description><![CDATA[
<p>The far right are largely the people voting against robust safety nets and low inequality...</p>
]]></description><pubDate>Sat, 31 Jan 2026 03:12:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46832991</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=46832991</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46832991</guid></item><item><title><![CDATA[New comment by zanecodes in "You did no fact checking, and I must scream"]]></title><description><![CDATA[
<p>You might be interested in IPFS [1], and content-addressed storage systems more generally.<p>[1] <a href="https://en.wikipedia.org/wiki/InterPlanetary_File_System" rel="nofollow">https://en.wikipedia.org/wiki/InterPlanetary_File_System</a></p>
]]></description><pubDate>Fri, 17 Oct 2025 16:06:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45618317</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=45618317</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45618317</guid></item><item><title><![CDATA[New comment by zanecodes in "MAML – A new configuration language"]]></title><description><![CDATA[
<p>You can directly pass JSON to Terraform by putting it in a `.tfvars.json` file [1], as far as I can tell this has been supported since v0.5.0 which released in May 2015.<p>Terraform doesn't have a built-in deep merge function, but it will merge `.tfvars.json` files in the order given on the CLI, if you specify multiple `-var-file` arguments. For what it's worth, as of Terraform 1.8, you can also use functions from third-party providers like isometry/deepmerge [2] to perform a deep merge.<p>[1] <a href="https://developer.hashicorp.com/terraform/language/parameterize#variable-definition-files" rel="nofollow">https://developer.hashicorp.com/terraform/language/parameter...</a>
[2] <a href="https://registry.terraform.io/providers/isometry/deepmerge/latest/docs/functions/mergo" rel="nofollow">https://registry.terraform.io/providers/isometry/deepmerge/l...</a></p>
]]></description><pubDate>Mon, 13 Oct 2025 00:47:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45563575</link><dc:creator>zanecodes</dc:creator><comments>https://news.ycombinator.com/item?id=45563575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45563575</guid></item></channel></rss>