Pro HTML5 Programming: Powerful APIs for Richer Internet Application Development review

If you haven`t heard of HTML you shouldn`t be reading this. HTML is the mark-up (programming) language for websites. Together with CSS (for the styling of sites) and JavaScript it forms the base of the internet. HTML stands for HyperText Markup Language and 5 is the latest version.
The latest official version is 4.01 which dates 24 December 1999. The specifications can be found at http://www.w3.org/TR/1999/REC-html401-19991224/ if you’re really interested.
HTML 5 is the long awaited follow-up of HTML 4 and XHTML 1.1. It`s been more than ten years ago since the last update in version 4.01 and technologies have evolved. The editor’s draft of HTML 5 can be found at http://dev.w3.org/html5/spec/
HTML 5 drops some out-dated elements and attributes while adding new ones and improving already present ones.
Example: Back in 1999 most people where browsing the web using a dialup connection. You would be happy if your download speed passed the 4 kb/sec mark. Now it`s “normal” that you download music and watch videos on the internet on sites like YouTube.  Therefore new HTML tags like <audio> and <video> are introduced (since these were far from necessary in 1999). This way the problematic embed tag can be removed.
Enough tech talk, time for the review!

I`m Ramon van Belzen, a 22 year old webdesigner from Vlissingen, the Netherlands. I’m surfing the web since 1997 and I` been programming HTML since 1998. Today I use web technologies like HTML 4, HTML 5, XHTML 1.1, CSS2 / 3, microformats, JavaScript, AJAX, jQuery, PHP/MySQL, XML. I currently run over 10 websites, most of them as webmaster and webdesigner.
I have been offered the chance to review the book by Apress.

As I`ve mentioned before, this book is about HTML 5. It`s not about the basic elements already present but about the new ones and the APIs introduced along with it. In very short, this book is about the canvas, audio and video tags and the geolocation, communication, WebSocket, Forms, Web Workers, Web Storage and Offline Web Application APIs.
Apress also released another book, together with this book, which is all about the HTML 5 elements and CSS 3: Beginning HTML5 and CSS3: Next Generation Web Standards.

The book promises you will learn to develop web applications and sites using HTML 5 features and APIs and how to combine these (with other) web technologies.

This book is written for intermediate level programmers who are familiar with HTML 4 and/or 5 and knowledge of JavaScript is recommended.

The first chapter is an overview of HTML 5, containing answers to the who/what/where/when/why questions about HTML in the past and present. It also describes many of the new HTML elements and shows examples how to make your first HTML 5 page and enhance it with tables, CSS and JavaScript.

The following chapter explains the canvas API. With the canvas API you can dynamically generate and render graphics, charts, images and animations by using HTML 5 and JavaScript. Topics and examples shown in the book are from drawing a line to drawing advanced items (like a Christmas tree) to using multiple images and adding shades. The chapter ends with a mouse tracker – drawing a heat map.

Chapter three is about working with HTML 5 audio and video elements. It explains the valid HTML5 media types (codecs) and attributes. The next part is about the JavaScript control functions which you can use to start, stop, and pause audio and video files. Following the control functions are the attributes which can be used.

The fourth chapter is about the Geolocation API. As the name might reveal is about the use of your location in and on websites. This function is very interesting for mobile phones, laptops and can be widely used in e-marketing. The chapter starts with how the location is determined including de pros and cons of each setting. Next is the implementation of the location API by showing your current location on a page. Following the previous part is a real life example, which uses the geolocation to calculate the travelled distance while being on the site. The last part of the chapter describes how to link the HTML 5 Geolocation API with Google Maps to show your current location on the map.

The next chapter (five) is about the communication APIs including XMLHttpRequest level 2 – the follow-up of the famous AJAX API. With these new API`s it’s possible to use cross-site scripts and build things like status updates, chat boxes and much more. The chapter ends with a cross site data uploading script.

The WebSocket API is explained in chapter six. With the WebSocket API it`s possible to replace the HTTP protocol with the WebSocket protocol to reduce traffic and latency and use a full-duplex connection. With the WebSocket protocol is also possible to SSL encrypt the connection, just like HTTPS. The chapter explains the basics of the WebSocket API, how to write your own WebSocket server in Python, where to download a ready-to-go WS server and how to implement it, including references to previous topics to merge everything into one script.

Chapter seven is about the new Forms API. Form functions have been present in HTML for a long time, but form validation and things like calendars where not possible using HTML only. Many sites use JavaScript to enhance a forms functions. With the new Forms API it`s not necessary to introduce complex JavaScript codes. The chapter starts with the new form elements which are present in HTML 5. Next in the chapter is the use of a range selector, the calendar, the placeholder, autocomplete , autofocus, min/max, step, list and required attributes. Also new in HTML 5 is the forms validation possibility. Of course this is also explained in the book.

On to chapter eight, another much requested feature in HTML is Web Workers, which allow multiple JavaScript threads to be run simultaneously. First the basics of the Web Workers API are explained. Later on a CPU intensive JavaScript image blur effect is programmed and later on sliced into pieces which use the Web Worker API.

The Web Storage API is explained in chapter nine. The Web Storage API replaces cookies. With the new API the limitations of cookies are past. The API can also be used as a caching API so websites respond quicker. The chapter begins with setting and receiving a session storage item. Later on local storage is explained. As an example a distance away from finish is used. This uses content discussed in previous chapters to demonstrate a site which uses multiple techniques like web workers, the geolocation API and web workers.
At the end of the chapter the browser database storage “Web SQL” and JSON is explained.

Chapter ten is about creating offline web applications using HTML 5. Offline web applications are different from the web storage API. With the offline web application API it`s possible to create a fully working site using HTML, JavaScript and CSS. The chapter starts with creating a simple updateably site. Next step is adding content introduced in previous chapters and linking it together.

The final chapter (eleven) is about the future of HTML 5. It contains information about WebGL, the audio data API, touchscreen support and peer-to-peer networking and it contains examples if possible.

What I did like about the book is the how clear every chapter is. Every chapter starts with an introduction, a bit about which current browsers support the codes in the chapter, a workaround to check if the user is able to use the code and every chapter ends with a summary.
The images are a necessary to show things without the need to reprogram a piece of code. Like most programming books, the codes which are used in the book are available as download on the publishers website.

The book promises you will learn to develop web applications using HTML 5 features and APIs and how to combine these (with other) web technologies. After reading this book I felt that I now have the skills necessary to develop websites which use the new HTML 5 APIs.

After reading this book I didn`t feel like there was stuff I don`t know. The only thing left for me to do is reading Beginning HTML5 and CSS3: Next Generation Web Standards – which came out at the same time as this book.

Why would you buy this book? The is no other book on the market right now which is as good as this one when it comes to the HTML 5 APIs. The book doesn`t explain HTML 4 content, as I hoped for.

Did I like the book? Yes, and I’m very happy to have this book. I’m very sure I am going to use this book a lot in the next few months.

Are there any things I would like to see improved in this book? Since HTML 5 is very experimental, I think a re-issue of this book could come out after a few years featuring some new things which are going to happen in that time spam.

More information can be found on the official Apress book link.

Pro HTML 5 Programming: Powerful APIs for Richer Internet Application Development

By Peter Lubbers, Brian Albers, Frank Salim

ISBN13: 978-1-4302-2790-8

ISBN10: 1-4302-2790-7

304 pp.

Published Sep 2010 by Apress

Website www.apress.com/book/view/1430227907

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.