tag:blogger.com,1999:blog-43512977677430491232024-02-07T19:15:49.444-05:00Alan Knight's blogAlan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.comBlogger49125tag:blogger.com,1999:blog-4351297767743049123.post-21938890118353346102019-08-21T19:29:00.001-04:002019-08-21T19:29:20.292-04:00The standard encoding of Dart source files is UTF-8Today I spent far more time than I'd intended trying to figure out if I can rely on Dart source files being stored as UTF-8. The spec doesn't say anything about file encodings at all, and just says that "source text is represented as a sequence of Unicode code points" (section 20.1)<br />
<br />
It's hard to find anything definitive, but the strongest practical factor seems to be that the Dart Common Front End Scanner has two scanner classes: <a href="https://github.com/dart-lang/sdk/blob/71cd8a6efafa955e78ce0599bd150ad9d589357a/pkg/front_end/lib/src/fasta/scanner/string_scanner.dart#L23" target="_blank">StringScanner</a> and <a href="https://github.com/dart-lang/sdk/blob/0e201edeeb235533292c569f2fcd0388849f3841/pkg/front_end/lib/src/fasta/scanner/utf8_bytes_scanner.dart#L25" target="_blank">Utf8BytesScanner</a>. The StringScanner expects a String, and Dart's native String representation is UTF-16, like Chrome. When reading bytes, like from a file, it always uses the Utf8BytesScanner. And trying to run a Dart program in UTF-16, either with or without a BOM, does not work well.<br />
<br />
So I conclude that UTF-8 is the only accepted encoding. And since it's hard to find this out, I'm making this blog post so that future me, or someone else searching, can find this out more easily. Or someone can tell me I'm wrong.<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-17020894748042334752014-04-15T00:09:00.000-04:002014-04-15T00:09:15.273-04:00Dubious Panegyric<span style="font-family: Arial, Helvetica, sans-serif;">Another one of Rixford Knight's articles from the Atlantic, and a couple more photographs. My father was particularly fond of the line "I'd walk a mile to kick a goat."</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJHfTE1ppGFkgV8WoXzKuX5IHhXj_inYhcRDDGN7kmyzOiTcadEtbvadSd4bXzdnv9l9I8avr8uIR0sBRGkux-Wj_WX9wufKrzouPCbTRGKJlJg-qS2BhKcW8zPsHMSw5KYnNdTn8RjVHz/s3200/IMG_0013.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJHfTE1ppGFkgV8WoXzKuX5IHhXj_inYhcRDDGN7kmyzOiTcadEtbvadSd4bXzdnv9l9I8avr8uIR0sBRGkux-Wj_WX9wufKrzouPCbTRGKJlJg-qS2BhKcW8zPsHMSw5KYnNdTn8RjVHz/s3200/IMG_0013.jpg" height="320" width="220" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhz7cwFGCm1pFbo3qv4fmmzD8Au4lUAZzqTsbZHPx1zYvvsO_1UBMq9u-Die2Jzh31ll5nBgk5_sWpBIiuNpUNcIc4tB7g9MSA4v8ZUgOLFcW-jZ6rbo-Fh8I3Zzs2vw6IZ71rW_iSSYzO/s3200/IMG_0014.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhz7cwFGCm1pFbo3qv4fmmzD8Au4lUAZzqTsbZHPx1zYvvsO_1UBMq9u-Die2Jzh31ll5nBgk5_sWpBIiuNpUNcIc4tB7g9MSA4v8ZUgOLFcW-jZ6rbo-Fh8I3Zzs2vw6IZ71rW_iSSYzO/s3200/IMG_0014.jpg" height="320" width="258" /></a></div>
<br />
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b>Dubious Panegyric</b></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">by Rixford Knight</span></span></div>
<b id="docs-internal-guid-7492271c-3fe5-10b2-7f92-c518d679a945" style="font-weight: normal;"><span style="font-family: Times, Times New Roman, serif;"><br /><span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">The poor man's cow is a sensitive index to business conditions because, when things get tough, lots of people begin to think about getting a goat. Correlation is inverse, of course – the more goats the less business.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Possession of a goat may also be an indication of intellectuality. Even in dire circumstances, only a person of considerable originality would think of getting a goat. Several of my friends have goats and they are all originals.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">We may have something here, and I hope so because I have been rationalizing for years trying to justify my keeping a goat. I have hitched her to a wagon, taught her tricks, eaten her progeny, and milked her, and have not yet found a reasonable basis on which to excuse my ownership of her.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Whatever it indicates, the goat population in Vermont is on the increase. People are becoming "goat conscious." I have this from the lady who sold me my goat and who wished me to understand that the expression meant that the demand for goats was increasing, and that her price was not unreasonable.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Another goat dealer whom I interviewed assured me that once I had kept a goat I would never be without one. I can appreciate this too, because once you have a goat it is very hard to get rid of her. There are sound economic reasons why it is hard to dispose of a goat, but there are other reasons also. It is hard to love a cow, who has no personality and does nothing but give milk, but a goat abounds in personality and becomes as much a part of the family as a mischievous dog – even more than a dog, because a goat's capacity for mischief far exceeds a dog's.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Legend has it that goats will eat tin cans, but this is not so. They will eat only the labels from tin cans, and even here they are fastidious and will not eat the labels from corned-beef cans. This is not out of sympathy for a sister ruminant, because they will eat dried beef scraps if the scraps are salted.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">A goat likes apples but will not accept one from which you have first taken a bite. She will accept it, however, after the offending portion has been cut off with a knife, provided the knife has not previously been used to slice plug tobacco. A goat does not dislike tobacco, because she will eat cigarettes. I know one poor woman who denied herself a package of cigarettes a day in order to feed them to her goat who loved them so. The goat is dead and the poor woman is still alive – but this does not mean that cigarettes were bad for the goat that her deprivation of them was good for the woman because the woman is in better health now than when the goat was alive.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">It is said that goat meat tastes like mutton, but this has not been our experience. We could not eat it, and neither would the dog or the cat. On the other hand, some mutton that we bought tasted just like goat and yet we ate it, and so did the cat, but not the dog. Once we were given meat which was said to be goat and tasted like beef. We ate it gratefully and said nothing to anyone about the bullet we found in it. The dog and cat watched reproachfully while we ate.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">People who keep goats are even more interesting than the goats themselves. Not all peculiar people keep goats, but all people who keep goats are peculiar. This does not apply to foreigners, but it applies without fail to Americans not brought up in the goat tradition.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">People keep goats believing them to be a cheap source of milk. They need a cheap source of milk because they do not fit into the present established American way of life, and they do not fit this life because they are peculiar. Yet they are peculiar only if the American way of life is unpeculiar, which is not established.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">This makes a hard problem. If a person does not like singing commercials, baker's bread, working for a boss, or keeping up with the Joneses, he can avoid these things by moving to the country and keeping a goat. But keeping a goat involves many hardships. The person must decide whether he is inherently antipathetic to singing commercials and the like, or merely allergic to them from environmental causes. If the latter, it might be easier for him to train himself to like them – say in ten years – than to keep a goat and avoid them.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Of course it is possible to graduate from a goat to a cow. I have a cow but still retain the goat. A friend was more fortunate. He didn't like his goat and got rid of her. "You can't keep one behind a fence," he said. "So you have to tether her out – by a chain, not a rope. A goat is not like a pole bean that always runs anti-clockwise. And whichever way she runs she will stick to it and will immediately wind herself up on the stake and then tie a knot in the chain. She will stand still until you have got a knot nearly untied, and then will give you a jump and catch your thumb in the loop. I'd walk a mile to kick a goat."</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">But a cow is not the solution either. A cow gives lots of milk but she also eats lots. There is a saying that you should keep a number of cows or none at all.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">The man with one or two cows can't afford expensive haying equipment and will have to work by hand. A cow lives on pasture for six months and on hay for six months. While on pasture, she operates by wrapping her tongue around a tuft of grass, pulling it into her mouth, seizing it between her lower teeth and upper lip, and tearing it off. She does this steadily and stows away grass at about the rate at which a subsistence farmer, armed with a scythe, can cut hay, turn it, and lug it into the barn.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Now get the mathematics of this: six months pasture, six months barn. Farmer cuts hay at same rate as cow in pasture eats grass. Of course the cow must rest at times, and when she does, the farmer may feel free to drop his scythe and relax with his wife. But he must watch out. The minute the cow gets up from her nap he must go back to his scythe or he will be short of hay next winter and will have to buy some – which is fatal to the man who has been hoping to get away from Wall Street and the American way of life.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">My goat has kidded three times, the first time giving us one buck which, by a shrewd business maneuver, I succeeded in giving away. The next time she gave us two bucks, and the third time three bucks which didn't live for the christening. I am now holding my breath and wondering how the goat population manages to maintain itself, to say nothing of increasing.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Two lusty kids will take about all the milk an average doe can provide, and before being weaned may need more. It seems illogical to keep a goat in order to save the expense of a cow and then have to get a cow to feed the goats, but that is what one goat raiser had to do. He had two goats he wanted to sell. One, for $20, gave three quarts of milk a day. The other, for $40, gave three and one-half quarts a day. I detected an interesting, possibly formidable, mathematical progression here and, after several moments' thought, asked if a four-quart goat would cost $60 or $80. My efforts to discover the combination of his pricing system finally irritated the man and I left him and bought my goat from a woman who had only one for sale and whose pricing system therefore, as I have explained, was based on the immutable law of supply and goat consciousness.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">My doe gives a little under three quarts a day when she freshens, but keeps this up for only a couple of months. For a family with children it is necessary to have two goats and stagger their breeding dates six months.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Five or six goats will eat as much as one cow but will not give as much milk unless they cost more than the cow. Supply catching up with demand is unlikely to alter this cost ration in a way favorable to the goats, because it is not too hard to raise one calf, but raising five or six kids will drive a person crazy.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Looked at in another way, it is not economical for me to keep a cow that gives fifteen to twenty quarts a day when all I need is four or five. Of course there is butter, but by the time the utensils are washed we have spent two hours making it, and even at a dollar a pound we could do better with our time by buying butter. As for cottage cheese – don't mention the word to me.</span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">Here is an odd fact about dairy products. A given quantity of milk sells for a higher price than the cream taken from that milk. Butter made from that cream will bring less than the cream. In other words, the more work you put into it the less you get out of it. This is actually true if you can get retail milk customer who will pay up.</span></span></div>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: Times, Times New Roman, serif;">The same is true of goats as opposed to cows. In respect of time and the work involved, keeping a goat is an expensive way of getting one's milk. Yet the people who get their milk in this way seem healthier and happier than those who court efficiency and get their milk in a bottle. As I've said – people who keep goats are peculiar.</span></span></div>
<div>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com2tag:blogger.com,1999:blog-4351297767743049123.post-81801232323855382932014-03-01T20:27:00.000-05:002014-03-01T20:27:23.159-05:00Idyl of the P.S. Corp.<span style="font-family: inherit;">On the general theme of family history, I thought I'd post one of my grandfather's articles from the Atlantic Monthly in the 1950's, when he was living on a farm in Vermont. This is a favourite story, and one that nicely captures the Knight family ethos.</span><br />
<span style="font-family: inherit;"><br /></span>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWnuzhJi_WkLrIKNSfpPruhLjanbmbUu7O-LY70Wg62bCS-05ce5mqfdJhi0kffLcuwmgd2eH_cjXjHx3pjh_zV0pM5H9uBnR25nUks6gWAy8XY9ocO6r7VbTQxRMFnPJ1EdaaZ0dWzmGk/s1600/IMG_0016crop.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWnuzhJi_WkLrIKNSfpPruhLjanbmbUu7O-LY70Wg62bCS-05ce5mqfdJhi0kffLcuwmgd2eH_cjXjHx3pjh_zV0pM5H9uBnR25nUks6gWAy8XY9ocO6r7VbTQxRMFnPJ1EdaaZ0dWzmGk/s1600/IMG_0016crop.jpg" height="424" width="640" /></a></div>
<span style="font-family: inherit;"><br /></span><span style="font-family: inherit;"><br /></span>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<h2>
<span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="font-family: inherit;"><b>Idyl of the P.S. Corp</b></span></span></h2>
</div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">by Rixford Knight</span></div>
<span style="font-family: Times, Times New Roman, serif;"><b id="docs-internal-guid-44eba2b8-8039-d92e-120f-20f54f74de46" style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
</span><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">When pressure from the family decided me to have electricity brought up to the farm, I was told by the Public Service Corporation that since I was not on a power line I would have to put five poles. I could do this myself, or they would do it for me at a cost of $18 a pole. I did it myself, using spruce trees from the wood lot. My only cash outlay was the $5 deposit required by the company before they would wire the poles and install the meter.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I found it pleasant to have electric lights on the farm, and it was convenient when a cow got sick or anything, but I was irked about the company's having the use of my $5 deposit, which might have been drawing interest for me at the savings bank at the rate of 1½ percent or seven and one-half cents a year. So when the first month's electric light bill came I tucked it back of the kitchen clock. I did the same with the bills for the two following months.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">So long as the total of these bills did not exceed the amount of my deposit the Public Service Corporation did not worry much; but five days after receiving the third month's bill I got a notice from the company, printed in blue ink, noting the amount of my arrears, and warning that if my account was not settled within ten days they would have to remove my meter. "The cost of re-installation will be $2" was their supercilious postscript. I paid this notice on the eighth day.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">By doing this I saved a three-cent stamp and a half-cent envelope on each of first two bills.Three and one-half cents time two is seven cents. The other half cent I was willing to forgo on account of the extra three and one-half cents it cost the company to mail me the blue-ink notice and the annoyance it undoubtedly caused them. We carried on on this basis for five years till the spruce poles I had set up rotted at the base.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">But three years and seven months before this a neighbor, three poles farther up the road, had had electricity installed. He used my poles, of course. Also a second neighbor, five poles past the first, was using my five and the first neighbor's three.
</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I now represented to the light company that since my first neighbor was using eight poles, five of which were mine, he ought to stand five eighths of the expense of my five new poles. And my second neighbor, who was using a total of thirteen poles, ought to pay five thirteenths of the cost. This would make their combined contributions 105/104ths of the total cost of my new poles.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I told the electric light company that this time I might wish to have them set up the poles themselves, at so much a pole, and asked them to submit an estimate, at their earliest convenience, of the probable amount of their remittance to me per pole upon completion of the transaction. They replied that the simplest way would be for them to consider me as now being on a power line and to erect the poles at their own expense.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I agreed to the company's proposition, but at the same time I could not ignore the implication that if I was a power line now, I had also been a power line three years and seven months earlier when my neighbor had started using my poles. In effect the power company had been using my poles to their profit for that length of time and should have reimbursed me for a proportionate amount of the original labor cost of my five poles. I estimated that at the rate of seven cents every three months it would take a lifetime to liquidate the indebtedness and I felt justified in putting my Fabian tactics in connection with the bills on a year-round basis.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">My next extra-routine dealings with the Public Service Corporation came three years later, at a time when the matter of rates was up before the state utilities commission. I received a form letter from the company saying that because of our long and mutually profitable relationship and my consistently prompt payment of my bills they were pleased to refund me my original deposit of $5.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I felt more amicably inclined toward the light company after this, but since they still owed me for their share of the original poles after I became a power line, I saw no reason to change my habit with regard to the bills. However, something must have gone wrong in the mails, because two months and fifteen days later the Service Corporation drove up and removed my meter. I offered to pay the two bills, but they insisted on the $2 re-installation fee in addition. This I refused to pay and they drove off with my meter.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">They thought, of course, that pretty soon I would come hurrying to them with $2 in my outstretched hand, begging for re-installation of my meter. But I'm not one to be pushed around by these big monopolies and I determined to teach them a lesson.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I had always felt -- and had explained to my family many times -- that these electric gadgets the monopolies press you to buy, and then sell you current for, are not really necessary anyhow, and that in the end we lose by having them. The electric washing machine is a case in point.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Before the advent of the electric washing machine the women washed what needed to be washed and that ended it. But now that the P.S. Corp. does the work for them, everything in the house needs washing. Once a week regularly the house is thrown into a turmoil of frantic search for anything with a woof or a warp. Sheets are yanked from beds, and cases from pillows. Curtains are pulled down, exposing finger marks on windows which augur poorly for peace the following day. Closets are ransacked; bags of garments are dumped and sorted into whites and non-whites. Socks are held up between thumb and fastidious forefinger for an inspection they never pass.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">If a wind is blowing and the sun is warm, blankets, portieres, rugs, couch covers, and mattress covers are all deemed in need of cleansing and add their quota to the profits of the P.S. Corp. Children are run after and their pockets searched for the last handkerchief that is not neatly folded into a square and devoid of all wrinkles. Gentlemen stealing into pantries for a glass of milk and a cracker, as substitute for their midday meal, are harried with such questions as "When did you last change your underwear?" Everywhere is a melee of lather, suds, splashings, arguments, and soggy clothes hanging face-high on sagging lines.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">All this, to the loss of the P.S. Corp., would be over with. We would return to the days of sanity. I mapped out our household regimen. We would rise with the sun and would toast our bread as it ought to be toasted -- on the back of the good wood stove. During the day we would do such chores as needed to be done, and in the evenings, instead of enduring the blaring radio and glaring light bulbs, I would entertain by reading aloud pertinent chapters from Thoreau by the soft light of the kerosene lamp. Then we would retire for a long and peaceful rest.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Now began for my family and myself a series of idyllic days and nights free from the domination of the machine age and the exactions of the P.S. Corp.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Because the electric pump was no longer operating, the flush toilets could not function, so I began immediately the construction of an outdoor privy. I enjoyed every minute of designing and working on this structure. I believe, from my experience on it, that an entirely new economy could be built up around the individual incentives derived from frustrating the P.S. Corp., and that it would work far better than one based on the profit motive.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Because water had to be fetched in pails from the well, washday lost all of its fearsome character. Washing became a matter of boiling an occasional handkerchief or the lower end of a pair of socks in a cup of water.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">With the radio out of commission it became possible to get the children to do a little work in the garden and a little studying in the evening. Studying made them sleepy, so it was possible to get them to bed and out of the way for that quiet hour that is the delight and support of parents.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">With the refrigerator no longer in use, odd saucers and bowls that had been missing for months began to re-appear. Butter became spreadable. Frozen junkets flavored with vanilla, lemon extract, or even almond, were replaced by honest pies and cakes.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Also the whine of the vacuum cleaner was no longer heard in the land.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">It is in this connection that I have to report a certain measure of non-cooperation on the part of members of the family. An inordinate amount of rug-beating seemed to be required, and it always seemed to happen that I was the only one around at the time it had to be done. However, I was supported in this work by knowing that the board of directors of the P.S. Corp. were sitting around their mahogany table worrying about the decline in profits I was causing them and wondering what to do about it. One hundred and twenty-five good thwacks for each of the twelve directors and the rug-beating job was done.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">No small part of the satisfaction I got from defeating the P.S. Corp. came from estimating the amount of their loss and of my own savings. At the end of every month I spent a happy hour figuring these amounts in detail. Then I placed that amount of money in an envelope marked "for flashlight batteries" and tucked it back of the kitchen clock.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Times, Times New Roman, serif; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">This happy situation might have continued indefinitely if I had not been called away for a few days on business. When I returned I was met by the blare of the radio, the whine of the cleaner, the slopping of suds, and the smiles of the members of my family. I was not unconsolable. During my absence the P.S. Corp. had acknowledged defeat and re-installed my meter.</span></div>
<span style="font-family: inherit;"><br /></span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span>
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span>Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-62409904227604363822013-12-26T14:27:00.004-05:002013-12-26T14:46:51.675-05:00In memoriam, John Knight, May 3 1936 - Dec 22, 2013I'm sad to say that my father, John Knight, passed away on Sunday evening. There will be a service Monday the 30th and I'm appending the text of and a link to the <a href="http://www.legacy.com/obituaries/ottawacitizen/obituary.aspx?n=john-knight&pid=168745281#sthash.7b3xFUIR.dpuf">obituary</a>. He was a wonderful father and a much-loved professor, and will be very much missed by all of us.<br />
<br />
-----------------------<br />
<br />
John Knight passed away peacefully at home in Ottawa on December 22, 2013. He is survived by his wife Norma (nee Evans); brother Bill (Eileen); three sons, Alan of Seattle (Kirsten Carlson), Douglas of New Westminster (Ruth Silverman), and Scott of Toronto (Natalie Fong-Yee); two grandchildren, Marisa and Charlotte; and several nieces and nephews. Predeceased by his mother Mary, father Rixford, and sister Margaret (the late Robert Diehl).<br />
<br style="margin: 0px; padding: 0px;" />
John was a Professor of Electrical Engineering at Carleton University since 1967 and remained there until well after retirement. Thousands of engineering students will remember him fondly as an inspiring and entertaining lecturer who was always willing to help.<br />
<br style="margin: 0px; padding: 0px;" />
A memorial celebrating John's life will be held Dec. 30 at 2:00 p.m. at Riverside United Church (3191 Riverside Dr, Ottawa). In lieu of flowers, donations to Stride Wheelchairs Plus or the charity of your choice.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib77HGx2iAp9GIF6cOF0HvxVTyIgM5Qpm0uvJ9r3sesvEAquw4zZUZLAitNVv18gqCXtBiQuNyhSJ6hMOY87gRPAfKVtIt-dw4wxg4IIBemhpsAA56-CblZEPI7PuWJ08G1PjvL5YZ6FqR/s1600/john+Final++April6+2013.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib77HGx2iAp9GIF6cOF0HvxVTyIgM5Qpm0uvJ9r3sesvEAquw4zZUZLAitNVv18gqCXtBiQuNyhSJ6hMOY87gRPAfKVtIt-dw4wxg4IIBemhpsAA56-CblZEPI7PuWJ08G1PjvL5YZ6FqR/s320/john+Final++April6+2013.JPG" width="264" /></a></div>
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com1tag:blogger.com,1999:blog-4351297767743049123.post-92229646424849141632013-06-18T19:35:00.002-04:002013-06-18T19:35:32.018-04:00STIC 2013 - video and slides for my talkI've recovered a bit now from the STIC 2013 conference. The <a href="http://www.jarober.com/blog/blogView?entry=3548915066">video</a> for my talk "Modern Web Programming with Dart" is now available. I give a very quick overview of Dart and Web Components as approaches to improving web programming. You can also download the <a href="https://docs.google.com/file/d/1LRHbjvVQbRtaAoMh5Et4GP2RXiwe05_BqP2luJvOoRw-LbALB2MTwSPpnnBWqZ3u5OMDxnjPiQdvsxBW/edit?usp=sharing">slides</a>, which are a bit hard to read in the video.<br />
<br />
Other presentations are being added at Jim's site. The most recent is <a href="http://www.blogger.com/"><span id="goog_1316753569"></span>Dan Ingall's keynote talk<span id="goog_1316753570"></span></a>. On the loose theme of "My Favorite Things" Dan talked a selection of things he's been involved in over the years, starting with some quite interesting history about very early Smalltalk versions and how much they differed from Smalltalk-80, and ranging up through various Squeak projects and a short bit on the Lively Kernel. It includes running versions of some remarkably old software doing some remarkable things. This was part of the historical theme of the conference on the 30th anniversary of Smalltalk-80 being released to the world.<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-23569930472805709932013-06-13T20:42:00.001-04:002013-06-13T20:42:10.549-04:00Smalltalk for dessert - photo from STIC 2013<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-TiyB5Bj9qrFht4HIJEtY95b08RqB7j8EMEWf6khVlyPRv3MUnMjeID9J_HLFfZrPuTP74D_-lcCBHjCNQYg4gy2jf2Gy4trSS8WE4XxaWHs39eQl2W4jng9n1oMW15fpv9oDd5-viP3v/s1600/IMG_20130610_204300.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-TiyB5Bj9qrFht4HIJEtY95b08RqB7j8EMEWf6khVlyPRv3MUnMjeID9J_HLFfZrPuTP74D_-lcCBHjCNQYg4gy2jf2Gy4trSS8WE4XxaWHs39eQl2W4jng9n1oMW15fpv9oDd5-viP3v/s320/IMG_20130610_204300.jpg" width="320" /></a></div>
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-12043013331553953422013-03-17T12:48:00.002-04:002013-03-17T12:48:44.032-04:00<div>
Words of wisdom from Joachim Tuchel. Glorp expects your model to be internally consistent. I've had a number of questions from people who expect, when working with databases that it's enough to modify one side and then the database refreshing will take care of the other side. If you have a bi-directional relationship, and the two sides don't match, Glorp will complain when you try and write. Unfortunately, it complains when it gets down to the level of writing rows and sees that there are two different sources trying to write different values to the same field, which isn't always the most helpful in figuring out the original problem.</div>
<div>
<br /></div>
<a href="http://joachimtuchel.wordpress.com/2013/03/12/glorp-and-conflicting-values-in-rows/">http://joachimtuchel.wordpress.com/2013/03/12/glorp-and-conflicting-values-in-rows/</a><br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-2070384368002822022012-11-19T16:06:00.001-05:002012-11-19T16:06:08.849-05:00Internationalization, whether you want it or not...This week I'm in Denmark, and noticing some interesting software behavior that I've also seen on some previous trips to places where English is not the native language. Software companies are slowly figuring out that not everyone speaks English, and adapting the software based on the location. But they can be a little over-broad in applying it.<br />
<br />
For example, if I open a new window in Chrome and type a search into the taskbar, it by default searches on google.dk, giving me all the auxiliary text on the page in Danish. It does this on my computer, which has a locale setting that is not Danish, and even though I am both logged into my google account <b>and</b> signed into Chrome. If I click "Search" from the black bar at the top of the window it goes to the right place, but who actually does that instead of just opening a new tab and typing in the omnibox?<br />
<br />
Oddly, this only happens on the Mac laptop, not on the Chromebook.<br />
<br />
We also have Netflix, and as part of my determined attempt to stay awake until something like local bedtime I was watching it yesterday on the iPad. It warned me that some content might not be available, but generally worked well, but had decided that it needed to turn on Danish subtitles for me. Of course this a setting, and there's a button to change it in the upper right. I can't turn them off, but I have my choice of subtitles in Danish, Finnish, Norwegian Bokmål, or Swedish.<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com1tag:blogger.com,1999:blog-4351297767743049123.post-67599811455466516552012-11-17T00:42:00.000-05:002012-11-17T00:42:05.655-05:00QatqiA shout out to <a href="http://www.qatqi.com/">Qatqi</a>, a fun word game for iOS. And to the author, Chris Garrett, a former co-worker at The Object People. Since I'm flying nine time zones tomorrow, we'll see how it holds up to extended play...<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com1tag:blogger.com,1999:blog-4351297767743049123.post-84651589422534789832012-11-02T02:00:00.000-04:002012-11-02T02:00:05.499-04:00ChromebookWriting this on my new Chromebook, which I got yesterday. So still very early impressions at this point, but it seems pretty nice. It's light, but feel sturdy, and the display doesn't feel cramped - unlike the netbook. And it seems pretty decently responsive. Kirsten complains that the trackpad makes too much noise clicking, but she says the same about the MacBook Air. Clearly not a primary machine, but for the price it's quite remarkable, and seems like it'll be handy to have around. Now to figure out how useful it would be on a plane.Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-11068675404479643702012-06-01T02:05:00.001-04:002012-06-01T02:05:02.629-04:00Life at Google<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">It's getting close to being two weeks at Google. First week was in Mountain View, this week in Seattle. </span><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Beginning to feel less lost, the people on the team seem great, the perks are pretty cool, and I actually wrote a little teensy bit of real Dart code that got integrated, even if it didn't actually do anything (yet). </span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"><br /></span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Along with the technology learning curve, l</span><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">ots of fun paperwork to deal with. Here's a bit of trivia: Name the three places outside of the U.S. whose driver's license is accepted by Washington State as sufficient to get one of their drivers licenses without going through the whole testing process? Hint: Ontario is not one of them.</span><br />
<br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Starting to get the hang of Seattle a bit, though living (spouse-less and cat-less) in corporate housing until we get our house later this month. Tends to make one spend too much time at work, especially as there's free dinner at 6:30. This weekend I need to see if I can find a <a href="http://ottawarecsoccer.com/">rec soccer league half as good as the one I left behind in Ottawa</a> </span><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">and try to get some exercise</span><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">.</span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"><br /></span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"><br /></span>Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com1tag:blogger.com,1999:blog-4351297767743049123.post-16709674617039520452012-04-14T10:58:00.006-04:002012-04-14T10:58:53.001-04:00"Light Table" IDEChris Granger talks about the "<a href="http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/">Light Table</a>" IDE prototype. It doesn't remind me of anything :-)<div>
<br /></div>
<div>
The core interesting idea is presenting code with the values replaced based on evaluation as you're coding. That's pretty neat, but it's not clear to me how that scales up when the list of things you're executing doesn't fit on the screen any more, or when you start having loops that call the same code many times. But interesting ideas.</div>Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com2tag:blogger.com,1999:blog-4351297767743049123.post-87806202773376935702012-03-18T11:23:00.001-04:002012-03-18T11:23:21.149-04:00STIC Conference starts tomorrowThe STIC conference starts tomorrow in Biloxi Mississippi. Unfortunately, I'm not able to be there, due to a family commitment. This will be the first time I've missed the conference in quite a few years. I'm sad not to be able to be there, but it's hard to complain too much under the circumstances. I hope it all goes well, and best wishes to everyone attending. Hope to see you all next year.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSxBPPs4DAKEuc2ohMZZPPtlUyFbhw6tbXhnHAy7gEeDEUvnqeT6p3O8L6-4fUrQ32YB3w9Tc1oHQ9NgsO284ghI5dFQQ5cRCKP50UdOPeNSuj776agIM8omCEAHiRUX06WtTi3I56dQvt/s1600/P1010806.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSxBPPs4DAKEuc2ohMZZPPtlUyFbhw6tbXhnHAy7gEeDEUvnqeT6p3O8L6-4fUrQ32YB3w9Tc1oHQ9NgsO284ghI5dFQQ5cRCKP50UdOPeNSuj776agIM8omCEAHiRUX06WtTi3I56dQvt/s640/P1010806.JPG" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">If you look in between the building and the tower, roughly in the middle of the wall, then down, that's our place.</td></tr>
</tbody></table>
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-48084325725291502562012-01-26T18:47:00.000-05:002012-01-26T18:47:22.387-05:00STIC Conference Teasers: DartAt the STIC conferences we are focused on Smalltalk, but also like to present topics that are of interest to a Smalltalk audience. In that vein, our Monday keynote features <a href="http://www.stic.st/conferences/stic12/stic12-speaker-bios/eric-clayberg/">Eric Clayberg</a> of Google talking about the new Dart language. Dart is a new language for building structured web applications, and has been described by Dart lead engineer Lars Bak as having<br />
<br />
<ul>
<li>an object model from Smalltalk</li>
<li>compiler optimizations from Self</li>
<li>types from Strongtalk</li>
<li>concurrency from Erlang</li>
<li>syntax from Javascript and C</li>
</ul>
<div>
<br /></div>
<div>
and has generated a lot of interest and controversy during its short life. Eric describes himself as a "<i>life-long Smalltalker and current Googler</i>" and <a href="http://www.stic.st/conferences/stic12/stic12-abstracts/dart/">promises to explain</a> why Dart is "<i>his new second-favorite language</i>".</div>
<br />
<blockquote class="tr_bq">
"One of our key goals with Dart is "toolability", and as the person leading our tooling work, Eric is a key player in the development of Dart. With his extensive Smalltalk background he is a great person to be able to talk to a Smalltalk audience about Dart, the things that are inspired from Smalltalk, and the things it does differently." - Lars Bak, Google Inc.</blockquote>
<br />
<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com1tag:blogger.com,1999:blog-4351297767743049123.post-17736973366447602682012-01-14T15:12:00.000-05:002012-01-14T15:12:12.416-05:00STIC Conference Teasers: Big POOPThe Smalltalk Industry Conference <a href="http://www.stic.st/conferences/stic12/stic12-abstracts/">list of talks</a> is now up. One of the featured keynotes is Sam Adams,<br />with a talk entitled "Massive Parallelism + Object Oriented Programming = Big POOP". When he talks about massive parallelism, he's talking far beyond what we get today and questioning some of our fundamental assumptions. This is the same work that David Ungar talked about at the <a href="http://splashcon.org/">Splash conference</a> last fall, which had some nice lines about how we can get much more parallelism if we're not so hung up on getting the right answer...<br />
<br />
Here's Sam's abstract:<br /><br />
<blockquote class="tr_bq">
Object orientation has been very good to programmers. So has Moore’s Law, at least until we recently hit the single thread performance wall. We are now solidly in the age of parallelism, be it multcore, manycore, or massively parallel distributed systems. Both industry and academia have been wrestling with the complexities of this new reality for some years now, and yet no clear-cut solution has emerged to deliver both high performance parallel processing with high programmer productivity for mere mortals.<br /> <br />Since 2008 at IBM Research, David Ungar and I have been using Smalltalk along with a new manycore parallel virtual machine to explore new programming models in this space. In this talk I will share the history of this work, lessons learned, and where we think the future lies for massively parallel object oriented programming in Smalltalk.</blockquote>
<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com2tag:blogger.com,1999:blog-4351297767743049123.post-62617891552878953942012-01-11T16:19:00.002-05:002012-01-11T16:23:43.001-05:00Smalltalk Industry Conference List of TalksThe <a href="http://www.stic.st/conferences/stic12/stic12-abstracts/">list of talks</a> for this year's Smalltalk Industry Conference is now available. Some very interesting stuff, and the <a href="http://www.stic.st/conferences/stic12/stic12-fees/">early bird registration</a> ends this Friday. The list for the <a href="http://www.cincomsmalltalk.com/main/2011/11/smalltalk-directions-call-for-participation/">Smalltalk Directions Symposium</a> and a schedule should be available soon.Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-23118053324501965302011-12-07T18:08:00.001-05:002011-12-07T18:09:06.225-05:00Bugs are like prime numbers..."<i>Bugs are like prime numbers. You can never really find the last one. But after the first billion or so, they start to thin out a little bit..." - Brian Foote</i><br />
<i><br /></i>Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com1tag:blogger.com,1999:blog-4351297767743049123.post-22140597559906726572011-12-06T15:43:00.001-05:002011-12-06T16:05:30.836-05:00STIC submission deadlines coming soonThe Smalltalk Industry Conference 2012 is coming up March 19-21, and submission deadlines are coming up sooner.<br />
<br />
This year there are two parts to the conference, so there could be some confusion.<br />
<br />
- <b>Smalltalk Industry Conference</b>: This is the traditional Smalltalk Solutions program. To submit, you just need summary information for the talk. The presentations are, at least sometimes, recorded, but there aren't published papers. The deadline for those submissions is VERY SOON - <u>December 15th</u>. Call for participation is <a href="http://www.stic.st/2011/10/smalltalk-solutions-is-now-called-smalltalk-industry-conference/">here</a>.<br />
<br />
- <b>Smalltalk Directions</b>: This is the academic part of the conference, new this year. It accepts academic papers, which will be refereed and a selection of which will be submitted to the Journal of Object Technology. The deadline for those submissions is <u>January 6th, 2012</u>. The call for participation is <a href="http://www.stic.st/2011/11/smalltalk-directions-call-for-participation/">here</a>.<br />
<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-72888530383454017792011-12-05T11:50:00.001-05:002011-12-05T11:57:58.625-05:00Some nice words for SmalltalkAs part of a comment on an <a href="http://alanknightsblog.blogspot.com/2011/10/principles-of-oo-design-or-everything-i.html">earlier post</a>, <a href="http://www.blogger.com/profile/04230520603539406899">Bob Calco</a> writes some nice things about Smalltalk...<br />
<blockquote>
<span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px;">Now I'm getting into Smalltalk 'for real' and finding that the OO-ness of it is not even the main thing I find compelling: it's the live-ness of it. It's just easier to think about the abstractions 'in the present' as it were.</span> </blockquote>
<blockquote>
<span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px;">I think Smalltalk takes the idea of live objects to such a level of sophistication that most people can't quite grok the Platonic Forms of domain modelling that swirl around the mind of an accomplished Smalltalk developer. </span></blockquote>
and also<br />
<blockquote class="tr_bq">
<span class="Apple-style-span" style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 12px; line-height: 16px;">But folks who have come to think OO is more buzzword than reality could not possibly have tried Smalltalk, not 'for real,' let alone tried to get good at it. It's not just a language or even a platform but a way of thinking about reduction of a problem to its essence, as this article makes clear.</span> </blockquote>
I did leave out the bit in the middle where he has some thoughts for improvements like pattern matching, but they're at the bottom of the article. For myself I've never quite seen pattern matching as an especially valuable feature. To my mind the biggest gain is that it's a terse way of extracting out elements of a list -either a variable size list of arguments, or if you're in a language where linked lists are the primary data structure, being passed a list and automatically having it expressed as two variables represent first and rest. Other than that it just seems like syntactic sugar for a case statement. But maybe I'm missing something.Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com5tag:blogger.com,1999:blog-4351297767743049123.post-49970456616925697812011-12-02T14:12:00.001-05:002011-12-02T15:37:14.089-05:00Dave Ungar on Massive ParallelismAnother one of the Microsoft Channel 9 videos from the Splash conference. This features Dave Ungar t<a href="http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-David-Ungar-Self-ManyCore-and-Embracing-Non-Determinism">alking about Self and his current work with massive parallelism</a>, using Smalltalk and C++, and how we can get our answers much much faster if we're not quite so hung up on them having to be exactly right...<br />
<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-7269301572263214302011-12-01T15:11:00.001-05:002011-12-01T15:42:21.750-05:00Inheritance hierarchiesIn an IRC discussion the comment came up that "deep hierarchies mean you're doing good OO.. um... right?"<br />
<br />
That put me in mind of one of my favourite comments on the subject, from Richard Gabriel's 1996 book "<a href="http://dreamsongs.com/Files/PatternsOfSoftware.pdf">Patterns of Software</a>" (in PDF). In the first chapter (Reuse versus Compression) he talks about inheritance not as code re-use, but as code compression. You can express a lot very succinctly by sharing code that way, but you're tightly coupling those things together. Whether that's worthwhile or not depends on the circumstances.<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-87983686254478000282011-11-30T08:45:00.001-05:002011-11-30T13:41:04.954-05:00Lego Nativity Scene<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvmJwLahzJQ1U4o2TQxVsgtECF40X3G8OgxCY-zhHrNGDQT47LXIanixDaMoapGFqMMthUz5K97MV3R4mJ2eVkmxw_P0Rgfp4GrszpVzKodQheX0HwkuceXMK6AheZ7b0rfACiOaGfUZxA/s1600/P1130859cropped.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvmJwLahzJQ1U4o2TQxVsgtECF40X3G8OgxCY-zhHrNGDQT47LXIanixDaMoapGFqMMthUz5K97MV3R4mJ2eVkmxw_P0Rgfp4GrszpVzKodQheX0HwkuceXMK6AheZ7b0rfACiOaGfUZxA/s640/P1130859cropped.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">An annual tradition at our house</td></tr>
</tbody></table>Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com2tag:blogger.com,1999:blog-4351297767743049123.post-78020367367492035862011-11-30T08:24:00.001-05:002011-11-30T08:28:16.335-05:00A nice quoteA nice quote <a href="https://plus.google.com/116910304844117268718/posts/iYFGgdDvDkw">from Malte Ubl on Google+</a><br />
<blockquote class="tr_bq">
<span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 14px; line-height: 15px;">Optional typing might be the worst or best idea ever. I'm more & more leaning toward the best idea ever direction.</span><span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 14px; line-height: 15px;">Also </span><span class="proflinkWrapper" style="background-color: white; font-family: arial, sans-serif; font-size: 14px; line-height: 15px;"><span class="proflinkPrefix" style="color: #999999;">+</span><a class="proflink" href="https://plus.google.com/106019496651402300537" oid="106019496651402300537" style="color: #3366cc; cursor: pointer; text-decoration: none;">Gilad Bracha</a></span><span class="Apple-style-span" style="background-color: white; font-family: arial, sans-serif; font-size: 14px; line-height: 15px;"> is promising Smalltalk-style edit-debug-edit-debug-cycles (without restarting the program). If you've ever worked with VisualWorks or another Smalltalk environment that supports this, you will agree that every other programing environment, including every single one in mainstream use today, feels like the stone age.</span></blockquote>
Nice both to see that Dart is promised to support that style of development, and to get some praise for VisualWorks and Smalltalk environments in general.Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-17222581583561166882011-11-17T08:56:00.001-05:002011-11-17T09:10:22.796-05:00Dave Thomas Splash VideoMicrosoft's Channel 9 did interviews of a number of people at Splash. <a href="http://channel9.msdn.com/Blogs/Charles/SPLASH-2011-Dave-Thomas-On-Modern-Application-Development">Here's</a> the one with Dave Thomas of OTI/VisualAge/Eclipse/Bedarra fame. Dave is always worth listening to. Teaser quote<br />
<br />
"Q: ...what's the state of object-oriented programming today in your mind?<br />
<br />
A: Well, I think that the state is that it's commercially immensely successful, but practically I think it's a disaster. ... I don't think we really understood how difficult it is for people to do abstraction"<br />
<br />Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0tag:blogger.com,1999:blog-4351297767743049123.post-74732802934419335772011-11-15T19:50:00.001-05:002011-11-15T19:52:03.983-05:00Algorithm Animation via Hungarian Dance<a href="http://www.youtube.com/watch?v=ywWBy6J5gz8&sns=fb">This is awesome</a>! An entire series of sort algorithms animated via different dances.Alan Knighthttp://www.blogger.com/profile/18208736951543256794noreply@blogger.com0