<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: whichdan</title><link>https://news.ycombinator.com/user?id=whichdan</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 25 May 2026 00:19:00 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=whichdan" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by whichdan in "Show HN: Number Gacha, a gacha game distilled to its essence"]]></title><description><![CDATA[
<p>Honestly the feedback loop of "do math to roll more" would make this an excellent game for kids IMO</p>
]]></description><pubDate>Tue, 19 May 2026 02:55:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48188655</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=48188655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48188655</guid></item><item><title><![CDATA[New comment by whichdan in "Frontier AI has broken the open CTF format"]]></title><description><![CDATA[
<p>Yeah I agree. I grew up in a very blue-collar town, and anything I wanted to learn (outside of public schooling) either came from emaciated websites or whatever books I could find at the library. Having YouTube and Khan Academy and everything else would have made such a huge difference for me.</p>
]]></description><pubDate>Sat, 16 May 2026 17:13:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48162001</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=48162001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48162001</guid></item><item><title><![CDATA[New comment by whichdan in "Simplify your code: Functional core, imperative shell"]]></title><description><![CDATA[
<p>The nice thing with the Elixir example is that you can easily `tap()` to inspect how the data looks at any point in the pipeline. You can also easily insert steps into the pipeline, or reuse pipeline steps. And due to the way modules are usually organized, it would more realistically read like this, if we were in a BulkEmails module:<p><pre><code>  Users.all()
  |> Enum.filter(&Users.is_expired?(&1, Date.utc_today()))
  |> Enum.map(&generate_expiry_email/1)
  |> tap(&IO.inspect(label: "Expiry Email"))
  |> Enum.reject(&is_nil/1)
  |> bulk_send()
</code></pre>
The nice thing here is that we can easily log to the console, and also filter out nil expiry emails. In production code, `generate_expiry_email/1` would likely return a Result (a tuple of `{:ok, email}` or `{:error, reason}`), so we could complicate this a bit further and collect the errors to send to a logger, or to update some flag in the db.<p>It just becomes so easy to incrementally add functionality here.<p>---<p>Quick syntax reference for anyone reading:<p>- Pipelines apply the previous result as the first argument of the next function<p>- The `/1` after a function name indicates the arity, since Elixir supports multiple dispatch<p>- `&fun/1` expands to `fn arg -> fun(arg) end`<p>- `&fun(&1, "something")` expands to `fn arg -> fun(arg, "something") end`</p>
]]></description><pubDate>Mon, 27 Oct 2025 23:21:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45727501</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=45727501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45727501</guid></item><item><title><![CDATA[New comment by whichdan in "iPhone Air"]]></title><description><![CDATA[
<p>I wonder if the thinner profile will make it more comfortable in smaller hands (both in terms of reach and center-of-gravity), but I'm skeptical.</p>
]]></description><pubDate>Tue, 09 Sep 2025 18:22:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45186203</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=45186203</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45186203</guid></item><item><title><![CDATA[New comment by whichdan in "How I Experience Web Today (2021)"]]></title><description><![CDATA[
<p>Oh, don't forget, if you click "Allow (current location)" it will also reload the page.</p>
]]></description><pubDate>Mon, 14 Oct 2024 22:18:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=41842684</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=41842684</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41842684</guid></item><item><title><![CDATA[New comment by whichdan in "VanillaJSX.com"]]></title><description><![CDATA[
<p>Elm works a lot like this and it's quite nice.</p>
]]></description><pubDate>Sat, 17 Aug 2024 03:39:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=41272074</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=41272074</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41272074</guid></item><item><title><![CDATA[New comment by whichdan in "Putting the "J" in the RPG, Part 3: Playing Final Fantasy VII"]]></title><description><![CDATA[
<p>Totally agree; I started replaying 13 somewhat recently, and just felt worn down after playing for a few hours. The nonstop battles with no real break between them just isn't fun, despite the game having amazing aesthetics.</p>
]]></description><pubDate>Mon, 25 Dec 2023 05:13:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=38760024</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=38760024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38760024</guid></item><item><title><![CDATA[New comment by whichdan in "iPhone 15 and iPhone 15 Plus"]]></title><description><![CDATA[
<p>I'm really bummed there isn't a Mini - I'd be happy with getting one every third generation, even. For the size of my hands, the center-of-gravity is too high in the 6.1" phones, so I can't comfortably hold it with one hand.</p>
]]></description><pubDate>Tue, 12 Sep 2023 21:21:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=37488584</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=37488584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37488584</guid></item><item><title><![CDATA[New comment by whichdan in "Reddit just auto removed my comment with a link to Lemmy.ml"]]></title><description><![CDATA[
<p>I got a 500 on first load, and intermittent issues on subsequent loads, so it's not just you!</p>
]]></description><pubDate>Wed, 14 Jun 2023 14:24:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=36326484</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=36326484</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36326484</guid></item><item><title><![CDATA[New comment by whichdan in "Rails Cheat Sheet"]]></title><description><![CDATA[
<p>Without compile-time type checking, every single line of code needs to be evaluated with a unit test to ensure there won't be any runtime syntax errors.</p>
]]></description><pubDate>Sat, 20 May 2023 04:54:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=36009474</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=36009474</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36009474</guid></item><item><title><![CDATA[New comment by whichdan in "Rails Cheat Sheet"]]></title><description><![CDATA[
<p>I think Rails is a victim of its own success: many of the hot new Rails codebases from that time are now 10 year old monoliths. And those monoliths need incredible amounts of tests to compensate for the lack of compile-time type checking, Rails version upgrades are multi-month nightmares, and the object-oriented statefulness of the language means that complex load-bearing code can be extremely tricky to untangle.<p>There are certainly new compelling projects like Sorbet to add type checking, and the ecosystem itself is very mature, it's just that the average codebase is not going to live up the experience you might have with a brand new one.</p>
]]></description><pubDate>Sat, 13 May 2023 13:12:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=35928042</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=35928042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35928042</guid></item><item><title><![CDATA[New comment by whichdan in "I got a job as a Waffle House server that pays $2.92 an hour"]]></title><description><![CDATA[
<p>Basically we'd need laws enforcing a minimum wage for waitstaff, otherwise restaurants that allow tipping will always have an advantage over more expensive ones that don't. And no, you're not required to tip, but that only ends up hurting the waitstaff, not the restaurant.</p>
]]></description><pubDate>Mon, 01 May 2023 12:35:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=35771940</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=35771940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35771940</guid></item><item><title><![CDATA[New comment by whichdan in "Spotify introduce personalised AI DJ"]]></title><description><![CDATA[
<p>Ugh, yeah. I used to adore Spotify's "radio" algorithm, but depending on the genre - namely indie rock - I constantly hear repeats now.</p>
]]></description><pubDate>Thu, 23 Feb 2023 02:23:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=34905920</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=34905920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34905920</guid></item><item><title><![CDATA[New comment by whichdan in "The Toll of Layoff Anxiety"]]></title><description><![CDATA[
<p>Okay, so people who had historically high-paying jobs, who were at a high-paying company with above-average severance, didn't have anxiety around layoffs. You can't say anxiety around layoffs is purely about mental health without looking at the financial aspect of it.</p>
]]></description><pubDate>Sun, 12 Feb 2023 01:55:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=34758723</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=34758723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34758723</guid></item><item><title><![CDATA[New comment by whichdan in "Digital Gardening in Obsidian"]]></title><description><![CDATA[
<p>Tiny suggestion - instead of<p><pre><code>  .map(g => { return { key: g.key, rows: g.rows.map(r => r[1]) }})
</code></pre>
you can write<p><pre><code>  .map(g => ({ key: g.key, rows: g.rows.map(r => r[1]) }))</code></pre></p>
]]></description><pubDate>Mon, 26 Dec 2022 14:42:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=34137940</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=34137940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34137940</guid></item><item><title><![CDATA[New comment by whichdan in "Htmx in a Nutshell"]]></title><description><![CDATA[
<p><a href="https://htmx.org/docs/#parameters" rel="nofollow">https://htmx.org/docs/#parameters</a><p>Simple doesn't mean "I should be able to intuitively understand this with under a minute of reading"...</p>
]]></description><pubDate>Wed, 14 Dec 2022 19:14:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=33988536</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=33988536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33988536</guid></item><item><title><![CDATA[New comment by whichdan in "What if you delete the “Program Files” folder in Windows? [video]"]]></title><description><![CDATA[
<p>My gut reaction was "wow that sounds boring" but then I reread it and realized I would have absolutely been excited about this in high school.</p>
]]></description><pubDate>Mon, 12 Dec 2022 21:18:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=33960441</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=33960441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33960441</guid></item><item><title><![CDATA[New comment by whichdan in "EVGA terminates Nvidia partnership [video]"]]></title><description><![CDATA[
<p>I know they don't have plans to work with AMD but I'd consider switching to AMD for my next card if EVGA was manufacturing it. They fixed an old card of mine way out of warranty so I have some brand loyalty here.</p>
]]></description><pubDate>Fri, 16 Sep 2022 21:10:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=32872040</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=32872040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32872040</guid></item><item><title><![CDATA[New comment by whichdan in "Ask HN: Which Auth Service for SaaS?"]]></title><description><![CDATA[
<p>If you're just building an MVP I think doing "magic link" auth is underrated. It's super easy to set up, relatively secure, doesn't need any of the complexity of passwords/sso, and is easy to migrate to a different system in the future.<p>Auth0 is complete overkill if you don't need their advanced features IMO.</p>
]]></description><pubDate>Fri, 09 Sep 2022 01:20:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=32774174</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=32774174</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32774174</guid></item><item><title><![CDATA[New comment by whichdan in "Apple Introduces Apple Watch Ultra"]]></title><description><![CDATA[
<p>I forgot where I read it, but there's a rumor that Apple is only planning to release a Mini phone every other year.</p>
]]></description><pubDate>Thu, 08 Sep 2022 01:21:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=32759794</link><dc:creator>whichdan</dc:creator><comments>https://news.ycombinator.com/item?id=32759794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32759794</guid></item></channel></rss>