<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: chombier</title><link>https://news.ycombinator.com/user?id=chombier</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 30 May 2026 20:31:47 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=chombier" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by chombier in "Behavior-Oriented Concurrency for Python"]]></title><description><![CDATA[
<p>I was a bit curious to learn what the differences are between this and the actor model, and I found this lobste.rs discussion to be helpful: <a href="https://lobste.rs/s/gsjskz/behavior_oriented_concurrency_for" rel="nofollow">https://lobste.rs/s/gsjskz/behavior_oriented_concurrency_for</a><p>> In BoC, the equivalent of a message is received by <i>multiple</i> actors and operates with exclusive access to the message and all of the receivers.<p>(emphasis mine)<p>IIUC with actors, messages are processed by exactly one actor so it can be difficult to express transactions (e.g. transferring funds from A to B cannot be done atomically). Erlang somewhat fixes this with "selective receive" which re-introduces the possibility of deadlocks. BoC fixes both issues.</p>
]]></description><pubDate>Wed, 06 May 2026 13:22:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48035937</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=48035937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48035937</guid></item><item><title><![CDATA[New comment by chombier in "Announcing the Beta release of ty"]]></title><description><![CDATA[
<p>Apart from installation problems/crash issues, do you have some feedback about  type checking with ty vs. pyrefly? Which is stricter, soundness issues, etc?<p>Both are rust/open-source/new/fast so it's difficult to understand why I should choose one over the other.</p>
]]></description><pubDate>Wed, 17 Dec 2025 11:31:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46300812</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=46300812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46300812</guid></item><item><title><![CDATA[New comment by chombier in "Cloth Simulation"]]></title><description><![CDATA[
<p>For inextensible cloth there's also "Efficient simulation of inextensible cloth" [0] that is particularly clever and efficient<p>[0] <a href="https://dl.acm.org/doi/10.1145/1276377.1276438" rel="nofollow">https://dl.acm.org/doi/10.1145/1276377.1276438</a></p>
]]></description><pubDate>Wed, 10 Dec 2025 16:37:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46219881</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=46219881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46219881</guid></item><item><title><![CDATA[New comment by chombier in "Lie groups are crucial to some of the most fundamental theories in physics"]]></title><description><![CDATA[
<p>Also check out Jean Gallier's notes (available online) <a href="https://www.cis.upenn.edu/~jean/gbooks/manif.html" rel="nofollow">https://www.cis.upenn.edu/~jean/gbooks/manif.html</a></p>
]]></description><pubDate>Thu, 04 Dec 2025 08:27:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46145125</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=46145125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46145125</guid></item><item><title><![CDATA[New comment by chombier in "Show HN: Browser-based interactive 3D Three-Body problem simulator"]]></title><description><![CDATA[
<p>Nice! It would be interesting to visualize the total momentum vector, IIRC Verlet being symplectic should be good at preserving symmetries, whereas RK4 is good at conserving energy.</p>
]]></description><pubDate>Wed, 19 Nov 2025 09:37:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45977607</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=45977607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45977607</guid></item><item><title><![CDATA[New comment by chombier in "In Defense of C++"]]></title><description><![CDATA[
<p>I've been programming in c++ for 25 years (15 professionally) and I really don't see any reason to keep using it apart from dealing with legacy codebases.<p>Most arguments in the article boil down to "c++ has the reputation of X, which is partly true, but you can avoid problems with discipline". Amusingly, this also applies to assembly. This is _exactly_ why I don't want to code in c++ anymore: I don't want the constant cognitive load to remember not to shoot myself in the foot, and I don't want to spend time debugging silly issues when I screw up. I don't want the outdated tooling, compilation model and such.<p>Incidentally, I've also been coding in Rust for 5 years or so, and I'm always amazed that code that compiles <i>actually works</i> as intended and I can spend time on things that matter.<p>Going back to c++ makes me feel like a caveman coder, every single time.</p>
]]></description><pubDate>Wed, 17 Sep 2025 10:36:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45274076</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=45274076</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45274076</guid></item><item><title><![CDATA[New comment by chombier in "Death to type classes"]]></title><description><![CDATA[
<p>Thanks, I scanned through all the comments/links but this is the actual resource one wants to read to get familiar with Backpack.</p>
]]></description><pubDate>Mon, 15 Sep 2025 19:37:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45254001</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=45254001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45254001</guid></item><item><title><![CDATA[New comment by chombier in "Das Problem mit German Strings"]]></title><description><![CDATA[
<p>my tl;dr: after reading the article:<p>- two 64-bits words representation<p>- fixed, 32 bits length<p>- short strings (<12 bytes) are stored in-place<p>- long strings store a 4 byte prefix in-place + pointer to the rest<p>- two bits are used as flags in the pointer to further optimize some use-cases</p>
]]></description><pubDate>Wed, 27 Aug 2025 09:34:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45037292</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=45037292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45037292</guid></item><item><title><![CDATA[New comment by chombier in "Introduction to AT Protocol"]]></title><description><![CDATA[
<p>That was a nice read, thanks.</p>
]]></description><pubDate>Thu, 21 Aug 2025 07:45:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44970182</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=44970182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44970182</guid></item><item><title><![CDATA[New comment by chombier in "Flix – A powerful effect-oriented programming language"]]></title><description><![CDATA[
<p>A quick comparison of the two languages would be interesting, in case anyone has experience with both.</p>
]]></description><pubDate>Fri, 11 Jul 2025 08:22:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=44529599</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=44529599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44529599</guid></item><item><title><![CDATA[New comment by chombier in "Tree Borrows"]]></title><description><![CDATA[
<p>The PLDI talk is also available: <a href="https://www.youtube.com/watch?v=CJi_Fcs4bak" rel="nofollow">https://www.youtube.com/watch?v=CJi_Fcs4bak</a></p>
]]></description><pubDate>Thu, 10 Jul 2025 08:54:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=44518833</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=44518833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44518833</guid></item><item><title><![CDATA[New comment by chombier in "Presentation Slides with Markdown"]]></title><description><![CDATA[
<p>pandoc has a reveal.js backend which I use it to build my slides from markdown (with a few ad-hoc inline css tweaks)</p>
]]></description><pubDate>Mon, 28 Apr 2025 15:33:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=43822628</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=43822628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43822628</guid></item><item><title><![CDATA[New comment by chombier in "Nix Derivations, Without Guessing"]]></title><description><![CDATA[
<p>What I found hard with Nix is the sheer amount of things I had to get familiar with before it started to really click:<p>- nix, the command-line tool<p>- nix, the language<p>- nixpkgs with the general API/idioms (overriding, overlays)<p>- individual nixpkgs packages that sometimes deviate from common practices<p>- flakes (which I haven't properly looked into yet)<p>The Nix pills series [1] and nixpkgs documentation [2] do help a lot, but that is quite a lot to process.<p>[1] <a href="https://nixos.org/guides/nix-pills" rel="nofollow">https://nixos.org/guides/nix-pills</a><p>[2] <a href="https://nixos.org/manual/nixpkgs/stable/" rel="nofollow">https://nixos.org/manual/nixpkgs/stable/</a></p>
]]></description><pubDate>Thu, 10 Apr 2025 08:39:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43641982</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=43641982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43641982</guid></item><item><title><![CDATA[New comment by chombier in "Rotors: A practical introduction for 3D graphics (2023)"]]></title><description><![CDATA[
<p>Yes, but from the canonical form of rotation matrices [1] I would expect such matrices to be represented as a sum of bi-vectors/rotors, which should take the same amount of data?<p>[1] <a href="https://en.wikipedia.org/wiki/Orthogonal_group#Canonical_form" rel="nofollow">https://en.wikipedia.org/wiki/Orthogonal_group#Canonical_for...</a></p>
]]></description><pubDate>Thu, 06 Mar 2025 08:44:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=43277898</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=43277898</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43277898</guid></item><item><title><![CDATA[New comment by chombier in "Rotors: A practical introduction for 3D graphics (2023)"]]></title><description><![CDATA[
<p>Geometric Algebra supporters keep advertising that rotors are great since they work in any dimension, which makes me wonder: would an arbitrary n-dimensional SVD-like decomposition benefit from using rotors instead of rotation matrices, and if so how? And if not, why?</p>
]]></description><pubDate>Wed, 05 Mar 2025 16:18:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=43268614</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=43268614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43268614</guid></item><item><title><![CDATA[New comment by chombier in "Introducing deep research"]]></title><description><![CDATA[
<p>> and also faster than it takes me to verify the answer given by the machine.<p>I always thought there was a kind of NP-flavor to the problems for which LLMs-like AI are helpful in practice, in the sense that solving the problem may be hard but checking the solution must be fast.<p>Unless the domain can accomodate errors/hallucination, checking the solution (by a human) should be exponentially faster than finding it (by some AI) otherwise there's little practical gain.</p>
]]></description><pubDate>Mon, 03 Feb 2025 10:25:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=42916822</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=42916822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42916822</guid></item><item><title><![CDATA[New comment by chombier in "8 months of OCaml after 8 years of Haskell in production (2023)"]]></title><description><![CDATA[
<p>Not exactly the same: `x` is given a polymorphic type (in F) in Haskell (restricted to values in ML) whereas the unannotated let-over-lambda will give `x`a monomorphic type.</p>
]]></description><pubDate>Tue, 03 Dec 2024 07:47:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=42303863</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=42303863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42303863</guid></item><item><title><![CDATA[New comment by chombier in "OCaml Syntax Sucks (2016)"]]></title><description><![CDATA[
<p>There is a kind of "do notation" in OCaml with binding operators [1] (let*) for monads and (let+) for applicatives that is actually quite pleasant in practice.<p>[1] <a href="https://ocaml.org/manual/5.2/bindingops.html" rel="nofollow">https://ocaml.org/manual/5.2/bindingops.html</a></p>
]]></description><pubDate>Mon, 25 Nov 2024 07:19:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42233971</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=42233971</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42233971</guid></item><item><title><![CDATA[New comment by chombier in "Stop making me memorize the borrow checker"]]></title><description><![CDATA[
<p>Besides, if you still want to skip learning there are escape hatches like Rc<RefCell> but these hint pretty strongly (e.g. clones everywhere) that something might be wrong somewhere.</p>
]]></description><pubDate>Sun, 17 Nov 2024 07:39:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=42162609</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=42162609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42162609</guid></item><item><title><![CDATA[New comment by chombier in "Stop making me memorize the borrow checker"]]></title><description><![CDATA[
<p>> Of course you have to internalise the rules of a borrow checker<p>This is generally a good thing: the more you internalise the logic of borrow checking, the earlier you start thinking about "who owns what" instead of deferring the choice to later, which often ends up in a tangled mess of "incidental data structures" as it is sometimes called in the c++ world [1].<p>Of course in c++ this means you have to internalise this discipline <i>the hard way</i>, i.e. without the borrow checker helping you.<p>[1] <a href="https://isocpp.org/blog/2016/05/cppcon-2015-better-code-data-structures-sean-parent" rel="nofollow">https://isocpp.org/blog/2016/05/cppcon-2015-better-code-data...</a></p>
]]></description><pubDate>Sun, 17 Nov 2024 07:35:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42162590</link><dc:creator>chombier</dc:creator><comments>https://news.ycombinator.com/item?id=42162590</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42162590</guid></item></channel></rss>