Flickr A Case Study in Rich Internet Application Development Cal Henderson.

Slides:



Advertisements
Similar presentations
User meeting June Monthly and Seasonal forecasts Laura Ferranti and the Seasonal Forecast Section User meeting June 2006.
Advertisements

April eGMS Spring 2006 Workshops. Illinois State Board of Education – April eGMS Basics – Required Hardware PCs (Windows 98,
Scalable Web Architectures Common Patterns & Approaches Cal Henderson.
Facts about Welcome to this video from Ozeki. In this video I will present what makes Ozeki Phone System XE the Worlds best on-site software PBX for Windows.
1 1 Amr ElAdawy Web UI - Dev Tools. 2 2 Agenda Objectives Firefox Add-ons IE tools. Introduction References.
1 23 maart 2006 Surface construction techniques for volumetric objects How to maintain convex and concave features? Eddy Loke and Erik Jansen.
April 28, Alberta Energy Information Exchange.
© Ken Meter, Ken Meter Crossroads Resource Center (Minneapolis) Finding Food in Sarasota County Photo: Team Santa Rosa.
THHGCS07B Coordinate Marketing Activities Lecture 2.
 2008 Pearson Education, Inc. All rights reserved Web Browser Basics: Internet Explorer and Firefox.
Developing HTML5 Application using MVVM pattern Pekka Ylenius.
Server-Side vs. Client-Side Scripting Languages
AJAX Presented by: Dickson Fu Dimas Ariawan Niels Andreassen Ryan Dial Jordan Nielson CMPUT 410 University of Alberta 2006.
Cloud Computing Lecture #7 Introduction to Ajax Jimmy Lin The iSchool University of Maryland Wednesday, October 15, 2008 This work is licensed under a.
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
Does Ajax suck? CS575 Spring 2007 Chanwit Suebsureekul.
1 JavaScript & AJAX CS , Spring JavaScript.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
A closer look Dynamic Webpages Jessica Meyerson March 1, 2011.
Part or all of this lesson was adapted from the University of Washington’s “Web Design & Development I” Course materials.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
Prof. James A. Landay University of Washington Spring 2008 Web Interface Design, Prototyping, and Implementation Rich Internet Applications: AJAX, Server.
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
Presented by…. Group 2 1. Programming language 2Introduction.
Building Public Facing Websites with SharePoint 2010 Prepared for ILTA’s SharePoint for Legal Symposium June 16 th, 2010 George Durzi Principal Consultant.
JavaScript & jQuery the missing manual Chapter 11
1 Ajax. 2 What’s Ajax? AJAX is a combination of a few technologies that has come together in the past few years AJAX used to be an acronym for Asynchronous.
Philly.NET Hands-on Labs JAVASCRIPT SERIES. July 9: JavaScript Syntax Visual Studio ◦Projects ◦Editors ◦Debugging ◦Script blocks ◦Minification and bundling.
May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Build Great Web Application 'Fast and Easy'
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
AJAX Without the “J” George Lawniczak. What is Ajax?
JavaScript, Fourth Edition Chapter 12 Updating Web Pages with AJAX.
Ajax Technology for the Web Nic Shulver, FCET, Staffordshire University Introduction What is it? Pros and Cons Why is it important? Traditional Client-Server.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Unit 1 – Web Concepts Instructor: Brent Presley. ASSIGNMENT Read Chapter 1 Complete lab 1 – Installing Portable Apps.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Lesson 19. JavaScript errors Since JavaScript is an interpreted language, syntax errors will usually cause the script to fail. Both browsers will provide.
06/10/2015AJAX 1. 2 Introduction All material from AJAX – what is it? Traditional web pages and operation Examples of AJAX use Creating.
Instructor, Dr. Khalili Bahram Jeevan Kumar Gogineni.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Understanding AJAX Hype, Hope, Hurt and Help for the Web MJTS May 4th, 2006 _________________________ Terence Conklin, Conklin Systems
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Random Logic l Forum.NET l AJAX Behind the buzz word Forum.NET ● January 23, 2006.
Introduction to Programming the WWW I CMSC Summer 2003 Lecture 7.
Building Rich Web Applications with Ajax Linda Dailey Paulson IEEE – Computer, October 05 (Vol.38, No.10) Presented by Jingming Zhang.
INNOV-7: Building a Richer UI for the Browser Chris Skeldon Senior Solution Consultant.
Google Apps and Education Jack Nieporte St James of the Valley
INT222 - Internet Fundamentals Shi, Yue (Sunny) Office: T2095 SENECA COLLEGE.
Chapter 27 Getting “Web-ified” (Web Applications) Clearly Visual Basic: Programming with Visual Basic nd Edition.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
AJAX and REST. Slide 2 What is AJAX? It’s an acronym for Asynchronous JavaScript and XML Although requests need not be asynchronous It’s not really a.
IE Developer Tools Jonathan Seitel Program Manager.
INNOV-2: Build a Better Web Interface Using AJAX Chris Morgan Pandora Software Systems
Web Technology (NCS-504) Prepared By Mr. Abhishek Kesharwani Assistant Professor,UCER Naini,Allahabad.
COM: 111 Introduction to Computer Applications Department of Information & Communication Technology Panayiotis Christodoulou.
Excel Services Displays all or parts of interactive Excel worksheets in the browser –Excel “publish” feature with optional parameters defined in worksheet.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
NCCUCS 軟體工程概論 Lecture 5: Ajax, Mashups April 29, 2014.
Open Solutions for a Changing World™ Eddy Kleinjan Copyright 2005, Data Access WordwideNew Techniques for Building Web Applications June 6-9, 2005 Key.
Ajax & Client-side Dynamic Web Gunwoo Park (Undergraduate)
Chapter 1 Getting Started with ASP.NET Objectives Why ASP? To get familiar with our IDE (Integrated Development Environment ), Visual Studio. Understand.
Web Programming Language
Web Mashups -Nirav Shah.
Data Virtualization Tutorial… CORS and CIS
AJAX and REST.
AJAX.
Types of Spatial Data Sites
MIS JavaScript and API Workshop (Part 3)
Types of Spatial Data Sites
Introduction to AJAX and JSON
Presentation transcript:

Flickr A Case Study in Rich Internet Application Development Cal Henderson

Web Design World, 30 th January Hi Cal Henderson Flickr Architect Yahoo! Inc

Web Design World, 30 th January 20063

4 flickr.com Over 2 million users Over 93 million photos 368 TB of hard disk space –(376,832 GB)

Web Design World, 30 th January A flickr history Flickr started out as a Massively Multiplayer Online Game called Game Never Ending On February 10 th, 2004, Flickr was launched at the Emerging Technology Conference

Web Design World, 30 th January A flickr history Our two year birthday is next week – come to our party! Saturday 11 th February There will be cake

Web Design World, 30 th January Vancouver, BC (not in America)

Web Design World, 30 th January A flickr feature tour Photos! On web pages!

Web Design World, 30 th January 20069

10 A flickr feature tour How does it differ from other photo management services? Social network based Collaborative metadata Community aggregation

Web Design World, 30 th January

Web Design World, 30 th January

Web Design World, 30 th January

Web Design World, 30 th January

Web Design World, 30 th January

Web Design World, 30 th January Flickr architecture Flickr is powered by a bunch of hardware in Texas and Virginia –A few hundred boxes It can be broken down into 3 chunks: –Web serving –Photo storage / serving –Databases

Web Design World, 30 th January Hardware architecture Storage Servers Database Servers Web Servers Interweb

Web Design World, 30 th January Software architecture Application Logic Page Logic Templates API Client / Browser AJAX

Web Design World, 30 th January AJAX Whats that all about? Asynchronous Javascript and XML –Jesse James Garret, AP, Feb 2005 Previously called remoting –Google maps, Gmail, Flickr et al

Web Design World, 30 th January AJAX History Started out as loading scripts into s or writing tags into the document Microsoft created XmlHttpRequest (1998) –Everyone else followed suit JSON appeared in 2005 –Javascript object notation

Web Design World, 30 th January The roundtrip User initiates action Browser makes background request Server does its thing Server responds Javascript in browser executes to handle response Response is displayed somehow to user

Web Design World, 30 th January The roundtrip User initiates action Browser makes background request Server does its thing Server responds Javascript in browser executes to handle response Response is displayed somehow to user

Web Design World, 30 th January Browser compatibility Sounds too easy? Luckily all the browsers implement XmlHttpRequest slightly differently We can avoid the grief by wrapping the different implementations in a simple library For all browsers we just make a request and receive a response, hiding the ugliness

Web Design World, 30 th January AJAX Abstraction In fact, we care even less about the implementation when trying to get things done We can abstract away the entire request/response cycle, hiding the protocol We just receive a Javascript object – we dont care if it came back as XML-RPC, REST or JSON

Web Design World, 30 th January Debugging AJAX Apps AJAX applications are harder to debug than static web pages –The client or server could be at fault –You cant see whats happening We need special tools to: –See what gets sent over the wire –See what our code is doing

Web Design World, 30 th January Debugging AJAX Apps The simplest way to see whats going on is to echo things out to the browser Thats what alert() was built for, right?

Web Design World, 30 th January

Web Design World, 30 th January

Web Design World, 30 th January Avoiding alert() alert() isnt always the best solution If we want to dump a lot of data, creating a debugging window within the application makes our lives easier.

Web Design World, 30 th January

Web Design World, 30 th January Sniffing the wire With AJAX applications, we care about the data going over the wire If we can see the HTTP traffic, we can make sure were sending the right requests and that the server is acting as we expect

Web Design World, 30 th January Ethereal Ethereal lets us grab and analyze all network traffic – –Windows, Linux, Mac (via fink)

Web Design World, 30 th January

Web Design World, 30 th January Sniffing the wire This is great to see whats going on, but its a read-only tool It would be really nice if we could edit requests and responses on the fly to help us test different scenarios

Web Design World, 30 th January Fiddler Fiddler from Microsoft – –Free –Windows only –Works best with IE, but also works with FF

Web Design World, 30 th January

Web Design World, 30 th January Debuggers Beyond looking at the traffic, we need to be able to see whats going on in our guts In the old days, we had to be content with alert() statements and patience In these enlightened days we have debuggers ;)

Web Design World, 30 th January Visual Studio Microsoft have a free version of Visual Studio (Visual Studio Express) which contains their IE debugger – Full debugger environment –Watch lists –Breakpoints –Stack tracing

Web Design World, 30 th January Venkman For those of you with a Firefox preference, Venkman provides the same features – –Free –Open source –Quite ugly

Web Design World, 30 th January

Web Design World, 30 th January Dynamic pages Now that we routinely manipulate the DOM, we dont always know what state the source of the page is in New tools help us introspect the DOM on the fly

Web Design World, 30 th January Firefox Choose custom install when installing Firefox Adds a DOM Inspector option to the tools menu

Web Design World, 30 th January

Web Design World, 30 th January IE Dom Tools IE Instant Source Viewer – IE Dom Inspector – IE Developer Toolbar & Dom Explorer – spx?FamilyID=e59c d-4511-bb3e- 2d5e1db91038http:// spx?FamilyID=e59c d-4511-bb3e- 2d5e1db91038

Web Design World, 30 th January

Web Design World, 30 th January AJAX in the wild We can build whole applications in AJAX, but there are drawbacks Having URLs for resources are important Smushing everything into a single interface gets ugly quickly

Web Design World, 30 th January AJAX in the wild We can use AJAX to allow click-to-edit functionality, avoiding two page roundtrips For discrete pieces of functionality, we can create small AJAX applications –Organizer

Web Design World, 30 th January

Web Design World, 30 th January Web 2.0? Web 2.0 is the talk of the town Web 2.0 isnt all about AJAX What can we learn from Web 2.0?

Web Design World, 30 th January Five ways to love web 2.0 Collaboration –Embrace collaborative metadata –Dont ghettoize your users

Web Design World, 30 th January

Web Design World, 30 th January Five ways to love web 2.0 Aggregation –Use the data you have –Create new avenues of exploration –Present new views on old information

Web Design World, 30 th January

Web Design World, 30 th January Five ways to love web 2.0 Open APIs –Help 3 rd party developers to help you –Eat your own dog food for AJAX

Web Design World, 30 th January

Web Design World, 30 th January Five ways to love web 2.0 Unicode –Aim for I18n/L10n from the outset –Dont forget the rest of the world

Web Design World, 30 th January

Web Design World, 30 th January Five ways to love web 2.0 Open content –Creative commons –Allow your content to live beyond your application –Turn your application into a resource

Web Design World, 30 th January

Questions?

Thank you These slides are available from the conference website and at