<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.feedsky.com/eoss" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/eoss" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 07 Jan 2010 09:38:00 GMT</lastBuildDate><title>乐在其中</title><description>记录自己对技术和商业的思考...</description><image><url>http://www.feedsky.com/feed/eoss/sc/gif</url><title>乐在其中</title><link>http://www.eoss.cn/blog/</link></image><link>http://www.eoss.cn/blog/</link><atom:link rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/eoss"></atom:link><feedburner:info uri="eoss"></feedburner:info><atom:link rel="hub" href="http://pubsubhubbub.appspot.com"></atom:link><copyright>Powered by SaBlog-X. Copyright (C) 2003-2009.</copyright><pubDate>Fri, 22 Jan 2010 07:04:52 GMT</pubDate><item><title>易用性简谈-从UML和Hibernate说开去</title><link>http://feedproxy.google.com/~r/eoss/~3/p_jn8ck6_Rk/</link><feedburner:origLink>http://www.eoss.cn/blog/usability1/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;最近在CSDN上看到一篇文章《UML正日薄西山的13个理由》，说出了我一直想说的话，我一直认为UML就是一种&amp;ldquo;符号暴力&amp;rdquo;。一直想写一篇关于易用性的文章，易用性对于软件开发而言关系到用户学习和使用的难度，也就进一步关系到了开发的效率和质量。对易用性的看法还没来得及仔细梳理，简单谈谈目前想到的两条：&lt;/p&gt;
&lt;p&gt;1、图形化&amp;ne;易用性&lt;/p&gt;
&lt;p&gt;很好的例子就是UML。&lt;/p&gt;
&lt;p&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
&lt;meta name=&quot;ProgId&quot; content=&quot;Word.Document&quot;&gt;
&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft Word 11&quot;&gt;
&lt;meta name=&quot;Originator&quot; content=&quot;Microsoft Word 11&quot;&gt;
&lt;link rel=&quot;File-List&quot; href=&quot;file:///C:%5CTEMP%5Cmsohtml1%5C01%5Cclip_filelist.xml&quot; /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:WordDocument&gt;
&lt;w:View&gt;Normal&lt;/w:View&gt;
&lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
&lt;w:PunctuationKerning /&gt;
&lt;w:ValidateAgainstSchemas /&gt;
&lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
&lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
&lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
&lt;w:Compatibility&gt;
&lt;w:BreakWrappedTables /&gt;
&lt;w:SnapToGridInCell /&gt;
&lt;w:WrapTextWithPunct /&gt;
&lt;w:UseAsianBreakRules /&gt;
&lt;w:DontGrowAutofit /&gt;
&lt;w:UseFELayout /&gt;
&lt;/w:Compatibility&gt;
&lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt;
&lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:宋体;
	panose-1:2 1 6 0 3 1 1 1 1 1;
	mso-font-alt:SimSun;
	mso-font-charset:134;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
	{font-family:&quot;\@宋体&quot;;
	panose-1:2 1 6 0 3 1 1 1 1 1;
	mso-font-charset:134;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 135135232 16 0 262145 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:&quot;&quot;;
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:&quot;Times New Roman&quot;;
	mso-fareast-font-family:宋体;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;&lt;br&gt;&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:&quot;Table Normal&quot;;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:&quot;&quot;;
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:&quot;Times New Roman&quot;;
mso-fareast-font-family:&quot;Times New Roman&quot;;
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
&lt;meta name=&quot;ProgId&quot; content=&quot;Word.Document&quot;&gt;
&lt;meta name=&quot;Generator&quot; content=&quot;Microsoft Word 11&quot;&gt;
&lt;meta name=&quot;Originator&quot; content=&quot;Microsoft Word 11&quot;&gt;
&lt;link rel=&quot;File-List&quot; href=&quot;file:///C:%5CTEMP%5Cmsohtml1%5C01%5Cclip_filelist.xml&quot; /&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:WordDocument&gt;
&lt;w:View&gt;Normal&lt;/w:View&gt;
&lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
&lt;w:PunctuationKerning /&gt;
&lt;w:ValidateAgainstSchemas /&gt;
&lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
&lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
&lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
&lt;w:Compatibility&gt;
&lt;w:BreakWrappedTables /&gt;
&lt;w:SnapToGridInCell /&gt;
&lt;w:WrapTextWithPunct /&gt;
&lt;w:UseAsianBreakRules /&gt;
&lt;w:DontGrowAutofit /&gt;
&lt;w:UseFELayout /&gt;
&lt;/w:Compatibility&gt;
&lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt;
&lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style type=&quot;text/css&quot;&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:宋体;
	panose-1:2 1 6 0 3 1 1 1 1 1;
	mso-font-alt:SimSun;
	mso-font-charset:134;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
	{font-family:&quot;\@宋体&quot;;
	panose-1:2 1 6 0 3 1 1 1 1 1;
	mso-font-charset:134;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:3 135135232 16 0 262145 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:&quot;&quot;;
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:&quot;Times New Roman&quot;;
	mso-fareast-font-family:宋体;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;≠&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:&quot;Table Normal&quot;;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:&quot;&quot;;
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:&quot;Times New Roman&quot;;
mso-fareast-font-family:&quot;Times New Roman&quot;;
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;![endif]--&gt;&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/meta&gt;
&lt;/p&gt;
&lt;p&gt;2、自动化&amp;ne;易用性&lt;/p&gt;
&lt;p&gt;显然自动化的目的是为了易用性，但并不是所有的自动化都能够带来正面效益。以Hibernate为例，一旦自动化的设计超出了普通人的心智模型，往往会带来负面影响。我曾写过一篇批评Hibernate的文章，也引起了很大的争议，我承认只要有足够的时间和足够的细心，存在能够把Hibernate学到精通的人，但在现实的环境中，影响到时间和细心程度的因素实在太多了，有时我们不得不为Hibernate的这种复杂的自动化说埋下的隐患买单。&lt;/p&gt;
&lt;p&gt;那么什么才是好的易用性，这个话题又可以谈很多，这里只归纳一条：Simple is Best.&lt;/p&gt;
&lt;p&gt;附：UML正日薄西山的13个理由&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;编者按：UML开发社区最近流失了一批开发者和拥趸，对一种软件设计技术来说，这意味着它正趋于下滑。而且它的发展趋于一个不利的方向：UML已经开始变得官僚化。本文作者罗列13个理由，以此来分析为何UML正日薄西山。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;由委员会设计&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 从长远来看这是导致语言或技术失败的一个主要和常见的原因，CORBA就是最好的例子。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;过分注重商业化&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 试图为一门不够成熟的技术出售工具而且只对工程的管理部门承诺什么，这只能是一种短期有效的方法。有时候人们会认识到这样的成本远大于收益，这也让程序员在本能上非常厌恶。另一些人因为工程管理部门的要求或好奇心而尝试这些工具，但大都使用不超过一个工程就弃用了。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;太过激进地想把几乎一切都涵盖起来（UML规范超过800页）&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 当你试图为一个领域内的每个问题都提供一个解决方案的时候，最终你会发现其实你没有提供任何有效的解决方法。UML试图解决所有与软件开发相关的问题。试图涵盖一切是一个不可能的任务，即使规范有800页，UML也只是覆盖了复杂的软件工程领域的一部分。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;背离了开发者的最初目的&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 作为一名程序员，我喜欢UML为设计通讯等内容而提供的标准化，能够使用一套通用的符号来与其他的程序员或者设计师交流我的想法真的很棒。我想大多数程序 员仍然只是使用类图表，或者在他们写一份文件的序列图时偶尔用一下。然而，UML开始使用那些即便是商务人士都不懂的面向商业的类图表。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;概念膨胀&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 在过去的10-15年里，UML一直试图概括所有流行语言的概念。现实么？&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;总在追赶新的语言和概念&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 承接上一点，既然UML承诺全语言的代码生成，就意味着它必须包含每一种特殊的语言架构。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;试图成为一门编程语言&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;由于能够生成全代码，所以实际上UML试图成为一门编程语言，而一种通用的图形编程语言存在很大的问题。在人类历史上，所有语言的手写形式都是从图 形到文本，在捕捉和传递思想方面，字母表证明比图像更具表达力。如果试图用图形描述每个流程，那必须还得使用语言来注释这些图形。图形在形象化人们的思维 和概念方面确实有效，但是在描述细节方面语言更有效。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;需要昂贵的工具还是只需要一个文本编辑器&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 要想真正地UML入门，要求很高，他们需要训练，因为他们不是时时刻刻都在使用最直观的工具。咨询公司会喜欢UML的这一特性，因为这意味着昂贵的培训课程。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;缺乏模型清晰度（model clarity）&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;  图形读不懂我听到很多开发者在理解UML图解的设计时发出这样的抱怨，最终不得不通过读代码来理解。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;缺乏真正软件设计的问题解决方法&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; UML规范很多，却没有软件系统常见问题的好的解决方法。随便举个例子：&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 没有多任务和任务间通信的解决方案；&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 没有用例（use cases）之间的依赖&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;假设你在写第一行代码前就知道一切&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 编写使用手册，然后在此基础上顺利成章地生成代码但这可能无法实现。由于在实践中一切都是动态的，所以UML图表如果要与代码保持一致，它的维护就变得非常麻烦，开发者对此很反感。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;对待软件开发就像对待制造业&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 软件设计不是制造业，软件创作是一种创造性的活动，更加是工艺或者艺术。UML试图标准化和形式化开发者的想象力和才智。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;&lt;strong&gt;UML工具的目标错误&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 大部分的UML工具承诺代码生成，然而大多数时候它们都是没用的，因为只是生成了没有逻辑的空的类别本体。而且这很笨重和繁琐，因为开发者必须保持代码和图表的同步。有开发者不得不使用丑陋格式的评论来进行标记。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 这些工具的另一个问题是屏幕上呈现的有效图表元素的数量。很多次我查看一个UML图表或者一个复杂的系统，但只能看到一角，根本无法帮助全局的理解。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 而且，很多使用UML完成的工程，其最终的代码与最初的UML图表并不一致。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt; 我也不认为代码生成是个好主意，一般来说生成的都是复杂的代码，而大部分工程可能使用库中的公用代码更好。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: rgb(192, 192, 192);&quot;&gt;  你怎么看待UML呢？&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/nGF9YZg-XiJLhb1ZSZRcKXRfhNQ/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/nGF9YZg-XiJLhb1ZSZRcKXRfhNQ/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/nGF9YZg-XiJLhb1ZSZRcKXRfhNQ/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/nGF9YZg-XiJLhb1ZSZRcKXRfhNQ/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/p_jn8ck6_Rk&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253218/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/p_jn8ck6_Rk/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253218/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253218/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/pm/">产品经理</category><pubDate>Thu, 07 Jan 2010 17:38:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/usability1/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/p_jn8ck6_Rk/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253218/5470041</fs:itemid></item><item><title>大环境不好，有什么好写的呢？</title><link>http://feedproxy.google.com/~r/eoss/~3/VMHQnjo5rDM/</link><feedburner:origLink>http://www.eoss.cn/blog/nothing_to_say/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;很久没有写文章了，正如谢文所说的，&amp;ldquo;有什么好写的呢？&amp;ldquo;&amp;ldquo;大环境不好，即使有创新也会被各种各样的利益集团以五花八门的借口扼杀掉。创新容易颠覆 既存的利益分配格局，所以也容易被既得利益者扼杀，这不难理解，比较难理解的是这种扼杀是在高举创新大旗的口号声中进行的。&amp;ldquo;&lt;/p&gt;
&lt;p&gt;其他的不说了，就拿最近传言的CN域名必须在公司名下和落实不备案不予解析这两条政策来说，我的这个网站也不知道还能坚持多久，也许明天就会倒下。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/3bwSj-kDmUJu1rSyihRNCPyhRCM/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/3bwSj-kDmUJu1rSyihRNCPyhRCM/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/3bwSj-kDmUJu1rSyihRNCPyhRCM/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/3bwSj-kDmUJu1rSyihRNCPyhRCM/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/VMHQnjo5rDM&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253219/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/VMHQnjo5rDM/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253219/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253219/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/default/">默认分类</category><pubDate>Thu, 07 Jan 2010 16:42:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/nothing_to_say/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/VMHQnjo5rDM/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253219/5470041</fs:itemid></item><item><title>VPS选购网FindVPS</title><link>http://feedproxy.google.com/~r/eoss/~3/3CLE_RKtAXU/</link><feedburner:origLink>http://www.eoss.cn/blog/findvps/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;FindVPS定位于VPS导购、VPS使用教程发布以及VPS使用交流。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.findvps.cn&quot; target=&quot;_blank&quot;&gt;http://www.findvps.cn&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/sqABUCj6WjNz2ngu7PGNPkP85G0/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/sqABUCj6WjNz2ngu7PGNPkP85G0/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/sqABUCj6WjNz2ngu7PGNPkP85G0/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/sqABUCj6WjNz2ngu7PGNPkP85G0/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/3CLE_RKtAXU&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253220/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/3CLE_RKtAXU/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253220/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253220/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/linux/">Linux</category><pubDate>Fri, 16 Oct 2009 00:40:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/findvps/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/3CLE_RKtAXU/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253220/5470041</fs:itemid></item><item><title>VPS使用手记-推荐VPS服务商AppArch</title><link>http://feedproxy.google.com/~r/eoss/~3/NIwE4xj8jRU/</link><feedburner:origLink>http://www.eoss.cn/blog/apparch_vps/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;&amp;nbsp;AppArch(&lt;a target=&quot;_blank&quot; href=&quot;http://www.apparch.net&quot;&gt;www.apparch.net&lt;/a&gt;)致力于为客户提供高端VPS服务。&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; 选择我们的理由:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; 品质&lt;br /&gt;
&amp;nbsp; * 基于Xen虚拟化技术，安全稳定，客户拥有完全root管理权限&lt;br /&gt;
&amp;nbsp; * RAID1存储保障&lt;br /&gt;
&amp;nbsp; * 服务器数据中心位于国内访问速度最佳洛杉矶&lt;br /&gt;
&amp;nbsp; * 拒绝非法网站，保障合法用户对网络、服务器资源的使用&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; 弹性&lt;br /&gt;
&amp;nbsp; * 灵活的升级模式，按需配置你的VPS，随时升级&lt;br /&gt;
&amp;nbsp; * 灵活的付费模式，无需开通费，目前支持月付，不满意随时取消，支持支付宝等在线付款&lt;br /&gt;
&amp;nbsp; * 提供CentOS、Ubuntu、Fedora、Debian、Gentoo等多种操作系统可供选择&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; 增值&lt;br /&gt;
&amp;nbsp; * 自主研发的基于Web界面的虚拟机管理系统&lt;br /&gt;
&amp;nbsp; * 专业全面的Linux技术、网站架构设计支持&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; 未来&lt;br /&gt;
&amp;nbsp; * 按需付费，按小时计费模式&lt;br /&gt;
&amp;nbsp; * 动态扩充计算资源&lt;br /&gt;
&amp;nbsp; * 动态迁移&lt;br /&gt;
&amp;nbsp; * 自动伸缩架构&lt;br /&gt;
&amp;nbsp; * 高可用性&lt;br /&gt;
&amp;nbsp; * 负载平衡&lt;br /&gt;
&amp;nbsp; * 自动资源分配&lt;br /&gt;
&amp;nbsp; * API&lt;/p&gt;
&lt;p&gt;&amp;nbsp; AppArch Beta测试期间推出特惠型VPS主机:&lt;br /&gt;
&amp;nbsp; * Xen&lt;br /&gt;
&amp;nbsp; * 512MB内存&lt;br /&gt;
&amp;nbsp; * 25GB RAID1 硬盘空间&lt;br /&gt;
&amp;nbsp; * 1个独立IP&lt;br /&gt;
&amp;nbsp; * 100Mbps网络端口 400GB流量&lt;br /&gt;
&amp;nbsp; * Linux&lt;br /&gt;
&amp;nbsp; 168元/月&lt;/p&gt;
&lt;p&gt;&amp;nbsp; 推荐联系方式&lt;br /&gt;
&amp;nbsp; 我们推荐您提交服务单联系我们，以便我们能高效、安全地处理您的问题。&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; 其它联系方式&lt;br /&gt;
&amp;nbsp; Email: 售前咨询 sales@apparch.net 技术支持 support@apparch.net&lt;br /&gt;
&amp;nbsp; MSN: apparch@live.cn&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/JIXRXdfR4byrjNiDc7HXSN6M5es/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/JIXRXdfR4byrjNiDc7HXSN6M5es/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/JIXRXdfR4byrjNiDc7HXSN6M5es/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/JIXRXdfR4byrjNiDc7HXSN6M5es/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/NIwE4xj8jRU&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253221/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/NIwE4xj8jRU/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253221/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253221/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/linux/">Linux</category><pubDate>Thu, 17 Sep 2009 15:45:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/apparch_vps/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/NIwE4xj8jRU/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253221/5470041</fs:itemid></item><item><title>VPS使用手记-VIM最简教程</title><link>http://feedproxy.google.com/~r/eoss/~3/_VHyZaxa1UU/</link><feedburner:origLink>http://www.eoss.cn/blog/simple_vim/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;vi/vim是Linux下一个常用的编辑器，很多VPS初始时只默认安装vim，所以简单掌握一下vim的使用是很有必要的。vim可以使用退格，相比vi更加简单，一般Linux上安装的都是vim，但可以启用vi风格，一般如果通过输入vi进入vi风格，那么输入vim可以进入vim风格。&lt;/p&gt;
&lt;p&gt;基本上vi可分为三种操作状态，分别是命令模式（Command mode）、插入模式（Insert mode）和底线命令模式（Last line mode），各模式的功能区分如下：&lt;br /&gt;
1． Comand mode：控制屏幕光标的移动，字符或光标的删除，移动复制某区段及进入Insert mode下，或者到Last line mode。&lt;br /&gt;
2． Insert mode：唯有在Insert mode下，才可做文字数据输入，按Esc等可回到Comand mode。&lt;br /&gt;
3． Last line mode：将储存文件或离开编辑器，也可设置编辑环境，如寻找字符串、列出行号等。&lt;br /&gt;
不过可以把vi简化成两个模式，即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。&lt;/p&gt;
&lt;p&gt;进入编辑状态：i&lt;br /&gt;
退出编辑状态：Esc&lt;br /&gt;
到第一行：gg&lt;br /&gt;
到最後一行：G&lt;br /&gt;
到某一行：xxG&lt;br /&gt;
到行首：0&lt;br /&gt;
到行末：$&lt;br /&gt;
复制：yy&lt;br /&gt;
贴上：p&lt;br /&gt;
复原：u&lt;br /&gt;
删整行：dd&lt;br /&gt;
删除全部内容：dG&lt;br /&gt;
显示行数：:set nu&lt;br /&gt;
不显示行数：:set nonu&lt;br /&gt;
搜寻：/、再次搜寻：n&lt;br /&gt;
储存：:w&lt;br /&gt;
离开：:q&lt;br /&gt;
储存兼离开：:wq 或 shift+zz &lt;br /&gt;
强制离开（不储存）：:q!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/RdTOqI_g0OktcstB8_uco1CQxQE/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/RdTOqI_g0OktcstB8_uco1CQxQE/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/RdTOqI_g0OktcstB8_uco1CQxQE/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/RdTOqI_g0OktcstB8_uco1CQxQE/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/_VHyZaxa1UU&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253222/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/_VHyZaxa1UU/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253222/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253222/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/linux/">Linux</category><pubDate>Fri, 11 Sep 2009 00:21:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/simple_vim/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/_VHyZaxa1UU/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253222/5470041</fs:itemid></item><item><title>AppArch ProjectOne开源计划及预览版发布</title><link>http://feedproxy.google.com/~r/eoss/~3/57N9uH_MAmY/</link><feedburner:origLink>http://www.eoss.cn/blog/projectone_plan/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;网站开发讲究的是效率，能把一个创意在最短的时间内实现，往往容易占得先机。尽管Ruby On Rails的开发效率很高，但是如果每次开发网站都需要从头做起注册、登录、权限管理、忘记密码这些繁琐的基础功能，实在不是一件愉快的事。另一方面，尽管已经有几年的历史，Ruby On Rails在国内仍然属于迅速发展中的小众社区，到目前为止没有产生比较有影响力的开源项目，作为第一波绝大部分的Ruby On Rails开源项目几乎绝迹，如何为初学者提供一个学习、实践的案例成为一个现实的问题。&lt;br /&gt;
&lt;br /&gt;
AppArch ProjectOne的目标是通过长期的、持续的开发形成：&lt;br /&gt;
一套实用的网站基础架构&lt;br /&gt;
一份完善的架构风格和指导原则&lt;br /&gt;
一个成熟的开源社区&lt;br /&gt;
&lt;br /&gt;
目前已经实现的功能：&lt;br /&gt;
注册、不允许注册的关键字设置&lt;br /&gt;
激活、重新激活&lt;br /&gt;
登录&lt;br /&gt;
Remember me&lt;br /&gt;
注销&lt;br /&gt;
忘记密码&lt;br /&gt;
重设密码&lt;br /&gt;
修改密码&lt;br /&gt;
发生异常时发送邮件通知&lt;br /&gt;
权限管理&lt;br /&gt;
修改用户信息&lt;br /&gt;
全局错误处理&lt;br /&gt;
配置文件&lt;br /&gt;
登录失败5次需要输入认证码&lt;br /&gt;
管理界面&lt;br /&gt;
用户头像&lt;br /&gt;
类似于豆瓣的小组、豆邮、好友功能&lt;br /&gt;
注册开关&lt;br /&gt;
网站开关&lt;br /&gt;
自动识别URL和图片&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
正在进行的工作：&lt;br /&gt;
文档&lt;br /&gt;
测试&lt;br /&gt;
缓存&lt;br /&gt;
Ajax&lt;br /&gt;
代码重构、减少重复代码、优化&lt;br /&gt;
数据挖掘&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
讨论区和Demo&lt;br /&gt;
&lt;a href=&quot;http://www.apparch.net&quot; target=&quot;_blank&quot;&gt;http://www.apparch.net&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
注1：目前没有打开邮件发送功能，所以注册后请直接点击链接激活账号。&lt;br /&gt;
注2：此版本为预览版，源代码近期放出。&lt;br /&gt;
&lt;br /&gt;
欢迎有兴趣的Ruby开发者加入我们。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/GpBykUDHxqID36JLLuj9X61jJ1Q/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/GpBykUDHxqID36JLLuj9X61jJ1Q/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/GpBykUDHxqID36JLLuj9X61jJ1Q/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/GpBykUDHxqID36JLLuj9X61jJ1Q/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/57N9uH_MAmY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253223/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/57N9uH_MAmY/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253223/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253223/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/ror/">Ruby On Rails</category><pubDate>Mon, 10 Aug 2009 15:05:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/projectone_plan/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/57N9uH_MAmY/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253223/5470041</fs:itemid></item><item><title>首次云计算头脑风暴</title><link>http://feedproxy.google.com/~r/eoss/~3/DWJ33Qrbxeo/</link><feedburner:origLink>http://www.eoss.cn/blog/first_cloud_computing_brainstorming/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;6月20日组织了杭州地区的首次&lt;a href=&quot;http://www.douban.com/event/10724006/&quot; target=&quot;_blank&quot;&gt;云计算头脑风暴&lt;/a&gt;，简单说说吧。&lt;/p&gt;
&lt;p&gt;1、云计算确实是一个众说纷纭的概念，也许下次把范围限制在云计算基础架构或者具体的虚拟化技术可能更好些。&lt;/p&gt;
&lt;p&gt;2、国内已经有不少先行者开始研究、开发云计算服务了，时不我待，这也是最近很少更新博客的原因。&lt;/p&gt;
&lt;p&gt;关注云计算的可以加QQ群：87833826&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/juyDVcWyP3XobDiZ9bIOJSQXV3E/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/juyDVcWyP3XobDiZ9bIOJSQXV3E/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/juyDVcWyP3XobDiZ9bIOJSQXV3E/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/juyDVcWyP3XobDiZ9bIOJSQXV3E/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/DWJ33Qrbxeo&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253224/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/DWJ33Qrbxeo/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253224/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253224/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/cloud_computing/">云计算</category><pubDate>Mon, 06 Jul 2009 11:00:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/first_cloud_computing_brainstorming/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/DWJ33Qrbxeo/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253224/5470041</fs:itemid></item><item><title>准备开源Project One</title><link>http://feedproxy.google.com/~r/eoss/~3/sZy9Etivjyo/</link><feedburner:origLink>http://www.eoss.cn/blog/open_project_one/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;最近一直忙于研究云计算，把&lt;a href=&quot;http://www.eoss.cn/blog/projectone&quot; target=&quot;_blank&quot;&gt;Project One&lt;/a&gt;耽搁了一段时间，打算本周修改一把后把源代码放出来，代码是写得不怎么样，测试和文档都还没有，算是准开源吧，想开豆瓣小组类似网站的可以试试。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/CEvXv4rjk9oyjEy7diyfuC8T8nc/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/CEvXv4rjk9oyjEy7diyfuC8T8nc/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/CEvXv4rjk9oyjEy7diyfuC8T8nc/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/CEvXv4rjk9oyjEy7diyfuC8T8nc/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/sZy9Etivjyo&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253225/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/sZy9Etivjyo/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253225/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253225/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/ror/">Ruby On Rails</category><pubDate>Mon, 06 Jul 2009 10:48:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/open_project_one/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/sZy9Etivjyo/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253225/5470041</fs:itemid></item><item><title>第一个Ruby On Rails项目</title><link>http://feedproxy.google.com/~r/eoss/~3/mjeHD75j3C0/</link><feedburner:origLink>http://www.eoss.cn/blog/projectone/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;p&gt;网站开发讲究的是效率，能把一个创意在最短的时间内实现，往往容易占得先机。尽管Ruby On Rails的开发效率很高，但是如果每次开发网站都需要从头做起注册、登录、权限管理、忘记密码这些繁琐的基础功能，实在不是一件愉快的事。下面这些代码能够让我们直接关注网站的逻辑实现，而不是繁琐的基本功能。&lt;br /&gt;
&lt;br /&gt;
restful_authentication_tutorial&lt;br /&gt;
http://github.com/activefx/restful_authentication_tutorial/tree/master&lt;br /&gt;
&lt;br /&gt;
Bort - A Base Rails Application&lt;br /&gt;
http://jimneath.org/bort/&lt;br /&gt;
&lt;br /&gt;
还有就是正在开发中的Project One。&lt;br /&gt;
目前已经实现了以下功能：&lt;br /&gt;
注册、不允许注册的关键字设置&lt;br /&gt;
激活、重新激活&lt;br /&gt;
登录&lt;br /&gt;
Remember me&lt;br /&gt;
注销&lt;br /&gt;
忘记密码&lt;br /&gt;
重设密码&lt;br /&gt;
修改密码&lt;br /&gt;
发生异常时发送邮件通知&lt;br /&gt;
权限管理&lt;br /&gt;
修改用户信息&lt;br /&gt;
全局错误处理&lt;br /&gt;
配置文件&lt;br /&gt;
登录失败5次需要输入认证码&lt;br /&gt;
用户管理&lt;br /&gt;
用户头像&lt;br /&gt;
类似于豆瓣的小组、豆邮、好友功能&lt;br /&gt;
注册开关&lt;br /&gt;
网站开关&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
可以在这里测试 &lt;a target=&quot;_blank&quot; href=&quot;http://216.45.55.12:8080/&quot;&gt;http://216.45.55.12:8080/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
目前没有打开邮件发送功能，所以注册后请直接点击链接激活账号。&lt;br /&gt;
&lt;br /&gt;
第一个Ruby On Rails程序，胡乱写写，小心轻点，发现Bug可以提交到&lt;a target=&quot;_blank&quot; href=&quot;http://216.45.55.12:8080/group/1&quot;&gt;http://216.45.55.12:8080/group/1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/Iax8MFHEC5qQILcpK5-th7Pioa0/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/Iax8MFHEC5qQILcpK5-th7Pioa0/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/Iax8MFHEC5qQILcpK5-th7Pioa0/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/Iax8MFHEC5qQILcpK5-th7Pioa0/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/mjeHD75j3C0&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253226/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/mjeHD75j3C0/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253226/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253226/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/ror/">Ruby On Rails</category><pubDate>Mon, 15 Jun 2009 13:49:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/projectone/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/mjeHD75j3C0/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253226/5470041</fs:itemid></item><item><title>国内首个开放式严肃游戏专用底层引擎——TR引擎架构简介</title><link>http://feedproxy.google.com/~r/eoss/~3/-3wQ2w3ZS_I/</link><feedburner:origLink>http://www.eoss.cn/blog/tr_arch/</feedburner:origLink><description>乐在其中 ( http://www.eoss.cn/blog/ ) : &lt;div&gt;TR引擎由凌泽信息科技（我所在的团队）研发，为国内首例开放式严肃游戏专用底层引擎，核心技术已经申请软件著作权并通过了产品登记测试，为科技部评选支持项目。&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;TR&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;引擎技术平台的软件架构设计原则是低耦合、可配置、高性能、高兼容。为实现这样的设计准则，所有技术及模块尽可能的采用通用编程语言如&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;C/C++&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;编写&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;，保证了平台的可移植性。&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;实际应用中&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;每个严肃游戏产品并非需要集成所有的&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;TR&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;引擎技术&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;。应用&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;TR&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;引擎开发的严肃游戏具有&lt;/span&gt;&lt;span style=&quot;line-height: 150%;&quot;&gt;发布运行时优化、商业模式灵活的特点。&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;图形图像显示技术是&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;TR&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;引擎&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;的核心&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;部分&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;，&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;其他的技术模块&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;则&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;分别在用户界面、模拟逻辑编写、网络传输、运行时、编辑环境等各个环节提供给开发者全面的智能辅助和支持。下图&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;为&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;TR&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;引擎技术平台的简要技术架构&lt;/span&gt;&lt;span style=&quot;font-size: 10.5pt;&quot;&gt;：&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;attach&quot;&gt;&lt;a href=&quot;http://www.eoss.cn/blog/attachment.php?id=9&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://www.eoss.cn/blog/attachments/date_200906/thumb_4145365baf78f7397baf3e65993a4ed9.jpg&quot; border=&quot;0&quot; alt=&quot;&amp;#13;&amp;#13;大小: 29.97 K&amp;#13;尺寸: 398 x 500&amp;#13;浏览: 15 次&amp;#13;点击打开新窗口浏览全图&quot; width=&quot;398&quot; height=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;图一：TR引擎平台软件架构图&lt;br /&gt;
具体各技术及模块的目的和作用为：&lt;br /&gt;
显卡加速用户界面生成程序以及运行引擎 (PowerGT Engine)：组合、构建、并利用显卡硬件加速渲染用户界面的布局元素，能够和其他部分如三维渲染引擎有机结合；&lt;br /&gt;
二维角色动画的辅助生成及显示技术（Power2D）：基于基本的骨骼结构模型，结合预制的动画模板生成逼真的物体运动动画序列或过程，可在二维实时渲染中回放；&lt;br /&gt;
用户界面及场景集成开发环境(PowerGT Studio)：包括项目管理、图形资源管理、可见即所得的编辑器、发布功能模块的集成开发环境等。能够使非程序员也能有效的利用引擎技术制作严肃游戏的界面及逻辑；&lt;br /&gt;
二维场景及角色编辑工具（Power2D Editor）：Power2D技术的编辑工具，生成特定格式的动画文件；&lt;br /&gt;
三维渲染引擎(PowerVS)：基于显卡加速的三维模型渲染引擎，支持贴图映射；&lt;br /&gt;
三维角色动画辅助生成及显示技术（PChar）：基于基本的骨骼结构模型，结合预制的三维动画模型生成逼真的物体运动动画序列或过程，可在三维实时渲染中回放；&lt;br /&gt;
复杂流程及逻辑的脚本解释、运行引擎（PScript）：支持人物、对话、逻辑、流程等模拟脚本的编写及解释，提供相应的接口支持，可以直观、简洁的表达静态、动态的模拟过程；&lt;br /&gt;
基础网络通讯协议及开发接口(PComm)：基于Socket和HTTP协议，提供网络化分布式的软件部署，支持动态传输游戏内容和逻辑，能够减少客户端安装大小，可以为用户简化部署成本，同时在商用环境中避免作弊行为；&lt;br /&gt;
物理模拟引擎（PPhX）：基本的重力、碰撞、加速、变形的模拟，支持更逼真的环境下的虚拟体验；&lt;br /&gt;
通用服务器端模拟引擎技术（PowerServer）：支持链接数据库，动态调度显示资源、三维模型、模拟逻辑以及用户特定的数据等，是网络化运营的服务器核心组件。同时支持服务器硬件以及并行计算能力，可以允许将来的大规模运用。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/hqc8paLGvwTK50mGZbnI2lQKbPo/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/hqc8paLGvwTK50mGZbnI2lQKbPo/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/hqc8paLGvwTK50mGZbnI2lQKbPo/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/hqc8paLGvwTK50mGZbnI2lQKbPo/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/eoss/~4/-3wQ2w3ZS_I&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/324253227/eoss/feedsky/s.gif?r=http://feedproxy.google.com/~r/eoss/~3/-3wQ2w3ZS_I/&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/eoss/324253227/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/eoss/324253227/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://www.eoss.cn/blog/category/sglab/">SGLab</category><pubDate>Sun, 07 Jun 2009 23:53:00 +0800</pubDate><author>shine</author><guid isPermaLink="false">http://www.eoss.cn/blog/tr_arch/</guid><dc:creator>shine</dc:creator><fs:srclink>http://feedproxy.google.com/~r/eoss/~3/-3wQ2w3ZS_I/</fs:srclink><fs:srcfeed>http://feeds2.feedburner.com/eoss</fs:srcfeed><fs:itemid>feedsky/eoss/~7361084/324253227/5470041</fs:itemid></item></channel></rss>
