{"id":1809,"date":"2009-09-07T20:53:42","date_gmt":"2009-09-08T01:53:42","guid":{"rendered":"http:\/\/www.webliminal.com\/webliminalblog\/?p=1809"},"modified":"2009-09-08T12:48:37","modified_gmt":"2009-09-08T17:48:37","slug":"cpsc-448-september-8-2009","status":"publish","type":"post","link":"http:\/\/www.webliminal.com\/webliminalblog\/teaching\/cpsc-448-september-8-2009","title":{"rendered":"CPSC 448; September 8, 2009"},"content":{"rendered":"<p><a href=\"http:\/\/webliminal.com\/images\/sidepics\/sp182.jpg\"><img decoding=\"async\" class=\"alignleft\" style=\"margin-left: 22px; margin-right: 22px;\" src=\"http:\/\/webliminal.com\/images\/sidepics\/cwdata\/sp182.jpg\" alt=\"Niagara Falls, Canada\" align=\"left\" \/><\/a><strong>Current Assignment<\/strong><\/p>\n<p>The assignment is to create a data-driven Web site that has as its database a collection of at least 60 jokes\/sayings\/images\/videos\/whatevers. A visitor to the site \u00c2\u00a0can see one of the items selected at random. A visitor can add an item, delete an item, or display all the items.<\/p>\n<p>Whose shall we look at today?<\/p>\n<p><strong>What is Web 2.0?<\/strong><\/p>\n<p><strong> <\/strong><\/p>\n<div style=\"width: 727px\" class=\"wp-caption aligncenter\"> <a href=\"http:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/a7\/Web_2.0_Map.svg\"><img loading=\"lazy\" decoding=\"async\" class=\"   \" src=\"http:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/a7\/Web_2.0_Map.svg\" alt=\"The mind map pictured above (constructed by Markus Angermeier [1] on November 11 2005) sums up some of the themes of Web 2.0, with example-sites and services attached.\" width=\"717\" height=\"538\" \/><\/a><p class=\"wp-caption-text\">http:\/\/upload.wikimedia.org\/wikipedia\/commons\/a\/a7\/Web_2.0_Map.svg<\/p><\/div>\n<ul>\n<li><a href=\"http:\/\/oreilly.com\/web2\/archive\/what-is-web-20.html\">O&#8217;Reily&#8217;s definition\n<p><\/a><\/li>\n<\/ul>\n<h4>Web 2.0 Design Patterns<\/h4>\n<p>In his book, <a href=\"http:\/\/www.amazon.com\/exec\/obidos\/tg\/detail\/-\/0195019199\">A Pattern Language<\/a>, Christopher Alexander prescribes a format for the concise description of the solution to architectural problems. He writes: &#8220;Each pattern describes a problem that occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.&#8221;<\/p>\n<ol>\n<li><strong>The Long Tail<\/strong><br \/>\nSmall sites make up the bulk of the internet&#8217;s content; narrow niches make up the bulk of internet&#8217;s the possible applications. <em>Therefore:<\/em> Leverage customer-self service and algorithmic data management to reach out to the entire web, to the edges and not just the center, to the long tail and not just the head.<\/li>\n<li><strong>Data is the Next Intel Inside<\/strong><br \/>\nApplications are increasingly data-driven. <em>Therefore<\/em>: For competitive advantage, seek to own a unique, hard-to-recreate source of data.<\/li>\n<li><strong>Users Add Value<\/strong><br \/>\nThe key to competitive advantage in internet applications is the extent to which users add their own data to that which you provide. <em>Therefore<\/em>: Don&#8217;t restrict your &#8220;architecture of participation&#8221; to software development. Involve your users both implicitly and explicitly in adding value to your application.<\/li>\n<li><strong>Network Effects by Default<\/strong><br \/>\nOnly a small percentage of users will go to the trouble of adding value to your application. <em>Therefore<\/em>: Set inclusive defaults for aggregating user data as a side-effect of their use of the application.<\/li>\n<li><strong>Some Rights Reserved.<\/strong> Intellectual property protection limits re-use and prevents experimentation. <em>Therefore<\/em>: When benefits come from collective adoption, not private restriction, make sure that barriers to adoption are low. Follow existing standards, and use licenses with as few restrictions as possible. Design for &#8220;hackability&#8221; and &#8220;remixability.&#8221;<\/li>\n<li><strong>The Perpetual Beta<\/strong><br \/>\nWhen devices and programs are connected to the internet, applications are no longer software artifacts, they are ongoing services. <em>Therefore<\/em>: Don&#8217;t package up new features into monolithic releases, but instead add them on a regular basis as part of the normal user experience. Engage your users as real-time testers, and instrument the service so that you know how people use the new features.<\/li>\n<li><strong>Cooperate, Don&#8217;t Control<\/strong><br \/>\nWeb 2.0 applications are built of a network of cooperating data services. <em>Therefore<\/em>: Offer web services interfaces and content syndication, and re-use the data services of others. Support lightweight programming models that allow for loosely-coupled systems.<\/li>\n<li><strong>Software Above the Level of a Single Device<\/strong><br \/>\nThe PC is no longer the only access device for internet applications, and applications that are limited to a single device are less valuable than those that are connected. <em>Therefore<\/em>: Design your application from the get-go to integrate services across handheld devices, PCs, and internet servers.<\/li>\n<\/ol>\n<p style=\"font: normal normal normal 12px\/normal Helvetica; text-align: center; margin: 0px;\">\n<p style=\"font: normal normal normal 12px\/normal Helvetica; text-align: center; margin: 0px;\"><a href=\"http:\/\/www.oreillynet.com\/oreilly\/tim\/news\/2005\/09\/30\/graphics\/figure1.jpg\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.oreillynet.com\/oreilly\/tim\/news\/2005\/09\/30\/graphics\/figure1.jpg\" alt=\"figure1.jpg\" \/><\/a><\/p>\n<p><strong>Google analytics<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.youtube.com\/watch?v=bT326VNSDYg\">Video featuring Google&#8217;s Analytics Evangelist, Avinash Kaushik<\/a><\/li>\n<li><a href=\"http:\/\/www.youtube.com\/watch?v=6JSL0lzYHJE\">Avinash on Analytics<\/a><\/li>\n<li><a href=\"http:\/\/www.google.com\/analytics\/\">Google Analytics<\/a><\/li>\n<li>Kaushik&#8217;s Blog <a href=\"http:\/\/www.kaushik.net\/avinash\/\">Occam&#8217;s Razor<\/a><\/li>\n<\/ul>\n<p><strong>Future of the Web<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/www.ted.com\/talks\/kevin_kelly_on_the_next_5_000_days_of_the_web.html\">Kevin Kelly on the next 5,000 days of the Web<\/a><\/li>\n<\/ul>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Current Assignment The assignment is to create a data-driven Web site that has as its database a collection of at least 60 jokes\/sayings\/images\/videos\/whatevers. A visitor to the site \u00c2\u00a0can see one of the items selected at random. A visitor can add an item, delete an item, or display all the items. Whose shall we look [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[474,1451,308,309],"class_list":["post-1809","post","type-post","status-publish","format-standard","hentry","category-teaching","tag-cpsc448","tag-teaching","tag-web-20","tag-web-design"],"_links":{"self":[{"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/posts\/1809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/comments?post=1809"}],"version-history":[{"count":11,"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/posts\/1809\/revisions"}],"predecessor-version":[{"id":1811,"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/posts\/1809\/revisions\/1811"}],"wp:attachment":[{"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/media?parent=1809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/categories?post=1809"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.webliminal.com\/webliminalblog\/wp-json\/wp\/v2\/tags?post=1809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}