<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: blandflakes</title><link>https://news.ycombinator.com/user?id=blandflakes</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 16 Apr 2026 23:55:23 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=blandflakes" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by blandflakes in "High-Level Rust: Getting 80% of the Benefits with 20% of the Pain"]]></title><description><![CDATA[
<p>The trajectories of Go and Scala here tell a much different story (and one that matches my personal experience looking at job postings):
<a href="https://innovationgraph.github.com/global-metrics/programming-languages" rel="nofollow">https://innovationgraph.github.com/global-metrics/programmin...</a></p>
]]></description><pubDate>Mon, 13 Apr 2026 02:21:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47746822</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=47746822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47746822</guid></item><item><title><![CDATA[New comment by blandflakes in "Ask HN: How is AI-assisted coding going for you professionally?"]]></title><description><![CDATA[
<p>Engineers also wrote good code before AI. We don't get to pretend that the speed increase of AI only increases the output of quality code - it also allows engineers to send much more crap!</p>
]]></description><pubDate>Tue, 17 Mar 2026 01:40:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47407559</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=47407559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47407559</guid></item><item><title><![CDATA[New comment by blandflakes in "Returning to Rails in 2026"]]></title><description><![CDATA[
<p>Ha, I can relate WRT Python. I've been doing more Elixir these days for both a really pleasant web experience and because it has some unique primitives baked into the ecosystem that most JVM projects I work on spend a lot of time approximating through grotesque frameworks.</p>
]]></description><pubDate>Fri, 13 Mar 2026 00:35:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47359263</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=47359263</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47359263</guid></item><item><title><![CDATA[New comment by blandflakes in "Returning to Rails in 2026"]]></title><description><![CDATA[
<p>> I pick tools by the problem, not loyalty.<p>Good advice that I keep trying to adopt myself, but I have to confess a large personal bias for languages that I like, even if it keeps me from certain classes of problem (I like Ruby, though).<p>What did you move onto for those next things you started building?</p>
]]></description><pubDate>Thu, 12 Mar 2026 18:57:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47355491</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=47355491</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47355491</guid></item><item><title><![CDATA[New comment by blandflakes in "What functional programmers get wrong about systems"]]></title><description><![CDATA[
<p>> It is the best idea. This should be the standard. And nothing prevents you from rolling back an individual service. You can still do that. And you can still do individual deploys too. But these are just for patch ups.<p>There are a ton of reasons it's not the best idea. This flies in the face of a lot of _better_ ideas.<p>Keeping changesets small so that it's easier to debug when something goes wrong? Blown out of the water by deploying everything at once.<p>Bringing every service up at once is a great way to create the coldest version of your entire product.<p>Requiring a monodeployment turns canarying or A/B testing entire classes of changes into a blocking rollout where any other feature work has to move at the pace of the slowest change.<p>> When you roll back an individual service your entire system is no longer in a valid state. It's in an interim state of repair.<p>The gold standard is that each version of your service can work with each other version of your service, because in The Real World your service will spend time in those states.<p>> Monodeploy should be the gold standard, and individual deploys and roll backs are reserved for emergencies.<p>No, because if it's still possible to mix versions in your services, then a monodeploy doesn't actually solve <i>any</i> issues.<p>I actually am a big fan of <i>fewer</i> services and deploying  bigger artifacts, but if you have multiple services, you have to act like you have multiple services.</p>
]]></description><pubDate>Tue, 10 Feb 2026 12:26:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46958811</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46958811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46958811</guid></item><item><title><![CDATA[New comment by blandflakes in "What functional programmers get wrong about systems"]]></title><description><![CDATA[
<p>Yeah, I think you're preaching to the choir about static checking, the only point I was making is that monorepo doesn't solve some classes of errors and that I've actually seen it generate false confidence in that realm.</p>
]]></description><pubDate>Tue, 10 Feb 2026 12:20:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=46958761</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46958761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46958761</guid></item><item><title><![CDATA[New comment by blandflakes in "What functional programmers get wrong about systems"]]></title><description><![CDATA[
<p>> Simple, although I only mentioned repos should be mono, I should've also said deployment should be mono as well. I thought that was a given.<p>Deploying your service graph as one atomic unit is not a given, and not necessarily even the best idea - you need to be able to roll back an individual service unless you have very small changes between versions, which means that even if they were rolled out atomically, you still run the risk of mixed versions sets.</p>
]]></description><pubDate>Tue, 10 Feb 2026 04:18:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46955352</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46955352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46955352</guid></item><item><title><![CDATA[New comment by blandflakes in "What functional programmers get wrong about systems"]]></title><description><![CDATA[
<p>Well, no, it doesn't. A monorepo does nothing to prevent you from making breaking changes, it just stops you from making changes that don't compile/test. You still have to understand that services aren't deploying as an atomic unit and make sure that your network calls are forward and backward compatible.</p>
]]></description><pubDate>Tue, 10 Feb 2026 04:10:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46955279</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46955279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46955279</guid></item><item><title><![CDATA[New comment by blandflakes in "What functional programmers get wrong about systems"]]></title><description><![CDATA[
<p>> First put all your services in a monorepo have it all build as one under CI. That’s a static check across the entire system.<p>There are definitely benefits to this approach. My coworkers do fall into the trap of assuming that all the services will be deployed simultaneously, which is not something you can really guarantee (especially if you have to roll one of them back at some point), so the monorepo approach gives them confidence in some breaking changes that it shouldn't (like adding a new required field).</p>
]]></description><pubDate>Tue, 10 Feb 2026 03:45:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46955094</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46955094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46955094</guid></item><item><title><![CDATA[New comment by blandflakes in "Actors: A Model of Concurrent Computation [pdf] (1985)"]]></title><description><![CDATA[
<p>Go seems to have some enduring affection and popularity for new projects and companies. I recently felt like a lot of the recent shift was less about GC and more about runtime characteristics (static binaries, lean resource consumption, lack of an in-your-face virtual machine).<p>It never felt like Nim, Pony, or Crystal were ever <i>that</i> popular that a diminished hype cycle registered as something thematic to me (not that I really intend to disagree with your perspective here).</p>
]]></description><pubDate>Tue, 03 Feb 2026 18:49:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46875396</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46875396</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46875396</guid></item><item><title><![CDATA[New comment by blandflakes in "Banned C++ features in Chromium"]]></title><description><![CDATA[
<p>If you have to ask an object what its type is, you're probably about to cast it, and these are operations that the language doesn't enforce that you do together (and so the habit of casting can lead to the habit of casting without the check...). There are times when it's appropriate but generally if you have to ask what type an object is, your code is already starting to smell (because typically dispatching on type is handled by polymorphism, not be the programmer manually implementing it).</p>
]]></description><pubDate>Sat, 24 Jan 2026 19:12:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46746565</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46746565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46746565</guid></item><item><title><![CDATA[New comment by blandflakes in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p>This isn't a personal website.</p>
]]></description><pubDate>Fri, 16 Jan 2026 15:18:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46647225</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46647225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46647225</guid></item><item><title><![CDATA[New comment by blandflakes in "Exercise can be nearly as effective as therapy for depression"]]></title><description><![CDATA[
<p>It's also pretty insulting to assume that everything is equally easy for all people.</p>
]]></description><pubDate>Sat, 10 Jan 2026 02:33:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46562184</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46562184</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46562184</guid></item><item><title><![CDATA[New comment by blandflakes in "Dolphin Progress Report: Release 2512"]]></title><description><![CDATA[
<p>Agreed; I don't actually even care about emulating this particular hardware, but these reports are just interesting reading.</p>
]]></description><pubDate>Mon, 29 Dec 2025 14:14:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46420962</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46420962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46420962</guid></item><item><title><![CDATA[New comment by blandflakes in "Stepping down as Mockito maintainer after ten years"]]></title><description><![CDATA[
<p>I don't think we have to choose. Naturally finding the "right division of labor" is as infinite as finding the "right level of abstraction", but I think the ideal situation is to strive toward code that is easy to test without having to introduce a lot of mocks or without infinite layers of abstraction.</p>
]]></description><pubDate>Sun, 28 Dec 2025 23:05:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46415425</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46415425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46415425</guid></item><item><title><![CDATA[New comment by blandflakes in "Stepping down as Mockito maintainer after ten years"]]></title><description><![CDATA[
<p>They also encourage/enable code that is less testable. If you use mockito to get your fake responses/assertions where you need them, you don't have to think about your class's dependencies to make your code testable and therefore better decomposed. I don't even <i>do</i> TDD, but I still find that thinking about how I'd test a class guides me toward better-factored code.</p>
]]></description><pubDate>Sun, 28 Dec 2025 22:41:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46415273</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46415273</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46415273</guid></item><item><title><![CDATA[New comment by blandflakes in "T-Ruby is Ruby with syntax for types"]]></title><description><![CDATA[
<p>> Static typing doesn't have much value if there are proper unit tests<p>Wasteful unit tests that assert your types are right don't have much value if there is a proper type system.<p>> It's called ratting yourself out.<p>Quit being childish.</p>
]]></description><pubDate>Sun, 28 Dec 2025 22:36:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46415239</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46415239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46415239</guid></item><item><title><![CDATA[New comment by blandflakes in "T-Ruby is Ruby with syntax for types"]]></title><description><![CDATA[
<p>This always feels like a bad faith argument. Nobody says that with static types, you don't need any unit tests.<p>And your suggestion that people who like static types "don't know how to write unit tests" is further bad faith.<p>Perhaps it's dynamic typing programmers who don't know how to write sound programs? Except I'm <i>not</i> making that claim, because I'm giving you all some benefit of the doubt, a degree of respect you are not giving others.</p>
]]></description><pubDate>Sun, 28 Dec 2025 11:03:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46410190</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46410190</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46410190</guid></item><item><title><![CDATA[New comment by blandflakes in "T-Ruby is Ruby with syntax for types"]]></title><description><![CDATA[
<p>Elsewhere in this thread, dynamic typing advocates malign the hassle of maintaining types, and it is always coupled with strong advocacy for an entire class of unit tests I <i>don't</i> have to write in statically typed languages.</p>
]]></description><pubDate>Sun, 28 Dec 2025 02:18:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46407791</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46407791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46407791</guid></item><item><title><![CDATA[New comment by blandflakes in "Ask HN: What did you read in 2025?"]]></title><description><![CDATA[
<p>I still haven't managed to get around to her scifi (but plan to!); but can wholeheartedly endorse The Raven Tower.</p>
]]></description><pubDate>Sat, 27 Dec 2025 05:59:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46399536</link><dc:creator>blandflakes</dc:creator><comments>https://news.ycombinator.com/item?id=46399536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46399536</guid></item></channel></rss>