<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: bbminner</title><link>https://news.ycombinator.com/user?id=bbminner</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 02:05:53 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bbminner" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bbminner in "I won't download your app. The web version is a-ok"]]></title><description><![CDATA[
<p>I asked the same question a few years ago, and the answer I arrived at is that the app has, by default, more permissions (not only technical but also conventional) to collect data, send push notifications, and otherwise harass the user.</p>
]]></description><pubDate>Mon, 06 Apr 2026 16:15:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47662849</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=47662849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47662849</guid></item><item><title><![CDATA[New comment by bbminner in "Traffic from Russia to Cloudflare is 60% down from last year"]]></title><description><![CDATA[
<p>To my surprise, even sophisticated means of traffic masking like amnezia and vxray get disrupted frequently, requiring hopping around self hosted solutions and updating ones setup periodically. That's waaay beyond what most people are capable of. I am fortunate to have some tech worker acquaintance who live next to my family members, otherwise there'd be no way for me to for example guide them through setup and re-configuration remotely. Still, this setup gets disrupted every month or so requiring manual intervention.</p>
]]></description><pubDate>Tue, 10 Mar 2026 15:21:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47324492</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=47324492</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47324492</guid></item><item><title><![CDATA[New comment by bbminner in "The Hunt for Dark Breakfast"]]></title><description><![CDATA[
<p>Eastern European pan-fried cottage cheese fritters (mix and fry 150g cottage cheese, 5 tbsp flour, 1 egg, 3 tbsp sugar, salt) are great. That's all I have to say.</p>
]]></description><pubDate>Fri, 27 Feb 2026 06:29:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47177245</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=47177245</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47177245</guid></item><item><title><![CDATA[New comment by bbminner in "Golfing APL/K in 90 Lines of Python"]]></title><description><![CDATA[
<p>I still consider jax.vmap to be a little miracle: fn2 = vmap(fn, (1,2)), if i remember correctly, traverces the computation graph of fn and correctly broacasts all operations in a way that ensures that fn2 acts like fn applied in a loop across the second dimension of the first argument (but accelerated, has auto-gradients, etc).</p>
]]></description><pubDate>Thu, 22 Jan 2026 04:44:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46715413</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46715413</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46715413</guid></item><item><title><![CDATA[New comment by bbminner in "Bose has released API docs and opened the API for its EoL SoundTouch speakers"]]></title><description><![CDATA[
<p>A long while ago i heard something (that might have been a urban myth) about Bose putting useless weight into their headphones to make them appear more "substantially professional". Is that a myth or they have pivoted towards actual quality since early days?</p>
]]></description><pubDate>Thu, 08 Jan 2026 15:50:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46542398</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46542398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46542398</guid></item><item><title><![CDATA[New comment by bbminner in "The Economics of Duke University"]]></title><description><![CDATA[
<p>I'd be curious to know the breakdown of "wages and benefits" between academics, teachers and administrative staff. I've heard that admin takes up a huge fraction of the cost. How large can it be?</p>
]]></description><pubDate>Wed, 31 Dec 2025 18:05:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46446610</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46446610</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46446610</guid></item><item><title><![CDATA[New comment by bbminner in "Easel Now Has Stencils"]]></title><description><![CDATA[
<p>This is really cool, these patterns (run once now and then once triggered) surface all the time and usually turn into ugly code! How many interations did it take?<p>So most lines like A { B{ on D{ print() } } C{} } equivalently desugar into something like a = A; b = B(); a.mount(b); d = D(); d.on(f); b.mount(d); .. ?<p>I got confused by a couple of things. One of them is whether object parameters act like context parameters and there for depend on names in the caller variable scope? Ie if i define 'fn ship.Explode', i must have variable ship at call site? But i can still otherwise pass it explicitly as alien_ship.Explode(), right? How do i know if a particular call takes the current object into account? If i have two variables in my nested scope: ship and asteriod and both have ship.Explode and asteroid.Explode, which one is picked if i do just `Explode`? The innermost? Or I can't have two functions like that because the first thing is literally just a named variable and not a "method"?<p>Overall, if you could provide some examples of how things could have de-sugured into a different language, that'd be very interesting! Maybe with some examples of why this or that pattern is useful? I think it does a good job for things like on / once, but I'm not grokking how one would structure an app using this variable scoping use clause and object parameters.<p>Also not sure how to define functions that could be on'd or once'd. (Ah, i see, delve)</p>
]]></description><pubDate>Tue, 16 Dec 2025 16:13:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46290365</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46290365</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46290365</guid></item><item><title><![CDATA[New comment by bbminner in "Full Unicode Search at 50× ICU Speed with AVX‑512"]]></title><description><![CDATA[
<p>I was really confused about the case folding, this page explained the motivation well <a href="https://jean.abou-samra.fr/blog/unicode-misconceptions" rel="nofollow">https://jean.abou-samra.fr/blog/unicode-misconceptions</a><p>"""
Continuing with the previous example of “ß”, one has lowercase("ss") != lowercase("ß") but uppercase("ss") == uppercase("ß"). Conversely, for legacy reasons (compatibility with encodings predating Unicode), there exists a Kelvin sign “K”, which is distinct from the Latin uppercase letter “K”, but also lowercases to the normal Latin lowercase letter “k”, so that uppercase("K") != uppercase("K") but lowercase("K") == lowercase("K").<p>The correct way is to use Unicode case folding, a form of normalization designed specifically for case-insensitive comparisons. Both casefold("ß") == casefold("ss") and casefold("K") == casefold("K") are true. Case folding usually yields the same result as lowercasing, but not always (e.g., “ß” lowercases to itself but case-folds to “ss”).
"""<p>One question I have is why have Kelvin sign that is distinct from Latin K and other indistinguishable symbols? To make quantified machine readable (oh, this is not a 100K license plate or money amount, but a temperature)? Or to make it easier for specialized software to display it in correct placed/units?</p>
]]></description><pubDate>Tue, 16 Dec 2025 15:52:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46290069</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46290069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46290069</guid></item><item><title><![CDATA[New comment by bbminner in "Easel Now Has Stencils"]]></title><description><![CDATA[
<p>It is very interesting though! I have been interested in this kind of language design for interactive UI for a while. If there was a quick article outlining how all the "with" and "on" and "own" work to more experienced developers using references to existing language features, I'd love to read it. Right now it reminds me of the declarative style of qt ui and online primitives introduced in godot, but i haven't looked at it in more details. Also love your take on async. Wish you all the best luck, this seems like a really thought through language design!</p>
]]></description><pubDate>Sat, 13 Dec 2025 14:56:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=46254949</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46254949</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46254949</guid></item><item><title><![CDATA[New comment by bbminner in "VCMI: An open-source engine for Heroes III"]]></title><description><![CDATA[
<p>Did HoMM series ever get popular outside Eastern Europe? I am yet to meet a person born and raised in the US who have heard about it, but maybe i am just unlucky or targeting a wrong demographic.</p>
]]></description><pubDate>Thu, 11 Dec 2025 16:35:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46233565</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46233565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46233565</guid></item><item><title><![CDATA[New comment by bbminner in "Patterns.dev"]]></title><description><![CDATA[
<p>I think it is difficult to oversell the bob nystrom game patterns book<p><a href="https://gameprogrammingpatterns.com/contents.html" rel="nofollow">https://gameprogrammingpatterns.com/contents.html</a></p>
]]></description><pubDate>Thu, 11 Dec 2025 05:54:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46228132</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46228132</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46228132</guid></item><item><title><![CDATA[New comment by bbminner in "Patterns for Defensive Programming in Rust"]]></title><description><![CDATA[
<p>While better, a person modifying PizzaDetails might or might not expect this change to affect the downstream pizza deduplication logic (wherever it got sprinkled throughout the code). They might not even know that it exists.<p>Ideally, imho, a struct is a dumb data holder - it is there to pass associated pieces of data together (or hold a complex unavoidable state change hidden from the user like Arc or Mutex).<p>All that is to say that adding a field to an existing struct and possibly populating it sparsely in some remote piece of code should not changed existing behavior.<p>I wonder whether there's a way to communicate to whoever makes changes to the pizza details struct that it might have unintended consequences down the line.<p>Should one wrap PizzaDetails with PizzaComparator? Or better even provide it as a field in PizzaOrder? Or we are running into Java-esq territory of PizzaComparatorBuilderDefaultsConstructorFactory?<p>Should we introduce a domain specific PizzaFlavor right under PizzaDetails that copies over relevant fields from PizzaDetails, and PizzaOrder compares two orders by constructing and comparing their flavours instead? A lot of boilerplate.. but what is being considered important to the pizza flavor is being explicitly marked.<p>In a prod codebase I'd annotate this code with "if change X chaange Y" pre submit hook - this constraint appears to be external to the language itself and live in the domain of "code changes over time". Protobufs successfully folded versioning into the language itself though. Protobufs also have field annotations, "{important_to_flavour=true}" field annotation would be useful here.</p>
]]></description><pubDate>Sat, 06 Dec 2025 18:49:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46175629</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46175629</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46175629</guid></item><item><title><![CDATA[New comment by bbminner in "The Easiest Way to Build a Type Checker"]]></title><description><![CDATA[
<p>I have not looked into the HM algorithm much, but is there (an educational or performance wise) advantage over implementing a (dumb) SAT solver and expressing a problem as a SAT problem? It always seemed like the "natural representation" for this kind problem to me. Does knowing that these are types _specifically_ help you somehow / give you some unique insights that won't hold in other similar SAT problems?</p>
]]></description><pubDate>Sun, 30 Nov 2025 19:02:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46099369</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46099369</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46099369</guid></item><item><title><![CDATA[New comment by bbminner in "Bringing Sexy Back. Internet surveillance has killed eroticism"]]></title><description><![CDATA[
<p>I would not say that this is due to a social media bubble - HN is the only social media i use, i have friends along the political spectrum, and still i can relate to many of the points that the author raised. At one point, I found myself increasingly uncertain and conflicted about my own "actual convictions", and "underlying motives", and whether someone else (even potentially!) labeling me as a creep or assuming poor intentions automatically makes me one. Some unfortunate preceding life experiences corroded my self image as well, which might have contribute to it, but that's not the point.<p>I'd actually go further and argue that what appears to twist this social fabric inside out is not only the online nature of the interaction itself, but the corporate centralized algorithmic nature of it. I am in no way a proponents of decentralizing everything (social media, money, infra, etc) for the sake of it - most systems work more efficiently when centralized, that's just a fact of reality. Maybe the fact that ads, corporate communications (linkedin -speak posts / slack / mcdonald's twitter account) and social interactions now live in the same space (and barely distinguishable in feeds) must have somehow forced these spaces to use the most uniform neutered language that lacks subtleties allowed in 1:1 communications? So people speak in political slogans and ad jingles instead of actual thoughts? Because these spaces NEED people to speak like that to stay civil and "corporately acceptable"? I am just brainstorming, in no way suggesting that a "free for all" is a solution.<p>I watched a movie called Anora recently, and toward the end there's a dialogue along the lines of<p>- If not for these other people in the room, you'd have raped me!
- No I wouldn't.
- Why not?
- (baffled and laughing) Because I am not a rapist.<p>One way to interpret this movie, this dialogue, and what follows is that the main female character has been used and abused her entire life by the rich / capitalist system in general / embodied by a character of a rich bratty child of an oligarch in particular - that her world almost assumes this kind of transactional exploitation as a part of human relationships - and struggles to feel safe without it - almost seeking more exploitation to feel somewhat in control. And the other person in the dialogue above (who is not a rich child) counters that by asserting and knowing very well who he is (and isn't), and that knowledgeable doesn't require or provide any further justification.<p>Tldr maybe the magical dream of a conflict-free society where people understand each other is not ours after all - maybe it is the ideal grassland for ad-driven social media to monetize our interactions in a safe controlled fashion? one evidence towards that is the de-personalized neutered templated nature of the kind of "advice" that people give online to earn social credit - that leaks into real world 1-to-1 interactions in the form of anxiety of being "watched and judged" - as described by the author?</p>
]]></description><pubDate>Fri, 28 Nov 2025 21:31:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46082938</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46082938</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46082938</guid></item><item><title><![CDATA[New comment by bbminner in "Bringing Sexy Back. Internet surveillance has killed eroticism"]]></title><description><![CDATA[
<p>True! And yet, oddly enough, I'd argue that this obviously bad advice is, in a way, the expected online (corporate?) etiquette, that is being, for some odd reason, applied in the real world.<p>It is akin to situations that several comics I heard described -in which either a caretaker (or even the relative with a disability themselves) was corrected and schooled for using "non inclusive language" when addressing their relative / a relative referring themselves. To which, anecdotally, the typical reaction of the said relative was along the lines of "oh, i am sorry honey, i wanted to say it is hard for a damn useless cripple like me".</p>
]]></description><pubDate>Fri, 28 Nov 2025 20:45:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=46082617</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46082617</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46082617</guid></item><item><title><![CDATA[New comment by bbminner in "Tosijs-schema is a super lightweight schema-first LLM-native JSON schema library"]]></title><description><![CDATA[
<p>While llms accept json schemas for constrained decoding, they might not respect all of the constraints.</p>
]]></description><pubDate>Sun, 23 Nov 2025 16:12:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46024587</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46024587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46024587</guid></item><item><title><![CDATA[New comment by bbminner in "Prozac 'no better than placebo' for treating children with depression, experts"]]></title><description><![CDATA[
<p>I am surprised by how many people seemingly independently come up with a completely indescriptive "bad day" label - for the lack of a better one.<p>Good that things are working out for you.<p>Recently found that, on top of meds (that started wearing off - after taking them for a couple years now following a challenging life situation), going to social latin dance classes for a couple hours almost every day after work helps quite a bit.</p>
]]></description><pubDate>Sat, 22 Nov 2025 07:15:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46012818</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46012818</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46012818</guid></item><item><title><![CDATA[New comment by bbminner in "FEX-emu – Run x86 applications on ARM64 Linux devices"]]></title><description><![CDATA[
<p>I've heard that to ship hl2 (or anything really) they had to stip some of that flatness somewhat.</p>
]]></description><pubDate>Fri, 21 Nov 2025 05:03:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46001399</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=46001399</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46001399</guid></item><item><title><![CDATA[New comment by bbminner in "The Miracle of Wörgl"]]></title><description><![CDATA[
<p>Seriously though, i doubt that "the rich across the globe" conspired to ban emergency currencies. I'd be curious to see a more in depth analysis of what are factors driving such local economies vs centralized currencies.<p>Is it precisely that the currency could not be exported outside the local region - that made it a barter tool vs an investment tool - that made it less affected by such external events as great depression?<p>What was the central government fearing? I'm sure there's a reason why it might be a less than ideal situation. Maybe because it is effectively a financial pyramid (more so than the primary currency) - a bunch of local govt making their local currencies with unclear unregulated printing schedule could result in many people not assessing their real purchasing power adequately?</p>
]]></description><pubDate>Tue, 18 Nov 2025 15:55:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45967931</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=45967931</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45967931</guid></item><item><title><![CDATA[New comment by bbminner in "The Miracle of Wörgl"]]></title><description><![CDATA[
<p>How come they eliminate competition? What if inheritance taxes are progressive?</p>
]]></description><pubDate>Tue, 18 Nov 2025 15:44:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45967762</link><dc:creator>bbminner</dc:creator><comments>https://news.ycombinator.com/item?id=45967762</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45967762</guid></item></channel></rss>