<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: tinyspacewizard</title><link>https://news.ycombinator.com/user?id=tinyspacewizard</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 05:55:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tinyspacewizard" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tinyspacewizard in ".NET 10"]]></title><description><![CDATA[
<p>Start-ups should strongly consider F#.<p>It's a force multiplier when you have a small team of strong developers.</p>
]]></description><pubDate>Wed, 12 Nov 2025 09:54:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45898279</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45898279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45898279</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Show HN: OnlyJPG – Client-Side PNG/HEIC/AVIF/PDF/etc to JPG"]]></title><description><![CDATA[
<p>What should we use instead?</p>
]]></description><pubDate>Fri, 17 Oct 2025 16:04:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45618291</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45618291</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45618291</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Migrating from AWS to Hetzner"]]></title><description><![CDATA[
<p>> Why two cloud providers? Initially we used only DigitalOcean, but a data intensive SaaS like tap needs a lot of cloud resources and AWS have a generous $1,000 credit package for self-funded startups.<p>So some Kubernetes experts migrated to AWS for $1k in credits. This is madness. That's weeks of migration work to save the equivalent of a day of contracting.</p>
]]></description><pubDate>Fri, 17 Oct 2025 13:39:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45616701</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45616701</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45616701</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Free applicatives, the handle pattern, and remote systems"]]></title><description><![CDATA[
<p>> Of course you can inspect it: open the source code you wrote and read it. Also, don't write the code you don't want to be executed?<p>This is not what they meant by <i>inspection</i>.<p>What they mean is that you can write a function, in Haskell, that given a value in the DSL, it returns the list of all requests it will perform on execution.<p>This can be useful for tests, security, caching, performance, debugging...</p>
]]></description><pubDate>Fri, 17 Oct 2025 13:04:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45616299</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45616299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45616299</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Free applicatives, the handle pattern, and remote systems"]]></title><description><![CDATA[
<p>This seems like a cool article, but it isn't readable without Haskell background knowledge.<p>> For an intuition why this is true, consider that the constant functor Const r has an Applicative instance whenever r is a monoid, because pure stores a mempty value and (<*>) combines the held values with (<>). For a fun exercise, implement runAp_ in terms of runAp and Const.<p>Really?</p>
]]></description><pubDate>Fri, 17 Oct 2025 12:58:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45616248</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45616248</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45616248</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Free applicatives, the handle pattern, and remote systems"]]></title><description><![CDATA[
<p>Weird feeling knowing that an ecommerce / wallet store has employees with more advanced programming knowledge than most financial institutions.</p>
]]></description><pubDate>Thu, 16 Oct 2025 13:13:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45604925</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45604925</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45604925</guid></item><item><title><![CDATA[Tying the Knot]]></title><description><![CDATA[
<p>Article URL: <a href="https://wiki.haskell.org/Tying_the_Knot">https://wiki.haskell.org/Tying_the_Knot</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45578040">https://news.ycombinator.com/item?id=45578040</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 14 Oct 2025 09:44:27 +0000</pubDate><link>https://wiki.haskell.org/Tying_the_Knot</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45578040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45578040</guid></item><item><title><![CDATA[Zippers: Making Functional "Updates" Efficient (2010)]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.goodmath.org/blog/2010/01/13/zippers-making-functional-updates-efficient/">http://www.goodmath.org/blog/2010/01/13/zippers-making-functional-updates-efficient/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45526042">https://news.ycombinator.com/item?id=45526042</a></p>
<p>Points: 63</p>
<p># Comments: 15</p>
]]></description><pubDate>Thu, 09 Oct 2025 11:07:29 +0000</pubDate><link>http://www.goodmath.org/blog/2010/01/13/zippers-making-functional-updates-efficient/</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45526042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45526042</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Working pipe operator today in pure JavaScript"]]></title><description><![CDATA[
<p>1. Wrapping is more code than using a built-in pipe operator<p>2. There is a run-time overhead to wrapping<p>IMO a design goal of programming langauges should be for the most readable code to also be the most performant.<p>Language features tend to be controversial until they are mainstream.</p>
]]></description><pubDate>Thu, 09 Oct 2025 08:24:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=45524990</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45524990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45524990</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Working pipe operator today in pure JavaScript"]]></title><description><![CDATA[
<p>There is more than one proposal; the F#-style one doesn't have the (weird) placeholder syntax.<p>> You can still make it work by adding it to the prototype<p>This is exactly what we want to avoid!</p>
]]></description><pubDate>Wed, 08 Oct 2025 16:44:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45518111</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45518111</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45518111</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Working pipe operator today in pure JavaScript"]]></title><description><![CDATA[
<p>Pipes are great where you want to chain several operations together. Piping is very common in statically typed functional langauges, where there are lots of different types in play.<p>Sequences are a common example.<p>So this:<p><pre><code>    xs.map(x => x * 2).filter(x => x > 4).sorted().take(5)
</code></pre>
In pipes this might look like:<p><pre><code>    xs |> map(x => x * 2) |> filter(x => x > 4) |> sorted() |> take(5)
</code></pre>
In functional languages (of the ML variety), convention is to put each operation on its own line:<p><pre><code>    xs 
    |> map(x => x * 2) 
    |> filter(x => x > 4) 
    |> sorted() 
    |> take(5)
</code></pre>
Note this makes for really nice diffs with the standard Git diff tool!<p>But why is this better?<p>Well, suppose the operation you want is not implemented as a method on `xs`. For a long time JavaScript did not offer `flatMap` on arrays.<p>You'll need to add it somehow, such as on the prototype (nasty) or by wrapping `xs` in another type (overhead, verbose).<p>With the pipe operator, each operation is just a plain-ol function.<p>This:<p><pre><code>    xs |> f
</code></pre>
Is syntactic sugar for:<p><pre><code>    f(xs)
</code></pre>
This allows us to "extend" `xs` in a manner that can be compiled with zero run-time overhead.</p>
]]></description><pubDate>Wed, 08 Oct 2025 13:08:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=45515754</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45515754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45515754</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Working pipe operator today in pure JavaScript"]]></title><description><![CDATA[
<p>Sad that the pipe operator proposal seems to have stalled.<p>The F# version of the proposal was probably the simplest choice.</p>
]]></description><pubDate>Wed, 08 Oct 2025 09:54:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45514202</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=45514202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45514202</guid></item><item><title><![CDATA[Why isn't differential dataflow more popular? (2021)]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.scattered-thoughts.net/writing/why-isnt-differential-dataflow-more-popular/">https://www.scattered-thoughts.net/writing/why-isnt-differential-dataflow-more-popular/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44810310">https://news.ycombinator.com/item?id=44810310</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 06 Aug 2025 10:45:23 +0000</pubDate><link>https://www.scattered-thoughts.net/writing/why-isnt-differential-dataflow-more-popular/</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=44810310</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44810310</guid></item><item><title><![CDATA[RelationalFactQA: A Benchmark for Evaluating Tabular Fact Retrieval from LLMs]]></title><description><![CDATA[
<p>Article URL: <a href="https://arxiv.org/abs/2505.21409">https://arxiv.org/abs/2505.21409</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44222594">https://news.ycombinator.com/item?id=44222594</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 09 Jun 2025 09:04:52 +0000</pubDate><link>https://arxiv.org/abs/2505.21409</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=44222594</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44222594</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Cheaper to rent in Barcelona and commute to London (2013)"]]></title><description><![CDATA[
<p>Brexit made this far less likely - but perhaps people in France, Germany, Spain, etc. could do this.</p>
]]></description><pubDate>Tue, 12 Nov 2024 09:33:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=42114076</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=42114076</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42114076</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Core: an experimental new way to write videogames"]]></title><description><![CDATA[
<p>Functional Programming hasn't even been tried for game development, really. There is a lack of overlap between the game dev industry and academia. The studios are (rightly) risk averse and try to use the same broad strategies to build games - OOP, maybe ECS for large swarms, etc.<p>Personally, I think that FP <i>could</i> be a great fit, but we first need to come up with architectures that solve real game development problems. We have to do this with small scale experiments first (game jams are perfect for this) and then scale up only if they succeed.<p>This project is exactly that - kudos to the author.</p>
]]></description><pubDate>Sun, 08 Sep 2024 21:28:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=41483380</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=41483380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41483380</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Ask HN: How do you share and sync .env files and secrets with your team"]]></title><description><![CDATA[
<p>You should put this online somewhere!</p>
]]></description><pubDate>Sun, 08 Sep 2024 19:22:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=41482485</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=41482485</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41482485</guid></item><item><title><![CDATA[Higher-kinded bounded polymorphism in OCaml (2021)]]></title><description><![CDATA[
<p>Article URL: <a href="https://okmij.org/ftp/ML/higher-kind-poly.html">https://okmij.org/ftp/ML/higher-kind-poly.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41096187">https://news.ycombinator.com/item?id=41096187</a></p>
<p>Points: 141</p>
<p># Comments: 10</p>
]]></description><pubDate>Sun, 28 Jul 2024 21:40:47 +0000</pubDate><link>https://okmij.org/ftp/ML/higher-kind-poly.html</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=41096187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41096187</guid></item><item><title><![CDATA[The Moirai Programming Language]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/moirai-lang/moirai-kt">https://github.com/moirai-lang/moirai-kt</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40760527">https://news.ycombinator.com/item?id=40760527</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 22 Jun 2024 17:15:38 +0000</pubDate><link>https://github.com/moirai-lang/moirai-kt</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=40760527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40760527</guid></item><item><title><![CDATA[New comment by tinyspacewizard in "Sheryl Crow: 'Resurrecting Tupac with AI Is Hateful'"]]></title><description><![CDATA[
<p>Expect a wave of artists moving into education to make ends meet.</p>
]]></description><pubDate>Sat, 22 Jun 2024 16:25:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=40760164</link><dc:creator>tinyspacewizard</dc:creator><comments>https://news.ycombinator.com/item?id=40760164</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40760164</guid></item></channel></rss>