<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: elcaro</title><link>https://news.ycombinator.com/user?id=elcaro</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 28 May 2026 18:25:38 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=elcaro" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by elcaro in "Biff is a command line datetime Swiss army knife"]]></title><description><![CDATA[
<p>% biff<p>2026 M05 28, Thu 17:27:46<p>Ahh, the month of M05</p>
]]></description><pubDate>Thu, 28 May 2026 07:28:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48305787</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=48305787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48305787</guid></item><item><title><![CDATA[Spatial Programming [video]]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=eQgxFuw8f1U">https://www.youtube.com/watch?v=eQgxFuw8f1U</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47304408">https://news.ycombinator.com/item?id=47304408</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 09 Mar 2026 03:02:18 +0000</pubDate><link>https://www.youtube.com/watch?v=eQgxFuw8f1U</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=47304408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47304408</guid></item><item><title><![CDATA[New comment by elcaro in "Ian's Shoelace Site"]]></title><description><![CDATA[
<p>I also use this one everyday. I learned the quick one back in the day, but I value never ever having to stop and re-tie my laces.</p>
]]></description><pubDate>Tue, 03 Feb 2026 00:57:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46864778</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=46864778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46864778</guid></item><item><title><![CDATA[New comment by elcaro in "Show HN: Ten years of running every day, visualized"]]></title><description><![CDATA[
<p>Under the "Countries Visited" section it says "been lucky to run on all seven continents, including antarctica!", but it doesn't look like they've been to Australia.</p>
]]></description><pubDate>Mon, 14 Jul 2025 00:54:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=44555315</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=44555315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44555315</guid></item><item><title><![CDATA[New comment by elcaro in "Notation as a Tool of Thought (1979)"]]></title><description><![CDATA[
<p>Answering for myself, I started looking into APL, but at the time, learning the keymaps for the symbols seemed difficult, so I started learning array lang techniques with J, and ended up liking it.<p>Some of the knowledge you acquire from one array lang can translate to the others, but the semantics are not 1:1 (ie. J is not just ASCII APL).<p>As it currently stands, I dabble in almost all the array langs, but of the ones I use, I think best in J. It's got a lot of convenience in it's large set of primitives, and there's no "indirection" between the character you want, and the one you type. Still, it's not without it's shortcomings.<p>I think I would probably still recommend BQN to most people looking to get into array programming, as it removes some warts in APL/J.<p>You lose some convenience functions (base conversion, fixed-point, etc) but you get a language which is more uniform and intuitive. And FWIW, I had the keymaps learned within the first day I started to play with it.<p>It's still a learning curve regardless of which lang you learn, but it will change how you think.</p>
]]></description><pubDate>Sat, 26 Apr 2025 00:27:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43799803</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=43799803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43799803</guid></item><item><title><![CDATA[New comment by elcaro in "The XOR Texture (2004)"]]></title><description><![CDATA[
<p>I wa recently playing with this pattern in J, where it can be expressed like so<p><pre><code>  ~:"1/~&.#:i.2^8
</code></pre>
See it here: <a href="https://jsoftware.github.io/j-playground/bin/html2/#base64=bG9hZCAndmlld21hdCcKdmlld21hdCB+OiIxL34mLiM6aS4yXjg=" rel="nofollow">https://jsoftware.github.io/j-playground/bin/html2/#base64=b...</a></p>
]]></description><pubDate>Wed, 18 Dec 2024 09:38:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=42449187</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=42449187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42449187</guid></item><item><title><![CDATA[New comment by elcaro in "GMC made a motorhome that pumped sewage through its exhaust on purpose"]]></title><description><![CDATA[
<p>First thing I thought of<p><a href="https://www.youtube.com/watch?v=M4g4WBo-5fc" rel="nofollow">https://www.youtube.com/watch?v=M4g4WBo-5fc</a></p>
]]></description><pubDate>Thu, 18 Jul 2024 08:16:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=40993550</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=40993550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40993550</guid></item><item><title><![CDATA[New comment by elcaro in "Firefox Is Bringing in Tab Grouping Feature"]]></title><description><![CDATA[
<p>I was also a big fan of the Panorama feature that used to be built in.<p>These days I'm using the Panorama Tab Groups [1] extension, which provide a practically identical experience the the old built in Panorama.<p>[1] <a href="https://addons.mozilla.org/en-GB/firefox/addon/panorama-tab-groups/" rel="nofollow">https://addons.mozilla.org/en-GB/firefox/addon/panorama-tab-...</a></p>
]]></description><pubDate>Wed, 10 Apr 2024 02:25:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=39986378</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=39986378</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39986378</guid></item><item><title><![CDATA[New comment by elcaro in "Array languages vs. the curse of the spreadsheet"]]></title><description><![CDATA[
<p>FWIW, I solved this in J as follows<p>F =: >@{.@(\: #@>)@(#~ (2 >: +/@e.&'aeoiu')@>)<p>which I think maybe composes a little better<p>This doesn't include the splitting. I would imagine I would be feeding this function from a boxed list from a word list,  like: F 'b' fread 'dict.txt'<p>Also `;:` is unreliable on hyphenated words, etc. Better to use `cut`.</p>
]]></description><pubDate>Wed, 06 Mar 2024 08:27:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=39613618</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=39613618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39613618</guid></item><item><title><![CDATA[New comment by elcaro in "What every software developer must know about Unicode in 2023"]]></title><description><![CDATA[
<p>Another Unicode article that mentions Swift, but not Raku :(<p>Raku's Str type has a `.chars` method that counts graphemes. It has a separate `.codes` method to count codepoints. It also can do O(1) string indexing at the grapheme level.<p>That Zalgo "word" example is counted as 4 chars, and the different comparisons of "Å" are all True in Raku.<p>You can argue about the merits of it's approach (indeed several commenters here disagree that graphemes are the "one true way" to count characters), but it feels lacking to not at least _mention_ Raku when talking about how different programming languages handle Unicode.</p>
]]></description><pubDate>Sun, 08 Oct 2023 10:17:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=37809251</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=37809251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37809251</guid></item><item><title><![CDATA[New comment by elcaro in "Os.js – open-source JavaScript web desktop platform with a window manager"]]></title><description><![CDATA[
<p>I went looking for a web browser!</p>
]]></description><pubDate>Fri, 25 Aug 2023 03:59:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=37257876</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=37257876</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37257876</guid></item><item><title><![CDATA[New comment by elcaro in "Raku: A language for gremlins"]]></title><description><![CDATA[
<p><p><pre><code>  >  "Produce" is a term I've never seen used this way before, and I assume it is unique to Raku.
</code></pre>
More commonly referred to in the functional languages as a `scan`, but yes, it seems that `produce` might be unique to Raku. I've not seen `accumulate` outside of Python, but there's a lot of langs so who knows.<p>code_report (Conor Hoekstra) has discussed the difference names of `scan` on a couple occasions, eg: <a href="https://twitter.com/code_report/status/1246494250537291776" rel="nofollow noreferrer">https://twitter.com/code_report/status/1246494250537291776</a><p>Connor has declared a fondness of APL's where fold and scan show a clear visual relation: `/` & `\`. I suspect Raku was shooting for something similar with it's choices:<p>[f]  list   # or list.reduce(f)<p>[\f] list   # or list.produce(f)</p>
]]></description><pubDate>Mon, 21 Aug 2023 12:50:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=37208827</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=37208827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37208827</guid></item><item><title><![CDATA[New comment by elcaro in "Perl 5.38"]]></title><description><![CDATA[
<p>I know cygx already replied, but to be clear, function signatures have been available in Perl since 2015. They were added (as experimental) in 5.20, and are now enabled by default with `use v5.36` or later.<p>All new features must now go through an experimental phase after the smartmatch debacle. Signatures stayed in experimental status a little longer than most new features due to an unfortunate change with respect the order of function signatures and function prototypes. Provided you weren't using prototypes (which you almost never need) then they've been largely stable since 2015.<p>Most distro's under current support ship with at least  Perl 5.24, so you can  use them almost anywhere.</p>
]]></description><pubDate>Wed, 05 Jul 2023 23:50:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=36608918</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=36608918</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36608918</guid></item><item><title><![CDATA[New comment by elcaro in "It’s not wrong that "🤦🏼‍♂️".length == 7 (2019)"]]></title><description><![CDATA[
<p>This is exactly what Raku does. Neither strings nor arrays have a `.length` method because it's arbitrary.<p><pre><code>    [0] > "\c[FACE PALM]".chars
    1
    [1] > "\c[FACE PALM]".codes
    1
    [2] > "\c[FACE PALM]".encode.bytes
    4
    [3] > "\c[FACE PALM]".encode
    utf8:0x<F0 9F A4 A6>
    [4] > "\c[FACE PALM]".encode('utf-16')
    utf16:0x<D83E DD26>
</code></pre>
FWIW, to get the "length" of an array, the method is `.elems`.</p>
]]></description><pubDate>Fri, 02 Jun 2023 14:25:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=36165503</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=36165503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36165503</guid></item><item><title><![CDATA[New comment by elcaro in "Somehow AutoHotKey is kinda good now"]]></title><description><![CDATA[
<p><p><pre><code>  > Personally I think this kind of computer-control is the perfect environment for teaching computing. Rather than writing apps or webapps, I feel like the idea of just writing code to do what you the user would do anyways, but better, is a fantastic introduction to computing & programming.
</code></pre>
AHK is how I got into programming. I started with a few hotstrings, slowly added more functionality, a GUI, etc. While writing a specific tool, I learned about ReGex, and would often refer to the RegEx table in the AHK docs.<p>Eventually, I attempted to write a tools to audit network device config with AHK, and a colleague said "why don't you write it in Perl". In looking up Perl, I learned about Python and kinda them at the same time (though interestingly, I still prefer Perl to this day). I also never realised RegEx was a thing people struggled with because I learned it almost immediately after getting into "programming", so I was just part of the learning process.<p>All in all, I credit AHK with getting me into coding.</p>
]]></description><pubDate>Thu, 04 May 2023 04:13:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=35811107</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=35811107</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35811107</guid></item><item><title><![CDATA[New comment by elcaro in "Douglas Adams on Hypercard and new educational models"]]></title><description><![CDATA[
<p>The closest thing these days is probably p5js (Processing in JS).<p><pre><code>    function setup() {
      createCanvas(640, 480)
    }

    function draw() {
      background(0, 100, 200)
      strokeWeight(100)
      stroke(200, 200, 0)
      line(0, 0, 640, 480)
    }
</code></pre>
There's an online editor so pre-teens (or indeed post-teens) can get started right away (<a href="https://editor.p5js.org" rel="nofollow">https://editor.p5js.org</a>) but I'll admit there's still quite a hurdle if you want to host yourself, or run offline.</p>
]]></description><pubDate>Thu, 12 Jan 2023 04:05:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=34349052</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=34349052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34349052</guid></item><item><title><![CDATA[New comment by elcaro in "Always use [closed, open) intervals"]]></title><description><![CDATA[
<p>I'll repeat the sentiment that "always" and "never" rules usually have their  fair share of exception.<p>And while I agree that [closed, open) intervals are often the best choice... sometimes what you want is [closed, closed], or (open, open), and it's nice to use a language that makes that easy.<p>For example, Raku makes it easy to do:<p><pre><code>  [closed, closed] with ($a .. $b)

  [closed, open) with ($a ..^ $b)

  (open,  open) with ($a ^..^ $b)

  (open, closed] with ($a ^.. $b)</code></pre></p>
]]></description><pubDate>Tue, 22 Nov 2022 11:35:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=33704637</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=33704637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33704637</guid></item><item><title><![CDATA[New comment by elcaro in "Always use [closed, open) intervals"]]></title><description><![CDATA[
<p>Discussion of the ligature issue (and a screenshot) in the Reddit post comments.<p><a href="https://old.reddit.com/r/programming/comments/z18gb6/comment/ixa2q6w" rel="nofollow">https://old.reddit.com/r/programming/comments/z18gb6/comment...</a></p>
]]></description><pubDate>Tue, 22 Nov 2022 11:26:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=33704586</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=33704586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33704586</guid></item><item><title><![CDATA[New comment by elcaro in "Miniexpect – A very simple expect-like library"]]></title><description><![CDATA[
<p>One potential use case could be in creating bindings for other languages that do not have an expect like module. Since it reportedly has a "saner interface than libexpect", it might be less hassle creating FFI bindings to mini-expect.</p>
]]></description><pubDate>Wed, 27 Jul 2022 00:29:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=32245678</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=32245678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32245678</guid></item><item><title><![CDATA[New comment by elcaro in "Ask HN:Why is Perl so dwarfed in data science by Python?"]]></title><description><![CDATA[
<p><p><pre><code>  > right from the beginning, the say turns me off, computers do not speak
</code></pre>
This seems a bit of an odd argument. You've never heard the phrase "The sign says ...", or asked someone "What does the error message say?"<p>That said, `say` is just a normal function, and you could always bind a new function and use that instead.</p>
]]></description><pubDate>Mon, 10 Jan 2022 23:55:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=29884944</link><dc:creator>elcaro</dc:creator><comments>https://news.ycombinator.com/item?id=29884944</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29884944</guid></item></channel></rss>