Friday, August 15, 2014

Gigascale Engineering talk by Bruno Bowden

Bruno Bowden (engineer on Google Earth, Enterprise Gmail) gave a great talk on "Gigascale Engineering"

He shared a lot of wisdom, which as the old saying goes, came from a lot of experience, which came from a lot of mistakes (including almost bringing down Gmail, messing up Eric Schmidt's email and having Santa Claus nearly cause an international incident.)

To summarize his points:
  1. The best decision is "Not to build"
    Learn to fail fast, give up and quit
  2. Recycle
    re-use, don’t re-invent the wheel.  Benefit from someone else's headaches and hard work.  Use something that's been battle tested, and someone  else has already worked through the bugs
  3. "Above the fold"
    Example he used was how one change, moving the download button up in the page so for certain displays with low resolution the download button could be seen w/o scrolling, increased the number of downloads of Google Earth by 50-100 million.
    My interpretation was find what will have the biggest impact.  Not what you think is will be cool or  interesting.

Then their was a really interesting section of the talk on "Pushing the reliability/Innovation curve". He showed how simple curve where the more innovation, the less reliability.  The "pushing" involves ways in which you can decrease risk which still increasing innovation. 

Below are a couple of the ideas he shared:
  • He talked about the basics such as Code Reviews.
  • He also mentioned that while Google "doesn't do TDD" all code is "guilty until proven innocent".   He stressed they do unit testing etc, they just haven't don't but into the "though shall always write tests first" approach.  My thought is that people trump process and TDD may add most value when used with less "experienced" developers to help them stay out of trouble.  That said I do like TDD, but frankly don't always practice it.
  • He mentioned that the number one threat to Google software was Google engineers.  And how they set Rate limits (throttling) to keep people from bringing systems to their knees
  • Using an exponential backoff strategy on retries to limit potential damage.  This reminded me of retry schemes for collision detection on Ethernet.  
  • Having built in "Real Time Controls" designed into the system to help you deal with performance issues
  • Having a way to safely/canary in the coal mine test knew code
  • Using N+2 Rollbacks
  • The advantage of "Keeping it Simple" and how engineers seem to love to create complexity.  A charge I have been guilty of way too many times.
  • He used a quote from John Dean "Design for 10x" which I understood as design for a 10 fold growth.
  • The earlier you can compartmentalize things the better before it becomes a Monolith
  • How when you first startup up you want to push things out as fast as possible and iterate quickly so you can find out what works (and hopefully abandon quickly what doesn't).  But once you start to scale you need to shift to a regular release cycle and a more repeatable process
  • Using protocol buffers to help deal with multiple versions of the protocol as you upgrade on a large multi-server environment.
  • Importance of managing your managements expectations.  Yes change is risky and when we do this there will be some fires (of course you go through the risk/reward analysis to determine its worth the fires that will happen).
  • What to do when failure happens (really important and unfortunately I see too many cases where this isn't handled properly or if they do the Post Mortem, the actions are not followed up on):
    • Alert Early - ie: don't hide the problem or cover it up.  Let people know so you can start to deal with it and get some help.
    • Escalate Response - Get some help, don't try and solve it all yourself, especially if its a potential crisis in production.
    • Stabilize - revert if necessary, but stabilize the system
    • Perform a Post Mortem - Ask "How can we avoid this in the future",  usually there are multiple points of failure.
    • Where could we have done more "Defensive Engineering"
    • Reassess the risks/rewards of what you are doing.
In addition to the wise advise there was a great story about how Santa Tracker almost caused an international incident, by flying over Toronto, Ohio (well he said some Toronto in the US, so I assume Ohio) as opposed to that other one in Canada.  Fortunately the Canadian general was kept sufficiently distracted so that he didn't look at the Santa Tracker until Mr. Claus got back on course.

Here is his Ted Talk on Santa Tracker:


Friday, February 28, 2014

[Confab] Circle-Square by Dy/Dan

Dan Meyer had posed a great problem on his blog

[Confab] Circle-Square

believe it originates from The Stanford Mathematics Problem Book, though I've seen it elsewhere in other forms.
Given an arbitrary point P on a line segment AB, let AP form the perimeter of a square and PB form the circumference of a circle. Find P such that the area of the square and circle are equal. 

 In it he posted one comment from Peter Boon (my emphasis added):
Off the ISDDE mailing list, Freudenthal Institute curriculum designer Peter Boon had some useful comments on the use of interactives and videos:
I would like to investigate the possibility of giving students tools that enable them to create those videos or something similar themselves. As a designer of technology-rich materials I often betray myself by keeping the nice math (necessary for constructing these interactive animations) for myself and leaving student with only the play button or sliders. I can imagine logo-like tools that enable students to create something like this and by doing so play with the concept variable as tools (and actually create a need for these tools).

Well for me Etoys is the tool of choice (not perfect, could be better, but a great choice).  Etoys is an educational tool for teaching children powerful ideas in compelling ways and a media-rich authoring environment and visual programming system for kids to create.  Besides logo like programming it hashas GeoGebra like functionality built in with DrGeo. But for this problem you don't even need Dr. Geo.

Below are the simple steps for kids to create a model of the problem.

1) Create a "Square" using the rectangle object. Below is a screen shot where I added one variable and a simple two line script.

2) Create a "Circle" using the Ellipse Object. Below is a screen shot again adding one variable and a simple two line script.
3) Now we need to create the line segment and showing the different segments.  Below is a screen shot of two Rectangle Objects and three simple scripts. Two to have the widths match the square's side and the circle's diameter and one to keep them aligned.

Plus kids can use Etoys to construct Multiplication Models, Explore Fractions and much much more. (See EtoysIllinois from the Office for Mathematics, Science, and Technology Education (MSTE) at the University of Illinois at Urbana-Champaign is a great resource)

Saturday, February 23, 2013

Haiti Trip

My son and I will be going to Haiti on a mission trip with Foundation For Peace March 16-24.  We will be going down to help at the school and we will be bringing down computers and laptops with educational software from OLPC (One Laptop Per Child), a school version of Wikipedia (they have no internet access, so we will have a local copy, projects from Etoys Illinois and The Colombus School for Girls.

According to the Human Development Index, Haiti is the poorest country in the Americas, and so especially after their seismic earthquake in 2010, Haiti has had difficulty in recovering as a nation and as a people. While much aid has been promised, not all has been delivered or well used and there is still much work to be done. My team and I will be working through an organization called Foundation for Peace (FFP) who has been aiding those in Haiti since the devastating earthquake.  FFP has local leaders in Haiti and is sending down mission teams about twice a month to continue to support the community and help them to support themselves. They initially built Camp Hope, a tent community of internally displaced persons who fled there for medical care and housing. After Camp Hope, they extended their building projects to include schools where elementary and high school students could learn…and they are learning! Many students are passing their standardized exams. My team will be assisting in the building an even bigger school, one where both academics and vocational trades will be taught, so people of all ages can learn in order to earn good jobs and provide for their families.  

That being said, our team needs your help! Each member of our team needs to raise about $1,800 ($3,600 for the two of us) and I am certain we will be able to raise the funds.  Please consider making a tax deductible donation to help support us.  What is most important in my opinion is your thoughts and prayers.  For the people of Haiti and for son and myself.

If you do feel called to support the team financially, all gifts toward the trip are tax deductible. Checks can be made payable to Westerly Road Church, with the memo line reading my name and the location of the trip. Checks can be mailed to 25 Westerly Road Church, ATTN: Director of Global Outreach; Princeton, NJ 08540.

Thank you again for your thoughts and prayers.


P.S. If you are in the NJ area and have any old computers, laptops, monitors, wireless routers, ethernet hubs, power strips, etc  and would like to see them re-purposed to help the children of Haiti.  Please let me know I will wipe hard drives and put educational software on them.

P.P.S Thanks to the folks at Poisson Rouge who have graciously donated their wonderful educational software to our cause.  If you have never seen it I highly recommend you visit (  I have been recording their software to everyone with kids even before they made this wonderful donation.

Saturday, January 19, 2013

Balance Scale Test


1) Click the Green Flag to start.
2) Then drag the orange triangle to a spot where you think the items will be balanced.
3) Then press to see the last 10 answers from other players

Once you have played please answer the questions below in the comments:

  • Why did the others guess that way?
  • Can you come up with a logical reason as to why the other kids may have placed it in a different position?
  • Explain what mistakes in thinking you or others made, that caused different answers?

Monday, November 12, 2012

Scratch and Etoys perfect together

A way to make make multi-player games and build your own Game Consoles.

Tuesday, June 26, 2012

PETS - People for the Ethical Treatment of Studends

Hello,  I am from PETS (People for the Ethical Treatment of Studends),  PETS is the largest students rights organization in the world, with myself as a member and supporter.

Like PETA, PETS focuses its attention on the four areas in which the largest numbers of students suffer the most intensely for the longest periods of time: on tortured obfuscated word problems, in the computation classes (under the benign name mathematics classes), and in what is commonly called "drill and kill" problems. We also work on a variety of other issues, including the cruel killing of enthusiasm, the spirit of inquiry, the question "why" and other "inappropriate classroom behavior" as well as cruelty to beautiful and powerful ideas. 

PETS works through public education, cruelty investigations, research, student rescue, legislation, special events, celebrity involvement, and protest campaigns.

(Idea spark from Dy/Dan and his post  These People With Their Dogs Wearing Bandanas unfortunately he was more concerned with the dogs, rather than the students, must be one of those PETA people.

Well we'd like to do all these things, but right now its only me.  Please join me and show your support by commenting below?
If you can add a link for an idea that can help protect our students.

Sunday, June 24, 2012

Scratch Draft Curricullum Guide (Session 3 - Programmed to Dance)

 I used Session #3 from Scratch Curriculum Guide Draft in my class with kids ages 10-16.   This is where kids program other kids to Dance.    The "Bosses" watch a short video of someone dancing and then program the "Bossed" to Dance.  The video's provided by the Scratch team are really well done and thought through.

When I first showed the "Bosses" the videos, the reaction was no way, this is going to be hard.  I must admit I had the same reaction.  I (and I think the kids) figured that the video with Mitch would be possible, but some of the later ones would be too challenging.  Well I was wrong (love when that happens, I learn something new :)

The kids did great and were able to program each other in a relatively short time.
One thing I changed from the Draft is I had the  bosses and bossed switch.  Show I would show the first video and A would program B, then I would have B program A.  So they all got an opportunity to see both sides.

I asked the question, "How is this like programming?"  Which is similar to "How does this activity relate to Scratch?"   Below are some of the comments from the students:
  1. We didn't know what was in the mind of the programmer.  
  2. We had no idea what they wanted us to do.  
  3. We had no "insight" (Note: I also have them taking the Coursera CS101 course on their own in a "flipped classroom" type approach.  One of the early comments in the course was that the computer, unlike a human has know insight into what you mean).
  4. We can only use words.
After class I realized one of the questions I should have asked is "How is this NOT like programming?"  I will try this next time.

I also used this a second time and noticed how some of the moves are symmetrical (especially in Dance1).  I pointed this out to the kids (tried to do so through questions) and asked how are these moves the same and different.  Which led to the realization its the same basic move once with the right hand and once with the left hand.  This then lead to a short discussion on how we can have a common set of instructions used by different body parts/costumes/objects.  In a future version of the class I would like to try and point this out immediately after Dance 1 and see how many kids "get the idea" and use it for Dances 2 and 4. Dance 3 doesn't really lend itself to this idea.
For homework, I am having them create a "Dance" program, where they take pictures of themselves in different dance positions, "green screen" their bodies out of the pictures and then program each other to dance.  I am also using Scratch connect and Etoys so they can create a "game controller" in Etoys to control the Dancers and can have a dance party on one screen projected on the wall, each student controlling their own dancer using Etoys (via Remote Sensor Protocol).  Can't wait until Makey Makey comes out so I can try incorporating that.

Note: I had a class before this where we did "How to Train Your Robot"  using Dr. Techniko's hand out and having them program their parents.  Not sure how much this impacted how quickly/easily they were able to program each other.

I really like your approach of having kids "step away from the computer and no one gets hurt" approach.  I try to do this a lot, partly so they can get in touch and reflect upon the knowledge they have in their own bodies and also to give them different context for experiening the same/similar concepts and ideas,