December 19, 2025

Facebook and the creation of the cancel culture

“Dudley Newright” wrote on X:

I was there, in the 2010s, when they stopped hiring white guys. I worked for a big media company in the big city. Terrible pay, but fun to hang out with creative types all day. Everyone was white.

One day one of us wrote a snarkier headline than our usual fare. The piece triggered huge engagement from angry boomer conservatives. Where were they coming from? Facebook, it turned out.

Yarvin traces “woke” to a mutation of Protestantism. Others place it at the feet of Marx or Foucault or the Frankfurt School. I blame Mark Zuckerberg.

Facebook was becoming something more than just a place to look at your buddy’s new girlfriend’s beach vacation pics. They had just IPO’d, and in order to keep growing they had to be a site you’d want to check when you woke up, on your lunch break, or for hours at a time. The “newsfeed” was already years old, but it was evolving from a collection of updates from your friends – people you actually knew IRL – to ALL news.

Facebook was not just a site that you’d visit, but THE site, an always-on portal to the rest of the internet. Before that, people used to actually type “gawker dot com” into their browser’s address bar and then peruse a listing of the most recent posts. Now, all content discovery was starting to happen via social feeds, like the one you’re looking at right now. Back then, it was happening mostly through Facebook, which controlled the biggest feed by far.

We writers knew that it was a losing game in the long term. We knew ad-supported media was a race to the bottom, but if you could please this thing we were starting to call “The Algorithm,” you could get millions of hits and a fat performance bonus for your story.

So hundreds of 20-somethings in Brooklyn began writing with the goal of trolling Facebook boomers to harvest their attention for ad revenue. Every site quickly became a politics site. If you were writing about tech or sports or celeb gossip or your first period (Teen Vogue), you had to be pushing at the boundaries of what older heartland dwellers found acceptable, so that they would flip out, leave a comment, and juice The Algorithm. A new ideologically-driven class of jumped up millennial journalists figured out that they could make a little money condemning and ridiculing their parents. They weren’t earning enough to establish themselves as adults, but they were “making an impact.”

Before this, your mother-in-law in Boise probably did not care much about politics. She just wanted to look at her niece’s baby pics. But Zuckerberg made her look at ten ragebait articles to do so. And after 20 years of this, she’s now a psychotic libtard. Now everyone’s psychotic about politics. Thanks, Mark.

Quite suddenly, every person in the developed world was exposed to a firehose of the political opinions of a few hundred Brooklynite hipsters with pretty fringe politics, all trying to outdo each other in how provocative they could be, because their rent depended on it.

It’s not like sensationalist news didn’t exist before, but this content flooded the feed so comprehensively that it was all you’d ever see. You weren’t looking at the front page of a newspaper with a bunch of carefully arranged stories intended to represent a broad look at current events anymore, you were getting drip fed the most unhinged content – one insane take after another. And if you were a normie, you internalized this, and began to see this extreme brand of politics as far more normative than it actually was, because it was all you and everyone else were seeing online. Thanks Mark!

This is when the deranged headlines began to appear ("Inspiring: Area Mom Holds Inclusive Beauty Pageant for Queer Toddlers"). A slew of clickbaity media startups (Mic, Buzzfeed, Daily Dot, Mashable) arose to exploit what was essentially a temporary infinite money glitch enabled by Facebook. Legacy media companies had to start playing the game too, lest they lose their audiences to edgier platforms.

One of the most reliable ways to get a ton of traffic was to “call out” an organization for not being sufficiently down with the cause. The massive global scale that Facebook had enabled made cancellations a bread-and-butter content genre. A new class of op-ed writers styling themselves as influencers created a new news beat, calling out organizations of all types for not being sufficiently down with the progressive cause. They even called out their own companies’ leadership, and for the first time, got away with it. A decade prior they would have just fired your ass. But the leadership of these companies shrugged their shoulders and let the kids run wild because the money was pouring in and they didn’t want to be the ones to get got.

As this escalated, it became increasingly untenable from an optics perspective for media companies to maintain majority-white-male staff when they were so busy calling everything out. It looked better to hire women to call out men, and blacks to call out whites. It wasn’t an official meeting, or an articulated directive, it was an off-hand comment made by an editor: “We gotta get some women in here, lol.” Then, “we gotta get some POC in here, lol.” Increasingly nervous laughter.

Almost overnight, nobody wanted to run an office with the “About Us” page featuring nothing but a bunch of crusty, musty white guys. You didn’t have to be the most diverse group, but you couldn’t put a target on your back by being the least. And then once HR hired a few nons, they didn’t want to be accused of bringing in a few tokens just for plausible deniability. So they hired more.

It was an especially cheap and effortless hack for media companies to do this because tons of VC dollars were sloshing around to try to capture all that Facebook traffic. The money flowed and the ratchet turned. Soon other industries with highly-educated, oversocialized employees likely to care about progressive issues – academia, Hollywood, tech – followed suit.

At first it was just blatantly discriminatory hiring practices ("C’mon HR, chill with the white guy resumes,” and within a few years it was institutionalized in fellowships, mentorships, employee resource groups – an entirely new HR superstructure built up with the implicit, and in some cases explicit, goal of de-centering the voices of creative-ass white boys. Everything in Jacob Savage’s viral essay about this is true, and it all shifted over the course of about a year. Everyone knew it was happening and either thought white guys had it coming, or didn’t dare protest for fear of total career annihilation.

At every step, the (white) leadership of these companies let the kids run wild, because the money was rolling in, and it wasn’t hurting the quarterly earnings report (yet). They knew they’d face annoying PR and legal problems if they fought it, so they let the ratchet turn. At every step, they did the math that it would be less risky to let the insane leftist egregore have a small bite of their company. Most of these brands have since been sold and re-sold and stripped for parts btw. It wasn’t just the abandonment of merit-based hiring that killed these companies – the Facebook money spigot couldn’t flow forever – but it didn’t help.

I remember visiting a media company around 2015 that was very “hot” at the time, and the news floor was a sea of very young and hip-looking faces, mostly women and POC. Every once in a while a Steve Ballmer-looking guy in pleated khakis would emerge grinning from a corner office for a coffee refill. He’d peer out over the open-plan desks and hear fingers busily tapping on Macbooks. I sometimes wonder if that guy was smiling because he took pride in being a force for change, or if he was just waiting out the clock, and thinking about that lakehouse on Zillow.

* * *

My favorite memory from this era is this picture of a dozen white women, which was tweeted out in 2016 with the caption: “Notice anything about this Huffington Post editors meeting? πŸ’ƒπŸ’ƒπŸ’ͺ🏼πŸ’ͺ🏼” 

Some poor girl thought this was going to be an iconic image of a bold new media era, where finally women would have a voice, only for it to be roundly ridiculed across dozens of thinkpieces for not including enough POC.



September 15, 2025

JD Vance: Charlie Kirk’s murder and the call for unity

Shortly after Usha and I left Charlie’s family and Charlie’s remains in Arizona, I read a story in The Nation magazine about my dear friend Charlie Kirk. Now, The Nation isn’t a fringe blog. It’s a well funded, well respected magazine whose publishing history goes back to the American Civil War. George Soros’s Open Society Foundation funds this magazine, as does the Ford Foundation and many other wealthy titans of the American Progressive Movement. The writer [Elizabeth Spiers] accuses Charlie of saying, and I quote, “Black women do not have the brain processing power to otherwise be taken seriously.” But if you go and watch the clip, the very clip she links to, you realize he never said anything like that. He never uttered those words. He made an argument against affirmative action as a policy. He criticized a specific Supreme Court justice as an individual. He never said anything about black women as a group. He made an argument for judging people of all races and backgrounds by their own individual merits. The very evidence she provides, this hack of a writer, shows that she lied about a dead man. And yet she wrote it. An esteemed magazine published it. It made it through the editors. And of course, liberal billionaires rewarded that attack.

Of course, even if Charlie had uttered those words, it wouldn’t mean that he deserved his fate. But consider the level of propaganda at work. Charlie was gunned down in broad daylight. And well funded institutions of the left lied about what he said so as to justify his murder. This is soulless and evil. But I was struck not just by the dishonesty of the smear, but by the glee over a young husband’s and young father’s death. “He was an unrepentant racist, transphobe, homophobe, and misogynist, The Nation wrote, “who often wrapped his bigotry in Bible verses because there was no other way to pretend that it was morally correct. He had children, as do many vile people.” That’s what they said. He had children, as do many vile people.” ...

I have heard many calls in the last few days for unity and for healing in the wake of Charlie’s assassination. You have no idea how desperately I want that, how gratified I was when Democratic friends and even former Senate colleagues reached out to offer their condolences to me. I’m so thankful and I know there are so many like them all across our great country. I am desperate to wrap my arms around them as we all unite to condemn political violence and the ideas that cause it. Psalm 133 tells us, “Behold, how good and how pleasant it is for brethren to dwell together in unity. It is like the precious ointment upon the head.” Oh, how badly have I craved that precious ointment in recent days. And I believe we can have it. But first, first we must tell the truth. It’s the only way to honor Charlie. ...

I really do believe that we can come together in this country. I believe we must. But unity, real unity can be found only after climbing the mountain of truth. And there are difficult truths we must confront in our country. One truth is that 24% of self-described ‘very liberals’ believe it is acceptable to be happy about the death of a political opponent, while only 3% of self-described ‘very conservatives’ agree. 3% is too many, of course.

Another truth is that 26% of young liberals believe political violence is sometimes justified, and only 7% of young conservatives say the same. Again, too high a number. ...

The data are clear. People on the left are much likelier to defend and celebrate political violence. This is not a both sides problem. If both sides have a problem, one side has a much bigger and malignant problem. And that is the truth. ... The data are clear. People on the left are much likelier to defend and celebrate political violence. This is not a both sides problem. If both sides have a problem, one side has a much bigger and malignant problem. And that is the truth we must be told.

That problem has terrible consequences. The leader of our party, Donald J. Trump, escaped an assassin’s bullet by less than an inch. Our House Majority Lever, Steven Scalise, came within seconds of death by an assassin himself. And now, the most influential conservative activist in generations, our friend Charlie, has been murdered. This violence, it doesn’t come from nowhere. Now, any political movement, violent or not violent, is a collection of forces. It’s like a pyramid that stacks on top, one support on top of the other. That pyramid’s got a foundation of donors, of activists, of journalists, now of social media influencers, and of course, of politicians. Not every member of that pyramid would commit a murder. In fact, over 99% I’m sure would not. but by celebrating that murder, apologizing for it, and emphasizing not Charlie’s innocence, but the fact that he said things some didn’t like, even to the point of lying about what he actually said. Many of these people are creating an environment where things like this are inevitably going to happen.

A couple of months ago, I had landed a fundraiser in Southern California. And since, you know, we’d be out there anyways, my wife and I decided to take our kids to Disneyland one weekend. We had fun and to be clear, most of the guests said very nice things or they just left us alone. But there was a loud and very cruel minority that would shout at my children – who were 8, 5, and 3 – whenever they got the opportunity. “You should disown your dad, you little shit,” one middle-aged woman yelled at my 5-year-old. “Tell the Secret Service to protect the Constitution, not your father,” screamed another. Are these women violent? Probably not. Are they deranged? Certainly. And while our side of the aisle certainly has its crazies, it is a statistical fact that most of the lunatics in American politics today are proud members of the far left.

After Charlie died, one of his friends and one of our senior White House staffers had left-leaning operatives in his neighborhood passing out leaflets telling people what he looked like and where he lived, encouraging neighbors to harass him, or god forbid to do worse. While he was mourning his dead friend, he and his wife had to worry about the political terrorists drawing a big target on the home he shares with his young children. Are these people violent? I hope not. But are they guilty of encouraging violence? You damn well better believe it.

We can thank God that most Democrats don’t share these attitudes. And I do – while acknowledging that something has gone very wrong with a lunatic fringe, a minority, but a growing and powerful minority, on the far left. There is no unity with people who scream at children over their parents’ politics. There is no unity with someone who lies about what Charlie Kirk said in order to excuse his murder. There is no unity with someone who harasses an innocent family the day after the father of that family lost a dear friend. There is no unity with the people who celebrate Charlie Kirk’s assassination. And there is no unity with the people who fund these articles, who pay the salaries of these terrorist sympathizers, who argue that Charlie Kirk, a loving husband and father, deserved a shot to the neck because he spoke words with which they disagree.

Did you know that the George Soros Open Society Foundation and the Ford Foundation, the groups who funded that disgusting article justifying Charlie’s death, do you know they benefit from generous tax treatment? They are literally subsidized by you and me, the American taxpayer. And how do they reward us? By setting fire to the house built by the American family over 250 years.

I am desperate for our country to be united in condemnation of the actions and the ideas that killed my friend. I want it so badly that I will tell you a difficult truth. We can only have it with people who acknowledge that political violence is unacceptable and when we work to dismantle the institutions that promote violence and terrorism in our own country. Our government ... will be working very hard to do exactly that in the months to come. ... I promise you that we will explore every option to bring real unity to our country and stop those who would kill their fellow Americans because they don’t like what they say.

But you have a role, too. Civil society, Charlie understood this well, is not just something that flows from the government. It flows from each and every one of us. It flows from all of us. So when you see someone celebrating Charlie’s murder, call them out. And hell, Call their employer. We don’t believe in political violence, but we do believe in civility. And there is no civility in the celebration of political assassination.

Get involved. Get involved. Get involved. It’s the best way to honor Charlie’s legacy. Start a chapter of TPUSA or get involved in the one that already exists. If you’re older, volunteer for your local party. Write an op-ed in your local paper. Run for office.

I can’t promise you this is going to be easy. I can’t promise you that all of us will avoid Charlie’s fate. I can’t promise you that I will avoid Charlie’s fate. But the way to honor him is to shine the light of truth like a torch in the very darkest places. Go do it. We owe it to our friend to ensure that his killer is not just prosecuted, but punished. And the worst punishment is not the death penalty, but the knowledge that Charlie’s mission continues after he’s gone. St. Paul tells us in the book of Ephesians to put on the full armor of God. Let all of us put on that armor and commit ourselves to that cause for which Charlie gave his life to rebuild a United States of America. And to do it by telling the truth.

The Charlie Kirk Show, September 15, 2025, hosted by Vice President JD Vance

September 4, 2025

Medicare: a concise guide

“Original” Medicare is composed of Parts A and B and is part of Social Security. You may defer receiving Social Security until you’re 67, say, or even older, but you have to sign up for Medicare Part A around the month of your 65th birthday (from the 3 months before to the 3 months after – better to do it earlier).

Sign up at www.ssa.gov/medicare/sign-up. The application is simple, but first it has you create an account at login.gov, which requires identification verification via cellphone photos of your driver license or passport or at a Post Office. You can sign up to receive your Social Security benefits at the same time (the monthly amount would be less instead of waiting until you’re older).

If you sign up to receive Social Security before you’re 65 (www.ssa.gov/apply), you will be automatically enrolled in Parts A and B when you turn 65.

Part A covers hospitalization, skilled nursing care, and hospice for 60 days after a deductible ($1,676 in 2025). After 60 days you pay $419 per day, after 90 days $838, and after 150 days everything. The 60-day deductible resets after you’ve been out of the hospital etc. for 60 days.

Part A has no premium if you’ve paid into Social Security for at least 10 years.

Part B helps cover outpatient care, doctor’s charges in a hospital, home health care, durable medical equipment, and some preventive services. It pays 80% of most charges (and 100% of some lab services and home health care) after an annual deductible ($257 in 2025).

There is a premium for Part B. In 2025, it's $185 per month if your income is $106,000 (or $212,000 for joint tax returns) or less. The premium increases with higher income, as well as if you don’t sign up for it when you’re 65. If you are receiving Social Security, the Part B premium is taken out of your monthly check.

More information about costs is available at <a href="https://www.medicare.gov/basics/costs/medicare-costs">https://www.medicare.gov/basics/costs/medicare-costs</a>.

Then there are the add-ons, which add substantially to your monthly premium. They are all are provided by private insurers, and the range of choices can be complicated to wade through. An insurance broker may be helpful.

Part D was added to cover drugs. Medigap (Medicare Supplement Insurance) was added to cover what Part B doesn’t, and Part C (Medicare Advantage) was added to bundle Parts A, B, and D, fill in gaps, and cover other services (eg, dental, eye, hearing care).

The premium for Part D increases if you don’t sign up for it when you sign up for Parts A and B. (And that would also apply if you sign up later for an Advantage plan that includes it.) After you’ve signed up for Medicare Parts A and B, you can enroll in or change an Advantage plan at any time every year from October 15 to December 7.


August 13, 2025

Thousands of requests from a thousand Automattic IPs for one Wordpress feed widget

A web site I manage has been frequently overloaded by thousands of the same requests from about a thousand Automattic IPs (192.0.64.0–192.0.127.255; Automattic owns Wordpress) for a feed requested via a Wordpress widget on a site hosted at Wordpress.com. The load can be several thousand identical requests per hour. Example request:

"GET /news/feed/ HTTP/1.1" 304 - "https://www.xyz.org/news/feed/" "WordPress.com; https://abc1.com" 

Most of the reply codes are 304 (not updated), so it doesn't actually cause the feed to be generated anew, but even so the load is often noticeable (and seems totally unnecessary). 

There is another Wordpress site with a widget for a feed, and it too makes a lot of requests, but from only one IP and not as many (which may of course simply reflect the popularity of the 2 sites as well as the hosting set-up). Example:

"GET /news/category/scotland/feed/ HTTP/1.1" 304 - "-" "WordPress/6.8.2; https://abc2.org" 

Curiously, the Wordpress.com requests include our site as the referer. They explained that as something the Simplepie feed parser, which they use, does, although the WordPress/6.8.2 agent doesn't do so.

There are a couple of other Automattic/Wordpress fetches that occasionally appear:

"GET /news/feed/ HTTP/1.1" 200 54932 "https://www.xyz.org/news/feed/" "Automattic Feed Fetcher 1.0"

"GET /news/feed/rss2/ HTTP/1.1" 301 - "https://www.xyz.org/news/feed/rss2/" "Automattic Feed Fetcher 1.0" (redirected to /news/feed/)

"GET /news/feed/ HTTP/1.1" 200 54932 "https://www.xyz.org/news/feed/" "wp.com feedbot/1.0 (+https://wp.com)" 

Another fetcher, Inoreader, adds not the feed URL but the domain root as referer:

"GET /news/feed/ HTTP/1.1" 304 - "https://www.xyz.org/" "Inoreader/1.0 (+http://www.inoreader.com/feed-fetcher; x subscribers; )"

Back to the original issue, after much discussion with Wordpress.com it’s clear that they don’t see any problem with their 1,000 IPs repeatedly making the same exact request. So the only answer was to increase caching, which does seem to have helped relieve the load.

First, I added this to the Apache config file:

<Location "/home/xyz/public_html/news/feed/">
    <IfModule mod_headers.c>
        Header unset ETag
        Header unset Vary
        Header append Vary: Accept-Encoding
        Header set Cache-Control "max-age=86400, public"
    </IfModule>
    FileETag None
</Location>
<Location "/home/xyz/public_html/news/category/scotland/feed/">
    <IfModule mod_headers.c>
        Header unset ETag
        Header unset Vary
        Header append Vary: Accept-Encoding
        Header set Cache-Control "max-age=86400, public"
    </IfModule>
    FileETag None
</Location>

(86,400 seconds is 1 day.) That probably duplicates the following, but I have them both:

<IfModule mod_headers.c>
    Header unset ETag
    Header unset Vary
    Header append Vary: Accept-Encoding
    <FilesMatch "\.(rss|txt|xml)$">
        Header set Cache-Control "max-age=86400, public"
    </FilesMatch>
</IfModule>

The following was already in the config file, but I increased the expiry times to match the above:

<IfModule mod_mime.c>
    AddType application/rss .rss
    AddType application/rss+xml .rss
</IfModule>
<IfModule mod_expires.c>
    ExpiresByType application/rss A86400
    ExpiresByType application/rss+xml A86400
</IfModule>

Finally, I increased the expiry time for the WP Super Cache plug-in to 86,400 as well.

See also:  Thousands of spurious requests to Mediawiki pages

August 4, 2025

A brief exchange seen on X regarding “the real” in Palestine

Rupert's Conscience @RupertsConscie1:

What struck me at #MarchforHumanity was the awesome diversity of Sydney. Friendly eye contact, nods, talk between people of every age, ancestry, gender, families, couples, friends etc interacting in harmony & happiness. The LNP have abandoned this πŸ‡¦πŸ‡Ί They've abandoned the real πŸ‡¦πŸ‡Ί

El Rucio @ElRucioDos:

United in antisemitism. Beautiful.

Elizabeth Attard @ElizabethAttar5:

WAKE UP ANTI ZIONIST IS NOT ANTI SEMITISM - THE FEDERAL COURT OF AUST HAS MADE THIS LAW! STOP YOUR LYING. ISRAEL WHO ARE NOT EVEN SEMITES ARE THE WORST ANTI SEMITES AS THEY ARE MASS MURDERING THE REAL SEMITES - THE PALESTINIANS - TO STEAL ALL THEIR LANDS TO FORM "GREATER ISRAEL"

El Rucio @ElRucioDos:

Most Gazans came from elsewhere in the Ottoman Empire, eg, Bosnia and Circassia, as it shrank in the 19th century. Most Israelis came from Arab countries where they had lived for millennia and from which they were expelled in the 20th century.

Of note regarding "occupation", the region of Palestine was occupied by the Ottoman Empire for 400 years, and before that by several other empires. The kingdoms of Judah and Israel were established about 3200 years ago.

Further regarding occupation: How did this mosque in Jerusalam come to be built in the middle of Judean King Herod's temple?

See also: “A Brief History of Palestine Since World War I

June 26, 2025

Thousands of spurious requests to Mediawiki pages

A web site I manage was being repeatedly thrashed by thousands of elaborate Mediawiki requests, for example, “GET /w/index.php?from=20250425004824&fromFormatted=00%3A48%2C+25+April+2025&hidebots=0&returnto=Special%3ARecentChangesLinked&returntoquery=days%3D3&target=Wind_turbine&title=Special%3AUserLogin”.

First, I added the “Lockdown” plugin to limit access to several “Special” pages and actions to logged-in users (even though that wasn't actually the problem, but I came across the plugin while setting about to solve it).

Second, because the wiki has almost no users, I blocked all requests with “Special” in the query part of the request except from the server IP itself and the IPs of the few users by adding the following to the htaccess file. (“Special” pages themselves are in the main request, for example, “/wiki/Special:Search” — also, as far as I understand it, only the server rewrites requests to “/w/…”.)

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !xxx.xx.xx.xxx
RewriteCond %{REMOTE_ADDR} !xx.xxx.xxx.xx
RewriteCond %{QUERY_STRING} Special [NC]
RewriteRule (.*) - [R=403]

Unfortunately, for reasons I don’t know, that didn’t work. So I added another set of Rewrite commands, along the lines of:

RewriteCond %{THE_REQUEST} \s/w/
RewriteCond %{THE_REQUEST} Accesskey
RewriteRule ^.+$ - [R=403,L]

That is repeated for several other key words: Action, ApiHelp, Badtitle, Category_talk, diff, fromFormatted, limit, PrefixIndex, RecentChangesLinked, returntoquery, Wikieditor, wpFormIdentifier.  

Then, the big task: Almost all of the requests were from Chinese IP addresses, and even though the above directive blocked the requests, they were still coming in and still tying up the server. They turned out to be all from China Mobile, China Unicom, and China Telecom (Chinanet). After a couple weeks of toil looking up every IP and blocking their ranges, the server load is quiet again (until the next wave). In case anyone else wants to block them, below are the IP ranges (as of the time of writing this) that I put together. They are certainly not complete, but they include the IPs that were bothering the site.

# China Mobile Communications
Require not ip 36.128.0.0/10
Require not ip 39.128.0.0/10
Require not ip 111.0.0.0/10
Require not ip 112.0.0.0/10
Require not ip 117.128.0.0/10
Require not ip 120.192.0.0/10
Require not ip 122.90.0.0/15
Require not ip 183.192.0.0/11
Require not ip 183.224.0.0/12
Require not ip 211.138.64.0/20
Require not ip 223.64.0.0/11
Require not ip 223.96.0.0/12
Require not ip 223.112.0.0/14
Require not ip 223.116.0.0/15
Require not ip 223.122.0.0/17

# China Unicom
Require not ip 1.24.0.0/13
Require not ip 1.56.0.0/13
Require not ip 1.80.0.0/13
Require not ip 1.188.0.0/14
Require not ip 1.192.0.0/14
Require not ip 14.144.0.0/12
Require not ip 14.204.0.0/15
Require not ip 27.36.0.0/15
Require not ip 27.40.0.0/14
Require not ip 27.184.0.0/13
Require not ip 27.192.0.0/11
Require not ip 39.64.0.0/11
Require not ip 42.52.0.0/14
Require not ip 42.176.0.0/13
Require not ip 42.224.0.0/12
Require not ip 58.16.0.0/16
Require not ip 58.19.0.0/16
Require not ip 58.240.0.0/15
Require not ip 58.248.0.0/13
Require not ip 60.0.0.0/13
Require not ip 60.7.0.0/14
Require not ip 60.13.0.0/13
Require not ip 60.20.0.0/14
Require not ip 60.208.0.0/13
Require not ip 60.216.0.0/15
Require not ip 60.220.0.0/14
Require not ip 61.138.0.0/18
Require not ip 61.179.0.0/16
Require not ip 61.180.128.0/17
Require not ip 61.240.0.0/14
Require not ip 101.16.0.0/12
Require not ip 101.64.0.0/13
Require not ip 101.204.0.0/14
Require not ip 110.52.0.0/15
Require not ip 110.240.0.0/12
Require not ip 112.80.0.0/13
Require not ip 112.94.0.0/16
Require not ip 112.122.0.0/15
Require not ip 112.192.0.0/14
Require not ip 112.224.0.0/11
Require not ip 113.0.0.0/13
Require not ip 113.58.0.0/16
Require not ip 113.59.0.0/17
Require not ip 113.194.0.0/15
Require not ip 113.200.0.0/15
Require not ip 113.224.0.0/12
Require not ip 114.240.0.0/12
Require not ip 115.48.0.0/12
Require not ip 116.2.0.0/15
Require not ip 116.128.0.0/10
Require not ip 118.72.0.0/13
Require not ip 118.80.0.0/15
Require not ip 119.39.0.0/16
Require not ip 119.48.0.0/13
Require not ip 119.62.0.0/16
Require not ip 119.108.0.0/15
Require not ip 119.112.0.0/13
Require not ip 119.176.0.0/12
Require not ip 119.248.0.0/14
Require not ip 120.0.0.0/12
Require not ip 120.80.0.0/13
Require not ip 121.16.0.0/13
Require not ip 121.24.0.0/14
Require not ip 122.136.0.0/13
Require not ip 122.156.0.0/14
Require not ip 122.188.0.0/14
Require not ip 123.4.0.0/14
Require not ip 123.8.0.0/13
Require not ip 123.138.0.0/15
Require not ip 123.152.0.0/13
Require not ip 123.188.0.0/14
Require not ip 123.232.0.0/14
Require not ip 124.89.0.0/17
Require not ip 124.93.0.0/16
Require not ip 124.128.0.0/13
Require not ip 124.152.0.0/16
Require not ip 124.163.0.0/16
Require not ip 125.32.0.0/16
Require not ip 125.40.0.0/13
Require not ip 139.170.0.0/16
Require not ip 150.255.0.0/16
Require not ip 153.0.0.0/16
Require not ip 171.34.0.0/15
Require not ip 171.116.0.0/14
Require not ip 171.120.0.0/13
Require not ip 175.16.0.0/13
Require not ip 175.148.0.0/14
Require not ip 175.152.0.0/14
Require not ip 175.160.0.0/12
Require not ip 180.129.128.0/17
Require not ip 180.130.0.0/16
Require not ip 182.88.0.0/14
Require not ip 182.112.0.0/12
Require not ip 183.92.0.0/14
Require not ip 183.184.0.0/13
Require not ip 211.90.0.0/13
Require not ip 218.7.0.0/14
Require not ip 218.28.0.0/15
Require not ip 219.154.0.0/15
Require not ip 219.156.0.0/15
Require not ip 220.192.0.0/12
Require not ip 221.8.0.0/15
Require not ip 221.13.0.0/18
Require not ip 221.14.0.0/15
Require not ip 221.204.0.0/15
Require not ip 221.207.0.0/18
Require not ip 221.208.0.0/15
Require not ip 221.213.0.0/16
Require not ip 222.128.0.0/14
Require not ip 222.136.0.0/13
Require not ip 222.160.0.0/14
Require not ip 223.166.0.0/15


# Chinanet (China Telecom)
Require not ip 14.208.0.0/12
Require not ip 27.16.0.0/12
Require not ip 27.224.0.0/14
Require not ip 36.40.0.0/13
Require not ip 36.48.0.0/15
Require not ip 36.56.0.0/13
Require not ip 36.96.0.0/11
Require not ip 42.88.0.0/13
Require not ip 42.184.0.0/15
Require not ip 42.248.0.0/13
Require not ip 49.64.0.0/11
Require not ip 49.112.0.0/14
Require not ip 49.116.0.0/15
Require not ip 58.44.0.0/14
Require not ip 58.48.0.0/13
Require not ip 58.208.0.0/12
Require not ip 59.32.0.0/13
Require not ip 59.40.0.0/15
Require not ip 59.42.0.0/16
Require not ip 59.52.0.0/14
Require not ip 59.56.0.0/14
Require not ip 59.60.0.0/15
Require not ip 59.172.0.0/14
Require not ip 60.185.160.0/19
Require not ip 61.159.64.0/18
Require not ip 61.186.16.0/22
Require not ip 61.186.20.0/23
Require not ip 106.4.0.0/14
Require not ip 106.8.0.0/15
Require not ip 106.32.0.0/12
Require not ip 106.80.0.0/12
Require not ip 106.112.0.0/13
Require not ip 110.80.0.0/13
Require not ip 110.152.0.0/14
Require not ip 110.166.0.0/15
Require not ip 110.181.0.0/15
Require not ip 110.184.0.0/13
Require not ip 110.228.0.0/14
Require not ip 111.72.0.0/13
Require not ip 111.121.0.0/19
Require not ip 111.172.0.0/14
Require not ip 111.176.0.0/13
Require not ip 111.224.0.0/14
Require not ip 112.66.0.0/19
Require not ip 112.66.32.0/20
Require not ip 112.98.0.0/15
Require not ip 112.100.0.0/14
Require not ip 112.116.0.0/15
Require not ip 113.25.64.0/18
Require not ip 113.26.0.0/18
Require not ip 113.26.192.0/19
Require not ip 113.27.32.0/19
Require not ip 113.64.0.0/11
Require not ip 113.96.0.0/15
Require not ip 113.132.0.0/14
Require not ip 113.218.0.0/15
Require not ip 113.220.0.0/14
Require not ip 113.240.0.0/13
Require not ip 114.224.0.0/12
Require not ip 115.148.0.0/14
Require not ip 115.209.32.0/19
Require not ip 115.212.0.0/16
Require not ip 115.213.0.0/17
Require not ip 116.16.0.0/12
Require not ip 116.208.0.0/14
Require not ip 116.248.0.0/15
Require not ip 117.22.0.0/15
Require not ip 117.24.0.0/13
Require not ip 117.32.0.0/13
Require not ip 117.60.0.0/14
Require not ip 117.80.0.0/12
Require not ip 118.112.0.0/15
Require not ip 118.213.32.0/22
Require not ip 118.248.0.0/13
Require not ip 119.0.192.0/19
Require not ip 119.1.64.0/19
Require not ip 120.32.0.0/13
Require not ip 120.40.0.0/14
Require not ip 121.32.0.0/14
Require not ip 121.204.0.0/14
Require not ip 122.233.128.0/17
Require not ip 122.224.0.0/12
Require not ip 123.52.0.0/14
Require not ip 123.149.0.0/24
Require not ip 123.168.0.0/14
Require not ip 123.172.0.0/14
Require not ip 123.180.0.0/14
Require not ip 123.244.0.0/14
Require not ip 124.72.0.0/16
Require not ip 124.112.0.0/15
Require not ip 124.114.0.0/15
Require not ip 124.228.0.0/14
Require not ip 124.234.0.0/15
Require not ip 124.236.0.0/14
Require not ip 125.64.0.0/13
Require not ip 125.78.0.0/16
Require not ip 125.79.0.0/16
Require not ip 125.80.0.0/13
Require not ip 125.88.0.0/13
Require not ip 125.104.0.0/13
Require not ip 125.114.128.0/17
Require not ip 140.240.0.0/16
Require not ip 140.255.0.0/16
Require not ip 144.7.0.0/17
Require not ip 144.12.0.0/16
Require not ip 171.8.0.0/13
Require not ip 171.40.0.0/13
Require not ip 171.80.0.0/14
Require not ip 171.88.0.0/13
Require not ip 171.104.0.0/13
Require not ip 171.112.0.0/14
Require not ip 171.208.0.0/12
Require not ip 175.0.0.0/12
Require not ip 175.30.0.0/15
Require not ip 180.96.0.0/11
Require not ip 182.32.0.0/12
Require not ip 182.84.0.0/14
Require not ip 182.96.0.0/12
Require not ip 182.128.0.0/12
Require not ip 182.144.0.0/13
Require not ip 182.200.0.0/13
Require not ip 182.240.0.0/13
Require not ip 183.0.0.0/10
Require not ip 183.128.0.0/12
Require not ip 183.148.0.0/24
Require not ip 183.154.0.0/15
Require not ip 183.160.0.0/13
Require not ip 218.1.0.0/16
Require not ip 218.19.0.0/14
Require not ip 219.147.128.0/17
Require not ip 220.160.0.0/15
Require not ip 220.162.0.0/16
Require not ip 220.167.212.0/22
Require not ip 222.76.0.0/14
Require not ip 222.90.0.0/15
Require not ip 222.208.0.0/13
Require not ip 222.241.56.0/21
Require not ip 223.8.0.0/14
Require not ip 223.144.0.0/12
Require not ip 223.198.0.0/14
Require not ip 223.240.0.0/13

See also:  Thousands of requests from a thousand Automattic IPs for one Wordpress feed widget

June 20, 2025

Nationalist as metaphor: politics of grievance

For Sara, the Northern Irish nationalist had transcended political classification to character type. Although by local definition a nationalist aspired to a united Ireland achieved by peaceful means, Sara had met the Northern nationalist, in a temperamental sense, all over the world, and many samples of the species would mistake Michael Collins for a mixed drink. ...

A nationalist is a Moaning Minnie, a bellyacher. He’s hard done by; he’s been abused and deserves recompense. Yet no matter how many concessions you shovel him, they will never suffice, for all penance is paltry, any attempt at reparation an affront. Like a bunny in a briar patch, he glories in violation. He feels sorry for himself, of course, but this self-pity is competitive; it bristles around rival brands. And it is triumphalist self-pity. A nationalist uses his suffering as a cudgel to beat you over the head. He never does anything wrong himself. And he never shuts up.

While brandishing his minority status, the nationalist runs in packs. Drunk on Dutch courage from his mob, a nationalist is a bully. But he’s never satisfied with merely getting his way; it has to be achieved at your expense. A nationalist is never happy unless he’s making someone else miserable. That said, he’s never happy. The happy nationalist is an oxymoron.

Accordingly, the worst thing you can do with a nationalist is to attempt to give him whatever he claims to want. He may love his children, his parents, his dog – nationalists are people, too — but the one thing that a nationalist loves above all else is his grievance. Any effort to fulfill a nationalist’s ostensible agenda will read as malicious: you are trying to take his grievance away. A nationalist will bite the hand that feeds him.

Nationalists, in this metaphorical sense, were everywhere.

—“The Subletter” by Lionel Shriver, in Property (2018)