<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://miaomin.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fmiaomin.spaces.live.com%2fcategory%2f%e8%ae%a1%e7%ae%97%e6%9c%ba%e4%b8%8e%2bInternet%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>苗苗 合作 交流: 计算机与 Internet</title><description /><link>http://miaomin.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=cat%25E8%25AE%25A1%25E7%25AE%2597%25E6%259C%25BA%25E4%25B8%258E%2bInternet</link><language>en-US</language><pubDate>Mon, 03 Sep 2007 03:40:18 GMT</pubDate><lastBuildDate>Mon, 03 Sep 2007 03:40:18 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://miaomin.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-8913911617972053559</live:id><live:alias>miaomin</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>MVC设计模式带来更好的软件结构和代码重用</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!335.entry</link><description>&lt;div&gt;&lt;font size=4&gt;&lt;font color="#ff0000"&gt;原文载于Builder.com; ZDNet China翻译; 2002-11-13 03:44 PM发表;&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;span style="font-size:12px"&gt;&lt;font size=4&gt; 模型－视图－控制器（MVC）是Xerox　PARC在八十年代为编程语言Smalltalk－80发明的&lt;font color="#000000"&gt;一种软件设计模式&lt;/font&gt;，至今已被广泛使用。最近几年被推荐为Sun公司J2EE平台的设计模式，并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型－视图－控制器模式是一个有用的工具箱，它有很多好处，但也有一些缺点。&lt;br&gt;&lt;br&gt;MVC如何工作&lt;br&gt;&lt;br&gt;&lt;font color="#ff0000"&gt;MVC是一个设计模式&lt;/font&gt;，它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件：模型、视图、控制器。它们各自处理自己的任务。&lt;br&gt;&lt;br&gt;视图&lt;br&gt;&lt;font color="#ff0000"&gt;视图是用户看到并与之交互的界面&lt;/font&gt;。对老式的Web应用程序来说，视图就是由HTML元素组成的界面，在新式的Web应用程序中，HTML依旧在视图中扮演着重要的角色，但一些新的技术已层出不穷，它们包括Macromedia　Flash和象XHTML，XML/XSL，WML等一些标识语言和Web　 services.&lt;br&gt;&lt;br&gt;如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生，不管这些数据是联机存储的还是一个雇员列表，&lt;font color="#ff0000"&gt;作为视图来讲，它只是作为一种输出数据并允许用户操纵的方式。&lt;br&gt;&lt;/font&gt;&lt;br&gt;模型&lt;br&gt;模型表示企业数据和业务规则。在MVC的三个部件中，模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion　Components这样的构件对象来处理数据库。&lt;font color="#ff0000"&gt;被模型返回的数据是中立的，就是说模型与数据格式无关，这样一个模型能为多个视图提供数据。&lt;/font&gt;由于应用于模型的代码只需写一次就可以被多个视图重用，所以减少了代码的重复性。&lt;br&gt;&lt;br&gt;控制器&lt;br&gt;&lt;font color="#ff0000"&gt;控制器接受用户的输入并调用模型和视图去完成用户的需求。&lt;/font&gt;所以当单击Web页面中的超链接和发送HTML表单时，控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求，然后用确定用哪个视图来显示模型处理返回的数据。&lt;br&gt;&lt;br&gt;现在我们总结&lt;font color="#ff0000"&gt;ＭVC的处理过程，首先控制器接收用户的请求，并决定应该调用哪个模型来进行处理，然后模型用业务逻辑来处理用户的请求并返回数据，最后控制器用相应的视图格式化模型返回的数据，并通过表示层呈现给用户&lt;/font&gt;。&lt;br&gt;&lt;br&gt;为什么要使用 MVC&lt;br&gt;&lt;br&gt;大部分Web应用程序都是用像ASP，PHP，或者CFML这样的过程化语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来，但这通常不是很容易做到的，它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。尽管构造MVC应用程序需要一些额外的工作，但是它给我们带来的好处是无庸质疑的。&lt;br&gt;&lt;br&gt;首先，&lt;font color="#ff0000"&gt;最重要的一点是多个视图能共享一个模型&lt;/font&gt;，正如我所提及的，现在需要用越来越多的方式来访问你的应用程序。对此，其中一个解决之道是使用MVC，无论你的用户想要Flash界面或是 WAP 界面；用一个模型就能处理它们。由于你已经将数据和业务规则从表示层分开，所以你可以最大化的重用你的代码了。&lt;br&gt;&lt;br&gt;&lt;font color="#ff0000"&gt;由于模型返回的数据没有进行格式化，所以同样的构件能被不同界面使用。&lt;/font&gt;例如，很多数据可能用HTML来表示，但是它们也有可能要用Macromedia Flash和WAP来表示。模型也有状态管理和数据持久性处理的功能，例如，基于会话的购物车和电子商务过程也能被Flash网站或者无线联网的应用程序所重用。&lt;br&gt;&lt;br&gt;因为模型是自包含的，并且与控制器和视图相分离，所以很容易改变你的应用程序的数据层和业务规则。如果你想把你的数据库从MySQL移植到Oracle，或者改变你的基于RDBMS数据源到LDAP，只需改变你的模型即可。一旦你正确的实现了模型，不管你的数据来自数据库或是LDAP服务器，视图将会正确的显示它们。由于&lt;font color="#ff0000"&gt;运用MVC的应用程序的三个部件是相互对立，改变其中一个不会影响其它两个，所以依据这种设计思想你能构造良好的松偶合的构件。&lt;br&gt;&lt;/font&gt;&lt;br&gt;对我来说，&lt;font color="#ff0000"&gt;控制器的也提供了一个好处，就是可以使用控制器来联接不同的模型和视图去完成用户的需求&lt;/font&gt;，这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图，控制器可以根据用户的需求选择模型进行处理，然后选择视图将处理结果显示给用户。&lt;br&gt;&lt;br&gt;MVC的缺点&lt;br&gt;MVC的缺点是由于它没有明确的定义，所以完全理解MVC并不是很容易。使用MVC需要精心的计划，由于它的内部原理比较复杂，所以需要花费一些时间去思考。&lt;br&gt;&lt;br&gt;你将不得不花费相当可观的时间去考虑如何将MVC运用到你的应用程序，同时由于模型和视图要严格的分离，这样也给调试应用程序到来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试，你就可以毫无顾忌的重用它们了。&lt;br&gt;&lt;br&gt;根据我个人经验，由于我们将一个应用程序分成了三个部件，所以使用MVC同时也意味着你将要管理比以前更多的文件，这一点是显而易见的。这样好像我们的工作量增加了，但是请记住这比起它所能带给我们的好处是不值一提。&lt;br&gt;&lt;br&gt;&lt;font color="#ff0000"&gt;MVC并不适合小型甚至中等规模的应用程序，花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失&lt;/font&gt;。&lt;br&gt;&lt;br&gt;MVC是一条创建软件的好途径&lt;br&gt;MVC设计模式是一个很好创建软件的途径，它所提倡的一些原则，像内容和显示互相分离可能比较好理解。但是如果你要隔离模型、视图和控制器的构件，你可能需要重新思考你的应用程序，尤其是应用程序的构架方面。如果你肯接受MVC，并且有能力应付它所带来的额外的工作和复杂性，MVC将会使你的软件在健壮性，代码重用和结构方面上一个新的台阶。&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+MVC%e8%ae%be%e8%ae%a1%e6%a8%a1%e5%bc%8f%e5%b8%a6%e6%9d%a5%e6%9b%b4%e5%a5%bd%e7%9a%84%e8%bd%af%e4%bb%b6%e7%bb%93%e6%9e%84%e5%92%8c%e4%bb%a3%e7%a0%81%e9%87%8d%e7%94%a8&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!335.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!335.entry</guid><pubDate>Thu, 14 Sep 2006 06:35:35 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!335/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!335.entry#comment</wfw:comment><dcterms:modified>2006-11-07T06:53:04Z</dcterms:modified></item><item><title>IT公司名称的来历</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!308.entry</link><description>原文链接——&lt;a href="http://thekaran.com/iStuff/companyNames.html"&gt;http://thekaran.com/iStuff...&lt;/a&gt;&lt;br&gt;&lt;br&gt;译者按：比较有意思的东西，没看见中文版，翻译了。对原文所述未经证实，望知者不吝赐教。&lt;p&gt;　　Yahoo!&lt;br&gt;　　《格列佛游记》的作者Jonathan Swift发明了yahoo这个单词。在小说里，它代表了一个在外表和行为举止上都令人厌恶的家伙，简直都不能算是一个人。Yahoo! 的创始人杨致远和David Filo选择这个名字的原因是他们觉得自己是yahoo。&lt;p&gt;　
　另一种说法，Yahoo是&amp;quot;Yet Another Hierarchical Officious Oracle&amp;quot;的首字母缩写，不过David
Filo和杨致远坚持他们选择这个名称的原因是他们喜欢字典里对yahoo的定义：“粗鲁，不通世故，粗俗。” (来源: &lt;a href="http://docs.yahoo.com/info/misc/history.html"&gt;http://docs.yahoo.com/info...&lt;/a&gt;)&lt;br&gt;　　&lt;p&gt;　　Xerox&lt;br&gt;　　xer是希腊文字根，代表“干”。由于Chestor Carlson发明的产品是干式复印，和当时占优势的湿法复印有显著的差别，所以他用Xerox命名。&lt;br&gt;　　&lt;p&gt;　　SUN Microsystems&lt;br&gt;　　由斯坦福大学的四个家伙创建。SUN 是“Stanford University Network”的首字母缩写。&lt;p&gt;&lt;br&gt;　　Sony&lt;br&gt;　　来自sonus和sonny的组合。sonus是拉丁词，代表声音。sonny是美国俚语，用来称呼聪明伶俐的少年。&lt;p&gt;&lt;br&gt;　　SAP&lt;br&gt;　　代表&amp;quot;Systems, Applications, Products in Data Processing&amp;quot;。四个IBM的前雇员组建了SAP。他们为IBM工作时属于的团队叫“Systems/Applications/Projects”。&lt;br&gt;　　&lt;p&gt;　　Red Hat&lt;br&gt;　　公司创始人Marc Ewing念大学的时候，他祖父给了他一顶康奈尔曲棍球队的帽子。帽子上有着红色和白色的条纹。他不小心把帽子弄丢了，不得不拼命去找。红帽子Linux beta版的用户手册里面有一段话，央求用户如果找到了他的红帽子，请归还！&lt;p&gt;&lt;br&gt;　　Oracle&lt;br&gt;　　Larry Ellison 和 Bob Oats 曾经为中央情报局的一个咨询项目工作。这个项目的代号就叫 Oracle。&lt;br&gt;　　&lt;p&gt;　　Motorola&lt;br&gt;　　创始人Paul Galvin是在公司开始生产车用无线电的时候让公司叫现在这个名字的。原先它叫Victrola。&lt;br&gt;　　&lt;p&gt;　　Microsoft&lt;br&gt;　　Bill Gate起了这个名字。为了代表MICROcomputer SOFTware，就叫做Micro-Soft，后来把中间的 “-” 去掉了。&lt;p&gt;Lotus&lt;br&gt;　　从莲花式盘坐（padmasana）中得名。创始人Mitch Kapor 曾经是Maharishi Mahesh Yogi的超脱静坐教师。&lt;br&gt;　　（译者注：Mahesh Yogi, Maharishi，印度宗教领袖。）&lt;br&gt;　　&lt;p&gt;　　Intel&lt;br&gt;　　Bob Noyce和Gordon Moore想把他们的公司命名为“Moore Noyce”，可是这个名字已经为一家连锁旅馆注册了。Intel是INTegrated ELectronics的缩写。&lt;p&gt;　　&lt;br&gt;　　Hewlett-Packard&lt;br&gt;　　Bill Hewlett和Dave Packard丢硬币来决定他们的公司叫Hewlett-Packard还是Packard-Hewlett。&lt;p&gt;　　&lt;br&gt;　　Hotmail&lt;br&gt;　
　创始人Jack Smith想出了最初的主意，要建立一种任何计算机都可以通过网络访问的电子邮件网络服务。当Sabeer
Bhatia参与起草商业计划书的时候，他尝试了各种以mail结尾的名字。最后，他选择了Hotmail。因为Hotmail包含了html。
Hotmail最早的形式是HoTMaiL。&lt;br&gt;　　（译者问：Hotmail是不是第一个基于网页的电子邮件服务？）&lt;br&gt;　　&lt;p&gt;　　Google&lt;br&gt;　　名字来自于一个关于搜索引擎到底能搜索多少信息的玩笑。最早它叫“Googol”，代表1后面跟100个0。创始人Sergey Brin和Larry Page曾经向一位天使投资人演示他们的项目，最后他们收到了一张给“Google”公司的支票！&lt;br&gt;　　&lt;p&gt;　　Cisco&lt;br&gt;　　San Francisco的最后五个字母。公司的徽标像极了金门大桥。&lt;br&gt;　　&lt;p&gt;　　Apple Computers&lt;br&gt;　　Steve Jobs最喜欢的水果。他本该早就为公司申请一个名字，可是三个月过去了，还没有注册。Jobs威胁大家，如果五点钟之前还找不到一个比“苹果电脑”更好的名字，那么公司就叫“苹果电脑”了。&lt;br&gt;　　&lt;p&gt;　　Apache&lt;br&gt;　　创始人是从给NCSA httpd后台代码打补丁起步的。结果，他们得到了“A PAtCHy” server（打过补丁的服务器），于是，就叫Apache了。&lt;p&gt;&lt;br&gt;　　Adobe&lt;br&gt;　　创始人 John Warnock家后面有一条叫做Adobe Creek的河。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+IT%e5%85%ac%e5%8f%b8%e5%90%8d%e7%a7%b0%e7%9a%84%e6%9d%a5%e5%8e%86&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!308.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!308.entry</guid><pubDate>Tue, 18 Apr 2006 08:52:27 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!308/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!308.entry#comment</wfw:comment><dcterms:modified>2006-04-18T08:52:27Z</dcterms:modified></item><item><title>修正iE双倍计算容器内紧靠浮动元素的边距</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!306.entry</link><description>修正iE双倍计算容器内紧靠浮动元素的边距&lt;br&gt;&lt;br&gt;iE会双倍计算容器内紧靠浮动元素的边距&lt;br&gt;即：容器A里有一浮动元素B,哪么容器A与元素B相临的其它元素(c)在ie里显示时，c的边距会被重复计算。&lt;br&gt;我们要想解这决这个问题有几中办法：&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;br&gt;方法１：&lt;br&gt;&lt;br&gt;我们想要c的正确左边距是12px;&lt;br&gt;.left{&lt;br&gt;margin-left:6px;&lt;br&gt;}&lt;br&gt;html&amp;gt;body.left{&lt;br&gt;margin-left:12px;&lt;br&gt;}&lt;br&gt;“&amp;gt;”符号ie不识别，ff、opera可以识别，意思是说html子标签下的body标签里面的left的margin-left为12px;因为ie不识别，就跳过，ff、opera可以识别，后定义的属性就覆盖先前定义的&lt;br&gt;-------------------------------------------------------------------------------------------------------------&lt;br&gt;方法２：&lt;br&gt;&lt;br&gt;.left{&lt;br&gt;margin-left:6px;&lt;br&gt;margin-left:12px;!important;&lt;br&gt;}&lt;br&gt;!important指定样式规则的应用优先级，但这个我特性ie不支持，但其它标准的浏览器支持&lt;br&gt;-------------------------------------------------------------------------------------------------------------&lt;br&gt;方法３：&lt;br&gt;&lt;br&gt;.left{&lt;br&gt;display:inline:&lt;br&gt;}&lt;br&gt;还没有时候验证。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e4%bf%ae%e6%ad%a3iE%e5%8f%8c%e5%80%8d%e8%ae%a1%e7%ae%97%e5%ae%b9%e5%99%a8%e5%86%85%e7%b4%a7%e9%9d%a0%e6%b5%ae%e5%8a%a8%e5%85%83%e7%b4%a0%e7%9a%84%e8%be%b9%e8%b7%9d&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!306.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!306.entry</guid><pubDate>Tue, 11 Apr 2006 09:35:22 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!306/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!306.entry#comment</wfw:comment><dcterms:modified>2006-04-11T09:35:22Z</dcterms:modified></item><item><title>修正IE5解释容器宽度的方法</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!305.entry</link><description>修正IE5解释容器宽度的方法&lt;br&gt;&lt;br&gt;E 6.0 Firefox Opera等是&lt;br&gt;真实宽度=width+padding+border+margin&lt;br&gt;IE5.X&lt;br&gt;真实宽度=width-padding-border-margin&lt;br&gt;&lt;br&gt;方法1.&lt;br&gt;div.content {&lt;br&gt;width:400px; //这个是错误的width(对于ie5来说是正确的），所有浏览器都读到了&lt;br&gt;voice-family: &amp;quot;\&amp;quot;}\&amp;quot;&amp;quot;; //IE5.X/win忽略了&amp;quot;\&amp;quot;}\&amp;quot;&amp;quot;后的内容&lt;br&gt;voice-family:inherit;&lt;br&gt;width:300px; //包括IE6/win在内的部分浏览器读到这句，新的数值(300px)覆盖掉了旧的&lt;br&gt;}&lt;br&gt;&lt;br&gt;方法2.&lt;br&gt;div.content {&lt;br&gt;width:400px;&lt;br&gt;}&lt;br&gt;html&amp;gt;body .content { //html&amp;gt;body是CSS2的写法&lt;br&gt;width:300px; //支持CSS2该写法的浏览器(非IE5)有幸读到了这一句&lt;br&gt;}&lt;br&gt;&lt;br&gt;方法3.&lt;br&gt;div.content {&lt;br&gt;width:300px !important; //这个是正确的width，大部分支持!important标记的浏览器使用这里的数值&lt;br&gt;width(空格)/**/:400px; //IE6/win不解析这句，所以IE6/win仍然认为width的值是300px；而IE5.X/win读到这句，新的数值(400px)覆盖掉了旧的，因为!important标记对他们不起作用&lt;br&gt;}&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e4%bf%ae%e6%ad%a3IE5%e8%a7%a3%e9%87%8a%e5%ae%b9%e5%99%a8%e5%ae%bd%e5%ba%a6%e7%9a%84%e6%96%b9%e6%b3%95&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!305.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!305.entry</guid><pubDate>Tue, 11 Apr 2006 09:33:40 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!305/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!305.entry#comment</wfw:comment><dcterms:modified>2006-04-11T09:33:40Z</dcterms:modified></item><item><title>css书写规范</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!304.entry</link><description>一、 基本书写规范　　&lt;br&gt;&lt;br&gt;1、所有的CSS的尽量采用外部调用&lt;br&gt;　　 &amp;lt;LINK href=&amp;quot;style/style.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt; &lt;br&gt;　　&lt;br&gt;　　书写时重定义的最先，伪类其次，自定义最后（其中a:link a:visited a:hover a:actived 要按照顺序写）便于自己和他人阅读。 &lt;br&gt;　　&lt;br&gt;　　为了保证不同浏览器上字号保持一致，字号建议用点数pt和像素px来定义，pt一般使用中文宋体的9pt和11pt，px一般使用中文宋体12pt 和14.7px 这是经过优化的字号，黑体字或者宋体字加粗时，一般选用11pt和14.7px 的字号比较合适。 &lt;br&gt;　　&lt;br&gt;2、CSS推荐模板: &lt;br&gt;　　&lt;br&gt;　　&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt; &lt;br&gt;　　&amp;lt;!— &lt;br&gt;body { font-size:9pt; font-family:Arial, Helvetica, sans-serif; color:#333333; text-align:center; margin:0px;}&lt;br&gt;ul { margin:auto; }&lt;br&gt;img { border:0px; }&lt;br&gt;a { font-size:9pt; text-decoration:none;color:#FFFFFF; }&lt;br&gt;a:hover { font-size:9pt; text-decoration:underline; color:#990000; }&lt;br&gt;a.1 { font-size: 9pt; color: #3366cc; text-decoration: none} &lt;br&gt;a.1:hover { font-size: 9pt; color: #FF9900; text-decoration: none}&lt;br&gt;&lt;br&gt;.colorblue,colorblue:hover { color:#003366 ;}&lt;br&gt;.blue { font-family: &amp;quot;宋体&amp;quot;; font-size: 9pt; line-height: 20px; color: #0099FF; letter-spacing: 5em}&lt;br&gt;&lt;br&gt;.colorRed,a.colorRed:hover{            color: #FF0000; }&lt;br&gt;.colorLime,a.colorLime:hover{        color: #00FF00; }&lt;br&gt;.colorGreen,a.colorGreen:hover{        color: #008000; }&lt;br&gt;.colorBlue,a.colorBlue:hover{        color: #0000FF; }&lt;br&gt;.colorOrange,a.colorOrange:hover{    color: #FFA500; }&lt;br&gt;　　--&amp;gt; &lt;br&gt;　　&amp;lt;/style&amp;gt; &lt;br&gt;　　&lt;br&gt;　　&lt;br&gt;　　为了保证浏览器的兼容性，必须设置页面背景&amp;lt;body bgcolor=&amp;quot;#FFFFFF&amp;quot;&amp;gt;&lt;br&gt;&lt;br&gt;3、其中注释写法，例：/*header begin!*/&lt;br&gt;&lt;br&gt;&lt;br&gt;二、CSS命名参考&lt;br&gt;&lt;br&gt;1、常用的CSS命名规则： &lt;br&gt;头：header&lt;br&gt;内容：content/container&lt;br&gt;尾：footer&lt;br&gt;导航：nav&lt;br&gt;侧栏：sidebar&lt;br&gt;栏目：column&lt;br&gt;&lt;br&gt;2、直观命名&lt;br&gt;&lt;br&gt;当在设计Web页面以及需要对一个div进行标识的时候，最自然的想法就是使用可以描述元素所在页面位置的词汇来对其命名。这种方法使得类以及id的名称如下面所示：&lt;br&gt;&lt;br&gt;自上而下小组：top-panel&lt;br&gt;&lt;br&gt;横向：horizontal-nav&lt;br&gt;&lt;br&gt;左面：left-side&lt;br&gt;&lt;br&gt;中心-栏目：center-column&lt;br&gt;&lt;br&gt;右面：right-col&lt;br&gt;&lt;br&gt;这些是CSS以及XHTML类和id的有效命名方式。这些词汇简单并且能够使人顾名思义，因此满足了标识页面元素以及相应的CSS样式的需要。&lt;br&gt;&lt;br&gt;但问题是这样的名称同页面内容的特定表达方式相关联。这些命名参考了某种特定页面布局中的页面元素位置，因此在这样的布局之外使用就会显得不合适甚至造成理解混乱。同时，这些命名没有涉及文档内容的结构。因此，下面给出了对CSS类以及ID命名更好的方法。&lt;br&gt;&lt;br&gt;3、结构化命名&lt;br&gt;&lt;br&gt;结构化的标记意味着表达方式/位置信息同内容的完全分离——这其中包括出现在标记（markup）中的类和id名称。&lt;br&gt;&lt;br&gt;有
标记的相关信息都是用来描述文档的结构而不是外观。这样的特点使得我们可以通过简单的改变CSS的方式来对不同外观格式下的内容（content）以及标
记（markup）进行重用。当你理解这种方式时，很容易就可以发现采用页面位置来为类以及id命名的方式在处理如音频（audio）等外观格式上显得非
常不合适。因此，应当根据在文档中的使用目的而非出现位置来对类以及id进行结构化命名。&lt;br&gt;&lt;br&gt;可以按照如下所示的结构化方式来对类以及id名称命名：&lt;br&gt;&lt;br&gt;顶部抢眼部分：branding&lt;br&gt;&lt;br&gt;导航部分：main-nav&lt;br&gt;&lt;br&gt;主要内容部分：main-content&lt;br&gt;&lt;br&gt;这些名字同直观命名方式一样非常易懂，但他们描述了页面元素的作用而非位置。这使得代码更加符合使用纯粹的结构化标记（structural markup）的初衷，即开发人员可以在不改变标记的情况下对各种各样媒体下的显示格式进行处理。&lt;br&gt;&lt;br&gt;即
使你不打算在其他的媒体上对Web页面进行格式修改，使用结构化命名方式还可以帮助你在日后的站点升级或重新设计中更为轻松。例如，结构化命名避免了当一
个div同id right-column移动到页面左边后所带来的混乱。对div
sidebar的采用这样的命名方式就显得更加适当，因为无论它出现在页面的哪一边，这个名字仍然对开发人员来说直观易懂。&lt;br&gt;&lt;br&gt;4、惯例&lt;br&gt;&lt;br&gt;Andy Clarke分析了40份由推崇标准化Web设计理念的开发人员所设计的Web站点的源代码。尽管类以及id名称很不统一，但是还是发现了一些频繁出现的常用名称。这里给出了最常用类/id名称的示例列表：&lt;br&gt;&lt;br&gt;header&lt;br&gt;&lt;br&gt;content&lt;br&gt;&lt;br&gt;nav&lt;br&gt;&lt;br&gt;sidebar&lt;br&gt;&lt;br&gt;footer&lt;br&gt;&lt;br&gt;如果要查看完整的列表，可以看看最常见命名惯例表&lt;br&gt;&lt;br&gt;这
些常见的类以及id名称是否标志着一种标准的诞生或是普遍接受惯例的形成呢？尽管这是我所希望的，但我并不这么认为。我的确希望能够看见一整套对于我们每
天都可以看到的常用页面元素的命名标准。同时，使用标准化的命名方式可以使得寻找页面元素以及对Web站点升级带来方便，尤其当需要在由不同开发人员在不
同时间所开发站点中换来换去工作的时候。&lt;br&gt;&lt;br&gt;review:&lt;br&gt;&lt;br&gt;大的布局div可以以外观的方式命名(如header,footer)，其他的我觉得还是应该以描述所含内容的标准来命名（如menu，news）&lt;br&gt;&lt;br&gt;5、自定义命名：&lt;br&gt;&lt;br&gt;根据w3c网站上给出的,最好是用意义命名&lt;br&gt;比如：是重要的新闻高亮显示（像红色）&lt;br&gt;有两种&lt;br&gt;.red{color:red}&lt;br&gt;.important-news{color:red}&lt;br&gt;很显然第二种传达的意义更加明确,所以尽量不要用意义不明确的作为自己自定义的名字&lt;br&gt;&lt;br&gt;&lt;br&gt; &lt;br&gt;三、CSS样式书写顺序&lt;br&gt;&lt;br&gt;1、显示属性 &lt;br&gt;* display      * list-style       * position      * float        * clear &lt;br&gt;&lt;br&gt;2、自身属性 &lt;br&gt;* width       * height         * margin       * padding     * border    * background &lt;br&gt;&lt;br&gt;3、文本属性 &lt;br&gt;* color         * font          * text-decoration     * text-align &lt;br&gt;* vertical-align  * white-space    * other text          * content&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+css%e4%b9%a6%e5%86%99%e8%a7%84%e8%8c%83&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!304.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!304.entry</guid><pubDate>Tue, 11 Apr 2006 09:32:32 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!304/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!304.entry#comment</wfw:comment><dcterms:modified>2006-04-11T09:32:32Z</dcterms:modified></item><item><title>刀枪Blue简直太帅了。。。</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!303.entry</link><description>之前看过几回，但从来没有像这次看的这么爽。。。&lt;br&gt;&lt;br&gt;收藏了：&lt;a href="http://www.thinknext.net/"&gt;http://www.thinknext.net/&lt;/a&gt;&lt;br&gt;&lt;br&gt;:  P&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e5%88%80%e6%9e%aaBlue%e7%ae%80%e7%9b%b4%e5%a4%aa%e5%b8%85%e4%ba%86%e3%80%82%e3%80%82%e3%80%82&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!303.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!303.entry</guid><pubDate>Tue, 11 Apr 2006 06:59:44 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!303/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!303.entry#comment</wfw:comment><dcterms:modified>2006-04-11T06:59:44Z</dcterms:modified></item><item><title>关于字体,字号的选择,在一名微软员工的Blog上看到的</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!299.entry</link><description>我有一阵子经常看他的Blog，虽然并不欣赏他的生活态度，太细腻了。但他写的有些东西很有价值，这点毋庸置疑，比如这篇关于公文处理中，字型，字号的选择。&lt;br&gt;&lt;br&gt;&lt;h3&gt;给新同事的一封信：关于字体的使用&lt;/h3&gt;

&lt;p&gt;&lt;font face=Arial&gt;Hi there,&lt;/font&gt;

&lt;p&gt;&lt;font face=Arial&gt;I like to share with you my cents on using fonts.&lt;/font&gt;

&lt;p&gt;&lt;font face=Arial&gt;Writing spec and emails,&lt;/font&gt;&lt;ul&gt;&lt;font face=Arial&gt;&lt;li&gt;&lt;font face=Arial&gt;Most people use Arial&lt;/font&gt;&lt;br&gt;
&lt;li&gt;&lt;font face=Verdana&gt;Verdana is also often used&lt;/font&gt;&lt;br&gt;
&lt;li&gt;&lt;font face="Comic Sans MS"&gt;Somebody uses Comic Sans MS, including &lt;a href="http://www.microsoft.com/presspass/exec/kjohnson/default.asp"&gt;Kevin Johnson&lt;/a&gt;.&lt;/font&gt;&lt;br&gt;
&lt;/font&gt;&lt;/ul&gt;&lt;font face=Arial&gt;&lt;font face=Verdana&gt;Verdana&lt;/font&gt;, &lt;font face=Arial&gt;Arial&lt;/font&gt; and &lt;font face="Comic Sans MS"&gt;Comic Sans MS&lt;/font&gt;
are most accepted fonts for emails/specs because they are comfortable
to read on the monitor. For most time, avoid using other fonts: &lt;font face="Courier New"&gt;Courier New&lt;/font&gt; is for code, &lt;font face=Tahoma&gt;Tahoma&lt;/font&gt;, &lt;font face=Georgia&gt;Georgia&lt;/font&gt;, &lt;font face="Franklin Gothic Book"&gt;Franklin Gothic&lt;/font&gt; and &lt;font face="Bookman Old Style"&gt;Bookman Old Style&lt;/font&gt; are not formal for business use.

&lt;/font&gt;&lt;p&gt;&lt;font face=Arial&gt;If the document is for formal print, &lt;font face="Times New Roman"&gt;Times New Roman&lt;/font&gt; and &lt;font face="MS Sans Serif"&gt;MS Sens Serif&lt;/font&gt; are also the best choice besides &lt;font face=Arial&gt;Arial&lt;/font&gt;. Though they may be not comfortable to read on the monitor. &lt;font face=Verdana&gt;Verdana&lt;/font&gt;	also looks great on monitor as well as on paper.&lt;/font&gt;

&lt;p&gt;&lt;font face=Arial&gt;Hope this could help us write more decent emails/specs.&lt;/font&gt;

&lt;font face=Arial&gt;-eric&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/font&gt;Comments

&lt;div&gt;
&lt;p&gt;hoho~偶也这样的!&lt;br&gt;
Arial/Verdana用来写文书,&lt;br&gt;
Comic Sans MS用来做非正式的演讲资料,&lt;br&gt;
Courier New用来写代码.&lt;br&gt;
全靠当时Pgao指点的.一直对他心存感激.
&lt;span&gt;Posted by: Ed at November  5, 2004 10:07 PM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;I like Comic Sans MS and use it for email.
&lt;span&gt;Posted by: Roosevelt at November  5, 2004 11:49 PM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;我喜欢用Arial写信，Times new roman写paper， Courier New 写程序（不过我似乎没有什么高深的程序可以写，//shy）。以前用过Verdana，后来不用了，觉得这种字体太胖，哈哈，
&lt;span&gt;Posted by: lzz at November  6, 2004 01:09 AM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;我很好奇，MS 沒有任何的 documentation pattern 嗎？為什麼會讓每個人自己設定各種喜好的字體呢？

&lt;p&gt;另外我的經驗，Arial 是辨識效果最差的字體，用在 web 的時候，我通常喜歡以 Tahoma 來代替 arial 和 verdana。理由：大寫 I 和 小寫 L 非常容易搞混。
&lt;span&gt;Posted by: &lt;a href="http://www.takol.idv.tw/" rel=nofollow&gt;Takol&lt;/a&gt; at November  6, 2004 12:24 PM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Working paper：&lt;br&gt;
如果在纸上的，就用Tahoma&lt;br&gt;
如果是D/B的，就Arial

&lt;p&gt;Times new roman写Email

&lt;p&gt;公司里面最formal的Report是Arial的

&lt;p&gt;:D
&lt;span&gt;Posted by: &lt;a href="http://jessifruit.blogone.net/" rel=nofollow&gt;doudou&lt;/a&gt; at November  6, 2004 08:16 PM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;很土地问一个问题：&lt;br&gt;
我下载了你的keyborad counter的可执行程序，但是打开不了:( 不知道是为什么
&lt;span&gt;Posted by: &lt;a href="http://jessifruit.blogone.net/" rel=nofollow&gt;doudou&lt;/a&gt; at November  6, 2004 08:27 PM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Email/Spec: 英文-Arial 9号;中文-宋体9pt&lt;br&gt;
Program:中文/英文 宋体 9pt 这个习惯是从VS.NET 2002开始的，不过这里面不能分清楚英文字母大写O和数字0，完全一样，导致我一个同学因为这个错误调试程序了半天，愣是没看出来^_^。

&lt;p&gt;Print: Adobe Garamond Pro&lt;br&gt;
Macromedia的文档都用这个，我很喜欢。:D&lt;br&gt;
Garamond字体很有设计感，最大特色就是大写W顶部有一个交叉，我现在SONY Z1的W键就是这个字体。

&lt;p&gt;WebPage: 英文- Verdana/Tahoma;中文-宋体9pt&lt;br&gt;
微软的网站大部分都是这样，英文使用Tahoma/Verdana即使字号很小也可以看得很清楚，很多privacy的link都使用这样的小字。可惜中文就没有这种特性，比9pt小的字就看不清楚了。

&lt;p&gt;Design: Century Gothic / Miniskip / Segoe&lt;br&gt;
这里所说的Design是指在平面设计中使用的logo/slogan字体。微软原来使用的是Franklin系列的粗体，近两年开始使用Segoe字体了。呵呵
&lt;span&gt;Posted by: Goden at November  6, 2004 09:03 PM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;我们公司要求正文用Garamond, Table用Arial&lt;br&gt;
据说是Paper的通用格式
&lt;span&gt;Posted by: &lt;a href="http://kutra.blog-city.com/" rel=nofollow&gt;Kutra&lt;/a&gt; at November  7, 2004 11:58 AM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Book Antiqua也是不错的字体。很多书籍是用这个字体的。但是不适用于official document.

&lt;p&gt;另外，个人经验，如果觉得times new roman屏上阅读很费力，不妨试试放大显示比例到110%或120%，会漂亮许多。
&lt;span&gt;Posted by: ella at November  7, 2004 11:14 PM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;我觉得漂亮的字体在Mac上比较多，比如frutiger，futura等等。如果要在PC上用的话，装一个ATM就可以了 :)
&lt;span&gt;Posted by: iteem at November  8, 2004 01:59 AM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;@takol:

&lt;p&gt;我们公司没有documentation pattern，很多东西都靠sense，或者大家之间的习惯。如果要上纲上线，这也可以被归纳为企业文化。

&lt;p&gt;Arial的I和L的问题的确存在，这也是为什么Arial不可以用作写代码的原因。如果是email/spec，问题不大，因为有上下文，基本不会搞错。曾经有人还搞过一个试验，把一个句子里面每个英文单词里面的字母交换次序或者抽掉一个，句子仍然可以被比较容易的理解

&lt;p&gt;比如说：Thuogh thye may be nt cmofrotalbe to raed on the montior.

&lt;p&gt;呼呼
&lt;span&gt;Posted by: &lt;a href="http://home.wangjianshuo.com/mvm" rel=nofollow&gt;mvm&lt;/a&gt; at November  8, 2004 09:03 AM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;@yao ting:

&lt;p&gt;你设计的logo/slogan的最大特点就是字体狂小。上次george yan来23楼作demo，我们一看界面就猜出是你design的。

&lt;p&gt;也算是风格了
&lt;span&gt;Posted by: &lt;a href="http://home.wangjianshuo.com/mvm" rel=nofollow&gt;mvm&lt;/a&gt; at November  8, 2004 09:06 AM&lt;/span&gt;

&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;@mvm&lt;br&gt;
&amp;gt;&amp;gt;_&amp;lt;&amp;lt; 也还好吧。中文字体做logo/slogan真的不怎么好看。还是英文比较容易排列。虽然我承认我偏向小字体。。。@_@...
&lt;span&gt;Posted by: Goden at November  8, 2004 10:51 AM&lt;/span&gt;

&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;font style="font-weight:bold" size=4&gt;通过Google又搜索了一些信息,供参考用:&lt;/font&gt;&lt;br&gt;&lt;ul style="font-weight:bold"&gt;&lt;li&gt;&lt;h2&gt;&lt;font size=3&gt;&lt;a href="http://rchen.cnblogs.com/archive/2005/10/02/248003.html"&gt;轻松话题：编辑器字体的选择与可读性，程序员的选择？&lt;/a&gt;&lt;/font&gt;&lt;/h2&gt;&lt;li&gt;&lt;font size=3&gt;&lt;a href="http://www.logosky.net/webpage/artreview/typefaces.htm"&gt; 选择正确字体&lt;/a&gt;&lt;/font&gt;&lt;li&gt;&lt;font size=3&gt;&lt;a href="http://www.dogbox.cn/blog/article.asp?id=57"&gt;&lt;strong&gt;&lt;strong&gt;如何更高效的运用各种字体—用字体说话&lt;/strong&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/font&gt;&lt;li&gt;&lt;font size=3&gt;&lt;a href="http://www.blueidea.com/tech/graph/2005/2813.asp"&gt;&lt;strong&gt;关于字体&lt;/strong&gt;&lt;/a&gt;&lt;/font&gt;&lt;li&gt;&lt;font size=3&gt;&lt;a href="http://www.omemo.net/neo/tips/font-size.php"&gt;当心字体尺寸&lt;/a&gt;&lt;/font&gt;&lt;/ul&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e5%85%b3%e4%ba%8e%e5%ad%97%e4%bd%93%2c%e5%ad%97%e5%8f%b7%e7%9a%84%e9%80%89%e6%8b%a9%2c%e5%9c%a8%e4%b8%80%e5%90%8d%e5%be%ae%e8%bd%af%e5%91%98%e5%b7%a5%e7%9a%84Blog%e4%b8%8a%e7%9c%8b%e5%88%b0%e7%9a%84&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!299.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!299.entry</guid><pubDate>Wed, 05 Apr 2006 06:15:20 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!299/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!299.entry#comment</wfw:comment><dcterms:modified>2006-04-05T06:52:03Z</dcterms:modified></item><item><title>Apache：不是只有Web服务器</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!298.entry</link><description>多数人在听到“Apache”这个词的时候首先想到的是Apache 
    Web服务器，或者叫做“Apache全球网服务器软件”。但是Apache软件基金会（&lt;a href="http://www.apache.org/"&gt;Apache Software Foundation&lt;/a&gt;）有很多项目，这些项目就和它的旗舰――Web服务器一样有趣。Apache所支持的核心技术集中于&lt;a href="http://java.apache.org/"&gt;Java&lt;/a&gt;和&lt;a href="http://xml.apache.org/"&gt;XML&lt;/a&gt;，而贡献者名单上则包括了&lt;a href="http://www.sun.com/"&gt;Sun&lt;/a&gt;和&lt;a href="http://www.ibm.com/"&gt;IBM&lt;/a&gt;（&lt;a href="http://xml.apache.org/soap/index.html"&gt;SOAP&lt;/a&gt;工具）。
  &lt;h5&gt;Apache软件的起源&lt;/h5&gt;&lt;p&gt;Apache软件基金会于1999年启动了好几个XML和Java项目，同时Roy T.
Fielding将这个组织重组成了一家非盈利性机构。Apache通过支持标准语言，如Perl，PHP（一个Apache的项目），以及最近的
Java，来鼓励开发人员使用它的软件。尽管Apache软件基金会没有PHP子项目，但是很多用PHP编写的商业程序正在Apache的Web服务器顶
端运行。
  
&lt;p&gt;我目前正在使用许多Apache程序，因为它们是免费的，有详尽的文档，并具有足够的稳定性以移植到生产环境中。对于使用XML和Java的开发人
员，来自Apache的项目是一个研究这些技术的好地方。最近的项目，包括Cocoon和Xindice项目，为开发人员提供了试用这些软件的机会，而不
会受到商家的炒作和压力。
  
&lt;p&gt;我已经试用过的Apache软件基金会的XML和Java项目主要包括以下这些：

&lt;ul&gt;&lt;li&gt; 
    &lt;div&gt;&lt;b&gt;PHP&lt;/b&gt;――PHP超文本预处理程序项目开发出了正在流行的PHP程序语言。&lt;/div&gt;
  &lt;li&gt; 
    &lt;div&gt;&lt;b&gt;Jakarta/Tomcat&lt;/b&gt;――Jakarta（雅加达）项目包括许多子项目，而&lt;a href="http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39063009,00.htm"&gt;Tomcat&lt;/a&gt;（雄猫）项目则是中心项目。Tomcat是一个于用运行Java 
      servlet和JSP页面的J2EE servlet引擎的参考工具。Tomcat 4.0实现了对J2EE上下文环境和数据源更好的支持。Tomcat有很多吸引人的地方――它所包含的内容刚好能满足J2EE的要求。&lt;/div&gt;
  &lt;li&gt; 
    &lt;div&gt;&lt;b&gt;Xerces&lt;/b&gt;和&lt;b&gt;Xalan&lt;/b&gt;――
这些项目包含了一个XML剖析器和Xpath引擎，这两者是设计用来实现XML的W3C标准的。这两个工具的Java版本和C++版本都已经出来了。
Xerces当前的版本是2.0.2版。XML剖析器基本上都遵从同样的规则，所以使用微软XML组件的开发人员会发现Xerces/Xalan惊人的相
似。&lt;/div&gt;
  &lt;li&gt; 
    &lt;div&gt;&lt;b&gt;Axis&lt;/b&gt;――由IBM捐赠的Axis是一个SOAP
Web服务工具。2.3版的基于Java的Axis是简单易懂的，而且可以和任何servlet外壳或者Java程序一起实现。Axis包括了命令行工具
用以创建文件和Java代理客户。许多生产商会吹嘘他们的产品会如何简化Web服务，但是Axis的命令行工具做的就非常好。&lt;/div&gt;
  &lt;li&gt; 
    &lt;div&gt;&lt;b&gt;Cocoon&lt;/b&gt;——
这个项目是建立在Tomcat和Xerces顶端的基于XML的内容管理平台。Conoon曾因为一些问题而被Apache排除在外，但是在做过改写和从
新定位之后，它还是值得一看的。Cocoon主要使用的是XML/XSLT，同时还带有一个从分散的来源集中数据的框架。&lt;/div&gt;
  &lt;li&gt; 
    &lt;div&gt;&lt;b&gt;Xindice&lt;/b&gt;――随着基于XML的应用程序的增多，需要更好管理文档的愿望正在增强。Xindice使用了XML:DB标准（目前还不是W3C候选对象），用以维护XML文档的集合，这些文档能够使用Xpath被轻易检索到。&lt;/div&gt;
  &lt;li&gt;
    &lt;div&gt;&lt;b&gt;Jakarta/James&lt;/b&gt;和&lt;b&gt;JetSpeed&lt;/b&gt;――James是一个完全由Java写成的可伸缩e-mail服务器；JetSpeed是一个企业信息门户。James不支持IMAP4标准，但是肯定能处理POP3和SMTP。&lt;/div&gt;
  &lt;/ul&gt;
&lt;div&gt;
  &lt;h5&gt;支持W3C标准&lt;/h5&gt;
  &lt;p&gt;&lt;a href="http://www.w3.org/"&gt;W3C&lt;/a&gt;会公布任何和Web相关的标准。Apache在把自己的项目用作W3C标准参考的工作上做得很好。管理和项目研究人员总是为制定标准细则而努力，并讨论这些细则将如何影响用户。Apache的每个项目都有自己的邮件列表，许多都被归档放到了网上。
  &lt;h5&gt;Apache项目的价值&lt;/h5&gt;
  &lt;p&gt;所
有的这些工具包都需要花时间来学习；幸运的是，大多数文档都是非常好的。如果你已经安装了几个Web服务器，并了解它们是如何工作的，那么Tomcat是
很容安装的。Xindice的文档有点过时了，而Xerces和Xalan则需要对XML的了解。如果你从来都没有和XML打过交道，那么要想掌握
Xerces将会需要大量的时间来研究，包括阅读文档，还可能要到W3C甚至是Sun去，以弄清和Java相关的问题。
  &lt;p&gt;在某些情况下，这种类型的阅读和探索很耗时间，但是会对核心技术问题有更好的理解。当然，你也可以快速修改一下附带的演示程序，并让所有的东西都工作得很好，这在Apache项目中是可能的（但是是不值得推荐的）。
  &lt;p&gt;由
于在开发人员社区处于强大的领导地位，开放源代码的Apache软件是在不断改进的。生产商可以修改和增加源代码，然后重新打包，甚至将源代码随自己的应
用程序一起卖掉。Macromedia从里到外都已经使用了Xerces和Axis，并把这两个项目作为它Jrun软件的标准组件。IBM也在这些技术上
做了扩展，把它们包括进了WebSphere。所以Apache项目不愿意被归为纯开放源代码的软件；所以你很可能会碰到这些软件，甚至是在最保守的店子
里。
  &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+Apache%ef%bc%9a%e4%b8%8d%e6%98%af%e5%8f%aa%e6%9c%89Web%e6%9c%8d%e5%8a%a1%e5%99%a8&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!298.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!298.entry</guid><pubDate>Tue, 04 Apr 2006 07:50:56 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!298/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!298.entry#comment</wfw:comment><dcterms:modified>2006-04-04T07:53:56Z</dcterms:modified></item><item><title>技术访谈： Apache 软件基金会背后</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!297.entry</link><description>&lt;span&gt;Greg Stein - Apache 软件基金会（ ASF ）的主席&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;table border=0 cellpadding=0 cellspacing=0 width="100%"&gt;
  &lt;tbody&gt;&lt;tr&gt;
    &lt;td width="42%"&gt; &lt;img src="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/man/images/imagesgregsteinapache01.jpg" alt="Greg Stein"&gt; 
    &lt;td valign=top width="58%"&gt;
Greg Stein 现在是 Google 的 blogging 软件团队的工程管理人员。 
      &lt;p&gt;　
　 在此之前， Greg 是 CollabNet 的工程主管，管理 Subversion 项目及 SourceCast
产品的发布。他还曾做过微软 Commerce Server and Site Server 团队的开发经理。他还是 eShop
的共同创始人和法人技术专家，在被微软收购之前， eShop 是最早的电子商务软件公司之一。 
      &lt;p&gt;　　 在业余时间里， Greg 还致力于许多开源码项目，如 Subversion 、 Apache 、 WebDAV 和 Python 。他还是 ASF 的现任主席、 ActiveState 的技术顾问和 SecureSoftware 的董事顾问。 
  
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;访谈内容 &lt;/strong&gt;
&lt;ul&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#1"&gt;欢迎 Greg Stein ，您可以向社区自我介绍一下吗？&lt;/a&gt; &lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#2"&gt;您是怎么跟 Apache 发生联系的？&lt;/a&gt; &lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#3"&gt;ASF 由哪些部分和哪几块组成？&lt;/a&gt; &lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#4"&gt;该如何着手使软件项目成为 Apache 的一部分？&lt;/a&gt; &lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#5"&gt;为什么这些项目会找到 ASF ？您认为是什么原因？&lt;/a&gt; &lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#6"&gt;当一个项目在 PMC 中时，它会经历什么样的过程？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#7"&gt;在 Java 方面，有一些项目是属于 Jakarta 的一部分，而另一些则是独立存在的。 Jakarta 的作用是什么？为什么有些项目包含在 Jakarta 中，而另一些则不是这样的呢？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#8"&gt;那么 XML Beans 项目是 Apache XML 方面的一部分？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#9"&gt;无论何时谈到开放源码，人们总要谈论关于许可证发放的问题，而且一些人喜欢为此争论， Apache 模型背后的许可证发放原则是什么？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#10"&gt;ASF 社区是如何与 ASF 配合的？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#11"&gt;随着不断地添加越来越多的项目，你们将如何处理这种增长？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#12"&gt;看起来 Incubator 是要使促进婴儿成长的一个工具，那你们如何处理项目的终结？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#13"&gt;如果您是一名开发人员，那么您如何与基金会取得联系呢？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#14"&gt;您提到了理事会，理事会是如何做出决策的？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#15"&gt;您如何看待 ASF 的未来？ &lt;/a&gt;&lt;li&gt; &lt;a href="http://dev2dev.bea.com.cn/bbs/BEA_dev2dev_Live/article/05061502.html#16"&gt;您认为像 BEA 这样的供应商成为这个过程的一部分是否重要？ &lt;/a&gt;&lt;/ul&gt;
&lt;hr size=1&gt;
&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;欢迎 Greg Stein ，您可以向社区自我介绍一下吗？ &lt;/strong&gt;
&lt;p&gt;我叫 Greg Stein ，现在是 ASF 的主席。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;您是怎么跟 Apache &lt;/a&gt;发生联系的？ &lt;/strong&gt;
&lt;p&gt;1998 年，我开始为 Apache web 服务器开发一个模块，以便为其提供 web 应用能力，所以通过和 HUB
服务器社区的联系，我最终获得了提交访问权，开始参与进来，我提供了一些补丁，并开始从事 web 服务器本身的开发工作。所以从那时起，我与 ASF
组织本身就有了更多的联系。我最终成为 ASF 的一名会员，并于几年前被选入理事会，然后两年前被选为主席。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;ASF 由哪些部分和哪几块组成？ &lt;/strong&gt;
&lt;p&gt;有好几块。他们被组织成项目管理委员会，简称为 PMC 。每个 PMC 负责一个特定的代码基址、 web 服务器项目和 Jakarta
项目； XML Beans 是一个新的 PMC 管理项目； Geronimo ，即 J2EE 服务器项目，也是一个 PMC 管理项目。所以每个
PMC 都要负责某一类日常代码开发监督，以确保一切运转良好、社区在运转、代码得到正确的开发、测试和发布，等等。除了这些 PMC
，还有理事会和一些其他的非 PMC 委员会，如公共关系委员会、资金筹集委员会，等等。理事会有 9 个人，每年 5
月在年度会员会议上选出，选出理事会后，再由理事会指定干事、主席、会长、财务总管和秘书长。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;该如何着手使软件项目成为 Apache 的一部分？ &lt;/strong&gt;
&lt;p&gt;很多时候，当一些开始一个项目时，他们可以在 ASF 内部开始这个项目。通常有些人先前已经以某种方式与 ASF
联系过，并且他们想开始一个新项目，希望 Apache 能承认它。这些新项目并不总是在已有 PMC
下开始的。当从外面获得某些人已有的一些代码时，就像 SpamAssassin …… SpamAssassin 小组与 ASF
接触，并询问他们能否成为 ASF 的一部分；而这是一个很好的产品，所以我们肯定对它很热心，这样，该代码就被一个叫做 Incubator 的
PMC 监督起来。 Apache Incubator 负责引入代码，确保我们拥有该代码的所有知识产权，然后，当扫清 IP
上的这些障碍之后，也就会对 ASF 是如何工作的稍稍有所了解。这样引入小组和代码形成了一个小的微型 PMC
，以便他们习惯一些监督实践，以及提供状态信息所必需的报告。过一段时间之后，当人们开始看 Apache 的时候，就会知道自己是否真的弄清楚了
Apache 是如何工作的；而这时， Apache 也就可以从 Incubator 毕业了，这是我们的说法。接下来， Apache
可以转入一个已有的 PMC ，例如，有一些小的 Apache 模块的 PMC ， Apache 退出 Incubator 之后，将转入
HTTPD PMC ；而像 SpamAssassin 之类的软件项目没有相关 PMC 的，可以创建属于它们的 PMC ，然后其转入这些 PMC
中。所以理事会必须批准 PMC ，以便将它们转入。其他已完善的 PMC 项目，如 XML Beans ，是几个月前才退出 Incubator
的。这个项目是由 BEA 这个团体捐献的，而 SpamAssasin 是由许多个人捐献的。就 XML Beans 而言， BEA 认为让它成为
Apache 的一部分，应该由 Apache 照管，这样对它们自己的代码基址的社区更有益。所以 XML Beans 进入了 Incubator
，通过了所有的孵化过程，而 BEA 的几个工作人员也作为 Apache
提交者加入进来，致力于这个项目。我们让其他的外部捐献者也参与到这个项目中，然后， XML Beans 毕业了，现在，它有了自己的 PMC 。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;为什么这些项目会找到 ASF ？您认为是什么原因？ &lt;/strong&gt;
&lt;p&gt;最大的原因之一当然是名声了。我认为很多人想要把 Apache
的名号与他们的代码联系起来。这样做无疑能为项目提供从其他地方无法获得的吸引力。当然， SpamAssassin
是众所周知的。它创造了自己的名声。其实它不需要再借助 Apache 的名声，但是它需要一种合法的监督，而 ASF
可以为它的提交者提供法律保护。所以，在 ASF ，所有的提交者都受到 ASF 的庇护，不再受到针对它们的诉讼和其他类型的赔偿要求的威胁。
ASF 将是任何可能发生的诉讼的当事人。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;当一个项目在 PMC 中时，它会经历什么样的过程？ &lt;/strong&gt;
&lt;p&gt;PMC 其实是幕后运作者。他们是开发人员和 Apache 理事会之间的联络机构，因为 ASF
从提交者那里负担起了责任，所以它需要对项目进行监督，这样，在法庭面前， ASF 才可以说项目是按照它们指引的方向发展的，项目是 ASF
做的，而不是某一个个人在做这个项目。因此我们需要用 PMC 对项目的监督来证明我们的监督，开发人员、提交者、参与者和理事会都可以对 PMC
进行监督，因此一旦这个链建立起来，我们就有了适当的法律保证。所以结果是：理事会需要提供全面的监督，而 PMC
成为了提交者与理事会之间的联络机构。否则，他们实际上没有很多功能，因为 PMC 被想像成只由提交者组成，所以它有一个 PMC
主席，并且主席拥有某种最终权力，但是实际上每个 PMC 都是按照一种民主方式运行的。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;在 Java 方面，有一些项目是属于 Jakarta 的一部分，而另一些则是独立存在的。 Jakarta 的作用是什么？为什么有些项目包含在 Jakarta 中，而另一些则不是这样的呢？ &lt;/strong&gt;
&lt;p&gt;1999 年成立 ASF 时，第一个 PMC 是 HTTPD PMC 。此后，很快就有了与 Tomcat 对话的 mod JServe
，因此我们想为 Tomcat 和 JServe 提供一种方法，而所有这些都是 Apache 的一部分。接着，启动了 Jakarta
，实际上它是作为 Apache Java 启动的。后来， Sun 公司要我们改一下名字，这样做也挺好，于是就有了作为针对所有 Java
代码而不是针对某个特定项目的地方—— Jakarta 。在这之后，尽管我们实际上想让每个 PMC 只集中于一个项目，但是 Jakarta 和
Apache XML 最终还是成为了收容各种特殊类型的技术、 Java 技术和 XML
技术的庇护所。它也没有起到监督的目的，因为有如此多的截然不同的技术在发展，很难说我们对它们全都了解，所以我们想把注意力更多地单独集中在更小的
PMC 上，以便我们能够以某种方式向提交者提供必要的监督和帮助。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;那么 XML Beans 项目是 Apache XML 方面的一部分？ &lt;/strong&gt;
&lt;p&gt;当 XML Beans 进入 Incubator 时，最初被设想为 XML 的一部分，但是这个小组非常强大——不管是来自 BEA 的致力于这个项目的开发人员，还是其他参与进来的人。最后， &lt;strong&gt;XML Beans &lt;/strong&gt;小
组成为一个庞大的、管理良好的小组。小组成员的工作做得很好，而我们想避免向 XML PMC
这个大的庇护所借助更多的庇护。那时，我们实际上已经作出决定：好吧，既然它们不会离开 Incubator 而转入 XML ，那么我们将为 XML
Beans 项目创建一个新的 PMC 。这就是我们所做的，我想那是在 6 月或 7 月。 
&lt;p&gt;&lt;strong&gt;  &lt;/strong&gt;
&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;无论何时谈到开放源码，人们总要谈论关于许可证发放的问题，而且一些人喜欢为此争论， Apache 模型背后的许可证发放原则是什么？ &lt;/strong&gt;
&lt;p&gt;几个月前，我们 ASF 给 IETF （ Internet Engineering Task Force ，互联网标准化组织）
写了一封公开信，以说明我们不同意 sender ID
（微软的反垃圾邮件规范）的一些内容，我们不喜欢带有专利障碍的标准，那样实际上会导致标准中要带着专利权发布的那一部分停止运转；所以现在人们仍然可以
免费实现这些东西，而不受专利阻碍。这样做未必能推进反垃圾邮件事业，但的确有助于我们避免了一种非常棘手的情况，而 ASF
实际上能够做到这一点。它甚至可以应用到更大的范围中。这不仅关系到我们正在开发的代码，还关系到我们在更广阔的开源码领域能够做的事情。 
&lt;p&gt;&lt;strong&gt;  &lt;/strong&gt;
&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;ASF 社区是如何与 ASF 配合的？ &lt;/strong&gt;
&lt;p&gt;社区实际上是 ASF 很重要的一部分。建立社区的主要原因是社区的连续性。 Apache Web Server 是 ASF
的第一个项目，大约是从 95 年或 96 年开始的。今天从事这个项目的人员已经不再是最初从事这个项目的那 8
个人了，而是一组新的开发人员。最初的 8 个人已经离开去做其他的事了。他们当中只有一个人还在为 Apache
实际做些工作。但是因为我们有一个关于 Apache Web Server 的开发社区，所以 Web Server 仍在继续。 Web
Server
被深入开发，如果有安全问题，那么这些问题会得到处理和解决，我们在包内添加了更多的功能，正是社区使这成为可能。如果它只是几个人或几个人组成的小组的
事情，那么在这些人离开去做其他事情时，这个项目也就废弃了，没有人对其进行维护，也没有人进行新的发布。因此我们想以长远的眼光来看问题。我是说，
ASF
把目光放到几十年内，如何维护一个项目长达几十年的时间呢？您需要一个社区来实现维护，这个社区也要不断地发展和进化。这样，就会有各种关于构建社区的
Apache 方法，而这正是 Incubator 所做的，也是我们喜欢的做事方式。上述就是我们所发现的、从长远角度来看真正起作用的方法。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;随着不断地添加越来越多的项目，你们将如何处理这种增长？ &lt;/strong&gt;
&lt;p&gt;这是一个有趣的问题。实际上我们还没想到该怎么做。我们一直在把一些项目从庇护伞移动到它们自己的顶级项目的 PMC
中，而这给理事会的工作带来了更多的困难，因为现在有更多的报告要处理和评审，并其要确保一切运转良好。能力有限，我们还没有想到这个问题，但是在某种程
度上，我们将不得不改变监督的方式。从社区方面来看，我们还算顺利，每个项目都有了自己的社区，并且每个社区都在做自己的事情。与出现的问题有关系的是监
督的理念，因此我认为，可能要建立一个中级机构来处理其他一些报告，然后由理事会监督这个中级机构，但我还不是很确定是否应该这样做。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;看起来 Incubator 是要使促进婴儿成长的一个工具，那你们如何处理项目的终结？ &lt;/strong&gt;
&lt;p&gt;很困难。因为每个项目在社区都有一定的基础，所以您要与一些现实生活中的人通话：呃，我们需要结束这个项目，但又要确保尊重这些已经在这个项目上做
了很多工作的人，那么应该怎么样做才是正确的呢。我的意思是说，这些人都是作为志愿者加入的，要尊重他们的劳动成果。我们最近确实关闭了 Apache
Avalon ，因为开发人员都已经离开去做其他项目了，而且很多人想向不同的方向开发，所以 Avalon
没有一个可采用的方向，这致使社区分裂，一些人转到其他项目上去了。所以， Avalon
本身没有得到适当的注意，没有得到它所需要的关照和反馈。最后，社区自己的人站出来说该社区已经不起作用了，还是让我们离开并关掉社区吧。接着，其他项目
所需的一些代码被人拿走了，但是还有很多代码在那里，我们将这些代码封存起来，放入我们的归档站点，然后关闭邮件列表，等等。我不想说这让人感觉有点悲
伤，但是一些人确实在这上面花费了几年的时间，没想到它就关闭了。我想说这种事我们真不知道怎么做好，因为这些人使我们觉得关闭社区很困难，所以对此我们
没有什么好的经验或好的规则。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;如果您是一名开发人员，那么您如何与基金会取得联系呢？ &lt;/strong&gt;
&lt;p&gt;开发人员通常是对其中的一个项目感兴趣，他们基于这一点加入邮件列表，谈论他们试图解决的问题，这些问题可能是他们试图使用该软件解决的一些问题，
以及关于它的不正常的现象。这时，他们开始成为社区的一部分。他们与其他开发人员相互交流，然后，当他们想开始进行一些更改时，他们将向邮件列表发送补
丁，以便在源控制中应用和检查这些补丁。所以，一段时间之后，他们不断地发送补丁，不断地参与项目开发。而至少以我的经验来看，如果补丁非常好用，而且开
发人员无疑知道这个项目在做什么，同时，总是检查他们的补丁很麻烦，那么我们应该赋予这些开发人员提交者的资格。这就像是说：好吧，已经检查了您的补丁，
也知道您在做什么，所以您可以参与进来，共同完成我们的长期目标。所以，此时，这些开发人员获得了该项目的提交者资格。一些人开始真正对 ASF
本身感兴趣了，而不仅仅是对一个项目感兴趣。他们可能想要帮助基础架构小组实际运行服务器或邮件列表等。当这些人开始真正扩展到其他项目，并真正关心起
ASF 本身时，也许只是关心它的公共关系或诸如此类的东西，另一名会员将会提名这个人，使其成为一名 ASF
会员。所以，成为会员是通过提名实现的，比如说：好吧，我确实认为这个人做得很好，他理解 Apache ，关心 ASF
，让他成为一名会员吧。其实，有点像是让他步入一个代表会员资格的范围。大部分会员所做的最重要的事情就是选出理事会。这有点不很明确，时不时地我们就会
谈论起什么是 ASF
会员，他们有什么权力。这个问题涉及到提名理事会，而理事会实质上是代表全体会员的。所以理事会应该采取一些特殊的举措，比如创建一些东西，把许可证设为
官方许可，决定如何对我们的代码使用版权，等等。可以这么说，理事会实质上是执行部门，但理事会代表的是全体会员。所以，对他们来说，最重要的大概是会员
的心声。会员们想让 Apache 向哪个方向发展？它是一家什么样的组织？会员们想参与哪些事情？去年，当我们启动 Geronimo
时，会员中曾有过激烈的讨论。您想进入 J2EE
领域吗？因为这个领域有很多杰出人士和许多大公司，而我们不想与他们竞争，但是这次，我们这样做了。我们想要的是一个可免费获得的、获得很好认可的
J2EE 服务器，所以我们启动了 Geronimo 项目，但这是在会员中经过激烈讨论后的结果。所以，会员也会拥有更容易地访问关于 ASF
的信息的访问权，比如：我们在做什么？涉及到哪些方面？如何设置版权信息？这些讨论大多数都是在 ASF
内部进行，并不公开。不是因为我们想保密，而是因为外面有很多有不同意见的人，我们该如何说才能使它听起来不那么糟糕呢——有如此多不同的观点。
ASF 会员可以访问所有的邮件列表、项目管理委员会，等等。如果参与社区，那么您就可以成为 PMC 的一员。但是，比方说，如果我已经注册进入
Jakarta 和 Avalon PMC 邮件列表，那么实质上我已经和这些小组在一起携手解决他们所遇到的一些问题了。即使我不是 Java
开发人员，不属于这两个 PMC
中的任一个，但我可以作为一名会员，作为一名感兴趣的会员来协助他们。会员实际上有更开阔的视野，他们可以参与所有社区。那么有些人又要问自己了：我真的
想要成为会员吗？我只想能为这个我感兴趣的项目做些事情，但是作为 ASF 的会员，实际上您可以做的更多。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;您提到了理事会，理事会是如何做出决策的？ &lt;/strong&gt;
&lt;p&gt;理事会的会员每月见一次面，我们还要进行一次电话会议。在 Apache 会议上，我们实际上能够面对面地会谈，这很好。所以，每次
Apache
会议上，我们都可以面对面地会谈，否则的话，就要召开电话会议了。作为主席，我会为每次会议建立备忘录；对于官方报告，我们有一个要遵循的特定格式，然后
我们还要审阅每个 PMC 的状态报告。我们可能采用一些建议，建立一个 PMC
；也可能接受一个特定的许可证协议，将它作为官方标准协议，等等。之后，还有很多不同的讨论项目。几天前，在最近的理事会会议上，我们讨论了以下事项：我
们想要让会议如何开展？我们想要什么样的会议？我们想继续召开专业会议吗？我们是想在大学里召开一次小型简便会议吗？ Perl 和 Python
委员会已经召开了几次非常好的小型会议，您只要交 50
美元就可以进入会场。我们已经论了使诸如此类的事情如何发展，还讨论了想要如何管理一些合法发行物。 ASF
雇用了律师，而且还有其他一些法律顾问。一般来说，决策制定模式大致如此：加入邮件列表，参与理事会邮件列表上的讨论，然后是实际的理事会会议。理事会邮
件列表对所有会员都有效，所以有很多会员都参与到这些讨论中来。这有助于了解 ASF
的全体会员想要向哪个特定方向发展。然后，我们将采取特定的行动，在每月的理事会会议上找到解决方案。 
&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;您如何看待 ASF 的未来？ &lt;/strong&gt;
&lt;p&gt;内容会越来越多。我们不断地得到新项目，不断进入新的领域。 5
年前，我们是否预见到会有一个反垃圾邮件项目呢，我认为没有。那时，我们正把注意力放在服务器上： Web 服务器和 Jakarta Tomcat
服务器。我认为我们将要做的是找到新的发展方向。现在，我们已经有了一个关系数据库，即 Apache Derby 数据库。同时，我们还有处理各种
XML
的工具、有了管理日志的工具、有了应用服务器、有了各种不同的有趣的东西，我认为我们会看到一些新领域的还将继续扩大。随着人们的不断参与，想在他们自己
的项目上创建 ASF 模型，并且想要获得 Apache 的名号，我们将看到人们带着他们的工具、有趣的项目和诸如此类的东西参与到这个领域中来。 

&lt;p&gt;&lt;strong&gt;&lt;a&gt;&lt;/a&gt;您认为像 BEA 这样的供应商成为这个过程的一部分是否重要？ &lt;/strong&gt;
当然了， BEA 已经做出了一些重要贡献。 XML Beans 和蜂巢项目是开源开发人员真正需要的项目。对 BEA 来说，这是他们为
Apache 做出的奉献，但随后，我们又反过来将它提供给开源世界，这一点非常重要。 BEA
捐献的不止是代码，他们还让其开发人员为这些代码工作。就公司而言， BEA
为我们提供的帮助是一种非常好的赞助方式。任何公司都可以写一张支票并把它交给我们——我们是一个公益机构，但是我们需要获得帮助来实现我们试图实现的东
西，从而创建对人们有用的有趣项目。来自 BEA
这样的公司的参与非常重要，而这也是我们之所以把许可模式设定为现在这样的一个原因：我们想看到这种参与，想让公司都参与进来。有些许可模式会使公司避
开，但我们的模式非常开放，很有吸引力，我们允许公司在 ASF
中直接参与。公司可以以多种方式参与：利用代码参与、利用开发人员参与、协助公共关系、与媒体对话，等等。我们已经有了法律上的帮助。 BEA
实际上帮助我们审查了一些协议，肃清了许多法律问题，以确保能够保护我们的提交者。这种系统非常非常好。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e6%8a%80%e6%9c%af%e8%ae%bf%e8%b0%88%ef%bc%9a+Apache+%e8%bd%af%e4%bb%b6%e5%9f%ba%e9%87%91%e4%bc%9a%e8%83%8c%e5%90%8e&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!297.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!297.entry</guid><pubDate>Tue, 04 Apr 2006 07:45:58 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!297/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!297.entry#comment</wfw:comment><dcterms:modified>2006-04-04T07:45:58Z</dcterms:modified></item><item><title>2006 SourceForge.net Community Choice Awards</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!285.entry</link><description>&lt;a href="http://sourceforge.net/awards/cca/"&gt;http://sourceforge.net/awards/cca/&lt;/a&gt;&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+2006+SourceForge.net+Community+Choice+Awards&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!285.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!285.entry</guid><pubDate>Sat, 01 Apr 2006 14:22:56 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!285/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!285.entry#comment</wfw:comment><dcterms:modified>2006-04-01T14:22:56Z</dcterms:modified></item><item><title>Blog重新分类</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!284.entry</link><description>&lt;div&gt;Blog_en:&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a title="Jeffery Zeldman，全球知名的網頁設計師" href="http://www.zeldman.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Zeldman&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; Jeffery Zeldman，全球知名的網頁設計師&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a title="Douglas Bowman，設計Blogger、Wired News等知名網站" href="http://stopdesign.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Stopdesign&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;  Douglas Bowman，設計Blogger、Wired News等知名網站&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a title="Dave Shea，CSS Zen Garden計畫創始人" href="http://www.mezzoblue.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;mezzoblue&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;  Dave Shea，CSS Zen Garden計畫創始人&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a title="Eric Meyer，CSS 大師" href="http://www.meyerweb.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;meyerweb&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;  Eric Meyer，CSS 大師&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.alistapart.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Alist Apart&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;  For people who make websites.&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a title="專業網站設計雜誌" href="http://www.digital-web.com/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;Digital-Web Magazine&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 專業網站設計雜誌&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a title="網頁標準捍衛軍" href="http://www.webstandards.org/"&gt;&lt;u&gt;&lt;font color="#0000ff"&gt;The Web Standards Project&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;  網頁標準捍衛軍&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+Blog%e9%87%8d%e6%96%b0%e5%88%86%e7%b1%bb&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!284.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!284.entry</guid><pubDate>Fri, 31 Mar 2006 09:20:50 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!284/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!284.entry#comment</wfw:comment><dcterms:modified>2006-03-31T09:23:59Z</dcterms:modified></item><item><title>金山词霸2003在XP下的安装经历</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!283.entry</link><description>没有想到安装个金山词霸居然会耗费这么大的精力，刚开始安装好后，取词不问题，时常会导致Explore崩溃，提示“&lt;span style="color:rgb(255, 0, 0)"&gt;指令引用的0x77d1ebce内存，该内存不能为writtern&lt;/span&gt;”，狂查Google和Kingsoft的官网，下载了SP3安装，问题一切解决。暗自得意。。。第二天开机，彻底崩溃，连提示都没有了，Explore.exe进程直接重启，不能关闭。删除重新安装数次未果，查Google，苦于没有合适的关键字。。。后找到2006版，在安装过程中，给出了一个提示，被我捕获。2006安装完毕自启动后，提示“&lt;span style="color:rgb(255, 0, 0)"&gt;取词模组无效&lt;/span&gt;”。。。会不会之前的2003也是这个问题呢，继续Google+Baidu，终于发现问题所在，在&lt;a href="http://www.kingsoft.com/news/faq/2005/03/29/12224.shtml"&gt;http://www.kingsoft.com/news/faq/2005/03/29/12224.shtml&lt;/a&gt; 地址下载xdictgrb.dll文件，大小约为112K，替换原先的xdictgrb.dll文件，大小约为55K，退出再进入词霸，发现取词功能一切正常。哇哈哈哈哈。。。。&lt;br&gt;&lt;br&gt;本人系统Windows XP2 + AMD Sempron 2500+  + 512M内存，据说AMD处理器的及其在安装金山词霸过程中确可能产生比较多的问题，和数据执行保护（DEP）有关，在Intel系统中，可能问题会少一切。&lt;br&gt;&lt;br&gt;具体文章参照如下：&lt;br&gt;&lt;br&gt;&lt;a href="http://post.baidu.com/f?kz=11888115"&gt;http://post.baidu.com/f?kz=11888115&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://cache.baidu.com/c?word=%CE%DE%B7%A8;%B3%F5%CA%BC;%BB%AF;%C8%A1%B4%CA;%C4%A3%BF%E9&amp;amp;url=http://blog.bioon.com/user1/1605/archives/2005/24496.shtml&amp;amp;b=0&amp;amp;a=72&amp;amp;user=baidu"&gt;http://cache.baidu.com/c?word=%CE%DE%B7%A8%3B%B3%F5%CA%BC%3B%BB%AF%3B%C8%A1%B4%CA%3B%C4%A3%BF%E9&amp;amp;url=http%3A//blog%2Ebioon%2Ecom/user1/1605/archives/2005/24496%2Eshtml&amp;amp;b=0&amp;amp;a=72&amp;amp;user=baidu&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e9%87%91%e5%b1%b1%e8%af%8d%e9%9c%b82003%e5%9c%a8XP%e4%b8%8b%e7%9a%84%e5%ae%89%e8%a3%85%e7%bb%8f%e5%8e%86&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!283.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!283.entry</guid><pubDate>Fri, 31 Mar 2006 08:44:33 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!283/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!283.entry#comment</wfw:comment><dcterms:modified>2006-03-31T08:46:52Z</dcterms:modified></item><item><title>介绍LDAP</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!280.entry</link><description>原文：&lt;a href="http://ldapman.org/articles/intro_to_ldap.html" title="http://ldapman.org/articles/intro_to_ldap.html"&gt;http://ldapman.org/articles/intro_to_ldap.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;原文作者：Michael Donnelly &lt;br&gt;&lt;br&gt;翻译：Brimmer&lt;br&gt;&lt;br&gt;如
果你在计算机行业工作，那么对LDAP可能早有耳闻了。想深入地了解LDAP吗？那么可以好好地读一下这篇文章。这篇介绍性的文章是一系列介绍如何在企业
中设计、实现和集成LDAP环境的文章的头一篇。主要是先让你熟悉一下LDAP的基本概念，那些比较困难的细节问题将放到以后讨论。在这篇文章中我们将要
介绍：&lt;br&gt;&lt;br&gt;什么是LDAP?&lt;br&gt;&lt;br&gt;什么时候该用LDAP存储数据？&lt;br&gt;&lt;br&gt;LDAP目录树的结构&lt;br&gt;&lt;br&gt;单独的LDAP记录&lt;br&gt;&lt;br&gt;作为例子的一个单独的数据项&lt;br&gt;&lt;br&gt;LDAP复制&lt;br&gt;&lt;br&gt;安全和访问控制&lt;br&gt;&lt;br&gt;现
在LDAP技术不仅发展得很快而且也是激动人心的。在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的所有的应用程序从LDAP目录中获取信
息。LDAP目录中可以存储各种类型的数据：电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表，等等。通过把LDAP目录作为系统集成中
的一个重要环节，可以简化员工在企业内部查询信息的步骤，甚至连主要的数据源都可以放在任何地方。如果Oracle、Sybase、Informix或
Microsoft SQL数据库中已经存储了类似的数据，那么LDAP和这些数据库到底有什么不同呢？是什么让它更具优势？请继续读下去吧！&lt;br&gt;&lt;br&gt;什么是LDAP?&lt;br&gt;LDAP
的英文全称是Lightweight Directory Access
Protocol，一般都简称为LDAP。它是基于X.500标准的，但是简单多了并且可以根据需要定制。与X.500不同，LDAP支持TCP/IP，
这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义，所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。&lt;br&gt;&lt;br&gt;怎么使用LDAP这个术语呢？&lt;br&gt;在
日常交谈中，你可能会听到有些人这么说：“我们要把那些东西存在LDAP中吗？”，或者“从LDAP数据库中取出那些数据！”，又或者“我们怎么把
LDAP和关系型数据库集成在一起？”。严格地说，LDAP根本不是数据库而是用来访问存储在信息目录（也就是LDAP目录）中的信息的协议。更为确切和
正式的说法应该是象这样的：“通过使用LDAP，可以在信息目录的正确位置读取（或存储）数据”。但是，也没有必要吹毛求疵，尽管表达得不够准确，我们也
都知道对方在说什么。&lt;br&gt;&lt;br&gt;LDAP目录是数据库吗？&lt;br&gt;就象Sybase、Oracle、Informix或Microsoft的数据库
管理系统（DBMS）是用于处理查询和更新关系型数据库那样，LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型
的数据库，但是不是关系型数据库。不象被设计成每分钟需要处理成百上千条数据变化的数据库，例如：在电子商务中经常用到的在线交易处理（OLTP）系统，
LDAP主要是优化数据读取的性能。&lt;br&gt;&lt;br&gt;LDAP目录的优势&lt;br&gt;现在该说说LDAP目录到底有些什么优势了。现在LDAP的流行是很多因数共同作用的结果。我在这里说的不过是一些基本的原因，请你注意一下这不过是一小部分原因。&lt;br&gt;&lt;br&gt;可能LDAP最大的优势是：可以在任何计算机平台上，用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。&lt;br&gt;&lt;br&gt;LDAP
协议是跨平台的和标准的协议，因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。实际上，LDAP得到了业界的广泛认可，因为它是
Internet的标准。产商都很愿意在产品中加入对LDAP的支持，因为他们根本不用考虑另一端（客户端或服务端）是怎么样的。LDAP服务器可以是任
何一个开发源代码或商用的LDAP目录服务器（或者还可能是具有LDAP界面的关系型数据库），因为可以用同样的协议、客户端连接软件包和查询命令与
LDAP服务器进行交互。与LDAP不同的是，如果软件产商想在软件产品中集成对DBMS的支持，那么通常都要对每一个数据库服务器单独定制。&lt;br&gt;&lt;br&gt;不象很多商用的关系型数据库，你不必为LDAP的每一个客户端连接或许可协议付费。&lt;br&gt;&lt;br&gt;大多数的LDAP服务器安装起来很简单，也容易维护和优化。&lt;br&gt;&lt;br&gt;LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据，例如：可以把数据“推”到远程的办公室，以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能，数据库产商就会要你支付额外的费用，而且也很难管理。&lt;br&gt;&lt;br&gt;LDAP
允许你根据需要使用ACI（一般都称为ACL或者访问控制列表）控制对数据读和写的权限。例如，设备管理员可以有权改变员工的工作地点和办公室号码，但是
不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完
成的，所以不用担心在客户端的应用程序上是否要进行安全检查。&lt;br&gt;&lt;br&gt;LDAP对于这样存储这样的信息最为有用，也就是数据需要从不同的地点读取，但是不需要经常更新。例如，这些信息存储在LDAP目录中是十分有效的：&lt;br&gt;&lt;br&gt;l        公司员工的电话号码簿和组织结构图&lt;br&gt;&lt;br&gt;l        客户的联系信息&lt;br&gt;&lt;br&gt;l        计算机管理需要的信息，包括NIS映射、email假名，等等&lt;br&gt;&lt;br&gt;l        软件包的配置信息&lt;br&gt;&lt;br&gt;l        公用证书和安全密匙&lt;br&gt;&lt;br&gt;什么时候该用LDAP存储数据？&lt;br&gt;大
多数的LDAP服务器都为读密集型的操作进行专门的优化。因此，当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快
一个数量级。也是因为专门为读的性能进行优化，大多数的LDAP目录服务器并不适合存储需要需要经常改变的数据。例如，用LDAP服务器来存储电话号码是
一个很好的选择，但是它不能作为电子商务站点的数据库服务器。&lt;br&gt;&lt;br&gt;如果下面每一个问题的答案都是“是”，那么把数据存在LDAP中就是一个好主意。&lt;br&gt;&lt;br&gt;l        需要在任何平台上都能读取数据吗？&lt;br&gt;&lt;br&gt;l        每一个单独的记录项是不是每一天都只有很少的改变？&lt;br&gt;&lt;br&gt;l        可以把数据存在平面数据库（flat database）而不是关系型数据库中吗？换句话来说，也就是不管什么范式不范式的，把所有东西都存在一个记录中（差不多只要满足第一范式）。&lt;br&gt;&lt;br&gt;最
后一个问题可能会唬住一些人，其实用平面数据库去存储一些关系型的数据也是很一般的。例如，一条公司员工的记录就可以包含经理的登录名。用LDAP来存储
这类信息是很方便的。一个简单的判断方法：如果可以把保数据存在一张张的卡片里，就可以很容易地把它存在LDAP目录里。&lt;br&gt;&lt;br&gt;LDAP目录树的结构&lt;br&gt;LDAP
目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉，也就很容易掌握LDAP目录树这个概念了。就象DNS的主
机名那样，LDAP目录记录的标识名（Distinguished Name，简称DN）是用来读取单个记录，以及回溯到树的顶部。后面会做详细地介绍。&lt;br&gt;&lt;br&gt;为什么要用层次结构来组织数据呢？原因是多方面的。下面是可能遇到的一些情况：&lt;br&gt;&lt;br&gt;l        如果你想把所有的美国客户的联系信息都“推”到位于到西雅图办公室（负责营销）的LDAP服务器上，但是你不想把公司的资产管理信息“推”到那里。&lt;br&gt;&lt;br&gt;l        你可能想根据目录树的结构给予不同的员工组不同的权限。在下面的例子里，资产管理组对“asset-mgmt”部分有完全的访问权限，但是不能访问其它地方。&lt;br&gt;&lt;br&gt;l        把LDAP存储和复制功能结合起来，可以定制目录树的结构以降低对WAN带宽的要求。位于西雅图的营销办公室需要每分钟更新的美国销售状况的信息，但是欧洲的销售情况就只要每小时更新一次就行了。&lt;br&gt;&lt;br&gt;刨根问底：基准DN&lt;br&gt;LDAP目录树的最顶部就是根，也就是所谓的“基准DN”。基准DN通常使用下面列出的三种格式之一。假定我在名为FooBar的电子商务公司工作，这家公司在Internet上的名字是foobar.com。&lt;br&gt;&lt;br&gt;o=&amp;quot;FooBar, Inc.&amp;quot;, c=US &lt;br&gt;&lt;br&gt;（以X.500格式表示的基准DN）&lt;br&gt;&lt;br&gt;在
这个例子中，o=FooBar, Inc. 表示组织名，在这里就是公司名的同义词。c=US
表示公司的总部在美国。以前，一般都用这种方式来表示基准DN。但是事物总是在不断变化的，现在所有的公司都已经（或计划）上Internet上。随着
Internet的全球化，在基准DN中使用国家代码很容易让人产生混淆。现在，X.500格式发展成下面列出的两种格式。&lt;br&gt;&lt;br&gt;o=foobar.com&lt;br&gt;&lt;br&gt;（用公司的Internet地址表示的基准DN）&lt;br&gt;&lt;br&gt;这种格式很直观，用公司的域名作为基准DN。这也是现在最常用的格式。&lt;br&gt;&lt;br&gt;dc=foobar, dc=com&lt;br&gt;&lt;br&gt;（用DNS域名的不同部分组成的基准DN）&lt;br&gt;&lt;br&gt;就
象上面那一种格式，这种格式也是以DNS域名为基础的，但是上面那种格式不改变域名（也就更易读），而这种格式把域名：foobar.com分成两部分
dc=foobar,
dc=com。在理论上，这种格式可能会更灵活一点，但是对于最终用户来说也更难记忆一点。考虑一下foobar.com这个例子。当
foobar.com和gizmo.com合并之后，可以简单的把“dc=com”当作基准DN。把新的记录放到已经存在的dc=gizmo,
dc=com目录下，这样就简化了很多工作（当然，如果foobar.com和wocket.edu合并，这个方法就不能用了）。如果LDAP服务器是新
安装的，我建议你使用这种格式。再请注意一下，如果你打算使用活动目录（Actrive
Directory），Microsoft已经限制你必须使用这种格式。&lt;br&gt;&lt;br&gt;更上一层楼：在目录树中怎么组织数据&lt;br&gt;在UNIX文件系统中，最顶层是根目录（root）。在根目录的下面有很多的文件和目录。象上面介绍的那样，LDAP目录也是用同样的方法组织起来的。&lt;br&gt;&lt;br&gt;在
根目录下，要把数据从逻辑上区分开。因为历史上（X.500）的原因，大多数LDAP目录用OU从逻辑上把数据分开来。OU表示
“Organization
Unit”，在X.500协议中是用来表示公司内部的机构：销售部、财务部，等等。现在LDAP还保留ou=这样的命名规则，但是扩展了分类的范围，可以
分类为：ou=people, ou=groups,
ou=devices，等等。更低一级的OU有时用来做更细的归类。例如：LDAP目录树（不包括单独的记录）可能会是这样的：&lt;br&gt;&lt;br&gt;    dc=foobar, dc=com &lt;br&gt;&lt;br&gt;        ou=customers &lt;br&gt;&lt;br&gt;            ou=asia &lt;br&gt;&lt;br&gt;            ou=europe &lt;br&gt;&lt;br&gt;            ou=usa &lt;br&gt;&lt;br&gt;        ou=employees &lt;br&gt;&lt;br&gt;        ou=rooms &lt;br&gt;&lt;br&gt;        ou=groups &lt;br&gt;&lt;br&gt;        ou=assets-mgmt &lt;br&gt;&lt;br&gt;        ou=nisgroups &lt;br&gt;&lt;br&gt;        ou=recipes&lt;br&gt;&lt;br&gt;单独的LDAP记录&lt;br&gt;DN是LDAP记录项的名字&lt;br&gt;在LDAP目录中的所有记录项都有一个唯一的“Distinguished Name”，也就是DN。每一个LDAP记录项的DN是由两个部分组成的：相对DN（RDN）和记录在LDAP目录中的位置。&lt;br&gt;&lt;br&gt;RDN
是DN中与目录树的结构无关的部分。在LDAP目录中存储的记录项都要有一个名字，这个名字通常存在cn（Common
Name）这个属性里。因为几乎所有的东西都有一个名字，在LDAP中存储的对象都用它们的cn值作为RDN的基础。如果我把最喜欢的吃燕麦粥食谱存为一
个记录，我就会用cn=Oatmeal Deluxe作为记录项的RDN。&lt;br&gt;&lt;br&gt;l         我的LDAP目录的基准DN是dc=foobar,dc=com&lt;br&gt;&lt;br&gt;l         我把自己的食谱作为LDAP的记录项存在ou=recipes&lt;br&gt;&lt;br&gt;l        我的LDAP记录项的RDN设为cn=Oatmeal Deluxe&lt;br&gt;&lt;br&gt;上面这些构成了燕麦粥食谱的LDAP记录的完整DN。记住，DN的读法和DNS主机名类似。下面就是完整的DN：&lt;br&gt;&lt;br&gt;cn=Oatmeal Deluxe,ou=recipes,dc=foobar,dc=com&lt;br&gt;&lt;br&gt;举一个实际的例子来说明DN&lt;br&gt;现在为公司的员工设置一个DN。可以用基于cn或uid（User ID），作为典型的用户帐号。例如，FooBar的员工Fran Smith（登录名：fsmith）的DN可以为下面两种格式：&lt;br&gt;&lt;br&gt;uid=fsmith,ou=employees,dc=foobar,dc=com&lt;br&gt;&lt;br&gt;（基于登录名）&lt;br&gt;&lt;br&gt;LDAP
（以及X.500）用uid表示“User
ID”，不要把它和UNIX的uid号混淆了。大多数公司都会给每一个员工唯一的登录名，因此用这个办法可以很好地保存员工的信息。你不用担心以后还会有
一个叫Fran Smith的加入公司，如果Fran改变了她的名字（结婚？离婚？或宗教原因？），也用不着改变LDAP记录项的DN。&lt;br&gt;&lt;br&gt;cn=Fran Smith,ou=employees,dc=foobar,dc=com&lt;br&gt;&lt;br&gt;（基于姓名）&lt;br&gt;&lt;br&gt;可以看到这种格式使用了Common Name（CN）。可以把Common Name当成一个人的全名。这种格式有一个很明显的缺点就是：如果名字改变了，LDAP的记录就要从一个DN转移到另一个DN。但是，我们应该尽可能地避免改变一个记录项的DN。&lt;br&gt;&lt;br&gt;定制目录的对象类型&lt;br&gt;你可以用LDAP存储各种类型的数据对象，只要这些对象可以用属性来表示，下面这些是可以在LDAP中存储的一些信息：&lt;br&gt;&lt;br&gt;l        员工信息：员工的姓名、登录名、口令、员工号、他的经理的登录名，邮件服务器，等等。&lt;br&gt;&lt;br&gt;l        物品跟踪信息：计算机名、IP地址、标签、型号、所在位置，等等。&lt;br&gt;&lt;br&gt;l        客户联系列表：客户的公司名、主要联系人的电话、传真和电子邮件，等等。&lt;br&gt;&lt;br&gt;l        会议厅信息：会议厅的名字、位置、可以坐多少人、电话号码、是否有投影机。&lt;br&gt;&lt;br&gt;l        食谱信息：菜的名字、配料、烹调方法以及准备方法。&lt;br&gt;&lt;br&gt;因
为LDAP目录可以定制成存储任何文本或二进制数据，到底存什么要由你自己决定。LDAP目录用对象类型（object
classes）的概念来定义运行哪一类的对象使用什么属性。在几乎所有的LDAP服务器中，你都要根据自己的需要扩展基本的LDAP目录的功能，创建新
的对象类型或者扩展现存的对象类型。&lt;br&gt;&lt;br&gt;LDAP目录以一系列“属性对”的形式来存储记录项，每一个记录项包括属性类型和属性值（这与关系型数据库用行和列来存取数据有根本的不同）。下面是我存在LDAP目录中的一部分食谱记录：&lt;br&gt;&lt;br&gt;  dn: cn=Oatmeal Deluxe, ou=recipes, dc=foobar, dc=com &lt;br&gt;&lt;br&gt;  cn: Instant Oatmeal Deluxe &lt;br&gt;&lt;br&gt;  recipeCuisine: breakfast &lt;br&gt;&lt;br&gt;  recipeIngredient: 1 packet instant oatmeal &lt;br&gt;&lt;br&gt;  recipeIngredient: 1 cup water &lt;br&gt;&lt;br&gt;  recipeIngredient: 1 pinch salt &lt;br&gt;&lt;br&gt;  recipeIngredient: 1 tsp brown sugar &lt;br&gt;&lt;br&gt;  recipeIngredient: 1/4 apple, any type&lt;br&gt;&lt;br&gt;请注意上面每一种配料都作为属性recipeIngredient值。LDAP目录被设计成象上面那样为一个属性保存多个值的，而不是在每一个属性的后面用逗号把一系列值分开。&lt;br&gt;&lt;br&gt;因为用这样的方式存储数据，所以数据库就有很大的灵活性，不必为加入一些新的数据就重新创建表和索引。更重要的是，LDAP目录不必花费内存或硬盘空间处理“空”域，也就是说，实际上不使用可选择的域也不会花费你任何资源。&lt;br&gt;&lt;br&gt;作为例子的一个单独的数据项&lt;br&gt;让我们看看下面这个例子。我们用Foobar, Inc.的员工Fran Smith的LDAP记录。这个记录项的格式是LDIF，用来导入和导出LDAP目录的记录项。&lt;br&gt;&lt;br&gt;  dn: uid=fsmith, ou=employees, dc=foobar, dc=com&lt;br&gt;&lt;br&gt;  objectclass: person&lt;br&gt;&lt;br&gt;  objectclass: organizationalPerson&lt;br&gt;&lt;br&gt;  objectclass: inetOrgPerson&lt;br&gt;&lt;br&gt;  objectclass: foobarPerson&lt;br&gt;&lt;br&gt;  uid: fsmith&lt;br&gt;&lt;br&gt;  givenname: Fran&lt;br&gt;&lt;br&gt;  sn: Smith&lt;br&gt;&lt;br&gt;  cn: Fran Smith&lt;br&gt;&lt;br&gt;  cn: Frances Smith&lt;br&gt;&lt;br&gt;  telephonenumber: 510-555-1234&lt;br&gt;&lt;br&gt;  roomnumber: 122G&lt;br&gt;&lt;br&gt;  o: Foobar, Inc.&lt;br&gt;&lt;br&gt;  mailRoutingAddress: fsmith@foobar.com&lt;br&gt;&lt;br&gt;  mailhost: mail.foobar.com&lt;br&gt;&lt;br&gt;  userpassword: {crypt}3x1231v76T89N&lt;br&gt;&lt;br&gt;  uidnumber: 1234&lt;br&gt;&lt;br&gt;  gidnumber: 1200&lt;br&gt;&lt;br&gt;  homedirectory: /home/fsmith&lt;br&gt;&lt;br&gt;  loginshell: /usr/local/bin/bash&lt;br&gt;&lt;br&gt;属性的值在保存的时候是保留大小写的，但是在默认情况下搜索的时候是不区分大小写的。某些特殊的属性（例如，password）在搜索的时候需要区分大小写。&lt;br&gt;&lt;br&gt;让我们一点一点地分析上面的记录项。&lt;br&gt;&lt;br&gt;dn: uid=fsmith, ou=employees, dc=foobar, dc=com&lt;br&gt;&lt;br&gt;这是Fran的LDAP记录项的完整DN，包括在目录树中的完整路径。LDAP（和X.500）使用uid（User ID），不要把它和UNIX的uid号混淆了。&lt;br&gt;&lt;br&gt;  objectclass: person &lt;br&gt;&lt;br&gt;  objectclass: organizationalPerson &lt;br&gt;&lt;br&gt;  objectclass: inetOrgPerson &lt;br&gt;&lt;br&gt;  objectclass: foobarPerson&lt;br&gt;&lt;br&gt;可
以为任何一个对象根据需要分配多个对象类型。person对象类型要求cn（common
name）和sn（surname）这两个域不能为空。persion对象类型允许有其它的可选域，包括givenname、
telephonenumber，等等。organizational
Person给person加入更多的可选域，inetOrgPerson又加入更多的可选域（包括电子邮件信息）。最后，foobarPerson是为
Foobar定制的对象类型，加入了很多定制的属性。&lt;br&gt;&lt;br&gt;  uid: fsmith &lt;br&gt;&lt;br&gt;  givenname: Fran &lt;br&gt;&lt;br&gt;  sn: Smith &lt;br&gt;&lt;br&gt;  cn: Fran Smith &lt;br&gt;&lt;br&gt;  cn: Frances Smith &lt;br&gt;&lt;br&gt;  telephonenumber: 510-555-1234 &lt;br&gt;&lt;br&gt;  roomnumber: 122G &lt;br&gt;&lt;br&gt;  o: Foobar, Inc.&lt;br&gt;&lt;br&gt;以前说过了，uid表示User ID。当看到uid的时候，就在脑袋里想一想“login”。&lt;br&gt;&lt;br&gt;请
注意CN有多个值。就象上面介绍的，LDAP允许某些属性有多个值。为什么允许有多个值呢？假定你在用公司的LDAP服务器查找Fran的电话号码。你可
能只知道她的名字叫Fran，但是对人力资源处的人来说她的正式名字叫做Frances。因为保存了她的两个名字，所以用任何一个名字检索都可以找到
Fran的电话号码、电子邮件和办公房间号，等等。&lt;br&gt;&lt;br&gt;  mailRoutingAddress: fsmith@foobar.com &lt;br&gt;&lt;br&gt;  mailhost: mail.foobar.com&lt;br&gt;&lt;br&gt;就象现在大多数的公司都上网了，Foobar用Sendmail发送邮件和处理外部邮件路由信息。Foobar把所有用户的邮件信息都存在LDAP中。最新版本的Sendmail支持这项功能。&lt;br&gt;&lt;br&gt;  Userpassword: {crypt}3x1231v76T89N &lt;br&gt;&lt;br&gt;  uidnumber: 1234 &lt;br&gt;&lt;br&gt;  gidnumber: 1200 &lt;br&gt;&lt;br&gt;  gecos: Frances Smith &lt;br&gt;&lt;br&gt;  homedirectory: /home/fsmith &lt;br&gt;&lt;br&gt;  loginshell: /usr/local/bin/bash&lt;br&gt;&lt;br&gt;注
意，Foobar的系统管理员把所有用户的口令映射信息也都存在LDAP中。FoobarPerson类型的对象具有这种能力。再注意一下，用户口令是用
UNIX的口令加密格式存储的。UNIX的uid在这里为uidnumber。提醒你一下，关于如何在LDAP中保存NIS信息，有完整的一份RFC。在
以后的文章中我会谈一谈NIS的集成。&lt;br&gt;&lt;br&gt;LDAP复制&lt;br&gt;LDAP服务器可以使用基于“推”或者“拉”的技术，用简单或基于安全证书的安全验证，复制一部分或者所有的数据。&lt;br&gt;&lt;br&gt;例
如，Foobar有一个“公用的”LDAP服务器，地址为ldap.foobar.com，端口为389。Netscape
Communicator的电子邮件查询功能、UNIX的“ph”命令要用到这个服务器，用户也可以在任何地方查询这个服务器上的员工和客户联系信息。公
司的主LDAP服务器运行在相同的计算机上，不过端口号是1389。&lt;br&gt;&lt;br&gt;你可能即不想让员工查询资产管理或食谱的信息，又不想让信息技术人员
看到整个公司的LDAP目录。为了解决这个问题，Foobar有选择地把子目录树从主LDAP服务器复制到“公用”LDAP服务器上，不复制需要隐藏的信
息。为了保持数据始终是最新的，主目录服务器被设置成即时“推”同步。这些种方法主要是为了方便，而不是安全，因为如果有权限的用户想查询所有的数据，可
以用另一个LDAP端口。&lt;br&gt;&lt;br&gt;假定Foobar通过从奥克兰到欧洲的低带宽数据的连接用LDAP管理客户联系信息。可以建立从ldap.foobar.com:1389到munich-ldap.foobar.com:389的数据复制，象下面这样：&lt;br&gt;&lt;br&gt;  periodic pull: ou=asia,ou=customers,o=sendmail.com&lt;br&gt;&lt;br&gt;  periodic pull: ou=us,ou=customers,o=sendmail.com&lt;br&gt;&lt;br&gt;  immediate push: ou=europe,ou=customers,o=sendmail.com&lt;br&gt;&lt;br&gt;“拉”连接每15分钟同步一次，在上面假定的情况下足够了。“推”连接保证任何欧洲的联系信息发生了变化就立即被“推”到Munich。&lt;br&gt;&lt;br&gt;用
上面的复制模式，用户为了访问数据需要连接到哪一台服务器呢？在Munich的用户可以简单地连接到本地服务器。如果他们改变了数据，本地的LDAP服务
器就会把这些变化传到主LDAP服务器。然后，主LDAP服务器把这些变化“推”回本地的“公用”LDAP服务器保持数据的同步。这对本地的用户有很大的
好处，因为所有的查询（大多数是读）都在本地的服务器上进行，速度非常快。当需要改变信息的时候，最终用户不需要重新配置客户端的软件，因为LDAP目录
服务器为他们完成了所有的数据交换工作。&lt;br&gt;&lt;br&gt;安全和访问控制&lt;br&gt;LDAP提供很复杂的不同层次的访问控制或者ACI。因这些访问可以在服务器端控制，这比用客户端的软件保证数据的安全可安全多了。&lt;br&gt;&lt;br&gt;用LDAP的ACI，可以完成：&lt;br&gt;&lt;br&gt;l        给予用户改变他们自己的电话号码和家庭地址的权限，但是限制他们对其它数据（如，职务名称，经理的登录名，等等）只有“只读”权限。&lt;br&gt;&lt;br&gt;l        给予“HR-admins”组中的所有人权限以改变下面这些用户的信息：经理、工作名称、员工号、部门名称和部门号。但是对其它域没有写权限。&lt;br&gt;&lt;br&gt;l        禁止任何人查询LDAP服务器上的用户口令，但是可以允许用户改变他或她自己的口令。&lt;br&gt;&lt;br&gt;l        给予经理访问他们上级的家庭电话的只读权限，但是禁止其他人有这个权限。&lt;br&gt;&lt;br&gt;l        给予“host-admins”组中的任何人创建、删除和编辑所有保存在LDAP服务器中的与计算机主机有关的信息&lt;br&gt;&lt;br&gt;l        通过Web，允许“foobar-sales”组中的成员有选择地给予或禁止他们自己读取一部分客户联系数据的读权限。这将允许他们把客户联系信息下载到本地的笔记本电脑或个人数字助理（PDA）上。（如果销售人员的软件都支持LDAP，这将非常有用）&lt;br&gt;&lt;br&gt;l
通过Web，允许组的所有者删除或添加他们拥有的组的成员。例如：可以允许销售经理给予或禁止销售人员改变Web页的权限。也可以允许邮件假名（mail
aliase）的所有者不经过IT技术人员就直接从邮件假名中删除或添加用户。“公用”的邮件列表应该允许用户从邮件假名中添加或删除自己（但是只能是自
己）。也可以对IP地址或主机名加以限制。例如，某些域只允许用户IP地址以192.168.200.*开头的有读的权限，或者用户反向查找DNS得到的
主机名必须为*.foobar.com。&lt;br&gt;&lt;br&gt;这不过是让你了解一下可以对LDAP目录进行怎样的访问控制，实际上真正实现起来需要做的工作比这多得多。在以后的文章中我会详细地讨论访问控制。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e4%bb%8b%e7%bb%8dLDAP&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!280.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!280.entry</guid><pubDate>Thu, 30 Mar 2006 03:48:41 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!280/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!280.entry#comment</wfw:comment><dcterms:modified>2006-03-30T03:48:41Z</dcterms:modified></item><item><title>代码站</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!244.entry</link><description>&lt;div&gt;&lt;a href="http://www.koders.com/"&gt;http://www.koders.com/&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e4%bb%a3%e7%a0%81%e7%ab%99&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!244.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!244.entry</guid><pubDate>Mon, 06 Mar 2006 03:26:05 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!244/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!244.entry#comment</wfw:comment><dcterms:modified>2006-03-06T03:26:05Z</dcterms:modified></item><item><title>[CSS] 一个CSS学习的网站</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!226.entry</link><description>&lt;div&gt;&lt;a href="http://www.cssbasics.com/"&gt;&lt;font size=5&gt;&lt;strong&gt;http://www.cssbasics.com/&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%5bCSS%5d+%e4%b8%80%e4%b8%aaCSS%e5%ad%a6%e4%b9%a0%e7%9a%84%e7%bd%91%e7%ab%99&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!226.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!226.entry</guid><pubDate>Tue, 14 Feb 2006 01:16:00 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!226/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!226.entry#comment</wfw:comment><dcterms:modified>2006-02-14T01:16:00Z</dcterms:modified></item><item><title>解决WMP安装问题</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!222.entry</link><description>&lt;div&gt;&lt;font size=4&gt;XP系统SP2原带的WMP9，升级到10后，发现收音机没有了(后来才知道,其实在的只是自己没发现而已)。于是卸载10，卸载后安装9告知已有高版本，不能安装，怀疑是删除时没有删干净，于是下载XPLite删除WMP，完成后发现不管安装9还是10，都提示“此版本的 Windows Media 技术与本版本的 Windows 不兼容。详细信息,请参阅 Microsoft 网站上的信息。” 安装失败！&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;&lt;font size=4&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font size=4&gt;在查了多方资料以后，终于找到解决办法：&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;font color="#ff0000" size=5&gt;&lt;strong&gt; 当出现『windousmediatechnologies &lt;br&gt;此版本的windowsmedia技术与本版本的windows不兼容』时(不要关闭此对话框)， &lt;br&gt;调出任务管理器，关闭ahui.exe然后，ok&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%e8%a7%a3%e5%86%b3WMP%e5%ae%89%e8%a3%85%e9%97%ae%e9%a2%98&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!222.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!222.entry</guid><pubDate>Fri, 10 Feb 2006 06:34:10 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!222/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!222.entry#comment</wfw:comment><dcterms:modified>2006-02-10T06:34:10Z</dcterms:modified></item><item><title>Ebay上的个人求职拍卖</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!216.entry</link><description>&lt;div&gt;&lt;font size=3&gt;想法不错噢!&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;a href="http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;amp;item=5657560984&amp;amp;rd=1&amp;amp;sspagename=STRK:MESE:IT&amp;amp;rd=1"&gt;http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;amp;item=5657560984&amp;amp;rd=1&amp;amp;sspagename=STRK%3AMESE%3AIT&amp;amp;rd=1&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+Ebay%e4%b8%8a%e7%9a%84%e4%b8%aa%e4%ba%ba%e6%b1%82%e8%81%8c%e6%8b%8d%e5%8d%96&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!216.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!216.entry</guid><pubDate>Fri, 20 Jan 2006 08:19:34 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!216/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!216.entry#comment</wfw:comment><dcterms:modified>2006-01-20T08:19:34Z</dcterms:modified></item><item><title>ZT 关于GPL，我的理解</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!215.entry</link><description>&lt;div&gt;&lt;font size=3&gt;昨天有人在水母的新软上贴了一篇帖子，是MPC的作者对一些人不遵守GPL的批评(mpc是以gpl授权发布的)。引发了大家激烈的讨论。在此我说一下自己的看法。先介绍一下不得不提的一个人rms。&lt;br&gt;&lt;br&gt;理查德·马修·斯托曼（Richard Matthew Stallman，生于1953年），自由软件运动的精神领袖、GNU计划以及自由软件基金会（Free Software Foundation）的创立者、著名黑客。他最大的影响是为自由软件运动竖立了道德、政治以及法律框架。他被许多人誉为当今自由软件的斗士、伟大的理想主义者，但同时也有人批评他过于固执、观点落伍。&lt;br&gt;&lt;br&gt;斯托曼个人站点http://www.stallman.org&lt;br&gt;&lt;br&gt;斯托曼1953年出生于美国纽约曼哈顿地区，1971年进入哈佛大学学习，同年受聘于麻省理工学院人工智能实验室（AI Laboratory），成为一名职业黑客。&lt;br&gt;&lt;br&gt;在AI实验室工作期间，斯托曼开发了多种今后影响深远的软件，其中最著名的就是Emacs。斯托曼在AI是一名典型的黑客，是整个黑客文化的一份子。&lt;br&gt;&lt;br&gt;然而进入八十年代后，黑客社群在软件工业商业化的强大压力下日渐土崩瓦解，甚至连AI实验室的许多黑客也组成了Symbolic公司，试图以专利软件来取代实验室中黑客文化的产物－－免费可自由流通的软件。&lt;br&gt;&lt;br&gt;斯托曼对此感到气愤与无奈。在对Symbolic进行了一段时间的抗争后，他于1985年发表了著名的GNU宣言(GNU Manifesto)，正式宣布要开始进行一项宏伟的计划：创造一套完全自由免费，兼容于Unix的操作系统GNU（GNU’s Not Unix!）。之后他又建立了自由软件基金会来协助该计划。&lt;br&gt;&lt;br&gt;他于1989年与一群律师起草了广为使用的GNU通用公共协议证书（GNU General Public License, GNU GPL），创造性地提出了“反版权”（或“版权属左”，copyleft）的概念。同时，GNU计划中除了最关键的Hurd操作系统内核之外，其他绝大多数软件已经完成(注：现在hurb也已完成)。&lt;br&gt;&lt;br&gt;1991年芬兰大学生Linus Torvalds在GPL条例下发布他自己创作的Linux操作系统内核，至此GNU计划正式完成，操作系统被命名为GNU/Linux（或简称Linux）。&lt;br&gt;&lt;br&gt;斯托曼是一名坚定的自由软件运动倡导者，与其他提倡开放源代码的人不同，斯托曼并不是从软件质量的角度而是从道德的角度来看待自由软件。他认为使用专利软件是非常不道德的事，只有附带了源代码的程序才是符合其道德标准的。对此许多人表示异议，并也因次有了自由软件运动与开源软件运动之分。&lt;br&gt;&lt;br&gt;斯托曼曾获得过多项荣誉&lt;br&gt;&lt;br&gt;1990年度麦克阿瑟奖（MacArthur Fellowship）&lt;br&gt;1991年度美国计算机协会（Association for Computing Machinery）颁发的Grace Hopper Award以表彰他所开发的的Emacs文字编辑器&lt;br&gt;1996年获颁瑞典皇家技术学院荣誉博士&lt;br&gt;1998年度电子前线基金会（Electronic Frontier Foundation）先锋奖（Pioneer Award）&lt;br&gt;1999年Yuri Rubinski纪念奖&lt;br&gt;2001年武田研究奖励赏（武田研究奨励賞）&lt;br&gt;2002年成为美国国家工程院院士&lt;br&gt;&lt;br&gt;这里有一篇访谈录http://www.gnu.org/philosophy/luispo-rms-interview.cn.html&lt;br&gt;&lt;br&gt;自由软件并不意味着你可以将这些随意使用这些软件代码，将它们用于任何用途。从一开始，rms就坚持为自由软件制定license，来保证人们使用软件的自由。当然有些人并不同意这一点，他们主张完全的”copyleft”，有人license，自由还是“自由”吗？freeBSD的开发者一直都对 GPL嗤之以鼻。&lt;br&gt;&lt;br&gt;为什么license这么重要呢？这要从copyright与license的区别说起， copyright说到底，就是从一个软件(也包括其它事物)的copyright中获取利益，而license则规定了用户获取软件之后能做什么，不能做什么。在rms看来，商业软件的license中的禁止copy是不可理喻的，例如我们去书店买了一本书，回来之后可以任意传阅，但是软件买回来之后为什么不能任意copy？&lt;br&gt;&lt;br&gt;目前得到自由软件基金会认可的license一共有近50种，数目很多，FSF计划在未来将数目减少到10种以内。GPL是其中最重要的一个，有大量的软件，包括linux内核都以GPL授权发布。现在的GPL是1991年制定的第二版，即GPL v2，第三版正在制定当中，官方说法是大约两年左右的时间之后GPL v3将会发布。在众多自由软件的license中，有三条是任意一个license都具备的，那就是：&lt;br&gt;&lt;br&gt;1.不受限制的获取的权利（即获取时无任何附加条款）&lt;br&gt;&lt;br&gt;2.不受限制的使用的权利（使用过程无期限、功能上的限制 ）&lt;br&gt;&lt;br&gt;3.不受限制的为使用而修改的权利&lt;br&gt;&lt;br&gt;各种license中最主要的区别就是一个人在修改之后是否能够重新发布，或能重新发布，但以什么形式重新发布。GPL是一个严格的授权，它保障是人们使用软件的自由，而不是保障任何人（包括软件作者）的权益。GPL严格规定以GPL授权发布的软件及其衍生物，都必须同时提供源代码。&lt;br&gt;&lt;br&gt;正是有了GPL，自由软件才像滚雪球一样，越来越大。freeBSD一直在一个封闭的小圈子里，可以说保持了学院派的本色，但是从用户的数 量，尤其是应用软件的数量上，无法与GNU相提并论。&lt;/font&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+ZT+%e5%85%b3%e4%ba%8eGPL%ef%bc%8c%e6%88%91%e7%9a%84%e7%90%86%e8%a7%a3&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!215.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!215.entry</guid><pubDate>Fri, 20 Jan 2006 07:10:24 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!215/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!215.entry#comment</wfw:comment><dcterms:modified>2006-01-20T07:10:24Z</dcterms:modified></item><item><title>Salon是这样来收费的</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!212.entry</link><description>&lt;div&gt;&lt;font size=3&gt;访问Salon的内容,先给你看个标题,内容简介,然后问你,免费看,请走这边,由XXX公司提供赞助,或者可以选择加入Salon(自然是让你掏腰包了),走免费的通道,出现一个Flash广告,NeXT提示,点击,还是广告+Next,继续,依旧如此.最后统计,点击三次NEXT后,可以看到正文.&lt;/font&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+Salon%e6%98%af%e8%bf%99%e6%a0%b7%e6%9d%a5%e6%94%b6%e8%b4%b9%e7%9a%84&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!212.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!212.entry</guid><pubDate>Wed, 11 Jan 2006 09:23:53 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!212/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!212.entry#comment</wfw:comment><dcterms:modified>2006-01-11T09:23:53Z</dcterms:modified></item><item><title>[ChoiceWebsite] 工设类站点,喜欢看新奇玩意儿的别错过.</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!211.entry</link><description>&lt;div&gt;&lt;a href="http://www.hi-id.com/"&gt;&lt;font size=3&gt;&lt;strong&gt;http://www.hi-id.com/&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-8913911617972053559&amp;page=RSS%3a+%5bChoiceWebsite%5d+%e5%b7%a5%e8%ae%be%e7%b1%bb%e7%ab%99%e7%82%b9%2c%e5%96%9c%e6%ac%a2%e7%9c%8b%e6%96%b0%e5%a5%87%e7%8e%a9%e6%84%8f%e5%84%bf%e7%9a%84%e5%88%ab%e9%94%99%e8%bf%87.&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=miaomin.spaces.live.com&amp;amp;GT1=miaomin"&gt;</description><comments>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!211.entry#comment</comments><guid isPermaLink="true">http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!211.entry</guid><pubDate>Wed, 11 Jan 2006 07:02:44 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://miaomin.spaces.live.com/blog/cns!844B6C9C838C59C9!211/comments/feed.rss</wfw:commentRss><wfw:comment>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!211.entry#comment</wfw:comment><dcterms:modified>2006-01-11T07:03:40Z</dcterms:modified></item><item><title>Flickr免費帳號偷吃步分享</title><link>http://miaomin.spaces.live.com/Blog/cns!844B6C9C838C59C9!206.entry</link><description>&lt;div&gt;
&lt;div&gt;&lt;font size=3&gt;申請了Flickr帳號之後，由於免費帳號當時（我以為）限定一百張（現已變成兩百張），為了讓家人們能看到更多的恩諒，初期只以恩諒為唯一功能，大部分BLOG要用的圖檔，我就放在BLOG的空間。&lt;br&gt;&lt;br&gt;隨著與他相處的時間增加，加上&lt;/font&gt;&lt;a href="http://roxytom.bluecircus.net/archives/004609.html"&gt;&lt;u&gt;&lt;font color="#0000ff" size=3&gt;湯姆大俗&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font size=3&gt;熱心的指導，Flickr免費帳號的運作邏輯漸漸被我掌握。本來想，反正逝者已矣，也就罷了，沒想到幾天前苦伯來訊告知，Flickr已將免費使用者相片顯示數上限由一百提升為兩百。眼見機不可失，當場做了個實驗，實驗成果〔匪〕然，特與諸親友分享。&lt;br&gt;&lt;/font&gt;
&lt;div&gt;&lt;/div&gt;&lt;br clear=all&gt;&lt;/div&gt;&lt;a&gt;&lt;/a&gt;
&lt;div&gt;
&lt;p&gt;&lt;font size=3&gt;認識Flickr的免費帳號&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;簡單講，我就是要偷他。在要開始當小偷之前，我們先來準備點預備知識，了解一下Flickr的規則跟運作，這些，都是湯姆大俗百忙找來傳授解惑的，感念在心。&lt;/font&gt;
&lt;p&gt;&lt;font size=3&gt;根據Flickr自