来来,一起分享Java的乐趣吧....
卓而不凡.你我他的JAVA
posts - 3,comments - 0,trackbacks - 0
1.不怕嫁老,就怕嫁小。
如果你的男友只有二十几岁或十几岁,你可以失身,但不能嫁。男人三十三岁左右是个不错的年纪。

2.嫁有钱的还是没钱的?
 嫁愿意为你花钱的!
3.离婚的男人嫁不嫁?
 离一次婚的男人是块宝,离两次婚的男人是根草.
4.嫁事业型的还是家庭型的?
 笼统而言:家庭型的。
5.嫁什么性格的人?
 嫁人嫁的是性格,其他的一切都会离你远去,相似的性格好过互补的性格。
6.嫁人要不要占星问卜?
 要!最好找人问一下掌相、面相和八字。如果你做不到,那至少应该深入了解他的血型和星座。有人管这叫"迷信",但"迷信"这东西很神奇。
7.什么样的男人是大忌?什么样的男人是大男人?
 自私的男人是大忌,有责任感的男人是大善。
8.北方的男人好还是南方的男人好?
 北方的嫁北方的,南方的嫁南方的
9.花心的男人嫁不嫁?
 男人是多偶制动物,没有不“花心”的男人,但有“有自制力”的男人.
10.门要当,户要对。
 其实这一句话把所有的都概括了。老祖宗的话简练精辟。呵呵,年轻时不懂事,觉着这是瞎扯。现在想来这老祖的经验不能不听啊,说的真是在理儿。老祖宗还是厉害啊。咱是越大越看的清楚喽!好事儿啊,呵呵,环境造就人嘛!门不当,户不对,自然也就不是一路人。
11.嫁个有学问的还是没有什么学问的?
 嫁要嫁个和自己差不多的,不能嫁一个你大学,他小学的,要这样的话,我保证以后都没有什么共同语言。以前我还不信这个,现在我是倍儿相信。不是看不起那些学历底的人,但是有的时候他们的思维方式就是个你不一样,很多话理解也和你相差甚远。你解释也没有用,他还是用他的思维方式和你说话,永远上不了该上的台阶。
posted @ 2006-04-16 14:27 寂寞河 阅读(212) | 评论 (0)编辑 收藏
呵,新年好,新年好,在此预祝大家过个好年, 并祝愿来年丰收,多收他个三五斗
文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=71
posted @ 2006-04-08 12:01 寂寞河 阅读(32) | 评论 (0)收藏

经历了打仗拟的一天,终于带着仅有的一口气回到了广州.

站了尽16个小时的火车,全身上下,骨头都感觉散了架似的,下了火车,赶到了家,冲了个澡,一头便倒在床上!呵.今天中午炖了一只老母鸡,大补了一下,感觉整个人只剩下半条命了...

新一年了,继续努力.....


文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=72
posted @ 2006-04-08 12:01 寂寞河 阅读(29) | 评论 (0)收藏
祝大家新年快乐阿,在狗年里,旺,旺旺,旺旺旺!!!
文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=73
posted @ 2006-04-08 12:01 寂寞河 阅读(26) | 评论 (0)收藏
     就在一年以前,手机病毒似乎只是实验室研究人员试探性的担心,一个没有多少黑客会涉足的领域。但现在,移动客服大量的用户报告,豪门希尔顿家族美少女手机被黑,­艳情照片的公开,不得不提醒人们注意,小心提防自己手机。

  据悉,到目前为止,已经被确证发现的手机病毒已超过126种,并且以每周1~2款的速度加速增长。下面将为您介绍几种典型的手机病毒。

  首先,要提到的就是著名的Cabir病毒。Cabir(卡比尔),由国际病毒编写小组"29A"编写,并于2004年6月发布的一款概念验证性(proof-o­f-concept)病毒。

  这是一个通过蓝牙传播的蠕虫病毒,感染了Cabir的手机会不停地搜索周围的开着蓝牙的目标手机,一旦发现便不停地发送蓝牙请求,直到目标手机接受请求或者离开­蓝牙的传播范围。感染了Cabir的手机由于不停的进行蓝牙搜索,发送蓝牙请求,导致电量很快消耗殆尽。由于Cabir不断发送蓝牙请求,目标手机除了回答"是­否接受请求"外其他的都做不了。在某种意义上具有"拒绝服务"的效果。

  Cabir的出现,虽然不会给手机带来严重的后果,但是它却标志着手机病毒不再是虚无缥缈的想象。

  一种名为Skulls病毒会取代系统文件,让应用程序的图标变成骷髅图标,并且让除了电话接听和应答之外的应用程序均不能正常使用。

  该病毒把自己伪装成一个桌面主题文件Extended
theme.SIS,作者名字为Tee-222,(变种Skulls.D把自己伪装成Macromedia的Flash播放器),一旦用户安装了病毒文件,则病­毒会用同名文件替换c盘下的原始文件,切断图标和正常应用程序的关联,使应用程序无法运行。

  再来看看Commwarrior,它也是一种蠕虫病毒。当Commwarrior感染了手机时,它会搜索附近其他蓝牙设备,将感染的病毒文件(sis安装包)发­出去。Commwarrior发出去的病毒文件是随机命名的,因此,不能通过给定文件名来警告用户。除了通过蓝牙传播以外,Commwarrior还会从用户的­本地电话簿中读取电话号码,然后通过彩信发送包含了Commwarrior的病毒文件。该病毒的作者定义手机本地时钟的8∶00到23∶59通过蓝牙传播,而0­∶00到6∶59则通过彩信传播,而这些彩信传播都是会收取费用的。

  Commwarrior.C是Commwarrior的变种之一,当感染手机时,它会将操作者的标识改为自己的。这个行为已在 Nokia
6600上观测到,标识被换成"Infected by Commwarrior"。

  当用户回复新的SMS或MMS信息时, Commwarrior.C将使用手机浏览器开启一个网页,。

  也许您已经注意到了,就我们介绍的这三种病毒已经从单纯的概念展示发展到破坏数据,造成大量经济损失,从简单的蓝牙攻击,发展到可通过彩信,GPRS网络传播等­。事实上,Doomboot和Fontal病毒会让您手机重启后无法开机,Lasco病毒会既通过蓝牙感染,又通过文件感染进行传播,Cardblock病毒会­给您的MMC卡设定一个随机的密码进行锁定……然而,令人担忧的是,我们所提到的这些手机病毒仅仅是冰山一角。

  从手机病毒的整体发展来看,可分为3个阶段。

  第一阶段是2000年至2004年,即短信病毒阶段。

  该阶段病毒均是利用普通手机(非智能手机)芯片中固化程序的缺陷,通过网络向这些有缺陷的手机(西门子35系列)发送特殊字符的短信,当用户查看这些短信时就会­导致固化在手机中的程序出现异常,从而产生各种如关机、重启、删除资料等现象。

  世界首例手机病毒"VBS.TimoFonica",2000年6月发现于西班牙。该病毒会通过运营商的移动系统向系统内任意用户发送辱骂短信。而我国2002­年发现的"洪流(Hack.sms_blood)"病毒,则会使浏览恶意短信时自动关机。

  第二阶段是2004年后至今,诱骗型病毒阶段。

  应该说通用的智能手机操作系统的出现,是该类型病毒出现的前提条件。该类型手机病毒利用智能手机操作系统开放的接口编写病毒,然后利用人们的好奇心或信任来(或­者说是利用社会工程学)达到广泛传播的目的。

  上面我们介绍的及提到的Cabir,Commwarrior,Skulls,Doomboot等都是诱骗型病毒。虽然他们表现形式、破坏能力各异,但它们都是需­要经过人们的确认才能进行安装的。

  值得一提的是,这些病毒都是需要在智能手机上才能进行传播的。目前市场上的智能手机有四种操作系统:Symbian、Windows
Mobile、Palm和Linux。其中,Symbian占据大部分的市场份额,基于Symbian的病毒也是最多的。

  第三阶段是漏洞型病毒阶段,这是手机病毒的未来发展趋势。

  漏洞可以是智能手机操作系统的漏洞,也可以是网关服务器的漏洞,再加上手机操作系统升级打补丁相对困难且危险,该类病毒将危害性更大,影响面更广。"震荡波"病­毒的迅速传播以及此前出现的"冲击波"等蠕虫病毒的肆虐,就是利用了计算机操作系统的某个小漏洞,而导致了长时间、大规模的网络瘫痪的。目前,利用漏洞的手机病­毒尚未出现,但是形势不容乐观,现在已经出现了有关WinCE的缓冲区溢出漏洞的报道。

  手机病毒会产生哪些危害呢?

  对个人而言,它可能会造成您经济损失,信用损失,设备和信息损失;对网络来说,它可能会造成网络瘫痪,网络事故,控制大量手机的病毒更可能进行政治攻击等。就像­没有任何一种药可以治疗所有疾病一样,在手机"世界"里也没有一种杀毒软件可以查杀所有可能出现的病毒。所以,在手机时代,无论你是否愿意,你都必须学会与"病­毒"打交道。

  "震荡波"病毒的迅速传播以及此前出现的"冲击波"等蠕虫病毒的肆虐,让不少人改变了对计算机病毒的看法。在这之前,许多人对计算机病毒都有这样的认识,以为不­接收陌生邮件、不上不健康网站、不运行盗版软件就可以远离病毒。其实不然,包括手机病毒在内的计算机病毒正在"得益于"网络的普及,特别是互联网和移动通讯、无­线通讯网络的发展由被动的携带传播向主动扩散传播转变。只要你接入网络,即使没有进行任何操作,也有可能被病毒感染。所以在网络和手机时代,任何使用电脑、网络­、手机的人都不可能避开病毒的侵扰。

  事实表明,防病毒并不再只是计算机专家的事情,任何与电脑、网络、手机等有计算机程序代码运行的设备打交道的人都必须具备基本的病毒知识和防病毒技巧,否则将随­时可能面临病毒的威胁而手足无措。计算机病毒的发展促使人们必须加强对新知识的学习与关注,因为在网络和手机时代,仅仅靠"洁身自好"已经远远不够,人们必须关­注自己是否已经受到了病毒的侵袭与干扰。

  相关链接

  主要防杀毒企业

  F-Secure Corporation

  F-Secure Corporation成立于1988年,总部位于芬兰的赫尔辛基,该公司是全球领先的IT安全产品研发公司,主要产品包括杀毒软件,网络加密,防火墙,反垃圾­信息软件等,其核心优势在于对新的安全威胁的快速反应。该公司于Cabir病毒被发现后即投入手机病毒查杀市场,现已经开发涵盖主要智能手机平台的手机安全产品­。现在全球超过50个国家设立分公司,尚未在中国设立分公司。

  Symantec Corporation

  Symantec 成立于1982年,总部位于加里弗尼亚的库帕蒂诺(Cupertino),是IT安全领域的老牌厂家,作为信息安全领域的全球领先厂商,赛门铁克公司为个人、中­小企业以及大型企业用户提供全面广泛的软件、设备及服务,以协助用户对其
IT 基础架构进行管理和安全防护。赛门铁克的诺顿品牌是个人用户安全和解决方案领域的全球零售市场领导者。该公司现已在 35
个以上的国家设有分支机构(含中国),并于1989年IPO上市,现有超过14000名员工。

  TREND Micro Corporation

  趋势科技成立于1988年,总部位于日本东京和美国硅谷,是网络安全软件及服务领域的全球领导者,产品涵盖桌面防毒到网络服务器和网关防毒。该公司目前在26个­国家和地区设有分公司,员工总数超过2000人,去年全球营业收入接近5亿美元,是一家高成长性的跨国信息安全软件公司,于2001年7月正式进军中国市场。趋­势科技分别在日本东京证券交易所和美国NASDAQ上市,并在2002年10月入选日经指数成分股。

  Kaspersky Lab

  Kaspersky Lab成立于1989年,总部位于俄罗斯莫斯科,最初是俄罗斯的大型计算机公司Kami的反病毒部门,1997年6月
Kaspersky Lab 公司正式成立。该公司现在已成为全球顶尖的杀毒引擎开发公司,同时近几年来推出自有品牌的杀毒产品,涵盖了从单机用户,到企业用户,直至网关安全的产品。该公司­现在包括中国在内的八个国家设立了分公司


文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=74
posted @ 2006-04-08 12:01 寂寞河 阅读(30) | 评论 (0)收藏

买手机的时候消费者经常遇到这样的问题,那就是手机型号太多记不住。有些时候知道品牌却搞不清楚型号,有时候知道型号又不知道品牌,那么各个知名厂商的手机型号-究竟是如何确定的呢,其中的奥妙如何?今天我们就为大家揭密。
   如今市场上国外品牌大致有MOTO、索爱、西门子、诺基亚、三星和LG几个,它们的手机也是数不胜数,我们现在就来分门别类的将它们缕出头绪来。

LG手机型号解析
首先说说来自韩国的品牌LG最近也因为韩流在中国市场叱咤风云,比起三星,它们的型号划分更加简单明了:
  B系列:低价手机;
  W系列:支持WAP上网的中端手机;
  G系列:支持GSM/GPRS网络的产品;
  C系列:支持CDMA 1X网络的产品;
  U系列:UMTS,3G手机;

摩托罗拉手机型号解析
  用价格来划分MOTO的手机型号似乎不太合适,因为最近MOTO手机频频推新,所以价格的划分尺度也已经成为老皇历了。我们总结了以下的划分方式:
  A系列:总是领先潮流的、令人期待的、外观迷人的、技术领先的款式,例如智能手机A830,A925;
  T系列:总是处于流行前沿,实用的、功能丰富的款式,例如T720i;
  V系列:价格公道的翻盖手机,样式比较流行,功能合理的款式,例如V303;
  C系列:样式比较酷,价格低的款式,例如:C200;
  E系列 :注重娱乐功能,面向年轻群体的款式,例如:E365,E398;
  另外,MOTO还将在今年推出两个系列的新品,它们分别是R系列和S系列 .
  R系列:流行的功能,革新的设计思维,非同寻常的设计就像以前的V70一样,例如未来的R800;
  S系列:智能手机,技术先进的手机,可能是MOTO转投微软的第一代产品的代号;
  还有个MP系列,很强的一个系列......如MPX,MPX220;

索爱手机型号解析
索爱是目前市场上最受欢迎的品牌之一,由于这个品牌的年龄不大所以型号划分也相当好记,基本上是T、P、S、Z四大家族。
T系列:基本型手机,价格涉及低中高端,是索爱主要的型号,例如:T102(低端)、T68ie(中端)、T618(高端);
P系列:智能手机,采用了先进技术的款式,例如P802;
S系列:高端拍照娱乐手机,例如S700c;
Z系列:流行的样式,功能时尚的翻盖手机,例如Z208,Z608;
W系列:索爱的Walkman音乐手机系列,如W800c;
K系列:主流拍照手机系列,如K700c,K750c;


西门子手机型号解析
 西门子手机的型号划分也是相对固定的,它们最近的多款新手机的热卖也让西门子又一次成为了热点,我们非常有必要了解一下它的型号划分原则,看看究竟哪一种才是适-合自己的。

A系列:低价手机,例如A65;
C系列:中端手机,例如C65;
M系列:适合户外的手机,设计特别,价格中端,当然也有时尚因素加入其中,例如M55;
S系列:商务手机,例如S65;
SL系列:绝对时尚手机,例如SL55;
SX系列:智能手机,比如SX1;


诺基亚手机型号解析
诺基亚是手机市场的大哥大,最近它们的手机型号丰富了许多,划分也复杂了,特别是CDMA手机问世以后诺基亚的型号简直可以出一本字典了,我们这里只能将我们了-解的告诉给消费者,下面我们提到的诺基亚型号划分仅限于在GSM网中
既然是对诺基亚的型号系列的分析,那么我们先从各大系列上来说,诺基亚根据型号字头的不同,分成九大系列:

很难用一个具体的名称来说明,只能说是低端系列;
同上,入门级手机的低端系列;
真我个性系列;
未有机型,曾与网友讨论过,比较统一的观点是说4系列是诺基亚留待将来研发的一个特殊系列;
运动活力系列;
商务精英系列;
时尚先锋系列;
尊贵典雅系列;
个人助理系列;
特殊系列;


下面把每个系列的全部机型列出,(模)指模拟网手机,(C)指运行网络为CDMA95/CDMA1X网络的机型,(3)指3G手机,无此三者符号的则是使用GS-M网络的手机:


1:1100  1108  1610;
2:232(模)  2100  2112(C)  2280(C)  2300  2600  2650
3:3100  3105(C)  3108  3120  3125(C)  3128  3200  3210 3220  3230
3300  3310  3315  3330  3350  3355  3410 3510  3530  3560  3610  3650
3660  3810;
5:5100  5110  5110i  5140  5210  5510;
6:6020  6100  6108  6110  6150  6170  6200  6210  6210+ 6220  6225(C)
 6230  6235(C)  6250  6255(C)  6260 6310  6340  6500  6510  6600  6610
6610i  6630(3) 6650(3)  6670  6800  6820;
7:7110  7200  7210  7250  7250i  7260  7270  7280 7600(3)  7610  7650
 7700(取消上市)  7710;
8:8110+  8210  8250  8310  8800 8810  8850  8855  8910  8910i;
9:9110  9210c  9300  9500;
ETC:N-Gage,N-Gage QD,N70 90 91;


首先是1系列,1系列只有三款机型,且配置全是单色单音铃声的,是低端系列。


2系列,有一款特殊的232,它不是GSM也不是CDMA网络的手机,它是一款上个世纪的模拟网机型,现在非常罕见。同属低端系列的2系列里也是单色屏的机居多-,不过2004年诺基亚发布了两款新型号:2600和2650,都是
4096色彩屏,所以2系列为适应市场整体的需求,逐渐淘汰单色机型,低端机也要迈入彩屏阶层。


3系列,真我个性系列。看名字就知道这个系列是为年轻人而准备的,事实也如此。无论是卖的满堂红的3100,还是个性新宠3220,无一不秉持着此系列的精神。-此系列的特点是:造价普遍较低,配置处于诺基亚整体的中低端水平。为了节省成本,外形用料较一般,塑料感强。需要指出的是,3系列在02年以前还只是低端系列的-一员,所以有着经典的单色机3210、3310等。从02年开始,就向着时尚新潮的年轻人市场转型了。从3530开始,这种趋势就出现了。到如今的3100、3-220更是基本上为3系列定型了。另外,3系列不乏少数的高端机型,3650、3660这两款智能手机就是。我个人理解是:智能手机主要集中在6系列和7系列。-而这两个系列一直以来的外形都是比较内敛,含蓄的。所以3系列就为智能手机提供了一个大胆展现个性外形的舞台,3650就是这样一款典型的话题之作。如今,搭载-百万象素摄像头、采用Symbian
OS**作系统、S60人机界面的3230也已发布了。又将为3系列增添一名猛将。


5系列,运动活力系列。有人说是功能手机系列,的确,5系列里机型虽少,但是款款个性独特,兼有特殊功能。5系列最早的5110就是如此,它是诺基亚里第一款可-换壳的手机,在那个年代恐怕极少机型拥有这个功能。后来的5510,经典的音乐手机。内有播放器可以播放大型声音文件让手机听音乐成为可能,可以作易用便捷的移-动硬盘,独创Qwerty全键盘。这些都是当时让人眼晕的功能。可以说5510是5系列里最特殊的一款。5210,有着三防功能,为它增添了运动的气息。510-0,5210的升级版,保持有三防功能的同时搭配上更为先进的S40的人机**作界面及S40系列的实用功能,是03年诺基亚一款极为特殊的机型,直到如今也很-有市场,喜好三防机的机友们对它十分熟悉。5140,
04年的诺基亚大作之一,继承优良的三防功能,还有一系列的运动及野外活动的辅助功能。指南针、温度计、分贝计,还有搭配上特殊外壳后的GPS定位系统等,不一-而足。可以说5140是目前最能体现5系列精神的机型,是一款非常不错的运动手机。


6系列,商务精英系列。关于这个系列各位看客比我更有发言权。诺基亚的招牌系列,许多经典就诞生在此。上世纪90年代末的经典商务机"变色龙"6110,另一款-经典6210,中档实用机型经典6610,诺基亚第一款3G手机
6650,第一款使用65536色屏幕的手机胖子老六6600...太多了说不完。6系列不仅体现出一种成熟的味道,更为成功人士多增添一份魅力。6系列也是软-件最为成熟,功能搭配最为好的中端以上的系列。将来诺基亚的智能手机主要将在此处诞生。


7系列,时尚先锋系列。这个系列虽然机型不多,但是款款都是极具特色,让你过目不忘。其造型以时尚著称,诺基亚在国内的第一款WAP手机7110的下滑盖造型不-可为简单二字所能概括。及至而来的7210更是S40机型里的一朵奇芭,那充满灵感的键盘先不论其易用性如何及是否符合人体工程学,光是V字型按键的创意就值得-一赞。7650,诺基亚第一款内置摄像头手机,智能手机的先锋,创意的下拉键盘,此机之经典就不用我废话了。诺机第一款百万象素摄像头手机7610,从它的造型-就能看出绝对是手机中的艺术品。由它衍生出的7260、
7270、7280更是把复古典雅的红白黑三色搭配继续发扬。7280更是又一款艺术气质极高的手机。还有目前诺基亚吸引眼球最多的多媒体霸王--
7710,更是顶替了它那不幸流产的前人7700,成为智能机机友的绝对话题。7系列相当于诺基亚的一块试验田,很多新创意新思想的花朵都是在7系列这块土壤上-率显焕放的。


8系列,尊贵典雅系列。此系列机型不多,但亦极具特色。系列里的机造型独特,外壳用料考究。经典的8310,外观精致,小巧易用,还是诺基亚第一款支持GPRS-的手机。8810,诺基亚首创的经典的下滑盖造型,分量十足的全金属外壳。它后来的传人8850、8855将其尊贵精神发扬光大。轻薄小巧的8210、8250-,这两款可是诺基亚低端市场的中流砥柱,及至现在还有不少人喜欢。最后不得不提的8910,首创按机身侧键来自动升起机身及键盘,钛金属外壳。无一不在向世人散-发出它王者的气息。


9系列,个人助理系列。这个系列是通讯器与PDA功能的结合,系列机型都是如同笔记本电脑一样的造型,强大的个人信息管理功能,让商务人士如虎添翼。此系列在中-国的货很少,配置是前列的,而价格也是昂贵的。目前的最新型号是9500。


    特殊系列,目前有两款,N-Gage和N-Gage
QD。不以数字来作型号,以较为动感的英文字母和易上口的英文发音作为它们的标记。这两款都是游戏手机,是诺基亚的奇兵,N-Gage虽然不成功,但其意义是很-大的:第一款真正的游戏手机。而QD则是一记杀着,诺基亚目前与国内一知名游戏公司合作为其作宣传。诺基亚吸取了N-Gage的教训,QD在游戏性方面已改善许-多,更符合它游戏手机的定位。而且性价比突出,2300多元的一款S60人机界面的智能手机,吸引力十分大。QD必将成为一款经典。


说完九个系列的大体分析,是时候来说一下型号的细节了。诺基亚为每一款机命名时不是随随便便的,而是遵循了一定的命名规律,我们可以从某些机型中看出一丝端倪来-。为方便起见,下面用X、Y、Z来代表数字:
型号是XX00的,比如3300、6600、不幸流产的7700。这些都是该系列中极具特色的、功能集大成者的机型。3300,是定位明显、极有魅力的
MP3音乐手机。6600更是一款无需多言的经典。目前8系列还没有8800这样一款机,估计8800会是一款霸气十足的机。


型号是XY00的,比如2100、3100、3200。这些机都是该系列的主打机型。诺基亚第一款GSM折叠机7200就是一个例子。其中尤以X100的机型更-为重要,X100的定位就是在其系列里的主力机型。观察这几款X100的销量就能看出,事实的确如此,X100一类的都是销量非常稳定、口碑非常好的机型。它们-是诺基亚攻占市场份额的主力。


型号是XY10的,比如3210、5510、7610、8810等。则多数是有着诺基亚某样新功能或是具有创新意义的手机。比如说3210是诺基亚首款内置天线-手机。很多新功能和新思想,就是在XY10机型上首先向世人展现的。尽管
XY10的机型总体上不能说非常成功,但是作为新思想的先驱者的它们,其功绩是不会被遗忘的。


型号是XY20的,比如3120、3220、6820等。这些机则一般是以与它型号XY位置的数字相同的机型为基础,较之前者完善和成熟的机型。比如3120基-于3100,3220基于3200。3120继承了3100的性能,换成了镀铬银感的外壳,被称为适合年轻商务人士使用的3100。3220有着3200的功能-和特性,比如可以随心换插片,而且还用上了诺基亚首创的Light
Message"闪信",成为时尚弄潮儿的又一得力助手。

型号是XY30的,基本上都是对在它之前的XY00机型的一个成熟完善的总结。比如3230、6230、6630。看了某杂志的文章,说6230如同是诺基亚的-T618,说的很对,在非智能手机里6230的功能是最强的了--除了屏幕。6230绝对是04年6系列的强者,在市场上也是一款热销机型。3G手机6630则-是目前诺基亚的最强之一,每一项配置无一不是最前列。而3230在以独特造型继承了3系列的个性风采外,加入了智能**作系统的它也让3系列机型的功能丰富起来-。

 型号是XY40的,不多,只有两款:5140,6340。

型号是XY50的,多数是在自身系列里功能较强大的手机,有部分是智能手机。比如7系列里的贵族7250,还有3650和7650这两款,智能手机双雄的大名人-人都晓。另外据网上消息所称,诺基亚将在久未出新机的8系列里发布一款"8650",而且是智能手机。期待它的到来。

    型号是XY60的,多数是智能手机。比如3660、6260。

型号是XY70的,一个新的型号字尾,目前有6170、6670、7270三款。是对其同系列机型市场划分不同的一个补充或是另一方面的诠释。比如6670相对-于6630,功能稍微简化一些,形成另一档次的选择。7270相对于
7200,保持折叠机的外形,改善了屏幕,增加了一些功能,重要的是7270的外形是走复古典雅风格而不是7200的时尚风格。


型号是XY80的,如果除去CDMA网络的2280不算,那么它又是一个新的型号字尾。目前只有一款:7280。如同口红的造型,无键盘设计,红白黑三色复古典-雅风格。绝对让人眼前一亮。
    型号是XYZ2的目前只有一款:2112,是CDMA手机。
型号是XYZ5的,除了3355、8855还有6255外,它是XYZ0机型的采用CDMA网络的另一版本。比如3105相对于3100,3125相对于312-0,6225相对于6220。通常CDMA版本的功能会和它GSM版的兄弟有一点点的不同。比如3100是4和弦的,而3105就是16和弦的。

型号是XYZ8的,可以看成是其XYZ0机型的一个变种。比如6108相对于
6100,3108相对于3100,突出的是多了手写输入这个功能。这两款8数字结尾的机似乎是特别针对华人习惯于手写输入汉字而设计并在华人地区上市的。还有-就是1108相对于1100,把1100的绿色背灯换成了白色的,成为1108。

型号最末添上一个i的,则是其无i机型的升级版本。比如6610i对应6610,增加了一个内置的11万象素摄像头,机身容量也扩展到了4M,为摄像头的拍照所-得提供了储存的空间。再比如8910i对应8910,屏幕换成了4096色的彩屏,而且增加了对MMS彩信的支持。

型号最末添上一个c的,只有一款9210c,我想这是相对于9210来说的。在中国大陆上市的就是9210c,加了个c代表这款9210c是9210的中国大陆-行货版本。类似于索爱的K700i和K700c的区别。

型号最末添上一个+的,有一款6210+,相对于6210。看起来除了手机的体积和通讯录数目略有不同外,没有什么太大的差别。


三星手机型号解析
  三星是年轻人非常喜欢的品牌,在中国大陆市场一直销量惊人,那么它的型号究竟是如何定的呢?
A系列为折叠手机系列,型号主要有SGH--A188、SGH--A288、SGH--A308;
  N系列的发布略晚于A系列,N系列为翻盖手机系列,在后期产品中也出现了少见的直板机型。型号有SGH--N188、SGH--N288、SGH--N628、-SGH--N299;
  M系列为MP3手机系,2000年最值得提到的三星手机要数SGH--M188了;
  R系列为低端直板机系列SGH--R208是三星手机中第一款直板机;
  Q系列是专为行政人员量身定做的灰度屏幕系列有SGH--Q108、SGH--Q208等,不过名气还赶不上三星的A系列和N系列,市场反应一般;
  T系列为GSM彩屏折叠系列,最早掀起彩色屏幕的波澜,大家广为熟悉的SGH--T108、SGH--T208、SGH--T408、SGH--T508便属于-这个家族,因为属于彩屏初期,该系列还没有涉及到摄像功能;
 S系列为商务手机系列,在其它系列型中没有出现过的高级商务功能都会在这系列中出现。型号有SGH--S108、SGH--S308、SGH--S508;

E系列手机,这个系列手机依旧秉持着三星做工精良,价钱中高端的特点,如最早的连拍手机E708,并且该系列在外观上非常具有杀伤力,如定制手机E108,而且-在这个系列中也经常在外型上给予人们很大的惊喜,如滑盖手机E808;
  X系列起初是基于CDMA
1X网络的手机系列,作为专门针对CDMA2000
1X技术而开发的X系列,是目前三星的新兴代表产品,有SCH--X199、SCH--X209、SCH--X319。后来在GSM网络中的产品中也收罗着直板-机型,主要针对年轻朋友,而且在这个系列的GSM手机大多非常亲民,价格并不如三星一贯那么高,X108、X608,以及后来针对年轻消费者的
X458也都非常时尚;
  D系列作为三星今年新近推出的一个系列,更是体现出三星一贯的高端,"D"是
"DELUX"的缩写,是豪华、华丽的意思,D系列先发D108没有配备摄像头在刚上市时便可以卖三千以上,足以验证这个系列的豪华,而后续赶来的
D418更是以近六千的价格,26万色屏幕、64和弦加滑盖设计奢华的外型,更是震撼整个手机市场;
  在看过我们的介绍以后您是否对各个品牌手机的型号划分有个大致的了解了呢?在购买手机之前我们可以根据这些划分标准选择型号,同样如果看上哪个型号的手机也可以-根据上面的原则推断出这款手机的定位,这样可以对手机购买起到一个指导作用。


文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=75
posted @ 2006-04-08 12:01 寂寞河 阅读(27) | 评论 (0)收藏

2005年12月22日下午,《2005~2006中国互联网产业调查报告》正式发布,中国互联网首次"品牌50强"、"创新50强"正式诞生。
 本次报告的主办方为中国互联网协会,赛迪顾问、IDC中国、艾瑞咨询、易观国际四家为协办单位。从2005年6月开始,到2005年12月中旬调查结束,共有超-过230家支撑网站,调查访问主战访问量10多万人次。

2005-2006年度中国互联网产业调查品牌50强(TOP50)


1 门户网站 第一名 新浪
2 搜索引擎 第一名 百度
3 即时通讯 第一名 QQ
4 电子邮件服务 第一名 网易
5 本地化综合资讯 第一名 上海热线
6 房地产网站 第一名 搜房网
7 财经网站 第一名 新浪财经
8 汽车网站 第一名 新浪汽车
9 新闻网站 第一名 新浪新闻
10 信息科技网站 第一名 天极网
11 C2C网上购物 第一名 淘宝网
12 B2C网上购物 第一名 当当网
13 B2B电子商务第一名 阿里巴巴
14 网上银行 第一名 中国工商银行
15 电子支付 第一名 支付宝
16 人才招聘网站 第一名 前程无忧网
17 交友网站 第一名 腾讯QQ
18 游戏资讯服务网站 第一名 搜狐17173
19 游戏运营服务 第一名 腾讯QQ
20 综合音乐网站 第一名 A8音乐
21 音乐搜索服务 第一名 百度搜索
22 在线影视网站 第一名 互联星空
23 女性网站 第一名 瑞丽女性网
24 健康网站 第一名 三九健康网
25 教育网站 第一名 搜狐教育
26 娱乐网站 第一名 新浪娱乐
27 体育运动网站 第一名 新浪体育
28 文学网站 第一名 榕树下
29 艺术设计类网站 第一名 中国摄影在线
30 网址导航服务 第一名 HAO123
31 软件下载服务 第一名 华军软件园
32 P2P服务 第一名 BTChina
33 教程资料服务 第一名 洪恩在线
34 广告联盟服务 第一名 好耶广告网
35 网上黄页服务 第一名 中国网上黄页
36 地图信息服务 第一名 百度地图搜索
37 博客网站 第一名 博客网
38 SMS(短信)服务 第一名 新浪
39 MMS(彩信/彩e)服务 第一名 空中网
40 手机WAP站点 第一名 移动梦网
41 彩铃服务 第一名 新浪
42 声讯(IVR)语音服务 第一名 TOM
43 手机游戏的提供商 第一名 空中网
44 域名、主机等互联网基础服务 第一名 中国万网
45 互联网接入 第一名 中国网通
46 网络安全产品服务  第一名 瑞星
47 IP电话服务 第一名 中国电信
48 旅行预订网站 第一名 e龙网
49 动漫卡通网站 第一名 闪客帝国
50 综合社区 第一名 猫扑

2005-2006年度中国互联网产业调查创新50强(INNOVATOR50)


盛大 综合创新
网易 综合创新
TOM 综合创新
EBAY易趣 综合创新
空中网 综合创新
ChinaVB 综合创新
263网络通讯 综合创新
中华网 综合创新
搜狐 综合创新
金山 综合创新
华友世纪 综合创新
中国搜索 综合创新
IT168 综合创新
第九城市 综合创新
赛迪网 综合创新
中国电信黄页 综合创新
北京骏网 综合创新
掌上灵通 综合创新
焦点网 综合创新
慧聪网 综合创新
YeePay电子支付 运营创新
天涯社区 运营创新
中国汽车网 运营创新
卓越网 运营创新
ChinaPay 运营创新
奇虎qihoo 技术创新
CSDN 技术创新
数位红技术创新
游戏米果技术创新
蓝汛科技 技术创新
金融界 管理创新
智联招聘网 管理创新
天天在线 管理创新
网银在线 管理创新
中商网 管理创新
浦东发展银行 服务创新
天下互联 服务创新
摩网 服务创新
265上网导航 服务创新
新网互联 服务创新
和讯 互联网2.0创新
Blogcn 互联网2.0创新
ChinaBBS 互联网2.0创新
爱国者音乐数码网 互联网2.0创新
DoNews 互联网2.0创新
xplus 互联网2.0创新
亿友 互联网2.0创新
土豆网 互联网2.0创新
周伯通 互联网2.0创新
Mysee 互联网2.0创新


以下为05-06年度中国互联网调查特别关注企业名单:
IT世界网
Zcom互动电子杂志
互动出版网
去哪
UUSee
cgogo
Gougou
全搜
uuzone
mofile网络硬盘
天际网
风网Fon-et
新网
万蝶移动博客
游易网
第一视频
大众点评网
爬狗
全球制造网
PCPOP。


文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=76
posted @ 2006-04-08 12:01 寂寞河 阅读(32) | 评论 (0)收藏

今年是我大学毕业满10年的日子,也是我投身it技术的第10年。一直想能对过去的经历做些回顾与反思,以更好地走向未来,但总没有笔。刚好csdn举办“讲述程序员的故事”征文,这件事成了一个引子,我终于趁着暑期有时间,敲了一天键盘,便有了这篇人生自述。
10年对于一个人来说是比较长的一个阶段,10年之后,同期大学毕业的同学情况差异之大,让人叹息命运之变幻莫测。

我在此记录下了我的生活足迹,由于时间较长,有些事记得不太清了,但我是尽量真实的记录当时的情况,有兴趣看我这篇长文的人请把我看成是一个在你我中间一块生活,一起喜怒哀乐,一起努力的平凡人,相信我们之间会有很多跨越时空的情感交流。
好,就说到此吧。


从1994到2003,不知不觉之间,我已在计算机技术的世界里沉浸了十年。有位哲人说过:如果一个人能用十年的时间专心致志地研究一门学问,或学习一门手艺,或从事一个职业,他一定能成为这个领域的专家。我天资平庸,但哲人的话是有道理的。我用十年的时间先成为了一名合格的程序员,再成为了一个重点大学计算机专业的大学教师。十年磨一剑,蓦然回首,年华如水,青春如歌!

我父母都是城市中的平民,家境仅能解决温饱,我想我可能代表了中国社会的一大类青年,我的经历与体会可能会对许多条件并不好的年青程序员有所启示:只要努力,天资差与环境不好都是可以克服的。因为我不是牛人,所以我不能教你如何成为牛人,我只是尽量真实地写下我的经历与感触,写一个平凡人的努力过程。我为我是一个软件开发者而自豪,为我从事的教书育人的事业而自豪,并愿意为中国落后的软件业尽己菲薄之力,为此,我人生无悔!
我想分为三部分讲述我的人生经历:上篇:学习人生:主要是我学习计算机技术的经历与感触,时间跨度大约是从1994~1996年;中篇:艰难人生:主要是我流迹社会,失业一年半,三次考研的痛苦经历;时间跨度大约是从1997~1999年;下篇:实践人生:主要是我的技术实践经历:在公司打工,开发软件,毕业求职与教书生涯,时间跨度是1999~2003。
 
  一 计算机是什么东西?
我是七十年代初在中国出生的那一代人,等我们长大开始读书时,文革已经结束,相对于我们的兄长,从我们这一代开始,以后出生的孩子都能受到较为正规的教育,这是我们幸运的地方。

也就是我们上小学的时候,七十年代末,以美国为技术资源中心的计算机技术开始在全球范围内迅猛发展,这时正是世界性的“软件危机”极为严重的时候,计算机技术各方面都在酝酿着新的突破,而此时比尔盖茨也正在准备构建他的明日微软帝国。
七十年代末与八十年代初,在我们的生活中,看不到一点计算机技术的影子,刚刚改革开放的中国,99%以上的人连“计算机”这个词恐怕都没听说过,中国游离于信息技术大门之外。
在“振兴中华”成为时代主旋律的八十年代,整个中国真的是呈现出一种勃勃的生机,这是一个民族在经历百年耻辱,十年挫折之后的再起步,象一些老歌---《金梭与银梭》,《在希望的田野上》等,就是当时青年的一种积极向上的精神风貌的体现。这种环境下,对于正在成长中的我们这一批少年,在潜意识中有极为深刻的影响,我们认为爱国与振兴中华是天经地义的事,并且成为了努力学习的主要动力(呵呵,现在的一些“愤青”---愤怒青年一定会说我们当时被“洗脑”了,也许真的是吧,这种信念确实会给人以极大的动力,我看不出有什么不好,至少我不会有现在这一批青年所经历的非常迷茫的感觉)。
1986年我考上了桂林市重点高中---桂林中学,在那儿,我第一次见到了电脑。

1.中学的计算机兴趣班

1987年我在桂林中学读高二,桂中是重点高中,条件较好,当时学校课外安排了两个班:无线电班和计算机班,我上的是计算机班,当时用的微机是apple ii,用basic编程。记得当时中国也开发了一种同档次的计算机,叫做中华学习机,要在中小学中大力推广,但apple ii后来发展成了著名的mac系列,并拥有了自己的操作系统,而中国的中华学习机,还有后来的小霸王等电脑学习机,都无疾而终了。
学校安排上机,有同学不知从哪找来了一些有趣的basic程序,什么“比翼双飞”,“飞机空战”等等,都是一些非常简单的小游戏,当时他抄了厚厚一本,一上机就敲一些到计算机中运行,而我是一点也不会,只有站在一边看的份。
那时会计算机的人很少,老师讲的我又不明白,考试的时候也不知道怎么过的。呵呵,后来我读研打工时,在网上看到洛阳一个高中生用vb编的一个“电子书童”程序,水平之高,我当时真是没法比。
1989年六四动乱,广西高考名额一下减了7000多,竞争激烈,十几人里才能取一个,由于压力过大,我高考前夕失眠,第二天考语文,120分的试卷当时只考了68分,因而与重点高校无缘。本想复读,但父母怕我来年考不上,一定要让我读广西大学,我万分不情愿地顺从了父母的意愿,去了我不喜欢的学校,读了我不喜欢的专业。男怕入错行,我在大学毕业后重新开始学我喜欢的专业,足足用了五六年的时间才转过来,真正成为一名合格的劳动者,走了一条长长的弯路,所以,父母的决定对缺乏经验与决断力的孩子而言,真的是非常重要。
现在想起来,父母当时没错,我也没错,那都是在时代与社会环境下的自然选择。

2.失败的四年本科与工作初期

作为六四之后第一批进入大学的本科生,我们学习了两年的“六四风波的反思”,四年里我是个老老实实的好学生,但四年除了玩命过了六级,什么也没学会。
记得大学第一节课就是basic语言,呵呵,也根本没学会,但我看来注定了要与basic难解难分了,后面的实践篇中我会讲我用basic开发的事。
大学里我学的专业是电力系统自动化,学过微机原理与fortran,上机时还用的是古老的主机加终端方式的计算机(叫做l/f机),我上机时真是一塌糊涂,因为这门课我从没学进去,也从没学懂过。有同学很厉害的,会用电脑打印出许多漂亮的图片(当然现在看起来很粗糙,针式打印机打的),我那时就称这些人为牛人了。
呵呵,我如果没记错的话,做超级解霸的梁肇新也是广西大学的,但不是我们系,记得我当时就已听到有关几个计算机牛人的事,估计其中就有他吧,如果我记错了,梁肇新先生请指正。在本科期间,我对电脑是神秘多于兴趣。这也说明我成为不了牛人与大师,天资有限。后来,我发现一个普遍的规律,如果能成为计算机方面的牛人与大师,请去翻翻他们的传记,绝大多数在本科期间就已展露出他们的才华。而我们现在的中国高校,这么多的本科生都在为考试、考研、考托、考g而奔忙,这种填鸭式的应试教育体制,扼杀了太多学生的创造性。结果是一个学生在大学里读得越认真,就受到的错误影响越大,我是用好几年的时间反思才得出这个结论的。所以,中国高校十几年数以几十万计的本科生中出不了可编写linux内核的杰出人才,一点也不奇怪。

1993年我毕业了,用我总结的一段话来说,是:
一张白纸进来,一脑浆糊出去。
毕业后我分到了一所号称是“中港合资”的生产蓄电池的公司,呵呵,刚刚工作的日子让我这个单纯的大学生被生活好好的教训了一下,许多无法以前想象的社会现象让我目瞪口呆,年轻气盛导致穿了小鞋,还只能忍气吞声。吃了生活的一个闷棍,我才明白,我除了有张文凭,什么都不是!
当时,我感到最郁闷的是我在公司里什么都不会做,一个电机烧坏了我楞不知如何下手修,公司老总办公室里的灯不亮了,学电的大学生我花了半小时楞不知原因在哪!我学的东西没一样能用的。开始我还以为是因为我在学校里没认真学,但后来问了很多同学,90%以上的都有同感,我现在终于认识到这不单是我个人的错,我自认为在学校中是很努力的,从未偷懒过,但如果90%以上的学生所学不能服务社会,这种教育体制一定存在问题。

四年里,我的电脑知识与技能=0!
现在看起来,我浪费了宝贵的四年光阴!但当时的环境与认识水平,也只能如此了,没有当初的浪费,怎有后来的珍惜?这是人生必经的一个阶段。
 


二 漫长的理论学习时期

1.从电脑培训班开始

我毕业后的第一个工作单位是一个非常差的企业,我在那儿见识了几乎所有中国差的企业的弊端:人浮于事,拉帮结派,暗箭伤人,损公肥私……。可以想见,在这样的企业工作,人是多么的颓废。我在无聊之中过了大半年的时间。1994年4月的一天我去桂林新华书店买书,看到桂林电子工业学院老师举办一个电脑培训班,教打字、排版、常用dos命令等电脑使用基础,反正也没事,不如上个班学点东西吧。不曾想就是这样一个培训班,却根本影响了我的人生之路。
我清楚地记得当我第一次上机时,连电脑开关在哪都找不到,老师拿着一张五寸软盘,插入软驱,打开电源,在一阵“吱吱”的声音之后,屏幕上开始有英文字符出现,然后,教师在键盘上敲入几个键,电脑沉默一会,突然在屏幕上跳出一个小人,出现一行字:快快乐乐学电脑,还传出了音乐。我当时真是惊呆了,电脑怎么还会唱歌?现在想起来,那个软件其实是台湾松岗系列教学软件,而我一个大学本科生,在毕业之后居然对电脑无知到这个地步,我真不知道是该哭还是该笑……!
俗语说:“一见钟情”。我是相信这种事的,因为就是这第一次上机,让我产生了搜索这一神秘世界的强烈兴趣,从此就再难与电脑分开了。
当时,有两位电子学院的老师:尹老师和陈老师。他们给我们讲dos,讲汉字输入,讲他们如何修改天汇汉字系统使它能在一张软盘上运行,讲打字排版……,一个月之后,我不满足,又学了一个月。
在上培训班的时间里,我向老师要来了桂林电子工业学院计算机应用专业本科四年的培养方案,回到家中,列出了所有本科课程,再根据书上的先修课程介绍,绘制了一张巨大的课程树,从树根开始,决定一本本地啃,从头开始学计算机技术。计算机科学的学习有较强的系列性,想一步到位很可能会学不懂,但循序渐进又无法跟上技术发展的速度,这是一个非常突出的问题。我现在想起来,觉得好的学习方式是:学理论打基础,在实践中逐步理解理论,多思多悟,就会发现层出不穷的新技术中有许多一直不变的东西存在。把握这种东西,就可以以不变应万变。这种“不变”的东西是什么?就是软件开发的基本原理与理论,基本思想与方法!在我对面向对象理论进行了较深入的学习与把握之后,我学.net只用了三个月的时间就可以独立设计一个完整的全面向对象软件架构,并且用vb.net与c#混合语言把它给做出来了。对于j2ee,我同样有这种自信,也用三个月的时间,一定可以开发与设计基于j2ee平台的软件,因为它们背后的计算机技术基础是一致的,完全可以触类旁通。
尹老师和陈老师可能不知道,他们开的一个也许是为了经济效益的培训班,最后居然培育出了一个计算机硕士!所以,作为一名教师,其责任真的是非常重大的,可能会影响学生的一辈子,我感激他们!

2.漫长而艰辛的学习之路
我当时每月只有一百多元的工资收入,把大半收入都用到买书上去了。电子工业学院门旁的那个科技书店,以及桂林科技书店,成为了我最常去“站读”的地方。我买了数据结构、操作系统、微机原理、ibmpc汇编程序设计,c程序设计……这些教材,就按照预定的计划开始学了。
我当时也说不清楚为什么要学这些东西,决不象现在学生学什么东西都有很强的功利性:学英语为了出国,学电脑为了好找工作。当时根本就没有想过今后如何如何,就是对计算机技术本身的兴趣推动我去学习的。
当时计算机书还不象现在这样扑天盖地,我几乎看完了我能弄到的每一本计算机书,看了一些书,就特别想有地方上机,能练一练。但我一个月一百多元收入,一台电脑怎么也得几千元,要五六年不吃不喝才攒够钱,父母都是普通百姓,家境仅能温饱,拥有一台电脑真成了我最大的美梦。
为了有机会上机,我这个脸皮极薄的人也会什么都顾不上了,带着一盒保存着各种软件的软盘,厚着脸皮到处找可能的地方上机。在这个时候,电子工业学院又一次帮了我,他们的机房管理得并不严,我就冒充是他们的学生去买机票上机。后来去得多了,那儿的老师都熟悉我这张脸了,但搞笑的是,居然没一人知道我是哪个班的!
当时电子学院用的局域网操作系统是novell,我在那儿学会了使用许多最基础的软件,现在仍然如数家珍:cpav,turbo pascal 5.5,ucdos,tway(天慧汉字系统),masm,turboc2.0,还有鼎鼎大名的norton公司的磁盘医生ndd,pctools,borland公司的最牛的常驻内存的软件sidekick,……
在电子学院机房,我还玩了经典游戏:决战中国海,冒险岛,战斧,三国……。
学校网络里软件很多,但其中所染的病毒也五花八门。我记忆深刻的是第一次遇见dir ii病毒时,那种感觉决不是害怕,而是欣喜,呵呵,我见到病毒什么样的啦!由于dos内核是开放的,所以那时开发一个病毒程序相对容易,大家又都喜欢用软盘拷来拷去,结果毒源泛滥,病毒的猖獗使得杀毒软件有了巨大的市场,现在大名鼎鼎的江民kv系列,就是在那时开始占据中国防毒市场,同时还有部的kill等竞争对手,瑞星,金山等都是后来者。
那时,我白天在公司上班,就盼望着晚上的上机,每次上机我都有详细的计划,因为机时宝贵,所以份外珍惜。
为了上机时能多敲些程序,我一咬牙,向妈妈要了两百元,买了一台电脑学习机,回家苦练英文指法与五笔输入,每天对着家里那台14寸的电视机屏幕,敲击至少键盘2小时以上。练得手腕酸疼,但终于达到了运指如飞盲打的程度。学五笔,背字根“目具上止卜虎皮,……”,足足花了一星期才背下来,并把每个字根与手指对应起来,后来看报纸都不自觉地将汉字给拆得七零八落,再也看不到是一个完整的汉字啦,当时好象练到了每分钟可打60多个字,后来我居然靠着这弹指神功当了一阵打字员混饭吃!呵呵,练好了指法,一上机,确实效率倍增,两小时能敲入并运行调试的程序比以前花三小时敲的还多。

94,95年是我条件最差,但学习劲头最足的两年时期,外在环境的恶劣,却反而造就了我高昂的学习兴趣,那种痴迷,我想热恋也不过如此了,可能因为我太喜欢计算机了,所以爱情与我无缘,这也是无可奈何的事。 :-(
我特别想说说我学习计算机技术书籍的感觉。如果你真的喜欢一门学科,那在啃一本本专业书籍时,就决不会觉得它厚,而只嫌它不够厚。对比我在本科学《电磁学》、《自控原理》之类枯燥无味的课程的感觉,那种课程脱离实际,从纸上到纸上,学生根本无法真正掌握。而学计算机课程《c程序设计》、《数据结构》、《操作系统》等课程的感觉真是天壤之别,原来本科学的东西是越学越糊涂,而我在学习计算机科学的过程中自己就感到慢慢地将所有的知识串成了一条线,脑中有一棵知识树在成长,这不是形容词,是真的感受。我学dos命令,学了很久不明其道理,是在一天早上醒来时灵感一来,突然理解了文件与树的概念,于是,就真正把握了dos命令的内涵,开始对copy,format,move……这些英文单词游刃有余了。有段时间,我甚至能感觉得到我的知识在与日俱增!如果那时能有相对稳定的客观条件:比如有一台随时可用的计算机,那我一定学得更快更好。不过话又说回来,条件好的时候,人又容易为安逸所累,进步反而慢。还是那句老话:业精于勤荒于嬉。现在的许多学生就是物质条件太好了,反而不懂得珍惜。

后来我看了金庸先生的《射雕英雄传》,郭靖成了我最喜欢的人物,不是因为他有黄蓉的爱,而是他那种坚忍不拔的毅力,以平凡之资终登绝顶!金庸先生真是妙笔!此小说我不知看了多少遍。
最值得怀念的就是我学编程的岁月,我学c语言用的是谭浩强的《c程序设计》,当时谭老师在电视上同时讲c程序设计,我每天必看,把书上的每道例题与习题全部做了一遍,并写出了每次上机的安排。我每次都先在纸上把程序写出来,然后上机时争分夺秒地在计算机中调试运行,并根据运行结果思索为什么会运行不正常,在哪儿出错了,如何更正,上机完后还有总结。就是这样,我把谭浩强的《c程序设计》一书中的所有例题和习题全部敲到计算机中运行了一遍,打下了c语言扎实的基础。谭老师的书和课,的确影响了中国多少名程序员!
我学了c语言之后,就开始想做点东西了。我用了一个月的时间,用c编写了一个中文下拉菜单的程序,从ucdos中的字库中提取汉字点阵,然后在图形模式下“画”出汉字来,使程序能脱离汉字系统的支持直接显示汉字。整个程序应该有一两千行代码吧,全部是自己寻找资料,一行行敲进去的。后来,我又编了读取wps文件的程序(当时dos下打字排版是求伯君的wps一统天下,word当时在哪里我不知道呢!《电脑报》介绍过的求伯君,鲍岳桥等作为第一代中国杰出程序员代表,是我当时崇拜的偶像),我还编写了一个绘制简单图形的小程序,从编程调试的过程中,我得到了程序员基本功的最初训练。我当初没人教,遇见各种困难只能自己解决,为找出一个bug,晚上睡觉做梦都在编程,而现在的一些大学生,程序通不过,马上问老师,甚至有学生把程序发到我的邮箱,叫我帮他调程序!有的计算机专业学生,学了四年,四年敲过的代码总数恐怕不超过2千行!
的确,我当时的水平很低,现在的本科生比我当时强太多了,但至少有一点他们中的许多人不如我,他们不如我勤奋,也不具备我的毅力,我觉得这是现在这批八十年代出生的大学生最缺的东西。

我用一年半的时间基本自学完了计算机专业的主干课程(除了《编译原理》,我实在看不懂),1995年我参加了初级程序员考试,结果上下午成绩加起来有90多分。但96,97我两次参加程序员级考试,虽然我已有不少编程实践,但仍然通不过,现在看起来,这反映出一个事实:我理论基础实在太差,天资也并不高。直到现在,我仍然痛感我的计算机基础理论不好,使我难以成为一名计算机科学家,而只能成为一名不错的软件工程师。
从95年开始,我的生活开始加速下降,我所在的公司由于被一群我现在称之为驻虫与流氓的人给弄得不成样子,每月连100多元的工资都无法保证,我只得离开了公司,把档案往人才交流中心一放,就开始了我四年的社会漂浮生活……。

在这四年中,我干了不下四五种工作:当过推销员,当过打字员,当过培训老师,修过电脑,从事售后服务,甚至摆过地摊……,一切的一切,很简单,就为了能有口饭吃。生活是严厉的,不讲情面的,我唯一的爱好就是闲下来就拿起我的计算机书来看。当时我大哥说过:你学这些东西有什么用?能靠它当饭吃?不要惊奇这种观点,在我们那信息闭塞的地方,当时有谁能想到计算机技术会有如此大的改变社会的能力?我之所以不懈学习,纯粹是为了解脱精神上的困惑,在技术的海洋中忘却生活的烦恼。我后来有一句名言:何以解忧,唯有电脑。别人当作一句笑话,但却是我当时的真实写照。
万事都有两面,事情坏到极处,就会向好转化。又是一个很偶然的事,改变了我的人生轨迹。
1996年,我的一个高中同学杨考上了湖南大学计算机系研究生,请客吃酸菜鱼火锅。在大家喝酒时,杨提了一个问题:请大家说出一个自己最想达到的目标。我的桂中同学大多数都是上的全国重点大学,此时毕业三年了,大家都对社会对生活有了自己的认识,于是就有了各种不同的答案,我当时的回答是:“我希望能有一天开发出一个好的软件,让许许多多的人都能用上它。”,这个目标我到现在都没达到。但当时大家是给我热烈地鼓励。杨饭后跟我说,你既然那么喜欢计算机,为什么不考研呢?对啊,我为什么不去试试呢?当天晚上我躺在床上,没怎么想就确定了要考研的想法。当时却怎么也没想到,考研之路成了另一条折磨人的不归路。对我一生的影响深远……
这就是我早期的学习生涯,深深地体现出中国的时代特色。这段时间我的生活是困苦的,心情是苦闷的,但学习热情却是无以伦比的。现在我一个人拥有两台奔四电脑,随时可上互联网获取丰富的资源,反而在技术上难有寸进了。越来越觉得古语说得好:
艰难困苦,玉汝于成!
这是生活的真理!
 

 

 

实践人生
-------一个普通it人的十年回顾(下)
下篇 曲折的实践之路
1.希特勒地堡与cih病毒
99年4月,我来到北京参加研究生复试。复试完了之后就不回去了,我拿着一张光盘,里面刻着我用vb和authorware3.5编的一个cool 3d的教学软件,到处参加招聘会,开始了在北京的打工生涯。
说句实话,我心中真是一点底也没有。北京人才济济,我一个三流大学的毕业生,又不是计算机专业的,有人要我吗?
我在北京无依无靠,没有任何一个亲戚在北京,住成了大问题。北京这地方,钱太不经花,生活费用太高,我四处寻找便宜的地方住。后来,我在北京化工大学对面的招待所中租了个床位,每晚20元,地下室。这个招待所的地下室非常大,每天回去的时候,都要走过长长的曲曲折折的通道,加上那昏黄的灯泡,每次我都有走进了希特勒地堡的感觉。地下室里潮湿阴暗,不见天日。地下室里人员很杂,什么人都有,永远没有一种安全的感觉,所幸的是我也是个穷光蛋,光脚的还怕穿鞋的?别人能呆我也能呆,唯一让我担心的是钱,没钱,在北京连流落街头都不够格,立马被收容去昌平筛沙。呵呵,我没这种经历,这是当时住一块的一个外地要考北京中医药大学的博士生说的(我俩居然住到了一个屋里,大家都没钱,只能挤地下室,只是他老兄晚上打呼,我可真受了不少罪)。

日子一天天过去,袋里的钱一天天少了,但工作还是没着落,心中越来越慌,除去学费,来京时父母给我2000元,大哥资助我的1000元就是我当时的全部资金(3000元在北京能呆多久?!)。我当时订了个计划,留下500元保底,打死都不能动,要靠它作路费回家的。我当时说,一定得找到一家公司,再少的钱都干,只要有口饭吃,有张床让我睡我就满足了。
我一共应聘了四五家公司,最具传奇色彩的是到西单附近一家公司的应聘经历。那时,我带去了我的作品,公司项目经理要看,于是我给他们演示,很奇怪,程序一打开就死机,一连两台电脑都一样,末了,两台电脑都启动不起来了。用瑞星一查,cih病毒——那天正是4月26日!于是,cih破坏了电脑主板的同时,也无情地摧毁了我的就业机会。还算老板可怜我,没要我赔。其实我当时快到山穷水尽的地步了,真要我出钱,我可能连家都回不了啦。陈盈豪(cih病毒的作者),你小子这么的聪明做什么不行,偏要去做病毒,害人害已,弄得我连个饭碗也找不到,晚上回“希特勒地堡”,把这小子骂了无数次!
总算天无绝人之路,在我数着最后还剩余600元钱的时候,终于有一家公司要我了,做中小学教育软件,月薪1600。干了两星期,又给我在公司的仓库挪开货物,搭了个床位,我就在那住下了,庆幸再也不用到“希特勒地堡”里当冲锋队员了。每天下班后,我就睡在林立的大纸箱之中,如果来个地震,呵呵,我就埋在纸箱中了,休想爬得出来!

我干得非常努力,第一个月工资开出来,扣掉个人所得税,我拿了1500多元。你们不知道我拿到第一笔工资的感觉!这钱在很多人眼里简直不算钱,但对于一个没工作近两年,工作也一个月收入不到200的穷小子而言,就象陈佩斯小品中所演的:“我王老五活了一辈子,还从没见过这么多钱啊!”。好笑吗?我一点也不觉得好笑。我只是心酸,我到了28岁才可以用自己的知识与技能养活自己,再不用依靠父母和兄长的资助,才真正完全用自己的力量在社会上站起来,一个没有经济自立能力的人,只能是个不成熟的人,一个躺在父母身上的人,不是一个真正的男子汉!我当这样的孬种当了28年!
我找到工作后向家里写过一封长信,信中讲了我对父母平时不好意思说的很多心里话,当时,我父亲说,母亲接到信都哭了。 我刚拿到工资,马上打了个电话回家里告诉母亲,以缓解他们的焦虑,毕竟儿行千里母担心啊!父母有退休金,一再表示不需要我赡养,而我再这样不要脸下去,我还是人吗?我就是从那时候开始,下定决心,从今往后,再不向家中要一分钱!今后三年读书和生活的费用我一定要用自己的劳动来获取。
金钱带给我的激动就是在那段时间,温饱问题解决之后,金钱对我的诱惑就再没有了,哪怕让我一个月赚一万,给套房子给我,也不可能再给我带来幸福的感觉了,钱是重要的,但不能成为它的奴隶,家中不需要我负担,我一个人有吃有喝,干着我喜欢的工作,足矣!
我在那公司一直干到九月学校开学为止。我走的那一天,公司居然还开了个欢送宴会,老板封了500元的封包给我。我真是感动。我大学毕业后在社会上挣扎求生,得到的大都是冷眼与蔑视,社会终于认可了我的价值,我不是一个只知道吃饭的废物!
1999年9月9日上午9点,在这个最多9字的时刻,我到学校报道来了,放下行李,我坐在分配给我的床上,心中终于踏实下来。
现在,我在北京终于有一张属于我的床了,一张真正属于我的床了,终于有个地方可以让我安稳地睡觉了。没有这段经历,我怎么体验到“安居乐业”这一个词的真实含义!个人如此,国家要做到,中国要做到,更难!

编程生涯

2.编程生涯
读研两年半的时间,我四处打工,这两年半我至少在七八家公司做过,编了十几万行代码,为自己赚了一台电脑,两部手机(丢了一部),还有读研期间的所有费用,实现了我的目标:没向家里要一分钱。
我水平不高,但在打工过程中,发现许多中国软件公司的水平更菜!
2000年暑假,我参加一个商品软件的开发,搬到了北大燕北园的一个宿舍,在那儿搞封闭式开发。在这个项目采用vb6开发,主力程序员除我之处,还有一个华北电力大学的研究生。大家都没开发商品软件的经验,没经过正式的设计,就匆忙编码了。我曾经想采用分层的系统架构,但遭到另一位程序员的反对,争吵没有结果,老板也不能做决定,结果各行其是。现在看起来,那时真是太菜了,任何一本软件工程书都会指出这种做法是不对的。
我们直接就热火朝天的干了起来,那位华北电力大学的老兄,真让我佩服,他可以在一个sub过程中写上2000行代码!我觉得奇怪,为何他能写这么多的代码?一看,顿时我晕倒,他居然将每个控件的left,top,width等属性都用代码来设定!想想这样的程序,调试时光单步执行就需要按多少次f8键!
我们在电脑旁边搭了个行军床,每天都是干到早上6点才睡,12点吃中饭,然后又是一个通宵。当时整个工程只有一个类模块,被我用于封装访问数据库的ado数据引擎,这是整个工程中唯一一处用到了最简单的面向对象技术的地方,然后,我写了近十个bas公用模块,每个模块代码规模都有一两千行,还有十几个窗体,每个窗体中都塞满了事件驱动的vb代码,整个软件应该有10万行代码,我一个人在此期间至少就写了3万多行vb代码。程序的主处理流程我甚至用ado与dao写了两套!
现在想起来,我们当时根本就不知道面向对象为何物,更不理解许多对软件开发至关重要的理论,就凭着一种热情。在这段痛苦的开发经历中,我不仅精熟了vb,而且从中学到了很多。现在再开发同样功能的东西。我至少可以砍掉2/3的代码。怎么学都不如从失败中学得多。
后来我总结vb程序员的三个境界:
(1)所有代码都只放在窗体文件中的,属于菜鸟级,他们只会从面板上拖控件,设置属性,然后再给事件编码
(2)工程中有bas模块的,属于中间级,他们已意识到有大量的代码是重复出现的,应该将其抽取出来作为公用模块
(3)工程中有cls模块的,属于高手,他们已掌握了面向对象的思想,并能应用这种思想来解决实际问题
正是这次开发经历,促使我反思:到底如何开发软件?我个人可以用vb完成各种各样的功能,为什么凑在一起就会那么困难?更正一个bug为何那么难?为什么一个看似简单的软件,要拖半年的时间还看不到结束的日子?
九月,研究生要开题,我自拟了个课题:软件体系结构设计。我决心弄明白,好软件到底是怎么做出来的。
我放下了vb,开始研究c++,原来学过vc,但没学会,就直接从c++ builder入手。borland公司的vcl类库让我大为叹服,很快就迷上了它,为此连带学了delphi,并参与了一个delphi项目。给我真正震撼的是《设计模式》这本书,看了才知道,原来好软件是这么设计出来的!在此,我强烈推荐所有有一定编程经验的程序员一定要看这本书!
一边学习理论,一边可没忘记我没经济来源,于是又四处打工,接一些小项目与小模块来赚些生活费,国内一家横跨家电与软件的著名公司是我打工期间去过的最大的公司。但无论什么公司,都给我一种感觉——烂!公司中充满了对员工的剥削与不尊重,对软件开发这一事物的错误认识,管理混乱。
我没机会去外企,技术水平不到,别人不要我 ,但我所见到的软件公司,我敢说没一家能做出世界一流的软件!
我上的研究生课程也让我失望,整个就是本科教育的再版。经过高考与考研两次重大考试,我对考试已是深恶痛绝,但读研期间仍要考试,而且是闭卷!我就不知道我去背那些条文对我的研究与学习有何帮助?2000年7月当我考完最后一门,终于大松一口气,我终于摆脱了考试的压迫,可以在剩余的一年半中真正搜索我渴望已久的软件技术了。这年,我29岁。
悲哀吗?一个中国的程序员要到29岁才可以真正自由地学习想学的东西!
我开始研究面向对象理论,看了大量的书,每天都在实验室学习到深夜12点,天天上网,csdn成了我最常去的网站。
随着我对软件技术的了解越多,就越深刻地感到国内与国外技术水平的差异是如此的巨大,巨大得甚至有让人绝望的感觉。同时,在北京这个中国软件人才最集中的地方,我也见到了许多牛人,一个清华的本科学生,做程序员可以拿到一个月12000元的工资,一个北大的计算机系研究生,一毕业就到外企,一个月一万多收入,每年发16个月工资!干了两年就开了自己的公司。我看到了一个北方交大的本科生作品,在半年的业余时间里,用delphi写了十几万行代码,他甚至在代码中嵌入汇编,自行编写数据存取引擎读写foxpro,速度超快!软件中有一个计算公式解析模块,他用编译原理理论居然做了一个小型的公式解析器,就象c++编译器检查c++程序一样,不仅可以判断是否公式正确,而且给出的出错信息还相当准确!其基本功之扎实,水平之高让我望尘莫及!中国优秀的人才真还是不少的!在精英集聚的北京,面对着博大精深的软件科学,我深感自身的渺小。
但我毕竟是靠自己奋斗出来的,我并不自卑,这世界需要牛人,同样需要大批合格的劳动者,我成为不了牛人,但我作一名程序员是合格的。
时间过得飞快,一年半根本就不算时间,马上就要毕业了,学习的成绩如何,要到社会上去竞争了,让社会考场来决定你是否及格。

3.毕业求职

98级的研究生是it业最后辉煌的回光反照。当时,各大公司都发了疯似的要人,象华为,当时是来者不拒。计算机专业的研究生是一抢而光,本科生也供不应求。2001年毕业的我的师兄师姐们,平均每个人手头都至少有两三个offer,谈的工资没有低于每月6000的,许多人去了外企,工资在8000~10000每月的也有。真是毕业生的黄金时间。
但好景不常在,911事件我看来好象成了分水岭,911之后,整个it业急刹车,就业形势急转直下,各大公司都在消化去年吃得过饱的胃口,我形容是大家都吃坏了胃,再也不可能有我师兄师姐们的风光了。虽然时间相隔仅大半年。
从10月开始,11月和12月,我几乎是在招聘会与公共汽车上渡过的,北京东南西北地去面试,上午在上地,下午可能就要跑到朝阳区,疲于奔命。
在找工作过程中,我良好的心理素质与丰富的编程经验起到了很大的作用,并没有遇到很大的困难,就先后有几家公司表示要我。
其中我想说的有两家公司。
一家是台湾公司,应该说他们做得是不错的,但我非常反感他们那种自认为高于大陆人的那种优越感,而且待遇也不高。面试之后,回来感觉很不好。当时台湾是民进党上台主政,我就称之为“民进党”看不起“”(虽然我不是党员,但我们都是中国人,都希望中国能强大,让她的人民能挺直腰杆)。
我想:我们大陆确实是不如台湾发达,难怪别人看不起我们,这世界势利得很,社会如此,国家亦然。但我中华960万平方公里的国土,13亿人口,难道要依靠一个小小的岛屿来撑门面?难道除了台湾公司,我就无处可去了?虽然改变不了什么,但我决定绝不去台资和日资的公司工作(日本人我更不喜欢,但我认为他们做事实在优秀,我们一定要向日本人学习)!在这种公司呆着,不爽!同时,我们的确也得争气些,这世界只尊重强者。
另一家是个很不错的民族软件企业,想要我,其老总专门找我去面谈了一次,希望我能到他的公司工作。这位老总白手起家,能在五六年的时间内由几个人发展到300多人,当时,是中国这个领域软件市场占有率最高的公司,我非常佩服,他为人也很好,并表示可以给我每月比其他研究生多加1000元工资,而且希望锻炼一两年之后我能够带领一个团队来开发产品,并负担我毕业所需交纳的各种费用。在就业不景气的2002年,对我一个30岁的技术水平有限的老程序员如此看重,真叫我感动。虽然我最后还是没去,但我仍然对这个公司充满了好感。一个软件企业最重要的是什么?是对人的尊重,没有这点,可以断定,这个公司长不大。
我为什么没去软件公司?放弃有可能在几年之后年薪突破10万的收入?是因为我已有了更想做的事,我想当老师!
我自己是从自学的路上走过来的,其中的艰辛历历在目,无人指点,我走了多少弯路?中国还有多少是象我这样的年轻人无人指点的?我幸运能爬出来了,因为我至少还能有饭吃,比我条件更差的,比如农村的孩子,可能就被生活的压力所淹没了。我个人的力量很微弱,技术也有限,但我自认为至少是一名合格的程序员,如果能培养出一大批达到我的水平的学生,他们毕业后成为合格的程序员,中国软件的根基就会更扎实,如果更能有一批远远超过我水平的学生出来,中国软件就有希望了。软件是什么?软件以人为本!
人生追求什么?金钱?我很缺钱,但不可能把金钱作为我的目标,我希望我能够成为一个对社会有所贡献的人,能够获得心灵的充实,于是,我选择了留校。
对教育的反思与教书生涯

4.对教育的反思与教书生涯
2002年下半年,我参加了北京高校青年教师岗前培训。一位杜教授的两堂课让我印象深刻,其中两句话让我深深震动:
第一句话:我是一个教书匠,教书匠好啊,好就好在“匠心独运”!
第二句话:做什么工作都要达到变魔术的境界!
是的,作为一名教师,就必须起到一个传声筒与放大器的作用,将人类最聪明的人探索世界所得到的知识予以拓宽发展,以便让更多的人能够掌握这些知识并进而应用于实践,从而推动人类的不断进步。
作为一名计算机专业的教师,就要努力把先进的计算机技术以尽可能高的效率传授给广大的学生,引导他们直接面对真实的软件世界,而不是向他们硬灌各种各样的理论知识,强迫他们去死记硬背以应付考试。
我是一个小人物,才低学浅,但我真的认为高校计算机教育存在严重的问题。我在打工期间的开发经历,以及阅读国外相关资料的时候,发现学校中教的和社会上用的差得太远!都已经是什么时代了,许多大学还设立foxpro课程,难道就不能直接用现代主流的数据库如oracle,sql server,哪怕是access也好,来讲授数据库知识?还有所谓的计算机等级考试,呵呵,过了三级学生的我见过不少,但他们真正对软件,对计算机又理解多少?
在中国甚至于升职称也要考计算机,我看了一本职称计算机考试教材,里面几乎原样照搬计算机原理课程中的相关章节,弄得我给搞艺术的大嫂讲了一个小时的二进制与八进制、十六进制的转换方法,她还是弄不太清。我都泄气了,对啊,他们搞艺术的,有必要去分清二进制的10与十进制的2有何分别吗?他们八辈子也用不上。但是考试用得上,呵呵,又是中国特色。
拿c++来说,我讲过c++课,许多的国内教材对c++语法下了大功夫,却对体现了c++精华的stl只字不提,对代码背后所体现的软件开发思想与方法更是视而不见,我用c++也编过不少程序了,说句实话,我用到的特性不到c++的三分之一!于是就出现了这种怪现象,许多学生考试可以拿八九十分,给他一个简单的实际问题他却不知如何下手!
还有uml,现在好象很火的样子,我们读研时就开了这门课,讲句实话,当时这门课我就没听懂,可后来我尝试着用c++用面向对象的方法来编程序,然后,由代码倒推回uml类图,一下子就明白了,原来uml只不过是一种描述面向对象系统的符号罢了,如果学生没进行过真正的oop,那就是为了学uml而学uml,根本就本末倒置。
还有软件工程,我的感觉,一个人如果没写过一万行以上的程序,他看软件工程书就同看政治书差不多,每句都对,呵呵,就不知道为什么对。我完成了那个几万行的vb程序之后,再回过头看看理论,真是句句是真理!每个理论背后都是大量实践经验的总结。
回想我做软件的体会,我发现所有的知识都是一个完整的体系,根本就无法区分哪些知识是本科的,哪些知识是研究生课程。于是,一种想法产生了,我主讲程序语言类的课程,那我就直接以真实的软件开发过程为主线,实践中需要什么我就讲什么。讲c++/,我就抛开了指定的教材,c++我讲了stl,我讲了ooad,两者我都讲了用rose进行双向工程,引导学生去学uml,一开始就用uml去描述自己开发的程序,何必浪费大量的时间去学结构化的编程方法?
我现在简直成了面向对象技术的布道者,我下学期即将开设ooad基础选修课,从实际项目中抽取典型的案例,讲uml,讲rose,讲设计模式,讲软件体系结构,例子代码横跨c++/和.net下的开发语言(c#和vb.net),这对于我一个技术水平有限公司的董事长而言,实在有点不自量力,我鼻子上才插上几根葱,就想装大象?但我想,如果我能成功地激发出哪怕1%的学生的兴趣,能引导他们走向我认为是正确的方向,能启发他们思考,能直接面向真实的软件开发活动而不是学校的考试,就是我的成绩。我现在正在看引进的原版书籍---《设计模式解析》,时时击节赞叹!《设计模式》经典但难懂难用,而《解析》一书的两位作者既有丰富的从业经验,又对ooad进行了深入的思索,真知灼见时时展露于书中,我现在刚看了这本书的80%,基本上可以用一个成语来描述这部书:深入浅出!
要做到深入浅出谈何容易!只有同时具备技术专家与文学作家素质的人才能做到!
反观我们国内的大量教材,还有大量的垃圾论文(包括硕士,博士的,本科的就算了,我看绝大部分根本不能称之为论文),全都是“浅入深出”,作者自己都未必明白,就东拼西凑,摆出个样子吓人。本来完全可以用大白话三言两语讲清楚让人明白的道理,有人专门要绕一大圈,专挑用高深的数学公式来表达,唯恐别人容易理解,显得他水平不高!呵呵,什么东西一沾上“数学”,立马身价百倍。我就听过一个北师大的一个在读博士说过:如果一篇博士论文中没有一个数学公式,根本就不算是博士论文。这句话对不对,大家可以多思索。我数学不好,没资格讨论数学,我的直觉:数学是工具,但如果为了发表论文等目的而故弄玄虚,为数学而数学,是不合道理的。中国的学术水平与现状,大家都心知肚明,不用我废话了。
现在每年都毕业大批的计算机专业学生,可其中真正具备扎实根基的可以很快胜任工作的我看只有5%(95%的学生不要扁我,不同意就当我在说胡话,我很瘦的,一扁就没了)。多年以来,我国高校计算机教育是按照计算机科学研究者来培养的,可事实上,有多少学生能从事计算机方面研究的能力?我看应分流,80%的学生按工程师方向来培养,20%的学生按研究者方向来培养,而且应大幅减少必修课的数量,计算机领域太深太广,样样都想教给学生,反而成了夹生饭,一个想从事硬件设计的学生和一个想从事软件开发的学生,能给他们一样的饭吃吗?学校应提供各种条件和资源去引导学生,激发学生的创造性与主动探索性,让他们去尝试,去发现自己的长处,最终找到最适合自己的发展方向。不这样做,中国软件后继乏人,没希望。

实践第一
5.实践第一
2002年下半年,我和一个朋友去了北京郊区的一家杂志社,看到的情形让我震惊:在信息产业最发达的北京,这家杂志社还用人工查对杂志订单和款单,看着那按省来登记的几大本厚厚的客户登记本,工作人员需要手工来在其中查找相应的信息。这样的工作效率,这样的行业信息化水平!北京如此,全国又如何?
从这件事上,我看到了中国软件业的另一方面。一方面我们没有核心技术,另一方面,已有的技术又根本没推广没用好。追踪世界先进水平,对于我等这种水平的人来说,确实勉为其难,但将已有的技术用于解决实际问题,却是我们可以做的。如果中国各行各业都真正能通过进行信息化而提高生产效益,那中国不就从根本上强大起来了吗(象印度,it一枝独秀,其他行业没有起色,我称之为跛足的国家,绝不能成为世界强国)?在扎实的社会基础之上,软件业不就有了更大的市场与发展潜力?中国许多行业的信息化水平非常低,而且中国地域广大,发展非常不平衡,有些地方信息化水平甚至为0!努力推动行业信息化,是我们这一代软件开发者的责任!而追赶国外先进水平,恐怕就不是一代两代程序员可以达到目标的,需要长期的努力。作为一名软件开发者,只能脚踏实地,哪怕你只做一个小小的mis产品,也要尽力把它做好来。
于是,我开始了期刊发行系统的开发,这完全是自发的,没有任何资金投入,只有一种热情在支撑。我开始选择c++ builder开发,做了几个月,完成了第一个版本,但我发现,我找不到足够水平的c++程序员进行合作开发,而且整个一个exe文件,在体系结构设计上虽采用了分层分块的设计方案,但却是源代码级别的,要拆分成com组件难度太大,不是一个人能完成的,于是中途流产。
2003年3月,我开始系统地学习.net,我吃惊地发现,我原来想在c++中实现的许多功能,比如对象串行化为xml,在.net中已有现成的类可用,.net更把oo的功用发挥到了极致,它的混合语言开发,它的反射机制,它的新的自识别的软件组件,以及强大好用的开发环境vs.net,都让我惊叹微软对开发者遇到的困难的深入把握,相比用c++开发,至少可以提高1/3的开发效率。于是一个新的想法产生了,我要把以前的产品用.net重写,利用.net强大的组件模型,将设计模式理论推广应用到组件级别,通过xml和反射机制建立一套可动态装配的软件生产流水线,实现象dell直销pc那样的软件动态装配直销。只要建立好灵活可不断重构的系统架构,配以对业务领域的深入分析,逐步建立功能强大的业务组件仓库,就可以实现软件系统的动态装配。说干就干,我用vb,net重写了原先用c++编写的系统,将原先的一个exe变为十几个dll,而且这些dll还会随着发展而不断地分裂,也有可能重新组合,利用refractoring(重构)不断进化,最终形成一整套完备的行业软件组件库。做软件关键因素是变化,只有适应变化的系统才是有生命力的。
我用两个月的时间大体上弄清了.net平台下的主要类库,然后又用两个月的时间再次重新实现了期刊发行系统的c++版本的全部功能,到8月份我写这篇文章之时,第一个产品里程碑已经完成。同样的,除了需求是由另一个合作者去搜集的之外,几乎又是全部由我一个人包揽了所有的系统设计及编码工作!
毫无疑问,我自觉得新系统要比老系统可维护性强得多,真正实现了彻底的全组件化系统开发,计划再有一个月的界面美化,改正bug,引用多线程提高运行效率,优化系统结构,就可以提供给用户试用了。市场如何,难说难测。
在开发过程中,我再次感到巨大的挑战,不光是技术上的,更是管理上的。人才是我最头痛的问题,没有一流的人才,哪来一流的产品?我们找不到足够水平的程序员一起合作(牛人哪屑于做这样一个小儿科的产品?)我们要走的路还很长。也许我们开发的产品是失败的,但我从来就没指望能用这赚钱,我只是尽一个软件开发者的责任而己,成败已不重要!人生不尝试,怎能体现人活着的价值?


文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=77
posted @ 2006-04-08 12:01 寂寞河 阅读(53) | 评论 (0)收藏

    昨天对SMIL系统进行了一个可配置的开发,其实配置文件用xml文件写的,对文件的解析采用了apacher的Digester组件,在开发的过程中,查了一些资料,并发现了一些问题和不明白的地方,现在将开发的代码列出来,一供讨论.

   有关Digester组件的说明和用户,可以在网上搜索一下,很多,只是千编一律,但足以对Digester组件有一个认识了.下面是我开发的时候的代码

要解析的文件: config/SmilConfig.xml
<?xml version="1.0"?>
<smils>
<url>/WEB-INF/smils/</url>
<smil>
<template>1</template>
<name>smil1.smil</name>
<info>aaaaaaaaa</info>
<file>
<src>1</src>
<name>100.jpg</name>
</file>
</smil>
<smil>
<template>2</template>
<name>smil2.smil</name>
<info>bbbbbbbbbb</info>
<file>
<src>2</src>
<name>200.jpg</name>
</file>
</smil>
<smil>
<template>3</template>
<name>smil3.smil</name>
<info>cccccccccc</info>
<file>
<src>3</src>
<name>300.jpg</name>
</file>
<file>
<src>33</src>
<name>3300.jpg</name>
</file>
</smil>

</smils>

对xml定义的解析规则:config/RuleConfig.xml
<?xml version="1.0"?>
<digester-rules>
   <object-create-rule pattern="smils" classname="config.SmilConfig" />
   <call-method-rule pattern="smils/url" methodname="setUrl" paramcount="0" />
   <pattern value="smils/smil">
      <object-create-rule classname="config.Smil" />
      <call-method-rule pattern="template" methodname="setTemplate"
                    paramcount="0" />
      <call-method-rule pattern="name" methodname="setName"
    paramcount="0" />
      <call-method-rule pattern="info" methodname="setInfo"
    paramcount="0" />
       <pattern value="smils/smil/file">
           <object-create-rule classname="config.FileSrc" />
         <call-method-rule pattern="smils/smil/file/src" methodname="setSrc"
    paramcount="0" paramtypes="java.lang.String"/>
         <call-method-rule pattern="smils/smil/file/name" methodname="setName"
    paramcount="0" paramtypes="java.lang.String"/>
           <set-next-rule methodname="addFileSrc"   property="file"
    paramcount="0" />
        </pattern>
<set-next-rule methodname="addSmil" />
   </pattern>
</digester-rules>

对应SmilConfig.xml文件定义的类
SmilCofnig.java:

package config;

import java.util.HashMap;

public class SmilConfig {
   private String url;
   private java.util.HashMap smils;
   public SmilConfig(){
       smils = new java.util.HashMap();
   }
   public String getUrl() {
      return url;
   }
   public void setUrl(String url) {
      this.url = url;
   }
   public java.util.HashMap getSmils() {
      return smils;
   }
   public void setSmils(java.util.HashMap smils) {
      this.smils = smils;
   }
   public void addSmil(Smil smil) {
      this.smils.put(smil.getTemplate(),smil);
   }
   public Smil getSmil(String templane) {
      return (Smil)this.smils.get(templane);
   }
   //用于装文件信息打出来...
   public String toString(){
      String rb = "\n";
      StringBuffer sb = new StringBuffer();
      try {
         sb.append(" ********* Smil config content begin *************").append(
             rb) ;
         sb.append("## url:" + this.getUrl()).append(rb) ;
         java.util.Iterator it = this.getSmils().keySet().iterator() ;
         if (it != null) {
            sb.append("#######  内容如下:").append(rb) ;
         }
         int i = 0 ;
         while (it.hasNext()) {
            i++ ;
            String key = (String) it.next() ;
            sb.append("##############[" + i + "]").append(rb) ;
            Smil s = this.getSmil(key) ;
            sb.append("## smil[" + i + "]:" + s.getTemplate()).append(rb) ;
            sb.append("## name  :" + s.getName()).append(rb) ;
            sb.append("## info  :" + s.getInfo()).append(rb) ;
            sb.append("## size  :" + s.getFile().size()).append(rb) ;
            java.util.Iterator itf = s.getFile().keySet().iterator() ;
            int k = 0 ;
            while (itf.hasNext()) {
               String keyf = (String) itf.next() ;
               k++ ;
               FileSrc f = s.getFileSrc(keyf) ;
               sb.append("## File[" + keyf + "]:" + f.getSrc() + "=" +
                         f.getName()).append(rb) ;
            }
         }
      }
      catch (Exception ex) {
         ex.printStackTrace();
      }
      sb.append(" ********* Smil config content over  *************").append(rb);
      return sb.toString();
   }
}

Smil.java :
package config ;

import config.FileSrc;

public class Smil {
   private String template ;
   private String name ;
   private String info ;
   private java.util.HashMap file = new java.util.HashMap();
   public Smil(){
   }
   public String getTemplate() {
      return template ;
   }

   public void setTemplate(String template) {
      this.template = template ;
   }

   public String getName() {
      return name ;
   }

   public void setName(String name) {
      this.name = name ;
   }

   public String getInfo() {
      return info ;
   }

   public void setInfo(String info) {
      this.info = info ;
   }

   public java.util.HashMap getFile() {
      return file ;
   }
/*
   public void setFile(java.util.HashMap file) {
      this.file = file ;
   }
*/
   public void addFileSrc(FileSrc file) {
      this.file.put(file.getSrc(),file);
   }
   public FileSrc getFileSrc(String key) {
       return (FileSrc)this.file.get(key);
   }


}

FileSrc.java

package config ;

public class FileSrc {
   private String src ;
   private String name ;

   public FileSrc() {
   }

   public String getSrc() {
      return src ;
   }

   public void setSrc(String src) {
      this.src = src ;
   }

   public String getName() {
      return name ;
   }

   public void setName(String name) {
      this.name = name ;
   }
}

进行读取的util类

SmilConfigUtil.java

package config ;

import java.io.File ;

import org.apache.commons.digester.Digester ;
import org.apache.commons.digester.xmlrules.DigesterLoader ;


public class SmilConfigUtil {

   public SmilConfig readRule(String dataFileName) {
      SmilConfig config = null;
      try {
         Digester digester = new Digester() ;
         digester.setValidating(false) ;
         digester.addObjectCreate("smils", config.SmilConfig.class) ;
         digester.addBeanPropertySetter("smils/url", "url") ;
         digester.addObjectCreate("smils/smil", config.Smil.class) ;
         digester.addSetNext("smils/smil", "addSmil") ;
         digester.addBeanPropertySetter("smils/smil/template", "template") ;
         digester.addBeanPropertySetter("smils/smil/name", "name") ;
         digester.addBeanPropertySetter("smils/smil/info", "info") ;
         digester.addObjectCreate("smils/smil/file", config.FileSrc.class) ;
         digester.addSetNext("smils/smil/file", "addFileSrc") ;
         digester.addBeanPropertySetter("smils/smil/file/name", "name") ;
         digester.addBeanPropertySetter("smils/smil/file/src", "src") ;
         File input = new File(dataFileName) ;
         config = (SmilConfig) digester.parse(input) ;
      }
      catch (Exception exc) {
         exc.printStackTrace() ;
      }
      return config;
   }

   public SmilConfig readRule( String dataFileName,String ruleFileName) {
      SmilConfig config = null;
      try {
         File input = new File( dataFileName );
         File rules = new File( ruleFileName );
         System.out.println(rules.toURL());
         System.out.println(input.toURL());
         Digester digester = DigesterLoader.createDigester( rules.toURL() );
         config = (SmilConfig)digester.parse( input);
      } catch( Exception exc ) {
         exc.printStackTrace();
     }
      return config;
   }

   public static void main(String args[]){
     SmilConfigUtil configUtil = new SmilConfigUtil();
     SmilConfig config = null;
 
     config = configUtil.readRule("src\\config\\SmilConfig.xml");
     config = configUtil.readRule("src\\config\\SmilConfig.xml","src\\config\\RuleConfig.xml");
     System.out.println(config.toString());
   }

}

现在的问题是:如果采用config = configUtil.readRule("src\\config\\SmilConfig.xml");进行解析,会得到正确的结果.
即:

 ********* Smil config content begin *************
## url:/WEB-INF/smils/
#######  内容如下:
##############[1]
## smil[1]:3
## name  :smil3.smil
## info  :cccccccccc
## size  :2
## File[3]:3=300.jpg
## File[33]:33=3300.jpg
##############[2]
## smil[2]:2
## name  :smil2.smil
## info  :bbbbbbbbbb
## size  :1
## File[2]:2=200.jpg
##############[3]
## smil[3]:1
## name  :smil1.smil
## info  :aaaaaaaaa
## size  :1
## File[1]:1=100.jpg
 ********* Smil config content over  *************


而如果采用rule配置文件进行解析,却得不到FileSrc的信息,即内容如下:
 ********* Smil config content begin *************
## url:/WEB-INF/smils/
#######  内容如下:
##############[1]
## smil[1]:3
## name  :smil3.smil
## info  :cccccccccc
## size  :0
##############[2]
## smil[2]:2
## name  :smil2.smil
## info  :bbbbbbbbbb
## size  :0
##############[3]
## smil[3]:1
## name  :smil1.smil
## info  :aaaaaaaaa
## size  :0
 ********* Smil config content over  *************

即在用RuleConfig.xml文件进行解析的时候,却没有得到FileSrc信息内定
现在请大家帮我分析一下,在RuleConfig.xml文件的配置中,那里有错误....
还请教有关配置文件的说明....


文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=78
posted @ 2006-04-08 12:01 寂寞河 阅读(43) | 评论 (0)收藏

   今天早上,我和往常一样,做上了上班的地铁列车,随着地铁一站站的驶过,上班的人流在不断的往地铁里面拥入,地铁车厢里面显的空间有些不足了.

   就在刚刚驶过几站,忽然我身后一阵骚动,我扭头一看,哇噻,一位年轻女士和一位50来岁的女的可能是因为一个座位的原因,在车厢内打起来了,有的人劝说,有的人干脆就拥挤着给他们腾战场,呵呵,有人感叹了:北京地铁并不拥挤阿,还可以打架呢,呵呵......


文章来源:http://www.netbo.com.cn/showlog.jspe?log_id=79
posted @ 2006-04-08 12:01 寂寞河 阅读(51) | 评论 (0)收藏
仅列出标题