<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: Per_Bothner</title><link>https://news.ycombinator.com/user?id=Per_Bothner</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 27 Jul 2026 03:19:13 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Per_Bothner" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Per_Bothner in "Government orders GitHub to remove Bluetooth-based chat app Bitchat: Jack Dorsey"]]></title><description><![CDATA[
<p>I haven't figured out how to flag a comment as offense - but the term "zog soldier" is anti-semitic and does not belong on HN.</p>
]]></description><pubDate>Sat, 25 Jul 2026 19:02:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=49050539</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=49050539</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49050539</guid></item><item><title><![CDATA[New comment by Per_Bothner in "How many of the 170k English words do you know?"]]></title><description><![CDATA[
<p>"Defenestrate" was not in my list, but it's a word I would have gotten, as I know it from: (1) An A.C. Clarke short story ("The Defenestration of Ermintrude Inch", in "Tales from the White Hart", if I remember correctly); and (2) The Defenstration of Prague (I have visited Prague Castle - there were apparently multiple defenestrations there). It's an interestingly (amusingly?) macabre word. (It also helps that I know high-school French and German plus understand Swedish as being very close to Norwegian.)</p>
]]></description><pubDate>Fri, 19 Jun 2026 22:30:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48604045</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=48604045</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48604045</guid></item><item><title><![CDATA[New comment by Per_Bothner in "How many of the 170k English words do you know?"]]></title><description><![CDATA[
<p>"Frugal" most definitely does not mean "rather over the top" unless that is some new slang meaning I've never heard of.</p>
]]></description><pubDate>Fri, 19 Jun 2026 22:19:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48603944</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=48603944</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48603944</guid></item><item><title><![CDATA[New comment by Per_Bothner in "GitHub Stacked PRs"]]></title><description><![CDATA[
<p>Not always, but in this case the superior product (i.e. VHS) won. At initial release, Beta could only record an hour of content, while VHS could record 2 hours. Huge difference in functionality. The quality difference was there, but pretty modest.</p>
]]></description><pubDate>Tue, 14 Apr 2026 01:17:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47760067</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=47760067</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47760067</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Cl-kawa: Scheme on Java on Common Lisp"]]></title><description><![CDATA[
<p>Kawa predates Clojure by a decade. (Kawa work started 1996; Clojure's initial release was 2007.) Also, Clojure isn't really focused on high performance, while that has always been a priority for Kawa, which generates bytecode similar to Java, especially if you include suitable type annotations. (It is likely Clojure have have improved in this respect - they have a lot more people working on it.)</p>
]]></description><pubDate>Thu, 26 Feb 2026 10:22:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47164165</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=47164165</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47164165</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Cl-kawa: Scheme on Java on Common Lisp"]]></title><description><![CDATA[
<p>What a blast from the past! I too remember with pleasure the days working with Anthony Green (and others) at Cygnus. I like to boast that (apart from Java) Kawa Scheme is the oldest compiler-based language implementation still available for the JVM.</p>
]]></description><pubDate>Thu, 26 Feb 2026 05:40:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47162300</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=47162300</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47162300</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Debian switches to 64-bit time for everything"]]></title><description><![CDATA[
<p>"COBOL uses a fixed width character format for all data (yes even for COMP). If you want a four digit number, then you have to use 4 character positions."<p>That is incorrect. USAGE COMP will use binary, with the number number of bytes depending on the number of digits in the PIC. COMP-1 specifically takes 4 bytes. COMP-3 uses packed decimal (4 bits per digits).</p>
]]></description><pubDate>Tue, 29 Jul 2025 01:23:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=44717895</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=44717895</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44717895</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Servo's progress in 2024"]]></title><description><![CDATA[
<p>For me Tauri/Wry starts up pretty instantaneous. This is using Wry as the renderer for the DomTerm terminal emulator (<a href="https://domterm.org" rel="nofollow">https://domterm.org</a>), invoked with 'domterm -Bwry'. This is on Fedora Linux 41 x64. Admittedly using a rather old version of Wry (0.43.1) with webkitgtk 2.46.5 - I haven't had time to update.</p>
]]></description><pubDate>Wed, 05 Feb 2025 23:57:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=42957146</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=42957146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42957146</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Show HN: Crawl a modern website to a zip, serve the website from the zip"]]></title><description><![CDATA[
<p>The libwebsockets server (<a href="https://libwebsockets.org" rel="nofollow">https://libwebsockets.org</a>) supports serving directly from zip archives. Furthermore, if a URL is mapped to a compressed archive member, and assuming the browser can accept gzip-compressed files (as most can), then the compressed data is copied from archive over http to the browser, without de-compressing or conversion by the server. The server does a little bit of header fiddling but otherwise sends the raw bytes to the browser, which automatically decompresses it.</p>
]]></description><pubDate>Wed, 12 Jun 2024 00:42:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=40653291</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=40653291</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40653291</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Carapace: A multi-shell completion library and binary"]]></title><description><![CDATA[
<p>Completion for program P should be written and maintained by the "owner" of program P - and installed with program P. This is of course difficult when there are many different "shells" that each have their own "language" for specifying completions. A multi-shell completion library can help with this problem.<p>To me it make sense that completion for program P should be handled by program P itself. That way, completions are unlikely to get out of sync with the application, and the completion handler can use the same option parser as the application. A way to do this is to use a special "hidden" switch to request completion.<p>Specifically the DomTerm terminal emulator (<a href="https://domterm.org" rel="nofollow">https://domterm.org</a>) handles its own completions. Bash allows you to register a command that handles completions for some other command. The following tells bash that to handle completions for the domterm command it should call domterm with the magic "#complete-for-bash" option followed by the existing line and position.<p><pre><code>    complete -o nospace -C 'domterm "#complete-for-bash" "$COMP_LINE" "$COMP_POINT"' domterm
</code></pre>
When domterm is run with "#complete-for-bash" as the first argument (chosen to avoids accidental use) it processes the remaining arguments, and prints out the completion suggestions to bash.<p>I don't know how to do something similar for other shells; suggestions welcome. Some other shells (such as Fish) include help text as part of the suggested completions. Handling that would require a more complex protocol. Perhaps one that returs a result in JSON format?<p>If a such a protocol were standardized (perhaps invoked by a "#completions-as-json" option?), we just need to solve a final piece of the puzzle: How does a shell know if a command understands the "#completions-as-json" option? My suggestion is that we define a new keyword-value pair in the "desktop" file specification; the shell would search for a P.desktop file,</p>
]]></description><pubDate>Tue, 23 Apr 2024 22:14:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=40137995</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=40137995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40137995</guid></item><item><title><![CDATA[New comment by Per_Bothner in "The KDE desktop gets an overhaul with Plasma 6"]]></title><description><![CDATA[
<p>On Gnome, the Super (Windows) key does an Expose (show windows reduced-size and non-overlapping) <i>and</i> lets you launch applications (and more).
On KDE 5, the Super key brings up the Application Launcher, which is nice. And Super+W (which isn't too painful to type) does an Expose. But it would be nice if there was an option for Super to do an Expose <i>and</i> bring up Application Launcher.</p>
]]></description><pubDate>Fri, 01 Mar 2024 00:56:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=39557240</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=39557240</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39557240</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Antarctic English"]]></title><description><![CDATA[
<p>And people may judge you if you don't react in the way people think "normal people" react. People have been convicted of murder because police or juries though they didn't react the way they were "supposed to".</p>
]]></description><pubDate>Fri, 01 Mar 2024 00:07:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=39556923</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=39556923</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39556923</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Terminal Emulators Battle Royale – Unicode Edition"]]></title><description><![CDATA[
<p>Here is a screenshot: <a href="https://github.com/xtermjs/xterm.js/pull/4519#issue-1712965512">https://github.com/xtermjs/xterm.js/pull/4519#issue-17129655...</a></p>
]]></description><pubDate>Sat, 23 Dec 2023 15:12:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=38744759</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=38744759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38744759</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Terminal Emulators Battle Royale – Unicode Edition"]]></title><description><![CDATA[
<p>I am working on a re-write (<a href="https://github.com/xtermjs/xterm.js/issues/4800">https://github.com/xtermjs/xterm.js/issues/4800</a>) of the xterm.js "BufferLine" data structures that (among other benefits) could potentially support variable-width fonts in the terminal. Instead of a 2-dimensional grid of character cells, the primary data structure will be a list of logical lines, each consisting of characters and attributes.<p>A rather modest enhancement to the vt100/xterm escape sequences would be a mode where screen addressing would be in terms of logical characters and logical lines. The application should not need to know the width of characters or how lines are broken into screen rows. This makes use of variable-width fonts practical - which is necessary for decent rendering of many scripts.<p>DomTerm's display engine (<a href="https://domterm.org" rel="nofollow noreferrer">https://domterm.org</a>) does support lines containing a mix of monospace and variable width characters, and know how to wrap such lines. I'm working on long-term replacing DomTerm's native display engine with xterm.js (for speed and other reasons) which requires making xterm.js more versatile.</p>
]]></description><pubDate>Sat, 23 Dec 2023 15:10:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=38744735</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=38744735</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38744735</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Terminal Emulators Battle Royale – Unicode Edition"]]></title><description><![CDATA[
<p>The master branch of xterm.js (which will become version 5.4) has a new experimental support for grapheme clusters, combining characters, and partial support for variation selectors, based on Unicode 15. (Contributed by Your Truly.) For now it needs to be explicitly enabled (see <a href="https://github.com/xtermjs/xterm.js/tree/master/addons/addon-unicode-graphemes">https://github.com/xtermjs/xterm.js/tree/master/addons/addon...</a>) but in a later release we hope to make it the default. Most of the work is handled by the browser and the font, but xterm.js does need to detect cluster boundaries - which is what the addon does.</p>
]]></description><pubDate>Sat, 23 Dec 2023 06:31:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=38742157</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=38742157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38742157</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Show HN: Inshellisense – IDE style shell autocomplete"]]></title><description><![CDATA[
<p>To be pedantic: You're conflating the syntax of regular exprssions, with the (computer science) concept. Glob patterns are a kind of very resticted regular pexressions. Ksh extended the glob syntax so it has the full power of regular expressions in the computer science sense - though without all the extensions of modern regular expressions.</p>
]]></description><pubDate>Mon, 06 Nov 2023 23:31:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=38170789</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=38170789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38170789</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Striking auto workers want a 40% pay increase–the same rate their CEOs’ pay grew"]]></title><description><![CDATA[
<p>That is true. Elon Musk has greatly affected the stock price of the Company Formerly Known as Twitter.</p>
]]></description><pubDate>Tue, 19 Sep 2023 00:21:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=37564134</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=37564134</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37564134</guid></item><item><title><![CDATA[New comment by Per_Bothner in "Tolkien, 50 Years On"]]></title><description><![CDATA[
<p>Hank started out as a semi-comic blow-hard, but he evolved into someone heroic and sympathetic: While Walt "broke bad", Hank "broke good".</p>
]]></description><pubDate>Sun, 03 Sep 2023 20:04:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=37373917</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=37373917</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37373917</guid></item><item><title><![CDATA[New comment by Per_Bothner in "The case for Nushell"]]></title><description><![CDATA[
<p>Huh? Using a shell interactively is a REPL. REPL means Read-Eval-Print-Loop. That's what you do when you type commands to a bach/zsh/fish/nushell/... prompt.
But it also how you type commands to a gnuplot or Mathematica or APL or Python or Lisp prompt.<p>Some REPLs have nicer interactive features (such a completion than others).
Some REPLs have nicer or more powerful syntax or different data types.
But as longs as you have a Read-Eval-Print-Loop it's a REPL.</p>
]]></description><pubDate>Fri, 01 Sep 2023 02:03:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=37345937</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=37345937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37345937</guid></item><item><title><![CDATA[New comment by Per_Bothner in "WTF is going on with R7RS Large?"]]></title><description><![CDATA[
<p>One of the issues R7RS-large ran into was in how to handle datatypes, such as collection types. Initially, Lisp-style languages had linked lists as the primary data type, but vectors were early added. So you had a "map" function (that worked on linked lists) and "vector-map" (that worked on vectors).  Similarly, "length" vs "vector-length". What happens if you want to add more collection types - for example "bytevector"?  Do you add "bytevector-map" and "bytevector-length"? Or do you generalize "map" and "length" so they also work on bytevectors (and also vectors)? The former is most compatible with Scheme history and tradition.  The latter is IMO preferable going forward as new collection types are added - but it needs some way to talk about frameworks of types that are all sequences (linear collections). I.e. you need at least the concept of inheritance or "interfaces" as used in various languages, including Java and TypeScript.<p>Many languages in the Lisp/Scheme family have some kind of inheritance or interfaces, including Common Lisp, Dylan, Racket, Kawa, and many more. However, this hasn't been standardized for Scheme. R7RS-small has a mechanism to define new data types (records), but they were limited in functionality to C-like structs.<p>I (and others in the community) felt (and feel) that it is premature and unwise to add a bunch of new libraries for new data types until or unless we have some kind of framework for inheritance or interfaces. Others in the community (including the former chair) felt this was unnecessary and perhaps inappropriate for a language with the goals and history of Scheme.<p>There is no clear right answer or consensus for how to go forward, which is part of what caused things to bog down.</p>
]]></description><pubDate>Fri, 18 Aug 2023 16:28:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=37178039</link><dc:creator>Per_Bothner</dc:creator><comments>https://news.ycombinator.com/item?id=37178039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37178039</guid></item></channel></rss>