Friday, May 29, 2009

Zend Server (Lesson 3) Solving a performance problem

In this Zend Server video lesson I will be dealing with a performance problem in my CMS Drupal. Performance problems happen in all sorts of scenarios and applications, so am not picking on Drupal project at all, just using it as an example in this lesson as a way to educate. Sometimes in a project, even one that's so mature like Drupal, a performance problem can be introduced just by adding in a simple tweak or new module to the core Drupal. With my site the problem is that it's sooo slow, the pages are rendering more then 5 secs with only a single user on the site, that's way too slow. I'm using the latest version of Drupal 6.12 free open source software (FOSS) code right off the site today Download Drupal 6.x and am using Zend Server + PHP5.2.9 + Zend Studio to get to the root cause of the performance problem and fix it fast. You'll soon see what the site owner did to cause this performance problem. In this video I reduce the page render time from 5sec down to 0.19sec and that's a 26 TIMES speed improvement, nice. If you want to follow along with me, review my prior lesson 1 and lesson 2 to prep for this one. And let me know what your own results are with tracking down performance issues. The lessons learned here will help you in your own PHP app, or any other PHP app on sourceforge.net

PS: I had to keep these videos short for Youtube to accept the download so its a quick 5min video lesson


Friday, May 22, 2009

Open Source helps deal with 60yr Old War Wounds

As everyone around here get's ready for another great memorial day weekend, I had a few minutes before my own break to share a WW2 story. Its about a fascinating discovery and how the internet and open source was used to solve a 60year old WW2 mystery. You see my wife never knew her grandfather growing up, he served on the USS Grunion submarine in the 2nd world war, and was MIA. But about 2yrs ago his sub was discovered and the story behind how it was discovered and the forensics was quite fascinating to anyone who loves history.

Some background the USS Grunion, was an American submarine commanded by Lieutenant Commander Mannert “Jim” Abele, disappeared on July 30, 1942, in Alaska waters. After World War II ended, Japanese records were searched but they did not reveal any mention of the sinking so the mystery of Grunion’s fate endured for decades. One day one of the sons of the captain was on the internet and bumped into some recently posted information about the Grunion on the US Sub Command site by an amateur historian from Japan.

He posted some information about a battle between the Japanese freighter Kano Maru and a US sub on the morning of July 31, 1942 near Kiska Alaska, the freighter was hit by a torpedo which knocked out the ships engines. Over the next twenty minutes three more torpedoes were fired: one passed harmlessly under the ship while the other two hit but failed to explode. The submarine surfaced and Kano Maru began firing its forecastle gun. The freighter's crew observed that the 84th shot fired hit the conning tower of sub.

After discovering information on the internet in 2002 that helped narrow down the USS Grunion’s possible location, the sons of Grunion’s commanding officer, Bruce, Brad, and John Abele, began working on a plan to find the submarine.

“This discovery has come about through a stream of seemingly improbable events; it’s like we won the lottery 10 times in a row,” said Bruce Abele, eldest son of Grunion’s commanding officer.”

I think one of the key factors that led to the successful discovery of the USS Grunion was the use of the networking effect on the internet used by the Abele brothers. In the very beginning they had setup a website to share every piece of evidence uncovered with the world. And that led to the network growing with crew family members, naval sub experts, historians, history buffs and one very important Japanese historian.

My wife discovered that the first expedition was about to go to Alaska quite by accident by doing a yahoo search for the USS Grunion and it brought up the social blogging Wordpress site (a PHP site btw.) This site became the main vehicle to communicate about the search. It was very exciting to see the search all unfold online, day after day the Abele brothers posted pictures, sonar scans and wrote in there blog to keep everyone up to date. All this hundreds of miles from the Alaska main land, in the middle of the ocean using satalite communication to update everyone back home via the internet with the latest images and details of the search. For anyone following the day by day progress, it was exciting to wake up in the morning to read what they found during these expeditions. The second one was even more action packed with HD video images of the actual sub being uploaded for all including my mother-inlaw and wife to see. It was like we were all on the boat with them.

“The synergy of our group working together with the Navy for the common cause has been a wonderful group effort,” Bruce Abele said. “The teamwork combined with everyone’s compassion and wisdom has resulted in our success.”

According to Bruce’s brother John Abele, those responsible for contributing to this discovery included historians and engineers from the U.S., Australia, Israel and Japan. Of particular note was the involvement of Japanese naval architect Yutaka Iwasaki, who provided information critical to pinpointing the location of the submarine.

The search to find all the living family members of the crew was also challenging but I think the blog also helped the family members heal those old war wounds. If you read the online blog and letters from the family members you really get a sense of how things have changed in the past 60yrs. I read some of the original letters from the crews wives/girlfriends back to the captains wife and tears would swell up. You can just feel the frustration they felt when no information was shared by the Navy, so she became the focal point and sole support contact for the 70 wives about it. Back then letters were sent back and forth between her and the crews wives.

So 60 years later those families have grown, children, grandchildren, uncles and even son-in-laws spread allover the country, and they not only write to the captains wife, but to his children and other crew families on the Wordpress Blog, and also used Skype to call Japan to thank the historian that helped start it all. I wonder what Catherine Abele would say about how things have changed to help the families cope and heal their wounds from 60yrs ago? From my wife's and her mom's point of view, the social family network that was created by the Abele brothers helped heal those old war memories. I saw it first hand and it was amazing to watch it unfold and recorded for history online.

More information about the search and history of the USS Grunion can be found in the following links. I had the pleasure to be invited to the USS Grunion Memorial in Cleveland Ohio last year and wanted to thank the Abele brothers on behalf of my wife and her family for your success in finding the USS Grunion. As many of you who read my blog already know, I worked at Netscape in the early days of the Internet, but to see firsthand how it can help solve a 60yr old WW2 mystery was amazing. Happy Memorial Day everyone, its good to remember those that made the ultimate sacrifice and to thank their surviving families.

Read more: "The Search for the USS Grunion: How a Missing United States Submarine was Found After Six Decades


http://www.USSGrunion.com/


US Navy Press Release regarding USS Grunion (SS-216) discovery

Eternal Patrol The Fate of the USS Grunion and the Search article


The Search for the USS Grunion
with HD images

USAToday Article, click Exploring the Vessel for video of the discovery
at the top of article

TODAY show piece about the search and persistence of the Abele brothers:


video

Most Savvy use of Open Source in Gov awarded

I attended the April Boston PHP User group meeting to give the ELE award for the most savvy use of Open Source to the team at Blue State Digital that built BarackObama.com. If you recall back in Feb we announced the winners in this post, here is the video presentation from the April meeting and a snap of the awards given by me. Congratulations to all. Josh King and Chuck Hagenbuch share their experiences building and scaling the tools which powered my.barackobama.com and the millions of phone calls and billion emails that helped make history on January 20th, 2009: http://www.bostonphp.org/content/view/130/1/

Friday, May 1, 2009

Taking Zend Server for a Spin - (Part 2 Troubleshooting)

In my last article we took Zend Server for a quick spin, getting some Zend Framework demos to work and we started to look at application monitoring. In this article I will be configuring Debugging/Profiling between Zend Server and Zend Studio Eclipse to enable better troubleshooting and quicker resolution. When things go wrong in your app, you want to know about it ASAP and fix the problem quickly before it affects the end-user. Zend Studio Eclipse can be tightly integrated with Zend Server and gives you a powerful way to address application problems. I'll be building upon my last article so if you want to follow along, please install Zend Server and get everything working from my PART 1.

Zend Studio Eclipse (ZSE) by itself supports local debugging out of the box, when you install ZSE, it installs its own PHP environment and allows you to "Debug Scripts". The downside is that the bundled Zend Studio PHP environment may not have all the extensions and capabilities you need to replicate your production/dev environment. This is why Zend Studio also supports "Remote Debugging", and dont be confused by the name, since you can use Remote debugging on the same server. Think of it as Client/Server debugging. The Client is Zend Studio that can debug against any other Server side PHP with the appropriate Zend Debugger installed. In this article I will be using Zend Server with the preinstalled debugger to get all this working.


Steps That I will show in my Video

1) Pre-req to install Zend Server and Zend Studio Eclipse
2) Verify debugger is active on Zend Server
3) Configure debugging permission for the Zend Server
4) Browse website page and Debug from IE or FF toolbar
5) Test Debugging in Zend Eclipse
6) Test Event Debugging and Troubleshooting from Zend Server
7) Test Profiling of an application bottleneck