For quite a long stretch, every attempt I made to push code to GitHub failed.

I had been blaming it on the Great Firewall doing its usual thing. Since I didn’t have anything especially urgent to commit, I let it slide. At one point I even briefly convinced myself that maybe GitHub had dropped support for Subversion. Then a few days ago, while catching up on old RSS items, I came across the news I had somehow missed: GitHub had stopped allowing password authentication and now required tokens.

So I generated one, and everything went right back to normal.

My apologies to the Great Firewall. I had accused the wrong culprit.

By late October, the city had begun aggressively pushing COVID vaccination for children under 12. At kindergarten and elementary schools, basically every child was expected to get the shot unless they had an official hospital-issued diagnosis for an allergic condition.

My kid’s school sent out a notice on Monday, November 1: the school would bus the children to a designated vaccination site in the district. Parents were told to take time off work and go there themselves on Thursday afternoon, November 4, just to meet up with their child and sign the guardian consent form on site. After the shot, parents were expected to take the child home on their own.

The vaccination site was in a residential area that had only been developed within the last decade. There was only one road in or out, and nowhere to park. Sixth graders were scheduled for 4:30 p.m. — meaning we’d be leaving right into rush hour.

So that entire night was spent wondering how exactly I was supposed to get my child home.

Then at noon the next day, Tuesday, the homeroom teacher dropped a fresh update in the group chat: the schools that had gone on Monday were moving too slowly, so our school no longer fit into Thursday’s schedule. It was postponed to Friday. But Friday’s time was still uncertain, so every family was asked to keep one parent on standby for the entire day.

Then on the afternoon of Thursday, November 4, yet another emergency notice arrived: because COVID cases had appeared in Zhuanghe, the vaccination campaign was canceled.

On Sunday afternoon, November 7, the situation worsened. Someone had slipped back into the city from Zhuanghe, and local transmission had appeared. Multiple residential compounds in the urban area were affected and sealed off. The education bureau sent out another emergency notice: due to “weather conditions,” all primary and secondary schools would be closed for the coming Monday and Tuesday, and students were to study at home.

At the same time, the meteorological department issued warnings for a blizzard, strong winds, and a sharp temperature drop.

Now, the start of winter is already a time when people traditionally eat buns and dumplings.

So by that afternoon, several things had converged at once: winter-start food habits, the outbreak, the incoming blizzard, children suddenly stuck at home, and an already ongoing wave of food hoarding that had never really died down. Around a little after 2 p.m., a video started circulating showing highway entrances being closed for weather reasons. That was enough to push everyone’s fear of a citywide lockdown into overdrive.

Online and offline, large supermarkets were stripped clean. Rice, flour, cooking oil, instant noodles, dried noodles, bread, sausages and jerky, frozen dumplings, tangyuan, wontons, scallion pancakes, even leftover mooncakes from Mid-Autumn that still hadn’t sold — all gone. The little convenience store downstairs had even sold out of spicy peanuts.

Yes, our family joined the panic buying too.

We didn’t manage to get any food, but my wife, unwilling to return empty-handed, came back with four 10-liter containers of purified water.

And to be fair, the weather forecast turned out to be right on the money. A little after 5 p.m. freezing rain started, and by 7 p.m. it had become full-on wind and snow. It kept going all night.

I had never seen snow that heavy while the trees were still holding so many leaves.

At daybreak on November 8, the homeroom teacher issued what felt like Order No. 5 for the month: all students and parents had to complete nucleic acid testing within two days. One look outside at the whiteout and I decided I wasn’t going to the office. Might as well stay home and look after the kid.

The testing site in our neighborhood wasn’t even opening until 10 a.m. By the time I trudged there through snow and slush with my child, there was already a line stretching roughly 200 meters ahead of us. Since pooled testing was being done in groups of ten, I assumed it would move quickly enough, so I let the kid run off to play in the snow while I held our place in line.

Then my wife messaged with fresh instructions: this time they were not checking ID cards. Identity had to be verified by scanning the green health code in the Liaoshitong system. No code, no test. I needed to find the option for entering a dependent’s identity information and generate a QR code for our child.

I looked for five minutes and found nothing.

My wife immediately called me an idiot and sent over a tutorial video link from Douyin.

I called back and said, “You know perfectly well I don’t have it installed, and I don’t have an account.”

That earned me another scolding: “At a time like this, you’re still worried about your mobile data?”

She hung up. I muttered to myself, “It’s not about the data.”

The auntie standing ahead of me in line took pity on me. She pulled up the same tutorial video on her phone and simply handed it over for me to watch.

Step by step, exactly as shown — and still, that menu option just wasn’t there.

Then a helpful police officer nearby, who was maintaining order, said one sentence that solved the whole mystery: “Are you sure you opened the right mini-program? Want to scan it again?”

So I reopened WeChat, found the Liaoshitong mini-program, and from there everything worked.

The conclusion: that function exists in the mini-program version, but not in the app version.

That software really is something.

This new rule requiring QR-code identity verification was a complete nuisance. The line was full of elderly people and children, and there were especially many of the most alarming combination of all: older grandparents who weren’t very good with smartphones, standing in line alone while taking care of kids. So the process was painfully slow. A 200-meter queue may not sound like much, but a lot of people were doing what I was doing — letting the children play in the snow or keeping the elderly in the car out of the wind, while only one representative actually stood in line. By the time it was my turn, two full hours had passed.

I won’t bother going into the broader details of this outbreak. What I know is what everyone else knows from the news, and Zhuanghe is more than 200 kilometers away anyway.

As for the side story about elementary school kids from one school being quarantined in the Shangri-La Hotel, that may be juicy gossip, but it doesn’t add much of practical value.

On the evening of November 9, exactly as expected, all schools were suspended indefinitely. This time they stopped hiding behind “weather reasons.” Because of the recent policy emphasis on reducing academic burdens and cutting down screen time, the municipal education bureau did not impose a uniform citywide online curriculum. Instead, each school was told to create its own teaching plan.

Our school pushed the decision even further down to individual subject teachers. In the morning, teachers would find teaching videos and post them in the group chat. In the evening, each subject teacher held a 30-minute question-and-answer session over Tencent Meeting.

For the teachers, it was basically like delivering a public lecture every day.

Listening to them in Tencent Meeting, each one sounded relaxed, approachable, effortlessly composed, all smiles.

For homework collection and grading over these two days, they used QQ groups.

And somehow that miserable piece of software now requires you, even on the PC client, to bind a phone number through a mobile device before you can use it.

This from something that once proudly called itself an “internet pager.”

If I already have to bind a mobile phone, then what do I need a pager for?

Today is November 11, which was supposed to be the 26th anniversary celebration of my company.

Because of the outbreak, all celebration activities were canceled. Instead, we got another round of citywide nucleic acid testing. A testing team even came on site to our company. It was supposed to start at 12:30 p.m., but the test kits didn’t arrive until 12:50.

Then, just like that, around 1:30 in the afternoon, the Liaoshitong servers crashed.

Testing across the city ground to a halt. More than two hours later the system finally recovered, but whether you could actually get your code to load was still mostly a matter of luck.

At 4:40 p.m., the company broadcast announced that nobody was allowed to leave work until they had completed testing.

At 5:10 p.m., security guards went around notifying the employees still waiting in line: no more reagents. That was it. Go home.

A truly pleasant and meaningful company anniversary.

Liaoshitong as a piece of software, and these two rounds of mass testing as an experience, felt very, very Liaoning.

20211111212911_pact