Successfully reported this slideshow.
Your SlideShare is downloading. ×

Web 2.0 & Mashups: How People can Tap into the "Grid" for Fun & Profit

Upcoming SlideShare
The Evolution of Web 3.0
The Evolution of Web 3.0
Loading in …3

Check these out next

16 of 48 Ad

More Related Content

Slideshows for you (20)

Similar to Web 2.0 & Mashups: How People can Tap into the "Grid" for Fun & Profit (20)


More from Pamela Fox (20)

Recently uploaded (20)


Web 2.0 & Mashups: How People can Tap into the "Grid" for Fun & Profit

  1. 1. Web 2.0 Mashups : How People Can Tap into the "Grid" for Fun & Profit Pamela Fox USC/Google
  2. 2. What’s Web2.0? <ul><li>“ Web 2.0, a phrase coined by O'Reilly Media in 2004, refers to a supposed second-generation of Internet-based services such as social networking sites, wikis, communication tools, and folksonomies that let people collaborate and share information online in previously unavailable ways.” - Wikipedia </li></ul>
  3. 3. It’s all about the user… <ul><li>The users define the content, rate (“digg”) the content, review the content, create the content, share the content </li></ul><ul><li>What the user wants, the user gets </li></ul><ul><li>The Web isn’t ruled by the relatively static “What’s cool!” directories of the early ’90s </li></ul><ul><li>Now, a website can go from 0 to thousands of hits in 1 day, if other users discover & share it </li></ul><ul><li>Case in point: The Profane Game. Gadget got blogged about Sunday morning, had 6,000 players by day’s end. (compared to 20 the day before) </li></ul>
  4. 4. So what’s a mashup anyway? <ul><li>“ A mashup is a website or application that combines content from more than one source into an integrated experience. Content used in mashups is typically sourced from a third party via a public interface or API . Other methods of sourcing content for mashups include Web feeds (e.g. RSS or Atom ) and JavaScript .” – Wikipedia </li></ul><ul><li>A mashup is the ultimate user-generated content: user likes data source A, data source B, & puts them together how they like. </li></ul><ul><li>* There are also music & video mashups. </li></ul>
  5. 5. Some stats about me… <ul><li>In past 3 months, I’ve entered 3 mashup contests and placed in all of them (1 st /2 nd /3 rd ) - $2000 in winnings, and a Google bean bag… not bad for 3am hacks! </li></ul><ul><li>On, only 2 out of 217 developers have registered more mashups than me </li></ul><ul><li>I now work for Google on the Web API Support team (and I’ve used all of their APIs except AdSense) </li></ul><ul><li>Before July 2006 (8 months ago), I’d never used a Web API </li></ul>
  6. 6. How did I get started in Web 2.0? <ul><li>Or, more appropriately… </li></ul>
  7. 7. How did I not get started in Web 2.0? <ul><li>By watching Geoffrey Fox’s SOAP lectures (Sorry, dad!) </li></ul>
  8. 8. Why not? <ul><li>It could be that I’m dumb, and I’ve entertained that idea many times, but… </li></ul><ul><li>It could be that SOAP/ WS-* isn’t a very attractive entry point for the casual or novice user </li></ul>
  9. 9. What scared me about SOAP? <ul><li>Standards, protocols, standards, formats </li></ul><ul><li>I’ve had a sequence of slides ingrained in my head since a talk I sat on by Geoffrey for USC AIST in 2004 </li></ul><ul><li>I dug them up for you.. Let’s flip through them quickly </li></ul>
  10. 10. A List of Web Services I <ul><li>a) Core Service Architecture </li></ul><ul><li>XSD XML Schema (W3C Recommendation) V1.0 February 1998, V1.1 February 2004 </li></ul><ul><li>WSDL 1.1 Web Services Description Language Version 1.1, (W3C note) March 2001 </li></ul><ul><li>WSDL 2.0 Web Services Description Language Version 2.0, (W3C under development) March 2004 </li></ul><ul><li>SOAP 1.1 (W3C Note) V1.1 Note May 2000 </li></ul><ul><li>SOAP 1.2 (W3C Recommendation) June 24 2003 </li></ul><ul><li>b) Service Discovery </li></ul><ul><li>UDDI (Broadly Supported OASIS Standard) V3 August 2003 </li></ul><ul><li>WS-Discovery Web services Dynamic Discovery (Microsoft, BEA, Intel …) February 2004 </li></ul><ul><li>WS-IL Web Services Inspection Language, (IBM, Microsoft) November 2001 </li></ul>
  11. 11. A List of Web Services II <ul><li>c) Security </li></ul><ul><li>SAML Security Assertion Markup Language (OASIS) V1.1 May 2004 </li></ul><ul><li>XACML eXtensible Access Control Markup Language (OASIS) V1.0 February 2003 </li></ul><ul><li>WS-Security 2004 Web Services Security: SOAP Message Security (OASIS) Standard March 2004 </li></ul><ul><li>WS-SecurityPolicy Web Services Security Policy (IBM, Microsoft, RSA, Verisign) Draft December 2002 </li></ul><ul><li>WS-Trust Web Services Trust Language (BEA, IBM, Microsoft, RSA, Verisign …) May 2004 </li></ul><ul><li>WS-SecureConversation Web Services Secure Conversation Language (BEA, IBM, Microsoft, RSA, Verisign …) May 2004 </li></ul><ul><li>WS-Federation Web Services Federation Language (BEA, IBM, Microsoft, RSA, Verisign) July 2003 </li></ul>
  12. 12. A List of Web Services III <ul><li>d) Messaging </li></ul><ul><li>WS-Addressing Web Services Addressing (BEA, IBM, Microsoft) March 2004 </li></ul><ul><li>WS-MessageDelivery Web Services Message Delivery (W3C Submission by Oracle, Sun ..) April 2004 </li></ul><ul><li>WS-Routing Web Services Routing Protocol (Microsoft) October 2001 </li></ul><ul><li>WS-RM Web Services Reliable Messaging (BEA, IBM, Microsoft, Tibco) v0.992 March 2004 </li></ul><ul><li>WS-Reliability Web Services Reliable Messaging (OASIS Web Services Reliable Messaging TC) March 2004 </li></ul><ul><li>SOAP MOTM SOAP Message Transmission Optimization Mechanism (W3C) June 2004 </li></ul><ul><li>e) Notification </li></ul><ul><li>WS-Eventing Web Services Eventing (BEA, Microsoft, TIBCO) January 2004 </li></ul><ul><li>WS-Notification Framework for Web Services Notification with WS-Topics , WS-BaseNotification , and WS-BrokeredNotification (OASIS) OASIS Web Services Notification TC Set up March 2004 </li></ul><ul><li>JMS Java Message Service V1.1 March 2002 </li></ul>
  13. 13. A List of Web Services IV <ul><li>f) Coordination and Workflow, Transactions and Contextualization </li></ul><ul><li>WS-CAF Web Services Composite Application Framework including WS-CTX , WS-CF and WS-TXM below (OASIS Web Services Composite Application Framework TC) July 2003 </li></ul><ul><li>WS-CTX Web Services Context (OASIS Web Services Composite Application Framework TC) V1.0 July 2003 </li></ul><ul><li>WS-CF Web Services Coordination Framework (OASIS Web Services Composite Application Framework TC) V1.0 July 2003 </li></ul><ul><li>WS-TXM Web Services Transaction Management (OASIS Web Services Composite Application Framework TC) V1.0 July 2003 </li></ul><ul><li>WS-Coordination Web Services Coordination (BEA, IBM, Microsoft) September 2003 </li></ul><ul><li>WS-AtomicTransaction Web Services Atomic Transaction (BEA, IBM, Microsoft) September 2003 </li></ul><ul><li>WS-BusinessActivity Web Services Business Activity Framework (BEA, IBM, Microsoft) January 2004 </li></ul><ul><li>BTP Business Transaction Protocol (OASIS) May 2002 with V1.0.9.1 May 2004 </li></ul><ul><li>BPEL Business Process Execution Language for Web Services (OASIS) V1.1 May 2003 </li></ul><ul><li>WS-Choreography (W3C) V1.0 Working Draft April 2004 </li></ul><ul><li>WSCI (W3C) Web Service Choreography Interface V1.0 (W3C Note from BEA, Intalio, SAP, Sun, Yahoo) </li></ul><ul><li>WSCL Web Services Conversation Language (W3C Note) HP March 2002 </li></ul>
  14. 14. A List of Web Services V <ul><li>h) Metadata and State </li></ul><ul><li>RDF Resource Description Framework (W3C) Set of recommendations expanded from original February 1999 standard </li></ul><ul><li>DAML+OIL combining DAML (Darpa Agent Markup Language) and OIL (Ontology Inference Layer) (W3C) Note December 2001 </li></ul><ul><li>OWL Web Ontology Language (W3C) Recommendation February 2004 </li></ul><ul><li>WS-DistributedManagement Web Services Distributed Management Framework with MUWS and MOWS below (OASIS) </li></ul><ul><li>WSDM-MUWS Web Services Distributed Management: Management Using Web Services (OASIS) V0.5 Committee Draft April 2004 </li></ul><ul><li>WSDM-MOWS Web Services Distributed Management: Management of Web Services (OASIS) V0.5 Committee Draft April 2004 </li></ul><ul><li>WS-MetadataExchange Web Services Metadata Exchange (BEA,IBM, Microsoft, SAP) March 2004 </li></ul><ul><li>WS-RF Web Services Resource Framework including WS-ResourceProperties , WS-ResourceLifetime , WS-RenewableReferences , WS-ServiceGroup , and WS-BaseFaults (OASIS) Oasis TC set up April 2004 and V1.1 Framework March 2004 </li></ul><ul><li>ASAP Asynchronous Service Access Protocol (OASIS) with V1.0 working draft G June 2004 </li></ul><ul><li>WS-GAF Web Service Grid Application Framework (Arjuna, Newcastle University) August 2003 </li></ul>
  15. 15. A List of Web Services VI <ul><li>g) General Service Characteristics </li></ul><ul><li>WS-Policy Web Services Policy Framework (BEA, IBM, Microsoft, SAP) May 2003 </li></ul><ul><li>WS-PolicyAssertions Web Services Policy Assertions Language (BEA, IBM, Microsoft, SAP) May 2003 </li></ul><ul><li>WS-Agreement Web Services Agreement Specification (GGF under development) May 2004 </li></ul><ul><li>i) User Interfaces </li></ul><ul><li>WSRP Web Services for Remote Portlets (OASIS) OASIS Standard August 2003 </li></ul><ul><li>JSR168 : JSR-000168 Portlet Specification for Java binding (Java Community Process) October 2003 </li></ul>
  16. 16. And thus, I repressed SOAP <ul><li>It was depressing to think how little I understood what the hell he was talking about, so I resolved to put it out of my head until I had a good few weeks/months/years to sort through it all </li></ul>
  17. 17. And then my web2.0 awakening began… <ul><li>I was working on a survey about the similarity of video games, and wondered if I could compare our human results to Amazon data </li></ul><ul><li>It was time to get over my fear of web services... </li></ul><ul><li>I tried enlisting the help of my boyfriend, an employee of AWS, but he was busy coding </li></ul><ul><li>So I sucked it up and googled how to do it- </li></ul>
  18. 18. And all it took was ONE URL! <ul><li>Putting ONE URL in the browser would report back the similarity for a product </li></ul><ul><li>And thus I discovered the simplicity of REST*, and the addiction began </li></ul><ul><li>*pseudo-REST. Google it. </li></ul>
  19. 19. My first Mashup, by Pamela Fox, Age 22 <ul><li>The Similarity Web (completed a few days after discovery of the one URL) </li></ul><ul><li>Wow, my little mashup sure increased my site traffic </li></ul><ul><li>With 1 URL, Amazon had given me a simple tool that let me share a new way of exploring products with thousands of consumers </li></ul><ul><li>Thank you, Amazon! (for the referral fees, too) </li></ul>
  20. 20. Let the mashup madness begin! Note: Most of these were coded at 3am or while waiting for homework to compile.
  21. 21. Why is mashing up so damn fun? <ul><li>I’ll admit - find myself daydreaming about new mashups I can make every day </li></ul><ul><li>Mashing is fast, especially once you’ve done a few – I’ve got enough PHP/flash/python scripts now that it doesn’t take long to adapt them to a slightly different purpose </li></ul><ul><li>Mashing is fun – you can share your mashup with the online world (not just the geeks!), and get feedback instantly </li></ul><ul><ul><li>The research community isn’t usually like that  - must wait for papers to be published, research to be polished, etc., etc. </li></ul></ul><ul><li>Because of the various mashups I’ve posted on my blog, I’ve gotten comments from writers, linguists, game designers, businessmen </li></ul>
  22. 22. So what makes mashups so cool? <ul><li>&quot;We know we don't have a corner on creativity. There are creative people all around the world, hundreds of millions of them, and they are going to think of things to do with our basic platform that we didn't think of. So the mashup stuff is a wonderful way of allowing people to find new ways of applying the basic infrastructures we're propagating.” – Vint Cerf (via Wikipedia) </li></ul><ul><li>Diagram from http:// =63 </li></ul>
  23. 23. Basically… <ul><li>You provide the API to access the structured information, and we find new and exciting ways to use the information (free labor!) </li></ul><ul><li>Ref: “Why Google Loves the Little Guys” </li></ul><ul><li> </li></ul>
  24. 24. Mashup technologies: AJAX <ul><li>AJAX: Asynchronous javascript + XML </li></ul><ul><ul><li>Before AJAX: Every time the user wanted to interact with the server, they had to press a button and reload the page </li></ul></ul><ul><ul><li>AJAX is what allows the user to stay on one page but continually see new information upon interaction with the page </li></ul></ul><ul><ul><li>The user presses a button/changes a parameter, the javascript sends a request to the server and assigns it a callback function </li></ul></ul><ul><ul><li>Once server has returned response, callback function takes care of it </li></ul></ul>
  25. 25. Mashup technologies: AJAX <ul><li>AJAX uses the XMLHttpRequest/Microsoft.XMLHTTP object </li></ul><ul><ul><li>Unfortunately IE/FF couldn’t decide on one </li></ul></ul><ul><li>Many Javascript libraries provide wrappers that generalize the object to be cross-browser compatible </li></ul><ul><li>A basic AJAX example using GMaps API: </li></ul><ul><li>GDownloadUrl(&quot;data.xml&quot;, function(data, responseCode) { var xml = GXml.parse(data); </li></ul><ul><li>var markers = xml.documentElement.getElementsByTagName(&quot;marker&quot;); for (var i = 0; i < markers.length; i++) { </li></ul><ul><li>var point = new GLatLng(parseFloat(markers[i].getAttribute(&quot;lat&quot;)), parseFloat(markers[i].getAttribute(&quot;lng&quot;))); </li></ul><ul><li>map.addOverlay(new GMarker(point)); } }); </li></ul>
  26. 26. Mashup technologies: AJAX <ul><ul><li>Users like AJAX-y pages because it feels fast to not reload the page, but it can be problematic as it doesn’t have built in history/bookmark-ability </li></ul></ul><ul><ul><ul><li>Perfect for dynamic customization of search results, etc. </li></ul></ul></ul><ul><ul><li>As long as there’s some portion of the page the user’s interested in, it’s OK for other parts to be loading </li></ul></ul><ul><ul><li>The term AJAX is also used incorrectly to describe nifty visual effects commonly used on web2.0 sites (actually just DHTML, as there’s no XML involved) </li></ul></ul><ul><ul><li>Ubiquity of the ajax loading gif: </li></ul></ul>
  27. 27. Mashup technologies: JSON <ul><li>JSON: JavaScript Object Notation </li></ul><ul><ul><li>Solves the cross-site scripting restriction inherent in AJAX </li></ul></ul><ul><ul><li>JavaScript can’t make requests that aren’t on its own server </li></ul></ul><ul><ul><li>Script includes *can* reference javascripts on other servers, and those javascripts can inject variables/functions into the website that it can then use </li></ul></ul><ul><ul><li>So mashups can be completely client-side ! (but usually always involve server-side processing) </li></ul></ul>
  28. 28. Mashup technologies: JSON <ul><li>JSON is similar to XML in it’s hierarchical structure, but doesn’t require any non-native Javascript functionality as it actually is an injected JavaScript object </li></ul><ul><li>A basic JSON example: </li></ul><ul><li><script> </li></ul><ul><li>function listEntries(root) { </li></ul><ul><li>var feed = root.feed; </li></ul><ul><li>var entries = feed.entry || []; </li></ul><ul><li>for (var i = 0; i < feed.entry.length; ++i) { </li></ul><ul><li>var entry = feed.entry[i]; </li></ul><ul><li>var title = entry.title.$t; </li></ul><ul><li>var content = entry.content.$t; </li></ul><ul><li>var link =[0].href; </li></ul><ul><li>html.push('<li>','<a target=&quot;_blank&quot; href=&quot;', link, '&quot; >', title, '</a>','</li>'); </li></ul><ul><li>} </li></ul><ul><li>document.getElementById(&quot;agenda&quot;).innerHTML = html.join(&quot;&quot;); </li></ul><ul><li>} </li></ul><ul><li></script> </li></ul><ul><li><script src=&quot;;> </script> </li></ul>
  29. 29. Mashup Technologies: PHP, Ruby, Python, Perl <ul><li>Many web-friendly scripting languages are used for interacting with web services </li></ul><ul><li>Even better are the languages that natively interact with mySQL databases (e.g. PHP, ruby) </li></ul><ul><li>Often-times developers build wrappers over web APIs in the scripting language to make them even easier to use </li></ul><ul><li>E.g. I just created a Python wrapper for the Google Spreadsheets API </li></ul>
  30. 30. The flow of a mashup: Google Gadget <ul><li>Gadgets are mini-apps that are easy to share &embed </li></ul><ul><li>Gadgets are often used to provide quick views of information from other sites </li></ul><ul><li>WordHunter Xtreme, diagrammed below, won “Most Addictive” in Google Gadget University Awards </li></ul>
  31. 31. The flow of a mashup: Google Map <ul><li>MashPlanet is a mashup of map mashups (say that 10x fast) </li></ul><ul><li>The Web2.0 is seeing an explosion of geo-tagged data and maps (we can visualize data as more than just a list now!) </li></ul><ul><li>Google Maps API is the most used of all web APIs currently </li></ul><ul><li>Google Maps API Google group has 17822 members & gets average 150 messages/day – majority of these are answered within a few hours (and not usually by Google employees) </li></ul><ul><ul><li>Why? JavaScript may not be the cleanest language, but its client-side and that makes it easy for others to debug </li></ul></ul>
  32. 32. The Mashup/Web2.0 Community <ul><li>Generally, everyone’s happy & quick to link up with everyone else (networking never does anyone any harm) </li></ul><ul><li>We’re all in it together philosophy. API providers in constant interaction with their users. It can only make it better. </li></ul><ul><li>Conferences: </li></ul><ul><ul><li>Mashup Camp: The unconference for the uncomputer ( http:// / ) </li></ul></ul><ul><ul><li>BarCamp, Where2.0, etc. </li></ul></ul><ul><li>Directories: </li></ul><ul><ul><li> (THE directory) </li></ul></ul><ul><ul><li>http:// / </li></ul></ul><ul><li>Blogs: </li></ul><ul><ul><li> (Web2.0, great diagrams/analyses) </li></ul></ul><ul><ul><li> (Social networking) </li></ul></ul><ul><ul><li> (Products/debates) </li></ul></ul><ul><ul><li> (Startups) </li></ul></ul>
  33. 33. Mashup Types <ul><li>There ~1500 mashups registered on, but most have the same purpose: helping web-surfers discover and sift through information in new and useful ways </li></ul><ul><li>The web’s always been about sharing information, and it still is. </li></ul><ul><li>Some basic types: aggregators, search aggregators, visualizers, mobile, maps, games </li></ul>
  34. 34. Mashup type: Aggregators <ul><li>Combine feeds/info from various related websites into one site. </li></ul><ul><li>More info + less clicks = happier websurfer </li></ul><ul><li>Examples: , , </li></ul>
  35. 35. Mashup Types: Search/search aggregators <ul><li>Search: Let you search an API’s data </li></ul><ul><li>Search aggregators: Let you search once, find info from many search engines/APIs at once. </li></ul><ul><li>Examples: , </li></ul>
  36. 36. Mashup Types: Visualizers <ul><li>Visualizers: Take related data and visualize in a new and meaningful way (e.g. clouds, maps) </li></ul><ul><li>Examples: , , </li></ul>
  37. 37. Mashup Types: Maps/Earth <ul><li>Take data with geo info from other sources (including users!) and plot on map </li></ul><ul><li>Geographical info could be latitude/longitude, could just be an address, city or place name as geocoding APIs are quite common </li></ul><ul><li>Examples: , , </li></ul>
  38. 38. Mashup Types: Mobile <ul><li>Take online data from APIs/feeds and put in mobile-friendly format </li></ul><ul><li>Increasingly needed as many fancy web2.0 websites just won’t work on cell phones (AJAX) but people still want their information, and quick! </li></ul><ul><li>Examples: , , </li></ul>
  39. 39. Mashup Types: Games <ul><li>Make players guess more data about a web object (photo, friend, map clue) </li></ul><ul><li>My personal favorite type  </li></ul><ul><li>Examples here: , http://imagine- , , http:// </li></ul>
  40. 40. Mashup Types: Other! <ul><li>Obligatory slide to say that there are other types of mashups </li></ul><ul><li>Also easy way to talk about my work with ClearForest Semantic Web Services </li></ul><ul><li>Newsmakers of the Day: </li></ul><ul><ul><li>Sends news articles from CNN to be analyzed by ClearForest </li></ul></ul><ul><ul><li>Retrieves entity names, finds the most relatively popular entities of the day </li></ul></ul><ul><ul><li>Displays them as a daily calendar item </li></ul></ul><ul><ul><li>Motivates me to read the news! </li></ul></ul><ul><ul><li>Won 3 rd place in their contest </li></ul></ul><ul><ul><li>Most contest entries did similar thing: navigate news by entity, not title </li></ul></ul>
  41. 41. The Future of Mashing <ul><li>Currently mashing up is for the programmers and the people-not-afraid-to-try-programming, but that’s changing </li></ul><ul><li>Visual development environments let non-techies connect APIs together, style the output, and embed in various formats </li></ul><ul><li>It’s not fair for techies to have all the mashing fun! </li></ul><ul><li>E.g. </li></ul>
  42. 42. The APIs Making it Happen <ul><li>Let’s give a hand to all the Web APIs letting mashups happen </li></ul><ul><li> is a site tracking mashups and APIs </li></ul><ul><li>363 registered Web APIs </li></ul>
  43. 43. APIs per Protocol Distribution REST SOAP XML-RPC REST, XML-RPC REST, XML-RPC, SOAP REST, SOAP JS Other google maps netvibes virtual earth google search amazon S3 amazon ECS flickr ebay youtube 411sync yahoo! search yahoo! geocoding technorati yahoo! images trynt yahoo! local - Analysis of the API protocols offered vs. mashup count on
  44. 44. What, no API available? <ul><li>Then make one! </li></ul><ul><li>Feed example pages from the site you’d like to screen-scrape, select the page elements you’re interested in, and presto – You’ve got a custom API! </li></ul><ul><li>Note: may be illegal to screen-scrape data from some sites. Oops.  </li></ul>
  45. 45. Suggestions for (current/would-be) API Providers <ul><li>Provide a REST API or Javascript API, depending on what’s more appropriate for your API, to attract casual users </li></ul><ul><li>Continue providing SOAP API for other users </li></ul><ul><li>= Best of both worlds! </li></ul><ul><li>Quote from user trying to use ClearForest SOAP API when first released: </li></ul><ul><ul><li>“ How about a REST interface or at least a simpler web interface with a GET or POST form (minus the frames). This would be a preferable option for many mashup environments, compared to SOAP.” </li></ul></ul><ul><ul><li>ClearForest offered a REST API within the week. </li></ul></ul>
  46. 46. Web API Providers: What’s in it for you? <ul><li>Free testers – people will try the craziest things with your API, and let you know when it goes wrong </li></ul><ul><li>Free documentation – people write up examples, tutorials, explanations </li></ul><ul><li>Free publicity – people use your lightweight API, companies pay attention, offer to buy enterprise version account </li></ul><ul><li>Free support community – people help other people with your API </li></ul><ul><li>Free add-ons – people like your API, but find it’s lacking – no problem, they write libraries of plug-ins for it </li></ul>
  47. 47. API Providers: Watch out… <ul><li>Web APIs rely on one very important thing: the Web. </li></ul><ul><li>If your server goes down and your Web API is inaccessible, anyone using your API is out of luck/likely to switch. </li></ul><ul><li>Or… if your API becomes more popular than your wildest dreams, you may discover you/your server can’t handle the fame </li></ul><ul><li>Be ready to scale and to be on-call. </li></ul>
  48. 48. Interested? Want to learn more? <ul><li>Take the Web2.0 Awareness test: </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li>Dad failed!! (Only visited… hmm…) </li></ul></ul><ul><ul><li>Start browsing, looking, discovering. </li></ul></ul><ul><ul><li>Try not to get addicted… or do! </li></ul></ul>