Showing posts from January, 2017

The contrast between "Muslim-friendly" Obama and "anti-Muslim" Trump

Obama: authorizes drone strike that kills 48 out of 50 people in an Afghan wedding party. But happily welcomes the two survivors as "refugees" (fleeing his own policies).

The left: "What a great, pro-diversity guy!"

Trump: wants to stop attacking countries in order to impose our way of life on them, but thinks it might not be wise to let those two survivors of Obama's murderous foreign policy in the country, since they might be a little ticked off.

The left: "Racist! Anti-Muslim!"

"Banning Muslims"

What is funny right now is that the left does not even realize that its over-the-top response to Trump's initiatives is driving the 10% or so of the population who could not quite bring themselves to vote for Trump rapidly into the Trump camp. So, for instance, David French, who was so anti-Trump that he considered running as the face of the #neverTrump wing of the GOP, has now authored an editorial arguing how reasonable Trump's executive order on travel was. And I have seen this with a number of other #neverTrumpers: they are now saying to themselves, "We didn't like Trump, but his opposition is over-the-top nuts."

Consider, for instance, the travel ban that French discusses above. The hysterical left keeps insisting that it is a "Muslim ban." So if that's what it really is, how did Trump do in his targeting? For instance, in trying to "ban Muslims," how many of the ten nations with the highest Muslim population did he hit?

Only one out…

The Record of Secular Liberalism

I was bemused to hear a Christian friend claiming that "the record of liberalism is very good." Well, good in the sense of "gain the world and lose your soul," I guess.

Here's is a Christian who understood the real record of liberalism:

"The poison West lands but it has spat itself everywhere by now. however far you when you would find the machines, the crowded cities, the empties thrones, the false writings, the barren beds: men maddened with false promises and soured with true miseries, worshiping the iron works of their own hands, cut off Earth their mother and from the Father in Heaven." -- C.S. Lewis, That Hideuous Strength

Creative Contortionist Ken

Now Ken B. insists that RU486 only affects the body of the woman who takes the drug, and not the fetus, so it isn't using force against the fetus! It just so happens that the way if affects the woman's body is... surprise!... to make that body reject the fetus, which will then die.

So now we have a new way that it is OK with Ken for us to kill him. Ken is standing on the subway platform. You can't push Ken in front of a train: that would be using force against him. But you can shove someone else into Ken, knowing that person will knock Ken onto the tracks where he will be killed. Because, you see, your shove did not affect Ken's body (per Ken)! It only affected the body of the person you shoved. It just so happens that the way you affected the shovee's body resulted in Ken's death!

(Of course, you are guilty of whatever charge giving a stranger a shove that doesn't even injure them results in. But certainly you aren't guilty of murdering Ken [according…

What to do about immigration

My suggestion: significantly raise the limits on legal immigration (perhaps double what it is today?), while also cracking down on illegal immigration. This squeezes illegal immigration on both the supply and demand sides.

And a large illegal immigrant population is indeed a problem: it means a large number of easily exploitable, disaffected people.

Callahan's ratio

During your software career, for every hour of challenging, enjoyable programming you do, you will perform two hours of excruciatingly tedious struggles with configuring some new tool you need in order to do the hour of satisfying work.

"Refuting" Trump

I have no idea how widespread voter fraud is. Off the top of my head, I'd probably be ready to believe some number between 100,000 illegal votes -- that's only a couple of thousand in each state! -- and a few million. Certainly the number of illegal votes wasn't zero -- no law is enforced that well!

Is the true number around 3 million, as Trump has been claiming? I just have no clue: that seems high to me, but really, how would I know, unless I conducted a ton of research into the matter?

One thing has struck me as very curious, however: CNN keeps saying that Trump's claim has been "debunked": But every time I follow one of their links, it just goes to another CNN story, one that also simply says the claim is false. So, CNN is saying, "We confidently can assert Trump's claim is false! Why? Well, because we asserted it was false earlier this week as well!"

Maybe Trump is off by a factor of ten: I don't know. But it would nice to see some evi…

Are Unicorns Greater Than Dragons?

I can prove that they are. Look at the following:

The UNIX sort command is a formal system, and it orders things based on the '>' symbol. And when it compared unicorns and dragons, unicorns turned out to be greater than dragons!

Of course this is silly nonsense. To determine whether unicorns really are greater than dragons one would first have to determine if unicorns and dragons really exist. Then one has to determine how one is going to test for "greater than," in reality.

As silly as claiming that because another formal system (ZFC) treats the formal symbols ℵ0, 2, ^, and > so that:

2ℵ0 > ℵ0

makes a true statement in that formal system, as meaning that some infinities really are bigger than other infinities.

To determine if there really are infinities bigger than other infinities, one first would have to determine if, in reality (and not just in some formal system), there really is anything infinite. Then one would have to determine that, in reality ther…

Are You For 86?

One of the comments I accidentally deleted claim that I am abusing the notion of force if I intend to call the use of RU486 to "terminate a pregnancy" force!

I suppose the commentor would object if I plan to bludgeon him to death with a club, but be okay if I plan to kill him with arsenic instead, since I will use "no force."

Of course, this is absurd: "force" in this context certainly doesn't have to mean visible force. If I invade your body with a chemical that disrupts its normal functioning, that is force. If I poison you with radiation, that is force.

How Could Trump Have Given Such a Gloomy Inaugural Speech?

Geez, check this out:

"I see one-third of a nation ill-housed, ill-clad, ill-nourished. … The test of our progress is not whether we add more to the abundance of those who have much; it is whether we provide enough for those who have too little."

My infinity is bigger than your infinity!

Philosophy versus mathematics:

Mathematicians have taught us that, mathematically speaking, it is useful to talk about different types of infinity. This was a genuine accomplishment.

But whether or not some infinities are "larger" than other infinities is a philosophical question, turning on the concept of infinity itself, and not on any mathematical notions such as one-to-one correspondence.


I accidentally deleted the first couple of comments I looked at today. I'm in the middle of preparing a lecture, and thinking about a dozen other things, and I somehow found myself hitting "Delete" almost automagically!
My apologies if I lost your comment!

HTML5 / CSS Bleg

I am trying to put images and captions in a figure tag, put the image to the left side of the screen, and center the caption underneath the image. Everything I read online says I just need to put 'text-align: center' in my CSS file for the figcaption tag, and I should be good to go. But when I do this, at least on Safari, the caption gets centered on the page, not under the image!

Here's a page where I was attempting this (I've now centered the image itself in despair).

And here's the CSS file definitions of figure and figcaption:

figure{ text-align: center; /*    margin: 12px 20px 12px 100px;  */ }
figcaption{ color: #606; font-style: italic; text-align: center; margin: 16px20px12px20px;

Does anyone have any idea what is going wrong here?

The impossibility of true utilitarianism

You just can't do it: you save a kid's life, because you think that will increase overall utility, and the kid turns out to be Hitler. You shoot someone beating an innocent victim, and it turns out the person was going to reform, and wind up curing cancer. No one can possibly calculate what actions will "increase overall utility," and what ones won't.

So what utilitarianism as a matter of fact is either:

1) A way to justify doing whatever it was you wanted to do anyway: just put in the right consequences, the right imaginary futures, etc., and you can make any action look good!

2) Or you opt for rule utilitarianism, which just winds up meaning that you should follow the rules of morality that you knew you should follow all along, before you ever started mucking about with utilitarianism.

True multiculturalism

"You see... if one is thinking simply of goodness in the abstract, one soon reaches the fatal idea of something standardized -- some common kind of life to which all nations ought to progress. Of course, there are universal rules to which all goodness must conform. But that's only the grammar of virtue. It's not there that the sap is. He doesn't make two blades of grass the same: how much less two two saints, two nations, two angels." -- C.S. Lewis, That Hideous Strength

Thank God I'm an Isolationist!

I innocently went to what I thought would be a sports site, but found one Bryan Curtis foaming at the mouth about Trump.

The most amazing passage was this, where first Curtis quotes Trump:

"We do not seek to impose our way of life on anyone, but rather to let it shine as an example … for everyone to follow."

Curtis's response?

"This is isolationism, pure and simple."

Do you understand? If you are not in favor of bombing and invading other countries to force our way of life on them, you are a nasty "isolationist."

Imagine what it is like living near Curtis! I don't know, let's imagine he is a Methodist. On Monday, he rings the doorbell and harangues you about converting to Methodism. On Sunday, if he doesn't see you in church, he torches your house!

And when you ask him what he's up to, he responds, "Well, I don't want to be isolated from my neighbors!"

Have no doubts, this is the real problem with Trump: if he actually …

"Forcing" women to have a baby

The anti-life position is extremely adept at manipulating language to obscure what is really going on concerning abortion. Tonight, for instance, I saw someone claiming that pro-lifers want to "force" women to have babies.

But, in fact, to use libertarian lingo, the "initiation of force" is all from the other side. If someone is pregnant, force is not necessary for them to have a baby. That is the natural, unforced outcome of pregnancy. Force is necessary to prevent that outcome.

The More Things Change...

"Isn't it absolutely essential to keep a Fierce left and a Fierce right, both on their toes and each terrified of the other? That's how we get things done. Any opposition to the N.I.C.E. is represented as a Left racket in the Right papers and a Right racket in the Left papers. If it's properly done, you get each side outbidding the other in support of us -- to refute the enemy slanders. Of course we're non-political. The real power always is." -- C.S. Lewis, That Hideous Strength

Learning to Ignore Reality

It's what a lot of academic training, especially in the social sciences, is about:

"All [these observations of concrete facts] did not in the least influence his sociological convictions... his education had had the curious effect of making things that he read and wrote more real to him than things he saw. Statistics about agricultural labourers were the substance; any real ditcher, ploughman, or farmer's boy, was the shadow. Though he had never noticed it himself, he had a great reluctance, in his work, ever to use such words as 'man' or 'woman.' He preferred to write about 'vocational groups,' 'elements,' 'classes' and 'populations'..." -- C.S. Lewis, That Hideous Strength

The Supernatural

In Medieval natural philosophy, the supernatural made perfect sense: things had their own natures, that caused them to act as they do. But a force other than their nature could intervene and cause them to act otherwise. So bread naturally (per its nature) nourishes us, but a supernatural act can cause it to become the body of Christ.

However the scientific revolution did away with these "natures." There was brute matter, whose only nature was occupy space, and then there were laws imposed on this brute matter by God: in a sense, all of nature only "worked" because of divine commandment. The fact that these were divine commands to nature was why they were called laws! Attempts to explain natural phenomena by "natures" were mocked; see Moliere's parody of medieval natural philosophy where the doctoral student explains that opium causes sleep because of its "dormitive powers."

But many later scientists, under the sway of 19th-century ideologie…

Is there a test suite for your test suite?

In one of my coding projects, a young collaborator sent me some code for automated testing, and wrote, "If this looks OK, I'll put it into production."

I looked at the code, and it quite clearly would never pass anything, since one of the tests sought to verify the working of a feature that hadn't yet been implemented. The programmer writing the testing code had never tested it.

We could try to write a meta-test suite to test our test suite, but then what about the meta-suite? How can we be sure it is correct?

The point here is not to pick on our novice programmer, who is quite smart, merely lacking experience, but to point out that while mechanical schemes of program verification can be a great aid to producing good software, but they can never be a substitute for sound engineering judgment.

I'm feeling loopy!

Tonight, Emu86 has grown up to where it can loop:

         mov eax, 10
loop: cmp eax, ebx
         je done
         inc ebx
         jne loop
done: mov ecx, 1

Yes, that jne could have been an unconditional jump... but I wanted to test jne!

Not every conspiracy is a theory

I rented a copy of Money Monster. On the box, it proclaims that "Not every consipracy is a theory."

Well, no, conspiracies aren't theories: they are consipracies. Some people have theories that event X or Y came about due to as conspiracy. Some of those theories are false, but some are true! (There was a conspiracy to kill Hitler, a conspiracy to blow up Parliament, etc.) But somehow "conspiracy theory" has come to mean "false consipracy theory" in many people's minds. I saw this recently with the charges of Russian election interference, where people on Twitter were saying, "It's not a conspiracy theory: the CIA is saying it!"

Oh, and the movie: it's in the running for one of the worst films I have ever seen. Pretty much every single thing in the movie is bogus. The characters have completely unbelievable personality transformations, they unravel a conspiracy based on the most ridiculous "clues," the financial market …

Assembler progress

This code now runs "properly":

         mov eax, 2
         mov ebx, 4
         jmp here          mov eax, 90
         mov ebx, 100
here: add eax, ebx
         dec ecx
         inc edx
         jmp here

Properly is in quotes because I have taken some protective measures. The last four instructions, of course, create an infinite loop. Since this is an educational program, and infinite loops will take up lots of CPU time on my web server, I am limiting runs to 1000 instructions, and then warning of a possible infinite loop.

The idea here is that students can build tiny test problem programs, and not an operating system. So I think 1000 instructions is plenty: what do you think?

Why use strict parsing rules?

In x86 assembly language, you write a move instruction like this:


My emulator accepts that. But right now it also accepts:

MOV EAX,, 13
MOV EAX,,,,,,,,, 13

In other words, I only require that I can separate the tokens in the instruction somehow.

My question to you is: other than trying to be exactly like Intel's assembly language, why be more strict? So long as the interpreter / compiler can figure out what the programmer wants, why fuss over how many commas are used?

In other words, why not parse as leniently as possible, and only complain when a situaiton is ambiguous or otherwise unresolvable?

The country waiter and the city waiter

Toggling oneself back-and-forth between a country setting and a city setting makes one alert to the many small differences between lives in each place.

This morning for breakfast, my bill came to $14.87, and I paid with a twenty. In the city, there is a 99.9% chance that I would get five singles and $.13 back in change. Every city waiter seems to have learned with their mother's milk that you provide the customer with lots of singles, so that they have lots of options for tipping you.

But I was in the country, so I got back a five dollar bill and $.13, and had to go to the register and ask for singles. This seems to be the default behavior of country waiters.

Essential vim

1) Don’t touch the arrow keys! (You have to drop the habit of using them hard, since your muscles are trained to reach for them.)

2) Most vi commands can take a number in front. xCmd will do Cmd x times.

3) Instead of arrow keys:
h: left-arrow
j: down-arrow
k: up-arrow
l: right-arrow

First of all, your fingers are still in ‘home position.’

But also, to go up 10 lines:

Back 8 characters:

4) But even better:

xG: jump to line x.
w: move forward a word at a time.
12w: go forward 12 words.
b: move backward a word at a time.
/xxx: find and go to pattern xxx in file.

5) And editing:
cw: change the word the cursor is on.
10cw: change the next ten words
dw: delete current word.
10dw: delete next 10 words.
dd: delete current line
10dd: delete next 10 lines.

Learn this set right away. Force yourself off of the arrow keys. More to come.

Adjective order in English

I was making a "funny" Facebook post about how, in action movies, what looks to me like simple chiropractic neck adjustments always manage to kill the adjustee.

And that made me think about the correct ordering of English adjectives: "a simple chiropractic neck adjustment" is the right order. A native speaker will not say, "a chiropractic simple neck adjustment," or "a neck simple chiropractic adjustment."

Similarly, we walk into "large, green room", and not a "green, large room."

These "rules" are ust about automatic for native speakers. But there not very easy to make explicit, and I have never seen them taught.

Was Obama really the first?

I have seen claims that Obama was the first two-term president to be at war for all 8 years he was in office.

The claim seems problematic to me from two sides:

1) The United States does not declare war anymore; we engage in "police actions" and so on. So in a strict sense, one could say Obama has never "been at war."

2) In another sense, the United States is perpetually at war: we are always bombing or subverting the government or supporting rebels in some nation: so haven't most of our recent presidents been continuously at war in this broader sense?

So (sincere question, I really don't know), is there some sense that this claim of "eight years at war" is true of Obama but not, say, Bush?

"The only way to have confidence in a Python program is to write tests"

I saw this asserted (hee-hee) in a Python book I am reading.

The author apparently doesn't know that, while testing is great, in the old days, we used to actually logically analyze our programs and gain great confidence in them from that exercise.

Memory may be beautiful and yet

What's too painful to store in RAM
We simply choose to forget...

In any case, Emu86 now has (limited) memory support.

Coming next: branching instructions.

Did you ever notice...

that assembly language programs look a lot like restaurant receipts?

In a period of a few weeks...

the Anti-Trumpers have become frantic over both:

"Oh my God, he's insane, he wants to risk nuclear war with China!" and"Oh my God, he's insane, he doesn't want to risk nuclear war with Russia!"

Why we fight

So these guys can make a lot of money!

Every time you start to think that some foreign entanglement "doesn't make sense," just remember that for Boeing, Lockheed Martin, and BAE, every foreign entanglement makes sense!

Galileo on Aristotle: Too Empirical!

The common myth about the Scientific Revolution is that it represented a turn from ungrounded speculation to theory based solidly upon facts. However, as Feyerabend notes, Galileo criticized Aristotle for relying too much upon the experience, and paying insufficient attention to speculative reason! He quotes Galileo (from On Motion):

"[Aristotle] asserted [his theory of motion] on the basis of no other reason than to experience... But, to employ reasoning at all times rather than examples (for what we seek are the clauses of effects, and these causes are not given to us by experience)..." -- Paul Feyerabend, Philosophy of Nature, p. 182

Empiricism Without Foundations

"The second characteristic trait of the modern way of studying nature is the absence of a foundation. Though there is a lot of talk about the new and fertile foundation that Descartes, Galileo, and Newton introduced and used in their research, such a foundation cannot be found in practice... Unlike Aristotelian philosophy, which requires, identifies, and uses a foundation in actual research, we now have a fundamentalist epistemology and entirely separate practice of research in philosophy of nature and science. This antagonist and the related irrationality of modern science is hidden by a slanted method of representation, which depicts even the most revolutionary discovery as resting on a solid foundation."

-- Paul Feyerabend, Philosophy of Nature, pp. 173-174

Better screening of Muslim immigrants is good for Muslim residents

I have many Muslim friends. I want them to be safe in this country.

What will most put them at risk is continued acts of Islamic terrorism taking place here. (It is nice to wish that people wouldn't scapegoat and assign collective guilt, but we know, if pushed too far, that they will do so.)

The better we screen Muslims entering the United States, the safer those living here will be.

Food questions

Would it be vulgar
To dine upon some bulgar
While looking at a fresco in May?

Or looked upon cruelly
To munch on tabouli
In the late hours of the day?

If there's no need to hurry
Should I have some curry
Sitting on a boulder in the snow?

Or perhaps a little pasta
Shared with a rasta
Would make all my troubles seem to go?

Emu86 is open source: contributors welcomed!

This is a fun project -- I love writing interpreters! -- and it should be very helpful in giving students an idea of what assembly language is like without having to actually learn to run an assembler, and then a symbolic debugger for when their program breaks, etc. There's lots of features we can add: help with syntax, improved editing, more instructions, etc.

The source code is here.

Let me know if you are interested in joining the project.

A junk room, deserted by the gods

"Note the tendency here [in Parmenides] that is commonplace in contemporary science: the thinker, that is, in antiquity the philosopher, deals with things that do not occur in intuition and that have paradoxical qualities. These are the things that are "real" for the thinker... The rift was never entirely overcome; rather, the "real world" became ever more remote from the world in which we live and feel. It becomes institutionalized until eventually the power of the growing institutions of science and an education regulated by them closes the rift from the other end by means of a kind of training that keeps transforming intuition, the behavior regulated by it, and thereby us humans as well until we obey the scientific forms of thought and see the world through them, as a junk room deserted by gods yet well organized." -- Paul Feyerabend, Philosophy of Nature, p. 153

My assembler is progressing


Some things are still a bit funky, but I've got MOV, ADD, SUB, IMUL, AND, OR, and XOR basically working. No memory addressing yet!

What has been intresting is that getting the Django bits working has been way harder then getting the interpreter working. In particular, saving the register states from run to run took a lot of thought: you can see how it was finally done here and here. (The key idea was to make the register values input fields with the name of the register.)

This is an open-source project: if you'd like to help, let me know!

The disappearance of the gods

"the disappearance of the gods… today... is generally regarded as 'rational,' and the gradual elimination of divine traces as a further increase in rationality. Yet this means identifying rationalism with materialism -- a dubitable procedure based on a naïve naturalistic interpretation of the material. It indicates an oversight of the possibility that materialism may have contradicted the contemporary experience of the world, and so it may be considered 'irrational' in light of an empiricist methodology." -- Paul Feyerabend, Philosophy of Nature, p. 105


Thanks to Matt, I fixed the weird table format problem. Now I want to get the registers up next to the code input field. I copied the CSS for doing this straight out of a book... and it don't work the same! The problem is almost surely that some native Django CSS is interfering with what the book is trying to do... but I just don't know CSS well enough yet to determine which bits are the culprits.

Here's the CSS file.

Here's the HTML template.

And here's the result.

The table listing the registers should be up next to the code input field. As you can see, there's plenty
of room: the table floats to the right of the input field with some room to spare. So why is it being placed below it?

The Django form is inside a div tag... so Django ought to render it inside the div and not block something appearing to its right.

UPDATE: Well, I "forced" things to work by using a table instead of divs. But that is supposed to be the bad, old-fashioned way of doing thi…

CSS table bleg

I have undertaken the somewhat humorous project of writing and x86 assembly language interpreter in Python. The purpose is to allow my operating systems students (and ultimately any other students) to get a "light" introduction to assembly language without having to actually Ron an assembler, learn an assembly language debugger, etc. I am putting it up as a webpage using Django.

Although you would think writing the interpreter would be the hard part of the project, I am finding that getting CSS to behave properly may be far harder. In particular, I put up a table intended to display the values of the x86 registers. The table shows up like this:

My question is "What the heck?" Why is the first column getting so much space compared to the second? I have tried setting the colspan on the second column to two, and then to four, and yet the first column still eats up 85% of the table. I don't see anything in the CSS file that should cause this to happen.

Any ideas o…

Half a world

"Thus, Anaximander's universe and its later modifications are uniform. And yet they are not complete. They do not contain mythological events, dreams or spawns of imagination... We push the events in question out of our physical world and into another world, which is conceived of either as a world consisting entirely of appearance, of non-reality, or as a very real yet non-physical world… In both cases we obtain an antiseptic real (physical) world at the expense of insurmountable problems: how can we reunify domains that are so radically separate? Increased specialization makes the problems disappear from the researchers' horizon, which only strengthens said researchers conviction that their professional ideology is indeed capable of successfully overcoming all difficulties." -- Paul Feyerabend, Philosophy of Nature, pp. 126-132.

Mis-using Word

I have co-authored quite a few papers and articles. I have also taught Microsoft Word to college classes. And so I can report with confidence that many, many academics, despite depending upon Word as a daily tool in their work, have no idea how to use it well.

Word is a style-base word processor. If you are using it without using styles, you are not using it properly. Don't take my word for it: Microsoftitself says using Word without styles is like washing your clothes without detergent.

A mid-sized Academic paper may have one or two hundred paragraphs in it. I have seen a co-author literally go to the beginning of each of one hundred or more paragraphs and place a tab at the beginning of each in order to indent the first line. ("Seen" because with "track changes" on, you see all the work your co-author did in the last revision of the document you are sharing.) The process must have taken 15 or 20 minutes. But in 15 or 20 seconds, the person could have modifie…