## Exploring Thales’ Theorem

I was playing with a geometry software package and decided to explore Thales Theorem.

The theorem states that for any diameter line drawn through the circle with endpoints B and C on the circle (obviously passing through the circle’s center point), any third non-collinear point A on the circle can be used to form a right angle triangle. That is, no matter where you place A on the circle, the angle BAC is always a right angle. Most places I have read online stop there.

There was one small problem on my software. Since constructing this circle meant that the center point was already defined on my program, there didn’t seem to be a way to make the center point part of the line, except by manipulating the mouse or arrow keys. So, as a result, my angle ended up being slightly off: $90.00550^{\circ}$ was the best I could do. But then, I noticed something else: No matter where point A was moved from then on, the angle would stay exactly the same, at $90.00550^{\circ}$.

Now, $90.00550^{\circ}$ is not a right angle. Right angles have to be exactly $90^{\circ}$ or go home. If it’s not a right angle, then Thales’ theorem should work for any angle.

Why not restate the theorem for internal angles in the circle a little more generally then?

For any chord with endpoints BC in the circle, and a point A in the major arc of the circle, all angles $\angle BAC$ will all equal some angle $\theta$. For points A in the minor arc, all angles will be equal to $180^{\circ} - \theta$.

So, now the limitations of my software are unimportant. In the setup shown on the left, the circle contains the chord BC, and A lies in the major arc, forming an angle $\angle BAC = 30.29879^{\circ}$. If A lay in the minor arc, the angle would have been $180^{\circ} - 30.29879^{\circ} = 149.70121^{\circ}$.

By manipulating BC, you can obtain any angle $\angle BAC$ you like, so long as $\angle BAC < 180^{\circ}$. More precisely, all angles in the minor arc drawn in the manner previously described will be $90^{\circ} < \angle BAC < 180^{\circ}$, and all angles in the major arc will tend to be: $0^{\circ} < \angle BAC < 90^{\circ}$. If the chord is actually the diameter line of the circle, then $\angle BAC = 90^{\circ}$ exactly.

## Programmatic Mathematica XVII: The Collatz Conjecture

There has been a lot of interest recently in the Collatz Conjecture. A lot of video blogs are going into it, particularly Numberphile, a vlog present on YouTube. It might have something to do with the fact that this year is the 70th anniversary of the conjecture. It is a simple idea, easy enough for a child to understand. Yet, it has been difficult enough that no one has been able to either prove or disprove it to this day.

The Collatz Conjecture is the hunch, or guess, or idea, that performing a certain recursive operation on any positive integer leads to the inevitable result that repeated operations on all successors will lead to the number 1. After that, the sequence of {1, 4, 2, …} occurs in an infinite repetition.

This problem was first posed by Lothar Collatz in 1937. The reason it is only a conjecture is that no one has been able to prove it for all positive integers. It is only conjectured to work as such. Over the past seventy years, no one has been able to furnish a counterexample where the number 1 is not reached. So by now, we’re “pretty sure” Collatz is correct for all positive integers.

I thought of some Mathematica code to write for this. The algorithm would go something like:

1. Precondition: $n > 0; n \in Z$
2. If n is 1, return 1 and exit
3. If n is even, return $n/2$
4. If n is odd, return $3n + 1$
5. Go back to line 2.

Like Fermat’s Last Theorem, which has been proved once and for all in 1995 by Professor Andrew Wiles, and aided by Richard Taylor, the Collatz Conjecture is simple enough to describe to any lay person (as I just did), but its proof has eluded us.

The application of the above algorithm to Mathematica code involves some new syntax. Sow[n] acts as a kind of array for anyone who doesn’t want to declare and implement an array. I would suppose that the programmers of the Mathematica language didn’t see the need for an array for many implementations, such as sequences of numbers. If you want to generate a sequence, you want the numbers in order from some lower bound, up to some upper bound. If you want to list them, you want to do the same thing. It is not often that you want to access only one particular value inside the sequence. This is for those people who just want the whole sequence uninterrupted.

I guess what Sow[n] does is leave the members of the sequence lying around in some pre-defined region in computer memory. That memory is likely to be freed once the Reap[n] function is called, which lists all the members of the stored sequence in the order generated.

EvenQ[] and OddQ[] are employed to check if n if odd or even before executing the rest of the line. If false, control passes through the next line. The testing is inefficient here, since each statement is tested all the time. So, if we already know the number is even, OddQ[] is executed anyway.

ClearAll[Co];
Co[1] = 1;
Co[n_ /; EvenQ[n]] := (Sow[n]; Co[n/2])
Co[n_ /; OddQ[n]] := (Sow[n]; Co[3*n + 1])
Collatz[n_] := Reap[Co[n]]

But Reap[n] by itself gives a nested array (or more accurately, a “ragged” array) with the final “1” outside of the innermost nesting, where the other numbers are.

In[10]:= Collatz[7]
Out[10]= {1, {{7, 22, 11, 34, 17, 52, 26, 13,
40, 20, 10, 5, 16, 8, 4, 2}}}


Nested arrays are un-necessary, but the remedy to this gets rid of the number “1” which is the number the Collatz function is supposed to always land on. So we then rely on the presence of the number “2”, the number arrived at before going to “1”, at the end of the sequence. Getting rid of the nested array relies on using Flatten[Reap[Co[n]]]. But when you do that, this happens:

In[11]:= Collatz[7]
Out[11]= {1, 7, 22, 11, 34, 17, 52, 26, 13,
40, 20, 10, 5, 16, 8, 4, 2}

Flattening has the effect of placing the ending 1 at the beginning of the array. If we can live with this minor inconvenience, then we are able to test the Collatz Conjecture on wide ranges of positive integers. So, this is the code we ended up with:

ClearAll[Co];
Co[1] = 1;
Co[n_ /; EvenQ[n]] := (Sow[n]; Co[n/2])
Co[n_ /; OddQ[n]] := (Sow[n]; Co[3*n + 1])
Collatz[n_] := Flatten[Reap[Co[n]]]


The sequences generated by the Collatz conjecture have the well-documented property of having common endings. Using the Table[] command, we can observe the uncanny phenomena that most of these sequences end in “8, 4, 2” (or, to be more precise, “8, 4, 2, 1”). Here are the sequences generated for the numbers from 1 to 10:

In[38]:= Table[Collatz[i], {i, 10}]

Out[38]= {{1},
{1, 2},
{1, 3, 10, 5, 16, 8, 4, 2},
{1, 4, 2},
{1, 5, 16, 8, 4, 2},
{1, 6, 3, 10, 5, 16, 8, 4, 2},
{1, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2},
{1, 8, 4, 2},
{1, 9, 28, 14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2},
{1, 10, 5, 16, 8, 4, 2}}

Because even numbers are to be divided by 2, somewhere along the meanderings of the sequence, a power of 2 is encountered, and from there it’s a one-way trip to the number “1”.

## Gnome, a tale of a dead fail whale with a happy ending …

I moved my window manager from xfce to gnome today, and spent most of the day so far getting gdm3 to work. For a while, I was using two window managers, then narrowed it down to gdm3 and uninstalled the other one.

The login manager failed to come up, and for most of this morning I was stuck in a character console. In gnu/linux, strange things happen when you read a lot of documentation and error messages. I began to see artifacts that are in themselves hilarious, although after hours of poring through debug messages and error messages, I first thought I needed a long break. But no. The same phrase can be google’d, and others have reported seeing it, thus confirming my strange experience.

The error I saw was

We failed, but the fail whale is dead. Sorry.

So, what on Earth is a “fail whale”? It appears to mean that a part of the server that issues error messages, has died. Apparently, gdm3 itself didn’t die, since running ps showed that it was still running, although not running a login screen.

It turns out that the “fail whale” was a meme created by someone named Yiying Liu to refer to errors reported by Twitter. I guess I missed out on that meme.

Somewhere in the thicket of error and debug messages was a reference to the fact that /usr/share/gnome-sessions/sessions/ubuntu.session did not exist. I went to that location as root, and symlinked gnome.session to ubuntu.session.

ln -s gnome.session ubuntu.session

That appeared to be all that was needed. I was able to log on to a gnome desktop.

## On the Syrian air strike, and Tomahawk missiles

… the most difficult thing about deciding what to write about these days isn’t so much that I’ve run out of ideas, but that the number of ideas are so numerous it’s actually hard to decide.

Just a while ago, on top of the usual computer/math stuff I usually write about, there was another technology that caught my interest, and I thought there was at least something to think about on this.

Yesterday morning, I woke up to news that Donald Trump gave the order to launch some 59 Tomahawk Missiles into an airfield in the west part of Syria. The news reported that this ominous act was a spur of the moment thing, done without congressional approval, but despite the egregious violation of protocol, I’ll try to focus at least somewhat on the technology (although the politics is hard to ignore).

The Tomahawk is a missile that was at times manufactured by either General Dynamics, Raytheon, or McDonnell-Douglas, with a history going back to the early 1980s, with many improvements since then. It is essentially a guided missile, capable of flying as far as 2500 kilometres. Its “payload” can come in the form of either conventional or nuclear weapons. They pretty much all contain conventional explosives these days. It flies at about 890 km/h, which is slower than the speed of sound (which is 1,234.8 km/h), but still quite fast, owing to an internal jet engine. Most of these are launched from a ship, but they can also be launched from a submarine.

And oh yeah. Replacing the 59 Tomahawks fired earlier this week into Syria is going to cost 1 million dollars to replace. Each. Future costs are projected at around 1.5 million dollars each. And hardly any of the bombs appeared to hit their intended targets. The intended target, the Shyrat Air Base, was fully operational the next day.

Congress, who pretty much hold the purse strings for the government and must approve all spending, might have some legitimate questions to ask regarding spending up to 90 million dollars without asking. Others may ask even more pressing questions, more pressing than money — about dealing with ISIS/ISIL, or about the appearance (and the actuality) of fighting on both sides of the Syrian conflict, or about contradicting what a Trump spokesman has said this week regarding letting Syria do what it wanted (also a surprise statement). Did the missiles save lives? Did the missiles stop the transport of Sarin nerve gas? Did the missiles bring us closer to ending the conflict?

Here is a quote of the first words Trump made to the press of the April 6 attack:

My fellow Americans, on Tuesday, Syrian dictator Bashar al-Assad launched a horrible chemical weapons attack on innocent civilians. Using a deadly nerve agent, Assad choked out the life of innocent men, women and children. It was a slow and brutal death for so many, even beautiful babies were cruelly murdered in this very barbaric attack. No child of God should ever suffer such horror.

It is becoming burdensome to use empathy as a scale to judge the mind of Donald Trump. It is becoming more appropriate to judge him on how he appeals to our emotions and plays with them. He does this by communicating in an almost child-like language, but then makes references to “beautiful babies” being “cruelly murdered”, an attempt to wring out as much emotion as possible from the American public in support of the bombing. While propagandistic, it is crude propaganda, which seeks its usual aim of suppressing rational thought.

According to Trump, we must feel for anyone “brutally murdered” on the orders of al-Assad – especially the “beautiful babies” – yet, we also have to be against anyone who attempts to escape such “brutal murder” along with their families and other “children of God”, by emigrating to the United States for sanctuary. Recall that Syria was one of the countries Trump had on his list of banned countries of origin for immigration.

At some point, Congress (and later the taxpayer) will be asked to pay for this ultimately ineffective bombing raid. Wonder how that will play out …?

## Happy π day, 2017

For π day 2017, this video posted back in 2015 about Pi day, 2019. That is when 2015 students graduate at MIT. Students at MIT registering in 2015 would now be in their second year.

## BoUoW: Bash on Ubuntu on Windows

I am not proud of possibly inventing the ugly acronym “BOUOW”, but “BASH on Ubuntu on Windows” appears to compel it. Maybe we can pronounce it “bow-wow” — not sure if that’s complementary. Just did a Google search, and, no, as predicted I couldn’t have invented it: It is variously acronymed: B.O.U.O.W., or BoUoW. It has been around since at least March of 2016, giving end users, computer geeks, and developers plenty of time to come up with something of a nickname or acronym.

But I actually mean to praise BoUoW, and to give it considerably high praise. This is a brave move on Microsoft’s part, and a long time coming. MS has made *NIX access available in its kernel for some time now, thus making *NIX conventions possible on the command line like certain commands in the Power Shell. The user has to enable the capability in the Windows 10 settings (“Windows Subsystem for Linux” (WSL)), and as Admin, the kernel has to be set to “Developer mode”, and follow the instructions on the MSDN website to download binaries and to enable a bash shell on either the command line or PowerShell.

BoUoW takes advantage of the WSL to do impressive things like use the same network stack as Windows 10 itself. This is because with WSL enabled, a UNIX command such as SSH can now make calls directly to the Windows 10 kernel to access the network stack.

This is, by Microsoft’s admission, a work in progress. It would worry me if they would not have said that. But lots of things do work. vi works and is symlinked (or somehow aliased) to vim. The bash shell comes with some other common aliases like “ll” for “ls -l”, for instance, and apparently, as part of the installation, you actually have a miniature version of Ubuntu, complete with a C compiler, and an image of Ruby, Perl, Python, and if it isn’t installed, you can always use “apt-get” to install it.

One of the security features has the disadvantage of conducting an install of BoUoW separately for each user. If a user types “bash” in a cmd window, and if BoUoW is not installed for that user, the install happens all over again, and the image goes under each user’s AppData directory requesting a BoUoW install. If you are using an SSD for C: drive like me, then you might find that limiting due to a shortage of space.

There are many things not recommended yet. If you are a serious web developer, for example, you would find many of the things you want, such as mySQL, are not currently working the right way. If you are a systems programmer, then you’ll find that ps and top only work for unix-like commands, so I wouldn’t use BoUoW for any serious process management. That being said, it does contain the old standbys: grep, sed, and awk.

gcc had to be installed separately. The binary it created for my “Hello, world!” program lacks the Microsoft .exe extension. And as it is for Unix binaries, it lacks any default extension. It is using gcc version 4.8.4. The current version is 6.3. This older gcc usually won’t pose a problem for most users.

The current stable Ubuntu is 16.04. BoUoW uses the previous stable version, 14.04, and thus has slightly older versions of Perl (5.18), Python (2.7.6), bash (4.3.11), Ruby (1.8) (available using apt-get), vim (7.4), and other software. Vim, however, appears to be the “large” version, which is expandable, using plugins like Vundle, which is good news. I don’t suspect that these slightly older versions would cause anyone problems, except possibly for Python, which has gone all the way up to version 3.5.2 since. You are warned also that it is possible that under Python or Perl, you might run into problems due to not all of their libraries running correctly under BoUoW. Not surprising, since Python has hundreds of installable libraries and Perl has thousands of them. Could take a while.

## Another crack at 6×6 magic squares

Even-ordered magic squares are not difficult just because they are even, in my opinion. They are difficult to design because their order is composite. My experience has shown that by far the easiest to design are magic squares whose order is a prime number like 5, 7, 11, or 13. I have run into similar problems with 9×9, 15×15, as well as 6×6 and 8×8. The 6×6 seems to have the reputation for being the most difficult to make magic, although I have stumbled on one system that produced them, and wrote about it a few years ago, about how I applied that method to a spreadsheet. That method, however, led only to 64 possibilities.

The best ones I have been able to make with a knights tour are: 1) when your L’s are all in the same “direction”‘ 2) when you sum up two squares. The problem is, all of the ones I have made with these methods so far either end up with weak magic (rows add up but not the columns) but the numbers 1-36 are all there; or all rows and columns make the magic number of 111, yet not all of the numbers are present and there are several duplicated (and even triplicated) numbers.

 1 9 17 24 28 32 111 26 36 4 7 15 23 111 17 19 27 32 6 10 111 34 2 12 17 19 27 111 21 29 31 4 8 18 111 12 16 20 27 35 1 111 132 111 111 111 111 111 111 90

The above table shows the totals for the rows and columns for one attempt I made for a semi-magic square. Rows and columns work out to the correct total, but not the diagonals, as shown by the yellowed numbers. There are also duplicate entries, as well as missing entries. 1, 4, 12, 19, and 32 have duplicates, while there are three of 17 and of 27. Numbers missing are 3, 5, 11, 14, 22, 25, 30, and 33. That being said, the rows and columns add perfectly to 111, but not the diagonals. However, the average of the diagonals is the magic number 111 (this does not always work out). The sum of the missing numbers is 156, while the sum of the “excess” numbers (the sum of the numbers that occur twice plus double the sum of the numbers occurring thrice) is also 156 (could be a coincidence).

The above semi-magic square results from the sum of two squares where a knight’s tour is performed with the second square where the numbers 1 to 6 go in random order going down from top to botton. If I am too close to the bottom edge of a column, the knight’s tour wraps back to the top of the square. Beginning on the third column, I shift the next entry one extra square downward. The result is 6 of each number, each of these unique to its own row and column.

The first square are the multiples of 6 from 0 to 30 in random order going from left to right, also in a knight’s tour, wrapping from right to left and continuing. The third row is shifted by 1 to the right.

 0 6 12 18 24 30 24 30 0 6 12 18 12 18 24 30 0 6 30 0 6 12 18 24 18 24 30 0 6 12 6 12 18 24 30 0 + 1 3 5 6 4 2 2 6 4 1 3 5 5 1 3 2 6 4 4 2 6 5 1 3 3 5 1 4 2 6 6 4 2 3 5 1

Note that the first square wasn’t really randomized.  When I tried to randomize it, the result was still semi-magic, similar to what was described. In the case I attempted, the average of the diagonals was not 111. The two are added, this time using actual matrix addition built into Excel. There is a “name box” above and at the far left of the application below the ribbon but above the spreadsheet itself. This is where you can give a cell range a name. I highlighted the first square with my mouse, and in the name box I gave a unique name like “m1x” (no quotes). The second was similarly selected and called “m2x”. I prefer letter-number-letter names so that the spreadsheet does not confuse it with a cell address (which it will). Then I selected a 6×6 range of empty cells on the spreadsheet and in the formula bar (not in a cell) above the spreadsheet (next to the name box), I entered =m1x+m2x, then I pressed CTRL+ENTER. The range of empty cells I selected is now full with the sum of the squares m1x and m2x, which is the first semi-magic square shown in this article.

## Cygwin has come a long way … A story in animated GIFs

First of all, let me say that there is some currency to what the title and pictures imply.

Cygwin/X really has come a long way.  10 years ago, the only viable way to run Cygwin was through a DOS-style UNIX shell. The windows system Cygwin/X provided, such as it was, was  mostly TWM, a primitive window manager which  I used to use, which ran the core programs in the X-Windows distribution. Most  of what came with Cygwin,  such as Gnome or KDE, never worked for me, making me an FVWM2 fan for a long time. Along the way, I appreciated  that while FVWM2 was very stripped-down, it made up for it in flexibility and configurability. Even now, FVWM2 is quite liveable.

I decided yesterday to upgrade Cygwin on one of my older computers,  and after working past some glitches in installation, found that:

1. If you have your guard down, you may still install packages you hadn’t intended, particularly the TeX language packs for languages and alphabet systems that you know you will never use. Minutes can turn to hours with postinstall scripts running trying to configure these redundant packages.
2. Mate is recent addition to Cygwin, and actually works on my slow system in 2016. In fact, I am using the Midori web browser to edit this blog under Mate in Cygwin/X.

3. GIMP was once a graphics program you had to compile; now it is intallable for Cygwin as its own package.
4. When moving my old

distribution to another drive, I found a ton of permision problems which were caused by compiling the source for various downloaded code  as another user – not the owner of the directory.

5. I now have a good system, with much more functionality than ever before. Cygwin has gone from a system that was “mostly broken” to “mostly working” in the space of 10 or so years.

## Junk science: The 5-second rule

You remember this. It’s where a child says that if you drop food on the floor and pick it up in less than five seconds, you can safely eat it again. Many adults believe it too. It is hard to know where these ideas come from.

There was a V-Sauce video on the 5-second rule made back in Noveber of 2012, that debunks it with everyday science. V-Sauce mentions, however, that your immune system protects you from a good deal of the bacteria that are sure to come from the floor. There is a MythBusters episode on TV that debunked the 5-second rule also. But away from popular science, there is also a 2007 article in The Journal of Applied Microbiology that not only do microbes adhere to food pretty much on contact, but further that, on an otherwise clean, dry tile floor, Salmonella typhimurium can survive for over a month in large enough numbers to pose a human health problem (40 days, according to the journal). S. typhimurium is a bacteria known to cause typhoid fever in humans.

In scientific terms, “clean” is taken to mean “free of dirt and debris”. Only “sterile” can mean “free of all bacteria and other single-celled organisms”. The floor in this case would be clean but not sterile, just like a floor would be in any average well-kept home.

Well, that was back in 2007, and there has since been another journal article released two days ago by researchers at Rutgers University (who published in the journal Applied and Environmental Microbiology), with what appears to be bigger samples with more surfaces and more measurements than ever before. The lesson, however, is still the same: if food falls on the floor, the safest way to deal with the food is to just throw it out.

Sterility is too lofty a goal for an average home, requiring the inside of the home to be sealed off and air-tight, and for the people entering the home to cover their clothes with a sterile outer suit (since they are contaminated from being outside), and to put on shoe and hair coverings before entering the house.

###### Eating in a sterile environment

Eating and getting rid of bodily wastes would require, as the easiest solution, to do all that outside the house. Once food is brought into the home, any hope of sterility is gone. Growing food in the home does not absolve you from microbes, since most plants and animals need bacteria to grow. And you don’t just need the individual microbes, you need the whole ecosystem they belong in. Past attempts at building artificial ecosystems isolated from the rest of the world had all ended in failure. To get rid of bodily wastes, you would need to build an outhouse — one with running water, if you like to be fancy. None of these are the most comfortable solution to everyday needs which we take for granted.

## Wait! What? Chomsky is wrong about something?

I am a Chomsky enthusiast, admittedly. I have read several of his articles and books, and have viewed countless videos. I am no expert in Linguistics, but would sit through a video of his lectures on it.

So, when Tom Wolfe wrote in Harper’s magazine, an article entitled The Origins of Speech, I learned about the fallability of one of the “most important intellectuals alive”. Not that this is tragic. After all, who cares if an intellectual makes a mistake or not? It would be beyond naive to think that Chomsky’s pronouncements on any topic are flawless, and I am sure that Chomsky would subscribe to that admission, although much has been made on the part of others about his legendary rhetorical skills, which had served him well in live public debates and his countless speeches.

Tom Wolfe mentioned Chomsky’s insistence that Linguistics be seen as a science. As a science, it is unique, as Wolfe states, in that it requires zero field study. Linguistics is the only “science” that does this. Rather than be seen as, say, another Linus Pauling or Frederick Banting, it would be better to see him as an ancient Greek philosopher like Democritus. Democritus asked the question about the essential nature of matter and came up with “atoms” without all the bother of needing to observe samples under a scanning tunnelling microscope, for which he would have had to wait 2500 years for such a microscope to be invented.

Similarly, Chomsky asked the question about the essential nature of language acquisition as a philosopher. He asked the question of how children first acquire language from truly degenerate and imperfect samples found in the environment around him. The child is a toddler, perhaps age 2, so there is no way for the child to look up words somewhere on Google; no way to get perfect grammar samples; no way to know the parts of speech. The child’s cognitive skills are not up to a sufficient level, nor his motor skills, nor his reasoning skills. In addition, toddlers acquire language in very adverse situations, where the parent’s education and vocabulary are not great, and the growing environment is not the best. So, Chomsky reasoned, acquisition of language must be innate to our species. We chat up a storm just as surely as beavers build dams and birds build nests. Therefore, language acquisition must be tied to neurological processes more than it is tied to processes outside of the language learner. So, maybe there is a “language centre” in the brain, and maybe a universal grammar … ?

That’s a lot of reasoning, and a true scientist would demand “real-world” evidence, such as those obtained from field study, but as Wolfe points out, Chomsky himself downplayed that. That still doesn’t fault Chomsky, since that could still be for others to do, and I am sure a great deal of this has been done over the past 60 years that Chomskyan Linguistics has been around, if only by detractors of Chomsky’s theories and would try to knock it down somehow.

There has, and any linguistics based on samples and statistics have been treated as a separate paradigm of thought. While these would be dismissed by Chomsky and his followers, it did give us Google Translate. Google Translate, invented by Google research director Peter Norvig, is a unique beast. Google Translate knows nothing about any language, relying only on statistical occurrences of actual use of specific words and phrases in documents on the Internet. It uses what linguists call “corpus” linguistics: the study of language as it is actually used and observed to be used by people in the real world. And it does it with a significant degree of success. I have used it extensively, and can attest to its usefulness. Corpus linguistics would be dismissed by Chomsky as one dismisses a paradigm that is outside of one’s own.

Chomsky and those invested in his paradigm would have not been able to create Google Translate from universal grammar (UG) theory. UG is touted to exist, but such a UG is not fully realized, at least not to the point where a translating engine could auto-detect your language and translate it to another one for you the way Google Translate does. Corpus Linguistics appears to do the real work manifest in our techhnologies and education systems, while UG is that shiny new theory, 60 years old but largely still on the drawing board, attractive but too new to be applied to existing technologies right now. UG is like the wave mechanical model in physics, where you are better off with high school physics most of the time. Einstein may have been right and Newton may have been wrong, but you can still build bridges and skyscrapers with Newtonian physics.

Wolfe does not go into any of this stuff about paradigmatic differences, by the way. While there is effectively a schism between modern linguists, Wolfe chose to attack Chomsky in ways that border on ad hominem. Wolfe has been criticized for misinterpreting actions of Chomsky to fill out a particular narrative. He was painted, for example, as a kind of defensive person, unresponsive to criticism. This is laughable, since he is famous for responding to email from just about anybody. I had even corresponded with him in the past, and to this day I have never met him in person. His correspondence with me had always been thoughtful and helpful, and far from defensive or unresponsive.