Michael A. Covington    Michael A. Covington, Ph.D.
Books by Michael Covington
Consulting Services
Previous months
About this notebook
Search site or Web

Daily Notebook

Popular topics on this page:
Ancient Hebrew isn't what it used to be
What is an opinion?
What "I pledge allegiance" means
Bitcoin shows its dark side
How to keep using Windows XP safely
Moon (Schicklard, Schiller)
Moon (Tycho)
Moon (Aristarchus)
Sun (without spots)
Many more...

This web site is protected by copyright law. Reusing pictures or text requires permission from the author.
For more topics, scroll down, press Ctrl-F to search the page, or check previous months.
For the latest edition of this page at any time, create a link to "www.covingtoninnovations.com/michael/blog"



Melody's hip operation went very well, with no sign of lingering infection. (Dr. Manfredi was as relieved as we were!)

She may come home tomorrow (May 24) or the next day. [Update: She is home now (May 24).]

We thank over 100 people for their prayers and well-wishes.

New fonts

After some experimenting earlier this month, I've replaced all the fonts in the Daily Notebook, so that from now on, it will look much the same under all operating systems. Previously, I was using Microsoft Verdana for headings and Microsoft Georgia for text. The Hebrew passage at the bottom of this month's entry forced me to start rethinking things. So did the fact that I now do a fair bit of web browsing under Linux, which doesn't have the Microsoft fonts.

The new fonts are free fonts from Google but are hosted on Covington Innovations so that I can have more control. They are Arimo for headings, Tinos for text, and Source Code Pro for listings. The first two were chosen for wide coverage of foreign alphabets.

Your browser must accept .woff fonts in order to use them; otherwise, your display will fall back to using similar built-in fonts.

In the future I will extend these fonts to other Covington Innovations web pages, most of which use just two style sheets.


Personal update

Tomorrow (Monday, May 22), Melody will undergo her fifth and, we hope, final hip operation. The antibiotic spacer presently installed in her right hip will be replaced by a standard artificial hip joint, and she will be able to walk.

The operation is not without risk, and your prayers are appreciated.


A galaxy with a black eye

The galaxy M64 has a "black eye," a dust cloud near its center. Here you see it photographed with my 8-inch telescope from my back yard. The second picture is larger than I would normally display it, but there's fine detail worth seeing.

Stack of 10 (selected from 20) 3-minute exposures, Celestron 8 EdgeHD on CGEM mount, Nikon D5300 at ISO 400, autoguided with Astronomics 60-mm f/4 guidescope, DMK camera, and laptop running PHD2 under Windows.

The globular cluster M92

The globular cluster M92 in Hercules is underappreciated. Almost everyone who wants to see a globular cluster looks at M13 instead; it's nearby, easier to find, and a bit brighter (but only a bit). So M92 doesn't get the respect it deserves.

This picture of M92 was taken with the same equipment and technique as the galaxy pictures above; its magnification matches the less magnified of the two pictures of M64. This is a stack of 9 3-minute exposures (selected from 10). Deconvolution was performed to sharpen the star images.


Astro-historical mysteries solved

You may have seen a picture like this in astronomy books by Stephen James O'Meara or Admiral W. H. Smyth.

I think I've solved the mystery behind it, at least to the extent that anyone can. And I got a paper published in a professional astronomy journal about it. (Will I lose my amateur status?)

Here are a link to that paper and to an earlier, somewhat similar one.

Where, if anywhere, did Rheita see Veronica's Veil?
(Journal for the History of Astronomy, 2017)

Hodierna's Luminosa 8 = ψ(1,2,3) Aquarii
(Journal for the History of Astronomy, 2015)


How to keep using Windows XP safely

Some people still need to run Windows XP because of customized software or equipment from past years that won't run under newer versions of Windows. Here's how to do so safely.

(0) If all you want it for is e-mail and web browsing, please reconsider. That's where the safety hazards are, and Linux will serve you much better than Windows XP. Go to www.linuxmint.com, download the files, make yourself a bootable Linux Mint MATE CD (MATE is the version that works best with older computers), and install it. All free of charge, regularly updated, and safe.

(0.1) If what you need is to run DOS or Windows 95 software, consider the 32-bit version of Windows 7, 8.1, or 10 (not the more common 64-bit version), and make sure NTVDM is turned on as described here and here. That may be all you need.

(0.2) I'm assuming that you kept XP updated at least through 2008 so that you got Service Pack 3. If not, you have a lot of work ahead of you and it's best to get expert help.

Assuming you maintained XP properly back when it was supported, and you really do need XP for the sake of software or equipment, read on...

(1) Download and install the Microsoft KB4012598 security update from https://www.microsoft.com/en-us/download/details.aspx?id=55245 or http://www.catalog.update.microsoft.com/search.aspx?q=4012598.

You almost certainly want the one for Windows XP, not Windows XP x64 or Windows XP Embedded.

You may have to do the downloading on another computer, then carry it to the XP machine on a jump drive, because older versions of Internet Explorer are not allowed access to microsoft.com. But if you have another browser that works on XP, try it.

(2) Download, try, and buy Malwarebytes. From here on, you'll get your virus and malware protection from them, not from Microsoft. There's a generous free trial period. With Malwarebytes installed, Windows XP continues to be safe to use.

(3) Get a web browser you can still use. XP's version of Internet Explorer is no longer supported; nor does Chrome run on XP; and I hear the latest version of Firefox doesn't either. Because having an up-to-date browser is safety-critical, I recommend Opera (free).

(4) Accept that nothing new is going to be supported. Accessories and software that date from after about 2008 are unlikely to work under XP.


Bitcoin reveals its dark side


Regarding the ransomware hack that brought down the British NHS, there's plenty of guilt to go around. First and foremost, the hackers (extortionists) are criminals and must be brought to justice. And I think they will. The scale of their act is going to make them easier to catch than the usual petty virus-writer.

And although I don't blame victims, I do think it constitutes negligence to keep running an operating system, without security updates, when you know it's not safe. For a while the NHS paid Microsoft for continued security support of Windows XP (rather than moving to a newer version of Windows the way everyone else did). But then they decided to do without it. And then...

[UPDATE: Latest reports are that, contrary to what we were told at first, the victims were largely not Windows XP systems, but Windows 7 systems that were not being updated. This is not to deny that running XP was also unduly risky. Information is still coming in.]

And let's give some credit (er, blame) to Microsoft. This particular vulnerability was not just a bad architectural decision or an obsolete design. It was a software defect, apparently involving not checking the size and format of incoming network data. What Microsoft built was not what Microsoft intended to design. It was a flaw that could have been prevented from the beginning.

But the infrastructure for paying the ransom was provided by Bitcoin, a private Internet-based medium of exchange about which I've already sounded loud notes of caution.

I don't think the organizers of Bitcoin intended to cater to extortionists. But they have set up a service that suits extortionists unusually well. The reason? Too much privacy.

Yes, too much privacy. Bitcoin doesn't just let you send money to another person with no third party finding out. (If it did that, I would consider it a force for freedom.) No; it lets you send money to people without any possibility of finding out who they are. That is not a normal business transaction. It is concealment of what ought not to be concealed.

It reminds me of when the American telephone system introduced Caller ID. Some people complained that it was taking away the "privacy" of the telephone. No. When you ring a bell in my house, you don't have the right to conceal your identity. You're doing something to me, and I have a right to know who you are.

The same goes for money transfers. Bitcoin is not like cash; it is more like an anonymous dropbox for transferring cash secretly. And that is not one of the mechanisms of legitimate business. Undue concealment creates hazards rather than benefits.

I thank Stephen Tyndall and other Facebook friends for insights expressed here.

[Addendum:] Two more points. (1) There are plenty of reasons a person might want to send information, or even money, while concealing his identity. (Anonymous donors, whistleblowers, etc.) Demanding to receive information or money without revealing one's identity is more dubious. There's an asymmetry here.

(2) Purely logical and mathematical analysis of the situation does not take human nature into account. It is one thing to say that all kinds of anonymous transactions "should" be equally permissible, but in fact, some kinds are much more associated with crime than others.

Why do we need new operating system versions?

Another question that arises out of the ransomware hack is, why do we need a new operating system version every year or two? Or even operating system updates? Since the operating system is infrastructure for running software, why not build it, get it running properly, and leave it alone? The software, not the OS, is where progress should take place.

Operating systems get updated because the manufacturer wants to sell us something frequently, or because they were defective or incomplete as originally built, or because a genuinely new need has arisen (64-bit CPUs, bigger disks, new kinds of networking).

Constant novelty is the disease of Microsoft Windows; Microsoft feels they have to make it look different every year, so they keep fiddling with the Start Menu. Part of the appeal of Mac OS, as I understand it, is that from the user's point of view it doesn't change much from year to year. Learn how to use it once, set it up once, and it stays that way.

But can we imagine an operating system that doesn't have to be upgraded? Why, exactly, can't we run an OS as long as the computer lasts, provided we haven't added new hardware that requires something different?

That is a particularly important question in scientific and medical computing, where computers are often interfaced to other equipment in customized ways. Why can't things just be left alone? New functionality could be added through application software, not OS upgrades.

The answer is twofold. First, like Detroit in the 1970s, the software industry is having a hard time letting go of the notion of selling us a new one every couple of years.

Second, and more seriously, all operating systems are badly built and have security vulnerabilities. Most of these involve assuming that input data is the correct format and length, and not checking it, so that carefully crafted malformed input can overwrite memory and do unauthorized things. Vulnerabilities like this are less common than they used to be, but there are still too many.

I would like to see an operating system that is designed to be permanent. This would involve:

  • A vigorous effort to eliminate vulnerabilities by writing everything afresh from the ground up, rather than reusing part of some other OS written 20 years earlier.
  • A clear distinction between the OS itself, its device drivers, and the application software, so that the role of the OS is limited and fixed.
  • Security patches, free of charge forever, if and when vulnerabilities are discovered, and all of them designed to cause absolute minimum disruption to OS functionality.

There's just one problem. This "permanent operating system" would be based on the assumption that people have completely finished inventing operating systems and just need to build a good one. The gradual change of Windows from a C-based to an object-oriened operating system would have to stop in its tracks! And that makes a difference to programmers, even if application users can't see it.



On May 14, Spaceweather's daily Sun picture showed no sunspots at all (as has been the case for a few days). To try out a new Thousand Oaks "Solarlite" filter that I'll use photographing the eclipse in August, I photographed the Sun through my Canon 300-mm f/4 lens (at f/11) and Canon 60Da. This is a stack of six exposures, trimmed with PIPP, stacked with AutoStakkert 3, and sharpened slightly with RegiStax (they didn't need much). You can see a bit of granulation and perhaps some slight surface irregularity suggestive of plages or faculae, but no sunspots.


Hazel Roberts Covington, 1925-1985

For Mother's Day, here's a picture of my mother, Hazel Roberts Covington, 1925-1985, who worked heroically hard to take good care of my sister and me after our father died.

And she accomplished things. For a tribute to her business expertise click here. I wish the whole financial industry would learn these simple lessons.

By the way, I think the picture is her high school graduation portrait, about 15 years before I was born. I am struck by how much she looks like several younger cousins.

A tale of two typefaces

For better compatibility with the phonetic symbols and Hebrew letters in the May 1 entry, I temporarily switched the Daily Notebook to Microsoft's Cambria typeface. Then I found that Cambria does not resize as well as Microsoft Georgia, which I was previously using. So I went back to the Georgia typeface but left the overall type size a little larger than before. Entries that need to mix in foreign alphabets or phonetic symbols will still use Cambria, which will be rendered as Times New Roman on non-Microsoft computers.

Until I change my mind again! [Which I did on May 24.]


Thomaston, Georgia, 1947

At least two of Melody's relatives are in this a movie about life in Thomaston in 1947.

Aunt Ophelia is in it, as a 10-year-old girl holding her father's hand, at the 18:51 mark.


Ophelia Daniel Titus, 1937-2017

We mourn the passing of Melody's favorite aunt, Ophelia Daniel Titus. Since the obituary is not yet widely available on line, I'm reprinting it here, below. (Aviation buffs, note the connection to the Lockheed C5 Galaxy.)

Bernice Ophelia Daniel Titus of Marietta, Georgia, passed away on May 11, 2017, at Magnolia Estates Retirement Center in Winder, Georgia.

She was born on March 16, 1937 in Thomaston, Georgia, to the late Nannie Lou Gaultney Daniel and the late Thomas Lester Daniel. She was preceded in death by her 2nd husband, Blake Parrish, and her 3rd husband, James Titus, sisters Aurelia Daniel Vickery and Linda Biles Winkles, and her step-mother, Martha Biles Daniel. She is survived by sisters Ellen D. (Warren) Barnett of Atlanta, Elanor D. Mauldin of Winder, Martha Anne (Ken) McCarty of Thomaston; nieces Melody M. (Michael) Covington of Athens, Crystal M. (Lynn) Holman of Statesboro, Renee McCarty of Atlanta; nephews Glenn (Kim) Barnett of Tucker, Kirk Barnett of Atlanta, Daniel (Rhonda) Vickery of Oklahoma, Robbie (Hillary) Vickery of Woodbury, Bryan (Annette) Winkles of Phoenix, Ariz., Vicki W. Chatfield of Thomaston, and Marcus Winkles of Thomaston. Several great nieces and nephews also survive.

Mrs. Titus was a retired Realtor with Northside Realty in Marietta, Ga. She was a member of the Million Dollar Club for area Realtors and achieved numerous additional awards for outstanding sales and customer service. She also worked for Coldwell Banker Real Estate Brokers. She worked previously for Lockheed in multiple secretarial positions. A notable accomplishment is that she hand-typed the very first operations manual for Lockheed’s C5 Galaxy.

She was a member of First Baptist Church of Marietta, Georgia. She enjoyed traveling abroad and shopping. She was always active with neighbors, especially while living the last few years at The Crossings of Burnt Hickory in Marietta.

A memorial gathering will be held on Sunday afternoon, 1 p.m., May 14, 2017, at the Mauldin residence, 550 Green Valley Dr., Winder, Georgia. She has bequeathed her remains to Emory University School of Medicine for research. Her cremains will be interred at Southview Cemetery in Thomaston, Georgia. Memorial contributions can be made to First Baptist Church, 148 Church St., Marietta, GA 30060.


Does anybody know what "I pledge allegiance" actually means?


My foreign readers may be surprised to learn that, since the 1940s, most American school children have begun every day by facing the U.S. flag, saluting it with their hands over their hearts, and reciting, together, the words:

I pledge allegiance to the flag of the United States of America and to the republic for which it stands, one nation under God, indivisible, with liberty and justice for all.

It's obvious why such a pledge would be appropriate when, for example, a person is becoming a U.S. citizen, or becoming a public official, or joining the armed forces, or opening a session of a court or legislative body. But some people think doing it in school every day is a bit much.

Others defend it as necessary for raising patriotic children, and there has been bitter controversy.

Now here's something strange I've discovered: The people who are most emotionally attached to the Pledge often don't know what it means!

I've encountered this repeatedly when pointing out, for instance, that schoolchildren who aren't U.S. citizens shouldn't recite the Pledge.

"If they don't love our country and pledge allegiance, they shouldn't be here," someone told me just today.

To which I replied, "I don't think you know what 'pledge allegiance' means." To pledge allegiance to a country is to promise to be loyal to it, to support it in war, and even to fight for it. This is something no one should ever do to any country except his or her own.

You're not just promising to respect the United States and its laws. You're actually taking on the duties of a U.S. citizen and renouncing your duties as a citizen of any other country.

Printed in my U.S. passport is the following warning:

LOSS OF U.S. CITIZENSHIP. Under certain circumstances, you may lose your U.S. citizenship by performing ... any of the following acts ... (2) taking an oath or making a declaration to a foreign state ...

That is, they don't want us to pledge allegiance to another country. That what they mean by "declaration."

It happens that under U.S. law, pledging allegiance to another country doesn't cost you your citizenship unless you intend for it to do so. But it may put you on the enemy side in a war.

Since we don't pledge allegiance to other countries, we have no business asking citizens of other countries to pledge allegiance to ours. That is not how citizenship works.

I have actually run into people who think all non-citizens are illegal immigrants and just don't realize there are lots of good reasons for a non-U.S. citizen to be here and even to be attending our schools. What about the children of an ambassador? The children of an employee of a multinational company who is here on business, or anyone residing in the U.S. temporarily for their own purposes? This is a free country. You don't have to be a U.S. citizen to be here temporarily or permanently, to pay taxes here, and to attend public schools (and certainly not private schools).

Technical note: U.S. and British law are very tolerant of dual citizenship; you can be a citizen of the U.S. or Britain and also of another country at the same time. That is why U.S. and British citizenship are not lost by simply making a declaration to a foreign power. (Many Israelis, for instance, are U.S.-Israeli dual citizens.) However, other countries don't operate that way; quite a few of them don't recognize dual citizenship at all. That's why we don't put people on the spot. Citizens of some countries could get into real difficulty by making a declaration or pledge to the United States.


Some experiments with downsampled video

These pictures were taken by a technique that shouldn't work well, but they're not bad after all.

I normally photograph detail on the moon and Jupiter using a video camera at full resolution, either a scientific video camera or my Canon 60Da, the latter in movie crop mode, which uses a small area of the sensor at its native pixel size.

My Nikon D5300 does not have movie crop mode. Its highest-resolution video mode is 1080×1920 pixels (versus 4000×6000 for still pictures). In video mode, it uses nearly the full sensor but downsamples the image by a factor of 3.1 in each dimension. (Not 3.0, strange but true.)

Can you do video astronomy with downsampled video? Yes.

The full-face moon picture was taken with my Celestron 5 at its native focal length (1250 mm, f/10). The picture of the lunar highlands around Tycho and the picture of Jupiter with 2 satellites were taken by adding a 3x converter. Subsequent processing was with PIPP, AutoStakkert, and RegiStax just as with any other astronomical video. As you can see, one might wish for more magnification for Jupiter, but the results are definitely worthwhile.


Two moonscapes

Also from May 7, these two moonscapes are not greatly different from other pictures I've taken of the same regions, but you never see the moon quite the same way twice — the angle of sunlight and the angle of our own view are both constantly varying.

At the top, you see the southern highlands of the moon, and especially the large craters Schickard (left) and Schiller (right). The second picture shows (at its left) the crater Aristarchus and the curious terrain around it, which sometimes reflects light in unusual ways had has been suspected of outgassing.

Celestron 5, Canon 60Da in movie crop mode; each picture is a stack of thousands of video frames.


Jupiter with a 5-inch telescope

Usually I save the best for last, but this time I want to show you the best picture from an observing session first, because it surprised me.

I took this picture last night with my 37-year-old Celestron 5, a 3x converter, and my Canon 60Da in "movie crop" mode (a video mode that uses a small part of the sensor at full resolution). It is a stack of the best 75% of 4,812 video frames, aligned with AutoStakkert and sharpened with RegiStax. This technique cuts through the unsteadiness of the air by exploiting the fact that the sum of a large number of random blurs is a Gaussian blur, which can be undone by computation.

The air didn't seem exceptionally steady at the time; Clear Sky Chart predicted "average" steadiness, and that agreed with what I observed. But the picture turned out well. It looks like something taken with an 8-inch or larger telescope.


What is an opinion?

An opinion is not a feeling, taste, preference, or wish.

It is an estimate of the truth, to be used when confirmed truth is not available.

As such, it must always be tested against any evidence that can disprove it, support it, or make it more accurate.


To wake up a sleeping disk, write on it

I have a backup job that runs every night, using an external disk drive. I also have a status-reporting job that runs early in the morning and e-mails me information about the backups.

The external disk has a power-saving sleep mode.

Unfortunately the command dir i: in my status-reporting job doesn't always wake it up. Sometimes I get "File not found."

I've found that a much more effective way to wake up the disk drive is to write on it:

echo 'test' > i:\testfile.txt
del i:\testfile.txt

Apparently, dir i: sometimes looks for cached data, or times out too quickly, but writing on the disk actually wakes it up.


A few thoughts about health insurance

The House of Representatives has just passed a replacement for Obamacare in haste, apparently without achieving a consensus on what it consists of. Fortunately, the Senate will get to kick it back to them for more work. In the meantime, here are a few of my own thoughts.

(1) Please don't try to label me as liberal or conservative before you think about what I'm saying. Some people, if I told them 2+2=4, would ask if that's the liberal or the conservative position. Taking sides is a poor substitute for thinking things through.

(2) Losing your insurance when you change jobs is preposterous. There's no reason health insurance should be tied to employment. And far from solving this problem, Obamacare built it right in. The only reason people get health insurance through their employers is a loophole in World War II wage regulations. It has been traditional so long that some people can't imagine things being any other way. To them I say: Expand your mind just a little!

(3) I don't think you have a right to go uninsured. Here the conservatives will cringe. But think it through. Should uninsured people be left to die? Would we really do that? A man suffering a heart attack is brought into the ER. He isn't rich and doesn't have insurance, so they don't treat him, and after a while his corpse is carted off. Is that what you advocate? Fortunately that is not the world in which we live.

In today's world, a person who chooses to go completely uninsured is constantly threatening to impose an expense on his community. We don't leave such people to die. For that reason, I think we have a right to require them to be insured. More about how to bring that about shortly.

(4) You need insurance today in a way that you didn't 100 or even 50 years ago. Part of what's wrong with Congress is that about a third of them are preparing for 1920 instead of 2020! But the new reality is that life-saving treatments have been invented that are very expensive, and we all run some risk of needing them.

(5) Pre-existing conditions are not the victim's fault. Let me give you an example. Someone close to me (e-mail me and I'll tell you who) was born with a heart valve defect that wasn't detected until around age 40. (Advanced cardiac imaging would have detected it, but there were no symptoms, so no reason to investigate.) This person needed a quarter-million-dollar operation in order to reach age 45. Fortunately, good insurance was in place, and the operation was done. (The patient made a full recovery, has lived 16 more years so far, and expects a normal lifespan.) But the point is, no amount of exercise, diet, and "healthy living" would have prevented or cured the problem.

Yes, exercise and a healthy diet are good for you. But they don't work magic. And I am horrified by the thought of a world in which only Perfect Bodies are first-class citizens. I remember a horrible regime that idolized the "perfect type" and tried to eliminate inferior bodies about 80 years ago. Maybe you remember it too.

I don't even want to penalize people for getting good medical care. If pre-existing conditions aren't covered, the deal will be, "You're covered if you don't know what's wrong with you, but not if you do!" People would have an incentive to avoid medical checkups and diagnostic procedures and wait until every problem is an emergency.

Accordingly, I advocate some kind of mandatory must-have, must-carry health insurance with multiple insurance companies, such that you are enrolled as a baby and keep your insurance your whole life long, unless you choose to change companies. That is, the entire population is treated as a single risk pool. Pre-existing conditions don't matter. That may be the only way to make insurance affordable for everyone.

Variations of this system are used in Switzerland and the Netherlands, among other places. Note that it is not socialized medicine; the physicians and the insurance companies remain private. There needs to be a way to cover costs for people who are in abject poverty; actually, that is something we Americans are not bad at; we take care of our poor better than our working class!

The key idea, though, is that health insurance is for everyone, and insurance companies should lump the entire population together rather than trying to pick sub-populations that are healthier than average — just as the fire department and the army defend your whole town, not just the parts they deem most worthy or most defensible.

Finally: If your position on insurance is that some people with pre-existing conditions ought to be dead, I can arrange for you to say this to one of them, face-to-face. I wonder if you have the courage. And if not, back off from your imaginary rugged individualism just a bit, and be a compassionate grown-up human being in the real world.


Algorithm note: Chaining swaps

If, in a computer program, you find yourself writing something like:


note that what you are really doing is turning A B C D E into B C D E A and the swaps can be chained together as:

temp = a;
a = b;
b = c;
c = d;
d = e;
e = temp;

saving work. (Every use of swap is equivalent to three uses of =.)

This figures in the heap algorithms I'm about to talk about.

Heaps of fun? Fun with heaps

I've been creating some reusable code (for more than one client's project) that uses heaps to do various useful things.

One way to find the best n elements in a set is to sort the whole set and just take the first or last few elements, as needed. That is common practice, but there are much faster ways to do it.

A heap is a data structure designed for finding the largest number in a set, or similar tasks. It is a binary tree. The number in the root node is larger than the numbers in all its descendants, and the same is true of every subtree. This is called the heap property. Apart from that, the elements are not in any particular order.

Of course you can use some other criterion, and have the root node be the smallest number, or the item that is "best" by some other criterion. In what follows I'll stick with a "max-heap," one in which the elements are numbers and the most preferred one is the largest. The algorithms don't change if you change the comparison criterion.

Like any other binary tree, a heap can be represented compactly in an array where element 0 is the root, the parent of any element i is element (i-1)/2 (using integer division), and the two children of element i are elements 2i+1 and 2i+2.

To add an element to an array, add it as the last element (a leaf in the row farthest from the root) and then "sift it up" by swapping it with its parent, parent's parent, etc., until you get an element that it shouldn't be swapped with (that is, an element that is greater than it). These swaps can be chained as I described above.

To remove an element, take the last array element (a leaf node as far from the root as possible) and put it in place of the element to be deleted, and note that the size of the usable array has decreased by 1. Then "sift down" the element you moved with a similar series of chained swaps, moving it farther from the root until the element above it is greater than it. Each element has two children; in this process, always follow the larger of the two.

Another operation that comes up fairly often is replacing the root (because you no longer consider it to be the largest for some reason) and sifting it down in the same way.

The usefulness of heaps is that they perform the minimum number of comparisons. No element is compared to any other element until it actually needs to be. Accordingly, inserting or deleting an element in an n-element heap takes time proportional to log n.

To find the k largest numbers in a large set, you maintain a k-element heap containing the k largest found so far, and arranged so its smallest element is the root. Then you compare every incoming item to that. If it's larger than the "smallest of the large," then it belongs in the heap, and the current root does not, so you replace the root. At the end, the heap contains the k largest numbers, but if you want them in order, you have to sort it.

Heaps also provide a way to find the median of a series of numbers with the minimum amount of work. With a set of n numbers, maintain a heap (of the kind I just described) containing the (n/2)+1 largest found as you go through the series (smallest at the root). At the end, if there was an odd number of numbers, the root of the heap is your answer. Otherwise you must average it with its closest competitor, which is obtained by deleting the root, sifting the heap, and looking at the new root.

Finding the median this way takes time proportional to n log n, the same order of complexity as efficient sorting, but it is less total work and requires only half as much memory.

Some of my reusable code implements what I call a key-value heap, where every item is stored along with the number that is used for comparison. Thus, this is a heap for efficient handling of objects that need to be compared using some internal element or function, such as "the accounts with the most transactions" or "the rectangles with the largest surface area."


Ancient Hebrew isn't what it used to be


Today I'm using the Daily Notebook as a notebook, writing some things down mainly for my own reference. Part of being a linguist is learning and analyzing a lot of languages. My only non-Indo-European language is Hebrew, and although I'm not especially good at it, I do like to look at current research periodically, to see what is being discovered about it.

Since I learned Hebrew 40 years ago, quite a bit has changed. I've just been looking through new books by Joshua Blau and by Joüon and Muraoka which replace the reference books from my student days (and are much better!).

If you are a professional Hebrew scholar, I beg your indulgence; these are the notes of a linguist who has studied Hebrew but not mastered it and is plotting strategy for diving back in. But do let me know if I've made any mistakes.

The context of the change is lots of new discoveries about closely related languages such as Ugaritic, and, at the same time, clearer thinking about synchrony vs. diachrony, that is, about distinguishing the history of the language from its state at a particular time.

We must remember that, as the entire extant corpus of a language, the Old Testament is really rather small. What's more, it was written over a very long time period (longer than the time separating us from Chaucer, with much material that was much older yet; obviously the Hebrews wrote down some Scriptures long before they assembled the whole thing). It must have been "redacted" (edited) repeatedly to keep up with changes in Hebrew grammar and pronunciation, but not perfectly; older forms of words pop up frequently, and the spelling rules are not the same everywhere. (Moses probably spoke a language with case endings like Arabic, but we don't see them in the Masoretic Text or even the Dead Sea Scrolls, except in a few quirks of spelling here and there.) Imagine trying to make an edition of Chaucer with modern grammar and spelling but without changing any of the words, and you'll see what the scribes were up against.

Accordingly, reading the Hebrew Bible is a more passive process than reading Greek or Latin. It is not a language whose grammar we can ever grasp perfectly. Reading it is more like deciphering ancient inscriptions. We can explain what we have, but we don't necessarily know all the possibilities that were available to a native speaker at the time, the way we do with Latin or Greek.

What's more, we don't have a variety of ancient manuscripts like we have for the Greek New Testament. There is only one substantial Hebrew manuscript group, the Masoretic Text established by Tiberian scribes some time around 900 A.D. (Most of the Old Testament is not in the Dead Sea Scrolls.) The Tiberian scribes were the first to write down the vowels by adding special symbols to the all-consonant Hebrew alphabet.

One big change since the 1980s is that the vowel system of the Tiberian scribes has been reconstructed with confidence, and scholars are willing to use it. It is not the Biblical Hebrew vowel system — it is much less ancient — but it's what we have in the manuscripts, and it's always much easier to learn the language we have in front of us than to look at it while learning some kind of reconstruction that doesn't match it. Key points:

  • Vowel length is not phonemic and is not indicated.
  • The post-Tiberian twofold pronunciation of אָ ("qamets qatan," "qamets gadol") is gone; it is ɔ everywhere.
  • There are 7 full vowels:

    i      u
    e      o
    ɛ      ɔ

    (which is about as normal-looking as a vowel system can be!).
  • Or is it so normal? Because of recent pre-Tiberian sound changes, e:ɛ (that is, אֵ and אֶ) and especially ɔ:a (אָ and אַ) still act like long-short pairs (expressing shortening as lowering). Curiously, o:ɔ does not. This suggests that ɔ might not really be a rounded back vowel. I am uneasy with an unbalanced system that looks like this:

    i      u
    e      o
    ɛ  ɔ   

    but it has to be kept in mind, especially in a situation of recent and ongoing sound change. Much stranger things have been known to happen.
  • There are (graphemically) four reduced vowels, corresponding to the bottom of that chart:

    ɛ̆   ə   ɔ̆

    although ə and are suspected of being allographs of the same sound, and they may all four be one phoneme.
  • When a vowel is written with a mater lectionis (a consonant letter helping to indicate the vowel), we transcribe it with a circumflex: î ê ɛ̂ â ɔ̂ ô û. The matres lectionis are more ancient than the vowel marks, and they generally mark historically long vowels, but the circumflex here does not mark length; it just indicates how the vowel was written.
  • The diphthongs ay aw ɔy ɔw are genuine; they are written as a vowel followed by a mater lectionis for a different place of articulation. There is a noun ending written ayw, and thats how I will transcribe it, but a long tradition tells us it was pronounced aw.
  • A quirk of Hebrew worth noting is that words "in pause," at the ends of clauses and sentences, often have different vowels, with less reduction, lowering, and monophthongization. It's as if historically earlier forms remained available to the Tiberians for use as "clear" forms spoken with special emphasis. The same thing happens in English (think of pronouncing "California" with the middle syllable like "if," vs. the usual pronunciation). Fans of The Sound Pattern of English, take note.

The other big change is our understanding of the verb tense system. Scholars now use the terms "suffix conjugation" and "prefix conjugation" rather than "past" and "future" or "perfective" and "imperfective."

I was taught that the suffix verbs are "perfective," referring to completed action, normally in the past, and the prefix verbs are "imperfective," referring to incomplete or future action, except that these are reversed after the particle that means "and."

That is odd enough to smell fishy, and in fact it's not the whole story. We now know that in preclassical times, there were two prefix conjugations, past and present-future. Sound change made them fall together, although vestiges of the difference survive as occasional "unexplained" spelling variations. The suffix conjugation was originally stative and adjective-like.

In Biblical Hebrew as we have it (not as Moses spoke it!) the future prefix conjugation survived, and the past prefix conjugation hung on after the beginning-of-sentence particle wa-. The suffix conjugation became more clearly a past tense, though still occasionally used for present or future, especially after wə- "and," which was taken as synonymous with wa-. (The interpretation of wa- as "and" is how we got all those sentences starting with "And..." in the King James Version.)

So there was a time when, to many native speakers, the synchronic reality was that wə- or wa- reverses the tense of the verb (the "waw conversive"). But that was a strange situation due to distinctions recently lost. It didn't last.

Although it is common practice, I don't think I benefited from being taught modern Israeli pronunciation and so-called "cursive" handwriting (which is block print with different letter forms than the print in books). The modern pronunciation leaves out too many distinctions, and the handwriting just burdens us with two alphabets instead of one. It would be much easier to pick these up later, as needed for travel to Israel, the way one can pick up Church Latin as a simplification after learning Latin with classical pronunciation.

I am enough of an auditory learner that I have a lot of trouble remembering spelling distinctions that cannot be pronounced (not even in an exaggerated way as an aid to memory). So besides ditching the oversimplified Israeli vowels, I will probably also learn to pronounce ע as a pharyngeal fricative and will pronounce ק (q) systematically farther back than כּ (k). Pronouncing א as a glottal stop is already no problem for me; some Israelis do so, and some leave it out.

Example of a Hebrew textual puzzle

Here is an example of a Biblical Hebrew textual puzzle. Psalm 2:12 contains the somewhat surprising exhortation, "Kiss the Son." This is a Messianic psalm; God talks about anointing a king and calling him "my beloved son." Christians take this as a prophecy of Christ; Jews take it as referring to the future Messiah or possibly King David or another divinely anointed king.

There seems to be a problem with "Kiss the Son." The word for "son" is bar, which is Aramaic, not Hebrew. It is the only Aramaic word in the Psalms. What's more, it's not quite the right grammatical form; it's the Aramaic construct (used in the phrase "son of X") rather than the form that would be the direct object of the verb. This is true whether you apply Aramaic or Hebrew grammar to it.

In Hebrew, bar means "purity," or possibly something like discipline or instruction leading to purity. The word translated "kiss" can mean "embrace," including embracing or accepting an abstract object. So does it mean "embrace purity"? Or perhaps even "kiss (the king's hand or feet) with purity"?

We have good translations of the Hebrew Scriptures into Greek and Latin that are much older than the suriving Hebrew manuscripts (strange but true). The translations were made while Biblical Hebrew or something close to it was still a living language. So we turn to them. In the Septuagint (the Greek translation) we find "accept instruction," and in the Latin Vulgate, "adore him purely."

Case closed? Well, not quite. The divergence between the Septuagint and the Vulgate tells us that even in antiquity there was some uncertainty. A more daring proposal by James Barr (no pun on his name intended) is that we are looking at a fossilized scribal error: bar was the broken-off beginning of a longer word (he suggests bəragəlayw "on his feet"). No one else seems to have pursued this.

Nonetheless, the translators of the ESV, who probably reflect current Christian scholarship as well as anyone, are convinced it means "Kiss the Son." (Or maybe "embrace or accept the Son," the king just mentioned.) It does, after all, make sense in context, but I don't know the details of their reasoning. Jewish scholars reject this vehemently as an attempt to retroactively Christianize the psalm.

If what you are looking for is not here, please look at previous months .