<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1226743011653906413</id><updated>2011-04-22T02:58:11.762+08:00</updated><category term='心理'/><category term='jotting'/><category term='flash'/><category term='Java Server'/><category term='hibernate'/><category term='bug tracker'/><category term='blogger'/><category term='digest'/><category term='photography'/><category term='Eclipse'/><category term='manage'/><category term='Java'/><category term='health'/><category term='GEF'/><category term='vb'/><category term='Draw2D'/><title type='text'>朋图</title><subtitle type='html'>——水击三千 扶摇九万</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://approc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>62</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-4918552276940507224</id><published>2008-02-10T00:34:00.000+08:00</published><updated>2008-02-10T00:38:41.201+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='心理'/><title type='text'>努力克服“书呆子气” [转]</title><content type='html'>有些男人常常带一种“书呆子气”。这是一种不成熟的表现，通常称为“书生气”，这种现象主要发生在读书人身上，主要有如下特征：&lt;br /&gt;（1）处世不精明，不善于适应环境，不善交际，不懂人情世故。呆板木讷，说话做事多不合时宜，令人好气又好笑。不知不觉就得罪人。　　&lt;br /&gt;&lt;br /&gt;（2）性格多半内向、孤僻，不好动，不合群。兴趣少但专注，注意力&lt;span&gt;&lt;/span&gt;常集中一点而不能灵活转移，对所感兴趣的事常沉醉痴迷，对兴趣以外的事漠不关心。终日晕头晕脑，稀里糊涂，丢三落四。健忘，常常忘记自己要做什么，或四处找手里拿着的东西。　　&lt;br /&gt;&lt;br /&gt;（3）看问题偏激，易走极端。有时把简单的问题复杂化，有时又把复杂的问题简单化。处理事情要么主观武断，要么优柔寡断。喜欢沉思、幻想，有时又易冲动。有时多心多疑、神经过敏，有时反应迟钝。思想行为古板，不合潮流。　　&lt;br /&gt;&lt;br /&gt;（4）缺少组织能力、管理能力、决策能力，不会见机行事，随机应变。处理事情常出漏洞，遇上麻烦多采取退避态度。常自命清高，与世无争，又自以为是，固执己见。有夸大性自卑心理。喜欢引经据典，咬文嚼字。　　&lt;br /&gt;&lt;br /&gt;（5）生活散漫拖拉随便，无条理，不善计划安排。不拘小节。不修边幅，常显得窝窝囊囊、缺少派头。但也有的恰恰相反，生活细节特别讲究，非常拘谨，严肃，不苟言笑，一本正经。　　&lt;br /&gt;&lt;br /&gt;书呆子气是怎样形成的呢？有书呆子气的人几乎都是书呆子，都与读书有关系。但是，书呆子不是先天智力低下，不是神经系统发生了毛病。相反，他们的智商通常都较高，而且某些方面的知识比一般人要多，只是因为他们终日把自己的兴趣和自己的活动范围局限于书本上，不与人打交道，不问世事，远离复杂的社会生活，脱离社会实际，所以认识能力、思维能力便会形成一种刻板的固定的模式，一旦离开书本，面对复杂纷纭的大千世界就一筹莫展，给人留下一个迂腐的形象。　　&lt;br /&gt;&lt;br /&gt;心理学知识告诉我们，人的心理正常发展，除了必要的书本知识外，更重要的是社会生活经验，是人与人之间的信息交流。长期独处，人的心理就得不到完善发展，就难以应付社会生活。　　我们常可以在书呆子身上看到这样两种现象：有的少年老成，小小年纪就一副老先生的样子。有人认为这是成熟的表现，实际上这是心理发展不完善、有缺陷的表现；有的人老大不小，说话行事却显得很幼稚，带着童稚的天真，令人发笑，这也是心理发展不完善的表现。　　&lt;br /&gt;&lt;br /&gt;不少人有书呆子气自己并不知道，只是常感到自己缺乏为人处世的经验，虽然给自己的生活带来不少困难，但并不在意。甚至有的人把书呆子气看作是清高，是读书人的修养，因而瞧不起那些精明圆滑的人，认为他们狡猾、虚伪、势利眼。有的人一身书呆子气，又不愿意承认，便利用这种消极的自我防卫心理机制，自我辩护，自我安慰，这是不利于克服书呆子气的。有的人一旦发觉周围的人都将他看作书呆子，便感到很自卑、丧气，夸大自身书呆子气的严重性和书呆子气对心理发展和个人事业前途的危害性，这就更影响自己克服书呆子气的信心，加重书呆子气。实际上，人们对书呆子的评价一般都是很宽容的，一般人都认为：书呆子往往都是老实可靠的人，他们有知识，因为一心做高深的学问，所以才不懂人情世故；书呆子多是清高雅静的道德君子，没有那种庸俗的市侩气，非市井小人可比；书呆子多半诚实、憨厚，不虚伪，不做作，不搞阴谋诡计，不背地里整人；埋头做学问，不问俗事，不争名夺利。所以如果你发觉自己是个书呆子，不要背上思想包袱，把它看成“不治之症”。当然，书呆子气毕竟是一种不正常的心理现象，如果认为书呆子气是文人的一种优良气质，应加以保留或发展，则只能强化这种不正常的心理。　　&lt;br /&gt;&lt;br /&gt;书呆子气一经形成就不那么容易改变，因为它已成为人的性格的重要组成部分。但也并非完全不可改变。心理学家总结的以下的建议对改变书呆子气会有所帮助：　　&lt;br /&gt;（1）解除消极的自我防卫机制。自我防卫机制是人为了保护心理免受创伤而形成的一种特殊心理功能，但它可起消极作用。一个人为了掩饰不符合社会价值标准、明显不合理的行为或不能达到个人追求目标时，往往在自己身上或周围环境中找一些理由来为自己辩护，把自己的行为说成是正当合理的。如把自己无能、不善为人处世说成是清高、不愿与俗人同流合污；明知自己一身书呆子气，硬说这是文人的特征，是道德高尚的表现，竭力诋毁精明人，以难得糊涂为自己开脱。　　这种自我防卫可以起到维护心理平衡的作用，但从心理学的认识失调理论看，人们只有在体验着心理失谐的紧张痛苦时，才愿意改变自己的态度，达到新的心理平衡。如要想改掉书呆子气，必须充分认识到书呆子气的弊病，为克服它提供充分的理由，以造成心理和谐。所以首先应解除消极的自我防卫机制，尽量不为自己的书呆子气辩护。　　&lt;br /&gt;&lt;br /&gt;（2）积极主动地进行人际交往。形成书员子气的根本原因是埋头书本，不喜欢与人交往，缺少社会经验。又因为缺少社会经验，不能应付复杂的社会生活，便采取退缩回避的策略，不与人打交道。要打破这种恶性循环，必须强迫自己进行交际。多参加集体活动，感受集体活动的乐趣，培养活动兴趣，培养对客观事情的好奇心。通过与各种各样的人打交道，通过实践，了解人情世故，掌握处世艺术。应像规定自己每天的学习任务一样，规定自己每天的交往任务。同时，要正确估计自己的交际能力，估计过高易受挫折；估计过低，会使自己失掉交往的信心，都会影响自己的交往活动。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-4918552276940507224?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/4918552276940507224/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=4918552276940507224' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4918552276940507224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4918552276940507224'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2008/02/blog-post.html' title='努力克服“书呆子气” [转]'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-1914251264200499874</id><published>2007-11-07T21:03:00.000+08:00</published><updated>2007-11-07T21:24:50.168+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>[转载]Hibernate 继承中无法继承关联关系问题的解决方式</title><content type='html'>找了好久啊，总算找到了一篇解决Hibernate 继承“想当然问题”的论述，谢谢&lt;a href="http://clarkupdike.blogspot.com/"&gt;这位老兄&lt;/a&gt;细致的总结&lt;a href="http://clarkupdike.blogspot.com/2007/01/hibernate-mappedby-to-superclass.html"&gt;分析&lt;/a&gt;，我是怕丢失了这篇宝贵的文章，所以特地转载在这里了，也没有获得老兄的认可，希望能见谅了，呵呵。&lt;br /&gt;&lt;br /&gt;from:&lt;a href="http://clarkupdike.blogspot.com/2007/01/hibernate-mappedby-to-superclass.html"&gt;http://clarkupdike.blogspot.com/2007/01/hibernate-mappedby-to-superclass.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hibernate alternatives for mappedBy to a superclass property&lt;br /&gt;&lt;p&gt;I've been working on a JPA/Hibernate prototype of an application that was previously mapped using Toplink. So this is the "meet in the middle" where there is an existing domain model that must be mapped to an existing schema. In reality, the domain model is somewhat free to change as long as the public interface stays the same. And if push comes to shove, schema changes are possible (but undesirable). &lt;/p&gt;&lt;br /&gt;&lt;p&gt;While trying to map a relationship to a superclass, I assumed that O/R relationships can be inherited in a manner analogous to OO. So I naively assumed I could: &lt;span id="line-29"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;make the superclass an @Entity&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;use single table inheritance &lt;span id="line-31"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;use a @ManyToOne in the superclass (and then do a @OneToMany with a mappedBy= in the other side of the relationship) &lt;span id="line-32"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;set up a discriminator column on the superclass &lt;span id="line-33"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;provide discriminator values in the subclasses &lt;span id="line-34"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-35"&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;and viola... other classes could then hold references to the sublclasses. &lt;span id="line-36"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-37"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;So the key assumption here is that mappedBy could simply reference the property of the subclass even though the property is actually in the superclass (as you can do in an OO sense). But I ran into problems trying this. Such as: javax.persistence.PersistenceException: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property:. And no, it's not simply a field vs. accessor visibility issue. You can try different variations (including the sin of making it a public reference) and it will have no effect. &lt;span id="line-38"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-39"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;So this explores some of the options that were tried, and what the tradeoff's are... &lt;span id="line-40"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-41"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;In the examples that follow (the naive and wrong way): &lt;span id="line-42"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;ExternalContactAssignment is the subclass of ContactAssignment (via single table inheritence) &lt;span id="line-43"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;APLEntity is the class that has the @OneToMany to a subclass (ExternalContactAssignment) &lt;span id="line-44"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;ContactAssignment is the superclass that has the @ManyToOne back-reference to APLEntity &lt;span id="line-45"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-46"&gt;&lt;/span&gt;&lt;span id="line-47"&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;The code looked like this: &lt;span id="line-48"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-49"&gt;&lt;/span&gt;&lt;span id="line-50"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;@Entity&lt;br /&gt;&lt;span id="line-51"&gt;&lt;/span&gt;@Inheritance(strategy=InheritanceType.SINGLE_TABLE)&lt;br /&gt;&lt;span id="line-52"&gt;&lt;/span&gt;@DiscriminatorColumn(name="internal_ind", discriminatorType = DiscriminatorType.STRING)&lt;br /&gt;&lt;span id="line-53"&gt;&lt;/span&gt;@Table(name="CONTACT_ASSIGNMENT")&lt;br /&gt;&lt;span id="line-54"&gt;&lt;/span&gt;public abstract class ContactAssignment {&lt;br /&gt;&lt;span id="line-55"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-56"&gt;&lt;/span&gt;    // bidirectional&lt;br /&gt;&lt;span id="line-57"&gt;&lt;/span&gt;    @ManyToOne&lt;br /&gt;&lt;span id="line-58"&gt;&lt;/span&gt;    @JoinColumn(name="APL_ENTITY_SEQ_NUM", nullable=false)&lt;br /&gt;&lt;span id="line-59"&gt;&lt;/span&gt;    private APLEntity aplEntity;&lt;br /&gt;&lt;span id="line-60"&gt;&lt;/span&gt;    ...&lt;br /&gt;&lt;span id="line-61"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-62"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-63"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-64"&gt;&lt;/span&gt;@Entity&lt;br /&gt;&lt;span id="line-65"&gt;&lt;/span&gt;@DiscriminatorValue("N")&lt;br /&gt;&lt;span id="line-66"&gt;&lt;/span&gt;public class ExternalContactAssignment extends&lt;br /&gt;&lt;span id="line-67"&gt;&lt;/span&gt;        ContactAssignment {&lt;br /&gt;&lt;span id="line-68"&gt;&lt;/span&gt;    &lt;br /&gt;&lt;span id="line-69"&gt;&lt;/span&gt;    // nothing relevant in this class&lt;br /&gt;&lt;span id="line-70"&gt;&lt;/span&gt;    ...&lt;br /&gt;&lt;span id="line-71"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-72"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-73"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-74"&gt;&lt;/span&gt;@Entity&lt;br /&gt;&lt;span id="line-75"&gt;&lt;/span&gt;@org.hibernate.annotations.Entity&lt;br /&gt;&lt;span id="line-76"&gt;&lt;/span&gt;@Inheritance(strategy=InheritanceType.JOINED)&lt;br /&gt;&lt;span id="line-77"&gt;&lt;/span&gt;@Table(name="APL_ENTITY")&lt;br /&gt;&lt;span id="line-78"&gt;&lt;/span&gt;public abstract class APLEntity&lt;br /&gt;&lt;span id="line-79"&gt;&lt;/span&gt;    implements ExternalContactAssignable {&lt;br /&gt;&lt;span id="line-80"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-81"&gt;&lt;/span&gt;    @OneToMany(mappedBy="aplEntity")&lt;br /&gt;&lt;span id="line-82"&gt;&lt;/span&gt;    @org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.ALL,&lt;br /&gt;&lt;span id="line-83"&gt;&lt;/span&gt;            org.hibernate.annotations.CascadeType.DELETE_ORPHAN})                  &lt;br /&gt;&lt;span id="line-84"&gt;&lt;/span&gt;    @org.hibernate.annotations.Where(clause="internal_ind='N'")      &lt;br /&gt;&lt;span id="line-85"&gt;&lt;/span&gt;    private List externalContactAssignments;&lt;br /&gt;&lt;span id="line-86"&gt;&lt;/span&gt;    ...&lt;br /&gt;&lt;span id="line-87"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-88"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-89"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span id="line-91"&gt;&lt;/span&gt;&lt;span id="line-92"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Note: I'm stripping the code down to the bare minimum here (the real classes have lots of other stuff not relevant to the problem). &lt;span id="line-93"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-94"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;According to Emmanuel Bernard (Hibernate developer), it is semantically incorrect to assume this mapping structure to work as expected. &lt;span id="line-95"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-96"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;There are three approaches, which vary in &lt;span id="line-97"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;How much schema change you'll live with &lt;span id="line-98"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Can you add new tables? &lt;span id="line-99"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Can you add new columns? &lt;span id="line-100"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Tradeoffs between relational integrity and OO-to-relational consistency &lt;span id="line-101"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;If you can live with superclass not being an @Entity &lt;span id="line-102"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-103"&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Here are the three approaches... &lt;span id="line-104"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-105"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h4 id="head-2a3ddb28d17ced8cc83891c62bf3c131c149acbb"&gt;@MappedSuperclass with Column per Subclass&lt;/h4&gt;&lt;br /&gt;&lt;span id="line-106"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Approach: &lt;span id="line-107"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;ContactAssignment is mapped with an @MappedSuperclass instead of an @Entity. &lt;span id="line-108"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;ContactAssignment (superclass) maintains the references to APLEntity &lt;span id="line-109"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Table per subclass model (new table(s) required). Discriminators cannot be used (they'll be ignored). &lt;span id="line-110"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-111"&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;By using @MappedSuperclass, you lose the ability to have a relationship to the superclass. You also lose polymorphic queries when using straight JPA--although Hibernate queries will still be polymorphic. &lt;span id="line-112"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-113"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;I didn't pursue this as I'm trying to minimize schema change (an evaluation criteria for Hibernate). However, the mapping would look something like this: &lt;span id="line-114"&gt;&lt;/span&gt;&lt;span id="line-115"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;@MappedSuperclass&lt;br /&gt;&lt;span id="line-117"&gt;&lt;/span&gt;public abstract class ContactAssignment {&lt;br /&gt;&lt;span id="line-118"&gt;&lt;/span&gt; ...&lt;br /&gt;&lt;span id="line-119"&gt;&lt;/span&gt;   @ManyToOne&lt;br /&gt;&lt;span id="line-120"&gt;&lt;/span&gt;   @JoinColumn(name = "APL_ENTITY_SEQ_NUM", nullable = false)&lt;br /&gt;&lt;span id="line-121"&gt;&lt;/span&gt;   public APLEntity getAplEntity() {&lt;br /&gt;&lt;span id="line-122"&gt;&lt;/span&gt;      return aplEntity;&lt;br /&gt;&lt;span id="line-123"&gt;&lt;/span&gt;   }&lt;br /&gt;&lt;span id="line-124"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-125"&gt;&lt;/span&gt;   public void setAplEntity(APLEntity aplEntity) {&lt;br /&gt;&lt;span id="line-126"&gt;&lt;/span&gt;      this.aplEntity = aplEntity;&lt;br /&gt;&lt;span id="line-127"&gt;&lt;/span&gt;   }&lt;br /&gt;&lt;span id="line-128"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-129"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-130"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-131"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-132"&gt;&lt;/span&gt;@Entity&lt;br /&gt;@Table(name="EXTERNAL_CONTACT_ASSIGNMENT")  // class-specific&lt;br /&gt;&lt;span id="line-134"&gt;&lt;/span&gt;public class ExternalContactAssignment extends ContactAssignment {&lt;br /&gt;&lt;span id="line-135"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-136"&gt;&lt;/span&gt;   // not much needed&lt;br /&gt;&lt;span id="line-137"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-138"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-139"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-140"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-141"&gt;&lt;/span&gt;@Entity&lt;br /&gt;&lt;span id="line-142"&gt;&lt;/span&gt;@org.hibernate.annotations.Entity&lt;br /&gt;&lt;span id="line-143"&gt;&lt;/span&gt;@Inheritance(strategy = InheritanceType.JOINED)&lt;br /&gt;&lt;span id="line-144"&gt;&lt;/span&gt;@Table(name = "APL_ENTITY")&lt;br /&gt;&lt;span id="line-145"&gt;&lt;/span&gt;public abstract class APLEntity {&lt;br /&gt;&lt;span id="line-146"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-147"&gt;&lt;/span&gt;   @OneToMany(mappedBy="aplEntity")&lt;br /&gt;&lt;span id="line-148"&gt;&lt;/span&gt;   @org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.ALL,&lt;br /&gt;&lt;span id="line-149"&gt;&lt;/span&gt;      org.hibernate.annotations.CascadeType.DELETE_ORPHAN})              &lt;br /&gt;&lt;span id="line-150"&gt;&lt;/span&gt;   @org.hibernate.annotations.Where(clause="internal_ind='N'")      &lt;br /&gt;&lt;span id="line-151"&gt;&lt;/span&gt;   private List externalContactAssignments;&lt;br /&gt;&lt;span id="line-152"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-153"&gt;&lt;/span&gt;   ...&lt;br /&gt;&lt;span id="line-154"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-155"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span id="line-158"&gt;&lt;/span&gt;&lt;span id="line-159"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h4 id="head-73b0c451f95baa6bce33f29e1f072a8af262e651"&gt;Relationship Column per Subclass with Discriminator Column&lt;/h4&gt;&lt;br /&gt;&lt;span id="line-160"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Approach: &lt;span id="line-161"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Single table model &lt;span id="line-162"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;ExternalContactAssignment (subclass) maintains the references to !APLEntity &lt;span id="line-163"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Distinct relationship (FK) column used for each subclass &lt;span id="line-164"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Still requires a discriminator column &lt;span id="line-165"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Duplicative @Where and @DiscriminatorColumn's (bit of a wart). &lt;span id="line-166"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-167"&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;This is Emmanuel Bernard's recommended approach, as being the most consistent between the object model and the relational model. &lt;span id="line-168"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-169"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Consequences are that pure JPA queries are no longer polymorphic (but Hibernate queries still should be). You can no longer have a relationship to the superclass ContactAssignment. It feels less "OO" since you are forced to push the relationship down to the subclass(es)... I want OO considerations to drive this, not O/R mapping considerations (transparency!). On the relational side, things get ugly. Each subclass requires its own FK column out to the APL_ENTITY table. Although this is probably why Emmanuel says it's the most consistent, I don't think it's worth the price. XOR columns like that don't play well with referential integrity. A given row should only have one value populated no matter how many subclasses you have. It make it harder to query and index, and conceptually make the design harder to understand--and it only gets worse as you add more subclasses to the mix. It also doesn't make sense to me to have a discriminator column and still require multiple FK cols. Here it is: &lt;span id="line-170"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-171"&gt;&lt;/span&gt;&lt;span id="line-172"&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span id="line-173"&gt;&lt;/span&gt;@Entity&lt;br /&gt;&lt;span id="line-174"&gt;&lt;/span&gt;@Inheritance(strategy=InheritanceType.SINGLE_TABLE)&lt;br /&gt;&lt;span id="line-175"&gt;&lt;/span&gt;@DiscriminatorColumn(name="internal_ind", discriminatorType = DiscriminatorType.STRING)&lt;br /&gt;&lt;span id="line-176"&gt;&lt;/span&gt;@Table(name="CAU_CONTACT_ASSIGNMENT") // Note: referencing a new modified table&lt;br /&gt;&lt;span id="line-177"&gt;&lt;/span&gt;public abstract class ContactAssignment {&lt;br /&gt;&lt;span id="line-178"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-179"&gt;&lt;/span&gt;   public abstract void setAplEntity(APLEntity aplEntity);&lt;br /&gt;&lt;span id="line-180"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-181"&gt;&lt;/span&gt;   public abstract APLEntity getAplEntity();&lt;br /&gt;&lt;span id="line-182"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-183"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-184"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-185"&gt;&lt;/span&gt;@Entity&lt;br /&gt;&lt;span id="line-186"&gt;&lt;/span&gt;@DiscriminatorValue("N")&lt;br /&gt;&lt;span id="line-187"&gt;&lt;/span&gt;public class ExternalContactAssignment extends&lt;br /&gt;&lt;span id="line-188"&gt;&lt;/span&gt;        ContactAssignment {&lt;br /&gt;&lt;span id="line-189"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-190"&gt;&lt;/span&gt;    // bidirectional&lt;br /&gt;&lt;span id="line-191"&gt;&lt;/span&gt;    @ManyToOne&lt;br /&gt;&lt;span id="line-193"&gt;&lt;/span&gt;    @JoinColumn(name="EXT_APL_ENTITY_SEQ_NUM")&lt;br /&gt;&lt;span id="line-194"&gt;&lt;/span&gt;    private APLEntity aplEntity;&lt;br /&gt;&lt;span id="line-195"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-196"&gt;&lt;/span&gt;    @Override&lt;br /&gt;&lt;span id="line-197"&gt;&lt;/span&gt;    public APLEntity getAplEntity() {&lt;br /&gt;&lt;span id="line-198"&gt;&lt;/span&gt;        return aplEntity;&lt;br /&gt;&lt;span id="line-199"&gt;&lt;/span&gt;    }&lt;br /&gt;&lt;span id="line-200"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-201"&gt;&lt;/span&gt;    @Override&lt;br /&gt;&lt;span id="line-202"&gt;&lt;/span&gt;    public void setAplEntity(APLEntity aplEntity) {&lt;br /&gt;&lt;span id="line-203"&gt;&lt;/span&gt;        this.aplEntity = aplEntity;&lt;br /&gt;&lt;span id="line-204"&gt;&lt;/span&gt;    }&lt;br /&gt;&lt;span id="line-205"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-206"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-207"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-208"&gt;&lt;/span&gt;@Entity&lt;br /&gt;&lt;span id="line-210"&gt;&lt;/span&gt;@Inheritance(strategy=InheritanceType.JOINED)&lt;br /&gt;&lt;span id="line-211"&gt;&lt;/span&gt;@Table(name="APL_ENTITY")&lt;br /&gt;&lt;span id="line-212"&gt;&lt;/span&gt;public abstract class APLEntity&lt;br /&gt;&lt;span id="line-213"&gt;&lt;/span&gt;    implements ExternalContactAssignable {&lt;br /&gt;&lt;span id="line-214"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-215"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-216"&gt;&lt;/span&gt;    @OneToMany(mappedBy="aplEntity", cascade={CascadeType.ALL})&lt;br /&gt;&lt;span id="line-217"&gt;&lt;/span&gt;    @org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)&lt;br /&gt;&lt;span id="line-218"&gt;&lt;/span&gt;    @org.hibernate.annotations.Where(clause="internal_ind='N'")      &lt;br /&gt;&lt;span id="line-219"&gt;&lt;/span&gt;    private List externalContactAssignments;&lt;br /&gt;&lt;span id="line-220"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-228"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-229"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;span id="line-230"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-231"&gt;&lt;/span&gt;&lt;br /&gt;&lt;h4 id="head-216086bf78eb61007378b0e13eac2691c48d3b55"&gt;Unidirectional Read Only Back-Reference&lt;/h4&gt;&lt;br /&gt;&lt;span id="line-232"&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;If I understand this correctly, this is basically ignoring Hibernate's ability to manage a bidirection relationship, and mapping a unidirectional read-only back reference from ContactAssignment to APLEntity. I believe this is what is discussed in Section 6.4.3 of &lt;em&gt;Java Persistence With Hibernate&lt;/em&gt;. Making the back reference read-only tells Hibernate not to do a duplicative update when a ContactAssignment changes an APLEntity reference. &lt;span id="line-233"&gt;&lt;/span&gt;Approach: &lt;span id="line-234"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;ContactAssignment is mapped with an @Entity. &lt;span id="line-235"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;ContactAssignment (superclass) maintains the references to !APLEntity &lt;span id="line-236"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Single table model &lt;span id="line-237"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Still requires a discriminator column &lt;span id="line-238"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;Duplicative @Where and @DiscriminatorColumn's (bit of a wart). &lt;span id="line-239"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-240"&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Emmanuel describes this approach as making the data design weaker. I'm not sure exactly how that is (or maybe what it means), or what tradeoff's are implied, but it's certainly is closest to what I was looking for: &lt;span id="line-241"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;no schema change required --&amp;gt; so no loss of relational integrity possible &lt;span id="line-242"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;scales easily with additional subclasses &lt;span id="line-243"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;p&gt;let's OO considerations drive domain model design &lt;span id="line-244"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span id="line-245"&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Here's what it looks like &lt;span id="line-246"&gt;&lt;/span&gt;&lt;span id="line-247"&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;@Entity&lt;br /&gt;&lt;span id="line-248"&gt;&lt;/span&gt;@Inheritance(strategy=InheritanceType.SINGLE_TABLE)&lt;br /&gt;&lt;span id="line-249"&gt;&lt;/span&gt;@DiscriminatorColumn(name="internal_ind", discriminatorType = DiscriminatorType.STRING)&lt;br /&gt;&lt;span id="line-250"&gt;&lt;/span&gt;@Table(name="CONTACT_ASSIGNMENT")&lt;br /&gt;&lt;span id="line-251"&gt;&lt;/span&gt;public abstract class ContactAssignment {&lt;br /&gt;&lt;span id="line-252"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-254"&gt;&lt;/span&gt;    @ManyToOne&lt;br /&gt;&lt;span id="line-255"&gt;&lt;/span&gt;    @JoinColumn(name="APL_ENTITY_SEQ_NUM", nullable=false)&lt;br /&gt;&lt;span id="line-256"&gt;&lt;/span&gt;    private APLEntity aplEntity;&lt;br /&gt;&lt;span id="line-257"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-258"&gt;&lt;/span&gt;    ...&lt;br /&gt;&lt;span id="line-259"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-260"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-261"&gt;&lt;/span&gt;@Entity&lt;br /&gt;&lt;span id="line-262"&gt;&lt;/span&gt;@DiscriminatorValue("N")&lt;br /&gt;&lt;span id="line-263"&gt;&lt;/span&gt;public class ExternalContactAssignment extends&lt;br /&gt;&lt;span id="line-264"&gt;&lt;/span&gt;        ContactAssignment {&lt;br /&gt;&lt;span id="line-265"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-266"&gt;&lt;/span&gt;   // not much needed&lt;br /&gt;&lt;span id="line-267"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;span id="line-268"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-269"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-270"&gt;&lt;/span&gt;@Entity&lt;br /&gt;&lt;span id="line-271"&gt;&lt;/span&gt;@org.hibernate.annotations.Entity&lt;br /&gt;&lt;span id="line-272"&gt;&lt;/span&gt;@Inheritance(strategy=InheritanceType.JOINED)&lt;br /&gt;&lt;span id="line-273"&gt;&lt;/span&gt;@Table(name="APL_ENTITY")&lt;br /&gt;&lt;span id="line-274"&gt;&lt;/span&gt;public abstract class APLEntity&lt;br /&gt;&lt;span id="line-275"&gt;&lt;/span&gt;    implements ExternalContactAssignable, Authorizable {&lt;br /&gt;&lt;span id="line-276"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-277"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-278"&gt;&lt;/span&gt;    @OneToMany(cascade={CascadeType.ALL})&lt;br /&gt;&lt;span id="line-279"&gt;&lt;/span&gt;    @JoinColumn(name="APL_ENTITY_SEQ_NUM", insertable=false, updatable=false)&lt;br /&gt;&lt;span id="line-280"&gt;&lt;/span&gt;    @org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN)       &lt;br /&gt;&lt;span id="line-281"&gt;&lt;/span&gt;    @org.hibernate.annotations.Where(clause="internal_ind='N'")      &lt;br /&gt;&lt;span id="line-282"&gt;&lt;/span&gt;    private List externalContactAssignments;&lt;br /&gt;&lt;span id="line-283"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="line-284"&gt;&lt;/span&gt;    ...&lt;br /&gt;&lt;span id="line-285"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Anyway, so I'll be moving ahead with this last approach as it is closest to what I want.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-1914251264200499874?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/1914251264200499874/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=1914251264200499874' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/1914251264200499874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/1914251264200499874'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/11/hibernate.html' title='[转载]Hibernate 继承中无法继承关联关系问题的解决方式'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5406704167661845862</id><published>2007-10-12T19:08:00.000+08:00</published><updated>2007-10-12T19:16:57.946+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Java Server'/><title type='text'>Tomcat Service使用JRockit JVM无法启动的解决办法</title><content type='html'>Tomcat Service使用JRockit JVM启动报错，而使用startup.bat则可以启动，后来翻看了Tomcat Bugzilla:&lt;a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39674"&gt;http://issues.apache.org/bugzilla/show_bug.cgi?id=39674&lt;/a&gt;，发现了如下的描述，才知道原来如此：&lt;br /&gt;in service.bat , the code follow:&lt;br /&gt;set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll&lt;br /&gt;if exist "%PR_JVM%" goto foundJvm&lt;br /&gt;rem Set the client jvm from JAVA_HOME&lt;br /&gt;set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll&lt;br /&gt;if exist "%PR_JVM%" goto foundJvm&lt;br /&gt;but this code did not check jrockit's jvm.dll.and jrockit neither have directory "server" nor have  directory "client" ,butnoly have  directory "jrockit" .eg:D:\Java\jrockit-R26.3.0-jdk1.5.0_06\jre\bin\jrockit\jvm.dll.when set JAVA_HOME to jrockit for windows service and statr it ,it could not started .errot message: "&lt;br /&gt;Apache Tomcat &amp;#26381;&amp;#21153;&amp;#22240; 0 (0x0) &amp;#26381;&amp;#21153;&amp;#24615;&amp;#38169;&amp;#35823;&amp;#32780;&amp;#20572;&amp;#27490;&amp;#12290;"&lt;br /&gt;so the bat file  should add follow code:&lt;br /&gt;-------------set PR_JVM=%JAVA_HOME%\jre\bin\jrockit\jvm.dllif exist "%PR_JVM%" goto foundJvm-------------&lt;br /&gt;to be  follow:&lt;br /&gt;set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll&lt;br /&gt;if exist "%PR_JVM%" goto foundJvm&lt;br /&gt;rem Set the client jvm from JAVA_HOME&lt;br /&gt;set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll&lt;br /&gt;if exist "%PR_JVM%" goto foundJvm&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;rem Set the BEA JRockit jvm from JAVA_HOME&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;set PR_JVM=%JAVA_HOME%\jre\bin\jrockit\jvm.dll&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;if exist "%PR_JVM%" goto foundJvm&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;也就是先删除已安装的Tomcat Service，然后找到service.bat，翻到上述部分，加入红色字体的内容，然后再service.bat install就OK了，呵呵。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5406704167661845862?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5406704167661845862/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5406704167661845862' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5406704167661845862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5406704167661845862'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/10/tomcat-servicejrockit-jvm.html' title='Tomcat Service使用JRockit JVM无法启动的解决办法'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-7019394685924607110</id><published>2007-07-10T10:04:00.000+08:00</published><updated>2007-07-10T10:13:33.799+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>神奇的中国文字</title><content type='html'>收录过《羿裔熠邑彝》，未料同类颇多，收录于一地，博一笑。&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;4、《易姨医胰》  易姨悒悒，依议诣夷医。医疑胰疫，遗意易姨倚椅，以异仪移姨胰，弋异蚁一亿，胰液溢，蚁殪，胰以医。易胰怡怡，贻医一夷衣。医衣夷衣，怡怡奕奕。噫！以蚁医胰，异矣！以夷衣贻夷医亦宜矣！ &lt;br /&gt;&lt;br /&gt;5、《于瑜与余欲渔遇雨》  作者：杨富森  于瑜欲渔，遇余于寓。语余：“余欲渔于渝淤，与余渔渝欤？”余语与瑜：“余欲鬻玉，俞禹欲玉，余欲遇俞于俞寓。”余与于瑜遇俞禹于俞寓，逾俞隅，欲鬻玉于俞，遇雨，雨逾俞宇。余语于瑜：“余欲渔于渝淤，遇雨俞寓，雨逾俞宇，欲渔欤？鬻玉欤？”于瑜与余御雨于俞寓，俞鬻玉于余禹，雨愈，余与于瑜踽踽逾俞宇，渔于渝淤。&lt;br /&gt;&lt;br /&gt;6、《熙戏犀》 赵元任  西溪犀，喜嬉戏。席熙夕夕携犀徙，席熙细细习洗犀。犀吸溪，戏袭熙。席熙嘻嘻希息戏。惜犀嘶嘶喜袭熙。 &lt;br /&gt;&lt;br /&gt;7、《饥鸡集矶记》  唧唧鸡，鸡唧唧。几鸡挤挤集矶脊。机极疾，鸡饥极，鸡冀己技击及鲫。机既济蓟畿，鸡计疾机激几鲫。机疾极，鲫极悸，急急挤集矶级际。继即鲫迹极寂寂，继即几鸡既饥，即唧唧 &lt;br /&gt;&lt;br /&gt;8、《芝侄治痔志》芝之稚侄郅，至智，知制纸，知织帜，芝痔炙痔，侄至芝址，知之知芷汁治痔，至芷址，执芷枝，  蜘至，踯侄，执直枝掷之，蜘止，侄执芷枝至芝，芝执芷治痔，痔止。 &lt;br /&gt;&lt;br /&gt;9、最后也是最变态的：  《羿裔熠邑彝》  羿裔熠，邑彝，义医，艺诣。  熠姨遗一裔伊，伊仪迤，衣旖，异奕矣。  熠意伊矣，易衣以贻伊，伊遗衣，衣异衣以意异熠，熠抑矣。  伊驿邑，弋一翳，弈毅。毅仪奕，诣弈，衣异，意逸。毅诣伊，益伊，伊怡，已臆毅矣，毅亦怡伊。  翌，伊亦弈毅。毅以蜴贻伊，伊亦贻衣以毅。  伊疫，呓毅，癔异矣，倚椅咿咿，毅亦咿咿。  毅诣熠，意以熠，议熠医伊，熠懿毅，意役毅逸。毅以熠宜伊，翼逸。  熠驿邑以医伊，疑伊胰痍，以蚁医伊，伊遗异，溢，伊咦。熠移伊，刈薏以医，伊益矣。  伊忆毅，亦呓毅矣，熠意伊毅已逸，熠意役伊。伊异，噫，缢。  熠癔，亦缢。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-7019394685924607110?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/7019394685924607110/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=7019394685924607110' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7019394685924607110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7019394685924607110'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/07/blog-post_10.html' title='神奇的中国文字'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-6135512971319645672</id><published>2007-07-05T10:34:00.000+08:00</published><updated>2007-07-05T10:40:44.847+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>有人游青藏</title><content type='html'>07-06-25 20:37&lt;br /&gt;我们下周骑行青藏线&lt;br /&gt;&lt;br /&gt;07-07-02 17:50&lt;br /&gt;我们骑行在青海湖边，吹着习习的凉风，不过头比较痛，喉咙感觉要冒烟&lt;br /&gt;&lt;br /&gt;07-07-03 13:21&lt;br /&gt;八点一刻从黑马河向鸟岛进发，里程七十，一路风景为典型XP桌面风格，小逆风，缓上坡，以蜗牛时速十来公里前进，不时停下来喝水，拍照，擦鼻涕&lt;br /&gt;&lt;br /&gt;07-07-04 15:36&lt;br /&gt;帮我查一下有没有青海西海镇到格尔木的车，火车，汽车什么车都行&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-6135512971319645672?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/6135512971319645672/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=6135512971319645672' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6135512971319645672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6135512971319645672'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/07/blog-post_2231.html' title='有人游青藏'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3664775607795738467</id><published>2007-07-05T10:04:00.000+08:00</published><updated>2007-07-05T10:33:39.358+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>[转]一位成功者的职场感悟</title><content type='html'>第一次听到职商，也许是本文作者因做培训行业而“炒”的概念。通篇看完，主要是劝诫职场人收起浮躁的心，努力从一件小事儿做起，在工作中积极主动，慢慢就会成功。不敢完全苟同，但也不否认积极因素，且看之。&lt;br /&gt;&lt;br /&gt;为何在初入职场时走上自杀道路&lt;br /&gt;　　“一个人要取得大成就，什么是最关键的因素？”&lt;br /&gt;　　这个问题在我的一生中，曾出现过无数次。&lt;br /&gt;　　在刚参加工作时，我曾问过别人这个问题；在做了老总和培训师后，我又曾无数次被问到过这个问题。&lt;br /&gt;　　在人人都追求成功的时代，这个问题显得尤为重要，使我不得不对它认真思考，做出回答。&lt;br /&gt;　　每次回答这个问题的时候，我总会想到比尔·盖茨、李嘉诚等著名人物的奋斗史，当然也有我身边一些普通人的成功经历，但我想得最多的还是自己的人生历程。&lt;br /&gt;　　在我20多年的职业生涯中，曾经历过曲折甚至惨败，但最终还是一步步走向成功，到底是什么推动我走向成功呢？&lt;br /&gt;　　每当我想到这个问题的时候，当初自己走过的每一步都重新浮现在眼前。我深深地感到：真正决定个人成败的不在于能力、学识，甚至也不是理想，而是职商！职商才是成就一个人事业的关键。&lt;br /&gt;　　职商是一个全新的概念，它的含义是：在职场中成功的素养及智慧。&lt;br /&gt;　　我们都知道有智商、情商、逆商等，而职商作为一个新的概念，它有什么特定的价值？&lt;br /&gt;　　很多成功人士的奋斗经历告诉我们：一个人的成就基本上是在工作中产生的，因此，职业素养和智慧就显得至关重要。&lt;br /&gt;　　换言之，一个人一生的成就，主要来自于自己的职商，而我个人的经历更是说明了这一点。&lt;br /&gt;　　我出生在一个贫穷的山村，经过努力考上了重点大学，并成为学校最优秀的学生之一。&lt;br /&gt;　　在学校，我是班里发表文章最多的一个，还得过全校学生业余科研成果奖。毕业前夕，校长亲自为全校一批有才华的人颁奖，其中就包括我。&lt;br /&gt;　　毕业后，别人都按照学校的分配去了各自的单位，我却反其道而行之：自己去找工作。就这样，我成了中国最早一批自己找工作的大学生中的一员。&lt;br /&gt;　　一生成就看职商一流员工的职业素养一生成就看职商一流员工的职业素养第一章从自杀者到职场成功者的感悟第一章从自杀者到职场成功者的感悟当我走进武昌火车站，准备去长沙找工作时，昔日的同窗好友，一个分配到北京工作的同学来为我送行，他有些伤感地看着我，很为我的前途感到担忧。而那时的我豪情万丈，在火车开出的那一刹那，我冲他挥了挥手，豪迈地说：“10年后再见！”&lt;br /&gt;　　但令我没想到的是，生活远远没有我想象的简单，很快，满腔热血的我就经受了巨大的震荡。&lt;br /&gt;　　费尽求职的周折后，我终于敲开了一家著名省报的大门。然而迎接我的，却是人生的第一记闷棒。&lt;br /&gt;　　原以为凭着自己的专业和学历，进了报社很快就会大展宏图。不料，领导却安排我和另外几个刚毕业的大学生去做校对，每天工作到凌晨2点。这和我当初的设想简直相差十万八千里，失落的心情可想而知，甚至认为领导看不起我们，情急之下，我们决定“罢工”。&lt;br /&gt;　　虽然“罢工”取得了“成功”，我们被调到了采访部门，但却给领导留下了“不服管”的恶劣印象。&lt;br /&gt;　　到采访部门后不久，第二记闷棒紧接着就来了：重要的采访任务从来轮不到我们，我们接手的都是些小报道。&lt;br /&gt;　　等到终于有机会采访重要新闻了，我所看到的，却又大多是平时不愿意看到的阴暗面。这与我在大学里想象的生活有天壤之别，我的心灵受到了前所未有的强烈震撼。&lt;br /&gt;　　后来报社虽然勉勉强强让我转了正，但是这时的我，在同事和领导眼里已经成了一个大事做不成、小事又不愿干的人。难道我真的是他们所说的那样吗？我一度感到十分压抑。&lt;br /&gt;　　我想辞职，但又不甘心，在大学里我发表了那么多文章，我的才华和能力受到那么多老师甚至校长的肯定，为什么在工作中却处处碰壁？&lt;br /&gt;　　于是，我决定去找社长谈谈。一天下班后，我带着自己的作品敲开了社长家的门，社长见到我很惊讶。我说明了找他的原因，激动地将自己工作以来的失意、梦想和矛盾全部告诉了他。&lt;br /&gt;　　在听了我近两小时慷慨激昂的“演讲”后，社长只是淡淡地说了句：“很晚了，早点回去吧，好好干，会有大发展的。”本以为会得到社长的理解和支持，没想到……&lt;br /&gt;　　走出社长的家，种种失意一齐涌上心头，我的心凉到了极点。抬头一看，几颗寒星挂在天上。一阵秋风吹过，竟有一串凉凉的东西从我脸上滑落。我以为下雨了，伸手摸了摸，没想到是泪。&lt;br /&gt;　　在这种心灵的煎熬与思想的斗争中，我终于不堪负荷，病倒了，在老家休养了几个月，心情一直十分低落。&lt;br /&gt;　　大病初愈后，我漫步到湘江大桥。生活怎么是这样？怎么能是这样？……我不断地问自己。巨大的幻灭感和绝望感使我突然觉得活着是一种巨大的负担。于是，我一步步跨向栏杆……&lt;br /&gt;　　从死神怀抱中重新回到生活中来，我为自己曾做出如此愚蠢的举动而后怕，也不得不开始反思是什么导致我做出如此愚蠢的举动。这时，耳边突然响起普希金的诗：“朋友啊，不要忧伤，生活本来是这样。”&lt;br /&gt;　　它犹如当头棒喝：我一直在责怪生活，其实该责怪的是我对生活的片面认识！&lt;br /&gt;　　就这样，我从死亡的边缘重新回到了现实，从虚幻的人生设想中惊醒过来，开始正视我的生活和工作态度。&lt;br /&gt;　　我开始明白，生活没有错，错的是我对生活的认识，单位也并没有太多的错，错的是我自己对工作的态度。&lt;br /&gt;&lt;br /&gt;被300个字改变命运&lt;br /&gt;　　尽管决定了要改变自己的态度，可到底该怎么改？我又一次陷入迷茫。&lt;br /&gt;　　一天晚上，都一点多了，我还翻来覆去地睡不着，后来把同屋的老记者给吵醒了。&lt;br /&gt;　　他迷迷糊糊地坐起来问我怎么回事？我对他说：“老吴，我困惑啊！”&lt;br /&gt;　　我们可以想象一下，如果换成是你，半夜睡得正香的时候，被人吵醒，本来就已经很不高兴了，更何况他还要跟你说他的困惑。&lt;br /&gt;　　这个老记者一下子就火了，冲着我喊了一句：&lt;br /&gt;　　“困惑困惑，整天就知道困惑，你就长着一张困惑的脸。”&lt;br /&gt;　　接着他平静了一下，语重心长地对我说：&lt;br /&gt;　　“人为何要那么傻呢，为什么不先主动做好一件事给别人看呢。”&lt;br /&gt;　　这句话一下子就将我惊醒了：我一直挑剔单位，而不是埋头干事，没有一点儿成绩，却又处处要求单位重视我，这怎么可能？&lt;br /&gt;　　从那时起，我就决定以自己的主动和成绩来赢得别人的信任。&lt;br /&gt;　　不久，机会来了。一次，单位组织去旅游，路过某地的时候，大家停下来休息。我四处转了转，无意中走进一家商店，发现里面的商品琳琅满目，生意很红火，于是就和这家店的老板聊起了天。&lt;br /&gt;　　回报社后，我以这家商店为引子，写了一篇关于当地经济发展的稿子，总共300多字。&lt;br /&gt;　　虽然字数不多，可领导看了后却表扬了我。因为社里本来没有给我安排任务，我却表现得很主动。&lt;br /&gt;　　这是我进入报社一年多来，第一次受到表扬。心里的兴奋自不用说，更重要的是它让我更加明白：与其处处挑剔，不如主动做事。&lt;br /&gt;　　从此以后，我学会了在工作中主动出击，领导分配给我的每一个任务，即使是很小很琐碎的，我都会认真完成，争取做到最好。&lt;br /&gt;　　此外，业余时间我也在不停地思考，寻找新闻线索，真正成为了全天候的记者。这样的主动、不挑剔，最终成就了我。&lt;br /&gt;　　两个月后，我回家探亲，在没有任务的前提下，我利用假期时间采访了当地贫困山区的生存现状和存在的问题。&lt;br /&gt;　　回单位后，我写了一篇长篇报道，刊发后引起了很大的轰动。其中反映的问题引起了中央的重视，并很快拿出了解决措施，将县里的旧领导班子换掉，下拨了部分资金，用以救济贫困山区。&lt;br /&gt;　　不久后，我被选去参加中宣部和经济体制改革委员会召开的经验交流会，并在会上发言。当时我刚23岁，是最年轻的代表。&lt;br /&gt;　　后来，我又做了一次轰动全省的报道。因此，省政府还专门为我开了一次庆功大会，会上，省委宣传部部长号召全省记者向我学习。让我感触最深的是，社长也在会上号召全社向我学习，我不禁想起了两年前我们谈话的那晚。&lt;br /&gt;　　不过是短短两年的时间，我实现了从不得志的自杀者到知名记者的巨大跨越。是什么让我有如此大的改变？&lt;br /&gt;　　我认为，这就是职商，在两年内我完成了3个转换：&lt;br /&gt;　　从被动工作到主动工作；&lt;br /&gt;　　从凡事挑剔到不找借口找方法；&lt;br /&gt;　　从游离于单位外的自然人到自觉遵守单位规定的单位人。&lt;br /&gt;　　每次回忆这段从失败到成功的经历，我都会想起比尔·盖茨写给大学生的11句格言，尤其是其中两条：&lt;br /&gt;　　（1）“生活是不公平的，要学会适应它。”&lt;br /&gt;　　这句话说得太好了，比尔·盖茨是改变世界的人，他将世界带入信息社会，但是，这样一个改变世界的人，却说要首先适应世界。这说明：你挑剔世界并没用，不管生活的波涛如何汹涌，你都先得跳到里面学会游泳。&lt;br /&gt;　　（2）“这世界并不在乎你的自尊，他期望你在自我感觉良好之前有所成就。”&lt;br /&gt;　　这是比尔·盖茨对尊严的看法，在一次公司的小组会上，大家对此观点进行了激烈的讨论，其中有三个观点，十分恰当地概括了比尔·盖茨这句话的价值：&lt;br /&gt;　　第一个人说：“一个人不管是初出茅庐的学生还是职场老手，对他个人而言，尊严占很大比重，但对公司而言，只有做出成就，才能实现真正意义上的尊严。”&lt;br /&gt;　　第二个人说：“强者用能力取胜，让别人给予他尊严；弱者需要别人在乎他、同情他、理解他的尊严。”&lt;br /&gt;　　最后一个人说：“每个人都认为自己是世界的中心，将自己的尊严看得重要无比。但是，单位不会为你的尊严买单，只会为你做出的成就买单。”&lt;br /&gt;　　多一分主动，就多一份希望；先适应世界，才可以改变世界……尽管现在，我已记不清那300字的文章标题，但这300字所透露的精神永久地刻在了我心里，它成就了我，使我开始从一个失败者走向成功。&lt;br /&gt;进入中国青年报社后找到&lt;br /&gt;　　职场腾飞的关键在省报干了几年后，我在众多应聘者中脱颖而出，进入了中国青年报社。&lt;br /&gt;　　中国青年报社一向非常注重个人发展，我感觉自己就像进入了新闻的自由天堂一样，工作格外起劲。&lt;br /&gt;　　采访中央领导、得各种新闻奖，这些都让我真正感受到了人生的价值。&lt;br /&gt;　　可没想到的是，就在此时，我再次遭遇了职业瓶颈：做事并不讨好，成功得来的并不都是大家的掌声，还有无形的阻力。我隐隐地感到：领导对我并不重视，同事与我关系也不是十分融洽。&lt;br /&gt;　　我不明白为什么会这样，难道中国青年报社不是讲求个人成功的地方吗？为什么我干好了工作，大家对我还不认账？&lt;br /&gt;　　后来，我的师姐，也是我的顶头上司，很有深意地送了一本湖南作家唐浩明写的《曾国藩》给我。&lt;br /&gt;　　开始我并没有在意，只把它当一本普通的书看。可越往下读，越觉得有意思，从中领悟到了不少职场的智慧。&lt;br /&gt;　　曾国藩38岁就位居要职，相当于现在的副部长。他苦练湘军，打仗取得了巨大胜利。可就在他做得最好的时候，也是他最失意的时候。&lt;br /&gt;　　皇上讨厌他，大臣排挤他，连他最好的朋友左宗棠也骂他虚伪。他一气之下回到了湖南老家，非常苦闷，最严重的时候，甚至吐过血。&lt;br /&gt;　　这时候，在他弟弟的引荐下，他认识了一位老道士，老道士建议他细读《老子》、《庄子》。静心研读一遍之后，曾国藩深有感慨，总结出了一句话：“大柔非柔，至刚无刚。”&lt;br /&gt;　　所谓“大柔非柔”，是说一个柔和的人，并不代表柔弱。而“至刚无刚”，是指内在刚猛的人，并不需要给人一种刚硬的感觉。也就是说在处理和别人关系时，一定要表现出柔和的一面，不要显得过于刚硬。&lt;br /&gt;　　从此，曾国藩一改以往咄咄逼人的态度，变得处处考虑别人的感受，处处考虑环境的影响。于是，他越走越顺，终于进入了职场的零阻力状态。&lt;br /&gt;　　我们在职场中经常会遇到一个误区，认为自己是一个好人，而且有能力，理所当然就应该成功。但曾国藩的例子给我们敲了一个警钟：你是一个好人，你有能力，并不代表着你就一定能取得成功。&lt;br /&gt;　　从曾国藩的经历中，我找到了职场中从失败到成功的关键：不仅要做好工作本身，而且要懂得处理好与环境的关系。&lt;br /&gt;　　如果眼中只有自己，不懂得处理自己与环境的关系，就无法在职场中取得成功。&lt;br /&gt;　　当时我有一位非常出色的朋友也在读《曾国藩》。他在读完《曾国藩》后，还总结出了一个“四气”理论：“锐气藏于胸，和气浮于脸，才气现于事，义气示于人。”&lt;br /&gt;　　（1）锐气藏于胸：人一定要有锐气，没有锐气就没有生命力。但是，运用锐气要有智慧，智慧就是“藏”，要把锐气藏在胸中。如果放在外面，咄咄逼人，不仅会伤别人，更容易伤自己，而藏起来，就能成为最大的生命力。&lt;br /&gt;　　（2）和气浮于脸：跟人打交道，要学会一团和气。和气能使人更容易接纳你，为你打开更大的空间。&lt;br /&gt;　　蒙牛集团在打造自己的企业文化时，有这么几句格言：“太阳光大，父母恩大。君子量大，小人气大。”君子与小人的区别就在于量大还是气大。&lt;br /&gt;　　（3）才气现于事：才气不是挂在嘴上的，而是体现在具体事情当中，只有将一件事情做好之后，才能真正体现你的价值。&lt;br /&gt;　　（4）义气示于人：义气在这里有两层涵义。第一，我是一个为别人服务的人，第二，我是能够承担责任的人。能够承担的责任越大，你将来的发展空间就越大。&lt;br /&gt;　　读完《曾国藩》后，我和朋友在职场中都取得了一个很大的飞跃。同时，我也明白了，在职场中最关键的就是处理好和别人、和环境的关系。&lt;br /&gt;　　而要处理好和别人的关系首先要处理好和自己的关系，不要“自以为义”。这与基督教里的一个理念是相符的，“不要把自己封为正义的化身”。&lt;br /&gt;　　职场中人要时刻培养自己的谦卑心、谦恭心，要有时刻归零的心态。有了这个心态，才能去掉工作中的阻碍，才能在职场中越走越顺。&lt;br /&gt;　　我曾像曾国藩一样走入了一个误区：我是好人，我有能力，我应该取得成功。但事实情况并不如此，你还要懂得处理与环境、与自己、与别人的关系。这就像一个三角形，缺一不可，否则就不稳定。&lt;br /&gt;　　仅仅做一个好人并不够，还必须有智慧，特别是要有处理好三方面关系的智慧，这样，你才能在职场中找到真正的自己。&lt;br /&gt;&lt;br /&gt;自己当老总以后的感悟&lt;br /&gt;　　当了10多年记者之后，我曾在香港、美国一些著名机构做过副总裁、总裁，后来，又创业成立了自己的培训和传播机构。&lt;br /&gt;　　自己担任高级管理者以后，我对用人有过很多思考：为什么有的员工天赋并不高，但却能够越做越好，最终得到重用？而有的员工看上去很聪明，但却得不到领导的器重，甚至最后只能离开公司？&lt;br /&gt;　　这其实和职商有很大的关系。&lt;br /&gt;　　我们公司有一位员工，我们的缘分起源于一堂课。他大学毕业那年，我到他们学校进行了一次演讲。之后，他主动和我联系，希望能到我当时做总裁的那家美国机构工作，但我没答应。&lt;br /&gt;　　两年后，我自己创业，他已经是一所民办大学的外联部主任，他再次要求到我的公司工作。他当时的职位不错，而我的公司才刚刚起步，我犹豫再三，没有马上答应。&lt;br /&gt;　　当时我们公司推出了一个“白领成功培训班”，他知道后，二话没说，利用周末时间主动到地铁里帮我们发宣传单，这让我非常感动。就这样，他进了我的公司。&lt;br /&gt;　　当时，我让他负责业务，由于以前从没做过业务，加上又是“文人”背景出身，他进了公司两个月，还没有做成一笔业务。到发工资的那天，他做了一个让我意想不到的举动：坚决不要工资！&lt;br /&gt;　　他说：“我没有做成一笔业务，感觉对不起公司，所以我不要工资。但是，我相信我肯定能行。”&lt;br /&gt;　　工资当然还是给了他，但他这番话，让我很有感触，于是送了他一句话：“总有一扇大门会为你打开”。&lt;br /&gt;　　果然，经过他的努力，在第三个月的时候，他做成了一笔大业务。慢慢地，他越来越自信，业绩也越来越好。&lt;br /&gt;　　第四个月，他成为我们公司的主任；第八个月，被任命为总经理助理。&lt;br /&gt;　　这就是一个高职商的典型例子。一个员工，只要能自动自发地做好一切，哪怕起点低一点，也会有大发展。因为，这样的员工无论到哪里，都是老板心目中的一流员工。&lt;br /&gt;　　我们公司还有一个员工，刚进公司的时候，虽然落落大方，但并不算太出色，因此，我对她不太在意。&lt;br /&gt;　　但慢慢地，我发现她能自动自发地做事。她本来只是我的课程助理，却常常做些“分外事”：看到文秘很忙，就主动帮忙整理书稿；见公司的两个网站没有人管理，就主动承担起网管的职责；见办公室很乱，就会自觉地帮忙整理……总是不断帮助公司发展。&lt;br /&gt;　　不久，我将她提拔为办公室副主任；再后来，又升为主任。&lt;br /&gt;　　在工作中，要懂得抓住机会，要保持一个时刻准备的头脑，这样，才能让你的才华得以展现。&lt;br /&gt;　　在我的公司就有一个员工，她刚进公司的时候并不是特别显眼，因为她相对其他员工来说，并没有太多专业上的优势。&lt;br /&gt;　　有一次，我需要找一些讲课的材料，因为太忙没时间找，就把这个任务交给了她。&lt;br /&gt;　　结果，她一下子给我找了好几万字的材料，但我根本没时间一一去消化，怎么办？于是我对她说：&lt;br /&gt;　　“你将今天所找的材料中觉得不错的例子给我讲讲吧。”&lt;br /&gt;　　就这样，她一边讲，我一边听。这时，我突然发现她有一个特长：故事讲得很生动。&lt;br /&gt;　　于是第二天，我就带着她去讲课了，并且还大胆地让她给学员讲故事。当时，她就和我一样以老师的身份出现，尽管台下坐的都是老总，但她表现得非常自信、大方，而且故事讲得很精彩，台下的那些老总都听得很入神。&lt;br /&gt;　　从那以后，每次需要材料的时候，我都会找她。其实这些机会是她自己创造的，只有让老总看到自己的闪光点，才能有机会真正闪光。&lt;br /&gt;　　做一粒想尽办法让自己发光的金子，这就是职商，而不具备这种智慧，即使是一粒金子，也可能会被自己抹杀掉光芒。&lt;br /&gt;　　在经营公司的过程中，每次招聘的时候，我都会遇到一些夸夸其谈的人。开始的时候，我也曾被那些口若悬河的假象所迷惑，但慢慢地，我发现那些过分强调自我、不干实事的人，往往都不会有大的发展。尽管有些员工进公司的时候起点很高，可很快就会待不下去，最终只能离开。&lt;br /&gt;　　我们公司也曾经有过这样一位员工，一次我让她到北大送一份材料，她很快就回来了。我以为她已经送到了，谁知一问，她根本就没送过去，理由是“我尽力了，但没找到地方”。&lt;br /&gt;　　我非常生气，怎么可以这样？这么简单的一件事都做不好，居然还说自己尽力了。这是非常缺乏职商的表现。结果，一个星期后我就让她离开了。因为，这样的员工，不仅自己不会有发展，而且还会阻止公司的发展。&lt;br /&gt;　　这样缺乏职商的现象其实并不少。在我担任过总裁的几个单位里，我还发现还有少数取得成就的人，在自己有了一点点成就之后，就觉得自己了不起了，于是，他（或她）便成了单位里发展进步最慢的人。当他们还在陶醉于自己既有成就的时候，其他人便很快超越他们了……&lt;br /&gt;　　这正应了著名管理学家的理论：卓越是优秀的大敌……&lt;br /&gt;　　从自己的切身体会以及公司员工身上，我得出一个结论：职商是一个职场人士不可缺少的职业商数，它是我们在职场中获得成功的关键。因为，成功或不成功并不单单取决于你现有的能力，更在于你有没有一个好的职商。&lt;br /&gt;　　从很多成功人士的身上，我们都能看到职商的作用。&lt;br /&gt;　　蒙牛集团的老总牛根生，最初只是伊利集团一名普通的洗奶瓶员工，可哪怕洗奶瓶，他也要洗得出色。后来，他成为了伊利集团的副总，再后来，就有了现在的蒙牛集团。&lt;br /&gt;　　蒙牛集团作为连续三年发展速度最快的企业，它的成功，不能不说与牛根生的职商有着莫大的联系。&lt;br /&gt;　　一个人如果有好的职商，处处都能找到让自己闪光的机会！&lt;br /&gt;　　一个人没有好的职商，到哪里都不可能取得成功！&lt;br /&gt;　　一生成就看职商！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3664775607795738467?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3664775607795738467/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3664775607795738467' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3664775607795738467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3664775607795738467'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/07/blog-post_05.html' title='[转]一位成功者的职场感悟'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-9170577764586425143</id><published>2007-07-01T19:17:00.000+08:00</published><updated>2007-07-01T19:28:28.261+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>液晶显示器点距对照表</title><content type='html'>12.1英寸 (800×600) - 0.308 毫米&lt;br /&gt;12.1英寸 (1024×768) - 0.240 毫米&lt;br /&gt;14.1英寸 (1024×768) - 0.279 毫米&lt;br /&gt;14.1英寸 (1400×1050) - 0.204 毫米&lt;br /&gt;15英寸 (1024×768) - 0.297 毫米&lt;br /&gt;15英寸 (1400×1050) - 0.218 毫米&lt;br /&gt;15英寸 (1600×1200) - 0.190 毫米&lt;br /&gt;16英寸 (1280×1024) - 0.248 毫米&lt;br /&gt;17英寸 (1280×1024) - 0.264 毫米&lt;br /&gt;17英寸宽屏 (1280×768) - 0.2895 毫米&lt;br /&gt;17.4英寸 (1280×1024) - 0.27 毫米&lt;br /&gt;18英寸 (1280×1024) - 0.281 毫米&lt;br /&gt;19英寸 (1280×1024) - 0.294 毫米&lt;br /&gt;19英寸 (1600×1200) - 0.242 毫米&lt;br /&gt;19英寸宽屏 (1680×1050) - 0.243 毫米&lt;br /&gt;20英寸宽屏 (1680×1050) - 0.258 毫米&lt;br /&gt;20.1英寸 (1200×1024) - 0.312 毫米&lt;br /&gt;20.1英寸 (1600×1200) - 0.255 毫米&lt;br /&gt;20.1英寸 (2560×2048) - 0.156 毫米&lt;br /&gt;20.8英寸 (2048×1536) - 0.207 毫米&lt;br /&gt;21.3英寸 (1600×1200) - 0.27 毫米&lt;br /&gt;21.3英寸 (2048×1536) - 0.21 毫米&lt;br /&gt;22英寸宽屏 (1600×1024) - 0.294 毫米&lt;br /&gt;22.2英寸 (3840×2400) - 0.1245 毫米&lt;br /&gt;23英寸宽屏 (1920×1200) - 0.258 毫米&lt;br /&gt;23.1英寸 (1600×1200) - 0.294 毫米&lt;br /&gt;&lt;br /&gt;这张表有啥用？选购液晶的一个参考：点距越大，屏幕字体越大，看文字就越舒服；点距越小，屏幕的点越密，看电影和图片就越爽，呵呵，看你主要的用途来选购了哦。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-9170577764586425143?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/9170577764586425143/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=9170577764586425143' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/9170577764586425143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/9170577764586425143'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/07/blog-post.html' title='液晶显示器点距对照表'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-7347457297337747818</id><published>2007-06-29T17:41:00.000+08:00</published><updated>2007-06-29T18:00:20.864+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>蘑菇点点(菌菇村)表情列表</title><content type='html'>看来点点的魅力还是蛮大的啊，好多人都想要它啊（羡慕ing...），特别收集了点点的一些链接，方便下载(比官网方便)：&lt;br /&gt;菌菇村(官方网站)：&lt;a href="http://blog.sina.com.cn/jungucun"&gt;http://blog.sina.com.cn/jungucun&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;QQ表情包下载地址集合：&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10556"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10556&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10599"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10599&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10612"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10612&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10627"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10627&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10646"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10646&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10662"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10662&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10677"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10677&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10698"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10698&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10724"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10724&lt;/a&gt;&lt;br /&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10771"&gt;http://im.qq.com/cgi-bin/face/face_detail?id=10771&lt;/a&gt;&lt;a href="http://im.qq.com/cgi-bin/face/face_detail?id=10556"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;呼，拼网址累死了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-7347457297337747818?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/7347457297337747818/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=7347457297337747818' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7347457297337747818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7347457297337747818'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/06/blog-post_29.html' title='蘑菇点点(菌菇村)表情列表'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-2690350029441749716</id><published>2007-06-29T10:59:00.000+08:00</published><updated>2007-06-29T11:08:45.868+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>2007杀毒软件排名</title><content type='html'>&lt;p&gt;&lt;a class="site_nav_header" href="http://anti-virus-software-review.toptenreviews.com/"&gt;Anti-Virus Software Reviews 2007&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#Gold &lt;a href="http://anti-virus-software-review.toptenreviews.com/bitdefender-review.html"&gt;BitDefender&lt;/a&gt;&lt;br /&gt;#Silver &lt;a href="http://anti-virus-software-review.toptenreviews.com/kaspersky-review.html"&gt;Kaspersky&lt;/a&gt;&lt;br /&gt;#Bronze &lt;a href="http://anti-virus-software-review.toptenreviews.com/eset-nod32-review.html"&gt;ESET Nod32&lt;/a&gt;&lt;br /&gt;#4 &lt;a href="http://anti-virus-software-review.toptenreviews.com/pc-cillin-review.html"&gt;PC-cillin&lt;/a&gt;&lt;br /&gt;#5 &lt;a href="http://anti-virus-software-review.toptenreviews.com/f-secure-review.html"&gt;F-Secure Anti-Virus&lt;/a&gt;&lt;br /&gt;#6 &lt;a href="http://anti-virus-software-review.toptenreviews.com/mcafee-review.html"&gt;McAfee VirusScan&lt;/a&gt;&lt;br /&gt;#7 &lt;a href="http://anti-virus-software-review.toptenreviews.com/norton-review.html"&gt;Norton AntiVirus&lt;/a&gt;&lt;br /&gt;#8 &lt;a href="http://anti-virus-software-review.toptenreviews.com/avg-review.html"&gt;AVG Anti-Virus Pro&lt;/a&gt;&lt;br /&gt;#9 &lt;a href="http://anti-virus-software-review.toptenreviews.com/ca-antivirus-review.html"&gt;CA Antivirus&lt;/a&gt;&lt;br /&gt;#10 &lt;a href="http://anti-virus-software-review.toptenreviews.com/norman-review.html"&gt;Norman Virus Control&lt;/a&gt;&lt;br /&gt;#11 &lt;a href="http://anti-virus-software-review.toptenreviews.com/antiviruskit-review.html"&gt;AntiVirusKit&lt;/a&gt;&lt;br /&gt;#12 &lt;a href="http://anti-virus-software-review.toptenreviews.com/avast-review.html"&gt;AVAST!&lt;/a&gt;&lt;br /&gt;#13 &lt;a href="http://anti-virus-software-review.toptenreviews.com/panda-review.html"&gt;Panda Titanium&lt;/a&gt;&lt;br /&gt;#14 &lt;a href="http://anti-virus-software-review.toptenreviews.com/f-prot-review.html"&gt;F-Prot&lt;/a&gt;&lt;br /&gt;#15 &lt;a href="http://anti-virus-software-review.toptenreviews.com/pctools-antivirus-review.html"&gt;PC Tools AntiVirus&lt;/a&gt;&lt;br /&gt;#16 &lt;a href="http://anti-virus-software-review.toptenreviews.com/virobot-review.html"&gt;ViRobot&lt;/a&gt;&lt;br /&gt;#17 &lt;a href="http://anti-virus-software-review.toptenreviews.com/winantivirus-review.html"&gt;WinAntiVirus&lt;/a&gt;&lt;/p&gt;最新名单，你用的哪款？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-2690350029441749716?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/2690350029441749716/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=2690350029441749716' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/2690350029441749716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/2690350029441749716'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/06/2007.html' title='2007杀毒软件排名'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5734731333867770543</id><published>2007-06-14T17:52:00.000+08:00</published><updated>2007-06-14T17:58:13.493+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>访问受限网站</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;1&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、推荐方法：利用&lt;/span&gt;&lt;span lang="EN-US"&gt;P2P&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;的&lt;/span&gt;&lt;span lang="EN-US"&gt;CDN&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;网络访问&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;Coral&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;是一个采用&lt;/span&gt;&lt;span lang="EN-US"&gt;P2P&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;技术的&lt;/span&gt;&lt;span lang="EN-US"&gt;CDN&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;网络，只要在想浏览的&lt;/span&gt;&lt;span lang="EN-US"&gt;UR L&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;域名后加上&lt;/span&gt;&lt;span lang="EN-US"&gt;.nyud.net:8090&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;就可以方便地利用&lt;/span&gt;&lt;span lang="EN-US"&gt;Coral&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;的&lt;/span&gt;&lt;span lang="EN-US"&gt;CDN&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;网络进行浏览，比如可以通过&lt;/span&gt;&lt;span lang="EN-US"&gt;http: //zh.wikipedia.org.nyud.net:8090/ &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;浏览维基百科中文版，可以看到安替被封的&lt;/span&gt;&lt;span lang="EN-US"&gt;blog&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;，几乎所有被国内封锁的网站都可以通过这种方式访问，看来以后这种技术应该大力发展才好。&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;2&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、利用&lt;/span&gt;&lt;span lang="EN-US"&gt;Google&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;自动翻译&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;http://translate.google.com/tran ... ://zh.wikipedia.org&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;慢是慢了点，不过终究可以访问。&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;3&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、维基百科浏览器&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;访问以下网址即可：&lt;/span&gt;&lt;span lang="EN-US"&gt;http://gollum.easycp.de/gollum/g ... p;l=zh-cn&amp;wl=zh&lt;br /&gt;&lt;br /&gt;4&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、改动&lt;/span&gt;&lt;span lang="EN-US"&gt;hosts&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;文件&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;C:\WINDOWS\SYSTEM32\DRIVERS\ETC (windows&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;被安装在&lt;/span&gt;&lt;span lang="EN-US"&gt;C&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;盘时&lt;/span&gt;&lt;span lang="EN-US"&gt;) &lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;用记事本或写字板打开&lt;/span&gt;&lt;span lang="EN-US"&gt;hosts&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;无扩展名文件加入&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;145.97.39.132 en.wikipedia.org&lt;br /&gt;145.97.39.132 zh.wikipedia.org&lt;br /&gt;145.97.39.132 jp.wikipedia.org&lt;br /&gt;145.97.39.132 upload.wikimedia.org&lt;br /&gt;&lt;br /&gt;5&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、维基百科专用代理服务器&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;可以使用&lt;/span&gt;&lt;span lang="EN-US"&gt;145.97.39.130:80 - 145.97.132.140:80&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;之间任意一个&lt;/span&gt;&lt;span lang="EN-US"&gt;IP&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;地址作为代理。这是&lt;/span&gt;&lt;span lang="EN-US"&gt;wikimedia&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;位于巴黎的服务器。但是请注意，这些代理只能用来访问&lt;/span&gt;&lt;span lang="EN-US"&gt;wikimeida&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;网站，其他网站不能访问。&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;6&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、其他代理服务器&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;国内：&lt;/span&gt; &lt;span style="font-family: 宋体;"&gt;代理服务器网、代理中国&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;国外：&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.stayinvisible.com/index.pl/proxy_list"&gt;http://www.stayinvisible.com/index.pl/proxy_list&lt;/a&gt; &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.freepublicproxies.com/page1.html"&gt;http://www.freepublicproxies.com/page1.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.proxy4free.com/page1.html"&gt;http://www.proxy4free.com/page1.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.findproxy.com/index.html"&gt;http://www.findproxy.com/index.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.anonymitychecker.com/page1.html"&gt;http://www.anonymitychecker.com/page1.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.publicproxyservers.com/page1.html"&gt;http://www.publicproxyservers.com/page1.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.allproxies.com/page1.html"&gt;http://www.allproxies.com/page1.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.proxymania.com/page1.html"&gt;http://www.proxymania.com/page1.html&lt;/a&gt; &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.proxymatrix.com/page1.html"&gt;http://www.proxymatrix.com/page1.html&lt;/a&gt; &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.proxytester.com/page1.html"&gt;http://www.proxytester.com/page1.html&lt;/a&gt; &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;也可以用代理服务器软件搜索验证，象代理猎手等。&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;br /&gt;7&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;、我再补充一个&lt;/span&gt; &lt;span style="font-family: 宋体;"&gt;在线式代理服务器&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;a href="http://server.cemsg.com/"&gt;http://server.cemsg.com/&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;在线代理，直接通过&lt;/span&gt;&lt;span lang="EN-US"&gt;web&lt;/span&gt;&lt;span style="font-family: 宋体;"&gt;访问受限网站，去网站上看了就知道怎么用了，很容易的。&lt;/span&gt;&lt;/p&gt;  &lt;div style="margin: 5px; background: yellow none repeat scroll 0% 50%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5734731333867770543?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5734731333867770543/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5734731333867770543' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5734731333867770543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5734731333867770543'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/06/blog-post_14.html' title='访问受限网站'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3085802354809414866</id><published>2007-06-05T11:41:00.000+08:00</published><updated>2007-06-05T11:44:31.113+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java开源搜索引擎收集</title><content type='html'>&lt;a href="http://www.open-open.com/open24132.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Egothor&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;   &lt;br /&gt;Egothor是一个用Java编写的开源而高效的全文本搜索引擎。借助Java的跨平台特性，Egothor能应用于任何环境的应用，既可配置为单独的搜索引擎，又能用于你的应用作为全文检索之用。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open24232.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Nutch&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;Nutch 是一个刚刚诞生开放源代码(open-source)的web搜索引擎。在它的主页有中文详细的说明。 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open24332.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Lucene&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;Apache Lucene是一个开放源程序的搜寻器引擎，利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引，索引让搜寻的效率比传统的逐字比较大大提高，Lucen提供一组解读，过滤，分析文件，编排和使用索引的API，它的强大之处除了高效和简单外，是最重要的是使使用者可以随时应自已需要自订其功能。 &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open24432.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Oxyus&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;是一个纯java写的web搜索引擎。&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open24532.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;BDDBot&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;BDDBot是一个简单的易于理解和使用的搜索引擎。它目前在一个文本文件(urls.txt)列出的URL中爬行，将结果保存在一个数据库中。它也支持一个简单的Web服务器，这个服务器接受来自浏览器的查询并返回响应结果。它可以方便地集成到你的Web站点中。 &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open71032.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Zilverline&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;Zilverline是一个搜索引擎，它通过web方式搜索本地硬盘或intranet上的内容。Zilverline可以从PDF, Word, Excel, Powerpoint, RTF, txt, java, CHM,zip, rar等文档中抓取它们的内容来建立摘要和索引。从本地硬盘或intranet中查找到的结果可重新再进行检索。Zilverline支持多种语言其中包括中文。&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open87632.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;XQEngine&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;XQEngine用于XML文档的全文本搜索引擎.利用XQuery做为它的前端查询语言.它能够让你查询XML文档集合通过使用关键字的逻辑组合.有点类似于Google与其它搜索引擎搜索HTML文档一样.XQEngine只是一个用Java开发的很紧凑的可嵌入的组件.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open87932.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;MG4J&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;MG4J可以让你为大量的文档集合构建一个被压缩的全文本索引,通过使内插编码(interpolative coding)技术.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open88032.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;JXTA Search&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;JXTA Search是一个分布式的搜索系统.设计用在点对点的网络与网站上.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open104432.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;YaCy&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;YaCy基于p2p的分布式Web搜索引擎.同时也是一个Http缓存代理服务器.这个项目是构建基于p2p Web索引网络的一个新方法.它可以搜索你自己的或全局的索引,也可以Crawl自己的网页或启动分布式Crawling等.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open115132.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Red-Piranha&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;Red-Piranha是一个开源搜索系统,它能够真正"学习"你所要查找的是什么.Red-Piranha可作为你桌面系统(Windows,Linux与Mac)的个人搜索引擎,或企业内部网搜索引擎,或为你的网站提供搜索功能,或作为一个P2P搜索引擎,或与wiki结合作为一个知识/文档管理解决方案,或搜索你要的RSS聚合信息,或搜索你公司的系统(包括SAP,Oracle或其它任何Database/Data source),或用于管理PDF,Word和其它文档,或作为一个提供搜索信息的WebService或为你的应用程序(Web,Swing,SWT,Flash,Mozilla-XUL,PHP, Perl或c#/.Net)提供搜索后台等等.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open126232.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;LIUS&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;LIUS是一个基于Jakarta Lucene项目的索引框架。LIUS为Lucene添加了对许多文件格式的进行索引功能如：Ms Word,Ms Excel,Ms PowerPoint,RTF,PDF,XML,HTML,TXT,Open Office序列和JavaBeans。针对JavaBeans的索引特别有用当我们要对数据库进行索引或刚好用户使用持久层ORM技术如：Hibernate,JDO,Torque,TopLink进行开发时。&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt; &lt;/span&gt;&lt;a href="http://www.open-open.com/open142232.htm" target="_blank"&gt;&lt;span style="font-family:verdana;"&gt;Aperture&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;  &lt;br /&gt;Aperture这个Java框架能够从各种各样的资料系统(如：文件系统、Web站点、IMAP和Outlook邮箱)或存在这些系统中的文件(如:文档、图片)爬取和搜索其中的全文本内容与元数据。它当前支持的文件格式如下：&lt;br /&gt;Plain text&lt;br /&gt;HTML, XHTML&lt;br /&gt;XML&lt;br /&gt;PDF (Portable Document Format)&lt;br /&gt;RTF (Rich Text Format)&lt;br /&gt;Microsoft Office: Word, Excel, Powerpoint, Visio, Publisher&lt;br /&gt;Microsoft Works&lt;br /&gt;OpenOffice 1.x: Writer, Calc, Impress, Draw&lt;br /&gt;StarOffice 6.x - 7.x+: Writer, Calc, Impress, Draw&lt;br /&gt;OpenDocument (OpenOffice 2.x, StarOffice 8.x)&lt;br /&gt;Corel WordPerfect, Quattro, Presentations&lt;br /&gt;Emails (.eml files) &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3085802354809414866?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3085802354809414866/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3085802354809414866' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3085802354809414866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3085802354809414866'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/06/java.html' title='Java开源搜索引擎收集'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-4171618588453410510</id><published>2007-06-01T09:08:00.000+08:00</published><updated>2007-06-01T09:11:46.069+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>六一</title><content type='html'>祝我们这些&lt;br /&gt;表面风光，内心彷徨；&lt;br /&gt;容颜未老，心已沧桑；&lt;br /&gt;似乎有才，实为江郎；&lt;br /&gt;成就难有，郁闷经常；&lt;br /&gt;比骡子累，比蚂蚁忙，&lt;br /&gt;比鸡起的早，比狗睡的晚；&lt;br /&gt;比驴干的多，比猪吃的差；&lt;br /&gt;比岳飞忠良，比赖昌星紧张&lt;br /&gt;的老中青年&lt;span style="color:#ff0000;"&gt;六&lt;/span&gt;&lt;span style="color:#ff9900;"&gt;一&lt;span style="color:#ffcc00;"&gt;儿&lt;/span&gt;&lt;span style="color:#33cc00;"&gt;童&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#33ccff;"&gt;节&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;快&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;乐&lt;/span&gt;！！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-4171618588453410510?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/4171618588453410510/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=4171618588453410510' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4171618588453410510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4171618588453410510'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/06/blog-post.html' title='六一'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-2060863695211777777</id><published>2007-05-06T02:56:00.000+08:00</published><updated>2007-07-11T00:29:01.591+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>囍于立夏</title><content type='html'>今天是立夏哦，呵呵，好巧啊，今天就要昏了，还在背发言哦，还是有点紧张，毕竟"久旱逢甘雨, 他乡遇故知, 洞房花烛夜, 金榜题名时"占了一个嘛，就要经历一个人生中的大事儿了。。。祈祷。。。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;补记：&lt;br /&gt;纪晓岚：&lt;br /&gt;十年久旱逢甘露，&lt;br /&gt;万里它乡遇故知。&lt;br /&gt;和尚洞房花烛夜，&lt;br /&gt;监生金榜题名时。&lt;br /&gt;&lt;br /&gt;网摘：&lt;br /&gt;久旱逢甘雨-----一滴!&lt;br /&gt;他乡遇故知------债主!&lt;br /&gt;洞房花烛夜------隔壁!&lt;br /&gt;金榜提名时------重名!&lt;br /&gt;&lt;br /&gt;哈哈：）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-2060863695211777777?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/2060863695211777777/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=2060863695211777777' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/2060863695211777777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/2060863695211777777'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/07/blog-post_11.html' title='囍于立夏'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-621937589178257604</id><published>2007-04-20T09:29:00.000+08:00</published><updated>2007-04-20T09:43:44.589+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>darling今天踏上归途</title><content type='html'>出发前跟我说出差的时间好长哦，刚出发就发短信说想家了，呵呵，这个小丫头*_^ 区区5天嘛，看，这不忽闪忽闪就过去了?&lt;br /&gt;&lt;br /&gt;早上才看到你的SMS，呵呵，昨天实在熬不住了，手机又放在客厅充电听不到提示音。早上想回消息的，结果上班走的急，手机又忘带了，晕一个!*_*!&lt;br /&gt;&lt;br /&gt;短信的内容我还有点儿不明白，中午回去了发信请教吧，呵呵：P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-621937589178257604?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/621937589178257604/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=621937589178257604' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/621937589178257604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/621937589178257604'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/04/darling.html' title='darling今天踏上归途'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3573263215159186105</id><published>2007-04-20T09:12:00.000+08:00</published><updated>2007-04-20T09:28:02.933+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>XP系列系统任务栏上出现空工具栏问题的解决办法</title><content type='html'>今天开机的时候会碰到任务栏上出现若干个空工具栏的情况，并且在任务栏右键菜单-》“工具栏”里面并没有列出这些不速之客，后来翻google发现了解决方法：&lt;br /&gt;&lt;br /&gt;打开任务管理器-》结束explorer.exe进程-》Win+R或者任务管理器“文件”-》新建运行任务打开运行对话框，输入explorer.exe执行，一个原有的排列整齐的任务栏就出现啦，呵呵：D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3573263215159186105?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3573263215159186105/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3573263215159186105' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3573263215159186105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3573263215159186105'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/04/xp.html' title='XP系列系统任务栏上出现空工具栏问题的解决办法'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-912040863174765586</id><published>2007-04-19T09:41:00.000+08:00</published><updated>2007-04-19T10:01:44.460+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><category scheme='http://www.blogger.com/atom/ns#' term='digest'/><title type='text'>如何看透一个人</title><content type='html'>看一个国家的国民教育，要看他的公共厕所。&lt;br /&gt;看一个男人的品味，要看他的袜子。&lt;br /&gt;看一个女人是否养尊处优，要看她的手。&lt;br /&gt;看一个人的气血，要看他的头发。&lt;br /&gt;看一个人的心术，要看他的眼神。&lt;br /&gt;看一个人的身价，要看他的对手。&lt;br /&gt;看一个人的底牌．要看他身边的好友。&lt;br /&gt;看一个人的性格，要看他的字写得怎样。&lt;br /&gt;看一个人是否快乐，不要看笑容，要看清晨梦醒时的一刹那表情。&lt;br /&gt;看一个人的胸襟，要看他如何面对失败及被人出卖。&lt;br /&gt;看两个人的关系，要看发生意外时，另一方的紧张程度。&lt;br /&gt;看你重不重视我的贴子，就要看你有没有看到此处了。&lt;br /&gt;年轻人,看你有没有良心，就要看你回不回贴了：）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-912040863174765586?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/912040863174765586/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=912040863174765586' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/912040863174765586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/912040863174765586'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/04/blog-post.html' title='如何看透一个人'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3102934635382070349</id><published>2007-03-22T14:54:00.000+08:00</published><updated>2007-03-22T14:56:11.439+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>评刘吉言论</title><content type='html'>&lt;p&gt;&lt;a href="http://finance.sina.com.cn/review/zlhd/20070318/05393416709.shtml"&gt;刘吉：我提出中国不存在两极分化的观点无懈可击&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;刘吉的大部分论点我赞成，他的论据及论述还是很有道理的。但有一个关键的论点我不太赞成：动辄就把对现实问题的质疑上升到否定党、否定人民、否定邓小平的高度，似乎这些神圣之人、物就不会错，不会有偏差，就太说不过去了吧。实践是检验真理的唯一标准，置现实若罔闻而中气十足的以树标语的形式先建立一个任何言论都不能冲击的“真理之墙”，再来讨论现实问题，刘先生，您觉得有人愿意当面跟您讨论吗？&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3102934635382070349?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3102934635382070349/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3102934635382070349' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3102934635382070349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3102934635382070349'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/03/blog-post_22.html' title='评刘吉言论'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-1714769587994020913</id><published>2007-03-01T11:08:00.000+08:00</published><updated>2007-03-05T11:09:31.170+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>新年祝词</title><content type='html'>祝大家在新年里,男生像Oracle般健壮;女生像Vista般漂亮;桃花运像IE中毒般频繁;钱包如Gmail容量般壮大,升职速度赶上微软打补丁，追女朋友像木马一样猖獗，生活像重装电脑后一样幸福&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-1714769587994020913?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/1714769587994020913/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=1714769587994020913' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/1714769587994020913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/1714769587994020913'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/03/blog-post.html' title='新年祝词'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5383891952260877451</id><published>2007-02-06T23:34:00.000+08:00</published><updated>2007-02-06T23:54:58.595+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>插件依赖项</title><content type='html'>插件依赖项是作为plug-in、RCP开发所必须的包放到构建路径里面的，如果缺少必要的插件包，则编写代码过程中可能出现找不到class import的情况，要定义和修改插件依赖项，需要到plugin.xml的依赖项中进行配置。&lt;br /&gt;&lt;br /&gt;另外“查找未使用的依赖项”似乎不太准确。。。，比如我的程序中有一个org.eclipse.core.expressions被判断为无依赖，但在Editor.java中的IHandlerService的相关代码似乎就要用到这个依赖项。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5383891952260877451?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5383891952260877451/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5383891952260877451' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5383891952260877451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5383891952260877451'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/02/blog-post.html' title='插件依赖项'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-2572219158035116326</id><published>2007-01-30T01:48:00.000+08:00</published><updated>2007-01-30T01:49:58.657+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>先扫盲吧，呵呵</title><content type='html'>34个摄影爱好者最常用的图片处理软件下载：http://www.xiangshu.com/read.php?tid=396&amp;fpage=1280多本摄影图书下载（包括10多本摄影电子书）下载：http://www.xiangshu.com/read.php?tid=2166&amp;amp;fpage=1锂电池原理与使用保养应该注意的问题http://www.xiangshu.com/read.php?tid=26101&amp;fpage=1如何延长相机电池的时间http://www.xiangshu.com/read.php?tid=26102&amp;amp;fpage=1我对家用数码相机选购的一点意见http://www.xiangshu.com/read.php?tid=26103&amp;fpage=1教你22种实用特效高招http://www.xiangshu.com/read.php?tid=26104&amp;amp;fpage=1数码相机维护全攻略http://www.xiangshu.com/read.php?tid=25657&amp;fpage=1数码相机的曝光准则http://www.xiangshu.com/read.php?tid=25658&amp;amp;fpage=1数码相机快门的特性http://www.xiangshu.com/read.php?tid=25659&amp;fpage=1CCD指标的秘密http://www.xiangshu.com/read.php?tid=25660&amp;amp;fpage=1对白平衡几个概念http://www.xiangshu.com/read.php?tid=25335&amp;fpage=1第1课：本站隆重推出“摄影扫盲班”，如何拍出主体清晰背景虚化的照片（冷酷豪哥主讲）http://www.xiangshu.com/read.php?tid=4664&amp;amp;fpage=4第2课：什么是光圈优先，什么情况下才使用光圈优先http://www.xiangshu.com/read.php?tid=5199&amp;fpage=1第3课：快门优先及其适用场合http://www.xiangshu.com/read.php?tid=6180&amp;amp;fpage=2第4课：为什么冷酷豪哥只用200W像素相机能拍出如此清晰的图片？“祖传密方”首度曝光http://www.xiangshu.com/read.php?tid=7074&amp;fpage=2见过CCD有坏点吗？没见过的请进http://www.xiangshu.com/read.php?tid=7704&amp;amp;fpage=1为什么你永远是菜鸟——写给所有的新人的一封信http://www.xiangshu.com/read.php?tid=7125&amp;fpage=2为什么你永远是菜鸟之二——人像摄影不简单http://www.xiangshu.com/read.php?tid=13508&amp;amp;fpage=1为什么你永远是菜鸟之三——风景的灵魂http://www.xiangshu.com/read.php?tid=18813&amp;fpage=1体育摄影十题http://www.xiangshu.com/read.php?tid=25336&amp;amp;fpage=1DC微距拍摄新手入门完全手册http://www.xiangshu.com/read.php?tid=25337&amp;fpage=1摄影中ISO值，光圈，快门的关系和运用http://www.xiangshu.com/read.php?tid=25338&amp;amp;fpage=1数码相片冲印前你知道该干些啥？http://www.xiangshu.com/read.php?tid=2077&amp;fpage=1活用景深http://www.xiangshu.com/read.php?tid=24796&amp;amp;fpage=1用好白平衡http://www.xiangshu.com/read.php?tid=24797&amp;fpage=1数码相机和可冲印照片最大尺寸对照表http://www.xiangshu.com/read.php?tid=24799&amp;amp;fpage=1拍微距需要理由吗http://www.xiangshu.com/read.php?tid=24800&amp;fpage=1拍好照片的十大要素http://www.xiangshu.com/read.php?tid=22846&amp;amp;fpage=1还我本色！玩转数码相机的白平衡http://www.xiangshu.com/read.php?tid=22847&amp;fpage=1数码相机的色彩比较、功能和保养http://www.xiangshu.com/read.php?tid=22849&amp;amp;fpage=1轻松设置ISOhttp://www.xiangshu.com/read.php?tid=22850&amp;fpage=1什么是偏振镜？http://www.xiangshu.com/read.php?tid=21669&amp;amp;fpage=1谈谈构图法则http://www.xiangshu.com/read.php?tid=21670&amp;fpage=1照像机的维护常识http://www.xiangshu.com/read.php?tid=21672&amp;amp;fpage=1摄影中常见的失误http://www.xiangshu.com/read.php?tid=21673&amp;fpage=1照片好坏有和标准http://www.xiangshu.com/read.php?tid=21036&amp;amp;fpage=1简述图片摄影与影视摄影的异同http://www.xiangshu.com/read.php?tid=21038&amp;fpage=1关于照片的的素质http://www.xiangshu.com/read.php?tid=21102&amp;amp;fpage=1给摄影初学者的10点建议http://www.xiangshu.com/read.php?tid=21105&amp;fpage=1偏振镜的主要摄影用途http://www.xiangshu.com/read.php?tid=21106&amp;amp;fpage=1偏振镜的性能与应用http://www.xiangshu.com/read.php?tid=21107&amp;fpage=1给入门级的爱好者们！http://www.xiangshu.com/read.php?tid=20734&amp;amp;fpage=1摄影中的专业词汇http://www.xiangshu.com/read.php?tid=20735&amp;fpage=1给初学摄影的朋友的几点建议！http://www.xiangshu.com/read.php?tid=20736&amp;amp;fpage=1拍摄雪景怎样用光http://www.xiangshu.com/read.php?tid=20737&amp;fpage=1初级摄影全程训练教程http://www.xiangshu.com/read.php?tid=18974&amp;amp;fpage=1[转贴]数码摄影常见问题及解决方法http://www.xiangshu.com/read.php?tid=13136&amp;fpage=1知道光圈是怎么回事吗？http://www.xiangshu.com/read.php?tid=18400&amp;amp;fpage=1摄影杂志中常见的名词http://www.xiangshu.com/read.php?tid=18401&amp;fpage=1获得清晰照片的要诀http://www.xiangshu.com/read.php?tid=18403&amp;amp;fpage=1给入门级的爱好者们！http://www.xiangshu.com/read.php?tid=18404&amp;fpage=1拍好照片的三大要素http://www.xiangshu.com/read.php?tid=18047&amp;amp;fpage=1一张好照片应该避免的八个方面http://www.xiangshu.com/read.php?tid=18048&amp;fpage=1如何按快门？（初学者不可不看哟）http://www.xiangshu.com/read.php?tid=18049&amp;amp;fpage=1运动物体的拍摄http://www.xiangshu.com/read.php?tid=16337怎样识别伪劣胶卷http://www.xiangshu.com/read.php?tid=16335&amp;fpage=1谈夜景人像摄影http://www.xiangshu.com/read.php?tid=15371&amp;amp;fpage=1夜景摄影技巧http://www.xiangshu.com/read.php?tid=15370&amp;fpage=1关于拍微距的几点经济的窍门http://www.xiangshu.com/read.php?tid=15369&amp;amp;fpage=1高手论道--写给初入此道的新手http://www.xiangshu.com/read.php?tid=15367&amp;fpage=1不要太相信你的眼睛http://www.xiangshu.com/read.php?tid=8533&amp;amp;fpage=1数码相机使用基础－ISO的定义和效果http://www.xiangshu.com/read.php?tid=9683&amp;fpage=1菜鸟必看：《新手学摄影》http://www.xiangshu.com/read.php?tid=5226&amp;amp;fpage=1摄影常见相关法律知识http://www.xiangshu.com/read.php?tid=10288&amp;fpage=1拍摄动体的方法http://www.xiangshu.com/read.php?tid=14973&amp;amp;fpage=1【Exif今天你看了么？】【Exif信息全曝光】【Exif察看软件大集合】http://www.xiangshu.com/read.php?tid=9738&amp;fpage=1摄影知识入门---镜头篇http://www.xiangshu.com/read.php?tid=284&amp;amp;fpage=1减轻红眼现象的方法http://www.xiangshu.com/read.php?tid=14974&amp;fpage=1关于《肖像权》的基本常识http://www.xiangshu.com/read.php?tid=13029&amp;amp;fpage=1怎样提高黑白反差http://www.xiangshu.com/read.php?tid=14182&amp;fpage=1电子书《橡树摄影扫盲班》http://www.xiangshu.com/read.php?tid=10472&amp;amp;fpage=1风光摄影的表现手法http://www.xiangshu.com/read.php?tid=14183&amp;fpage=1抓拍的小技巧http://www.xiangshu.com/read.php?tid=14533&amp;amp;fpage=1数码相机基础知识 浅谈相机防抖系统http://www.xiangshu.com/read.php?tid=11043&amp;fpage=1菜鸟必读！摄影基础知识详解http://www.xiangshu.com/read.php?tid=5236&amp;amp;fpage=1一张好照片应该避免的八个方面http://www.xiangshu.com/read.php?tid=2049&amp;amp;fpage=1&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-2572219158035116326?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/2572219158035116326/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=2572219158035116326' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/2572219158035116326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/2572219158035116326'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/01/blog-post_30.html' title='先扫盲吧，呵呵'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-341187484971010354</id><published>2007-01-30T00:37:00.000+08:00</published><updated>2007-01-30T01:56:03.265+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><title type='text'>Canon A710IS 与Win2003通讯出错</title><content type='html'>首先需要启动Windows Image Acquisition (WIA)(Windows 图像采集(WIA))服务，Digital Still Camera才能运行&lt;br /&gt;&lt;br /&gt;然后安装了Canon Digital Camera Solution Disk V29.0之后重新启动会报错，这是因为Canon Camera Access Library 8 依赖SSDPSRV服务，而这个服务只在XP、2000里面存在，Win2003中没有，那么我们可以去注册表中删除这种依赖性就可以了，这并不会影响Camera Access Library 8的运行，具体做法如下：&lt;br /&gt;&lt;br /&gt;运行regedit，找到&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#3333ff;"&gt;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\CCALib8&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Services\CCALib8&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CCALib8&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;这三个位置，将DependOnService项的值里面的SSDPSRV删除，然后保存即可。&lt;br /&gt;&lt;br /&gt;如果你启动了WIA服务并且通过Microsoft照相机与扫描仪向导导出过图片，可能HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CCALib8处的值已经去掉了SSDPSRV项了。&lt;br /&gt;&lt;br /&gt;最后就是重启机器，报错没有啦，通过ZoomBrowser EX也可以操作照片了，整个世界终于清净了，呵呵：）&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-341187484971010354?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/341187484971010354/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=341187484971010354' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/341187484971010354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/341187484971010354'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/01/canon-a710is-win2003.html' title='Canon A710IS 与Win2003通讯出错'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-6782055283977366612</id><published>2007-01-30T00:32:00.000+08:00</published><updated>2007-01-30T01:59:51.208+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photography'/><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>买了Canon A710IS了……</title><content type='html'>忘记一笔了，赶紧补上，2007年1月28日买滴，研究中……对我这个相机白痴来说，修炼的路还是漫漫不着边际啊……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-6782055283977366612?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/6782055283977366612/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=6782055283977366612' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6782055283977366612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6782055283977366612'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/01/canon-a710is.html' title='买了Canon A710IS了……'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5574508347301751766</id><published>2007-01-22T00:05:00.002+08:00</published><updated>2008-04-19T14:24:21.336+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>日期备忘</title><content type='html'>前两天喝醪糟，后几天喝红糖水，记得为她常备！！！&lt;br /&gt;2006-12-23&lt;br /&gt;2007-01-21&lt;br /&gt;2007-02-18&lt;br /&gt;2007-03-20&lt;br /&gt;2007-04-16&lt;br /&gt;2007-05-16&lt;br /&gt;2007-06-10&lt;br /&gt;2007-07-11&lt;br /&gt;2007-08-07&lt;br /&gt;2007-09-03&lt;br /&gt;2008-01-24&lt;br /&gt;2008-02-22&lt;br /&gt;2008-03-19&lt;br /&gt;2008-04-17&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5574508347301751766?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5574508347301751766/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5574508347301751766' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5574508347301751766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5574508347301751766'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/01/blog-post.html' title='日期备忘'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5840678113938256186</id><published>2007-01-21T23:22:00.000+08:00</published><updated>2007-01-21T23:56:22.690+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>A710IS涨价了，晕</title><content type='html'>还在感叹深圳元旦时卖的710比其他地方贵呢，哪里知道过了没俩星期居然还涨了，据说是因为国美、苏宁、顺电元旦低价促销，被经销商认为扰乱市场，故均被断货惩罚，结果专卖店和金牌店则乘机涨价，唉，A710，想说要你不容易啊——考虑是否换机型ing...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5840678113938256186?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5840678113938256186/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5840678113938256186' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5840678113938256186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5840678113938256186'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2007/01/a710is.html' title='A710IS涨价了，晕'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-7002621021687001545</id><published>2006-12-26T20:48:00.000+08:00</published><updated>2006-12-26T22:32:46.764+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>深圳地震？</title><content type='html'>2006年12月26日20:35分，随着电脑桌的左右晃动，我开始感到一点点头晕，呃，我手已经离开桌子了啊，呃，身后的衣服也在前后摆动，地震！？看到QQ上的同事也在说有震感，赶紧询问他们所在地点，发现前海至后海至白石洲片区都有震感，看来是地震了，晕，不知道半夜会不会有问题，希望能熬到明天，到公司了肯定就能知道确切消息了，圣诞才过啊，我也只发了一个“生蛋快乐”了啊，不至于吧，晕&lt;br /&gt;&lt;br /&gt;后记：看到新闻了，“&lt;p style="text-indent: 2em;"&gt;新华网最新消息：新华网北京12月26日电　据中国地震台网测定，北京时间12月26日20时26分和34分，在南海海域（北纬21.9度，东经120.6度）发生7.2、6.7级地震。震中距大陆最近海岸线约350公里，距台湾陆地约15公里。  &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;美联社12月26日报道，据&lt;nobr&gt;&lt;a class="iAs" style="border-bottom: 1px dotted rgb(102, 0, 255); text-decoration: none; color: rgb(102, 0, 255); background-color: transparent;" onclick="return kwC();" target="_blank" oncontextmenu="return false;" onmouseover="kwE(event,-3);" onmouseout="kwL(event);" onmousemove="kwM(-3);"&gt;日本&lt;/a&gt;&lt;/nobr&gt;气象机构称，北京时间2006年12月26日20时34分 在台湾恒春(北纬21.9,东经120.5) 发生7.2级地震。地震产生的3英尺（约1米）高海啸正袭击菲律宾东海岸的巴斯科，据日本&lt;nobr&gt;&lt;a class="iAs" style="border-bottom: 1px dotted rgb(102, 0, 255); text-decoration: none; color: rgb(102, 0, 255); background-color: transparent;" onclick="return kwC();" target="_blank" oncontextmenu="return false;" onmouseover="kwE(event,-4);" onmouseout="kwL(event);" onmousemove="kwM(-4);"&gt;气象&lt;/a&gt;&lt;/nobr&gt;机构称，海啸可能对该地区产生破坏。  &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;地震震中在距离台北恒春13英里的海中，恒春距离台北260英里。目前尚无人员伤亡报告。  &lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;美联社称，在初次地震9分钟之后，台湾发生了第一次余震，震级为6.4级，高雄到屏东的电话线路被切断。”&lt;/p&gt;&lt;p style="text-indent: 2em;"&gt;阿弥陀佛，祝福所有的人，希望不要又来大海啸伤人。&lt;br /&gt;&lt;/p&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0% 50%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-7002621021687001545?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/7002621021687001545/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=7002621021687001545' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7002621021687001545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7002621021687001545'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/12/blog-post_26.html' title='深圳地震？'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-6606925822364984444</id><published>2006-12-19T17:04:00.000+08:00</published><updated>2006-12-19T18:18:28.884+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='GEF'/><title type='text'>GEF中无法获得MouseRelease和MouseDoubleClick事件的原因</title><content type='html'>调试了一下程序，发现MouseRelease事件还是产生了的，只是到了GEF这一层就开始变了&lt;br /&gt;DomainEventDispatcher的dispatchMousePressed()中设置了editorCaptured标志为true，当执行dispatchMouseReleased时通过判断发现此标志为true，就不会将MouseEvent发送到Figure了，它这样做应该是为了将mouseReleased变为判断Drog落下或者DirectEdit的标志，也就是变成了Request发送到EditPart去了，所以不发送给Figure。&lt;br /&gt;&lt;br /&gt;我是这样解决的：&lt;br /&gt;通过在figure的mousePressed事件中将MouseEvent.consume()，这样MouseEvent就不会传递到Editor中，这样下次就会直接传递到Figure了。&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0% 50%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-6606925822364984444?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/6606925822364984444/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=6606925822364984444' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6606925822364984444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6606925822364984444'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/12/gefmousereleasemousedoubleclick.html' title='GEF中无法获得MouseRelease和MouseDoubleClick事件的原因'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-865438619772470666</id><published>2006-12-17T14:09:00.000+08:00</published><updated>2006-12-17T14:16:22.214+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>SWT 全接触[转载]</title><content type='html'>SWT 全接触&lt;br /&gt;&lt;br /&gt;1．SWT简介&lt;br /&gt;&lt;br /&gt;SWT-"Standard Widget Toolkit"，它是一个Java平台下开放源码的Native GUI组件库，也是Eclipse平台的UI组件之一。从功能上来说，SWT与AWT/SWING是基本等价的。SWT以方便有效的方式提供了便携式的（即Write Once，Run Away）带有本地操作系统观感的UI组件：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;由于widget系统的固有复杂性以及平台之间微妙的差异，即使在理想情况下，能够达到工业标准的跨平台的widget类库也是很难编写和维护的。最早的AWT组件现在被认为是样貌丑陋的，而且存在很多问题；SWING组件虽然也是缺点多多，但是随着JDK版本的不断升高，它仍在不断进行着改进。我认为，SWT在功能上与AWT/SWING不相伯仲，但是组件更为丰富，平台表现稳定，BUG也相对较少。如果你的应用程序真的需要在多个平台上运行，需要更为美观的界面，又不那么依赖于其他基于AWT/SWING的图形库，那么SWT或许是一个比AWT/SWING更好的选择。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2． SWT起步&lt;br /&gt;&lt;br /&gt;2.1 SWT的HelloWorld&lt;br /&gt;&lt;br /&gt;一如介绍其他程序的起始，我们都需要来一个HelloWorld来帮助我们入门，SWT的HelloWorld如下：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import org.eclipse.swt.widgets.*;&lt;br /&gt;public class HelloWorld&lt;br /&gt;{&lt;br /&gt;public static void main(String[] args)&lt;br /&gt;{&lt;br /&gt;Display display = new Display();&lt;br /&gt;Shell shell = new Shell(display);&lt;br /&gt;shell.setText("Hello World");&lt;br /&gt;shell.setSize(200, 100);&lt;br /&gt;shell.open();&lt;br /&gt;while (!shell.isDisposed())&lt;br /&gt;{&lt;br /&gt;if (!display.readAndDispatch())&lt;br /&gt;display.sleep ();&lt;br /&gt;}&lt;br /&gt;display.dispose ();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;运行这个程序就会得到如下结果：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;下面我讲逐一介绍这个程序所包含的内容。&lt;br /&gt;&lt;br /&gt;Display&lt;br /&gt;这是一个顶层容器组件，类似于Container或Component的功能，它主要负责与底层的窗口系统之间的连接。在具体含义上，它代表"屏幕"。&lt;br /&gt;一个Display可以包含多个Shell（也是容器组件，下面会介绍到）。&lt;br /&gt;通常情况下，一个应用程序只含一个Display，即Display通常是一个单例组件（Singleton）。&lt;br /&gt;Shell&lt;br /&gt;它表示位于"屏幕"上面的"窗口"，是Composite组件和Control组件构成的组件树的根。&lt;br /&gt;在我们的HelloWorld程序中，我们可以设置标题（setText()），设置大小（setSize()），然后通过open()方法来显示这个窗口。怎么样，感觉很像JFrame吧？其实功能上差不多。&lt;br /&gt;Composite&lt;br /&gt;可以包含其它Composite和Control的容器&lt;br /&gt;Control&lt;br /&gt;这是一个重量级（HeavyWeight）系统对象。像按钮（Button），标签（Label），表格，工具栏和树形结构这些组件都是Control的子类，Conposite和Shell也不例外。&lt;br /&gt;2.1.1 消息循环&lt;br /&gt;&lt;br /&gt;我们可以看到，上面的代码中有这样的语句：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;while (!shell.isDisposed())&lt;br /&gt;{&lt;br /&gt;if (!display.readAndDispatch())&lt;br /&gt;display.sleep ();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;如果你像我一样是由Java语言起步的，那么你会对这个消息循环的代码感到比较陌生，毕竟在SWING中我们主要利用事件驱动模型而不这样利用类似于Windows程序设计中的消息循环的方法来处理事件。但是这段代码意义还算简单明了，就是反复的读取和分派（dispatch）事件，并在没有事件的时候把控制权还给CPU。&lt;br /&gt;&lt;br /&gt;2.1.2 资源的释放&lt;br /&gt;&lt;br /&gt;最后一条语句是display.dispose ();，这告诉我们操作系统的资源是由程序员显示释放的。资源的释放遵循以下两条规则：&lt;br /&gt;&lt;br /&gt;1. 如果你创建了某个资源，那么你就有责任释放它。&lt;br /&gt;&lt;br /&gt;2. 释放父组件资源的同时也释放了其子组件的资源。&lt;br /&gt;&lt;br /&gt;2.1.3 标准构造函数&lt;br /&gt;&lt;br /&gt;窗口组件被创建的时候必须伴随一个他的上层组件，例如，我要建立一个按钮就可以采用如下方法：Button button = new Button(shell, SWT.PUSH);&lt;br /&gt;&lt;br /&gt;其中，Button的父组件Shell是必不可少的，这样就限定了我们生成组件的顺序。&lt;br /&gt;&lt;br /&gt;第二个参数被称为"Style Bit"，表示了这个组件的显示特性，每种特性占一位，如下例所示：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Text test=new Text(group, SWT.SINGLESWT.BORDER);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这条代码生成了一个单一的，有边框的文本框。这显然又与习惯了JavaBeans模型，总是用setXXX()来设置属性的我们不太适应--毕竟是IBM的东西啊，秉承了其产品不易上手的传统。&lt;br /&gt;&lt;br /&gt;2.1.4 错误与异常&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SWTError指的是不能修复的错误，以及一些操作系统错误。&lt;br /&gt;&lt;br /&gt;SWTException指的是一些可恢复的错误以及无效的线程访问之类的错误。&lt;br /&gt;&lt;br /&gt;IllegalArgumentException指可修复的错误或参数为null之类的错误。&lt;br /&gt;&lt;br /&gt;2.1.5 Item&lt;br /&gt;&lt;br /&gt;Item类是一个轻量级的系统对象，总是作为基本的单位元素与其他一些类配合使用。比如Tree中的元素即为TreeItem，Table的单位元素则是TableItem，而MenuItem就是Menu的基本单位元素了。&lt;br /&gt;&lt;br /&gt;2.1.6 SWT的类阶层体系结构&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;最后让我们来整体认识一下整个SWT窗口组件的层次结构，如下所示：以上的部分给我们以整体的认识，即一个SWT引用程序应该怎么创建，其基本的运行规则和相关类的体系结构。我想我就不用再对每一个控件的API或使用方面费唇舌了，熟悉这些东西是体力劳动，而网上有很多例子可供参考。下面一节我将详细介绍有关SWT布局的相关知识。&lt;br /&gt;&lt;br /&gt;2.2 SWT的布局管理&lt;br /&gt;&lt;br /&gt;相信对于组件的布局（Layout）大家都不会太陌生，它的存在就是提供给我们一种可以在组件位置移动或更改大小时重新绘制组件的机制。设置组件的布局我们可以采用Composite.setLayout()方法来实现。&lt;br /&gt;&lt;br /&gt;每种布局都有其相应的数据（Layout Data），可以通过Control.setLayoutData()方法来进行关联。以下是一些布局类及其显示效果:&lt;br /&gt;&lt;br /&gt;FillLayout:让所有子组件等大小的"填满"整个面板空间。&lt;br /&gt;FillLayout是最简单的一个布局类，它将所有窗口组件放置到一行或一列中，并强制他们的大小也相等。FillLayout不能外覆（wrap），也不能定制边框和距离。很显然这样的限制让这个布局类最适合作类似于计算器面板的布局，或者为Taskbar和Toolbar上面的按钮作布局使用。&lt;br /&gt;&lt;br /&gt;RowLayout：类似于AWT中的FlowLayout，让所有组件按行排列，一行排不下就放到下一行。&lt;br /&gt;RowLayout比FillLayout用得更广泛一些，原因很简单，就是RowLayout支持FillLayout所部支持的功能，例如能够外覆，能够修改边框和间距等等。另外，每一个位于RowLayout中的窗口组件都可以通过设定一个RowData类来指定其在RowLayout中的宽度和高度。&lt;br /&gt;&lt;br /&gt;GridLayout： GridLayout是3个标准布局类中最有用的，但同时也是最复杂的--没办法，强大的功能必定伴随着一定程度的复杂性。通过GridLayout，一个Composite的子窗口组件被放置在一个网格（Grid）之中。GridLayout有很多配置字段，并且和RowLayout一样，每一个布局于其中的窗口组件都可以有一个与之相关联的布局数据类，称为GridData。GridLayout的强大功能是通过对于每一个窗口组件的GridData的灵活控制来实现的。&lt;br /&gt;鉴于GridLayout的复杂性（原本我就怀疑它根本就不是为手工书写代码而设计的），我并不建议各位直接手动书写GridData，最好借助可视化的工具（如VI）来帮助我们完成用GridLayout进行的界面设计。这样我们只需要书写少量控制代码，就可以获得复杂的界面布局了。&lt;br /&gt;&lt;br /&gt;FormLayout:如图所示&lt;br /&gt;&lt;br /&gt;StackLayout:几乎完全等同于CardLayout的功能。&lt;br /&gt;&lt;br /&gt;在SWT中，位置和大小的变化并非自动发生的。应用程序既可以在Composite子类的构造函数中指定初始位置和大小，也可以在一个改变窗口大小的监听器中用布局类来定位和改变Composite子类的大小。&lt;br /&gt;&lt;br /&gt;下面的一幅图包含了我们将要讨论的有关布局的大部分细节。一个Composite类的可显示区域分为三个部分，分别是Location，clientArea和trim。Composite的大小就是clientArea和trim的区域之和。一个布局类（Layout）的主要功能就是管理Composite子组件的大小和位置。通过布局类，我们可以管理子组件之间的距离-即间距（Spaceing），子组件与布局边缘之间的距离-即边距（margin）。布局的大小同时也是Composite的clientArea的大小。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;至此，关于SWT的基础部分就告一段落，希望能够给大家以一个对于SWT的总体认识。下面的部分将主要介绍SWT的弱项-绘图。JGraph的一个作者就表达了对SWT/JFace/Draw2D的不满，认为SWT在执行效率上并没有什么改善，而且缺乏一些有用的API实现。话虽如此，但SWT的基本绘图功能还是不错的，如果有足够的时间和耐心的话还是可以绘出想要的图形的。下面就让我们看看SWT如何绘制2D和3D图形。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;回页首&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. 用SWT绘制2D图形&lt;br /&gt;&lt;br /&gt;用SWT绘图通常由两种方法，一种是借助Graphics Context，另一种是利用Draw2D。然而Draw2D是一个基于SWT Composite的轻量级组件，于是在效率上，它无法体现出SWT的Native Code的速度优势。故其虽然强大，但仅适用于绘图工作不是系统瓶颈的应用程序。所以我在这里只介绍第一种方法。&lt;br /&gt;&lt;br /&gt;3.1 Graphics Context&lt;br /&gt;&lt;br /&gt;我们可以在任何实现了org.eclipse.swt.graphics.Drawable接口的类上绘制图形，这包括一个控件，一幅图像，一个显示设备或一个打印设备。类org.eclipse.swt.graphics.GC是一个封装了所有可执行的绘图操作的图形上下文（Graphics Context）。两种使用GC的方式我们已经在本节前言中提过，稍后会作详细说明。&lt;br /&gt;&lt;br /&gt;3.2 在一幅图像上绘制图形&lt;br /&gt;&lt;br /&gt;下面一段代码创建了一个带有图像的GC并在上面绘制了两条线：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Image image = new Image(display,"C:/music.gif");&lt;br /&gt;GC gc = new GC(image);&lt;br /&gt;Rectangle bounds = image.getBounds();&lt;br /&gt;gc.drawLine(0,0,bounds.width,bounds.height);&lt;br /&gt;gc.drawLine(0,bounds.height,bounds.width,0);&lt;br /&gt;gc.dispose();&lt;br /&gt;image.dispose();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;一旦你创建了一个GC，你就有责任通过它的dispose方法释放它的资源。一个由应用程序创建的GC需要立即被绘制，然后尽快释放掉。这是因为每个GC都需要一个底层的系统资源，而在某些操作系统中这些资源是稀缺的，像Win98就只允许同时创建五个GC对象。&lt;br /&gt;&lt;br /&gt;3.3 在Control上绘图&lt;br /&gt;&lt;br /&gt;类org.eclipse.swt.widgets.Control是可绘制的，所以你可以用像在图像上一样的方式来绘制图形。而和在图像上绘制所不同的是，如果你使用GC在一个Control上绘制图形，你需要知道当操作系统自身要绘制这个control的时候，它将覆盖掉你的改动。所以在一个Control上绘制图形的正确方法是加入其绘制事件的监听器。监听器类为org.eclipse.swt.events.PaintListener，其回调函数的参数是一个org.eclipse.swt.events.PaintEvent类的实例。这个PaintEvent实例中包含一个GC的引用，你可以向这个GC发送消息。下面的代码示例说明了如何建立这种类型的绘图：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Shell shell = new Shell(display);&lt;br /&gt;shell.addPaintListener(new PaintListener(){&lt;br /&gt;public void paintControl(PaintEvent e){&lt;br /&gt;Rectangle clientArea = shell.getClientArea();&lt;br /&gt;e.gc.drawLine(0,0,clientArea.width,clientArea.height);&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;shell.setSize(150,150)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.4 剪切（Clipping）&lt;br /&gt;&lt;br /&gt;GC的剪切域是可见绘图发生的部分。在缺省情况下，一个GC是一个被构造的可视部分边界。改变一个GC的剪切域可以让我们构造出各种图形效果。其中的一个例子是如果你想填充一个缺失了边缘的矩形。一种方法是绘制多边形矩形来组成所需要的图形，另一种方法就是剪切GC，然后对其剪切部分进行填充。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;shell.addPaintListener(new PaintListener() {&lt;br /&gt;public void paintControl(PaintEvent e) {&lt;br /&gt;Rectangle clientArea = shell.getClientArea();&lt;br /&gt;int width = clientArea.width;&lt;br /&gt;int height = clientArea.height;&lt;br /&gt;e.gc.setClipping(20,20,width - 40, height - 40);&lt;br /&gt;e.gc.setBackground(display.getSystemColor(SWT.COLOR_CYAN));&lt;br /&gt;e.gc.fillPolygon(new int[] {0,0,width,0,width/2,height});&lt;br /&gt;}&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;这段代码在Shell上的显示的过程效果如下：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.5 画板（Canvas）&lt;br /&gt;&lt;br /&gt;虽然任何Control都可以通过自身的paintEvent来绘制图形，但其子类org.eclipse.swt.widgets.Canvas是专门被设计用来进行图形操作的特殊的绘图类。我们既可以使用一个Canvas，再加入一个绘图监听器来实现绘图，也可以通过继承来建立一个可重用的自定义Control。Canvas有很多style bit，可以在绘图发生时产生作用。&lt;br /&gt;&lt;br /&gt;3.6 绘制直线和图形&lt;br /&gt;&lt;br /&gt;我们有很多方法可以在一个GC上画线，包括在两点之间，一系列离散的点之间或一个预定义的图形上都可以。直线是以GC的前景色来绘制的，我们可以通过GC绘制拥有不同厚度的各式直线。对于一个Paint事件，GC有着与Control组件一样的属性，即激发事件且缺省的直线样式固定为1个像素宽。&lt;br /&gt;&lt;br /&gt;GC.drawLine(int x1, int y1, int x2, int y2);这条语句在可绘制的面板上的两点间花了一条直线，起始点为(x1,y1)，终止点为(x2，y2)。终止点包含在画好的直线中。如果起始点等于终止点的话，将会有一个独立的象素点被绘制出来。&lt;br /&gt;&lt;br /&gt;GC.drawPolyline(int[] pointArray);这条语句绘制了一系列互相连接的线段，作为参数的数组用于描述点的位置。语句gc.drawPolyline(new int[] { 25,5,45,45,5,45 })；绘制了如下的图形：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.drawPolygon(int[] pointArray);与drawPolyline(int[])是类似的，唯一区别在于最后一个点和低一个点是连接的。gc.drawPolygon(new int[] { 25,5,45,45,5,45 });将会获得与上图一样的结果。&lt;br /&gt;&lt;br /&gt;GC.drawRectangle(int x, int y, int width, int height);这条语句从左上角的（X，Y）点，用参数中的宽和高画出了一个矩形。gc.drawRectangle(5,5,90,45);将会绘制出如下图形：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.drawRoundedRectangle(int x,int y,int width,int height,int arcWidth,int arcHeight);一个圆矩形与标准矩形的区别就在于其四个角是圆的。圆矩形的每一个角都可以被想象成为1/4个椭圆，并且arcWidth和arcHeight由完整的椭圆的宽和高决定。gc.drawRoundedRectangle(5,5,90,45,25,15);绘制了一个左上角位置为5.5的圆矩形，右边的图形是放大后的效果：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.drawOval(int x, int y, int width, int height);一个椭圆是由其相对应的矩形的左上角的位置（x，y）来确定绘制位置的，其宽和高即为对应矩形的宽和高。对于圆形来说，只需要另宽和高相等即可。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.drawArc(int x, int y, int width, int height, int startAngle, int endAngle);曲线的绘制也是与一个相应的矩形有关，即其左上角的位置与宽和高都是相应矩形的属性。StartAntle是从横向的X开始计算的，所以0度指向的是东而不是北。曲线的绘制是从StartAngle到endAngle以逆时针方向执行。gc.drawArc(5,5,90,45,90,200);所绘制的图形如下：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.setLineStyle(int style);可以设置所绘制曲线的样式，下面列出了一些曲线样式常量（在org.eclipse.swt.SWT中定义）和与之对应的曲线的图像：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.setLineWidth(int width);可以用于指定所要绘制的曲线的宽度。缺省情况下的曲线宽度为1个像素。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;由于直线的样式和宽度挥作用到所有的绘图操作上，所以我们可以作出如点矩形或粗线椭圆这样的图形：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.7 绘制文本&lt;br /&gt;&lt;br /&gt;文本可以被绘制在一个GC上， 字形是用GC的前景色和字体来绘制的，并且它所占用的区域是用GC背景色绘制的。要绘制文本，你需要定义要绘制文本的左上角，宽度和高度。有两组方法可以用来绘制文本，第一组方法的名字里都带有一个Text，并将会处理直线定界符和制表符。第二组API方法集的名字里都带有String，它们没有制表符或回车的处理，并主要用于控制像Eclipse的Java编辑器StyledText这样复杂的Control。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.drawText(String text, int x, int y);&lt;br /&gt;Font font = new Font(display,"Arial",14,SWT.BOLD  SWT.ITALIC);&lt;br /&gt;// ...&lt;br /&gt;gc.drawText("Hello World",5,5);&lt;br /&gt;gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE));&lt;br /&gt;gc.setFont(font);&lt;br /&gt;gc.drawText("Hello\tThere\nWide\tWorld",5,25);&lt;br /&gt;// ...&lt;br /&gt;font.dispose();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;drawText API将控制字符\t处理为制表符，将\n处理为回车符。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.drawString(String text, int x, int y);&lt;br /&gt;Font font = new Font(display,"Arial",14,SWT.BOLD  SWT.ITALIC);&lt;br /&gt;// ...&lt;br /&gt;gc.drawString("Hello World",5,5);&lt;br /&gt;gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE));&lt;br /&gt;gc.setFont(font);&lt;br /&gt;gc.drawString("Hello\tThere\nWide\tWorld",5,25);&lt;br /&gt;// ...&lt;br /&gt;font.dispose()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;当使用drawString时，制表符和回车符将不会被处理。&lt;br /&gt;&lt;br /&gt;在一个GC上绘制字符的时候，一个字符串所占用的大小取决于它的内容以及GC的字体。想要确定一个字符串在被绘制之后所占用的区域可以使用方法：GC.stringExtent(String text), 或 GC.textExtent(String text)。这两个方法都返回一个Point类，这个Point的X和Y是渲染参数字符串所需要的宽和高。&lt;br /&gt;&lt;br /&gt;3.8 图形填充&lt;br /&gt;&lt;br /&gt;直线是用GC前景色绘制的，而图形的填充用的是GC的背景色。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.fillPolygon(int[]);&lt;br /&gt;gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE));&lt;br /&gt;gc.fillPolygon(new int[] { 25,5,45,45,5,45 })&lt;br /&gt;&lt;br /&gt;GC.fillRectangle(int x, int y, int width, int height);&lt;br /&gt;gc.fillRectangle(5,5,90,45);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;需要注意的是，当一个矩形被填充的时候，右面和下面的边缘是不被包括在内的。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.fillRoundedRectangle(int x, int y, int width, int height, int arcWidth, int arcHeight);&lt;br /&gt;gc.fillRoundRectangle(5,5,90,45,25,15);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;像GC.fillRectangle(...)方法一样，右面和下面的边缘不被包含在内，于是右下角的坐标为（94，49）而不是（95，50）。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.fillOval(int x, int y, int width, int height);&lt;br /&gt;gc.fillOval(5,5,90,45);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GC.fillArc(int x, int y, int widt4h., int height, int startAngle, int endAngle);&lt;br /&gt;gc.fillArc(5,5,90,45,90,200);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fillArc()的参数和drawArc()的参数是类似的，偏移量是从右面的轴开始填充，然后沿逆时针方向旋转给定的角度（endAngle-startAngle）。&lt;br /&gt;&lt;br /&gt;GC.fillGradientRectangle(int x, int y, int width. int height, vertical boolean);&lt;br /&gt;&lt;br /&gt;这个方法让我们可以指定图形在填充时所用的颜色可以从GC的前景色按梯度变化（渐变）到背景色。梯度既可以是横向的也可以是纵向的。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;gc.setBackgrouind(display,getSystemColor(SWT.COLOR_BLUE));&lt;br /&gt;gc.fillGradientRectangle(5,5,90,45,false);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;上面两条语句建立了一个使用黑色背景的从左至右的横向梯度填充。和其他填充方法一样，左面和下面的边缘不被包括在内，所以由下角的位置缩小一个像素。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE));&lt;br /&gt;gc.setForeground(display.getSystemColor(SWT.COLOR_CYAN));&lt;br /&gt;gc.fillGradientRectangle(5,5,90,45,true);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;上面这3行代码的含义为在纵向自顶向下用前cyan（景色）开始，并以蓝色（背景色）结束的填充。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.9 异或（XOR）&lt;br /&gt;&lt;br /&gt;如果你设置了GC的XOR模式为true的话，将会发生如下情况：对于每一个像素点，原来被显示的红，绿，蓝的值将被已存在的红，绿，蓝色进行异或操作，所得结果既作为新的目标像素。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;shell.setBackground(display.getSystemColor(SWT.COLOR_WHITE));&lt;br /&gt;// ...&lt;br /&gt;gc.setBackground(display.getSystemColor(SWT.COLOR_BLUE));&lt;br /&gt;gc.fillRectangle(5,5,90,45);&lt;br /&gt;gc.setXORMode(true);&lt;br /&gt;gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE));&lt;br /&gt;gc.fillRectangle(20,20,50,50);&lt;br /&gt;gc.setBackground(display.getSystemColor(SWT.COLOR_RED));&lt;br /&gt;gc.fillOval(80,20,50,50);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3.10 绘制图像（Draw Image）&lt;br /&gt;&lt;br /&gt;类org.eclipse.swt.graphics.Image被用来表示准备要在像打印机，显示器这样的设备上显示的图形。建立一个图像最简单的方法就是从组织好的文件格式中装载它。SWT所支持的图像格式有：GIF，BMP，JGP，PNG和TIFF。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Image image = new Image(display,"C:/eclipse_lg.gif");&lt;br /&gt;GC.drawImage(Image image, int x, int y);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;每幅图像都有用其边界决定的尺寸。例如，图象eclipse_lg.gif的大小为115*164，我们可以通过image.getBounds()方法来进行设定。当一幅图像被绘制的时候，它将会以自身定义的边界作为显示之后的宽和高。gc.drawImage(image,5,5);&lt;br /&gt;&lt;br /&gt;至此，SWT在2D绘图方面的讲解告一段落，上面所提到的内容涵盖了SWT的大部分绘图功能，并在每个部分都给出了要注意的细节。至于具体实现就要靠各位的聪明才智了。下面让我们进入最后的部分-SWT的3D绘图。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;回页首&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4 SWT与OpenGL编程&lt;br /&gt;&lt;br /&gt;相较于Java3D API来说，SWT以前在3D图形绘制方面一直没有什么好的表现。OpenGL的加入会不会使SWT在3D领域有所作为还尚未可知，不过起码IBM的程序员们给了SWT机会。当大家了解了这个正处于试验阶段的组合之后，我们在SWT上绘制3D图形就不再是噩梦。&lt;br /&gt;&lt;br /&gt;OpenGL是一个为创建高性能2D，3D图形而设计的多平台的标准。其硬件和软件的实现存在于多个系统之中，包括Windows，Linux和MacOS。OpenGL可以用于渲染简单的2D图形或复杂的3D游戏图形（OpenGL最主要的应用领域就是游戏）。作为一个正在处于事件阶段的Eclipse插件，我将在下面的小节中介绍如何在SWT窗口组件上用SWT绘制图形。在Eclipse最新的3.2版中，对OpenGL的支持被集成到org.eclipse.swt项目中，所以我们在实现的时候即可以选择以插件方式进行，也可以直接利用已经集成好的组件来进行图形操作。在本节，我们将以插件方式为例对代码进行说明。&lt;br /&gt;&lt;br /&gt;4.1 SWT OpenGL插件&lt;br /&gt;&lt;br /&gt;SWT实现了OpenGL1.1全部功能。包括三个核心类和一个数据类。核心类为GLContext，GL和GLU。GLContext架起了SWT和OpenGL之间的桥接。一个Context必须用Drawable，通常是用Canvas来创建，OpenGL可以在Drawable上渲染场景。需要注意的是，当context不再被使用的时候就应该将它释放掉。同样，一旦某个context被释放掉之后，就不应该再次试图去渲染它。每次Drawable改变大小的时候，context都需要通过调用其resize方法在通知这一事件。这个方法的调用让context调整自己的view port和视图参数。在下一节中将描述一个处理这一部分任务的类。&lt;br /&gt;&lt;br /&gt;当context可用的时候，我们就可以通过定义在GL和GLU的一系列方法调用来绘制场景。一个GL类大概有超过330条命令。在GL和GLU中定义的这些函数和他们的Native实现几乎是一一对应的。下图给出了一个绘制矩形的例子，我们可以看到用C写成的API和SWT OpenGL API是何其相似：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4.2 SWT OpenGL编程基础&lt;br /&gt;&lt;br /&gt;在下面的小节中，我将描述一个显示四幅3D图像的应用程序。应用程序采用了GLSense，这是一个用于显示OpenGL场景的工具类。它和SWT的Canvas很像，所区别的是它所展现的内容是用OpenGL命令渲染的，而不是使用GC来绘制。要做到这一点，我们需要将一个GLContext类和一个SWT Canvas相关联，并且无论何时，当前上下文中的内容都应该是由在drawScene中定义的命令来渲染的。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;在构造函数中，一个SWT Canvas被创建出来。这就是那个要和一个GLContext相关联的Canvas实例。紧接着，这个Canvas又注册了两个监听器。第一个监听器的作用是确保这个Canvas无论何时被改变大小，其相应的GLContex也会收到通知并适当的改变大小。第二个监听器主要用于确保一旦Canvas被释放之后，其相对应的GLContext的也同时被释放。为了确保渲染区域是一个非零大小的区域，父组件的客户矩形区被取出来用于设置该Canvas的初始大小。这个初始大小可以在稍后用布局管理器或用户Action来修改。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GLScene将Canvas的全部区域用于绘图。无论Canvas何时调整其尺寸，我们都要获取客户区并将新的宽度和高度传递给Contex，而context将根据新的宽度和高度适当的调整视图。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;XML error: The image is not displayed because the width is greater than the maximum of 572 pixels. Please decrease the image width.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GLScene被分割为两个部分：初始化Context和初始化OpenGL的状态机。对于Context来说，我们只是简单的建立一个新的GLContext并使它成为当前被使用的Context。OpenGL的渲染总是在当前的context上进行绘制，因此如果你有超过一个活动的GLScene，很重要的一点是要在所有绘制动作发生之前将它的Context设置为当前的Context。initGL方法最开始提供清除颜色缓存颜色，随后建立了一个深度缓存（depth buffer）.第47行指出了深度值如何进行比较。这一比较函数主要用于拒绝或接受正在引用的像素。GL.GL_LEQUAL选项指定接受那些在视图上更接近或有相同距离的像素。第48行启动了深度测试（depth test），紧接的一行设定阴影模型为GL.GL_SMOOTH，这一设定的效果是如果表面上的两个顶点颜色不同的话，系统将对颜色进行插值。最后，第50行要求渲染引擎在计算颜色和纹理协调插值运算的时候起到关键的作用。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;XML error: The image is not displayed because the width is greater than the maximum of 572 pixels. Please decrease the image width.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GLScene类的最后两个方法用于处理重绘和场景绘制。当场景何时需要重绘的时候，第一个方法为其他类提供重绘操作的接口。第二个方法主要用于让继承GLScene的子类覆写。其缺省实现只是简单的清除了颜色和深度缓存，通过装在鉴别矩阵（identify matrix）重新恢复调整系统。&lt;br /&gt;&lt;br /&gt;4.3 3D Chart&lt;br /&gt;&lt;br /&gt;利用上一节的准备，我们已经将主应用程序进行了划分。这个图像显示了4组数据。每一组数据都是由相同的固定点所组成，每个点都是从0.0到10.0之间的一个正值。&lt;br /&gt;&lt;br /&gt;示例程序运行在一个非常简单的Eclipse view上，唯一值得注意的是Refresher，这个线程将强迫OpenGL场景被周期性的重绘。通过这种方法，当视图被移动或旋转的时候，component总能进行有效的更新渲染效果。run()方法调用的时间间隔为100毫秒，所以理论上的图像速度能达到每秒10帧。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;每个数据集合的点的值是用圆柱体来表示的。通过执行3个GLU调用，我们就能够绘制圆柱体：其中的两个用于渲染圆柱体两头的圆盘部分，另外一个用于渲染圆柱体的四周。例如，要渲染两个单元高的圆柱体，你可以用下面的代码来实现：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;第一行申请了绘制圆盘和圆柱所需的二次曲面。然后整个场景被逆时针旋转了90度，以便圆柱体可以被垂直绘制。下一步，底部的圆盘被渲染，然后是圆柱体的四周。在我们能够绘制顶部圆盘的时候，通过场景转换（scene translation），我们可以在Z轴移动两个单元。最后一个圆盘随后被绘制出来，调整系统通过向回移动两个单元来进行恢复。最后，由第一行申请的二次曲面被释放掉。&lt;br /&gt;&lt;br /&gt;按照上述方法运行程序是很费时间的。当仅绘制一个圆柱体的时候，效率低下不是一个很严重的问题，但如果要绘制成百个对象的话就会严重影响程序的执行性能。对于这种情况，OpenGL给出了一个解决这个问题的技巧，就是使用显示列表（display list）。&lt;br /&gt;&lt;br /&gt;一个显示列表是一组已编译的OpenGL命令。定义命令集合的列表被放在glNewList(int list, int mode) 和 glEndList()方法调用之间。第一个参数必须是一个正整数，可以用来唯一的表示一个被创建的显示列表。你可以让GL用glGenLists(int n)方法为你生成多个列表标识符。第二个参数用于指定列表是否被编译或编译之后立即被执行。大多数情况下你都需要编译这个列表。然后，你可以使用glCallList(int list)方法来显示整个列表。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-865438619772470666?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/865438619772470666/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=865438619772470666' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/865438619772470666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/865438619772470666'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/12/swt.html' title='SWT 全接触[转载]'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-7479447271146780356</id><published>2006-12-15T00:02:00.000+08:00</published><updated>2006-12-15T00:22:25.227+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>生命的真谛</title><content type='html'>麦兜说，生命的真谛就是吃火锅。是啊，可以把所有的美味在一次的沸腾中慢慢享受，那真的是人生中最幸福的一瞬间了。&lt;br /&gt;&lt;br /&gt;遥想鹅毛飘舞的冬夜，一座小屋，一豆灯火，一案，两椅，一土炉，一锅，那个滋味足够微微的生物电流缓缓淌过身体了……&lt;br /&gt;&lt;br /&gt;“没菜，搞屁啊”，她在视频中说。一脸的苦笑之后，又回到了现实，嗯，幻想中的火锅离我很遥远，而她来我身边的日子已经很近很近了。电流开始缓缓的淌过……&lt;br /&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0% 50%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-7479447271146780356?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/7479447271146780356/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=7479447271146780356' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7479447271146780356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7479447271146780356'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/12/blog-post_15.html' title='生命的真谛'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-6683582828111785115</id><published>2006-12-13T19:34:00.000+08:00</published><updated>2006-12-13T19:51:26.456+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='Draw2D'/><title type='text'>在Figure中作画</title><content type='html'>郁闷！一个下午就耗在这个弱智问题上了，拖出去喂鸟！&lt;br /&gt;&lt;br /&gt;Figure中画基本几何图形，如线、折线、曲线、椭圆（包括圆了）等的时候，不能直接通过固定坐标来设置几何图形中的点坐标，而应该根据Figure的bounds来计算：&lt;br /&gt;            public void paint(Graphics graphics) {&lt;br /&gt;                Rectangle r = bounds;&lt;br /&gt;                PointList pl = new PointList(4);&lt;br /&gt;                pl.addPoint(r.x + r.width / 2, r.y);&lt;br /&gt;                pl.addPoint(r.x, r.y + r.height / 2);&lt;br /&gt;                pl.addPoint(r.x + r.width / 2, r.y + r.height - 1);&lt;br /&gt;                pl.addPoint(r.x + r.width, r.y + r.height / 2);&lt;br /&gt;                graphics.drawPolygon(pl);&lt;br /&gt;            }&lt;br /&gt;上例中画了一个菱形，这里需要注意的是菱形的坐标，可以看出并不是简单的假设graphics开始画的区域的原点就是（0,0），而是从父Figure的原点开始画的。&lt;br /&gt;&lt;br /&gt;另外Figure中众多的paintXXX系列方法也各有专用，不要乱覆盖：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;paint() - 绘制Figure的全部内容&lt;/li&gt;&lt;li&gt;paintFigure() - 一般用于绘制Figure的背景或者Figure中的几何图形&lt;/li&gt;&lt;li&gt;paintBorder() - 绘制Figure的边框&lt;/li&gt;&lt;li&gt;paintChildren() - 调用子Figure的paint()&lt;/li&gt;&lt;li&gt;paintClientArea() - 绘制在Border和Insets之内的区域，这个区域一般放置的是子Figure，所以会调用paintChildren()&lt;/li&gt;&lt;/ul&gt; &lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-6683582828111785115?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/6683582828111785115/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=6683582828111785115' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6683582828111785115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6683582828111785115'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/12/figure.html' title='在Figure中作画'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-8240011405840859232</id><published>2006-12-06T12:16:00.000+08:00</published><updated>2006-12-06T12:17:24.451+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>白天纽约，夜晚巴黎[转载]</title><content type='html'>&lt;span id="BlogViewId" sortmode="Normal" sortkey="" firsthandle="cns!2CE7588856D2BE6C!777" lasthandle="cns!2CE7588856D2BE6C!465"&gt; &lt;div&gt; &lt;div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;【王文华／文】 【 2005/12/28 联合报】 &lt;/div&gt; &lt;div&gt; &lt;div&gt; &lt;p&gt;我在赶些什么？我耗尽青春用尽全力，拼命追求身外之物，结果我真的比别人有钱、有名吗？更重要的，我真的因此而快乐吗？远方有广阔的地平线，为何我还在原地摇过时的呼拉圈？ &lt;/p&gt; &lt;p&gt;纽约和巴黎，代表了我人生的两个面向。纽约是白天，巴黎是黑夜。纽约是前半生，巴黎是下半场。 &lt;/p&gt; &lt;p&gt;三十五岁之前，我认定纽约是世上最棒的城市。我在加州念研究所，毕业后迫不及待地去纽约工作。一做五年，快乐似神仙。我爱纽约的原因跟很多人一样： 她是二十世纪以来世界文化的中心。丰富、方便。靠着地铁和出租车，你可以穿越时间，前后各跑数百年。人类最新和最旧、最好和最坏的东西，纽约都看得见。 &lt;/p&gt; &lt;p&gt;所以在纽约时，我把握每分每秒去体会。白天，我在金融机构做事，一天十小时。晚上下了班，去NYU学电影，一坐四小时。在那二十多岁的年纪，忙碌是唯一有意义的生活方式。活着，就是要把自己榨干，把自己居住的城市，内外翻转过来。 &lt;/p&gt; &lt;p&gt;这种想法并不是到纽约才有的。其实从小开始，台湾人就过着纽约生活。纽约生活，充满新教徒的打拚精神和资本主义的求胜意志。相信人要借着不断努力， 克服万难、打败竞争。活着的目的，是更大、更多、更富裕、更有名。权力与财富，是纽约人的两个上帝。而能帮你走进天堂的鞋，就是事业、事业、事业。 &lt;/p&gt; &lt;p&gt;在这种弱肉强食的生活方式，为了保持领先，每个人都在赶时间、抢资源。进了电梯，明明已经按了楼层的钮，那灯也亮了，偏偏还要再按几下，彷佛这样就 可以快一点。出了公司，明明已经下班了，却还要不停讲手机，摇控每一个环节。在纽约，为达目的，可以不择手段，甚至赶尽杀绝。在纽约，没有坏人，只有失败 者。 &lt;/p&gt; &lt;p&gt;台湾，是不是也变成这样？ &lt;/p&gt; &lt;p&gt;每一件事，都变成工作。上班当然是工作，下班后的应酬也是工作。有人谈恋爱是在工作，甚至到酒店喝酒、KTV狂欢，脸上都杀气腾腾，准备拚个你死我活。 &lt;/p&gt; &lt;p&gt;我曾热烈拥抱这种生活，并着迷于这种因为烧烤成功而冒出的焦虑。这种焦虑让我坐在椅子边缘，以便迅速地跳起来闪躲明枪暗箭。这种警觉性让我练就了酒 量和胆量、抗压性和厚脸皮。但也养成了偏执和倔强、优越感和势利眼。在纽约时我深信：能在这里活下来的，都是可敬的对手。黯然离开的，统统是输家。人生任 何事，绝对要坚持到底。半途而废的，必定有隐疾。在这不睡的城市，每天我醒来，带着人定胜天的活力，跟着法兰克辛纳屈唱〈纽约 ?纽约〉：「如果你能在纽约成功，你可以在任何地方&lt;br /&gt;成功！」是的，在纽约，现代的罗马竞技场，我要和别人，以及自己，比出高低。 &lt;/p&gt; &lt;p&gt;这套想法，在我三十五岁以后，慢慢改变。 &lt;/p&gt; &lt;p&gt;第一件动摇我想法的，是父亲的过世。我父亲一生奉公守法、与人为善。毫无不良嗜好，身体健康地像城堡。七十二岁时，他得了癌症、引发中风，经历了所 有的痛苦和羞辱。他一生辛勤工作、努力存钱、坚信现在的苦可以换得更好的明天。我们也相信一分耕耘、一分收获，用在纽约拚事业的精神照顾他。但两年的治疗 兵败如山倒，最后他还是走了。父亲逝世的那天，我的价值系统崩溃了。我一路走来引以为傲的「纽约精神」，没想到这么脆弱。 &lt;/p&gt; &lt;p&gt;不止在病床，也在职场。当我在企业越爬越高，才发现「资本主义」在职场中也未必灵验。上过班的都知道，很少公司真的是「开放市场」、「公平竞争」。 大部分的同事都觉得你不是朋友、就是敌人。职场上伟大的，未必会成功。成功的，有时很渺小。很多人一辈子为公司鞠躬尽瘁，最后得到一支纪念笔。那些卷款潜 逃的，反而变成传奇。 &lt;/p&gt; &lt;p&gt;慢慢的，我体会到：世上有一种比「善有善报、恶有恶报」更高、更复杂的公平。人生有另一种比「功成名就」更幽微、更持久的乐趣。那是冲冲冲的美式资本主义，所无法解释的。 &lt;/p&gt; &lt;p&gt;我能在哪里找到那种公平和乐趣呢？我想过西藏、不丹、非洲、纽西兰。然后，我注意到法国。 &lt;/p&gt; &lt;p&gt;住纽约时，法国是嘲讽的对象。身为经济、科技、和军事强权的美国，谈起法国总是忍不住调侃一番。法国是没落的贵族，值得崇拜的人都已作古。法国人傲慢，高税率让每个人都很慵懒 。动不动就罢工，连酒庄主人都要走上街头。 &lt;/p&gt; &lt;p&gt;搬回台湾后，普罗旺斯、托斯卡尼突然流行。我看了法兰西斯?梅思的《美丽的托斯卡尼》，其中一句话打动了我：「在加州，时间像呼拉圈。我扭个不停，却停在原地。在托斯卡尼，我可以在地中海的阳光下，提着一篮李子，逍遥地走一整天。」 &lt;/p&gt; &lt;p&gt;是啊！我在赶些什么？我耗尽青春用尽全力，拚命追求身外之物，结果我真的比别人有钱、有名吗？更重要的，我真的因此而快乐吗？远方有广阔的地平线，为何我还在原地摇过时的呼拉圈？ &lt;/p&gt; &lt;p&gt;当我重新学习法国，我发现法国和美国代表两种截然不同的生活方式。美国人追求人定胜天，凡事要逆流而上。法国人讲究和平共存，凡事顺势而为。纽约有 很多一百层的摩天大楼，巴黎的房子都是三百年的古迹。纽约不断创新，巴黎永远有怀旧的气息。巴黎人在咖啡厅聊天，纽约人在咖啡厅用计算机。纽约有人潮，巴 黎有味道。纽约有钞票，巴黎有蛋糕。 &lt;/p&gt; &lt;p&gt;不论是政府或个人，法国人都把精神投注在食、衣、住、行等「身内之物」。就让美国去做老大哥吧。要征服太空、要打伊拉克、要调高利率、要发明新科技，都随他去。法国人甘愿偏安大西洋，抽烟、喝酒、看足球、搞时尚。当美国人忙出了胃溃疡，法国人又吃了一罐鹅肝酱。 &lt;/p&gt; &lt;p&gt;讲到吃，法国有三百种起司、光是波尔多就有五十七个酒的产区。晚上六点朝咖啡厅门口一坐，一杯红酒就可以聊三个小时。九点再去吃晚餐，一直吃到隔天凌晨。他们在吃上所花的时间，跟我们上班时数一样。但讽刺的是：他们没有「All You Can Eat」。 &lt;/p&gt; &lt;p&gt;吃很重要，但也要会挑时间，朋友介绍我去试一家法国餐厅，提醒我他们礼拜二、四晚上休息。「为什么？」我问。他说：「因为主厨要回家看足球。」 &lt;/p&gt; &lt;p&gt;聪明的主厨懂法律。法国法律规定一周工作最多三十五小时，大部分的人一年有五周的假期。而美国人把加班当作自己有价值的表示，度假时还拿着手机回E -mail。法国人比美国人会玩。每年六月的巴黎音乐节，从午后到深夜，几百场露天音乐会在各处同时举行，人多到地铁都暂停收费。每年十月的「白夜」，平 日入夜就打烊的店面，彻夜营业到清晨七点。每年夏天，巴黎市政府在塞纳河右岸布置了三段、总长一．八公里的人工海滩。细砂、吊床、躺椅、棕榈树，自然海滩 有的景致这里都有，让没有钱去海边度假的民众，也可以享受到海滩风光。 &lt;/p&gt; &lt;p&gt;当然，法国这么深厚的文化，不可能只从吃喝玩乐而来。美国人读书，为了考证照。法国人读书，为了搞情调。每年十月的读书节，大城市的火车站内，民众 轮流上台朗诵诗句。书店营业到天明，整晚有现场演奏的乐曲。「美食书展」选在铜臭味最重的证券交易所举办。小镇书展的书直接「长」在树上，读者必须爬到树 上，把书摘下来品尝。 &lt;/p&gt; &lt;p&gt;一直跟着美国走的台湾人，会心动吗？ &lt;/p&gt; &lt;p&gt;我心动了。十一月我到巴黎，一位法国朋友来接待我。临走前我问他：「明天你要干嘛？」 &lt;/p&gt; &lt;p&gt;「我要去银行。」 &lt;/p&gt; &lt;p&gt;「然后呢？」我问。 &lt;/p&gt; &lt;p&gt;「我不懂你的意思……」 &lt;/p&gt; &lt;p&gt;对我来说，「去银行」是吃完午饭后跑去办的小事。对法国人来说，这是他一天全部的行程。法国人总是专心而缓慢的，每天把一件小事做好。 &lt;/p&gt; &lt;p&gt;这样的生活，对美国或台湾人来说，实在是太颓废了。的确也是。法国失业率接近10% ，高税率让雇主宁愿打烊休息，免得帮员工缴税。巴黎闹区纸醉金迷，但郊区的少数民族却没有工作机会。这些都是黑暗面，但对于每日被强光烤焦的台湾人，阴暗 也许提供了喘息空间。生命的终点都一样，有钱人的丧礼只是比较多人上香。不断的追赶只是提前冲向谢幕，为什么不把时间花在慢慢为生命暖场？你不需要一辈子 鞠躬尽瘁、死而后已。你可以偶尔伸伸懒腰、安步当车。 &lt;/p&gt; &lt;p&gt;我从巴黎回来，台北并没有改变。关了两周的手机再度响起，一通电话找不到我的人会连续狂call十通。和朋友见面，他很关心地问我：「好了，你现在工作也辞了、欧洲也去了，接下来有什么projects ？」 &lt;/p&gt; &lt;p&gt;「Projects」？多么纽约的字眼。 &lt;/p&gt; &lt;p&gt;我真想说：「好好生活，不就是人生最大的project？」但我知道在熙来攘往的台北街头，在不到四十岁的年纪，这样说太矫情了。况且，我今天之所 以有钱有闲享受法式生活，不也正因为我曾在美式生活中得到很多利益？我仍热爱工作 、热爱纽约，但已不用像二十岁时一样亦步亦趋、寸步不离。 &lt;/p&gt; &lt;p&gt;所以我说：「我还是会早起，白天努力写作。但到了晚上，我想关掉手机。」 &lt;/p&gt; &lt;p&gt;世界少了我，其实无所谓。但我少了我，还剩什么？&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt; &lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-8240011405840859232?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/8240011405840859232/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=8240011405840859232' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8240011405840859232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8240011405840859232'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/12/blog-post.html' title='白天纽约，夜晚巴黎[转载]'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-1192398660302187642</id><published>2006-11-25T22:12:00.000+08:00</published><updated>2006-11-25T22:15:07.402+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>eclipse插件网站[]</title><content type='html'>&lt;div class="postbody"&gt;   &lt;h2&gt;&lt;a name="section"&gt;插件列表网站&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;http://www.eclipse-plugins.info/eclipse/index.jsp &lt;/li&gt;&lt;/ul&gt;Eclipse 正牌插件专门网站，有插件分类，top rated统计，以及用户反馈信息。 这些足够你少走弯路，最快地找到最好胜的插件了。 &lt;p&gt; &lt;/p&gt;&lt;h2&gt;&lt;a name="section"&gt;推荐插件&lt;/a&gt;&lt;/h2&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://sourceforge.net/projects/struts/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Eclipse 插件集成&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;在 Struts Applications 子项目下，有人整理了这个东东。即它把 eclipse 常用的开源工具打包了，不需要自己再麻烦去安装整理了。真棒的工作。 &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://eclipse-tools.sourceforge.net/index.html" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Eclipse-tools&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;sf.net 的一个旨在开发 eclipse 插件的项目。 有几个小巧实用的工具了。 虽小，但看起来的确实用。比如，你想看看某个类或者方法的实现，一般是 ctrl ＋ 左键 ，点击即打开这个类或者方法。 但如果是接口时，只是到达接口而已，不能解决问题。我实际应用过程中就遇到这个问题。 没有想到就有真的做了这个插件。 &lt;h3&gt;&lt;a name="section"&gt;J2EE&lt;/a&gt;&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://forge.objectweb.org/projects/lomboz" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Lomboz&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; 开源 &lt;/li&gt;&lt;/ul&gt;J2EE 开发中用得最火的插件，关键是更新速度很快，基本上 eclipse IDE 有新版本，几天之内他就可以 release 版本。新版本功能也改进不少，现在也可以直接在 JSP 中显示标签的提示了，甚至语法错误提示。（我一直用这个）&lt;br /&gt;随 着eclipse的发展，现在的LOMBOZ插件越来越大了。但是速度成了主要的问题。和Myeclipse、IBM的Eclipse Web Tools Platform相比，LOMBOZ的技术有点落后了。Myeclipse是把整个项目的JSP先编译了，而IBM也是第一次把所有的JSP加入索引。虽 然每次打开的时候，也慢一些，但是并不随着工程的变大，而出现速度成反比的现象。现在用lomboz 打开一个大的项目中的JSP文件的话，一般人已经受不了它的速度了。  &lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="external" href="http://www.eclipse.org/webtools/initial-contribution/IBM/Getting%20Started.html"&gt;&lt;span style="color:#002c99;"&gt;Eclipse Web Tools Platform&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; IBM为eclipse贡献的好东东！ &lt;/li&gt;&lt;/ul&gt;这 个绝对是一个重量级的J2EE的插件，很多论坛上都有它的介绍，在此也不多说了。只说几个与众不同的地方，它是一个唯一打开JSP，能解释里面的 JAVA，HTML，CSS，JS，TLD的编辑器，也是唯一能支持JAVA里的CTRL+鼠标单击打开相应类，鼠标停住显示JAVADOC的编辑器。 IBM的东西确实不同凡响，就是体积大了些，不但用到EMF，而且还用GEF，XSD等项目，至于里面的XML可视化编辑，WEB SERVICE.....偶也用不着，幸好也有这样一位大侠Lonsen（在此表示感谢）爱好和偶一样，把这个插件减肥了。&lt;a class="external" href="http://www.matrix.org.cn/forum_view.asp?forum_id=25&amp;view_id=11972"&gt;&lt;span style="color:#002c99;"&gt;Eclipse Web Tools Platform减肥记&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; 这样改过之后，这个插件又FREE！又强大，速度比LOMBOZ快，首先推荐！&lt;b&gt;绝绝对对的5星级！！！&lt;/b&gt;快快DOWN下来，加入自己的eclipse插件宝库吧!  &lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://www.myeclipseide.com/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;MyEclipse&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; 开始有注册机出现 &lt;/li&gt;&lt;/ul&gt;虽然 &lt;a class="interwiki" href="http://www.myeclipseide.com/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;MyEclipse&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; 是个死要钱的东东，不过功能确实是不赖啊，尤其让我无法放手的就是那个自动发布功能，随手保存，随时发布。这个发布可不是 ant 的那种整站发布，而是针对某些类或是 jsp 进行发布，虽说只是一个简单的 copy，可确实方便了很多。&lt;br /&gt;里 面使用的ＸＭＬ编辑器，XML MEN也可以说是一个精品的插件，但是在当前的XML插件满天飞的情况而言，优点也不多了。不过，那个 struts 支持倒是使用了这个功能，它不但把 easyStruts 集成进来，而且还加入了图形（流程）化struts-config.xml的功能，还支持除错的功能，这个功能虽然不稳定，但是必竟支持这个功能的插件也 仅此一位呀。&lt;br /&gt;&lt;br /&gt;如果除其不稳定因素外，这个STRUTS插件已经是最好用的插件之一了，不但保持了，xslt这个目录的模版文件的支持，preferences.ini这个配置文件可以修改生成文件的目录，这些easySTRUTS原有的优点以外，而且在稳定性上也有了明显的改善！&lt;b&gt;只是这个插件唯一让你受不了的就是，它必须使用它自身带的GEF插件包&lt;/b&gt;，而且你还不能安装比它新的GEF的插件！！！这意味着如果你的其它插件，想使用GEF的话，能利用它的版本的，就用它的版本，不然，就意味着你永远不能使用其它使用GEF的插件！！！&lt;br /&gt;&lt;br /&gt;2004年10月现在的事情变化太快了昨天刚刚不能用的功能可能今天就实现了,现在的Myeclipse里面的STRUTS的功能也真的是太强大了,我所知道的STRUTS类的插件应该具有的功能,它几乎都有了!&lt;br /&gt;现 在Myeclipse3.8.2全面集IBM的J2EE插件所以主要的自己的产品就那个STRUTS的图形化功能了,这回经过细致的加工后无论在界面上还 是在功能上都可以说是第一棒的了只是其附带的JSP的预览的功能好象还是好些问题和WSAD相比好象是有点水土不服比竟IBM的这套工具强大而又不易于操 作。下面就是这个插件的美美样子 PL的一塌糊涂&lt;br /&gt;&lt;br /&gt;&lt;img class="inline" alt="http" src="http://www.myeclipseide.com/modules/ContentExpress/img_repository/docs/sm_overview.gif" /&gt;  &lt;p&gt; &lt;/p&gt;&lt;h3&gt;&lt;a name="section"&gt;Struts&lt;/a&gt;&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://www.jamesholmes.com/struts/console/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Struts Console&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;u&gt;开源&lt;/u&gt;&lt;a href="http://www.matrix.org.cn/subjects/Edit.jsp?page=%E5%BC%80%E6%BA%90"&gt;&lt;span style="color:#002c99;"&gt;?&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;最 老牌的 Struts 插件了，支持的平台很多。同时支持eclipse2.1和3.0!!!而且一直在维护更新。我还是认为它是最好用的 Struts 插件。新版本也支持 Eclipse IDE 的最新版本。其实对于 Struts 关键是完善地支持配置文件地图形化就够了，其他关系不大。这个东东对Struts配置文件支持得很完善。另外他也可以相对独立地作为一个程序运行，我现在 是这种方式在用它。 &lt;ul&gt;&lt;li&gt;不得不提的easy STRUTS &lt;/li&gt;&lt;/ul&gt;几乎所有的网站说到STRUTS插件的时候都会提到 它，它的功能也的确不赖呀。FORM的模板的支持，生成目录..等配置文件的支持。真的可以说是STRUTS的一个非常成功的插件。只是网友在使用中，发 现竟然有把Struts-config.xml文件信息丢失的现象，这个插件可以说一下子从天堂走向了...但是，好在myeclipse把它集成了，修 正了一些BUG。但与此也带来一些新的BUG！:( 软件是不是总是这样？？不过，随着FILE Model插件的强大，easy struts吸引人的地方越来越少了，甚至于它的模板不是基于velocity的,也成为它必须要重构的一个因素了。 &lt;ul&gt;&lt;li&gt;新星&lt;a class="external" href="http://www.m7.com/"&gt;&lt;span style="color:#002c99;"&gt;M7&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;这 个东东可能用的人并不多一眼看上去好象也没有什么强大的功能.但实际上,它的的确确是唯一全支持STRUTS的插件.它的支持不仅仅在于struts- config文件的支持,它还可以支持JSP中Formbean里面的属性!!!!这回当Formbean里面属性一大堆的时候不怕写错了,嘿嘿但目前好 象没有出现破解版本.  &lt;p&gt; &lt;/p&gt;&lt;h3&gt;&lt;a name="section"&gt;代码辅助&lt;/a&gt;&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://jalopy.sourceforge.net/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;JALOPY&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;有几篇综合介绍文章，请参考：&lt;a class="wikipage" href="http://www.matrix.org.cn/subjects/Wiki.jsp?page=EclipseDocs"&gt;&lt;span style="color:#002c99;"&gt;Eclipse介绍文章页&lt;/span&gt;&lt;/a&gt; &lt;dl&gt;&lt;dt&gt;&lt;br /&gt;&lt;/dt&gt;&lt;dd&gt;Jalopy功能确实不错，也是我在使用eclipse2系列时必备之一，不过在eclipse3里面，格式化有了长足的进步，个人认为功能已经不弱于Jalopy了 ——郁也风 &lt;/dd&gt;&lt;/dl&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://beust.com/doclipse/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Doclipse - A JavaDoc Tag Plug-in for Eclipse&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;Doclipse is an Eclipse plug-in to help you write Java source files with Javadoc tags, either for documentation purposes or to be processed by a tool such as EJBGen or XDoclet. New tags can be added to the plug-in by writing XML files defining the new tags and their attributes.  &lt;p&gt; &lt;/p&gt;&lt;h3&gt;&lt;a name="section"&gt;XML&lt;/a&gt;&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://www.xmlbuddy.com/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;XML Buddy&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;u&gt;标准版免费&lt;/u&gt;&lt;a href="http://www.matrix.org.cn/subjects/Edit.jsp?page=%E6%A0%87%E5%87%86%E7%89%88%E5%85%8D%E8%B4%B9"&gt;&lt;span style="color:#002c99;"&gt;?&lt;/span&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;排名最高的 XML 插件，比较好用。标准版免费开放，专业版需要付费。  &lt;p&gt; &lt;/p&gt;&lt;h3&gt;&lt;a name="section"&gt;Hibernate&lt;/a&gt;&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://hibernator.sourceforge.net/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Hibernator&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;开源&gt; &lt;/li&gt;&lt;li&gt;&lt;a class="interwiki" href="http://forum.javaeye.com/download/jlinux/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Tanghan&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;开源&gt; &lt;/li&gt;&lt;/ul&gt;国人开发的一个 Hibernte 辅助开发工具。很好用。主要功能是从数据库表中自动建立 hbm 文件。也可以从POJO创建hbm文件,但是默认ID的类型是hilo.long, 从这个hbm 产生数据库schema的时候会出错。 &lt;ul&gt;&lt;li&gt;&lt;a class="external" href="http://www.binamics.com/hibernatesynch"&gt;&lt;span style="color:#002c99;"&gt;Hibernate Synchronizer&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;开源&gt; &lt;/li&gt;&lt;/ul&gt;Hibernate Synchronizer可以保证hbm和java文件的同步。 &lt;ul&gt;&lt;li&gt;&lt;a class="external" href="http://www.exadel.com/products_ORMstudio.htm"&gt;&lt;span style="color:#002c99;"&gt;Exadel ORM Studio Hibernate Edition&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt;&lt;img class="inline" alt="http" src="http://www.exadel.com/images/pages/orm/orm.gif" /&gt;  &lt;p&gt; &lt;/p&gt;&lt;h3&gt;&lt;a name="section"&gt;GUI 相关&lt;/a&gt;&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://www.cloudgarden.com/jigloo/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Jigloo SWT/Swing GUI Builder&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;有免费版本&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;&lt;h3&gt;&lt;a name="section"&gt;其它 Util 插件&lt;/a&gt;&lt;/h3&gt; &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://log4e.jayefem.de/index.php/Main_Page" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Log4E&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;开源&gt; &lt;/li&gt;&lt;/ul&gt;帮助你在代码里使用 log4j 写 log &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://commons4e.berlios.de/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Commons4e&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;开源&gt; &lt;/li&gt;&lt;li&gt;&lt;a class="interwiki" href="http://andrei.gmxhome.de/anyedit/index.html" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;AnyEdit&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;开源&gt; &lt;/li&gt;&lt;/ul&gt;对 eclipse edit 做些功能补充 &lt;ul&gt;&lt;li&gt;&lt;a class="interwiki" href="http://www.visual-paradigm.com/sdeec.php" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Visual Paradigm SDE for Eclipse&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;有免费版本&gt; &lt;/li&gt;&lt;li&gt;&lt;a class="interwiki" href="http://www.binamics.com/mavenworkshop/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;Maven Workshop&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; &lt;免费&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;＃&lt;a class="interwiki" href="http://mevenide.codehaus.org/" target="_blank"&gt;&lt;span style="color:#002c99;"&gt;meven&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#002c99;"&gt;&lt;img class="outlink" alt="" src="http://www.matrix.org.cn/subjects/images/out.png" /&gt;&lt;/span&gt; 免费，另一个极好的maven环境! &lt;/p&gt;   &lt;/div&gt; &lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-1192398660302187642?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/1192398660302187642/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=1192398660302187642' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/1192398660302187642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/1192398660302187642'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/eclipse.html' title='eclipse插件网站[]'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3714123862753217271</id><published>2006-11-24T12:58:00.000+08:00</published><updated>2006-11-24T13:02:35.170+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>祝福</title><content type='html'>我对佛说：让我的小宝贝儿永远健康快乐!&lt;br /&gt;佛说：只能四天！&lt;br /&gt;我说：好，春天、夏天、秋天、冬天。&lt;br /&gt;佛说：三天。&lt;br /&gt;我说：好，昨天、今天、明天。&lt;br /&gt;佛说：不行，两天。&lt;br /&gt;我说：好，白天、黑天。&lt;br /&gt;佛说：不行，就一天！&lt;br /&gt;我说：好！&lt;br /&gt;佛茫然问到：哪一天？&lt;br /&gt;我说：我的小宝贝儿的每一天！！佛哭了……说：以后你的小宝贝儿将天天健康快乐！！！ &lt;div style="margin: 5px; background: yellow none repeat scroll 0% 50%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3714123862753217271?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3714123862753217271/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3714123862753217271' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3714123862753217271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3714123862753217271'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/blog-post_24.html' title='祝福'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-955406216910616216</id><published>2006-11-23T09:45:00.000+08:00</published><updated>2006-11-23T09:49:05.194+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>感恩节</title><content type='html'>11月的第四个星期四是感恩节。感恩节是美国人民独创的一个古老节日，也是美国人合家欢聚的节日，因此美国人提起感恩节总是倍感亲切。&lt;br /&gt;&lt;br /&gt;    感恩节的由来要一直追溯到美国历史的发端。1620年，著名的“五月花”号船满载不堪忍受英国国内宗教迫害的清教徒102人到达美洲。1620年和1621年之交的冬天，他们遇到了难以想象的困难，处在饥寒交迫之中，冬天过去时，活下来的移民只有50来人。这时，心地善良的印第安人给移民送来了生活必需品，还特地派人教他们怎样狩猎、捕鱼和种植玉米、南瓜。在印第安人的帮助下，移民们终于获得了丰收，在欢庆丰收的日子，按照宗教传统习俗，移民规定了感谢上帝的日子，并决定为感谢印第安人的真诚帮助，邀请他们一同庆祝节日。&lt;br /&gt;&lt;br /&gt;美国人有了感恩节，印第安人却失去了一切……&lt;br /&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-955406216910616216?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/955406216910616216/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=955406216910616216' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/955406216910616216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/955406216910616216'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/blog-post_23.html' title='感恩节'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-6815272103932977040</id><published>2006-11-18T03:42:00.000+08:00</published><updated>2006-11-18T03:49:59.164+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>搬博工</title><content type='html'>是我没找到blog迁移工具还是本来就只是个传说？为了合并多个blog，我贡献了一个美好的周五 ，呼——，总算都迁到blogger了，以后这里就是我永远的家了，除非Google哪天不再是神话：P&lt;br /&gt;&lt;br /&gt;old version blogger的迁移就等到blogger提供自动迁移功能的时候再做吧，实在搬不动了...&lt;br /&gt;&lt;br /&gt;凌晨3:47，香甜甜的梦儿正在向我招手，晚安，我的宝贝...&lt;br /&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-6815272103932977040?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/6815272103932977040/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=6815272103932977040' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6815272103932977040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6815272103932977040'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/blog-post.html' title='搬博工'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5710036055776911099</id><published>2006-11-18T01:54:00.000+08:00</published><updated>2006-11-18T03:22:23.407+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>修改blogger post的发布日期</title><content type='html'>没想到改这个东东也可以总结些经验，呵呵：）&lt;br /&gt;&lt;br /&gt;日期格式“[年(2位)]-[月(1-2位)]-[日(1-2位)]”&lt;br /&gt;时间格式“[上|下午][小时(1-2位)]:[分钟(2位)]”&lt;br /&gt;&lt;br /&gt;其中“小时”需要特别注意，比如半夜12点过2分必须写成“下午12:02”而不是“上午0:02”，不然blogger不认，呵呵，似乎不符合常理啊：P&lt;br /&gt;&lt;br /&gt;另外刚才凌晨2点钟的时候访问blogspot的时候blogger beta server居然出错了，结果看到了Google“可爱”的502错误页面，截了一张下来，来看看：&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/4077/149748902789783/1600/googleerror.png"&gt;&lt;img dragover="true" style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://photos1.blogger.com/blogger2/4077/149748902789783/320/googleerror.png" alt="Google错误页面" border="0" /&gt;&lt;/a&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5710036055776911099?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5710036055776911099/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5710036055776911099' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5710036055776911099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5710036055776911099'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/blogger-post.html' title='修改blogger post的发布日期'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-8421647262083761783</id><published>2006-11-18T01:28:00.000+08:00</published><updated>2006-11-18T01:41:21.831+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>我的 Flash Component ?!</title><content type='html'>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 看了自己的一篇old blog，感叹着自己的Flash&lt;br /&gt;Component开发计划似乎遥遥无期。想做这样一套东西无非就是想让自己能简单开发一些Application而不要在UI上耗费太多的时间。&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;但是看过AJAX的实现之后反而觉得应用之道在于灵活变通，而不是报死理硬是要一种东西通杀，否则反而走入误区，等到深入到开发这一步再想退回来可真的就难了。&lt;br/&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;自己做前端开发也有比较长的时间了，各种Web前端技术或尝试过，或做过实级应用，个人觉得轻量级的可以用AJAX，中间级别的可以用Flash，再重一点儿还是老老实实用JSP标签之类的前端框架来实现吧。&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-8421647262083761783?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/8421647262083761783/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=8421647262083761783' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8421647262083761783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8421647262083761783'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/old-blogflash-componentapplicationui.html' title='我的 Flash Component ?!'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-4323539306860685860</id><published>2006-11-16T18:14:00.001+08:00</published><updated>2006-11-16T22:17:46.756+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>通过洋葱头写blogger</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;装好了之后赶紧试试看，希望能发上去。如果成功我再写心得吧！&lt;br /&gt;&lt;br /&gt;看来是成功了，嚯嚯！&lt;br /&gt;&lt;br /&gt;配合3个东东，写Blogger超级方便&lt;br /&gt;1、Performanging&lt;br /&gt;2、FoxyProxy&lt;br /&gt;3、Tor&lt;br /&gt;&lt;br /&gt;Performanging是firefox插件形式的blog客户端，可以在firefox中方便的调出，不过因为众所周知的原因，用它无法直接访问blogspot，唯一的办法就是通过代理。Tor代理机制不错（相关机制解释可以去google搜索），代理就用它了。但Tor如何跟firefox结合呢？FoxyProxy就恰到好处的起到了粘合剂的作用，通过FoxyProxy可以直接Tor，并且还可以设定使用Proxy的网址规则，这样需要Tor的网站才会通过Tor连接，不需要的还是通过直接连接，功能速度两不误。&lt;br /&gt;&lt;br /&gt;具体操作步骤我就不罗唆了，网上找找大把大把的，无非就是：&lt;br /&gt;1、安装Performanging插件&lt;br /&gt;2、下载FoxyProxy&lt;br /&gt;3、下载Tor集成安装包&lt;br /&gt;4、启动Tor&lt;br /&gt;5、设置FoxyProxy&lt;br /&gt;6、设置Performanging&lt;br /&gt;7、开工，呵呵&lt;br /&gt;&lt;br /&gt;希望能为朋友们帮上一点点忙，我也就心满意足了：P&lt;br /&gt;&lt;a rel="tag" href="http://technorati.com/tag/jotting" class="performancingtags"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-4323539306860685860?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/4323539306860685860/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=4323539306860685860' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4323539306860685860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4323539306860685860'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/blogger.html' title='通过洋葱头写blogger'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-8774080796513526044</id><published>2006-11-08T11:23:00.000+08:00</published><updated>2006-11-08T11:33:09.205+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='manage'/><category scheme='http://www.blogger.com/atom/ns#' term='bug tracker'/><title type='text'>常见Bug管理系统</title><content type='html'>BugFree确实太简单了，实在太简单了，号称对比微软内部使用的Bug管理软件来写的，但是1.0出来以后，基本上没有什么功能，就是个简单的记事本而已，写一个Bug，然后修改它的状态。谈不上什么项目管理，也谈不上什么用户管理。界面上东西很多，但是有用的不多，显得很复杂，其实功能不多。这样说也许会得罪人，上次看到别的Blog上就被作者回应的很厉害。当然，这样一个工具开源使用的确是很好的，而且，搜索Bug管理，出来的国产软件就这一个。但是，我还是要说一声，打着微软旗号来宣传过分了一点，恐怕得到5.0左右才可以。&lt;br /&gt;&lt;br /&gt;Bugzilla安装太麻烦了，我没有本事装起来。在Redhat上和Debian上都装不起来。更新Perl组件的时候，mysql模块总是有问题，后来手动下载编译了这个模块，perl提示该模块已经安装完成了，但是使用checksetup的时候还是说没有这个模块。搞死了。而且我觉得它的界面也太朴素了，Linux编程的也不能搞成这样吧？&lt;br /&gt;&lt;br /&gt;Mantis也用过一段时间，被人称为PHP下最强大的Bug管理系统，但是它的版本号很奇怪，可能是作者太谦虚了，一直用0.1x的方式来标注，用起来感觉怕怕的。最近出来了1.0rc版，下载来看了一下，没觉得跟0.18有什么区别。安装和使用都很方便，界面也是非常的朴素，可能是因为作者一个人单干，来不及做界面或者没功夫做漂亮的界面吧？功能单一，而且多项目操作的时候挺麻烦的。而且PHP项目最大的弱点在于，全文检索。&lt;br /&gt;&lt;br /&gt;XPWeb的界面很漂亮，页面脚本做的也很帅，不知道会不会引进什么浏览器的兼容性问题，我没有在别的浏览器上用过。但是因为做的太漂亮，就有点太占地方了，很长很长的一页，显示不了多少东西。而且，作为一个敏捷编程的项目管理工具，它的使用还是比较繁琐的，建立项目，项目里面建立素材，为素材建立任务。如果你想到一个任务可能要跨两个素材（不知道是不是我学的不到家，是不是不应该出现这种问题），那就有点麻烦了，我不知道怎么解决。而且我对它的任务开始和运行状态还没有搞的很清楚，好像是自动计算的。&lt;br /&gt;&lt;br /&gt;dotProject也不错，自带的第三个模板很漂亮，也是多国语言的（前面这三个都支持中文界面），但是问题多多。第一次安装完成以后找不着在哪里添加任务，以为添加了事件就等于任务了，结果日历那边能看到事件，但是Todo里面死活找不着任务。结果搞了半天才发现要到项目里面才能添加任务。而且添加任务的对话框有问题，修改了源代码解决了。后来又在项目列表里面加上了一个添加任务的按钮。甘特图打不开，又是修改源代码解决的。最后，使用中文界面的时候，所有的日历上面的日期都是乱码，没有搜索到解决方案，自己也没有找到可以在哪里修改代码，去掉了一个UTF8转换函数以后显示中文了，但是只有一个“星”字，没有后面的“期一”。再后来找到了台湾Markwu大哥做的UTF8中文优化版，下载下来以后，中文界面里面的日历问题没有了，而且据说在甘特图里也可以显示中文字了。但是我用的时候添加任务的时候所有的按钮失灵，script error。晕死，放弃了。&lt;br /&gt;&lt;br /&gt;XPlanner也试过了，业界也是一片叫好声，被人称为免费界里最强大的项目管理工具，不知道是怎么回事。下载也是分两个版本，standalone和WAR版。先装WAR版，费了不少劲编译成功了，登录界面也出来了，结果登录进去就是异常。于是下载了standalone版，本来以为这个应该没有问题，没想到N多个页面都报异常，根本没法正常使用。难道是人品问题，在jkd1.4和jkd1.5正面都试过了。网上也有人说过这个问题了，恐怕并不是偶然现象。&lt;br /&gt;&lt;br /&gt;还有OnTime 2006，这个软件还是不错的。从2004版的时候就用过了，当时对中文支持不好，输入中文再显示出来的时候就变成乱码，后来2005的时候解决了问题。这个系统看上去挺庞大的，但是更新速度很快，好像半年就更新一个版本。整个系统分成几个版本，Web版、Windows版、VS.net版，其实也就是不同的客户端了。所有版本使用相同的数据库，可以共享数据。Web版可以远程使用，还可以装一个Customer版，供你的客户来登录BUG。整个系统即可以作为BUG管理，也可以作为项目管理工具，反应速度还可以，界面也很漂亮，报表功能强大，可以生成各种各样的报表，并直接转换成PDF文件。可惜的是，系统是.Net平台的，只能安装在windows系统上。我的机器有点撑不住。&lt;br /&gt;&lt;br /&gt;现在终于有了Jira了，其实早在两年前就耳闻它的大名，但是一直没有服务器来装，而且一直没有对java的东西下过功夫。现在来看，Jira还是比PHP的程序运行起来要吃力的多，做Server的机器CPU只有733M，PIII的，明显感觉到慢，那肯定不是网速问题了，因为在局域网内做测试。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-8774080796513526044?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/8774080796513526044/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=8774080796513526044' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8774080796513526044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8774080796513526044'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/bug.html' title='常见Bug管理系统'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-6759162077433412454</id><published>2006-11-07T14:04:00.000+08:00</published><updated>2006-11-07T15:17:32.279+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>blogger(beta) go on!!</title><content type='html'>前一段时间开始，blogger beta登陆页面及blogspot都被封掉了，恼火的很。还好在网上查到了解决办法：&lt;br /&gt;&lt;ol&gt;&lt;li&gt;打开 C:/WINDOWS/system32/drivers/etc/hosts 添加 72.14.219.190 beta.blogger.com 就可以访问了blogger beta的登陆页面和写作页面了。&lt;/li&gt;&lt;li&gt;通过"&lt;a href="http://www.pkblogs.com/"&gt;http://www.pkblogs.com/&lt;/a&gt;二级域名"访问自己的blog。&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-6759162077433412454?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/6759162077433412454/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=6759162077433412454' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6759162077433412454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6759162077433412454'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/bloggerbeta-go-on.html' title='blogger(beta) go on!!'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5250209487985253742</id><published>2006-10-20T22:36:00.000+08:00</published><updated>2006-10-20T22:47:04.670+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>莫名的感觉</title><content type='html'>几日以来，生活似乎一下子进入到闷闷不乐的状态中，工作似乎提不起兴趣，然而又没有任何不开心的事儿发生，究竟怎么啦？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5250209487985253742?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5250209487985253742/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5250209487985253742' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5250209487985253742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5250209487985253742'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/10/blog-post_20.html' title='莫名的感觉'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5421558676951849438</id><published>2006-10-16T01:05:00.000+08:00</published><updated>2006-10-16T01:09:52.514+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>好久没更新了</title><content type='html'>懒散的十一，和apple of my eyes亲密无间，blog也早就搁置九霄云外了，呵呵:P 工作暂时进入了一个较为轻松的时期，前一段时间欠下的功课得早早补起来，不然忘了损失就大了。特别写这么一点儿备注，抵制懒懒细胞的进攻……&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5421558676951849438?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5421558676951849438/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5421558676951849438' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5421558676951849438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5421558676951849438'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/10/blog-post.html' title='好久没更新了'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-2322627923173130113</id><published>2006-09-24T20:46:00.000+08:00</published><updated>2006-09-24T21:14:34.000+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Java中解析XML的相对路径DTD所遇到的问题及Eclipse RCP中的相关问题</title><content type='html'>使用DOM还是SAX解析XML，都可能存在要解析xml中的相对路径的DTD文件的问题，前一段时间一直搞不定，今天总算弄懂了，其关键就在于org.xml.sax.InputSource！&lt;br /&gt;&lt;br /&gt;任何方式解析xml，都可以以InputSource对象传入到解析器中，以前一直觉得InputSource是不是太累赘了，不要也罢，但如果碰到上述问题，则必须通过InpuSource来解决，方法如下：&lt;br /&gt;&lt;br /&gt;比如XML文件test.xml在c:/testxml目录中，其中定义了&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"    "spring-beans.dtd"&gt;，说明spring-beans.dtd与XML文件在同一目录中&lt;br /&gt;&lt;br /&gt;首先，我们获取c:/testxml目录的URL，然后将其字符形式传递给InputSource作为SystemID，用于定位要解析的XML中的相对路径的父目录，最后解析器解析XML时就不会报错了。&lt;br /&gt;&lt;br /&gt;URL url= new File("c:/testxml").toURL();&lt;br /&gt;inputSource.setSystemId(url.toExternalForm());&lt;br /&gt;saxParser.parse(inputSource,sax);&lt;br /&gt;&lt;br /&gt;我所遇到的情况更为复杂些，是通过Eclipse Bundle来寻找dtd的。在程序中我通过如下函数找到Bundle中的文件：&lt;br /&gt;&lt;br /&gt; public static URL getPluginFileURL(String relativePath) {&lt;br /&gt;    Bundle bundle = BizeditorPlugin.getDefault().getBundle();&lt;br /&gt;    Path path = new Path(relativePath);&lt;br /&gt;    return FileLocator.find(bundle, path, null);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;但如果要寻找目录的URL，参数的最后必须是&lt;span style="color:#3333ff;"&gt;File.separator&lt;/span&gt;结尾，否则就会被认为是文件了，也就是使用 &lt;span style="color:#cc33cc;"&gt;getPluginFileURL("testxml" + &lt;/span&gt;&lt;span style="color:#3333ff;"&gt;File.separator&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;)&lt;/span&gt;  来获得要传入inputSource的SystemID，这样解析的时候Eclipse内部的URLHandler才会正确识别bundle资源的相对路径。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-2322627923173130113?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/2322627923173130113/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=2322627923173130113' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/2322627923173130113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/2322627923173130113'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/09/javaxmldtdeclipse-rcp.html' title='Java中解析XML的相对路径DTD所遇到的问题及Eclipse RCP中的相关问题'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-8025592133856986561</id><published>2006-09-18T18:01:00.000+08:00</published><updated>2006-09-18T18:02:50.266+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>纪念9.18国耻日</title><content type='html'>&lt;span style="font-size:130%;color:#ff0000;"&gt;&lt;strong&gt;万里长城十亿兵，&lt;br /&gt;血仇岂待儿孙平？&lt;br /&gt;愿提十万虎狼师，&lt;br /&gt;金戈铁马踏东京。&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-8025592133856986561?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/8025592133856986561/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=8025592133856986561' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8025592133856986561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8025592133856986561'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/09/918.html' title='纪念9.18国耻日'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-6144270660977120151</id><published>2006-09-13T17:10:00.000+08:00</published><updated>2006-09-13T17:37:55.545+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java正则表达式中group()、group(i)、groupCount的含义</title><content type='html'>花了两个小时才搞明白，有点儿笨：P&lt;br /&gt;&lt;br /&gt;首先弄明白Java的正则表达式中捕获组的概念，也就是以括号对“()”分割出的子Pattern，为什么要用到子模式呢？这是为了能在一次匹配中找出关心部分，例如：&lt;br /&gt;input: abbc&lt;br /&gt;pattern:a(b*)c&lt;br /&gt;group0: a(b*)c&lt;br /&gt;group1:(b*)&lt;br /&gt;&lt;br /&gt;整个pattern是可以匹配abbc的，group()方法就是获得&lt;span style="color:#cc33cc;"&gt;当前查找&lt;/span&gt;里面整个pattern所匹配的子&lt;span style="color:#cc33cc;"&gt;序列&lt;/span&gt;，所以你可以通过group()找到“abbc”；&lt;br /&gt;&lt;br /&gt;与此同时，我还对其中的b的个数感兴趣，就可以通过group1来得到关于(b*)的匹配情况，group(i)就是获得&lt;span style="color:#cc33cc;"&gt;当前查找&lt;/span&gt;里面指定的捕获组所匹配的子序列，所以你可以通过group(0)来找到“bb”；&lt;br /&gt;&lt;br /&gt;上面说清楚了，groupCount()的含义就很容易明白了，它并不是指在输入序列中Pattern总共匹配了多少次，而是指的捕获组的个数，当然它不对“整个pattern”计数，而只对“子Pattern”计数，如上例中groupCount()返回&lt;span style="color:#cc33cc;"&gt;1&lt;/span&gt;，而如果我们将input改为“abbc abbc abbc”，——有三次匹配——groupCount()还是返回&lt;span style="color:#cc33cc;"&gt;1 &lt;/span&gt;&lt;span style="color:#333333;"&gt;&lt;span&gt;；&lt;br /&gt;&lt;br /&gt;好了，我想废了半天话，概念应该讲清楚了，希望日后能记在脑袋里，不要天天来烦blogger.com：P&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* 文中所谓的：&lt;br /&gt;1、“序列”是指字符序列，也就是CharSequence的意思&lt;br /&gt;2、当前查找是指一次find()或matches()的过程中&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-6144270660977120151?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/6144270660977120151/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=6144270660977120151' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6144270660977120151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6144270660977120151'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/09/javagroupgroupigroupcount.html' title='Java正则表达式中group()、group(i)、groupCount的含义'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-4756461888938669664</id><published>2006-09-10T00:43:00.000+08:00</published><updated>2006-09-10T00:45:20.963+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>又测Blogger beta</title><content type='html'>为何又说个“又”字？前几天试验了一下的，也不知是怪我粗心还是这几天改进不少，反正发现多多啊，从此Blogger Live多了不少乐趣，Bingo！&lt;br /&gt;要不都搬过来？呃……这个……及其浩大的说，放十一再整整吧：P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-4756461888938669664?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/4756461888938669664/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=4756461888938669664' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4756461888938669664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4756461888938669664'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/09/blog.html' title='又测Blogger beta'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3499933285039115135</id><published>2006-06-10T05:06:00.000+08:00</published><updated>2006-11-18T03:15:54.971+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>plugin打包输出出错</title><content type='html'>feature打包plugin时出错。查看报错信息，然后去相应的目录等待临时文件的产生，一旦看到立刻拷贝到其他地方，然后查看相应行数，发现是 jarsign操作失败。plugin因为需要使用UTF-8打包，所以需要从plugin.xml通过PDE导出为build.xml用以定制构建过 程，记得plugin.xml编辑器中的构建页中需要勾选“定制”。但是，如果plugin的version发生了变化，就需要去掉勾选，然后删除 build.xml之后再次生成build.xml再勾选“定制”，这样才能保证版本一致性，feature导出时才不会出错(jarsign错误，是因 为plugin打包的时候继续按照老build.xml中指定的xxx_0.1.1.jar打包，而feature则直接读取版本号，按照 xxx_0.1.2.jar来找需要签名的jar，当然找不到了)。 &lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3499933285039115135?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3499933285039115135/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3499933285039115135' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3499933285039115135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3499933285039115135'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/06/plugin.html' title='plugin打包输出出错'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-8081536497526838634</id><published>2006-06-08T05:20:00.000+08:00</published><updated>2006-11-18T03:14:41.709+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>Figure的画法</title><content type='html'>一般而言，&lt;br /&gt;Figure f = new Figure();&lt;br /&gt;之后，除了&lt;br /&gt;f.setBounds();&lt;br /&gt;之外，还需要&lt;br /&gt;f.setPreferredSize();&lt;br /&gt;来确定初始大小&lt;br /&gt;f.getParent().getLayoutManager()会根据PreferredSize来确定child figure的初始大小的，否则figure出来时就可以看不到. &lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-8081536497526838634?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/8081536497526838634/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=8081536497526838634' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8081536497526838634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/8081536497526838634'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/06/figure.html' title='Figure的画法'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3253872395071276695</id><published>2006-05-27T08:16:00.000+08:00</published><updated>2006-11-18T03:13:30.760+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>XDoclet的output file是乱码?</title><content type='html'>源代码是UTF-8,里面有自定义的标签,需要按规则导出为xml文件,不过导出时xml文件却是乱码,查看文档&lt;a href="http://xdoclet.sourceforge.net/xdoclet/ant/xdoclet/DocletTask.html"&gt;http://xdoclet.sourceforge.net/xdoclet/ant/xdoclet/DocletTask.html&lt;/a&gt; 知道,只需要添加encoding参数就可以了,即&lt;xxxdoclet encoding="UTF-8"&gt;.encoding参数指定了source file的encoding;docencoding指定模板引擎和目标文件的encoding&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3253872395071276695?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3253872395071276695/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3253872395071276695' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3253872395071276695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3253872395071276695'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/05/xdocletoutput-file.html' title='XDoclet的output file是乱码?'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5181560104365141085</id><published>2006-05-27T07:51:00.000+08:00</published><updated>2006-11-18T03:12:28.338+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>RCP Application中引用第三方包</title><content type='html'>看到有的帖子说这个问题比较困难,刚好遇到了这个问题,自己试验了一下,找到了可行的办法:&lt;br /&gt;&lt;br /&gt;需求:&lt;br /&gt;在RCP中引用commons-net-1.4.1.jar包&lt;br /&gt;&lt;br /&gt;实做:&lt;br /&gt;1.在project目录下建lib目录(或者其他名称都可以,这里是为了说明方便),将commons-net-1.4.1.jar放到lib目录中&lt;br /&gt;&lt;br /&gt;2.在plugin.xml编辑器-&gt;"运行时"-&gt;"类路径"(右下方)中添加"lib/commons-net-1.4.1.jar",这里的设置是管MANIFEST.MF,用于运行时路径&lt;br /&gt;&lt;br /&gt;3. 在plugin.xml编辑器-&gt;"构建"-&gt;"额外的类路径条目"(最下方)中添加"lib/commons-net- 1.4.1.jar",这里设置是影响build.properties中的jars.extra.classpath属性,用于编译时路径&lt;br /&gt;&lt;br /&gt;4.上述步骤设置好了编译及运行时包的路径,最后我们只要将commons-net-1.4.1.jar实际打包到最后的RCP部署包里面就OK了,在plugin.xml编辑器-&gt;"构建"-&gt;"二进制构建"中勾选lib目录即可&lt;br /&gt;&lt;br /&gt;这样,第三方包就可以在RCP Application中正常使用了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5181560104365141085?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5181560104365141085/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5181560104365141085' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5181560104365141085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5181560104365141085'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/05/rcp-application.html' title='RCP Application中引用第三方包'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5158409106616726822</id><published>2006-05-26T06:10:00.000+08:00</published><updated>2006-11-18T03:11:01.599+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>JWS 发布 RCP 的更新问题</title><content type='html'>最初RCP project的编码是GBK，改为UTF-8后通过.produce打包似乎无法使java使用-encoding UTF-8，奇怪的很，难道没有地方设置吗？难道eclipse不能自动发现project的编码吗？只好通过plugin.xml产生 build.xml来定制构建,在build.xml中&lt;javac&gt;中加入 encoding="UTF-8",plugin.xml"构建"选择"定制构建".再通过feather打包为jnlp发布.&lt;br /&gt;&lt;br /&gt;接着奇怪 的事儿又发生了,浏览器下载运行后还是乱码,百思不得其解,搁置了几天,今天重新发布了一下,还是乱码,但新增加的一个功能没看到,很是奇怪,于是先在 JWS中删除了MyAppName,清除了缓存,然后删除了"C:\Documents and Settings\Administrator\Application Data\MyAppName"目录,再重新下载发现OK了,乱码问题也解决了,看来是本地缓存导致了乱码问题没有被更新,但是这也提出了一个问题, jnlp不是就是根据jar包日期来决定是否下载更新的吗?为啥更新之后运行时没有立即反应最新版本呢?奇怪奇怪了&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5158409106616726822?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5158409106616726822/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5158409106616726822' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5158409106616726822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5158409106616726822'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/05/jws-rcp.html' title='JWS 发布 RCP 的更新问题'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-5100632329601270656</id><published>2006-03-29T02:30:00.000+08:00</published><updated>2006-11-18T02:50:27.828+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>新东方雅思班回忆录(转载)</title><content type='html'>&lt;div id="authorfrom"&gt;  作者：天蓝色&lt;br /&gt;&lt;br /&gt; &lt;/div&gt; &lt;div id="brief"&gt;  &lt;/div&gt;    清理完从北京带回的行李，桌上多了不少的英语辅导书，还有少不了的新东方雅思教材和磁带。但从新东方回来后，我的变化决不仅仅只在表面的这些。 &lt;br /&gt;&lt;br /&gt;昨天在珞珈山水BBS（武汉大学的BBS）上遇到一个MM，问我关于新东方和出国的问题，结果我们从凌晨谈到两三点钟，她熬不住了才打住。这时我才发现自 己很多思想和经历都在新东方的两个星期内已经改变了。加上零星收到的一些新朋友的短信，我觉得应该在开学前的一点点空余时间里把我所经历的故事写下来，也 为那些很想了解新东方的朋友提供一个窗口。&lt;br /&gt;&lt;br /&gt;我把这些经历分成一个个单独的小篇章，并把一些特别的资料附在一边，以便于大家转载和分享。我本人对于商业或者政治上的媚俗向来深恶痛绝，因此力求文中能 客观公正的写下我所感受和经历的一切。文中所有的评论仅能代表个人的看法，并无他意。希望能使更多的人真正认识被出国的狂热和财富的欲望掩盖下的一个真实 的新东方生活。&lt;br /&gt;&lt;br /&gt;校舍和环境 &lt;br /&gt;&lt;br /&gt;我所在的雅思暑期住宿班YZA10A班，在四环边亚运村旁边。其实校舍离亚运村还远很多。刚来的时候，热心开车送我的朋友，拿着地图和新东方的地址指南， 在校舍外面转了半个多小时，最后竟然跟着一辆印着“新东方”的麻木的士（武汉的说法，就是三轮摩托）才找到了门口。&lt;br /&gt;&lt;br /&gt;校舍的环境很让人满意。三个人一间，教室都有空调，和食堂一起紧挨着宿舍楼。其它的设施应有尽有，包括小卖部，浴室，开水房，公共201电话和洗衣房。报 到的时候就换了一张饭卡，无论买什么都可以用卡结帐。校舍一点都不大，除了宿舍楼和教学楼，中间几个篮球场，可以借到球类的体育器材稍稍放松一下。比起那 些狗不拉屎鸟不生蛋的gre校舍，我感觉像是天堂。来之前我听到关于新东方的艰苦故事太多，差点把《生存手册》都给带来。我随身的行李什么都有，感觉不是 来学习而更像是野营的。&lt;br /&gt;&lt;br /&gt;不过周边环境就很糟糕。实际上周围都是垃圾收购场，到处都是垃圾，包括那些运垃圾的没有锁和车窗的旧车都是。刚来到的时候，在楼上望着围墙外一堆堆的垃 圾，感觉自己也像是被收购来的，或是等着被美国和英联邦大学收购的垃圾。附近都是北方的外地人，也没有好一点的餐馆和商店。但是最近的快餐店和超市走个一 刻钟就能到了。&lt;br /&gt;&lt;br /&gt; 校舍的规定很严格，进出大门都需要听课证，晚上回来晚了必须登记，而且不能进入异性的宿舍。对于学习的一面倒很宽松，可以在教室里从7点一直自习到24点。 &lt;br /&gt;&lt;br /&gt; 新东方的上课是按听课证的编号来座的，因此不用占位子，如果编号太靠后就只能看电视屏幕了。想有好的效果，一定要早报名。因为提前了半年报名，我就坐在3号位置，第一排。 &lt;br /&gt;&lt;br /&gt;对于12天的半封闭式学习，这些设施基本齐全。何况新东方的校训就是“从绝望中寻找希望”，一向以艰苦的环境来激发人的学习动力。毕竟革命不是请客吃饭， 来新东方不是来旅游和度假的。这里的校工也都很敬业，公共设施都保养的很好，工作起来从不怠慢。毕竟是民办大学，拿薪水吃饭的，干不好就会下岗。&lt;br /&gt;&lt;br /&gt; 但是唯一受不了的就是这里的食堂和小卖部，所见之黑连新东方的老师都深有同感 &lt;br /&gt;&lt;br /&gt;食堂虽然服务时间很长，但是和三个班的学生比，过于狭小，每次打饭都要排很长的队。再就是供应饭菜的价格奇高，种类巨少。一份茶碟般大小的鸡丁就要5块， 而且其中大部分是辣椒和骨头，加上味道就不用提了，吃到肚子里就没多少，也没感觉。最便宜的番茄鸡蛋也要3块5，最贵的菜是6块5，小炒就更贵了。所有的 菜不加上面食不超过20种。&lt;br /&gt;&lt;br /&gt; 这里我唯一可以接受的是面食。一大碗牛肉面或杂酱面只要4块钱，而且不用等长队。不过我从来就没吃饱过，经常11点吃午饭，下午三点就饿了。有一次晚上11点背单词，饿得两手发抖，幸亏还存有两块巧克力饼干，否则就会抢室友的点心了。 &lt;br /&gt;&lt;br /&gt; 我把以前对武大食堂所有的厌恶在新东方都变为了思念，就像老鼠想念大米。 &lt;br /&gt;&lt;br /&gt; 由此我们经常出去打牙祭，女生一次买点心买个100多块也很正常。对于以后准备想去新东方的同学，希望一定要有所准备，包括心理和物质两方面的。 &lt;br /&gt;&lt;br /&gt;同学和室友 &lt;br /&gt;&lt;br /&gt; 说来很可惜，雅思班的时间实在是太短，没有太多的机会去结交和认识朋友。大家平时都忙着自己的学习，临到快走了才有心情去和天天一起上课的陌生同学相识。其实大家都很想多认识些朋友，特别是在寂寞紧张的异乡。 &lt;br /&gt;&lt;br /&gt;事实上新东方是一个很容易也很值得交朋友的地方。一是同学都来自全国各地，各自的环境都不同，相互多交流很容易了解不同的文化和知识。二是同学大多都是为 了出国的目的而来，都有共同目标。以后可以相互分享出国的经验和考试的感受，很有可能到了国外还是同学。三是来到新东方的学生素质基本上都不会差，没有一 点学习基础和经济实力是不会贸然来报名。多认识一些优秀的同学对于以后的人生发展只有更多的好处。&lt;br /&gt;&lt;br /&gt; 这一期雅思班共有三个班，两个学术类，一个移民类。学术类的都是准备去英联邦国家留学，以大三的学生为主。移民类就有不少阿姨大妈级的人物了。 &lt;br /&gt;&lt;br /&gt; 我认识的大多为大三学生，北方的居多，其它各地的都有。旁边座的就是青岛大学的小伙子，很容易相处。右边是一个湖南师范99新闻的女生，我们竟然还认识同一个武大的同学，世界真的很小。 &lt;br /&gt;&lt;br /&gt; 我后面居然是一个高一的小MM，有天我自习时她还要我帮她做暑假物理作业。她说她的同学很多都去了澳大利亚，自己也很想去。她好像以为澳大利亚满地是可爱的考拉熊和跳来跳去的袋鼠，从来没想过出国后的艰辛，寂寞和紧张，当然还有自费需要的巨款。 &lt;br /&gt;&lt;br /&gt; 好几个朋友都是在最后一天才认识的。实际上大家早就看得眼熟了，终于有机会知道了对方到底是谁。 &lt;br /&gt;&lt;br /&gt;在这里还遇见了很多有趣的人。比如两个在英国读了一年书，用回国来学雅思并准备考试的高中生。还有一个山东大学的大一MM，有一天我们成为唯一自习到 23：20的两个人。脸有些黑，不过轮廓很端庄，满可爱的。特别是一个大连的高个MM，比站在讲台上的张皓还高，头发很长，眼睛也很大，非常文静。直到快 走了也没敢问她的名字和地址，因为对自己的身高没信心。&lt;br /&gt;&lt;br /&gt;最高兴的是遇见一个武大的PPMM，99法学的，而且也是武汉人。还没几天，周围就已经围着几个高个男生了。室友们也开始不由自主地谈论她和她那双很有气 质的眼睛，看来武汉大学女生的水平还是很高的。不过这个丫头很爱玩，有一天晚上自习时想找她练口语，打她手机时居然还在迪厅里听音乐。&lt;br /&gt;&lt;br /&gt; 至于我的两个室友，全是江苏人，都是活宝。 &lt;br /&gt;&lt;br /&gt;男生和女生 &lt;br /&gt;&lt;br /&gt; 很出乎我的意料，这里的女生尤其得多，而且不少很会打扮，相信这和雅思考试的类型有关。雅思主要针对英联邦国家，留学以自费为主，不像GT班那么紧张，时间也短很多，所以这里有很多富家子弟（当然不包括我这样饭都打不起的穷人家的孩子）。 &lt;br /&gt;&lt;br /&gt; 因此我感觉这里的学习风气不如在gre和tofel班听说的那么好，不过仍然不乏刻苦的学生。每天我无论我多么早的起床或多快地解决晚饭去自习，都会有人比我更早地开始学习。这种现象让我对自己很难满意，毕竟我是来自武汉大学的学生，不希望输给任何一所大学。 &lt;br /&gt;&lt;br /&gt; 此外对于这里很多急于在出国道路上寻找伴侣的寂寞少男少女，新东方提供了一个很好的机会。到了我离开的晚上，在操场上增加了很多成对的身影。 &lt;br /&gt;&lt;br /&gt; 有朋友把这种行为称为“速配”，并且嗤之以鼻。不过我觉得在这样的一个年龄阶段，因为寂寞而相互吸引是很正常的。毕竟每人对于出国和感情的看法是不一样的，应该尊重每个人的选择。 &lt;br /&gt;&lt;br /&gt; 但我认为12天足够爱上一个人，却不足以了解一个人。 &lt;br /&gt;&lt;br /&gt; 如同我在座位上贴的： &lt;br /&gt;&lt;br /&gt; Offer or love？ &lt;br /&gt;&lt;br /&gt; That’s question. &lt;br /&gt;&lt;br /&gt;室友 &lt;br /&gt;&lt;br /&gt; 我的两个江苏室友都是大三的。小艺在南京理工大学，瞒清秀的小伙子，但是总像个小孩子。上火车之前买一个大头狗娃娃，比枕头都大，老爱和另一江苏MM打打闹闹。小凯在深圳上学，是个电脑DIYER狂人，三句不离电脑以及相关配件。 &lt;br /&gt;&lt;br /&gt; 首先深圳是全国电脑配件价格最低的地区，走私货特别多。他带来一块专业二手显卡，平时卖1万多的，他300多就买到了。他还带了一台数码照相机，为此和几个朋友谈了一晚上的红外数码相机的话题，感觉像是透窥狂的沙龙。 &lt;br /&gt;&lt;br /&gt;他可以就一种配件谈上几个小时，而且他说的价格会让人吐血。我们后来都不敢听他的深圳报价，似乎那里配件便宜得可以买两斤白菜就送一根内存。要是他谈起自 己的配件，更是龙飞色舞，而且经常把实物拿给我们看。当他拿出的实物原来越多时，我们开始有些莫名其妙，最后我们把他的柜子清理了一下，差点没昏过去。&lt;br /&gt;&lt;br /&gt; 他带来一块专业显卡，一根128M内存条，两块40G硬盘，一个联想上网USB鼠标，一个游戏摇杆，一根硬盘线还有若干DVD光盘。 &lt;br /&gt;&lt;br /&gt; 我们实在是想不通他带这些东西来新东方来干什么。 &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; 来新东方几天后，小艺介绍一个隔壁的江苏老乡来玩，后来那个老乡寝室的两个室友，一个潍坊，一个辽宁的也常来聊天。 &lt;br /&gt;&lt;br /&gt; 那个潍坊的男孩特别喜欢汽车和军事，为此我头一次大发谈瘾，连着一个星期，每天从23：00谈到01：30，直到其它人抗议了才走。 &lt;br /&gt;&lt;br /&gt; 我先从林彪谈到毛泽东，从周恩来谈到李鹏。接着就是人人爱听的最新中国兵器情报。 &lt;br /&gt;&lt;br /&gt; 海军部分，我从新驱谈到航母，从基诺谈到039，从现代谈到瓦良格，从091谈到095，从出C803谈到红鸟三，从飞豹谈到JH8。 &lt;br /&gt;&lt;br /&gt; 空军部分，我从J10谈到J11，从红旗九谈到S400，从反击一号谈到激光武器。 &lt;br /&gt;&lt;br /&gt; 陆军部分，我从98式谈到63A，从红箭9谈到WZ10，从95式谈到PF89。 &lt;br /&gt;&lt;br /&gt; 二炮部分，我从东风31谈到41，从M9谈到M11。 &lt;br /&gt;&lt;br /&gt; 谈得最深入的建国后的局部战争，因为他的父亲当过兵，得到很多鲜为人知的内幕，非常高兴。 &lt;br /&gt;&lt;br /&gt; 当然我免不了对中国20年的军事思想体系和军事体系的演变进行了系统的总结。看着他们眼睛一眨不眨地听我一个人说，俨然自己就是国防部的发言人。 &lt;br /&gt;&lt;br /&gt; 等到所有人都对军事话题有些厌烦的时候，我又讲了一些关于武大美女的故事，说得他们直流口水。 &lt;br /&gt;&lt;br /&gt; 幸好他们对西方历史和哲学，中国传统文化，当代世界政治经济局势的发展等等话题都不敢兴趣，否则我可以开一个星期的个人演讲了。 &lt;br /&gt;&lt;br /&gt;新东方老师 &lt;br /&gt;&lt;br /&gt; 相信这是一个永远让人谈不完的话题，也是每个学生对于新东方最直接和感性的认识来源。我认为新东方最吸引人，最成功的的要素有两点： &lt;br /&gt;&lt;br /&gt; 一是鼓励奋斗和成功的新东方精神，二是充满个性和才华的新东方老师。 &lt;br /&gt;&lt;br /&gt;但对于现在一般的学员，想直接接触那些新东方的激情派元老们，比如俞敏洪，王强，徐小平等，都已经比较困难。特别在胡敏担当新东方第二任校长后，那种革命 式的激情和口号的已经不再是新东方的主要风格。随着现在新东方风格的转变和教学的多元化，再去谈论新东方精神已经有些老套。而且现在的大学生对于出国和新 东方的认识更加理性化，当初那种看见红宝书就要鞠躬的传闻和红卫兵显得过于相似，宗教式的崇拜和狂热反而容易使人反感。因此，虽然我在新东方的短短12天 内，很深刻地体会和理解那种不同于中国传统文化的新东方精神——它鼓励竞争和个人奋斗，相信自身的潜力和最终的成功，并且带有极为张扬的个性和激情，但我 仍然不把它作为一个主题来讨论。&lt;br /&gt;&lt;br /&gt;我更希望通过我所认识的新东方老师来了解和看待曾经被神化的新东方。我相信每个人都有足够的视野和理性来对事物进行判断，而不是居于媒体的渲染或嫉妒的攻 击。至少这些老师不同于我以前在课堂和其它补习班里所认识的老师，他们不仅仅给予我不负于巨额报名费的回报，更用他们在短短的授课时间里所体现的个性把他 们的成功精神深深引入我的灵魂。&lt;br /&gt;&lt;br /&gt; 在这些老师的授课中，我也注意到了新东方严格的教学制度，这才是新东方不败的基础。因此我按照新东方的管理方式在最后对老师都进行了打分和评价，但是很可惜，虽然这些老师无论任何一个在别的学校都肯定会视为珍宝，但是都很难得到高分。因为他们工作的学校是新东方。 &lt;br /&gt;&lt;br /&gt; 听力：张皓  一位可爱的耗子 &lt;br /&gt;&lt;br /&gt; 听力课是第一节课。开始前一个瘦瘦的男人上台来，介绍自己是班主任，然后让大家试无线耳机。接着耳机里就传来一阵音乐声，每次听力课之前都会如此，有时是梁咏琪或陈慧贤，有一次居然是赵传。 &lt;br /&gt;&lt;br /&gt;很快一个很不起眼的男人拿着包快速进门走进讲台，这是新东方老师的特点，很少迟到和拖堂。他穿着一件不到10元的廉价T恤，一条暗灰的西装长裤，脚上一双 现在没多少人爱穿的白色旅游鞋（这年头，要么是休闲鞋，篮球鞋，运动鞋，就是旅游鞋也至少是黑色的）。后来我注意到他很多时候是不穿袜子的，有时还脱下一 只鞋单立着写字。&lt;br /&gt;&lt;br /&gt; 他个头不高，瘦瘦的身材，黑黑的面庞，有一双不大但很明亮的眼睛（我不是在描写一只老鼠，是在描写一位老师），后面居然还留着长发，没过了脖子。 &lt;br /&gt;&lt;br /&gt; 如果我在讲台以外的任何地方看到他，肯定把他归为北方外来民工一类，他自己后来也承认了这一点。 &lt;br /&gt;&lt;br /&gt; 很快他开始用沙哑的嗓音开始说话。先讲了他金嗓不倒生锈的一次意外事故，然后以极快的饱含着热情的速度开始讲课。 &lt;br /&gt;&lt;br /&gt; 那节课下，有一个大连的MM向他问问题，结果她比站在讲台上的他还高出一点点。 &lt;br /&gt;&lt;br /&gt; 他就是张皓，一个在评分表上我评为最可爱的老师，同时也是最受人欢迎，让人一听到名字就想笑的老师。最后一节课下，我抢着让他签了一个名，因为后面有一队女生拿着笔记本正向他涌过来。这也是我在新东方唯一想要的签名。 &lt;br /&gt;&lt;br /&gt; 张皓的讲课风格非常快，而笔记和作业是最多的。总共5次课把雅思的每一种题型都详细讲解了一遍，当然还有大量的练习。 &lt;br /&gt;&lt;br /&gt; 张皓非常注重单词的记忆和归纳，毕竟生词在听力中是最要命的。他除了详细讲解听力材料中出现的生词和习惯短语，还经常归纳同类的单词让我们记下来，要求当天就背会。 &lt;br /&gt;&lt;br /&gt; 张皓的语言极富个人风格，经常拿自己的缺点开玩笑，或者讲些关于自己的搞笑故事让人放松一下。他用得最多的词就是郁闷，而且乐于在讲台上制造喜剧效果。他和其它的新东方老师关系私下都不错，因此也爱开他们的玩笑。 &lt;br /&gt;&lt;br /&gt; 但是从他谈论过的翻译生涯，感觉他属于天资聪慧，却克服了很多自身不利条件，走了很长的道路才成功的人。因此他的话语中也不乏一些充满智慧闪光的语句，严肃得完全不像那个可爱搞笑的形象。 &lt;br /&gt;&lt;br /&gt; 以下就是他的语录和故事集（特此声明，本文中的所有话语都是本人在当堂记下，或当天回忆的，为说话人原话的大意，而不少内容不是原文原句。很多的话语在个别子句上有出入，但不影响大意和大家的理解）。 &lt;br /&gt;&lt;br /&gt; 正式类： &lt;br /&gt;&lt;br /&gt; 每一道题都和未来相关。 &lt;br /&gt;&lt;br /&gt; 因为粗心丢分是最可惜的。 &lt;br /&gt;&lt;br /&gt; 对自己的人生负责，对自己的分数负责。 &lt;br /&gt;&lt;br /&gt; 我是15岁上大学的。 &lt;br /&gt;&lt;br /&gt; 一个男人如果把命运交给一个女人，这是不可饶恕的错误。（他对出国一带一现象的看法，深刻！寄托男必看之） &lt;br /&gt;&lt;br /&gt; 非正式类： &lt;br /&gt;&lt;br /&gt; 她问我一个很深刻的问题：“What’s your name?”我沉思了一下，然后更深刻地回答：“Yes”。（他上大一时一生的痛） &lt;br /&gt;&lt;br /&gt; 新东方分为两类人。一类是海外归来的海归派，我们土生土长的是土鳖派。 &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; 关于他头发的故事： &lt;br /&gt; &lt;br /&gt; 有同学课下递条子，问我的发型是不是学F4的。有女生说我的发型不错，但最好用发夹夹起来。还有一个人说我的头发是“五好”：“好没新鲜感，好没个性，好土，好俗……。”我很冷静地对她说：“你的条子递错了，你应该递给何钢老师。” &lt;br /&gt;&lt;br /&gt; 曾经有个同学议论我，说：“那个老师的声音这么粗，怎么像个男老师？” &lt;br /&gt;&lt;br /&gt; 在新东方总部的时候，有个大娘面对我走过来，对我说：“大妹子，你教我怎么美容呀？” &lt;br /&gt;&lt;br /&gt;有一次我去美发店（其实他最应该去美容店，一脸的民工相），看到上面写着“洗剪20元”，觉得很便宜，就进去了。剪完以后，他居然找我要40元，我觉得他 完全不可理喻（换成了美女，估计立马掏出一张50大钞，然后说：“不用找了。我是新东方的老师，这是我的名片，请问你什么时候可以下班？”）他说了一个很 专业的名词：“短穗”。后来我到处找人打听，才知道是给女孩子做的（那个美发师把他当作了女孩子？）。如果大家想知道“短穗”是什么，可以看看我后面。&lt;br /&gt;&lt;br /&gt; 他和女生的故事： &lt;br /&gt;&lt;br /&gt; 有一次我进门的时候，有一女生向我冲来，我以为会发生什么，结果什么也没发生。她直接冲出门了。（Faint！） &lt;br /&gt;&lt;br /&gt;有一次我去买菜，遇到一个女学生和她丈夫一起买菜。当时我想有她丈夫在，所以不好跟她打招呼，所以看了一下就走开了（他当时的眼光一定很依依不舍）。后来 她也看到了我，估计丈夫在旁边，也不好打招呼，所以看了我一下也走开了。这时我听见她说了一句话，让我郁闷了一年多，“刚才那个民工长得好像我在新东方的 老师”。&lt;br /&gt;&lt;br /&gt; 他的信件故事： &lt;br /&gt;&lt;br /&gt; 每天我都要受到50多封信，什么内容都有（引起下面的一阵笑声，不知道有没有女生的求爱信），封封都回。（后面我会附上他的特搞笑的地址，大家一定多写信给他） &lt;br /&gt;&lt;br /&gt; 曾经有一个人给我写信，信上说：“亲爱的耗子我爱你，就像老鼠爱大米。如果你还没结婚，我就一定来追你……”我看了很高兴，最后一看落款：“爱你的约翰。”我只是头发长了一点，还没有这种倾向呀。 &lt;br /&gt;&lt;br /&gt; 还有一个女生发了一个flash给我，说是一个女生的秘密。当时我很有兴趣（他属于有贼心没贼胆的一类），那是一个女生的秘密呀。那个flash上有一排水桶，我一个一个点完以后，上面打出一行字：“我在每个水桶里都放了耗子药。” &lt;br /&gt;&lt;br /&gt; 另有一个女生也发了一个flash给我，上面问：“如果全世界的猪都死光了会有什么结果？”我很奇怪，我和猪有什么关系？点击后一看：“至少还有你。”（下面开始鼓掌） &lt;br /&gt;&lt;br /&gt; 他和何钢的故事： &lt;br /&gt;&lt;br /&gt; 她很温柔地扬起了手指对我说：“我的孩子已经三岁了。”（何钢介绍了一位新东方新来的女老师让他追） &lt;br /&gt;&lt;br /&gt; 有同学问我，说新东方的老师有的喜欢在课上讲一些yellow story，为什么我不讲。我说我觉得自己属于中国古典类型的男人，所以我是不会讲的，但何钢老师肯定会讲。 &lt;br /&gt;&lt;br /&gt; 他的事迹和风格： &lt;br /&gt;&lt;br /&gt; 911事件后，有个同学知道我是一个民族主义者，就问我关于此事的看法。我说：“第一，这事不是我干的。第二，本拉登干了一件我很想干的事。”（唯恐天下不乱，爱搞恶作剧的典型） &lt;br /&gt;&lt;br /&gt; 你们看到电视上，美国大使馆墙上黑的红的绿的蓝的，什么颜色都有——那都是我干的！（他最自豪的事情，99年） &lt;br /&gt;&lt;br /&gt; 有同学问我为什么从上课以来没见我换过衣服，我记得……我好像换了（还是一件差不多的廉价T恤），不过我夏天有两套衣服就够了（包括身上这一套），冬天一套就行了（让我想起了孔乙己，他以后千万不能娶一位有洁癖的老婆）。 &lt;br /&gt;&lt;br /&gt;我最崇拜的是李白同学(李白什么时候成了他的同学？)，因为他写过……的诗句（他很骄傲地把一首没多少人听过的唐诗很流利地背诵一遍），还有我们敬爱的周 总理（还好没有成为他的同学），再就是孙悟空同学（当初大闹天宫肯定让他打前锋），当然还有乔峰同学（他的同学可真多，但跟他都不是一个档次的）——情深 似海，义薄云天（原来他的Email名字“丐帮帮主”是这么来的，当年逼走乔峰想篡夺帮位的内奸就是他）。我最佩服的是小新同学（两眼开始放光，比被美女 大夸一通还兴奋）——他那种人，啥也不是，谁都敢玩！（他俩肯定是同学！）&lt;br /&gt;&lt;br /&gt; 邮箱地址：gaibangbangzhu99@163.net 和 haozi_250@sohu.com &lt;br /&gt;&lt;br /&gt; 作文：何钢  其貌不扬，恃才放旷 &lt;br /&gt;&lt;br /&gt; 刚见到何钢的时候简直不敢相信这样的人会是老师。等到我看到他的时候，他已经在台上了。 &lt;br /&gt;&lt;br /&gt;他的年龄很难让人猜测，从外表看一般为30至50之间。因为他体态及其富态，又圆又大的脑袋上露出一颗光亮的头顶，没有完全荒漠的后脑勺竟然留了及肩的长 发。在丰满的脸上总是眯着两颗小眼睛，在整个讲课的时间里，似乎很少见他们睁大过。这样的奇人奇相若穿上道袍或法衣，一定可以吸引很多围观者和善男信女； 但若穿上便装，只怕三岁以下的小孩不小心撞见了都会吓哭（三岁以上的都会吓得跑开）。&lt;br /&gt;&lt;br /&gt;在现在反常的北京酷暑季节，他的身材显然非常不适应。他经常坐在讲台后，拿着一个扇子，边扇边讲，而且不停地喝水。结果后排的同学在电视上只能看到一个鸡 蛋一样的脑袋在黑板前。他上课很爱喝水，每次班主任至少会放三瓶矿泉水在讲台上。中间一下课，就直奔门外，估计是完成“进出水”的后面一项过程。&lt;br /&gt;&lt;br /&gt;但是当他开口讲课时，听声音好像应该不到30。因为新东方的老师平时工作量极大，一般同时上好几个班，从早到晚，不是年轻人扛不下来。即使这样，上完以 后，也必须组织老师去旅游放松，因此一线老师的年龄都在30左右。当年的元老除了钱学强，现在都向40接近。但是对于这位老师，年龄的变化不会使他变得更 帅。&lt;br /&gt;&lt;br /&gt; 新东方的老师总是让人不敢以貌取人，也正是在这个不被传统观念束缚的学校，这些被世俗压抑的年轻老师，才可以一展风采，酣畅淋漓地挥洒自己的个性和价值。 &lt;br /&gt;&lt;br /&gt; 何钢是我见过表里反差最大的，也是最有才华的老师，由此也可以看出新东方宽容的择才标准。 &lt;br /&gt;&lt;br /&gt;作为一个作文老师，他对于英语语言的把握和深入是非常惊人的。也许说他对于英语文学的掌握很深更为合适。他随便聊起过他在北大图书馆借过一本英国诗人的原 版诗集，书价要2000多，英镑。有一次很随意把他在美国大学里看到的文学教程轮个批判了一通，让人大开眼界。比如为了避免种族歧视，美国政府在文学教科 书中，除了所谓的“白种死男人”的作品，添加了一篇古希腊时代女同性恋的诗（只有两行），一16世纪某女黑人写的求爱信诸如此类的作品。&lt;br /&gt;&lt;br /&gt; 他还提及他参加雅思考试中，一次及其严重的失误。严重到几乎让人认为考官能给他个分数都已经是奇迹。结果他后来用很不经意地说那次只得了8分。 &lt;br /&gt;&lt;br /&gt;在新东方的作文教材中，他把其中一篇范文讲解了一下，“很凑巧”是他的作文。课后，我把这篇8分的作文逐字逐句研究学习，结果发现其中的很多单词已经大大 超出了雅思单词的范围。其中所应用的典故远远不是一个英语老师可以掌握的。即使对于一般的单词，他也尽量用一些生僻但很华丽的词来代替。用这样的手法来写 一个关于大学新生入学问题的作文，简直就是故意考验考官。&lt;br /&gt;&lt;br /&gt;他把英语作文和其中的逻辑规则讲得极为透彻，偶尔看到他闭着眼睛讲了一段又突然惊醒转到另一个话题。按照胡敏的解释，新东方老师对于每节课的内容至少都讲 过上百遍，等到第50遍之后，他再讲同样的内容，自己就会有一种想吐的感觉。有时对于讲课的内容太熟悉了，讲到下课才发现自己是在讲课。不过意识是走神 了，但是口里的内容却一点不差。&lt;br /&gt;&lt;br /&gt;如果把新东方老师讲课的风格来分类，那么基本上可以分为激情派，表扬派和学院派三类。激情派就是老俞那种，上课不提一点关于英语的内容，但说得人热血澎 湃，下课后狂背单词。表扬派就是一江博为代表的，把课堂当作自己舞台，尽情表扬和展示自己的才华和对英语的热爱。学院派就比较传统了，以严密的逻辑和深厚 的学术功底严谨地授课，胡敏就是典型。(三个代表？)&lt;br /&gt;&lt;br /&gt; 张皓自称为激情派，而我可以把何钢归于表演派。何钢的表演特点不像江博那样用肢体语言，蹦来蹦去，一堂课下来浑身大汗淋漓才过瘾。何钢喜欢用一种带有喜剧和挑逗的语言来制造一种轻松但很吸引人的课堂效果。 &lt;br /&gt;&lt;br /&gt; 作为一个演员，他并不喜欢表扬结束以后仍然和观众多交流，似乎他更喜欢台上的自己。所以他很少课下回答同学的问题，最后一节课也没有留下私人的邮箱。 &lt;br /&gt;&lt;br /&gt; 他对于课堂的内容，常常用一种被逼无奈的语调来结束一句话，常常引人发笑。他还特别爱谈一些很有刺激性的话语，当然不忘把有关的单词让大家记下了。 &lt;br /&gt;&lt;br /&gt; 事实上，从他那些显得很另类的单词中，可以感受到他丰富的知识领域和在语言写作方面华丽而炫耀的风格。另一方面，即使在用汉语调侃中，他也习惯性地使用很多带有文学性的词汇和典故。因此他的话语中有很多很经典的用词手法。 &lt;br /&gt;&lt;br /&gt; 关于他爱谈些有刺激性的话题，让某些女生觉得他有些油腔滑调，但是听他的课确实很过瘾，几天不听就很想念他。比如关于他会说些yellow story的传说，我倒是没听到，但是对于这方面的擦边话题他一开讲，就如同滔滔江水连绵不绝。 &lt;br /&gt;&lt;br /&gt;比如一次提到关于电视的副作用，色情和暴力方面的问题，他让我第一次知道了这两个单词的地道写法。谈到violence方面，他大谈中国古代对于暴力美学 的推崇。从三国谈到水浒，某一回哪些人杀了什么人，原文又是如何描写，如何有诗为证，翻译成现代文怎么理解等等。说到了sexually appealing scenes的例子，他又挨个把四大名著加《金瓶梅》涮一遍。特别对于《红楼梦》，似乎贾府内外的男男女女都脱不开干系。一通兴奋之后，我的笔记本上记下 了几十个罕见的单词，比如SM的原型列在后面供人分享。&lt;br /&gt;&lt;br /&gt; 何钢语录： &lt;br /&gt;&lt;br /&gt; 正式类： &lt;br /&gt;&lt;br /&gt; 好的作文是把恰当的词用在恰当的地方。 &lt;br /&gt;&lt;br /&gt; 科学注重创造，文化强调继承。 &lt;br /&gt;&lt;br /&gt; 非正式： &lt;br /&gt; &lt;br /&gt; 考试中间休息5－10分钟，你可以尽情进出水。（雅思考试规定） &lt;br /&gt;&lt;br /&gt; 还有几个变态带着睡袋。（北京地区雅思报名处凌晨4：00的排队情景） &lt;br /&gt;&lt;br /&gt; 拿7分还是较比困难的。（这是哪个朝代的用词？） &lt;br /&gt;&lt;br /&gt; 如果你还在奋笔疾书，你就会上了英国情报五处的黑名单，列入不欢迎人员，享受和本拉登同等的待遇。（雅思考试结束时） &lt;br /&gt;&lt;br /&gt; 照片上的那个人的头发极其茂盛，显然不是本人。（雅思报名用拼音，他与另一人弄错考场） &lt;br /&gt;&lt;br /&gt; 那次考试的失误严重影响了我的成绩，那时前车之鉴，……最后我得了8分。（他把作文1从第一页写到第四页，才发现中间还有两张纸） &lt;br /&gt;&lt;br /&gt; 幸福真的很难得到。如果现代科技发明一个键，按一下，粉笔灰自己往下掉，那有多好。（他正汗流浃背地擦黑板） &lt;br /&gt;&lt;br /&gt; 排队上WTO的时候再背一次。（最经典的一句，关于如何背单词） &lt;br /&gt;&lt;br /&gt; 它为什么只有2分钟，这是资本主义追求剩余价值的结果。（雅思作文的批改） &lt;br /&gt;&lt;br /&gt; 所谓及其负责任的考官，就是看完第二段第一句之后，看第二句。（雅思作文的套路） &lt;br /&gt;&lt;br /&gt; 这等于你让他不爽，那么他会让你不爽。（如果你把每段中心句写在末尾） &lt;br /&gt;&lt;br /&gt; ……，妇女解放的道路依然漫长。（一提到女性与社会的作文，免不了这句话。他好像很怜香惜玉） &lt;br /&gt;&lt;br /&gt;美国有些快餐店，使用两个月的速养鸡，所以都称为junk food。老外都不愿意去那里吃，宁愿在家做。我是会去的，不是因为想吃junk food，而是因为在中餐馆里的鸡，你不知道是被车轧死的，是别的鸡踩死的，是得鸡瘟死的，还是在鸡粪中淹死的。（当时我有一种强烈的反胃冲动，幸亏他停 住话题，否则我肯定会冲出教室。）&lt;br /&gt;&lt;br /&gt; 何钢提到的部分单词： &lt;br /&gt;&lt;br /&gt; violence 暴力  pornography 色情 sexually appealing scenes 带有性倾向画面 &lt;br /&gt;&lt;br /&gt; sadistic impulse 肆虐冲动  masochistic 受虐狂 （合称SM） &lt;br /&gt;&lt;br /&gt; censorship  节目审查   mahjong  麻将  eco-friendly 环保的 ecology 环保学 &lt;br /&gt;&lt;br /&gt; recyclable  可循环的 biodegradable 可降解的  lunch box 午餐盒 &lt;br /&gt;&lt;br /&gt; disposable  一次性的  lesbian  女同性恋   gay  男同性恋   &lt;br /&gt;&lt;br /&gt; sexual orientation  性倾向  heterosexual  异性恋  homosexual 同性恋 &lt;br /&gt;&lt;br /&gt; bisexual  双性恋    kick  回扣   liberal  arts  文科  trans genetic food 转基因食品 &lt;br /&gt;&lt;br /&gt; kinship 亲情   commitment  敬业精神  migrant 民工   &lt;br /&gt;&lt;br /&gt; 阅读：马针峰  最令人尊敬的老师 &lt;br /&gt;&lt;br /&gt; 马老师是典型的学院派的老师。他也有一颗很大的脑袋，不过头发比何钢还正常多了。平时和蔼而严肃的眼神还有整齐的打扮使人肃然起敬。 &lt;br /&gt;&lt;br /&gt;因为他属于比较传统的老师，因此很多学生对他的印象不如前两位有个性老师那么吸引人了。但事实上，在学术方面的造诣他是最深厚。他总是带着我们把雅思的每 一种阅读题型和其中的小题一题一题地做完，并且及时总结和分析。此外，他对于出国留学的了解远远多于这期雅思班的老师。每次课下，都有很多的同学围在他周 围询问有关的问题。而他总是会花很长时间，很耐心地一一回答，直到太晚了才离开。&lt;br /&gt;&lt;br /&gt; 因此他的教学风格并不非常有个性，插话和玩笑几乎没有，有些学生很容易在150分钟的课上睡着。在最后对老师的评分中，有的学生只给他1、2分的评价（5分制）。事实上这是很不公平的。 &lt;br /&gt;&lt;br /&gt;他所讲授的阅读和其它技能都有所不同。在英语的运用方面，只要有很好的英语环境，口语和听力都可以在几个月以内提高，但是阅读能力却很难增加。当然最难的 是作文，不过对于日常的生活学习，阅读依然是头号难题。马老师从很多的方面分析了英文的成文规则和英语的思维方式，并且亲自对阅读的技巧一一讲解。认真听 下来，即使对于一篇几千字带有大量学术生词的文章，短时间内看下来也不是难事。雅思毕竟是最注重英语实际运用能力的英语考试。&lt;br /&gt;&lt;br /&gt; 特别对于雅思一种判断文章内容类型的题目，尤其能体现东西方文化和思维差别。而他讲解地很透彻，从做题中我体会到了西方理性客观思维的特点，在两个极端中存在大量的中间状态，不同于东方非对即错，黑白分明的世界观。 &lt;br /&gt;&lt;br /&gt;事后才发觉马老师讲解的方法和内容是最实际的。其它的听力口语虽然容易掌握，但是没有语言环境，运用的机会很少，作文就不用说了。学习结束后不久，我去新 东方查资料，因路途遥远，事务繁多，我只有很少的时间去查询和浏览。当拿到一本砖头般后的英文资料后，想不到只有马老师教授的阅读方法才管用，否则连目录 都看不完。几本书翻下来，紧张得一身汗。事实上现实中的阅读要求比雅思考试的更高，难怪国外的留学生都怕做论文。因为每次他们都必须在短期内看完一堆资 料，然后才能写出论文。加上英文的书籍特别厚，字体又小，又是字母文字，不如象形文字好查找，没有在国内练好扎实的基本功，国外只会活受罪。&lt;br /&gt;&lt;br /&gt; 信箱：zhengfengma@sina.com &lt;br /&gt;&lt;br /&gt; 推荐的网站: &lt;br /&gt;&lt;br /&gt; www.scientifiamerican.com &lt;br /&gt;&lt;br /&gt; www.ielts.org &lt;br /&gt;&lt;br /&gt; www.britishcouncil.org.cn &lt;br /&gt;&lt;br /&gt; www.businessweek.com.uk &lt;br /&gt;&lt;br /&gt; 以下附上他对于留学申请中的个人简历的讲解： &lt;br /&gt;&lt;br /&gt; 内容：为什么选这个学校？ &lt;br /&gt;&lt;br /&gt;     如果转学，为什么转学？ &lt;br /&gt;&lt;br /&gt;     如果被录取，你会如何利用学习时间？ &lt;br /&gt;&lt;br /&gt;     你的学习计划是什么？（目的要说清楚） &lt;br /&gt;&lt;br /&gt;     你打算毕业后做什么？ &lt;br /&gt;&lt;br /&gt;     把在校的学习和今后的目的联系起来，突出自己的特质（creative, term-up） &lt;br /&gt;&lt;br /&gt;     对知识的好奇，独立的人格，独立的钻研能力 &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; 口语：Nevin Blumer  最希望在国外见到的老师。 &lt;br /&gt;&lt;br /&gt;Mr.Blumer是一位很典型的英联邦国家的绅士，总是认真的穿着大号的衬衫掩着大肚子，提着公文包赶路。即使因为吃到而满头大汗也不会解开第二个钮 扣。他的头发介于金色和褐色之间，浓浓的眉毛和深深的眼窝在敦实的下巴映衬下很精神。他的口音很纯正，不像美语那么拗口，又不同于语调变化过多的英式英 语。&lt;br /&gt;&lt;br /&gt; 第一节课他自我介绍他是加拿大人，在日本教了10年书，后有去新加坡任教。想必新东方把他挖来一定用了不少时间和银子。他上课总是用幻灯片放笔记，介绍他的家庭时还放了他两个可爱baby的照片。 &lt;br /&gt;&lt;br /&gt; Blumer讲课风格主要是用简单但幽默的话语加上夸张的表情和动作。也许长期在亚洲教授英语的经验使他知道只有用简单的语言才能让大部分学生听懂，再加上生动的表演能够激发学生的兴趣和增加对不熟悉内容的理解。 &lt;br /&gt;&lt;br /&gt; 他很喜欢让学生参与他的讲课，结果前三排的人都被他点过一遍。由于雅思的口语实践性很强，他还布置了大量的课堂练习。 &lt;br /&gt;&lt;br /&gt; 他教授的特点是那种很典型的西方方式，鼓励多参与，不怕失败，每人都可以做的很好。这种轻松环境对于学习雅思口语是极有帮助的，因为雅思的考官都是老外。 &lt;br /&gt;&lt;br /&gt;可惜我的口语测试练习还是太紧张。那位考官和我谈了几分钟之后，问我为什么这么nervous？I said :“It’s my first time to talk with a foreign young lady.”这位可爱迷人的金发女子扬起了长长的睫毛，睁大了琥珀色的大眼睛，看着我“哦”了一声，最后手下留情给我5分。&lt;br /&gt;&lt;br /&gt; 平心而论，Blumer的课堂内容和其它老师显得有些简单。但是毕竟他是用外语教课，而且口语考试也不需要用复杂的语法和词汇。让学生用简单的语句自如流利地交谈就是最好的结果。 &lt;br /&gt;&lt;br /&gt; Blumer的笑话和故事我就没有记什么，毕竟每个人的风格都不同，不是每个老师都有大把的笑话或者yellow story放在口袋里准备着。 &lt;br /&gt;&lt;br /&gt; 最后他很依依不舍地留下他的邮箱，说他和很多学生都经常联系，即使是只听过一节课的学生。他送给我们一句居里夫人的名言： &lt;br /&gt;&lt;br /&gt; Nothing in life is to be feared. Only understood. &lt;br /&gt;&lt;br /&gt; ——Mme Curie &lt;br /&gt;&lt;br /&gt; 最后希望他能在加拿大有机会和我们再次相见，真令人感动。 &lt;br /&gt;&lt;br /&gt; 邮箱：nblumer@95777.com &lt;br /&gt;&lt;br /&gt; &lt;br /&gt; 综合评价： &lt;br /&gt;&lt;br /&gt;很可惜，本来这四位老师都可以得到4.5左右的高分，但是在我听完胡敏的讲座之后，我全部给了他们4.0。因为我认为不论他们如何优秀，但是他们和胡敏之 间的差距是客观存在的。我给胡敏的打分是5.0，因此，他们和胡敏之间的差别使我最后只能给了4.0分。不是他们不优秀，只是新东方还有更为优秀的老师。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-5100632329601270656?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/5100632329601270656/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=5100632329601270656' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5100632329601270656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/5100632329601270656'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/03/blog-post.html' title='新东方雅思班回忆录(转载)'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-4842457111066887526</id><published>2006-03-15T16:10:00.000+08:00</published><updated>2006-11-18T02:48:02.608+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>出租司机给我上的MBA课(转载)</title><content type='html'>&lt;p&gt;原出处：&lt;a href="http://blog.run2me.com/runliu/archive/2006/03/15/14311.aspx"&gt;刘润博客&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;我要从徐家汇赶去机场，于是匆匆结束了一个会议，在美罗大厦前搜索出租车。一辆大众发现了我，非常专业的、径直的停在我的面前。这一停，于是有了后面的这个让我深感震撼的故事，象上了一堂生动的MBA案例课。为了忠实于这名出租车司机的原意，我凭记忆尽量重复他原来的话。&lt;/p&gt; &lt;p&gt;“去哪里……好的，机场。我在徐家汇就喜欢做美罗大厦的生意。这里我只做两个地方。美罗大厦，均瑶大厦。你知道吗？接到你之前，我在美罗大厦门口兜了两圈，终于被我看到你了！从写字楼里出来的，肯定去的不近~~~”&lt;/p&gt; &lt;p&gt;“哦？你很有方法嘛！”我附和了一下。&lt;/p&gt; &lt;p&gt;“做出租车司机，也要用科学的方法。”他说。我一愣，顿时很有些兴趣“什么科学的方法？”&lt;/p&gt; &lt;p&gt;“要懂得统计。我做过精确的计算。我说给你听啊。我每天开17个小时的车，每小时成本34.5元……”&lt;/p&gt; &lt;p&gt;“怎么算出来的？”我追问。&lt;/p&gt; &lt;p&gt;“你 算啊，我每天要交380元，油费大概210元左右。一天17小时，平均每小时固定成本22元，交给公司，平均每小时12.5元油费。这是不是就是34.5 元？”，我有些惊讶。我打了10年的车，第一次听到有出租车司机这么计算成本。以前的司机都和我说，每公里成本0.3元，另外每天交多少钱之类的。&lt;/p&gt; &lt;p&gt;“成 本是不能按公里算的，只能按时间算。你看，计价器有一个“检查”功能。你可以看到一天的详细记录。我做过数据分析，每次载客之间的空驶时间平均为7分钟。 如果上来一个起步价，10元，大概要开10分钟。也就是每一个10元的客人要花17分钟的成本，就是9.8元。不赚钱啊！如果说做浦东、杭州、青浦的客人 是吃饭，做10元的客人连吃菜都算不上，只能算是撒了些味精。”&lt;/p&gt; &lt;p&gt;强！这位师傅听上去真不象出租车司机，到象是一位成本核算师。“那你怎么办呢？”我更感兴趣了，继续问。看来去机场的路上还能学到新东西。&lt;/p&gt; &lt;p&gt;“千 万不能被客户拉了满街跑。而是通过选择停车的地点，时间，和客户，主动地决定你要去的地方。”我非常惊讶，这听上去很有意思。“有人说做出租车司机是靠运 气吃饭的职业。我以为不是。你要站在客户的位置上，从客户的角度去思考。”这句话听上去很专业，有点象很多商业管理培训老师说的“put yourself into others' shoes.”&lt;/p&gt; &lt;p&gt;“给你举个例子，医院门口，一个拿着药的，一个拿着脸盆的，你带哪一个。”我想了想，说不知道。&lt;/p&gt; &lt;p&gt;“你 要带那个拿脸盆的。一般人病小痛的到医院看一看，拿点药，不一定会去很远的医院。拿着脸盆打车的，那是出院的。住院哪有不死人的？今天二楼的谁死了，明天 三楼又死了一个。从医院出来的人通常会有一种重获新生的感觉，重新认识生命的意义，健康才最重要。那天这个说：走，去青浦。眼睛都不眨一下。你说他会打车 到人民广场，再去做青浦线吗？绝对不会！”&lt;/p&gt; &lt;p&gt;我不由得开始佩服。&lt;/p&gt; &lt;p&gt;“再给你举个例子。那天人民广场，三个人在前面招手。一个 年轻女子，拿着小包，刚买完东西。还有一对青年男女，一看就是逛街的。第三个是个里面穿绒衬衫的，外面羽绒服的男子，拿着笔记本包。我看一个人只要3秒 钟。我毫不犹豫地停在这个男子面前。这个男的上车后说：延安高架、南北高架~~~还没说后面就忍不住问，为什么你毫不犹豫地开到我面前？前面还有两个人， 他们要是想上车，我也不好意思和他们抢。我回答说，中午的时候，还有十几分钟就1点了。那个女孩子是中午溜出来买东西的，估计公司很近；那对男女是游客， 没拿什么东西，不会去很远；你是出去办事的，拿着笔记本包，一看就是公务。而且这个时候出去，估计应该不会近。那个男的就说，你说对了，去宝山。”&lt;/p&gt; &lt;p&gt;“那些在超市门口，地铁口打车，穿着睡衣的人可能去很远吗？可能去机场吗？机场也不会让她进啊。”&lt;/p&gt; &lt;p&gt;有道理！我越听越有意思。&lt;/p&gt; &lt;p&gt;“很 多司机都抱怨，生意不好做啊，油价又涨了啊，都从别人身上找原因。我说，你永远从别人身上找原因，你永远不能提高。从自己身上找找看，问题出在哪里。”这 话听起来好熟，好像是“如果你不能改变世界，就改变你自己”，或者Steven Corvey的“影响圈和关注圈”的翻版。“有一次，在南丹路一个人拦车，去田林。后来又有一次，一个人在南丹路拦车，还是去田林。我就问了，怎么你们从 南丹路出来的人，很多都是去田林呢？人家说，在南丹路有一个公共汽车总站，我们都是坐公共汽车从浦东到这里，然后搭车去田林的。我恍然大悟。比如你看我们 开过的这条路，没有写字楼，没有酒店，什么都没有，只有公共汽车站，站在这里拦车的多半都是刚下公共汽车的，再选择一条最短路经打车。在这里拦车的客户通 常不会高于15元。”&lt;/p&gt; &lt;p&gt;“所以我说，态度决定一切！”我听十几个总裁讲过这句话，第一次听出租车司机这么说。&lt;/p&gt; &lt;p&gt;“要用科学的 方法，统计学来做生意。天天等在地铁站口排队，怎么能赚到钱？每个月就赚500块钱怎么养活老婆孩子？这就是在谋杀啊！慢性谋杀你的全家。要用知识武装自 己。学习知识可以把一个人变成聪明的人，一个聪明的人学习知识可以变成很聪明的人。一个很聪明的人学习知识，可以变成天才。”&lt;/p&gt; &lt;p&gt;“有一次一 个人打车去火车站，问怎么走。他说这么这么走。我说慢，上高架，再这么这么走。他说，这就绕远了。我说，没关系，你经常走你有经验，你那么走50块，你按 我的走法，等里程表50块了，我就翻表。你只给50快就好了，多的算我的。按你说的那么走要50分钟，我带你这么走只要25分钟。最后，按我的路走，多走 了4公里，快了25分钟，我只收了50块。乘客很高兴，省了10元钱左右。这4公里对我来说就是1块多钱的油钱。我相当于用1元多钱买了25分钟。我刚才 说了，我一小时的成本34.5块，我多合算啊！”&lt;/p&gt; &lt;p&gt;“在大众公司，一般一个司机3、4千，拿回家。做的好的大概5千左右。顶级的司机大概每月能有7000。全大众2万个司机，大概只有2-3个司机，万里挑一，每月能拿到8000以上。我就是这2-3个人中间的一个。而且很稳定，基本不会大的波动。”&lt;/p&gt; &lt;p&gt;太强了！到此为止，我越来越佩服这个出租车司机。&lt;/p&gt; &lt;p&gt;“我常常说我是一个快乐的车夫。有人说，你是因为赚的钱多，所以当然快乐。我对他们说，你们正好错了。是因为我有快乐、积极的心态，所以赚的钱多。”&lt;/p&gt; &lt;p&gt;说的多好啊！&lt;/p&gt; &lt;p&gt;“要 懂得体味工作带给你的美。堵在人民广场的时候，很多司机抱怨，又堵车了！真是倒霉。千万不要这样，用心体会一下这个城市的美，外面有很多漂亮的女孩子经 过，非常现代的高楼大厦，虽然买不起，但是却可以用欣赏的眼光去享受。开车去机场，看着两边的绿色，冬天是白色的，多美啊。再看看里程表，100多了，就 更美了！每一样工作都有她美丽的地方，我们要懂得从工作中体会这种美丽。”&lt;/p&gt; &lt;p&gt;“我10年前是强生公司的总教练。8年前在公司作过三个不同部门的部门经理。后来我不干了，一个月就3、5千块，没意思。就主动来做司机。我愿意做一个快乐的车夫。哈哈哈哈。”&lt;/p&gt; &lt;p&gt;到了机场，我给他留了一张名片，说：“你有没有兴趣这个星期五，到我办公室，给微软的员工讲一讲你怎么开出租车的？你就当打着表，60公里一小时，你讲多久，我就付你多少钱。给我电话。”&lt;/p&gt; &lt;p&gt;我迫不及待的在飞机上记录下他这堂生动的MBA课。&lt;/p&gt; &lt;p&gt;============================&lt;/p&gt; &lt;p&gt;&lt;strong&gt;[注一]&lt;/strong&gt; 关于真实性。事情绝对是真实的，并且我尽最大努力忠实于这名司机的原意，包括数字、选词、语气、构句等。除了我记忆力所限不能100%精确外，基本重现了当时的场景。我没有“润色”，因为我以为他的感染力比我要大。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;[注二] &lt;/strong&gt;关于星期五。我发出了诚挚的私人邀请，希望他能来给我们做一场演讲。但这要尊重司机本人的意愿，如果他并不愿意、或者不感觉合适而未能成行，只能表示遗憾了。希望文章能够弥补希望参加的人的一些遗憾，也不枉我写了这么长。&lt;/p&gt;&lt;p&gt;============================&lt;/p&gt;&lt;p&gt;摘抄后记：&lt;/p&gt;&lt;p&gt;这篇文章摘后不久，满世界都开始转载了。南方周末还发过一篇相关的随笔文章，重点是讨论这个故事的潜意——员工要创造性地工作并享受工作，竭力榨干自己来为老板带来最大的价值。这当然是仁者见仁了，呵呵：）&lt;br /&gt;&lt;/p&gt;&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-4842457111066887526?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/4842457111066887526/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=4842457111066887526' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4842457111066887526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4842457111066887526'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/03/mba.html' title='出租司机给我上的MBA课(转载)'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3934395122174757368</id><published>2006-03-01T12:04:00.000+08:00</published><updated>2006-11-18T03:06:24.007+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><category scheme='http://www.blogger.com/atom/ns#' term='health'/><title type='text'>绿色减肥</title><content type='html'>刚看了央视十台的绿色空间－“我为肥狂”，赶紧记录，望如法炮制望能得其果&lt;br /&gt;&lt;br /&gt;绿色减肥：&lt;br /&gt;即坚持健康有氧运动。有氧运动的重要标准是心率维持在如下范围之内：&lt;br /&gt;不低于（220 - 年龄）X 65％&lt;br /&gt;不高于（220 - 年龄）X 80％&lt;br /&gt;&lt;br /&gt;另外运动时间维持在30-60分钟之间，时间若过短，运动时消耗的是糖分；运动时间过长会因脑部缺乏血液供应导致缺氧，造成运动伤害甚至猝si。&lt;br /&gt;&lt;br /&gt;主人公小老弟自创“原地跑步健康减肥法”，场地就在家里，一则有利于消除害羞情绪，二则不受天气季节影响，三则花费极少，甚合我辈胖哥一族之意&lt;br /&gt;&lt;br /&gt;方法：&lt;br /&gt;原地跑步&lt;br /&gt;抬起双臂与肩平，两手掌叠搭，可锻炼胸部肥肉；&lt;br /&gt;仰头90度，可锻炼脸部和脖子肥肉；&lt;br /&gt;胸、腹部绑束身带，可增强锻炼效果；&lt;br /&gt;&lt;br /&gt;器材：&lt;br /&gt;很简单，两个家用脚垫，中间夹一层旧沙发座垫的海绵，用布条捆扎起来，作成跑步垫，一来可以防止打扰邻居休息，二来减少脚踏地面带来的冲击，另外再准备束身带两根&lt;br /&gt;&lt;br /&gt;效果：&lt;br /&gt;实在明显，那位小老弟三个月减了30斤，八个月坚持下来，从230斤变成了140斤，简直叹为观止啊！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3934395122174757368?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3934395122174757368/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3934395122174757368' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3934395122174757368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3934395122174757368'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/02/blog-post.html' title='绿色减肥'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-9096666216535859447</id><published>2005-07-07T11:28:00.000+08:00</published><updated>2006-11-18T03:04:14.306+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>累并痛苦着，还好调节过来了</title><content type='html'>被迫研究WebBrowser控件，本来还自信满满，以为以前丰富的DOM知识可以在这里轻松得到发挥，哪里知道一涉及到细节就举步蹒跚，等有空了一定要写出来。转念想想以前水院的日子，呵呵，心情好了些了。看来自我心理调节能力还凑合哈：P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-9096666216535859447?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/9096666216535859447/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=9096666216535859447' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/9096666216535859447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/9096666216535859447'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2005/07/blog-post.html' title='累并痛苦着，还好调节过来了'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-4327361626143500552</id><published>2005-07-07T11:19:00.000+08:00</published><updated>2006-11-18T02:27:09.732+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><title type='text'>方便开发的eclipse plug-ins</title><content type='html'>&lt;p&gt;&lt;span id="ArticleContent1_ArticleContent1_lblContent"&gt;1.Eclipse加速插件KeepResident&lt;br /&gt;      &lt;/span&gt;&lt;span&gt;&lt;a href="http://suif.stanford.edu/pub/keepresident"&gt;http://suif.stanford.edu/pub/keepresident&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;      如果你的machine内存少于700M,那么该插件实在能让你的eclipse快起来，不再像以前那样，动不动就僵住了。&lt;br /&gt;&lt;br /&gt;      其原理是利用两个 Windows API - SetProcessWorkingSetSize 与 VirtualLock，实得windows操作系统尽量不把java进程的内存pageout到硬盘，多Hold住一些物理内存给java进程使用。这 样当java process定期垃圾回收时就不会表现得僵住了。&lt;br /&gt; &lt;br /&gt;2.Easy explore&lt;br /&gt;      &lt;a href="http://easystruts.sourceforge.net/"&gt;http://easystruts.sourceforge.net/&lt;/a&gt;&lt;br /&gt;      eclipse project的所在目录通常very deep, 有时想在explorer中查找起来非常不便。有了easy explore插件，浏览任意project的目录就爽多了。&lt;br /&gt; &lt;br /&gt;3.Fat Jar 打包插件&lt;br /&gt;      &lt;a href="http://fjep.sourceforge.net/"&gt;http://fjep.sourceforge.net&lt;/a&gt;&lt;br /&gt;      可以方便的完成各种打包任务，可以包含外部的包等,比eclipse自带的export to jar file 功能强。 &lt;/span&gt;&lt;/p&gt; &lt;p&gt;4.Implementors  &lt;br /&gt;      &lt;a href="http://eclipse-tools.sourceforge.net/implementors/"&gt;http://eclipse-tools.sourceforge.net/implementors/&lt;/a&gt;&lt;br /&gt;      提供跳转到一个方法的实现类，而不是接口中的功能,很实用。当你使用代理模式的时候，使用它尤其快速，不用手写那些无聊的代码了。&lt;/p&gt; &lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-4327361626143500552?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/4327361626143500552/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=4327361626143500552' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4327361626143500552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4327361626143500552'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2005/07/eclipse-plug-ins.html' title='方便开发的eclipse plug-ins'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3891021260707413426</id><published>2005-06-26T04:50:00.000+08:00</published><updated>2006-11-18T02:59:10.643+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jotting'/><title type='text'>定制电邮地址图片</title><content type='html'>&lt;p dragover="true"&gt;来&lt;a href="http://www.nhacks.com/email/" target="_blank"&gt;这儿&lt;/a&gt;定制吧&lt;/p&gt; &lt;p dragover="true"&gt;这些是我的：&lt;br /&gt;&lt;/p&gt;&lt;p dragover="true"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/4077/149748902789783/1600/gmail.png"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/4077/149748902789783/320/gmail.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dragover="true"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/4077/149748902789783/1600/hotmail.jpg"&gt;&lt;img dragover="true" style="cursor: pointer;" src="http://photos1.blogger.com/blogger2/4077/149748902789783/320/hotmail.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;P.S.&lt;/p&gt; &lt;p&gt;后来又看到&lt;a href="http://www.eoool.com/" target="_blank"&gt;这个地方&lt;/a&gt;,内容就更丰富了,呵呵,快来瞧瞧&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3891021260707413426?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3891021260707413426/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3891021260707413426' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3891021260707413426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3891021260707413426'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2005/06/blog-post.html' title='定制电邮地址图片'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-6665199822159760215</id><published>2005-06-22T03:02:00.000+08:00</published><updated>2006-11-18T03:20:42.496+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Flash Component的初始化有什么好的方案？</title><content type='html'>组件初始化是一个挺麻烦的事情，当然这个麻烦的起因还是前面说到的性能问题&lt;br /&gt;&lt;br /&gt;比如一个Component&lt;br /&gt;&lt;br /&gt;Class rocbyte.Button{&lt;br /&gt; //constractor&lt;br /&gt; function Button(){&lt;br /&gt;   ...&lt;br /&gt;   draw();&lt;br /&gt;   ...&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; //draw user interface of component&lt;br /&gt; private function draw():Void{&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; //properties&lt;br /&gt; function set selected():Void{&lt;br /&gt;   ...&lt;br /&gt;   draw();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function get selected():Boolean{&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function set toggle():Void{&lt;br /&gt;   ...&lt;br /&gt;   draw();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; function get toggle():Boolean{&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;实例化一个Button：&lt;br /&gt;&lt;br /&gt;var btn1:Button = new Button();&lt;br /&gt;btn1.toggle = true;&lt;br /&gt;btn1.selected = true;&lt;br /&gt;&lt;br /&gt;这样最符合一般性的编程方式了，但是考虑到组件绘制，首先constractor肯定会调用一次绘制方法，其次 toggle 赋值也肯定会绘制一次，selected 赋值也会绘制一次，这样一个Button要绘制三次才能完成初始化。虽然多次绘制并不会增加内存使用量，但如果一个stage的初始化过程中有多个组件同时绘制就会让Movie比较慢了，如果一个组件可能会重绘几次，那就慢上加慢了，客户体验肯定不好，所以应该尽量减少初始化时候的重绘。&lt;br /&gt;&lt;br /&gt;一个办法，让draw()公开，在每次需要重绘的时候调用，那么初始化就变成：&lt;br /&gt;&lt;br /&gt;var btn1:Button = new Button();&lt;br /&gt;btn1.toggle = true;&lt;br /&gt;btn1.selected = true;&lt;br /&gt;btn1.draw();&lt;br /&gt;&lt;br /&gt;可行，但不好看，程序员必须记住要在那些地方那些时候调用&lt;br /&gt;&lt;br /&gt;另一个办法，用初始化参数对象，constractor就要变成：&lt;br /&gt;&lt;br /&gt;function Button(initObj:Object){&lt;br /&gt; for(p in initObj){&lt;br /&gt;&lt;br /&gt;   //没这么简单，因为这样跟最开始赋值没什么区别了&lt;br /&gt;   //还应该将p转换成对应的变量的名字再进行赋值&lt;br /&gt;   this.p = initObj.p;&lt;br /&gt; }&lt;br /&gt; draw();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;可行，但也需要程序员记得控件有那些属性，一般AS的编辑器是没法对这种情况显示代码提示的。&lt;br /&gt;&lt;br /&gt;很想知道还有没有其他的解决方法？&lt;br /&gt;&lt;br /&gt;回复：&lt;br /&gt;&lt;blockquote&gt;哈哈，看来你已经在研究这些东西了：）&lt;br /&gt;你可以看看AsWing这方面的的方法，通常一个Component在由undisplayable到displayable的时候进行绘制。也就是说，比如一个Button,constractor里是不进行绘制的，之后当这个button被加入到一个Container，并且这个Container是 displayable的时候，这个button被绘制。&lt;br /&gt;&lt;br /&gt;发布者 iiley__ (http://spaces.msn.com/members/iiley/) - 2005-6-21 13:44&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;我看过回复后有些启发，不过细细思索还是有些涉及全局的问题比较难以处理，再想想看吧……&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-6665199822159760215?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/6665199822159760215/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=6665199822159760215' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6665199822159760215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/6665199822159760215'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/11/flash-component.html' title='Flash Component的初始化有什么好的方案？'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-923649073785786178</id><published>2005-06-20T02:20:00.000+08:00</published><updated>2006-11-18T03:08:15.516+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vb'/><title type='text'>VB调用webbrowser技巧集</title><content type='html'>&lt;p&gt;&lt;strong&gt;VB调用webbrowser技巧集1&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1、获得浏览器信息：&lt;br /&gt;  Private Sub Command1_Click()&lt;br /&gt;    WebBrowser1.Navigate "&lt;a href="http://www.applevb.com/"&gt;http://www.applevb.com&lt;/a&gt;"&lt;br /&gt;  End Sub&lt;/p&gt; &lt;p&gt;  Private Sub Command2_Click()&lt;br /&gt;    Dim oWindow&lt;br /&gt;    Dim oNav&lt;br /&gt;&lt;br /&gt;    Set oWindow = WebBrowser1.Document.parentWindow&lt;br /&gt;    Set oNav = oWindow.navigator&lt;br /&gt;    Debug.Print oNav.userAgent&lt;br /&gt;&lt;br /&gt;    Set oWindow = Nothing&lt;br /&gt;    Set oNav = Nothing&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;点击Command1浏览网页，点击Command2在立即窗口中输出浏览器信息。&lt;br /&gt;&lt;br /&gt;2、弹出Webbrowser消息窗口&lt;br /&gt;&lt;br /&gt;  Dim oWindow&lt;br /&gt;&lt;br /&gt;  Set oWindow = WebBrowser1.Document.parentWindow&lt;br /&gt;  oWindow.confirm "abcd"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;VB调用webbrowser技巧集2&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;向Webbrowser中写入HTML内容的几种方法&lt;br /&gt;&lt;br /&gt;首先在Form_Load中加入&lt;br /&gt;WebBrowser1.Navigate "about:blank"&lt;br /&gt;确保Webbrowser1可用&lt;/p&gt; &lt;p&gt;方法1：&lt;br /&gt;  Dim s As String&lt;br /&gt;  Dim stream As IStream&lt;br /&gt;      &lt;br /&gt;  s = ""&lt;br /&gt;  s = s + ""&lt;br /&gt;  s = s + ""&lt;br /&gt;  s = s + "hello world"&lt;br /&gt;  s = s + ""&lt;br /&gt;  s = s + "   &lt;br /&gt;   WebBrowser1.Document.Write s&lt;br /&gt;&lt;br /&gt;方法2：&lt;br /&gt;  Dim o&lt;br /&gt;&lt;br /&gt;  Set o = WebBrowser1.Document.selection.createrange&lt;br /&gt;  Debug.Print o&lt;br /&gt;  If (Not o Is Nothing) Then&lt;br /&gt;    o.pasteHTML "哈哈"&lt;br /&gt;    Set o = Nothing&lt;br /&gt;  End If&lt;br /&gt;&lt;br /&gt;方法3：&lt;br /&gt;  '插入文本框&lt;br /&gt;  Dim o&lt;br /&gt;  Set o = WebBrowser1.Document.selection.createrange&lt;br /&gt;  o.execCommand "InsertTextArea", False, "xxx"&lt;br /&gt;&lt;br /&gt;其中方法3是采用了调用execCommand并且传递控制命令的方法，通过这种方法还可以插入图片等页面元素，详情可以参考MSDN的execCommand命令。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;vb调用Webbrowser技巧集3&lt;/strong&gt;&lt;br /&gt;1、页面滚动：&lt;br /&gt;  Private Sub Command2_Click()&lt;br /&gt;    WebBrowser1.Document.parentwindow.scrollby 0, 30&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub Form_Load()&lt;br /&gt;     WebBrowser1.Navigate "&lt;a href="http://www.applevb.com/"&gt;http://www.applevb.com&lt;/a&gt;"&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;点击Command2就可以使当前页面向下滚动30像素&lt;br /&gt;&lt;br /&gt;2、判断页面是否可以前进后退&lt;br /&gt;  Private Sub Command1_Click()&lt;br /&gt;    WebBrowser1.GoForward&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub Command2_Click()&lt;br /&gt;    WebBrowser1.GoBack&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub Form_Load()&lt;br /&gt;    WebBrowser1.Navigate "&lt;a href="http://www.applevb.com/"&gt;http://www.applevb.com&lt;/a&gt;"&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)&lt;br /&gt;    If (Command = CSC_NAVIGATEBACK) Then&lt;br /&gt;        Command2.Enabled = Enable&lt;br /&gt;    End If&lt;br /&gt;    If (Command = CSC_NAVIGATEFORWARD) Then&lt;br /&gt;        Command1.Enabled = Enable&lt;br /&gt;    End If&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;上面的command1是前进按钮，command2是后退按钮。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;VB调用webbrowser技巧集4&lt;/strong&gt;&lt;br /&gt;1、如何使网页不出现滚动条：&lt;br /&gt;&lt;br /&gt;  Private Sub mnuScroll1_Click()&lt;br /&gt;    '注意：必须在网页完全显示之后才可以运行&lt;br /&gt;    WebBrowser1.Document.body.Scroll = "no" '不显示滚动条的办法&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub mnuScroll2_Click()&lt;br /&gt;    '注意：必须在网页完全显示之后才可以运行&lt;br /&gt;    WebBrowser1.Document.body.Scroll = "Auto" '显示滚动条的办法&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;2、如何获得网页中被选中部分的HTML：&lt;br /&gt;&lt;br /&gt;  Private Sub Command1_Click()&lt;br /&gt;    Dim objSelection&lt;br /&gt;    Dim objTxtRange&lt;br /&gt;   &lt;br /&gt;    Set objSelection = WebBrowser1.Document.selection&lt;br /&gt;    If Not (objSelection Is Nothing) Then&lt;br /&gt;        Set objTxtRange = objSelection.createRange&lt;br /&gt;        If Not (objTxtRange Is Nothing) Then&lt;br /&gt;            Debug.Print objTxtRange.htmlText&lt;br /&gt;&lt;br /&gt;            Set objTxtRange = Nothing&lt;br /&gt;        End If&lt;br /&gt;        Set objSelection = Nothing&lt;br /&gt;    End If&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;  Private Sub Form_Load()&lt;br /&gt;    WebBrowser1.Navigate "&lt;a href="http://www.applevb.com/"&gt;http://www.applevb.com&lt;/a&gt;"&lt;br /&gt;  End Sub&lt;br /&gt;&lt;br /&gt;链接：&lt;br /&gt;&lt;a href="http://blog.csdn.net/TechnoFantasy/archive/2004/07/29/55502.aspx"&gt;http://blog.csdn.net/TechnoFantasy/archive/2004/07/29/55502.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.csdn.net/TechnoFantasy/archive/2004/07/29/55515.aspx"&gt;http://blog.csdn.net/TechnoFantasy/archive/2004/07/29/55515.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.csdn.net/TechnoFantasy/archive/2004/07/29/55955.aspx"&gt;http://blog.csdn.net/TechnoFantasy/archive/2004/07/29/55955.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.csdn.net/TechnoFantasy/archive/2004/07/31/57019.aspx"&gt;http://blog.csdn.net/TechnoFantasy/archive/2004/07/31/57019.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.csdn.net/technofantasy/" target="_blank"&gt;TechnoFantasy的专栏&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-923649073785786178?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/923649073785786178/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=923649073785786178' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/923649073785786178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/923649073785786178'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2005/06/vbwebbrowser.html' title='VB调用webbrowser技巧集'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-4109918904442311386</id><published>2005-06-19T07:01:00.000+08:00</published><updated>2006-11-18T03:20:08.295+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>关于pure drawn flash component的可行性</title><content type='html'>pure actionscript 的好处前文提到过几点：&lt;br /&gt;&lt;br /&gt;  1. 消除使用 library symbols ，减少下载量&lt;br /&gt;  2. 可以解决跨 swf share 问题&lt;br /&gt;  3. 可以省掉flash IDE，不费钱&lt;br /&gt;  4. 没有版权问题的纠纷&lt;br /&gt;  5. 平滑程序员的学习曲线&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;     个人认为flash RIA的开发，更多的用途应该是intranet applications，其可组件化，无刷新的特点，解决了IntranetApp客户端开发的两大难解之题。但随之而来的就是性能问题了，所谓“出来混总是要还的”，两者不可兼得的情况下就应该在弱点方面下功夫——避免性能损耗。&lt;br /&gt;&lt;br /&gt;     前面提到了关于性能的事情，一个swf中如果动态创建了600个MovieClip之后就会开始变慢了，所以应该尽量少在组件中创建MovieClip，可以通过draw的方式来实现这一点。&lt;br /&gt;&lt;br /&gt;     试验发现对同一个MovieClip不断的重绘并不会增加内存消耗、线程数量。当然同时也发现如果多个MovieClip同时不断重绘CPU占用率就会很高，这就对 loading 提出了新的要求，比如按顺序初始化组件，避免同时绘制大量组件的问题，还有诸如将初始化时间算到 loading 里面去等等。 不过这个应该好解决，框架设计时应该考虑。&lt;br /&gt;&lt;br /&gt;     作为 IntranetApp 来说，组件的外观不用太过于精细和强调动态效果，这两点上要能省就省。讲究界面布局，重量级组件不要扎堆儿，通过一些手段合理安排。&lt;br /&gt;&lt;br /&gt;     还有，做了一些时间的 web 开发，总觉得 web 操作习惯和 win 操作习惯有一些区别，web有 web 的特点，我觉得应该将这些特点融入到 flash components 中，而不要完全对照着 win 体系的特点做，这样的观点也有助于写出较为高效点儿的组件来。&lt;br /&gt;&lt;br /&gt;     先说这么多，睡一觉先...~~~&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-4109918904442311386?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/4109918904442311386/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=4109918904442311386' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4109918904442311386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/4109918904442311386'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/06/pure-drawn-flash-component.html' title='关于pure drawn flash component的可行性'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-7681131121334913544</id><published>2005-06-19T00:51:00.000+08:00</published><updated>2006-11-18T03:19:28.899+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>讨论：留在iiley's Weblog上的评论</title><content type='html'>对MSN Space还不熟，也没有看到显示最新回帖的栏目，所以就文不对题写这儿了，呵呵。&lt;br /&gt;&lt;br /&gt;    看了一下aswing，感觉不错，祝愿你们再接再厉最后取得成功。其中一个小毛病就是画圆角方形，你们采用了画border的方式来绘制的，比如 button set focus后的那个绿色框，有支离破碎的感觉，那是因为flash做柔化后对于line定位不准造成的，有意思的是这个问题也让MM自己很尴尬，所以它的圆角都是直接beginFill两个圆角矩形并重叠后构造出来的，例子可以看MM的button，希望能对你们有帮助。&lt;br /&gt;&lt;br /&gt;    另外，你们的flash component theme是全部draw出来而没有用symbol吗？actionstep是全部画出来的，我很感兴趣，它主页上讲了这样做的好处，但我试验了一下， flash player 7画movieclip的数量达到600个左右的时候就开始变慢了，如果一个swf里面有一个tree和一个grid的时候，性能可就成了问题，但是重复的draw却不会导致内存的增加，这样又比一个scrollbar的arrow button要设置两个symbol来体现按下的效果要来得划算，关于这个问题我想和你讨论一下，不知可否？&lt;br /&gt;&lt;br /&gt;    我在&lt;a href="http://www.aswing.org/"&gt;http://www.aswing.org&lt;/a&gt; 上没有看见可以方便交流的bbs或者blog，我觉得这样太不方便了，可能很多developer没法和你们沟通了，看能不能想想办法解决一下，呵呵。&lt;br /&gt;&lt;br /&gt;    对于flash component是否需要参照swing来写，我有自己的看法，固然swing体系很好，但对于flash，我觉得应该更多的考虑script的承受能力，对于现在的flash ria来说，主要解决的应该是性能问题，如果光考虑功能全面而不考虑性能，对于flash ria来说只能是伤害，flash ria、bindows目前的不成功的关键因素我想就在于此。这个问题也想和你讨论讨论，呵呵&lt;br /&gt;&lt;br /&gt;注：&lt;a href="http://spaces.msn.com/members/iiley/"&gt;iiley&lt;/a&gt;是&lt;a href="http://www.aswing.org/"&gt;aswing&lt;/a&gt;的开发人员之一，他们的open source flash component参照swing架构构造，目前处于初期开发阶段。&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-7681131121334913544?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/7681131121334913544/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=7681131121334913544' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7681131121334913544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7681131121334913544'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/06/iileys-weblog.html' title='讨论：留在iiley&apos;s Weblog上的评论'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-7479315623077245770</id><published>2005-06-18T10:49:00.000+08:00</published><updated>2006-11-18T03:18:32.708+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>翻译：ActionStep Project，受益匪浅</title><content type='html'>&lt;a href="http://actionstep.sourceforge.net/" target="_blank"&gt;Welcome to the ActionStep Project &lt;/a&gt;&lt;br /&gt;欢迎来到ActionStep项目&lt;br /&gt;&lt;br /&gt;The pure ActionScript 2.0 component framework for Flash&lt;br /&gt;纯ActionScript 2.0 Flash 组件框架&lt;br /&gt;&lt;br /&gt;Background&lt;br /&gt;背景&lt;br /&gt;&lt;br /&gt;This project is born out of the frustration with the Version 2 Component framework that shipped with Macromedia Flash Professional 2004. There are many problems with V2 components including poor quality code (tis a bit buggy), poor development environment (Flash IDE is a bad coding experience) and a really dreadful licensing policy (you can only use V2 components if you own the Flash IDE). If all of this was not bad enough, the actual implementation of the V2 components is a hybrid model which uses a combination of symbols in the Flash Library and ActionScript 2.0 source. I suppose the idea was that all of the theming would be controlled by the symbols (thus artist-types could craft the look and feel), and all the behavior would be controlled by ActionScript (thus coder-types could add/change behavior). Sounds nice in theory but it creates some severe problems.&lt;br /&gt;&lt;br /&gt;    这个项目的产生是因为使用MacroMedia Flash 专业版2004中附带的第二版组件框架（V2 Component）所产生的痛苦。这个组件框架有很多这样那样的问题，如质量差劲的代码(有一些Bug)，难用的开发环境（Flash IDE 编码体验很差），讨厌的许可证策略（你必须购买了Flash IDE才能合法的使用V2组件）。如果这些还能忍受，那么V2组件基于混和模型，也就是使用一个在Flash 库里面的symbols和ActionScript 2.0 代码组合的形式就实在是…哎…不说也罢。我猜这个主意主要是为了让Flash库里的symbols控制所有的主题元素（这样设计人员就可以绘制组件外 观），而ActionScript来控制行为（这样程序员就可以添加或改变行为）。这种形式理论上来说不错，实际上却造成了很多严重的问题。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first problem with the V2 component architecture is if you want to use components in a swf file you have to include the Library symbol resources compiled into your movie, even if your movie is loaded into a movie that already includes those resources. The reason for this is Flash symbol resources cannot be shared across swf movies. If you theme a component using the symbol Library, you have to compile those symbols into each movie where you want components to be rendered with that theme. This eliminates a key usage pattern where you build/load a theme swf which customizes all of the components along with other movies that make use of those same components. Theming at runtime is not truly supported. Another problem is if you are a programmer, trying to grok the Flash component theme model is a tad steep from a learning curve perspective. Having to go back and forth from visual symbols to source code is difficult challenge. What to do? Although Library symbols are not shared across movies, it ends up that ActionScript classes can and are shared across movies (they are loaded into a single shared namespace). This led to a potential of a pure ActionScript 2.0 component model that created all visual elements at runtime but did not use symbols in the Library, did not restrict usage from a license perspective, was not buggy and allowed you to use your current development tools.&lt;br /&gt;&lt;br /&gt;    首先，如果你想在swf文件里使用V2架构的组件，你就必须将Flash 库里的symbol资源一起编译到你的影片里去，即使你的影片是被一个已经下载了这些symbol资源的影片所加载的。导致这种情况是因为symbol资 源不能跨影片共享。如果你使用了一个用symbol库资源作为主题渲染了的组件，你就必须将这些资源编译到每个使用了这个组件的影片中。这样就排除了一个 关键的习惯模式，那就是当你构造或者加载一个主题swf时可以利用这些包含在其他swf里面的组件。并没有真正支持在运行时运用主题。另外，如果你是一个 程序员的话，要想尝试体验Flash组件主题模块，将经历一个有点陡峭的学习曲线。你将不得不从头开始，经历从可视化symbols到源代码这样一个艰难 的挑战。那我们该怎么做呢？尽管库里的symbols不能跨影片共享，但ActionScript却可以（可以将ActionScript加载到同一个共 享名称空间）。这样就导致了产生纯ActionScript 2.0组件模型的潜力，我们可以在运行时创建所有的可视化元素而不需要使用库里的symbols、不会受到软件许可制度的限制、不会臭虫成灾，你也可以使 用现有的开发工具去开发组件了。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Approach&lt;br /&gt;方法&lt;br /&gt;&lt;br /&gt;The first challenge was which prior widget model to pattern this new component framework off of? There are many component frameworks that have been written over the years, but the framework that I am most fond of is the NextStep/OpenStep/GNUStep/Cocoa “Application Kit”. Because the AppKit has been implemented many times and is well documented (in books, online, etc) there is a strong base of code and designs to work from. So begins this project, which is an ActionScript 2.0 implementation of the OpenStep AppKit named "ActionStep". One requirement of an AppKit implementations is a dynamic runtime. NextStep/Cocoa receive this capability from Objective-C. ActionStep receives its dynamism from ActionScript 2.0 which is an EcmaScript/Javascript compliant language.&lt;br /&gt;&lt;br /&gt;    第一个难题时哪一种先前已完成的窗口小部件模型能匹配这种新组件框架？有很多前些年已经完成的组件框架，但是我最喜欢的是 NextStep/OpenStep/GNUStep/Cocoa “应用程序套件”。因为它有很多的实现和内容丰富的文档（包括书、在线资料等等），这对于编码和设计是一个坚实的基础。这个用 ActionScript2.0实现OpenStep应用程序套件的项目就被命名为“ActionStep”。实现应用程序套件的必要条件之一就是需要一 个动态运行时。NextStep/Cocoa从Objective-C获得了这种能力，而ActionStep则从ActionScript 2.0这种符合EcmaScript/JavaScript标准的语言获得推动力。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ActionStep will include a full Responder architecture (NSResponder, NSApplication, NSWindow, NSView, etc) and be heavily based on delegation (rather than inheritance). The brilliant separation of concerns in AppKit will enable theming that is purely coded in ActionScript without requiring the Library of symbols. With ActionStep, you will be able to compile into a base movie the ActionStep classes that you use + customized theming classes, and any other movie that you load that uses ActionStep will 'inherit' those themed components at runtime. This will enable VERY SMALL flash movies that provide the much vaunted Rich Internet Application experience.&lt;br /&gt;&lt;br /&gt;    ActionStep包括一个完整的应答体系（NSResponder, NSApplication, NSWindow, NSView等等），并且大量的基于代理机制（比继承好）。应用程序套件里面卓越的关系分离使得主题的应用可以完全通过用ActionScript编码实 现而不在需要库里的symbols。运用ActionStep，你可以将你使用或者定制的主题Classes编译到一个主影片中，而其他使用 ActionStep Classes编写的影片在加载时可以在运行时“继承”这些主题组件。这样flash 影片将非常小，可以提供很NB的RIA体验。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Call to Arms&lt;br /&gt;召集帮手&lt;br /&gt;&lt;br /&gt;Knowing that this is a big undertaking, my hope is to enlist other like-minded open-source developers in creating ActionStep. A very recent development that makes this possible is the incredibly wonderful open-source &lt;a href="http://www.mtasc.org/" target="_blank"&gt;Motion-Twin ActionScript 2.0 compiler: MTASC&lt;/a&gt; This compiler is all that is needed to develop for the ActionStep project. If you would like to contribute to the ActionStep project, please see the Project links in the right column.&lt;br /&gt;&lt;br /&gt;    众所周知，这是一个庞大的事业，我希望能征集其他具有类似意向的开源开发者一起来打造ActionStep。一个最近的例子就是令人难以置信的开源 &lt;a href="http://www.mtasc.org/" target="_blank"&gt;Motion-Twin ActionScript 2.0 compiler: MTASC&lt;/a&gt;，这个编译器已经可以用来开发ActionStep的成熟地步。如果你想为Actionstep项目捐助，请查看右栏的项目链接。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;另：ActionStep的网站是&lt;a href="http://www.actionstep.org/" target="_blank"&gt;http://www.actionstep.org&lt;/a&gt;，目前还没有发布任何公开的文档，我是在&lt;a href="http://www.as2lib.org/"&gt;as2lib&lt;/a&gt;里面的lib下发现actionstep的包的。我的E文比较差，看官多多包涵啦，呵呵～&lt;div style="margin: 5px; background: yellow none repeat scroll 0%; position: absolute; left: 0pt; top: 0pt; z-index: 1000; font-family: arial; font-size: 13px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-bottomleft: 5px; opacity: 0.9; display: none;" id="dictdiv"&gt;&lt;/div&gt;&lt;div id="dictaudio"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-7479315623077245770?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/7479315623077245770/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=7479315623077245770' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7479315623077245770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/7479315623077245770'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/2006/06/actionstep-project.html' title='翻译：ActionStep Project，受益匪浅'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1226743011653906413.post-3439037337184819408</id><published>1970-01-01T07:00:00.000+07:00</published><updated>2007-09-15T16:23:53.919+08:00</updated><title type='text'>##TITLE##</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;##CONTENT##&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1226743011653906413-3439037337184819408?l=approc.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://approc.blogspot.com/feeds/3439037337184819408/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1226743011653906413&amp;postID=3439037337184819408' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3439037337184819408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1226743011653906413/posts/default/3439037337184819408'/><link rel='alternate' type='text/html' href='http://approc.blogspot.com/1970/01/title.html' title='##TITLE##'/><author><name>Roc Tian</name><uri>http://www.blogger.com/profile/09106385229528159913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
