Content-Type: text/shitpost

Subject: Fornax
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!wescac​!berserker​!plovergw​!plover​!shitpost​!mjd
Date: 2017-12-23T17:10:42
Message-ID: <>
Content-Type: text/shitpost

While looking into the precursors of “furnace” in connection with the previous article, I learned to my pleasure that there is a Roman goddess of ovens. Her name is Fornax (“oven”) and her annual festival, the Fornacalia was held around the second week of February.

(“Fornacalia” has only the most attenuated connection with fornication. “Fornix” is Latin for a brothel, and might be related to an earlier word describing an arched or covered structure, from which “fornax” (“oven”) is also descended.)

Subject: Petits fours
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!batcomputer​!plovergw​!shitpost​!mjd
Date: 2017-12-23T16:58:52
Message-ID: <>
Content-Type: text/shitpost

Tags: oops

Until this morning, if you had asked me why petits fours were named that, I would have said it was obvious: “petit” is “small”, and they are small; “four” means “four” and they are square.

Except in French, “four” doesn't mean “four” or “square”. “Four” is Germanic. The French is going to be derived from Latin, so is going to be something like “quatre” or “quadratus” or something like that.

No, in fact the “four” means “oven”, cognate with “furnace”, because the petits fours were baked in a smaller over, or maybe in a cooler oven.


Subject: Comparing heaps of beans
Path: you​!your-host​!wintermute​!wikipedia​!twirlip​!batcomputer​!plovergw​!shitpost​!mjd
Date: 2017-12-22T16:15:41
Newsgroup: misc.math-se-shitposting
Message-ID: <>
Content-Type: text/shitpost

An earlier shitty post on this shitty blog offered a simple method for proving that !!2^{50} < 3^{33}!! without calculating the values:

Take a heap of red beans of size !!2^{50}!! and a heap of navy beans of size !!3^{33}!!. Repeatedly remove one bean from each pile until the red pile is exhausted. At that point some navy beans will remain and the claim is proved.

Katara very correctly observed that this is incomplete, because it may not be clear how to carry out the instruction “take a heap of red beans of size…”.

But there is a solution! Start with a heap of 32 red beans. Now double the size of the heap by adding one bean for each bean already in the heap; this can be done without any calculation or even counting:

  while any beans remain in the heap:
      transfer one bean to a secondary heap
      add a new bean to the secondary heap

You now have a heap of !!2^6!! beans. Repeat this doubling process 44 more times. One can similarly construct a heap of !!3^{33}!! navy beans without calculation.

This assumes that we can count as far as 44, which I think is not too unreasonable; I myself can usually get as far as 50 or even 65 on a good day. But if not, workarounds are available.

I will continue to resist the temptation to suggest that there is a deep and subtle point lurking here.

Subject: The Physical Layer: Alternative punch line
Path: you​!your-host​!walldrug​!prime-radiant​!computer​!ihnp4​!hal9000​!plovergw​!shitpost​!mjd
Date: 2017-12-21T19:12:25
Message-ID: <>
Content-Type: text/shitpost

Recently I wrote a dialogue between two programmers discussing the OSI network model. It ended with:

Punch line: Gilberto and Joanna are brains in vats.

I changed my mind. The punch line is:

Gilberto is a completely incorporeal consciousness, and Joanna is an evil demon, of utmost power and cunning.

Subject: Hot sake
Path: you​!your-host​!ultron​!uunet​!batcomputer​!plovergw​!shitpost​!mjd
Date: 2017-12-21T19:00:37
Message-ID: <>
Content-Type: text/shitpost

This Tumblr thread discusses what you do when you don't know what word you want in the language of the country you're in. (Check it out, the story about the guy in Greece who needed to extend his hotel stay one night is not to be missed.) As a sadly monolingual world traveller, I have a couple of stories along those lines.

Once in Tokyo I was eating sushi. I wanted hot sake. Asking in English for “hot sake” didn't work. I think the waitress was partly sure of “hot” but was confused by “sake”. In English this means a specific Japanese liquor, made from rice, but in Japanese it is more general and can refer to any kind of alcohol. So she didn't know what I wanted and I didn't know how to ask for it in Japanese. (Wikipedia tells me it's “日本酒” (/nihonshu/, “Japanese liquor”).)

I took out my Palm Pilot and drew a picture like this:

terrible cartoon of a tokkuri and ochoko

That did the trick and I got what I wanted. Thanks, patient Japanese waitress.

Subject: The spelling of “Dominus”
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!wescac​!berserker​!plovergw​!shitpost​!mjd
Date: 2017-12-18T18:06:59
Message-ID: <>
Content-Type: text/shitpost

People have sometimes asked me where I got the name “Dominus”, and even suggested that I might have made it up myself, but I did not, and there is no story. Here is my great-grandfather, Andor Dominus, sometime in the early 1950s:

Andor was Hungarian, born in Szeged, Hungary in 1886. There is something about that which has always puzzled me a little.

In Hungarian, the letter ‘s’ by itself is pronounced like English /sh/. To get the sound of English /s/ in Hungarian you must write ‘sz’, like in ‘Szeged’, which is pronounced /seged/. So in Hungarian, the name “Dominus”, if it were spelled that way, would be pronounced more like /Dominush/. To be pronounced with a hard ‘s’, as we do, it would need to be spelled “Dominusz”.

By 1909 Andor was living in Vienna. When he moved from Hungary to Austria, he must have changed either the spelling or the pronunciation of his name, presumably to help the Austrians get it right. So the puzzle: Was Andor's name originally pronounced /Dominush/ and spelled “Dominus”, or was it originally pronounced /Dominus/ and spelled “Dominusz”? I wondered about this for a long time.

But thanks to the Wonders of the Internet, I have the answer. Google search for “Dominusz” finds many people still in Hungary whose name has that spelling. Andor was presumably born “Dominusz Andor”, and changed to an Austrian spelling when he moved, keeping as close as possible to the original pronunciation.

(Note that in Polish, the sounds of ‘s’ and ‘sz’ are the reverse of the Hungarian sounds. This mismatch should not be too surprising. Polish and Hungarian are not related.)

Subject: Alphabet game
Path: you​!your-host​!walldrug​!prime-radiant​!uunet​!batcomputer​!plovergw​!shitpost​!mjd
Date: 2017-12-16T18:39:33
Message-ID: <>
Content-Type: text/shitpost

One of the games that Toph and I sometimes play in the car is the “Alphabet Game”: You try to spot the letter ‘A’, then ‘B’, and so on, and get through to ‘Z’ before you reach your destination. For a while we were playing this every Saturday on the way to karate class.

The odd thing about this game is that the letter ‘Q’ is so much more difficult to find than any other letter. On any trip, ‘Q’ is the sticking point, and on trips we take regularly, such as to karate, we know ahead of time where the Qs are and watch for them. There is a sign at 32nd and Chestnut that says CHESTNUT SQUARE that we often watch for, because if we miss it there is a good chance we will not get another. There used to be a UNIQUE SHOE REPAIR a couple of doors down from the karate studio, and as a last resort we could sometimes get the rest of the alphabet in a rush just after spotting the shoe repair. But the karate studio has moved, so CHESTNUT SQUARE is the last reliable chance. Sometimes there are other Qs. For example construction sites sometimes have EQUIPMENT RENTAL. But they are not common enough and you never know when you are going to see them.

None of the other letters are nearly as difficult, even among the usual suspects. J and K might have been tricky, but Pennsylvania license plates are issued in alphabetical order and we just finished a four-year run of Js and are now well into a four-year run of Ks, so those are easy. V might be tricky, except that in Pennsylvania every license plate says PENNSYLVANIA, and even aside from this there are many VOLKSWAGENs and VOLVOs. Also many cars that would not otherwise have a V are labeled V4 or V6.

X is much easier than you would expect. On the highway there are EXIT signs, and off the highway there are TAXIs. And always there are a lot of cars displaying model names like RX7, or trim names like LX or DX; also quite a few FORD EXPLORERs and the like, and some 4X4s. Y is no trouble at all. It is a common letter to begin with, appears in PENNSYLVANIA, and there are ONE WAY and YIELD signs everywhere. If that weren't already an embarrassment of riches, Y was the first letter on every Pennsylvania truck license plate for many years. Even Z is not as hard as you might think. There are a lot of places that sell PIZZA. So many PIZZAs. A few years ago they ran out of Y plates for the trucks and since then all the new truck plates have begun with Z. Our car is a MAZDA with a PENNSYLVANIA plate and sometimes this has rescued us, just when we were about to lose hope, and arrived at our destination two letters short. But then we got out and walked around the back of the car. Victory!

The license plates do not help with Q, which is one of the letters that Pennsylvania plates never have. Sometimes we see a car with a Colorado or California plate that has a Q, and this is occasion for great rejoicing.

The rules say we are allowed to use any letter as long as it is outside the car, but that it only counts if you actually see it. You can't say “Well, we passed a WAWA a little while back so that gets us W” or even “I was looking the other way but I know we just passed the WAWA on the other side of the street.” You have to see the W after you see the V. When we are stuck on some letter I sometimes mutter that I wish a typewriter would drop out of the sky and land on the hood of the car. I suppose if this really happened I might not be too pleased, but it would make an awesome story. If we survived.

CHESTNUT SQUARE takes care of not only Q but also R S T U, which feels a little wasteful, because shortly afterward there is a DREXEL UNIVERSITY overpass that would also have taken care of R S T U V. I had the computer check the dictionary for other multiple-use words like UNIVERSITY. The best one is GOLDFINCHES (CDEFGHI) but you do not see that on too many overpasses. (If you expand the word list to include all of Webster's Second International, you can get all the way up to EQUITEMPORANEOUS (MNOPQRSTU) but I have never yet seen Webster's Second painted on an overpass.)

The Q is such a pain that once when I was driving the kids home from somewhere and we were totally stuck, I had a brainwave. “Okay, watch this!” I said, and then drove home by a slightly out-of-the-way route so that we could pass by the QUEEN OF SHEBA bar. This bar used to be called the Wagon Wheel, and had wagon wheels embedded in the pavement outside, but then it was taken over by Ethiopians.

Once Toph and I were on a grocery errand and were playing the game on foot. We were concerned about the Q. All the other letters can be trusted to take care of themselves, but Q often requires some planning. We were not going to be near CHESTNUT SQUARE or QUEEN OF SHEBA, but I had an idea. “Let's go get meat at the halal grocery. There must be a ton of Qs in there.” But we could not find a single one! I don't know what could have gone wrong. And the signs on the masjid down the street did not say anything outside about Quranic study or anything like that. The West Philadelphia Muslims need to up their Q game! According to Islamic tradition, the Queen of Sheba's name was BILQĪS so perhaps they could look to the Ethiopians for inspiration.

Subject: Too many suffixes
Path: you​!your-host​!wintermute​!wikipedia​!twirlip​!glados​!extro​!goatrectum​!plovergw​!plovervax​!shitpost​!mjd
Date: 2017-12-15T19:47:56
Newsgroup: talk.mjd.too-many-suffixes
Message-ID: <>
Content-Type: text/shitpost

A Brit once mocked me for using the word “burglarize”. He correctly pointed out that it means the same thing as “burgle”. A burglar is someone who burgles, and then Americans have an ornate and superfluous word for something that is done by a burglar.

This complaint continues to bug me, for several reasons. First, because this guy was perfectly content to say “orientate”, a Britishism we do not use here which means that same as “orient”. And second, because “burgle” itself is an American back-formation from “burglar” that we invented in the 1860s, and the Brits were not shy about mocking us for “burgle” that time. In fact, “burglarize” is older than “burgle”.

Okay, whatever. Brits have been mocking the American language for centuries now. Let them go ahead. We all know who won that argument.

Subject: Metonymy
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!am​!plovergw​!plover​!shitpost​!mjd
Date: 2017-12-15T18:39:20
Newsgroup: talk.mjd.metonymy
Message-ID: <>
Content-Type: text/shitpost

900g container

Subject: The Physical Layer
Path: you​!your-host​!wintermute​!wikipedia​!hardees​!brain-in-a-vat​!am​!plovergw​!ploverhub​!shitpost​!mjd
Date: 2017-12-15T18:17:34
Message-ID: <>
Content-Type: text/shitpost

Gilberto: “Hey, Jo, can I ask you a question?”

Joanna: “Shoot.”

G: “In the OSI network model, why is 2 the lowest layer?”

J: “What?”

G: “Transport is layer 4, network is layer 3, data link is layer 2, and it stops there. Why 2 and not 1?”

J: “It doesn't ‘stop there’. 1 is for the layer below the data link layer.”

G: “They reserved the number 1 for future use? That seems like a clear YAGNI. What did they think they were going to come up with? And why didn't they reserve all the odd numbers? What if they wanted to stick something between 3 and 4?”

J: “They didn't ‘reserve 1 for future use’, they used it. It's the physical layer.”

G: “The what now?”

J: “The physical layer. You know, like whether you're using cables or wireless.”

G: “That's stupid. You send the same octets in the same order regardless of whether you’re using cables or wireless.”

J: “There you go. You can't actually send an entire octet at once.”

G: “Sure I can, that's how it's done.”

J: “No, because the wire can only send one bit at a time.”

G: “One bit? That can't be right. Why not?”

J: “Because the bit is represented in the wire as a pulse of high or low voltage.”

G: “Okay, so why not represent eight bits at once?”

J: “Voltage doesn't work that way. The wire only has one voltage.”

G: “Why not?”

J: “I think it's somehow connected with quantum physics.”

G: “Seriously, you want me to believe that a bit can be represented as some abstract quantum property that only physics eggheads understand? I mean, I can believe it's possible in theory, maybe as some weird kind of steganography, but why go to the trouble?”

J: “I can't believe I'm hearing this. How did you think the packets got from one endpoint to the other?”

G: “It's perfectly simple. The layer 2 peer on one side transmits the frames, and then the layer 2 peer on the other side receives and reassembles them. There doesn't need to be anything in between.”

J: “Well, that's sort of the point, isn't it?”

G: “How do you mean?”

J: “The whole point of the layer 1 – layer 2 boundary is to insulate the higher layers from having to know about the stuff in layer 1.”

G: “I guess, but then why not also have a layer to insulate the higher layers from having to know what flavor of ice cream you're eating when you send the packet? It might be related, but it isn't really part of the network.”

J: “The cables aren't part of the network?”

G: “Are they? We have wireless networks, so the cables can't be that important.”

J: “Without the cables, the bits won't get from one data link peer to the other. The data link peers think they're talking to each other, but really they're talking to the layer 1 peers on the same side.”

G: “This is very far-fetched. Why would they put in three completely unnecessary communication boundaries between the layer 2 peers? It doesn't make sense.”

J: “They're not unnecessary! Information can only be transmitted at the physical layer!”

G: “Bah, next you'll be telling me that information can only be stored at the physical layer.”

J: “Actually yes.”

G: “Okay, then answer this: how do you know it isn't actually stored at some even lower layer below the ‘physical’ layer?”

J: “That is a puzzling question for philosophers, maybe, but actual engineering practice shows that one only needs to go down to layer 1.”

G: “Oh, I get it! It's a hack!”

J: “I guess you could call it that.”

G: “I hope someone is doing research into some more elegant solution to the problem.”

J: “I would like to hear what sort of ‘solution’ you imagine there might be.”

G: “Hey, I'm a software guy. Dealing with this physical universe bullshit is not my problem, that's for the system administration department.”

Punch line: Gilberto and Joanna are brains in vats.

Subject: More mathematical shitposting
Path: you​!your-host​!warthog​!central-scrutinizer​!fpuzhpx​!plovergw​!plovervax​!shitpost​!mjd
Date: 2017-12-14T01:44:36
Newsgroup: comp.lang.haskell.math.taxicab-numbers
Message-ID: <>
Content-Type: text/shitpost

People will tell you that 1729 is the smallest number that is a sum of two integer cubes in two different ways, but they are mistaken. Actually the smallest such number is 91:

$$91 = 3^3 + 4^3 = 6^3 + (-5)^3 $$

1729 is the smallest number that is a sum of two positive integer cubes in two different ways. (!!1729 = 1^3 + 12^3 = 9^3 + 10^3.!!) People sometimes forget that cubes, unlike squares, can be negative.

Subject: Testing for divisibility by 99
Path: you​!your-host​!walldrug​!epicac​!goatrectum​!plovergw​!shitpost​!mjd
Date: 2017-12-13T23:50:37
Newsgroup: comp.protocols.tcp-ip.math.multiple-of
Message-ID: <>
Content-Type: text/shitpost

Mathematically this is a nothing, but it's fun and I hadn't seen it before. Pick a number, say 852143, and multiply it by 99, giving $$84362157.$$

Now break this up into two-digit chunks:

$$84\qquad 36\qquad 21\qquad 57$$

(If there is an odd number of digits, put the leftmost one in a chunk by itself.)

Add up the chunks:

$$84 + 36 + 21 + 57 = 198$$

Repeat the process:

$$1 + 98 = 99$$

You will always finish at 99.

This same method can be used to test a number to see if it is divisible by 99: you can start with any number you like, and you will end at 99 if and only if the number you started with is a multiple of 99. (If the starting and ending numbers are !!s!! and !!e!!, then !!s\equiv e\pmod{99}!!.)

The trick is, of course, completely analogous to the test for divisibility by 9. Maybe you know some mathematical kid who has recently learned the divisibility-by-9 test and would enjoy seeing this version.

Subject: Computers suck: episode 17787 of 31279
Path: you​!your-host​!wintermute​!mechanical-turk​!brain-in-a-vat​!am​!plovergw​!shitpost​!mjd
Date: 2017-12-13T20:35:04
Message-ID: <>
Content-Type: text/shitpost

I have a new bluetooth keyboard and often it works flawlessly. But under some circumstances using it seems to mess up my keyboard configuration. I have the useless ‘Caps lock’ key mapped to act like a second ‘Control’ key, and I have the right ‘Alt’ key set up to act like a dead compose key, so that typing (‘alt’ + ‘o’ + ‘=’) inputs the letter ‘ő’, without which I can't spell “Erdős”. The laptop's integrated keyboard is also set up this way.

Usually everything just works, but sometimes the the control or compose mappings stop working, depending on some sequence of events having to do with putting the laptop to sleep, turning off the bluetooth keyboard, waking up the laptop, and bringing back the keyboard. But I don't know what the sequence is. Sometimes both keyboards lose both bindings; sometimes only the bluetooth keyboard loses them; sometimes it loses only one.

Since it's important to be able to type “Erdős”, I want to fix this. I don't even care that much about tracking down the ultimate cause and fixing that. I just want to run a command that will fix it temporarily when it breaks.

And so began my epic journey into the wild and uncharted jungles of the Linux keyboard system. Or should I say systems.

I wish I could draw you a map here, but I don't have one. All I know is, I wandered about through many strange lands, having adventures. Please do not assume that anything in this article is technically correct.

There seem to be at least half a dozen places that keyboard mappings can go wrong. For instance, there are at least a couple of layers in the X server alone.

Voyage into the X server

X has an idea that the keyboard is producing keycodes, and it has a table (or several tables?) to map these to keysyms, and then keysyms to actual functions. I think.

You can in theory use the xmodmap command to control this but I tried once and I am not eager to try again. Messing around with the keyboard mappings not a place for casual experimentation and jolly hacking. it is a little more like removing your own appendix, because if you make a mistake, it is too late to fix it.

I think the control function of the “Caps lock” key is handled in the X server. There is an X event diagnostic program called xev and when I run it and tap x I see

KeyPress event, serial 40, synthetic NO, window 0x6600001,
    root 0xe9, subw 0x0, time 5380932, (75,68), root:(1441,105),
    state 0x0, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XmbLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x6600001,
    root 0xe9, subw 0x0, time 5380977, (75,68), root:(1441,105),
    state 0x0, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

which are the two events that the X server sends to xev for the press and release. The state 0x0 I think means that no modifier keys are in force. Pressing ‘Caps lock’ generates a similar KeyPress event for the Caps_lock key, and then the events for tapping x have state 0x4 instead. The keycodes and the keysyms are the same, but the result of XLookupString becomes:

XLookupString gives 1 bytes: (18) "▒"
XmbLookupString gives 1 bytes: (18) "▒"
XFilterEvent returns: False

where 18 is some internal code, perhaps the Unicode codepoint, for the control-X character. (Note that 0x18 = 24 and ‘x’ is the 24th letter of the alphabet, which is why 0x18 is control-X in ASCII and in Unicode; similarly 0x78 is lowercase letter ‘x’ in ASCII and compatible mappings.) Using the real control key is similar, except that X recognizes it as the Control_L keysym instead of as Caps_lock.)

From the X point of view the keymap and keysym interpretations never change. What changes, when I map ‘Caps lock’ to the control function, is the mapping from keysyms to strings.

But the handling of the alt-to-compose mapping is handled differently. There, when the mapping is working, tapping the right-alt key produces the keysym Multi_Key, and when it isn't, it produces Alt_R.

On top of that, I think the actual compositions are handled in the client. When the X client receives Multi_Key, it knows that a compose sequence is coming up, and then it consults its private per-process composition map, which in my case was loaded from ~/.XCompose at some point. And in this case the client might be the window manager. Or maybe the display manager. Because having decentralized the composition mapping out into the client, it now has to be recentralized again so that the window manager can change the keyboard mappings for every client from English to Japanese when you type control-shift-space. Or maybe it's the display manager. Or both.

But wait, there's more!

But how does X decide which keycodes are for the keys being pressed? The OS tells it. And here things get even more exciting.

I know at least one of the problems is that the right-alt key is generating the Alt_R keysym instead of the Multi_Key keysym. Why? Rummaging the list of available commands suggests that setxkbmap might be useful. This command is a real piece of work. The name alone should tip you off, because why it is setxkbmap and not xsetkbmap? And why does it understand -help and -? but not --help or -h? And if you say setxkbmap -h why does it say Error! Option "-h" not recognized without printing out the options that it does recognize?

I could complain about this command all day. Its manual says:

      -device <deviceid>  Specifies the device ID to use

But there is no option to tell you what the allowed device IDs are. But that is all right! As far as I can tell this option is actually ignored because -device asdkjasd seems to make no difference to the output. Is there a way to address the two keyboards separately? I don't know.

Then there is also this:

  -print              Print a complete xkb_keymap description and exit
  -query              Print the current layout settings and exit

What is the difference between these two options? Well, the format, obviously. Except that sometimes they seem to print inconsistent results; one form will say that the keyboard options include some things, and the other form will say that they don't.

Yesterday after fucking around for forty-five minutes and looking at some of the 275 (!) xkb rules files, I guessed that maybe the ralt rule was the one I wanted to add; it looks like this:

 partial modifier_keys
 xkb_symbols "ralt" {
     key <RALT>  { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ]

When I ran setxkbmap -option ralt it seemed to have fixed my compose key problem, and I was only somewhat disturbed that it also seemed to have fixed my caps lock key problem also. So I put it in a one-line shell script called fix-compose-key and hoped I had found the answer to my problem.

I had not. Today it appeared to do nothing. I went back to the database of xsetkbmap options that is in /usr/share/X11/xkb, and sought there. Looking again at the ralt option in symbols/compose, I wondered if perhaps I had been in some other directory yesterday when it appeared to work. “Okay,” I said. “Maybe it is failing to recognize ralt because of some path search issue, and it will find it if I explicitly say -config symbols/compose. So I ran it with that option and it said

  Couldn't find configuration file "symbols/compose"

which seems clear enough; maybe it doesn't know that it should look under the current directory. So then I ran it under strace to see where it was looking (Hi, Julia!) and it said:

open("./symbols/compose", O_RDONLY)     = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=2303, ...}) = 0
read(4, "partial modifier_keys\nxkb_symbol"..., 4096) = 2303
close(4)                                = 0
write(2, "Couldn't find configuration file"..., 51) = 51

which means that it found, opened, read, and closed the file, and then claimed not to have found it. This is some quality software.

But anyway, if the problem is that it doesn't know what ralt means any more, why doesn't it just say so? Was I supposed to write it as compose:ralt? Maybe?


While writing up this section, the mappings on the bluetooth keyboard went away. The integrated keyboard is still working properly. But on the bluetooth keyboard, the right-alt key now sends keysym Alt_R instead of Multi_Key. The caps lock key still sends Caps_Lock, but the X server is now interpreting it as a caps lock key,and one which shifts both keyboards into caps mode.

This happened to me before once; I had just put away the bluetooth keyboard and I realized that somehow the server had gotten itself into caps lock mode. Since the caps lock key on the integrated keyboard was still mapped to control, I had no way to turn it off. I couldn't even try to figure it out, because I couldn't type any lowercase letters.

I was going to say more about this, but somewhere in the previous paragraph the bluetooth keyboard started working properly again.

Fuck if I know.

But wait, there's still more!

Stymied by setxkbmap I tried looking under a different lamppost. In /var/log/Xorg.0.log there was the following suggestive paragraph:

[   122.475] (II) XINPUT: Adding extended input device "Anker A7726" (type: KEYBOARD, id 17)
[   122.475] (**) Option "xkb_rules" "evdev"
[   122.475] (**) Option "xkb_model" "pc105"
[   122.475] (**) Option "xkb_layout" "us"
[   122.475] (WW) Option "xkb_variant" requires a string value
[   122.475] (WW) Option "xkb_options" requires a string value

Those xkb things seem to be referring to what setxkbmap knows about, because some of those things are mentioned in the configuration files that it claimed not to be able to find. Maybe XINPUT, whatever that is, is failing to put the ralt option into xkb_options. The warning message was helpful, because I thought maybe I wanted to supply an xkb_options value, and I wouldn't otherwise have known that XINPUT was trying to supply one. Although it's not very reassuring that it is supplying an erroneous empty value instead of just omitting the option.

But what is XINPUT? I think it refers to another subsystem, which can be addressed with the xinput command. And this one, hallelujah, has an option to list the device IDs that it wants:

    % xinput --list
    ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
        ↳ Anker A7726                               id=17   [slave keyboard (3)]

So maybe I can somehow use xinput to somehow redo whatever it was doing at 122.475, but this time with xkb_options set to ralt?

Maybe but if so I have not figured out how. The command has a relevant-seeming --set-prop option but none of the properties for the keyboard seem to be what I want, or even to have anything to do with what a keyboard is. They are things like:

    Device Accel Adaptive Deceleration (270):       1.000000


    Evdev Axis Inversion (272):     0, 0


    Evdev Scrolling Distance (277): 0, 0, 0

which sound to me like a trackball.

But that's not all!

Now how does xinput decide what to run? Maybe if I could find out what is running xinput I could see how it is run.

At this point I tried Google search for Adding extended input device and was led to the Kubuntu wiki page about X Input Configuration. This was a useful page. It says:

  1. A hardware input device is present at boot, or gets hotplugged.

  2. The kernel detects this, and creates a new "input" device … and a device node /dev/input/event3

  3. udev picks up the "add" event and the new device. /lib/udev/rules.d/60-persistent-input.rules calls /lib/udev/input_id on it

This seemed like paydirt: the kernel notices the bluetooth device and pokes udev, and then probably something in those /lib/udev/rules.d files tells it to kick off xinput.

I spent a while poking around in the rules.d directory looking at the rules. As promised there is a 60-persistent-input.rules and also 64-xorg-xkb.rules. Most of it is gobbledygook to me, and it is not tempting to try to understand it better, because each file begins with

    # do not edit this file, it will be overwritten on update

which means that even if the contents of the file are wrong, I would need to change something else somewhere else. But the 64-xorg-xkb.rules file mentioned /etc/default/keyboard, so I looked at that. It temptingly contained:


# Consult the keyboard(5) manual page.



Aha, maybe that is the cause of the Option "xkb_variant" requires a string value message in Xorg.0.conf. And it has a reference to a man page! The man page is not that much help, but at least it commiserates:

The specification of the keyboard layout in the keyboard file is based on the XKB options XkbModel, XkbLayout, XkbVariant and XkbOptions. Unfortunately, there is little documentation how to use them.

The plan now is: hack /etc/default/keyboard to specify the XKBOPTIONS and then try to reinitialize the right part of the keyboard system. I hoped that the keyboard man page would mention which command does this. It has a SEE ALSO section but none of the commands there seemed to be what I wanted. There is a setupcon which seems to be for setting up the emergency console. And there is also a tantalizingly-named kbdcontrol command…

    % man kbdcontrol
    No manual entry for kbdcontrol
    % kbdcontrol
    kbdcontrol: command not found

Uh, okay, maybe there isn't.

There's still more!

Maybe I can get udev to redo whatever initialization it normally does when the new keyboard appears.

So I added ralt to XKBOPTIONS and then did man -k udev to see what might be about udev. There is a udevadm command that might work. Here's my history of poking at udevadm:

 2082  udevadm --help

This worked flawlessly and told me there was a udevadm info subcommand:

 2083  udevadm info

This told me that I needed to tell it what device I wanted info about:

udevadm info [OPTIONS] [DEVPATH|FILE]

and also gave me a summary of options. But what device do I want info about? I don't know. Does it have an option to produce a list of recognized devices or is this going to be another setxkbmap situation where I have to supplicate the Delphic Oracle? The next few commands are me trying to see if udevadm will disgorge a list of devices:

 2084  udevadm -q all
 2085  udevadm -x
 2086  udevadm info -x
 2087  udevadm info -a
 2088  udevadm info -q all
 2089  udevadm info -q all -a
 2093  udevadm info -e

Aha, that was it!

 2094  udevadm info -e|less

There are 774 devices. (!!) But only three of them mention “Anker” so perhaps I want one of those. I eventually figured out that this was not the case; the one I wanted looked like this:

P: /devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:256/0005:291A:8502.0003/input/input20/event19
N: input/event19
E: DEVNAME=/dev/input/event19
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/bluetooth/hci0/hci0:256/0005:291A:8502.0003/input/input20/event19
E: LIBINPUT_DEVICE_GROUP=5/291a/8502/11b:f4:8c:50:5c:aa:a7

I no longer have any idea how I guessed this. There are many devices that mention bluetooth and many more that mention XKB, including what I think are the six virtual consoles, and also something called Chicony_Electronics_Co._Ltd._Integrated_Camera_0001. I don't know why an integrated camera has a pc105-model keyboard, but I guess if you can accept a keyboard that has an adaptive deceleration and an axis inversion setting, it's not too big a step to suppose that it might be attached to an integrated camera.

But somehow I did guess it — maybe I noticed that Xorg.0.log mentioned it:

[  7792.373] (II) config/udev: Adding input device Anker A7726 (/dev/input/event19)

After a very reasonable amount of consulting the manual and trying stuff I eventually did

   udevadm trigger  --action add --name-match /dev/input/event19 -v

which I think was the secret sauce, because at the end of Xorg.0.log there suddenly appeared:

[  7792.373] (II) XINPUT: Adding extended input device "Anker A7726" (type: KEYBOARD, id 17)
[  7792.373] (**) Option "xkb_rules" "evdev"
[  7792.373] (**) Option "xkb_model" "pc105"
[  7792.373] (**) Option "xkb_layout" "us"
[  7792.373] (WW) Option "xkb_variant" requires a string value
[  7792.373] (**) Option "xkb_options" "ralt"

and instead of being a warning, that last line says that it at least tried to set the option I wanted. You'll notice that although to udev the device ID is 19, to XINPUT it is 17. Whatever, that just means that someone somewhere has a secret decoder ring that says that 17 really means 19.

After that things were back to normal. Was that because of the udevadm trigger command I ran, or just a fluke? I don't know.

Can I find out what device file to use in the command, without needing a human being eyeball the log file? I don't know.

Will my change to /etc/default/keyboard persist past my next login? I don't know.

Why did it fix the control-key mapping as well as the compose key, when all I said to do was to add the ralt option? I don't know.

It's shit like this that makes me wonder if it's not too late to give up computer programming and become a roofer. In spring and fall this thought can persist for weeks. Fortunately, it's now December and so it's easy to remember why I'm not a roofer.

But I bet southern California is full of ex-programmers who are now roofers.

Now how much would you pay?

If you send me mail that tells me I was stupid because everyone knows that the way to do this is to simply extract the virtual device identifier from column 6 of /proc/hid/combined/kbrd and then just run

xcblfmd reset --config-path /etc/bluetooth/defs.d --vdev-ident=3 --no-connect

and that I would have known this if I had read the wiki like I was supposed to, I will take this Anker A7726 and I will find you and I will shove it up your ass.

Coming next week: The Linux sound system also sucks.

[ Addendum 2018-01-12: A less frustrated followup. ]

Subject: Non-straight ladders
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!batcomputer​!plovergw​!shitpost​!mjd
Date: 2017-12-13T16:25:17
Message-ID: <>
Content-Type: text/shitpost

Last week I complained about a reference to “a straight ladder”, which I considered absurd because all ladders are straight.

So far three people have written to me to suggest that A-frame stepladders are not straight. I had considered these (I own one) but I did not consider them to be exceptions. The ladder part is straight; the rest of it is a support for the ladder.

But I think there is an argument to be made in the other direction also: “straight ladder” is sometimes used as a term of art for a ladder that is specifically not an A-frame stepladder, and we can imagine that the authors of the question meant it in this technical sense, even though the target audience is a bunch of middle-schoolers who would not be aware of this distinction. Particularly since the rest of the problem does not make sense if the “straight ladder” is interpreted as an A-frame. (It is about how far up the wall the ladder can reach if its bottom is placed at the maximum safe distance.)

Since I am on the topic anyway, I should mention that Google search for “curved ladders” did produce many indisputably curved ladders, all of them playground equipment. The middle-schoolers would certainly be familiar with these, so perhaps the authors of the question were right to add the qualification.

The best point, however, was raised by Leah Neukirchen, who observed that rope ladders need not be straight, or perhaps that they should not be considered straight even if they happen to be hanging straight at the moment. Without sarcasm, I say: I stand corrected.

Subject: Jingle Bell Rock
Path: you​!your-host​!walldrug​!prime-radiant​!computer​!ihnp4​!hal9000​!plovergw​!shitpost​!mjd
Date: 2017-12-11T16:24:54
Newsgroup: misc.jingle-bell-rock
Message-ID: <>
Content-Type: text/shitpost

I came here to write a shitpost that would say:

I wish I believed in Hell, because it would be comforting to think that the author of “Jingle Bell Rock” was in it.

But then I wondered if I'd said that before, so I looked in my tweets archive. (Tweeting is just shitposting, except that the comment section is permanently open to every yahoo in the entire world.) It appears that this is on my Christmas wish every year:

19:30 on Dec 02, 2012

Today my ears were assaulted by "Jingle Bell Rock" for the second time this season. Did you write it? If so, I AM COMING FOR YOU.

19:35 on Dec 02, 2012

It seems that the perpetrator of "Jungle Bell Rock" died in 1997. I wish I believed in Hell so that I might imagine he was in it.

02:01 on Dec 19, 2013

Went to Ms. 9's school's concert, which unexpectedly delighted me by completely butchering my least favorite song, “Jingle Bell Rock”

19:02 on Nov 25, 2015

Heard “Jingle Bell Rock” today. It's times like this that I wish I believed in a Hell where the souls of the damned are tormented forever.

22:49 on Dec 19, 2015 There are always many good reasons to shop at the halal market. This time of year there is one more: Jingle Bell Rock.

Last year we went to Fort Lauderdale for vacation and I discovered to my relief that in Fort Lauderdale they don't really go in for Christmas music in the relentless way they do here in the Northeast. In fact they didn't really go in for Christmas much at all. The only real evidence of it that I saw was that on the 25th there was a guy in a Santa suit driving his pickup down the beach handing out gifts to kids.

There's no JBR tweet from 2014. Perhaps I felt that I had exhausted my tweet quota about Christmas songs for the year:

18:18 on Nov 30, 2014

Second time this week I've been subjected to "Rudolph the Red-Nosed Reindeer".

But that didn't stop me from complaining about Rudolph twice in 2013:

20:20 on Nov 15, 2013

For no reason this afternoon I asked myself "What's the worst song ever written?" A candidate came to mind: Rudolph the Red-Nosed Reindeer.

00:41 on Dec 02, 2013

It must be December, because I was unable to go to the store for paper towels without being forced to hear Rudolph the Red-nosed Reindeer.

Objectively, I would say that Rudolph the Red-Nosed Reindeer is worse than Jingle Bell Rock, but I seem not to have tweeted about it as much. Jingle Bell Rock bothers me more in the moment, but Rudolph's awfulness is more sophisticated. As Rocco Caputo observed:

The Parable of Rudolf contains an important social message: The Patriarchy controls the distribution of prestige.

More generally, I have complained:

14:46 on Dec 16, 2012

Supermarket playing Christmas carol medley; I amuse myself by replacing all the lyrics with variations on "choke on my cock".

20:24 on Nov 15, 2013

Clearly, the competition for "Worst song ever written" needs "Christmas song" and "Non-Christmas song" divisions.

14:40 on Dec 08, 2013

→@pozorvlak I'd be glad for a Christmas playlist that didn't try to relentlessly shovel the same 16 songs at me everywhere I go for 6 weeks.

That last one really gets to the part I hate. It's not so much that the songs themselves are worse than any others, although it is partly that. It's that I have to endure them constantly. If I heard each one only once or twice per winter, I don't think I'd have a big problem with it. But I don't need to hear Jingle Bell Rock ten or twelve times during the month of December. (One year I kept track.)

This time a couple of years ago Ms. E my piano teacher suggested that since Christmas was coming up I might like to learn to play some Christmas songs. I think I turned a bit pale, and I stammered out quietly “I don't really like Christmas music.” She hasn't brought it up since.

Subject: A non-coincidence
Path: you​!your-host​!walldrug​!prime-radiant​!skordokott​!mechanical-turk​!skynet​!m5​!plovergw​!plovervax​!shitpost​!mjd
Date: 2017-12-10T05:03:34
Newsgroup: alt.binaries.supreme-court-justices
Message-ID: <>
Content-Type: text/shitpost

I sometimes feel a little sad that Felix Frankfurter was never on the Supreme Court at the same time as Warren Burger.

Subject: Mathematical ladders
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!central-scrutinizer​!fpuzhpx​!plovergw​!shitpost​!mjd
Date: 2017-12-10T00:10:57
Newsgroup: talk.mjd.ladders
Message-ID: <>
Content-Type: text/shitpost

Katara and I were looking at some warmup problems for a math competition. One began:

When leaned against a vertical structure, a straight ladder can be used safely if ...

This knocked me for a loop and I had to stop to recover my wits. “A straight ladder?” I cried. “What other shape can a ladder be?” Then I had to indulge in a fantasy about the uselessness of a curved or an S-shaped ladder.

Sometimes I wonder who writes these questions.

Subject: Lesbians on my desktop
Path: you​!your-host​!ultron​!brain-in-a-vat​!am​!plovergw​!shitpost​!mjd
Date: 2017-12-09T18:47:16
Newsgroup: talk.mjd.desktop-lesbians
Message-ID: <>
Content-Type: text/shitpost

The Linux / KDE file dialog never opens up to the directory I want it to, and often it opens up to ~/Desktop, which I never want it to. I store almost nothing on the desktop, because the useful windows cover it up and anyway I always use the command line for accessing my meticulously-organized hierarchical file structure.

But I do have one file on the desktop, an image file called Lesbians.jpg:

File selection dialog box listing the
contents of /home/mjd/Desktop, which contains only one file, named

This file startles me every time the dialog pops up. “What the hell is that doing there?”

Then I remember what it is, and I smile. Sometimes I stop and take time to look at it:

Two elderly women with white
hair, both smiling.  One is seated in a wheelchair, holding up an
official-looking certificate.  The other has her arms raises in
triumph.  A third woman stands beside them, smiling.

These are Phyllis Siegel (standing with arms raised) and Connie Kopelov (seated), the first two women to be legally married in New York State.


Subject: Fiona sings Frosty
Path: you​!your-host​!wintermute​!hardees​!m5​!plovergw​!shitpost​!mjd
Date: 2017-12-08T19:16:29
Newsgroup: misc.frosty-the-snowman
Message-ID: <>
Content-Type: text/shitpost

Last month I was introduced to the work of Fiona Apple, which I just love. She has released only four albums since her debut in 1996, the last one in 2010. I went trawling through Spotify looking for offcuts and miscellany. I found five or six tracks.

One, unfortunately, was a cover of “Frosty the Snowman”. For an awful minute my mind teetered as if on a fulcrum, as I tried to decide whether to listen to it. I finally decided in favor of Fiona Apple, and listened to it. Once was enough. Even Fiona Apple could not redeem “Frosty the Snowman” for me.

This reminds me of the time I found out that Alanis Morisette had covered “My Humps”. I had previously decided that “My Humps” was the single worst song ever recorded. No, not quite: Christmas songs are in a separate division. “My Humps” is the winner of the non-Christmas division, but the competition in the Christmas division is much stiffer. “My Humps” is so bad that a Google search for it turns up this page titled “The Worst Song Ever Made” even though the page does not actually mention “My Humps”. Anyway I was eager to see if Alanis Morisette could somehow redeem “My Humps”, and while I give her an “A” for effort, I sadly concluded that she could not. Sorry, Alanis. It was a good try, but some things are better left alone.

However, “Frosty the Snowman” is not the worst song ever. There are other versions I would be willing to try. I would be willing or even interested to hear “Frosty” covered by any of: Laurie Anderson, Jane's Addiction, Laibach, D.J. Lebowitz, Gary Numan, Tom Waits, or Yamatsuka Eye. Probably there are others.

Subject: Vegan dominatrix supplies
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!am​!plovergw​!shitpost​!mjd
Date: 2017-12-07T00:32:34
Newsgroup: alt.binaries.vegan-dominatrix
Message-ID: <>
Content-Type: text/shitpost

Today while going from place A to place B, I suddenly wondered whether there were vegan dominatrices? There must be, I decided, but that do they use in place of the canonical leather whip?

There is a “Vegan Dominatrix” Twitter, but the content is not very specific, and it has been idle since 2016. There is also a “Vegan Dominatrix” blog, I think unrelated to the Twitter. It updated only once, in 2009, but at least the single the post is pertinent to my inquiry.

Etsy user Kinkybutcute sells a line of vegan flogging devices made of bundles of waxed, knotted hemp or cotton cords.

This 2010 bulletin board thread asks for advice purchasing dominatrix supplies for costuming purposes rather than real use, and asks specifically about whips. There are some suggestions.

More than one site contained a link to, which went defunct around 2012. An archived version of their main page says: manufactures hand-crafted vegan bondage gear, whips, belts, harnesses, and other vegan leather (a.k.a. "pleather") items.

Their site has a category for “hitting toys” but as far as I can tell, no whips. “Pleather” is a marketing name for a type of artificial leather. I am not sure if it would make a usable whip.

Subject: Mmmm baked potatoes
Path: you​!your-host​!ultron​!uunet​!asr33​!hardees​!m5​!plovergw​!ploverhub​!shitpost​!mjd
Date: 2017-12-06T06:57:38
Newsgroup: sci.math.potatoes
Message-ID: <>
Content-Type: text/shitpost

I recently wrote an article here complaining that even though everyone agrees on what a good french fry is like, and even though it's not hard to make a good french fry, most of the fries you actually get are not good.

I have a similar complaint about baked potatoes. Restaurant baked potatoes are uniformly terrible, even when you pay $10 for them at an expensive steakhouse. The potato is supposed to steam inside its skin and become soft and fluffy inside, and crisp on the outside. Instead you almost always get a potato that is not too different from raw.

The bad fries are a mystery. It only takes a few minutes longer to make really good fries, and I don't understand why more people don't do it. The baked potatoes are easier to understand. Making a good baked potato takes a lot of time. It doesn't require skill or attention, just patience.

The recipe is: heat the oven to around 350°. Start with a big starchy potato, the kind with dusty brown skin. Wash, dry, and oil the potato, prick it with a fork, and put it naked into the oven. (No foil! Unless you want your baked potato to be a steamed potato instead.)

And then add the secret ingredients: time and heat. Many recipes advise baking the potato for an hour. This is not enough. Once the potato goes into the oven, leave it there, for at least ninety minutes, maybe a hundred and twenty. If it's in a pan you might want to turn it over once. It's probably better to just put it on the rack, then you don't need to turn it.

The exact time and temperature is not that important. This is not rocket science; it is just a potato. The proper cooking time is not a fleeting instant, it is a long afternoon, an easy target. At some point the potato will begin to overcook, but not for a long time, and if it does, it will happen very gradually. The skin will stay crisp and the inside will stay fluffy; only a thin shell in between will dry out too much, and even if it does you may not find it objectionable; some people like it that way. I suppose eventually the entire potato would char and catch fire, but you would have to work really hard to leave it in the oven that long.

The other key point is to take the baked potato out of the oven and deliver it to the table at the moment you are about to eat it, and not any sooner. The baking time is quite flexible, as long as you don't take it out too soon. So don't say “oh, the recipe said to bake it for 90 minutes”, and then take it out after exactly 90 minutes and let it sit around for a quarter hour before you serve it. Leave it in the oven until serving time, and when everything else is ready, then take it out and drop it on the plate.

Restaurant chefs have years of training and practice in the culinary arts, and because of this they cook many things much better than the rest of us. But how much advantage do they derive from their training and practice when baking a potato? Pretty close to zero.

Restaurants, by their nature, are really good at some kinds of food, much less good at others. The baked potato is very ill-suited to restaurant-style preparation methods. It takes a long time to cook, but unlike many long-cooking foods, such as stew or soup, it can't be prepared in advance and then reheated. (The outside, which should be the best part, would get tough and leathery.) The baked potato is best when served on the instant, but unless the restaurant had a whole oven devoted to potatoes in different stages of doneness, circulating in and out in shifts through the day, and unless they invested the attention and trouble to keep track of all those potatoes, putting in new ones and taking out the old ones every half hour or so, they wouldn't be able to produce a well-baked potato at the moment they needed to deliver it to the table.

And if the restaurant did go to all that trouble, what then? They wouldn't be able to charge enough to pay them back for the time and trouble, because it is just a potato, and who is going to pay a lot of money for a potato?

So baked potatoes are a dish that you can do at home better than a restaurant can, and you might as well. Let's all create a better world by cooking better baked potatoes.

Subject: Hey, that's not how that is meant to be used!
Path: you​!your-host​!wintermute​!uunet​!asr33​!hardees​!m5​!plovergw​!ploverhub​!shitpost​!mjd
Date: 2017-12-05T20:42:33
Message-ID: <>
Content-Type: text/shitpost

When the kids were smaller, they would sometimes drop food. I would adopt a puzzled expression, and say, in what I hoped was a tone of perplexity, “you're supposed to eat it, not throw it on the floor!”

The kids did not find this funny. They found it extremely annoying, and ordered me to stop. When I saw that it would never be popular, I gave it up.

But I still think it, and it's still funny every time, sometimes funnier.

Subject: Life in the 21st Century
Path: you​!your-host​!walldrug​!prime-radiant​!uunet​!asr33​!kremvax​!hal9000​!plovergw​!shitpost​!mjd
Date: 2017-12-05T19:47:20
Newsgroup: talk.mjd.wawa-app
Message-ID: <>
Content-Type: text/shitpost

I often shop at Wawa, a regional chain of convenience stores where I live. They have a phone app, which keeps track of how much I have spent there and gives me a bonus after each $50 spent. The bonus is almost always applicable something I would have bought anyway, like coffee or sandwiches, and using the app is effectively worth about 5%. I'm not sure just what Wawa is getting out of this, but all I can think of is either more store visits from me or better information about my Wawa buying habits, both of which seem fine to me.

Somtimes the app delivers an additional surprise bonus. And for some reason these often arrive when I am traveling for work, in Santa Monica. For example, today only I have the opportunity to claim to a free fifteen-ounce “Java Monster”, whatever that is. (As a computer programmer I find the name poorly chosen. It evokes bad memories and suggests disturbing nightmares.)

Tomorrow I am eligible to receive a free bag of potato chips, normally priced at $1.69. This would be attractive had my doctor not told recently told me to lose weight and eat fewer carbs. If I were in Philadelphia I might have picked it up anyway, and then given it away to one of the folks in my coworking space. But in Santa Monica it is not clear how to capitalize on this offer.

Wawa has a lot of stores and the app has a store locator that will tell me if there are any around where I might be able to get my chips. So I asked it, and learned that to pick up my free chips I don't need to go all the way back to Philadelphia. The nearest Wawa is in Port Richey, Florida, a mere 2145.51-mile drive.

(Google Maps directions say that the drive is actually 2,487 miles. Is Wawa overoptimistic, or do they know a shortcut?)

Even if I were to try, the store is 37 hours away and by the time I arrived, the offer would have expired.

Then I try to imagine explaining this to Benjamin Franklin and it doesn't go very smoothly.

Subject: Shitpost academy
Path: you​!your-host​!walldrug​!prime-radiant​!berserker​!plovergw​!plovervax​!shitpost​!mjd
Date: 2017-12-05T18:07:57
Message-ID: <>
Content-Type: text/shitpost

Ideas to consider:

  1. Each month, have a Shitpost Roundup on The Universe of Discourse with a menu of the previous month's shitposts. Then people who follow the main blog can find out what went on, which might be of passing interest, without actually following the shitpost blog, which probably isn't.

  2. Instead of trying to get posts into the right place the first time around, just make a monthly pass over the shitposts and see if any should be promoted to The Universe of Discourse. This would be a good opportunity for additions and emendations.

Subject: My rule about eating everything
Path: you​!your-host​!wintermute​!mechanical-turk​!berserker​!plovergw​!shitpost​!mjd
Date: 2017-12-05T17:11:13
Message-ID: <>
Content-Type: text/shitpost

When I was thirteen, my grandparents took me to Greece for my birthday. This was, of course, completely awesome. Except that every time I had the opportunity to order Greek food, I chickened out and ordered souvlaki. When I got home again, I felt like a schmuck because I had wasted a rare opportunity, and I swore that I would never make the same mistake again.

(For my fourteenth birthday I asked my grandparents to take me to a Greek restaurant and order for me. I remember eating avgolemono soup and moussaka for the first time.)

I have done pretty well by my oath. I've been a lot of places and eaten a lot of stuff. Not all of it was good, but most of it was, and some of it was great. I went to Hong Kong in 2001 and ate everything, not just Cantonese food but also my hotel was having an exchange program where a bunch of hotel chefs from Budapest came to show the Hong Kong hotel chefs how to cook Hungarian food, and there was a Hungarian buffet every night, which was also pretty wonderful. I went to Taiwan in 2003 and ate everything and the only bad meal I had was in a crappy restaurant across the street from the bus station in Hualien. And it wasn't because they were serving anything surprising, it was just because they were bad cooks and their crappy restaurant was dirty.

There are only a few missed opportunities of the same sort that I continue to regret. One summer I was working in southwest Illinois, and after work I went for a drive to see if I could get to the Indiana border.[1] I drove to Lake Carlyle, took a nap in the front seat, then started driving around county roads at random. At some point I passed by a little restaurant in the middle of nowhere away from everything else, and since it was dinner time, I went in.

The special that day was chicken gizzards, which I've never had. But I wimped out and ordered a hamburger. Dammit. I was having an adventure, and when the adventure offered up a plot twist I said “No thanks, I've had enough.”

Another episode, not as bad, was when I was on my road trip last summer to drive around Chesapeake Bay. One day I stopped for lunch and got soft-shell crabs, a regional specialty and also a favorite of Placido the Octopus. I asked if the restaurant served Smith Island cake, also a regional specialty, the official dessert of the State of Maryland. They did have it in several flavors, including caramel, but no chocolate, so I skipped dessert. That could be worse; I can fix it if I want to. If I really want to try a Smith Island cake I can probably mail-order one. Or go back to Maryland.

But I will never get back the chance to try those chicken gizzards, and they really bug me. Maybe I wouldn't have liked them, but they would have had to have been pretty awful to have bothered me as much as the ones I didn't eat.

[1] I did not make it to Indiana, or even close. Lake Carlyle is only about 30% of the way to Indiana. I still haven't made it to Indiana. Someday, though!

Subject: “Oh, you ate that?”
Path: you​!your-host​!wintermute​!wikipedia​!uunet​!batcomputer​!plovergw​!shitpost​!mjd
Date: 2017-12-05T16:39:01
Message-ID: <>
Content-Type: text/shitpost

My co-worker Martin Locklear informs me that “Лох-Несского” is actually pronounced “Loch-Nesskovo”, not “Loch-Nesskogo”, even though the “г” is clearly a “g” and not a “v”. And it also occurs to me that the “e” means that the vowel is iotized so that it is more like “Loch-Nyesskovo”. Whatever, this should give you an idea of how little Russian I know: just barely enough to convince someone who knows none at all that I know something, but not enough to be of any actual use.

This kinda reminds me of something interesting that happened to me a while back. In 2001 I was fortunate enough to be invited to Tokyo to teach classes for three weeks. One evening I went to a nearby restaurant, billed as a traditional-style yakitori pub. I don't know how traditional it was, all the other yakitori pubs I have been to have been less fancy and had less complicated menus, but whatever. Anyway I read no Japanese at all, but the menu had pictures of things so I ordered some things that looked like they might be good. One of the dishes I ordered was some deep-fried battered balls which I guessed would have something interesting inside.

The balls did prove to have something interesting at the center, but I could not identify what it was. It seemed vaguely familiar, and I thought I had eaten it before somewhere, but I could not place it. Whatever it was, it had no flavor, but a very distinctive texture: it was smooth and slippery, tough but yielding. If I bit down on it it would resist, then give suddenly as I bit it in two — chewable, but just barely. I spent quite a lot of that meal trying to figure out what was in those balls, and I eventually decided that I wasn't going to figure it out. My best guess was that it was fish vertebrae, which I had heard people would sometimes eat: it was tougher than meat, but not as tough as bone, so maybe?

(I did eat all of it. It was okay, and I have a strict rule that when visiting a foreign country I should always eat everything that is put in front of me. In many ways I am less polite as I would like to be, but to go into someone's home and then turn up my nose at their food seems inexcusably gauche. Also, I'm not going to eat other peoples’ food, why even travel in the first place? I might just as well stay home and go to the McDonald's on 40th and Walnut.)

I can't read or write Japanese but I sure can copy it and I carefully copied the name of this fried dish into my notebook. The next morning when I got to class I showed my notebook to the students and said “I had this for dinner last night. What did I eat?”

“Oh!” said one of my students. “You ate that?” That was an odd moment. He paused to think of how to say it in English. “Chicken knuckles.”

It turned out that inside those balls was the cartilage from in between the bones of a chicken. You know how sometimes you're eating a chicken drumstick and there's the connective tissue on the end of the joint and you might get it in your mouth? You could chew it up and swallow it. But it's quite tough, so probably you just spit it out. Except not in this case; it had been battered and fried. So that was why it seemed familiar: I had actually eaten this before — sort of.

But it's a good thing I can copy Japanese, or I would have had to keep wondering and it would have bugged me for years.

Subject: Mmm, sandalwood
Path: you​!your-host​!wintermute​!uunet​!batcomputer​!plovergw​!shitpost​!mjd
Date: 2017-12-05T16:20:13
Newsgroup: news.groups.forest-fire
Message-ID: <>
Content-Type: text/shitpost

Today I'm in Santa Monica. When I got down to breakfast in the hotel lobby, the Israeli guys mentioned that there was a big fire about twenty miles away. I shrugged. “Didn't you smell it?”

Then the light went on. I had been planning to advise the front desk that someone had been burning incense in their room.

Hmm, I wonder if I could demand a rate reduction, because I was promised a room on a No Smoking floor.

Subject: Bitcoin
Path: you​!your-host​!walldrug​!prime-radiant​!uunet​!batcomputer​!plovergw​!plovervax​!shitpost​!mjd
Date: 2017-12-01T20:15:53
Message-ID: <>
Content-Type: text/shitpost

A few years ago, a Reddit user liked something I had written and invoked some Reddit tip-bot daemon to tip me for it. At the time the tip was worth approximately 6¢, and since I was not a regular Bitcoin user, it would hardly have been worth my time to claim the tip, much less to liquidate it.

But yesterday I saw a story that bitcoins were now trading at close to $10,000 each, and I wondered how much my tip would have been worth. I knew it was some small fraction of a bitcoin, but I didn't remember what the fraction was.

I now see that I should have been less cynical and short-sighted. If I had claimed it timely, it would now be worth $1.05.

Scrooge McDuck
diving into a pile of gold coins

Subject: Лох-Несского
Path: you​!your-host​!warthog​!goatrectum​!plovergw​!shitpost​!mjd
Date: 2017-12-01T17:44:08
Newsgroup: rec.pets.loch-nesskogo
Message-ID: <>
Content-Type: text/shitpost

Recently this Russian-language page linked to my article about finding a bug in sort(). It says:

Найти баг в функции sort – сродни обнаружению Лох-Несского чудовища.

I don't know Russian, but I do understand the Cyrillic script, and Russian has so many English loanwords that I can sometimes make out part of what it is saying. For example, in the sentence above, “баг”, pronounced “bahg”, means “bug”. (I didn't know this before).

This time I didn't get very far except to guess that “функции sort” (“funktsii sort”) was referring to the sort function.

“Лох-Несского” stood out because it was capitalized, and because the double-с is unusual. I recognized “-кого”, which I think is some sort of genitive-case marker. But I couldn't imagine what the rest of it could be, so I asked Google, and then I felt dumb: “Лох-Несского чудовища” (“Loch-Nesskogo chudovishcha”) is the Loch Ness Monster.


Subject: Drat, I messed up a shitpost
Path: you​!your-host​!wintermute​!uunet​!asr33​!kremvax​!hal9000​!plovergw​!shitpost​!mjd
Date: 2017-12-01T16:07:11
Message-ID: <>
Content-Type: text/shitpost

Yesterday's article about the Slaughter electric needle injector really did not belong here. It was not shitty enough. In fact there was nothing at all wrong with it. I should have put it on the real blog.

When I started this project, I resolved that at the end of each shitpost, before publication, I would re-evaluate and decide whether the article was of higher quality than I intended. If so, I would publish it on The Universe of Discourse instead. I forgot to do that this time. I will do better next time.

Hmmmm, I just realized: it's not too late! Okay!

New location