<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sleepiness in Seattle &#187; Web</title>
	<atom:link href="http://stanblog.jojoyao.com/tag/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://stanblog.jojoyao.com</link>
	<description>Stanley&#039;s Chat on the Technology and Business</description>
	<lastBuildDate>Tue, 21 Apr 2009 04:29:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>50 Best Websites 2007</title>
		<link>http://stanblog.jojoyao.com/2007/09/50-best-websites-2007/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=50-best-websites-2007</link>
		<comments>http://stanblog.jojoyao.com/2007/09/50-best-websites-2007/#comments</comments>
		<pubDate>Sat, 01 Sep 2007 10:47:07 +0000</pubDate>
		<dc:creator>Stanley Yao</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://stanblog.jojoyao.com/newblog/?p=49</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<div id="dvAmpBorderBottom" style="DISPLAY: none; FONT-SIZE: 3px; Z-INDEX: 999999; WIDTH: 200px; LINE-HEIGHT: 4px; POSITION: absolute; HEIGHT: 4px; BACKGROUND-COLOR: #ff9900"></div>
<div id="dvAmpBorderTop" style="DISPLAY: none; FONT-SIZE: 3px; Z-INDEX: 999999; WIDTH: 200px; LINE-HEIGHT: 4px; POSITION: absolute; HEIGHT: 4px; BACKGROUND-COLOR: #ff9900"></div>
<div id="dvAmpBorderRight" style="DISPLAY: none; FONT-SIZE: 3px; Z-INDEX: 999999; WIDTH: 4px; LINE-HEIGHT: 4px; POSITION: absolute; HEIGHT: 200px; BACKGROUND-COLOR: #ff9900"></div>
<div id="dvAmpBorderLeft" style="DISPLAY: none; FONT-SIZE: 3px; Z-INDEX: 999999; WIDTH: 4px; LINE-HEIGHT: 4px; POSITION: absolute; HEIGHT: 200px; BACKGROUND-COLOR: #ff9900"></div>
<table style="CLEAR: left; BORDER-RIGHT: #e5e5e5 4px solid; BORDER-TOP: #e5e5e5 4px solid; BACKGROUND: #ffffff; MARGIN: 12px 0px; BORDER-LEFT: #e5e5e5 4px solid; WIDTH: 100%; COLOR: #333333; BORDER-BOTTOM: #e5e5e5 4px solid; FONT-FAMILY: arial" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top"><!-- BEGIN_CLIP_CONTENT ID:BBC07D9E-19CE-4F74-AB87-7867AA32B67B:1 CLIPMARKS.COM --></p>
<div class="CM_CTB_Content_Wrap" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #ffffff">
<div style="FONT-SIZE: 10px; BACKGROUND-IMAGE: url(http://clipmarks.com/images/source-bg.gif); MARGIN-BOTTOM: 8px; PADDING-BOTTOM: 4px; VERTICAL-ALIGN: middle; COLOR: #666666; LINE-HEIGHT: 24px; BORDER-BOTTOM: #dcdcdc 1px solid; BACKGROUND-REPEAT: repeat-x; WHITE-SPACE: nowrap; HEIGHT: 24px; BACKGROUND-COLOR: #eeeeee"><a title="go to this clipmark" href="http://clipmarks.com/clipmark/BBC07D9E-19CE-4F74-AB87-7867AA32B67B/"><img style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; DISPLAY: inline; FLOAT: none; MARGIN: 0px 4px; VERTICAL-ALIGN: middle; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" height="19" alt="" width="19" border="0" src="http://content.clipmarks.com/blog_icon/6ce49aa4-327c-4bb0-917f-c6ebbe692e68/BBC07D9E-19CE-4F74-AB87-7867AA32B67B/" /></a>clipped from <a title="http://www.time.com/time/specials/2007/article/0,28804,1633488_1639316,00.html" style="FONT-SIZE: 11px" href="http://www.time.com/time/specials/2007/article/0,28804,1633488_1639316,00.html">www.time.com</a></div>
<blockquote style="BORDER-RIGHT: medium none; PADDING-RIGHT: 8px; BORDER-TOP: medium none; PADDING-LEFT: 8px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 4px 0px 8px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; TEXT-ALIGN: left" cite="http://www.time.com/time/specials/2007/article/0,28804,1633488_1639316,00.html">
<div id="logo">
<div id="time"><a title="Time.com Home Page" alt="Time Logo" href="http://www.time.com/">Time.com</a></div>
<div id="cnn"><a title="CNN.com Home Page" alt="CNN Logo" href="http://www.cnn.com/">CNN.com</a></div>
</div>
</blockquote>
<div style="FONT-SIZE: 2px; BACKGROUND: #dcdcdc; MARGIN: 2px 4px; BORDER-BOTTOM: #f5f5f5 1px solid; HEIGHT: 2px"></div>
<blockquote style="BORDER-RIGHT: medium none; PADDING-RIGHT: 8px; BORDER-TOP: medium none; PADDING-LEFT: 8px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; MARGIN: 4px 0px 8px; BORDER-LEFT: medium none; PADDING-TOP: 0px; BORDER-BOTTOM: medium none; TEXT-ALIGN: left" cite="http://www.time.com/time/specials/2007/article/0,28804,1633488_1639316,00.html"><p>From Photonhead.com to Cellswapper and FunnyorDie.com to Lastfm, we&#8217;ve chosen our favorite sites of the year. </p></blockquote>
</div>
<div style="MARGIN: 0px 6px 6px 4px">
<table style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 11px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; border-spacing: 0px" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px">&nbsp;</td>
<td style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; WIDTH: 107px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px" align="right" width="107"><a title="blog or email this clip" href="http://clipmarks.com/share/BBC07D9E-19CE-4F74-AB87-7867AA32B67B/blog/"><img style="BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px" height="17" alt="blog it" width="107" border="0" src="http://content5.clipmarks.com/images/c2b-foot.png" /></a></td>
</tr>
</tbody>
</table>
</div>
<p><!-- END_CLIP_CONTENT --></td>
</tr>
</tbody>
</table>
<div><a target="_blank" rel="nofollow" href="http://www.time.com/time/specials/2007/article/0,28804,1633488_1639316,00.html">http://www.time.com/time/specials/2007/article/0,28804,1633488_1639316,00.html</a> </div>
]]></content:encoded>
			<wfw:commentRss>http://stanblog.jojoyao.com/2007/09/50-best-websites-2007/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Gear: Web Applications Going Offline</title>
		<link>http://stanblog.jojoyao.com/2007/05/google-gear-web-applications-going-offline/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-gear-web-applications-going-offline</link>
		<comments>http://stanblog.jojoyao.com/2007/05/google-gear-web-applications-going-offline/#comments</comments>
		<pubDate>Thu, 31 May 2007 06:50:05 +0000</pubDate>
		<dc:creator>Stanley Yao</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[offline]]></category>

		<guid isPermaLink="false">http://stanblog.jojoyao.com/newblog/?p=42</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>The offline web applications like Zimbra narrow the gap between the web and desktop applications in many aspects like connectivity, performance, reliability, etc.&nbsp; The newly released Google Gear is an even bigger hit in that it sets a platform to help bring any web application &quot;offline&quot;.&nbsp; This will change the way people perceive &quot;web application&quot;.&nbsp; You do NOT need to be always connected to a network in order to use a web application any more.</p>
<table width="95%" cellspacing="1" cellpadding="1" border="1" align="center" summary="">
<tbody>
<tr>
<td>            (From TechCrunch.com) <a title="Permanent Link to Google Gears Lets Developers Take Apps Offline" rel="bookmark" href="http://www.techcrunch.com/2007/05/30/google-gears-lets-developers-take-apps-offline/">Google Gears Lets Developers Take Apps Offline</a>: Tomorrow, Google will be hosting a developer day for 5,000 developers worldwide&#8230;             </td>
</tr>
</tbody>
</table>
<p>
Followed offline app demo above, I tried the offline Google Reader.&nbsp; It is very cool.&nbsp; Also tried simulating an unexpected network connection drop.&nbsp; When browsing the feeds in Google Reader in &quot;online&quot; mode, the network was suddenly disconnected.&nbsp; It tried to read the content but timed out.&nbsp; Then it popped up a window reporting the connection drop and asked if I would like to switch to &quot;offline&quot; mode.&nbsp; Answer &quot;yes&quot; and I was able to continue reading the feeds offline!&nbsp; After I get back online, the local data (items marked as read) is synchronized back to the server.&nbsp; I was never a big fan of Google Reader due to its lack of useful features.&nbsp; But this offline mode really draws my attention and interest to try using it more.</p>
<p>What&#8217;s next?&nbsp; If this offline technology is used in developing mobile applications and it supports automatic smart downloading and synchronizing, it could greatly improve the performance of the sophisticated applications running on mobile devices with limited bandwidth.</p>
<p>An interesting comparison is with the <a href="http://msdn2.microsoft.com/en-US/library/ms998439.aspx">Microsoft Smart Clients offline mode</a> emerged in 2004 with the similar idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://stanblog.jojoyao.com/2007/05/google-gear-web-applications-going-offline/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>innerHTML could invalidate the event handlers of its child elements</title>
		<link>http://stanblog.jojoyao.com/2007/05/innerhtml-could-invalidate-the-event-handlers-of-its-child-elements/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=innerhtml-could-invalidate-the-event-handlers-of-its-child-elements</link>
		<comments>http://stanblog.jojoyao.com/2007/05/innerhtml-could-invalidate-the-event-handlers-of-its-child-elements/#comments</comments>
		<pubDate>Fri, 11 May 2007 04:48:10 +0000</pubDate>
		<dc:creator>Stanley Yao</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://stanblog.jojoyao.com/newblog/?p=40</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>In Javascript, using an element&#8217;s innerHTML property to dynamically edit its content provides much flexibility and convenience.&nbsp; But special care needs to be taken when using it, because it could bite you silently.&nbsp; Take one of my experiences as an example, it could break the event handlers of the child elements.&nbsp; Sample code as the following:</p>
<table width="90%" cellspacing="1" cellpadding="1" border="1" align="center" summary="">
<tbody>
<tr>
<td>&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br />
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; &gt;<br />
&lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;innerHTML&lt;/title&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;</p>
<p>&lt;hr /&gt;&lt;div id=&quot;myd&quot;&gt;&lt;/div&gt;&lt;hr /&gt;</p>
<p>&lt;script language=&quot;javascript&quot;&gt;<br />
function myaction()<br />
{<br />
&nbsp;&nbsp;&nbsp; alert(&quot;hello&quot;);<br />
}</p>
<p>var d1 = document.createElement(&quot;div&quot;);<br />
d1.onclick = myaction;<br />
d1.innerHTML = &quot;child div&quot;;</p>
<p>var d = document.getElementById(&quot;myd&quot;);<br />
d.appendChild(d1);<br />
//d.innerHTML += &quot;parent div&quot;;<br />
&lt;/script&gt;</p>
<p>&lt;/body&gt;<br />
&lt;/html&gt;</td>
</tr>
</tbody>
</table>
<p>
This code works well and when you click on div, &quot;hello&quot; will pop up.&nbsp; However if you uncomment the last line of the JavaScript code.&nbsp; The message won&#8217;t pop up any more.&nbsp; innerHTML manipulates the content of the element as a string instead of DOM, so it might just break the underlying &quot;wires&quot; that hooks up the elements and their event handlers.&nbsp; So watch out, when any of the events stops working as expected, look for the evil &quot;innerHTML&quot; first.</p>
]]></content:encoded>
			<wfw:commentRss>http://stanblog.jojoyao.com/2007/05/innerhtml-could-invalidate-the-event-handlers-of-its-child-elements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

