<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: bbsimonbb</title><link>https://news.ycombinator.com/user?id=bbsimonbb</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 07 Jun 2026 21:48:30 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bbsimonbb" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bbsimonbb in "Ask HN: What Are You Working On? (June 2025)"]]></title><description><![CDATA[
<p>If anyone's tempted to visit, the home page is in French. Click on "Chiffrer un produit" and you're into the configurator which has English translation (top right). All the magic is on the third screen, after selecting a category and a product. The disposition of options and choices, plus prices for all choices, plus the 3d rendering, plus all the totals, all recalculate in the browser with zero latency, based on previous choices.</p>
]]></description><pubDate>Sun, 29 Jun 2025 22:26:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=44417124</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=44417124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44417124</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Ask HN: What Are You Working On? (June 2025)"]]></title><description><![CDATA[
<p><a href="https://simplyfirst.fr" rel="nofollow">https://simplyfirst.fr</a>.<p>We're off and running, making the world's best configurators for complex products. Our first clients love us. Our configurators implement some very personal ideas about front-end state management, and it's really a thrill to see it all working with real products, 3d rendering and zero latency.</p>
]]></description><pubDate>Sun, 29 Jun 2025 22:04:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=44416919</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=44416919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44416919</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Boeing chief must have engineering background, Emirates boss says"]]></title><description><![CDATA[
<p>This is worth meditating! The American empire, like the British before it and the other european while we're at it, are flashes in the pan compared to the Romans, the Byzantines, the Ottomans. It could be that hypocrisy, racism and just wanting the oil/diamonds/gold/consumers is not a formula for lasting success.</p>
]]></description><pubDate>Wed, 27 Mar 2024 14:41:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=39839831</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=39839831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39839831</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>Good suggestion.</p>
]]></description><pubDate>Sat, 16 Dec 2023 00:48:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=38660704</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38660704</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38660704</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>I like and use MobX. I "come from" Vue, and I like mutability (though I concede its dangers). For my needs, the limitation was reactions. In mobx, reactions shouldn't update other observables. In Octopus, chaining is the whole point. Nodes can be stacked to n depth. There is no distinction between state and computed. Computed just generates more observable state.<p>Then, in Octopus you also get reporting nodes and visualisation, which, once tasted, no return.</p>
]]></description><pubDate>Sat, 16 Dec 2023 00:37:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=38660622</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38660622</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38660622</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>So xstate implements state machines. This is quite a different concept from DAGs, though there may be a DAG underneath. This isn't mentionned anywhere though. The concepts you work with are state machine concepts.</p>
]]></description><pubDate>Fri, 15 Dec 2023 17:13:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=38656159</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38656159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38656159</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>I looked at and rejected state machines, because I didn't like/understand the need for the formalism of defining every possible state.</p>
]]></description><pubDate>Fri, 15 Dec 2023 14:05:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=38654262</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38654262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38654262</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>That looks really remarkable.</p>
]]></description><pubDate>Fri, 15 Dec 2023 11:27:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=38653084</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38653084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38653084</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>I'm not doing this for fun. Especially since I'm fundamentally lazy (and more of a practitioner than a comp-sci person). I'm looking at custom configurators for complex made-to-measure products with dozens of options, with many interdependencies between options.</p>
]]></description><pubDate>Fri, 15 Dec 2023 11:08:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=38652983</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38652983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38652983</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>Are you talking about this? <a href="https://patents.google.com/patent/US7865872B2/en" rel="nofollow noreferrer">https://patents.google.com/patent/US7865872B2/en</a></p>
]]></description><pubDate>Fri, 15 Dec 2023 11:01:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=38652955</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38652955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38652955</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>I put a concrete example in the sample app. "pizza" depends on "size" and "base". So a DAG, as you point out, is less constraining than a tree. When you shoehorn your state and orchestration into react components, not only do you have to fit them into a tree, it's fundamentally the wrong tree.</p>
]]></description><pubDate>Fri, 15 Dec 2023 10:55:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=38652928</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38652928</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38652928</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>That sounds very cool indeed.</p>
]]></description><pubDate>Fri, 15 Dec 2023 05:35:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=38651329</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38651329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38651329</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>No. Signals work with a weak map of references, not a graph. So in my Pizza example, when pizza changes, totalPrice would recalculate twice: once on a signal from pizza, once on a signal from tip. Explicitly constructing the graph dramatically reduces needless recalculation in bigger systems.</p>
]]></description><pubDate>Fri, 15 Dec 2023 00:34:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=38649531</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38649531</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38649531</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>That looks interesting, and totally new to me. Thanks.</p>
]]></description><pubDate>Fri, 15 Dec 2023 00:26:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=38649468</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38649468</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38649468</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>Have a look at the node code. It's biblically simple. I would say it's much simpler than any comparable solution. You can forget about reducers, thunks, computed, even useState, useContext, useEffect and props are rare. I've stuck with graph terminology: nodes, predecessors etc, but you don't need to grok that stuff to use this. Once you've understood that a node is a value, some methods and a reup() function, that's it.</p>
]]></description><pubDate>Fri, 15 Dec 2023 00:19:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=38649413</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38649413</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38649413</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>The graph framing is essential. I use typescript graph libraries for the topological sort and for the visualization. I did much less work than either of those two libraries !</p>
]]></description><pubDate>Fri, 15 Dec 2023 00:00:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=38649249</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38649249</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38649249</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>As I've just written above, React components form a tree that mirrors the DOM. A graph is a much better fit. Nodes in my DAG ressemble "computed" in Vue, where they watch a value and recalculate when it changes, but... in Vue the watched value needs to exist, ie you're responsible for constructing the graph and ensuring no cycles, and the computed value is only available locally, to be used in the template. In my DAG, you just name the thing you want to watch, octopus checks for cycles. Plus you get the visualization.<p>The closest thing I'm aware of is Jotai. Atoms in jotai can take dependencies on other atoms, so forming a graph.<p>Reporting nodes in Octopus are, I believe, completely new. You can create nodes that select their predecessors with a filter function. So the "totalPrice" node takes a dependency on any node with a price property, and recalculates when anything with a price changes.</p>
]]></description><pubDate>Thu, 14 Dec 2023 23:59:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=38649236</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38649236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38649236</guid></item><item><title><![CDATA[New comment by bbsimonbb in "Show HN: Octopus – a directed acyclic graph for app development"]]></title><description><![CDATA[
<p>It's very different. Your react components are organized in a tree that mirrors your DOM. If you're using React without an additional state management package, you need to hoist your shared state to a common ancestor, then prop drill it down to where it's needed. Nightmare. I'm advocating a graph that mirrors your subject domain, unconstricted by your DOM. Also, my graph is constructed from below, which feels very intuitive. Nodes specify who they want to read. You make no change to the node being read.</p>
]]></description><pubDate>Thu, 14 Dec 2023 23:43:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=38649042</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38649042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38649042</guid></item><item><title><![CDATA[Show HN: Octopus – a directed acyclic graph for app development]]></title><description><![CDATA[
<p>Directed acyclic graphs are muched discussed in comp-sci, but octopus appears to be the first reusable, turnkey, ready-to-wear, off-the-shelf implementation of a DAG for application development, in any language, that I'm aware of.<p>This is remarkable because DAGs hit a sweet spot in the middle of the three common programming paradigms (OO, event-driven, functional). Let's have a DAG as the top-level structure of our applications. Data-fetching and onChange handlers live in DAG nodes, next to the data they act on. The UI flows out from the DAG with fine-grained reactivity. Our app state is effortlessly consistent, because any outside change (user action, api result) unleashes a graph traversal. Our UI components become much simpler, because they just need to dumbly reflect values in the graph.<p>I'm putting this up for a second time. Absolutely no-one bit the first time, which can't be right :-)</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38645180">https://news.ycombinator.com/item?id=38645180</a></p>
<p>Points: 84</p>
<p># Comments: 47</p>
]]></description><pubDate>Thu, 14 Dec 2023 18:36:12 +0000</pubDate><link>https://github.com/bbsimonbb/octopus-turbo</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38645180</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38645180</guid></item><item><title><![CDATA[New comment by bbsimonbb in "You Don't Batch Cook When You're Suicidal (2020)"]]></title><description><![CDATA[
<p><a href="https://en.wikipedia.org/wiki/Lesson_of_the_widow%27s_mite" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Lesson_of_the_widow%27s_mite</a></p>
]]></description><pubDate>Wed, 13 Dec 2023 16:35:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=38629828</link><dc:creator>bbsimonbb</dc:creator><comments>https://news.ycombinator.com/item?id=38629828</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38629828</guid></item></channel></rss>