Sunday, March 31, 2019

A Tiresome Bias

In Word and Object, section 36, W.V.O. Quine makes the curious remark that
  Our ordinary language shows a tiresome bias in its treatment of time. Relations of date are exalted grammatically as relations of position, weight, and color are not. This bias is of itself an inelegance, or breach of theoretical simplicity.
And for the purposes of his canonical notation, he drops all tenses but the present, using "before now" and "after now" as useful.

In the former of The Blue and Brown Books, Wittgenstein writes
And when we are worried about the nature of thinking, the puzzlement  which we wrongly interpret to be one about the nature of a medium is a puzzlement caused by the mystifying use of our language. This kind of mistake occurs again and again in philosophy; e.g. when we are puzzled about the nature of time, when time seems to us a queer thing.
And a few pages farther on,
It was such a "contradiction" which puzzled Saint Augustine when he argued: How is it possible that one should measure time? For the past can't be measured, as it is gone by; and the future can't be measured because it has not come. And the present can't be measured for it has no extension. The contradiction which here seems to arise could be called a conflict between two different usages of a word, in this case the word "measure". Augustine, we might say, thinks of the process of measuring a length: say, the distance between two marks on a traveling band which passes us, and of which we can see only a tiny bit (the present) which passes in front of us.
Locke writes, without naming St. Augustine,
The answer of a great man, to one who asked what time was "Si non rogas, intelligo', (which amounts to this; the more I set myself to think of it, the less I understand it,) might persuade one, that time, which reveals all things, is itself not to be discovered. Duration, time, and eternity, are, not without reason, thought to have something very abstruse in their nature.  But however remote these may seem from our comprehension, yet if we trace them right to their originals, I doubt not but one of those sources of all our knowledge, viz. sensation and reflection, will be able to furnish us with these ideas, as clear and distinct as many other, which are thought much less obscure; and we shall find, that the idea of eternity itself is derived from the same common original with the rest of our ideas.
(An Essay Concerning Human Understanding, Book II, Chapter XIV, Section 2.)

Friday, March 29, 2019

Character Sets

It has occurred to me that some confusions would never mislead a couple of classes of programmer: the one who started about 1970 and retired about 1995; the one who will start in 2025. The first will have spent a career in a world where every character may be represented in an 8-bit byte, most of them in only 7 bits, in so-called US ASCII. (Yes, I'm ignoring IBM and the world of EBCDIC.) The second will have a career in which Unicode is everywhere, and nobody confuses bytes and characters. But perhaps I should date the latter's career from 2025, or later

For the first programmer the bit pattern 01000001 (decimal 65) meant 'A'. It was the sole representation for 'A'. For the second programmer, code point 65 is 'A', but code point 65 may be represented in many ways: identical to US ASCII if the Unicode representation is UTF-8; with an all-zero byte preceding or following in the UCS-16 representations; for all I know, whistled on a bosun's pipe or carved on a rock. The second programmer knows that always and everywhere there is a distinction between bytes and characters, even if a particular encoding maps them one-to-one.

I live in the uneasy world betwixt and between. I know that a string is made up of characters, and a byte sequence of bytes, but the distinction is not generally in my thoughts. Most of the time, I can pretend strings and byte sequences are the same. Now and then, I can't.

Recently I have been helping a co-worker by pulling data from the internet and using scripts to transform it. Today one of the scripts failed with an error: it encountered the character 0x95, which is not valid within UTF-8. As it happens, 0x95 represents a bullet in the code set CP-1252. I had a look at the headers of the web page, and was not greatly surprised to discover that they included "charset=UTF-8". Changing the script to read the page as CP-1252 resolved the difficulty.

This was not the first time that I have encountered such a difficulty. The word has gone out among developers--of web frameworks, at least--that one should always announce the character set. The users of the frameworks, though, haven't always heard that one should ensure that the data provided is in the character set announced.

Sunday, March 24, 2019

Thought Experiments

Noted in Wittgenstein's Philosophische Grammatik,  Part I, section VII, 106:
A  thought experiment amounts to an experiment that one does not carry out, but rather sketches out, paints, or describes. And the result of the thought experiment is the imaginary result of the imaginary experiment.
In Book I of Emile, or On Education, I find
I have chosen to give myself an imaginary pupil, to hypothesize that I have the age, health, kinds of knowledge, and all the talent suitable for working at his education, for conducting him from the moment of his birth up to the one when, become a grown man, he  will no longer have need of any guide other than himself. This method appears to me useful to prevent an author who distrusts himself from getting lost in visions. He will soon sense, or the reader will sense for him, whether he follows the progress of childhood and the movement natural to the human heart.

Friday, March 22, 2019

The Older Programmer

Blake sent along a link to a posting by a man who noticed that there weren't any programmers older than forty due to present at the PyGotham, a Python conference he was organizing. It had caught Blake's eye, for he is over forty, and I read it with interest, for I am over sixty. A number of points occur to me.
  • Many of us over fifty likely work with applications considered to be "enterprise" software, which is seldom glamorous or even much publicized, but keeps organizations running. There must be conferences at which one might speak about Microsoft Dynamics "integrations", ways of pulling external data into an accounting system. I don't know what those conferences might be, I doubt even those in attendance consider the work glamorous, but organizations using Dynamics for accounting need those integrations to work; they can be set up better or worse; and the difference between better and worse directly affects the work of those in the accounting department.
  • In general, our work may be useful but not exciting. Probably nothing of what I do with Python would excite the folks who attend PyGotham. Yet, I can think of a few small systems using Python that I put together, or had a hand in, that we use regularly, and that quite a few people rely on.
  •  We may have other things to do than present at conferences. As I recall, the last time I did a presentation (at a regional Oracle users' group meeting--see, enterprise and unexciting), it was about a year and a half before we purchased a house needing a great deal of work. Did that have to do with the lapse in presenting? It could have.
Would I care to be out looking for a job at my age? I would not. But I think I have some productive coding in me yet.

Thursday, March 14, 2019

Dan Jenkins, You Should Be Living at This Hour

My first reaction to the news of the indictments for fraud involving college admissions was weariness. The scale of the the fraud was a mild surprise. Yet over the years there has been plenty of reporting on efforts to rig admissions for the well to do.

By the evening, though, I wished that Andrew Lelling could have announced the indictments in time for the late Dan Jenkins to have had a good laugh. Jenkins  tended--or so I read him--to regard universities as founded to be the marketing, facilities, and operations arms of football and basketball teams. He had, I thought, a distrust for any institution that might try to assert academic priorities. He was not wrong to see hypocrisy in NCAA rules. Whether the changes he had in mind would have removed the hypocrisy yet preserved college sports, I don't know.

I do think that Jenkins would have enjoyed this. The schools involved are mostly not the big Football Bowl Subdivision powers, unless Clemson, Alabama, and Ohio State are buried in the footnotes. Instead we have Stanford, Georgetown, and Yale. The sports are not the revenue sports of football and basketball--where it would be hard to hide an inferior athlete--but tennis, rowing, water polo. I wish I could have read his column on this.