March 6, 2019

Filling up a disk politely

blocksize=32 # MiB
disksize=$((128 * 1024)) # MiB
for ((i = 0; i < $(((disksize + blocksize - 1) / blocksize)); ++ i)); do
  tr '\000' '\345' < /dev/zero |
  sudo dd of=/dev/sdb bs=1M count=$blocksize seek=$((i * blocksize)) iflag=fullblock
  totalspace=$(((i + 1) * blocksize))
  echo $((totalspace / 1024)) GiB + $((totalspace % 1024)) MiB
  echo
  sync
done

December 20, 2018

The Going-Under of the Sunset-Land

The Decline of the West (German: Der Untergang des Abendlandes, literally The Going-Under of the Sunset-Land), also known in English as The Downfall of the Occident, is a two-volume work by Oswald Spengler, the first volume of which was published in the summer of 1918. Spengler revised this volume in 1922 and published the second volume, subtitled Perspectives of World History, in 1923. (Almost) so says Wikipedia.

Alfred A. Knopf of New York published in 1928 a serviceable (even if lazily, mindlessly and mightily distracting litteral) English translation by Charles Francis Atkinson; it is available of Archive.org:
(In the following excerpts, the subtitles are mine; italics are copied from the original.)

pp. 460–462

The press as a Faustian distance-tactic

Now, whereas the Classical, and supremely the Forum of Rome, drew the mass of the people together as a visible body in order to compel it to make that use of its rights which was desired of it, the “contemporary” English-American politics have created through the press a force-field of world-wide intellectual and financial tensions in which every individual unconsciously takes up the place allotted to him, so that he must think, will, and act as a ruling personality somewhere or other in the distance thinks fit. This is dynamics against statics, Faustian against Apollinian world-feeling, the passion of the third dimension against the pure sensible present. Man does not speak to man;³ the press and its associate, the electrical news-service, keep the waking-consciousness of whole peoples and continents under a deafening drum-fire of theses, catchwords, standpoints, scenes, feelings, day by day and year by year, so that every Ego becomes a mere function of a monstrous intellectual Something. Money does not pass, politically, from one hand to the other. It does not turn itself into cards and wine. It is turned into force, and its quantity determines the intensity of its working influence.

³ Radio broadcasting has now emerged to enable the leader to make personal conquests of the million, and no one can foretell the changes in political tactic that may ensue therefrom. — Tr.

Gunpowder and printing belong together — both discovered at the culmination of the Gothic, both arising out of Germanic technical thought — as the two grand means of Faustian distance-tactics. The Reformation in the beginning of the Late period witnessed the first flysheets and the first field-guns, the French Revolution in the beginning of the Civilization witnessed the first tempest of pamphlets of the autumn of 1788 and the first mass-fire of artillery at Valmy. But with this the printed word, produced in vast quantity and distributed over enormous areas, became an uncanny weapon in the hands of him who knew how to use it. In France it was still in 1788 a matter of expressing private convictions, but England was already past that, and deliberately seeking to produce impressions on the reader. The war of articles, flysheets, spurioiis memoirs, that was waged from London on French soil against Napoleon is the first great example. The scattered sheets of the Age of Enlightenment transformed themselves into “the Press” — a term of most significant anonymity. Now the press campaign appears as the prolongation — or the preparation — of war by other means, and in the course of the nineteenth century the strategy of outpost fights, feints, surprises, assaults, is developed to such a degree that a war may be lost ere the first shot is fired — because the Press has won it meantime.

To-day we live so cowed under the bombardment of this intellectual artillery that hardly anyone can attain to the inward detachment that is required for a clear view of the monstrous drama. The will-to-power operating under a pure democratic disguise has finished off its masterpiece so well that the object’s sense of freedom is actually flattered by the most thorough-going enslavement that has ever existed. The liberal bourgeois mind is proud of the abolition of censorship, the last restraint, while the dictator of the press — Northcliffe! — keeps the slave-gang of his readers under the whip of his leading articles, telegrams, and pictures. Democracy has by its newspaper completely expelled the book from the mental life of the people. The book-world, with its profusion of standpoints that compelled thought to select and criticize, is now a real possession only for a few. The people reads the one paper, “its” paper, which forces itself through the front doors by millions daily, spellbinds the intellect from morning to night, drives the book into oblivion by its more engaging layout, and if one or another specimen of a book does emerge into visibility, forestalls and eliminates its possible effects by “reviewing” it.

The truth is what the Press wills

What is truth? For the multitude, that which it continually reads and hears. A forlorn little drop may settle somewhere and collect grounds on which to determine “the truth” — but what it obtains is just its truth. The other, the public truth of the moment, which alone matters for effects and successes in the fact-world, is to-day a product of the Press. What the Press wills, is true. Its commanders evoke, transform, interchange truths. Three weeks of press work, and the truth is acknowledged by everybody.¹ Its bases are irrefutable for just so long as money is available to maintain them intact. The Classical rhetoric, too, was designed for effect and not content — as Shakespeare brilliantly demonstrates in Antony’s funeral oration — but it did limit itself to the bodily audience and the moment. What the dynamism of our Press wants is permanent effectiveness. It must keep men’s minds continuously under its influence. Its arguments are overthrown as soon as the advantage of financial power passes over to the counter-arguments and brings these still oftener to men’s eyes and ears. At that moment the needle of public opinion swings round to the stronger pole. Everybody convinces himself at once of the new truth, and regards himself awakened out of error.

¹ The most striking example of this for future generations will be the “War-guilt” question, which is the question — who possesses the power, through control of press and cable in all parts of the world, to establish in world-opinion that truth which he needs for his political ends and to maintain it for so long as he needs it? An altogether different question (which only in Germany is confused with the first) is the purely scientific one — to whose interest was it that an event about which there was already a whole literature should occur in the summer of 1914 in particular?

With the political press is bound up the need of universal school-education, which in the Classical world was completely lacking. In this demand there is an element — quite unconscious — of desiring to shepherd the masses, as the object of party politics, into the newspaper’s power-area. The idealist of the early democracy regarded popular education, without arrière pensée, as enlightenment pure and simple, and even to-day one finds here and there weak heads that become enthusiastic on the Freedom of the Press — but it is precisely this that smooths the path for the coming Cæsars of the world-press. Those who have learnt to read succumb to their power, and the visionary self-determination of Late democracy issues in a thorough-going determination of the people by the powers whom the printed word obeys.

pp. 462–465

In the contests of to-day tactics consists in depriving the opponent of this weapon. In the unsophisticated infancy of its power the newspaper suffered from official censorship which the champions of tradition wielded in self-defence, and the bourgeoisie cried out that the freedom of the spirit was in danger. Now the multitude placidly goes its way; it has definitively won for itself this freedom. But in the background, unseen, the new forces are fighting one another by buying the press. Without the reader’s observing it, the paper, and himself with it, changes masters.¹ Here also money triumphs and forces the free spirits into its service. No tamer has his animals more under his power. Unleash the people as reader-mass and it will storm through the streets and hurl itself upon the target indicated, terrifying and breaking windows; a hint to the press-staff and it will become quiet and go home. The Press to-day is an army with carefully organized arms and branches, with journalists as officers, and readers as soldiers. But here, as in every army, the soldier obeys blindly, and war-aims and operation-plans change without his knowledge. The reader neither knows, nor is allowed to know, the purposes for which he is used, nor even the rôle that he is to play. A more appalling caricature of freedom of thought cannot be imagined. Formerly a man did not dare to think freely. Now he dares, but cannot; his will to think is only a willingness to think to order, and this is what he feels as his liberty.

¹ In preparation for the World War the press of whole countries was brought financially under the command of London and Paris, and the peoples belonging to them reduced to an unqualified intellectual slavery. The more democratic the inner form of a nation is, the more readily and completely it succumbs to this danger. This is the style of the twentieth century. To-day a democrat of the old school would demand, not freedom for the press, but freedom from the press; but meantime the leaders have changed themselves into parvenus who have to secure their postion vis-à-vis the masses.

And the other side of this belated freedom — it is permitted to everyone to say what he pleases, but the Press is free to take notice of what he says or not. It can condemn any “truth” to death simply by not undertaking its communication to the world — a terrible censorship of silence, which is all the more potent in that the masses of newspaper readers are absolutely unaware that it exists.¹ Here, as ever in the birth-pangs of Cæsarism, emerges a trait of the buried springtime.² The arc of happening is about to close on itself. Just as in the concrete and steel buildings the expression-will of early Gothic once more bursts forth, but cold, controlled, and Civilized, so the iron will of the Gothic Church to power over souls reappears as — the “freedom of democracy.” The age of the “book” is flanked on either hand by that of the sermon and that of the newspaper. Books are a personal expression, sermon and newspaper obey an impersonal purpose. The years of Scholasticism afford the only example in world-history of an intellectual discipline that was applied universally and permitted no writing, no speech, no thought to come forth that contradicted the willed unity. This is spiritual dynamics. Classical, Indian, or Chinese mankind would have been horrified at this spectacle. But the same things recur, and as a necessary result of the European-American liberalism — “the despotism of freedom against tyranny,” as Robespierre put it. In lieu of stake and faggots there is the great silence. The dictature of party leaders supports itself upon that of the Press. The competitors strive by means of money to detach readers — nay, peoples — en masse from the hostile allegiance and to bring them under their own mind-training. And all that they learn in this mind-training, is what it is considered that they should know — a higher will puts together the picture of their world for them. There is no need now, as there was for Baroque princes, to impose military-service liability on the subject — one whips their souls with articles, telegrams, and pictures (Northcliffe!) until they clamour for weapons and force their leaders into a conflict to which they willed to be forced.

¹ The great Burning of the Books in China (p. 433) was innocuous by comparison.

² P. 434

This is the end of Democracy. If in the world of truths it is proof that decides all, in that of facts it is success. Success means that one being triumphs over the others. Life has won through, and the dreams of the world-improvers have turned out to be but the tools of master-natures. In the Late Democracy, race bursts forth and either makes ideals its slaves or throws them scornfully into the pit. It was so, too, in Egyptian Thebes, in Rome, in China — but in no other Civilization has the will-to-power manifested itself in so inexorable a form as in this of ours. The thought, and consequently the action, of the mass are kept under iron pressure — for which reason, and for which reason only, men are permitted to be readers and voters — that is, in a dual slavery — while the parties become the obedient retinues of a few, and the shadow of coming Cæsarism already touches them. As the English kingship became in the nineteenth century, so parliaments will become in the twentieth, a solemn and empty pageantry. As then sceptre and crown, so now peoples’ rights are paraded for the multitude, and all the more punctiliously the less they really signify — it was for this reason that the cautious Augustus never let pass an opportunity of emphasizing old and venerated customs of Roman freedom. But the power is migrating even to-day, and correspondingly elections are degenerating for us into the farce that they were in Rome. Money organizes the process in the interests of those who possess it,¹ and election affairs become a preconcerted game that is staged as popular self-determination. If election was originally revolution in legitimate forms,² it has exhausted those forms, and what takes place is that mankind “elects” its Destiny again by the primitive methods of bloody violence when the politics of money become intolerable.

¹ Herein lies the secret of why all radical (i e., poor) parties necessarily become the tools of the money-powers, the Equites, the Bourse. Theoretically their enemy is capital, but practically they attack, not the Bourse, but Tradition on behalf of the Bourse. This is as true of to-day as it was for the Gracchan age, and in all countries. Fifty per cent of mass-leaders are procurable by money, office, or opportunities to “come in on the ground-floor,” and with them they bring their whole party.

² p. 415

Money, the destroyer of both intellect and democracy

Through money, democracy becomes its own destroyer, after money has destroyed intellect. But, just because the illusion that actuality can allow itself to be improved by the ideas of any Zeno or Marx has fled away; because men have learned that in the realm of reality one power-will can be overthrown only by another (for that is the great human experience of Contending States periods); there wakes at last a deep yearning for all old and worthy tradition that still lingers alive. Men are tired to disgust of money-economy. They hope for salvation from somewhere or other, for some real thing of honour and chivalry, of inward nobility, of unselfishness and duty. And now dawns the time when the form-filled powers of the blood, which the rationalism of the Megalopolis has suppressed, reawaken in the depths. Everything in the order of dynastic tradition and old nobility that has saved itself up for the future, everything that there is of high money-disdaining ethic, everything that is intrinsically sound enough to be, in Frederick the Great’s words, the servant — the hard-working, self-sacrificing, caring servant — of the State, all that I have described elsewhere in one word as Socialism in contrast to Capitalism³ — all this becomes suddenly the focus of immense life-forces. Cæsarism grows on the soil of Democracy, but its roots thread deeply into the underground of blood tradition. The Classical Cæsar derived his power from the Tribunate, and his dignity and therewith his permanency from his being the Princeps. Here too the soul of old Gothic wakens anew. The spirit of the knightly orders overpowers plunderous Vikingism. The mighty ones of the future may possess the earth as their private property — for the great political form of the Culture is irremediably in ruin — but it matters not, for, formless and limitless as their power may be, it has a task. And this task is the unwearying care for this world as it is, which is the very opposite of the interestedness of the money-power age, and demands high honour and conscientiousness. But for this very reason there now sets in the final battle between Democracy and Cæsarism, between the leading forces of dictatorial money-economics and the purely political will-to-order of the Cæsars. And in order to understand this final battle between Economics and Politics, in which the latter reconquers its realm, we must now turn our glance upon the physiognomy of economic history.

³ See Preussentum und Sozialismus, p. 41, et seq.

December 14, 2018

Relabelling the root filesystem of a droplet

$ ssh root@mydroplet.digital.ocean
The authenticity of host 'mydroplet.digital.ocean (172.17.217.2)' can't be
established. ECDSA key fingerprint is
SHA256:iEUtFh+dbjp9qEaKKzac/dbjp9qEaKKzacFnBC+Z4Vs.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'mydroplet.digital.ocean,172.17.217.2' (ECDSA) to
the list of known hosts.
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-42-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Dec 13 22:05:41 UTC 2018

  System load:  0.87              Processes:           85
  Usage of /:   4.8% of 24.06GB   Users logged in:     0
  Memory usage: 14%               IP address for eth0: 172.17.217.2
  Swap usage:   0%

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

root@mydroplet:~# lsblk -o name,type,size,fstype,label,mountpoint
NAME    TYPE  SIZE FSTYPE LABEL            MOUNTPOINT
vda     disk   25G              
├─vda1  part 24.9G ext4   cloudimg-rootfs  /
├─vda14 part    4M              
└─vda15 part  106M vfat   UEFI             /boot/efi

root@mydroplet:~# tune2fs -L LINUX /dev/vda1
tune2fs 1.44.1 (24-Mar-2018)

root@mydroplet:~# lsblk -o name,type,size,fstype,label,mountpoint
NAME    TYPE  SIZE FSTYPE LABEL MOUNTPOINT
vda     disk   25G              
├─vda1  part 24.9G ext4   LINUX /
├─vda14 part    4M              
└─vda15 part  106M vfat   UEFI  /boot/efi

root@mydroplet:~# cat /etc/fstab
LABEL=cloudimg-rootfs   /        ext4   defaults        0 0
LABEL=UEFI      /boot/efi       vfat    defaults        0 0

root@mydroplet:~# sed -i -e 's/\s\+/ /g' /etc/fstab

root@mydroplet:~# sed -i -e 's/cloudimg-rootfs/LINUX/g' /etc/fstab

root@mydroplet:~# cat /etc/fstab
LABEL=LINUX / ext4 defaults 0 0
LABEL=UEFI /boot/efi vfat defaults 0 0

root@mydroplet:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.15.0-42-generic

root@mydroplet:~# update-grub
update-grub             update-grub-legacy-ec2  update-grub2            

root@mydroplet:~# update-grub2
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-42-generic
Found initrd image: /boot/initrd.img-4.15.0-42-generic
done

root@mydroplet:~# update-grub-legacy-ec2 
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-4.15.0-42-generic
Replacing config file /run/grub/menu.lst with new version
Found kernel: /boot/vmlinuz-4.15.0-42-generic
Updating /boot/grub/menu.lst ... done

root@mydroplet:~# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-42-generic
Found initrd image: /boot/initrd.img-4.15.0-42-generic
done

root@mydroplet:~# reboot
$ ssh root@mydroplet.digital.ocean
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-42-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Dec 13 22:09:05 UTC 2018

  System load:  0.28              Processes:           88
  Usage of /:   4.8% of 24.06GB   Users logged in:     0
  Memory usage: 13%               IP address for eth0: 172.17.217.2
  Swap usage:   0%

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

Last login: Thu Dec 13 22:05:43 2018 from 198.51.100.149

root@mydroplet:~# mkdir /data

root@mydroplet:~# for d in home srv; do
> mv /$d /data
> mkdir /$d
> echo /data/$d /$d none bind 0 0 >> /etc/fstab
> done

root@mydroplet:~# cat /etc/fstab
LABEL=LINUX / ext4 defaults 0 0
LABEL=UEFI /boot/efi vfat defaults 0 0
/data/home /home none bind 0 0
/data/srv /srv none bind 0 0

root@mydroplet:~# reboot
$ ssh root@mydroplet.digital.ocean
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-42-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Dec 13 22:11:32 UTC 2018

  System load:    0.47              Processes:           85
  Usage of /home: 4.8% of 24.06GB   Users logged in:     0
  Memory usage:   13%               IP address for eth0: 172.17.217.2
  Swap usage:     0%

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

Last login: Thu Dec 13 22:09:06 2018 from 198.51.100.149

root@mydroplet:~# mount | grep '^/dev/\S\+'
/dev/vda1 on / type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /home type ext4 (rw,relatime,data=ordered)
/dev/vda1 on /srv type ext4 (rw,relatime,data=ordered)
/dev/vda15 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage...

December 12, 2018

The absurd and ridiculous kind of scepticism of our modern philosophers

A digitized copy of the 1771 edition of the Encyclopaedia Britannica is available at the Scottish National Library (https://digital.nls.uk/144133900); readers can download PDF files for each of the three volumes, containing high-resolution scanned page images; or they may amuse themselves with the results of the automated optical character recognition. Here is a fragment from the article on Academics or Academists, written with admirable self-assurance by the Society of Gentlemen in Scotland who endeavored to compile and publish this Dictionary of Arts and Sciences destined to illuminate the world:
Before the days of Plato, philosophy had, in a great measure, fallen into contempt. The contradictory systems and hypotheses that had successively been urged upon the world, were become so numerous, that, from a view of this inconstancy and uncertainty of human opinions, many were led to conclude, that truth lay beyond the reach of our comprehension. Absolute and universal scepticism was the natural consequence of this conclusion. In order to remedy this abuse of philosophy and of the human faculties, Plato laid hold of the principles of the academical philosophy, and, in his Phaedo, reasons in the following manner:

“If we ate unable to discover truth, (says he), it must be owing to two circumstances; either there is no truth in the nature of things, or the mind, from a defect in its powers, is not able to apprehend it. Upon the latter supposition, all the uncertainly and fluctuation in the opinions and judgments of mankind admit of an easy solution: Let us therefore be modest, and ascribe our errors to the real weakness of our own minds, and not to the nature of things themselves. Truth is often difficult of access: in order to come at it, we must proceed with caution and diffidence, carefully examining every step; and after all our labour, we will frequently find our greatest efforts disappointed, and be obliged to confess our ignorance and weakness.”

Labour and caution in our researches, in opposition to rash and hasty decisions, were the distinguishing characteristics of the disciples of the ancient academy. A philo­sopher possessed of these principles, will be slow in his progress, but will seldom fall into errors, or have occasion to alter his opinion after it is once formed.

Vanity and precipitance are the great sources of scepticism: hurried on by these, instead of attending to the cool and deliberate principles recommended by the academy, several of our modern philosophers have plunged themselves into an absurd and ridiculous kind of scepticism. They pretend to discredit things that are plain, simple, and easily comprehended; but give peremptory and decisive judgments upon subjects that evidently exceed the limits of our capacity.

Of these Berkley and Hume are the most considerable. Berkley denied the exigence of every thing, excepting his own ideas. Mr Hume has gone a step further, and ques­tioned even the existence of ideas; but at the same time has not hesitated to give determined opinions with regard to eternity, providence, and a future state, miraculous interpositions of the Deity, &c. subjects far above the reach of our faculties. In his essay on the academical or sceptical philosophy, he has confounded two very opposite species of philosophy.

After the days of Plato, indeed, the principles of the first academy were grossly corrupted by Arcesilas, Carneades, &c. This might lead Mr Hume into the notion that the academical and sceptical philosophy were synonimous terms. But no principles can be of a more opposite nature than those which were inculcated by the old academy of Socrates and Plato, and the sceptical notions which were propagated by Arcesilas, Carneades, and the other disciples of the succeeding academics.
The Berkeley and Hume, whom the Scottish Encyclopedists valiantly criticize for their absurd scepticism, are the famous George Berkeley, (Anglican) Bishop of Cloyne (after whom is named the city of Berkeley in California), and the massively influential David Hume. As they say, nemo propheta acceptus est in patria sua.

December 8, 2018

Random signatures

The goal is to generate pronounceable names consisting of three components, e.g., Ritin Vogga Umkithessix, for a total of eight syllables. By pronounceable, I mean that English (or German, or Romanian and so on) speakers should find that the names seem pronounceable, and be able to make a credible attempt at pronouncing them; they will most likely not agree completely on the pronunciation, but that's perfectly acceptable.

Phonotactics

  • The vowels are a, e, i, o, and u, and the diphthongs are ai, au, ei, eu, oi, ou and ui. They are intended to be pronounced /ai/, /au/ and so on, but English pronunciation is fine.
  • The consonants are b, ch (as in chill), d, f, g, h, j (as in jam), k, l, m, n, p, qu, r, s, sh, t, th (as in thin), w, y (as in yes), z, and zh (the sound of s in vision).
  • The first syllable may begin with a vowel; otherwise, all syllables begin with either one consonant, or a two-syllable cluster of which the first is one of b, f, g, k, p, s, sh, v, z, and the second is an l or an r, or the first is d, t, th, and the second is r.
  • Except the last syllable, syllables end in a vowel, a diphtong, or a vowel plus m or n.
  • A single consonant between two vowels may be geminated, except ch, h, j, qu, sh, th, w, x, y, and zh, which may not.
  • The last syllable may end in one of the vowels a, e, o, in a diphthong, or in a pronounceable cluster of two consonants.
  • In words of two or more syllables, the dynamic stress falls on the penultimate syllable.

Implementation

The main function is RandSignature(), which generates a random, pronounceable, three-part name such as, for example, Fraunems Zhadum Thegonvonjask or Aimave Fashes Amzequev. The function selects a syllable pattern (2, 2, 4, or 2, 3, 3, or 3, 1, 4, or 3, 2, 3), and calls RandName() to generate the three components.
Function RandSignature() As String

  Dim NumSyllables As Variantconsonant
  Dim i As Long

  Select Case RandChoice(4)
  Case 0: NumSyllables = Array(2, 2, 4)
  Case 1: NumSyllables = Array(2, 3, 3)
  Case 2: NumSyllables = Array(3, 1, 4)
  Case 3: NumSyllables = Array(3, 2, 3)
  End Select

  For i = LBound(NumSyllables) To UBound(NumSyllables)
    RandSignature = RandSignature _
      & IIf(i > LBound(NumSyllables), " ", "") & RandName(NumSyllables(i))
  Next i

End Function
The bulk of the implementation is in the function RandName(NumSyllables), which actually generates a pronounceable name components and implements the phonotactics rules. It iterates with i from 1 to NumSyllables, accumulating the current syllable is the string s. After NumSyllables have been generated and concatenated, it finalizes the name ending, and finally replaces placeholder letters with the correct spelling. Since this is a simple-minded example, all multiple choices are equiprobable.

cchThe sound of ch in chill
KckOnly at end of word
kkck
qqu
Ssh
TthAs in English, presumably
ZzhThe sound of s in measure or vision
WuSecond component of a diphthong; spelled w at end of word
YiSecond component of a diphthong; spelled y at end of word

While generating the name, the diphthongs ai, au, ei, eu, and so on are represented by aY, aW, eY, eW and so on, that is to say, W and Y stand for the second component of a diphthong; they will be replaced with u and i after completing the generation of the name component, unless they fall at the end of the word, when they are replaced with w and y. Thus, uzoYnisk will be spelled Uzoinisk, but efoW is will be spelled Efow. I have this feeling that monoglot native English speakers would be more willing to accept Efow and Koxaloy than the more regular spellings Efou and Koxaloi.
  • The first syllable may being with a vowel, with probability 1/5. The second and subsequent syllables will always begin with a consonant.
  • When generating an initial consonant, avoid the combinations iy, mh, mm, my, nh, nn, ny, uw, Ww and Yy, either because they are hard to pronounce (iy, uw, Ww and Yy), or because they would be misleading (mh, nh), or because native English speakers wouldn't know how to make them (my, ny), or because they would be generated later by the letter-doubling logic.
  • A single consonant between vowels has a 1/3 chance of being doubled, unless it is one of chjqSTwxyZ, which cannot be doubled.
  • After one of bfgkpsSvz there is a 1/3 chance for an l or an r, giving a combination known as muta cum liquida, which can be pronounced as a cluster at the beginning of the syllable.
  • The syllable onset is followed by a vowel, chosen so that the combinations yi, quu and wu do not occur. Once per word, the vowel may become a diphthong; otherwise, an m or an n may be added.
  • At the end of the word, syllables may end in a consonant or a cluster. If the final syllable vowel is an i or a u then a final consonat or cluster is always added.
Function RandName(ByVal NumSyllables As Long) As String

  Dim i As Long
  Dim s As String
  Dim DiphthongUsed As Boolean '= False

  For i = 1 To NumSyllables
    s = ""
    If i > 1 Or RandChance(4 / 5) Then
      Do
        s = Mid$("bcdfghjklmnpqrsStTvwxyzZ", 1 + RandChoice(24), 1)
      Loop Until _
        InStr("iy mh mm my nh nn ny uw Ww Yy", Right$(RandName, 1) & s) = 0
      If Len(RandName) > 0 And InStr("aeiou", Right$(RandName, 1)) > 0 _
        And InStr("chjqSTwxyZ", s) = 0 And RandChance(1 / 3) _
      Then
        s = s & s
      End If
    End If
    If InStr("bfgkpsSvz", s) > 0 And RandChance(1 / 3) Then
      s = s & Mid$("lr", 1 + RandChoice(2), 1)
    ElseIf InStr("dtT", s) > 0 And RandChance(1 / 6) Then
      s = s & "r"
    End If
    If Right$(s, 1) = "y" Then
      s = s & Mid$("aeou", 1 + RandChoice(4), 1)
    ElseIf Right$(s, 1) = "q" Or Right$(s, 1) = "w" Then
      s = s & Mid$("aeio", 1 + RandChoice(4), 1)
    Else
      s = s & Mid$("aeiou", 1 + RandChoice(5), 1)
    End If
    If DiphthongUsed Then
      If RandChance(1 / 4) Then s = s & Mid$("mn", 1 + RandChoice(2), 1)
    Else
      If InStr("aeo", Right$(s, 1)) > 0 And RandChance(1 / 3) Then
        s = s & Mid$("mnWY", 1 + RandChoice(4), 1)
      ElseIf InStr("i", Right$(s, 1)) > 0 And RandChance(1 / 3) Then
        s = s & Mid$("mn", 1 + RandChoice(2), 1)
      ElseIf InStr("u", Right$(s, 1)) > 0 And RandChance(1 / 3) Then
        s = s & Mid$("mnY", 1 + RandChoice(3), 1)
      End If
      DiphthongUsed = InStr("WY", Right$(s, 1)) > 0
    End If
    RandName = RandName & s
  Next i

  If Len(RandName) < 2 Or InStr("iu", Right$(RandName, 1)) > 0 _
    Or (InStr("aeo", Right$(RandName, 1)) > 0 _
    And RandChance(IIf(Right$(RandName, 1) = "e", 2 / 3, 1 / 3))) _
  Then
    RandName = RandName & Mid$("dfgKlmnprsStTvxz", 1 + RandChoice(16), 1)
  End If

  If InStr("n", Right$(RandName, 1)) > 0 And RandChance(1 / 2) Then
    RandName = RandName & Mid$("dkts", 1 + RandChoice(5), 1)
  ElseIf InStr("lr", Right$(RandName, 1)) > 0 And RandChance(1 / 2) Then
    RandName = RandName & Mid$("kmnpts", 1 + RandChoice(5), 1)
  ElseIf InStr("f", Right$(RandName, 1)) > 0 And RandChance(1 / 2) Then
    RandName = RandName & Mid$("kts", 1 + RandChoice(3), 1)
  ElseIf InStr("s", Right$(RandName, 1)) > 0 And RandChance(1 / 2) Then
    RandName = RandName & Mid$("kt", 1 + RandChoice(2), 1)
  ElseIf InStr("km", Right$(RandName, 1)) > 0 And RandChance(1 / 2) Then
    RandName = RandName & Mid$("ts", 1 + RandChoice(2), 1)
  ElseIf InStr("p", Right$(RandName, 1)) > 0 And RandChance(1 / 2) Then
    RandName = RandName & Mid$("s", 1 + RandChoice(1), 1)
  End If

  RandName = Replace$(RandName, "c", "ch")
  RandName = Replace$(RandName, "K", "ck")
  RandName = Replace$(RandName, "q", "qu")
  RandName = Replace$(RandName, "S", "sh")
  RandName = Replace$(RandName, "T", "th")
  RandName = Replace$(RandName, "Z", "zh")
  RandName = Replace$(RandName, "W", "u")
  RandName = Replace$(RandName, "Y", "i")
  RandName = Replace$(RandName, "kk", "ck")
  RandName = Replace$(RandName, "nb", "mb")
  RandName = Replace$(RandName, "np", "mp")

  If Right$(RandName, 1) = "u" Then
    RandName = Left$(RandName, Len(RandName) - 1) & "w"
  ElseIf Right$(RandName, 1) = "i" Then
    RandName = Left$(RandName, Len(RandName) - 1) & "y"
  End If

  RandName = UCase$(Left$(RandName, 1)) & Mid$(RandName, 2)

End Function
The function RandChance(Chance) returns True with a probability equal to Chance, a number between 0 and 1. RandChance(0) is of course always False, and RandChance(1) is always True.
Function RandChance(ByVal Chance As Double) As Boolean

  RandChance = Rand < Chance

End Function
RandChoice(NumChoices) returns an integer between 0 and NumChoices − 1, inclusive; if a number between 1 and NumChoices, inclusive, is needed, then 1 must be added to the result.
Function RandChoice(ByVal NumChoices As Long) As Long

  RandChoice = Int(IIf(NumChoices > 1, NumChoices, 1) * Rand)

End Function
The multiplicative congruential random number generator with modulus 2147483647 and multiplier 69621 has been picked up from Stephen K. Park and Keith W. Miller, "Random number generators: good ones are hard to find", in Communications of the ACM, volume 31 (1988), number 10, pp. 1192-1201. The method of computing the next number in the sequence

x = ax mod m

is due to Linus Schrage, first described in his paper "A more portable Fortran random number generator", in ACM Transactions on Mathematical Software, vol.5 (1979), pp.132-138.
Function Rand(Optional ByVal Seed = -1) As Double

  Const Modulus As Long = 2147483647
  Const Multiplier As Long = 69621
  Const Quotient As Long = Modulus \ Multiplier '= 30845
  Const Remainder As Long = Modulus Mod Multiplier '= 23902

  Static RandValue As Long '= 0

  Dim i As Long

  If RandValue <= 0 Or Seed >= 0 Then
    Seed = Seed Mod Modulus
    If Seed <= 0 Then Seed = _
      (1 + (((CLng(Date) Mod 65536) * 25173 + 13849) Mod 65536) \ 338) _
      * (1 + Int(CDbl(Timer) * 128#))
    RandValue = Seed
    For i = 1 To 100
      Rand
    Next i
  End If

  RandValue = _
    Multiplier * (RandValue Mod Quotient) - Remainder * (RandValue \ Quotient)
  If RandValue < 0 Then RandValue = RandValue + Modulus

  Rand = RandValue / Modulus

End Function
The function RandSignature() can be used to insert one or more generated names into the current document or worksheet, or simply, as in the following example, to display the generated names in the immediate window.
for i = 1 to 70: _
s = RandSignature: _
? s & iif(i mod 2 = 1, space$(40 - len(s)), vbcrlf);: _
next i
Javloyaf Quimt Quoudeshachiv            Pouyun Quekajo Chinchinjath
Quepruv Xouthowo Xijonwa                Chimnem Jatoirip Ateibro
Keyappuz Rusha Thiheique                Trundra Jarrilips Javraxo
Rethrechuy Chum Lojamthemom             Dafro Lithixex Gopuprin
Xojinemt Boy Bomboizlenwax              Pittoz Linim Zijenlouhuns
Porriv Baxoumo Bonthovlist              Veddarud Xike Pumdebruck
Xima Juyuthey Begrowev                  Joushaggurm Graw Choudichawilk
Pemwans Quannit Ximpralouzond           Xuichunchug Rathuy Thohutham
Keshems Lowamvumt Powemgliv             Remthraquiv Quo Gofettanzhin
Zrechumchip Dey Azlaboshruy             Rumsajox Rap Rizhaukazzon
Gruimunt Tantuy Rashimwerra             Thullombo Zuz Seitazixenk
Zlidaw Quonthavvuck Fliklorrog          Jublinzley Thut Kauzheddixa
Quivimt Thinramwon Fauthrusud           Dossuy Lamesh Zijaibraque
Dadde Ragoppufk Zirroufrask             Bonsaw Reshank Itheuframif
Loraquick Eck Rasibojaz                 Quoizretre Thizha Fotushumt
Lorrizhiln Leshra Puckimxish            Thozappa Joxish Krivvimnuth
Zaxeupo Vrums Promrihiblof              Gladith Gimshrux Ithabboslin
Tharav Frinfem Kuishonsatuv             Linrorruth But Xezhuzhechav
Droizhothash Rempo Bremthinga           Xezzuxo Bijeg Puiquimblask
Jezhis Farirt Brambubbemmut             Zhiquozhuy Xumt Pekrumdrunfush
Jibbouthreck Zhimbams Jukixond          Sikuflips Xith Bunvuchokrem
Thruvid Sohey Imnunmimjunt              Jinolled Fod Rudoxizhow
Ruzhovle Bamey Zennimnirn               Gaituged Zhur Grichuddeuchind
Uchigips Vlogat Rozhushuy               Kucho Quepray Lollikamel
Zhaquid Piquew Kruikrofockand           Zhoixo Xejimrin Augitro
Iddiv Johimgeck Jorekas                 Fichul Quaikladdix Regurat
Givimplim Quew Sullujusuth              Xakril Tachishla Rinmoment
Slezha Jowo Luisichovemt                Leithog Loija Vossijassin
Chumpraz Xerew Rozhavunim               Fiha Biquim Dunvlakacho
Sonslo Lissil Lippaushonduz             Vezzuth Ponequir Takoikra
Pemmuck Lamdis Imminjoplor              Shrasunaz Ow Bupimwawag
Bruson Krusloshen Thunwimbups           Rinchid Kuckuixux Oigotre
Vimzhuithug Xiquid Shlujira             Truilanthif Kil Sritenrinar
Zhikluth Jichesh Aiquigripish           Glenquimla Jixem Ranrizhey
Rinvlito Kow Frindosufums               Fumbush Braubrix Trontawija

December 6, 2018

Anagraphium stochasticum decembrale

Nongenta nonaginta novem nomina ficta, per programma computatrale ingeniose generata, cum Anglicis phonotacticis normis compatibilia, in phantasmaticis fabulis utibilia, alphabetice tabulata.

WothAceyfHraggeAchuthaykIsythAcmigge
NashyxAdneeshaTeefkAdoovoNeegsAgnocke
MoremteAheirreDeytAiffiRitmunAkeebbe
LiejirabAtholaylVainneAthoybaRaydybAvviffe
AyttoAwfifyxOrawmueAwlosradsAsrawAwmarre
AwxeAwmimoFroyxAwnonneNyrrivAwoomca
NoroAwtedsOsunAxolUmraylAyrtep
BymeAytsuppeOompuxAyvectaHakaAyxumno
ReybAzymowLymaBatrowKinnaBayna
OocoBeipseGeboolBelepseImmyBerbow
LoleezBewsrueUxienneBibzoocendFoosBidolotte
NythBielonZrivBihaykVyviptBimpanvo
JuyckiBirailtVuydereBomootteEmybBopieste
QuewBorronsMreelceBoxexenneShojymBreeckithraw
DruzzeBreekobbachCherBreengFrodroolleBreessichenne
RoygromkBreezonneTawquaBregaygnaPronabBreheyp
WosueBrewrigbarSrypBrincaLiefeBrogath
QuaithasBrojeesteNogriBrolleGraxBroomoti
MratietBropidishOshewBrowbysfetteCheemmeBrowchumpe
MroyttimmeBrowsopoostReeddoshueBroylecheizzeShaddisueBroymuggiffe
NoveimuspeBruptawtruxNeyprackeBrushrickeTayzBruy
HiessafBupeiftPeinBuseemmerreFroozziBylayth
HawxarreCarieddikLeygutteCawvyffurreMrofyCemommo
PrurixaCempaindMoynCeriethoHafyzCeshoofs
HraproChavvaAithulpChaxashuthBinneinCheedgipreesce
ThryffikCheetmushMreempChegawCaynChemnizoz
PielceCheshelbeedChixChettuvRenomkChewlipse
ChawChewmaffeSinatpeChexuckePaidChielugenne
DrenusChiemethYteerrurChimrejewNaxoddeChivoorcakte
YlfoChokakaindRaineChomeywuthGeedykChoorath
GeezyChoornaPiverewChopennoostEyshaChoyra
EythesteChoyrcisseEwmacanneChugixithNussiChulezze
OonnatrewChuyvrolleSibavChybappeCiellunCickuprict
JocushCiecyrRafsaCingensDrewmaCirreipt
PahedCoommammooffeChemCoosoXuyvCopronech
HeenCorgundLoopukCoyphabykKiethCraddoyle
LupuvCranankParawCrawreRuchawCreggeeggin
TawlaCremtCrepseCrewitteEreitteCreyzumpe
NoobbeCriexybMelbaCrilannuynBevvuylCrimmoyd
NogruyfCritraylNireispCrodreshCythowCrolillej
QuajCrosoxeXapuyvaddeCroynyjeeddeAyrueCrugietryn
FrujaCruppimmeIdsepuddeCrutmucpienneLussawonCruviewafse
AwxerCuthuyxHaftaCuvalsCrunichCuvrimse
HuquicteCyleepagsUytifowDamoriftGothyDappur
NeixDasheyrSrawdoDawbashrajYthawDawille
GrikDeeffanEelaDeelpXoywiwaynDeeshurre
EmeirDeremFievvoDewimmawKeedbitDewlagierre
MeegeDeycuntMrewDiecathJyllowDodithilce
IeliDojosreithEegaDomruynGuthDooferre
MivytrewDoommethewReethDoosbusaPogeemmoDoothyzzoor
SumooxDoraxeethIeppilleDoysikaitteInapDracrient
ZeiziDradeeppeRelonDraitsuwavveLudgoDraruth
DoossurDreceffeDachoDreckieAivaDreens
AydufteDreepsigsTescungDriezykDiexegoDrifneys
ShruthoDrolleibbeThaippeDroopefteMrymDroym
LlooxDrubegMrefkDrurainsVroyDrusfyckeez
NobnieraDruyninneQueyhynDrythovveLeenDychuy
MoquoEceenPheetEchoonVewdreEchycibs
GuyrEcientPraseexeEefvyhorJuytroEelfogra
OdileEelpivveLiraynEernobbeIebriEerryn
SroossueEeshejawIbryfEiddylNoygroshEiffonne
FyvirEilmugsTitsaifoxEincitheejOyrekEippeveenk
AbrieEivitrachDinirElawynGoobboEnneepte
HruxEnnyzThuwowEnohuvveXipnowEsseggodde
AlleEsusanEeguxEtenneJawsyEvoot
XoyzEwcutringPhurrugafEwdyrzunnePadiechEwrimpal
TreenencorEwtusneinneGievEyfvimiethIfuyEynuluth
AphelsEysharreixZothEysryfOollylFaidnizzoth
OobboFaitheFuvewFasathFidbeFawphuggow
OylobsFaxonueNesheFebbiequoXemootteFeevvinne
EennopybFefpempeTuyfFeimmeIluydFemumrue
SuylaFepholpeEbakFepmotteUratFeysh
GrebyrFiecrydomsGybbulpFigripeChepnoFockaw
EwfriFodrowOoshimpeFoogefroomPabbinFoommussa
ShonteFoospeEgynFopcegsGaisseFotuyj
IrygFovoBrepreexytFoymonoothRuttowFoyririsse
TrixebbeFoyzetteirHrumiFradnyxaGoxaFrallurfoosse
AwmoFrannowBaictFraytonFucnigsFredgimme
MegaybFreettysUthupseFressewbeTeesseFrewcha
GraisceFrewfufpeEwnemyFrewieluthMraspeFrivroth
RienenneFrooddynPrethFroofsiRillunFrowrarue
RochoFrugothaOgyrFrulsNeingFrummyl
NeintFrylilleFavvyFuddeelWeefseFudrasoom
InevueFumiedsEecueFuppaggeBoosueFuprith
TybgaFureexEwzivvaxeFuthormeegManirreGaidampew
AcieGaixWeeveGakimpTaturreGaphewo
LaygGattymeepseAzrobeerreGawhexoommeCrurreGayhocke
TacritGeersynuysIesrungGeeshinneJajawGewnix
UyllunsGeyrultalleAdackyGichieHeirGiebrabda
IlpemGiexiRanawGipnemteIechorayGippewosse
RuthGoobzichiChowGooggyOfeivveGraweefs
MaibbichawGraympacieMassipsGregaigsWeebduvveGrenuyfmo
MengaitGrerolkMoffuptGrewsypcynRawyrGribbont
AtneexGriluyreSresGrithGoozzahaGrogewche
DriebsGrommeiltOrynGrosrueBrevGrula
ProockoGruymabbabbeAwlejGruyvvythNeippavGrymrette
AilaGuggifseReipcynGumooddylReifoddojGygeemmunne
VeimciGyllowPethyfGynuhroddeLybriHaneth
ThrugoHaynantSrumseHecaichHremeexHeydamme
SreyHidoommyMreinHievveWuxawHimmoyx
PeshHoorMerinmoHoyxyrpyrLuymnizHraneikisse
MyncawHraymyjueDimeedagsHreezeveingAwtemcelHreigbysorre
EwnakHreivvegPowriHrewnaMrenisHrexofce
DrexyzHrinnawreLaynHrowxamRieltHrulse
WuvrootHrurimitThoogathHruvunneRettutHumeych
GidgidHumrynPhufienHureipseTarudsHuseeth
BrootHymmeskLewteHymmunneEmmotHyppi
SeicoddeIeboshuydDaynIehridymMreyxIelputh
MreloIenfibbimsePaszichIerzackSoxomIetnyxog
ThralIfeemmugGuvvisseIfuttiffeFaimyIgakew
ChemroIgbazzeYniesIgeegsRickueInnoodde
UphoIppooxVewmistIpuygrueTeechIsugge
HeeshIthaystoRefroxIthoothCowpholtItreecte
EigilpIvaputteSasaIvrowBrichiebbeJacayquisce
MeelumeJaidefruypFrewJakammuytMooxJarpue
SrieJawpylCreejeJayppysnesseIvrobJecro
HrirJeeddeOtcivraJeegzygReevJeex
WawvufJejalseVoolleJelloomunneQuivJetaivve
EnymJewlaWypadJeyppaChowJeyssucke
DegguytJirrierciAykapeJoddoshQueiggeJoollurre
MrubJoommulceOossasotJoorsedieEibbaJorroyfemme
UpheJosigsOybolawJumebbivveAyquyshJuxelle
HrolleJuzeipconneLujewJysrieYgunsKegrolfay
NeeshKejowbreggeTrommeegKewxutteLiegirreKivriezatte
OymaKovistDillayKreifsRoyrrutteKrinethith
LyzumKristifoPothitteLabbiebbeXooppymLachafp
ZomsidsLachiedrirRoothLadeethKragLajy
CeyckueLamriddeUymaLartuybVrebLasi
MoyfLawveIeshLayleZroddoLecawcispe
GrawfosLechusoNaizaLedynVruffeLeebsutte
GobrieggeLeennepeeddeHagysrogsLeenufceethThehrudLeerryggiebs
ToffawLeesciddeHogemoLeettemimceHuyxLeevve
RuyparLefoothVufaytLeithyffienFriseLenilt
UfrodbanLerimmuytKrowLewsilsTawpoLewsre
UnnaxLeybeIhyxLeyshybYrijLieri
LimpayrLieroskIeroLieshWemuybLietrelaw
CeerrimceLlawjussiefceTixeLlegynibHefaLlewthux
BeigLlietarreGreillueLlijichowIeboLlino
OcheespLlitmaiggethYpreykLlobbyddaygLuggochLloobgue
ChadLlooggepsLorpawLlootnoJawgowoLloovvi
JavveddeLlowxaggeKrewLloyrpyfMaytosLludooppe
JaymmoLlulengRemmythLlybiefaSowprueLlytpiffe
MrimpLoonvaxBeboLoossackidsNeinneLoottik
TailgipLoseerreDuyrLowdoBedaLowtub
DiexLoymmifeemmeHremrylLoyssethensAwmamkLugurucke
RunnaLunevooggeIwuloLussawSarzavuyLuynillank
BolalieLycawfritteRowhoLyppueBraxLywyth
NeybeMakeppeChamaMalliSejoManesso
XecroMaphoxEeraMarumceOwkaMavow
AmriddeMawfraveilpFreraMaxesipteCafommeMaymath
CrowMeeckogsiChulpMeinfeRoongMeisto
LlewsiMeixonkGafuxMemafpeYmiltMennutte
RoofpMieheLeddoMigepraibWeegyMigzoozzun
XuyneMikoyPynomMintoostegEbysydMiporew
NiebanMirraixNiwiMivevrochFaliMivvogge
SaynMizueNytpafaMochooppeRushMoje
PrenMokizundPonoMoosvygDatteixMorimroom
ZichoosoMorroneybShicnexMrabbisheitteRerrueMraidde
ToorMrandRewraMranneUgielleMrawcyth
ThyrMreddeipseWeecneMreefedynMawchovayMreemmanne
EpivMreethTalleMrelothSeepeMrenidreedde
EsrenMreroorRoriMrethiegsLothreMreyppux
SroogMridooptaNodduvMridytheelkMryrawMrirubbe
QuimriMrobrulseReittueMrogickeXayprengMromtybue
WoovuntMrooddantGeffiMroodduxUypoMrooma
JyfuckMroxadeepPoriMrufewphafpHrycytMruquimme
AvrueMrusiethLogsiskMruvuwoovRuloocteMruymavoops
UylaMrygzoomseRyshinkMrylloovTurunkMunallamt
ShewMuttospPharifbeMuyddipiggeRoonMydymonk
EffarMyshudRoolpNadeeptMisheNaggomosp
MisoveNaickuktRuryNailleDeidnyfNaivvamt
GrewrarreNammaddabbeFresowNaniemupsNugeNapue
MeensNarraffawMreydNavymebAgunneNawpibreegge
MopowNawrumHeshNawsewetMasyhitNawshivve
LadiNaydiDrigsNayrtemawTriedongNebbeylvon
RethyNedepawGrainsNeegsueBoondNeelse
SachuypNeerralunkRuyfNeichyttoGesalsNeifbadda
LlieNeijoTisoNejamteTrusNekre
IeshreNembolliefpeAneilNemrydoovveDeheNennyth
AtcidaddeNensozraixSheckixNepiggieJashNeshaw
SoorpeNesnungFowoNeyzythRieggeNibreeng
TrilloNiddishAneykNidrevaNinoshNiebax
FemowNieddapueXeneNiepygApasNiethoch
EnoychNimuynVruzzeNiptuybSrynNirads
RurootNivrodCrureichNixophyjRecroNodrow
NothNolpitJawchangNomaiscebHraboonsNombienusce
GuybNontueCrybdaynNoofethuskOyxuxNoonne
AcrowNoonunneEitteNoonvefMoochatteNoorajoocke
QuidasseNoothisseSrobawNopiezoPrissieNossieshi
GysoNowvritBruytNowxinDruvewNulunup
NieffeNuneerAloosseNutcufteDittaNyfieth
EwpenNyhenneLlewllyNylifeikThoxNyreigs
GeegOchoommeOluysOddiejCofceOfooth
NievyOgawaSietOggeyjGalaOgul
BroonkOjulleChoppeOlsuyxVaroylaOmsawchind
ShaboOockiseixGemathOodidneelpeJasfieOoffibs
FaykOojykOozejOolithLlafoOolvarre
ElgoOomeshEsynOommePrixOopamp
PivvirasOoretcoybBrykOovubsCathoyOppoonne
NoggiOprewWymueOquoyshWiceegOrelooj
BienOroxeChyjOsemoWoylomOtalzeend
ShroctOteengJodrylOwguqueirreReppimeOwlawesh
ThixOwxepsePrifOycelfuxOwmyrOyjamaw
MureeshOynebrurLairaPaddiemMaygPaile
CuynPammaynOwmefaPappichewIssugPashreemse
DroogaPawxenneJipaPebnugFragrodPebrittosh
BrensPeeduppowGodoPefreeguxeDawtrebrysPeigasieng
FynunnePeilziftUxonsPellemeyshDrawsezPewdrerre
IzengPewpovaspEbbePewruckierreDraymPhaybe
TrarumPhaycretTreemenPhecnoorrotLelierrePheettelgyb
ShalowPhidgeeckorreMithePhiemoPethissePhimpyfath
JufawudsPhobbaithRawmillePhofrevetteTranePhookexeg
GowdronnePhookosenneDeekoPhottoogYbarPhowvan
MochietPhububynGiebivvePhukooforUgeffePhumryneinne
GruddeydPienovobbeUdowPihelowUteyPiprin
FriePobonexSrairerPomeenerIbiethexPoopposeedde
RollamedsPooshimmeQuibetPothrawMayddaPottoobs
AraingPoyldomseTewjukPraipcyneilceRoodPrajayssy
SewangPrasryfzyNumsothPrawshyrChungPrayth
MewthrykPrecoommeShawungPrekalleXafangPreleb
RuleymPrethixMowllePrewnythEroynittePrievrumryz
TonneyPritorreWaimnechProwpammievveLixidanPrugawen
IhrerPrushDyddayPruzeybSredzassePrythobbe
SuchaPuhryfNoylPumreTreliegPuponne
OnerPythAigePythawMrawQuaiffychind
OpunsQuamolpNirraQueedyGoovveQueemummayt
LejaQueesbipsAqueezzeQuemuylueZakoogQuerriemse
SaxaxQuewcavveUmmoQuewfrurrePrepnieQuoomcode
XathQuovacheMowneRafveyroxRaixRaigs
LefroyRaithemivJeengRasruyOyfaRassaitobbe
CraizurRassickeGaysRassilkSijoRawreth
LeidsRechudriAwfirreRedbiexShaxintRegnoffe
CemofReintToothasseRemryteespeYtruypRerungayr
HanieggeRettiebbeLleynRewdrothyfMownippeReyshirurre
VisewfobRiddawthaBogusRiedserBiquaRiellunne
VipaixRienummePimimmeRieramuygIcpynRiesiffe
RyvarreRiethundChewRiexOshowRijagdoox
GiddawrabRilliecrathEtnuymRimremawSairrungRimrielux
OninnaRituddeEwmimelRivvowmoftAkodeRogzicme
MoopeRoogofrewUyctueRooladsLexawchultRoolguteds
RuymRooptanTathRoossalkIefomsowRootaproy
BrithinRopochoynChemmoRoshrathVructRovret
ChubroRowbamyrSetoRowcaxoWietteRowfuxe
RoneRowgythawChoychatteRowmramrulteUwistRowxudid
SrawRoxiecusChijibbeyxRoyhepputhTrykRumte
PhieckeRurzeinneIxugsinRuvompeApyllewRuyjicke
OtrowliRuyvirreFeiffoRyjaythNittueRylebuch
ChetaRymochynEfozRynnoyIesraRyseyrix
IcrieSapawOsrovewSaymmontBadawSedbayg
TrasritteSeeddothadsAdenewSeerceshMoshesieSeerorans
RaphippeSepimmeypHrommeSeybuphaMulleysShaissenk
QueithShapmeektBannaShasfaIwammeShibboozitte
MoctoodsShicherutSriroShoochockybJagantShovuyfrels
OnnyxydShreengAlaixeShreevaRewlellymShrichewno
CajawShroceWiekShrooffekOpoypSifroozze
RezeimSigguddeFawteSilloProolocteSimmaisse
GrewseSobiegsPuykSobraRoogsSocagierre
FowtriSodremtTriveSoobbuchieltSrecomeSooggoste
OyfajiSophuvogsZompuptSoyxibolpMreckeSragipro
PelloSrareedsGoysSrateVrysSrathofp
TheerSreceishSrujyxSrefommangGraveedoSrethubur
GrudaSrewbopseRaytryxSrexeebnyEennoSrichisse
UnfoSridsMokoSriestChaybbulSrietralce
AwmethSriheyrReintSrinkGraispeSrogrirray
LienneSronubbeNysdeSroomiNosrueSroomyn
MrepaisveSrorewsolleIesoSrotteFufexurSruseeth
NoorSruylakieHoofvySruytazoDrudytSrymmax
RybosSubnutroyXeechibSuvvusuePayroSuysdo
LoltunSyhreygepsLielleSynahooggeSierSypeeth
IbanneTafurreYnalTawgujeipsMawjaTecraw
LailyxTeepseRecezynTefietteDyxaydTefzulle
TrynTeltukGrierTenuymbaLabrieTezuppe
NibustThabeibsMellaThamubeyUythThatatte
ShumbeThawcahieppeUthyfTheloxeTewxamThexays
ButuskThiddeeggeWiemaThienofueKoxueThifsofp
AiffoThineeppeHrankThispibbawOyvoThofs
PiesheThownypNylbiehaThoxeyxubOodzeThrawmrufa
FraysebrumseThrawnusarreSeysThrawtondUsreThrils
ShiethThrurreJytoxThruyfueRiebbeThuceichy
IevvobiexThydrietteReecteThysrusseSeelkTicmeshyn
BabsustTiechipreithPraipethTijeethorSiezuleTitoobbi
PhenTodnaydEnsasceTodroynBroyfToolse
YhoyllasTraithemewFuroTramymRailcelleTravoolle
XaseerTrawcromtythAichaTreejodyChawTreempucke
ThriffygTreennackeVripawTreenneQuariebTregdyfuyn
PotpecugTreitpyfpexDrawTrethuygOyhetTrijuyf
ElnaTrixeyMrunneTrojariOokahaxTrollund
SonipTroongagnueGriexaltTroorrinneConnuxTroozimme
GeelleTrovewDogbiTrucytheerrePhoybTruscit
SuridsTruyrenneIbbeTryvvayrYvrebsTuhachi
EsexTuhufpEtoxTulloorreGeibTuptoy
ShaxUctawDroynaUfelewProomtirUfewgrect
SittebUfoontaMrothUfsonurreDineppeUggaixa
WynroylUggufesteCheranUhayjisGayvaUkyleenk
HanaUlzawseddeObbiUmnowmidsAwmruggeUnfappids
SynnuxUnnaizzeDyquoUseedsCeyfUsraweeds
NadoUsuynRuckewUtroxishBypieftUychittow
AyfelceUypputhaCreespUyracoonEmcammeUytogeex
SeddinsVachihroorMewbraVainanyCafvaixVaivyth
FogriVaseedsBaynVaypcasoGebrymVaysset
PhishVedrawTusheyVeerrueHathVeilo
QuonneVeinneReijVeneerreTewguvVereelit
LlogexVevielceNiemteVewdythAhraVeybbulerre
DrieViexegewRewgonneVippudathGredeebsVooresit
LomroVorithCyrcowVoylemuyfReyjijVramruli
RetoVraspeCheggowVrathewLewgimVraynette
CiefoVrebboOwxuxVrebrypDroonVreelly
EffoosiVrethoddanneOothVrewnuskYdisVrofym
SholsVrufagynPuysVruythKiroogsVrybrem
QuieVufillorrePithWagnueYsfagawWairacta
NidgeWairvapaHruyseWeddunsJeexWedytimce
PhutteWeichockoylObothuylWeruddapseFishWifow
LlimiggylWimtielobsRinuydWirrikMemtarreWoffeelle
IeprueWooverreGrizummeWoppostietteRoviWotinais
WeinigWybofenWybotawWynneickeVeethXaidda
YnnansXaissaroffeXeggerreXarfoolseVibboXawgebbeemse
LivoochXaylorewNeeckeXayxurreegChevXeedsiney
RoymXeedylMriethXeeturrooshSichowroXehisith
PontixXehoochEefifkXeibbexHeelXeisbasropte
ShooreXeitheteAwneXencoommeSretiXepryp
SeexeXerowEthikXienopseNeirrepXiethish
LynoXietiAgdoXijetteNovexXiphel
AcroojXirfailReemXishyxKylaXoprufk
RelommiXowlotrayPuthXumeebCewfasceXurupang
SoylXussiexRaithXutykofkDaffeXuysydreych
SeyfykYcessuythFredigueYjigneshVewsrithYleithomt
OynsaYsfaxybUsabsYsigsTachotYsobbibbe
RochansYttoottaskReilpYvosseGufduyZanydail
UfupZawgothEyggaZeellePaithimpeZeiffimap
JicooshZemylerreOnuctZietpueUnudZoogim
NonyZoykoPhipewZredrueEddoppeZreycky
MejoommeZribrurreLuchZroochikOyradsZrorzihra
TorysZrosnoytAveyrZrulygTrohoZruwoof
Sub UnpackTable()

  Dim t As Table                        ' Table to prepare for conversion
  Dim i As Long                         ' Current row number
  Dim j As Long                         ' Current column number
  Dim r As Range                        ' Current cell, as a Word range
  
  For Each t In Selection.Tables
    For i = 1 To t.Rows.Count
      For j = 1 To t.Columns.Count
        Set r = t.Rows(i).Cells(j).Range
        r.Text = _
          IIf(j = 1, "<tr valign=""baseline"">", "") _
        & "<td" & IIf(j Mod 2 = 1, " align=""right""", "") & ">" _
        & Left$(r.Text, Len(r.Text) - 2) _
        & "</td>" _
        & IIf(j = t.Columns.Count, "</tr>", "")
      Next j
    Next i
  Next t

End Sub
%s/&/\&amp;/g|%s/</\&lt;/g|%s/>/\&gt;/g