Web Design World Flickr

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    10 Favorites & 2 Groups

    Web Design World Flickr - Presentation Transcript

    1. Flickr A Case Study in Rich Internet Application Development Cal Henderson
    2. Hi
      • Cal Henderson
      • Flickr Architect
      • Yahoo! Inc
    3.  
    4. flickr.com
      • Over 2 million users
      • Over 93 million photos
      • 368 TB of hard disk space
        • (376,832 GB)
    5. 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
    6. A flickr history
      • Our two year birthday is next week – come to our party!
      • Saturday 11 th February
      • http://upcoming.org/event/51807
      • There will be cake
    7. Vancouver, BC (not in America)
    8. A flickr feature tour
      • Photos!
      • On web pages!
    9.  
    10. A flickr feature tour
      • How does it differ from other photo management services?
      • Social network based
      • Collaborative metadata
      • Community aggregation
    11.  
    12.  
    13.  
    14.  
    15.  
    16. 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
    17. Hardware architecture Storage Servers Database Servers Web Servers Interweb
    18. Software architecture Application Logic Page Logic Templates API Client / Browser AJAX
    19. AJAX
      • What’s that all about?
      • Asynchronous Javascript and XML
        • Jesse James Garret, AP, Feb 2005
      • Previously called “remoting”
        • Google maps, Gmail, Flickr et al
    20. AJAX History
      • Started out as loading scripts into <iframe> ‘s or writing <script> tags into the document
      • Microsoft created XmlHttpRequest (1998)
        • Everyone else followed suit
      • JSON appeared in 2005
        • Javascript object notation
    21. The roundtrip
      • User initiates action
      • Browser makes background request
      • Server does it’s thing
      • Server responds
      • Javascript in browser executes to handle response
      • Response is displayed somehow to user
    22. The roundtrip
      • User initiates action
      • Browser makes background request
      • Server does it’s thing
      • Server responds
      • Javascript in browser executes to handle response
      • Response is displayed somehow to user
    23. 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
    24. 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 don’t care if it came back as XML-RPC, REST or JSON
    25. Debugging AJAX Apps
      • AJAX applications are harder to debug than static web pages
        • The client or server could be at fault
        • You can’t see what’s happening
      • We need special tools to:
        • See what gets sent over the wire
        • See what our code is doing
    26. Debugging AJAX Apps
      • The simplest way to see what’s going on is to echo things out to the browser
      • That’s what alert() was built for, right?
    27.  
    28.  
    29. Avoiding alert()
      • alert() isn’t always the best solution
      • If we want to dump a lot of data, creating a “debugging window” within the application makes our lives easier.
    30.  
    31. 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 we’re sending the right requests and that the server is acting as we expect
    32. Ethereal
      • Ethereal lets us grab and analyze all network traffic
        • http://www.ethereal.com/
        • Windows, Linux, Mac (via fink)
    33.  
    34. Sniffing the wire
      • This is great to see what’s going on, but it’s 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
    35. Fiddler
      • Fiddler from Microsoft
        • http://www.fiddlertool.com/
        • Free
        • Windows only
        • Works best with IE, but also works with FF
    36.  
    37. Debuggers
      • Beyond looking at the traffic, we need to be able to see what’s 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 ;)
    38. Visual Studio
      • Microsoft have a free version of Visual Studio (Visual Studio Express) which contains their IE debugger
        • http://msdn.microsoft.com/vstudio/express/
      • Full debugger environment
        • Watch lists
        • Breakpoints
        • Stack tracing
    39. Venkman
      • For those of you with a Firefox preference, Venkman provides the same features
        • http://www.mozilla.org/projects/venkman/
        • Free
        • Open source
        • Quite ugly
    40.  
    41. Dynamic pages
      • Now that we routinely manipulate the DOM, we don’t always know what state the “source” of the page is in
      • New tools help us introspect the DOM on the fly
    42. Firefox
      • Choose ‘custom’ install when installing Firefox
      • Adds a “DOM Inspector” option to the tools menu
    43.  
    44. IE Dom Tools
      • IE Instant Source Viewer
        • http://www.blazingtools.com/is.html
      • IE Dom Inspector
        • http://www.ieinspector.com/dominspector/
      • IE Developer Toolbar & Dom Explorer
        • http://www.microsoft.com/downloads/ details.aspx?FamilyID =e59c3964-672d-4511-bb3e-2d5e1db91038
    45.  
    46. 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
    47. 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
    48.  
    49. Web 2.0?
      • Web 2.0 is the talk of the town
      • Web 2.0 isn’t all about AJAX
      • What can we learn from Web 2.0?
    50. Five ways to love web 2.0
      • Collaboration
        • Embrace collaborative metadata
        • Don’t ghettoize your users
    51.  
    52. Five ways to love web 2.0
      • Aggregation
        • Use the data you have
        • Create new avenues of exploration
        • Present new views on old information
    53.  
    54. Five ways to love web 2.0
      • Open APIs
        • Help 3 rd party developers to help you
        • Eat your own dog food for AJAX
    55.  
    56. Five ways to love web 2.0
      • Unicode
        • Aim for I18n/L10n from the outset
        • Don’t forget the rest of the world
    57.  
    58. 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
    59.  
    60. Questions?
    61. Thank you These slides are available from the conference website and at http://iamcal.com/talks/

    + royansroyans, 3 years ago

    custom

    5363 views, 10 favs, 2 embeds more stats

    http://www.iamcal.com/talks/

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 5363
      • 5347 on SlideShare
      • 16 from embeds
    • Comments 0
    • Favorites 10
    • Downloads 182
    Most viewed embeds
    • 15 views on http://rapd.wordpress.com
    • 1 views on http://74.125.47.132

    more

    All embeds
    • 15 views on http://rapd.wordpress.com
    • 1 views on http://74.125.47.132

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories