<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: quietbritishjim</title><link>https://news.ycombinator.com/user?id=quietbritishjim</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 07 Aug 2026 06:00:09 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=quietbritishjim" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by quietbritishjim in "Scaling NumPy on Free-Threaded Python"]]></title><description><![CDATA[
<p>Yes, numpy does release the GIL. But the code in question has multiple numpy calls, called in a loop:<p><pre><code>   sum((np.sin(np.cos(np.sin(np.cos(x + i)))).sum()
        for i in range(n_loop)))
</code></pre>
This is not like:<p><pre><code>   release GIL
      # i = 0
      compute y = x + 0     (numpy broadcasting sum)
      compute z = np.cos(y) (elementwise)
      ...
      add to running total
      # i = 1
      compute y = x + 1
      ...
   reacquire GIL
</code></pre>
Instead it is:<p><pre><code>   # i = 0
   look up "+" operation
   release GIL
      compute y = x + 0
   reacquire GIL
   look up "np.cos" operation
   release GIL
      compute z = np.cos(y)
   reacquire GIL
   ...
   # i = 1
   look up "+" operation
   release GIL
      compute y = x + 1
   reacquire GIL
   ...

</code></pre>
So there was work being protected by the GIL, that suddenly is exposed to lock contention with free threading.<p>Of course, without free threading, the lock contention would be way worse, but this time the GIL is the lock being contended. Numpy has to reacquire the GIL whenever it returns from a function call, and this expression is made up of multiple calls. To multithread effectively with numpy (in non-freethreading) you'd normally aim to vectorise into a small number of calls in big arrays.<p>The composition of +, then np.cos, etc. is not too bad if these are big arrays, but the problem is the pure Python iteration over the range which is, presumably, quite large. You could vectorise over the range:<p><pre><code>   x[..., None] + np.arange(n_loop, dtype=np.float64)

</code></pre>
but this is the start of a new conversation.</p>
]]></description><pubDate>Thu, 06 Aug 2026 09:35:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49194499</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49194499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49194499</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Changes at Google DeepMind: Demis Hassabis from CEO to Chair, Jeff Dean departs"]]></title><description><![CDATA[
<p>People 100% are asking ChatGPT for all those things.</p>
]]></description><pubDate>Wed, 05 Aug 2026 20:37:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49188676</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49188676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49188676</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Civilian plane crash in New Mexico tied to military GPS blocking"]]></title><description><![CDATA[
<p>It's very relevant because it otherwise would have been plausible that they were blaming the pilot to unfairly divert blame away from an entity they had a bias for.</p>
]]></description><pubDate>Wed, 05 Aug 2026 11:48:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=49181504</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49181504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49181504</guid></item><item><title><![CDATA[New comment by quietbritishjim in "That time when I failed the Microsoft interview"]]></title><description><![CDATA[
<p>Oh OK thanks, I didn't realise. I just had some fun looking at bowling ball cross sections.</p>
]]></description><pubDate>Tue, 04 Aug 2026 15:14:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49170131</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49170131</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49170131</guid></item><item><title><![CDATA[New comment by quietbritishjim in "That time when I failed the Microsoft interview"]]></title><description><![CDATA[
<p>I think you're counting the overall sphere as the volume, but water would leak in through the finger holes so only their actual material counts. I suspect different weight bowling balls generally have different volumes.</p>
]]></description><pubDate>Tue, 04 Aug 2026 13:26:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=49168673</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49168673</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49168673</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Prevent cognitive debt by manually retyping LLM-generated code"]]></title><description><![CDATA[
<p>Fair enough. We all learn differently. For me, having printed lecture notes meant I could listen (imperfectly!) in lectures rather than focusing on copying. It was a revelation after years of exhausting lectures doing nothing but writing.<p>I now realise that sounds a bit like a contradiction. I said I could copy on autopilot but also I had to focus on it. I suppose it was more like the second one: I was so focused on copying verbatim (as furiously as I could as there was barely time to do it before it was rubbed out!) that I didn't have a chance to think about the content.<p>> > Or summarising notes in your words.<p>> Which is what you do, if you take down notes.<p>I certainly disagree with this. No one I knew was rephrasing the lecturer's notes in their own terms. There was no time for that. That is something you'd have to do in your own time afterwards, at a <i>much</i> slower pace.<p>> > but there were no typed notes to start with so it was just out of necessity<p>> The necessity was created by the teachers in order to get the students to learn.<p>I assure you, the main reason those maths lecturers didn't spend countless hours typing up their handwritten notes in LaTeX was not the best interests of the students!</p>
]]></description><pubDate>Tue, 04 Aug 2026 12:46:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=49168062</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49168062</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49168062</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Prevent cognitive debt by manually retyping LLM-generated code"]]></title><description><![CDATA[
<p>Taking down the lesson/lecture does relatively little, you can do it on autopilot. If anything, it distracts from listening to the content. When I took computer science at university (mid naughties) we were given digital lecture notes anyway. (Mathematics lectures did have to be written down but there were no typed notes to start with so it was just out of necessity.) It's the exercises afterwards that are useful for learning. Or summarising notes in your words.</p>
]]></description><pubDate>Mon, 03 Aug 2026 11:51:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49154531</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49154531</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49154531</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Karpathy’s Pelican"]]></title><description><![CDATA[
<p>If you're at (-2, 3, 5), pointing in the (2, 1, -1) direction (as a direction vector), then which is in front of the other from your point of view: the object at (4, 5, -8) or the one at (6, 4, 3)? (or neither)<p>You can't just defer this decision to the three.js program because you need to understand this sort of relationship yourself if you're going to suitably place objects (and your own view) in a three.js scene in the first place. Building a complex scene involves making hundreds, or more, of decisions about where to place coordinates in 3d space.<p>This example is underspecified (e.g. what are the shapes and sizes of the objects and what is the angular width of your view) but it illustrates the problem. Even with a good intuitive understanding of 3d space, we would struggle with this. LLMs are not calculators, so it's surprising if they manage it.</p>
]]></description><pubDate>Mon, 03 Aug 2026 10:19:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=49153742</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49153742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49153742</guid></item><item><title><![CDATA[New comment by quietbritishjim in "AI Mania: From Tulips to Tokens"]]></title><description><![CDATA[
<p>I think their point is that is pretty cheap for such a useful service. The opposite of a bubble price.</p>
]]></description><pubDate>Sun, 02 Aug 2026 22:03:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=49148864</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49148864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49148864</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Increasing the lifespan of a bulb makes it worse in every other way"]]></title><description><![CDATA[
<p>Probably the down votes are from people who have no idea what you're going on about, or what it's got to do with an article entirely about the early history of incandescent bulbs.</p>
]]></description><pubDate>Sun, 02 Aug 2026 19:05:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49147324</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49147324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49147324</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Increasing the lifespan of a bulb makes it worse in every other way"]]></title><description><![CDATA[
<p>Are you taking about modern long life bulbs? This article is taking about design choices for original format bulbs over 100 years ago.</p>
]]></description><pubDate>Sat, 01 Aug 2026 15:40:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=49135370</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49135370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49135370</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Is AI reasoning right for the wrong reasons?"]]></title><description><![CDATA[
<p>> Imagine a calculator program that computes billions of two number multiplications accurately by looking up prior examples<p>This is a poor analogy because:<p>* Multiplying numbers has a single objective answer. Whether a code is good (sometimes even just whether it's correct) can be quite subjective.<p>* LLMs certainly do some level of composition between the data sources they were trained on i.e. they are more than just lookup tables.<p>* We have calculators that actually do multiply large numbers accurately. We don't have anything that automatically writes code that is definitely correct and "good".<p>To address only the last point: imagine you had a device that would quickly factor large numbers used in modern criticality, but occasionally got it wrong. You could waste a lot time debating whether it's a "calculator", but it's still certainly useful to have one.</p>
]]></description><pubDate>Sat, 01 Aug 2026 07:38:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49132060</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49132060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49132060</guid></item><item><title><![CDATA[New comment by quietbritishjim in "The session you cannot take with you"]]></title><description><![CDATA[
<p>This analogy doesn't make sense to me. Once I've had a conversation, it may be useful to refer back to it shortly afterwards, but typically the output is some code (or maybe a recipe or instructions for something or whatever). It's certainly important to me that I can use that code elsewhere. That's the thing that, to me, is analogous to being able to switch operating system and still access my files or use my favourite word processing program.<p>But being able to decode the blobs that subagents returned in a conversation I've already forgotten about? That doesn't affect my ability to switch at all! I can't even imagine what trivial detail of an operating system this is analogous to. Maybe an undo buffer of a document that gets cleared on exit anyway?<p>I can still pass all my code, and any associated documentation, to any other agent at any time. What am I missing?</p>
]]></description><pubDate>Fri, 31 Jul 2026 18:56:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49127230</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49127230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49127230</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Recursive Filters: SMA, EMA, Low‑Pass, and a Tiny Kalman"]]></title><description><![CDATA[
<p>Agreed - a Kalman filter is often just a EMA in disguise.<p>I remember using a Kalman filter many years ago and getting confused when a measurement was fairly far from the current estimate, and the uncertainty still went down. Surely the uncertainty should go <i>up</i> if a measurement shows that our previous estimate was unreliable? I spent a lot of time debugging my code before someone pointed out to me that the Kalman filter does not adjust its uncertainties (and therefore the effective value of alpha) at all based on the data.<p>But a Kalman filter does not converge to EMA if either:<p>* Measurements occur at irregular intervals<p>* Measurements can have different errors (which you can meaningfully estimate)<p>These are exactly the situations when it's worth using a Kalman filter instead.</p>
]]></description><pubDate>Thu, 30 Jul 2026 08:33:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49107383</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49107383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49107383</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Document-borne AI worms can self-propagate through Copilot for Word"]]></title><description><![CDATA[
<p>These are types of text that are, to some extent, effectively hidden. But I don't think that's what the article is talking about.<p>Word has a feature literally called "hidden text". Select some text, go to the font properties dialog, click "hidden" and OK, and watch the text disappear.<p>Edit: actually, this is white text on a white background as others have said, not true hidden text.</p>
]]></description><pubDate>Wed, 29 Jul 2026 12:56:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49096889</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49096889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49096889</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Document-borne AI worms can self-propagate through Copilot for Word"]]></title><description><![CDATA[
<p>Because, in the 1990s, you would print out your document before giving it to someone else to read. In those times, sometimes you'd want to include text in the document that shows while you're editing it (e.g. notes to yourself or draft text you might want to refer to later) but not when printed.<p>I believe you would see hidden text by default (but this was a long time ago and I may have misremembered) when in "normal mode" (later "draft mode" and now removed entirely), which was the default view and showed a long continuous stream of text without the computation expense of calculating page break locations. But when you switch to "print layout mode" (now the usual view unless you're in reading mode) it would be hidden, so you could see what the document would be like printed, unless you explicitly turned on the display of hidden text in that mode.</p>
]]></description><pubDate>Wed, 29 Jul 2026 12:27:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49096592</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49096592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49096592</guid></item><item><title><![CDATA[New comment by quietbritishjim in "I'm 38 and I Can't Support Myself Anymore"]]></title><description><![CDATA[
<p>I think I'd need quite a lot of evidence that families <i>weren't</i> the major unit of society. A hunter-gatherer tribe <i>is</i> an extended family, so that only proves the point. If there's more than about 30 people in one then surely family based factions will form within it to some extent.<p>Probably you're focusing too much on the parent comment's mention of nuclear family. Even that, despite only being named a few decades ago, is likely to exist to some extent. Even in some ancient tribe or village, most people would favour their spouse (or equivalent) or child over a cousin or niece/nephew if some dispute formed. That hardly seems controversial.</p>
]]></description><pubDate>Tue, 28 Jul 2026 13:08:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49083252</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49083252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49083252</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Self-contained highly-portable Python distributions"]]></title><description><![CDATA[
<p>They just unzip the Python executable and your source files to a temporary directory and run them from there (although they are a convenient way of doing that).<p>nuitka is a bit better (in the sense of not running executables from a temporary path) in that it really compiles your code into an executable in "standalone" mode.</p>
]]></description><pubDate>Tue, 28 Jul 2026 07:55:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49080748</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49080748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49080748</guid></item><item><title><![CDATA[New comment by quietbritishjim in "Businesses with ugly AI menu redesigns"]]></title><description><![CDATA[
<p>Indeed. It seems the parent comment has accidentally made exactly the opposite point than they intended.<p>The difference between scrawl on a chalk board and a glossy menu with photos is not really the visual effect, it's the amount of effort and the virtue signalling - "my food is so amazing I don't need to make more effort than this".<p>But that applies to AI menus too. "Why are these horrible AI slop photos on your menu?" "Because I'm too focused on food to hand create a perfect American Psycho minimalist menu"</p>
]]></description><pubDate>Thu, 23 Jul 2026 09:20:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49018882</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=49018882</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49018882</guid></item><item><title><![CDATA[New comment by quietbritishjim in "How to pack ternary numbers in 8-bit bytes"]]></title><description><![CDATA[
<p>No.<p>The article suggests using 8 bits (=256 values) to pack 5 trits (=243 values).<p>If you use 16 bits (=65536 values) then you can pack at most 10 whole trits (=59049 values). 11 trits (=177147 values) won't fit.<p>The current top comment, by JoshTriplett, analyses what you would need to beat the efficiency.</p>
]]></description><pubDate>Tue, 21 Jul 2026 12:18:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48991304</link><dc:creator>quietbritishjim</dc:creator><comments>https://news.ycombinator.com/item?id=48991304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48991304</guid></item></channel></rss>