<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7552288</id><updated>2011-07-07T20:35:33.603-04:00</updated><category term='Python'/><category term='X Window'/><category term='loop'/><category term='javascript'/><category term='C'/><category term='apple'/><category term='free'/><category term='os x'/><category term='benchmark'/><category term='regexp'/><category term='sortable table'/><category term='Windows'/><category term='tr:hover'/><category term='validation'/><category term='GUI'/><category term='honda FCX'/><category term='firefox'/><category term='DOM'/><category term='css'/><category term='CPU'/><category term='IC'/><category term='email'/><category term='background'/><category term='performance'/><category term='canvas'/><category term='finfet'/><category term='bookmark lost'/><category term='opera'/><category term='NEXTSTEP'/><category term='safari'/><category term='table cell'/><category term='Chevrolet Equinox Fuel Cell'/><category term='paint'/><category term='table'/><category term='KDE'/><category term='Olympics'/><category term='speed'/><category term='cad'/><category term='for...in'/><category term='stream'/><category term='URL'/><category term='msi'/><category term='hydrogen fuel cell'/><category term='regular expression'/><category term='chart'/><category term='Gnome'/><category term='filter'/><category term='SOAP'/><category term='javascript 1.7'/><category term='energy'/><category term='firefox 3'/><category term='cellIndex'/><category term='3D'/><category term='Tesla'/><category term='svg'/><category term='html'/><category term='mac'/><category term='history'/><category term='IE'/><category term='acid 3'/><category term='X3D'/><title type='text'>BETTER WeB</title><subtitle type='html'>The future of the web. The health of the web.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default?start-index=101&amp;max-results=100'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>118</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7552288.post-4658111329923152481</id><published>2009-09-24T11:05:00.001-04:00</published><updated>2009-09-24T11:05:36.395-04:00</updated><title type='text'>gmail is not working</title><content type='html'>Again, at the time I need it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-4658111329923152481?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/4658111329923152481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=4658111329923152481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4658111329923152481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4658111329923152481'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2009/09/gmail-is-not-working.html' title='gmail is not working'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-4241909751169452097</id><published>2009-09-21T14:22:00.000-04:00</published><updated>2009-09-21T14:23:28.906-04:00</updated><title type='text'>redskin won</title><content type='html'>I just can NOT believe it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-4241909751169452097?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/4241909751169452097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=4241909751169452097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4241909751169452097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4241909751169452097'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2009/09/redskin-won.html' title='redskin won'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-145182225077048967</id><published>2008-09-24T13:57:00.003-04:00</published><updated>2008-09-24T15:04:57.711-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='speed'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>javascript speed test</title><content type='html'>&lt;p&gt;This is a list of javascript speed test
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www2.webkit.org/perf/sunspider-0.9/sunspider.html"&gt;Sunspider from Webkit/Apple&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://dromaeo.com/"&gt;Dromaeo from Mozilla.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/apis/v8/run.html"&gt;V8 from google&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://celtickane.com/webdesign/jsspeedarchive.php"&gt;Kane's&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://andrew.hedges.name/experiments/speed_test/index.html"&gt;Andrew Hedges'&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-145182225077048967?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/145182225077048967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=145182225077048967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/145182225077048967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/145182225077048967'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/09/javascript-speed-test.html' title='javascript speed test'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-6029416463714991121</id><published>2008-08-07T13:50:00.003-04:00</published><updated>2008-09-24T15:05:19.140-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Deferred javascript in firefox</title><content type='html'>With closing of &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=28293"&gt;this&lt;/a&gt; bug, the javascript with "defer='defer'" setting finally functions as what it should.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-6029416463714991121?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/6029416463714991121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=6029416463714991121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6029416463714991121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6029416463714991121'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/08/deferred-javascript-in-firefox.html' title='Deferred javascript in firefox'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-75903478044900176</id><published>2008-08-07T10:19:00.001-04:00</published><updated>2008-08-07T10:20:57.695-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='canvas'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='chart'/><title type='text'>Best javascript chart generator</title><content type='html'>&lt;a href="http://sixrevisions.com/javascript/graph_chart_plot_data_javascript/"&gt;Here&lt;/a&gt; is a list of best chart generating javascript tools.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-75903478044900176?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/75903478044900176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=75903478044900176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/75903478044900176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/75903478044900176'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/08/best-javascript-chart-generator.html' title='Best javascript chart generator'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-5733468320616226676</id><published>2008-08-07T10:07:00.001-04:00</published><updated>2008-08-07T10:08:13.463-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stream'/><category scheme='http://www.blogger.com/atom/ns#' term='Olympics'/><title type='text'>Online Olympics program stream</title><content type='html'>&lt;a href="http://2008.pps.tv/"&gt;This one&lt;/a&gt; is still broadcasting Olympics games.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-5733468320616226676?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/5733468320616226676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=5733468320616226676' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/5733468320616226676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/5733468320616226676'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/08/online-olympics-program-stream.html' title='Online Olympics program stream'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-8840100460015650598</id><published>2008-07-14T13:24:00.004-04:00</published><updated>2008-08-06T21:19:14.316-04:00</updated><title type='text'>Dynamically generate select options in xhtml</title><content type='html'>&lt;p&gt;This example shows how to generate options for select tag in HTML or XHTML.&lt;/p&gt;

&lt;pre style="background-color:#ddffdd"&gt;
&amp;lt;?xml version="1.0" ?&gt;
&amp;lt;html xmlns="http://www.w3.org/1999/xhtml"
    lang="en-US"&gt;
&amp;lt;head&gt;
&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
&amp;lt;title&gt;Solvent&amp;lt;/title&gt;
&amp;lt;script type="text/javascript"&gt;
&amp;lt;![CDATA[
var xhtmlNS = "http://www.w3.org/1999/xhtml";
function generateOptions( ){
&lt;span style="color:#aaaabb"&gt;//Get the select via DOM&lt;/span&gt;
 var vSelect1 = document.getElementById("Select1");

 var i;
 for( i = 0 ; i &lt; 10; i ++ ){
  &lt;span style="color:#aaaabb"&gt;//Created the option element &lt;/span&gt;
  var vOption = document.createElementNS(xhtmlNS, "option");
  &lt;span style="color:#aaaabb"&gt;//Set the value&lt;/span&gt;
  vOption.setAttributeNS( &lt;span style="color:red"&gt;null&lt;/span&gt;, "value", "value" + i );
  &lt;span style="color:#aaaabb"&gt;//Create the textnode for the option&lt;/span&gt;
  var vText = document.createTextNode( "text"+ i );
  &lt;span style="color:#aaaabb"&gt;//Append the textnode to the option element&lt;/span&gt;
  vOption.appendChild( vText );
  &lt;span style="color:#aaaabb"&gt;//Append the option element to the select element&lt;/span&gt;
  vSelect1.appendChild( vOption );
 }
}
]]&gt;
&amp;lt;/script&gt;
&amp;lt;/head&gt;
&amp;lt;body onload="generateOptions()"&gt;
&amp;lt;form id="selectForm"&gt;
&amp;lt;select id="Select1"&gt;&amp;lt;/select&gt;
&amp;lt;/form&gt;
&amp;lt;/body&gt;
&amp;lt;/html&gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-8840100460015650598?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/8840100460015650598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=8840100460015650598' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8840100460015650598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8840100460015650598'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/07/dynamically-generate-select-options-in.html' title='Dynamically generate select options in xhtml'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-6329775807957287640</id><published>2008-07-14T09:56:00.000-04:00</published><updated>2008-07-14T09:58:14.440-04:00</updated><title type='text'>1 million iphone 3G in 3 days</title><content type='html'>&lt;a href="http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=109&amp;STORY=/www/story/07-14-2008/0004848243&amp;EDATE="&gt;News&lt;/a&gt; about 1 million iphone 3G sold in 3 days.  This is hilarious, I am waiting to see some iphone visit to my blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-6329775807957287640?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/6329775807957287640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=6329775807957287640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6329775807957287640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6329775807957287640'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/07/1-million-iphone-3g-in-3-days.html' title='1 million iphone 3G in 3 days'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-8095079778134701404</id><published>2008-07-10T12:19:00.001-04:00</published><updated>2008-07-10T12:19:58.960-04:00</updated><title type='text'>inard of an iphone 3G</title><content type='html'>&lt;a href="http://live.ifixit.com/Guide/First-Look/iPhone3G"&gt;From ifixit.com&lt;/a&gt; with love.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-8095079778134701404?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/8095079778134701404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=8095079778134701404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8095079778134701404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8095079778134701404'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/07/inard-of-iphone-3g.html' title='inard of an iphone 3G'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-3775235822993796480</id><published>2008-07-08T13:02:00.001-04:00</published><updated>2008-07-08T13:02:51.435-04:00</updated><title type='text'>firefox 3.1 bug evolution chart</title><content type='html'>&lt;a href="http://forums.mozillazine.org/viewtopic.php?f=23&amp;t=667535&amp;sid=8d2b3b6964a9b1c36ccc3bd7e781c569"&gt;Link&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-3775235822993796480?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/3775235822993796480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=3775235822993796480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3775235822993796480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3775235822993796480'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/07/firefox-31-bug-evolution-chart.html' title='firefox 3.1 bug evolution chart'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-2857210487523168566</id><published>2008-07-07T16:40:00.002-04:00</published><updated>2008-07-07T16:43:04.498-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>running C/Python on the web</title><content type='html'>&lt;a href="http://www.toolness.com/wp/?p=52"&gt;Nice try.&lt;/a&gt;  But to be honest, I don't really think it will attract a lot of developers.  But maybe people can develop plugins for firefox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-2857210487523168566?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/2857210487523168566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=2857210487523168566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/2857210487523168566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/2857210487523168566'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/07/running-cpython-on-web.html' title='running C/Python on the web'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-3468501532966025869</id><published>2008-07-07T12:40:00.003-04:00</published><updated>2008-07-07T13:03:51.104-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finfet'/><category scheme='http://www.blogger.com/atom/ns#' term='IC'/><title type='text'>Way to 16nm and beyond</title><content type='html'>&lt;p&gt;So it is clear &lt;a href="http://www.solid-state.com/display_article/333243/5/none/none/TCHNE/Report-from-the-VLSI-Symposium:-Planar-CMOS-to-22nm,-but-no-mor"&gt;now&lt;/a&gt;, finfet is the solution.

&lt;p&gt;And Intel on &lt;a href="http://www.eetimes.com/news/semi/showArticle.jhtml?articleID=208700012"&gt;SOI&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-3468501532966025869?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/3468501532966025869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=3468501532966025869' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3468501532966025869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3468501532966025869'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/07/way-to-16nm-and-beyond.html' title='Way to 16nm and beyond'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-7463566013626723075</id><published>2008-06-26T11:30:00.001-04:00</published><updated>2008-06-26T11:31:16.879-04:00</updated><title type='text'>iphone's future in China</title><content type='html'>From a &lt;a href="http://translate.google.com/translate?u=http%3A%2F%2Fblog.sina.com.cn%2Fs%2Fblog_470e3bbf01009yqx.html&amp;hl=en&amp;ie=UTF8&amp;sl=zh-CN&amp;tl=en"&gt;Chinese Blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-7463566013626723075?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/7463566013626723075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=7463566013626723075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/7463566013626723075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/7463566013626723075'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/06/iphones-future-in-china.html' title='iphone&apos;s future in China'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-4009368025779107322</id><published>2008-06-23T09:29:00.000-04:00</published><updated>2008-06-23T09:30:12.248-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='acid 3'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox 3'/><title type='text'>firefox acid3 progress</title><content type='html'>&lt;a href="http://weblogs.mozillazine.org/roc/archives/2008/06/some_191_update.html"&gt;Changes underway.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-4009368025779107322?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/4009368025779107322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=4009368025779107322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4009368025779107322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4009368025779107322'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/06/firefox-acid3-progress.html' title='firefox acid3 progress'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-5465310343400653057</id><published>2008-06-14T11:51:00.002-04:00</published><updated>2008-06-14T11:57:46.226-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox 3'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>what's new in firefox 3 for webdevelopers</title><content type='html'>&lt;a href="http://dbaron.org/log/20080613-firefox3-css"&gt;CSS&lt;/a&gt;, &lt;a href="http://www.sitepoint.com/blogs/2008/05/23/two-hidden-features-new-in-firefox-3/"&gt;CSS&lt;/a&gt;, &lt;a href="http://developer.mozilla.org/en/docs/CSS_improvements_in_Firefox_3"&gt;CSS&lt;/a&gt;, &lt;a href="http://developer.mozilla.org/en/docs/DOM_improvements_in_Firefox_3"&gt;DOM&lt;/a&gt;, &lt;a href="http://developer.mozilla.org/en/docs/New_in_JavaScript_1.8"&gt;Javascript&lt;/a&gt;, &lt;a href="http://developer.mozilla.org/en/docs/SVG_improvements_in_Firefox_3"&gt;SVG&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-5465310343400653057?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/5465310343400653057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=5465310343400653057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/5465310343400653057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/5465310343400653057'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/06/whats-new-in-firefox-3-for.html' title='what&apos;s new in firefox 3 for webdevelopers'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-7924243225602911517</id><published>2008-06-12T16:48:00.002-04:00</published><updated>2008-06-12T16:52:11.313-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='regexp'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expression'/><title type='text'>An regular expression for float point numbers</title><content type='html'>&lt;code&gt;
[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?
&lt;/code&gt;

This should do the job.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-7924243225602911517?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/7924243225602911517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=7924243225602911517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/7924243225602911517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/7924243225602911517'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/06/regular-expression-for-float-point.html' title='An regular expression for float point numbers'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-713337846866092404</id><published>2008-06-03T12:45:00.001-04:00</published><updated>2008-06-03T12:46:15.918-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><title type='text'>Safari is getting a new Javascript engine</title><content type='html'>&lt;a href="http://webkit.org/blog/189/announcing-squirrelfish/"&gt;Squirrelfish&lt;/a&gt;.  It is fast, yeah, fast.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-713337846866092404?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/713337846866092404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=713337846866092404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/713337846866092404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/713337846866092404'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/06/safari-is-getting-new-javascript-engine.html' title='Safari is getting a new Javascript engine'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-274476014053087661</id><published>2008-06-01T11:13:00.002-04:00</published><updated>2008-06-01T11:15:50.733-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expression'/><category scheme='http://www.blogger.com/atom/ns#' term='validation'/><category scheme='http://www.blogger.com/atom/ns#' term='URL'/><title type='text'>Regular expression for URL validation</title><content type='html'>&lt;code&gt;
/^(?:https?|s?ftp|telnet|ssh|scp):\/\/(?:(?:[\w]+:)?\w+@)?(?:(?:(?:[\w-]+\.)*\w[\w-]{0,66}\.(?:[a-z]{2,6})(?:\.[a-z]{2})?)|(?:(?:25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.)(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})))(?:\:\d{1,5})?(?:\/(~[\w-_.])?)?(?:(?:\/[\w-_.]*)*)?\??(?:(?:[\w-_.]+\=[\w-_.]+&amp;?)*)?$/i;
&lt;/code&gt;

&lt;p&gt;This will do the job.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-274476014053087661?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/274476014053087661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=274476014053087661' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/274476014053087661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/274476014053087661'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/06/regular-expression-for-url-validation.html' title='Regular expression for URL validation'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-4125412591743035099</id><published>2008-04-16T16:09:00.002-04:00</published><updated>2008-04-16T16:19:59.639-04:00</updated><title type='text'>search for government document</title><content type='html'>I was trying to find some document of &lt;a href="http://www.google.com/search?q=Dorje+Shugden"&gt;Dorje Shugden&lt;/a&gt;.  Then I realized I didn't see any document from any government.  Can some one in the big search engines give us some way to look into the bewildering government documents?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-4125412591743035099?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/4125412591743035099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=4125412591743035099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4125412591743035099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4125412591743035099'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/04/search-for-government-document.html' title='search for government document'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-178648071364020407</id><published>2008-04-10T11:12:00.002-04:00</published><updated>2008-04-10T11:30:43.801-04:00</updated><title type='text'>Wow, CNN</title><content type='html'>&lt;p&gt;I usually don't write any political in this blog, but I was really amazed by CNN yesterday.  There was a full screen of pro-China supporter and China national flag everywhere at San Francisco, and CNN claimed those were protesters.  I have been watching CNN lying by omission and manipulating for years, but this time it was unbelievable. They just didn't see what they were seeing and talked what they were supposed to say.

&lt;p&gt;My salute to &lt;a href="http://anti-cnn.com/"&gt;Anti-CNN.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-178648071364020407?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/178648071364020407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=178648071364020407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/178648071364020407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/178648071364020407'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/04/wow-cnn.html' title='Wow, CNN'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-6475004245477630614</id><published>2008-03-11T18:07:00.000-04:00</published><updated>2008-03-11T18:08:39.609-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='acid 3'/><title type='text'>firefox3 vs. Acid3</title><content type='html'>&lt;a href="http://spreadsheets.google.com/pub?key=pNgBCwWdyRTT2JeiZn4B2Yw"&gt;firefox3 vs. Acid3 in a spreadsheet.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-6475004245477630614?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/6475004245477630614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=6475004245477630614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6475004245477630614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6475004245477630614'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/03/firefox3-vs-acid3.html' title='firefox3 vs. Acid3'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-4131931520652440505</id><published>2008-01-11T16:29:00.000-05:00</published><updated>2008-01-11T16:30:59.887-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='acid 3'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>acid 3 test</title><content type='html'>Acid 3 test is &lt;a href="http://hixie.ch/tests/evil/acid/003/"&gt;online&lt;/a&gt;.  Let's see who will pass it firstly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-4131931520652440505?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/4131931520652440505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=4131931520652440505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4131931520652440505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4131931520652440505'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/01/acid-3-test.html' title='acid 3 test'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-4900602455075871854</id><published>2008-01-05T13:48:00.000-05:00</published><updated>2008-01-14T09:52:46.500-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='cellIndex'/><title type='text'>Safari cellIndex problem solved in 3.0</title><content type='html'>Finally, Safari provide the cellIndex of a table cell properly.  I think I will update some table stuff in this blog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-4900602455075871854?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/4900602455075871854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=4900602455075871854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4900602455075871854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/4900602455075871854'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/01/safari-cellindex-problem-solved-in-30.html' title='Safari cellIndex problem solved in 3.0'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-8228353698907974571</id><published>2008-01-04T18:39:00.000-05:00</published><updated>2008-01-04T18:41:35.463-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='filter'/><title type='text'>SVG progress in firefox</title><content type='html'>With &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=389746"&gt;bug 389746&lt;/a&gt; and &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=390379"&gt;bug 390379&lt;/a&gt; checked in . The firefox 3.0 will support all SVG filters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-8228353698907974571?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/8228353698907974571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=8228353698907974571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8228353698907974571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8228353698907974571'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/01/svg-progress-in-firefox.html' title='SVG progress in firefox'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-5130828948613965992</id><published>2008-01-03T16:05:00.001-05:00</published><updated>2008-03-11T18:13:03.986-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='sortable table'/><category scheme='http://www.blogger.com/atom/ns#' term='tr:hover'/><category scheme='http://www.blogger.com/atom/ns#' term='background'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Sortable table, dynamic table cell background color in action</title><content type='html'>&lt;p&gt;&lt;a href="http://www.wam.umd.edu/~zhangx/html/solvent3.html"&gt;Here&lt;/a&gt;.  A big table of solvents properties and miscibility. Click or double click the table head to sort.  The table background changes as your mouse wandering around to high light current table cell. &lt;strike&gt;Supposed to w&lt;/strike&gt;Works in IE7 too, &lt;strike&gt;but never&lt;/strike&gt; tested. Works in Safari 3, Firefox 2, IE7, Opera 7.5.  Opera has some high light problem.  And the sorting works like a magic in Safari and Opera.&lt;/p&gt;

&lt;p&gt;For mouseover event outside a tag in IE7, 
&lt;pre&gt;
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
 "http://www.w3.org/TR/html4/strict.dtd"&gt;
&lt;/pre&gt;
is required.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-5130828948613965992?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/5130828948613965992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=5130828948613965992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/5130828948613965992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/5130828948613965992'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/01/sortable-table-dynamic-table-cell.html' title='Sortable table, dynamic table cell background color in action'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-6670385873773297539</id><published>2008-01-02T18:27:00.000-05:00</published><updated>2008-01-02T18:29:11.454-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='X3D'/><title type='text'>SVG for 3D?</title><content type='html'>I saw some people using SVG to present 3D data. I don't like this idea.  First, it is slow. Second there is a thing named &lt;a href="http://www.web3d.org/"&gt;X3D&lt;/a&gt; for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-6670385873773297539?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/6670385873773297539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=6670385873773297539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6670385873773297539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6670385873773297539'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/01/svg-for-3d.html' title='SVG for 3D?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-336609997127700838</id><published>2008-01-02T17:58:00.000-05:00</published><updated>2008-01-02T18:27:14.440-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='for...in'/><category scheme='http://www.blogger.com/atom/ns#' term='loop'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><title type='text'>for...in loop and nodeList in Safari</title><content type='html'>Several years ago, I figured out that &lt;a href="http://www.w3schools.com/js/js_loop_for_in.asp"&gt;for&lt;/a&gt;...in loop doesn't work with a &lt;a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177"&gt;nodeList &lt;/a&gt;we got from dom functions like &lt;a href="http://developer.mozilla.org/en/docs/DOM:document.getElementsByTagName"&gt;getElementsByTagName&lt;/a&gt;.
&lt;p&gt;Or that means 
&lt;p&gt;
        var divs = document.getElementsByTagName("div");
 var i;
 for( i in divs ){
  divs.items(i).innerHTML = "B";
 }
&lt;/p&gt;
&lt;p&gt;doesn't work in Safari. Some people may know that there is another way to access a nodeList in Firefox and IE, like&lt;/p&gt;
&lt;p&gt;
        var divs = document.getElementsByTagName("div");
 var i;
 for( i in divs ){
  divs[i].innerHTML = "B";
 }
&lt;/p&gt;
&lt;p&gt;However, this doesn't work in Safari too. (Actually it is wrong even in Firefox and IE.) The right way is 
&lt;p&gt;
        var divs = document.getElementsByTagName("div");
 var i;
 for( i= 0; i &lt; divs.length; i ++ ){
  divs.items(i).innerHTML = "B";
 }
&lt;/p&gt;
&lt;p&gt;The reason is that in Firefox or IE, nodeList is treated as an array, but Safari doesn't.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-336609997127700838?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/336609997127700838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=336609997127700838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/336609997127700838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/336609997127700838'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2008/01/forin-loop-and-nodelist-in-safari.html' title='for...in loop and nodeList in Safari'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-6653672719412314540</id><published>2007-12-27T13:22:00.003-05:00</published><updated>2008-03-11T18:09:43.582-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><title type='text'>Dynamically create SVG with javascript</title><content type='html'>Following is an example of dynamically created SVG pattern with javascript and DOM.  The name space part is tricky and can be frustrating for people not familiar with it. The hard parts are high lighted in red.
&lt;p&gt;
=============================
&lt;pre&gt;
&lt;font color="red"&gt;

&amp;lt;?xml version="1.0" ?&gt;

&amp;lt;html xmlns="http://www.w3.org/1999/xhtml" 

                 xmlns:svg="http://www.w3.org/2000/svg"

     xmlns:xlink="http://www.w3.org/1999/xlink"

     lang="en-US"&gt;&lt;/font&gt;

 &amp;lt;head&gt;

  &amp;lt;meta http-equiv="Content-Type" content="application/xhtml+xml;charset=utf-8"/&gt;

  &amp;lt;title&gt;SVG&amp;lt;/title&gt;

  &amp;lt;style type="text/css"&gt;

   #drawingPad{

    width:100px;

    height:100px;

    overflow:hidden;

    border:1px solid black;

    position:absolute

   }
  &amp;lt;/style&gt;

  &amp;lt;script type="text/javascript"&gt;

  &amp;lt;![CDATA[

//________________________________

&lt;font color="red"&gt;var xhtmlNS = "http://www.w3.org/1999/xhtml";

var svgNS = "http://www.w3.org/2000/svg";

var xlinkNS ="http://www.w3.org/1999/xlink";&lt;/font&gt;

function makeCircle(x, y, r){

 var vCircle = document.&lt;font color="red"&gt;createElementNS(svgNS, "svg:circle")&lt;/font&gt;

 vCircle.&lt;font color="red"&gt;setAttributeNS&lt;/font&gt;( &lt;font color="red"&gt;null&lt;/font&gt;, "cx", new String( x  ) + "px" );

 vCircle.setAttributeNS( null, "cy", new String( y  ) + "px" );

 vCircle.setAttributeNS( null, "r", new String( r ) +"px");

 vCircle.setAttributeNS( null, "style", "fill:blue");

 return vCircle;

}

function makeLine(x1, y1, x2, y2){

 var vLine = document.createElementNS(svgNS, "svg:line")

 vLine.setAttributeNS( null, "x1", new String( x1  ) + "px" );

 vLine.setAttributeNS( null, "y1", new String( y1  ) + "px" );

 vLine.setAttributeNS( null, "x2", new String( x2  ) + "px" );

 vLine.setAttributeNS( null, "y2", new String( y2  ) + "px" );

 vLine.setAttributeNS( null, "style", "stroke-width:2;stroke:red");

 return vLine;

}



function drawPattern(){

 var vPad = document.getElementById( "drawingPad" );

 var vSVGElem = document.createElementNS(svgNS, "svg:svg");

 var i;

 var r = 20;

 var vAX = new Array();

 var vAY = new Array();

 for( i = 0 ; i &amp;lt; 7 ; i ++ ){

  var vAngle = Math.PI * 4 / 7 * i

  var vX = Math.cos(vAngle) * r + 50

  var vY = Math.sin( vAngle ) * r + 50

  var vC = makeCircle(vX, vY, 4);

  vSVGElem.appendChild( vC);

  vAX[ i ] = vX

  vAY[ i ] = vY

  if( i &gt; 0 ){

   var vLine = makeLine(vX, vY, vAX[ i - 1 ], vAY[ i - 1 ]);

   vSVGElem.appendChild( vLine );

   

  }

 }

 vPad.appendChild(vSVGElem) 

}

 ]]&gt;--&gt;

&amp;lt;/script&gt;

&amp;lt;/head&gt;

&amp;lt;body&gt;

&amp;lt;form&gt;

 &amp;lt;input type="button" onclick="drawPattern(); return false;" value="Click"/&gt;

&amp;lt;/form&gt;

&amp;lt;div id="drawingPad"&gt;

 

&amp;lt;/div&gt;



&amp;lt;/body&gt;

&amp;lt;/html&gt;
&lt;/pre&gt;

=============================&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-6653672719412314540?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/6653672719412314540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=6653672719412314540' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6653672719412314540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6653672719412314540'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/12/dynamically-create-svg-with-javascript.html' title='Dynamically create SVG with javascript'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-3599367402477738229</id><published>2007-12-21T10:17:00.000-05:00</published><updated>2007-12-21T10:19:16.831-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='bookmark lost'/><title type='text'>Firefox bookmark recovery</title><content type='html'>Bookmark troubles with Firefox? Not to worry.  There is a good article about lost Firefox bookmark at &lt;a href="http://kb.mozillazine.org/Lost_bookmarks"&gt;Mozillazine&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-3599367402477738229?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/3599367402477738229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=3599367402477738229' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3599367402477738229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3599367402477738229'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/12/firefox-bookmark-recovery.html' title='Firefox bookmark recovery'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-3927783158886319372</id><published>2007-12-20T17:08:00.000-05:00</published><updated>2007-12-20T17:09:49.815-05:00</updated><title type='text'>Firefox 3.0 beta 2</title><content type='html'>&lt;p&gt;&lt;a href="http://www.mozilla.com/en-US/firefox/3.0b2/releasenotes/"&gt;Release note&lt;/a&gt;.  The SVG performance has been improved a lot since beta 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-3927783158886319372?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/3927783158886319372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=3927783158886319372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3927783158886319372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3927783158886319372'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/12/firefox-30-beta-2.html' title='Firefox 3.0 beta 2'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-6503775196904547218</id><published>2007-12-19T20:25:00.001-05:00</published><updated>2008-03-08T12:15:24.413-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><title type='text'>IE8 passed the acid2 test</title><content type='html'>&lt;a href="http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx"&gt;IE8 passed the acid2 test.&lt;/a&gt; It's time for the acid3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-6503775196904547218?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/6503775196904547218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=6503775196904547218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6503775196904547218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6503775196904547218'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/12/ie8-passed-acid2-test.html' title='IE8 passed the acid2 test'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-3740104920765203434</id><published>2007-12-14T10:36:00.000-05:00</published><updated>2007-12-14T10:37:37.357-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CPU'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><title type='text'>Dancing of the CPUs</title><content type='html'>&lt;table border="1"&gt;
&lt;tr&gt;
 &lt;td&gt;1971&lt;/td&gt;&lt;td&gt;Intel 4004&lt;/td&gt;&lt;td&gt;4bit.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="2"&gt;1972&lt;/td&gt;
  &lt;td&gt;CTC/Intel 8008&lt;/td&gt;
  &lt;td&gt;14bit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel 4040&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="1"&gt;1973&lt;/td&gt;
 &lt;td&gt;Intel 8080&lt;/td&gt;
 &lt;td&gt;16bit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="4"&gt;1974&lt;/td&gt;
 &lt;td&gt;Intel 8080A&lt;/td&gt;
 &lt;td&gt;16bit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;TI TMS 1000&lt;/td&gt;
  &lt;td&gt;4bit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;AMD 9080&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Motorola 6800&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="2"&gt;1975&lt;/td&gt;&lt;td&gt;Mos Technology 6501/6502&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Microchip Technology PIC 16X&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="3"&gt;1976&lt;/td&gt;
  &lt;td&gt;Intel 8085&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Zilog Z80&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;RCA 1802&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="2"&gt;1977&lt;/td&gt;&lt;td&gt;Motoroal 6809&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel 8048&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="2"&gt;1978&lt;/td&gt;&lt;td&gt;Intel 8086&lt;/td&gt;
 &lt;td&gt;AMD, Harris&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Zilog Z8000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="3"&gt;1979&lt;/td&gt;&lt;td&gt;Intel 8088&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt; 
&lt;tr&gt;
  &lt;td&gt;Motorola 68000/6809&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Zilog Z8&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;1980&lt;/td&gt;&lt;td&gt;Intel 8051&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="2"&gt;1981&lt;/td&gt;&lt;td&gt;NEC V20&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel 432&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;1983&lt;/td&gt;&lt;td&gt;Intel 80186&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;1982&lt;/td&gt;&lt;td&gt;Intel 80286 &lt;/td&gt;
 &lt;td&gt;AMD, IBM, Harris, Siemens, Fujitsu, Kruger&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;1984&lt;/td&gt;&lt;td&gt;Intel 960&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="3"&gt;1985&lt;/td&gt;
  &lt;td&gt;ARM1&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Zilog Z800/Z80000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;MIPS R2000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="4"&gt;1986&lt;/td&gt;
  &lt;td&gt;ARM2&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;SPARK V7&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Fairchild Clipper C100&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Zilog Z280/Z180&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="2"&gt;1988&lt;/td&gt;
    &lt;td&gt;AMD AM29000&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Integraph Clipper C300&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="3"&gt;1987&lt;/td&gt;
  &lt;td&gt;Motorola 68030&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel 386&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;MIPS R3000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="3"&gt;1989&lt;/td&gt;
  &lt;td&gt;PA-7000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel 486&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel 860&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="3"&gt;1990&lt;/td&gt;
  &lt;td&gt;Motorola 68040&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Integraph Clipper C400&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Sun SPARC&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="4"&gt;1991&lt;/td&gt;
  &lt;td&gt;MIPS R4000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;IBM 386SLC&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;AM386&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;ARM6&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="4"&gt;1992&lt;/td&gt;
  &lt;td&gt;DEC Alpha 21064&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;PA-7100&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Cyrix 486SLC/DLC&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;IBM 486SLC&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="3"&gt;1993&lt;/td&gt;&lt;td&gt;Intel Pentium&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;MIPS R4400&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;IBM/Motorola PowerPC 601&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="7"&gt;1994&lt;/td&gt;&lt;td&gt;AMD AM486&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
  &lt;td&gt;PA-7150/7200&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;MIPS R4600/R8000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;SUN SPARC II&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;DEC Alpha 21164&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Zilog Z380&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;IBM/Motorola PowerPC603&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="4"&gt;1995&lt;/td&gt;&lt;td&gt;AMD AM5x86&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Cyrix 5x86/6x86&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;MIPS R10000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel Pentium Pro&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="4"&gt;1996&lt;/td&gt;&lt;td&gt;Cyrix MediaGX&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;PA-7300/8000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Alpha 21264&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;AMD K5&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="6"&gt;1997&lt;/td&gt;&lt;td&gt;Intel Pentium MMX&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;PA-8200&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;AMD K6&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Cyrix 6x86MX&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Cyrix MediaGX&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel Pentium II&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="5"&gt;1998&lt;/td&gt;&lt;td&gt;Intel Celeron&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;PA-8500&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Alpha 21264&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;MIPS R12000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;AMD K6-2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="4"&gt;1999&lt;/td&gt;&lt;td&gt;Intel Pentium III&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;National Semiconductor Geode&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;AMD K6 III&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;AMD Athlon&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="5"&gt;2000&lt;/td&gt;&lt;td&gt;Celeron II&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;PA-8600&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;VIA Cyrix III&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;AMD Duron&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Pentium IV&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="5"&gt;2001&lt;/td&gt;
  &lt;td&gt;PA-8700&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;MIPS R14000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;VIA C3&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Zilog eZ80&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel/HP Itanium&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="5"&gt;2002&lt;/td&gt;
  &lt;td&gt;Alpha 21364&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;MIPS R16000&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;AMD Geode&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Xscale PXA250&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel/HP Itanium 2&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="5"&gt;2003&lt;/td&gt;
  &lt;td&gt;PA-8800&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel Pentium M&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel Celeron M&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel Pentium 4EE&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;AMD Athlon64/Opteron&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td rowspan="3"&gt;2004&lt;/td&gt;
 &lt;td&gt;Intel Pentium 4E/4F&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;VIA Isaiah&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;AMD Sempron&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="4"&gt;2005&lt;/td&gt;
  &lt;td&gt;PA-8900&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;Zilog eZ8&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td&gt;VIA C7&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Pentium D&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td rowspan="3"&gt;2006&lt;/td&gt;
  &lt;td&gt;Zilog Z16&lt;/td&gt;
  &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel Core Solo/Duo&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;Intel Core 2 Solo/Duo&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
 &lt;td&gt;2007&lt;/td&gt;
 &lt;td&gt;Intel CE 2110&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-3740104920765203434?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/3740104920765203434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=3740104920765203434' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3740104920765203434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3740104920765203434'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/12/dancing-of-cpus.html' title='Dancing of the CPUs'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-2585802791802086996</id><published>2007-10-24T12:07:00.000-04:00</published><updated>2008-01-14T09:54:48.492-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='NEXTSTEP'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='os x'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='X Window'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='history'/><category scheme='http://www.blogger.com/atom/ns#' term='GUI'/><title type='text'>Tales of GUIs and OSes</title><content type='html'>&lt;table border="1"&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt;January 1983&lt;/td&gt;
    &lt;td&gt;Lisa Office System&lt;/td&gt;
    &lt;td&gt;Cooperative multitasking, virtual memory.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; January 1984&lt;/td&gt;
    &lt;td&gt; System 1.0 (Mac OS 1)&lt;/td&gt;
    &lt;td&gt; A simplified version of Lisa system. Icons were designed by &lt;a href="http://www.kare.com/"&gt;Dr. Susan Kare&lt;/a&gt;, the designer &lt;a href="http://en.wikipedia.org/wiki/Dogcow"&gt;dogcow&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Happy_Mac"&gt;Happy Mac&lt;/a&gt; and Command Key.  She also designed the icon of &lt;a href="http://en.wikipedia.org/wiki/Notepad"&gt;Notepad.exe&lt;/a&gt; and many other icons in Windows and the cards in &lt;a href="http://en.wikipedia.org/wiki/Solitaire_%28Windows%29"&gt;solitaire&lt;/a&gt; game.  255 characters long file name, finder support 63 characters.  Single task, menu on top.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; May 1984&lt;/td&gt;
    &lt;td&gt; System 1.1 (Mac OS 1.1, System Software 0.1) &lt;/td&gt;
    &lt;td&gt; Performance improvement.  Ability to start certain programs at the time system startup.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; June 1984&lt;/td&gt;
    &lt;td&gt; X1 &lt;/td&gt;
    &lt;td&gt;&lt;a href="http://en.wikipedia.org/wiki/X_Window_System"&gt;X&lt;/a&gt;1 was originated from "W".&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; January 1985&lt;/td&gt;
    &lt;td&gt;X6 &lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; April 1985&lt;/td&gt;
    &lt;td&gt; System 2.0 (Mac OS 2.0, System Software 0.3) &lt;/td&gt;
    &lt;td&gt;"New Folder" command.  "List" view. Shutdown command.  Eject disks by dragging them to trash.  "MiniFinder" introduced.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; September 1985&lt;/td&gt;
    &lt;td&gt; System 2.1 (Mac OS 2.1)&lt;/td&gt;
    &lt;td&gt;&lt;a href="http://en.wikipedia.org/wiki/Hierarchical_File_System"&gt;HFS&lt;/a&gt; introduced.  31 characters file name.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; September 1985&lt;/td&gt;
    &lt;td&gt; X9 &lt;/td&gt;
    &lt;td&gt;Color. &lt;a href="http://www.opensource.org/licenses/mit-license.php"&gt;MIT License&lt;/a&gt;.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; November 1985&lt;/td&gt;
    &lt;td&gt; Windows 1.01 &lt;/td&gt;
    &lt;td&gt;Support &lt;a href="http://en.wikipedia.org/wiki/Computer_multitasking"&gt;multitasking&lt;/a&gt; from the beginning, thus menus on each windows.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; January 1986&lt;/td&gt;
    &lt;td&gt; System3.0 (Mac OS 3.0, System Software 0.7) &lt;/td&gt;
    &lt;td&gt;Disck Cache was introduced.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; January 1986&lt;/td&gt;
    &lt;td&gt; System 3.3 (Mac OS 3.3, System Software 2.0) &lt;/td&gt;
    &lt;td&gt; Introduced &lt;a href="http://en.wikipedia.org/wiki/AppleShare"&gt;AppleShare&lt;/a&gt;.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; March 1987&lt;/td&gt;
    &lt;td&gt; System 4.0 (Mac OS 4.0, System Software 2.01) &lt;/td&gt;
    &lt;td&gt;&lt;a href="http://en.wikipedia.org/wiki/AppleTalk"&gt;AppleTalk&lt;/a&gt; was introduced.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; September 1987&lt;/td&gt;
    &lt;td&gt;X11&lt;/td&gt;
    &lt;td&gt;The contemporary protocol of X.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; October 1987&lt;/td&gt;
    &lt;td&gt;System 4.2 (Mac OS 4.2, System Software 5.0 ) &lt;/td&gt;
    &lt;td&gt; Color menu! Cooperative multitasking.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; November 1987&lt;/td&gt;
    &lt;td&gt; Windows 2.0 &lt;/td&gt;
    &lt;td&gt;Windows can be overlapped.  "Plug n play" function in school version.  Minimize and maximize idea.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; April 1988&lt;/td&gt;
    &lt;td&gt; System 6 (Mac OS 6, System Software 6.0) &lt;/td&gt;
    &lt;td&gt;Last Mac OS written in assembly. 24 bits memory access.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; May 1988&lt;/td&gt;
    &lt;td&gt; Windows 2.1 286/386 &lt;/td&gt;
    &lt;td&gt;Dos programs running in a window.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt;October 1988&lt;/td&gt;
    &lt;td&gt;NEXTSTEP 0.8&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#5555dd"&gt;
    &lt;td&gt;October 1988&lt;/td&gt;
    &lt;td&gt;OS/2 1.1&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; September 1989&lt;/td&gt;
    &lt;td&gt; NEXTSTEP 1.0 &lt;/td&gt;
    &lt;td&gt;Mach 2.5, BSD 4.3. Objective C, Interface builder. Display Postscript based GUI.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; May 1990&lt;/td&gt;
    &lt;td&gt; Windows 3.0 &lt;/td&gt;
    &lt;td&gt;Redesigned control panel with Mac style.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; September 1990&lt;/td&gt;
    &lt;td&gt; NEXTSTEP 2.0 &lt;/td&gt;
    &lt;td&gt;CD ROM support. Color monitor.  Spell checker.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; May 1991&lt;/td&gt;
    &lt;td&gt; System 7 (Mac OS 7, System Software 7.0) &lt;/td&gt;
    &lt;td&gt;&lt;a href="http://en.wikipedia.org/wiki/32-bit"&gt;32bit&lt;/a&gt;. Built in cooperative multitasking.  Desktop folder. &lt;a href="http://developer.apple.com/applescript/"&gt;Applescript&lt;/a&gt;. &lt;a href="http://en.wikipedia.org/wiki/TrueType"&gt;TrueType&lt;/a&gt;.  Trash won't be automatically emptied.   File sharing via AppleTalk.  Alias. Solid multiscreen support.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; March 1992&lt;/td&gt;
    &lt;td&gt; Windows 3.1 &lt;/td&gt;
    &lt;td&gt;TrueType. &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#5555ff"&gt;
    &lt;td&gt;March 1992&lt;/td&gt;
    &lt;td&gt;OS/2 2.0&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt;September 1992&lt;/td&gt;
    &lt;td&gt;XFree86 1.0&lt;/td&gt;
    &lt;td&gt;First version of XFree86. X11R5.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; September 1992&lt;/td&gt;
    &lt;td&gt; NEXTSTEP 3.0 &lt;/td&gt;
    &lt;td&gt;Base of OS X.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; July 1993&lt;/td&gt;
    &lt;td&gt; Windows NT 3.1 &lt;/td&gt;
    &lt;td&gt;32bit. &lt;a href="http://unicode.org/"&gt;Unicode&lt;/a&gt; support. Supported X86, &lt;a href="http://en.wikipedia.org/wiki/DEC_Alpha"&gt;Alpha&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/MIPS_architecture"&gt;MIPS&lt;/a&gt;.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt;August 1994&lt;/td&gt;
    &lt;td&gt;XFree86 3.0&lt;/td&gt;
    &lt;td&gt;X11R6.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; September 1994&lt;/td&gt;
    &lt;td&gt; Windows NT 3.5 &lt;/td&gt;
    &lt;td&gt; Added &lt;a href="http://en.wikipedia.org/wiki/PowerPC"&gt;PowerPC&lt;/a&gt; support.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#5555ff"&gt;
    &lt;td&gt;October 1994&lt;/td&gt;
    &lt;td&gt;OS/2 Warp 3.0&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; May 1995&lt;/td&gt;
    &lt;td&gt; Windows NT 3.51&lt;/td&gt;
    &lt;td&gt;NTFS 1.2. &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; August 1995&lt;/td&gt;
    &lt;td&gt;Windows 95 &lt;/td&gt;
    &lt;td&gt; 32/16bit hybrid. &lt;a href="http://en.wikipedia.org/wiki/Long_filename"&gt;Long file name&lt;/a&gt;. New user interface.  "Plug n Play".  Extensive use of right key click.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; July 1996&lt;/td&gt;
    &lt;td&gt; Windows NT 4.0 &lt;/td&gt;
    &lt;td&gt; Windows 95 style GUI.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; July 1996&lt;/td&gt;
    &lt;td&gt; OpenSTEP 4.0 &lt;/td&gt;
    &lt;td&gt;Runs on SunOS, HP-UX, Windows NT.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#5555ff"&gt;
    &lt;td&gt;September 1996&lt;/td&gt;
    &lt;td&gt;OS/2 Warp 4.0&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt;November 1996&lt;/td&gt;
    &lt;td&gt;Windows CE 1.0&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; November 1996&lt;/td&gt;
    &lt;td&gt; Windows 95 SR2.1 &lt;/td&gt;
    &lt;td&gt;&lt;a href="http://en.wikipedia.org/wiki/USB"&gt;USB&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Accelerated_Graphics_Port"&gt;AGP&lt;/a&gt; support.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt;May 1997&lt;/td&gt;
    &lt;td&gt;XFree86 3.3&lt;/td&gt;
    &lt;td&gt;XFree86 Acceleration Architecture.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; July 1997&lt;/td&gt;
    &lt;td&gt;System 8 (Mac OS 8, System Software 8.0) &lt;/td&gt;
    &lt;td&gt;&lt;a href="http://en.wikipedia.org/wiki/HFS_Plus"&gt;HFS+&lt;/a&gt; file system. 255 UTF-16 characters file name in system, Finder only support 31 characters.  Multi threaded  finder. &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt;September 1997&lt;/td&gt;
    &lt;td&gt;Windows CE 2.0&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; December 1997&lt;/td&gt;
    &lt;td&gt; Windows 95 SR2.5 &lt;/td&gt;
    &lt;td&gt;Better USB/AGP support. IE4 and DirectX 5. Active Desktop.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; January 1998&lt;/td&gt;
    &lt;td&gt; System 8.1 &lt;/td&gt;
    &lt;td&gt; Support for USB. &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; June 1998&lt;/td&gt;
    &lt;td&gt; Windows 98 &lt;/td&gt;
    &lt;td&gt;FAT32.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; July 1998&lt;/td&gt;
    &lt;td&gt; KDE 1.0&lt;/td&gt;
    &lt;td&gt;&lt;a href="http://www.kdab.net/~dfaure/conf/oops/html/slide_14.html"&gt;KOM/OpenParts&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/KDE_Display_Manager"&gt;kdm&lt;/a&gt;, &lt;a hef="http://kontact.kde.org/kmail/"&gt;KMail&lt;/a&gt;, &lt;a herf="http://krn.sourceforge.net/"&gt;krn&lt;/a&gt;.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; February 1999&lt;/td&gt;
    &lt;td&gt; KDE 1.1&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; March 1999&lt;/td&gt;
    &lt;td&gt; GNOME 1.0&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; May 1999&lt;/td&gt;
    &lt;td&gt; Windows 98SE &lt;/td&gt;
    &lt;td&gt;IE5, DirectX6.1.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; February 2000&lt;/td&gt;
    &lt;td&gt; Windows2000&lt;/td&gt;
    &lt;td&gt;Solid Windows NT kernel, new interface.  NTFS 3.0&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt; March 2000&lt;/td&gt;
    &lt;td&gt;Freedesktop.org launched.&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt;June 2000&lt;/td&gt;
    &lt;td&gt;Windows CE 3.0&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; September 2000&lt;/td&gt;
    &lt;td&gt; Windows Me &lt;/td&gt;
    &lt;td&gt; IE5.5, Mediaplayer 7. Windows 2000 style interface.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; October 2000&lt;/td&gt;
    &lt;td&gt; KDE 2.0&lt;/td&gt;
    &lt;td&gt;KParts, aRts, Sycoca. &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; March 2001&lt;/td&gt;
    &lt;td&gt; Mac OS X 10.0&lt;/td&gt;
    &lt;td&gt; Quartz/PDF support. Cocoa. Aqua. Drop shadows.  Services menu. 255 characters file name in Finder.  Extensive use of unicode.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; February 2001&lt;/td&gt;
    &lt;td&gt; KDE 2.1&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; August 2001&lt;/td&gt;
    &lt;td&gt; KDE 2.2&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; September 2001&lt;/td&gt;
    &lt;td&gt; Mac OS X 10.1 &lt;/td&gt;
    &lt;td&gt;Better CD/DVD burning.  DVD playback.  Better printer support.  Became useful.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; October 2001&lt;/td&gt;
    &lt;td&gt; Windows XP &lt;/td&gt;
    &lt;td&gt;NTFS 3.1, new interface. Icons designed by &lt;a href="http://iconfactory.com/design/detail/windows_xp"&gt;iconfactory&lt;/a&gt;.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt;January 2002&lt;/td&gt;
    &lt;td&gt;Windows CE 4.0&lt;/td&gt;
    &lt;td&gt;&amp;nbsp;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; April 2002&lt;/td&gt;
    &lt;td&gt; KDE3.0&lt;/td&gt;
    &lt;td&gt;Audits, Xinerama.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; June 2002&lt;/td&gt;
    &lt;td&gt; GNOME 2.0 &lt;/td&gt;
    &lt;td&gt;GTK2.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; August 2002&lt;/td&gt;
    &lt;td&gt; Mac OS X 10.2 &lt;/td&gt;
    &lt;td&gt; Windows networks support.  Quartz Extreme.  Rendezvous (Bonjour). CUPS.  Happy Mac was replaced.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; November 2002&lt;/td&gt;
    &lt;td&gt; Mac OS X 10.2.2 &lt;/td&gt;
    &lt;td&gt; Journaling in HFS+.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; January 2003&lt;/td&gt;
    &lt;td&gt; KDE3.1.&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; September 2003&lt;/td&gt;
    &lt;td&gt; GNOME 2.4&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; October 2003&lt;/td&gt;
    &lt;td&gt; Mac OS X 10.3 &lt;/td&gt;
    &lt;td&gt; Brushed metal. Exposé. Fax. X11. *.doc support.  Fast User Switching. Automatic file defragmentation and hotfile clustering.  HFSX. FileVault. &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt; January 2004&lt;/td&gt;
    &lt;td&gt;X.Org Foundation formed&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; February 2004&lt;/td&gt;
    &lt;td&gt;KDE3.2&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; March 2004&lt;/td&gt;
    &lt;td&gt; GNOME 2.6.&lt;/td&gt;
    &lt;td&gt; Nautilus update.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt; April 2004&lt;/td&gt;
    &lt;td&gt; X11R6.7. &lt;/td&gt;
    &lt;td&gt; First X.org release.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; August 2004&lt;/td&gt;
    &lt;td&gt; KDE 3.3&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; August 2004&lt;/td&gt;
    &lt;td&gt; Windows XP SP2 &lt;/td&gt;
    &lt;td&gt; Better security features.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; March 2005&lt;/td&gt;
    &lt;td&gt; KDE 3.4&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; April 2005&lt;/td&gt;
    &lt;td&gt; Mac OS X 10.4&lt;/td&gt;
    &lt;td&gt;&lt;a href="http://en.wikipedia.org/wiki/Access_control_list"&gt;ACL&lt;/a&gt;. &lt;a href="http://en.wikipedia.org/wiki/Spotlight_(software)"&gt;Spotlight&lt;/a&gt;. &lt;a href="http://en.wikipedia.org/wiki/Automator_(software)"&gt;Automator&lt;/a&gt;.  Smart Folders.  Sync Services.  VoiceOver. Core Image. Core Video.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; November 2005&lt;/td&gt;
    &lt;td&gt; KDE 3.5&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt;December 2005&lt;/td&gt;
    &lt;td&gt;X11R6.9/7.0&lt;/td&gt;
    &lt;td&gt;EXA.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt;January 2006&lt;/td&gt;
    &lt;td&gt;xgl&lt;/td&gt;
    &lt;td&gt;Open to public.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt;February 2006&lt;/td&gt;
    &lt;td&gt;Compiz&lt;/td&gt;
    &lt;td&gt;&lt;a href="http://www.prnewswire.com/cgi-bin/stories.pl?ACCT=104&amp;STORY=/www/story/02-07-2006/0004276147&amp;EDATE="&gt;Initial release&lt;/a&gt;.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt;May 2006&lt;/td&gt;
    &lt;td&gt;X11R7.1&lt;/td&gt;
    &lt;td&gt;KDrive, AIGLX.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt;Semptember 2006&lt;/td&gt;
    &lt;td&gt;Beryl&lt;/td&gt;
    &lt;td&gt;Beryl forked from Compiz.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddddff"&gt;
    &lt;td&gt; January 2007&lt;/td&gt;
    &lt;td&gt; Windows Vista&lt;/td&gt;
    &lt;td&gt; &lt;a href="http://en.wikipedia.org/wiki/Windows_Aero"&gt;Windows Aero&lt;/a&gt;. Windows Flip 3D. Windows Shell. Instant Search. Windows Sidebar. &lt;a href="http://www.microsoft.com/windows/products/winfamily/ie/default.mspx"&gt;IE7&lt;/a&gt;. Media Player 11. Backup and Restore center. Windows Mail. Windows Calendar. Windows Photo Gallery. Windows DVD maker/movie maker.  Shadow Copy. Parental Control. Windows sideshow. Speech recognition. DX10.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt;February 2007&lt;/td&gt;
    &lt;td&gt;X11R7.2&lt;/td&gt;
    &lt;td&gt;XCB.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt;March 2007&lt;/td&gt;
    &lt;td&gt;Beryl and Compiz merge&lt;/td&gt;
    &lt;td&gt;Compiz Fusion.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ffdddd"&gt;
    &lt;td&gt;September 2007&lt;/td&gt;
    &lt;td&gt;X11R7.3&lt;/td&gt;
    &lt;td&gt;&lt;a href="http://www.sun.com/bigadmin/content/dtrace/"&gt;DTrace&lt;/a&gt;, input hogplug, output hotplug.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr bgcolor="#ddffdd"&gt;
    &lt;td&gt; October 2007&lt;/td&gt;
    &lt;td&gt; Mac OS X 10.5&lt;/td&gt;
    &lt;td&gt;Updated Finder.  Dock with Stack.  Time Machine.  Spaces.  Quick Look.  Boot Camp. Core Animation. DTrace.&lt;/td&gt;
  &lt;/tr&gt;
&lt;tr bgcolor="#ffffdd"&gt;
    &lt;td&gt; January 2008&lt;/td&gt;
    &lt;td&gt; KDE 4.0&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-2585802791802086996?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/2585802791802086996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=2585802791802086996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/2585802791802086996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/2585802791802086996'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/10/tales-of-guis-and-oses.html' title='Tales of GUIs and OSes'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-6863104389826127522</id><published>2007-10-03T10:40:00.000-04:00</published><updated>2007-10-03T10:44:42.207-04:00</updated><title type='text'>Firefox misses second page of content when printing or print previewing</title><content type='html'>With check in of &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=154892"&gt;Bug 154892&lt;/a&gt;, this long time printing bug has been solved.  This bug annoyed me a lot actually.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-6863104389826127522?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/6863104389826127522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=6863104389826127522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6863104389826127522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/6863104389826127522'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/10/firefox-misses-second-page-of-content.html' title='Firefox misses second page of content when printing or print previewing'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-7710960137748923565</id><published>2007-08-30T14:52:00.000-04:00</published><updated>2007-08-30T14:55:11.984-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>document.elementFromPoint support in mozilla/firefox</title><content type='html'>&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=199692"&gt;Bug 199692&lt;/a&gt; has been fixed on the trunk of firefox 3.0.  So all 4 major browsers are supporting elementFromPoint now.  Though Opera's support is a little bit different with others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-7710960137748923565?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/7710960137748923565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=7710960137748923565' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/7710960137748923565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/7710960137748923565'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/08/documentelementfrompoint-support-in.html' title='document.elementFromPoint support in mozilla/firefox'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-3311594850358012709</id><published>2007-08-15T14:52:00.000-04:00</published><updated>2007-08-22T15:00:15.838-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='free'/><category scheme='http://www.blogger.com/atom/ns#' term='os x'/><category scheme='http://www.blogger.com/atom/ns#' term='paint'/><title type='text'>Free paint replacement on OS X again</title><content type='html'>&lt;p&gt;OK, here we goes the free MS Paint replacement on OS X again.  There are &lt;a href="http://www.tuxpaint.org/"&gt;Tux Paint&lt;/a&gt;, &lt;a href="http://opensword.org/Pixen/"&gt;Pixen&lt;/a&gt;, &lt;a href="http://sourceforge.net/projects/seashore/"&gt;Seashore&lt;/a&gt;, &lt;a href="http://www.inkscape.org/"&gt;InkScape&lt;/a&gt; and &lt;a href="http://www.macupdate.com/info.php/id/14792"&gt;Expression&lt;/a&gt;.

&lt;p&gt;IMHO, Expression is the best, and it is from Microsoft.  My only problem with Inkscape is X11.  I don't like X11 programs. 

&lt;p&gt;There are two painting programs came with the OS X 10.4 install CD, but you can only get them if you install the developer kit.  One is at &lt;b&gt;/Developer/Examples/AppKit/Sketch&lt;/b&gt; and the other one is at &lt;b&gt;/Developer/Examples/Quartz/CarbonSketch&lt;/b&gt;. Enjoy your compiling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-3311594850358012709?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/3311594850358012709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=3311594850358012709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3311594850358012709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3311594850358012709'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/08/free-paint-replacement-on-os-x-again.html' title='Free paint replacement on OS X again'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-3437451781808735284</id><published>2007-08-15T10:49:00.001-04:00</published><updated>2007-08-22T15:08:30.038-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='msi'/><title type='text'>firefox enterprise msi info</title><content type='html'>Follow &lt;a href="http://forums.mozillazine.org/viewtopic.php?t=138033"&gt;this thread&lt;/a&gt; at mozillazine will give you a lot of useful information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-3437451781808735284?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/3437451781808735284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=3437451781808735284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3437451781808735284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/3437451781808735284'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/08/firefox-enterprise-msi-info.html' title='firefox enterprise msi info'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-1421782638775737636</id><published>2007-08-14T18:06:00.000-04:00</published><updated>2007-08-14T21:06:40.850-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chevrolet Equinox Fuel Cell'/><category scheme='http://www.blogger.com/atom/ns#' term='honda FCX'/><category scheme='http://www.blogger.com/atom/ns#' term='Tesla'/><category scheme='http://www.blogger.com/atom/ns#' term='hydrogen fuel cell'/><title type='text'>Tesla Roadster vs. Equinox Fuel Cell vs Honda FCX</title><content type='html'>&lt;p&gt;In this fall, &lt;a href="http://www.teslamotors.com/"&gt;Tesla Roadster&lt;/a&gt; and &lt;a href="http://www.chevrolet.com/fuelcell/"&gt;Equinox Fuel Cell&lt;/a&gt; will be delivered to the market. Let's make a comparison here.&lt;/p&gt;
&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;Tesla Roadster&lt;/td&gt;&lt;td&gt;Equinox Fuel Cell&lt;/td&gt;&lt;td&gt;Honda FCX&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Seating&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0-60 mph&lt;/td&gt;&lt;td&gt;4s&lt;/td&gt;&lt;td&gt;12s&lt;/td&gt;&lt;td&gt;?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Top Speed&lt;/td&gt;&lt;td&gt;130 mph&lt;/td&gt;&lt;td&gt;100 mph&lt;/td&gt;&lt;td&gt;100mph&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Range&lt;/td&gt;&lt;td&gt;200 Miles&lt;/td&gt;&lt;td&gt;200Miles&lt;/td&gt;&lt;td&gt;350 Miles&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Operating temperature&lt;/td&gt;&lt;td&gt;-20° C~?&lt;/td&gt;&lt;td&gt;13~113° F -25~+45° C&lt;/td&gt;&lt;td&gt;-30° C~?&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Curb weight&lt;/td&gt;&lt;td&gt;2690 subject to change&lt;/td&gt;&lt;td&gt; about 4000&lt;/td&gt;&lt;td&gt;?&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;To be continued&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-1421782638775737636?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/1421782638775737636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=1421782638775737636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/1421782638775737636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/1421782638775737636'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/08/tesla-roadster-vs-equinox-fuel-cell.html' title='Tesla Roadster vs. Equinox Fuel Cell vs Honda FCX'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-217313340905612525</id><published>2007-08-12T17:29:00.000-04:00</published><updated>2007-09-01T19:08:40.304-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='energy'/><title type='text'>How much energy can crops store?</title><content type='html'>&lt;p&gt;Based on this &lt;a href="http://www.life.uiuc.edu/govindjee/paper/gov.html"&gt;article&lt;/a&gt;, sugar cane store"1% of the incident visible radiation over a period of one year", while "corn, wheat, rice, potatoes, and soybeans typically ranges from 0.1% to 0.4%".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-217313340905612525?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/217313340905612525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=217313340905612525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/217313340905612525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/217313340905612525'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/08/how-much-energy-can-crops-store.html' title='How much energy can crops store?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-8558349752052426136</id><published>2007-08-06T11:47:00.000-04:00</published><updated>2007-08-06T11:51:17.122-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><title type='text'>SVG ability in Safari 3beta and Firefox 3 Alpha</title><content type='html'>&lt;p&gt;I tried to run both through &lt;a href="http://www.w3.org/Graphics/SVG/Test/20061213/"&gt;the W3 SVG test suite&lt;/a&gt;.  Of course both of them can't render all of the tests, their ability is IMHO on par.  But I can't get focus on the URL bar after I run some tests in Firefox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-8558349752052426136?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/8558349752052426136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=8558349752052426136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8558349752052426136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8558349752052426136'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/08/svg-ability-in-safari-3beta-and-firefox.html' title='SVG ability in Safari 3beta and Firefox 3 Alpha'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-8685791804537552375</id><published>2007-07-26T10:13:00.000-04:00</published><updated>2007-09-01T21:47:21.437-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Full zooming function in firefox</title><content type='html'>Full zooming function has been checked in and it will appear in firefox 3. See &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=4821"&gt;Bugzilla&lt;/a&gt; for more detail.  So Opera and firefox can do this trick now, and Safari, IE are left behind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-8685791804537552375?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/8685791804537552375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=8685791804537552375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8685791804537552375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8685791804537552375'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/07/full-zooming-function-in-firefox.html' title='Full zooming function in firefox'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-8734799686581293521</id><published>2007-07-19T11:18:00.000-04:00</published><updated>2007-08-22T15:08:03.479-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><title type='text'>Firefox 3.0 drops SOAP</title><content type='html'>Mozilla.org &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=332174"&gt;dropped SOAP support today&lt;/a&gt;, with little objection.  So it looks SOAP is not important anymore.  Ah... The one I loved and cared and forgot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-8734799686581293521?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/8734799686581293521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=8734799686581293521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8734799686581293521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/8734799686581293521'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/07/firefox-30-drops-soap.html' title='Firefox 3.0 drops SOAP'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-1108781654432230458</id><published>2007-06-28T11:34:00.000-04:00</published><updated>2007-08-22T15:09:06.212-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><category scheme='http://www.blogger.com/atom/ns#' term='safari'/><category scheme='http://www.blogger.com/atom/ns#' term='opera'/><title type='text'>major svg browser status</title><content type='html'>Mozilla &lt;a href="http://www.mozilla.org/projects/svg/status.html"&gt;http://www.mozilla.org/projects/svg/status.html&lt;/a&gt;

Webkit/Safari &lt;a href="http://webkit.org/projects/svg/status.xml"&gt;http://webkit.org/projects/svg/status.xml&lt;/a&gt;

Opera &lt;a href="http://www.opera.com/docs/specs/opera9/svg/"&gt;http://www.opera.com/docs/specs/opera9/svg/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-1108781654432230458?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/1108781654432230458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=1108781654432230458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/1108781654432230458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/1108781654432230458'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2007/06/major-svg-browser-status.html' title='major svg browser status'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-116484194145281986</id><published>2006-11-29T18:10:00.000-05:00</published><updated>2006-11-29T18:12:21.470-05:00</updated><title type='text'>online maps</title><content type='html'>No online maps service is changing their satellite pictures to reflect season changing yet.  It should be interesting to see a green north atmosphere and a yellow south atmosphere at July.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-116484194145281986?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/116484194145281986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=116484194145281986' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/116484194145281986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/116484194145281986'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/11/online-maps.html' title='online maps'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-116291734543189143</id><published>2006-11-07T11:34:00.000-05:00</published><updated>2006-11-07T11:35:45.453-05:00</updated><title type='text'>google scholar search</title><content type='html'>Why don't google put the scholar search on their front page while I am searching from a edu or ac domain name?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-116291734543189143?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/116291734543189143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=116291734543189143' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/116291734543189143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/116291734543189143'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/11/google-scholar-search.html' title='google scholar search'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-116087260158927372</id><published>2006-10-14T20:32:00.000-04:00</published><updated>2007-08-22T15:04:03.248-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='free'/><category scheme='http://www.blogger.com/atom/ns#' term='os x'/><category scheme='http://www.blogger.com/atom/ns#' term='paint'/><title type='text'>free mspaint replacement on OS X</title><content type='html'>&lt;p&gt;Many people just switched to OS X think they need a replacement for the "paint".

&lt;p&gt;While there are two of them, &lt;a href="http://www.opensword.org/Pixen/"&gt;Pixen&lt;/a&gt; and &lt;a href="http://www.tuxpaint.org/"&gt;Tux paint&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-116087260158927372?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/116087260158927372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=116087260158927372' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/116087260158927372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/116087260158927372'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/10/free-mspaint-replacement-on-os-x.html' title='free mspaint replacement on OS X'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115452839836588530</id><published>2006-08-02T10:10:00.000-04:00</published><updated>2006-08-22T20:55:46.686-04:00</updated><title type='text'>a jscript that cut txt files for ipod notes</title><content type='html'>&lt;p&gt;After painfully looking for a program that can cut txt for my ipod, I wrote a small piece of jscript code that works in Windows Script Host.&lt;/p&gt;

&lt;p&gt; The place you see a blue "NEXT" should be &lt; a h r e f = \ " " + strFileNameShorter + nFile + "." + strSuffix +"\"&gt;NEXT&lt; / a &gt;. Remove the unwanted empty space before you insert code.&lt;/p&gt;

&lt;pre&gt;
var oWShell = new ActiveXObject( "WScript.Shell" );
var oFS = new ActiveXObject("Scripting.FileSystemObject");
var oDialog = new ActiveXObject("UserAccounts.CommonDialog");

var strCurrentDirectory = oWShell.CurrentDirectory 
var forReading = 1, forWriting = 2;
var asUnicode = -1
var nFile = 0;

oDialog.Filter = "All Files|*.*"
oDialog.InitialDir = strCurrentDirectory

var dialogResult = oDialog.ShowOpen()
if( dialogResult == 0 ) {
 oWShell.Quit()
}

var strFileName = oDialog.FileName
var vDotPos = strFileName.lastIndexOf(".")
var strSuffix = "", strFileNameShort = strFileName;
if( -1 != vDotPos ){
 strSuffix = strFileName.substring( vDotPos + 1, strFileName.length )
 strFileNameShort = strFileName.substring( 0, vDotPos  )
}

var vAntiSlashPos = strFileNameShort.lastIndexOf("\\")
var strFileNameShorter = strFileNameShort.substring( vAntiSlashPos + 1, strFileNameShort.length )

var inFile = oFS.OpenTextFile(strFileName, forReading, false, asUnicode)

do{
 var outFile = oFS.CreateTextFile(strFileNameShort + nFile + "." + strSuffix, true, asUnicode)

 var iCharacter = 0
 var temp = ""
 while( ! inFile.AtEndOfStream &amp;&amp; iCharacter ++ &lt; 100 ){
  temp += inFile.Read( 20 );
 }
 outFile.Write( temp )
 nFile ++;
 if( ! inFile.AtEndOfStream ){
  outFile.Write( "&lt;a href=\""+strFileNameShorter + nFile + "." + strSuffix +"\"&gt;NEXT&lt;/a&gt;")
 }
 outFile.Close()
 
}while( ! inFile.AtEndOfStream )

inFile.Close()
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115452839836588530?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115452839836588530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115452839836588530' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115452839836588530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115452839836588530'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/08/jscript-that-cut-txt-files-for-ipod.html' title='a jscript that cut txt files for ipod notes'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115431049512071990</id><published>2006-07-30T21:35:00.000-04:00</published><updated>2006-07-30T21:48:15.136-04:00</updated><title type='text'>Why CSS sucks?</title><content type='html'>&lt;p&gt;CSS is separated from reality, so it sucks.&lt;/p&gt;
&lt;p&gt;The CSS recommendation makers simply don't really understand what web designers need.&lt;/p&gt;
&lt;p&gt;For example, open a shiny colorful tour book. I bet every photo inside has a shadow. Well, make a shadow via CSS is a complicated work still.&lt;/p&gt;
&lt;p&gt;A second example, look at the road signs, they have round corners. Look at your windows XP windows, they have round corners. There are round corners all around OS X. Look at my car windows, they have effectively round corners. But we don't get round corner in CSS.&lt;/p&gt;
&lt;p&gt;So CSS sucks.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115431049512071990?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115431049512071990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115431049512071990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115431049512071990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115431049512071990'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/why-css-sucks.html' title='Why CSS sucks?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115323392599631372</id><published>2006-07-18T10:45:00.000-04:00</published><updated>2006-07-18T10:45:26.063-04:00</updated><title type='text'>erica's joys :): Firefox Sidebar + Google IG = Useful on any platform</title><content type='html'>&lt;p&gt;&lt;a href="http://www.ericabaker.com/2006/07/firefox-sidebar-google-ig-useful-on.html"&gt;erica's joys :): Firefox Sidebar + Google IG = Useful on any platform&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bloody smart idea, perfect for 16:9 screens!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115323392599631372?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115323392599631372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115323392599631372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115323392599631372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115323392599631372'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/ericas-joys-firefox-sidebar-google-ig.html' title='erica&apos;s joys :): Firefox Sidebar + Google IG = Useful on any platform'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115290134996934817</id><published>2006-07-14T14:22:00.000-04:00</published><updated>2006-07-14T14:23:47.966-04:00</updated><title type='text'>In-Cider Knowledge: WiX-ing lyrically, more about firefox automation and msi</title><content type='html'>&lt;a href="http://in-cider.spaces.msn.com/blog/cns!1F17474AB1F2CE52!360.entry?_c11_blogpart_blogpart=blogview&amp;amp;_c=blogpart#permalink"&gt;In-Cider Knowledge: WiX-ing lyrically&lt;/a&gt;

Yeah, this guy is really working on the firefox msi install package that can be installd via Active Directory.  Great news.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115290134996934817?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115290134996934817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115290134996934817' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115290134996934817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115290134996934817'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/in-cider-knowledge-wix-ing-lyrically.html' title='In-Cider Knowledge: WiX-ing lyrically, more about firefox automation and msi'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115289024246898637</id><published>2006-07-14T11:17:00.000-04:00</published><updated>2006-07-14T11:17:22.643-04:00</updated><title type='text'>Worldmapper: The world as you've never seen it before</title><content type='html'>&lt;a href="http://www.sasi.group.shef.ac.uk/worldmapper/index.html"&gt;Worldmapper: The world as you've never seen it before.&lt;/a&gt; Right, some of them are really unbelievable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115289024246898637?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115289024246898637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115289024246898637' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115289024246898637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115289024246898637'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/worldmapper-world-as-youve-never-seen.html' title='Worldmapper: The world as you&apos;ve never seen it before'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115288146460704228</id><published>2006-07-14T08:51:00.000-04:00</published><updated>2007-08-22T15:09:39.817-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Cross-platform Portable Firefox |</title><content type='html'>&lt;a href="http://www.theplaceforitall.com/portablefirefox/"&gt;Cross-platform Portable Firefox | ThePlaceforitAll.com&lt;/a&gt; Sweet!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115288146460704228?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115288146460704228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115288146460704228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115288146460704228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115288146460704228'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/cross-platform-portable-firefox.html' title='Cross-platform Portable Firefox |'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115265184404535669</id><published>2006-07-11T16:40:00.000-04:00</published><updated>2007-09-01T19:09:22.818-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cad'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>CAD software on Mac</title><content type='html'>&lt;ol&gt;
&lt;li&gt;&lt;a href="http://sourceforge.net/projects/brlcad/"&gt;BRL CAD&lt;/a&gt; Open source, free
&lt;li&gt;&lt;a href="http://www.csi-concepts.com/newProducts.htm"&gt;Concepts XXX&lt;/a&gt; Free demo.
&lt;li&gt;&lt;a href="http://www.mccad.com/"&gt;McCAD&lt;/a&gt; Free.
&lt;li&gt;&lt;a href="http://www.turbocad.com/free_downloads.asp"&gt;TurboCAD&lt;/a&gt; Free trial. And available in Apple retail store.
&lt;li&gt;&lt;a href="http://www.graphisoft.com/products/archicad/ac10/"&gt;Archicad&lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.ashlar.com/sections/products/argon/argon.html"&gt;Argon&lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.artlantis.com/products/artlantisR/"&gt;ArtlantisR&lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.lemkesoft.de/en/cadintosh.htm"&gt;Cadintosh&lt;/a&gt; $33
&lt;li&gt;&lt;a href="http://www.gizmolab.com/software/macintosh.html"&gt;Design Intuition&lt;/a&gt; $1xx
&lt;li&gt;&lt;a href="http://www.interstudio.net/digicad3d8submit.html"&gt;DigiCad 3D&lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.doodlebytes.com/DoodleCAD.html"&gt;DoodleCAD&lt;/a&gt; $54.95
&lt;li&gt;&lt;a href="http://www.formz.com/"&gt;form?Z&lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.ilexsoft.com/highdesign/index.html"&gt;HighDesign&lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.engsw.com/products/"&gt;PowerCADD &lt;/a&gt;
&lt;li&gt;&lt;a href="http://www.ribbonsoft.com/qcad.html"&gt;QCad&lt;/a&gt; I am using a GPL version.
&lt;li&gt;&lt;a href="http://www.realcadd.com/"&gt;RealCADD&lt;/a&gt; $95 for standard version and $135 for pro version.
&lt;li&gt;&lt;a href="http://sketchup.google.com/download.html"&gt;Google SketchUp (free)&lt;/a&gt;, from google and free...
&lt;li&gt;&lt;a href="http://www.versacad.com/versacad/"&gt;versacad&lt;/a&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115265184404535669?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115265184404535669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115265184404535669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115265184404535669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115265184404535669'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/cad-software-on-mac.html' title='CAD software on Mac'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115228837185489558</id><published>2006-07-07T12:06:00.000-04:00</published><updated>2007-09-01T19:09:47.779-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript 1.7'/><title type='text'>New in JavaScript 1.7, one more step beyond the C legacy</title><content type='html'>&lt;a href="http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7"&gt;New in JavaScript 1.7 - MDC&lt;/a&gt;

&lt;p&gt;One more step beyond the C legacy. I really enjoy returning several values from a function at one time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115228837185489558?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115228837185489558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115228837185489558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115228837185489558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115228837185489558'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/new-in-javascript-17-one-more-step.html' title='New in JavaScript 1.7, one more step beyond the C legacy'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115227779908818441</id><published>2006-07-07T09:09:00.000-04:00</published><updated>2006-07-07T09:09:59.150-04:00</updated><title type='text'>Browser Fun, one browser bug a day in July</title><content type='html'>&lt;a href="http://browserfun.blogspot.com/"&gt;Browser Fun&lt;/a&gt;.

&lt;p&gt;Funny? a little bit. Interesting, a little bit. Helpful, a little bit.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115227779908818441?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115227779908818441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115227779908818441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115227779908818441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115227779908818441'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/browser-fun-one-browser-bug-day-in.html' title='Browser Fun, one browser bug a day in July'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115194155814409907</id><published>2006-07-03T11:43:00.000-04:00</published><updated>2006-07-03T11:46:19.376-04:00</updated><title type='text'>PLANNED BENEFIT SYSTEMS, INC.</title><content type='html'>&lt;p&gt;PLANNED BENEFIT SYSTEMS, INC.'s FAX number is 303-221-2785.
&lt;p&gt;Check your number and stop sending fax to my cell phone please.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115194155814409907?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115194155814409907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115194155814409907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115194155814409907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115194155814409907'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/07/planned-benefit-systems-inc.html' title='PLANNED BENEFIT SYSTEMS, INC.'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115011822742149012</id><published>2006-06-12T08:58:00.001-04:00</published><updated>2006-06-12T09:17:07.423-04:00</updated><title type='text'>Monitor a folder for change in Windows, OS X, and Linux/Unix?</title><content type='html'>&lt;p&gt;Whant to monitor changes in Windows, Mac OS X and *NIX?&lt;/p&gt; Here are examples.
&lt;p&gt;&lt;a href="http://www.microsoft.com/technet/scriptcenter/resources/qanda/oct04/hey1011.mspx"&gt;Windows&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.apple.com/applescript/folderactions/03.html"&gt;Mac&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://oss.sgi.com/projects/fam/"&gt;*nix-fam&lt;/a&gt; and &lt;a href="http://www.gnome.org/~veillard/gamin/"&gt;*nix-gamin&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115011822742149012?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115011822742149012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115011822742149012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115011822742149012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115011822742149012'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/06/monitor-folder-for-change-in-windows_12.html' title='Monitor a folder for change in Windows, OS X, and Linux/Unix?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-115011785356339045</id><published>2006-06-12T08:58:00.000-04:00</published><updated>2006-06-12T09:10:53.596-04:00</updated><title type='text'>Monitor a folder for change in Windows, OS X, and ...</title><content type='html'>&lt;p&gt;Whant to monitor changes in Windows, Mac OS X and *NIX?&lt;/p&gt; Here are examples.

&lt;p&gt;&lt;a href="http://www.microsoft.com/technet/scriptcenter/resources/qanda/oct04/hey1011.mspx"&gt;Windows&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.apple.com/applescript/folderactions/03.html"&gt;Mac&lt;/a&gt;&lt;/p&gt;.

&lt;p&gt;&lt;a href="http://oss.sgi.com/projects/fam/"&gt;*nix&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-115011785356339045?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/115011785356339045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=115011785356339045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115011785356339045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/115011785356339045'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/06/monitor-folder-for-change-in-windows.html' title='Monitor a folder for change in Windows, OS X, and ...'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114885843238514344</id><published>2006-05-28T19:20:00.000-04:00</published><updated>2006-05-28T19:20:32.450-04:00</updated><title type='text'>Linux still trumps OSX</title><content type='html'>&lt;a href="http://digg.com/linux_unix/Linux_still_trumps_OSX"&gt;Linux still trumps OSX&lt;/a&gt;.  From the title, I've got a feeling that the performance of OS X is very close to Linux on computing now, after reading &lt;a href="http://p2pnet.net/story/8894"&gt;the article&lt;/a&gt;, I found they are really close now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114885843238514344?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114885843238514344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114885843238514344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114885843238514344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114885843238514344'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/05/linux-still-trumps-osx.html' title='Linux still trumps OSX'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114873464075531811</id><published>2006-05-27T08:53:00.000-04:00</published><updated>2007-09-01T19:10:06.336-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><title type='text'>Adobe should get involved with other venders' SVG implementation</title><content type='html'>I think Adobe should do something to help Mozilla, KSVG or even Opera to improve their SVG implementation. Why, because after SVG have been widely adopted, Adobe could make profit from 1st, illustrator, 2nd, SVG plugin for IE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114873464075531811?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114873464075531811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114873464075531811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114873464075531811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114873464075531811'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/05/adobe-should-get-involved-with-other.html' title='Adobe should get involved with other venders&apos; SVG implementation'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114869764510232893</id><published>2006-05-26T22:40:00.000-04:00</published><updated>2006-05-26T22:40:45.176-04:00</updated><title type='text'>Cars</title><content type='html'>The movie &lt;a href="http://www.apple.com/trailers/disney/cars/"&gt;Cars&lt;/a&gt; is not there yet. But I saw Cars candy in Costco today, what a commercial world!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114869764510232893?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114869764510232893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114869764510232893' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114869764510232893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114869764510232893'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/05/cars.html' title='Cars'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114807094387818898</id><published>2006-05-19T16:27:00.000-04:00</published><updated>2006-05-19T16:35:43.893-04:00</updated><title type='text'>Environment friendly building</title><content type='html'>&lt;p&gt;My office is in a new building, which is designed to be an open classroom, and have no cellphone signal.  So after my cell phone desperately searched for signal for a whole day, it run out of power. &lt;/P&gt;
&lt;p&gt;So I did some calculation, in my old office, I recharge my phone maybe every 5 days, now I need to recharge my phone very the other day.  If I could use the same battery in my old office for 3 years, I can only use it in my new office for about 1 year.  Then I need to dispose the useless battery. By shielding the cell phone signal, the architect actually more than doubled waste battery at least from me.&lt;/P&gt;
&lt;p&gt;Shall we call this building environment aware and environmental friendly? I think not.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114807094387818898?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114807094387818898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114807094387818898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114807094387818898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114807094387818898'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/05/environment-friendly-building.html' title='Environment friendly building'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114195835840413555</id><published>2006-03-09T21:39:00.000-05:00</published><updated>2006-03-09T21:39:18.420-05:00</updated><title type='text'>Official Google Blog: Writely so</title><content type='html'>&lt;p&gt;&lt;a href="http://googleblog.blogspot.com/2006/03/writely-so.html"&gt;Official Google Blog: Writely so&lt;/a&gt;
&lt;p&gt;So google is acting. The Writely, a openDocument compatible online word processor.
&lt;p&gt;Now let's wait for the news of &lt;a href="http://www.meyerweb.com/eric/tools/s5/"&gt;s5&lt;/a&gt; and others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114195835840413555?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114195835840413555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114195835840413555' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114195835840413555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114195835840413555'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/03/official-google-blog-writely-so.html' title='Official Google Blog: Writely so'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114181397758268232</id><published>2006-03-08T05:17:00.000-05:00</published><updated>2006-03-08T05:32:57.593-05:00</updated><title type='text'>Google and SUN</title><content type='html'>I just read &lt;a href="http://www.sfgate.com/cgi-bin/article.cgi?file=/c/a/2006/02/27/OFFICE.TMP&amp;type=business"&gt;this&lt;/a&gt;. An article about sun, google and openoffice. But nobody is mentioning what the openoffice is doing. Could google working on something like &lt;a href="http://www.thinkfree.com/"&gt;thinkfree office online&lt;/a&gt;? Maybe. Google can link a web based office suit with the storage space at gmail, and google pages.
&lt;p&gt;I fill MS will try to slowdown the development of its dominating web browser, IE. In case the web based office suit could replace their office. However, their action may resulted in a higher firefox and Opera adoption. But if I am the Bill at Redmond, I will make it happen quicker and have people attracted to MSN and &lt;a href="http://www.microsoft.com/whdc/device/print/metro_FAQ.mspx"&gt;"Metro"&lt;/a&gt;.
&lt;p&gt;Well, where is the Yahoo?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114181397758268232?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114181397758268232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114181397758268232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114181397758268232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114181397758268232'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/03/google-and-sun.html' title='Google and SUN'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114181299823026399</id><published>2006-03-08T05:15:00.000-05:00</published><updated>2006-03-08T05:16:38.230-05:00</updated><title type='text'>Google adsense</title><content type='html'>There should be more colorful choice for google adsense. If my website has a background of black, I won't be happy to have a white block around.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114181299823026399?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114181299823026399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114181299823026399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114181299823026399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114181299823026399'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/03/google-adsense.html' title='Google adsense'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114181282746666825</id><published>2006-03-08T05:06:00.000-05:00</published><updated>2006-03-08T05:13:47.486-05:00</updated><title type='text'>The iTunes Media Store</title><content type='html'>So there are some rumor about apple is going to sell long movies via iTMS. Why not? And  they may also going to sell eBook, eBook enhanced movie, VH1 style enhanced movie. Also they could sell electronic version of papers, news... You may ask what's the difference between the websites of those papers and TV the iTMS version? We can read it directly on the iPod. So why not we call the iTMS the iTunes Media Store?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114181282746666825?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114181282746666825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114181282746666825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114181282746666825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114181282746666825'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/03/itunes-media-store.html' title='The iTunes Media Store'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-114103077562545451</id><published>2006-02-27T03:53:00.000-05:00</published><updated>2006-02-27T03:59:35.636-05:00</updated><title type='text'>google desktop search for gmail</title><content type='html'>google desktop search can search gmail, but have two google accounts. There are many people have several gmail accounts. It is the reality. Why don't Mr. Sergey make google desktop search become more powerful and search several gmail accounts?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-114103077562545451?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/114103077562545451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=114103077562545451' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114103077562545451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/114103077562545451'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/02/google-desktop-search-for-gmail.html' title='google desktop search for gmail'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-113913193423090127</id><published>2006-02-05T04:30:00.000-05:00</published><updated>2006-02-05T04:32:52.610-05:00</updated><title type='text'>What W3C should do something for web developer.</title><content type='html'>&lt;p&gt;W3C should do more for web developers. They should give web developers an official method to support different browsers in a single CSS file.&lt;/p&gt;
&lt;p&gt;I have spent several hours looking through the comments at "IE Blog". I am not a Microsoft lover or a hater. I am kind of web developer. So I only concerned the view points from web developers. To sum up, the world of IE is going to consisted of three members again, while the new comer, IE7, still behave different from other standard compliant browsers. So a web developer should consider four groups of browsers, IE5, IE6, IE7 and the last group including all of the "alternative" browsers.&lt;/p&gt;
&lt;p&gt;This is complicated. A nightmare for the web developers.&lt;/p&gt;
&lt;p&gt;There have been some "CSS hacking". But I think there should be something better.&lt;/p&gt;
&lt;p&gt;W3C should do something. It's the reallity of the web. There are two coexisting standards on the web. The first one is set by the W3C. And the second one is set by the grid of web browsers. None of these browsers support a full set of W3C standard. Each of these browsers has their own bugs.&lt;/p&gt;
&lt;p&gt;So it is nice to have a tag to isolate CSS code for different browsers. Just as the "@media ..." tag, we can have "@browser ..."&lt;/p&gt;
&lt;p&gt;The current choices can be "IE5, IE6, IE7, Gecko1_8, Gecko1_9, khtml..."&lt;/p&gt;
&lt;p&gt;Oops, if W3C do so, we are going to get a new standard and a bunch of new browsers will get into the already condusing browser grid.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-113913193423090127?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/113913193423090127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=113913193423090127' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/113913193423090127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/113913193423090127'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/02/what-w3c-should-do-something-for-web.html' title='What W3C should do something for web developer.'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-113879996519473880</id><published>2006-02-01T08:18:00.000-05:00</published><updated>2006-02-01T08:19:25.206-05:00</updated><title type='text'>iTunes Music Store?</title><content type='html'>It should be called iTune Media Store now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-113879996519473880?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/113879996519473880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=113879996519473880' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/113879996519473880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/113879996519473880'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2006/02/itunes-music-store.html' title='iTunes Music Store?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-112742579441633695</id><published>2005-09-22T17:47:00.000-04:00</published><updated>2005-09-22T17:49:54.416-04:00</updated><title type='text'>email notification of froogle</title><content type='html'>hi, if I want to buy something at certain price, but this price is not available right now, I really would like have something like froogle remeber this and notify me whenever it is available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-112742579441633695?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/112742579441633695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=112742579441633695' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/112742579441633695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/112742579441633695'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/09/email-notification-of-froogle.html' title='email notification of froogle'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-112742566623650044</id><published>2005-09-22T17:46:00.000-04:00</published><updated>2005-09-22T17:47:46.240-04:00</updated><title type='text'>email notification of google scholar  search</title><content type='html'>I think I need one of this, if google scholar found something interesting to me, it should tell me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-112742566623650044?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/112742566623650044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=112742566623650044' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/112742566623650044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/112742566623650044'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/09/email-notification-of-google-scholar.html' title='email notification of google scholar  search'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-112439528668046022</id><published>2005-08-18T15:57:00.000-04:00</published><updated>2005-08-18T16:01:26.686-04:00</updated><title type='text'>Patent Search</title><content type='html'>&lt;p&gt;Yes, I know there is a &lt;a href="http://uspto.gov"&gt;uspto.gov&lt;/a&gt;, but I want to search the patents in a better way. The search function at uspto.gov is really lame. 
&lt;p&gt;Also, I want to search the patents in the world. US, Europe, Japan, China, Russia, Singapore...
&lt;p&gt;Let's wait and see who will do it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-112439528668046022?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/112439528668046022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=112439528668046022' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/112439528668046022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/112439528668046022'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/08/patent-search.html' title='Patent Search'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111461081489986138</id><published>2005-04-27T10:05:00.000-04:00</published><updated>2007-09-01T19:10:32.405-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='svg'/><title type='text'>Firefox turned on SVG</title><content type='html'>SVG has been turned on in firefox trunk builds. But it needs to be enabled by about:config&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111461081489986138?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111461081489986138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111461081489986138' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111461081489986138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111461081489986138'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/04/firefox-turned-on-svg.html' title='Firefox turned on SVG'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111351380107605694</id><published>2005-04-14T17:21:00.000-04:00</published><updated>2007-09-01T19:12:32.069-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='table'/><title type='text'>sortable table with HTML and javascript</title><content type='html'>&lt;p&gt;Is table should be sortable? Yes, of course.
&lt;p&gt;I had a boring and frustrated afternoon, to kill my time, I wrote some code to do this.
&lt;pre&gt;
&amp;lt;html&gt;
&amp;lt;head&gt;
&amp;lt;script&gt;
function initiateTableSort(){
 var vTables = document.getElementsByTagName("table");
 var i;
 for( i in vTables ){
  var vFirstRow = vTables[ i ].rows[ 0 ];
  var j;
  for( j in vFirstRow.cells ){
   vFirstRow.cells[ j ].onclick=doTableSort;
   vFirstRow.cells[ j ].ondblclick=doTableSort;
  }
 }
}

var iTeBeCompared = 0;
function doTableSort( e ){
 var vTargetTable = e.target;
 while( vTargetTable.nodeName != "TABLE"  ) vTargetTable = vTargetTable.parentNode;
 var vTR = vTargetTable.rows[ 0 ];
 var i = e.target.cellIndex;
 var j;
 iToBeCompared = i;
 var vTRs = new Array();
 for( i = 1; i &lt; vTargetTable.rows.length; i ++ ){
  var vRowData = new Array();
  var cells = vTargetTable.rows[ i ].cells;
  for( j = 0; j &lt; cells.length; j++ ){vRowData[ j ] = cells[ j ].innerHTML;}
  vTRs[ i - 1 ] = vRowData;
 }
 if( e.type=="click") vTRs.sort( sortRoutineDes );
 else vTRs.sort( sortRoutineAs );
 for( i = 0 ; i &lt; vTRs.length; i ++ ){
  for(j = 0 ; j &lt; vTRs[ 0 ].length; j ++ ) 
   vTargetTable.rows[ i + 1 ].cells[ j ].innerHTML = vTRs[ i ][ j ];
 }

}

function sortRoutineDes( a, b ){
 return (a[iToBeCompared] &gt; b[iToBeCompared])? -1:1;
}

function sortRoutineAs( a, b ){
 return (a[iToBeCompared] &lt; b[iToBeCompared])? -1:1;
}

&amp;lt;/script&gt;
&amp;lt;/head&gt;
&amp;lt;body onload="initiateTableSort()"&gt;
&amp;lt;table border= "1"&gt;
 &amp;lt;tr&gt;
  &amp;lt;th&gt;a&amp;lt;/th&gt;&amp;lt;th&gt;b&amp;lt;/th&gt;&amp;lt;th&gt;c&amp;lt;/th&gt;
 &amp;lt;/tr&gt;
 &amp;lt;tr&gt;
  &amp;lt;td&gt;x1&amp;lt;/td&gt;&amp;lt;td&gt;3&amp;lt;/td&gt;&amp;lt;td&gt;1&amp;lt;/td&gt;
 &amp;lt;/tr&gt;
 &amp;lt;tr&gt;
  &amp;lt;td&gt;a2&amp;lt;/td&gt;&amp;lt;td&gt;2&amp;lt;/td&gt;&amp;lt;td&gt;2&amp;lt;/td&gt;
 &amp;lt;/tr&gt;
 &amp;lt;tr&gt;
  &amp;lt;td&gt;a3&amp;lt;/td&gt;&amp;lt;td&gt;4&amp;lt;/td&gt;&amp;lt;td&gt;3&amp;lt;/td&gt;
 &amp;lt;/tr&gt;
&amp;lt;tr&gt;
  &amp;lt;td&gt;a3&amp;lt;/td&gt;&amp;lt;td&gt;1&amp;lt;/td&gt;&amp;lt;td&gt;3&amp;lt;/td&gt;
 &amp;lt;/tr&gt;
&amp;lt;tr&gt;
  &amp;lt;td&gt;a3&amp;lt;/td&gt;&amp;lt;td&gt;7&amp;lt;/td&gt;&amp;lt;td&gt;3&amp;lt;/td&gt;
 &amp;lt;/tr&gt;
&amp;lt;tr&gt;
  &amp;lt;td&gt;a3&amp;lt;/td&gt;&amp;lt;td&gt;8&amp;lt;/td&gt;&amp;lt;td&gt;3&amp;lt;/td&gt;
 &amp;lt;/tr&gt;
&amp;lt;tr&gt;
  &amp;lt;td&gt;a3&amp;lt;/td&gt;&amp;lt;td&gt;0&amp;lt;/td&gt;&amp;lt;td&gt;3&amp;lt;/td&gt;
 &amp;lt;/tr&gt;
&amp;lt;tr&gt;
  &amp;lt;td&gt;a3&amp;lt;/td&gt;&amp;lt;td&gt;9&amp;lt;/td&gt;&amp;lt;td&gt;3&amp;lt;/td&gt;
 &amp;lt;/tr&gt;

&amp;lt;/table&gt;
&amp;lt;/body&gt;
&amp;lt;/html&gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111351380107605694?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111351380107605694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111351380107605694' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111351380107605694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111351380107605694'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/04/sortable-table-with-html-and.html' title='sortable table with HTML and javascript'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111310090351000765</id><published>2005-04-09T22:35:00.000-04:00</published><updated>2007-09-01T19:13:18.717-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='table cell'/><title type='text'>change the background color of a table cell by javascript code</title><content type='html'>&lt;p&gt;There are some javascript about changing the background color of a table cell around the web. I don't know why people post that, but I made one with &lt;a href="http://xyfer.blogspot.com/2005/03/javascript-code-to-access-table-cell.html"&gt;my code that access table cell&lt;/a&gt;.
&lt;pre&gt;
getTableCell( "aTable", 1, 2 )
 .style.backgroundColor="blue";
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111310090351000765?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111310090351000765/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111310090351000765' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111310090351000765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111310090351000765'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/04/change-background-color-of-table-cell.html' title='change the background color of a table cell by javascript code'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111290672496526651</id><published>2005-04-07T16:43:00.000-04:00</published><updated>2005-04-07T16:45:24.966-04:00</updated><title type='text'>McMaster-Carr</title><content type='html'>&lt;p&gt;As a lome time customer of &lt;a href="http://www.mcmaster.com/"&gt;McMaster-Carr&lt;/a&gt;, I really enjoy shopping at their website. If everybody make their website as effective as McMaster-Carr, our lives will become much better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111290672496526651?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111290672496526651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111290672496526651' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111290672496526651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111290672496526651'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/04/mcmaster-carr.html' title='McMaster-Carr'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111280286928183651</id><published>2005-04-06T11:52:00.000-04:00</published><updated>2005-04-06T11:54:29.283-04:00</updated><title type='text'>video ipod</title><content type='html'>&lt;p&gt;Based on this piece of &lt;a href="http://www.macrumors.com/pages/2005/04/20050406103913.shtml"&gt;rumor&lt;/a&gt;, the Video iPod is coming. I guess apple will provide music video download firstly and then the short movies and long movies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111280286928183651?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111280286928183651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111280286928183651' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111280286928183651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111280286928183651'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/04/video-ipod.html' title='video ipod'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111273461437739192</id><published>2005-04-05T16:52:00.000-04:00</published><updated>2007-09-01T19:10:54.949-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='table cell'/><title type='text'>access table cell via javascript 2</title><content type='html'>&lt;p&gt;Actually, from what I have tested,
&lt;pre&gt;
 TableId.rows[ i ].cells[ j ]
&lt;/pre&gt;
works fine.
&lt;p&gt;But some people say there are some problems with Safari. I didn't see problems yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111273461437739192?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111273461437739192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111273461437739192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111273461437739192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111273461437739192'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/04/access-table-cell-via-javascript-2.html' title='access table cell via javascript 2'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111228845126026319</id><published>2005-03-31T11:56:00.000-05:00</published><updated>2005-03-31T12:00:51.260-05:00</updated><title type='text'>One method to prevent advertisement annoy web client</title><content type='html'>&lt;p&gt;Hi, there,

&lt;p&gt;You have jumping advertisement on your website, and it looks more attractive than your content or simply annoying. At last your client get tired and blocked your advertisement. That's hurt, yeah, hurt.
&lt;p&gt;So why don't you lower the opacity of your advertisement and increase the contrast of your content, which makes your client happier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111228845126026319?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111228845126026319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111228845126026319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111228845126026319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111228845126026319'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/03/one-method-to-prevent-advertisement.html' title='One method to prevent advertisement annoy web client'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111220417871842411</id><published>2005-03-30T12:35:00.000-05:00</published><updated>2007-09-01T19:11:16.814-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='table cell'/><title type='text'>Javascript code to access table cell via id</title><content type='html'>&lt;pre&gt;
function getTableCell(id, row, cell){
    var vRow = document.getElementById( id ).rows[ row ];
    var i=0, j=0;
    for(;i &lt; vRow.childNodes.length; i ++ ){
     if( "TD" == vRow.childNodes[ i ].nodeName ){
      if( j == cell ) return vRow.childNodes[ i ];
      j ++;
     }
    }
    return null;
   }
&lt;/pre&gt;
&lt;p&gt;Tested on Firefox 1.02, IE6, Safari 1.2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111220417871842411?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111220417871842411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111220417871842411' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111220417871842411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111220417871842411'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/03/javascript-code-to-access-table-cell.html' title='Javascript code to access table cell via id'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-111098975123117293</id><published>2005-03-16T11:13:00.000-05:00</published><updated>2005-03-16T11:15:51.233-05:00</updated><title type='text'>would google make a word processor in browser, or SUN will do this?</title><content type='html'>Saw an intersting article at &lt;a href="http://www.cnet.com/4520-6033_1-5759958-1.html?tag=nl.e501"&gt;Good-bye, computer; hello, world!&lt;/a&gt;. The most interesting phase in this article is "Every computer is your computer. Onward to the universal terminal!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-111098975123117293?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/111098975123117293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=111098975123117293' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111098975123117293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/111098975123117293'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/03/would-google-make-word-processor-in.html' title='would google make a word processor in browser, or SUN will do this?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110659340703811705</id><published>2005-01-24T14:02:00.000-05:00</published><updated>2005-01-24T14:03:27.036-05:00</updated><title type='text'>google hired ben!</title><content type='html'>&lt;p&gt;&lt;a href="http://weblogs.mozillazine.org/ben/archives/007366.html"&gt;link&lt;/a&gt;

&lt;p&gt;So will there be a google browser again?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110659340703811705?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110659340703811705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110659340703811705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110659340703811705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110659340703811705'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/google-hired-ben.html' title='google hired ben!'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110582492651562645</id><published>2005-01-15T16:34:00.000-05:00</published><updated>2007-09-01T19:11:44.581-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>a  good example to learn how to write firefox extension</title><content type='html'>&lt;a href="http://extensions.roachfiend.com/howto.php"&gt;http://extensions.roachfiend.com/howto.php&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110582492651562645?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110582492651562645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110582492651562645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110582492651562645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110582492651562645'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/good-example-to-learn-how-to-write.html' title='a  good example to learn how to write firefox extension'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110554162098616312</id><published>2005-01-12T09:53:00.000-05:00</published><updated>2007-09-01T21:52:14.050-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>firefox automation</title><content type='html'>&lt;a href="http://spaces.msn.com/members/in-cider/"&gt;This guy&lt;/a&gt; is making some good stuff of firefox automation.

&lt;p&gt;Update 2007-09-01: read &lt;a href="http://wiki.mozilla.org/Enterprise"&gt;the official mozilla enterprise wiki&lt;/a&gt; for more information about enterprise deployment of firefox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110554162098616312?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110554162098616312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110554162098616312' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110554162098616312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110554162098616312'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/firefox-automation.html' title='firefox automation'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110547130182059313</id><published>2005-01-11T14:18:00.000-05:00</published><updated>2007-09-07T14:17:04.409-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Apple changed the world again</title><content type='html'>&lt;p&gt;God!&lt;/p&gt;
&lt;p&gt;They did &lt;a href="http://www.apple.com/macmini/"&gt;this, Mac mini&lt;/a&gt;, they did &lt;a href="http://www.apple.com/ipodshuffle/"&gt;this, iPod shuffle&lt;/a&gt;.
&lt;p&gt;This is...I can not find a word. They changed the world again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110547130182059313?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110547130182059313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110547130182059313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110547130182059313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110547130182059313'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/apple-changed-world-again.html' title='Apple changed the world again'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110503049827333846</id><published>2005-01-06T11:54:00.000-05:00</published><updated>2005-01-06T11:54:58.273-05:00</updated><title type='text'>look beyond tabbed browsing...</title><content type='html'>Aren't tabs need to be grouped?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110503049827333846?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110503049827333846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110503049827333846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110503049827333846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110503049827333846'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/look-beyond-tabbed-browsing.html' title='look beyond tabbed browsing...'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110495419003991236</id><published>2005-01-05T14:38:00.000-05:00</published><updated>2005-01-05T14:43:10.040-05:00</updated><title type='text'>where can we get official firefox msi?</title><content type='html'>right &lt;a href="ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/"&gt;here&lt;/a&gt;. And unofficials can be found at &lt;a href="http://xyfer.blogspot.com/2005/01/more-about-firefox-msi-and-automation.html"&gt;here&lt;/a&gt; and &lt;a href="http://xyfer.blogspot.com/2004/09/firefox-msi.html"&gt;here&lt;/a&gt;.
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110495419003991236?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110495419003991236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110495419003991236' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110495419003991236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110495419003991236'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/where-can-we-get-official-firefox-msi.html' title='where can we get official firefox msi?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110495321892071787</id><published>2005-01-05T14:21:00.001-05:00</published><updated>2008-06-03T12:19:45.170-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='regexp'/><category scheme='http://www.blogger.com/atom/ns#' term='regular expression'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><title type='text'>javascript regexp email validator</title><content type='html'>&lt;p&gt;I have been looking for a javascript email regexp email validator. And I found one from &lt;a href="http://www.javascriptkit.com/script/script2/acheck.shtml?emailcheck=a%40b.cc"&gt;this web site&lt;/a&gt;. And the code is 
&lt;code&gt;
"/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i"
&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;This code looks nice.

&lt;p&gt;However, I am not totally satisfied with the code.  Because there are emails addresses don't look like "abc@abc.com".  For example, I used to send email to  an address like "joel@192.168.100.1".  So I am going to make some change to the regular expression filter.

&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;Update 1:&lt;/font&gt;&lt;/b&gt;
&lt;code&gt; "/^([\w-]+(?:\.[\w-]+)*)\@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?(\d{1,3}\.){3}\d{1,3}\]?)$/i" 
&lt;/code&gt;
will detect email like "abc@127.0.0.1" or "abc@[127.0.0.1]".


&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;Update 2:&lt;/font&gt;&lt;/b&gt;
&lt;code&gt;
/^([\w-]+(?:\.[\w-]+)*)\@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)$/i
&lt;/code&gt;

&lt;p&gt;Now this one won't let a.b.c@256.0.0.0 slip.


&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;Update 3:&lt;/font&gt;&lt;/b&gt;
&lt;code&gt;
/^(("?)[\w- ]+\1)|([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)$/i
&lt;/code&gt;

&lt;p&gt;Now this regular expression thinks "Guy Joel"@abc.com or "Guy Joel"guyj@abc.com are good email address.

&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;Update 4:&lt;/font&gt;&lt;/b&gt;
&lt;code&gt;
/^(("?)[\w-\s]+\1)|([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)$/i
&lt;/code&gt;

&lt;p&gt;A little bit more update on space in the regexp.

&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;Update 5:&lt;/font&gt;&lt;/b&gt;
&lt;code&gt;
/^("[\w-\s]+")?([\w-]+(?:\.[\w-]+)*)?@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)$/i
&lt;/code&gt;
&lt;p&gt;Made a big mistake in the last one. So, another update.

&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;Update 6:&lt;/font&gt;&lt;/b&gt;
&lt;code&gt;
/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$|(\[?((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)$/i
&lt;/code&gt;
&lt;p&gt;It's getting longer and longer, better and better.

&lt;p&gt;&lt;b&gt;&lt;font color="red"&gt;Update 7:&lt;/font&gt;&lt;/b&gt;
&lt;code&gt; /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
&lt;/code&gt;
&lt;p&gt;The update 6 thinks 256.255.255.255 is a legal ip address, fixed in update 7.

&lt;table&gt;
&lt;tr&gt;&lt;td&gt;string&lt;/td&gt;&lt;td&gt;result&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;joel@joel.com&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;joel@joel.edu&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;joel@joel.museum&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;joel@joel.ac.uk&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;joel@guy.joel.ac.uk&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;guy.joel@guy.joel.ac.uk&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;guy.joel@127.0.0.1&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;guy.joel@[127.0.0.1]&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\"Guy Joel\"guy.joel@[127.0.0.1&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\"Guy Joel\"@[127.0.0.1]&lt;/td&gt;&lt;td&gt;pass&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\"Guy Joel\"@9.999.99.25&lt;/td&gt;&lt;td&gt;fail&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;\"Guy Joel\"@999.99.99.25&lt;/td&gt;&lt;td&gt;fail&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;"\"Guy Joel\""&lt;/td&gt;&lt;td&gt;fail&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;
&lt;p&gt;Also, &lt;a href="http://xyfer.blogspot.com/2008/06/regular-expression-for-url-validation.html"&gt;regular expression for url validation&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110495321892071787?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110495321892071787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110495321892071787' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110495321892071787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110495321892071787'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/javascript-regexp-email-validator.html' title='javascript regexp email validator'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110487727457611885</id><published>2005-01-04T17:11:00.000-05:00</published><updated>2005-01-04T17:21:14.576-05:00</updated><title type='text'>Browser side form check and server side form check</title><content type='html'>&lt;p&gt;Nowadays web developers do browser side form input check by javascript and server side form input check. Although without browser side form input check everything will be OK, we'd better do it. Because we can save some computing power on the server side. If a web user input some thing wrong, the server application need to check for mistakes, generate a page explain the error, and then the server need to check the input and process the data again.
&lt;p&gt;If we have browser side form input check, the error check process will be done on the browser side computer.
&lt;p&gt;But if we can do form input check at the browser side, why do we need check it again at server side? Because there are hackers, there are bad people. They can do whatever to put something wrong onto the server, to crash the application, to mess up our database. So we need to check the input on the server side again.
&lt;p&gt;However, most of the input will be done by good customers, so with the help of browser side form input check, the server side form input check need only work onece, rather than twice or more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110487727457611885?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110487727457611885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110487727457611885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110487727457611885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110487727457611885'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/browser-side-form-check-and-server.html' title='Browser side form check and server side form check'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110486442663814416</id><published>2005-01-04T13:45:00.000-05:00</published><updated>2005-01-04T13:47:06.636-05:00</updated><title type='text'>open an typed url in a new tab in firefox</title><content type='html'>Some people asked me this question. It's simple. Just press alt (or option on some old mac) while you hit enter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110486442663814416?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110486442663814416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110486442663814416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110486442663814416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110486442663814416'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/open-typed-url-in-new-tab-in-firefox.html' title='open an typed url in a new tab in firefox'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110486425436167285</id><published>2005-01-04T13:32:00.000-05:00</published><updated>2005-01-04T17:11:33.906-05:00</updated><title type='text'>more about firefox msi and automation</title><content type='html'>Many people have been looking for msi package for  firefox. And there is &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=231062"&gt; a little discussion &lt;/a&gt;going on at &lt;a href="http://www.mozilla.org"&gt;mozilla.org&lt;/a&gt;. As a result an official msi package of firefox will appear sometime in the next one or two releases. And some &lt;a href="http://www.frontmotion.com/Firefox/"&gt;other&lt;/a&gt; &lt;a href="http://www.webheat.co.uk/firefox.php"&gt;unofficial&lt;/a&gt; msi packages are floating arround.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110486425436167285?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110486425436167285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110486425436167285' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110486425436167285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110486425436167285'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2005/01/more-about-firefox-msi-and-automation.html' title='more about firefox msi and automation'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110287153017709285</id><published>2004-12-12T13:10:00.000-05:00</published><updated>2004-12-12T12:12:10.176-05:00</updated><title type='text'>what we can learn from google suggest</title><content type='html'>&lt;ol&gt;
&lt;li&gt;XMLHttpRequest is quicker than iframe
&lt;li&gt;Don't use SOAP
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110287153017709285?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110287153017709285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110287153017709285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110287153017709285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110287153017709285'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/12/what-we-can-learn-from-google-suggest.html' title='what we can learn from google suggest'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110287145195440296</id><published>2004-12-12T13:08:00.000-05:00</published><updated>2004-12-12T12:10:51.956-05:00</updated><title type='text'>google suggest</title><content type='html'>&lt;p&gt;The new &lt;a href="http://www.google.com/webhp?complete=1&amp;hl=en"&gt;google suggest&lt;/a&gt; is funny.
&lt;p&gt;But can they do local?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110287145195440296?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110287145195440296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110287145195440296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110287145195440296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110287145195440296'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/12/google-suggest.html' title='google suggest'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110261489565285197</id><published>2004-12-09T13:46:00.000-05:00</published><updated>2008-02-04T18:25:41.349-05:00</updated><title type='text'>Weird things.</title><content type='html'>&lt;p&gt;There are several things I found recently.
&lt;p&gt;The first one is that my blog's google ranking is 5. There is barely visitor to my blog, I know. I searched via google, found out that the only links linking to my blog are from &lt;a href="http://slashdot.org"&gt;slashdot.org&lt;/a&gt;, actually, my sig at slashdot. Thus you can increase your google ranking by add your website as signature at a forum website like &lt;a href="http://slashdot.org"&gt;slashdot.org&lt;/a&gt;. Weired? Isn't it?
&lt;p&gt;During my research of the mystic google ranking, I found that google now supporting searching for information about "who is linking me". Will they provide a visualized geographic related graph? Maybe. Will they show search result in pattern? who knows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110261489565285197?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110261489565285197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110261489565285197' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110261489565285197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110261489565285197'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/12/weired-things.html' title='Weird things.'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110261413859694075</id><published>2004-12-09T13:39:00.000-05:00</published><updated>2004-12-09T12:42:18.596-05:00</updated><title type='text'>The stuff behind showing search result in pattern</title><content type='html'>The stuff behind  showing search result in patterns is that the search engine could understand the content and the relationship between them. People are working to make search engines to understand the query words typed by the users of search engine. But it should be equaly important for the search engine to understand the content on the web. Weired? A little bit, I admit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110261413859694075?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110261413859694075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110261413859694075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110261413859694075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110261413859694075'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/12/stuff-behind-showing-search-result-in.html' title='The stuff behind showing search result in pattern'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110182718599326127</id><published>2004-11-30T10:03:00.000-05:00</published><updated>2004-11-30T10:06:25.993-05:00</updated><title type='text'>showing search result in a pattern 2.</title><content type='html'>There are many patterns can be used to show the relationships between topics. The one every search engine is using is list. The second interesting one is a tree. The third one may be a grid. And the fourth one may be a flower. The fifth one may be a line. And the sixth one may be a circle. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110182718599326127?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110182718599326127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110182718599326127' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110182718599326127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110182718599326127'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/11/showing-search-result-in-pattern-2.html' title='showing search result in a pattern 2.'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110176157774719230</id><published>2004-11-29T15:48:00.000-05:00</published><updated>2004-11-29T15:52:57.750-05:00</updated><title type='text'>showing search result in a pattern</title><content type='html'>We search the Internet for information. Those pieces of information are connected with each other. And the search engines could show us pages under one topic. But the content of those webpages change from one to another. So how about show the search result in a grid of webpages. As a result, we can not only know one topic and we could also know the related topics and how they are related.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110176157774719230?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110176157774719230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110176157774719230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110176157774719230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110176157774719230'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/11/showing-search-result-in-pattern.html' title='showing search result in a pattern'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-110014424088104828</id><published>2004-11-10T22:16:00.000-05:00</published><updated>2004-11-10T22:37:20.880-05:00</updated><title type='text'>sub key word or sub topic of search engine</title><content type='html'>&lt;p&gt;When we do a search online, we input a key word, I prefer to call it a topic, to the webpage of search engine, and the search engine return what ever it thinks related to us.
&lt;p&gt;Search engine should have the ability to identify the sub-topics. For example, if I input Mercedes Benz, the search engine should be able to provide me some sub-topics like "buying Mercedes Benz", "Repair Mercedes Benz", "history and information of Mercedes Benz". And if I input "weather forecast", the search engine should be able to provide something like "local weather forcast", "methods used in weather forecast", "history of weather forecast". If I input "deer hunting", I could get "skill of deer hunting", "places of deer hunting", "equipment needed for deer hunting"...
&lt;p&gt;And the most important is that those sub-topics should be identified by the machine, not human. There are two place to get those informaiton, firstly, direct from the web pages, by analysis of those key words, the search engine should be able to know. Secondly, from the input of people. 
&lt;p&gt;The reason we need this is because we are not really clear what we are looking for when we input something to the search engine in many cases, especially we are looking for something we don't know. So those sub-topics could provide a panorama of certain topic. This will help people gather knowledge.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-110014424088104828?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/110014424088104828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=110014424088104828' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110014424088104828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/110014424088104828'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/11/sub-key-word-or-sub-topic-of-search.html' title='sub key word or sub topic of search engine'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-109858847597336232</id><published>2004-10-23T23:15:00.000-04:00</published><updated>2004-10-24T22:05:14.563-04:00</updated><title type='text'>What's the difference between local application and web application?</title><content type='html'>&lt;p&gt;I am looking in the future of web applications. Those applications could do something that we are doing with our local applications but running or look like running in a web browser.
&lt;p&gt;But why we need those applications? There are several reasons.
&lt;ol&gt;
&lt;li&gt;We want mobility.
 &lt;ul&gt;
  &lt;li&gt;We want to, most time we have to walk arround. For example, many times I have to work in my office for some time and then go to a library and then work at the library for some other time. I have a notebook, but I don't like to carry it with me all the time. And there are always some computers in the library, and there is always at least one web browser on each of those computers. I can use them.
&lt;/ul&gt;
&lt;li&gt;For the mobility, we want data to be centralized.
&lt;ul&gt;&lt;li&gt;I hate to say, "Oh, my, I forget my data in the office." And I can put my data on the webserver and access them via web browser. But if we have the data centralized, we have to use network con retrieve the data. 
&lt;/ul&gt;
&lt;li&gt;We want multi-platform compatibility.
&lt;ul&gt;&lt;li&gt;I use different computers, and different people use different computers. No body want to write same application several times just for different platform. And as web content can be used by web browser, there problem of compatibility become no problem.
&lt;/ul&gt;
&lt;li&gt;We want to have pictures, videos and more...
&lt;ul&gt;&lt;li&gt;All of those ability can be achieved by telnet. But we also want to use see the graphics and see the radios.
&lt;/ul&gt;
&lt;li&gt;Security concerns
&lt;ul&gt;&lt;li&gt;And because of the security concerns, ports other than 80 has been closed in may computers. In some other case, even any application other than web browser has been shut off the net. Thus, telnet and other applications are forbidden to reach the web, we we have to use web browser. The other security concern is the encryption, the encrypt method used by browsers are well developed and we don need to concern the bugs.
&lt;/ul&gt;
&lt;/ol&gt;
&lt;p&gt;And web applications are different from common applications. Those common applications retrieve data via network using what ever method and has full access to the local data. Web application has tow layers, the first layer is the web server side application. The data are stored on the web server and the server side have full access to the data. Then the server side application send the data in partially rendered form, like HTML or XML, to the web browser. The web broser render the data into understandable form.
&lt;p&gt;The ability of web appliation to render the data is confined by the ability of webbroser to render HTML and the ability of web developer. The ability of web browser is limited, unfortunately. For example, by now, the round corner, which has been used on printed media for hundreds of years, has not been impleted on major browsers on a standard way.
&lt;p&gt;The ability of HTTP is confined. Though we have XML now, XML can be used to transfer diferent kind of data with very complicated structure, the XML has its own problem.
&lt;p&gt;XML is slow and resource demanding.
&lt;p&gt;So over all, web applications have their own points. But the ability of web applications are limited. We may  not be able to produce web application as powerful as common applications. But web applications do have their own points, like mobility and security.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-109858847597336232?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/109858847597336232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=109858847597336232' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/109858847597336232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/109858847597336232'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/10/whats-difference-between-local.html' title='What&apos;s the difference between local application and web application?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7552288.post-109813649213784312</id><published>2004-10-18T17:38:00.000-04:00</published><updated>2004-10-18T17:54:52.136-04:00</updated><title type='text'>What else a search engine could do?</title><content type='html'>&lt;p&gt;What else a search engine could do except search? There are many things a search engine could and should do. Basically a search engine has a large database, ah... huge. There are many data inside, it is stupid not to use that data.
&lt;p&gt;One function a search engine could do is analyze the growth of a website. And website should keep adding more and more information to itself. And a search engine could provide information about how this website adding new information to itself. Or the growth curve of the website. It could be linear, square, log or square root of time.
&lt;p&gt;The other thing a search engine could do is analyze the obsolete rate of a website. There are pages that people are not interested anymore, a search engine should be able to see that trend.
&lt;p&gt;The third thing a seach engine is able to do is analyze the growth of other websites, especially "websites with great similarity". This sounds like a spy, but useful...
&lt;p&gt;The fourth thing, to monitor the stability of a website. &lt;a href="http://netcraft.com"&gt;netcraft&lt;/a&gt; is running such service.
&lt;p&gt;The fifth, to give information related with geographical distribution. The business of real world is done at different geographical positions. Or simplify it as provide "whois" information together with No. 1, 2, 3, 4.
&lt;p&gt;The sixth... lemme think.
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7552288-109813649213784312?l=xyfer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://xyfer.blogspot.com/feeds/109813649213784312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7552288&amp;postID=109813649213784312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/109813649213784312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7552288/posts/default/109813649213784312'/><link rel='alternate' type='text/html' href='http://xyfer.blogspot.com/2004/10/what-else-search-engine-could-do.html' title='What else a search engine could do?'/><author><name>cyfer</name><uri>http://www.blogger.com/profile/16698067314939726424</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
