<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: rramadass</title><link>https://news.ycombinator.com/user?id=rramadass</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 03:19:27 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rramadass" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rramadass in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>Right. Use/Choose those features you are most knowledgeable/comfortable with. That is why C++ has such a smorgasbord of features and supports multiple paradigms. Over time, as one learns "better ways" (for a certain definition and one is convinced of it) of doing something change/modify as needed.<p>That is all there is to it.</p>
]]></description><pubDate>Sun, 14 Jun 2026 02:04:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48523483</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48523483</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48523483</guid></item><item><title><![CDATA[New comment by rramadass in "Orthodox C++"]]></title><description><![CDATA[
<p>No, it is perfectly valid if your design demands it.<p>For example, the Windows MFC framework had classes whose data members were all public. Some of reasons were;<p>1) MFC was a wrapper over lower-level Windows API/structs and therefore unnecessary getter/setter methods were avoided. The C++ class could be a simple wrapper over the underlying C-style POD.<p>2) The framework classes were supposed to be used by implementation inheritance to build one's skeleton application which led to tight coupling between base and derived classes. Hence the designers decided to make all members public which meant that users were not limited by any omissions in the basic design.<p>I actually used these ideas in a project where i implemented a C++ api over C state machines for H.323 protocols.</p>
]]></description><pubDate>Sat, 13 Jun 2026 17:26:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48519391</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48519391</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48519391</guid></item><item><title><![CDATA[New comment by rramadass in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>You might find <i>Functional Programming in C++ by Ivan Cukic</i> relevant.</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:16:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518661</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48518661</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518661</guid></item><item><title><![CDATA[New comment by rramadass in "Orthodox C++ (2016)"]]></title><description><![CDATA[
<p>Yep, the article is a old one and not particularly well written. As somebody who has been using C++ from the early 90s and not particularly a fan of (all of) "Modern C++", there is not much information here.</p>
]]></description><pubDate>Sat, 13 Jun 2026 16:09:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48518599</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48518599</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48518599</guid></item><item><title><![CDATA[New comment by rramadass in "Low Vitamin B9 and B12 linked to chronic fatigue and low motivation"]]></title><description><![CDATA[
<p>Nope; see <a href="https://ods.od.nih.gov/factsheets/VitaminD-Consumer/" rel="nofollow">https://ods.od.nih.gov/factsheets/VitaminD-Consumer/</a></p>
]]></description><pubDate>Thu, 11 Jun 2026 08:06:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48487642</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48487642</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48487642</guid></item><item><title><![CDATA[New comment by rramadass in "Low Vitamin B9 and B12 linked to chronic fatigue and low motivation"]]></title><description><![CDATA[
<p><a href="https://news.ycombinator.com/item?id=48479166">https://news.ycombinator.com/item?id=48479166</a></p>
]]></description><pubDate>Wed, 10 Jun 2026 17:11:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48479447</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48479447</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48479447</guid></item><item><title><![CDATA[New comment by rramadass in "Low Vitamin B9 and B12 linked to chronic fatigue and low motivation"]]></title><description><![CDATA[
<p>Some Resources:<p><i>Dietary Supplements for Older Adults</i> - <a href="https://www.nia.nih.gov/health/vitamins-and-supplements/dietary-supplements-older-adults" rel="nofollow">https://www.nia.nih.gov/health/vitamins-and-supplements/diet...</a><p><i>Vitamins and Minerals for Older Adults</i> - <a href="https://www.nia.nih.gov/health/vitamins-and-supplements/vitamins-and-minerals-older-adults" rel="nofollow">https://www.nia.nih.gov/health/vitamins-and-supplements/vita...</a><p><i>Vitamins and Minerals</i> - <a href="https://www.nhs.uk/conditions/vitamins-and-minerals/" rel="nofollow">https://www.nhs.uk/conditions/vitamins-and-minerals/</a><p><i>Essential Daily Supplements by Age Group: A Doctor's Guide for Indian Families</i> - <a href="https://drnegi.com/blog/essential-daily-supplements-age-guide-india" rel="nofollow">https://drnegi.com/blog/essential-daily-supplements-age-guid...</a></p>
]]></description><pubDate>Wed, 10 Jun 2026 16:53:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48479166</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48479166</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48479166</guid></item><item><title><![CDATA[New comment by rramadass in "The LD_DEBUG environment variable (2012)"]]></title><description><![CDATA[
<p>A couple of posts on how to use LD_AUDIT;<p><i>Leveraging LD_AUDIT to Beat the Traditional Linux Library Preloading Technique</i> - <a href="https://www.sentinelone.com/labs/leveraging-ld_audit-to-beat-the-traditional-linux-library-preloading-technique/" rel="nofollow">https://www.sentinelone.com/labs/leveraging-ld_audit-to-beat...</a><p><i>rtld-audit and LD_AUDIT</i> - <a href="https://vsoch.github.io/2021/ldaudit/" rel="nofollow">https://vsoch.github.io/2021/ldaudit/</a></p>
]]></description><pubDate>Wed, 10 Jun 2026 05:18:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48471752</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48471752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48471752</guid></item><item><title><![CDATA[New comment by rramadass in "The LD_DEBUG environment variable (2012)"]]></title><description><![CDATA[
<p><a href="https://news.ycombinator.com/item?id=48471690">https://news.ycombinator.com/item?id=48471690</a></p>
]]></description><pubDate>Wed, 10 Jun 2026 05:09:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48471695</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48471695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48471695</guid></item><item><title><![CDATA[New comment by rramadass in "The LD_DEBUG environment variable (2012)"]]></title><description><![CDATA[
<p>Found it - <a href="https://man7.org/linux/man-pages/man8/ld.so.8.html#ENVIRONMENT" rel="nofollow">https://man7.org/linux/man-pages/man8/ld.so.8.html#ENVIRONME...</a><p>Yeah, i was looking for little known/undocumented environment variables (eg. i didn't know of LD_AUDIT).</p>
]]></description><pubDate>Wed, 10 Jun 2026 05:08:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48471690</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48471690</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48471690</guid></item><item><title><![CDATA[New comment by rramadass in "Low Vitamin B9 and B12 linked to chronic fatigue and low motivation"]]></title><description><![CDATA[
<p>Important article which everybody should heed and act accordingly to make changes in lifestyle.<p>Due to various reasons (eg. age/bad diet/lack of exercise/etc.), i was suffering from brain fog, gut problems, low motivation/energy/fatigue, sleep problems etc. for the last couple of years. Finally, did some research, regularized my diet, disciplined my exercise and added the following supplements which solved all my problems.<p><pre><code>  1) Methylcobalamin (Vitamin B12) sublingual tablet. Important for vegetarians. 
  2) Multivitamins and Multiminerals (with optional ginseng etc.)
  3) Omega 3, 6 and 9 (with optional gingko etc.)
  4) Vitamin B complex with Zinc
  5) Vitamin D with Calcium (500IU/500mg)
  6) Vitamin C chewable tablet
</code></pre>
Take only 1 of the above per day so that you rotate every 7th day. Finally;<p><pre><code>  7) Have a Pre and Probiotic capsule with lunch everyday to solve gut problems.
</code></pre>
Note: If you are in India, you can get all of the above (and more) for low cost at any of the "Pradhan Mantri Bharatiya Janausadhi Kendra" shops in your neighbourhood - <a href="https://www.janaushadhi.gov.in/" rel="nofollow">https://www.janaushadhi.gov.in/</a></p>
]]></description><pubDate>Wed, 10 Jun 2026 04:52:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48471576</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48471576</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48471576</guid></item><item><title><![CDATA[New comment by rramadass in "The LD_DEBUG environment variable (2012)"]]></title><description><![CDATA[
<p>Do you know where i can find a list of all LD_XXX environment variables?</p>
]]></description><pubDate>Wed, 10 Jun 2026 03:43:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48471157</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48471157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48471157</guid></item><item><title><![CDATA[New comment by rramadass in "Win16 Memory Management"]]></title><description><![CDATA[
<p><a href="https://news.ycombinator.com/item?id=48435428">https://news.ycombinator.com/item?id=48435428</a></p>
]]></description><pubDate>Sun, 07 Jun 2026 14:54:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48435446</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48435446</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48435446</guid></item><item><title><![CDATA[New comment by rramadass in "Win16 Memory Management"]]></title><description><![CDATA[
<p>Good informative article.<p>Win16 programming was an important formative phase in my career. There is a lot of wisdom in old solutions to thorny problems and knowing them often clues you to how one may adapt them to today's problem. For example, when CPU+GPU programming appeared i immediately imagined CPU memory accessed with "near" pointers and GPU memory accessed with "far" pointers with a switch to a pseudo-segment register.<p>It also conditioned a programmer to learn about various complexities involved and be careful in their programming i.e. it taught you discipline. You understood your compiler, OS and hardware better and how to write code keeping them all in mind. For example, i often say my study of embedded programming started with Win16!<p>Another bit of cleverness was "Thunking" between 16-bit and 32-bit code. Here is Raymond Chen on how it worked there and <i>Why can’t you thunk between 32-bit and 64-bit Windows?</i> - <a href="https://devblogs.microsoft.com/oldnewthing/20081020-00/?p=20523" rel="nofollow">https://devblogs.microsoft.com/oldnewthing/20081020-00/?p=20...</a></p>
]]></description><pubDate>Sun, 07 Jun 2026 14:52:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48435428</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48435428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48435428</guid></item><item><title><![CDATA[New comment by rramadass in "4K years ago, Mohenjo-daro grew more equal over time"]]></title><description><![CDATA[
<p>The dichotomy between "Civilization" and "Barbarism" is longstanding. The writer Robert Howard said;<p><i>“Barbarism is the natural state of mankind. Civilization is unnatural. It is a whim of circumstance. And barbarism must always ultimately triumph.”</i><p>Here by "Civilzation" i mean explicitly; philosophical ideas/frameworks, societal beliefs/structures/traditions etc. far beyond what is needed for mere survival. For example, Buddhism took the idea of <i>Ahimsa</i> from Hinduism (where its limitations were known) and turned it into the utopian idea of <i>complete non-violence</i> which was then made state policy in kingdoms of North India and current-day Pakistam/Afghanistan. The result was that they fell easily to the islamic barbarians who played by a different set of rules.<p>What we need is Civilization but with the necessary Barbaric tendencies assuring survival (i.e. procreation and societal self-defense) still maintained.<p>Note here that this idea has been corrupted by western countries during their colonial rule time period. So you have to be careful to disambiguate legitimate ideas from overt/covert racism.</p>
]]></description><pubDate>Sun, 07 Jun 2026 10:47:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48433584</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48433584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48433584</guid></item><item><title><![CDATA[New comment by rramadass in "Asserts in Zig"]]></title><description><![CDATA[
<p>Yeah, i remember our previous "discussion" on this topic. You were the guy arguing that Formal Method/Verification means only the use of static analysis and verification using SMT/SAT solvers while i was arguing that Formal Methods were far more broader involving multiple levels, a bunch of runtime aspects etc. This is often the easier place to start for programmers since they don't need to learn complex concepts/terminologies initially but can gradually buildup to it. I also note that i gave you a bunch of references in support of my arguments.<p>> The ideal way to do runtime-checked DbC is not with simple asserts, it's with proper first-class preconditions and postconditions at the language level.<p>Not quite. DbC should be taught using only simple runtime asserts so that programmers can grasp the essence instead of confusing it with syntactic sugar which is irrelevant to the overall concepts/ideas. Once they grok this they can exercise DbC in any language eg. minimal C language. Furthermore they can now be led to the idea of doing it statically by mapping asserts to verification conditions and thence solved. This can lead to Frama-C and finally to a full-blown verification aware language like Dafny with all the bells-and-whistles.<p>> It wouldn't be nice to have to manually ensure that both old and new states of variables are in-scope for postcondition checking. I can imagine that being not just tedious, but error-prone.<p>Dijkstra has already given mechanical transformation rules for this in his wp-calculus. Tedious/error-prone is subjective since for something like a embedded health-monitor it is necessary.<p>> Some aspect of the program's state, yes, and hopefully that's all it does.<p>> Interesting to think about the edge-cases here though. Depending on the language, it could accidentally side-effect, or even invoke undefined behaviour, and so actively derail the program. Can't blame DbC for that though, that's a question of language safety.<p>This is solely the programmer's responsibility and his knowledge of his implementation language. We have already discussed this in our previous discussion.<p>> I'm not sure I follow here. You don't use asserts to steer flow-control, you use them to check aspects of program state.<p>An assert is a predicate and therefore an implicit conditional. When true, only a subset of the input state space is allowed in. When false, the program is halted. This is what i mean by "steering" i.e. the running program is a trajectory through a state space which we enforce by the usage of our asserts.<p>> That doesn't constitute a proof of correctness, no more than last time you and I discussed this. [0] Depending on the language, it wouldn't even necessarily prove the correctness of that particular trace, as you haven't proven that you haven't accidentally invoked undefined behaviour.<p>> You hold a minority opinion on this, please stop presenting it as settled fact.<p>We had already discussed this and i had already pointed out that is how "correct-by-construction" approach works whether done informally or formally by a programmer. It is your opinion which is narrow and in certain aspects wrong. Your examples of UB is simply a red herring since i have already pointed out that the programmer needs to be aware of this (and his language's optimizer).<p>Dijkstra for example invented his GCL and taught his class to use wp-calculus to derive preconditions from postconditions for every executable statement by hand to demonstrate proof of correctness.<p>> I'm not sure why you'd think I don't already know that.<p>That was aimed more at the OP article than you. However, when i see your comments w.r.t. UB, i wonder. One needs to know one's language's types and their bounds, sequence points and how it relates to expressions/statements to avoid UB.</p>
]]></description><pubDate>Sun, 07 Jun 2026 08:34:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48432984</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48432984</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48432984</guid></item><item><title><![CDATA[New comment by rramadass in "Asserts in Zig"]]></title><description><![CDATA[
<p>Right. I remember the C3 thread from a few months ago - <a href="https://news.ycombinator.com/item?id=46478647">https://news.ycombinator.com/item?id=46478647</a><p>A user raised some confusion with the wording about Contracts in your  documentation which was not answered and is still there. I think it should be fixed since there are lots of people who are confused about contracts and how it differs from error handling. Add to this people's confusion about asserts at runtime and how the optimizer may mess it up and you have a veritable rat's nest of confused thoughts/opinions.<p>Is your approach to static analysis/verification something like what Frama-C does? I had always wished somebody would wrap C/C++ with a full blown static analysis/verification plus runtime framework and make everything into a single integrated whole like for example the Dafny language. Everything should be doable in a single implementation language with annotations as needed.</p>
]]></description><pubDate>Sun, 07 Jun 2026 06:51:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48432521</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48432521</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48432521</guid></item><item><title><![CDATA[New comment by rramadass in "Mathematicians issue warning as AI rapidly gains ground"]]></title><description><![CDATA[
<p>No.<p>Understand first what Axiom Math does (<a href="https://www.youtube.com/watch?v=abYcV5LHMG4" rel="nofollow">https://www.youtube.com/watch?v=abYcV5LHMG4</a>). It is only after he realized the possibilities of AI that he started Axiom Math with a student he mentored.</p>
]]></description><pubDate>Sun, 07 Jun 2026 05:13:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48432018</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48432018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48432018</guid></item><item><title><![CDATA[New comment by rramadass in "How LLMs work"]]></title><description><![CDATA[
<p>Any article titled "How LLMs work" (or similar) and which does not start with conditional and joint probability (high-level and not necessarily detailed) and then show by hand how a trivial language with tokens (eg: "the", "mat", "cat", "sat", "on") can produce the semantically coherent and most likely sentence (eg. "The Cat sat on the Mat") is no good. The intuition for the whole should be built using the above before diving into details of transformers etc.</p>
]]></description><pubDate>Sun, 07 Jun 2026 04:31:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48431811</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48431811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48431811</guid></item><item><title><![CDATA[New comment by rramadass in "Programmers Aren't People"]]></title><description><![CDATA[
<p><a href="https://news.ycombinator.com/item?id=48431591">https://news.ycombinator.com/item?id=48431591</a></p>
]]></description><pubDate>Sun, 07 Jun 2026 03:56:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48431621</link><dc:creator>rramadass</dc:creator><comments>https://news.ycombinator.com/item?id=48431621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48431621</guid></item></channel></rss>