Protected: Takeaways from “Ways of Seeing” by John Berger

This content is password protected. To view it please enter your password below:


At least I didn’t vomit on the guests at my brother’s wedding

411mvfumu8l._sx322_bo1204203200_I like to think that I’m a fantastic public speaker. But one memory, speaking at my brother’s wedding, reminds me that I am in fact not. But I’m working on it.

Before I share that story, let me tell you another story.

I played music in a band for about 15 years. We toured the east and west coast of America as well as Japan. We even opened for some pretty great bands – Vampire Weekend, My Chemical Romance, and Hot Hot Heat.

Getting up on stage to perform in hundreds of shows should stamp down any fear of public speaking. Or so you’d think. That’s what I thought when I was preparing, or rather, not preparing my speech for my brother’s wedding.

I read a lot of blogs about how to construct a perfect best man speech. I thought the blogs made it look kind of corny and I wanted to come up with something touching and from the heart – something that would be meaningful and would make the attendees tear up because we love each other so much.

The time had come, the ceremony was over, and the reception was in full swing. I clinked my water glass loudly and stood up to give my speech. But the words would not come. I looked out at all of the faces – most of them I knew already. Why was I having such a hard time? I couldn’t breathe, literally.

So I started to take deep breaths. 300 people stared on in silence. You could literally hear me heaving to get more oxygen in. When that didn’t work, I figured I’d do anything to take the attention off my breathing. I must get through this I thought. So I started the speech.

I told a story about how my brother had saved me from a bully in elementary school. Then I heaved some more. My brother looked on, horrified. But he kept encouraging me with his head nods and smiles.

Next I started talking about how his wife was very lucky to have such a solid protector in her life. I made some other comments about him being a solid guy and sat down while the audience reluctantly clapped.

I started to calm down. My face was red. I could feel my face pounding to the beat of my heart. I stood down and the music restarted. I drank a sip of iced water. I knew I had blown it. But I got through it.

Next time I’m asked to give a speech I will follow the rules in Scott Berkun’s book “Confessions of a Public Speaker.”

“The thing speakers obsess about are the opposite of what the audience cares about. They want to be entertained, they want to learn. And most of all, they want you to do well.” – Berkun

Had I taken the time to really consider what was being asked of me I would have prepared more.

“Don’t ask people to listen to something you haven’t listened to yourself. Just do it. You cannot delete an hour of waste time from people’s lives.” – Berkun

Next time I’ll take my phone and set it up to record myself. That way I’ll know how I’m coming across. I’ll have rehearsed the speech, seen it, edited it, and made it better.

“Confidence, not perfection is the goal.” – Berkun

I would have done better to calm myself before the speech. Even the author, a professional public speaker, still suffers from the fear response.

“Since I respect my body’s unstoppable fear responses, I have to go out of my way to calm down before I give a presentation.” – Berkun

Peter Fonda, the famous actor, experienced such stage fright that he would vomit before every single performance.

At least I didn’t vomit on the guests at my brother’s wedding. Hindsight is 20/20.

“Had I known then what I know now. I would have acted differently.” – Les Brown

There’s no going back so there’s no use beating myself up over this poor performance. Bottom line is, even if you’re used to getting up on a stage and entertaining crowds of people, public speaking is a whole different animal. But it doesn’t have to be scary. I should have practiced more. Then I should have recorded my performance and watched it for any places I could edit it.

Then again the guests at the wedding probably forgot about it.

“Most people listening to presentations around the world right now are hoping their speakers will end soon. That’s all they want.” – Berkun

I hope this tale of shame encourages you to take your public speaking seriously and practice, record, view, edit, and practice some more. Contact me if you want to share your public speaking horror story with me. I’d love to commiserate 🙂

Water/ Not Water – Hacking the Google Maps API

This is the second post on mentorship at Iolani High School. Read part one if you’re interested in learning more about the mentorship.

The second page she was tasked with creating would allow users on the web to direct the catamaran to a specific GPS coordinate. In order to make sure users didn’t put in a GPS coordinate that was on land, she needed to determine if the input GPS coordinate was in the water.

She emailed me to ask for help:

I’m working on the control page now, and I am trying to figure out how to detect water on Google Maps. I have to make sure that the locations sent to the CAT are actually in the Ala Wai Canal. Since the Ala Wai Canal and other bodies of water show up as blue in Google Maps, I think that there should be a way to determine whether a location is in water or not. I’ve done some research on it and most pages suggest using reverse geocoding, however, I’m not sure it will work in this case. Here’s one website:
I clicked on the link to stackoverflow and read that the reverse geocoding wouldn’t work for this issue. So I dug into the second solution proposed. This seems absurd. Here’s the solution posted on stackoverflow:

These are steps your service must perform:

  1. Receive latitude,longitude and current zoom from client.
  2. Send{latitude,longitude}&zoom={current zoom`}&size=1×1&maptype=roadmap&sensor=false request to Google Static Map service.
  3. Detect pixel’s color of 1×1 static image.
  4. Respond an information about detection.

You can’t detect pixel’s color in client side. Yes , you can load static image on client’s machine and draw image on canvas element. But you can’t use getImageData of canvas’s context for getting pixel’s color. This is restricted by cross domain policy.

Prons – Highly accurate detection

Cons – Use of own server resources for detection

Let’s go over how this works again to make sure you understand how hacky this solution is.

  1. Sign up for the Google Maps API
  2. Create a webpage in PHP
  3. Pass the GPS coordinates to the PHP page as GET parameters
  4. Send the GPS coordinates to Google
  5. Get back a 10 pixel by 10 pixel image of the map
  6. Process that image with PHP to determine what color it is
  7. If it’s blue it’s water
  8. If it’s any other color it is not water

I smiled all day after this project. It’s such a silly little solution. And it may break if Google changes the color of water in their map. But it works! I messaged back the student:

Thanks for the email. This was a really interesting problem! I ended up coding an API endpoint to determine if a latitude and longitude coordinate is WATER or is NOT WATER with the second option you linked to on stackoverflow.

Specifically this section:These are steps your service must perform:

Receive latitude,longitude and current zoom from client.

Send{latitude,longitude}&zoom={current zoom`}&size=1×1&maptype=roadmap&sensor=false request to Google Static Map service.

Detect pixel’s color of 1×1 static image.

Respond an information about detection.

You can test the solution with the following calls:
Waikiki land: (returns NOT WATER) <link removed>
Pacific Ocean: (returns WATER) <link removed>
Ala Wai: (returns WATER) <link removed>
I am sharing the link with you to show that it works. I will be taking this code down at the end of the week so it is not possible to use this for your project. I would like to show you how to create this code for your project on your own machine. I’m free to meet in person or to help you via email or phone.
Here are the steps you need to take to set it up:
  1. Sign up for the Google Maps API
  2. Set up billing (this requires a credit card)
  3. Host the API code on a server with PHP
Let me know how you’d like to proceed
We’re meeting on Tuesday to get this set up and running on her webserver. This was such a fun project that I just had to post about it. Here is the code I created to solve this issue:


///////////////////// Gets the image from Google Maps API&lt;/code&gt;

// Set up the page to take in GET variables
$latitude = $_GET["latitude"];
$longitude = $_GET["longitude"];

// echo $latitude;
// echo "
// echo $longitude;

// Sets up parameters for call
$mapsApiKey = "";
$zoom = 20;

// Set up the API call
$apiCall = "" . $latitude . "%2c%20" . $longitude . "&amp;amp;zoom=" . $zoom . "&amp;amp;size=10x10&amp;amp;maptype=roadmap&amp;amp;sensor=false&amp;amp;key=" . $mapsApiKey;
// echo "
// echo $apiCall;


document.addEventListener('DOMContentLoaded', function() {

// Gets the image from the API call
var apiCall = '';
// alert(apiCall);

// Set image source as constructed API call string
var img = new Image;
img.crossOrigin = "anonymous"; // To fix the security issue of reading images from other sources
var src = apiCall;

// Sets up the canvas
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");

// Fill in the backgorund color with red so we can see it
// ctx.fillStyle = "#FF0000";
// ctx.fillRect(0, 0, 10, 10);

// // Download the image
img.onload = function() { // ...then set the onload handler...
ctx.drawImage(img, 0, 0);

// Get color of image
var imgData = ctx.getImageData(0, 0, 1, 1);
var red =[0];
var green =[1];
var blue =[2];
var alpha =[3];

// Hides the canvas as we are not interested in seeing it"none";

console.log("red: " + red + " green: " + green + " blue: " + blue + " alpha: " + alpha);

// Determine if this response is WATER or NOT WATER
if (red == 170 &amp;amp;&amp;amp; green == 218 &amp;amp;&amp;amp; blue == 255) {
document.getElementById("findings").innerHTML = "WATER";
} else {
document.getElementById("findings").innerHTML = "NOT WATER";
img.src = src; // because the internet says you should put your src after your load

}, false);

Rules for Reading More

I read some of these book reviews and takeaway posts at the marketing meetings at work. When I finished reading the latest one, someone asked me how I read so much. “Do you read a book a week?” I shared a quick tip, “It’s important to have about 7 books going at the same time to make sure you don’t get bored with any one book.”

This question kept popping into my mind as the week went on. Finally, I sat down and came up with a list of ways I push myself to read more to share with the marketing team.

Here’s my list of rules for reading more. First I’ll sum them up. Then I’ll list each one out and elaborate on why it made it onto this list. Here we go.

Rules for Reading More:

  1. Read at least 5-7 books at a time.
  2. Stick to the “10 pages or I’m out” rule.
  3. Diversify your reading collection.
  4. Go for a chapter then take a break.
  5. Set a timer and stick to it.

Read at least 5-7 books at a time.

That way you won’t get bored with any particularly boring chapter in a book. Here’s a list of the books I’m currently reading. Notice the mix of non-fiction and fiction:

Stick to the “10 pages or I’m out” rule.

Someone suggested that I read “Sound and the Fury” by William Faulkner. It’s a book that I’ve heard a lot of great things about but I had never read it. So I borrowed it from the library. Then I started to read it. Very dry, very archaic, ultimately boring.

Never stick with a book that can’t hold your attention for the first 10 pages. If the writer didn’t invest enough effort to make the first 10 pages as compelling as possible, there’s a good chance he won’t have put in enough effort to keep your interest on page 100. Sorry Mr. Faulkner. No time.

Diversify your reading collection.

Do you love non-fiction books because you can apply their wisdom to your life? Get a compelling fiction book like “Ready Player One” by Ernest Cline to balance it out. You want to give your brain a rest after it’s been too deep into the non-fiction books.

Video games are made up of really tough sections moderated by very easy sections to keep you playing. Think about reading like this. Do the heavy lifting, then switch up to tiny fiction weights to give your brain a rest and let your soul feast.

Go for a chapter then take a break.

There’s a famous book on writing called “Bird by Bird” by Anne Lamont. The book gets its name from a story the author tells about her little brother in middle school. He needed to write a report on the 50 state birds.

He waits until the night before it’s due to start the paper and he’s miserable. Just as he’s about the give up, his dad gives him some simple advice, “Take it bird by bird.” In the same way, don’t look at the book as 300 pages, look at it as 30 chapters, broken up for you to take breaks between long stretches of reading.

Keep in mind that this is not a hard and fast rule. If you’re reading a chapter and just can’t make it, cut yourself some slack. Even if you read a single page it’s good enough. Don’t burn out with reading. Be kind to yourself.

Set a timer and stick to it.

Buddhist meditators set a timer for themselves sometimes. The timer isn’t set to tell them when the sitting is finished. No, it’s actually a more subtle maneuver.  They set the timer so that when they do the meditation they know that they owe the world nothing for this solid hour.

By setting a timer you don’t need to attend to anything else in the world. Everything can manage without your thinking and attention for 1 hour. In setting this timer, you are allowing yourself full access to the task at hand.

Finally, here’s the list again:

  1. Read at least 5-7 books at a time.
  2. Stick to the 10 pages or I’m out rule.
  3. Diversify your reading collection.
  4. Go for a chapter then take a break.
  5. Set a timer and stick to it.

I hope this list has helped you learn how to read more. It works for me. I’m always looking to add to this list so if you have any other tips that might help me out and contact me!