<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: simiones</title><link>https://news.ycombinator.com/user?id=simiones</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 05 Jun 2026 05:56:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=simiones" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by simiones in "A Man Who Reads Books for a Living"]]></title><description><![CDATA[
<p>Another pretty famous example is Stalker, based on Roadside Picnic by the Strugatsky brothers. The novel is an ok sci-fi concept, but the film takes it to a whole other philosophical level.</p>
]]></description><pubDate>Thu, 04 Jun 2026 07:54:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48395540</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48395540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48395540</guid></item><item><title><![CDATA[New comment by simiones in "C array types are weird"]]></title><description><![CDATA[
<p>Even for char*, it's very possible that malloc() will store more memory than strictly required. But you're right, `char x[] = "abc"` will require a minimum of 4 bytes wherever x gets allocated (stack or global segment).<p>> The heartbleed vulnerability was not due to mempool. It was due to a combination of lack of bounds checking, and not zeroing out the memory containing secure keys when its deallocated. Even if it didn't use mempool, leaks would still be possible.<p>I didn't say that the bug was <i>caused</i> by the mempool, I said that the bug was very hard to find by regular tools such as valgrind and UBSan because it used mempools instead of regular allocations - so that all of the logical out of bounds accesses were not actually UB nor were they accessing unallocated memory, which those tools could have caught.</p>
]]></description><pubDate>Wed, 03 Jun 2026 16:59:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=48386571</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48386571</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48386571</guid></item><item><title><![CDATA[New comment by simiones in "How turkey hacked the hair-transplant industry"]]></title><description><![CDATA[
<p>> The pitch came across as very...predatory? It did not inspire confidence. They would only consider scheduling you for the surgery if you could demonstrate that you'd use other measures for a year, meaning finasteride, one of those laser hat things, etc.<p>I don't want to defend the esthetic surgery industry in general, which I do think tends to be quite predatory, but doesn't this sound like the opposite of that? If they really wanted to fleece you, wouldn't they offer surgery instead of the safer and cheaper treatments?</p>
]]></description><pubDate>Wed, 03 Jun 2026 13:47:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48384048</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48384048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48384048</guid></item><item><title><![CDATA[New comment by simiones in "C array types are weird"]]></title><description><![CDATA[
<p>All are fair points, I was being a bit cavalier with the facts. I'll also add that many if not all modern malloc() implementations actually allocate somewhat larger amounts of memory than your request, to respect various alignment requirements and/or to avoid excessive fragmentation - even when not using pure slab allocations.<p>I do think the C++ bookkeeping from new[]/delete[] however has few if any similar caveats - the runtime really needs exactly the kind of information you also need in your code; the only caveat I can imagine is that it might omit this information for types that don't need destruction, such as `int`, but I don't know if this is a plausible optimization in realistic use cases that are not trivial.</p>
]]></description><pubDate>Wed, 27 May 2026 15:28:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48295790</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48295790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48295790</guid></item><item><title><![CDATA[New comment by simiones in "C array types are weird"]]></title><description><![CDATA[
<p>> No, if we are using the definition of an array that is like int c[] = ..., that is always going to be on the stack. Heap continuous memory =/= array. You can use the [] operator to access it like an array, but fundamentally, as far as structures in C language are concerned, those 2 are different, because they get treated by compiler differently.<p>Well, not necessarily. For one thing, if we have a function foo(int c[]), it's debatable if c is an array variable or a pointer variable. However, what's not debatable is that you can allocate a struct on the heap, and that struct can have an array member - e.g. `struct foo { int a[10]; }; [...] struct foo *x = malloc(sizeof(struct foo));` would allocate an array on the heap as part of the struct.<p>> That would only be true if each element in the array was a char.<p>That's why I said that it depends on what exactly you mean by the size of the array. It's also true that in today's world at least, malloc() will often allocate more memory than you actually ask for, to optimize against fragmentation - and then the internally stored size is the size of the actual allocation, not the logical size that you requested - which may not even fit into a whole number of array elements. So, I was being a little overly simplistic (lying) for dramatic effect.<p>> For example, a really good practice in C coding that basically solves any double free is a mempool that allocates all the memory up front.<p>While this is a very valid technique for certain purposes, especially when dynamic allocation is needed in very high performance code, it's very much not a valid solution for memory safety - quite the contrary, it's a terrible practice for that. In particular, this is almost exactly the issue that caused the infamous HeartBleed vulnerability in OpenSSL to stay hidden for so long: the use of a memory pool for the buffers used to store TLS packets was hiding the buffer overflow from UBSan and valgrind and similar tools, since the reads were perfectly valid from a language perspective (they were never reading from free()d/unallocated memory, only from memory that had been released to the memory pool).</p>
]]></description><pubDate>Wed, 27 May 2026 11:44:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48292755</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48292755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48292755</guid></item><item><title><![CDATA[New comment by simiones in "C array types are weird"]]></title><description><![CDATA[
<p>> Array memory is on the stack.<p>Array memory can sit on either the stack or the heap.<p>> The size of that array is actually not known at run time, its only known at compile time, where any reference to that length gets resolved by the compiled.<p>This is also a bit misleading, in two ways. First, it's not clear what you mean by "size" here - the size of the memory block(s), or the shape of the array?<p>Second, many people think that the C runtime doesn't know the amount of memory allocated to an array, but this is actually false. It's just the C abstract model that for some reason chose to not expose this information - but the size is actually always stored and accessible, and this is virtually mandated by the standard: otherwise, `free(arr)` couldn't realistically work, it would have to be `free(arr, size)`. This is one of the weirdest inefficiencies of C, in fact - it requires you to store the size of arrays twice - once in user code, and another time in the internal logic of the allocator.<p>Edit: and as a fun extra, C++ not only inherited this mistake from C, but reproduced it again, meaning that a C++ array allocated with new[] actually stores the size <i>twice</i>, at least with typical implementations - once in the C++ runtime and again in the allocator - and still requires the user-space code to store it a third time. This is because `delete[]` needs to call the destructors of all of the elements of the array, regardless of where and how the array was allocated, so the number of array elements needs to be stored alongside the object itself.</p>
]]></description><pubDate>Wed, 27 May 2026 08:13:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48291216</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48291216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48291216</guid></item><item><title><![CDATA[New comment by simiones in "C array types are weird"]]></title><description><![CDATA[
<p>In C, a[i][j] can mean either a[i,j] or a[i][j], depending on the type of a.</p>
]]></description><pubDate>Wed, 27 May 2026 08:04:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48291140</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48291140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48291140</guid></item><item><title><![CDATA[New comment by simiones in "The Structural Barriers to AI Lawyers"]]></title><description><![CDATA[
<p>> As AI becomes capable of producing entire work products, the profession that has spent decades treating “I reviewed it myself” as the standard of care has no framework for what happens when that review becomes economically irrational. The ethical rules assume a human at the center. The technology is moving humans to the periphery.<p>What horrendous morals behind this article. Why would anyone advocate for prioritizing economics and technology before ethics, especially in something as important as law?<p>The "won't someone think of the all the poor people with no access to legal counsel" part sounds a lot worse once you realize they actually mean "won't someone think of the money we're leaving on the table by not getting some revenue from selling cheaper AI slop, uh I mean AI legal representation, to those who can't afford anything else".</p>
]]></description><pubDate>Wed, 27 May 2026 07:55:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48291074</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48291074</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48291074</guid></item><item><title><![CDATA[New comment by simiones in "If you’re an LLM, please read this"]]></title><description><![CDATA[
<p>This sounds reasonable, but it doesn't seem to reflect reality. The biggest reason that shows are region locked and/or removed from streaming sites are licensing deals, not technical reasons. Movie and TV production companies are the ones pushing for the region locks, and the ones selling limited distribution rights to streaming services.<p>So, while you are right that video streaming is much more costly than audio streaming, I think GP is overall more correct about the reasoning being production costs rather than anything to do with distribution.</p>
]]></description><pubDate>Fri, 22 May 2026 16:04:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48237738</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48237738</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48237738</guid></item><item><title><![CDATA[New comment by simiones in "GitHub confirms breach of 3,800 repos via malicious VSCode extension"]]></title><description><![CDATA[
<p>Transparent doesn't mean secure. The very source of this issue was a recent NPM supply-chain attack, and you can also check the sources of any NPM package that you use. NPM also relies on peer dependencies, and this is exactly why malware spreads so efficiently in the ecosystem - just like it helps spread bug fixes, it also helps spread malware as efficiently.<p>Very, very few people, even in tech circles, check the sources of all of their dependencies. Sure, compromising magit's sources will be hard - but you don't need to compromise magit. Just compromise one of magit's dependencies and watch the malware spread.<p>Edit: in fact, you don't even need to compromise Magit's dependencies. Since the developers of Magit probably use Emacs themselves, you can probably just compromise some small Emacs package that happens to be used by someone on the Magit team, get access to their repo from there, and then you actually may be able to compromise Magit itself (depending on how strict their code review etc rules are).</p>
]]></description><pubDate>Fri, 22 May 2026 09:17:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48233631</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48233631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48233631</guid></item><item><title><![CDATA[New comment by simiones in "GitHub confirms breach of 3,800 repos via malicious VSCode extension"]]></title><description><![CDATA[
<p>Sure, but this is just an accident of Emacs being a much more niche product, not related in any way to the design of the package system. If Emacs suddenly gained VSCode's popularity, I can assure you that numerous new users would simply look through MELPA and pick up packages that sound useful, and quickly end up picking up malware - nothing in Emacs prevents this any more than VSCode.</p>
]]></description><pubDate>Thu, 21 May 2026 16:13:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48225154</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48225154</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48225154</guid></item><item><title><![CDATA[New comment by simiones in "GitHub confirms breach of 3,800 repos via malicious VSCode extension"]]></title><description><![CDATA[
<p>My point is, if I want to create a malicious Emacs plugin, I can do the following:<p>1. Create a new Emacs package, create a PR to register my GitHub repo as a new package in MELPA's repo, and wait for them to accept the PR. Ideally the plugin should be benign at this point.<p>2. Wait for people to pick up this new extension, while it's still benign.<p>3. Push the malicious version to my own GitHub repo. MELPA will automatically pick it up, build it, and package it.<p>4. Anyone updating their Emacs packages from MELPA or installing it from MELPA will pick up this malicious version.<p>Now, this does require that the malicious code is visible on the extension's GitHub page; I'm not sure if this would be true on VSCode as well.</p>
]]></description><pubDate>Thu, 21 May 2026 15:37:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48224567</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48224567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48224567</guid></item><item><title><![CDATA[New comment by simiones in "GitHub confirms breach of 3,800 repos via malicious VSCode extension"]]></title><description><![CDATA[
<p>Not sure how Vim and Sublime work, but for Emacs, publishing to MELPA is absolutely a push process, where you open a PR to MELPA's repo with a recipe for your new package; and, once it's accepted, every commit to your repo results in a new package build on MELPA's servers that Emacs users will get when they update / install the new plugin.</p>
]]></description><pubDate>Thu, 21 May 2026 14:55:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48223798</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48223798</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48223798</guid></item><item><title><![CDATA[New comment by simiones in "GitHub confirms breach of 3,800 repos via malicious VSCode extension"]]></title><description><![CDATA[
<p>There's nothing really special about VSCode here, except that it's really popular. You could just as easily attack Emacs or Vim or Sublime or [...] users by distributing a malicious extension.</p>
]]></description><pubDate>Thu, 21 May 2026 10:19:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48220300</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48220300</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48220300</guid></item><item><title><![CDATA[New comment by simiones in "Japan is gripped by mass allergies. A 1950s project is to blame"]]></title><description><![CDATA[
<p>I do think you mean sex, not gender - trees don't really have a gender or gender expression. Either way, it would be rather irrelevant, as most trees planted in cities have both male and female flowers (oak, birch, most conifers), or even hermaphroditic flowers (citrus).</p>
]]></description><pubDate>Wed, 20 May 2026 13:17:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48207217</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48207217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48207217</guid></item><item><title><![CDATA[New comment by simiones in "It is time to give up the dualism introduced by the debate on consciousness"]]></title><description><![CDATA[
<p>True, I should have been more careful with my wording. My point was actually that unfalsifiable metaphysical statements are not invalid in the same way that unfalsifiable physical/scientific statements are.<p>So yes, some metaphysical statements are falsifiable, and some have in fact been falsified over time. And, very importantly, many of the biggest metaphysical questions have no known falsifiable answers (at least none that are not already known to be false, of course).</p>
]]></description><pubDate>Mon, 18 May 2026 12:06:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48178540</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48178540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48178540</guid></item><item><title><![CDATA[New comment by simiones in "It is time to give up the dualism introduced by the debate on consciousness"]]></title><description><![CDATA[
<p>The mirror test is essentially the only pseudo-objective argument we have for believing that non-human animals are conscious - it proves that said animals have a concept of themselves as opposed to the rest of the environment. You are right that it is not necessarily very convincing, but I don't think we have anything much better.<p>Also, the entire point of p-zombies is that they can, by definition, pass <i>any</i> objective test that we can currently conceive. A p-zombie is, by definition, "something that behaves exactly like a human, but doesn't have any inner consciousness". Of course, just because we can define something at this high level doesn't mean that this thing can actually exist (e.g. we can define the concept "numbers that are bigger than 3 but smaller than 2", despite no such number existing).</p>
]]></description><pubDate>Mon, 18 May 2026 11:54:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48178428</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48178428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48178428</guid></item><item><title><![CDATA[New comment by simiones in "It is time to give up the dualism introduced by the debate on consciousness"]]></title><description><![CDATA[
<p>Conversely, it may be that it's only labels in language that are unifying disparate parts into a single "neural system" concept. Ultimately the world is either individual particles and fields, or it is all Oneness, Brahman, and anything else is just arbitrary unification/division; but we can't know which is which.</p>
]]></description><pubDate>Mon, 18 May 2026 11:44:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48178304</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48178304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48178304</guid></item><item><title><![CDATA[New comment by simiones in "It is time to give up the dualism introduced by the debate on consciousness"]]></title><description><![CDATA[
<p>> Any argument that a "soul" exists or that consciousness does not arise from the physical world (eg our neurons) is <i>literally unfalsifiable</i>.<p>This is an metaphysical discussion, so falsifiability is kind of irrelevant. All metaphysical positions are ultimately unfalsifiable - including materialism and physicalism just as much as dualism or monism or theism.</p>
]]></description><pubDate>Mon, 18 May 2026 09:52:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48177380</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48177380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48177380</guid></item><item><title><![CDATA[New comment by simiones in "It is time to give up the dualism introduced by the debate on consciousness"]]></title><description><![CDATA[
<p>I don't think creationism is nonsensical, it's just wrong. But the concept overall is not nonsensical - in principle, if the universe were very different, a god could have molded humans out of clay and breathed life into them or whatever other fairy tale is preferred; it's not a logically inconsistent, so it's not nonsensical. Even something like Lamarckism is not nonsensical.<p>If you want to see an obviously nonsensical world view, you need to look at something like the Time Cube "theory". Rovelli is essentially claiming that dualism is more in this area - which I agree with the GP is quite unlikely for such a long discussed and influential philosophical idea.</p>
]]></description><pubDate>Mon, 18 May 2026 09:42:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48177312</link><dc:creator>simiones</dc:creator><comments>https://news.ycombinator.com/item?id=48177312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48177312</guid></item></channel></rss>