<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: cb321</title><link>https://news.ycombinator.com/user?id=cb321</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Jul 2026 20:19:33 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=cb321" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by cb321 in "Decoding the obfuscated bash script on a Uniqlo t-shirt"]]></title><description><![CDATA[
<p>That Matrix visual was actually specifically mentioned as an inspiration in the video by the designer being linked to/discussed elsethread (e.g. <a href="https://news.ycombinator.com/item?id=48830326">https://news.ycombinator.com/item?id=48830326</a> )</p>
]]></description><pubDate>Wed, 08 Jul 2026 13:59:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48832079</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48832079</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48832079</guid></item><item><title><![CDATA[New comment by cb321 in "Decoding the obfuscated bash script on a Uniqlo t-shirt"]]></title><description><![CDATA[
<p>FWIW, his screens looked a lot like OSX to me (which tracks with graphic design users in my experience).<p>Anyway, he seems like a very nice fellow and I wish him and almost all T-shirt designers well.  That bash script just gave me a lot of pause.  (And even that seems possibly downstream of him being nice and doing it himself to spare his team from what he called a "FrankenProject".)</p>
]]></description><pubDate>Wed, 08 Jul 2026 13:48:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48831951</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48831951</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48831951</guid></item><item><title><![CDATA[New comment by cb321 in "Decoding the obfuscated bash script on a Uniqlo t-shirt"]]></title><description><![CDATA[
<p>Yeah.  The Flask web-page prototype was indeed in Python.  (The prequel shirt was Go.)<p>{ Also, it was my own Py version which I mostly did in case anyone wanted to actually run the thing after such interest was expressed on this thread. :-) }<p>I already said regular devs and LLMs can both gen copy-pasta.  That said, being "mostly" a Python dev, asking some LLM to translate to bash for him seems even more likely to me.  Only he or those close to him knows for sure.  You & I cannot settle it here conclusively (as also said).<p>I also noted from the video that the ♥s (hearts) worked on whatever version of bash he tested with though it failed for me (which is why I wrote that Python).  And his terminal title bar is switching between `tput` and `bc` and such meaning that what he was demoing was not some Python script. ¯\_(ツ)_/¯<p>EDIT: Ah..another resolution of the hearts is to <i>not</i> run in an LC_ALL=C environment.  Oops!  `LC_ALL=en_US.UTF-8 bash ..` fixed it.  Oh well, I think the Python script is nicer in almost every way.  E.g., you could |head -n60 and send it to a line printer/dot matrix reminiscent of the 1980s computers he shows in the video, although your printer driver would have to strip the color escapes with a `sed` or maybe <a href="https://github.com/c-blake/bu/blob/main/noc.nim" rel="nofollow">https://github.com/c-blake/bu/blob/main/noc.nim</a>. ;-)</p>
]]></description><pubDate>Wed, 08 Jul 2026 13:37:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48831809</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48831809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48831809</guid></item><item><title><![CDATA[New comment by cb321 in "Decoding the obfuscated bash script on a Uniqlo t-shirt"]]></title><description><![CDATA[
<p>For anyone that cares, this is a slightly less stupid Python version:<p><pre><code>    #!/usr/bin/env python3
    from os   import environ; E = environ.get
    from math import sin
    from time import sleep
    text = "♥PEACE♥FOR♥ALL" # The text to sine-scroll animate
    nText  = len(text)      # Number of utf8 chars
    freq   = 0.2            # Frequency scaling factor
    color0 = 12             # xt256 Color cube segment 12..<208
    color1 = 208; nColor = color1 - color0
    (w, h) = (int(E("COLUMNS", 80)), int(E("LINES", 24)))
    t = 0
    while True:
        x = (w/2) + (w/4)*sin(t*freq)           # x pos via sine value
        x = max(0, min(w - 1, int(x + 0.5)))    # bound to tty width
        color = color0 + ((nColor*t)//h)%nColor # cycle colors
        ch = text[t%nText]  # Get char & Use xterm-256 color escs
        print("%*s\033[38;5;%sm%s\033[m\n" % (x, "", color, ch))
        t += 1
        sleep(0.1)   # original used bc shell outs to rate-limit
</code></pre>
As mentioned in <a href="https://news.ycombinator.com/item?id=48830634">https://news.ycombinator.com/item?id=48830634</a> , the heart symbols did not otherwise even work for my bash and some have commented on liking the screen saver.</p>
]]></description><pubDate>Wed, 08 Jul 2026 11:45:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48830669</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48830669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48830669</guid></item><item><title><![CDATA[New comment by cb321 in "Decoding the obfuscated bash script on a Uniqlo t-shirt"]]></title><description><![CDATA[
<p>I watched that whole video link - thank you for that - and he doesn't really say. In fact, he spends much more time on the beige color harkening to computer case plastics of the 80s & 90s.<p>The AI not handling the output relates to the <i>final</i> base64 output on the T-shirt (which other comments in this thread mention manually keying in or TFA discusses in the context of OCR).  So, that is just not relevant to the question.<p>What made me start to wonder, personally, was that the output seems identical if you use "♥PEACE♥FOR♥ALL" instead of the version with internal repeats.  <i>IF</i> there is any point to that "manual expansion of the cycles", IMO that deserves a comment much more so than "# Calculate length of text; text_length=".<p>Also, that `echo -n ...` followed by `echo ""` instead of just plain `echo` in the first place seems like the kind of copy-pasta code LLMs generate.  Then again, regular devs also write pretty bad copy-pasta code.<p>There is also this the weirdly "broken down" calculation with 3 `bc` invocations not 1 as if it was translated from a language with more arithmetic/special function power than bash.<p>There is also the color scale stuff done in the loop instead of outside (except the one color=$(..)) which seems very unnatural and also very like machine translation.<p>Also, at least for me, on my bash-5.3.15(1), `char="${text:t % text_length:1}"` does not work to slice out the multi-byte UTF8 heart symbols, but it sure does look like the kind of thing an LLM would do translating from a python3 script (such as something like <a href="https://news.ycombinator.com/item?id=48830669">https://news.ycombinator.com/item?id=48830669</a>) into bash.<p>Another thing is, as others here have observed, there is nothing "gradual" about the xterm-256 color cube.  So, "gradient" is a misnomer and exactly the kind of weird things LLMs do when they cobble text together.<p>Finally, all the tput stuff the script does instead of just "print x spaces" really smells like a human description of the side scroll in the video game graphic he shows inspired him somehow LLM-corrupted/complexified into the vertical scroll terminals do.<p>None of this is <i>conclusive</i>, but the video mentions 2023..2025 as when he did it and given that he was a designer and his concerns more visual than code-oriented, I'd have to say I disagree with your sincere doubt and I do strongly suspect the decoded script was very likely LLM-circa2024-generated, possibly with light post-edits by hand.</p>
]]></description><pubDate>Wed, 08 Jul 2026 11:41:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48830634</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48830634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48830634</guid></item><item><title><![CDATA[New comment by cb321 in "GLM 5.2 and the coming AI margin collapse"]]></title><description><![CDATA[
<p>That is a good list.  While I'm sure <i>many</i> companies could be added, I only post to include DEC <a href="https://en.wikipedia.org/wiki/Digital_Equipment_Corporation" rel="nofollow">https://en.wikipedia.org/wiki/Digital_Equipment_Corporation</a> whose `vt50/vt100/vtXX` ideas may be with us, in software, for perpetuity unless something like Arcan (<a href="https://arcan-fe.com/" rel="nofollow">https://arcan-fe.com/</a>) ever takes off.</p>
]]></description><pubDate>Tue, 07 Jul 2026 10:59:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48816085</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48816085</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48816085</guid></item><item><title><![CDATA[New comment by cb321 in "Explanation of everything you can see in htop/top on Linux (2019)"]]></title><description><![CDATA[
<p>`procs display` (mentioned elsethread <a href="https://news.ycombinator.com/item?id=48788167">https://news.ycombinator.com/item?id=48788167</a> ) supports PSS via its %M format code.<p>One issue with that relative to RSS is permissions.  Historically, all procs could see the RSS used by procs of all other users (at least if they could see the PIDs at all).  So, RSS requires no special permissions, but the Linux kernel team decided PSS should not be as promiscuous for whatever reasons (I didn't do a deep dive).  So, I'm always having to do (the equivalent of) `sudo pu`.</p>
]]></description><pubDate>Sat, 04 Jul 2026 20:11:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48788547</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48788547</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48788547</guid></item><item><title><![CDATA[New comment by cb321 in "Explanation of everything you can see in htop/top on Linux (2019)"]]></title><description><![CDATA[
<p>A different usage paradigm from *top that I have come to like better is to do differential ps-like reports and system-wide (like vmstat) reports which leaves everything in your terminal scrollback buffer as in: <a href="https://github.com/c-blake/procs" rel="nofollow">https://github.com/c-blake/procs</a> { written in the uncommonly efficient, expressive Nim programming language }.</p>
]]></description><pubDate>Sat, 04 Jul 2026 19:27:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48788167</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48788167</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48788167</guid></item><item><title><![CDATA[New comment by cb321 in "The Garbage Collection Handbook: The Art of Automatic Memory Management (2nd Ed) (2023)"]]></title><description><![CDATA[
<p>I don't really disagree much with what you said. My favored PLang Nim (<a href="https://nim-lang.org/" rel="nofollow">https://nim-lang.org/</a> -- it has both `ref` and `ptr` styles of pointer, one auto-managed, one manually managed) even changed a while back it's `nim c --gc=x` command-line language to `nim c --mm=x`, and I was in favor of said change.<p>However, it does inspire me to write.. The kernel of all this terminology confusion is under-exposure of industrial programmers to not just academic terminology, but also the very design space you mention (which has always been nicely covered by Jones' outstanding book).  Just to take an example from the root of this thread:<p>>widespread common usage of the term “garbage collected programming language” which specifically contrasts manual languages like C++ or Rust against garbage collected ones<p>Boehm-Wiser conservative collection for <i>C</i>, among the most manual languages of all, pre-dates its very first ANSI 1989 standard.<p>This underexposure itself is downstream of the kinds of oversimplifications/lies of marketing and in this particular case came from Java.  The evolution I witnessed was roughly 1) linking Boehm with -lgc and deleting (or #define'ing away) all your `free()` calls is conservative - to be <i>precise</i> you need compiler aid and a lot of programmers are "not perfect==awful" personality types, 2) Sun Microsystems wants to leverage a lot of reliability issues with C code and become <i>The</i> Platform and spends <i>gobs</i> of money to win hearts & minds, partly succeeding, 3) part of its ad-warfare against the then WIntel hegemony and/or tutorials/introductory material for Junior Programmers (<i>often</i> the target of "be more reliable" material) plays fast & loose with GC terminology because marketing plays fast & loose structurally for fun but mostly profit, 4) because human language really does == language usage a la Quine, everyone in the industry re-defines what "GC" means to bind it to a programming language instead of to a specific run-time, 5) industry & academics use different language, confusion ensues and so here we are.<p>This is not even the 100th time that either explicit or implicit forces of marketing have achieved confusion analogously to this.  If you believe most people don't need much of what they spend on then confusion is arguably intrinsic to marketing of ideas/products.  The highly misleading but suggestive metaphorical language used all over "AI" in both research and in product-lines is a more current case of this, leading anyone who knows much to have to qualify "not AGI" or other such junk just to have a conversation.<p>So, what is my point?  Basically just that the larger problem here will persist as long as there is money to be made/attention to be garnered by sowing confusion/having people talk past each other/think some product is more than it really is.  I have no meta-strategy in my back pocket to block these successful confusions, but it does seem worth being aware of it.</p>
]]></description><pubDate>Fri, 26 Jun 2026 11:02:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48685162</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48685162</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48685162</guid></item><item><title><![CDATA[New comment by cb321 in "Nim Conf 2026 (Online, Sat June 20)"]]></title><description><![CDATA[
<p>For those new to the topic and less patient than "full conference" levels of attention, it doesn't cover things like UFCS/command-call, user-defined operators, or many other details, but for its incredibly short run-time, this video might give you a tiny taste of the flavor: <a href="https://www.youtube.com/watch?v=WHyOHQ_GkNo" rel="nofollow">https://www.youtube.com/watch?v=WHyOHQ_GkNo</a></p>
]]></description><pubDate>Thu, 18 Jun 2026 12:53:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48584559</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48584559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48584559</guid></item><item><title><![CDATA[New comment by cb321 in "Nim Conf 2026 (Online, Sat June 20)"]]></title><description><![CDATA[
<p>This may seem like a modern conflict, but what I like about your post is its more general human cognitive orientation.  Since to each new generation <i>everything</i> is new, people tend to forget that this kind of tension goes back to the dawn of programming with Fortran and Lisp, or even earlier if you count various notations for math.<p>FWIW, CPUs/hardware structurally do not have quite as much luxury for dynamism/monotyped things.  So, all this does connect with how tight/abstract a bridge to the hardware world one cares about (which just varies).  That naturally connects to performance, but that also becomes tricky once one moves to pragmatic problem decomposition over purity (e.g. <i>NOT</i> "<i>pure</i>" Python or "<i>pure</i>" Ruby).  In my experience, people tend to overvalue purity as much as they tend to over-simplify. :-)</p>
]]></description><pubDate>Thu, 18 Jun 2026 11:28:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48583777</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48583777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48583777</guid></item><item><title><![CDATA[New comment by cb321 in "Performance of Rust Language [pdf]"]]></title><description><![CDATA[
<p>You can see all the details at: <a href="https://github.com/mratsim/constantine" rel="nofollow">https://github.com/mratsim/constantine</a> , but to answer your "how" question briefly here, something Nim shares with most (all?) "systems programming languages" is "easy" integration with assembly languages -- whatever the backend for "most" compiled code is (whatever that "most" even is - weighted by any number of measures of static source size or dynamic instruction counts). Of course, hand-rolled assembly can cost you a lot in portability/effort to port to new platforms/etc.<p>The entire concept of the "performance of a PLang" in terms of the run-time of programs written "mostly in it" is rather seriously under-specified, TBH.  This is (or should be) uncontentious in spite of the slew of articles with titles like the one for this thread.</p>
]]></description><pubDate>Tue, 26 May 2026 15:31:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48281161</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48281161</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48281161</guid></item><item><title><![CDATA[New comment by cb321 in "Leaving the Physical World"]]></title><description><![CDATA[
<p>Ah.  Good searching!  So, maybe the 800,000 computers was "in DNS but un-pingable IP hosts" (dial-up was a big then then) or maybe included non-IP "networked" hosts or who knows..  Anyway, I agree that your finds make it more likely to be 1992/3 than 1994.  Thanks!</p>
]]></description><pubDate>Thu, 14 May 2026 15:43:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48137099</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48137099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48137099</guid></item><item><title><![CDATA[New comment by cb321 in "Leaving the Physical World"]]></title><description><![CDATA[
<p>I am unfamiliar with the history of the piece.  Many things are possible.  He may have "mostly wrote" it in 1992 and then "polished it" for a 1994 Oita conference, but was somewhat sloppy in internally updating everything date-dependent like the coup part.  People also can be very flowery/metaphorical about using the word "coup".  Not sure if they even have attendee/speaker lists online for those Oita conferences anymore, but that might also help if he wasn't at all of them.  Bitrot / entropy can corrupt the digital world as well as the physical, just with more checksums <i>if</i> the referents still exist. ;-)</p>
]]></description><pubDate>Thu, 14 May 2026 14:22:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48135855</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48135855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48135855</guid></item><item><title><![CDATA[New comment by cb321 in "Leaving the Physical World"]]></title><description><![CDATA[
<p>That's what I thought, too, but the top of the article says "For the Conference on HyperNetworking, Oita, Japan" which was in '94.  So, I thought maybe "last summer" was internally even off by a couple years?  I'm really not sure, but someone around these parts probably knows.  Worth mentioning that also in the early 90s people did refer to the Russian Federation as the Soviet Union sometimes as a shortening of "the former Soviet Union".<p>The estimate of "The Internet" connecting 800,000 computers is probably also pretty surgically date-identifying (at least to isolate 1992 to 1998 given how fast it was growing at the time, though estimation error might cause a <i>little</i> trouble!).  For example, <a href="https://web.mit.edu/people/mkgray/net/internet-growth-summary.html" rel="nofollow">https://web.mit.edu/people/mkgray/net/internet-growth-summar...</a> also suggests 1994 (although that estimate was 0.6 million) while 1992 would be more like 200,000 although as per my scare quotes (and that MIT link) "The Internet" was also a somewhat vague term at the time.  And by 1998 it was surely over 10 million which makes the @karel-3d quite likely incorrect, although who knows - maybe that's when the EFF first put it up on their web site?<p>EDIT: I mostly think it matters since observations that might have seemed quite prescient in 1992 (like also-Mormon Orson Scott Card's even more prescient ideas in 1985 <i>Ender's Game</i> with Locke & Demosthenes political chat personas based on 1980s BBS/UUCP network activity) were very much things everyone was saying by 1998.</p>
]]></description><pubDate>Thu, 14 May 2026 12:56:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48134730</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48134730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48134730</guid></item><item><title><![CDATA[New comment by cb321 in "Leaving the Physical World"]]></title><description><![CDATA[
<p>I <i>think</i> this was written in 1994 for this conference <a href="https://seclists.org/interesting-people/1994/Mar/64" rel="nofollow">https://seclists.org/interesting-people/1994/Mar/64</a> , but I'm not 100% sure.  It refers to "last summer's coup in the Soviet Union" which may also date it.  Maybe it should have a (1994) in the title.  Or, I don't know, maybe it's from even earlier?  Some of the other pieces have nice dates at the bottom, like the Declaration of Independence for Cyberspace a bit over 30 years ago.  EDIT: @karel-3d elsethread seems to think this one is (1998).</p>
]]></description><pubDate>Thu, 14 May 2026 12:39:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48134542</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=48134542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48134542</guid></item><item><title><![CDATA[New comment by cb321 in "From RGB to L*a*b* color space (2024)"]]></title><description><![CDATA[
<p>In fact, to support your point, it is perhaps questionable from first principles if 3 dimensions not 4 is right. Leaving out tetra chromats and the (partially) color blind, normal human light perception is 1 kind of rod and 3 kinds of cones (i.e. 4 photo receptors, plus some light sensitive ganglia that don't seem to participate in vision, but diurnal regulation).<p>So, sure, this "4th dimension" (for normals) might be as simple as "candelas" - truly orthogonal, but one does hear an awful lot about "ambient" or "candela contrastive" (a term I just made up) kinds of effects.  (EDIT: e.g. in color calibration of projectors in dark rooms vs. living rooms, for example, but I'm sure there are many.)  I am just one person, but it feels like candela brightness matters for color perception.  So, maybe luminous intensity is not actually exactly orthogonal.  Maybe this is all covered in the 1931 CIE documents, though.</p>
]]></description><pubDate>Sun, 08 Mar 2026 16:54:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47298824</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=47298824</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47298824</guid></item><item><title><![CDATA[New comment by cb321 in "Why does C have the best file API"]]></title><description><![CDATA[
<p>To support your point, it's also used in basically every shared library / DLL system.  While usually used "for code", a "shared pure data library" has many applications.  There are also 3rd party tools to make this convenient from many PLangs like HDF5, <a href="https://github.com/c-blake/nio" rel="nofollow">https://github.com/c-blake/nio</a> with its FileArray for Nim, Apache Arrow, etc.<p>Unmentioned so far is that defaults for max live memory maps are usually much higher than defaults for max open files.  So, if you are careful about closing files after mapping, you can usually get more "range" before having to move from OS/distro defaults.  (E.g. for `program foo*`-style work where you want to keep the foo open for some reason, like binding them to many read-only NumPy array variables.)</p>
]]></description><pubDate>Mon, 02 Mar 2026 09:51:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47215799</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=47215799</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47215799</guid></item><item><title><![CDATA[New comment by cb321 in "Index, Count, Offset, Size"]]></title><description><![CDATA[
<p>:-)<p>If it helps anyone explain the SkiFire point any better, I like to analogize it to an I-bar cursor vs. a block cursor for text entry.  An I-bar is unambiguously "between characters" while a block cursor is not.  So, there are questions that arise for block cursors that basically never arise for I-bar cursors.  When just looking at an integer like 2 or 3, there is no cursor at all.  So, we must instead rely on names/conventions/assumptions with their attendant issues.<p>To be clear, <i>I</i> liked the SkiFire explanation, but having multiple ways to describe/think about a problem is usually helpful.</p>
]]></description><pubDate>Sat, 21 Feb 2026 16:28:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47102221</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=47102221</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47102221</guid></item><item><title><![CDATA[New comment by cb321 in "Index, Count, Offset, Size"]]></title><description><![CDATA[
<p>As @SkiFire correctly observes[^1], off-by-1 problems are more fundamental than 0-based or 1-based indices, but the latter still vary enough that some kind of discrimination is needed.<p>For many years (decades?) now, I've been using "index" for 0-based and "number" for 1-based as in "column index" for a C/Python style [ix] vs. "column number" for a shell/awk/etc. style $1 $2.  Not sure this is the best terminology, but it <i>is</i> nice to have something consistent.  E.g., "offset" for 0-based indices means "off" and even the letter "o" in some case becomes "the zero of some range".  So, "offset" might be better than "index" for 0-based.<p>[^1]: <a href="https://news.ycombinator.com/item?id=47100056">https://news.ycombinator.com/item?id=47100056</a></p>
]]></description><pubDate>Sat, 21 Feb 2026 12:19:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47100094</link><dc:creator>cb321</dc:creator><comments>https://news.ycombinator.com/item?id=47100094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47100094</guid></item></channel></rss>