HN user

arundelo

744 karma
Posts7
Comments94
View on HN

I don't know Olin Shivers but I've read enough of his writing to know that this acknowledgements section was written with tongue in cheek, and in fact it's a funny enough piece of writing that I've shared it a number of times like the grandparent comment did.

I guess the author was thinking of how cat's original purpose is to concatenate multiple files, not show just one file. (But I certainly don't think using cat in the latter way is a misuse.)

There's also a commonly noted "unnecessary use of cat" where people do this:

  cat file.txt | grep foo
instead of this:
  <file.txt grep.foo
but that's not relevant to bat (which can be used unnecessarily in the same way).
Show HN: Bel 7 years ago

(1) lack of primitive hash tables (2) lack of primitive arrays

I'll note that if there are primitive arrays and the compiler optimizes arithmetic, the rest of the hash table can be implemented in Bel.

Also, maybe a Sufficiently Smart Compiler could prove that a list's cdrs will never change, store it in cdr-coded form, and treat it like an array (with the ability to zoom right to, say, element 74087 without chasing a bunch of pointers).

This all sounds like it would make an interesting blogpost/article if you're into writing one.

I'm surprised people put up with them

I don't like them at all but I do most of my Netflixing on my iPhone, where it doesn't happen.

(When I do go to the Netflix site in a web browser I sometimes temporarily use "Mute site" which is a pretty crazy thing for a site for watching movies to make you want to do!)

GNU Mcron 8 years ago

“[A]lmost anything ending in ‘x’ may form plurals in ‘-xen’ (see VAXen and boxen in the main text). Even words ending in phonetic /k/ alone are sometimes treated this way; e.g., ‘soxen’ for a bunch of socks. Other funny plurals are the Hebrew-style ‘frobbotzim’ for the plural of ‘frobbozz’ (see frobnitz) and ‘Unices’ and ‘Twenices’ (rather than ‘Unixes’ and ‘Twenexes’; see Unix, TWENEX in main text). [...] The pattern here [...] is generalization of an inflectional rule that in English is either an import or a fossil (such as the Hebrew plural ending ‘-im’, or the Anglo-Saxon plural suffix ‘-en’) to cases where it isn't normally considered to apply. This [...] is grammatical creativity, a form of playfulness.”

http://catb.org/jargon/html/overgeneralization.html

That is what it means. Note that the lines ("edges" in graph theory terms) can cross each other.

Nelson asked: What is the smallest number of colors that you’d need to color any such graph, even one formed by linking an infinite number of vertices?

The Wikipedia page describes the infinite-vertices version of this graph as

an infinite graph with all points of the plane as vertices and with an edge between two vertices if and only if the distance between the two points is 1.

This of course is impossible to draw but Wikipedia shows seven-vertex and ten-vertex subgraphs of it:

https://en.wikipedia.org/wiki/Hadwiger%E2%80%93Nelson_proble...

SQL Keys in Depth 9 years ago

RFC 2392 Message-ID values are supposed to be unique, but they may not be if the software generating them is buggy. I remember reading somewhere about some email program that assumed they were unique (in effect using them as a natural key). If you were unlucky enough to get messages with identical Message-ID values, all but one would disappear.

Esperanto has many many more speakers! (People joke about Klingon having more but it's not true.) Really accurate numbers are hard to come by but even based on estimates, it's no contest:

"Arika Okrent guessed in her book In the Land of Invented Languages that there might be 20–30 fluent [Klingon] speakers."[1]

"In 2009 Lu Wunsch-Rolshoven used 2001 year census data from Hungary and Lithuania as a base for an estimate, resulting in approximately 160,000 to 300,000 to speak [Esperanto] actively or fluently throughout the world, with about 80,000 to 150,000 of these being in the European Union."[2]

In fact, Klingon has fewer total speakers than Esperanto has native speakers:

"As of 1996, there were 350 or so attested cases of families with native Esperanto speakers. Estimates from associations indicate that there are currently around 1,000 Esperanto-speaking families, involving perhaps 2,000 children. In all known cases, speakers are natively bilingual, or multilingual, raised in both Esperanto and either the local national language or the native language of their parents."[3]

(Also Esperanto is much easier than Klingon, has much more material to read, and is spoken by a wider variety of people than just science fiction fans, though there are plenty of those too.)

[1] https://en.wikipedia.org/wiki/Klingon_language#Speakers

[2] https://en.wikipedia.org/wiki/Esperanto#Number_of_speakers

[3] https://en.wikipedia.org/wiki/Native_Esperanto_speakers

EDIT: The "160,000 to 300,000" quote was from an older version of the Wikipedia page (I based this comment on an old comment of mine). The current version has various estimates, including Lindstedt's ballpark figures of "10,000 speak it fluently" and "100,000 can use it actively".

It would be nice if Go made a new i for each iteration of the loop.

Lua 5.0 made just one loop variable per loop, like Go apparently does. When I first ran into this behavior, I thought that, although it wasn't what I expected, it made at least as much sense as what I was expecting. Since then, every single time I've been in a situation where the two ways of doing it gave different results, I've wanted the "separate variable for each iteration" behavior, so I was glad when Lua's creators changed loop variables to work like this in Lua 5.1.

(Before this change I would just do the Lua equivalent of your "Creates a new `i`" line.)

I have talked to other people who found CGI Peter Cushing convincing but I did not. I'm confident I would have picked him out as CGI even if I hadn't recognized him as a long-dead actor. (Same for CGI young Carrie Fisher.)

(Still impressive, though, and I expect the uncanny valley to be bridged within the next five, maybe ten years.)

Wikipedia says that MP3's last patent expired in the United States last month:

If only the known MP3 patents filed by December 1992 are considered, then MP3 decoding has been patent-free in the US since 22 September 2015 [...] If the longest-running patent mentioned in the aforementioned references is taken as a measure, then the MP3 technology became patent-free in the United States on 16 April 2017 [...].

https://en.wikipedia.org/wiki/MP3#Licensing.2C_ownership_and...

Wikipedia also says (unless I'm missing something) that all the MP3 patents have already expired everywhere else too. If this is true, then Fraunhofer is ending their licensing program just because they don't want to bother getting people to pay for something they can now legally have for free.

Unfortunately I can't find a source for this but I saw someone saying recently (and it makes sense) that a lot of congress fax numbers just convert the fax to an email message rather than physically printing it out.

There are spots where a vertex would have two hexagons at it rather than three.

For instance, look at the border between the upper left and lower left islands. In this picture, those two islands are only touching along a third of the border that they share on the sphere. If you look at the leftmost point of where they are touching in this picture, that's a vertex that would have only two hexagons.

Read about Thomas Tempelmann's and Mike Pall's disk copy programs for the Commodore 64 and 1541 disk drive:

http://www.pagetable.com/?p=647

http://www.pagetable.com/?p=656

From the second article:

It worked by transferring the "live" GCR-encoded data from the 1541's disk head to the C64 and simultaneously doing a fast checksum. Part of the checksumming was done on the 1541, part was done on the C64. There simply weren't enough cycles left on either side! Most of the transfer happened asynchronously by adjusting for the slightly different CPU frequencies and with only a minimum number of handshakes. This meant meticulous cycle counting and use of some odd tricks.

(pro tip: a b'foo' object in Python2.7 or Python3 isn't "a bytes", it's "a bytestring".)

Quotes from the Python 3 documentation:

Bytes literals are always prefixed with 'b' or 'B'; they produce an instance of the bytes type instead of the str type.

class bytes([source[, encoding[, errors]]])

Return a new “bytes” object, which is an immutable sequence of integers in the range 0 <= x < 256. bytes is an immutable version of bytearray – it has the same non-mutating methods and the same indexing and slicing behavior.

https://docs.python.org/3/library/functions.html#bytes

https://docs.python.org/3/reference/lexical_analysis.html#st...

"vi"[1] is a very influential text editor created in the 1970s (and still used today). This "family tree" show a bunch of other old text editors that directly or indirectly influenced or inspired vi. (For example, George Coulouris's "em" was based on Ken Thompson's "ed". Bill Joy and Chuck Haley's first version of "ex" -- an ancestor of vi -- was based on "em".)

[1] https://en.wikipedia.org/wiki/Vi