<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: kazinator</title><link>https://news.ycombinator.com/user?id=kazinator</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 17:47:04 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=kazinator" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by kazinator in "An Ohio Valley 100k-watt FM signal is severed in broad daylight"]]></title><description><![CDATA[
<p>Kudos to Kirtner and Adkins for retaining their counterpoise through this enraging incident.</p>
]]></description><pubDate>Sat, 13 Jun 2026 05:09:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48513481</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48513481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48513481</guid></item><item><title><![CDATA[New comment by kazinator in "I Won't Buy You a Coffee"]]></title><description><![CDATA[
<p>> <i>Look, I also think that creatives should get compensation in the same way as everyone else, but that doesnt mean that every instance of creativity should be a venue for profit.</i><p>Someone getting the odd coffee money is hardly operating a "venue for profit"; they are just trying to get by any way they can.</p>
]]></description><pubDate>Fri, 12 Jun 2026 18:56:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48508060</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48508060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48508060</guid></item><item><title><![CDATA[New comment by kazinator in "Zig Structs of Arrays (2024)"]]></title><description><![CDATA[
<p>Also, having them if you want is nice:<p><pre><code>  1> let ((x 3) (step 2) (width 5)) ((2 * step + x) mod width)
  2
</code></pre>
This is TXR Lisp with auto-infix and auto-compound enabled for the REPL:<p><pre><code>  2> *listener-auto-infix-p*
  t
  3> *listener-auto-compound-p*
  t
</code></pre>
So we can omit the outermost parentheses, and infix syntax is automatically recognized, freely intermixed with regular Lisp, as if the (ifx ...) macro were wrapped around the input.<p>I've come up with a very good way of handling infix in Lisp, and documented it in a decent amount of detail as well, not just as a manual for the user but anyone wanting to implement something similar.<p><a href="https://www.nongnu.org/txr/txr-manpage.html#N-BEB6083E" rel="nofollow">https://www.nongnu.org/txr/txr-manpage.html#N-BEB6083E</a></p>
]]></description><pubDate>Tue, 09 Jun 2026 21:30:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48468044</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48468044</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48468044</guid></item><item><title><![CDATA[New comment by kazinator in "Artificial intelligence is not conscious – Ted Chiang"]]></title><description><![CDATA[
<p>Natural intelligence is also not conscious sometimes. Not fully conscious during sleep, completely knocked out by anaesthetics during surgery and such.<p>Suppose your brain were somehow exploited for generating text, while you are under anesthesia. That would be definitely unconscious.<p>Though it's possible that parts of your brain are conscious, but have no access to express that because they don't control the body, nor directly receive any sensory information. I.e. that "you" that is unconscious when anaesthesized might not be the only consciousness in your brain, just the visible one.</p>
]]></description><pubDate>Thu, 04 Jun 2026 19:09:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48403217</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48403217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48403217</guid></item><item><title><![CDATA[New comment by kazinator in "CT scans of BYD car parts"]]></title><description><![CDATA[
<p>> <i>Fourteen pins in two parallel rows carry every signal this panel produces to the rest of the vehicle. Automotive connectors are among the most common failure points in modern cars: corrosion, fretting, and thermal cycling work on these joints over years of use. One connector failure on a module this integrated takes out mirrors, windows, locks, and child safety all at once.</i><p>Pack that shit full of silicone dielectric grease, check it every year or two, and it should be good for decades.</p>
]]></description><pubDate>Tue, 02 Jun 2026 23:39:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48377731</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48377731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48377731</guid></item><item><title><![CDATA[New comment by kazinator in "Stop Ruining It"]]></title><description><![CDATA[
<p>No; he clearly acknowledges that FLAC is lossless, so the audio is bit for bit identical to the original waveform.<p>The claim is that FLAC decoding digital hardware performs processing which causes noise ("computer hash") if it is not isolated from the audio paths. He gives an example of some hardware where isolation eliminates the problem, supposedly.<p>I'm skeptical of the claim. Not in the sense whatsoever that I suspect it being false (I don't), but in the sense that the same noisy hardware would produce some "computer hash" even if it were processing uncompressed waveform data. I don't know anything about FLAC, but cursory searches suggest that decoding it is very lightweight. Whether processing raw PCM samples, or decoding FLAC, the hardware would mostly be idle in between producing audio frames (unless it is an embedded processor that is very low in terms of computational power?)<p>Anyway, he's not simply an crackpot claiming that FLAC quality is inherently different from WAV.</p>
]]></description><pubDate>Tue, 02 Jun 2026 20:34:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48375897</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48375897</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48375897</guid></item><item><title><![CDATA[New comment by kazinator in "Using Git's rerere feature to escape recurring conflict hell"]]></title><description><![CDATA[
<p>The only situations in which I would use a git push --force would be in which I have carefully considered what state the remote is in, and what state I want it to be be in, and I know that it's not a moving target it any way in between checking its state and doing the force.<p>Already, "git push" stops from clobbering: it warns that your proposed push is non-fast-forward and that you need --force.<p>If you are using git as intended, that's all the warning you need.<p>I understand that there are dubious workflows out there where a repo has multiple downstream users and they are all doing "git push --force", without coordinating with each other. They need a double force to make sure that they are clobbering what they think they are clobbering.<p>If that's not you (which it arguably shouldn't be, and certainly isn't me), you don't need to know about force-with-lease.<p>The only thing I would ever do with --force-with-lease is go "oh", and immediately repeat the command with --force, knowing that I'm in a situation in which the check is not applicable.<p>Even if the force were erasing a new commit that came from another repo, I would know that. Like I pushed something into upstream U from repo B, but I'm fixing the situation out of repo A which hasn't picked up the change. Yes, I know what I'm doing, that's why I'm using --force, and don't require --simon-says-force. I want the chain of commits I now have in A to be exactly what is in U, as a rare exception to normal git use. After I'm done from A, I will switch back to B, do a "git fetch" and probably "git reset --hard origin/master" to make B look like U.</p>
]]></description><pubDate>Tue, 02 Jun 2026 19:23:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48374970</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48374970</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48374970</guid></item><item><title><![CDATA[New comment by kazinator in "Stop Ruining It"]]></title><description><![CDATA[
<p>Paul McGowan makes bullshit:<p><i>"Four models. One topology — designed by Darren Myers, engineered by Bob Stadtherr. Driven from a state-of-the-art active power supply that delivers performance benefits no traditional transformer-based passive supply can match. Class A bias of 50 watts means your music spends 99% of its time in the most linear region of the amplifier's operation"</i><p>Yikes; run the other way ...</p>
]]></description><pubDate>Tue, 02 Jun 2026 17:23:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48373223</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48373223</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48373223</guid></item><item><title><![CDATA[New comment by kazinator in "Using Git's rerere feature to escape recurring conflict hell"]]></title><description><![CDATA[
<p>You'd have to interrupt your own activity of synchronizing one of your downstream repos with your upstream, and force-publishing something back upstream, by switching to another one of the downstreams and publishing something into the upstream, which is then clobbered when you resume the original activity. Basically, split personality disorder where some of the personalities are not aware of the others.<p>All of this still overlooks the fact that the changes are not lost. Say someone (like one of the personalities in your head you don't know about) publishes a change which you unknowingly clobber with a "git push --force".  That someone will notice when they fetch the repo: it has diverged from their clone and when they look at the history of master vs origin/master, they will see that their commit which they are sure they pushed does not appear in origin/master.<p>If you have multiple downstream checkouts and manage to clobber something with force pushes, you can recover. Then have a word with yourself and work smarter going forward.</p>
]]></description><pubDate>Tue, 02 Jun 2026 07:47:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=48367227</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48367227</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48367227</guid></item><item><title><![CDATA[New comment by kazinator in "Using Git's rerere feature to escape recurring conflict hell"]]></title><description><![CDATA[
<p>I don't see how you could be wrong in knowing whether you're the only user with push access to the remote repo, or there are others.</p>
]]></description><pubDate>Tue, 02 Jun 2026 00:03:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48364164</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48364164</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48364164</guid></item><item><title><![CDATA[New comment by kazinator in "Should you normalize RGB values by 255 or 256?"]]></title><description><![CDATA[
<p>They are not half sized at the edges, unless negative black bothers you.</p>
]]></description><pubDate>Mon, 01 Jun 2026 23:27:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48363920</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48363920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48363920</guid></item><item><title><![CDATA[New comment by kazinator in "Should you normalize RGB values by 255 or 256?"]]></title><description><![CDATA[
<p>No, the "alternative" approach looks strange in the 7 bit example.<p>1.0 lies on the right side of the bin 7.  But 0.0 lies on the left of bin 0.<p>The standard approach assumes that we have centered samples: that zero is dead black, plus (and minus!) some uncertainty and so is bin 7.<p>If the sampling of the intensity is distortion-free (no clipping took place due to overexposure) then bin 7 represents a range of possible values centered around 1.0.<p>It is not a half-sized interval.<p>> <i>This means that when converting floating-point values in the 
[0,1]  range back to integers, the extreme bins have effectively half the width of other bins.</i><p>Under any interpretation whatsoever of the image samples, there is latitude for interpreting the maximum value 255 as being distortion: clipping from an arbitrarily higher value. Shifting things by 0.5 doesn't fix this issue of not knowing whether 255 means that an intensity close to 1.0 is being represented (no distortion), or an outlier intensity of 37.49 (severely clamped). That could go the other way too.<p>In other words, there is a possible bias in the extreme bin. The signal could be limited such that the bin's full sampling range is not in effect, or the signal could be overwhelming, so that values far outside of the range are clipped and included.<p>The only way around this is to make the highest value a canary which represents "clipped value". That is to say, 255 means "clipped datum", so that only 254 and below is sampling of unclipped signal. Machine-generated image (e.g. 3D rendering) then avoid the 255 value, and camera sensors are calibrated so that it doesn't occur when technical images are being shot.</p>
]]></description><pubDate>Mon, 01 Jun 2026 23:26:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48363918</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48363918</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48363918</guid></item><item><title><![CDATA[New comment by kazinator in "My 15-year-old relative was killed for refusing to marry her cousin"]]></title><description><![CDATA[
<p>Oh, especially now in British Columbia with "no fault insurance". At-fault drivers cannot be sued by victims, unless they are convicted of a crime in connection with the incident.<p>If you can make the vehicular homicide look like an accident, you are scot-free, except for increased insurance premiums. No criminal charges, and no civil case to face.</p>
]]></description><pubDate>Mon, 01 Jun 2026 22:47:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48363613</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48363613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48363613</guid></item><item><title><![CDATA[New comment by kazinator in "My 15-year-old relative was killed for refusing to marry her cousin"]]></title><description><![CDATA[
<p>1944 is the year they hanged George Stinney in South Carolina, a 14 year old black boy falsely convicted of murder, using about zero evidence.<p><a href="https://en.wikipedia.org/wiki/George_Stinney" rel="nofollow">https://en.wikipedia.org/wiki/George_Stinney</a></p>
]]></description><pubDate>Mon, 01 Jun 2026 21:25:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48362864</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48362864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48362864</guid></item><item><title><![CDATA[New comment by kazinator in "My 15-year-old relative was killed for refusing to marry her cousin"]]></title><description><![CDATA[
<p>Doesn't work that way in Canada. In 2010, a 37-year-old male got 6 years for sucker-punching a 62-year-old male who made advances toward him in bar in the Vancouver west end (lotsa gays there). The 62-year-old fell, hit his head, and died as a result.<p><a href="https://www.cbc.ca/news/canada/british-columbia/gay-basher-gets-6-years-for-sucker-punch-1.893544" rel="nofollow">https://www.cbc.ca/news/canada/british-columbia/gay-basher-g...</a><p>6 years is not a lot, but it's the same length of sentence handed around the same time to a random murderer who killed a welder from Thailand.<p><a href="https://www.cbc.ca/news/canada/edmonton/killer-of-thai-welder-gets-6-years-1.1064550" rel="nofollow">https://www.cbc.ca/news/canada/edmonton/killer-of-thai-welde...</a><p>From these we know two things: a human life is not worth a fuck in Canada, but at least gay and non-gay is about the same.</p>
]]></description><pubDate>Mon, 01 Jun 2026 21:15:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48362742</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48362742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48362742</guid></item><item><title><![CDATA[New comment by kazinator in "My 15-year-old relative was killed for refusing to marry her cousin"]]></title><description><![CDATA[
<p>Well, we know one thing from this story: the Gulf War didn't fucking work.<p>But, oh, bombs, drones and air strikes will yield much better long-term results in Iran.</p>
]]></description><pubDate>Mon, 01 Jun 2026 21:10:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48362687</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48362687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48362687</guid></item><item><title><![CDATA[New comment by kazinator in "Using Git's rerere feature to escape recurring conflict hell"]]></title><description><![CDATA[
<p>Yes; #ifdef and #endif is basically branching, but it's in one branch of the CM system.<p>The benefit that everything is integrated, so there are no games with having to cherry pick things this way and that and losing fixes.<p>The apparent downside is that there is no isolation. Inside some of those #ifdefs is code that you are not building. But changes you are making can break that code for someone else.<p>While this may seem risky, it's actually better. Breaking something now is better than someone cherry picking your fix 8 months later into their branch and then dealing with the breakage.<p>Fixes to common code never get left behind; everyone working off the trunk instantly gets them.<p>The #ifdefs are immediately and constantly visible, telling you where the code is that is or is not part of what you are doing, and reminding you of its existence. They greatly discourage refactoring parts that you cannot test.<p>There is pressure to keep those #ifdefs clean, whereas people go hog wild when they have their own branch, thinking they can rewrite whatever they want to suit what they are doing.</p>
]]></description><pubDate>Mon, 01 Jun 2026 21:01:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48362585</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48362585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48362585</guid></item><item><title><![CDATA[New comment by kazinator in "Cessation of public development of Kefir C compiler"]]></title><description><![CDATA[
<p>I'm finding it hard to be motivated to continue on language dev work. I feel it may also have to do with AI. Not so much the predatory aspect of it, like this author, but something else: shall we say, certain revelations about the nature of the target audience.</p>
]]></description><pubDate>Mon, 01 Jun 2026 18:09:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48360515</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48360515</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48360515</guid></item><item><title><![CDATA[New comment by kazinator in "C array types are weird"]]></title><description><![CDATA[
<p>In assembly languages, storage defined with a name turns into a pointer; like when you write some "load reg, name", instruction referencing that name, you are loading a pointer. The pointer is not stored anywhere; it turns into an immediate operand right in the instruction which is backpatched when the object file is linked.<p>The predecessor dialects of C were being silly to actually have a pointer word inside the declared array object; C kind of returned to the normal "assembly-like state of things" by treating a region of storage declared as an array as a base pointer, without that pointer being stored alongside the array.</p>
]]></description><pubDate>Mon, 01 Jun 2026 18:03:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48360440</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48360440</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48360440</guid></item><item><title><![CDATA[New comment by kazinator in "C array types are weird"]]></title><description><![CDATA[
<p>BTW, in C23, int f(); is now a prototype meaning the same thing as void.</p>
]]></description><pubDate>Mon, 01 Jun 2026 17:59:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48360372</link><dc:creator>kazinator</dc:creator><comments>https://news.ycombinator.com/item?id=48360372</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48360372</guid></item></channel></rss>