Black Mirror in real life – Chinese public credit scores

China, and specifically Shanghai for now, is instituting public credit scores to rank citizens by various factors. The end goal to improve the behavior of people by ranking them publicly. This has to have been in the works for awhile. Did Black Mirror just steal the plot for Nosedive from what China is actually doing?

Quite a few places are reporting it and here’s the NRP version. I read it first in the Economist weeks ago so they should get credit for breaking it really but NPR reminded me. A quote from NPR’s version:

“We want to make Shanghai a global city of excellence,” says Shao Zhiqing, deputy director of Shanghai’s Commission of Economy and Informatization, which oversees the Honest Shanghai app. “Through this app, we hope our residents learn they’ll be rewarded if they’re honest. That will lead to a positive energy in society.”

Shao says Honest Shanghai draws on up to 3,000 items of information collected from nearly 100 government entities to determine an individual’s public credit score.

A good score allows users to collect rewards like discounted airline tickets, and a bad score could one day lead to problems getting loans and getting seats on planes and trains.

A story about carrots

I heard a great story about carrots today; they’re being so good for the eyesight is just a red herring to distract the Germans from the British competence in radar in WWII being the reason the British were so successful at finding and shooting down Germans.

Here’s the Snope blurb on it:

While carrots are a good source of vitamin A (which is important for healthy eyesight, skin, growth, and resisting infection), eating them won’t improve vision.

The purported link between carrots and markedly acute vision is a matter of lore, not of science. And it’s lore of the deliberately manufactured type.

In World War II, Britain’s air ministry spread the word that a diet of these vegetables helped pilots see Nazi bombers attacking at night. That was a lie intended to cover the real matter of what was underpinning the Royal Air Force’s successes: Airborne Interception Radar, also known as AI. The secret new system pinpointed some enemy bombers before they reached the English Channel.

British Intelligence didn’t want the Germans to find out about the superior new technology helping protect the nation, so they created a rumor to afford a somewhat plausible-sounding explanation for the sudden increase in bombers being shot down. News stories began appearing in the British press about extraordinary personnel manning the defenses, including Flight Lieutenant John Cunningham, an RAF pilot dubbed “Cat’s Eyes” on the basis of his exceptional night vision that allowed him to spot his prey in the dark. Cunningham’s abilities were chalked up to his love of carrots. Further stories claimed RAF pilots were being fed goodly amounts of this root vegetable to foster similar abilities in them.

The disinformation was so persuasive that the English public took to eating carrots to help them find their way during the blackouts.

Plato was right about democracy 

It’s amazing the number of rightist blogs that go into how Plato was right about democracy turning to tyranny discussing such well prior to 2016! They were on to something. Either ironic or they’re libertarian. It really doesn’t matter which side with the current polarization we’re going there.

And just for something neutral here’s Wikipedia:

Bad ass taxidermy

Carl Akeley, considered the father of modern taxidermy, was attacked by this leopard he poses with.

The leopard latched on to Akeley’s left hand, chomping down with all its might, and kicking at him with its back legs like a rabid 80-pound feral housecat intent on brutally mutilating him beyond recognition and burying his body in the back yard. When his attempts to pull his hand out of the leopards’ jaws only made the creature bite down harder, Akeley, locked in a life or death fistfight with one of the most perfect predators nature ever created, did one of the most insane things ever – he punched his fist further into the leopard’s mouth.

Yes, you are reading that correctly. Carl Akeley, noted philanthropist and respected wildlife conservationist, punched a fucking leopard in the esophagus from the inside. The leopard gagged, Akeley pulled his hand out, and then he took the thing, bodyslammed it to the ground, and jumped on it with both knees, crushing it to death. Akeley, bleeding profusely from horrific wounds on both hands, clawed to shit, still recovering from a recent battle with malaria, and barely able to stand, then picked up the leopard (despite a shattered hand), threw it over his shoulder, walked back to camp with it, and taxidermized it for a museum exhibit

From here:

The Arduino is really quite handy to have around. Right now we’ve got one reporting the temperature and humidity of a chicken incubater. It could also control the temperature, humidity, and egg rotation but we haven’t gone there yet. Even so it’s nice to get the measurements with the audible warning. Then you can always repurpose all this stuff to do something else once you are done incubating.

You just need (unvalidated list):

Add in a stepper motor, voltage switch, and some sort of fluid controller and you could do it all. Unglorious image of this – the OLED is very nice:

Here’s the relevant code – it of course plays the 1st 4 notes of Beethoven’s 5th as a warning (or at least an attempt at that not having found the true notes):

#include <Wire.h>
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#include <Adafruit_Sensor.h>
#include "DHT.h"
#define OLED_DC 11
#define OLED_CS 12
#define OLED_CLK 10
#define OLED_MOSI 9
#define OLED_RESET 13

#define DHTTYPE DHT22   // DHT 22  (AM2302)
#define DHTPIN 2     // what pin we're connected to

#define speakerPin 4

// TONES  ==========================================
// Start by defining the relationship between 
//       note, period, &  frequency. 
#define  c     3830    // 261 Hz 
#define  d     3400    // 294 Hz 
#define  e     3038    // 329 Hz 
#define  f     2864    // 349 Hz 
#define  g     2550    // 392 Hz 
#define  a     2272    // 440 Hz 
#define  b     2028    // 493 Hz 
#define  C     1912    // 523 Hz 

//thermometer - humidity

float temp;
float humidity;

void setup() {


void loop() {
  display.clearDisplay();   // clears the screen and buffer

void getWeather() {
  //read DHT
  float humidity = dht.readHumidity();
  float t = dht.readTemperature();
  t = t * 9.0 / 5.0 + 32.0;
  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(humidity)) {
    Serial.println("Failed to read from DHT");
  else {
    Serial.print("Humidity: "); 
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.println(" *C");


  delay(10000);   //10 seconds seems often enough

void updateDisplay(float h, float t) {
  display.print("Temp:  ");
  display.println(" F");
  display.println(" ");
  display.print("Humidity:  ");
  display.println(" ");

  // warnings
  if (t < 98.8 || t > 100) {
    display.println("CHECK TEMP!!!");
    display.println(" ");

  if (h < 50 || h > 70) {
    display.println("CHECK HUMIDITY!!!");

void playWarning() {
  tone(speakerPin, g);
  tone(speakerPin, g);
  tone(speakerPin, g);
  tone(speakerPin, C);