2006年3月29日星期三
东莞归来。
原计划是用一周的时间完成一个系统(用开源软件搭建),后来和对方交流发现他们胃口大了,想寻一个题目到科技局立项,开发任务就变成了写文档。幸亏有相关的文档模板可以参考。
看来真的需要储备一些文档资源,因为软件项目执行的全过程都离不开文档的牵引和总结作用。有些软件工程执行标准或者项目管理规范也提供各个阶段用到的文档模板,但要收为己用还需要在实践中摸索出适合自己的方式,因为文档的书写和工程的流程控制是紧密接合的。
出差期间是在分所领导租住处寄居的,深切体会到在研究所里员工的职位意味着什么,而不是技术、资历意味着什么。也许各个环境下都是这样。期间也和企业的管理者有过接触,他们可以不懂技术,但一定需要有的是人脉。做技术的难道就只能在别人的管辖之下?
东莞环境不错,但潮湿,现在正逢雨季,一周的时间里基本上每天都有雨下,远处、山上都烟雨蒙蒙的。仓促地登了一次旗峰山,印象有三:一是从后山上去时山道幽静,每隔二百米就能看到警示“山路偏僻,小心抢劫”等意思的牌子;二是山不高但草木葱葱、鸟鸣嘤嘤、云雾蒙蒙;三是下山快走到前门发现既有寺院又有道观。
和一个网友碰面, 一晚上学会了一首粤语歌《上海滩》。临来的时候,送我一个雕塑,感激啊。
2006年3月10日星期五
昨日杂记。
晚上,一个久不联系的同学找到我,深夜“出访”,一番长谈短叙之后,对方道出了让我大吃一惊的请求——让我扮男友去看望病中的父亲。电影里的情节发生在我身上,但并不是惊喜。
该来的不来,sigh...
2006年3月7日星期二
由Ajax桌面系统想到的...
这篇Blog列出了13个系统,分别简单介绍了各自的特点,总体来说它们共同的特点有:系统主页面就相当于一个容器,由多个独立的组件组成,各个组件可拖动、可增删、可编辑。其中Pageflakes系统的帮助信息中就简单介绍了如何开发能够插入Pageflakes系统界面的flake组件,以及系统功能实现的简单原理。在Google的个性桌面系统的组件目录中也可以看到,它能够容纳由第三方开发的模块,并允许查看其XML源码。
感觉这些系统实现的效果很像Portal/Portlet要达到的目标,比如Pageflakes提供了一个组件库(包括map组件等),能够方便地拖入页面容器内运行。不过Portal是从服务端解决问题,而这些系统使用Ajax技术从客户端入手,更能充分利用客户端技术的灵活性提供更舒适的用户体验。比如在服务端可以实现组件的插入,但要实现组件在容器里的拖动还是离不开JavaScript等客户端技术元素。
个人认为客户端的事就应当使用客户端的技术来完成。服务端专心做服务实体,客户端专心做集成界面。现在不能再简单对待Web客户端开发了,应当用工程的眼光来对待,其实它也是可以建成完整体系架构的,看一下JackBe的产品组成:
2006年3月5日星期日
关于我国Linux的发展...
首先是被称为红旗副总裁白总的文章《Linux的“原罪” 瓶颈中改变的经济规则》,以尼奥和Matrix来比喻Linux与微软的关系,以生产力和生产关系来比喻Linux和GPL,也提出了Linux发展的几个瓶颈和机遇,认为最终Linux会与微软利益团体共存。
另一篇是叫做黄国荣的针对上一篇文章写的质疑《我国Linux发展的瓶颈是GPL?》,提到Redhat、Ubuntu等国外的Linux发行版本因开源而赢利、而国内的红旗等不开源也没有赢利的对比。由于Linux内核是基于GPL2.0许可证,所有Linux发行版都应当是开源的,因而作者对红旗等没有开源的原因进行了一番奚落。另外,也给国内Linux发行版开发商提出了一个方向:开源,发展自己的用户和开发社区。作者认为我国Linux发展的瓶颈在于思想和理念。
2006年2月24日星期五
2006年2月23日星期四
J2EE到Java EE 5
- 简化企业应用开发,将Java5的新特性annotation用于多项任务(如定义和使用Web服务、将Java类映射到XML或数据库、指定外部倚赖、指定发布信息等);
- 高效的EJB软件开发;
- 通过倚赖注入简化资源的访问;
- 轻量级的Java持久化API模型;
- 简化、高效的Web服务支持;
- 使用JavaServer Faces技术方便了Web应用的设计;
- 其他新特性如JSTL、JAXB2.0、StAX、等
看旁观者写的一篇介绍J2EE发展的文章:
- J2EE提供了EJB容器、Servlet引擎等框架,并采用运行时调用来管理对象;Struts框架建立在这之上,主要是用MVC模式把业务逻辑和界面表现分离。
- 在持久化方面,J2EE提供了JDBC和实体Bean两种手段,但JDBC强制用户用Java代码来处理关系思想,实体Bean既笨重又低效不被用户接受;JDO技术因缺少SUN和其他J2EE技术提供商的支持而发展缓慢;Hibernate提供了一种健壮的关系对象映射解决方案。
- Spring框架负责融合框架与应用业务代码,组合了IOC(Inversion of Control)和AOP,增强了POJO的功能。
- 致使J2EE领域不确定性的两大因素:开源领域和J2EE标准之间的冲突,AOP的日益重要。
- 开源领域和J2EE标准之间的冲突表现在两方面:一是表现层标准的JSF和开源的Struts,不过Struts目前也增加了对JSF的支持;二是标准上用倚赖注入简化资源的访问,而这也是Spring的功能子集。
- 新一代的J2EE规范将拥抱更简单的POJO编程模型。
管理十大经典理论(转)
1、彼得原理
每个组织都是由各种不同的职位、等级或阶层的排列所组成,每个人都隶属于其中的某个等级。彼得原理是美国学者劳伦斯·彼得在对组织中人员晋升的相关现象研究后,得出一个结论:在各种组织中,雇员总是趋向于晋升到其不称职的地位。彼得原理有时也被称为向上爬的原理。这种现象在现实生活中无处不在:一名称职的教授被提升为大学校长后,却无法胜任;一个优秀的运动员被提升为主管体育的官员,而无所作为。对一个组织而言,一旦相当部分人员被推到其不称职的级别,就会造成组织的人浮于事,效率低下,导致平庸者出人头地,发展停滞。因此,这就要求改变单纯的根据贡献决定晋升的企业员工晋升机制,不能因某人在某个岗位上干得很出色,就推断此人一定能够胜任更高一级的职务。将一名职工晋升到一个无法很好发挥才能的岗位,不仅不是对本人的奖励,反而使其无法很好发挥才能,也给企业带来损失。
2、酒与污水定律
酒与污水定律是指把一匙酒倒进一桶污水,得到的是一桶污水;如果把一匙污水倒进一桶酒,得到的还是一桶污水。在任何组织里,几乎都存在几个难弄的人物,他们存在的目的似乎就是为了把事情搞糟。最糟糕的是,他们像果箱里的烂苹果,如果不及时处理,它会迅速传染,把果箱里其他苹果也弄烂。烂苹果的可怕之处,在于它那惊人的破坏力。一个正直能干的人进入一个混乱的部门可能会被吞没,而一个无德无才者能很快将一个高效的部门变成一盘散沙。组织系统往往是脆弱的,是建立在相互理解、妥协和容忍的基础上的,很容易被侵害、被毒化。破坏者能力非凡的另一个重要原因在于,破坏总比建设容易。一个能工巧匠花费时日精心制作的陶瓷器,一头驴子一秒钟就能毁坏掉。如果一个组织里有这样的一头驴子,即使拥有再多的能工巧匠,也不会有多少像样的工作成果。如果你的组织里有这样的一头驴子,你应该马上把它清除掉,如果你无力这样做,就应该把它拴起来。
3、水桶定律
水桶定律是讲一只水桶能装多少水,这完全取决于它最短的那块木板。这就是说任何一个组织,可能面临的一个共同问题,即构成组织的各个部分往往是优劣不齐的,而劣势部分往往决定整个组织的水平。水桶定律与酒与污水定律不同,后者讨论的是组织中的破坏力量,最短的木板却是组织中有用的一个部分,只不过比其他部分差一些,你不能把它们当成烂苹果扔掉。强弱只是相对而言的,无法消除,问题在于你容忍这种弱点到什么程度,如果严重到成为阻碍工作的瓶颈,你就不得不有所动作。
4、马太效应
《新约·马太福音》中有这样一个故事:一个国王远行前,交给3个仆人每人一锭银子,吩咐道:你们去做生意,等我回来时,再来见我。国王回来时,第一个仆人说:主人,你交给我的一锭银子,我已赚了10锭。于是,国王奖励他10座城邑。第二个仆人报告:主人,你给我的一锭银子,我已赚了5锭。于是,国王奖励他5座城邑。第三仆人报告说:主人,你给我的1锭银子,我一直包在手帕里,怕丢失,一直没有拿出来。于是,国王命令将第三个仆人的1锭银子赏给第一个仆人,说:凡是少的,就连他所有的,也要夺过来。凡是多的,还要给他,叫他多多益善,这就是马太效应,反应当今社会中存在的一个普遍现象,即赢家通吃。对企业经营发展而言,马太效应告诉我们,要想在某一个领域保持优势,就必须在此领域迅速做大。当你成为某个领域的领头羊时,即便投资回报率相同,你也能更轻易地获得比弱小的同行更大的收益。而若没有实力迅速在某个领域做大,就要不停地寻找新的发展领域,才能保证获得较好的回报。
5、零和游戏原理
零和游戏是指一项游戏中,游戏者有输有赢,一方所赢正是另一方所输,游戏的总成绩永远为零,零和游戏原理之所以广受关注,主要是因为人们在社会的方方面面都能发现与零和游戏类似的局面,胜利者的光荣后面往往隐藏着失败者的辛酸和苦涩。 20世纪,人类经历两次世界大战、经济高速增长,科技进步、全球一体化以及日益严重的环境污染,零和游戏观念正逐渐被双赢观念所取代。人们开始认识到利已不一定要建立在损人的基础上。通过有效合作皆大欢喜的结局是可能出现的。但从零和游戏走向双赢,要求各方面要有真诚合作的精神和勇气,在合作中不要小聪明,不要总想占别人的小便宜,要遵守游戏规则,否则双赢的局面就不可能出现,最终吃亏的还是合作者自己。
6、华盛顿合作规律
华盛顿合作规律说的是一个人敷衍了事,两个人互相推诿,三个人则永无成事之日。多少有点类似于我们三个和尚的故事。人与人的合作,不是人力的简单相加,而是要复杂和微妙得多。在这种合作中,假定每个人的能力都为1,那么,10个人的合作结果有时比10大得多,有时,甚至比1还要小。因为人不是静止物,而更像方向各异的能量,相互推动时,自然事半功倍,相互抵触时,则一事无成。我们传统的管理理论中,对合作研究得并不多,最直观的反映就是,目前的大多数管理制度和行为都是致力于减少人力的无谓消耗,而非利用组织提高人的效能。换言之,不妨说管理的主要目的不是让每个人做得更好,而是避免内耗过多。
7、手表定理
手表定理是指一个人有一只表时,可以知道现在是几点钟,当他同时拥有两只表时,却无法确定。两只手表并不能告诉一个人更准确的时间,反而会让看表的人失去对准确时间的信心。手表定理在企业经营管理方面,给我们一种非常直观的启发,就是对同一个人或同一个组织的管理,不能同时采用两种不同的方法,不能同时设置两个不同的目标,甚至每一个人不能由两个人同时指挥,否则将使这个企业或这个人无所适从。手表定理所指的另一层含义在于,每个人都不能同时选择两种不同的价值观,否则,你的行为将陷于混乱。
8、不值得定律
不值得定律最直观的表述是:不值得做的的事情,就不值得做好。这个定律再简单不过了,重要性却时时被人们忽视遗忘。不值得定律反映人们的一种心理,一个人如果从事的是一份自认为不值得做的事情,往往会保持冷嘲热讽,敷衍了事的态度,不仅成功率低,而且即使成功,也不觉得有多大的成就感。因此,对个人来说,应在多种可供选择的奋斗目标及价值观中挑选一种,然后为之奋斗。选择你所爱的,爱你所选择的,才可能激发我们的斗志,也可以心安理得。而对一个企业或组织来说,则要很好地分析员工的性格特性,合理分配工作,如让成就欲较强的职工单独或牵头完成具有一定风险和难度的工作,并在其完成时,给予及时的肯定和赞扬;让依附欲较强的职工,更多地参加到某个团体工作;让权力欲较强的职工,担任一个与之能力相适应的主管。同时要加强员工对企业目标的认同感,让员工感觉到自己所做的工作是值得的,这样才能激发职工的热情。
9、蘑菇管理
蘑菇管理是许多组织对待初出茅庐者的一种管理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和提携)。相信很多人都有过这样一段蘑菇的经历,这不一定是什么坏事,尤其是当一切刚刚开始的时候,当几天蘑菇,能够消除我们很多不切实际的幻想,让我们更加接近现实,看问题也更加实际。一个组织,一般对新进的人员都是一视同仁,从起薪到工作都不会有大的差别。无论你是多么优秀的人才,在刚开始的时候,都只能从最简单的事情做起,蘑菇的经历,对于成长中的年轻人来说,就象蚕茧,是羽化前必须经历的一步。所以,如何高效率地走过生命的这一段,从中尽可能汲取经验,成熟起来,并树立良好的值得信赖的个人形象,是每个刚入社会的年轻人必须面对的课题。
10、奥卡姆剃刀定律
12世纪,英国奥卡姆的威廉主张唯名论,只承认确实存在的东西,认为那些空洞无物的普遍性概念都是无用的累赘,应当被无情地剃除。他主张如无必要,勿增实体。这就是常说的奥卡姆剃刀。这把剃刀曾使很多人感到威胁,被认为是异端邪说,威廉本人也因此受到迫害。然而,并未损害这把刀的锋利,相反,经过数百年的岁月,奥卡姆剃刀已被历史磨得越来越快,并早已超载原来狭窄的领域,而具有广泛、丰富、深刻的意义。 奥卡姆剃刀定律在企业管理中可进一步演化为简单与复杂定律:把事情变复杂很简单,把事情变简单很复杂。这个定律要求,我们在处理事情时,要把握事情的主要实质,把握主流,解决最根本的问题,尤其要顺应自然,不要把事情人为地复杂化,这样才能把事情处理好。
2006年2月16日星期四
解决Linux下Java程序的中文显示问题。
按照Google到的一篇帖子的做法,执行如下:
- 拷贝中文字体到JRE_HOME/lib/fonts下
- 修改JRE_HOME/lib/fonts/fonts.dir,字体个数加1,添加一个字体条目(如gbsn00lp.ttf -SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0)
- 在JRE_HOME/lib/下任选一个字体配置属性模板文件(如fontconfig.RedHat.properties.src),另存为fontconfig.properties
- 编辑fontconfig.properties,在# Component Font Mappings部分添加如下内容:
serif.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
将# Search Sequences部分改为
serif.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
serif.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
serif.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
sansserif.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
monospaced.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialog.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.plain.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.bold.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.italic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0
dialoginput.bolditalic.zh-1=-SungtiL GB-medium-r-normal--0-0-0-0-c-0-gb2312.1988-0sequence.allfonts=zh-1
- 应当OK了。
将除fongtconfig.properties之外的所有字体配置文件全部移走。
终于OK了。
2006年2月14日星期二
GNOME vs. KDE
检索得到ZDNet上对此事件的一个小总结。
对于GNOME和KDE这两种GUI的是是非非,需要查找资料,在Google中检索[gnome vs. kde]选取如下文章和讨论:
GNOME vs. KDE in open source desktops By Jason Compton
GNOME vs. KDE
GNOME vs. KDE From Linux Gazette
GNOME vs. KDE in 45 words or less From O'Reilly
2006年2月13日星期一
2006年2月12日星期日
2006年1月20日星期五
2006年1月17日星期二
FGS与Tomcat的连接
由于FGS当前套装中Apache版本是1.3.34,并且编译的时候没有链接apr/apr-util,难以用JK连接Tomcat。
检索FGS的邮件列表发现了如下方法,但不知道能不能适合我的需求:
On Tue, 2005-06-14 at 17:47, Dante Fuster wrote:试一把先。
> Hi.
>
> Is it possible to install FGS already using an Apache installed
> previously? or to have an Apache compiled with all the bookstores that
> are required (example: apx..) to connect it to TOMCAT.
Here is what you could do:
Install FGS with its own Apache running on port 8080 and add these two
lines in the config file (httpd.conf) of your previously installed
Apache:
ProxyPass /gis/ http://127.0.0.1:8080/
ProxyPassReverse /gis/ http://127.0.0.1:8080/
Then, when queries will be made to http://your_web_site/gis/, they will
be forwarded to FGS's Apache.
Guillaume
错误! 缺少代理功能模块,因为编译Apache时没有打开proxy开关。
用笨的方法,重新编译。
Bingo!
这样一来,就能通过代理将FGS连接到门户Apache,通过JK连接门户Apache和Tomcat,在门户Apache中通过frameset整合地图功能和MIS功能。测试了一下,客户端能够完成两项功能页面之间的脚本互动。
2006年1月14日星期六
Tomcat5.5.9与Apache2的整合
查看TOMCAT_HOME/conf/server.xml看到已建立AJP 1.3连接
安装Apache2到/usr/local/www:
./configure --prefix=/usr/local/www && make && make install
从Apache站点下载jk2源码包,编译:
./configure --with-apxs2=/usr/local/www/bin/apxs && make
拷贝生成的mod_jk2.so到/usr/local/www/modules下
拷贝worker2.properties到/usr/local/www/conf下
编辑worker2.properties, 依照示例进行相应设置, 主要是channel(端口要与Tomcat打开的AJP连接端口一致)和uri
编辑httpd.conf,添加语句LoadModule jk2_module modules/mod_jk2.so
启动Tomcat和Apache,测试。
2006年1月2日星期一
[转贴]2005年GIS技术盘点
内容不多,复制如下:
说实话,感觉这个题目很大,所以只是自己的一些看法。
2005年GIS界有一句话比较流行,叫做“GIS融入IT主流”,大概可以使用这句话来概括这一年的GIS技术发展。
超图在年初拿了国家科技进步二等奖,为GIS界露了脸,至少说明GIS软件在国内软件行业是一个亮点,这个亮点和诸如财务软件之类不同,不是因为政 策或者制度不同造成,更多是价格和技术原因,因此值得从业者骄傲。超图随之在全年有不少动作,诸如相关的GIS论坛、新品发布、GIS大赛等,我们看到 的,是一个渐渐成熟的商业公司。10月份,超图随着的新品发布,提出了共相GIS的概念,不管如何,对于缺乏创新的国内IT业,勇气可嘉,希望超图一路走 好。
据中国地理信息系统协会05年初的数据,国产GIS软件已占据半壁江山。是另一个好消息。
年中,Google Earth和Google Map API推出,一方面,使GIS和相关技术第一次真真切切的推向社会和日常应用,对于GIS普及,居功至伟;另一方面,也给所有的GIS软件提供商和有关人 员上了一课,告诉大家GIS软件还可以这样做,API还可以这样易用。年底,ESRI的ArcExplore开始测试,不管算不算是对Google Earth的回应,至少说明易用性,数据集成已成为GIS系统和软件的潮流。随之,国内的灵图也发布了51ditu的API。
2005是WebGIS红火的一年,随着google Map,Yahoo Map以及go2map的收购案,51ditu,MapBar,MapABC,新浪,baidu等都推出了地图服务(或者被大众所知),06年前仆后继的 应该还会不少,但个人认为,胜出的机会已经很少,毕竟公众地图服务不是技术的游戏,而是资本的市场。
年底,MapServer基金会成立,推出了MapServer Cheetah 和 MapServer Enterprise,后者是AutoDesk公司加入基金会后的开源产品。这2个产品的推出和产品化,对于GIS软件,特别是WebGIS的部署,应当 起到很好的作用,这是个人最愿意叫好的一件事(另一件是Google Map API),06年或许会看到不少应用。
2005,Web 2.0出尽风头,其中Google Map居功至伟(因为Ajax应用),那么,2006年我们是否会看到不少Ajax的有关GIS产品,现在明朗的包括ArcGIS Server的9.2版本,以及MapServer Enterprise(现有版本已包括基于Ajax的浏览器端)。不知道,2006年Ajax会给GIS带来什么,对于创业公司,也许意味着机会?
开源和免费渐渐成为软件和IT的主流的2005,不知道昂贵的GIS系统随着MapServer基金会,以及诸如GRASS,MapTools,GeoTools这些开源项目的努力,会不会有一个新的局面。
05年过得很快,至少对于自己是这样,写这篇东西时,已是06年的第一个凌晨,祝所有的从业者和将要踏入这个行业的学子们快乐。
2006年1月1日星期日
2006年的第一天。
没有什么特别的事情发生,心情也一样。
当然,每天的生活可能模式相同但内容一定会有变化的。
今天的细节变化就有很多:
比如终于加班加点看完了连续剧《欲望剧情妻》,一部悬疑+搞笑+生活哲理的美国生活片,容纳了各种各样的爱情、家庭、邻里、友谊、工作中的冲突,些许夸张的幽默的冲突解决方法,以及连贯而又巧妙的叙述方式...不错,只是占用了我不少时间。:(
比如借助邮件列表和论坛,终于解决了使用ka-Map的CVS版本中遇到的无法显示地图的问题。
比如我需要了解一下setTimeout和setInterval之间的区别(about.com站点中有很多资源不错):
setTimeout在指定间隔时间触发指定函数后即终止,仅触发一次;而setInterval则在未收到结束信号之前不停地按照间隔时间触发指定函数,也许函数没有执行完毕即进入下一个循环。
宁愿这样一个人或忙碌或安静地度过所谓的节日。
即使节日不属于我,但假期属于我。:)
