<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: dndn1</title><link>https://news.ycombinator.com/user?id=dndn1</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 18 Apr 2026 04:07:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dndn1" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dndn1 in "Show HN: In a single HTML file, an app to encourage my children to invest"]]></title><description><![CDATA[
<p>Not for the same audience but for much the same idea I made a progressive visualization of saving and compound interest in a blog post about pension saving:<p><a href="https://calcwithdec.dev/posts/pictures-pensions/" rel="nofollow">https://calcwithdec.dev/posts/pictures-pensions/</a><p>I intentionally didn't include numbers at all - they are a bit more effort to interpret.<p>A visualization might be a nice feature for kids (but it probably depends on the kid!)</p>
]]></description><pubDate>Fri, 31 Oct 2025 13:36:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45771836</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=45771836</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45771836</guid></item><item><title><![CDATA[You Draw Inflation]]></title><description><![CDATA[
<p>Article URL: <a href="https://calcwithdec.dev/posts/you-draw-inflation/">https://calcwithdec.dev/posts/you-draw-inflation/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44935621">https://news.ycombinator.com/item?id=44935621</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 17 Aug 2025 22:47:26 +0000</pubDate><link>https://calcwithdec.dev/posts/you-draw-inflation/</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=44935621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44935621</guid></item><item><title><![CDATA[New comment by dndn1 in "4-7-8 Breathing"]]></title><description><![CDATA[
<p>People say that it's a practice.<p>A few years ago I was determined to practice, and it was hard, and then it became easy, auto-relaxing, like a cheat.<p>I lost that practice and now it's hard again.<p>I think GP is right to question technique vs. attention - I think we don't know much about the answer.<p>But a point I recall in Nestors book is that there isn't really a lot of scientific study on breath - there is much more study on specific diseases, and e.g. teeth have a full profession of study and development that the everyday act of breathing doesn't have (even though these might be highly related!).<p><Opinionated> Some of the best references about breath today are not scientific, but written in the oldest books that survived in different cultures - and anyways, how much does the specific mechanism matter?<p>Watch this space though - science is catching up! </></p>
]]></description><pubDate>Fri, 06 Jun 2025 21:00:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=44204929</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=44204929</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44204929</guid></item><item><title><![CDATA[New comment by dndn1 in "A leap year check in three instructions"]]></title><description><![CDATA[
<p>Thanks for the prompt! I made a new gallery that's mobile friendly and I almost forgot why I need to land it - adding it to the list!</p>
]]></description><pubDate>Fri, 16 May 2025 21:49:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=44010073</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=44010073</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44010073</guid></item><item><title><![CDATA[New comment by dndn1 in "A leap year check in three instructions"]]></title><description><![CDATA[
<p>If you need to know a leap year and it's before the year 6000, I made an interactive calculator and visualization [1].<p>It's >3 machine instructions (and I admire the mathematical tricks included in the post), but it does do thousands of calculations fairly quickly :)<p>[1] <a href="https://calculang.dev/examples-viewer?id=leap-year" rel="nofollow">https://calculang.dev/examples-viewer?id=leap-year</a></p>
]]></description><pubDate>Thu, 15 May 2025 23:10:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44000282</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=44000282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44000282</guid></item><item><title><![CDATA[New comment by dndn1 in "A simple 16x16 dot animation from simple math rules"]]></title><description><![CDATA[
<p>This is a cool way to teach!<p>I was blown away by the little functions at first and I too made a clone to experiment with calculang [1].<p>I added an evaluation feature (F9) so you can select sub-expressions and see what they do, which was helpful to figure out some patterns (video in [2])<p>[1] <a href="https://calculang-editables.netlify.app/tixyish" rel="nofollow">https://calculang-editables.netlify.app/tixyish</a><p>[2] <a href="https://www.youtube.com/watch?v=uXUd_-xrycs" rel="nofollow">https://www.youtube.com/watch?v=uXUd_-xrycs</a></p>
]]></description><pubDate>Sat, 10 May 2025 10:38:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=43944625</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=43944625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43944625</guid></item><item><title><![CDATA[New comment by dndn1 in "Abusing DuckDB-WASM by making SQL draw 3D graphics (Sort Of)"]]></title><description><![CDATA[
<p>Neat UI, are you using a library for that?</p>
]]></description><pubDate>Tue, 22 Apr 2025 16:23:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=43763872</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=43763872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43763872</guid></item><item><title><![CDATA[New comment by dndn1 in "The DDA Algorithm, explained interactively"]]></title><description><![CDATA[
<p>Really pretty outputs! And impressive that the code is shown so elegantly and also interactive.<p>This algorithm is one I use to demo some features in a language I'm making called calculang [0][1]
I like the way you step through the logic.<p>My only suggestion would be to include a raycasted scene because you can really grab a wide(r) audience (and I'd love to see how you get to voxel scenes!).<p>Either way - thanks for adding a neat new resource for this algorithm and I'm definitely taking notes Re your clean presentation of the details!<p>[0] <a href="https://next-calculang-gallery.netlify.app/raycasting" rel="nofollow">https://next-calculang-gallery.netlify.app/raycasting</a><p>[1] <a href="https://www.youtube.com/watch?v=hKVXRACCnqU" rel="nofollow">https://www.youtube.com/watch?v=hKVXRACCnqU</a></p>
]]></description><pubDate>Sat, 05 Apr 2025 08:38:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=43591925</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=43591925</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43591925</guid></item><item><title><![CDATA[New comment by dndn1 in "Pictures of Pensions"]]></title><description><![CDATA[
<p>Thanks gordito!</p>
]]></description><pubDate>Tue, 10 Dec 2024 08:20:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=42374902</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=42374902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42374902</guid></item><item><title><![CDATA[New comment by dndn1 in "Pictures of Pensions"]]></title><description><![CDATA[
<p>Post-retirement is definitely harder. There are also usually rules about what's allowable with the money that built up with tax relief and such. Since these rules differ from country to country even the starting point of deciding what to model is hard.<p>Here in Ireland I think in order to get some flexibility with a reasonably sized pension you need to buy an annuity - a guaranteed income paid from some insurance company, up to some amount.<p>Some day I might settle on some scenario/s to model and take on the visualization challenge... For now hopefully people - especially those who provide the services, can assess if it can be helpful!</p>
]]></description><pubDate>Tue, 10 Dec 2024 08:18:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=42374896</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=42374896</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42374896</guid></item><item><title><![CDATA[New comment by dndn1 in "Pictures of Pensions"]]></title><description><![CDATA[
<p>Aha - I get you!</p>
]]></description><pubDate>Tue, 10 Dec 2024 00:58:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=42372470</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=42372470</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42372470</guid></item><item><title><![CDATA[New comment by dndn1 in "Pictures of Pensions"]]></title><description><![CDATA[
<p>Author here -<p>Health warning third bullet point is:<p>> Even when there is tax relief to save for a pension, this doesn’t mean that there aren’t taxes on pension income after retirement<p>and the footnote to it is:<p>> often there are taxes on pension income - so that it might be better to say that tax is deferred rather than relieved whenever we save↩<p>I'll consider bumping the footnote since it's important.<p>I might try to capture the more complete picture including post-retirement separately - a problem is that there are so many different configurations of this (e.g. in Ireland there are tax-free lump sums permitted at retirement, then there are a few specific options about the rest - and I'm probably still simplifying). But when I get comfortable about something relevant to describe, I might.</p>
]]></description><pubDate>Tue, 10 Dec 2024 00:54:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=42372434</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=42372434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42372434</guid></item><item><title><![CDATA[New comment by dndn1 in "Pictures of Pensions"]]></title><description><![CDATA[
<p>Hi - author here - these compound returns are not guaranteed. I reinforce this point under health warnings.<p>Here the 6% compound returns is an assumption. If that's good or bad to use depends on the purpose of the projection. For long projections in medium-risk funds this might be a reasonable value - but it can also be far off, especially in the short-term.<p>I made a separate post that surfaces results from an assumed <i>distribution</i> of outcomes rather than a single value, called Visualizing Risk: <a href="https://calcwithdec.dev/posts/viz-risk/" rel="nofollow">https://calcwithdec.dev/posts/viz-risk/</a> (basically a monte carlo simulation)<p>Also, in my pension calculator example on calculang.dev you can change all the assumptions: <a href="https://calculang.dev/examples-viewer?id=pension-calculator" rel="nofollow">https://calculang.dev/examples-viewer?id=pension-calculator</a> (excluding tax relief bits - it's just an example)</p>
]]></description><pubDate>Tue, 10 Dec 2024 00:42:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=42372351</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=42372351</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42372351</guid></item><item><title><![CDATA[New comment by dndn1 in "Pictures of Pensions"]]></title><description><![CDATA[
<p>Author here -<p>This blog post is a 'narrative visualization' to show some nice savings incentives visualized in a chart.<p>I think these are important to have a good understanding about when they are relevant, but the bigger reason I made this is to explore the communication style applied to models and to get closer to the technical patterns to create them.<p>Since I make calculang [1], all the savings projection calculations are described using it [2] (including income tax calculations: here an example of composition in calculang models).<p>calculang transpiles into a pure functional JS module, and here I interact with it using reactive OJS and the closeread extension for Quarto [3], plus a reactive Vega visualization.<p>The programming logic mostly is: Vega signals and calculang parameters condition on a `progress` value that updates as the user scrolls.<p>It was nice to make: minus no fast reload I would say. I'm considering streamlining some tools with fast reload to facilitate building this type of output for calculang models - like I said I'm interested in the narrative style applied to models, and pure FP calculang and reactive FRP tools around it help a lot.<p>[1] <a href="https://calculang.dev" rel="nofollow">https://calculang.dev</a><p>[2] <a href="https://calculang.dev/examples-viewer?id=pension-calculator" rel="nofollow">https://calculang.dev/examples-viewer?id=pension-calculator</a> <3 separation of concerns<p>[3] <a href="https://closeread.dev/" rel="nofollow">https://closeread.dev/</a></p>
]]></description><pubDate>Tue, 10 Dec 2024 00:33:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=42372278</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=42372278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42372278</guid></item><item><title><![CDATA[New comment by dndn1 in "Show HN: How much is 13B euros?"]]></title><description><![CDATA[
<p>43,333 homes using 13Bn and 300k cost; I guess you changed one of these or did something else ?</p>
]]></description><pubDate>Thu, 12 Sep 2024 11:39:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41519674</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=41519674</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41519674</guid></item><item><title><![CDATA[New comment by dndn1 in "Show HN: How much is 13B euros?"]]></title><description><![CDATA[
<p>To get my editor component and compiler interacting with that reactive system it got a little messy, and I'll review and hopefully fix it before I push this to a wider calculang playground. Hopefully it's my own bugs that I can fix anyways.</p>
]]></description><pubDate>Thu, 12 Sep 2024 11:36:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=41519663</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=41519663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41519663</guid></item><item><title><![CDATA[New comment by dndn1 in "Show HN: How much is 13B euros?"]]></title><description><![CDATA[
<p>In this example it might not be so practical, but in calculang everything is a function including constants.<p>This is because of an emphasis on flexibility. They're a constant here but in another calculang model I can call calculations from this same code while asking for specific pieces of the calculation to be different.<p>e.g. if I have a population growth assumption then in an exercise I can get all these numbers allowing for population growth - without myself touching these formulas. Population then depends on time and must be a function.<p>On calculang.dev I say that formulas (functions) are the building blocks of calculations, and they're the mechanism for flexibility (also transparency).</p>
]]></description><pubDate>Thu, 12 Sep 2024 11:24:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=41519579</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=41519579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41519579</guid></item><item><title><![CDATA[New comment by dndn1 in "Show HN: How much is 13B euros?"]]></title><description><![CDATA[
<p>I do need to work on this - thanks for the feedback.</p>
]]></description><pubDate>Thu, 12 Sep 2024 11:13:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41519508</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=41519508</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41519508</guid></item><item><title><![CDATA[New comment by dndn1 in "Show HN: How much is 13B euros?"]]></title><description><![CDATA[
<p>I use reactive Javascript which shows errors until a few pieces click together (best that I can understand it atm).<p>So it's normal to have a string of errors and then everything works, but it should work in much less than 2s. I guess that can depend on a few things!<p>Please let me know if waiting a bit still fails!</p>
]]></description><pubDate>Thu, 12 Sep 2024 01:33:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=41516809</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=41516809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41516809</guid></item><item><title><![CDATA[New comment by dndn1 in "Show HN: How much is 13B euros?"]]></title><description><![CDATA[
<p>Thanks for checking it out and for the comment! This surprised me, but you are right.<p>The only thing I can point to referring to this example only is that there is a lot of Javascript in the page, but the calculations are (effectively Javascript also but:) described separately, and this is still useful I'll argue -<p>Separation of concerns means we can easily first of all point to calculation logic, connect it to numbers where they are used, give some structure to it, build tools to generally interact with that structure (much simpler than with Javascript). calculang code is pure and has no side-effects (*supposed to), which means tools can safely re-run code and expect predictable output. I use a tool taking advantage of some of this in [1] a video exploring a calculang model for a raycasting algorithm in order to understand it and fix a thing. So, I said a lot of buzzwords but I do use these properties to experiment with different DX that is far more challenging to develop for Javascript or a programming language generally.<p>The calculations in How much is 13 Bn euros are almost trivial - I normally don't put in these types of hardcodes for example - and it does happen to be valid Javascript here. An example to see some technical properties of calculang itself is this (also simple) one: <a href="https://new-layout-2--finding-calculang-foc.netlify.app/shop" rel="nofollow">https://new-layout-2--finding-calculang-foc.netlify.app/shop</a><p>There are a few tabs in the top left. The first (default) tab is showing calculang code: a few formulas and a few inputs (inputs are denoted by a convention). All are implemented like functions, and there are a lot of function calls - but those brackets have nothing in them. This is because calculang tracks how inputs are used and populates brackets for you - something I call input inference (or input threading). In the second tab you'll see the calculang output.<p>So it looks like calculang helps you to write pure-functional calculation code in a concise way; by threading inputs through all the function calls automatically.<p>calculang also supports modularity and effectively lets you re-use one calculation and "overriding" some component calculation/s. In other words: calculang formulas are flexible. And this is the real motivation for calculang taking care of all that input threading: flexibility means it should be done differently in different contexts (even sensible within the same model - for example - "I want this calc with this change, I want the same calc but with this other change or no change, and I want the difference between the two").<p>The compiler takes care of input threading through some pretty simple graph logic - everything related to compilation is <1k lines in total. Effective modularity, flexibility, and re-use of course is useful for maintainability.<p>A recycling logo in the calculang.dev examples [2] indicates models which use modularity in some form.<p>Sorry for the long post. That really is about all the technical details I can mention - but I think separation of concerns takes it very far also - in terms of its goals (that are stated on top of calculang.dev).<p>[1] <a href="https://www.youtube.com/watch?v=hKVXRACCnqU" rel="nofollow">https://www.youtube.com/watch?v=hKVXRACCnqU</a><p>[2] <a href="https://calculang.dev/#examples" rel="nofollow">https://calculang.dev/#examples</a></p>
]]></description><pubDate>Thu, 12 Sep 2024 01:25:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=41516771</link><dc:creator>dndn1</dc:creator><comments>https://news.ycombinator.com/item?id=41516771</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41516771</guid></item></channel></rss>