Recent submissions

Comment · 1 year ago
Looking at Inferno book 4 (the virtuous pagans), Jacopo gives us notes for the Pleiad Electra at 4.121; for Hector at 4.122; Julius Caesar at 4.123; Camilla and Penthesilea at 4.124; Latinus at 4.125; Brutus, Julia, Marcia, and Cornelia at 4.127; Saladin at 4.129; Democritus at 4.136.

But he does not give notes for Abel, Noah, Moses at 4.55; Abraham, David, Israel and Rachel at 4.58; Homer, Horace, Ovid and Lucian at 4.88; Aristotle at 4.130; Socrates and Plato at 4.133; Diogenes, Thales, Anaxagoras, Zeno, Heraclitus, and Empedocles at 4.136; Dioscorides, Orpheus, Cicero, Linus, and Seneca at 4.139; Euclid, Ptolemy, Hippocrates, Galen, Avicenna, and Averroës at 4.142.

So Jacopo, at any rate, thought that readers might need help with mythological and historical references, but not with biblical and philosophical; or maybe he thought it was clear enough from the text that Diogenes, Thales, Anaxagoras, etc. were pagan philosophers. But Guido da Pisa's 1328 commentary has detailed notes on all of these. So there must have been readers who wanted more information on these figures.

Comment · 1 year ago
I am not sure that "Dante is clearly writing in the expectation that his audience will know these references" as claimed in the article. He put a lot of learning into the work, and maybe he had in mind an ideal reader who could follow the most obscure of references, and appreciate all the allegorical meanings, but it's noticeable that the narrator of the poem is always asking naïve questions and getting rebuked for his ignorance by Virgil and Beatrice. Readers who don't understand everything in the poem can thus feel that they are in a similar position to the narrator.

And as soon as the poem was published, people started writing explanations for the difficult bits. Dante's son Jacopo wrote a commentary in 1322, Graziolo Bambaglioli wrote another in 1324, and by the end of the 14th century there were at least fifteen. This shows that the poem quickly found an audience that was not familiar with all the references.

Comment · 3 years ago
Language models are based on probabilities of tokens appearing in a context. For illustration purposes, imagine a very simple model with just one token of context that has been trained on a corpus of three sentences, all of which are true, for example:

    clouds are white
    crows are black
    swans are white
After the model outputs "crows are", the single token of context is "are", and the probabilities are 2/3 for "white" and 1/3 for "black". So the model usually emits "crows are white", which is false, despite being trained on a corpus of true statements. Statistically "white" was more likely to follow "are" in the training data, so the same is the case of the model's output.

Of course LLMs have a much larger and more complex context than the single token in my example. But if the training data contains many news stories about professors being accused of sexual misconduct (which is newsworthy), and few news stories about professors behaving with propriety (which is not), then when querying the model for a story about a professor then it is likely to reproduce the statistical properties of its training data.

Comment · 3 years ago
Another way to sum a column of numbers uses calc:

  M-x calc-grab-rectangle RET V R +
Comment · 3 years ago
A couple of issues that came up for me when porting from x86 to ARM recently:

1. The x86 architecture gives programmers a lot of memory ordering guarantees, so that communication of values between threads does not usually need memory fences. ARM64 does not give so many guarantees, meaning that multi-threaded code may need additional memory fences to avoid data races. But data races due to out-of-order memory updates are hard to diagnose.

2. Page size in macOS is 4 kB on x86, but 16 kB on ARM, so if someone has hard-coded the page size rather than calling sysconf(_SC_PAGESIZE) this may need to be discovered and fixed.

Comment · 3 years ago
Comment · 4 years ago
Comment · 7 years ago
Comment · 7 years ago
A warning heuristic needs to have a low false positive rate; a low false negative rate is nice but is not necessary. The purpose of a warning is to detect some common errors without inconveniencing too many correct programs. If some other errors go undetected then that is a shame but at least it is no worse than the current situation.
Comment · 7 years ago
Comment · 7 years ago
This seems like a good idea to me, since there's evidence that programmers are making this mistake, and the proposal is to add a warning only for the expressions that are most likely to be mistakes, that is 2^{decimal integer literal} and maybe also 10^{decimal integer literal}. There are many constructs that are well-defined in C, but where it is helpful to have warnings: use of = in condition expressions, implicit fallthrough in switch statements, misleading indentation, unsafe multiple statement macros, and so on. Programming in C is hard enough that every bit of compiler support is valuable.
Comment · 7 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton