<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: matttproud</title><link>https://news.ycombinator.com/user?id=matttproud</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 10 May 2026 08:43:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=matttproud" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by matttproud in "Lessons you will learn living in a snowy place"]]></title><description><![CDATA[
<p>Piggdekk in Norway are equivalent to North American studded tires.  When I lived in the northern parts of the U.S., I had a set of these for times around freezing rains.<p>Beyond the questions of winter weather properties, there are adjacent tradeoffs between the tire types (outside of studded):<p>1. Fuel economy<p>2. Noise<p>3. Degree of particulate pollution emission<p>I'm sure that the all-season tires probably have some negative tradeoffs in these regards to, which yields a choose the most optimal product for the time of year.  All-season tires to me seem like a convenience food for places where the weather can be legitimately bad.<p>One other difference that is hard to articulate to North American drivers with respect to understanding Scandinavia and roads: there are places where snow and ice will literally not be removed (maybe not even removeable) from the road when plowed (I presume until spring melt).  It just becomes a thick ice pack over the course of weeks.  I never encountered any roads in my life (including Northern Minnesota) that were this inclement.  North American roads tend to be cleared (plowing or melting) to asphalt or pavement.</p>
]]></description><pubDate>Wed, 11 Feb 2026 10:40:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46973364</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=46973364</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46973364</guid></item><item><title><![CDATA[New comment by matttproud in "Lessons you will learn living in a snowy place"]]></title><description><![CDATA[
<p>Driving discipline, culture, and rules in North America are Mickey Mouse.<p>The reality of car dependency there means that there are people driving and owning cars who can't really afford to do it properly, nor do they know they need to do it properly (e.g., having a second set of tires for the winter).  You can see this evidenced by the rust buckets on the road that look like they are one pothole away from losing part of the vehicle body.  Deferred maintenance and investment everywhere and in everything …</p>
]]></description><pubDate>Wed, 11 Feb 2026 08:02:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46972181</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=46972181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46972181</guid></item><item><title><![CDATA[New comment by matttproud in "Lessons you will learn living in a snowy place"]]></title><description><![CDATA[
<p>Yeah, it was interesting to see some above-ground-to-the-premises power delivery in some of the smaller Norwegian villages above the arctic circle.  Things looked rather robust, though.<p>I lived in the Oklahoma and in Minnesota, and the difference there is already stark:<p>* OK suffered from plenty of storm-induced winter power outages (massive freezing rain cycles were common in my life).  My mother's cotton bath robe, which she kept using until late in her life, had burn marks from when she reached for something over a lit candle during a power outage when I was four years old.<p>* MN suffers some, but people knew to develop meaningful contingency plans.<p>Both states have variegated buried-power-to-the-premises usage.  It's not really to be expected as the norm in either place, but MN has far more than OK (funnily enough I grew up in a place in OK with it).  Either way, the infrastructure robustness in North America looks like it arose from a dismal cost-benefit analysis versus a societal welfare consideration.<p>I left North America about 14 years ago for Europe.  The difference is stark.  We've only had one significant power interruption in that time (not even in winter); whereas stochastic neighborhood outages were commonplace in North America.  What really freaks me out about the situation in North America is just the poor insulation of the structures and their low thermal mass.  They will get cold fast.<p>Aside: A lot of friends and family in North America balked at the idea of getting a heat pump due to performance during a power outage: "when the power goes out, I can still run my gas."  When I asked them whether the house was heated with forced air or used an electronic thermostatic switches, the snarky smile turned to a grimace.<p>When you live in a cold place, you learn to do things differently.  You're naive if you don't pack warm blankets and water in your vehicle, for instance.  You never know when you might find yourself stranded somewhere due to vehicular breakdown …</p>
]]></description><pubDate>Wed, 11 Feb 2026 07:53:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46972117</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=46972117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46972117</guid></item><item><title><![CDATA[New comment by matttproud in "Redefining Go Functions"]]></title><description><![CDATA[
<p>Short version is this:<p>If you are going to get into the business of introducing order dependence to test cases through global state (see my other reply on the parent), you will always want the cleanup to work correctly.<p>1. Using (testing.TB).Cleanup is a good defensive habit to have if you author test helpers, especially if the test helpers (see: (testing.TB).Helper) themselves do something (e.g., resource provisioning) that requires ordered teardown.  Using (testing.TB).Cleanup is better than returning a cancellation or cleanup function from them.<p>2. (testing.TB).Cleanup has stronger guarantees about when it is called, especially when the test case itself crashes.  Example: <a href="https://go.dev/play/p/a3j6O9RK_OK" rel="nofollow">https://go.dev/play/p/a3j6O9RK_OK</a>.<p>I am certain that I am forgetting another edge case or two here.<p>Generally nobody should be designing their APIs to be testable through mutable global state.  That solves half the problem here.</p>
]]></description><pubDate>Tue, 10 Feb 2026 20:35:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46966488</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=46966488</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46966488</guid></item><item><title><![CDATA[New comment by matttproud in "Redefining Go Functions"]]></title><description><![CDATA[
<p>This is often the path of pain: <a href="https://google.github.io/styleguide/go/best-practices#global-state" rel="nofollow">https://google.github.io/styleguide/go/best-practices#global...</a>.</p>
]]></description><pubDate>Tue, 10 Feb 2026 17:25:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46963395</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=46963395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46963395</guid></item><item><title><![CDATA[New comment by matttproud in "Transfering Files with gRPC"]]></title><description><![CDATA[
<p>Method signatures in gRPC present a pandora's box of questions: <a href="https://matttproud.com/blog/posts/grpc-method-discipline.html" rel="nofollow">https://matttproud.com/blog/posts/grpc-method-discipline.htm...</a>.<p>The questions aren't unique to gRPC, however; gRPC forces you to confront them early and explicitly IMO, which is not a bad thing.</p>
]]></description><pubDate>Mon, 26 Jan 2026 17:54:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=46769050</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=46769050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46769050</guid></item><item><title><![CDATA[New comment by matttproud in "Why does Swiss cheese have holes?"]]></title><description><![CDATA[
<p>Another similar naming rabbit hole (hyper-local to Switzerland): <a href="https://de.wikipedia.org/wiki/Spanisch_Brötli" rel="nofollow">https://de.wikipedia.org/wiki/Spanisch_Brötli</a>.</p>
]]></description><pubDate>Mon, 03 Nov 2025 11:24:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=45797946</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=45797946</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45797946</guid></item><item><title><![CDATA[New comment by matttproud in "Why does Swiss cheese have holes?"]]></title><description><![CDATA[
<p>As an American living in CH, I say send all of the (bland) Emmentaler to the U.S.; I wouldn't miss it!  ;-)  Inländervorrang for the rest!</p>
]]></description><pubDate>Mon, 03 Nov 2025 10:46:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45797738</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=45797738</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45797738</guid></item><item><title><![CDATA[New comment by matttproud in "Build files are the best tool to represent software architecture"]]></title><description><![CDATA[
<p>Maybe better put: Bazel (and its predecessor) do support Go, but they don't support the traditional directory structure-to-import path semantic that we've come to expect in the outside world.  And even then, the terminal directory needn't match the package name, but accomplished Go developers seldom violate that convention these days — thankfully.<p>All of this makes it paramount for developers of Go tools to use a first-party package loading library like package packages (<a href="https://pkg.go.dev/golang.org/x/tools/go/packages" rel="nofollow">https://pkg.go.dev/golang.org/x/tools/go/packages</a>), which can ameliorate over this problem through the specification of a GOPACKAGESDRIVER environment variable to support alternative build systems and import path layouts (the worst thing someone can do is attempt to reverse engineer how package loading works itself versus delegating it to a library like this).</p>
]]></description><pubDate>Sat, 11 Oct 2025 18:24:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45551405</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=45551405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45551405</guid></item><item><title><![CDATA[New comment by matttproud in "Build files are the best tool to represent software architecture"]]></title><description><![CDATA[
<p>One of the worst things a developer accustomed to Bazel (and its relatives) can do with a modern language (say Go or Rust) is to model code and organize it through the Bazel concept of a build target (<a href="https://bazel.build/concepts/build-ref" rel="nofollow">https://bazel.build/concepts/build-ref</a>) first and then second represent it with the language's local organization concepts versus the other way around.  One should preferentially model the code with the language-local organizing concept in an idiomatic way (e.g., a Go package — <a href="https://go.dev/ref/spec#Package_clause" rel="nofollow">https://go.dev/ref/spec#Package_clause</a>) and THEN map that instance of organization to a build target (e.g., go_library).<p>When you do this in the wrong order, you end up with very poorly laid out concepts from a code organization standpoint, which is why vagaries like this needed to be written:<p>* <a href="https://google.github.io/styleguide/go/best-practices.html#package-size" rel="nofollow">https://google.github.io/styleguide/go/best-practices.html#p...</a><p>* <a href="https://matttproud.com/blog/posts/go-package-centricity.html" rel="nofollow">https://matttproud.com/blog/posts/go-package-centricity.html</a><p>In languages that operate on a flat namespace of compilable units (e.g., C++ or Java), build target sizing and grouping in Bazel (and its relatives) largely doesn't matter (from a naming the namespace and namespace findability+ergonomics perspective).  But the moment Bazel starts interfacing with a language that has strict organization and namespacing concepts, this can get rather hairy.  The flat namespace practice with Bazel has (IMO) led to code organization brain-rot:<p>> Oh, I created another small feature; here, let me place it in another (microscopic) build target (without thinking about how my users will access the symbols, locate the namespace, or have an easy way of finding it).<p>— — —<p>Note: The above is not a critique of Bazel and such.  More of a meta-comment on common mispractices I have seen in the wild.  The build system can be very powerful for certain types of things (e.g., FFI dependency preparation and using Aspects as a form of meta-building and -programming).</p>
]]></description><pubDate>Tue, 07 Oct 2025 14:09:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45503244</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=45503244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45503244</guid></item><item><title><![CDATA[New comment by matttproud in "FyneDesk: A full desktop environment for Linux written in Go"]]></title><description><![CDATA[
<p>Seriously.  I don't know if folks remember this Java desktop research project from 25-some years ago: <a href="https://en.wikipedia.org/wiki/Project_Looking_Glass" rel="nofollow">https://en.wikipedia.org/wiki/Project_Looking_Glass</a>.  To say that it was slow was an understatement (it was a real PITA to get this installed and built at the time; I spent an afternoon in college doing that out of boredom).<p>I imagine FyneDesk is plenty fine for what it is doing in comparison.</p>
]]></description><pubDate>Fri, 03 Oct 2025 05:00:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45459165</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=45459165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45459165</guid></item><item><title><![CDATA[New comment by matttproud in "Gentoo Linux might be the best desktop Linux distro for advanced Linux users"]]></title><description><![CDATA[
<p>Gentoo and Linux from Scratch (LFS) were a great way to learn back in the day (yes, 20-some years ago) — and support relatively custom operating environments through USE flags (e.g., which flavor of Motif did I want to use).  I found Gentoo to be a rather practical low-level tradeoff in that era compared to Debian (super old package set and release cadence).  You have to bear in mind: there were plenty of Gentoo users out there who weren't into abusing CFLAGS and such.  And Portage had such a low bar to climb to create a package (cf. Debian Policy Manual as a description of the arcane nature of Debian package management with dh).  Moreover, Ubuntu, which was a good pressure on Debian to modernize, wasn't yet on the mainstream for a good window of time when Gentoo really took off.</p>
]]></description><pubDate>Mon, 29 Sep 2025 14:04:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45413985</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=45413985</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45413985</guid></item><item><title><![CDATA[New comment by matttproud in "What's Up with Peter Thiel's Obsession with the Antichrist?"]]></title><description><![CDATA[
<p>He's spent too much time huffing Alexander Dugin's flatulence.  It's no different to how revanchist parties in the United States these days characterize their battle against their (domestic) enemies.  Just a rhetorical foil.</p>
]]></description><pubDate>Wed, 17 Sep 2025 04:56:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45271833</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=45271833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45271833</guid></item><item><title><![CDATA[New comment by matttproud in "Ask HN: Why are so many services rejecting Google Voice numbers for signups?"]]></title><description><![CDATA[
<p>Those of us who are U.S. citizens who live outside of the U.S. suffer a LOT because growing disallowances like these.</p>
]]></description><pubDate>Wed, 27 Aug 2025 02:16:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45034744</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=45034744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45034744</guid></item><item><title><![CDATA[New comment by matttproud in "David Klein's TWA Posters (2018)"]]></title><description><![CDATA[
<p>I presume this is hat a based on the ribbon.<p>Note: That link's (actual) photographs seem to suggest that the topic was not adequately researched or generatively produced.<p>Namely the photo with the caption "The Origin of Swiss Traditional Dress Photo by Cabinet Card Gallery" contains a sign within some words that indicate that even though these are Swiss people in the photo they are actually wearing costume to celebrate Austrian traditional costume of the region of Styria.  The hints are "Steirisch" (Styrian) and "Buachstoana" (looks like a phonetic spelling of a Bavarian/Austrian dialect word as opposed to Swiss German and "Verein" (club/association).  If someone could expand the "erh." abbreviation in a period-correct way, that would probably be definitively telling.  This also doesn't resemble much of the Tracht I have seen worn at festivals in Switzerland either (regionalisms aside).</p>
]]></description><pubDate>Sat, 23 Aug 2025 21:23:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44999252</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=44999252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44999252</guid></item><item><title><![CDATA[New comment by matttproud in "Speeding up my ZSH shell"]]></title><description><![CDATA[
<p>I don't have anything against ZSH or similar shells.  I think they are great, but they are not my thing.<p>Latency is a deal-breaker for me, and this is where autocompletion engines generally introduce surprising user-interactive pauses.  I've generally settled with using mksh (or OpenBSD's KSH depending on the environment) with little configuration outside of aliases, variables, and few local functions.  I'm not left with this inkling feeling like accidentally running find(1) over an AutoFS file system backed by NFS that needs to authenticate, mount, and then run the operation.<p>When I need something more sophisticated, I lean on using Go or Elvish and potentially delegate some UI elements out to <a href="https://github.com/charmbracelet/gum">https://github.com/charmbracelet/gum</a>.<p>I'd rather keep my shell simpler and delegate out any other complexity to these other programs.  Autocompletion and these other features simply aren’t free.</p>
]]></description><pubDate>Mon, 21 Jul 2025 09:40:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=44633342</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=44633342</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44633342</guid></item><item><title><![CDATA[New comment by matttproud in "Florida is letting companies make it harder for highly paid workers to swap jobs"]]></title><description><![CDATA[
<p>Coming soon (again) to a Florida near you: Liberty of Contract and Lochner Era jurisprudence.</p>
]]></description><pubDate>Wed, 09 Jul 2025 14:59:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=44510824</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=44510824</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44510824</guid></item><item><title><![CDATA[New comment by matttproud in "New Study: Waymo is reducing serious crashes and making streets safer"]]></title><description><![CDATA[
<p>Don't think for a minute I want human drivers anywhere near bicyclists or pedestrians or assume they are anywhere better for general-purpose driving.  Human drivers are awful, but I'd posit the behavior of these automated vehicles isn't much better toward making a welcoming road environment as they are programmed.  The laws — particularly for California and what is treated as standard in North America — don't help matters at all.</p>
]]></description><pubDate>Thu, 01 May 2025 20:15:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=43862861</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=43862861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43862861</guid></item><item><title><![CDATA[New comment by matttproud in "New Study: Waymo is reducing serious crashes and making streets safer"]]></title><description><![CDATA[
<p>A vehicle that becomes blocked in a crosswalk is unsafe for pedestrians who want to use that crosswalk if it forces the pedestrians to walk around the blocking vehicle.  There are crosswalks in SoMa that provide for 45 seconds or more of crossing time.  A Waymo that enters one of these crosswalks after 15 seconds into the 45 seconds allocation blocks the crosswalk for the remainder of the 30 seconds.  This presents an unsafe situation for all existing and future pedestrians (e.g., a pedestrian who inadvertently steps into the intersection while trying to go around the blocking vehicle).<p>We also know that in North America that the municipal services skimp on grade separation for bike lanes for budget and political reasons.  I did bike in San Francisco when I lived there, and these non-shared colored lanes never ever felt safe.<p>I can guarantee that if you leave your North American context for a couple of years and come back to it you'll find CA Vehicle Code § 21453 unsatisfactory.</p>
]]></description><pubDate>Thu, 01 May 2025 19:57:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=43862638</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=43862638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43862638</guid></item><item><title><![CDATA[New comment by matttproud in "New Study: Waymo is reducing serious crashes and making streets safer"]]></title><description><![CDATA[
<p>I was just on a business trip to San Francisco for a few days, and I observed the near opposite of this from the Waymo fleet in SoMa:<p>* Waymo vehicle creeping into the pedestrian crosswalk (while the pedestrians had right of way to cross), which caused someone to have to walk around the car into the intersection ahead of the Waymo.<p>* Waymo vehicle entering a dedicated bike lane and practically tailgating the bicyclist that was ahead of it.<p>These might be safer than human drivers in aggregate and normalized by kilometer driven, but they drive like humans — greedily and non-defensively.  I wouldn't want one these anywhere near a high-pedestrian traffic area ever, and I feel the same about human-driven cars, too.</p>
]]></description><pubDate>Thu, 01 May 2025 19:41:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=43862418</link><dc:creator>matttproud</dc:creator><comments>https://news.ycombinator.com/item?id=43862418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43862418</guid></item></channel></rss>