<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Dijital Life</title>
	
	<link>http://www.coachwei.com/blog</link>
	<description>Coach Wei' thoughts on dijital life and startups</description>
	<pubDate>Sat, 24 Oct 2009 20:44:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/DirectFromWeb20" type="application/rss+xml" /><feedburner:emailServiceId>DirectFromWeb20</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Social Expeditions Looking for CTO</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/s8mtdX12PRo/</link>
		<comments>http://www.coachwei.com/blog/2009/10/22/social-expeditions-looking-for-cto/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 00:28:05 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[startup]]></category>

		<category><![CDATA[recuriting]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=301</guid>
		<description><![CDATA[My friends at Social Expeditions are looking for a CTO. Below is what they are looking for: 

Social Expeditions is a company behind blockbusters on Facebook and MySpace. Millions use our products. We are profitable.
 

This is no coincidence because we are obsessed with our customers. While many features start with intuitions and mechanics we [...]]]></description>
			<content:encoded><![CDATA[<p><i>My friends at Social Expeditions are looking for a CTO. Below is what they are looking for: </i></p>
<p>
Social Expeditions is a company behind blockbusters on Facebook and MySpace. Millions use our products. We are profitable.
 </p>
<p>
This is no coincidence because we are obsessed with our customers. While many features start with intuitions and mechanics we have seen work, everything is put to customer development testing. We rely on our own multivariate experimentation system and carry out extremely rapid testing and iteration (sometimes on the order of 30-60 minutes). Our goal is to continue producing great social games and applications that excite, entertain and inspire millions.
 </p>
<p>
We&#8217;re an engineering-led organization You will be joining a still-very-lean global crew (with foci in San Francisco and Tel Aviv) that convenes for 2-3 week hackathons every several months at awesome locations (recent stop: Croatia, next stop: Tokyo).
 </p>
<p>
On our team everybody is part of the product development process and you will be too. It is critical that we all understand the product thoroughly and help inspire each other to innovate it. You will be expected to care about the product.
 </p>
<p>Tools we use: Python, Google AppEngine, Javascript, JQuery, Git, Fogbugz, Yammer, Skype/Tokbox, Usertesting.com, some LAMP, some Subversion
</p>
<p>
Your Role:<UL><br />
<LI>You will architect, oversee, and manage our technological architecture and strategy, working with our engineering team and the two (technical) founders to make sure we are on the cutting edge of customer development systems - a mix of analytics/tracking, statistics and a development process that creates maximum iterative speed. Your technical leadership will underpin our company&#8217;s success.<br />
 </LI><br />
<LI>You will come up with new and better ways of scaling, modularizing, and using different technologies for our games, social applications and customer development systems. Quite often, you will be the first to release a rough prototype of a new system you envisioned.<br />
 </LI><br />
</UL></p>
<p/>
<p>
We expect you to demonstrate a strong track record with web and serverside technologies, including some sys admin experience, at least some Javascript and preferably a lot of Python. You will have had a 3-5 years experience in managing developers.<br />
 </P></p>
<p>
Everybody prefers particular tools and types of problems. However, with that in mind you&#8217;re the type of engineer who has dabbled in enough things to be able to build a complete system from scratch (systems, backend and frontend), relishing bits and pieces that are new or challenging to you.
 </p>
<p>
You appreciate that a minimal viable product can have bugs and that, as an agile company, all our products are a work in progress.
 </p>
<p><p>You must be available for a full time commitment.</p>
<p>You are the type of person who:<UL><br />
<LI>writes clean, understandable, quality code</LI><br />
<LI>has strong communication and interpersonal skills</LI><br />
<LI>loves a fast-paced, informal environment where constant change is the norm and the bar for quality is set high</LI><br />
<LI>finds and helps implementing a solution, no matter what</LI><br />
<LI>has strong opinions on whatever matters to you, but knows to listen and like being challenged</LI><br />
<LI>is excited about social applications and games</LI><br />
 </UL>
</p>
<p>
We offer a competitive compensation package including equity and performance bonuses.
</p>
<p>If you are interested, email socialxhiring at gmail.com. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/10/22/social-expeditions-looking-for-cto/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/10/22/social-expeditions-looking-for-cto/</feedburner:origLink></item>
		<item>
		<title>A Bad Weekend</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/HVexNwCWEq0/</link>
		<comments>http://www.coachwei.com/blog/2009/10/11/a-bad-weekend/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 01:12:32 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[Main Page]]></category>

		<category><![CDATA[Yottaa]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[humor]]></category>

		<category><![CDATA[politics]]></category>

		<category><![CDATA[patriots]]></category>

		<category><![CDATA[redsox]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=300</guid>
		<description><![CDATA[October 11th 2009 looks like a bad weekend. It turned out to be a really bad one:

RedSox - what can you say? Swept. Soul crushed. Ortiz, Bay and Youk combined with 2-3 hits over three games. and Papelbon fell from the cliff.
Patriots - Ok. This one is not a big deal. For some reason, Brady [...]]]></description>
			<content:encoded><![CDATA[<p>October 11th 2009 looks like a bad weekend. It turned out to be a really bad one:</p>
<ul>
<li><a href="http://www.redsox.com"><strong>RedSox</strong></a> - what can you say? Swept. Soul crushed. Ortiz, Bay and Youk combined with 2-3 hits over three games. and Papelbon fell from the cliff.</li>
<li><a href="http://www.patriots.com"><strong>Patriots</strong></a> - Ok. This one is not a big deal. For some reason, Brady lost his capability to throw the ball after the first quarter? Pats will bounce back.</li>
<li><strong>Obama Won Nobel Peace Prize</strong> - This is a big one. My respect for the Nobel Peace Prize committee dropped to the same level that RedSox would get a hit facing a playoff pitcher. <a href="http://blog.cagle.com/news/2009/10/09/live-blog-cartoonists-respond-to-obamas-nobel-prize-win/">These cartoons</a> are better than any words that I can assemble together on this subject.  My favorite one is below:
<p><center><br />
<img src="http://blog.cagle.com/news/files/2009/10/06-koterba.jpg" alt="" /><br/>Obama Won Nobel Peace Prize</p>
<p></center></li>
<li><strong><a href="https://wave.google.com/wave/">Google Waves</a></strong> - This looks like a classic example of a technology searching for a problem to solve, which happens and it is not a big deal.  What is a big deal in my opinion is that the Google Waves team doesn&#8217;t seem to understand what is the core value of the technology and certainly failed to identify a proper use case for their technology. The use case that GoogleWave is currently targeting at, collaborative discussions (whatever you call it), just does not shine. GoogleWaves technology adds only very limited value to collaborative discussions beyond the existing solutions (such as IM, discussion forums and email). I&#8217;d recommend <a href="http://twitter.com/forjared">@forjared</a> as a solution to their problem except that <a href="http://twitter.com/forjared">@forjared</a> is taken by some other <a href="http://www.yottaa.com"><strong>&#8220;don&#8217;t be evil&#8221;</strong> company</a> already.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/10/11/a-bad-weekend/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/10/11/a-bad-weekend/</feedburner:origLink></item>
		<item>
		<title>Yottaa Looking for Head of Engineering</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/Z2qOLdqRu8A/</link>
		<comments>http://www.coachwei.com/blog/2009/09/18/yottaa-looking-for-ahead-of-engineering/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 11:50:03 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[Main Page]]></category>

		<category><![CDATA[Yottaa]]></category>

		<category><![CDATA[asia]]></category>

		<category><![CDATA[cloud]]></category>

		<category><![CDATA[startup]]></category>

		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=298</guid>
		<description><![CDATA[Based in Boston and Beijing, yottaa is a stealth mode startup in the area of cloud computing. We are not saying too much about what we do in public yet, but we can say that you will enjoy the deep computer science as well as the plenty “lost in translation” moments in our cross culture [...]]]></description>
			<content:encoded><![CDATA[<p>Based in Boston and Beijing, <a href="http://www.yottaa.com">yottaa</a> is a stealth mode startup in the area of cloud computing. We are not saying too much about what we do in public yet, but we can say that you will enjoy the deep computer science as well as the plenty “lost in translation” moments in our cross culture geek environment. </p>
<p>We are looking for a head of engineering that can build and lead a team of 10-50 engineers.  The team is made up of different disciplines (Web development, Networking, Yottaa-scale Distributed Computing, System and Application Design, Ruby, Java, C/C++, Open Source).</p>
<p>The ability to go from zero engineers to 10 with an extremely high talent concentration is critical.  If you have a big brain, that’s great and we&#8217;d love to know that.  More importantly, we are looking for someone who attracts even bigger brains.</p>
<p>Though you don’t have to be an expert in all technical areas, you need to have an understanding as well as an appreciation of the technology.  We are not looking for a translator that can use Microsoft Project.</p>
<p>We are looking for a leader that can build and maintain a development culture that is highly productive as well as enjoyable to be a part of.  The head of engineering needs to be able to help create a culture of people working for intrinsic goals rather than extrinsic ones.</p>
<p>We want someone that can implement an agile development process in an organization.</p>
<p>Communication within the team as well as throughout the rest of the cross culture organization is a key component of the job.</p>
<p>The ability to speak Chinese is important as is the understanding of US and Chinese cultures and how to work productively in both.</p>
<p>We offer a competitive compensation package, which includes salary, equity, paid vacation, medical/dental plan, and 401K. –Oh, did we mention that lots and lots of free airline mileage are included too?</p>
<p>We prefer you are either located in Boston or Silicon Valley, CA. Yottaa has offices in both locations. </p>
<p>Contact coach at yottaa.com if you are interested. No agencies please.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/09/18/yottaa-looking-for-ahead-of-engineering/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/09/18/yottaa-looking-for-ahead-of-engineering/</feedburner:origLink></item>
		<item>
		<title>Plymouth Half Marathon</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/4FeVCtsLaCE/</link>
		<comments>http://www.coachwei.com/blog/2009/09/13/plymouth-half-marathon/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 15:05:10 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[Main Page]]></category>

		<category><![CDATA[marathon]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=297</guid>
		<description><![CDATA[Our little running team &#8220;white knees&#8221; (last year it was &#8220;red knees&#8221; for Toronto Marathon) ran the 15th annual Run To The Rock Half Marathon yesterday September 12 2009.  Together with about 600 runners, the course started from the nearby town of Cedarville northward toward the home of the famous landmark Plymouth Rock, where [...]]]></description>
			<content:encoded><![CDATA[<p>Our little running team &#8220;white knees&#8221; (last year it was <a href="http://www.coachwei.com/blog/2008/09/30/running-toronto-marathon/">&#8220;red knees&#8221; for Toronto Marathon</a>) ran the 15th annual Run To The Rock Half Marathon yesterday September 12 2009.  Together with about 600 runners, the course started from the nearby town of Cedarville northward toward the home of the famous landmark Plymouth Rock, where the pilgrims of the Mayflower landed in the early 1600s. The race raises money for and awareness of Plymouth&#8217;s Boys &amp; Girls Club After School fitness programs.</p>
<table style="width: auto;" border="0">
<tbody>
<tr>
<td><a href="http://picasaweb.google.com/lh/photo/JEQoE938zNWrQc2rLQtgqw?feat=embedwebsite"><img src="http://lh3.ggpht.com/_kDY9dZNJnFo/Sq0OfgejbiI/AAAAAAAAAm8/Fp7URAsUfSk/s144/IMGP0370.JPG" alt="" /></a></td>
<td><a href="http://picasaweb.google.com/lh/photo/ObCkk7AsdFD33QyS-AW1qw?feat=embedwebsite"><img src="http://lh5.ggpht.com/_kDY9dZNJnFo/Sq0ORRrO1DI/AAAAAAAAAm0/75MaNVOTvZM/s144/IMGP0503.JPG" alt="" /></a></td>
<td><a href="http://picasaweb.google.com/lh/photo/st3IvPD3z8KQ_YcoDDZl3A?feat=embedwebsite"><img src="http://lh4.ggpht.com/_kDY9dZNJnFo/Sq0PQgTko2I/AAAAAAAAAn4/fF1XIeLMXTk/s144/IMGP0536.JPG" alt="" /></a></td>
</tr>
</tbody>
</table>
<p>Described by participants as a course with &#8220;big, rolling hills&#8221;, the course wasn&#8217;t friendly to folks like me who train on flat trails along the Charles River. The first 5 miles was the most difficult for me, given the heavy rain and the winding slopes. It eventually became a pleasant run after gaining some self composure and warming up to the rain. The white knees finished the race happy (2:15 for me and 1:55 for Ying).</p>
<p><span class="smallbold">Course Map</span><br />
                         </p>
<p>                        <iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?hl=en&amp;ie=UTF8&amp;om=1&amp;source=embed&amp;msa=0&amp;msid=106039859718925711192.00043e4f1888b72cfe3f2&amp;ll=41.888733,-70.609818&amp;spn=0.191688,0.188828&amp;z=12&amp;output=embed" frameborder="0" height="750" scrolling="no" width="550"></iframe> </p>
<p>                        <small>View <a href="http://maps.google.com/maps/ms?hl=en&amp;ie=UTF8&amp;om=1&amp;source=embed&amp;msa=0&amp;msid=106039859718925711192.00043e4f1888b72cfe3f2&amp;ll=41.888733,-70.609818&amp;spn=0.191688,0.188828&amp;z=12" style="color: rgb(178, 34, 34); text-align: left;">Larger Map</a></small><br />
                        </p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/09/13/plymouth-half-marathon/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/09/13/plymouth-half-marathon/</feedburner:origLink></item>
		<item>
		<title>SaaS Go-to-market Framework</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/IvQ-5y_MZeQ/</link>
		<comments>http://www.coachwei.com/blog/2009/08/19/saas-go-to-market-framework/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 23:28:26 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[software business model]]></category>

		<category><![CDATA[startup]]></category>

		<category><![CDATA[business model]]></category>

		<category><![CDATA[SaaS]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=296</guid>
		<description><![CDATA[OK, you are building a great SaaS company that will change the world. How do you actually get there?
Ok, so we have to think really hard about how to go to market.  What is the framework that one should follow? Here is a list of things that I have been thinking about  as a [...]]]></description>
			<content:encoded><![CDATA[<p>OK, you are building a great SaaS company that will change the world. How do you actually get there?</p>
<p>Ok, so we have to think really hard about how to go to market.  What is the framework that one should follow? Here is a list of things that I have been thinking about  as a guiding framework - really look forward to comments and appreciate feedback (I admit that I&#8217;m an idiot and are still learning the basic grammars): </p>
<p><OL><br />
<LI> <strong>Market Visibility</strong> - you want your firm to be heard and to be known in its target marketplace.  Traditional marketing would aim for visibility as well, though the means to get there may be different. So what are the means that you are going to take to make your SaaS service visible?</LI></p>
<p><LI> <strong>Positive Branding</strong> - you want your firm to be associated with a positive reputation, thought leadership, and credibility. If someday customers start to &#8220;verbalize&#8221; your company&#8217;s name, and if it is done in a positive way, you are doing a great job here.</p>
<p>Again, traditional marketing would aim for the same as well,  though the means to get there may be different.</LI></p>
<p><LI> <strong>Lead Generation</strong> - of course, you want to generate leads. Further, you would want to develop &#8220;some auto filtering mechanism&#8221; that would hopefully produce qualified leads. A key indicator of a well designed sales and marketing machine for a SaaS company is the capability to (continuously) lower  customer acquisition cost.</LI><br />
<LI> <strong>Close New Business</strong> - Yes, you want to close business. Hopefully you can do so without sending an army of sales people and using up 50% of Boston lawyers.</LI><br />
<LI> <strong>Retain customers</strong> - monitor customer renewal rate closely and make sure the company understand and invest resources to compel your existing customers that they always come back and want more.</LI><br />
<LI> <strong>Virality </strong>- This may not be relevant to all SaaS offerings, but it is something totally worth thinking about. If your offering is viral, leverage the hell out of it. If your offering is not viral, think of viral ways that can help you do all the above.</LI><br />
</OL></p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/08/19/saas-go-to-market-framework/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/08/19/saas-go-to-market-framework/</feedburner:origLink></item>
		<item>
		<title>Build High Performance Web Apps</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/kOYL6kTOWzU/</link>
		<comments>http://www.coachwei.com/blog/2009/07/02/build-high-performance-web-apps/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 23:37:26 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[WebDev]]></category>

		<category><![CDATA[cloud]]></category>

		<category><![CDATA[High Performance Web]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=295</guid>
		<description><![CDATA[Below are the slides for a recent techstars session:



It covers some basic stuff for web performance, scalability and availability, such as:

Common architecture pattern for horizontal scalability;
How to do load balancing;
Cost effective load balancing options;
Cloud computing does not solve scalability issue;
how to optimize web performance;

A list of free tools available are also mentioned, such as YSlow, [...]]]></description>
			<content:encoded><![CDATA[<p>Below are the slides for a recent <a href="http://www.techstars.org">techstars</a> session:
</p>
<p><iframe src='http://docs.google.com/EmbedSlideshow?id=acmj49ptxpc7_224fpm3mgh' frameborder='0' width='410' height='342'></iframe></p>
<p>
It covers some basic stuff for web performance, scalability and availability, such as:</p>
<ol>
<li>Common architecture pattern for horizontal scalability;</li>
<li>How to do load balancing;</li>
<li>Cost effective load balancing options;</li>
<li>Cloud computing does not solve scalability issue;</li>
<li>how to optimize web performance;</li>
</ol>
<p>A list of free tools available are also mentioned, such as <a href="http://developer.yahoo.com/yslow/">YSlow</a>, <a href="http://www.rockstarapps.com">RockStar Web Profiler</a> and <a href="http://www.rockstarapps.com">RockStar Optimizer</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/07/02/build-high-performance-web-apps/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/07/02/build-high-performance-web-apps/</feedburner:origLink></item>
		<item>
		<title>Cloud Providers and Locations</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/G3xY-4jde0I/</link>
		<comments>http://www.coachwei.com/blog/2009/06/06/where-is-the-cloud/#comments</comments>
		<pubDate>Sat, 06 Jun 2009 04:01:48 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[cloud]]></category>

		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=294</guid>
		<description><![CDATA[Below is my list of cloud infrastructure providers and their data center locations (as of May 2009):
Cloud Infrasturcture Providers

US: Amazon EC2, RackSpace, GoGrid, SoftLayer, NewServers, ATT, Verizon, Sun Cloud;
EU: FlexiScale, ElasticHosts, Amazon EC2,  ATT, Verizon;
Asia:  ATT, Verizon(?), RackSpace(?), 21ViaNet&#8217; CloudEx(?);

Further:

RackSpace has data centers in US, Europe (London) and Asia(Hongkong), but does not tell [...]]]></description>
			<content:encoded><![CDATA[<p>Below is my list of cloud infrastructure providers and their data center locations (as of May 2009):</p>
<p><strong>Cloud Infrasturcture Providers</strong></p>
<ol>
<li>US: Amazon EC2, RackSpace, GoGrid, SoftLayer, NewServers, ATT, Verizon, Sun Cloud;</li>
<li>EU: FlexiScale, ElasticHosts, Amazon EC2,  ATT, Verizon;</li>
<li>Asia:  ATT, Verizon(?), RackSpace(?), 21ViaNet&#8217; CloudEx(?);</li>
</ol>
<p>Further:</p>
<ol>
<li>RackSpace has data centers in US, Europe (London) and Asia(Hongkong), but does not tell you which data center(s) offer cloud computing capability. I suspect it is only within 1-2 US data centers now(<i>update: RackSpace supports cloud computing at its Dallas and San Antonio data centers at this moment, according to RackSpace twitter response</i>); </li>
<li>Savvis claims support for cloud computing, but one can not find anything meaningful from their website (the site is almost designed for anti-communications);</li>
<li>Sun Microsystem made a big deal announcing Sun Cloud, in particular, saying that they will provide a storage service(similar to S3) and a compute service (similar to EC2). Is this real? Is it still real after Oracle acquisition?;</li>
<li>Terremark also claims support for cloud computing. Again, their site is fairly non-communicative. I couldn&#8217;t even figure out whether they are offering an infrastructure service or a software product;</li>
<li>Integrated Cloud platform providers such as Google AppEngine etc are excluded from the list</li>
</ol>
<p>.</p>
<p>Where are these &#8220;cloud&#8221; data centers located? Here is what I collected:</p>
<ol>
<li>Amazon EC2: two locations currently (Virginia and London, both are my rough guesses. Let me know if you know!). Questions:
<ul>
<li>3 availability zones in US - are these availability zones in the same data center, or in different cities?</li>
<li>Amazon also has data centers in other cities and countries (such as Hongkong). Will EC2 expand to these places?</li>
</ul>
</li>
<li>RackSpace:<br />
RackSpace has data centers in a few locationis: San Antonio (TX), Dallas(TX), Herndon (VA), London, Slough (UK), and Hongkong. However, I couldn&#8217;t find any information indicating which data center(s) supports cloud computing. Or do they all support cloud server? Does anyone know?</li>
<li>GoGrid: San Francisco</li>
<li>NewServers: Miami</li>
<li>SoftLayer: SoftLayer has data centers in three locations: Seattle, Dallas, and Washington DC.<br />
Though I couldn&#8217;t find any explicit information indicating where cloud computing is supported, I suspect all three support it. BTW, I wish some other providers can learn from SoftLayer in using their websites to communicate necessary information.</li>
<li>ATT: ATT Synaptic Hosting has 5 locations: Piscataway, New Jersey; San Diego, California; Annapolis, Maryland; Amsterdam in the Netherlands; Singapore. It seems that all these five support elastic cloud hosting on a  pay-as-you-go model. A huge drawback seems to be the lack of API support. Or at least I couldn&#8217;t find any information from their website. On the other side,  ATT has a total of 38 data centers around the world (including Shanghai, Beijing, Guangzhou). Would ATT provide cloud computing support in some of the other data centers?</li>
<li>Verizon: Verizon announced CaaS(http://www.verizonbusiness.com/us/products/itsolutions/caas/) in early 2009. It looks good on parper, but there are very few little details available from their website. Here are some of the questions: Is there API available? Where are the CaaS data centers? What is the pricing structure? </li>
<li>Savvis: Savvis has data centers in a good list of locations in US (SFO, Chicago, Boston, &#8230;), UK (3), Tokyo, and Singapore. But I have no idea of which cloud computing support is and where they are support from Savvis web site. Any cloud API support?</li>
</ol>
<p>Then in Europe, here are the options:</p>
<ol>
<li>Amazon: UK</li>
<li>RackSpace: UK (2)</li>
<li>FlexiScale: UK (API is available at https://api.flexiscale.com/current/doc/)</li>
<li>ATT(?), Savvis (?) - not quite sure etc.</li>
</ol>
<p>In Asia, options are much more limited. Here they are:</p>
<ol>
<li>ATT: Hongkong, Singapore, Tokyo</li>
<li>Amazon: Hongkong(?) - Amazon does not offer EC2 at HongKong now. Will Amazon do so in the future? Similarly, will ATT offer cloud computing support in Shanghai data center? Will RackSpace offer such in their Hongkong data center?</li>
<li>Finally, 21ViaNet: this is  Chinese hosting company. It announced something called &#8220;CloudEx&#8221; a few months ago and sounds similar to EC2.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/06/06/where-is-the-cloud/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/06/06/where-is-the-cloud/</feedburner:origLink></item>
		<item>
		<title>Web Profiler Got Acquired</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/9kQpw0qLBNg/</link>
		<comments>http://www.coachwei.com/blog/2009/04/01/web-profiler-got-acquired/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 04:28:59 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[Main Page]]></category>

		<category><![CDATA[WebDev]]></category>

		<category><![CDATA[startup]]></category>

		<category><![CDATA[web 2.0]]></category>

		<category><![CDATA[razor web profiler]]></category>

		<category><![CDATA[rockstarapps]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=292</guid>
		<description><![CDATA[Some of the folks may know that I wrote some code last year (when I was really bored). One of them is called &#8220;Web Profiler&#8221;, a 3-D web profiling tool that produces deep information about web performance.


Part of the inspiration of Web Profiler is due to my years of work related to Ajax and web [...]]]></description>
			<content:encoded><![CDATA[<p>Some of the folks may know that I wrote some code last year (when I was really bored). One of them is called <a href="http://www.razorspeed.com">&#8220;Web Profiler&#8221;</a>, a 3-D web profiling tool that produces deep information about web performance.
</p>
<p>
Part of the inspiration of Web Profiler is due to my years of work related to Ajax and web 2.0. Starting from many years ago when I wrote an Ajax-based world processor to my Rich Internet Application tenure, I always loved what Ajax can do for my web apps, but I was also always intrigued by its performance implications.
</p>
<p>
Further, every time when I look at web performance, I got puzzled and mad. The tools, technology and offering people use today to gauge web performance are essentially what they were 10 years ago, despite that the web has changed so much.  From big vendors to small shops, most web performance tools and techniques only give you a one-dimensional look. For example, most tools only tell you the network performance (request time, response time, etc). A few tools will tell you server processing time.
</p>
<p>The reality is that web performance is 3-dimensional. Client side performance, server side performance and network performance are three inter-related dimensions that you must look at them together in order to understand web performance. </p>
<p><p>To make myself less made, I wrote Web Profiler - it measures server side, network and client side performance of any web application and present them together in a correlated way. For example, if your page loading is slow, Web Profiler can tell you the percent of time spent on client side processing, and network processing. You can look at the chart and see, &#8220;oh, yeah, it is this javascript function that is causing a long network delay that is causing the page slowness&#8221;. </p>
<p>Web Profiler was out in alpha and beta at <a href="http://www.razorspeed.com">RazorSpeed</a> for a few months. It received really good feedback and strong interest from a variety of users. The alpha and beta code were downloaded over 10,000 times over a couple of months. A few hundred users actively used it to do something real(according to the log). A couple of dozens of users asked me about the pricing model and how they can pay something. A few users offered to pay something outright and I politely declined their offers. </p>
<p>Just when I was trying to figure out what to do with the momentum, I was approached by a couple of interested parties that see the potential of a new generation of service for web 2.0 applications. After quite a few conversations, some alcohol and a bunch of paperwork, I am happy to announce that Web Profiler has been acquired by RockStar.</p>
<p><a href="http://www.rockstarapps.com">RockStar</a> is a premium brand in web performance. I met the folks there a few times and I have been truly impressed by their vision, capability to execute and market traction. It is a match made in heaven, and I strongly believe Web Profiler will achieve its full potential as part of the RockStar offerings going forward. </p>
<p>Unfortunately lawyers advised me not to disclose the acquisition price. Though I can say that I am very happy with the transaction. The deal is done so that I can finally say what I thought when they first told me the number they were thinking about: it is an insane amount of money (I know RockStar folks knew my thought on the number,  but they believe it is worthwhile). </p>
<p>What&#8217;s next? I want to assure Web Profiler users that I will continue to help the product out. You can still email me bugs and complains. The folks at RockStar are going to be super helpful too. </p>
<p>Beyond that, given that I&#8217;ve already taken a few days off and had a few celebration drinks already, I&#8217;d better just go right back to work.  So the next stop for me is <a href="http://www.yottaa.com">yottaa</a>. We&#8217;ll see where it leads us&#8230;Until then, happy finger workout! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/04/01/web-profiler-got-acquired/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/04/01/web-profiler-got-acquired/</feedburner:origLink></item>
		<item>
		<title>Starting a company during a down economy</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/4Ph7zgkiggY/</link>
		<comments>http://www.coachwei.com/blog/2009/03/16/starting-a-company-during-a-down-economy/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 18:24:52 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=291</guid>
		<description><![CDATA[Not sure whether this is lucky or unlucky, I am probably wedded to the pattern of &#8220;starting a company during a down economy&#8221;.  For comrades who are starting a company during the current couple of years, you are probably wedded to the same pattern too. 
To me, the root trigger of &#8220;falling&#8221; into this [...]]]></description>
			<content:encoded><![CDATA[<p>Not sure whether this is lucky or unlucky, I am probably wedded to the pattern of &#8220;starting a company during a down economy&#8221;.  For comrades who are starting a company during the current couple of years, you are probably wedded to the same pattern too. </p>
<p>To me, the root trigger of &#8220;falling&#8221; into this pattern is that I started <a href="http://www.nexaweb.com">Nexaweb</a> right after the dot com burst and raised Series A in 2003, the year of the lowest venture capital investment over the last 15 years. After a few more years of growing Nexaweb and finally getting ready to start something new, the economy also went through its own cycle. So here I am, trying to start a <a href="http://www.yottaa.com">company</a>  during a down economy again.  What&#8217;s next? It is highly likely that the time when I start yet another company in the future will coincide with a similar moment in yet another economic cycle and so on. </p>
<p>Gee. I should have read <a href="http://www.coachwei.com/blog/2009/03/16/starting-a-company-during-a-down-economy.html">this blog piece</a> when I was young,  and launched Nexaweb either a few years earlier or a few years later. </p>
<p>The reality is that entrepreneurs don&#8217;t have too much control on such things. Entrepreneurship is about seeing an opportunity, believing in the opportunity and taking actions on the opportunity. Opportunities come and go independent of the economy or anything else.  If you see it and believe it, the entrepreneurial spirit inside doesn&#8217;t give one too much choice but to do something about it.  In some sense, starting a company is like having a baby: you can rationalize, plan and time it all you want beforehand. However, once the triggered is pulled,  the baby comes at the time designated by the almighty regardless of the state of the economy, one&#8217;s wishes/desires or anything else.  </p>
<p>The other side of the reality is that it is not that bad to start a company in a bad economy. Some say it is tough to start something new when everyone else is hiding under their desks. Certainly true. Some other people would say it is actually good to start something now given the abundance of talents and etc. I can argue either way. Frankly, I don&#8217;t think it matters that much either way. Regardless of the timings, it is about being &#8220;relentless resourceful&#8221; (citing <a href="http://www.paulgraham.com/relres.html">Paul Graham</a>) in a way that is fairly similar to long distance running to me. </p>
<p>For comrades who are in the middle of starting up something now, here is a good diagram to look at (citing from <a href="http://www.feld.com/wp/archives/2009/03/entrepreneurs-dont-be-afraid-of-gdp-growth-rate.html">Brad Feld</a>). It shows some empirical data between the timing of economic cycles and good companies founded:</p>
<p><img style="border: 0px;" src="http://www.feld.com/blog/graphics/EntrepreneursDontBeAfraidofGDPGrowthRate_B7DE/gdpgrowth.jpg" border="0" alt="GDP Growth and Company Formation" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/03/16/starting-a-company-during-a-down-economy/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/03/16/starting-a-company-during-a-down-economy/</feedburner:origLink></item>
		<item>
		<title>Please, Economic Stimulus Plan - 10,000 Startups with $1B</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/lTOyh9IMJWo/</link>
		<comments>http://www.coachwei.com/blog/2009/03/07/please-economic-stimulus-plan-10000-startups-with-1b/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 21:23:01 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[Main Page]]></category>

		<category><![CDATA[startup]]></category>

		<category><![CDATA[startups]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=290</guid>
		<description><![CDATA[This is a post echoing what a variety of people have been talking about for the last few weeks - I don&#8217;t have a lot  to contribute, but am compelled and felt worthwhile to echo other people&#8217;s voice here.
On Februrary 21 2009, Thomas Friedman of the New York Times wrote “Startup the Risk Takers” where [...]]]></description>
			<content:encoded><![CDATA[<p>This is a post echoing what a variety of people have been talking about for the last few weeks - I don&#8217;t have a lot  to contribute, but am compelled and felt worthwhile to echo other people&#8217;s voice here.</p>
<p>On Februrary 21 2009, Thomas Friedman of the New York Times wrote “<a style="text-decoration: underline; color: #6699cc;" href="http://www.nytimes.com/2009/02/22/opinion/22friedman.html">Startup the Risk Takers</a>” where he said:</p>
<p><em>“Reading the news that General Motors and Chrysler are now lining up for another $20 billion or so in government aid — on top of the billions they’ve already received or requested — leaves me with the sick feeling that we are subsidizing the losers and for only one reason: because they claim that their funerals would cost more than keeping them on life support. Sorry, friends, but this is not the American way. Bailing out the losers is not how we got rich as a country, and it is not how we’ll get out of this crisis.”</em></p>
<p>Further, Friedman points out that how such bailout money should be spent on: &#8220;<em>imited financing, for a limited time, targeted on an industry bristling with new technology start-ups that, with a little push from Uncle Sam, won’t just survive this crisis but help us thrive when it is over. We need, and the world needs, an America that is thriving not just surviving</em>&#8220;.</p>
<p>While I sort of understand the government using tax payer&#8217;s money to bail out financial institutions because we can not afford the collapse of the financial service industry, I do not see the strategic importance of the auto industry in this day and age. Why not fuel the $20B to new promising areas that would create lots of new jobs and lead to future prosperity?</p>
<p>Interesting, in response to Friedman&#8217;s post,  Fred Wilson of Union Square Ventures says “<a href="http://www.avc.com/a_vc/2009/02/a-stimulus-plan-for-venture-capital-no-thanks.html">No Thanks</a>”. Fred writes “The venture capital business, thankfully, does not need any more capital. It&#8217;s got too much money in it, not too little. Just ask the limited partners who have been overfunding the venture capital business for the past 15-20 years what they think. You don&#8217;t even need to ask them. They are taking money out of the sector because the returns have been weak.”</p>
<p>I appreciate Fred&#8217;s point of view from a VC&#8217;s perspective and would agree that giving $1B to the top 20 venture capital firms is not a good idea either (as suggested by Friedman&#8217;s original article), I think Friedman&#8217;s main point is valid: send money to those who create our future, not to bail out &#8220;giant wealth-destruction machine in history&#8221;.</p>
<p>As an entrepreneur, I certainly see Fred&#8217;s point that there are too much VC captial. But on the other side, I aslo see lots of startup companies that, with a little bit more money, can survive and thrive. I have seen various startups being caught in this economic situation, not because these companies are weak, but because of the ripple effect: limited partners in VC firms are getting burned; VCs are re-adjusting to a new reality of &#8220;longer fund cycle&#8221; and &#8220;portofolio companies need more than expected cash to reach exits&#8221;. As a result, VCs are finding <b>their fund is not enough to cover the needs of portfolio companies</b>. VCs are conserving their own fire power on &#8220;only the few highly promising portfolio companies&#8221;.  Some of the VCs even asked money back from their investments so that they can pour some more cash into selected companies.</p>
<p>(Jeff Bussgang has a good post &#8220;<a href="http://bostonvcblog.typepad.com/vc/2008/11/why-flat-is-the-new-up-and-vc-funds-are-underreserved.html">Why &#8220;Flat Is The New Up&#8221; and VC Funds Are Under-Reserved</a>&#8221; that helps one understand why VCs have to conserve cash, and may not be able to continue to fund some existing portfolio companies).</p>
<p>The net result is that a variety of companies, close to profitability or well on the way to profitability, are being caught in the middle. A lot of these companies are good companies - they may not be the next google, but they can certainly create jobs and reach profitability, if they don&#8217;t lose the needed &#8220;little push&#8221; prematurely. In other words, they may not be &#8220;wealth creation tools&#8221; that Fred is talking about in his response, but they are perfect small businesses that the country needs.</p>
<p>Programs like techstars (http://www.techstars.og) and MIT VMS (http://vms.mit.edu) create tomorrow&#8217;s companies with zero or little financial resources. How about dropping a tiny drop of the stimulus fund into similar programs, or other ways to help build, grow and sustain small businesses?<br />
Though there are a lot of VC capital in general, VC capital only flows into these who are likely to become the next Google. That is not to say that these companies who are not going to become Google are not valuable. To the opposite, they are extremely valuable to the society. They can create millions of jobs, help our economic recovery, and most importantly, help secure our future. They may not be the kind of companies that fit the VC model, but our country and our society should certainly welcome them, love to have them, and when they need a little bit push,  please don&#8217;t just walk away from them.</p>
<p>So please, Economic Stimulus Plan,  you can create or boost 10,000 startups with $1B. A lot of them will fail and a lot of them will survive. But none of them is going to be &#8220;giant wealth destruction machine&#8221; and each of them is going to  help build our future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2009/03/07/please-economic-stimulus-plan-10000-startups-with-1b/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2009/03/07/please-economic-stimulus-plan-10000-startups-with-1b/</feedburner:origLink></item>
		<item>
		<title>HTTPS/SSL Tunneling and Proxy Server</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/eYmKCRBA7Kk/</link>
		<comments>http://www.coachwei.com/blog/2008/11/14/https-tunneling/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 05:29:55 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[WebDev]]></category>

		<category><![CDATA[https tunneling]]></category>

		<category><![CDATA[jetty]]></category>

		<category><![CDATA[proxy]]></category>

		<category><![CDATA[tomcat]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=289</guid>
		<description><![CDATA[HTTPS Tunneling, also called HTTPS Proxy,  SSL proxy, or SSL tunneling, refers to sending HTTPS content via a proxy server.  This is a very common usage scenario over the web. 
Unfortunately, I have not found any Java server that supports this  yet. Tomcat chokes up quickly if you tunnel HTTPS messages (tried [...]]]></description>
			<content:encoded><![CDATA[<p>HTTPS Tunneling, also called HTTPS Proxy,  SSL proxy, or SSL tunneling, refers to sending HTTPS content via a proxy server.  This is a very common usage scenario over the web. </p>
<p>Unfortunately, I have not found any Java server that supports this  yet. Tomcat chokes up quickly if you tunnel HTTPS messages (tried both Tomcat 5.x and 6.x). Other Java servers don&#8217;t even come close. Jetty is the furthest and closest to supporting it.  <a href="http://blogs.webtide.com/gregw/">Greg Wilkins</a> even wrote two  examples showing Jetty&#8217;s proxy support (ProxyServlet and AsyncProxyServlet, though both of them only partially work when I tried to run them on on Jetty 6.x and Jetty 7.x).  </p>
<p>The main problem for all these servers is that they do not support HTTP Connect.  We all know HTTP GET, and HTTP POST, and all servers support these common HTTP methods beautifully, except for HTTP Connect. </p>
<p>The problem with HTTP connect are two folds:<br />
<OL><br />
<LI>Most servers simply fail at even parsing an HTTP connect request, except for Jetty, let alone anything else. </LI><br />
<LI>Jetty can parse HTTP connect request (semi) successfully, but it does not seem to enable any further processing of HTTP connect request (such as reading from the request&#8217;s inputstream);</LI><br />
</OL></p>
<p>Problem No.1 is that HTTP connect request looks very different from other HTTP requests, and most servers do not take HTTP connect requests into consideration. When the browser is initiating an HTTPS connection via a proxy server, the browser will send the following request to a proxy server:</p>
<p><code><br />
CONNECT some.server.com:443 HTTP/1.1<br />
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17<br />
Proxy-Connection: keep-alive<br />
Host: some.server.com<br />
</code></p>
<p>In contrast, a typical HTTP request would look like:</p>
<p><code><br />
GET /a/b/c.html HTTP/1.1<br />
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.17) Gecko/20080829 Firefox/2.0.0.17<br />
Host: some.server.com<br />
</code></p>
<p>Problem No.2 is that HTTP Connect requires a two-step handling. After sending out this request header, the browser will &#8220;halt&#8221; the request and wait to hear back from the network before sending out any content;</p>
<p>The proxy server should respond to the above request by trying to initiating a connection with the remote server (some.server.com at port 443 in the above example). If a connection is established successfully, the proxy server should respond to the browser by sending back:</p>
<p><code><br />
HTTP/1.1 200 Connection Established<br />
</code></p>
<p>Then proxy server should wait. On the other side, once the browser receives &#8220;200&#8243; status from the server, the browser will now send the actual HTTPS content to the request connection. Once the proxy server receives the content, it should send such content to the remote server. The remote server will then respond and such response needs to be &#8220;copied&#8221; back to the browser, which would appear as part of the &#8220;HTTP/1.1 200 Connection Established&#8221; message shown earlier. </p>
<p>I hope I am missing something here - if you know Jetty server or any other server that works well for HTTPS tunneling, please comment below!</p>
<p>Some useful links for more information on this subject:<br />
<DL><br />
<DT>Tunneling SSL Through a WWW Proxy, http://muffin.doit.org/docs/rfc/tunneling_ssl.html</DT><br />
<DT>Implement HTTPS tunneling with JSSE, http://www.javaworld.com/javaworld/javatips/jw-javatip111.html?page=1</DT><br />
<DT>Jetty bug tracker &#8220;Allow interception of CONNECT method to support proxy impls&#8221;, http://jira.codehaus.org/browse/JETTY-625?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel</DT><br />
<DT>Jetty ProxyServlet, http://www.mortbay.org/jetty/jetty-6/apidocs/org/mortbay/servlet/ProxyServlet.html</DT><br />
</DL></p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2008/11/14/https-tunneling/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2008/11/14/https-tunneling/</feedburner:origLink></item>
		<item>
		<title>Who Should Be USA’s CTO in the Obama Administration?</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/96phrpC9l34/</link>
		<comments>http://www.coachwei.com/blog/2008/11/07/who-should-be-the-usas-cto-in-the-obama-administration/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 19:23:09 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[politics]]></category>

		<category><![CDATA[Obama]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=288</guid>
		<description><![CDATA[Jeremy Geelan is speculating who should be America&#8217;s CTO in the Obama administration. He says:

As former IAC executive Julius Genachowski was appointed yesterday to President Elect Obama&#8217;s transition team, speculation is growing as to the possibility that Genachowski or someone like him may one day soon become the country&#8217;s first Chief Technology Officer. Barack Obama&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Jeremy Geelan is speculating <a href="http://www.sys-con.com/node/739558">who should be America&#8217;s CTO in the Obama administration</a>. He says:<br />
<em><br />
As former IAC executive Julius Genachowski was appointed yesterday to President Elect Obama&#8217;s transition team, speculation is growing as to the possibility that Genachowski or someone like him may one day soon become the country&#8217;s first Chief Technology Officer. Barack Obama&#8217;s transition team also includes Sonal Shah of Google.org and Donald Gips, VP of corporate strategy and development for Level 3 Communications.<br />
</em><br />
Other candidates for the nation&#8217;s CTO position being mooted in the press are: Google&#8217;s CEO Eric Schmidt, Sun co-founder Bill Joy, etc.</p>
<p>First of all, the notion of having a CTO for USA is very exciting. It&#8217;s a job that I&#8217;d really want to have  - I&#8217;m working on my resume right now!!!</p>
<p>More importantly than who will be the CTO is which industry this person should be coming from. I&#8217;d really really recommend the following three industries:</p>
<ol>
<li>Information technology industry</li>
<li>Information technology industry</li>
<li>Information technology industry</li>
</ol>
<p>Not because I&#8217;m from the IT industry, but rather because IT is the industry that the title of CTO is born from  and IT is the industry that is leading the society in terms of not only technical advances, but rather more importantly, culture evolutions.  Biotech and energy industries are all hugely important, and may produce far more important technological breakthroughs than the IT industry would be able to, but IT has become part of our culture (as proven in my blog entry <a href="http://www.coachwei.com/blog/2008/01/08/the-common-culture-root-of-web-20-and-barack-obama.html">The Common Culture Root of Web 2.0 and Barack Obama</a>).</p>
<p>Part of the reason for Obama&#8217;s win is due to his campaigns usage of IT in building out grassroots support and reaching out to millions of people. The web and the internet, did wonders in politics!</p>
<p>Who would I nominate? Given that Jeremy does not allow self-promotion, let me just say that the 2nd best candidates are:</p>
<ol>
<li>Mitt Romney (what? Did i actually type this out?)</li>
<li>Charles Vest (former MIT President. Disqualified because of lacking IT industry background, but a University president may not be a bad idea. Did I effectively nominated Larry Summers here?)</li>
<li>Marc Andreessen</li>
<li>VCs like Vinod Khosla are good choices (as a catogery, VCs are good pools to look into)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2008/11/07/who-should-be-the-usas-cto-in-the-obama-administration/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2008/11/07/who-should-be-the-usas-cto-in-the-obama-administration/</feedburner:origLink></item>
		<item>
		<title>Razor Optimizer, a New Approach for Ajax Optimization</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/EfF7zOw7pS8/</link>
		<comments>http://www.coachwei.com/blog/2008/11/05/razor-optimizer-a-new-approach-for-ajax-optimization/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 03:21:47 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[Main Page]]></category>

		<category><![CDATA[WebDev]]></category>

		<category><![CDATA[Ajax Optimization]]></category>

		<category><![CDATA[Razor Optimizer]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=287</guid>
		<description><![CDATA[I am excited to announce the early beta release of Razor Optimizer, a JavaScript optimization tool for reducing code footprint and increasing runtime performnace. As  a cross-browser web application itself,  Razor Optimizer can be access either online as a service,  or to be downloaded to run locally.


Razor Optimizer is based on a [...]]]></description>
			<content:encoded><![CDATA[<p><P>I am excited to announce the early beta release of <a href="http://www.razorspeed.com/index.php/what-is-it/what-is-razor-optimizer">Razor Optimizer</a>, a JavaScript optimization tool for reducing code footprint and increasing runtime performnace. As  a cross-browser web application itself,  Razor Optimizer can be access either <a href="http://www.razorspeed.com">online as a service</a>,  or to be <a href="http://www.razorspeed.com/index.php/download">downloaded</a> to run locally.
</p>
<p>
Razor Optimizer is based on a new approach for JavaScript optimization called &#8220;razor&#8221;. While other optimization techniques such as JS minimization and concatenttion are based on static lexical analysis, Razor uses dynamic runtime profile information to achieve breakthrough results of 60% to 90% savings.
</p>
<p>
<Strong>Why Razor Optimizer?</Strong>
</p>
<p>
It is safe to say that <a href="http://en.wikipedia.org/wiki/AJAX">Ajax</a> is the technology foundation for Web 2.0.  There are several hundred Ajax toolkits in the marketplace and new ones are still emerging.
</p>
<p>While Ajax is getting real popular over the web, what people may not know is that Ajax(JavaScript) code is becoming the top 1 or 2 factors to consider in terms of footprint and performance impact in relation to the overall site (or application). 40% to 70% of the footprint of today&#8217;s typical web 2.0 sites is JavaScript. For example, the front page of <a href="http://www.facebook.com">FaceBook</a> contains 532KB JavaScript, 77% of the page footprint. Ajax toolkits have also become more sophisticated and bigger.</p>
<p>Developers are aware of the &#8220;code bloat&#8221; issue. Some developers choose to lower footprint by using shorter variable names and more compact code style.  There are various optimization techniques available such as compression,  JS minimization and file concatenation. All these are helpful, but none of them is helpful enough. </p>
<p><p>
What can we do to bring Ajax to its full potential, and empower developers to use Ajax without worries?
</p>
<p>
Note that the problem is not new. Similar challenges exist for other programming languages.  In early 2007, while studying Dojo performance, I <a href="http://www.coachwei.com/blog/2007/04/04/dojo-footprint-and-ajax-performance-recommendation.html">blogged</a> about &#8220;borrowing&#8221; approaches from other languages to optimize Ajax code(see <a href="http://www.coachwei.com/blog/2007/04/04/dojo-footprint-and-ajax-performance-recommendation.html">Dojo Footprint and Ajax Performance Recommendation</a>). At the time, I was hoping someone in the Dojo community would implement this.  In late 2007 or early 2008, I remember seeing some research paper from Microsoft Research talking about something they call &#8220;Donoto&#8221; (unfortunately I couldn&#8217;t find any information about Denoto on the web. If you know it, please post it in comments).
</p>
<p>
Razor Optimizer is based on a new approach coming from such kind of new thinking. Its goal is to free developers from the worries of code bloat, and free users from JavaScript introduced browser freezing.
</p>
<p>In one sentence, Razor Optimizer (hopes to) lights up the web!
<p><br/></p>
<p><Strong>Razor Optimization Features</Strong></p>
<p>
As an Ajax application itself, Razor Optimizer offers the following features:<br />
<UL><br />
<LI>Runs in any browser</LI><br />
<LI>Works with any Ajax application and Ajax toolkit</LI><br />
<LI>A built-in profiler that records and visualizes application runtime profile data;</LI><br />
<LI>Full automated, no programming required</LI><br />
<LI>Detailed result reporting with comparison to other optimization techniques</LI><br />
<LI>Light up your app with 50% to 90% footprint reduction</LI><br />
<LI>Reduce the number of network round trips</LI><br />
</UL>
</p>
<p><br/></p>
<p><Strong>How It Works</Strong></p>
<p>
Razor Optimizer itself is a web based JavaScript application that runs in any browser. It contains a server component and a client component. Razor Optimizer client is an Ajax application based on <a href="http://www.dojotoolkit.org">Dojo 1.1</a>. Razor Optimizer Server is a Java web application that runs inside any Java Servlet container. The following figure shows the architecture of Razor Optimizer.
</p>
<p>
<center><br />
<img src="http://www.razorspeed.com/customfiles/images/razor-optimizer-architecture.png" alt="Razor Optimizer Architecture"></img><br />
<br />
<b>Razor Optimizer Architecture</b><br />
</center>
</p>
<p><br/></p>
<p><Strong>Razor Optimization Case Studies</Strong></p>
<p>
In general, Razor is able to reduce application footprint by 60% to 80%.<br />
The followings present three different application examples. The three applications are:<br />
<OL><br />
<LI>American Airline’s web site (http://www.aa.com): this site uses PrototypeJS JavaScript library, one of the popular Ajax toolkits;</LI><br />
<LI>Razor Optimizer itself: Razor Optimizer is  a Dojo 1.1 based JavaScript application;</LI><br />
<LI>jQueryUI demo (http://ui.jquery.com/functional_demos/): this is an application based on the popular jQuery library. </LI><br />
</OL></p>
<p><center><br />
<b>Table 1: Applications to be Optimized</b></p>
<table border="1">
<tr>
<td></td>
<td>Ajax toolkit</td>
<td>Total JavaScript footprint (byte)</td>
</tr>
<tr>
<td>www.aa.com</td>
<td>Prototype JS</td>
<td>294,124</td>
</tr>
<tr>
<td>Razor Optimizer</td>
<td>Dojo Toolkit</td>
<td>1,158,664</td>
</tr>
<tr>
<td>jQuery UI Demo</td>
<td> jQuery</td>
<td>151,151</td>
</tr>
</table>
<p></center></p>
<p><br/><br />
Table 2 shows optimization results for these three applications. Razor achieved 67%, 75% and 62% savings for them respective.<br />
<br/><br />
<center><br />
<b>Table 2: Razor Optimization Results</b></p>
<table border="1">
<tr>
<td></td>
<td>Original (byte)</td>
<td>Razor Optimized(byte)</td>
<td>Savings</td>
</tr>
<tr>
<td>www.aa.com</td>
<td>294,124</td>
<td>96,735</td>
<td>67%</td>
</tr>
<tr>
<td>Razor Optimizer</td>
<td>1,158,664</td>
<td>292,203</td>
<td>75%</td>
</tr>
<tr>
<td>jQuery UI Demo</td>
<td>151,151</td>
<td> 56,904</td>
<td> 62%</td>
</tr>
</table>
<p></center></p>
<p><br/></p>
<p>
In comparison, Razor delivers significantly better results than other JavaScript optimization techniques. Using ShrinkSafe to optimize these three applications, the results would be 189KB, 568KB, and 86KB respectively (See Table 5). Razor further cuts down these numbers by half.
</p>
<p><br/></p>
<p><Strong>The Idea Behind Razor Optimizer</Strong><br />
Razor is based on the following observations:</p>
<p>
<OL><br />
<LI>JavaScript functions are the basic low level building blocks of JavaScript code. Though typical JavaScript applications are made up of JavaScript files, functions are at a lower level than files because each JavaScript file is composed of JavaScript functions. While current JavaScript optimization techniques operates on a “file” level,  performing optimization at the function level could yield much better result; </LI><br />
<LI>At any moment of time, the browser needs only one function because only one JavaScript function is executed at any moment of time.<br />
</LI><br />
<LI>Theoretically, the application would work fine if we download only one function at a time, right before the function is going to be called. Other functions are not needed. They can stay on the server side without being downloaded until they are going to be called. There is no need to download all the code up front, and there no need to download them at once;</LI><br />
<LI>If only one function needs to be downloaded and stay on the client side, we can achieve breakthrough savings in both download size as well as client memory/CPU footprint, resulting in significant performance improvements above any other techniques.<br />
</LI><br />
</OL></p>
<p>The basic idea of Razor is to “trim” the “not needed” functions and only download these functions that are necessary for a specific usage scenario. This “trimming” process is called “raze”.  After the initial download, if a “razed” function is needed, Razor will download this function on demand in the background.
</p>
<p>
Wouldn&#8217;t downloading one function at a time be very slow? Indeed. However, if you package a bunch of related functions together and if this one &#8220;package&#8221; is enough to fulfill one or more use scenarios, the user wouldn&#8217;t notice any negative performance impact of incremental downloading.
</p>
<p>
So the key to this approach is to understand when/which function is called during different runtime scenarios.  For example, if we know exactly which functions are called and when they are called during the initial application loading, we can trim all other code from the initial download without breaking the application. This would significantly save the initial download size and improve page loading performance.
</p>
<p>
The knowledge of “when/which function is executed” can be achieved by profiling the application. By recording the profile data, we can have accurate knowledge of the dynamic runtime behavior of the application beyond static lexical analysis for delivering breakthrough optimization results.
</p>
<p><Strong>How to Use It</Strong></p>
<p>
After you downloaded and installed Razor Optimizer (see instructions at <a href="http://www.razorspeed.com/download/GettingStartedWithRazor.html">GettingStartedWithRazor.html</a>):<br />
<OL><br />
<LI>Start Razor server;</LI><br />
<LI>Open a browser instance and visit URL http://localhost:9090 to launch Optimizer UI;</LI><br />
<LI>Click &#8220;New Session&#8221; to start a new session. You may need to login. If you don&#8217;t have an account, register one;</LI><br />
<LI>Enter the URL of your application, for example, http://ajaxian.com. This URL must be accessible from the Razor Server instance you are using;</LI><br />
<LI>Razor will attempt to open a new browser window to launch your application. Make sure that you configured your popup blocker to allow it to so do. </LI><br />
<LI>Your application will be running in its own browser window. Just click around your application (try to stay on the same page though, because multi-page scenarios have not been tested enough for Razor Optimizer). </LI><br />
<LI>At the meantime, Razor is recording profile data in the background;</LI><br />
<LI>Click &#8220;Close and View Results&#8221; to finish profiling. </LI><br />
<LI>Click &#8220;Optimize&#8221; to configure optimization. From here, you can configure file concatenation, ordering, function preservation, etc. </LI><br />
<LI>Finally, click &#8220;Optimize it now&#8221; to perform optimization. Razor server will process your code and generate a report in the end that shows you optimization results. You can download the results as a ZIP file;</LI><br />
<LI>Deploy the ZIP file to your application, test it and iterate a few times to achieve optimal outcome;</LI><br />
</OL></p>
<p><center><br />
<img src="http://www.razorspeed.com/customfiles/images/optimizer-concatenation.png" alt="Razor Optimizer Screen Shot"></img><br />
<br />
<b>Razor Optimizer Screen Shot</b><br />
</center></p>
<p>A sample optimization report would look like <a href="http://www.razorspeed.com/customfiles/images/Razor-optimization-report.html">this</a>.
</p>
<p><strong>Try It out</strong></p>
<p>Razor Optimizer <i>early beta</i> is available for <a href="http://www.razorspeed.com/index.php/download">download</a>. Try it out! Please comment below to let us know the problems you run into, complains or suggestions, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2008/11/05/razor-optimizer-a-new-approach-for-ajax-optimization/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2008/11/05/razor-optimizer-a-new-approach-for-ajax-optimization/</feedburner:origLink></item>
		<item>
		<title>JavaScript Optimization Techniques Today</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/yjjH63lRJvA/</link>
		<comments>http://www.coachwei.com/blog/2008/10/27/javascript-optimization-techniques-today/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 10:18:47 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[WebDev]]></category>

		<category><![CDATA[web 2.0]]></category>

		<category><![CDATA[Ajax Optimization]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=286</guid>
		<description><![CDATA[The wild popularity of Ajax fueled widespread usage of JavaScript.  Almost every web 2.0 application relies on JavaScript to deliver front end interactivity. A growing list of JavaScript libraries (over 200+) are being created by various Ajax developers, some of which have gathered significant community adoption.
Though the usage of JavaScript code can lead to [...]]]></description>
			<content:encoded><![CDATA[<p>The wild popularity of Ajax fueled widespread usage of JavaScript.  Almost every web 2.0 application relies on JavaScript to deliver front end interactivity. A growing list of JavaScript libraries (over 200+) are being created by various Ajax developers, some of which have gathered significant community adoption.</p>
<p>Though the usage of JavaScript code can lead to significant better overall user experience, it can also bring problems if not used properly. Some of the common performance related problems are:</p>
<ol>
<li>Sluggish network and runtime performance.  It is common to see web pages that load several hundred kilobytes of JavaScript. The size of JavaScript libraries ranges from kilobytes to several hundred kilobytes, or even megabytes. Big footprint introduces not only longer download/parsing time, but also bigger client side memory/CPU footprint. For some browsers, parsing/processing large script can take an excessive amount of time (Firefox bug #313967);</li>
<li>The browser freezes from time to time. There are many cases that JavaScript code can slow down the entire browser instance. For example, too many JavaScript files that need to be loaded may cause excessive number of network round trips; the execution of a long running JavaScript function can block the browser from responding to user events until the function finishes, etc.</li>
</ol>
<p>There are a variety of techniques people use today to optimize JavaScript performance. Some of popular ones are:</p>
<ol>
<li>On-demand loading (lazy loading)
<p>Instead of loading all JavaScript files up front, loading them only when necessary can reduce the upfront network impact. A lot of JavaScript libraries provide such functionality, such as YUI loader and Dojo&#8217;s package system.</li>
<li>Concatenation
<p>Concatenation is an effective way to reduce the number of round trips. Instead of loading different JavaScript files using separate HTTP requests, concatenating these files into one file would enable all of them to be loaded using one HTTP request. Dojo ShrinkSafe and YUI Compressor are two popular tools that supports file concatenation.</li>
<li>Minimization (and Obfuscation)
<p>JavaScript programs are delivered to the client side as plain text where it is compiled on the fly and executed. However, there are two downsides of this approach. The first is code size. The source can contain materials (such as whitespace and comments) that are not necessary for code execution but rather for the purpose of aiding human readability of the code. Such materials have negative performance impact. The second side effect is lack of code privacy. Given that the code is delivered as plain text, someone could read it, learn our techniques, and may even gather hints from the source code on how to compromise our security.</p>
<p>JavaScript minimization and obfuscation are techniques to deal with both issues. Minimization removes the comments and unnecessary whitespace from JavaScript source code. Obfuscation changes the names of variables, functions, and members to strings that are harder to understand (and typically shorter).</p>
<p>JavaScript tools typically implement support for both obfuscation and minimization. Some of the popular tools are (see References):</p>
<ul>
<li>Dojo ShrinkSafe</li>
<li>YUI Compressor</li>
<li>Dean Edward’s JS Packer</li>
<li>JSMin</li>
</ul>
</li>
</ol>
<p>Applying the above techniques, it is possible to achieve a footprint reduction of 20% to 50%.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2008/10/27/javascript-optimization-techniques-today/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2008/10/27/javascript-optimization-techniques-today/</feedburner:origLink></item>
		<item>
		<title>Yahoo’s Performance Rules</title>
		<link>http://feedproxy.google.com/~r/DirectFromWeb20/~3/T7GefLEXMgI/</link>
		<comments>http://www.coachwei.com/blog/2008/10/27/yahoo%e2%80%99s-performance-rules/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 10:04:14 +0000</pubDate>
		<dc:creator>coachwei</dc:creator>
		
		<category><![CDATA[WebDev]]></category>

		<category><![CDATA[web 2.0]]></category>

		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.coachwei.com/blog/?p=285</guid>
		<description><![CDATA[Yahoo’s Performance team summarized their experience in web performance optimization into 14 rules in general (Reference 4, http://stevesouders.com/examples/rules.php):
1.	Make Fewer HTTP Requests
2.	Use a Content Delivery Network
3.	Add an Expires Header
4.	Gzip Components
5.	Put Stylesheets at the Top
6.	Put Scripts at the Bottom
7.	Avoid CSS Expressions
8.	Make JavaScript and CSS External
9.	Reduce DNS Lookups
10.	Minify JavaScript
11.	Avoid Redirects
12.	Remove Duplicate Scripts
13.	Configure ETags
14.	Make AJAX Cacheable
]]></description>
			<content:encoded><![CDATA[<p>Yahoo’s Performance team summarized their experience in web performance optimization into 14 rules in general (Reference 4, http://stevesouders.com/examples/rules.php):</p>
<p>1.	Make Fewer HTTP Requests<br />
2.	Use a Content Delivery Network<br />
3.	Add an Expires Header<br />
4.	Gzip Components<br />
5.	Put Stylesheets at the Top<br />
6.	Put Scripts at the Bottom<br />
7.	Avoid CSS Expressions<br />
8.	Make JavaScript and CSS External<br />
9.	Reduce DNS Lookups<br />
10.	Minify JavaScript<br />
11.	Avoid Redirects<br />
12.	Remove Duplicate Scripts<br />
13.	Configure ETags<br />
14.	Make AJAX Cacheable</p>
]]></content:encoded>
			<wfw:commentRss>http://www.coachwei.com/blog/2008/10/27/yahoo%e2%80%99s-performance-rules/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.coachwei.com/blog/2008/10/27/yahoo%e2%80%99s-performance-rules/</feedburner:origLink></item>
	</channel>
</rss>
