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.

http://freedomoutpost.com/plato-explains-tyrants-arise/

http://mobile.wnd.com/2015/10/how-tyrants-arise-platos-eerily-accurate-words/

And just for something neutral here’s Wikipedia:

https://en.m.wikipedia.org/wiki/Republic_(Plato)

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: http://www.badassoftheweek.com/akeley.html

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
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

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

#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 

//TH 
//thermometer - humidity

float temp;
float humidity;

void setup() {
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC);
  display.setTextSize(1);
  display.setTextColor(WHITE); 

  Serial.println("Startup!");
}

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

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(humidity);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" *C");
  }

  updateDisplay(humidity,t);

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

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

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

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

void playWarning() {
  tone(speakerPin, g);
  delay(200);
  noTone(4);
  delay(200);
  tone(speakerPin, g);
  delay(200);
  noTone(4);
  delay(200);
  tone(speakerPin, g);
  delay(200);
  noTone(4);
  delay(200);
  tone(speakerPin, C);
  delay(400);
  noTone(4);
}