wiki.z3.ca

Web(20)2(2e)0(20)Expo

page was renamed from Web2Expo

Some notes from the sessions during the NY Web 2.0 Expo

= Friday =

= Comet 2 - 3 =

Comet is HTTP streaming * Persistent HTTP connection (Pending Post/Hanging Get) * Minimizes latency * Optimizes connection setup and tear down

Latency matters. Comet improves latency * Game playing, chat, stock tickers

Possible implementations * iFrame (causes display of undesirable visual effects, browser memory grows infinitely) * client side: iFrame contains a script tag. response also containing a script tag is written out to iFrame

From Transports to APIs * Dojo has cometd, a Pub/Sub model - but this half-duplex (why?) * HTML5 Web Sockets define a full duplex communication channel. * Ultimately, don't need middleware at all. Can have JS communicate directly with XMPP/IMAP/POP/SMTP/etc

= State of AJAX 12 - 13 =

Two excellent presenters from Ajaxian.

Making users happy * Expectations change in industries (gaming, movies) * First function, but now we are stages of "wow" * Ex. Apple online store, Google maps

AJAX raises the bar, increases user expectation on the web.

Old Taxonomy: * Prototype: lightweight AJAX/JS helpers * GWT: Hate JavaScript? Use Java * jQuery: DOM-centric JS helper * dojo: Pretty much everything! Big heavyweight solution

New Taxonomy: Dojo Core, jQuery, Prototype.js are more popular so should be used.

Why use a JS library? * Cross browser * Simplifies doing AJAX requests * CSS and Animations * DOM interaction convenience (and abstracts browser differences)

GUI Toolkits for the web: browsers as universal run times * jQuery UI/ExtJS/dijit/script.acu.lous * Scriptaculous/Objective-J

General UI ideas: * Responsiveness! After 0.1s, user perceives sluggishness. After 1s, user's flow of thought is interrupted. * Use worker pools! They won't affect the UI thread directly. * Unlike threads, they don't have access to the program state.

Blurring boundaries between various apps (Gears, etc) * Take traditional stack of web apps and put them offline * Also allow integration with OS services.

Demo of dynamically extended 37signals Campfire: * Using fluid.showGrowlNotification()

Interesting idea of writing iPhone apps with the canvas element.

= Browser Panel 11-12 =

HTML5: the spec is still in draft. what is implemented, what isn't?

To Mozilla: does mozilla exist in the midst of corp competition?

To Microsoft: why don't you implement canvas? cause of silverlight?

To Google: what's the focus of Chrome?

Audience question: how dead is SVG?

AQ: Debugging tools?

AQ: Browser as an OS? When/if primary way desktop apps are made will be for the browser?

AQ: Cross browser development sucks. How to fix?

AQ: Will chrome ever use the data that they have on you? Will this be exposed to developers?

AQ: Browser addons. Will you support it?

AQ: Browser geolocation stuff? User scripts?

= Thursday =

== The Sequel to SQL ==

Pretty basic tech overview of the existing cloud solutions in the Cloud.

Intro: * RDBMS are ubiquitous, but annoying to deal with, since we deal with objects * Object databases tend to be too slow and lacking in tools * Key/Value data structures like berkeleyDB are very fast * Object relational mapping is all over the place

The Cloud: * Cloud stack: * Software as a Service (SalesForce) * Platform as a Service (AppEngine) * Tools as a Service (Amazon SimpleDB) * Hardware as a Service (Amazon EC2) * Unlocalized and anonymous computing service * Benefits: cheaper, smaller barrier to entry, serve customs locally, "elastic" availability

The problem? * Need duplication and partitioning. So data needs to be partitioned and replicated across multiple nodes * Sharding data: how to join tables?

Google BigTable * Large scale storage of Entities (sets of name/value pairs called properties) * Indexes are required for all queries * Immediately consistent :) * But there are limitations

Amazon SimpleDB * Tabular store of Domains (like tables) with Items (set of attribute/value pairs) * Auto indexing * Eventually consistent :( * Everything is a string :(

10gen Mongo: * Dynamic language ODBMS targeted for the cloud * Lots more details which I don't really care about since it's completely unproven

Look at AppJet, Drizzle and CouchDB

Hadoop * Distributed File System * Map/Reduce Engine (distributed calculations across large dataset)

== SEO for Web Developers ==

Introduction: * Up to 30% of page views originate from search engines * Up to 87% for e-commerce * Cloaking: showing one page to users and another to search engines.

Book recommendation: Don't Make Me Think

Use Semantic HTML: * Proper use of common tags: Most Specific - Less Specific - Least Specific * - keep it short & sweet * Descriptive, Relevant Text *

- only one per page *