﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-flyonok</title><link>http://www.cppblog.com/flyonok/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 10 Apr 2026 02:41:53 GMT</lastBuildDate><pubDate>Fri, 10 Apr 2026 02:41:53 GMT</pubDate><ttl>60</ttl><item><title>git使用</title><link>http://www.cppblog.com/flyonok/archive/2012/10/18/193490.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Thu, 18 Oct 2012 14:24:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2012/10/18/193490.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/193490.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2012/10/18/193490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/193490.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/193490.html</trackback:ping><description><![CDATA[<div><a target="_blank" href="http://www.cnblogs.com/zhangjing230/archive/2012/05/09/2489745.html">http://www.cnblogs.com/zhangjing230/archive/2012/05/09/2489745.html</a></div><img src ="http://www.cppblog.com/flyonok/aggbug/193490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2012-10-18 22:24 <a href="http://www.cppblog.com/flyonok/archive/2012/10/18/193490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android version</title><link>http://www.cppblog.com/flyonok/archive/2012/04/17/171711.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Tue, 17 Apr 2012 02:04:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2012/04/17/171711.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/171711.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2012/04/17/171711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/171711.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/171711.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Android version&nbsp;&nbsp;<a href='http://www.cppblog.com/flyonok/archive/2012/04/17/171711.html'>阅读全文</a><img src ="http://www.cppblog.com/flyonok/aggbug/171711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2012-04-17 10:04 <a href="http://www.cppblog.com/flyonok/archive/2012/04/17/171711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转--在Ubuntu11.04中安装JRE</title><link>http://www.cppblog.com/flyonok/archive/2012/04/16/171629.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Mon, 16 Apr 2012 08:07:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2012/04/16/171629.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/171629.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2012/04/16/171629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/171629.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/171629.html</trackback:ping><description><![CDATA[<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #444444; font-family: Simsun; font-size: 13px; line-height: 24px; text-align: left; background-color: #ffffff; ">Java，是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器（支持Java applet）显示了Java的魅力：跨平台、动态的Web、Internet计算。从此，Java被广泛接受并推动了Web的迅速发展，常用的浏览器现在均支持Java applet。</p><h3>在Ubuntu11.04中安装JRE：</h3><pre style="margin-top: 15px; margin-right: auto; margin-bottom: 15px; margin-left: auto; padding-top: 10px; padding-right: 15px; padding-bottom: 10px; padding-left: 15px; font-family: 'courier new'; font-size: 12px; line-height: 20px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d6d6d6; border-right-color: #d6d6d6; border-bottom-color: #d6d6d6; border-left-color: #d6d6d6; border-image: initial; border-left-width: 4px; background-image: url(http://www.ubuntusoft.com/wp-content/themes/d4/img/codecolorer_bg.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #444444; text-align: left; background-position: 50% 0%; ">sudo add-apt-repository ppa:ferramroberto/java sudo apt-get update sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts</pre><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #444444; font-family: Simsun; font-size: 13px; line-height: 24px; text-align: left; background-color: #ffffff; ">中途会有一些确认选项，选择OK以及YES即可。</p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #444444; font-family: Simsun; font-size: 13px; line-height: 24px; text-align: left; background-color: #ffffff; ">安装后输入命令：</p><pre style="margin-top: 15px; margin-right: auto; margin-bottom: 15px; margin-left: auto; padding-top: 10px; padding-right: 15px; padding-bottom: 10px; padding-left: 15px; font-family: 'courier new'; font-size: 12px; line-height: 20px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #d6d6d6; border-right-color: #d6d6d6; border-bottom-color: #d6d6d6; border-left-color: #d6d6d6; border-image: initial; border-left-width: 4px; background-image: url(http://www.ubuntusoft.com/wp-content/themes/d4/img/codecolorer_bg.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; color: #444444; text-align: left; background-position: 50% 0%; ">java -version</pre><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #444444; font-family: Simsun; font-size: 13px; line-height: 24px; text-align: left; background-color: #ffffff; ">即可查看版本信息</p><img src ="http://www.cppblog.com/flyonok/aggbug/171629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2012-04-16 16:07 <a href="http://www.cppblog.com/flyonok/archive/2012/04/16/171629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转--firefox(Mozilla)分析 </title><link>http://www.cppblog.com/flyonok/archive/2012/04/14/171413.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Sat, 14 Apr 2012 15:35:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2012/04/14/171413.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/171413.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2012/04/14/171413.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/171413.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/171413.html</trackback:ping><description><![CDATA[<br /> 1.Firefox(Mozilla) 框架<br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">层次：</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">1.0 最底层:跨平台操作系统实用功能封装，或称为虚拟操作系统(例如OpenOffice)或称为操作系统(平台)适配器。叫什么没有关系，基本意思理解就可以了。我认为对应模块有：</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;NSPR（io,thread,memory等）</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;Gecko(？图形图象显示输出或渲染引擎,GUI模块--平台封装的widget[窗口和控件]+gfx[图形图象处理--每个平台都有其具体实现，包括font,color,image,绘图原语]),类似cairo图形库作用。see NGLayout or layout(依据CSS style layout,but not render html/xml tag contents)|content模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span id="widget" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">widget:</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Primitive user interface part (button, menu, radiobutton, etc). There are two kinds of widgets: Native and&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#gfx" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">gfx</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">. Native widgets are implemented differently for each platform, but gfx widgets are implemented using gfx and is thus the same for all platforms.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;Necko[SSL外都是应用层协议如nntp/ldap/about/res/file/ftp/http/pop3/smtp/Imap等协议],ldap sdk在模块directory中</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">1.1 中间核心层：XPCOM,类似UNO,COM,Corba等组件模型。我简单看了看源代码与OpenOffice的UNO组件相关代码封装很类似。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;常见的XPCOM组件为第三方提供的Add-ons(插件[plug-in,固定实现接口，源码参见modules/plugin等]和(扩展+主题)[extension+theme，无固定接口要求，通常用来构件不同的UI界面及其相关应用,源码参见extension目录])</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">toolkit(</span><a href="http://www.mozilla.org/docs/source-directories-overview.html" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">XUL相关东东</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">)xpfe?区别</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">1.2 Chrome(user GUI统称)：对应文件是各种chrome/*.jar及其xpcom组件(动态库or js,模块名称通常在地址栏中可见：chrome://</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; font-style: italic; ">xxx</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">/content/..xul)--&gt;其中实现射击技术有：XUL[负责UI界面总体框架,use xul to specify the static layout of the UI elements.Can use "overlays" to add new(or replace) UI elements to existings.use CSS to specify UI elements's format style],XBl[UI界面框架内的基本UI元素]、JS[glue胶合或连接(通过XPConnect--也就是通常说的桥bridge,桥接两端不同代码--也可以称之为双向解释器或编译器)UI行为响应到内部XPCOM代码--多数为C++代码.use javascript to spcify how each of the elements interacts]、CSS and RDF(dtd)[表达UI显示效果]、DOM[html/xml文档操作接口]等。类似XAML作用,参考MS .NET表现层类库。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><a href="http://www.mozilla.org/scriptable/"  text"="" title="http://www.mozilla.org/scriptable/" rel="nofollow" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; "><span id="XPConnect" style="word-wrap: normal; word-break: normal; ">XPConnect：</span></a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Ability to call C++ implementations of interfaces expressed in&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#IDL" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">IDL</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&nbsp;from&nbsp;</span><a href="http://developer.mozilla.org/en/docs/JavaScript" title="JavaScript" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">JavaScript</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&nbsp;and vice versa.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span id="XPFE" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; "><span style="word-wrap: normal; word-break: normal; font-weight: bold; font-style: italic; ">XPFE</span>：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">The cross-platform&nbsp;</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">f</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">ront&nbsp;</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">e</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">nd(toolkit). The part of Mozilla that implements the user interface of Mozilla. Everything that makes a browser except the rendering of pages is considered xpfe (bookmarks, toolbars, menus etc).</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; font-weight: bold; ">2.</span><a href="http://developer.mozilla.org/en/docs/Glossary" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">firefox(Mozilla)开发重要术语</a><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;</span><span id="XP" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">XP：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Cross-Platform。</span><a href="http://www.mozilla.org/projects/xpcom/"  text"="" title="http://www.mozilla.org/projects/xpcom/" rel="nofollow" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; "><span id="XPCOM" style="word-wrap: normal; word-break: normal; ">XPCOM：</span></a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Cross Platform Component Object Model</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;cotent node:内容节点。对应html/xml中元素，可由DOM操纵content tree。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;</span><span id="ASN.1" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">ASN.1--</span><a href="ftp://ftp.rsa.com/pub/pkcs/ascii/layman.asc" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Abstract Syntax Notation One PKCS安全相关--是否也可以用在idl中呢?</a><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;frame--文档底层布局对象(所有这些不同层次的frame就代表了一篇布局好的文档),负责html/xml节点内容或元素的绘制，通常对应一到多个content node[每个元素在CSS中称为box--有元素自身高宽+padding+margin+border，通常这些属性都不显示出来,又多数采用div方式使用]--&gt;</span><a href="http://blog.sina.com.cn/s/blog_4975695f010024j5.html" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">CSS Box</a><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;</span><span id="webshell" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">webshell：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">A container that knows how to load and render web pages.&nbsp;</span><a href="http://developer.mozilla.org/en/docs/index.php?title=HTML:Element:frameset&amp;action=edit" title="HTML:Element:frameset" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Frameset</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&nbsp;pages has a root webshell and one webshell per&nbsp;</span><a href="http://developer.mozilla.org/en/docs/index.php?title=HTML:Element:frame&amp;action=edit" title="HTML:Element:frame" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">frame(注意这个是html frame框架,not前面提到的frame)</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&nbsp;.应该这个webshell中可以访问前面提到的所有frame对象(frame heriarchy),？webPage与document区别？</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;</span><span id="presentation_shell" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">presentation shell：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Presentation shells are the controlling object during the presentation of a document. It owns the document, the&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#frame_hierarchy" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">frame hierarchy</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">, stylesheets and the presentation context. It also controls and initiates the reflow of the document.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;</span><span id="reflow" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">reflow：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">The act of laying out the&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#content_tree" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">content tree</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&nbsp;and creating/updating the corresponding&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#frame_hierarchy" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">frame hierarchy</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&nbsp;is called reflowing.注意这个update更新--例如DOM写、修改操作。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;</span><span id="reflow_mapped" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">reflow mapped：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Reflowing content that already has a&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#frame" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">frame</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">.&nbsp;</span><span id="reflow_unmapped" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">reflow unmapped：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Reflowing content that doesn't yet have a&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#frame" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">frame</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">. see layout模块</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;</span><span id="service" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">service：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">A component that is used as a singleton. That means there exist only one instantiation of the&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#Component" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">Component</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">, and all request for it returns the same object.这个应该与UNO service基本类似.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;</span><span id="XIF" style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">XIF：</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">XML Interchange Format - used internally by&nbsp;</span><a href="http://developer.mozilla.org/en/docs/Glossary#NGLayout" title="" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">NGLayout</a><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&nbsp;for all I/O to clipboard, etc. 通用clipboard XML交换格式--封装所有其他格式到不同的tags？</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;XRE:</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">X</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">UL&nbsp;</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">R</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">untime&nbsp;</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">E</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">ngine--init XUL Toolkit?.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">此外还需要看看英文版本的帮助文档--了解基本名词术语等。--例如</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">feed</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">3.<a href="http://www.mozilla.org/docs/source-directories-overview.html" style="text-decoration: none; color: #765f47; ">firefox(Mozilla)源码目录结构简述</a>，<a href="http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Directory_Structure" style="text-decoration: none; color: #765f47; ">另外参见</a><br /></span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;基本结构模式(scheme)：首先是顶层产品目录名如mozilla(TopLevelName--注意下载源码包后千万不要将直接将这个目录下的各种模块解压到某个目录下，否则是无论如何也无法编译的！也就是这些子模块的父目录一定要是这个产品名目录--称为$toplevel);然后是各模块目录；各模块目录下的目录遵循原则是能独立成为子模块的就独立门户，如此迭代下去。每个模块下可能存在如下一些常见的目录名称：</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">1.</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">base</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">:该模块基础或核心代码(basic or core source),无法再独立门户，大家享用的.--example:docshell模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">2.</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">build</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">:编译特殊模块所包含的特殊makefile and some sources。--example: intl or docshell等模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">3.</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">doc</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">:模块相关的文档.example:xpcom|layout模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">4.</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">idl+public</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">:基本上是公用头文件(包括idl间接被编译后的头文件)，我想public中还混合有idl文件，莫非以后public下的公用头文件也可能被idl取代之意？example:gfx,editor,dom等模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">5.</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">src</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">:cpp,c,h,hxx文件。example:widget模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">6.</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">test</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">:该模块测试代码或相关html,xul等文件。example:gfx模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">7.</span><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">tools</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">:编译某些特殊模块用的工具以及自动产生某些代码的perl脚本。example:layout模块</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">8.平台相关模块目录：windows/mac/gtk/motif/qt/os2+beOS/photon/rhapdody等</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">9.其他你所见到的目录名称基本上都是子模块名称+other。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;源码目录</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">browser</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--firefox可执行程序入口(app/nsBrowserApp.cpp),base/下内容就包含在著名的browser.jar[XUL]中,其中另外一部分在components中。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">accessible</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--辅助功能模块。例如MS Control Panel's "辅助功能选项"--帮助文档中也有说明。支持Microsoft Active Accessibility and Sun's ATK accessibility API for Linux.另外请查看该模块下的accessible-docs.html.非核心模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">build+config</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--相当与openOffice的config_office+solenv两个模块，用来搭建编译环境和提供编译具体模块代码时所需要的信息(如各种通用编译选项等makefile文件等)。都包含n多perl脚本。firefox(mozilla)的这两个模块组织的相对杂乱不容易理解。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">calendar</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--各种日历应用和扩展。非核心模块。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">caps</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--webpage安全管理(安全设置和认证)相关模块.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">chrome</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--chrome://协议、工厂、注册相关代码。--toolkit范畴。模块代码少。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">content+layout</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--dom所需对象+布局引擎(依据CSS1+2式样单来布置(not render绘制)所有内容(html/xml/xul/xsl/xbl/svg/xtf等文件内容)--对应各自的窗口。即reflow==NGLayout or Gecko)</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">db</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--mdb/mork + sqlite3数据库--邮件+历史+新闻数据的存储与访问。拿来主义--本身跨平台。openoffice使用berkely DB访问帮助文档数据库文件。also see&nbsp;</span><a href="http://www.mozilla.org/mailnews/arch/" style="text-decoration: none; color: #765f47; font-family: simsun; text-align: left; background-color: #f8ecd8; ">mozilla mail architecture</a><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">directory</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--ldap C语言SDK及其XPCOM封装。also see file:draft-ietf-ldapext-ldap-c-api-05.txt. openoffice also support ldap.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">docshell-&gt;embedding-&gt;webshell</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">: 想要将firefox(Mozilla)嵌入在其它应用程序中或定制一个新的浏览器请使用接口nsIWebBrowserChrome，而且该浏览器窗口还可以是模式(Modal)。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;查找服务html_frames[or iframes: attribute nsIDOMWindow currentSearchFrame/rootSearchFrame;] in the content area.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;JSConsoleService控制台服务: nsIWindowWatcher-&gt;OpenWindow(Parent_nsIDOMWindow,console_chrome_url,"_blank",console_window_options,nsnull,getter_AddRefs(consloeWindow_nsIDOMWindow));</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">//static const char console_chrome_url[] = "chrome://global/content/console.xul";</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">//static const char console_window_options[] = "dialog=no,close,chrome,menubar,toolbar,resizable";</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;TopLevel(通常可以与nsIWebBrowserChrome互相map--!一对!) Gecko/DOM Windows Watcher or keeper[但不保留对这些窗口的引用--no ownership,only weakReference--当这些窗口create or destory时需要主动通知notify该watcher:注意如果别的应用程序内嵌该浏览器时通常该程序不需要做此事]: 有activeWindow属性；必须在浏览器启动时通过setWindowCreator初始化一个nsIWindowCreator,之后就可以通过它来打开或创建新的各种JS window.open.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">::)DOMWindow-&gt;ScriptGlobalObject-&gt;GetDocShell-&gt;items-&gt;owner-&gt;WebBrowserChrome(Maybe EmbeddingSiteWindow-&gt;GetSiteWindow)-&gt;BaseWindow-&gt;MainWidget-&gt;GetNativeData(例如HWND/Window等)</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;print打印：PrintDlg[Ex](windows平台)-LPDEVMODE.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;chrome://global/content/nsHelperAppDlg.xul--打开一个特殊文档时UI,采用js编写的XPCOM组件nsHelperAppDlg.js.</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;chrome://global/content/nsProgressDialog.xul--自动下载进度控制对话框。nsProgressDialog.js。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">IPC</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--search"进程间通信"</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">modules</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">--各种压缩格式库(Mar--Mozilla Archive,用于更新包，包中文件采用bzip2压缩，其它jar+zlib，九州的压宝今后可以加入近来啊);支持的各种图像库(png,jpg,bmp[含ico],gif,xbm--x-bitmap)+libprOn+libimg目录中。还有：</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">&#183;应用程序配置(或偏好)设置修改访问模块preference. about:config即可更改配置文件[*.js文件(一种特殊的javascript脚本文件)，位置在grepref+default/pref中*.js,用户修改后的单独存储在用户配置目录下的pref.js文件中--分系统和用户两部分独立数据]；配置数据范围很广：not only选项...中的设置。阅读这些js文件即可发现。这些配置(或偏好)数据采用tree层次方式管理，入口点preferenceService-&gt;prefBranch(访问各分枝节点数据)；还可以增加对这些数据的变动进行动态观察以反映到不同的窗口等对象中。观察者和数据访问对象通常都是弱引用对象[避免loop引用无法释放]。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="word-wrap: normal; word-break: normal; color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; font-weight: bold; ">gfx(gkgfx.dll等)--</span><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">2d几何图形如矩形(nsRect、nsRegion)、图象(gfxIImageFrame)、打印设置(PrintSetting)、字体(Font)、设备上下文等对象(此外还包括类似nsColor,nsColorName[s-147个css颜色名称]等相关对象)及其基本操作(如矩形的交集、合集等基本操作--好象初中就会过其基本概念)----注意它们与os提供的几何绘图函数一点关系都没有。</span>oo<span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">o中所有的基本都在vcl中实现(几何图形+窗口部件)。</span><br style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; " /><span style="color: #464646; font-family: simsun; text-align: left; background-color: #f8ecd8; ">see my mozilla gfx architcture</span><img src ="http://www.cppblog.com/flyonok/aggbug/171413.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2012-04-14 23:35 <a href="http://www.cppblog.com/flyonok/archive/2012/04/14/171413.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转--5个让人激动的Java项目</title><link>http://www.cppblog.com/flyonok/archive/2012/04/13/171292.html</link><dc:creator>flyonok</dc:creator><author>flyonok</author><pubDate>Fri, 13 Apr 2012 14:25:00 GMT</pubDate><guid>http://www.cppblog.com/flyonok/archive/2012/04/13/171292.html</guid><wfw:comment>http://www.cppblog.com/flyonok/comments/171292.html</wfw:comment><comments>http://www.cppblog.com/flyonok/archive/2012/04/13/171292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/flyonok/comments/commentRss/171292.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/flyonok/services/trackbacks/171292.html</trackback:ping><description><![CDATA[<p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; ">每个Java/JVM领域的技术专家都应从那些项目中获益，他们中有2011在SanJose举办的Jax 会议中提名为最好的技术产品奖的。我之所以选择他们是因为他们可以广泛用于一系列的项目中解决真实问题。作为开发者，我们也不得不在每天都讨论这些，那么我们赶紧来看看究竟有哪些值得令人激动的项目。</p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><strong>1.<a href="http://neo4j.org/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; ">Neo4j</a>&nbsp;图形数据库</strong></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; ">Neo4j是一个高性能图形引擎，该引擎拥有成熟稳健的数据库的所有特性。<a title="程序员的本质" href="http://blog.jobbole.com/821/" style="color: #015fb6; text-decoration: none; ">程序员</a>利用面向对象、灵活网络结构而不是严格的静态表操作，但是他们可以完全享受到具备完全事务特性、企业级数据库的所有好处。对于很多应用来说，Neo4j相比关系型数据库性能提升1000倍，同时Spring和其他框架有相应的插件支持。</p><p style="line-height: 25px; text-align: center; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><a href="http://neo4j.org/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "><img size-full=""  wp-image-16079"="" title="neo" alt="" src="http://articles.csdn.net/uploads/allimg/120409/0SU91509-0.png" width="200" height="160" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></a></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><strong>2.<a href="http://www.zeroturnaround.com/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; ">JRebel&nbsp;</a>&nbsp;不需再重新部署</strong></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; ">JRebel是一个小型的JVM插件，它能使Java程序员在不需重新部署情况下即时地看到代码改变后的结果。JRebel 能够在一个时间点让你单独地更新管理类文件和资源的版本来替换块应用部署，当开发者在IDE中对类和资源有任何的修改时，变化能立刻地反映到已经部署好的应用中。通过省略从构建到重新部署期所花时间每年能节省约5.25周。</p><p style="line-height: 25px; text-align: center; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><a href="http://www.zeroturnaround.com/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "><img size-full=""  wp-image-16081"="" title="jrebel" alt="" src="http://articles.csdn.net/uploads/allimg/120409/0SUa2M-1.png" width="200" height="160" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></a></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><strong>3.<a href="http://www.gradle.org/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; ">Gradle&nbsp;</a>&nbsp;一个更好的构建工具</strong></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; ">Gradle充分吸取了Maven和Ant的优点。Gradle站点说道：&#8220;工程自动化是软件项目成功的必要条件，而且它应该是实现起来简单、易用、好玩的。构建没有千篇一律的方法，所以Gradle没有死板的强加方法于我们，尽管你会认为查找和描述你的方法很重要，然而Gradle对于如何描述它有着非常好的支持。我不认为工具能够拯救我们，但是Gradle能给你所需要的自由，你可以利用Gradle构建易描述的、可维护的、简洁的、高性能项目&#8221;。</p><p style="line-height: 25px; text-align: center; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><a href="http://www.gradle.org/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "><img size-full=""  wp-image-16082"="" title="gradle" alt="" src="http://articles.csdn.net/uploads/allimg/120409/0SU94354-2.png" width="200" height="160" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></a></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><strong>4.<a href="http://akka.io/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; ">Akka</a>&nbsp;更加简单的可伸缩性、容错性、并发性、远程调用的Actor模型应用</strong></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; ">编写出可靠的并发、容错、可伸缩的应用简直太难了，很多时候是因为我们使用不合理的工具和错误的抽象级别，Akka正是用来解决这些难题的。使用 Actor模型与STM(软件事务内存)提高抽象级别，Actor提供了更好的平台来建立可靠的并发和可伸缩的应用，对于容错采取任其崩溃、接受失败的模型(Let it crash/Embrace failure),它已经成功运用在电信行业。系统几乎不会宕机（高可用性99.9999999 % 一年只有31 ms宕机,<a href="http://java.dzone.com/articles/introducing-akka-%E2%80%93-simpler" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; ">这里</a>有详细介绍），Actors同样为透明的分布式提供了抽象化，为真正的可扩展和容错的应用提供了基本要素。</p><p style="line-height: 25px; text-align: center; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><a href="http://akka.io/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "><img size-full=""  wp-image-16083"="" title="akka" alt="" src="http://articles.csdn.net/uploads/allimg/120409/0SU94E4-3.png" width="200" height="160" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></a></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><strong>5.<a href="http://www.playframework.org/" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; ">Play Framework</a>&nbsp;&#8212;关注开发者效率和RESTful风格的架构</strong></p><p style="line-height: 25px; text-align: left; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; ">Ruby中有Rails框架，Groovy有Grails，现在Java有了Play！Play 是一个纯Java框架，因此可以继续使用你钟爱的开发工具和类库。如果你已经在使用Java作为开发平台，那样也不需要切换到另一种语言、另一种IDE和库文件，你要做的仅仅是切换到一个更高效的Java环境中。</p><p style="line-height: 25px; text-align: center; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #f8fafd; "><a href="http://www.playframework.org/" rel="nofollow" target="_blank" style="color: #ff6600; "><img size-full=""  wp-image-16084"="" title="play1" alt="" src="http://articles.csdn.net/uploads/allimg/120409/0SU96046-4.png" width="200" height="160" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; " /></a></p><img src ="http://www.cppblog.com/flyonok/aggbug/171292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/flyonok/" target="_blank">flyonok</a> 2012-04-13 22:25 <a href="http://www.cppblog.com/flyonok/archive/2012/04/13/171292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>