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

<channel>
	<title>算法交易-Bali &#187; UX</title>
	<atom:link href="http://libaocun.com/tag/ux/feed" rel="self" type="application/rss+xml" />
	<link>http://libaocun.com</link>
	<description>Think globally, act locally.</description>
	<lastBuildDate>Fri, 06 Jan 2012 02:51:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>关于网页的色彩</title>
		<link>http://libaocun.com/web-page-color</link>
		<comments>http://libaocun.com/web-page-color#comments</comments>
		<pubDate>Mon, 10 May 2010 03:16:24 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[一些老文章]]></category>
		<category><![CDATA[THINK]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://balionweb.com/?p=422</guid>
		<description><![CDATA[（代友贴文。由伊壁鸠鲁花园整理） 一个人拥有自己独特的风格，是一般人所没有的，就会让人注意到那个人的特别，若那个人的风格是正面的，甚至就会引起别人的羡慕与注意，或是赞赏。就如同一个网站，拥有别的网站所没有的风格，就会让浏览者愿意多停留些时间，细细品尝该站的内容，甚至该站会得到多人的鼓励与注目，粗略的说，网站风格可以从以下几个方向来探讨，而每一项都是有关联性的： 1. 色系：网页的底色、文字字型、图片的色系、颜色等等。 2. 排版：表格、框架的应用、文字缩排、段落等等。 3. 窗口：窗口效果，例如：全屏幕窗口、特效窗口等。 4. 程序：网页互动程序，例如：ASP . PHP . XML . CGI等等。 5. 特效：让网页看起来生动活泼的各种应用，如：Flash . Java script . Java applets . DHTML等等。 6. 架构：目录规划、层次浅显易懂、选单应用等等。 7. 内容：网站主题、整体实用性、文件关联性、内容切合度、是否有不必要的档案等等。 8. 走向：对于网站的未来规划、网站整体内容走向等。 以上这些项目都与网页风格有密切的关系，网页的风格不是某一项相同，网站就是有整体感，而是要各项目的配合应用，才能达到完美的网站风格设计。接下来的段落，将会为每个项目做简单的介绍。 一、色系 网站的色系是浏览者整体的视觉观感，若一个网站色系能有一致性，不仅会使网站看起来美观，更能让浏览者对内容不易混淆，增加了浏览的简洁与方便。而网站的色系更能衬托出网站的主题，若色系能与主题合理搭配，将会增加浏览者的易读性。 网站的色系包含了网页的底色、文字字型、图片的色系、颜色等等，这不单只是将颜色搭配得当就算完美，还要配合每个内容，及网站主题。对于网站的色系，应该要在网站开始制作前，做好规划及设计，才不会到着手制作网站时，难以搭配，甚至造成混乱的设计。 网页的底色是整个网站风格的重要指针。举例来说，以黑色作为背景颜色的网页，因黑色本对人的视觉上会造成黯淡的感觉，若是拿来用作活泼的儿童网站，就是不适合了。因为小孩子是天真无邪的、活泼的、有朝气的，与黑色的沉稳、黯淡，很难联想在一起。 再举个例子，若是写一个有关于环保的网站，若用暗红色作为网页底色，决计不会有人联想到网页的内容是与环保有关。当然，每个人的审美观不同，可能也会对颜色的代表性看法不同，但既然网站不是只写给自己看的，就应该要注意到大部分人可能会有的观点，然后以众人居多的观点出发，来设计网页。 文字字型上的设计，最好的网站是以所有浏览者都能看到的字型为主。常会看到有需多网站要求浏览者须自行下载某种字型，才能达到最佳浏览效果，这是种非常奇怪的行为。毕竟浏览者只是来找资料或是来看网站的内容，不可能会因为这种「为达最佳浏览效果」，而自行下载所需要的字型。 当所要求的字型若不下载，并不会影响到网站内容上的浏览与不便，那么对浏览者的要求就微乎其微的不可能发生任何作用。这么一来，对于网页设计者来说，无非是非常可惜的，因为当初的设计风格却未能让浏览者一窥全貌，岂不是白费心思的吗？ 何谓图片的色系？以色彩学简单的区分，可分为冷色系与暖色系，再详细一点的区分，又可分出各种颜色的色系，而色系的区分，就在于主观浏览意识上的差异了。如何将图片的色系与网站整体色系相对应，就是比较困难的地方了。对于网页初学者来说，要绘制一张图并非易事，要绘制一张符合自己网页风格的图，更是困难重重。大部分的网页制作者，并不大可能驾轻就熟的使用影像处理软件或绘图软件，于是乎，网页素材的网站就开始盛行了。当然，不会使用绘图软件并不代表网页就不能设计的很出色，若是能将网络上的素材资源妥善利用，网站也是可以走出自己的风格的。而该怎么选择适合自己网站的图片，就是门很大的学问了。 选择图片该以何作为标准呢？举例来说，若网站内容为科学探讨，当然不能以卡通图片来作为插图，试想，当您正在浏览一个有关天文学的网站，却满是皮卡丘的可爱图片，不是很不协调吗？再举个例子，如果一个教学网站，里头却尽是明星图片，看上去根本就不像是教学网站，而是大杂汇的明星相片网。很多人喜欢将自己欣赏的明星照放上自己的网页中，如果仅是个人网站倒也还好，因为个人网站本就无主题居多，也就没有所谓的符不符合主题的顾虑，但若是有主题的网站，岂不糟糕？ 以图片内容来说，能切合网站主题最好，若不能，也别差异太多。以颜色来说，若一个网页是蓝色的底色，但整个网页的图档却乱七八糟，各种颜色纷纷出笼，更糟的是，蓝色是属于冷色系的颜色，若以蓝色为底的网页，却尽都是大红色、橘色的图片，那将会使整张网页看起来就像垃圾堆，杂乱无章。所以，可以简单的归纳出，网页与图档的颜色，色系一致或是视觉效果一致，将会使网页看起来更为美观且有自己的风格。]]></description>
			<content:encoded><![CDATA[<p><em>（代友贴文。由伊壁鸠鲁花园整理）</em></p>
<p>一个人拥有自己独特的风格，是一般人所没有的，就会让人注意到那个人的特别，若那个人的风格是正面的，甚至就会引起别人的羡慕与注意，或是赞赏。就如同一个网站，拥有别的网站所没有的风格，就会让浏览者愿意多停留些时间，细细品尝该站的内容，甚至该站会得到多人的鼓励与注目，粗略的说，网站风格可以从以下几个方向来探讨，而每一项都是有关联性的：</p>
<p>1. 色系：网页的底色、文字字型、图片的色系、颜色等等。</p>
<p>2. 排版：表格、框架的应用、文字缩排、段落等等。</p>
<p>3. 窗口：窗口效果，例如：全屏幕窗口、特效窗口等。</p>
<p>4. 程序：网页互动程序，例如：ASP . PHP . XML . CGI等等。</p>
<p>5. 特效：让网页看起来生动活泼的各种应用，如：Flash . Java script . Java applets . DHTML等等。</p>
<p>6. 架构：目录规划、层次浅显易懂、选单应用等等。</p>
<p>7. 内容：网站主题、整体实用性、文件关联性、内容切合度、是否有不必要的档案等等。</p>
<p>8. 走向：对于网站的未来规划、网站整体内容走向等。</p>
<p>以上这些项目都与网页风格有密切的关系，网页的风格不是某一项相同，网站就是有整体感，而是要各项目的配合应用，才能达到完美的网站风格设计。接下来的段落，将会为每个项目做简单的介绍。</p>
<h2>一、色系</h2>
<p>网站的色系是浏览者整体的视觉观感，若一个网站色系能有一致性，不仅会使网站看起来美观，更能让浏览者对内容不易混淆，增加了浏览的简洁与方便。而网站的色系更能衬托出网站的主题，若色系能与主题合理搭配，将会增加浏览者的易读性。</p>
<p>网站的色系包含了网页的底色、文字字型、图片的色系、颜色等等，这不单只是将颜色搭配得当就算完美，还要配合每个内容，及网站主题。对于网站的色系，应该要在网站开始制作前，做好规划及设计，才不会到着手制作网站时，难以搭配，甚至造成混乱的设计。</p>
<p>网页的底色是整个网站风格的重要指针。举例来说，以黑色作为背景颜色的网页，因黑色本对人的视觉上会造成黯淡的感觉，若是拿来用作活泼的儿童网站，就是不适合了。因为小孩子是天真无邪的、活泼的、有朝气的，与黑色的沉稳、黯淡，很难联想在一起。</p>
<p>再举个例子，若是写一个有关于环保的网站，若用暗红色作为网页底色，决计不会有人联想到网页的内容是与环保有关。当然，每个人的审美观不同，可能也会对颜色的代表性看法不同，但既然网站不是只写给自己看的，就应该要注意到大部分人可能会有的观点，然后以众人居多的观点出发，来设计网页。</p>
<p>文字字型上的设计，最好的网站是以所有浏览者都能看到的字型为主。常会看到有需多网站要求浏览者须自行下载某种字型，才能达到最佳浏览效果，这是种非常奇怪的行为。毕竟浏览者只是来找资料或是来看网站的内容，不可能会因为这种「为达最佳浏览效果」，而自行下载所需要的字型。</p>
<p>当所要求的字型若不下载，并不会影响到网站内容上的浏览与不便，那么对浏览者的要求就微乎其微的不可能发生任何作用。这么一来，对于网页设计者来说，无非是非常可惜的，因为当初的设计风格却未能让浏览者一窥全貌，岂不是白费心思的吗？</p>
<p><strong>何谓图片的色系？</strong>以色彩学简单的区分，可分为冷色系与暖色系，再详细一点的区分，又可分出各种颜色的色系，而色系的区分，就在于主观浏览意识上的差异了。如何将图片的色系与网站整体色系相对应，就是比较困难的地方了。对于网页初学者来说，要绘制一张图并非易事，要绘制一张符合自己网页风格的图，更是困难重重。大部分的网页制作者，并不大可能驾轻就熟的使用影像处理软件或绘图软件，于是乎，网页素材的网站就开始盛行了。当然，不会使用绘图软件并不代表网页就不能设计的很出色，若是能将网络上的素材资源妥善利用，网站也是可以走出自己的风格的。而该怎么选择适合自己网站的图片，就是门很大的学问了。</p>
<p><strong>选择图片该以何作为标准呢？</strong>举例来说，若网站内容为科学探讨，当然不能以卡通图片来作为插图，试想，当您正在浏览一个有关天文学的网站，却满是皮卡丘的可爱图片，不是很不协调吗？再举个例子，如果一个教学网站，里头却尽是明星图片，看上去根本就不像是教学网站，而是大杂汇的明星相片网。很多人喜欢将自己欣赏的明星照放上自己的网页中，如果仅是个人网站倒也还好，因为个人网站本就无主题居多，也就没有所谓的符不符合主题的顾虑，但若是有主题的网站，岂不糟糕？</p>
<p>以图片内容来说，能切合网站主题最好，若不能，也别差异太多。以颜色来说，若一个网页是蓝色的底色，但整个网页的图档却乱七八糟，各种颜色纷纷出笼，更糟的是，蓝色是属于冷色系的颜色，若以蓝色为底的网页，却尽都是大红色、橘色的图片，那将会使整张网页看起来就像垃圾堆，杂乱无章。所以，可以简单的归纳出，网页与图档的颜色，色系一致或是视觉效果一致，将会使网页看起来更为美观且有自己的风格。</p>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/web-page-color/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>If I were designing a new email service, I would…</title>
		<link>http://libaocun.com/if-i-were-designing-a-new-email-service-i-would</link>
		<comments>http://libaocun.com/if-i-were-designing-a-new-email-service-i-would#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:02:21 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[一些老文章]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[PM]]></category>
		<category><![CDATA[Product/Feature-Design]]></category>
		<category><![CDATA[THINK]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=77</guid>
		<description><![CDATA[All great designs come from deep understanding to customers. In my case, I&#8217;d like to design the email service for information workers(IW) as I am one of them. Basically they are hired to get things done. Modern projects, or tasks in smaller granularity, are getting too complex to be accomplished individually. So people have to [...]]]></description>
			<content:encoded><![CDATA[<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">All great designs come from deep understanding to customers. In my case, I&#8217;d like to design the email service for information workers(IW) as I am one of them. Basically they are hired to get things done. Modern projects, or tasks in smaller granularity, are getting too complex to be accomplished individually. So people have to work together – we call it collaboration. Consequently they <strong><span style="font-family: 'Calibri','sans-serif'">have to</span></strong> communicate. They <strong><span style="font-family: 'Calibri','sans-serif'">are forced</span></strong> to communicate. Email solves the problem of logistics and synchronization so that communication could happen between different time frames and locations, so it is still indispensable currently. But it is far from perfect, sometimes it is a trouble. Can it be done any better? Let us have a try. This new thing is called Pmail. </span></span></p>
<h2 style="margin: 10pt 0cm 0pt"><span style="font-size: medium"><strong><span style="text-decoration: underline;"><span lang="EN-US">Entities</span></span></strong><span style="font-weight: normal" lang="EN-US"><span style="color: #17365d"><span style="font-family: Calibri"> </span></span></span></span></h2>
<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">First of all, let us keep in mind that <span style="text-decoration: underline;">tasks</span> are actually what IWs really care about. They are much happier if they can complete assigned task without touching emails. Right? Completion of tasks is what they are trying to achieve. Second, when they have to communicate, they care about <span style="text-decoration: underline;">distilled information</span> they are expecting while writing/reading emails. You will not get any additional credit through presenting your idea by writing a poem. <span style="text-decoration: underline;">Senders</span> and <span style="text-decoration: underline;">recipients</span> come last. Without them, communication can&#8217;t happen. These two entities get lower priorities because if distilled information can be gained by other means, say search engine or anonymous DL, who cares them? </span></span></p>
<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Again &#8211; email for IWs is all about tasks, not messages. This is the most fundamental philosophy differentiating Pmail&#8217;s design from others. </span></span></p>
<h2 style="margin: 10pt 0cm 0pt"><span style="font-size: medium"><strong><span style="text-decoration: underline;"><span lang="EN-US">Problems &#8211; an abused tool in workplace </span></span></strong><strong><span style="text-decoration: underline;"><span lang="EN-US"> </span></span></strong></span></h2>
<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">By nature, current email systems allow one sends <em><span style="font-family: 'Calibri','sans-serif'">anything</span></em> to <em><span style="font-family: 'Calibri','sans-serif'">any</span></em> number of persons at <em><span style="font-family: 'Calibri','sans-serif'">anytime</span></em> <em><span style="font-family: 'Calibri','sans-serif'">anywhere</span></em>. Gradually it turns out true that something that can be anything can do nothing actually. Theoretically any email should be of your interest; otherwise sender will not send it to you. Realistically it is so easy to be over-used: </span></span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Email overload.</span></strong><span lang="EN-US"><span style="font-family: Calibri"> You might probably find everyone around you is complaining about too many emails. Doubt? Open you email clients, see how many unread mails you have. NY Times reports, </span><a href="http://www.nytimes.com/2008/04/20/technology/20digi.html?_r=3&amp;oref=slogin&amp;oref=slogin"><span style="font-family: Calibri">E-MAIL has become the bane of some people&#8217;s professional lives</span></a><span style="font-family: Calibri">. This occurs likely because of complicated job nature, but I&#8217;d say often it is actually because of poor email prioritization. Can you easily tell which email is much more important than others? Or emails tell its priority to you? </span></span></span></li>
<li class="MsoNormal"><span style="font-size: small"><span lang="EN-US"> </span></span><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Hard to map emails to one&#8217;s day-to-day jobs.</span></strong><span lang="EN-US"><span style="font-family: Calibri"> How many times you have to search your emails to dig certain messages out because you need something? </span></span></span></li>
<li class="MsoNormal"><span style="font-size: small"><span lang="EN-US"> </span></span><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Mail thread discussions often go wild. </span></strong><span lang="EN-US"><span style="font-family: Calibri">Do you find you are in trouble figuring out what is going on when suddenly looped in a thread?<strong><span style="font-family: 'Calibri','sans-serif'"> </span></strong></span></span></span></li>
</ul>
<h2 style="margin: 10pt 0cm 0pt"><span style="font-size: medium"><strong><span style="text-decoration: underline;"><span lang="EN-US">At a glance </span></span></strong><strong> </strong></span></h2>
<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Pmail&#8217;s primary design goal is to help team get jobs done efficiently – under right timing, priorities, order and resources. Everyone would have a clear picture about how his work contributes to team success. </span></span></p>
<p><span lang="EN-US"><img style="width: 235px; height: 469px;" src="http://lh6.ggpht.com/_A9xfBBUVmv4/SbfCCnDkiFI/AAAAAAAABiE/wTCVCAgkKCQ/s800/BirdView.png" border="1" alt="Bird view" width="235" height="469" align="middle" /></span></p>
<p><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Pmail would also aim to minimize communications as much as possible. Leave users alone please. In task-centered email design, all emails will fall into one of below four categories: </span></span></span></p>
<table class="MsoTableGrid" style="border: medium none;border-collapse: collapse" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="123" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><strong><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Category</span></span></span></strong></p>
</td>
<td width="189" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><strong><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Description</span></span></span></strong></p>
</td>
<td width="284" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><strong><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Example</span></span></span></strong></p>
</td>
<td width="236" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><strong><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Your Action</span></span></span></strong></p>
</td>
</tr>
<tr>
<td width="123" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">FYI</span></span></span></p>
</td>
<td width="189" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">There is no immediate impact to any tasks in your plate at this moment</span></span></span></p>
</td>
<td width="284" valign="top">
<p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">High level org changes announcement</span></span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Knowledge sharing</span></span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">News letter</span></span></span></p>
</td>
<td width="236" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">No – No immediately action required</span></span></span></p>
</td>
</tr>
<tr>
<td width="123" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Catch the ball</span></span></span></p>
</td>
<td width="189" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Someone requires you do something to unblock his task(s)</span></span></span></p>
</td>
<td width="284" valign="top">
<p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Sign Off request</span></span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Fix broken printer</span></span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Mandatory code review for check in</span></span></span></p>
</td>
<td width="236" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Action required – Do something and then back to requester with results</span></span></span></p>
</td>
</tr>
<tr>
<td width="123" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Here you go</span></span></span></p>
</td>
<td width="189" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Someone provides you what your task(s) require</span></span></span></p>
</td>
<td width="284" valign="top">
<p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Approval letter</span></span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Team member phone number collection table</span></span></span></p>
</td>
<td width="236" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Action unblocked – You are ready to go complete specific task(s) if all dependencies are resolved</span></span></span></p>
</td>
</tr>
<tr>
<td width="123" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Collective efforts</span></span></span></p>
</td>
<td width="189" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Someone needs your inputs for task(s) he is working on</span></span></span></p>
</td>
<td width="284" valign="top">
<p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Execution plan review</span></span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 0pt 21pt;text-indent: -21pt"><span style="font-family: Wingdings" lang="EN-US"><span><span style="font-size: small"></span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Brainstorming</span></span></span></p>
</td>
<td width="236" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Best efforts – do what you can to provide inputs</span></span></span></p>
</td>
</tr>
</tbody>
</table>
<p><span style="font-size: medium"><strong><span style="text-decoration: underline;"><span lang="EN-US">Persona/User scenarios </span></span></strong><strong> </strong></span></p>
<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Key scenarios that Pmail addresses include: </span></span></p>
<ul type="disc">
<li class="MsoNormal"><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Know big picture for better prioritization</span></strong><span lang="EN-US"><span style="font-family: Calibri"> – <em><span style="font-family: 'Calibri','sans-serif'">Steven</span></em>, who is a developer in a software development team, came to his office in a morning. He opens bird view of pmail to check how his tasks (or </span><a href="http://en.wikipedia.org/wiki/Work_breakdown_structure"><span style="font-family: Calibri">WBS</span></a><span style="font-family: Calibri"> in more general term) fits into the entire team progress. He notices one of his tasks, task8, is in </span><a href="http://en.wikipedia.org/wiki/Critical_path_method"><span style="font-family: Calibri">critical path</span></a><span style="font-family: Calibri"> according to updated plan(never expect plan is really locked after lock-down). This task is automatically prioritized to p0(highest priority) by Pmail. It is about implementing a feature according to design specification by feature PM. </span></span></span></li>
<li class="MsoNormal"><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Maintain dependencies </span></strong><span lang="EN-US"><span style="font-family: Calibri">– <em><span style="font-family: 'Calibri','sans-serif'">Steven</span></em> goes ahead to open task8 and find this task depends on two resources, 1) one LHS virtual machine, which has been completed by task7. VM address and credential are also attached. Nice! 2) PM spec. It is also claimed completed. </span></span></span></li>
<li class="MsoNormal"><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Main email threads around tasks </span></strong><span lang="EN-US"><span style="font-family: Calibri">–<em><span style="font-family: 'Calibri','sans-serif'">Steven</span></em> opened the spec document in team Sharepoint server, and he finds several points are not clear for him. Then <em><span style="font-family: 'Calibri','sans-serif'">Steven</span></em> starts a mail conversation with relative PM, <em><span style="font-family: 'Calibri','sans-serif'">Joanne,</span></em> against this task. The mail thread is linked to task8 and its status is open. </span></span></span></li>
<li class="MsoNormal"><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Drive team work flow – </span></strong><em><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Joanne</span></em><span lang="EN-US"><span style="font-family: Calibri"> received a catch-the-ball mail from <em>Steven</em> about p0 task8, so it is a shadow p0 task for her as well. <em>Joanne</em> can check task details in the Pmail. She quickly comes up with answers regarding <em>Steven</em>&#8216;s questions and writes back a here-you-go email to <em>Steven</em>. <em>Steven</em> receives the email and get unblocked. <em>Steven</em> closed the email thread by several sentences. This mail thread is traceable in task8 and can&#8217;t be replied any more as it is closed. Several hours later, <em>Steven</em> completes task8 and closes it in Pmail. When <em>Steven</em> re-visits the bird view page of Pmail, he finds task8&#8242;s color turns green due to status change. <em>Steven</em> then picks up another one unblocked taks, task9.</span></span></span></li>
<li class="MsoNormal"><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Maintain team discussion</span></strong><span lang="EN-US"><span style="font-family: Calibri"> – Task9 is about designing a new feature F9. Deliverable is reviewable dev design spec. <em>Steven</em> has two options about solving a technical problem, but not sure which way to go. He then sends a collective-effort discussion mail to the whole team. Since this is not a catch-the-ball mail, team mates will treat it with best efforts, but <em>Steven</em> still gets several great feedbacks. When he feels the problem is solved, he summarizes the thread with several sentences and closes the thread. </span></span></span></li>
<li class="MsoNormal"><span style="font-size: small"><strong><span style="font-family: 'Calibri','sans-serif'" lang="EN-US">Check history </span></strong><span lang="EN-US"><span style="font-family: Calibri">– One year later, <em><span style="font-family: 'Calibri','sans-serif'">Steven</span></em> transfers to another team and his replacement, <em><span style="font-family: 'Calibri','sans-serif'">Eric</span></em>, would like to better understand why F9 is designed this way. He opened Task9 in Pmail, check the mail thread and better understand original design decision. </span></span></span></li>
</ul>
<h2 style="margin: 10pt 0cm 0pt"><span style="font-size: medium"><strong><span style="text-decoration: underline;"><span lang="EN-US">Demo/UI Mock-up</span></span></strong><strong></strong></span></h2>
<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Bird view will look like above diagram. In following task view, you can see all mail threads about one task are at your finger tips.</span></span></p>
<p><span lang="EN-US"><img style="width: 600px; height: 299px;" src="http://lh3.ggpht.com/_A9xfBBUVmv4/SbfCC9MkAUI/AAAAAAAABiU/_k0IEe8u1_Q/s800/Task.png" border="1" alt="Task view" width="600" height="299" /></span></p>
<p><span lang="EN-US"> </span></p>
<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Mail view will also a bit different. Every mail has a TaskID field to help you get the whole context conveniently.</span></span></p>
<p><span lang="EN-US"><img style="width: 600px; height: 344px;" src="http://lh4.ggpht.com/_A9xfBBUVmv4/SbfCCmduy3I/AAAAAAAABiM/lAkbo0aziGU/s800/Mail.png" border="1" alt="Mail view" width="600" height="344" /></span></p>
<p><span lang="EN-US"> </span></p>
<h2 style="margin: 10pt 0cm 0pt"><span style="font-size: medium"><strong><span style="text-decoration: underline;"><span lang="EN-US">Key features in Pmail </span></span></strong><strong></strong></span></h2>
<p><span lang="EN-US"><span style="font-family: Calibri;font-size: small">In addition to biggest differences we covered before, you might also get excited when seeing below features. </span></span></p>
<ul type="disc">
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Sometimes feature-rich is not a good thing. It is so easy to reach this point when email system is designed for multiple purposes after several releases, say home usage included. But in any event, Pmail will provide a button to show/hide features(say, increase/decrease indent) which I don&#8217;t use in last month. Get me a simple world. </span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Mouse hover will show abstract of email(user could assign, or automatically select) before deciding to read it </span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Send me SMS notification when a selected critical thread gets new replies. No special carrier service needed, input my cell phone and go</span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">For discussion mails, send brainstorming results or decision made, and then close the thread by marking it as un-reply-able </span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Enforce sequential replies, for example fill in a excel table</span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Automatically memorize folder or url of files you are editing, and go to Pmail, it can be attached to the email by a hot key, say &#8220;ctrl+shift+v&#8221;</span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">mailURL(say, steven-task9-show-me-money-88; don&#8217;t use GUID, please) which can be shared across the clients. Don&#8217;t to forward again</span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Automatically send out ping for dead catch-the-ball emails after pre-configured interval times out</span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Play video/audio right inside the mail client</span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Mail web client also provides web API like Facebook. OWA kills programmability.</span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Tag everywhere – one mail thread might relate to more than one task. It is not a good idea to put a mail in one folder exclusively.</span></span></li>
<li class="MsoNormal"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Don&#8217;t allow send active documents to team for review, put it on shared place(say, Sharepoint) and send a link</span></span></li>
</ul>
<p class="MsoNormal" style="margin: 0cm 0cm 0px"><span lang="EN-US"> <span style="font-family: Calibri;font-size: small">I am interested in your thoughs on it. Let me know. Thank you.</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/if-i-were-designing-a-new-email-service-i-would/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building Global Development Team</title>
		<link>http://libaocun.com/building-global-development-team</link>
		<comments>http://libaocun.com/building-global-development-team#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:01:27 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[一些老文章]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[PM]]></category>
		<category><![CDATA[Product/Feature-Design]]></category>
		<category><![CDATA[THINK]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=75</guid>
		<description><![CDATA[Nowadays software is getting so complex that it needs incredibly more and more people to build it. For example, there are 9000 engineers working on Vista simultaneously. In certain sense, you can call that it is a labor-intensive industry. Ideally, it would be best to put all people in one place; however there are also [...]]]></description>
			<content:encoded><![CDATA[<p>Nowadays software is getting so complex that it needs incredibly more and more people to build it. For example, there are <a href="http://blogs.msdn.com/philipsu/archive/2006/06/14/Broken-Windows-Theory.aspx"><span style="color: purple">9000 engineers working on Vista</span></a> simultaneously. In certain sense, you can call that it is a labor-intensive industry. Ideally, it would be best to put all people in one place; however there are also lots of sound reasons to build global development teams.</p>
<h3><span style="font-size: 13pt; text-decoration: underline;">Pros and Con </span></h3>
<p>Why bother to build global development team?<span style="font-family: 宋体;font-size: 12pt"> </span></p>
<ul>
<li><strong>New talents pool</strong> – Software development needs so many persons with similar attributes. In Microsoft Company wide, top 3 hiring criteria are smart, passion for technology and fit to <a href="http://www.microsoft.com/about/default.mspx">company values</a> such as openness, continual self-improvement and mutual respect, etc. From various studies, <a href="http://www.cioinsight.com/c/a/Trends/The-New-IT-Worker-Shortage/"><span style="color: purple">supply of talented IT staffers isn&#8217;t keeping up with demand. And it won&#8217;t change anytime soon</span></a>. Even when Microsoft is cutting 5000 jobs now, we still have another 2000~3000 job openings there. What to do if enough qualified hires can be not found within US? Go outside.</li>
<li><strong>Lower cost</strong> – let us straightly go to data. Annual pay for Level &#8220;59&#8243; is about <a href="http://www.washtech.org/news/industry/display.php?ID_Content=5041"><span style="color: purple">$74,000</span></a> in US, while same level is paid about <a href="http://www.china.com.cn/info/txt/2007-09/29/content_8980820.htm"><span style="color: purple">$20,000</span></a>(~RMB150K equally) in China. Another slight fact &#8211; <a href="http://kurt.spaces.live.com/blog/cns%21F3843ED65F744FFE%212638.entry">It costs about $1.5 to go most common places in Shanghai</a>…</li>
<li><strong>Close to market</strong> – Most innovative ideas often comes out of interactions with customers. And customers&#8217; requirements vary from country to country. So best way to serve a local market is to be in the market.</li>
<li><strong>Specific knowledge</strong> – Cross-nation acquisition for specific technologies is another reason to build global development. You can&#8217;t(or not able to) move all folks to HQ.</li>
</ul>
<p><img src="http://lh4.ggpht.com/_A9xfBBUVmv4/SbJmolnzv2I/AAAAAAAABhg/XJF_fRIUv5M/s800/map.gif" alt="" /></p>
<p>Like many other things, challenges always go with benefits hand in hand. You can&#8217;t take only part of it. Fair enough.</p>
<ol>
<li><strong>Distance</strong> – People who work on the same software can&#8217;t work alone, they have to exchange information and make decisions. Less than 3 minutes conversation is often enough for slight but frequently arising communication needs, for example, &#8220;Could you show me the bug in your environment?&#8221; Distance makes it impossible to stop by one&#8217;s office. Network bandwidth is another issue introduced by distance. Why it matters? Suppose one team has to copy large file sets from another remote team daily, it would be a problem. The file sets can be growing amazingly big – for example, <a href="http://blogs.msdn.com/sqlcrd/archive/2008/07/28/sql-server-build-system.aspx">daily SQL Server build is about 300GB</a>.</li>
<li><strong>Time zone</strong> – Would communication a real headache since modern technologies such as email and telephone have been there for quite a long time? But the things are no one is there when you are working due to time zone. You have to wait another day to get an email response. When you rush to office to check it, the most frustrating but concise reply could be &#8211; &#8220;What do you mean by &lt;insert anything you assume others should understand&gt;? How can I help you?&#8221;</li>
<li><strong>Culture/Language</strong> – Master level of English is unbalanced in global teams. There are dozens of ways to say &#8220;A beats B&#8221; in English, but only several of them are understandable for general public; dialect is another obstacle. For example, Chinese folks often have hard time pronouncing letter &#8220;L&#8221;, as a result, words like &#8220;girl&#8221; might sound weird sometimes.</li>
<li><strong>Junior team</strong> – In my organization, most hires right come out of college. We are raw smart, but less experienced. It is hard to deny that some key ingredients for great engineers just take time – design skills, debugging techniques, influencing capabilities. This is not a cutting-corner example.</li>
<li><strong>Conflicts between hierarchical management and local branding</strong> – By organization hierarchy definition, many business units have existence in China. STB, Live, Online Service, etc. They functions nearly independently of each other and reports to US. But from the perspective of customers/partners/talents, it looks a bit confusing because there are so many Microsoft&#8217;s.</li>
<li><strong>People development</strong> – folks in remote sites are not equally exposed to development resources such as face-to-face training, library, mentors, etc.</li>
<li><strong>Governing issue</strong> – due to well known concerns, something confidential can&#8217;t be moved out of US.</li>
</ol>
<h2><span style="font-size: 13pt; text-decoration: underline;">How-to </span></h2>
<p>There are several factors playing critical role in deciding appropriate distributed development model. At least you should consider project type, team seniority, team size, team culture, communication cost and history.<span style="font-family: 宋体;font-size: 12pt"> </span></p>
<ul>
<li><strong>Build trust first.</strong> No matter how adaptable a new team is, it always takes time to fit into a specific team culture. So starting with easy jobs to build team moral and credibility is the safest steps before moving forward. Beyond this, the new team can target increased ownership.</li>
<li><strong>Decide on team coupling level.</strong> From highest to lowest, the level could be: pseudo random assignment, same branch same feature/component, same branch different feature/component, different sub branch but same main branch, different main branch &amp; clearly defined data contract. Avoid circular dependency.</li>
<li><strong>Come up with communication plan.</strong> Minimized communication is not always the best, especially for relatively junior teams. The best way to develop people is to work with senior folks on daily basis as much as possible. So you have to make tradeoffs here based on various inputs.</li>
<li><strong>Shared lab if possible.</strong> If you have to copy large files across the ocean frequently, consider doing your job on a lab down in remote team. If you have to do copying, make sure the files meet most critical quality requirements before doing so, for example, a build verification test.</li>
<li><strong>People development plan.</strong> Regular staff exchanging plan such as <a href="http://blogs.msdn.com/stbcblog/archive/2008/03/14/Talent-Management-CRD.aspx">Marco Polo and Silk Road program</a>, getting a mentor, record trainings, etc.</li>
<li><strong>Local brand management.</strong> Externally shown as one image; internally run by functionality as usual.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/building-global-development-team/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#3, Hulu, Why?</title>
		<link>http://libaocun.com/3-hulu-why</link>
		<comments>http://libaocun.com/3-hulu-why#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:00:54 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[一些老文章]]></category>
		<category><![CDATA[Advertizing]]></category>
		<category><![CDATA[Online-Service]]></category>
		<category><![CDATA[Product/Feature-Design]]></category>
		<category><![CDATA[strategy]]></category>
		<category><![CDATA[THINK]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=72</guid>
		<description><![CDATA[Fast Company recently published its version of the world’s top 50 most innovative companies. Although I would question why Intel is among top10, what surprised me most is the fact that Hulu is listed #3. I know there might be political things about the particular order, as it goes with most ranking, but it would [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><a href="http://www.fastcompany.com/"><span style="font-family: Calibri;font-size: small">Fast Company</span></a><span style="font-family: Calibri;font-size: small"> recently published its version of the world’s </span><a href="http://www.fastcompany.com/fast50_09/list-all"><span style="font-family: Calibri;font-size: small">top 50</span></a><span style="font-family: Calibri;font-size: small"> most innovative companies. Although I would question why Intel is among top10, what surprised me most is the fact that </span><a href="http://www.hulu.com/"><span style="font-family: Calibri;font-size: small">Hulu</span></a><span style="font-family: Calibri;font-size: small"> is listed #3.<span> </span>I know there might be political things about the particular order, as it goes with most ranking, but it would be also interesting to find out “<strong>why Hulu, not others</strong>”.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><strong><span style="text-decoration: underline"><span lang="EN-US"><span style="font-family: Calibri">Origin</span></span></span></strong></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Hulu, an online video streaming company, managed to do something which YouTube failed to do. Copyright is one of YouTube’s headaches, but it is incredible positive thing for Hulu, because it is built intentionally aimed to server property content by two major stream media dogs, NBC Universal and Fox. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">{YouTube, watch someone’s DIY video} VS { Hulu, watch TV &amp; Movies online legally} -&gt; Similar but different market niche.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">People might be asking, why NBC and Fox executives don’t rely on YouTube to serve their plays? You can imagine following conversation which probably happened behind the scene:</span></span></p>
<table class="MsoTableGrid" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">NBC/Fox:</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">Hey, YouTube, are you interested in serving my video to the world?</span></p>
</td>
</tr>
<tr>
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">YouTube:</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">Why not.<span> </span>Let’s sit down and take a look at this. Now we are owned by Google, and we are overwhelming dominator in online video market. We have great brand. We have great infrastructure. We have most talented engineers. Blabla… (down to the point) so you have to pay x dollar for every minute show. </span></p>
</td>
</tr>
<tr>
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">NBC/Fox(think):</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">uh-um… let me do some math here. Plan A is to work with YouTube, plan B is to build up something myself. In next 3-5 years, if everything goes as predicted, plan B will bring much more money to our shareholders than plan A, and less risky.</span></p>
</td>
</tr>
<tr style="height: 16.15pt">
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">YouTube(ping NBC/Fox):</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">What do you think of the plan?</span></p>
</td>
</tr>
<tr>
<td width="179" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;text-align: right" align="right"><strong><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">NBC/Fox:</span></strong></p>
</td>
<td width="807" valign="top">
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: 'Arial','sans-serif';font-size: 10pt" lang="EN-US">Nice plan, but no, thanks. </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">This is the first site who delivers property video to your computer for free.<span> </span>Traditional Media Company gradually realized that they have to embrace the changes if they are not able to prevent them. It is online streaming, in this case. Hulu has more than 120 sources now.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Key is property content sources are nonrenewable rare resources.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><strong><span style="text-decoration: underline"><span lang="EN-US"><span style="font-family: Calibri">Independence</span></span></span></strong></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Hulu’s CEO said to capital angels, <em>“I don&#8217;t think you&#8217;ll be seeing the name Fox or NBC on the site hardly at all, Hulu is about the shows, not the networks. The shows are the brands that users care about.&#8221;</em> Another quote, <em>“the key to Hulu&#8217;s success is its freedom to operate essentially as a stand-alone company…”</em></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">From startup’s perspective, captical can be good thing, or bad thing. It can help you grow much faster, but it can also easily enable you miss your initial goals. Capital often appoints some seemingly smart guy, who is with XYZ MBA degree or n years of experience in ABC company, to take over the company as one of its investment agreements. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">That is indeed one of the worst investment risk controls, although it happens again and again. Give money to most passionate guys, and letting them be passionate always is the only way to maximize the probability of getting most out of your investment. </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span style="font-family: Calibri"><strong><span style="text-decoration: underline"><span lang="EN-US">Feature?Solution?</span></span></strong><strong><span style="text-decoration: underline"><span lang="EN-US"> Experience</span></span></strong><strong><span style="text-decoration: underline"><span style="font-size: 14pt" lang="EN-US">!</span></span></strong></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Question: If you are given a task to build a video streaming site within less than 3 months, what would you do?</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">We were taught this way: </span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">1)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Identify who will be using your site</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">2)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Draw use case diagram</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">3)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">List scenarios for each user role</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">4)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">To support each scenarios, figure out needed features</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">5)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Design/Code/test your features </span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">6)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Go live</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">7)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Yeah! Party! :- )</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">If you follow this in your next interview, I can almost guarantee a pass. Do we miss anything? Actually we missed most critical one – Experience! Experience is a combination of brand/feeling/easy-to-use/enjoyable process. For example, given below requirement:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small"><em>&#8220;Design something which is used to sit on, commonly for use by one person. It often has the seat raised above floor level, supported by legs.&#8221;</em></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">People will respond immediately, &#8220;<a href="http://en.wikipedia.org/wiki/Chair">Chair</a>!&#8221;. You may notice that there are at least hundreds of types of chairs in the world, if not thousands of, if not millions of. </span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Only most imaginative ones who deeply understand that particular set of users’ needs, care about their feelings and eventually apply those into product designs can do the best work. Let us take a look at &#8220;art of chair&#8221;.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><img style="width: 739px;height: 139px" src="http://lh4.ggpht.com/_A9xfBBUVmv4/SaYx25NiOaI/AAAAAAAABgU/1lHwZ_UxOqs/s800/Chair.png" alt="Art of Chairs" width="739" height="139" /></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Be COOL, in show time, although you might have the similar hard time figuring out what some of them really are. <img src='http://libaocun.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </span></span><span lang="EN-US"><span style="font-size: small"><span style="font-family: Calibri">Just like someone said about iTune – <em>“iTune is not selling features. iTune is selling experience.”</em></span></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US"><a href="http://www.fastcompany.com/fast50_09/profile/list/hulu"><span style="font-family: Calibri;font-size: small">Hulu’s key experiences</span></a><span style="font-family: Calibri;font-size: small">:</span></span></p>
<p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">1)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Simple</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">2)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Larger screen</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">3)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">High-resolution video</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">4)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Clutter-free</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">5)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Quality control</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">6)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Free to users</span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small">7)</span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">No download</span></span></p>
<p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt;text-indent: -18pt"><span lang="EN-US"><span><span style="font-family: Calibri;font-size: small"> <img src='http://libaocun.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> </span><span style="font-family: 'Times New Roman';font-style: normal;font-variant: normal;font-weight: normal;font-size: 7pt;line-height: normal"> </span></span></span><span lang="EN-US"><span style="font-family: Calibri;font-size: small">Obsessed with users</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/3-hulu-why/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-threading your UI</title>
		<link>http://libaocun.com/multi-threading-your-ui</link>
		<comments>http://libaocun.com/multi-threading-your-ui#comments</comments>
		<pubDate>Wed, 29 Jul 2009 03:35:46 +0000</pubDate>
		<dc:creator>Bali</dc:creator>
				<category><![CDATA[一些老文章]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://www.balionweb.com/?p=44</guid>
		<description><![CDATA[Basically, window app UI, either WPF or traditional WinForm, is single threaded, which means only one thing can happen in the UI at any given time. To be specific, it is not generally possible to create an object on one thread, and access it from another. In almost all cases this will result in an [...]]]></description>
			<content:encoded><![CDATA[<p>Basically,  window app UI, either WPF or traditional WinForm, is single threaded, which  means only one thing can happen in the UI at any given time. To be specific, it  is not generally possible to create an object on one thread, and access it from  another. In almost all cases this will result in an InvalidOperationException  stating that “<span style="color: #ff0000;"><strong>The calling thread cannot access this  object because a different thread owns it.</strong></span>” On the other hand, we can’t  do everything in the UI for many reasons such as performance requirement, UX  responsiveness needs or testability concerns. One typical scenario justifying  this is as follows. You are connecting to a remote server in background thread,  and you might also want users to know the connectivity status after a while. So  this leads to the general question: How to mul-thread UI? In this post, I will  talk about both WPF and Win Form because Win Form has not gone yet.</p>
<p><strong>Technique  #1:</strong> Dispatch a delegate on UI  thread</p>
<p>Use <a href="http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.invoke(VS.85).aspx">Dispatcher.Invoke</a>, we  can execute the specified delegate on UI thread. The sample code would  be:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="793" valign="top">/// WPF</p>
<p>private void OnConnectivityChanged(object sender, ConnStatusInfoEventArgs  statusInformation)</p>
<p>{</p>
<p>this.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =&gt;</p>
<p>{</p>
<p>this.MessageTextBlock.Text =  statusInformation.msg;</p>
<p>}));</p>
<p>}</td>
</tr>
</tbody>
</table>
<p>this is the form  object or control object owned by the UI thread. In this event handler, we  simply call the Invoke method. The first parameter is priority; the second one  should a delegate. In our case we cast a <a href="http://msdn.microsoft.com/en-us/library/bb397687.aspx">statement lambda</a> to Action  delegate type. Other than invoke(), you can also use methods such as  BeginInvoke() in certain situations. And the equivalent code for WinForm would  be:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="793" valign="top">/// WinForm</p>
<p>private void OnConnectivityChanged(object sender, ConnStatusInfoEventArgs  statusInformation)</p>
<p>{</p>
<p>this.Invoke(new  System.Windows.Forms.MethodInvoker(delegate()</p>
<p>{</p>
<p>this.MessageTextBlock.Text =  statusInformation.msg;</p>
<p>}));</p>
<p>}</td>
</tr>
</tbody>
</table>
<p>We are using an anonymous delegate in above implementation, and you  can see the code is pretty similar.</p>
<p><strong>Technique  #2:</strong> Update the UI while application is not  busy</p>
<p>WinForm is still core part of many Windows application UI,  especially when people design software years ago. For example, to extend the  Outlook 2007 functionalities by writing your own <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=2&amp;url=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Faa942741.aspx&amp;ei=BR9GSeHoNYTmswKo4JGLBw&amp;usg=AFQjCNEbBedfe5wNezu8vw0tQDfyg7aE2A&amp;sig2=I8wpOMyrQaJtjSYBHZHkig">form region</a> in an  add-in, you have to follow WinForm principles. To update your own form region in  main Outlook UI thread, one of simple ways is to update it when application is  idle:</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="793" valign="top">/// WinForm</p>
<p>System.Windows.Forms.Application.Idle += new EventHandler(UpdateMyUI_OnApplicationIdle);</td>
</tr>
</tbody>
</table>
<p>In WPF world, this can be achieved by using DispatcherPriority.ApplicationIdle as  dispatch priority parameter in technique #1.</p>
<p><strong>Technique  #3:</strong> Background Worker</p>
<p>Background worker is the build-in .NET mechanism to multi-thread  UI, but the reasons why I list it as #3 are that developers complain that it is  not that good to fit all scenarios as opposed to your own thread. If you take a  look at exposed events by background worker, you will know why. You can find  <a href="http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx">sample code here</a> if you  are still interested in.</p>
<p><strong>Technique  #4:</strong> Freezable (WPF  specific)</p>
<p>In WPF, <a href="http://msdn.microsoft.com/en-us/library/ms750509.aspx">freezable objects</a> can be  frozen, at which point they become read-only and can be used on any thread at  any time. These are used across all graphics primitive resources (brushes, pens,  etc).</p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="793" valign="top">if (myBrush.CanFreeze)</p>
<p>{</p>
<p>// Make the brush unmodifiable</p>
<p>myBrush.Freeze();</p>
<p>// From now on, this frozen freezable object(brush) can be  shared across threads</p>
<p>// DoOtherStuff();</p>
<p>}</td>
</tr>
</tbody>
</table>
<p>You can also create your own freezable classes.</p>
<p><strong>Technique  #5:</strong> HostVisual (WPF  specific)</p>
<p>If you doesn’t  require interactivity(e.g., keyboard inputs), <strong>HostVisual</strong> could be another option WPF  provides. The element tree owned by the worker threads are rendered into their  own composition target (called VisualTarget), and the results are composed into  the HostVisual owned by the UI thread. The excellent code sample I found is <a href="http://blogs.msdn.com/dwayneneed/archive/2007/04/26/multithreaded-ui-hostvisual.aspx">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://libaocun.com/multi-threading-your-ui/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

