Archive for February, 2013

Installing and Configuring Zend Server 6 on Mac OSX

If you’re a web developer and your development machine is a Mac you have likely discovered that “Web Sharing” was removed from OSX Mountain Lion.

There are a few tutorials on the web that can walk you through getting a PHP stack set up on the Mac, but they all describe somewhat more work than necessary.

Since Zend Server free edition offers production quality features and has installers for Linux, Windows and Mac, it makes a fine choice to replace the missing OSX Web Sharing feature, and it is easy to install.

I published on article on Zend’s Developer Zone on the installation and configuration of Zend Server 6 FREE Edition on the Mac

You can read the the whole article HERE !

Zend USA celebrating the Zend Server 6, Zend Studio 1o release.

Man I work with a fun team !!


Enhance your HTML5 app with audio.

When we think of sound in an HTML application we might think of two things: We remember all those sites that started playing load obnoxious background music when the page loads and then we think about music playing apps.

Sound can however be much more: when building immersive app experiences it can be a crucial attribute. It can enhance tactile feedback or communicate activity or changes in state to the user. A ping sound when a new email arrives or a dismissive sound when there was an error can make things much more obvious for the end user.

Prior to HTML5 most developers had to resort to plug-in technologies like Flash, Quicktime, Real player or Windows Media Player to play audio. These, of course, required that these technologies were installed on the users’ machines and the plugins being active.

With HTML5, we have an audio element that natively supports sound playback. As with any HTML element, you can even play nice with older technologies by providing fallback content. For example by simply linking to the audio file:

———

As not all browsers support the same audio formats (MP3 not being a free format makes it impossible to decode it in an open source browser) you can provide the same audio in different formats:

Example:

  The recording - MP3 - 2.3MB

If you really need to provide a player for all browsers – including the ones that don’t understand HTML5 – I collected some information about this in an older blog post.

When your application checked that HTML5, Canvas and all the other things needed for your functionality is supported then backward compatibility is less of a concern, however you may still have cross-browser compatibility concerns since browser vendors are not fully converged on common feature implementation. That said, basic support for audio is available across all major browsers.

You don’t need to have an audio element in your HTML, you can also create them on the fly in your JavaScript:

var aSound = document.createElement('audio');
aSound.setAttribute('src', 'PlayMe.ogg');
aSound.load()

However, there may be advantages to using the tag in your HTML.

  • Using the tag adds to the semantic integrity of your markup.
  • It makes your code easier to read and understand.
  • The tag can display controls so the user can play the audio and seek in it with native controls that are also keyboard accessible
  • The tag has an optional preload attribute that tells to the browser to load the audio before users start playing it.
  • Browsers have a distinct loading sequence of referenced assets. By leveraging that sequence, it iss possible for you to help improve the performance of your app.

Here are some examples for using the tag in HTML5.


In this instance the audio element is not visible and MySound.ogg will only be played by calling the play method on the element instance.

document.getElementById('MySound').play();

By adding a controls attribute you can display the player controls so that the user can play the audio file by interacting with them.

These controls differ from browser to browser and operating system to operating system, but all have the same features as shown in the following image:

audio player with controls

You can easily hide or display the audio element’s controls whenever appropriate (like when the UI state changes) with a simple bit of JavaScript:

var myAudio = document.getElementById( "TimerBellSound" );
if ( myAudio.hasAttribute("controls") ) {
  myAudio.removeAttribute("controls") ;
}
else {
  myAudio.setAttribute("controls", "controls")
}

As Terrill Thompson explains in his blog post HERE, we can easily create a custom player as well. Not only does this provide us with the flexibility of defining our own user interface but it lets us address accessibility concerns as well. His player looks like this and has a consistent look and feel across browsers and operating systems:

So what could sound do in your app? As an example, consider the follow application prototype:

This application will be a timer for athletes. When in use, the athletes won’t be sitting in front of the device that is running the app. It will be running on their computer, tablet or phone and, while they may glance at it to check the time, for the most part they will rely on audible feedback for when to start working out, when to rest, and when to increase or decrease the intensity of their workout.

The audio element in HTML5 makes adding sound to your app both easy and straight forward.

Zend’s growing international interest.

I don’t read Japanese but I’m pretty sure this is cool !

ElePHPant stampede as Zend Corporate Headquarters.

Folks who follow me know that I’ve been bi-coastal for about fifteen years.

Zend is based in Silicone Valley and I live in the woods of New England.

This week I was at our head quarters and in Andi Gutmans’ (Zend CEO) office where I witnessed a veritable stampede of ElePHPants.

I wonder what color we’ll see next ? :)


Calling all PHP developers – voice your opinion on app development

PHPRocket

If you haven’t already taken our quick 2-3 minute survey, here’s your opportunity to give us some feedback on:

Why you think app releases fail?
What do you plan to work on in 2013?
Which is your all-time favorite science fiction movie or TV series?

By taking this survey you’ll be entered in a drawing for your chance to win either a $50 Amazon gift card and a large elePHPant, or one of five $25 Amazon gift cards and a small elePHPant.

CLICK HERE to take the survey !! ]

Survey deadline: February 22, 2013


WEBINAR: Zend Server 6: Bridging the Devops Chasm

Join  Zeev Suraski, Co-Founder & CTO Zend Technologies and lear about the amazing new Dev/Ops features in Zend Server 6

February 21, 2013 – (9:00am PST, 12:00pm EST) or  (5:00pm GMT, 6:00pm CET)

This webinar will introduce you to Zend Server 6, the #1 choice for deploying, running, and managing mobile and web applications written in PHP. You’ll hear about the new features of the product including advanced production debugging, deployment tools, performance optimization features, faster app problem resolution, scaling, and more. You’ll also see a hands-on demonstration of Zend Server 6’s new cool UI.

management-Zeev-Suraski

Click [ HERE ]


Announcing Zend Server 6 and Zend Studio 10

Today Zend announces Zend Server 6 and Zend Studio 10 !

Both are SIGNIFICANT new versions.

Check out www.Zend.com to learn about all the new features but there are a couple things I want to point out here.

  • Zend Server 6 FREE EDITION. Not only will you immediately see the improvements in the user interface of Zend Server 6 but Zend is making a free version available. Yes I know that Zend previously offered a “Community Edition” but this is different. The Free version is not a different edition but a version of the same product as all the other Zend Server. You’ll see the features in the FREE edition and you can upgrade when you want the extended versions of those features.  Example: The free version saves one hour of event monitoring data. 
  • Zend Studio 10 is HUGE for Mobile development and natively understands cloud deployment.

To celebrate we are offering Zend Studio at 50% off !!!!


SunshinePHP – The PHP Community is full of Rock Stars !

This last weekend I attended SunshinePHP in Miami Florida !

In the photo below you see Rasmus Lerdorf - which made it a hat trick for me, seeing the three people that I consider to be the fathers of modern PHP all in the same week !

Home of the best things about being a PHP developer is the community and SunshinePHP was great for me because I got to see a collection of PHP friends that hadn’t seen for a while.

In addition to Rasmus’s keynote…..

  • Cal Evans gave a motivating oratory on the successful community.
  • Keith Casey gave a great closing address on “Thinking Outside the Box”
  • Davey Shafik was there representing @EngineYard
  • Beth Tucker Long did a great talk on continuous integration for PHP develoeprs
  • Sebastian Bergmann taught me about PHPUnit for Unit Testing PHP apps.
  • I got to visit with my old pal Mark Brown from Microsoft
  • I met Luke Stokes, co-founder of FoxyCart
  • I met Matthew Turland who I’ve followed on twitter !
  • I got to meet Corey Fowler – who I’ve been friends with on twitter for years but never met in person !! (And who now works at Microsoft)
  • I met (and missed lunch with) Alan Seiden – PHP IBMi Guru!

What an awesome 2 days…..

If you’re not attending PHP Community events, you’re missing out !


The Zend 2013 Kickoff in Las Vegas

My second week at Zend was spent in Las Vegas at the Zend annual kickoff.

In my career I’ve had the great fortune to work for and with many pioneers in the software development world.

Many years ago I help the position of Assistant Director of Technical Services for JPI TopSpeed and worked for Niels Jensen, the co-founder of Borland.

At Microsoft I got to spend a number of years working for Scott Guthrie (co-inventor of ASP.NET) and interacting with Anders Hejlsberg (the guy behind Turbo Pascal, Delphi and C#).

At Mozilla I worked in the realm of Mitchel Baker (Open Source pioneer and Mozilla Founder) and Brendan Eich (creator of JavaScript).

I kept with that theme in my decision to join Zend Technologies and now I have the privilege of working with Andi Gutmans  and Zeev Suraski (co-founder’s of Zend Technologies and co-developers of PHP3, based on Rasmus Lerdorf ‘s origination PHP creation.)

Andi & Zeev at the Zend 2013 Kick-off

Last week in Las Vegas, Andi outlined the business success and future of Zend as a company.

Zend’s Zeev Suraski and Guy Harpaz

Zeev Suraski (Zend CTO) and Guy Harpaz (PM for Zend Studio) were on hand to show us the awesome new versions of Zend Server and Zend Studio.

Stay tuned as I’ll be focusing a lot on the “professional” platform and IDE for enterprise PHP development in the coming weeks.

In addition to those folks, more of Zend’s executive leadership was on hand.

Zend CMO Elaine Lennox & VP of Worldwide Field Operations Siddhartha Agarwal

Zend CMO Elaine Lennox & VP of Worldwide Field Operations Siddhartha Agarwal (pictured above) were present as well.

Though I must admit that when the heads of  marketing and sales put their heads together and look like they are having that much fun – it can only mean trouble for the rest of us !

We spent three PACKED days learning about the new products, services and strategies.

But we still managed to have some fun.

Who say’s executives don’t know how to party !

Of special note is this photo of Mike Pavlak, Zend Solutions Consultant and PHP on IBMi specialist !

Mike promised to only have ONE beer on our night out on the town !

I’m thinking I’m going to have an awesome year !