HNHacker News
TopNewBestAskShowJobs

LukeShu

7,084 karma · joined May 5, 2011

https://lukeshu.com/

[ my public key: https://keybase.io/lukeshu; my proof: https://keybase.io/lukeshu/sigs/HnTgaX1Qhui0yhjc6P-GRCJqUfJlk_xU09_TFpQKk0U ]

submissionscomments
LukeShu··on Airlines required to refund passengers for canceled, delayed flights
I think you're reading that backward.

I'm reading it as:

- (think the alt-transport or credits are good) -> accept -> don't get refunded

- (think the alt-transport or credits are worthless) -> do not accept -> get refunded

LukeShu··on QEMU Version 9.0.0 Released
It's v9 not because of major changes, but because for a while now Qemu has used year-based major versions (ver = year-2015), and this is the first release of 2024.
LukeShu··on Knuth–Morris–Pratt illustrated
Independently of anything else: Yes, you should learn Haskell :)

If Go is more your speed, here's an implementation in Go: https://git.lukeshu.com/btrfs-progs-ng/tree/cmd/btrfs-rec/in... (though it is slightly complicated by the fact that it allows 'substr' to include fixed-length wildcards).

LukeShu··on Bash's sadly flawed smart (programmable) completion
Meta + slash

"Meta" usually means "alt", except by default in macOS Terminal.app, where you need to go into the settings and check "alt is meta".

LukeShu··on GNU Stow needs a co-maintainer
I want to share a comment I wrote on the 2.1.0 release announcement in 2011: https://news.ycombinator.com/item?id=3309575
LukeShu··on The Super Mario Maker community faces its final boss
I don't think anyone is saying that there was no TAS in general in 2017, but that there was no TAS for the Wii U in 2017.
LukeShu··on Nanofont3x4: Smallest readable 3x4 font with lowercase (2015)
It's a 4x8 grid, like I said. https://lukeshu.com/dump/miniwi-grid.png

Weird that the lowercase letters with ascenders are taller than normal uppercase, I didn't notice that. But yeah, the core numbers+uppercase box is 3x5 (with only "Q" violating that). And it's all on a 4x8 grid.

LukeShu··on Nanofont3x4: Smallest readable 3x4 font with lowercase (2015)
looks like 3x5, or 4x8 if you include the whitespace
LukeShu··on Nanofont3x4: Smallest readable 3x4 font with lowercase (2015)
8x8 tiles; most characters fit in 7x7 to allow for 1px between characters
LukeShu··on The Emacsen family, the design of an Emacs and the importance of Lisp (2023)
I'm pretty sure I read this exact comment 10 years ago, but "Sublime Text" instead of "VSCode".
LukeShu··on Out-of-bounds read and write in the glibc's qsort()
This is unrelated to CVE-2023-6246 (which 2 of your links are about), other than that it piggy-backed on the embargo date.
LukeShu··on .ai website registrations are a windfall for tiny Anguilla
> .cc (Cocos Island) was used most famously by Arduino.

IMO Arduino's use of the domain wasn't as famous as Creative Commons' use of the domain creativecommons.cc ... but Arduino is still at arduino.cc, while Creative Commons has moved to .org.

LukeShu··on 'Do not drive': Toyota recalls some 50k older vehicles
Getting off-topic, but:

> There had been three misfires of the prop gun before the one that killed Hutchins. … “We’ve now had three accidental discharges. This is super unsafe.”

A "misfire" is when the gun should go off but doesn't, an "accidental discharge" is when the gun shouldn't go off but does.

There was a lot of sloppy reporting around the events, to where it's hard to tell what the facts actually were. The particular mistake I highlighted (the reporter saying "misfire" when their source says "accidental discharge") IMO makes whichever article you're quoting suspect as a whole.

LukeShu··on Textfiles

    $ rsync --dry-run -a --stats rsync://rsync.textfiles.com/textfiles ./textfiles.com
    …
    Number of files: 866,935 (reg: 826,831, dir: 40,083, link: 21)
    …
    Total file size: 319,889,987,473 bytes
    …
LukeShu··on My 3-year experiment as a digital nomad
The trailer itself is about 3000 lb. (2023 version of that trailer: https://forestriverinc.com/rvs/ozark/1530VBK/6564 IDK what model year OP's is). Plus lotsa added drag.
LukeShu··on IP over Spaghetti (2019)
It's both. Obviously, it's a silly April-but-not-in-April fools joke; but it also seems that it would work (but not be practical).

The spaghetti is just a stick. At one end a relay[1] wiggles the strand of spaghetti to transmit information. At the other end an optical sensor[2] sees the tip of the strand of spaghetti wiggling and receives that information. There's such a setup going in each direction[3] so that each side can receive and transmit.

[1]: https://github.com/peterheinrich/InternetOverSpaghetti/blob/... (the strand of spaghetti that stick going off the screen to the right)

[2]: https://github.com/peterheinrich/InternetOverSpaghetti/blob/...

[3]: https://github.com/peterheinrich/InternetOverSpaghetti/blob/...

LukeShu··on Suspects can refuse to provide phone passcodes to police, court rules
I am unfamiliar with sailboat racing, and cannot knowledgeably comment on whether "[the rules] are extremely rigid, and interpreted without spirit" and whether "The Racing Rules of Sailing and amendments to it are treated as almost-code-like".

But I can say that the 1988 America's cup does not support either of those points.

----

Background:

First of all, the opinion of the appellate court is better written and clearer than the Wikipedia article: https://nycourts.gov/reporter/archives/mercury_sandiego.htm I'm going to be quoting it a lot because it says things more plainly and authoritatively than I could.

"The America's Cup, a silver cup trophy, is the corpus of a charitable trust created in the 19th century under the laws of New York." Such a charitable trust is governed by a "Deed of Gift" written by those who gave the cup to the trust. "[George] Schuyler executed [wrote/signed] the present Deed of Gift in 1887, donating the Cup to the New York Yacht Club".

The gist of the deed is that one yacht club can challenge the current holder of the cup to a race to win the cup (the race is 10 months after the challenge is issued); the two clubs are free to agree to whatever rules they want, but if they fail to agree then the deed gives some fallback rules. One of the rules that the 1887 deed gave is that for single-mast vessels the load water-line length must be between 65 and 90 feet. However, "In 1956 the New York Yacht Club obtained a court order amending the Deed of Gift to reduce the minimum load water-line length to its present 44 feet". For context, the America, the ship for which the cup was named, was 89ft 10in.

From 1956 until 1987 all challengers agreed to a lower maximum length than that 90ft limit, because even though longer boats were faster, they were more expensive.

----

Why I don't believe that this supports your points:

- Because the issue was about the Deed of Gift, not The Racing Rules of Sailing, this was decided by the NY courts, not by the International Yacht Racing Union (IYRU).

- Because reasons ("see, e.g., Crouch v National Assn. For Stock Car Auto Racing, 845 F2d 397, 403; Finley & Co. v Kuhn, 569 F2d 527, 539") the court specifically did not interpret The Racing Rules of Sailing, and just interpreted the deed. If Mercury Bay wanted The Racing Rules of Sailing to come into it, they should have brought it to the IYRU--which they totally could have done--and not to the NY Supreme Court.

- The discussion in the decision of the court by word-count I would say is 90% about about the spirit and intent of the deed and what the author intended, and 10% about rigid textual interpretation.

LukeShu··on OpenBSD – pinning all system calls
> I don't know how they define `MAX`, but I'm guessing it's a typical "a>b?a:b"

Indeed: https://github.com/openbsd/src/blob/master/sys/sys/param.h#L...

> Then `SYS_kbind` seems to be a signed int.

It's an untyped #define: https://github.com/openbsd/src/blob/master/sys/sys/syscall.h...

I believe your whole analysis is correct, that running an elf file with an openbsd.syscalls entry with .sysno > INT_MAX will allow an out-of-bounds write.

LukeShu··on Wordstar-keys: Implement wordstar cursor control keys in Linux using xkb
It remaps it to Ctrl-G, which won't work in every program, but is a fairly standard shortcut in text editors.

xkb: https://github.com/berwynhoyt/wordstar-keys/blob/main/xkb/ws...

xremap: https://github.com/berwynhoyt/wordstar-keys/blob/main/xremap...

LukeShu··on Why did base64 win against uuencode?
> We were also obsessed with efficiency. base64 was "sold" as denser encoding. I can't say if it was true overall

uuencode has file headers/footers, like MIME. But the actual content encoding is basically base64 with a different alphabet; both add precisely 1/3 overhead (plus up to 2 padding bytes at the end).

LukeShu··on A new home and license (AGPL) for Synapse and friends
Following up,

> I cannot speak knowledgeably about the original (non-GNU) Affero GPL v1

The only non-name-change-related difference between the GNU GPL v2 and the Affero GPL v1 is the addition of the following item to section 2:

> * d) If the Program as you received it is intended to interact with users through a computer network and if, in the version you received, any user interacting with the Program was given the opportunity to request transmission to that user of the Program's complete source code, you must not remove that facility from your modified version of the Program or work based on the Program, and must offer an equivalent opportunity for all users interacting with your Program through a computer network to request immediate transmission by HTTP of the complete source code of your modified version or other derivative work.

LukeShu··on A new home and license (AGPL) for Synapse and friends
I cannot speak knowledgeably about the original (non-GNU) Affero GPL v1, but about the GNU AGPL v3 I can say:

It does not require "forced upstream contributions". What it requires is that users who use the program over the network can get a copy of the source code. Your statement sounds a lot like the FUD about the plain GPL requiring forced upstream contributions; no, it only requires you give the source to those who get a binary from you; the AGPL only requires that you give the source to those who have access to your server instance.

Now, there is a cogent argument that applies everything you said not just to the AGPL but the GPL as well; but that does not appear to be the argument that you're making. So I will proceed with the assumption that you consider the GNU GPL v3 to be acceptable (possibly with the exception of the AGPL-compatibility clause in section 13).

The only non-name-change-related/reflective difference between the GNU GPL v3 and the GNU AGPL v3 main license text is that the AGPL adds the following paragraph to section 13:

> Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph.

Now, if you're giving your contributions to a for-profit company that can re-license your work to a non-copyleft license... yeah, stop doing that.

LukeShu··on App::Rak – 21st century grep / find / ack / ag / rg on steroids
It was Perl 6 from 2000 to 2019. It spent much more time as perl6 than it has as not-perl6.
LukeShu··on GPL-3.0 licensed BIOS for Intel 8088 based computers
Yes. The external bus on the 8088 is 8-bit while the 8086 is 16-bit (which is why the 8086 wouldn't appear in a PC until the mostly-80286 PS/2 line, since the 8086 and the 80286 could use the same 16-bit PS/2 bus).
LukeShu··on GPL-3.0 licensed BIOS for Intel 8088 based computers
IDK what notices they provide, but:

The copyright statement that prints on boot and indicates that it is licensed under the GPL has been stripped, violating section 4 and 5.d (now claims to be "Copyright (C) 2022 CYCLE Logic" with no mention of "Copyright (C) 2010 - 2020 Sergey Kiselev", and with no mention of the GPL).

If you do request the source code from them, to their credit they do give it to you, but they code the give you has all (edit: most) of the copyright header-comments removed (violation of section 5.b).

And generally, in neither the binary nor the source code indicate that it's based on book8088 (violation of section 5.a).

LukeShu··on GPL-3.0 licensed BIOS for Intel 8088 based computers
There wasn't really an important 8086 box. The first IBM PC (1981) used the 8088. The first 8086 PCs were the discount models in the PS/2 line (April 1987), 3 years after the 80286 in the PC/AT (1984); so the 8086 was already obsolete by the time it was in a PC. And later that year (August 1987) it would be even more obsolete when an 80386DX PS/2 came out.
LukeShu··on GPL-3.0 licensed BIOS for Intel 8088 based computers
The stock book8088 BIOS is a ripoff (GPL violation) of this. IDK about that bug though.
LukeShu··on Text showdown: Gap Buffers vs. Ropes
> Go ... I don't think it tells you anything else, like the position of the match.

The regexp.Regexp.FindReaderIndex and .FindReaderSubmatchIndex methods tell you the position of the match.

LukeShu··on ZeroMQ – Relicense from LGPL3 and exceptions to MPL 2.0
That was the GCC Steering Committee's decision, not the FSF's.
LukeShu··on Subtraction is functionally complete
You may be interested in

- Using IEEE floating-point error for ML transfer functions http://tom7.org/grad/

- Using IEEE NaN and infinity to build logic gates and a whole CPU http://tom7.org/nand/

← PreviousPage 4 of 34Next →