java learnging

一块探讨JAVA的奥妙吧
posts - 34, comments - 27, trackbacks - 0, articles - 22

2005年2月27日

Version Eclipse 3.1

1.性能

    a. 禁用缓存远程资源
       Window -> Preferences -> Internet -> Cache -> 选择Disable Caching
       这样在打开web.xml等文件时就不会 Loading xmlns 之类的信息了
   
    b. 禁用有效性验证
       Window -> Preferences -> Validation -> 选择Deselect All
       可能有效性验证是个不错的功能,不过有时候需要花的时间太长,有点受不了,基本上也不怎么需要
    c. 禁用启动eclipse时自动构建
       Window -> Preferences -> Launching -> 不选择 Build before launching

2.个人嗜好

    a. 修改Ant Document Url
       Window -> Preferences -> Ant -> Document Url -> 选择Ant Document目录
       这样要比eclipse默认去apache的网站访问快多了
   
    b. 修改快捷键的设定
       Window -> Preferences -> General -> Keys -> 按自己的需要修改
       尤其是Content assist 这么一个好用的功能和我的输入法冲突了,只有改了

    c. 修改java文件的source和output folder
       Window -> Preferences -> Java -> Build Path ->选择 Folders,并设为src和classes
       这样的项目文件目录比较标准,不过和maven的标准不太一样哦

    d. 修改Mark Occerencs
       Window -> Preferences -> Java -> Editor -> Mark Occerencs -> 把Mark Occerencs置为disable
       这样在选择一个单词的时候,与这个单词“具有同样含义”的单词就不会同时加亮了

posted @ 2005-08-17 17:38 bigseal 阅读(1476) | 评论 (0)编辑 收藏

Eclipse 3.0/3.1

Subclipse releases for Eclipse 3.x are hosted at our update site. Add http://subclipse.tigris.org/update as an update site in Eclipse's update manager (which you can find in the Help menu).

The update site itself can be downloaded and used as a local update site as well. Simply unzip the site archive, and add the path as a new "Local Site" in the Eclipse update manager. You can also host your own internal Subclipse update site by placing the site on your own HTTP server (be sure to update site.xml appropriately).

We also provide instructions for installing Subclipse in Eclipse 3.x

Eclipse 2.1.3

Subclipse 0.9.3.3 is linked against Subversion 1.1.4. Binaries for Windows are included.

Development for this version of Eclipse is no longer active. There are no new releases planned.

Download the Eclipse 2.x version

Note:如果把文件直接unzip到eclipse的安装目下,在使用的时候会没有授权文件文件之类的错误。

posted @ 2005-08-15 12:38 bigseal 阅读(15271) | 评论 (0)编辑 收藏

修改默认字符集(default character set)
在mysql的my.ini配置文件中设置,这样在mysql启动后就会自动加载
例如:把默认字符集设置为UTF-8

default-character-set=utf8

查看变量值:
例如:查看字符集设置

SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 
'collation_%'

设置变量值
例如:设置字符集变量
 set  character_set_server  = utf8;
 
set  character_set_system  = utf8;
 
set  character_set_database  = utf8;
 
set  character_set_client  = utf8;
 
set   character_set_connection  = utf8;
 
set  character_set_results = utf8;
 
 
set collation_connection = utf8_general_ci;
 
set collation_database = utf8_general_ci;
 
set  collation_server = utf8_general_ci;

posted @ 2005-07-25 17:38 bigseal 阅读(1425) | 评论 (0)编辑 收藏

java.util.*

java.util.StringTokenizer
作用: 根据标记分割字符串
例子:

StringTokenizer st = new StringTokenizer("this is a test");
     
while (st.hasMoreTokens()) {
         System.
out.println(st.nextToken());
     }
结果为:
     this
     is
     a
     test

但是该类已经不推荐使用了,如果要实现该功能可以通过String类的split方法或 java.util.regex package来代替。
     String[] result = "this is a test".split("\\s");
     
for (int x=0; x<result.length; x++)
         System.
out.println(result[x]);
结果为:
     this
     is
     a
     test

posted @ 2005-07-22 18:00 bigseal 阅读(1284) | 评论 (0)编辑 收藏

Container默认布局管理

Container       null
Panel             FlowLayout
Window        BorderLayout
Dialog           BorderLayout 
Frame           BorderLayout

有几个用于布局管理的类
BorderLayout
CardLayout
FlowLayout
GridLayout
GridBaglayout

BorderLayout水平扩展南北构件,使这些构件的宽度达到所在容器的宽度,但根据构件的首先高度调整它们的高度。东西构件被垂直扩展,并根据它们的首先宽度调整她们的宽度,中间构件布满剩下的空间。

在使用GridBaglayout管理布局时,需要通过GridBagConstraints来指定各构件的约束条件,下面是GridBagConstraints的一些设置
GridBagConstraints.anchor 构件在显示区中的位置
GridBagConstraints.fill         构件填充显示区的方式
GridBagConstraints.gridx/gridy  构件左上角的网格单元
GridBagConstraints.gridwidth/gridheigth 构件显示区的大小
GridBagConstraints.weighx/weighy 构件显示区可以消耗多少额外的空间
GridBagConstraints.insets 构件的空白区
GridBagConstraints.ipadx/ipady 构件的内部填充

posted @ 2005-07-22 17:50 bigseal 阅读(1606) | 评论 (0)编辑 收藏

The UML2 project is an EMF-based implementation of the UML 2.0 metamodel for the Eclipse platform designed to support the development of modeling tools. Further objectives of the UML2 project are to provide a common XMI schema to facilitate interchange of semantic models, test cases as a means of validating the specification, and validation rules as a means of defining and enforcing levels of compliance. For more details see Getting Started with UML2

posted @ 2005-07-15 14:06 bigseal 阅读(1471) | 评论 (0)编辑 收藏

    有两种方法要用到对Graphi的引用,这两种就是传递一个对Graphi的引用,或返回对Graphics的引用。

   1 .传递一个对Graphi的引用是诸如 void paint(Graphics g)的方法,通过override该方法来达到目的。

import java.awt.*;

public class SubPanel extends Panel{

    
public void paint(Graphics g){
        g.setColor(Color.RED);
        g.drawString(
"subPanel",5,5);
    }

}


2.返回对Graphics的引用是诸如 Graphiics getGraphics() 的方法,直接引用返回的Grapchics。

import java.awt.*;


import java.awt.
*;

public class SubPanel extends Panel {

    
public void test() {
        Graphics g 
= getGraphics();
        
if (g != null{
            g.setColor(Color.RED);
            g.drawString(
"subPanel"55);
        }

    }

}


其中,如果如果组件当前未显示getGraphics()方法返回null。

posted @ 2005-07-13 14:07 bigseal 阅读(1415) | 评论 (0)编辑 收藏

    AWT是JFC(Java基本类)的核心,为JFC的构成提供了以下的基本结构:

  • 代理事件模型
  • 轻量构件
  • 剪贴板和数据传输
  • 打印和无鼠标操作

    Java抽象窗口工具集有四个主要的类,即:构件类(Component)、容器类(Container)、图形类(Graphics)、和布局管理类(LayoutManager和LayoutMangager2)。容器包含构件,布局管理器确定容器内构件的位置和形状。图形(Graphics)类提供在构件中显示文本框和图形的方法。

1.强制一个容器布置它的构件

    在任何时间给定的构件都是有效(valid)或无效(invalid)的。无效的构件需要被布置,而有效的构件不需要。访问一个 无效容器(它的同位体已经产生)的validate()引起对容器layout()方法的调用。使构件无效的过程不仅使构件自己变得无效,而且也会使构件所在的容器变的无效。
使构件无效的Component和Container方法:
void Component.addNotify()
void Component.show() (invalidates parent container)
void Component.hide() (invalidates parent container)
void Component.reshap(int x,int y,int width,int height)
void Component.setSize(int width,int height)
void Component.setBounds(int x,int y,int width,int height)
void Component.setLayout(LayoutManager)
void Container.add(Component)
void Container.remove(Component)
void Container.removeAll(Component)
void Container.setLayout(LayoutManager)
因此我们可以把希望重新布置的构件设置为无效,然后调用该构件父容器的validate()方法即可。

posted @ 2005-07-13 14:04 bigseal 阅读(1342) | 评论 (0)编辑 收藏

Timer是一个线程用来调度在后台线程中运行的计划任务的使用工具。任务可能计划只运行一次,或者以一定的时间间隔重复运行。
下面是一个定时的小程序:

    /**
     * 弹出菜单显示3秒钟后自动隐藏
     * 
     
*/

    
private void timerToHidden() {
        Timer timer 
= new Timer();

        timer.schedule(
new TimerTask() {
            
public void run() {
                msgWindow.setVisible(
false);
            }

        }
3000);
    }

posted @ 2005-07-13 13:57 bigseal 阅读(1527) | 评论 (0)编辑 收藏

使用JDIC (Jdesktop Integration Components)类库做开发。
开发过程中遇到的问题:
  1. 主窗体最小化后隐藏
    当发生窗体最小化事件时把窗体隐藏就可以了
             /*
                 * 最小化窗体时把窗体给隐藏了 (非 Javadoc)
                 * @see java.awt.event.WindowListener#windowIconified(java.awt.event.WindowEvent)
                 
    */

                
    public void windowIconified(WindowEvent e){
                    e.getWindow().setVisible(
    false);
                }

  2. 单击系统托盘,显示程序主窗体
    单击系统托盘但时,把窗体置为可见,并把窗体从任务栏恢复
               // 单击系统托盘,显示程序主窗体
            tray_icon.addActionListener(new ActionListener() {
                
    public void actionPerformed(ActionEvent e) {
                    buddyFrame.setVisible(
    true);
                    buddyFrame.setState(JFrame.NORMAL);
                }

            }
    );

  3. 当有消息时在系统托盘图标旁显示一个消息提示
    (这是一个类似与MSN那种,而不是把鼠标放到托盘上显示的 ToolTip)
    当消息到来时在系统托盘图标旁显示一个弹出菜单即可
     
    public void promptMsg(String msg, String ticket, String url, String para,
                String userID) 
    {
            
    // 设置消息内容
            mViewMsg.setText(msg);

            
    // 设置url(点击 mViewMsg 菜单选项事件的监听程序)
            mViewMsg.addActionListener(new msgMenuActionListener(msgMenu, url + "?"
                    
    + para));

            
    // 设置菜单的大小和位置
            setMsgMenuSize();

            msgMenu.setVisible(
    true);
        }


        
    /**
         * 
         * 设置菜单的大小和位置
         
    */

        
    private void setMsgMenuSize() {
            Dimension menuSize 
    = new Dimension(200,150);
            msgMenu.setPopupSize(menuSize);
            
    int xMenu = tray_icon.getLocationOnScreen().x - menuSize.width + 50;
            
    int yMenu = tray_icon.getLocationOnScreen().y - menuSize.height;
            Point menuPoint 
    = new Point(xMenu, yMenu);
            msgMenu.setLocation(menuPoint);
            
        }

posted @ 2005-07-08 11:20 bigseal 阅读(2943) | 评论 (2)编辑 收藏

New and Noteworthy
文章来源:http://download.eclipse.org/downloads/drops/R-3.1-200506271435/index.php

posted @ 2005-06-29 14:39 bigseal 阅读(313) | 评论 (0)编辑 收藏

    我曾说,“照我说的那样做,但不要学我本人。”那么这里我要说的就是这样的。从来没有人——包括我自己——把我当成处理生活和工作的平衡关系的权威。

  41年以来,我执行的原则就是好好工作,好好享受,花一点时间来当父亲。但是回
头看去,很显然我所选择的平衡对于我家里和办公室的其他人都有不利的影响。例如,我的孩子们主要是由他们的母亲独自带大的。

  尽管工作与生活的平衡问题在90年代已经越来越成为前卫和中心的话题,但似乎直到我2001年退休之后,它才真正热门起来。在我过去三年去世界各地的时候,我遇到了许多这方面的问题。最常见的是,“你怎么会有那么多的时间去打高尔夫球,还能继续干好CEO的工作?”

  在个人应该如何排列生活中各部分的优先次序的问题上,我显然不是专家。何况我一直以为这些选择应取决于个人。但是,作为一名经理人,我处理过数十宗关于工作与生活平衡协调的难题,作为经理人的经理人则处理过数百宗。

  从这些经历里,我找到了一些感觉,关于老板们如何看待工作与生活的平衡,不知道他们是否告诉过你。

  管理的优先次序

  我们首先要谈谈所谓的“工作与生活的平衡”究竟指的是什么。它涵盖了我们所有人应该如何管理生活、支配时间的问题——关于优先次序和价值观的问题。基本上,这个平衡是关于“我们应该把多少精力消耗在工作上”的讨论。

  工作与生活的平衡是一个交易——你和自己之间就所得和所失进行的交易。平衡意味着选择和取舍,并承担相应的后果。让我们站到你的老板的视角上,换个位置对工作与生活的平衡问题做些思考。

  1.你的老板最关心的事情是竞争力。当然他也希望你能快乐,但那只是因为你的快乐能够帮助他的公司赢利。实际上,如果他的工作做得好,他就可以让你的工作变得很有吸引力,使你的个人生活显得不那么拖后腿。

  老板给你付工资的原因,是因为他们希望你贡献所有的一切——包括你的头脑、体力、活力和献身精神。

  2.绝大多数老板都非常愿意协调员工的工作与生活的矛盾,如果你能给他出色的业绩。这里的关键词是“如果”。

  实际上,我倒愿意通过一个老式的积分系统来处理工作与生活的平衡问题。那些有突出业绩的人可以获得“积分”,用以交换自己工作的弹性。

  3.老板们很清楚,公司手册上面关于工作、生活平衡的政策主要是为了招聘的需要,而真正的平衡是由一对一的谈判决定的,其背景是一个相互支持性的企业文化,而不要总是强调“但是公司说过……”

  公司手册是件华丽的宣传品,有醒目的照片、多项终生福利的介绍,也包括倒班或工作弹性等。然而许多聪明人很快就明白,手册上所列举的“工作与生活的平衡规划”主要是面向新人的招聘工具。

  真实的平衡安排是在老板与员工之间就具体问题进行单独谈判得到的,使用的方法正好是我们刚介绍过的业绩与弹性交换的制度。

  4.那些公开为工作与生活的矛盾问题而斗争、动辄要求公司提供帮助的人会被当做动摇不定、摆资格、不愿意承担义务或者无能的人,或者以上全部。因此,那些消极抱怨的人最后总免不了被边缘化的命运。

  所以,在你第五次开口,要求公司减少你的出差,要求在星期四上午请假,或者希望回家去照顾小孩之前,你应该知道自己是在发表一项声明。而且不管你用什么辞令,你的请求在别人听来都似乎是,“我对这里的工作并不真的感兴趣。”

  5.即使最宽宏大量的老板也会认为,工作和生活的平衡是需要你自己去解决的问题。实际上,绝大多数人也知道,的确有一些策略能帮助你处理好这个问题,他们也希望你能会采用。

  毫无疑问,谈判、协调这种平衡关系要给经理人的工作再增加一层复杂性。但是你的经理人应该欢迎这种挑战,因为那给他提供了另外一套工具,来激励和挽留优秀的员工。这套新工具与高薪、红利、晋升或其他所有形式的认可一样有效。

  不过,在此期间,你也可以并且应该学会帮助自己。有关工作与生活的话题已经讨论了相当长的时间了,也有不少好的经验被总结出来。那些非常老练的老板们都知道这些技巧,很多人自己已经开始采纳,他们也希望你能借鉴。

  经验之谈

  以下就是一些经验之谈:

  经验1:无论参与什么游戏,都要尽可能地投入。我们已经陈述过,工作希望你150%地投入,生活也同样。因此做事时要努力减轻焦虑、避免分心,或者说,要学会分门别类、有条不紊。

  经验2:对于你所选择的工作与生活平衡之外的要求和需要,要有勇气说“不”。最终,大多数人都会找到适合自己的工作与生活的平衡位置,以后的窍门就是坚持。

  学会拒绝将给你带来巨大的解脱,因此,你应该力争对一切不属于你有意识的平衡选择之外的项目说“不”。

  经验3:确认你的平衡计划没有把你自己排除在外。在处理事业与生活的平衡关系时,一件真正可怕的事情是陷入“为了其他所有人而牺牲自己”的综 合症。有许多非常能干的人,他们制定了完美的平衡计划,把自己的一切都贡献出来,给了工作、家庭、志愿者组织。问题在于,在这样的完美计划的核心,却有一 个真空,那就是对当事人而言根本没有乐趣。

  在认真考虑这个话题的时候,你会发现,如果自己想追求平衡和完美,最关键的不过是明白几个道理。

  ·除了工作以外,你要弄清楚,你还想从生活中得到什么。

  ·在工作中,你要明白自己的老板需要什么。

  ·争取业绩积分,根据自己的需要来兑换弹性,再不断补充它。

  ·找寻平衡将是一个过程,找对感觉需要反复实践。在获得经验和思考之后,你可以做得更好。最终,在一段时间过去之后,你会发现事情并没有那么艰难,不过是平凡的生活而已。(本文经许可改编自韦尔奇所著的《赢》,该书中文版已由中信出版社出版)

posted @ 2005-06-27 13:38 bigseal 阅读(389) | 评论 (0)编辑 收藏

现代人最常挂在嘴边的就是“忙得找不出时间来了”。每日为工作而庸庸碌碌,常常觉得时间不够用的人,就像常怨叹钱不够用的人一样,是“时间的穷人”,似乎 都有恨不得把24小时变成48小时来过的愿望。但上天公平给予每人一样的时间资源,谁也没有多占便宜。在相同的“时间资本”下,就看各人运用的巧妙了,有 些人是任时间宰割,毫无管理能力,二十四小时的资源似乎比别人短少了许多,有人却能“无中生有”,有效运用零碎时间;而有些懂得“搭现代化便车”的人,干 脆利用自动化及各种服务业代劳,“用钱买时间”。“时间即金钱”,尤其对于忙碌的现代人而言更能深切感受,每天时间分分秒秒的流失虽不像金钱损失到“切 肤”的程度,但是,钱财失去尚可复得,时间却是“千金唤不回”的。

  如果你对上天公平给予每个人24小时的资源无法有效管理,不仅可能和理财投资的时机性失之交臂,人生甚至还可能终至一事无成,可见“时间管 理”对现代理财人的重要性。想向上帝“偷”时间既然不可能,那么学着自己“管理”时间,把分秒都花在“刀口”上,提高效率,才是根本的途径。

  “忙”、“没有时间” 只是借口而并非真实,如果聪明才智相仿,而工作时数比别人长,绩效(薪水、所得、职位、成就)却不比别人好,那就该好好检讨,是不是没有充分发挥时间效 率?在心理上必须建立一个观念,力求“聪明”工作,而不是“辛苦”工作。例如别人六个小时可做到的事,我努力在四个小时之内完成。以追求最高的时间绩效为 目标,假以时日,时间自然在你掌握中!

  时间管理与理财的原理相同,既要“节流”还要懂得“开源”。要“赚”时间的第一步,就是全面评估时间的使用状况,找出所谓浪费的零碎时间,第 二步就是予以有计划地整合运用。首先列出一张时间“收支表”,以小时为单位,把每天的行事记录起来,并且立即找出效率不高的原因,彻底改善。再来,把每日 时间切割成单位的收支表做有计划的安排,切实去达成每日绩效目标。

  “时间是自己找的”,当你把“省时”养成一种习惯,自然而然就会使每天的二十四小时达到“收支平衡”的最高境界,而且还可以“游刃有余”的处于“闲暇”的时间,去从事较高精神层次的活动呢!

  如果你是开车或乘公交车的上班族,平均一天有两个小时花在交通工具上,一年就有一个月的时间待在车里。如果把这一个月里每天花掉的两个小时集中起来,连续不断地坐一个月的车,或不眠不休地开一个月的车,就能体会其时间数量的可观了。

  要占时间的优势,就要积极地“凭空变出”时间来,以下提供一些有效的方法,让你轻松成为“时间的富人”。

  尽量利用零碎时间:坐车或等待的时间拿来阅报、看书、听空中资讯。利用电视广告时间处理洗碗、洗衣服、拖地等家事。不要忽略一点一滴的时间,尽量利用零碎时间处理杂琐事务。

  改变工作顺序:例如做饭时,先洗米煮饭、煮汤、再来洗菜、炒菜,等菜上桌的同时,饭、汤也好了。稍稍改变一下工作习惯,能使时间发挥最大的效益。此种“时间共享”的作业方式可在工作中多方尝试,而“研究”出最省时的顺序。

  批量处理,一次完成:购物前列出清单,一次买齐。拜访客户时,选择地点邻近的一并逐户拜访。较无时效性的事务亦以地点为标准,集中在同一天完成,以节省交通时间。

  工作权限划分清楚,不要凡事一肩挑:学习“拒绝的艺术”,不要浪费时间做别人该做的事,同事间互相帮忙偶尔为之,不要因“能者多劳”而做烂好 人。办公室的工作各有分工,家事亦同,家庭成员都该一起分担,上班族家庭主妇不要一肩挑。例如,先生的书房、车子;小孩的房间、玩具要求他们自己清理,家 事也要分工负责,把省下的时间用来自我充实,做个“新时代主妇”。

  善加利用付费的代劳服务;银行的自动转帐服务可帮你代缴水电费、煤气费、电话费、信用卡费、租税定存利息转账等,多加利用,可省舟车劳顿与排队等候的时间。

  以自动化机器代替人力:办公室的电话连络可以传真信函、电子邮件取代,一方面可节省电话追踪的时间内容又有凭据,费用亦较省。而且传真信、电子邮件简明扼要,比较起电话连络须客套寒暄才切入主题,节省许多无谓的“人力”与时间。

  家庭主妇亦可学习美国妇女利用机器代劳的快速做家事方法。例如使用全自动单缸洗衣机、洗碗机、吸尘器、微波炉等家电用品,可比传统人力节省超过一半的时间,十分可观。

posted @ 2005-06-27 13:36 bigseal 阅读(186) | 评论 (0)编辑 收藏

在右键菜单添加命令行

在“开始”-“运行”中输入“regedit”,打开注册表。找到\HKEY_CLASSES_ROOT\Folder\shell,如果 没有shell,可以在Folder下新建一个名为shell的键,在shell下新建一个名为“命令行(Command Windows)”的键,在这个键之下再建一个新的名为“Command”的键,设置默认值为“cmd /K cd /d %L”。

posted @ 2005-06-16 08:31 bigseal 阅读(181) | 评论 (0)编辑 收藏

把比较常用的Eclipse plugin 的下载地址给列出来,便于今后用到的时候查看。

   名称:Folding
   作用:增强folding功能,可以支持control condition级别的fodling
   网址: http://eclipse.coffee-bytes.com  
   更新: http://eclipse.coffee-bytes.com/update-site     

   名称:DocJar
   作用:可以让你在Eclipse里搜索成千上万的Java Source和Java Doc
   网址:http://www.docjar.com/

   名称:JIntio
   作用:属性编辑器
   网址:http://www.guh-software.de/jinto.html

   名称:Properties Editor
   作用:属性编辑器
   网址:http://propedit.sourceforge.jp/index_en.html

   名称:Lomboz
   作用:开发J2EE应用程序
   网址:http://www.objectlearn.com/projects/download.jsp

posted @ 2005-06-12 15:17 bigseal 阅读(279) | 评论 (0)编辑 收藏

操作系统:FreeBSD 5.3
这是第一次在非Windows系统安装软件,对于系统中很多基本的东西都不熟悉,基本上都是看着配置文档来的,很多东西都是需要用的时候才找的,因此也花了不少时间。比较欣慰的时这些软件的文档的都很详细,使一个初次接触者也能够按照文档的说明一步一步完成安装。
目录:
1)  SVN简介
2)准备工作
3)安装使用tar打包的应用软件
4)开始安装
5)创建文件库
6)Apache配置
7)把CVS档案库转换为SVN档案库

1.   SVN简介
      
现在开发的源码,版本等管理一般都是CVS 。Subversion(SVN, http://subversion.tigris.org/)项目开始于2000年2月,作者之一是著名的 Open Source Development with CVS 作者Karl Fogel,也是CVS的开发者。
Subversion开始由CollabNet(
http://www.collab.net) 所有,但是它确实是一个开源的软件,遵从bsd样式的许可证。CollabNet只是给几个全职开发者发工资,并享有代码的版权,但是这个版权是 Apache/BSD-style的许可证,也就是说,你可以自由下载,修改,发布Subversion,而不需要CollabNet或其他人的许可。
Subversion意为更好的CVS,所以它除了包括了大多数CVS的特点,还有一些新鲜的东西:
Repositories 可以用内建的BerkeleyDB 或者普通文件实现。
目录在Subversion中和文件一样是versionable的对象,还有文件重命名等。Subversion还允许用户追踪文件和目录的任意属性信息,包括元信息(META-DATA)。甚至包括符号连接。在Subversion中,容易移动,复制和重命名。
高效的网络利用率。Subversion 可以用apache的基于HTTP的 WebDAV/DeltaV协议进行通讯。Apache服务器提供repository的服务。
二进制文件处理的增强。
本地化消息Localized messages
Subversion根据本地设置(locale settings) 用gettext()显示翻译过的错误,信息,帮助等。
Branching and tagging are cheap (constant time) operations
Subversion支持目前所有的流行的操作系统,比如Unix, Win32, BeOS, OS/2, MacOS X等。


下载到:
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
文档:

更多的信息还是到主页
http://subversion.tigris.org/上去看吧。
相关网站:
Subversion for Windows 安裝指南
http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm
Version Control with Subversion中文版:
http://svn.ntcu.net/svnbook/book.html
http://svnbook.red-bean.com/svnbook-1.1/svn-book.pdf

2.  
准备工作 
     
下载:subversion-1.2.0.tar.gz
地址:
http://subversion.tigris.org/servlets/NewsItemView?newsItemID=1159

下载:libxml2-2.5.3.tar.gz
地址:
http://cosoft.org.cn/html/osl/projects.php?group_id=4981

下载:neon-0.24.7.tar.gz
地址:
http://www.webdav.org/neon

下载:db-4.3.28.NC.tar.gz
地址:
http://www.sleepycat.com/download/index.shtml

下载:Apache Web Server 2.0.49 or newer

地址:
http://httpd.apache.org/download.cgi

3.   安装使用tar打包的应用软件
1) 安装:
整个安装过程可以分为以下几步:
Ø 取得应用软件:通过下载、购买光盘的方法获得;
Ø 解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2 等,所以你需要先解压。如
果是最常见的gz格式,则可以执行:“tar -xvzf 软件包名”,就可以一步完成解压与解
包工作。如果不是,则先用解压软件,再执行“tar -xvf 解压后的tar包”进行解包;
Ø 阅读附带的INSTALL文件、README 文件;
Ø 执行“./configure”命令为编译做好准备;
Ø 执行“make”命令进行软件编译;
Ø 执行“make install”完成安装;
Ø 执行“make clean”删除安装时产生的临时文件。
好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执
行呢?这也是一个Linux特色的问题。其实,一般来说,Linux的应用软件的可执行文件
会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这
个软件的INSTALL和README 文件,一般都会有说明。
2) 卸载:
通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以
并没有提供良好的卸载方法。一般都提供 make uninstall 来卸载软件的。

说明:阅读附带的INSTALL文件、README 文件是很重要的,大部分软件的安装信息都是从这里得到的。

4.   开始安装
1)安装libxml2-2.5.3

这是一个提供XML解析的类库,在安装subversion之前必须安装。
tar -zxf libxml2-2.5.3.tar.gz
cd libxml2-2.5.3
./configure
make
make install
make clean

2)安装 Neon library 0.24.7

Neon库允许SVN客户端在Internet上使用基于WebDAV 的协议和远程知识库交互。
tar -zxf neon-0.24.7.tar.gz
cd neon-0.24.7
./configure
make
make install
make clean

3)安装Berkeley DB 4.3.28

当前版本Subversion支持两种格式数据库,一种是FSFS,另外一种是BDB( Berkeley Database)。BDB是一个轻量级的关系数据库,可以作为一个轻巧的内置数据库,在很多开源项目下有很多应用,比如CVSTrac。FSFS格式主要的特点是可以支持Subversion的数据库和Subversion服务器可以在不同的物理机器上,可以通过网络共享(不知道是否支持NFS?),能很好的工作在MS Win98上,并且速度更快,但是由于FSFS是一种新的格式,稳定性可能没有BDB好。
比较郁闷的是我把Berkeley DB安装完成后,安装SVN的时候竟然检测不到,只有用FSFS格式的数据库了。
tar -zxf db-4.3.28.NC.tar.gz
cd docs
../dist/configure
make
make install
make clean
 
4)安装Apache 2.0
 
tar -zxf httpd-2.0.54.tar.gz
./configure --enable-dav --enable-so --enable-maintainer-mode
make
make install
make clean
注意:configure后面参数--enable-dav 表示构建mod-dav,--enable-so表示开启共享模块的支持也就是mod_dav_svn模块,--enable-maintainer-mode表示启用调试信息
 
5)安装Subversion
 
tar -zxf subversion-1.2.0.tar.gz
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
make install
make clean
 
注意:如果Apache未按照默认路径安装或出现跳过构建mod_dav_svn的警告信息,就需要在./configure 加上参数 --with-apxs=/usr/local/apache2/bin/apxs来构建mod_dav_svn并和Apache关联起来.

5.    创建文件库

Subversion 所提供的 svnadmin 工具, 有个专门处理这件事的子命令. 要建立一个新的档案库, 只要执行:

$ svnadmin create /usr/svn/repos/test

这样就在“/usr/svn/repos”目录下创建了一个test档案库,其中档案库的路径为“/usr/svn/repos/test”

注意:svnadmin工具的默认路径为“/usr/local/bin/svnadmin”

在你执行 svnadmin create 命令之后, 这个目录中就会有全新的 Subversion 档案库. 让我们看一下在这个目录里产生了什么东西.

$ ls /usr/svn/repos/test
dav/  db/  format  hooks/  locks/  README.txt
除了 README.txt 与 format 檔以外, 档案库是由一群子目录组成. 就像 Subversion 其它部份的设计一样, 模块化是很重要的原则, 而且阶层式组织要比杂乱无章好. 以下是新的档案库目录中, 各个项目的简单叙述:

dav

提供给 Apache 与 mod_dav_svn 使用的目录, 让它们储存内部数据.

db

主要的 Berkeley DB 环境, 里面都是储存 Subversion 档案系统 (就是你置于版本控制的全部数据所在) 的数据库表格.

format

一个内容为一个整数的档案, 表示档案库配置的版本号码.

hooks

一个放置 hook 脚本文件模板的目录 (如果你有安装的话, 还有脚本档本身的档案).

locks

用来放置 Subversion 档案库锁定数据的目录, 用来追踪存取档案库的客户端.

README.txt

这个档案只是用来告知使用者, 他们在看的是 Subversion 的档案库.


6.    Apache配置

SVN可以同过两种方式提供客户端对档案库的访问。

    采用Apache HTTP 服务器 (httpd)。使用WebDAV/deltaV 通讯协议与客户端交互, 这个通讯协议 (它是 HTTP 1.1 的扩充; 请参照 http://www.webdav.org/) 采用广为使用的 HTTP 通讯协议。

    采用SVN自带的svnserve服务器。这个程序要比 Apache 更轻便, 而且更容易设定,它会与 Subversion 客户端透过 TCP/IP 联机以自订的通讯协议沟通。

    我们采用了Apache服务器的方式,配置的具体步骤如下:
   
    1).Apache需要加载模块
    为了使客户端能够通过Apache来访问SVN档案库,Apache需要加载一个特殊的模块mod_dav_svn。如果您的Apache是按照与预设目录安装的,mod_dav_svn 模块应该会安装在 Apache 安装位置 (默认路径是 /usr/local/apache2) 的 modules 子目录内。同时在Apache的配置文件httpd.conf(默认路径为/usr/local/apache2/conf)中已经使用LoadModule指令加载了该模块(这是安装过程中自动添加)。LoadModule 指令的语法很简单, 就是将一个具名模块对映到共享链接库在磁盘上的位置:
LoadModule dav_svn_module     modules/mod_dav_svn.so
注意这个指令必须出现在其它的 Subversion 相关指令之前。

    2).配置匿名访问
    使客户端能够通过Apache访问资源库还需要告诉Apache资源库的位置,这需要我们在htppd.conf中加入Location指令来配置。
<Location /test>
  DAV svn
  SVNPath /usr/svn/repos/test
</Location>=
其中DAV表示处理方式,SVNPath是SVN档案库的位置。
这样你就可以使用
http://servername/test来访问档案库。

    如果你计划支持多个 Subversion 档案库, 而它们都有着共同的本地磁盘路径, 你可以使用另一种指令 SVNParentPath, 指示它们共同的父路径。如果我们在路径 /usr/svn 之下建立多个 Subversion 档案库, 并以http://servername/svn/repos1http://servername/svn/repos2 等等的 URL 供人存取, 你可以使用下面中的 httpd.conf 设定语法:

<Location /svn>
  DAV svn
  SVNParentPath /usr/svn/repos
</Location>
使用前述的语法, Apache 会将所有路径以 /svn/ 开始的 URL 都交给 Subversion DAV 供应模块处理, 它会假设任何以 SVNParentPath 指令指定的目录都是 Subversion 档案库。 不像SVNPath, 这个相当便利的语法可以让你在建立新的档案库时, 仍旧不必重跑 Apache。 这时我们可以同过
http://servername/svn/test来访问我们刚才的档案库,同样如果/usr/snv/repos/目录中还有档案库cvsrepos,我们可以通过http://servername/svn/cvsrepos来访问,并不需要重新配置。

    3).配置用户验证
    我们使用最简单的是基本验证机制,它只会使用使用者名称与密码, 用以确认使用者是他所声称的身份。Apache 提供了htpasswd 工具程序,来管理接受的使用者名称与密码,也就是你想要授与存取 Subversion 档案库权限的使用者。 让我们授与 Sally 与 Harry 送交存取的权限。 首先, 我们必须把它们加入到密码档案。

$ ### 第一次: 以 -c 建立档案
$ htpasswd -c /etc/svn-auth-file harry
New password: *****
Re-type new password: *****
Adding password for user harry
$ htpasswd /etc/svn-auth-file sally
New password: *******
Re-type new password: *******
Adding password for user sally
$
       
接着, 你需要在 httpd.conf 的 Location 区块中新增几个指令, 告诉 Apache 如何处理你的新密码文件。
AuthType 指令指定应使用何种认证系统。 在目前的状况中, 我们想要指定 Basic 认证系统。
AuthName 是一个任意的名称, 让你用来指定认证领域 (authentication domain)。 大多数的浏览器在向使用者询问使用者代号与密码时, 会将这个名称显示在弹出的对话框中。
AuthUserFile 指令指定你以 htpasswd 产生的密码文件
Require 指令指定只有通过验证的用户才能访问。

在新增这四个指令后, 你的 <Location> 区块看起来应该像这样:

<Location /svn>
  DAV svn
  SVNParentPath /usr/local/svn
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /etc/svn-auth-file
  Require valid-user
</Location>
现在如果你重新启动 Apache, 任何需要认证的 Subversion 动作都会从 Subversion 客户端取得使用者代号与密码, 这可能是使用先前置于快取的值, 或是向使用者询问。

7.    把CVS档案库转换为SVN档案库
cvs2svn工具是用来把CVS档案库转换为SVN档案库的。

1).安装
下载:Python 2.0 
地址:http://www.python.org/
说明:执行csv2svn中Python 脚本所需要的环境
安装:
      cd /usr/software
      tar -zxf Python-2.4.1.tgz
      cd Python-2.4.1
      ./configure
      make
      make install
      make clean
 
下载:RCS
地址:http://www.cs.purdue.edu/homes/trinkle/RCS/
说明:用来读CVS档案库
安装:
      cd /usr/software
      tar -zxf rcs-5.7.tar
      cd rcs-5.7
      ./configure
      make
      make install
      make clean
注意:make操作只能由非root用户执行
 
下载:GNU 工具
地址:http://www.gnu.org/software/coreutils/
说明:可能FreeBSD系统已经有了
安装:
      cd /usr/software
      tar -zxf coreutils-5.2.1.tar.gz
      cd coreutils-5.2.1
      ./configure
      make
      make install
      make clean
 
下载:cvs2svn
地址:http://cvs2svn.tigris.org/
说明:
安装:
      cd /usr/software
      tar -zxf cvs2svn-1.2.1.tar.gz
      cd cvs2svn-1.2.1
      make install
      make clean
 
2).使用cvs2svn把CVS档案库转换为SVN档案库
  使用cvs2svn工具根据需要可以几种转换方式供选择的。默认的方式为完全转换,我们就是采用这样方式的。
  进入csv2svn所在的目录:
   cd /usr/software/cvs2svn-1.2.1
   ./cvs2svn --svnadmin=/usr/local/bin/svnadmin --encoding=gb2312 --fs-type=fsfs -s /usr/svn/repos/CVSRepos_JSP /usr/software/CVSRepo_JSP
  
   参数说明:
   --svnadmin svndadmin的路径,创建SVN档案库时需要
   --encoding 所采用的编码,默认为ascii
   --fs-type  档案库的类型fsfs或bdb
   -s         SVN档案库的位置
   最后一个是要转换CVS档案库的位置

注:本文中一些SVN介绍性文字等是转自其它网站的。

posted @ 2005-06-11 15:37 bigseal 阅读(4839) | 评论 (0)编辑 收藏

一、 马太效应

二、 手表定理

三、 不值得定律

四、 彼得原理

五、 零和游戏原理

六、 华盛顿合作规律

七、 酒与污水定律

八、 水桶定律

九、 蘑菇管理

十、 奥卡姆剃刀定律

十一、 二八法则

十二、 钱的问题

 

一、马太效应

《新约•马太福音》中有这样一个故事,一个国王远行前,交给三个仆人每人一锭银子,吩咐他们:“你们去做生意,等我回来时,再来见我。”国王回来时,第一个仆人说:“主人,你交给我们的一锭银子,我已赚了10锭。”于是国王奖励他10座城邑。第二个仆人报告说:“主人,你给我的一锭银子,我已赚了5锭。”于是国王例奖励了他5座 城邑。第三个仆人报告说:“主人,你给我的一锭银子,我一直包在手巾里存着,我怕丢失,一直没有拿出来。”于是国王命令将第三个仆人的一锭银子也赏给第一 个仆人,并且说:“凡是少的,就连他所有的也要夺过来。凡是多的,还要给他,叫他多多益善。”这就是马太效应。看看我们周围,就可以发现许多马太效应的例 子。朋友多的人会借助频繁的交往得到更多的朋友;缺少朋友的人会一直孤独下去。金钱方面更是如此,即使投资回报率相同,一个比别人投资多10倍的人,收益也多10倍。

 

这是个赢家通吃的社会,善用马太效应,赢家就是你。

  

  对企业经营发展而言,马太效应则告诉我 们,要想在某一个领域保持优势,就必须在此领域迅速做大。当你成为某个领域的领头羊的时候,即使投资回报率相同,你也能更轻易的获得比弱小的同行更大的收 益。而若没有实力迅速在某个领域做大,就要不停地寻找新的发展领域,才能保证获得较好的回报。

 

  二、手表定理

 

手表定理是指一个人有一只表时,可以知道现 在是几点钟,而当他同时拥有两只表时却无法确定。两只表并不能告诉一个人更准确的时间,反而会让看表的人失去对准确时间的信心。你要做的就是选择其中较信 赖的一只,尽力校准它,并以此作为你的标准,听从它的指引行事。记住尼采的话:“兄弟,如果你是幸运的,你只需有一种道德而不要贪多,这样,你过桥更容易 些。”

 

如果每个人都“选择你所爱,爱你所选择”, 无论成败都可以心安理得。然而,困扰很多人的是:他们被“两只表”弄得无所事事,心身交瘁,不知自己该信仰哪一个,还有人在环境、他人的压力下,违心选择 了自己并不喜欢的道路,为此而郁郁终生,即使取得了受人瞩目的成就,也体会不到成功的快乐。

  

  手表定理在企业经营管理方面给我们一种 非常直观的启发,就是对同一个人或同一个组织的管理不能同时采用两种不同的方法,不能同时设置两个不同的目标。甚至每一个人不能由两个人来同时指挥,否则 将使这个企业或这个人无所适从。手表定理所指的另一层含义在于每个人都不能同时挑选两种不同的价值观,否则,你的行为将陷于混乱。

 

  三、不值得定律

 

不值得定律最直观的表述是:不值得做的事 情,就不值得做好,这个定律似乎再简单不过了,但它的重要性却时时被人们疏忘。不值得定律反映出人们的一种心理,一个人如果从事的是一份自认为不值得做的 事情,往往会保持冷嘲热讽,敷衍了事的态度。不仅成功率小,而且即使成功,也不会觉得有多大的成就感。

  哪些事值得做呢?一般而言,这取决于三个因素。

  1、价值观。关于价值观我们已经谈了很多,只有符合我们价值观的事,我们才会满怀热情去做。

  2、个性和气质。一个人如果做一份与他的个性气质完全背离的工作,他是很难做好的,如一个好交往的人成了档案员,或一个害羞者不得不每天和不同的人打交道。

  3、现实的处境。同样一份工作,在不同的处境下去做,给我们的感受也是不同的。例如,在一家大公司,如果你最初做的是打杂跑腿的工作,你很可能认为是不值得的,可是,一旦你被提升为领班或部门经理,你就不会这样认为了。

  

  总结一下,值得做的工作是:符合我们的价值观,适合我们的个性与气质,并能让我们看到期望。如果你的工作不具备这三个因素,你就要考虑换一个更合适的工作,并努力做好它。

  

  因此,对个人来说,应在多种可供选择的 奋斗目标及价值观中挑选一种,然后为之而奋斗。“选择你所爱的,爱你所选择的”,才可能激发我们的奋斗毅力,也才可以心安理得。而对一个企业或组织来说, 则要很好地分析员工的性格特性,合理分配工作,如让成就欲较强的职工单独或牵头来完成具有一定风险和难度的工作,并在其完成时给予定时的肯定和赞扬;让依 附欲较强的职工更多地参加到某个团体中共同工作;让权力欲较强的职工担任一个与之能力相适应的主管。同时要加强员工对企业目标的认同感,让员工感觉到自己 所做的工作是值得的,这样才能激发职工的热情。

 

  四、彼得原理

 

彼得原理是美国学者劳伦斯•彼得在对组织中 人员晋升的相关现象研究后得出的一个结论;在各种组织中,由于习惯于对在某个等级上称职的人员进行晋升提拔,因而雇员总是趋向于晋升到其不称职的地位。彼 得原理有时也被称为“向上爬”原理。这种现象在现实生活中无处不在:一名称职的教授被提升为大学校长后无法胜任;一个优秀的运动员被提升为主管体育的官 员,而无所作为。

 

  对一个组织而言,一旦组织中的相当部分 人员被推到了其不称职的级别,就会造成组织的人浮于事,效率低下,导致平庸者出人头地,发展停滞。因此,这就要求改变单纯的“根据贡献决定晋升”的企业员 工晋升机制,不能因某个人在某一个岗位级别上干得很出色,就推断此人一定能够胜任更高一级的职务。要建立科学、合理的人员选聘机制,客观评价每一位职工的 能力和水平,将职工安排到其可以胜任的岗位。不要把岗位晋升当成对职工的主要奖励方式,应建立更有效的奖励机制,更多地以加薪、休假等方式作为奖励手段。 有时将一名职工晋升到一个其无法很好发挥才能的岗位,不仅不是对职工的奖励,反而使职工无法很好发挥才能,也给企业带来损失。

 

  对个人而言,虽然我们每个人都期待着不停地升职,但不要将往上爬作为自己的惟一动力。与其在一个无法完全胜任的岗位勉力支撑、无所适从,还不如找一个自己能游刃有余的岗位好好发挥自己的专长。

 

  五、零和游戏原理

 

当你看到两位对弈者时,你就可以说他们正在玩“零和游戏”。因为在大多数情况下,总会有一个赢,一个输,如果我们把获胜计算为得1分,而输棋为-1分,那么,这两人得分之和就是:1+-1=0

 

  这正是“零和游戏”的基本内容:游戏者有输有赢,一方所赢正是另一方所输,游戏的总成绩永远是零。

 

  零和游戏原理之所以广受关注,主要是因 为人们发现在社会的方方面面都能发现与“零和游戏”类似的局面,胜利者的光荣后面往往隐藏着失败者的辛酸和苦涩。从个人到国家,从政治到经济,似乎无不验 证了世界正是一个巨大的“零和游戏”场。这种理论认为,世界是一个封闭的系统,财富、资源、机遇都是有限的,个别人、个别地区和个别国家财富的增加必然意 味着对其他人、其他地区和国家的掠夺,这是一个“邪恶进化论”式的弱肉强食的世界。

 

  但20世 纪人类在经历了两次世界大战,经济的高速增长、科技进步、全球化以及日益严重的环境污染之后,“零和游戏”观念正逐渐被“双赢”观念所取代。人们开始认识 到“利己”不一定要建立在“损人”的基础上。通过有效合作,皆大欢喜的结局是可能出现的。但从“零和游戏”走向“双赢”,要求各方要有真诚合作的精神和勇 气,在合作中不要耍小聪明,不要总想占别人的小便宜,要遵守游戏规则,否则“双赢”的局面就不可能出现,最终吃亏的还是自己。

 

  六、华盛顿合作规律。

 

华盛顿合作规律说的是:一个人敷衍了事,两个人互相推诿,三个人则永无成事之日。多少有点类似于我们“三个和尚”的故事。人与人的合作不是人力的简单相加,而是要复杂和微妙得多。在人与人的合作中,假定每个人的能力都为1,那么10个人的合作结果就有时比10大得多,有时甚至比1还 要小。因为人不是静止的动物,而更像方向各异的能量,相推动时自然事半功倍,相互抵触时则一事无成。我们传统的管理理论中,对合作研究得并不多,最直观的 反映就是,目前的大多数管理制度和行业都是致力于减少人力的无谓消耗,而非利用组织提高人的效能。换言之,不妨说管理的主要目的不是让每个人做到最好,而 是避免内耗过多。21世纪将是一个合作的时代,值得庆幸的是,越来越多的人已经认识到真诚合作的重要性,正在努力学习合作。

 

  邦尼人力定律:一个人一分钟可以挖一个洞,六十个人一秒种却挖不了一个洞。

  

  合作是一个问题,如何合作也是一个问题。

 

  七、酒与污水定律

 

酒与污水定律是指,如果把一匙酒倒进一桶污 水中,你得到的是一桶污水;如果把一匙污水倒进一桶酒中,你得到的还是一桶污水。几乎在任何组织里,都存在几个难弄的人物,他们存在的目的似乎就是为了把 事情搞糟。他们到处搬弄是非,传播流言、破坏组织内部的和谐。最糟糕的是,他们像果箱里的烂苹果,如果你不及时处理,它会迅速传染,把果箱里其它苹果也弄 烂,“烂苹果”的可怕之处在于它那惊人的破坏力。一个正直能干的人进入一个混乱的部门可能会被吞没,而一个人无德无才者能很快将一个高效的部门变成一盘散 沙。组织系统往往是脆弱的,是建立在相互理解、妥协和容忍的基础上的,它很容易被侵害、被毒化。破坏者能力非凡的另一个重要原因在于,破坏总比建设容易。 一个能工巧匠花费时日精心制作的陶瓷器,一头驴子一秒钟就能毁坏掉。如果拥有再多的能工巧匠,也不会有多少像样的工作成果。如果你的组织里有这样的一头驴 子,你应该马上把它清除掉;如果你无力这样做,你就应该把它拴起来。

 

  八、水桶定律

 

水桶定律是讲,一只水桶能装多少水,完全取决于它最短的那块木板。这就是说任何一个组织都可能面临的一个共同问题,即构成组织的各个部分往往决定了整个组织的水平。

 

  构成组织的各个部分往往是优劣不齐的,而劣质部分往往又决定整个组织的水平。

 

  “水桶定律”与“酒与污水定律”不同, 后者讨论的是组织中的破坏力量,而“最短的木板”却是组织中有用的一个部分,只不过比其它部分差一些,你不能把它们当成烂苹果扔掉。强弱只是相对而言的, 无法消除。问题在于你容忍这种弱点到什么程度。如果它严重到成为阻碍工作的瓶颈,就不得不有所动作。

 

   如果你在一个组织中,你应该:

   1、确保你不是最薄弱的部分;

   2、避免或减少这一薄弱环节对你成功的影响;

   3、如果不幸,你正处在这一环节中,你还可以采取有效的方法改进,或者转职去谋另一份工作。

 

  九、蘑菇管理

 

 

蘑菇管理是许多组织对待初出茅庐者的一种管 理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和 提携)。相信很多人都有这样一段“蘑菇”的经历,但这不一定是什么坏事,尤其是当一切都刚刚开始的时候,当上几天“蘑菇”,能够消除我们很多不切实际的幻 想,让我们更加接近现实,看问题也更加实际,而对一个组织而言,一般地新进的人员都是一视同仁,从起薪到工作都不会有大的差别。无论你是多么优秀的人才, 在刚开始的时候都只能从最简单的事情做起,“蘑菇”的经历对于成长中的年轻人来说,就像蚕茧,是羽化前必须经历的一步。所以,如何高效率地走过生命中的这 一段,从中尽可能吸取经验,成熟起来,并树立良好的值得信赖的个人形象,是每个刚入社会的年轻人必须面对的课题。

  十、奥卡姆剃刀定律

 

如果你认为只有焦头烂额、忙忙碌碌地工作才可能取得成功,那么,你错了。

 

  事情总是朝着复杂的方向发展,复杂会造成浪费,而效能则来自于单纯。在你做过的事情中可能绝大部分是毫无意义的,真正有效的活动只是其中的一小部分,而它们通常隐含于繁杂的事物中。找到关键的部分,去掉多余的活动,成功并不那么复杂。

 

  奥卡姆剃刀:如无发要,勿增实体。

 

  12世 纪,英国奥卡姆的威廉对无休无止的关于“共相”、“本质”之类的争吵感到厌倦,主张唯名论,只承认确实存在的东西,认为那些空洞无物的普遍性要领都是无用 的累赘,应当被无情地“剃除”。他主张,“如无必要,勿增实体。”这就是常说的“奥卡姆剃刀”。这把剃刀曾使很多人感到威胁,被认为是异端邪说,威廉本人 也受到伤害。然而,这并未损害这把刀的锋利,相反,经过数百年越来越快,并早已超越了原来狭窄的领域而具有广泛的、丰富的、深刻的意义。

 

  奥卡姆剃刀定律在企业管理中可进一步深化为简单与复杂定律:把事情变复杂很简单,把事情变简单很复杂。这个定律要求,我们在处理事情时,要把握事情的主要实质,把握主流,解决最根本的问题。尤其要顺应自然,不要把事情人为地复杂化,这样才能把事情处理好。

 

  十一、二八法则

 

你所完成的工作里80%的成果,来自于你20%的付出;而80%的付出,只换来20%的成果

 

  十二、钱的问题

 

  当某人告诉你:“不是钱,而是原则问题”时,十有八九就是钱的问题。

 

  照一般的说法,金钱是价值的尺度,交换的媒介,财富的贮藏。但是这种说法忽略了它的另一面,它令人陶醉、令人疯狂、令人激动的一面,也撇开了爱钱的心理不谈。马克思说,金钱是“人情的离心力”,就是指这一方面而言。

 

  关于金钱的本质、作用和功过,从古到 今,人们已经留下了无数精辟深刻的格言和妙语。我们常会看到,人们为钱而兴奋,努力赚钱,用财富的画面挑逗自己。金钱对世界的秩序以及我们的生活产生的影 响是巨大的、广泛的,这种影响有时是潜在的,我们往往意识不到它的作用如此巨大,然而奇妙的是:它完全是人类自己创造的。致富的驱动力并不是起源于生物学 上的需要,动物生活中也找不到任何相同的现象。它不能顺应基本的目标,不能满足根本的需求 -的确,“致富”的定义就是获得超过自己需要的东西。然而这个看起来漫无目标的驱动力却是人类最强大的力量,人类为金钱而互相伤害,远超过其他原因。

posted @ 2005-05-26 23:39 bigseal 阅读(259) | 评论 (0)编辑 收藏

要成功,就马上准备有所付出吧!这就是每天你应该养成的习惯。

1、不说“不可能”;

2、凡事第一反应: 找方法,不找借口;

3、遇到挫折对自己说声:太好了,机会来了!

4、不说消极的话,不落入消极的情绪,一旦发生立即正面处理;

5、凡事先订立目标;

6、行动前,预先做计划;

7、工作时间,每一分、每一秒做有利于生产的事情;

8、随时用零碎的时间做零碎的事情;

9、守时;

10、写点日记,不要太依靠记忆;

11、随时记录想到的灵感;

12、把重要的观念、方法写下来,随时提示自己;

13、走路比平时快30%,肢体语言健康有力,不懒散、萎靡;

14、每天出门照镜子,给自己一个自信的微笑;

15、每天自我反省一次;

16、每天坚持一次运动;

17、听心跳一分钟,在做重要的事情,疲劳时,紧张时,烦躁时。。。。

18、开会做前排;

19、微笑;

20、用心倾听,不打断对方的话;

21、说话有力,感觉自己的声音能产生感染力的磁场;

22、说话之前,先考虑一下对方的感觉;

23、每天有意识赞美别人三次以上;

24、即使表示感谢,如果别人帮助了你的话;

25、控制住不要让自己作出为自己辩护的第一反应;

26、不用训斥、指责的口吻与别人说话;

27、每天做一件”分外事“;

28、不关任何方面,每天必须至少做一次”进步一点点“,并且有意识的提高;

29、每天提前15分上班,推迟30分下班;

30、每天下班前5分钟做一下今天的整理工作;

31、定期存钱;

32、节俭;

33、时常运用”头脑风暴“,利用脑力激荡提升自己创新能力;

34、恪守诚信;

35、学会原谅

posted @ 2005-04-24 13:57 bigseal 阅读(164) | 评论 (0)编辑 收藏

    看一些开源代码的时候发展自己对关于文件路径的操作的使用不甚理解,就把它们放到一块对比着看一下。

import java.io.IOException;
import java.net.URL;

/**
 * @author Administrator
 * @version 1.0
 * 
 * TODO
 
*/

public class Simple {

    
public static void main(String[] args) {
        
        System.
out.println("getResource");

        System.
out.println(Simple.class.getResource(""));
        System.
out.println(Simple.class.getResource("."));
        System.
out.println(Simple.class.getResource("/"));
        System.
out.println(Simple.class.getResource("/images/About.gif"));
        System.
out.println(Simple.class.getResource("images/About.gif"));
        
        System.
out.println("getAbsolutePath:");
        
        System.
out.println(new File("").getAbsolutePath());
        System.
out.println(new File(".").getAbsolutePath());
        System.
out.println(new File("/").getAbsolutePath());
        System.
out.println(new File("images/About.gif").getAbsolutePath());
        System.
out.println(new File("/images/About.gif").getAbsolutePath());
        
    }

}
这是在eclipse中显示的运行结果
getResource
file:/D:/software/eclipse%203.0.1/workspace/simple/bin/simple/
file:/D:/software/eclipse%203.0.1/workspace/simple/bin/simple/
file:/D:/software/eclipse%203.0.1/workspace/simple/j2src/
file:/D:/software/eclipse%203.0.1/workspace/simple/bin/images/About.gif
null
getAbsolutePath:
D:\software\eclipse 3.0.1\workspace\simple
D:\software\eclipse 3.0.1\workspace\simple\.
D:\
D:\software\eclipse 3.0.1\workspace\simple\images\About.gif
D:\images\About.gif
这是在命令行下运行class文件的结果
getResource
file:/D:/software/eclipse%203.0.1/workspace/simple/bin/simple/
file:/D:/software/eclipse%203.0.1/workspace/simple/bin/simple/
file:/D:/software/eclipse%203.0.1/workspace/simple/bin/
file:/D:/software/eclipse%203.0.1/workspace/simple/bin/images/About.gif
null
getAbsolutePath:
D:\software\eclipse 3.0.1\workspace\simple\bin
D:\software\eclipse 3.0.1\workspace\simple\bin\.
D:\
D:\software\eclipse 3.0.1\workspace\simple\bin\images\About.gif
D:\images\About.gif
这是项目的文件夹结构
simple 
      ├─bin
      │  ├─images
      │  └─simple
      └─src
            ├─images
            └─simple
可以看到有时候分别在elipse运行和命令行class文件得到的文件路径是不一样的。
不知道为什么会出现这中情况呢?

posted @ 2005-04-15 13:57 bigseal 阅读(335) | 评论 (0)编辑 收藏

    我是北方的用户,到公司后发现访问blog的速度巨慢,打开一个网页都要好长时间……,偶,欲哭……
    今天有找个代理访问一下的想法,Google上go了一下,找到一个不错的网站http://www.cnproxy.com,上面虽然有许多代理服务器地址,可哪个可以用呢?这里就不仅仅是速度的问题了,因为好多都访问不了,偶没银子,只能用免费的,没别的法子,只有一个一个测试了。我记得QQ有代理设置,并且可以测试代理是否有效,呵呵,就试着用QQ测试一下。
02.jpg
OK,然后在IE上设置一下,呵呵,访问blogjava的速度暴快。
图片上看到的代理就是现在使用的代理,如果也北方的朋友感觉访问blogjava的速度有些慢,也可以试一下。

posted @ 2005-04-15 13:25 bigseal 阅读(1052) | 评论 (3)编辑 收藏

  1. Jabber是一种提供实时通信的协议。Jabber服务有着与Emai服务类似的服务方式:信息可以像Email那样在不同Jabber服务器之间、Jabber服务器和客户端之间发送和接收。
  2. Jabber把多种通信方式集成在一起,如:email,chat,group chat,IM Application。它使用一个类似与Email的通用通信地址(Universal Messaging Address)。
  3. Presense使Jabber用户可以很方便的知道其他用户的状态,并采取合适的通信方式。
  4. 不仅用于消息传递,还可以用于计算机之间的通信。
  5. 还可以用Jabber Server 支持的Jabber网络上构建你的应用程序,如在线游戏等。

posted @ 2005-03-11 00:06 bigseal 阅读(666) | 评论 (2)编辑 收藏

对委托事件模型中几个概念的理解:

  • 不同的操作,产生不同的事件类(Event),如窗口事件类WiondwEvent、单击事件类ActionEvent
  • 每个事件类有相对应的事件监听程序(Listener)(对事件对象的接收和处理)
  • 事件监听程序的声明在监听程序接口(Listener Interface)中,如 WindowListernerActionListener

传递及处理事件对象的流程

  • 注册对应事件的监听程序
  • 用某个类实现接口中的事件监听程序,即委托该类实现它的事件的监听程序
  • 运行时,系统将事件对象只传递给已注册的事件监听程序,并委托执行

posted @ 2005-03-05 23:50 bigseal 阅读(785) | 评论 (1)编辑 收藏

web.xml文件的格式是在Servlet的规格说明书中定义的,所以这个文件格式可以用在任何与servlet相容(servlet-conforming )的Java servlet container。在Tomcat有两个地方用到这个文件:$CATALINA_BASE/conf 文件夹和每个web应用程序。Tomcat每次配置一个应用程序(deploys an application )(在启动或当应用程序载入的时候)时读全局conf/web.xml,接着是应用程序中的WEB-INF/web.xml 。正如你所期望的conf/web.xml 文件中的设置会应用的所有的应用程序,而当前应用程序的WEB-INF/web.xml 仅仅应用到当前的应用程序。

这个XML配置描述的根元素是
web-app,这是顶层的元素,并且该文件元素必须按照下表的顺序。这里没有必需的元素,但最好应该有display-name来标识。
Child elements of web-app

Element

Quantity allowed

Meaning

icon

0 or 1

A display file, for use in GUI administration tools

display-name

0 or 1

Short name, for use in GUI admin tools

description

0 or 1

Longer description

distributable

0 or 1

Whether the web application can be load-balanced, i.e., distributed to multiple servers

context-param

0 or more

Parameters to be made available to all servlets

filter

0 or more

Provides a general-purpose servlet-based filtering mechanism

filter-mapping

0 or more

Maps the invocation of a filter to either a servlet name or a URL pattern

listener

0 or more

Context or session Listener classes

servlet

0 or more

Short name, class name, and options for a servlet

servlet-mapping

0 or more

Specifies any nondefault URL for a servlet

session-config

0 or 1

Specifies session configuration (only session timeout in present version of specification)

mime-mapping

0 or more

MIME types for files on server

welcome-file- list

0 or 1

Alternate default page in directories

error-page

0 or more

Alternate error page by HTTP error code

taglib

0 or more

Tag library; see the section on the taglib element, later in this chapter

resource-env-ref

0 or more

Reference to "administered objects," such as JMS queues

resource-ref

0 or more

Reference to JNDI factory for objects such as SQL DataSources

security- constraint

0 or more

Requires authentication (e.g., for a protected area of a web site)

login-config

0 or 1

Specifies how the login mechanism is to work for a security-constraint

security-role

0 or more

List name of security role, for use with security-constraint

env-entry

0 or more

JNDI lookup of static objects

ejb-ref

0 or more

Reference to EJBs used by servlets

ejb-local-ref

0 or more

Reference to EJB local interfaces used by servlets


posted @ 2005-03-04 00:03 bigseal 阅读(1047) | 评论 (0)编辑 收藏

  1. Spring
  2. Hibernate
  3. Joboss
  4. Struct

posted @ 2005-03-03 20:30 bigseal 阅读(188) | 评论 (0)编辑 收藏

虽然把它的安装文件和源代码都download了,但却是一头雾水,没一点头绪。

今天问了一下,才知道是这样的:
jive实现了一个Jabber服务器,样只要使用jabber协议就可以和jive通信了,然后做了一安装程序把jelly 这个server 安装,然后将自己war发布到jelly,再加上了一个自己的启动脚本。

这只是一个大概的框架,虽然明白了它的基本构架,可具体的实现还是不明白,决定从读代码开始。既然不能从整体上把握,就一点一点的啃代码。

posted @ 2005-03-03 20:25 bigseal 阅读(419) | 评论 (0)编辑 收藏

http://jakarta.apache.org/site/binindex.cgi
Alexandria
BCEL
BSF
Cactus
Commons
ECS
Gump
Jetspeed
JMeter
Log4J
Lucene
ORO
POI
Regexp
Slide
Struts
Taglibs
Tapestry
Tomcat
Turbine
Velocity
Watchdog
http://jakarta.apache.org/commons/index.html
BeanUtils
Betwixt
CLI
Codec
Collections
Daemon
DBCP
Digester
Discovery
EL
FileUpload
HttpClient
Jelly
Jexl
JXPath
Lang
Latka
Logging
Modeler
Net
Pool
Validator

posted @ 2005-03-03 10:24 bigseal 阅读(187) | 评论 (0)编辑 收藏

       看到一篇关于在eclipse中使用ant构建java项目的文章,就按照文章中的说明新建了一个项目,并新建了classes,dist,doc,lib几个文件夹和build.xml文件。其中build.xml文件的内容也是直接复制的,由于是从网页上直接复制的,里面“<”“>”都是中文格式的,我就把这些给替换了一下。
         但当选中项目,然后选择“Project”,“Properties”,“Builders”,“New…”,选择“Ant Build”:载入“Bulidfile”时提示“Content is not allowed in prolog”错误。    
         我就去Google上转了一圈,还有点收获,看了一篇小文章,觉得可能是build.xml文件格式的错误。

In SGML and XML, a document is composed of two sequential parts,
the prolog and the instance. You can see this in an HTML example:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN "
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " 
>
<html xmlns= "http://www.w3.org/1999/xhtml " >
<head >
<title >The Symbol Grounding Problem </title >
</head >
<body >
</body >
</html >

In this example, the prolog is lines 1-2, the instance begins on
line 3. The prolog includes the DOCTYPE declaration, the external
subset (called the DTD), and the internal subset (which you seldom
see but it 's legal). The document instance includes the document
element (in this case 
<html > and all of its descendent content).

You generally don 't want to see the prolog, and you generally don 't
want to store it. The DOCTYPE declaration provides references to
DTD, which is instantiated as part of the process of validating the
document. You may want to store the reference(s), but you wouldn 't
want to store the DTD each time you store the document, as that
would be a real waste (the DTD is often bigger than the document).

It sounds like your well-formed and valid document isn 't being
considered as such by the XML processor. The error message indicates
that there is content (i.e., either elements or character data) in
the part of the document considered as the prolog. You may be missing
the last " > " on line 2 above, as that would normally be the beginning
of the internal subset. If it found " 
<html " (or something similar),
you might get that error.
果然,有两个“!”是中文状态,改过来就ok 了。

posted @ 2005-02-27 11:09 bigseal 阅读(20970) | 评论 (7)编辑 收藏