Friday, January 18, 2008

Creating Mashups for Fun and Venture Capital

Although dynamic, integrated web applications (often called "mashups") are increasing in number and popularity, very few manuals or guides exist that take the user step-by-step through the process of creating them. PHP Web 2.0 Mashup Projects, by Shu-Wai Chow, and published by Packt Publishing (http://www.packtpub.com), provides valuable step-by-step instructions. With this book, uses will have strategies for using the customizable homepage platforms such as iGoogle and MyYahoo, which allow users to take advantage of the client-side Javascript scripting language and the always-growing list of "gadgets," which are applications that retrieve information from a database and then display them in the central site. It could also enable a user to build gadgets that could attract venture capital if they could form the basis of a viable business.



The term, "mashup" can be misleading. After all, ordinary web users who copy and paste code into their blog templates in order to add search tools, questionnaires, polls, maps, and links to products in order to provide functionality and entertainment for their visitors may not realize they are creating mashups. They may not have any idea that the functional chunks of code they're importing can be called "gadgets" or "widgets" and that the dynamic links to books and products illustrate a "long tail" approach to marketing.

What those web users would acknowledge is that they appreciate how exciting it is to be able to generate your own dynamic web applications and to put them on a single page. They would love to be able to do more. For those users, Mashup Projects is ideal.

PHP Web 2.0 Mashup Projects starts from the beginning and defines a mashup as an application that allows users to "remotely consume services like Google Maps, Flickr, Amazon, YouTube, MSN Search, Yahoo!, Last.fm, and the Internet UPC database, not to mention the California Highway Patrol Traffic data" (preface) and more. The author acknowledges that many users will not really want to have to write PHP code, nor will they necessarily have server-side privileges.

Typical dynamic, integrated web applications / mashups fall into a few well-established catagories:

Maps
Social Networks
Photographs
Demographics
Financial Information
E-Commerce
Ads
Calendar
Dictionaries
Language Translation

Mashup Projects explains which platforms enable users to bring together already written scripts in order to have the functionality of a mashup. Examples include iGoogle, MyYahoo, amazon, MySpace and others. This is a kind of mashup "lite" since the user will not actually be writing any scripts to create a unique gadget, or to modify an existing gadget.

There is money to be made in gadget-building, and Google realizes this. In fact, one can apply for funding to support building a gadget, if the idea is sound enough, and useful for Google. One can submit a proposal and receive $5,000 for funding the venture through Gadget Ventures (http://www.google.com/gadgetventures/). If a viable business can be built around the gadget, up to $100,000 is available as startup capital from Google.

Google provides a guide, but it is quite minimal. Mashup Projects could be a perfect book for those who wish to develop a Google Gadget, and then obtain funding for a startup venture. (Example: building an application for http://shoppingmallzombies.com/)

Mashup Projects begins with Amazon, one of the friendliest databases around, which actively encourages individuals to dynamically retrieve information in order to sell it. Chapter 2 shows the user how to work with an XML-RPC structure, which forms the core of the dynamic retrieval function of mashups. The request and retrieval functions are clearly details. In addition, the chapter discusses how to use other types of requests, including REST.

Readers will be able to practice projects in by following the Chow's step-by-step instructions. The user can make his or her own search engine using PHP SOAP, and then can build his or her own Video Jukebox. The process is clear and it moves from the simple to the complex, starting with writing the application and then "mashing up."

Chapter 5 shows the user how to create a mashup using public safety data and maps to predict traffic snarls and situations. Chow very responsibly discusses the ethical issues involved in a "screen scrape" and that one should always seek approval to pull data from that is displayed on one's website and importing it into one's own site.

Chapter 6 shows how to integrate maps and image repositories (Google maps and Flickr). Chow builds the mashup around data on the London Tube.

For the more sophisticated web user and web programmer with experience with servers, creating mashups can be one of the most satisfying activities around. It allows one to demonstrate very creative thinking by being able to bring together unrelated clusters of information -- unrelated databases, unrelated web applications - and to uncover really amazing and unique aspects. For example, shmapplets.com (http://www.shmapplets.com) brings together city maps, photographs, cultural information, and personal information to create virtual tours. As an example of a mashup that has been created by a user and made available for the public free of charge, schmapplet is pretty typical. It's a great application, but it has a number of rough edges and limitations, which I found when I started to create my own schmapplet of Oklahoma City: http://www.schmap.com/published/beyondutopia/1267/

However, very effective mashups exist, with and without glitches, and they provide the user with very valuable information. There are a few very important considerations, which should be mentioned.

First, there are ethical considerations in developing some mashups. Chow discusses issues involved in "screen scraping" and he touches on the questions one should ask oneself when putting together information that could be confidential or lead to security and/or privacy breaches.

Second, there are important data quality issues that must be addressed. The mashups are only as good as the information that is retrieved. How do you know that the information is valid? Are important business decisions being made on the basis of the information retrieved in a mashup? Some serious errors could be made if the maps are out of date, the customer reviews are biased (or completely inaccurate), and other information is flawed.

Caution should be used when creating mashups. Good planning is of paramount importance. Shu-Wai Chow's PHP Web 2.0 Mashup Projects (Packt Publishing 2007) is a valuable tool.

Blog Archive