Content-Type: text/shitpost

Subject: Estimating logarithms
Path: you​!your-host​!walldrug​!epicac​!qwerty​!fpuzhpx​!plovergw​!plovervax​!shitpost​!mjd
Date: 2018-07-15T19:42:16
Newsgroup: talk.mjd.logarithm-estimationg
Message-ID: <>
Content-Type: text/shitpost

Estimating quanities like !!\log_2 3!! is easier than it looks, if you know a couple of tricks. In the previous article I said:

I estimated that as 1.6 off the top of my head just by half-assing it: !!2^{3/2} \approx 2.828!!, so it must be a little bigger than !!\frac32!!, which it is.

I really did do it in this ridiculous way, starting from !!1.5 \Rightarrow 2.828!! and then adding a fudge factor to get !!1.6 \stackrel?\Rightarrow 3!!.

(The !!2.828!! is because !!2^{3/2} = 2^{1/2}\cdot 2 \approx 1.414 \cdot 2 = 2.828!!, and memorizing !!\sqrt2\approx 1.414!! is something everyone does in high school.)

I could have arrived at the same answer by a slightly less fudge-flavored route: $$\begin{align} 256 = 2^8 & \approx 3^5 = 243\\ 8\log 2 & \approx 5 \log 3 \\ \frac85 & \approx \frac{\log3}{\log2} = \log_2 3. \end{align} $$

Using a slightly less cruddy initial approximation, !!2048 = 2^{11}\approx 3^7 = 2187!!, we get !!\log_2 3 \approx \frac{11}7 = 1.5714\ldots!!. The correct value is !!1.58496\ldots!!. Incidentally the computer informs me that !!524288 = 2^{19} \approx 3^{12} = 531441!!, yielding the approximation !!\frac{19}{12} = 1.5833\ldots!!, but I did not know either of those off the top of my head. I only know the powers of !!3!! up to !!3^7!!, or maybe !!3^8!! on a good day.

We can similarly notice that !!125 = 5^3 \approx 2^7 = 128!! and so estimate that !!\log_2 5 \approx \frac 73!!; the correct value is !!2.322\ldots!!.

File this under “lower mathematics”.

Subject: Estimating smooth numbers
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!wescac​!skynet​!m5​!plovergw​!ploverhub​!shitpost​!mjd
Date: 2018-07-15T19:22:29
Newsgroup: sci.math.smooth-estimate
Message-ID: <>
Content-Type: text/shitpost

I spent some time over the last couple of days trying to estimate the number of smooth numbers up to !!N!!. (An !!n!!-smooth number is one whose largest prime factor is no larger than !!n!!. So the 2-smooth numbers are exactly the powers of 2, and the set of 3-smooth numbers contains exactly the numbers of the form !!2^i3^j!! and begins !!1, 2, 3, 4, 6, 8, 9, 12, 16, 18…!!.)

Let's write !!f_k(n)!! for the number of !!k!!-smooth numbers up to !!n!!, so for example !!f_3(19) = 10!! and !!f_2(19) = 5!!, as above. Then obviously !!f_2(n) = 1+\lfloor \log_2 n\rfloor!! exactly.

(Incidentally, I think there ought to be a simpler notation for !!\lfloor \log_k n\rfloor!!, which comes up really often.)

After hacking around a bit, I settled on $$f_3(n) \approx \ell_3(n) \cdot f_2(n) - \frac{\ell_3(n)-1}{2} \left( \ell_3(n)\log_2 3 - \frac12 \right) $$

where !!\ell_3(n) = \lceil \log_3 n\rceil!!. I expect I can express !!f_5(n)!! in terms of !!f_3(n)!! in similar fashion but haven't yet tried. The may still contain some silly errors (I corrected a bunch), but at least the computer says it is not too far off. For example the approximation guesses !!f_3(10^6) \approx 139.4!! and the correct answer is !!142!!.

I wanted something I could compute in the woods with no calculator, because Toph and I went camping this weekend and I had my phone off and didn't want to turn it on. I think the formula above answers the requirement pretty well. Note that calculating !!\ell_3!! exactly is quite easy, much easier than calculating !!\log_3 n!!. The only possibly tricky bit is the !!\log_2 3!!, which I should have memorized but don't. But in the woods I estimated that as 1.6 off the top of my head just by half-assing it: !!2^{3/2} \approx 2.828!!, so it must be a little bigger than !!\frac32!!, which it is.

This formula comes without absolutely no warranty, not even the implied warranty of merchantability or fitness for a particular purpose.

Subject: Hell is other programmers
Path: you​!your-host​!walldrug​!prime-radiant​!skordokott​!berserker​!plovergw​!plovervax​!shitpost​!mjd
Date: 2018-07-06T07:12:43
Message-ID: <>
Content-Type: text/shitpost

I remember we used to make jokes that went something like “What's the scariest thing you'll find wantering the halls of the engineering school? A programmer with a screwdriver.”

But we were wrong. A programmer with a screwdriver can only do so much damage. To really fuck things up, a programmer needs a keyboard.

Subject: Larry says I'm a wizard
Path: you​!your-host​!wintermute​!wikipedia​!uunet​!asr33​!hardees​!triffid​!colossus​!kremvax​!hal9000​!plovergw​!shitpost​!mjd
Date: 2018-07-06T07:03:20
Newsgroup: talk.bizarre.wizard
Message-ID: <>
Content-Type: text/shitpost

Years and years ago I gave a tutorial the the Perl Conference called Tricks of the Wizards. (I should really make that publically available. Someone please remind me later.) In this talk I was careful to explain that I was not, myself, a wizard; I was only presenting the tricks of the wizards. Wizards canonically wear large pointy hats with astonomical figures on them. Lorrie made me a small hat with astronomical figures.

much younger me, wearing a flat-topped brimless blue cap, with golden
suns and moons.

But a few years later at YAPC, Larry Wall gave a keynote in which he analogized different members of the Perl community to characters in Lord of the Rings, and admonished us to not underestimate the hobbits. Talking to Larry afterwards, he remarked that I was one of their best elves.

“Really?” I said. “I think of myself as clearly a dwarf, crafty and irritable, toiling alone in my underground cavern, forging marvelous jewels for myself and magical tools for other people to use.”

Then Larry paid me a compliment I will treasure my whole life. He said that I was a wizard, because the role of wizards is to be able to get separate groups to work together, by virtue of not being part any group themselves.

Well then! If Larry Wall said I was a wizard, I was a wizard. I eliminated the disclaimer from my talk, and I asked Lorrie to make me a full-sized hat:

My hat is in the same fabric, but this time it is tall and
pointed, with a wide brim.

She also made one for Placido the octopus, who accompanies me to all my conference talks.

am asleep sitting up at a table, with my face pillowed on my arms.
pointed, with a wide brim. On my left is a small brown toy octopus,
wearing on its mantle a miniature wizard's hat in the same

Subject: Today I learned…
Path: you​!your-host​!wintermute​!wikipedia​!twirlip​!batcomputer​!plovergw​!shitpost​!mjd
Date: 2018-07-01T02:20:37
Message-ID: <>
Content-Type: text/shitpost

Devised by Bill Wright, the basic format of [British television quiz show] Mastermind has never changed… . Wright drew inspiration from his experiences of being interrogated by the Gestapo during World War II.

Subject: Another trivial utility: do-over
Path: you​!your-host​!ultron​!gormenghast​!qwerty​!fpuzhpx​!plovergw​!plover​!shitpost​!mjd
Date: 2018-06-29T20:52:35
Message-ID: <>
Content-Type: text/shitpost

I have been waffling for several days about whether to post this. Argument in favor:

I really like this command! A lot!

Argument against:

I don't understand why, since it doesn't actually do anything.

It's called do-over and it's just a glorified loop. You say something like

    do-over command args....

and it replies

    Hit <enter> to start

When you hit enter, it runs command args, and then it prompts again:

    Job completed in 12.3s
    Hit <enter> to re start

If someone else were showing me this, I would ask:

Why is this better than hitting the up-arrow and then enter?

or possibly

Why is this better than while read x; do command...; done?

I have no answer to these questions. But I have done a lot of both of those other things, and I like this better, although I don't know why.


    use Time::HiRes qw(time);

    print STDERR "Hit <enter> to start\n";
    while (1) {
          my $x = <STDIN>;
          last unless $x;
          print STDERR scalar(localtime()), "\n";
          my $start = time();
          print STDERR "running @ARGV\n";
          my $elapsed = time() - $start;
          printf STDERR "Job completed in %.1fs\n", $elapsed;
          print STDERR "Hit enter to restart\n"; 

Subject: Today I learned…
Path: you​!your-host​!wintermute​!hardees​!m5​!plovergw​!shitpost​!mjd
Date: 2018-06-29T16:55:22
Message-ID: <>
Content-Type: text/shitpost

I was looking at a map of West Virginia and I saw there is a town named New Vrindaban. “That's a surprising name for a town in West Virginia,” I said, so I looked it up. Aha, it was founded by ISKCON, now it all makes sense.

New Vrindaban has a web site.

Subject: A metric coincidence
Path: you​!your-host​!wintermute​!glados​!extro​!goatrectum​!plovergw​!shitpost​!mjd
Date: 2018-06-29T13:23:32
Message-ID: <>
Content-Type: text/shitpost

It is that case that $$\sqrt5\frac{\text{mile}}{\text{hour}} = \frac{\text{m}}{\text{s}}$$ almost exactly, so of course also $$5\frac{\text{mile}}{\text{hour}} = \sqrt5\frac{\text{m}}{\text{s}}.$$

I would find this more delightful if it hadn't just caused me so much confusion. I couldn't figure out whether I was supposed to multiply or divide because the number was the same both ways around. Still it might make a useful mnemonic, if I could remember which way around it was.

Subject: Today I learned…
Path: you​!your-host​!warthog​!goatrectum​!plovergw​!shitpost​!mjd
Date: 2018-06-25T14:38:29
Newsgroup: talk.mjd.ncube
Message-ID: <>
Content-Type: text/shitpost

There was a political party in Zimbabwe called “Movement for Democratic Change – Ncube”. Unfortunately it seems to have nothing to do with actual N-cubes; it is named for MDC founder Welshman Ncube, who also seems to have nothing to do with actual N-cubes.

Disappointing, but nothing compared to my childhood discovery that the biblical Book of Numbers had nothing to say about actual numbers.

Subject: Indecent math jargon
Path: you​!your-host​!wintermute​!wikipedia​!hardees​!m5​!plovergw​!shitpost​!mjd
Date: 2018-06-19T20:43:41
Newsgroup: talk.mjd.math-terminology-indecent
Message-ID: <>
Content-Type: text/shitpost

A couple of times I have witnessed discussions of what mathematical term is the most off-color or indecent-sounding. Of course someone always mentions the hairy ball theorem immediately and this is usually acclaimed the best (worst?).

But in my opinion the winner is “the class of forbidden minors”.

Subject: My least favorite mathematical term
Path: you​!your-host​!warthog​!goatrectum​!plovergw​!plovervax​!shitpost​!mjd
Date: 2018-06-19T20:31:55
Newsgroup: comp.lang.haskell.math-terminology-symplectic
Message-ID: <>
Content-Type: text/shitpost

“Symplectic”. What the hell does it mean? As far as I can tell, nothing.

Subject: A mathematical terminology failure
Path: you​!your-host​!walldrug​!epicac​!goatrectum​!plovergw​!ploverhub​!shitpost​!mjd
Date: 2018-06-19T20:28:33
Newsgroup: talk.mjd.math-terminology-failure
Message-ID: <>
Content-Type: text/shitpost

If you have a system of vectors, and you want a related system that spans the same space but is pairwise normal, you should obviously normalize the system.

No that's completely wrong. You can normalize them, but it won't help. If you want them to be normal, you have to orthogonalize them.

That sucks.

Subject: Crosswords people
Path: you​!your-host​!walldrug​!epicac​!qwerty​!fpuzhpx​!plovergw​!plovervax​!shitpost​!mjd
Date: 2018-06-19T20:21:56
Newsgroup: talk.mjd.linkedin-buddies
Message-ID: <>
Content-Type: text/shitpost

Today I got a LinkedIn invitation from someone (that I don't know) whose description reads as follows:

About US

Working at the crosswords people and transformative technologies, [our company] Delivers innovarive business solutions - powered by top talent - to help organizations reach their strategic and realize opportunities now and in future.

Except to redact the company name, I did not change a word of this.

I had to ask around to find out whether this was a parody account, posted in mockery of LinkedIn itself, because if so, I love it. But at this point I think it is sincere. I almost want to start my own parody account, but I don't think I could do it this well.

Subject: The dream of the Tsar's clock
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!am​!plovergw​!shitpost​!mjd
Date: 2018-06-19T17:05:10
Message-ID: <>
Content-Type: text/shitpost

Last night I had a dream in which I was telling the following hilarious joke:

Once upon a time in Russia, the Tsar owned a magnificent handmade clock. It covered almost an entire wall, and was marvelously ornamented, with two accompanying decorations, resembling religious icons, to be hung on the wall flanking it.

There was a merchant who coveted the clock, and one day, unable to resist any longer, he hired some thieves to break into the Tsar's palace and steal the clock, which he then hung in his own home.

The very next day, who should happen by but the Tsar himself, with his retinue and bodyguards. Of course it would have been unforgivably rude to turn away that Tsar, so the merchant reluctantly invited him in.

The Tsar gazed at the clock on the wall. “That is a magnificent clock,” he said at last. Not knowing what else to say, the merchant agreed.

“I have one just like it,” said the Tsar.

That was the punch line.

Dreams. (Shrug.)

Subject: Shampoo
Path: you​!your-host​!ultron​!uunet​!asr33​!hardees​!brain-in-a-vat​!am​!plovergw​!plovervax​!shitpost​!mjd
Date: 2018-06-18T15:30:06
Message-ID: <>
Content-Type: text/shitpost

A small bottle of hotel shampoo,
labeled “Neutrogena® CLEAN normalizing shampoo”

I'm sorry I used this now that every one of my hairs is perpendicular to my scalp.

Subject: How I became MJD
Path: you​!your-host​!walldrug​!kremvax​!hal9000​!plovergw​!plovervax​!shitpost​!mjd
Date: 2018-06-17T15:27:52
Newsgroup: alt.mjd.mjd
Message-ID: <>
Content-Type: text/shitpost

I was not intending to be known as “MJD”. It happened by accident.

When I got my first full-time job, as a Unix system administrator, my boss, Mark Foster, asked me what username I would like. He had mark, so that was unavailable.

At college I had had entropy, but I wasn't sure that would be appropriate.

(The first time I chose my own username I was unprepared for the question. I sat there staring at the screen for two minutes, unable to think of anything good, and finally, wanting only to move on, entered puswad. Some months later that admin of that lab asked if I would be willing to change my username. He had to include it on reports that he gave to his boss about the lab, and felt embarrassed every time he saw it. Hence entropy.)

Mark assured me that entropy would not be a suitable email address for a staff person. Thinking of the ilustrious history of dmr and rms and so forth, I suggested mjd and the die was cast.

What I wasn't expecting was that people would start calling me that. For a long time I resisted it. “That is not my name,” I would say. “It's just my email address.” On chat systems I would always choose something else because I didn't want to encourage the trend of people calling me “MJD” to my face.

But I didn't want to change it, and eventually, I gave up. Now, many years later, it seems very natural for people to call me “MJD” and I am sometimes startled when they don't.

My first Unix username was dominusm, assigned by some other person or perhaps an automatic process. My colleagues David Hiebeler and George Kyriazis were similarly assigned hiebeled and kyriazig. This infuriated me. Eight characters were available, so why not hiebeler and kyriazis? Why mangle people's names for a foolish consistency? I resolved that if I were ever in charge of assigning usernames, I would do a better jobs, and eventually, I did.

One day I was trying to type telnet but my left hand was on the wrong position and I typed yrlnry by mistake. When Dada lightning strikes like that, I take it seriously. On IRC I was yrlnry for many years. The only thing that prevented me from using it more widely is that people seem unsure how to pronounce it. (/yuril-nury/) Another benefit: since it's hard to prounounce, people wouldn't try to call me that when they met me.

But I usually prefer to use my real name. I don't (usually) want to be pseudonymous, and I think “Mark Dominus” is a great name. I often find nicknames silly, pompous, or juvenile, and I often find myself feeling embarrassed for people who use them. It is tempting to insert some especially painful examples here, but one of the rules of this blog is: no mockery of any specific and identifiable private persons. But maybe you can imagine me cringing when I think of someone who goes around calling himself “Elrond”.

On Math Stackexchange I originally used “Mark Dominus” but then I found to my distaste that Google searches for my name turned up my SE contributions and nothing else, so I changed it to “MJD”. The SE thing reminds me of something related. There is a certain class of SE user that chooses as their avatar a picture of David Hilbert or Georg Cantor, which I would never dare do. It seems conceited and vainglorious. I make plenty of dumb mistakes and I do not want to make them right above a picture of Niels Henrik Abel. I chose my own avatar specifically to get as far as possible from that:

A potato
A screenshot of a Math.SE post,
with my name and potato avatar at the lower-right corner

I think this is hilarious.

Subject: App update schedule
Path: you​!your-host​!warthog​!mechanical-turk​!berserker​!plovergw​!plovervax​!shitpost​!mjd
Date: 2018-05-26T23:49:44
Message-ID: <>
Content-Type: text/shitpost

A few months ago I noticed that they keyboard app on my Android phone was getting slower and slower. Every time I wanted to type something, I would have to wait a couple of seconds for the keyboard to pop up. And it kept getting updated with new awesome bells and whistles. Oh boy, a button for automatically inserting an animated gif, <sarcasm>what a great idea </sarcasm>! Oh boy, today it's taking up precious screen real estate to show me the Google Doodle of the Day.

Fortunately there is an option to revert the app back to the pre-installed version. I did that and right away it was faster! There was one feature that I used that it lost, but I don't remember what it was, so it couldn't have been important. My keyboard app is now 19 weeks behind and everything is much better.
The keyboard pops up right away, evey time! As Geoff Pullum observed so long ago, “upgrade” actually means “downgrade”.

I also stopped updating any app I don't actually use. Obviously updating such was never more than a waste of time, but there is an additional benefit to not doing it. Updates might add useful features or perhaps even performance improvements (ha) but they might also add changes that the owner considers a feature that have negative value for me, such as enhanced passive snooping. If I don't use the app, the useful features have no value. Perhaps I can't get the app off my phone entirely (why the hell not?), but at least I can prevent the owner from enhancing their passive snooping.

I do tolerate the awful Uber app on my phone, just barely. But

[ Author's note: I forgot I had been writing this, but it popped up when I was about to publish the following post, three weeks later. Okay! I think I will finish the thought: The Uber app gets slower and worse and less reliable with every update, and since the first version I downloaded does what I want, namely, call Ubers, I see no reason to update it. Every update makes it more likely that it will fail at a crucial moment. So I downloaded it once onto my current phone, and never since then. It's probably been spying on me since I got it, because Uber is evil, but at least I have opted out of any new spying that they have thought of since then. ]

Subject: Today in Internet advertising
Path: you​!your-host​!walldrug​!epicac​!thermostellar-bomb-20​!twirlip​!am​!plovergw​!shitpost​!mjd
Date: 2018-05-25T16:03:54
Message-ID: <>
Content-Type: text/shitpost

Screengrab of an internet
sidebar ad that asks “Do You Live In Philadelphia And Need An Asian
Beauty In Your Life?”

The obnoxious French knight from
_Monty Python and the Holy Grail_, making an insulting gesture, and

Subject: Cautionary tale about pseudonyms
Path: you​!your-host​!walldrug​!epicac​!goatrectum​!plovergw​!shitpost​!mjd
Date: 2018-05-22T21:45:11
Message-ID: <>
Content-Type: text/shitpost

In the 1960s my grandparents were involved in the (successful!) effort to integrate the public elementary schools in Teaneck, NJ. One of their most virulent opponents was a man named Warner. (My grandfather said “as I remember all the time that Harry Warner was complaining against busing, he sent his kid to a private school way up county where he had to be bused every day.”) My grandmother was a writer, and one way she dealt with her feelings about Mr. Warner was to go home and write a detective story in which Warner was the murder victim.

So as not to invite further attention from this vicious and bitter man, she changed the character's name to Wagner, or Wapner, or something of that sort.

But when the story was published, her editor, without informing her, changed the victim's name to “Warner”. When my grandmother saw it in print, she was appalled.

Fortunately nothing ever came of it. But my grandmother told me that she had learned her lesson. “If you want to disguise the name of someone named Warner,” she said “you don't change it to Walker; you change it to Brzezinski.”

Subject: Philadelphia street tree streets
Path: you​!your-host​!wintermute​!hardees​!m5​!plovergw​!plover​!shitpost​!mjd
Date: 2018-05-21T19:45:30
Message-ID: <>
Content-Type: text/shitpost


Philadelphia's east-west streets are famously named for trees, ever since the time the city was planned by William Penn in the 1680s. Chestnut, Walnut, Locust, Spruce, and Pine are major streets. Race Street was formerly named Sassafras, and Arch used to be Mulberry. South Street was formerly Cedar, and in West Philadelphia the street at that position is still Cedar. West Philadelphia also has Osage and Larchwood Avenues.

My previous shitpost depicted a spruce tree, at the intersection of 45th and Pine Street. There are some osage trees near where I live, but none of them is on Osage Avenue. I know where there are some cedar trees, but they're on Spruce. I know where there are some other spruce trees, but they're on Pine. There are a bunch of mulberry trees, but they are all on Ludlow. (There used to be some on 46th but they were cut down.) My courtyard has eight big locust trees, but it is not on Locust Street; it is between Spruce and Pine.

I don't think there are any walnut or chestnut trees at all. Most of the trees around here are London Plane trees and we have no Plane Street and no Sycamore Street.



Subject: Spruce hats
Path: you​!your-host​!wintermute​!wikipedia​!uunet​!asr33​!kremvax​!hal9000​!plovergw​!shitpost​!mjd
Date: 2018-05-21T19:24:13
Message-ID: <>
Content-Type: text/shitpost

On the corner of 45th and Pine Street is this tree:

Closeup of
branches of a small spruce tree.  The clusters of fresh green needles
have small golden-brown covers on their ends.

The new tufts of needles grow out of the twigs with these little protective hats on them. Once the tufts are all the way out, the hats fall off.

Note that despite the location, this is not a pine, but a spruce. Spruce street is one block over.

Subject: Well okay then!
Path: you​!your-host​!wintermute​!uunet​!asr33​!gormenghast​!extro​!central-scrutinizer​!fpuzhpx​!plovergw​!shitpost​!mjd
Date: 2018-05-21T18:51:48
Message-ID: <>
Content-Type: text/shitpost

So I was out in Cleveland last week looking for breakfast, and there was this place in Public Square that I was about to go into, but it had this on the door:

A glass restaurant door with the

That seemed to me to be clear a signal as any that they wanted someone else's business and not mine, so I took the hint and ate at the anti-vaxxer place down the street.

Subject: Mysterious markings on my Water-Pik
Path: you​!your-host​!walldrug​!prime-radiant​!skordokott​!mechanical-turk​!berserker​!plovergw​!shitpost​!mjd
Date: 2018-05-21T18:47:39
Newsgroup: talk.mjd.water-pik
Message-ID: <>
Content-Type: text/shitpost

Here are the volume graduations on the tank of my Water-Pik:

The graduations are in two
columns.  The left column is marked ‘OZ.' and contains the numbers 19,
16, 12, 9, 6; the right column is marked ‘ML.’ and contains the
numbers 600, 500, 400, 300, 200, 100.

Now what is going on here?

I measured the heights of the marks in pixels in the photo:

A smaller part of the same
picture, this time with perfectly horizontal yellow and orange lines
drawn across it at the same heights as the graduations.

 600 1094
19  963
 500 838
16  707
 400 590
12  456
 300 335
9  199
 200 86
6  -50

Then I ran linear regressions.

For the milliliters values, the line is $$\text{px} = 2.59\text{ ml } -419$$ with a correlation of 99.9988%. Fair enough.

For the ounces values, the line is $$\text{px} = 76.5\text{ oz } -495$$ with a 99.86% correlation. That slope of !!76.5\frac{\text{px}}{\text{oz}}!! is exactly the same as the !!2.59\frac{\text{px}}{\text{ml}}!! slope in the previous line. If we correct the two suspicious ounce numbers from 16 and 19 to 15 and 18, the correlation goes up to 99.9988% but the slope increases to !!84.5\frac{\text{px}}{\text{oz}}!!.

I guess the next step would be to measure the amounts but

Addendum: That's the point at which I lost interest and broke off mid-sentence. It's now about 24 hours later and I've decided to publish what I have.


Subject: The imperative mood
Path: you​!your-host​!walldrug​!kremvax​!hal9000​!plovergw​!shitpost​!mjd
Date: 2018-05-20T18:08:13
Newsgroup: comp.lang.haskell.imperative-mood
Message-ID: <>
Content-Type: text/shitpost

A placard that says

Subject: The imperative mood
Path: you​!your-host​!wintermute​!wikipedia​!uunet​!asr33​!kremvax​!hal9000​!plovergw​!plovervax​!shitpost​!mjd
Date: 2018-05-20T18:03:51
Newsgroup: talk.mjd.imperative-mood
Message-ID: <>
Content-Type: text/shitpost

A window sign that says