Tuesday, May 22, 2007

Travelling...

In case anyone is reading this I currently am tracking my travel progress at my travel blog: http://joelzimmer.blogspot.com/.

Tuesday, May 08, 2007

Bring Back the Jets! (On Silly Campaign Promises)

Hopefully this doesn't come as a surprise to too many of you, but I'm from Winnipeg. Shocking I know. While we are home to a few things (woo being the coldest city in the world with a population over 600,000!) and the close-to-host of major television drama Falcon Beach (now canceled), the one thing we are most famous for would be the Winnipeg Jets.

For those of you that don't know, the Winnipeg Jets were not only a NHL team, but they were our NHL team. Granted, they were pretty awful (ok, really awful), they still provided entertainment, and more importantly, let me see the real greats of the times (Gretzsky, Bure, etc) at my home rink. It was pretty awesome. It's still a dream of many Winnipeggers, even now, to have the Jets back. That being said. It's really just a dream.

Then this morning we got this bombshell:

Tory Leader Hugh McFadyen issued the flashiest election promise of the campaign Monday, pledging the Winnipeg Jets will be back on home ice by 2011. (Winnipeg Free Press)
I'd like to thank the Conservative party for going right back to their elementary school politics. This seriously reminds me of the days when the School President would promise something ridiculous, like Coke in the drinking fountains or better food in the cafeteria). While the promise of bringing the Jets home is slightly more realistic (the article does bring up ways to finance the team, but the fact is it that it still costs money, and will cost people money, which is something people don't like giving up), it still stands on the same ground. Why are they appealing to hockey-crazy kids rather than making promises they can keep that would benefit us? Why aren't they improving roads, or making Winnipeg a better place to live?

So I just want to say thanks, Conservatives. You've really shown your maturity.

In other news, its remarkably fun to hang up on people you don't want to talk to. Especially telemarketers.

Friday, May 04, 2007

So, You All Rule. Oh and I Saw Spiderman

Well, I could say thanks to each of you individually, and while I will to some of you, I will say a huge thank you to all of those who wished me a happy birthday, even if you were a bit early, or late (i.e. you still haven't wished me happy birthday and have). I had a grand day of figuring out what clothes didn't fit me anymore and dutifully putting them in my basement until the clothes fairy replaces them or something like that. You all rule.

I saw Spiderman 3! Now, I was a bit disappointed for the second one, mainly because I felt that I spent 2 and a half hours waiting for him to say "I Love You" and that kind of made me want to stab myself in the mouth, but I mended my thoughts and gave it ago, and I'd have to say, well done.

The animation was incredibly well done, from Spidey flying through the air actually looking more like a person rather than a fluid, and Sandman was incredible, I can't imagine how much work went into a particle system like that. There's one more thing, Venom was incredible, they kept him completely under wraps throughout the entire development process and, wow, did he look great. The movie had some hilarious moments, mainly emo-Peter Parker, but also in Bruce Campbell's cameo and pretty much every conversation that involved the butler. I recommend it! But you probably want to wait for the lines to not be so busy.

Oh I also saw previews for Shrek 3 and Pirates of the Caribbean 3! This certainly will be a summer of awesome movies that I will eventually have to rent.

Anyway, thanks again for the birthday wishes. You all rule.

Wednesday, May 02, 2007

Israel Itinerary!

Holy Moses Batman! I just got my Israel itinerary, and it looks mind blowingly awesome. From tree planting to Shabbat at the Kotel (celebrating the holiest day of the week at the holiest site in Judaism) on the FIRST DAY to walking through water tunnels, excavating at archaeological digs, climbing mountains, rafting in rivers, riding camels, and sleeping in Bedouin tents, this will not be a trip I will EVER forget.

Be sure to stay tuned for pictures when I leave next week.

AJAX: Empowering Users through Interaction

This is the last of 4 essays I had to write for one of my final classes in University. Enjoy.

Motivation

Web applications allow organizations to deliver content to their users through a Website accessed on an Internet browser, like Mozilla Firefox or Microsoft Internet Explorer. Usually this content is stored in a database which resides on a remote server; it is accessed through queries, which can usually be customized or entered by the user through Web forms on various Web pages.[i]

Asynchronous Javascript and XML (AJAX) is a name for a set of technologies that allow Web applications to improve their responsiveness and create a better user experience, similar to that of a desktop application.[ii]

Technological Overview

AJAX is a term coined by Jesse James Garrett of Adaptive Path to explain how the interactions between a set of technologies could improve user experience.[iii] These technologies are: the Document Object Model (DOM) to dynamically display and interact with information, XML – or any other document type – to manipulate data, XHTML and CSS for standards-based presentation, XMLHttpRequest for asynchronous data retrieval, and Javascript to communicate and bind it together.

A subset of these technologies has been standardized by the World Wide Web Consortium (W3C). The reasonable adoption of these standards by major Internet browsers starting in 2000 has allowed semantically correct Web pages to be presented accurately across all supported platforms.[iv]

Dynamic Display and Interaction: DOM

The DOM acts as an API that allows for programmatic access of the elements of a Web page.[v] As with APIs in general, this provides the ability for a number of different languages to access the contents of the entire page and manipulate them accordingly by adjusting their position and properties.[vi] The DOM is used by AJAX to allow the page to be dynamically changed on an as-needed basis.

Data Manipulation: XML

W3C’s eXtensible Markup Language (XML) allows the developer to create documents containing structured information. It allows for the creation of custom elements to identify structures within a document.[vii] XML is the best technology to handle communication through requests as it provides the most structure; alternatives such as plain text and Javascript’s Object model are possible as well.[viii]

Standards-Based Presentation: XHTML and CSS

Extensible Hypertext Markup Language (XHTML) and Cascading Style Sheets (CSS) are standards set out that respectively dictate both structural and presentation languages.[ix]

The use of XHTML and CSS reduces development time through validation, which can significantly reduce the time taken to ensure the compatibility of Web pages across browsers.[x] The separation of content from presentation also allows for the simple replacement of either element in the page without disrupting the state of the application. Other benefits that result from the use of these standards include accessibility and internationalization.[xi] Combined with the DOM, using standards enables pages to be dynamically generated and easily changed.

Asynchronous Data Retrieval: XMLHttpRequest

The XMLHttpRequest serves as a connection to the remote server hosting the data to be requested. It allows for data to be encapsulated, which prevents business specific mechanisms of the Web Application from being accessed by the public. The key element in improving user experience comes from the fact that requests can be sent to and received from the remote server without disturbing the user’s experience.[xii] This means that while a user is typing information into a form, a database can be queried and information can be suggested, much like the Google Suggest feature offered by Google.

Connecting the Dots: Javascript

Javascript is a dynamic object-oriented general-purpose programming language that is bundled with nearly every Internet browser available.[xiii] It allows logic to be added to the page to give feedback to users.[xiv]

Javascript is used to instantiate the XMLHttpRequest object, which uses XML – or another text format – to send messages to the server. These are messages are then in turn interpreted through other methods, which can manipulate the DOM by using the design set out using the standards with XHTML and CSS[xv]

AJAX: Bringing It Together and Improving Experiences

AJAX alters the flow of requests in a Web application by adding an extra layer – the XMLHttpRequest – that communicates asynchronously with the server to give the users an uninterrupted experience while using a Web application.

Traditionally, Web applications respond to requests mapped to user actions within the interface. This implies that submitting information in a form results in the server processing and returning a Web page to the client browser; while the server is processing, the user must wait. Each task completed by a user requires waiting, which makes for a negative experience.[xvi]


AJAX aims to remove a bulk of this waiting through asynchronous communication.

Unlike traditional Web applications, user actions are encapsulated in Javascript calls to the AJAX layer. This enables some of the interactions of application – data validation, editing data in memory, and some navigation – to be handled by AJAX, which can vastly improve user experience. Actions that require a longer time to process are requested asynchronously and do not interrupt the user’s interaction with the application.[xviii]

The use of this technology is exemplified in Flickr. Managing information about a picture, such as changing the name or description can be done inline, where as retrieved sets of pictures takes slightly longer as it requires more data.

What does this have to do With Me? Societal Impact

AJAX enables Web applications to be more interactive and function like applications developed for the desktop. This has lead to the increased use of these applications, especially in the reincarnation of online business, labelled Web 2.0. AJAX technology has enabled online office suites – like Google Docs and Spreadsheets – to allow remote access to documents from any computer. These two examples show that AJAX can be used to improve the purpose of the Internet by allowing a user to post his own content in an easier way, or collaborate on information to make it more correct.

Since AJAX changes the way Web applications deliver pages to the user, the entire process by which page hits and advertisements are delivered must be changed, which results in a major financial burden to the industry. Another major concern involves the security of hosting data on a remote server which multiple users have access to and the ability to track all information and store it on a remote server.

User Driven Internet: Web 2.0 – Interactivity and Content

The Websites of the Internet have undergone a fairly major change recently, so much so that they have been relabelled as Web 2.0. Web 2.0 is a concept used to describe Websites that have succeeded after the dot-com bubble burst; it focuses on user-driven content and using the Web as a platform.[xix]

Websites that have been labelled as Web 2.0 include Digg (http://digg.com/) and Flickr (http://flickr.com) and make extensive use of AJAX to improve the experience, bringing an end-to-end experience to their users by offering unique interactions, such as increasing the number of votes (“diggs”) for a particular Website within the page or editing the name or description of a picture inline. The use of AJAX by a Website or Web application does not necessarily mean it is Web 2.0, however it provides for a richer user experience.[xx]

By granting its users the best experience possible, the purpose of Web 2.0 sites – user-driven content and social networks – is much easier to achieve as it can be more popular. [xxi] Socially, this enables developers to create Web applications that a user can interact with to improve the experience of other users online.

Collaboration Online: Online Productivity Tools

The ability to request and write information without interrupting user interaction enables AJAX-based applications to move from additive to collaborative. Google Docs & Spreadsheets allows a document to be accessed and edited online by multiple users at the same time.

This not only enables a number of people to create and maintain documents effectively over large distances. It also provides an accessible, mobile means to store information. This enables productivity to increase and grants the ability for people who may have not been able to communicate to collaborate and create useful content.

Forcing an Industry to Change: Tracking Page Hits & Delivering Advertising

By replacing the traditional model of Web applications with asynchronous communication, Web applications that employ AJAX technology lose the ability to track page hits and serve advertisements to pages.

Traditionally, page views were traditionally used as a metric to gauge the popularity and success of a particular Web page. As AJAX-based pages such as Google and Yahoo Maps are becoming popular, measuring page visits becomes much more of a challenge.[xxii] As a result of this challenge, new, more creative ways of creating a basis for ranking the popularity of Websites must be created.

There have been attempts to measure the popularity of a Webpage; however these sites rely on the participation of users and can be swayed through manipulating algorithm (e.g. Digg). Other Websites, such as Alexa which measures Web usage information – what is being seen online and from which site – which can also be effective.[xxiii]

User Safety: Storing Data Remotely and Tracking Users

The highest risk that AJAX presents is the ability of the XMLHttpRequest object to track a user’s interactions in an AJAX-enabled Web application. This is a major change, as traditionally a Web application could only track what information was submitted to the server, where as now all information can be saved as it is entered on the screen.[xxiv] In the case of user-driven content or office productivity suites, the ability of an organization to be able to host a user’s personal documents or files requires a lot of trust to be placed in the hands of the organization and the developers of that application.

Both of these issues are a large matter of trust from both the user to the organization, and the organization to the user. The user assumes that the organization will respect the privacy to a reasonable degree as set out in their terms of service, while organizations expect that the interactions with the Website and content are legally owned by the user.

Conclusions

AJAX is a term that describes the interaction between a number of standards-based technology: XHTML/CSS, XML, XMLHttpRequest, Javascript and the DOM; it allows Websites to be more interactive by pushing simple processing to the client and accessing larger sets of data asynchronously.

AJAX can be used to create more positive, fuller user experiences online that can equate Web applications with desktop applications. It provides a way for the Internet to be more collaborative and driven by user content. While it has its benefits, it also gives more power to organizations to track user’s progress and observe trends. Storing data remotely is at the risk of the user.

Recommendations

AJAX, as it currently exists, provides an excellent opportunity for developers to easily and quickly develop attractive and interactive applications for the Internet. By making use of client processing power as opposed to making users wait for responses to actions navigation can be more fluid while page elements can be simpler.

AJAX enables people to interact more effectively online and should be used to balance out waiting times to encourage a more collaborative Internet. Web sites like Wikipedia are key examples where collaboration can produce correct information.

Organizations that provide AJAX Web applications should be clear in defining terms of service that include details on:

· what user information is tracked;

· how data is stored, the security, and intended use;

· and how data breaches and losses will be dealt with;

Additionally, some mechanism by which users can observe the information an organization has stored about them would aide the user in understanding how the organization tracks their use of the application.

AJAX can be an extremely beneficial technology that can improve the way applications are designed and used. As long as the data is dealt with in a legal and responsible matter, AJAX can be leveraged as a productivity tool that increases social awareness online.



[i] “Definitions” (http://www.state.tn.us/guidelines/d.html ). Accessed March 27, 2007.

[ii] Garrett, Jesse James. “Ajax: A New Approach to Web Applications” Adaptive Path. (http://www.adaptivepath.com/publications/essays/archives/000385print.php) February 18, 2005. Accessed March 25, 2007.

[iii] Garrett, ibid.

[iv]MissionWeb Standards Project. (http://www.Webstandards.org/about/mission/) 2006. Accessed March 27, 2007.

[v] Holzschlag, ibid.

[vi] “About the W3C Document Object Model” MSDN Library. (http://msdn.microsoft.com/workshop/author/dom/domoverview.asp) 2007. Accessed March 27, 2007.

[vii] Walsh, Norman. “A Technical Introduction to XML: What is XML?” O’Reilly. (http://www.xml.com/pub/a/98/10/guide0.html?page=2#AEN58). 2006. Accessed March 27, 2007.

[viii] Garrett, ibid.

[ix] “Mission”, ibid.

[x] Veen, Jeffery. “The Business Value of Web Standards” Adaptive Path. (http://www.adaptivepath.com/publications/essays/archives/000266.php). September 18, 2003. Accessed March 27, 2007.

[xi] Holzschlag, Molly E. and Kaiser, Shirley E. “Frequently Asked Questions (FAQ) – The Web Standards Project” The Web Standards Project. (http://www.Webstandards.org/learn/faq/). February 27, 2002. Accessed March 27, 2007.

[xii] McLellan, Drew. “Very Dynamic Web Interfaces” O’Reilly. (http://www.xml.com/pub/a/2005/02/09/xml-http-request.html) February 9, 2005. Accessed March 27, 2007.

[xiii] Crockford, Douglas. “Javascript: The World’s Most Misunderstood Programming Language” (http://www.crockford.com/javascript/javascript.html) 2001. Accessed March 27, 2007.

[xiv] McLellan, Drew. ibid.

[xv] McLellan, Drew. ibid.

[xvi] Garrett, ibid.

[xvii] Garrett, ibid.

[xviii] Garrett, ibid.

[xix] O’Reilly, Tim. “What is Web 2.0” http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-Web-20.html. [ September 30, 2005 ]. Accessed January 8, 2007.

[xx] Boutelle, Jonathon. AJAX != Web 2.0” (http://www.jonathanboutelle.com/mt/archives/2005/07/ajax_Web_20.html). July 29, 2005. Accessed March 28, 2007.

[xxi] Boutelle, Jonathon. ibid.

[xxii] Daboll, Peter. “Time for a new hit” Yodel Anecdotal. (http://yodel.yahoo.com/2006/12/19/time-for-a-new-hit/) December 19, 2006. Accessed March 28, 2007.

[xxiii] “Alexa Company Info” (http://www.alexa.com/site/company/technology) 2007. Accessed March 28, 2007.

[xxiv] Castledine, Earle. “Using the XMLHttpRequest Object and AJAX to Spy On You” (http://www.devx.com/Webdev/Article/28861). August 9, 2005. Access March 28, 2007.