Tuesday, August 6, 2019

Peter Gabriel’s Secret World Tour

This week makes it 26 years since I saw what might very well be the single greatest concert ever conceived. I admit I was skeptical going in, but it was nothing short of phenomenal and I still think about it from time to time.

You can get a sense of what it was like from his site.
https://petergabriel.com/release/secret-world-live-dvdblu-ray/

But the one part of the performance, the song that sticks with me, is “In Your Eyes” which had this amazing sort of energy.  It had (and still has) a sort of lose-yourself-in-the-moment appeal.

See for yourself...


Wednesday, July 31, 2019

Nick Buonuconti

Sadly, we heard about another member of the 72 dolphins team passing away. Nick Buoniconti goes to Valhalla to meet the football gods.

I have a Nick story of my own. It was a random encounter in the 90s. I was flying home with my-then fiancée from NY to Ft Lauderdale. My wife was a frequent flier and had tons of free upgrades, so she bumped us both to first class.

We're waiting for the boarding process to start when there's a stir by the desk. Nick was on that same flight. I hear everyone chatting with him. Then I hear someone say "no problem Mr Buonicoti, we're happy to move you to first class!"

And maybe a minute later I hear "mr kennedy please come to the podium." I know what this means. He's getting *my* seat.

And of course they tell me that they can't accommodate my request and will be refunding the upgrade to my wife's account.

Cue the Seinfeld moment where jerry is in first class, hanging out with a model and eating sundaes, while Elaine is in coach squeezed between two "bad passengers" with nothing to eat.

That was pretty much it.

I had wanted to interview him at one point for my dolphins podcast, but I wasn't able to work it out. I surely would have asked him about this...

....I guess now I can let the grudge go. (Haha)

It’s a hoax!

In honor of the 1969 moon landing, and the persistent (yet ludicrous) claims that it's a hoax, I decided to create my own conspiracy theory:

The 1972 Miami Dolphins perfect season is a hoax. It never happened. It's fake news!

I mean a guy with glasses comes on and miraculously leads his team?! A bunch of no name guys playing top-notch defense?! It's impossible!

The "season" was played out on a soundstage in California. Ed Sabol, Director of nfl films was brought in to make it look real! Those miraculous plays we see were to make it more compelling. And the blunder by Garo Yepremian in the super bowl was a joke inserted to make us really believe it.

Just look at the hilights. Why is there no actual game film?! Because it was faked!

—- now, see how stupid this sounds?

Saturday, June 15, 2019

It’s all about perspective


Stephenopolous interviews trump. Trump comes off exactly as he is.  See if you can guess which headline came from which source:

Stephonopolous filets trump
Trump calls stephonopolous a little wise guy

Isn’t it amusing how his base just doesn’t care what he says or does.  He is some kind of messiah. 

Thursday, June 6, 2019

Raspberry Pi garage door, part 2

In case I forgot to put it in the last post, here is how to setup the camera to take pictures at regular intervals.

Now on to setting up the webserver.  This was more painful than I thought it would be.  But, it finally worked.  I went to /var/www/html and did this:
npm init to use the node package manager (NPM) to setup a new node project. You can press enter to accept the default settings, but when you get to entry point type in webserver.js
Now, do this:
sudo apt-get update

sudo apt-get dist-upgrade

npm install socket.io --save

npm install express --save


npm install onoff
A quick note here - some of these were added as I tested various methods for making this work.  I am not 100% positive that all of them are needed, but it can't hurt to have some extra code installed that's unused.

There are two files you will need:


sudo nano /public/index.html
<!DOCTYPE html>
<html>
<body>
<!--<p><input type="checkbox" id="light"></p> -->
<input type="image" id="light" src="http://yoursever/opener.jpg">
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.0.3/socket.io.js"></script> 
<script>
var socket = io(); //load socket.io-client and connect to the host that serves $
window.addEventListener("load", function(){ //when page loads
  var lightbox = document.getElementById("light");
  lightbox.addEventListener("click", function() {
    socket.emit("light", Number(this.checked)); //send button status to server
  });
});
socket.on('light', function (data) { //get button status from client
  document.getElementById("light").checked = data; //change checkbox accordin$
  socket.emit("light", data); //send push button status to back to server
});

</script>

<br><br>

<img src='yourserver/doorpic.jpg'>

</html>
</body>
</html>




And sudo nano webserver.js

var http = require('http').createServer(handler); //require http server
var fs = require('fs'); //require filesystem module
var io = require('socket.io')(http) //require socket.io module and pass the http server
var Gpio = require('onoff/').Gpio; //include onoff 
var sensor = new Gpio(17, 'out'); //use GPIO pin 17, to check reed sensor 
var pushButton = new Gpio(4, 'high'); //use GPIO pin 4 as input, set to 1/high (off)
var mycounter=0;

http.listen(8080); //listen to port 8080


function handler (req, res) { //create server
  fs.readFile(__dirname + '/public/index.html', function(err, data) { 
    if (err) {

      res.writeHead(404, {'Content-Type': 'text/html'}); //display 404 if needed
   return res.end("404 Not Found");
    } 
    res.writeHead(200, {'Content-Type': 'text/html'}); //write HTML
    res.write(data); //write data from index.html
       if (sensor.readSync()==0) { res.write ("<h2>Garage sensor sez: Open!</h2>")}
       if (sensor.readSync()==1) { res.write ("<h2>Garage sensor sez: Closed.</h2>")}

    return res.end();
  });
}
}

io.sockets.on('connection', function (socket) {// WebSocket Connection
socket.on('light', function(data) { //get light switch status from client
console.log("Engage! " + mycounter);

pushButton.writeSync(1);
pushButton.writeSync(0);
// Turn off after 3 seconds
setTimeout(_ => {
pushButton.writeSync(1);
}, 3000);
mycounter++;


});
});

process.on('SIGINT', function () { //on ctrl+c
  sensor.writeSync(0); // Turn LED off
  sensor.unexport(); // Unexport LED GPIO to free resources
  pushButton.unexport(); // Unexport Button GPIO to free resources
  process.exit(); //exit completely
});

Doorpic is the picture the camera takes
Opener is a picture of the opener that I want to display in the app.
--put both in the folder noted above

Run node webserver.js and you are ready to go!

Now all you have to do is point to the IP address of your Pi and with the port 8080 (ie, http://192.168.0.123:8080) and you should be good to go!