HNHacker News
TopNewBestAskShowJobs

anjbe

1,006 karma · joined February 23, 2014

https://anthony.roadrunner.page/

Electrical engineer from Albuquerque, New Mexico. Unix enthusiast. OpenBSD user and developer.

submissionscomments
anjbe··on Write HTML Right
It’s funny how people’s aesthetic sensibilities can differ. Making use of HTML’s standard features to drop unnecessary elements and closing tags is very much in line with my own idea of “beautiful” and “clean.”

Do you consider any table that doesn’t explicitly declare <tbody> “unclean”? That’s an implicit element in every <table>, according to the spec.

anjbe··on Write HTML Right
How does Markdown decouple content from presentation?
anjbe··on Write HTML Right
Implicit end tags, which are completely unambiguous, have been a feature of HTML literally since its inception.
anjbe··on Write HTML Right
In turn, probably descended from “RTFM”—on Slashdot people who commented despite obviously not having read the article were told to “RTFA,” which eventually led to “TFA” as a general term to refer to the original article.
anjbe··on Write HTML Right
And not just because of that. In XHTML‐as‐XML, where <div> does not implicitly end the paragraph, what you posted is still invalid because <p> cannot contain <div>.
anjbe··on Ask HN: Favourite open source game?
The Ur‐Quan Masters, better known as Star Control 2.

http://sc2.sourceforge.net/

According to Wikipedia:

> Released to critical acclaim, Star Control II is widely viewed today as one of the greatest PC games ever made, and has appeared on numerous publications lists of the greatest video games of all time.

It was open sourced in 2002, and is available in most package repos (as “uqm”).

anjbe··on Why I’m skeptical of “steelmanning”
> In my defense, here's a source that agrees with my conception: https://debate.fandom.com/wiki/Steelmanning

> > Steelmanning involves arguing against the strongest possible version of the other side's argument, whether they made it or not.

How bizarre! I would agree that by that definition, “steelmanning” is much less attractive—not something I would never do, but certainly not a practice I would attempt to follow by default.

anjbe··on Why I’m skeptical of “steelmanning”
> the best possible form of their argument would probably involve dropping that -- even if it's actually a significant motivation

If a point is so significant, then the result of dropping it would no longer be “their argument.” Doing so would not qualify as steelmanning by any definition I’m aware of—it would be a different argument altogether.

To steelman is effectively to practice the principle of charity, by not assuming irrationality when a plausible rational view exists that fits the same arguments. But if one’s opponent has made an irrational argument, no assumption is necessary!

> I think this may depend on what definition you're using

What definition do you use? It doesn’t match how I’ve ever seen the term used.

anjbe··on Why I’m skeptical of “steelmanning”
> It's usually described as, "construct the best possible form of your opponent's argument." If they made some weak points in their argument, steelmanning would involve either ignoring those or reconstructing them to be stronger.

Those two sentences seem contradictory. What definition of steelmanning requires ever ignoring weak points that have been made by one’s opponent?

anjbe··on Why I’m skeptical of “steelmanning”
> I don't think we should preemptively avoid points within an issue just because our opponent is either weak or strong on them.

When steelmanning, the points avoided are points your opponent never made.

anjbe··on The appeal of using plain HTML pages (2019)
This is not correct. What you’re describing sounds like how HTML5 standardized parsing of invalid HTML, but that is not the same thing as implicit closing tags, which have have always been valid, correct HTML producing an unambiguous, clearly defined result.
anjbe··on Project Gutenberg – Library of over 60k free eBooks
Popularity does not always correlate with quality, but Gutenberg’s “Top 100 Downloads” page is worth checking out: https://gutenberg.org/browse/scores/top
anjbe··on Project Gutenberg – Library of over 60k free eBooks
LibriVox is great.

As you mentioned, the quality varies, but some are real gems. My personal favorites are the Jeeves stories narrated by Mark Nelson:

https://librivox.org/my-man-jeeves-by-p-g-wodehouse/

https://librivox.org/right-ho-jeeves-by-p-g-wodehouse/

Also, the whole LibriVox collection is uploaded to the Internet Archive (easy to find: it’s one of the top links under the audio tab). IA’s interface is nicer in certain ways than librivox.org due to its options for searching, sorting (e.g., by views), and listening in the browser. https://archive.org/details/librivoxaudio

anjbe··on Project Gutenberg – Library of over 60k free eBooks
> "Standard" Ebooks also make their own non-standard editorial changes

I take the name to mean that their books all follow a “standard” (i.e., single, consistent) style guide.

> to modernize the language of the books.

SE will update archaic spellings, if they’re homonyms (e.g., ‘akehorn’ → ‘acorn,’ ‘centrys’ → ‘sentries’). I used to make similar substitutions in my own ebooks in the past, so clearly I’m in SE’s target market.

SE won’t update language in other ways as far as I know (they won’t censor or replace “problematic” words), or modernize punctuation in any way that changes meaning.

But if that’s not your cup of tea, Standard Ebooks does provide links both to scans of the original printed book and to the Project Gutenberg transcription, and marks editorial changes in the commit message so anyone who wants to can revert just the spelling changes.

> in practice it would take a lot of work to revert them.

I’m not sure what more you’d suggest them to do, other than stop using a style guide at all—which is the whole raison d’être of the project.

anjbe··on “YouTube-dl” and “Pirate Bay” back on DDG
Early on, a major selling point of DuckDuckGo was that it filtered out SEO parked domain pages.
anjbe··on The Strange Afterlife of Pontius Pilate (2016)
> I can't see how anybody who has faith could be upset about it, though; to be upset about it, it seems to me you would have to have doubts yourself, and fear that discussion might turn up more facts that would cause you even more doubt.

If the only motive you can attribute to your ideological opponents is one that confirms your views and would be embarrassing to them (e.g., “religious people don’t actually believe what they say they believe”), it is worth considering the possibility that you haven’t actually made a sincere effort to understand their views.

anjbe··on The Strange Afterlife of Pontius Pilate (2016)
In the first paragraph of the link you posted, Richard Carrier calls Tim O’Neill “an asscrank, a total tinfoil hatter, filled with slanderous rage and void of any competence and honesty.”

Surely if Carrier’s opinion of O’Neill is relevant to whether O’Neill is a trustworthy opinion on the subject of Jesus mythicism, then Carrier’s own lack of neutrality on the topic is at least as relevant, as is the fact that his views on mythicism are considered far out of the mainstream by his own peers.

anjbe··on The Strange Afterlife of Pontius Pilate (2016)
Richard Carrier is about the least disinterested individual one could cite on the subject of Jesus mythicism. His “celestial Jesus” view requires an ahistorical Jesus, which plausibly explains his vociferous attacks against anyone holding the mainstream (secular!) view that Jesus was a real person.
anjbe··on How to sign off an email. Epistolary etiquette for the 21st century
It’s fun when reading very old books and correspondence to see how conventions have changed. For instance, in the 1780s, George Washington and his contemporaries often closed letters with variations of “I am, dear sir, Your most obedient humble servant…”

In a particularly informal letter, the same might even be abbreviated to “I am, etc.”

anjbe··on -h –Help -help Help –? –?
> So the parsing support is there. And it is used, e.g. tar

Yes, the parsing support is there, so software written in the GNU style does build and run correctly on BSD systems. But although you bring up tar (a command that is well known for its unusual and unconventional flag handling), it is generally the case that commands on BSD operating systems do not use long options.

Representative examples of prominent 21st century BSD software that do not use long options:

mandoc: https://mandoc.bsd.lv/man/mandoc.1.html

jail: https://www.freebsd.org/cgi/man.cgi?jail(8)

zfs: https://www.freebsd.org/cgi/man.cgi?zfs(8)

acme-client: https://man.openbsd.org/acme-client.1

signify: https://man.openbsd.org/signify.1

doas: https://man.openbsd.org/doas.1

smtpd: https://man.openbsd.org/smtpd.8

And of course old classics like ssh: https://man.openbsd.org/ssh.1

kazinator’s point, that there is no POSIX convention of using -h for help, is correct. That convention came from GNU, and while the idea has spread due to GNU’s influence, there are other prominent schools of thought in the POSIX or Unix‐like ecosystem. I would certainly not agree that long options are the common case on BSD systems.

anjbe··on -h –Help -help Help –? –?
According to Dennis Ritchie, find(1) was developed by a different group at Bell Labs which explains the difference in style. “…We were somewhat put off by the syntax of their things. However, they were clearly quite useful, and they were accepted.”

http://doc.cat-v.org/unix/find-history

anjbe··on -h –Help -help Help –? –?
A far more egregious error is pretending that -h/--help is some sort of universally implemented or agreed upon practice among command‐line tools.
anjbe··on -h –Help -help Help –? –?
The cat command is rather infamous for using -v to mean “visual” (as in, convert invisible characters to something visible).

But the infamy is not that it used -v for something other than “version”—I doubt that convention existed in 1983, when the complaint was made—but rather that it was a sign of the ever‐growing complexity of specific Unix tools at the expense of the harmony of the whole system.

See “Program design in the UNIX environment,” by Rob Pike and Brian Kernighan, USENIX 1983: http://harmful.cat-v.org/cat-v/

anjbe··on -h –Help -help Help –? –?
“-help” being equivalent to “-h -e -l -p” is not a GNUism. It’s described by POSIX. If a utility takes the options “-a” and “-o something” and uses POSIX getopt(), then these are all equivalent:

    cmd -ao arg path path
    cmd -a -o arg path path
    cmd -o arg -a path path
    cmd -a -o arg -- path path
    cmd -a -oarg path path
    cmd -aoarg path path
anjbe··on -h –Help -help Help –? –?
I tend to avoid doing this, for reasons someone else described in a comment (https://news.ycombinator.com/item?id=30993390): some programs spit --help output to stdout, but others to stderr, so you wind up running it a second time as “my_cli --help 2>&1 | grep ...”.

In addition, if I don’t perfectly know what I’m searching for, I’ll often get the regular expression wrong. So I prefer to check the manpage first, since it’s a lot quicker to try different search strings in my pager than by repeatedly modifying my previous command string in the shell.

anjbe··on -h –Help -help Help –? –?
But it’s not overly pedantic. POSIX is literally a formal standard, and that standard does not provide a mechanism for long options. Other “POSIX (i.e. Unix‐like) systems” like the BSDs do not generally use long options, nor do they generally support -h as a “help” flag.

What you’re describing as a POSIX convention is really a GNU convention. But the world of POSIX consists of more than just GNU. So the grandparent post is correct.

anjbe··on -h –Help -help Help –? –?
I always default to “man foo”, because of the occasional tool that when presented with -h or --help creates a file with that name; even if there’s no manpage, “man foo” will never have any undesired side effects.

Nearly every tool does have a manpage (even a basic one) thanks to Debian’s manpage policy: “Each program, utility, and function should have an associated manual page included in the same package or a dependency.… If no manual page is available, this is considered as a bug and should be reported to the Debian Bug Tracking System.”

The rare times I encounter a command‐line tool that has no manpage, I’ll sometimes write one and contribute it upstream.

Of course some programs have a useless manpage that points to info. Thankfully that is pretty much limited to GNU tools which I’m lucky enough to not have to use very often.

anjbe··on -h –Help -help Help –? –?
Mandoc, the default manpage formatter on OpenBSD, FreeBSD, NetBSD, macOS, and some Linuxes (as well as web frontends like manpages.debian.org and man.archlinux.org), can convert manpages to Markdown, or to HTML directly: https://mandoc.bsd.lv/man/mandoc.1.html#Markdown_Output
anjbe··on Twitter's new Tor onion service
One interesting effect of Twitter’s onion address: your 2FA options are limited. Any WebAuthn/FIDO/U2F keys you have registered with your Twitter account won’t work, because the key registration is tied to the domain name. I have the same problem on Facebook. I can only use these onion sites if I log in with TOTP.

One would think you could re‐register the keys while logged in to the onion site, but I’ve never succeeded with this on Facebook or Twitter. I don’t know if there is a technical limitation preventing WebAuthn from being used over onion sites, or just a problem with these particular sites’ implementations. Tor itself is not the problem—you can use a registered WebAuthn key over Tor if the domains you’re visiting are facebook.com or twitter.com.

anjbe··on On overwriting disks (on OpenBSD 7.0-current)
OpenBSD’s dd(1) natively supports printing status with SIGINFO. If you run “stty status ^T”, then during dd you can press Ctrl-T to get an informational message including progress and rate of transfer.

    $ dd if=/dev/zero of=/dev/null
    load: 0.27  cmd: dd 2358 [running] 0.37u 0.65s 1% 99k
    528102+0 records in
    528101+0 records out
    270387712 bytes transferred in 1.051 secs (257262549 bytes/sec)
    load: 0.27  cmd: dd 2358 [running] 1.00u 1.93s 10% 109k
    1467936+0 records in
    1467935+0 records out
    751582720 bytes transferred in 2.930 secs (256426100 bytes/sec)
    load: 0.32  cmd: dd 2358 [running] 1.68u 3.12s 19% 109k
    2424899+0 records in
    2424899+0 records out
    1241548288 bytes transferred in 4.834 secs (256784572 bytes/sec)
← PreviousPage 3 of 10Next →