如鹏网 大学生计算机学习社区

CowNew开源团队

http://www.cownew.com 邮件请联系 about521 at 163.com

  语源科技BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  363 随笔 :: 2 文章 :: 808 评论 :: 0 Trackbacks

2008年4月15日 #

首期费用5800元,杨中科老师在线客服QQ:杨老师

最强悍的师资!最强悍的课程!想成为强悍程序员的最强悍选择

3大真实项目循序渐进、环环相扣、逐步加深!

3大独有优势(师资强、项目真、课程深)不但能让你找到工作,还能让你找到好工作


培训目标


本课程重点培养掌握ASP.Net、WinForm、ADO.net、Microsoft SQLServer数据库、Oracle数据库的实战与理论双结合型工程师。通过本课程多个真实项目的训练,学员还可掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等软件编程高级技术。让学员毕业后真正具备两年左右软件开发经验。

招生对象


本课适合于了解c#基本语法,对.net编程有着浓厚兴趣的人士。

课程特色

一、强悍的师资:微软一线高级软件工程师亲自授课,教授的绝非三脚猫功夫
当今社会,为了特显师资实力,众多培训机构都打着“我们的老师来自微软、IBM”之类的话,但实际上大多都是“水货”。传智播客的.Net教师真真实实来自于微软公司,是绝对的行货,能够经受得起全社会的考证。传智播客的.Net教师不但是微软一线高级软件工程师,同时也是众多技术书籍的作者。由这样的原创作者讲课可想而知课程条理清晰、讲解清楚,知识面广、深度足够!下面是我们.Net教师杨中科在微软工作时的照片及其出版的书籍。
杨中科在微软时的工作照 《专家手记——AJAX开发实战 》 《程序员的SQL金典》 《自己动手写开发工具》 《JavaScript网页开发-体验式学习教程 》
 
二、独家微软内部技术资料,率先讲解.Net4.0(WF、WCF、Linq)
随着微软推出.Net 4.0和Visual Studio 2010,掌握.Net 4.0中WF、WCF、Linq等新技术的学员将在职业竞争中具有更大的竞争优势,传智播客的老师因为之前就职于微软,因此得到了微软.Net4.0技术和VisualStudio2010的内部资料,保证我们的学员掌握的知识都是领先于他人的。
 
三、真实的项目:让你切身感受到什么才是真实的商业项目
当今在到处都是大忽悠的环境下,传智播客拒绝忽悠,教学所用的项目来自于真实的商业项目。现在不少培训机构为了招生,都打上论坛系统、通讯录系统、教学管理系统等项目,但很多都只是演示的demo,离真实的项目还远着呢,所以建议大家,你可以不选择传智播客,但一定要对培训机构进行检验,忽悠的话,只要文笔好的人都会写,但真实的项目是吹不出来的。
 
四、课程深:方能让你在职业竞争中鹤立鸡群,不但能找到工作,更能找到一份好工作
受全球金融危机的影响,IT行业萎缩、人才需求下滑,现在的情况是:一个工作岗位往往几佰人竞争,队伍中更是不缺乏具有一、二年工作经验的开发人员。如何让自己在几佰人的竞争中脱颖而出?没有他途,只有把技术学的更深入,更牛,方能取胜。传智播客的课程不但可以让你找到工作,更能让你找到一份好工作。那么传智播客毕业的学生,有没有没找到工作的?可以肯定地说:“有”。由于传智播客的课程较深入,每个班偶尔会有一两个同学坚持不下来,睡懒觉,9点上课,10点才来,课下也不动手练习。试想,如果自己不付出努力,再强大的师资,再好的课程也是无法帮助他就业的。对于这些个别同学,传智播客只能建议他复读,一些愿意回来复读的同学经过认真学习后都能找到工作。
 
五、业界认可:SOHU、用友、神州数码等在职软件工程师均推荐自己的亲戚朋友到传智播客学习
传智播客是CSDN下属子公司,借助CSDN平台,传智播客聚集了一批业界精英。有相当一部分老师在IT业界是颇有知名度的,而且有些老师还是推动某个技术普及的先行者(如果你认为我们是吹牛的话,就用baidu/google去检验吧)。由这些精英共同制定的课程不但反映了业界的主流技术,还具有前瞻性。正因为传智播客在软件界内被广泛认可,所以在招收的学生当中,就有相当一部分是在职软件工程师推荐过来的。
 

课程安排    


第一阶段:C#编程基础/Windows编程基础
[ 注:我们一直处于主流技术的最前沿,别人还在讲.net3.5的时候,我们已经在讲.net4.0了,国内也只有传智播客才能做到 ]
核心技术课程 C#编程基础:面向对象编程(类、继承、接口、设计模式、异常、反射)、枚举、Attribute、C#新特性(隐式类型、using、对象初始化器、集合初始化器、匿名类型、扩展方法、自动属性、LINQ、动态类型、可选参数)、常用数据结构(List、IDictionary、Array)、常用.net类库、泛型、.Net高级技术(Assembly、AppDomain、CLR、IL)等。 Windows编程基础:常用WinForm控件(TextBox、CheckBox、Button、RadioButton、ListBox、ComboBox、通用对话框、Menu、Timer等)、控件布局。

 

第二阶段:WinForm+WCF+Oracle+呼叫中心项目
[ 注:我们一直处于主流技术的最前沿,传智播客是第一个讲解基于微软最新WCF技术的机构 ]
核心技术课程 Oracle数据库开发基础:Oracle数据库基础管理、数据库备份/恢复、SQL语言(SELECT、INSERT、UPDATE、DELETE、JOIN、UNION等)、数据库函数、PL/SQL语言、视图、存储过程、触发器、数据库设计范式、数据库调优。
WinForm高级技术:WinForm高级控件(DataGridView、ListView、TreeView、WebBrowser、CheckedListBox、TabControl、NotifyIcon、SplitContainer、PropertyGrid等)的使用、多线程编程(Thread、BackgroundWorker、线程池)、自定义控件、Windows核心编程(ActiveX、进程管理、PInvoke)、报表与打印。
ADO.Net技术:ADO.Net的基本概念、DBConnection、DBCommand、DataReader、DataSource、DataAdapter、DataSet、DataTable、DataView、数据绑定、数据库连接池、SQL注入漏洞攻击的防护。
WCF开发技术:Socket套接字编程、MSMQ、WCF、SOAP与WebService。
阶段案例 省级汽车4S连锁店呼叫中心系统(项目金额35万、耗时5个月):本系统是一个C/S模式的分布式系统,一个核心服务器程序挂接20多个坐席端程序,坐席人员分布于3个核心客服中心,并且使用VOIP系统将10余个地市的4S连锁店的业务专家连接为专家坐席,为全省上万名车主提供报修、救援、保险理赔、回访关怀等服务。包含来电信息提示、CRM、历史信息自动跟踪、报修单、回访、来电屏蔽、历史通话跟踪、FAQ知识库管理、黑名单、转接、报表统计等模块。虽然基于B/S模式的系统越来越多,但是由于C/S模式有B/S所不具有的一些优点,因此在呼叫中心、银行系统、企业生产内网系统等应用中C/S模式仍然是不可替代的,因此熟悉WinForm技术的开发人员仍然非常吃香。这个项目将ADO. Net技术融入到开发中,并且采用了微软力推的新技术WCF进行分布式开发,通过这个项目,学员可以获得WinForm、ADO. Net、Oracle、WCF分布式开发等开发技能,并且获得了价值35万元、耗时5个月真实项目的业务系统开发经验。

 

第三阶段:ASP.net+VSS+SQLServer+WF+进销存项目
[ 注:我们一直处于主流技术的最前沿,传智播客是第一个讲解基于微软最新工作流引擎技术WF的机构 ]
核心技术课程 ASP.Net开发:常用ASP.net控件(AdRotator、BulletedList、Button、Calendar、CheckBox、DropDownList、HiddenField、HyperLink、Image、ImageButton、LinkButton、ListBox、Literal、MultiView、PlaceHolder、RadioButton、RadioButtonList、Substitution、Table、TextBox等)、文件上传下载、数据绑定、数据验证(RequiredFieldValidator、CompareValidator、RangeValidator、CustomValidator、自定义Validator、ValidationSummary)、GridView(分页、排序、过滤、自定义列、选择、编辑、删除、添加、自定义模板)、Repeater、ListView、DataPager、多层开发、WebControl、UserControl。
SQLServer数据库开发基础: SQLServer数据库基础管理、T-SQL语言、SQL Server Management Studio。
工作流开发:WF技术基础、WF与ASP.net的集成。
协同开发:VSS/CVS/SVN/TFS、团队开发、Bug管理、需求管理、持续构建、敏捷开发
阶段项目 进销存项目(项目是一个金额600万的项目中的核心模块):本系统将企业的采购、仓储、销售等一系列核心流程有机的整合起来,保证物流、资金流与信息系统的畅通无阻。提供包含了数据导入导出、批量数据处理、异构系统集成、订单号生成、分录、级联选择、红冲、勾稽、结账、反操作、入库、盘点、审批流程、报表等功能在内的企业内部信息系统常见的功能模块。这个项目使用最流行的ASP.Net多层式开发,使用微软主推的最新工作流引擎技术WF进行审批流程模块的开发,并且使用VSS进行团队协同开发。通过这个项目,学员不仅能够学会ASP.Net、WF等技术,而且进一步获得了使用.net技术进行大型企业级信息系统开发的经验。
 
 
第四阶段:ASP.net+VSS+SQLServer+CodeSmith+大型网站优化技术+网站内容管理系统CMS+站内搜索引擎
核心技术课程 ASP.Net高级技术:MasterPage、AJAX(UpdatePanel、ScriptManager、AJAX Control Toolkit‎、JQuery)、安全机制(Membership、Forms验证、AD验证、Login控件、CreateUserWizard控件)、ASP.Net核心对象(Request、Response、Cookie、Session、Profile)、导航控件(SiteMapPath、Menu、TreeView)、缓存技术、主题、国际化。搜索引擎技术:Lucene、多线程开发、爬虫技术、网页分析、正则表达式。大型网站开发技术:代码生成、SEO、网站调优、采集器、RSS/XML、网站防黑(防XSS攻击、防注入漏洞攻击、防CC攻击、防挂马、防盗链、防敏感词)、IIS管理与调优。
阶段项目 如鹏网项目(项目是已经上线近两年的网站,日访问量最高18000人次,网址www.rupeng.com):本系统旧版本基于PHP、J2EE技术,由如鹏网开发者亲手操刀用.net重写新版本。系统分为前台Web界面、后台管理界面、站内搜索、监控客户端四个子系统,包含栏目管理、文章管理、采集器管理、评论管理、投票管理、敏感词过滤、用户管理、友情链接管理、站内搜索、模型管理、缓存管理、广告管理、RSS输出、水印设置、搜索引擎优化设置、数据备份恢复等模块。通过这个项目,学员不仅可以在实战中巩固对前面学习的ASP.Net、ADO.Net、WinForm、WCF等知识的掌握,还可以掌握缓存、SEO、搜索引擎技术、AJAX等大型互联网开发中涉及到的技术,更可以获得系统架构师级别的开发人员对系统进行架构、设计和实现的能力。
 
第五阶段:传智播客特色课程
[ 注:我们的老师均来自企业一线高级技术主管,更了解企业对简历的要求,因此我们学员投放的简历命中率很高 ]
项目名称 总结以往所学知识,介绍面试、沟通等个人发展所需的知识和技巧。


培训方式


培训时间:3个月
培训方式:全日制脱产,每周5天上课,早9:00-晚 8:00 。
posted @ 2010-02-02 00:12 CowNew开源团队 阅读(1345) | 评论 (2)编辑 收藏

 

微软借助它在桌面领域的垄断地位不断推广它的最新技术,特别是做为微软最核心技术的.Net更是得到了最大力度的推广,社会上对掌握.net技术的开发人员的需求也越来越多。

为了帮助用最短的时间学到尽可能多的知识、掌握真实项目的开发经验,从而找到满意的工作,传智播客开办了“.Net 就业培训班”。“.Net 就业培训班”由任职于微软中国的杨中科老师担任主讲,重点培养掌握ASP.NetWinFormADO.netMicrosoft  SQLServer数据库、Oracle数据库的实战与理论双结合型工程师。通过本课程呼叫中心、进销存、如鹏网CMS等多个真实项目的训练,学员还可掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等软件编程高级技术。让学员毕业后真正具备两年左右软件开发经验。

我们的课程有如下几个优点:

1、价格低

市面上很多.net培训班的收费都要上万元,为了帮助更多的同学掌握实实在在的就业技能,传智播客决定改变这种培训暴利的行业“潜规则”,让同学们得到真正的实惠,我们的“.Net 就业培训班”学费仅需5800。同时我们保证“低价高质”,降低价格并不会使得您学到的东西打折扣,学更多的东西花更少的钱,怎么算怎么划算!

2、师资强

传智播客拥有非常强的师资力量。比如著名的培训大师张孝祥、著名Java培训讲师黎活明。

值得一提的是,本次的“.Net 就业培训班”的领衔主讲老师杨中科,他曾经任职于微软中国、金蝶软件等公司,著有《自己动手写开发工具》、《程序员的SQL学习笔记》、《J2EE开发全程实录》、《专家手记——AJAX开发实战》等技术图书,主持或参与过招商局集团、中国工商银行、深圳发展银行、湖南烟草局、力诺集团等大中型企业的信息系统建设,他创建了专门为计算机专业在校生提供学习指导的网站如鹏网(www.rupeng.com ),他撰写的文章和录制的视频教程帮助无数的同学走出迷茫,也因此获得了“CSDN学生大本营2009年度十佳老师”的称号。

下面是一些学生给杨中科老师的评价“听杨老师讲课有一种醍醐灌顶的感觉”、“杨老师讲课真牛B”、“讲课很认真,每个学生可能犯的错误都考虑到了”、“我觉得杨老师讲的非常的好,很适合初学者来学习,我很喜欢老师的讲课方式”、“我觉得杨老师比现实中的某些老师尽职多了, 这才是老师!”

3、项目真

传智播客的培训课程中用的项目案例都是真实的项目,而不是那些玩具级别的演示项目。要知道同样叫“客户信息管理系统”,有的可能是一个初学者花了3天写出来的玩具级别的,有的则是多名资深软件工程师耗时几个月开发出来的,做为要参加培训的人一定不能被“客户信息管理系统”等这样的名字忽悠,要看看它是不是实际的项目。本次“.Net 就业培训班”采用的三个项目都是真实的项目,分别是合同额35万的省级呼叫中心、省级进销存系统、运营两年的网站。

4、课程内容领先

传智播客紧跟行业最新技术的动态,将行业中应用最广的最新的技术引入课堂教学,传智播客是目前唯一一个将微软最新.Net 4VisualStudio 2010技术引入教学的培训机构,并且将WFWCFWPF/Silverlight等微软主推的新技术融入到项目案例中,保证学员学习的时候就站在了行业的最高点。

杨中科老师任职于微软公司,能够接触到微软的内部资源,从而先一步得到微软的最新技术动向、最新的开发工具、内部的技术资料等,从而保证学员学到的是微软最新、最主力推广的技术。

教学方式:实地培训,人手一机;

培训地点:北京;

开班时间:20104月;

培训周期:3个月;

课程内容、报名方式等点击此处查看招生简章

最低的价格、最强的师资、最真实的项目、最新的课程内容,还等什么,快来报名学习吧!

posted @ 2010-02-02 00:11 CowNew开源团队 阅读(1204) | 评论 (0)编辑 收藏

这两天一张“有图有真相”的图片在各大论坛和QQ群中疯传,内容如下:

目前热播的电视剧《蜗居》第24集3:30秒截图,在小贝 的 桌子上那本书放大看是《大规模C++程序设计》,说明小贝是程序员。小贝被宋思明(市长秘书)戴了绿帽子。为无数想为 软件开发献身的人士叹惜呀。搞了一辈子C++,结果老婆跟了宋思明。 这部电视剧深刻揭露了程序员的悲剧性。相信这个重大发现将彻底粉碎那些少年们对程序员这个职业的向往,这个时代女生不会因为你写了一个搞笑程序而嫁给你。
建议广大程序们建议你们周围的少男们看一下蜗居,如果他以你为荣,以后想当程序员。你可以告诉他,小贝就是程序员,然后告诉他宋思明是公务员。相信他就会重新考虑自己人生的选择了!!!!!!!!!!


本以为发帖子的人只是拿来开玩笑
    但是看了很多网友、同学的回帖却明显感觉气氛不对,很多同学竟然貌似很严肃的对待了这件事情,纷纷说“嗨,搞计算机真没前途,还是当官好”、“当程序员没前途哇,都被人当绿帽子了”、“不学计算机了,看似是白领,没想到房都买不起,自己女朋友被宋思明拐跑了”、“不学编程了,去考公务员吧!”。本以为这些网友会“放下程序,拿起公务员考试题”呢,没想到在另外一个帖子里又开始再跟别人讨论魔兽攻略了。我才明白小贝不是可悲的,这些人才是可悲的。

    在这些人心中“当程序员的小贝被当公务员的宋思明抢走老婆”只是他不去学计算机、不在计算机行业深入研究的增加一个借口而已。“反正毕业也找不到工作不学习了”,这样就有借口不去上课了;“搞计算机的是吃青春饭的,没前途”,所以就蒙起被子继续睡大觉挥霍用来吃饭的青春;“宿舍老三的老爸是局长,人家毕业后直接回家当科长,咱们好好学不还是失业吗?算了”,然后继续在电脑上打WOW; “如鹏网里经常和我聊那个function321拿到一大堆公司的offer,那是人家有计算机天赋呀”,然后继续看着《火影忍者》等待天赋降临;“隔壁宿舍老大人家在学校里自己就开公司,现在赚的钱都自己买了别克商务车了,嗨,咱们毕业还要写代码混饭吃”,放下翻了没有两页的《C程序设计》仰天长叹。逃避奋斗总会有理由的!

    有人说“这个社会是不公平的”,我却说“这个社会是非常公平的”。“宿舍老三的老爸是局长,人家毕业后直接回家当科长”那是人家老爸奋斗的结果; “隔壁宿舍老大人家在学校里自己就开公司,现在赚的钱都自己买了别克商务车了”,那是人家自己钻研经商之道奋斗出来的结果;“宋思明有能力帮海藻买房、买衣服,给小贝戴绿帽子”, 那是人家宋思明在没有硝烟的官场上出生入死当上市长秘书的结果。成功的人总是有成功的理由,理由不尽相同;失败的人失败的理由却永远永远相同,那就是——懒惰。

    还是我以前在《【解惑】专科生在IT的发展之路》这篇文章中说的那句话“社会上有成功的人永远都是少数人,做任何事情都是只有20%的人成功,另外80%的人都是失败的”。以《蜗居》中的宋思明为例,大家都认为宋思明当了公务员,走上了仕途,所以才现在风风光光,可是你知不知道有大把的公务员熬了一辈子临退休连个最小的副科长都没熬上的,有很多人好不容易考上公务员没过几年却由于自己后台不硬、没讨好领导、得罪有背景的同僚被淘汰……,最后能走上宋思明那样地位的人少之又少。而且宋思明也并不是真的那样风风光光,他要防着别人捅刀子,要保证自己的那些违法乱纪的勾当不被揭穿,宋思明容易嘛?

    有人总是说“搞计算机毕业就失业”、“搞计算机的小贝买不起房子”,先不说网易的丁磊、巨人的史玉柱、金山的求伯君、CSDN的蒋涛、江民杀毒的王江民、discuz的戴志康、金蝶的袁红岗等等这些计算机技术出身的成功人士,就是在中关村混了三五年、年薪十万以上、能全款买下一套好房的程序员也一大堆,当然更多的程序员是混了三五年还是月薪三四千的月光族。非常正常!正符合我说的“做任何事情都是只有20%的人成功,另外80%的人都是失败的”的这个说法。公务员中混的好和IT认识中混得好的一样,公务员中混的差和IT认识中混得差的也没什么不同。
    别让“当程序员的小贝被当公务员的宋思明抢走老婆”这样的话成为你逃避的理由,如果想在IT这行混下去,继续努力,即使成不了求伯君,也至少能弄个年薪十万。如果没有在IT行业混下去的想法,希望成为下一个宋思明的话,那么抓紧关掉魔兽、叠好被子,拿起公务员考试的书,然后发动你七大姑八大姨看看有没有亲戚当局长的,当上公务员以后把握风向、跟对队伍,早日完成你光宗耀祖的目标。


成功的人是不同的,失败的是却是相同的!

posted @ 2009-12-15 16:36 CowNew开源团队 阅读(14551) | 评论 (43)编辑 收藏

php中可以使用strlen或者mb_strlen计算字符串的长度,但是这些长度计算的都是在计算机中表示的长度,并不是实际在屏幕上显示的宽度。如下图(使用的是arial字体):


最理想的实现方式是使用imagettftext计算字符串使用特定字体显示的宽度:
function tf_strlen($str)
{
 return ceil(tf_strwidth($str)/tf_strwidth('测'));
}
function tf_strwidth($str)
{
 $im=imagecreatetruecolor(10,10);
 $r=imagettftext($im, 12, 0, 5, rand(14, 16),0, 'arial.ttf', $str);
 return $r[2]-$r[0];
}

需要在本地计算机的字体文件夹中找到'arial.ttf',然后上传到php页面同级的目录下。这样调用tf_strlen得到的就是字符串在屏幕上的显示宽度了。但是因为imagettftext是GD级别的操作,因此效率非常低,编写下面的程序验证

$begin=microtime(true);
$im=imagecreatetruecolor(1000,1000);
for($i=0;$i<10000;$i++)
{
imagettftext($im, 12, 0, 5, rand(14, 16),0, 'arial.ttf', "rupeng.com 如鹏网 在校不迷茫,毕业即辉煌");
}
$t1=microtime(true)-$begin;
echo 'imagettftext:'.$t1.'<br/>';
$begin=microtime(true);
for($i=0;$i<10000;$i++)
{
strlen("rupeng.com 如鹏网 在校不迷茫,毕业即辉煌");
}
$t2=microtime(true)-$begin;
echo 'strlen:'.$t2.'<br/>';

echo $t1/$t2.'<br/>';

运行后发现imagettftext的运行时间是strlen的4000多倍,太慢了,而且CPU占用率非常高,因此被否定。

经过观察发现arial字体下,汉字的宽度是一致的,而1、i、l等字符的宽度大约是汉字的0.4倍,而阿拉伯数字(除了1)的宽度则是汉字的约0.7倍,小写字母(除了i、l等)的宽度是汉字的约0.7倍,大写字母则是汉字的0.8倍,其他字符也可以得出相应的倍率。因此我编写了下面程序用来计算字符串占的宽度(单位是1/2的中文宽度)。

function arial_strlen($str)
{
 $lencounter=0;
 for($i=0;$i<strlen($str);$i++)
 {
  $ch=$str[$i];
  if(ord($ch)>128)
  {
   $i++;
   $lencounter++;
  }
  else if($ch=='f'||$ch=='i'||$ch=='j'||$ch=='l'||$ch=='r'||$ch=='I'
  ||$ch=='t'||$ch=='1'
  ||$ch=='.'||$ch==':'||$ch==';'||$ch=='('||$ch==')'
  ||$ch=='*'||$ch=='!'||$ch=='\'')
  {
   $lencounter+=0.4;
  }
  else if($ch>='0'&&$ch<='9')
  {
   $lencounter+=0.7;
  }
  else if($ch>='a'&&$ch<='z')
  {
   $lencounter+=0.7;
  }
  else if($ch>='A'&&$ch<='Z')
  {
   $lencounter+=0.8;
  }  
  else
  {
   $lencounter++;
  }
 }
 return ceil($lencounter*2);
}

经过大量的测试,发现和imagettftext的运行结果非常接近,而速度则比imagettftext高很多,CPU占用率也低很多。
解决思路对于其他语言,比如C#、Java等都适用。

posted @ 2009-11-15 14:06 CowNew开源团队 阅读(4014) | 评论 (5)编辑 收藏

今天和一位朋友(微软的资深架构师,按照年龄、阅历分,我叫他老师)吃饭,聊到他的爱好,他喜欢国学和习武,聊到国学的时候,他就说现在他在做一个网站,就是传播真正的国学,而不是像易中天那样披着学术的名义说评书。我问他搞这种真正的国学会不会不像易中天那样“大话国学”那么流行、那么赚钱,他说“我只是想传播一种正确的思想,相信大家都会有能力辨别正确的思想,当大家知道那些人是在恶搞国学而我是在真正的弘扬国学的时候,人的趋向争取东西的本性就会使得他接受我的正确的东西,而且会把这种正确的东西传播给其他人”。想一想这和我在如鹏网的工作也是有相似点的,现在主流的宣传口号都是“大学里学的东西过时了,没用了”,因为这是符合宣传这种想法的人们的利益的,而我在传播的“大学里学的东西永远不过时,只是需要同学们多动手”也是“非主流”的,但是是我认为正确的,这种正确的思想也在使越来越多的同学"趋向争取东西的本性就会使得他接受我的正确的东西",而且有很多同学都是靠“正确的东西传播给其他人”的这种方式知道我的这些想法的。

又谈到哲学的问题,说到很多人学哲学的时候都是死记硬背那些哲学的原理,背了半天什么真正的东西都没学到;而有的人则是看了古今中外的很多史料、案例,悟出一些道理,然后再来看那些哲学的原理,发现这些哲学原理都很容易的和之前学的史料对应上,这样轻松的就从本质上掌握了这些哲学的原理。我又联想到同学们学计算机,很多人把编程语言当成理论学,背关键字、背函数、背代码片段,到头来什么都没学到,而有的人则一边学一边练程序,练过大量程序以后再来看书指导自己的实践,反正掌握的更牢靠。

接着又谈到了关于武术的问题。他说在练武术的时候很多人都去学那些套路、招式,最后学到的只是花拳绣腿,真正的武术大家是不看重那些招式的,他们那些招式都是在实战中悟出来的,没有定法,灵活运用,两次不同的实战中用到的都是不同的招式。而那些招式只是给想“学学玩”、“学一学到别人面前显摆”的人用的,让他们学上两招去唬人,是一个玩具而已,其实什么用都没有,要想学到真正的武术必须下苦功自己练,多实战,然后自己悟。和学计算机一样,很多人学黑客,其实就是拿一些真正的黑客开发出来的黑客工具“玩一玩”,满足一下虚荣心而已;有的人学编程则学一大堆MFC、Struts之类的框架、工具,到处炫耀自己“懂得高级编程技术”,到最后却连最基本的一个for循环都写不好。

最后还谈到了学哲学中的“只和一个师傅学”,他的一个朋友去学哲学,问师傅世界上这么多哲学的书什么时候能看完,师傅告诉他只看一本书就可以,他用了五年的时间看这一本书,然后五年后师傅把其他的哲学书拿到他面前,他翻了翻就说“师傅我明白了,这么多不同的书其实本质上都是说的一样的道理,不用看其他的书了”。我又联想到同学们学计算机,有的同学刚学C++的时候就惊呼“听人说有好多C++的经典书《Essential C++》、《Thinking in C++》 、《C++ Primer》 、《Exceptional C++》、《More Effective C++”》……是不是要都学完才是掌握了C++,这要学到身边么时候呀?”,我和他说“你把你现在学的C++的教材学好了,每个程序都能熟练的写出来,然后再回头看这么多不同的书其实都不值得看了”,事实也是如此,经过半年多的苦练,等他回来再翻这些书他说了一句话“这些当年我想像的大部头现在翻起来都大同小异,每本书能挑出5页对我不同的东西都很难”。

万物通一理!

posted @ 2009-11-04 18:51 CowNew开源团队 阅读(3301) | 评论 (5)编辑 收藏

昨天和朋友去吃饭,本打算去海底捞吃的,没想到还需要排号,很多人都在等着排号,太火爆了。当时和朋友开玩笑说“这个店要是我的我就发达了”。
以前就听说过海底捞的故事,说他们的管理文化是多么的特别,才造就了现在的火爆场面。那天根本没有在那里吃,人太多,转了一圈就出来了,但是就是转这一圈就感触颇深:由于外面冷,里面热,进了门眼睛立即就一片雾蒙蒙,没想到服务员立即就递上来一片擦镜布,这种做法绝对不是总部传下来的“旨意”,而是一线的服务员发现的问题,立即就能想到更好服务顾客的办法,是一线员工在做决策,而不是靠一个领导来做决策;在等坐的时候服务员把你引到等坐区域,上来热饮,还告诉傍边的小吃、水果都是免费的,随意取,看旁边还有等坐的人在打牌、下棋,对于很多“利润为王”的餐厅来说,绝对不会让一个等坐的客人随意喝热饮、随意吃小吃,甚至只是在那坐了一下没吃饭也要收服务费,因为在他们心中“那都是成本”,而海底捞做到了,所以海底捞火爆了;在我们因为人太多,决定不在海底捞吃的时候,服务员竟然还主动送上一包火锅底料做为道歉,这就是传说中的“只要把顾客服务高兴了,一线员工有权利支配餐厅的资源,无需请示主管”。


岂有不火爆的道理。以前我总是崇拜西方科学的管理方式,现在慢慢感觉到曾仕强先生的《中国式管理》是有一定道理的。

引用一些网络上关于海底捞的资料:

虽然早已对海底捞的火暴有所耳闻,但在炎热的夏季夜晚,围绕着数十张小方桌的上百位等位者所制造出的喧闹气氛和巨大声浪,还有他们似乎超出常人的耐心,还是显得令人讶异。

凡来过海底捞的人,恐怕都很难不对细致入微的服务留下强烈的印象,有人夸张地称之为“变态伺候”:顾客入座后,立马会送上绑头发用的皮筋、围裙、手机套,就餐期间会有服务员不时递上热毛巾。更深的感触是服务员个个精神饱满,快乐感染了每位顾客。在“大众点评网”上,很多顾客对这种贴心服务感到“受宠若惊”, 感慨“终于找到了做上帝的感觉”。

  到目前为止,海底捞无疑是一个成功的商业故事,有管理学教授跟踪探访海底捞的商业智慧。在餐饮业中,火锅是对食物烹调要求相对较低的一种。缺乏差异化使得火锅业竞争异常激烈,经营者往往会尽量降低运营成本而与竞争对手区分开。但这些途径往往很快被整个行业复制,包括曾经被披露的反复使用锅底等行业黑幕。海底捞的菜品在顾客中以干净、新鲜以及分量适宜而著称。结合他们的超品质服务,我们不免好奇海底捞的利润如何,又来自哪里?

  也许正如海底捞自己的广告语:“好火锅自己会说话”,它每年3亿元的营业额来自这些表象下面埋藏着的未知的内在驱动力。

  被误解的海底捞

  所有顾客都是“上帝”吗?

  在张勇看来,顾客满意度和忠诚度要远比简单的利润加减法重要得多。他们所提供的无与伦比的服务,似乎也证明了他们在争取每一位顾客时付出的努力。 海底捞的北京分店大部分时间能保持每晚高达3到5桌的翻台率,堪称餐饮界的奇迹。海底捞不断在菜品与服务上创新,以求为顾客带来意想不到的体验,但并非每一位等待要求被满足的顾客都能在海底捞如愿。

  有人曾经借机问过张勇:“3个小时的等位时间对一些人来说未免太漫长,他们不在乎免费茶水,也不需要擦鞋美甲,你将如何吸引这些顾客?”

  张勇的回答简单而干脆:“对时间过于敏感的顾客不会选择吃火锅,也就不会选择海底捞。”

 海底捞的一线服务员都拥有免单权,既简化了流程也加强了服务员应对特殊情况的能力。但也有一些顾客曾利用海底捞这一特色蛮横强行要求免单,这些人的要求当然就不会被满足,同时也不会被任何企业或个人所欢迎。

 给顾客不可替代的非常体验,令其非常满意,并不是件容易的事,但恰恰激发了员工的创造性。在海底捞的企业内刊上,有很多员工亲自撰写的工作感受,其中有很多是对提高顾客忠诚度的感悟。北京七店的客户经理被员工亲切地称为“干妈”。她的能耐让很多新员工佩服,一问今天哪儿有老顾客?干妈都会顺畅地回答道:“大厅96号,苏打水宋哥;大厅1号,爱美甲的张姐⋯⋯” 任何关于老顾客的问题,她都能倒背如流地回答。

     海底捞的员工很少从社会招聘,大部分是现有员工介绍来的亲戚朋友。在大家彼此都熟悉的环境里,无论好的或是坏的,都容易蔓延和生长。作为公司的创始人,张勇在极力推行一种信任平等的价值观。在接受采访的当天,袁华强刚刚召开了一个会议,起因是一些门店发现酒水的管理不够完善,晚上盘点时发现时多时少。有人提议应该加大对相关员工的惩罚力度。袁华强觉得这事可能是客人要酒,服务员太忙,忘了;后来客人再要的时候,服务员为了避免客人不满,就来不及在系统里下单,直接从吧台提酒了。如果不问原因,一律加大惩罚力度,那么对员工来说,很简单,为了不被惩罚,就照章办事,让客人等着呗。“不要因为这点小事情把员工的积极性给挫伤了,一个服务员的积极性比一瓶五粮液值钱多了!”袁华强相信,这种事大多是员工偶然疏忽造成的。最后确定的处理办法还是具体事情要具体分析处理。基于一切以为客户服务为重和对员工的信任,海底捞给一线服务员的授权很大,包括可以为客户免单的权力。每个员工都有一张卡,员工在店里的所有服务行为,都需要刷卡,记录在案。这种信任,一旦发现被滥用,则不会再有第二次机会。

  “公司给你的总是超出预期,所以就会死心塌地地为公司干。”2007年7月通过猎头公司进入海底捞的现任物流中心副总的高岩峰,这样谈出自己的体会。刚进入公司一个月,他就参加了公司安排的西交大MBA为期1年的学习,每次上课来回的飞机票和其他费用都由公司方面支付。今年年初,公司又把比较核心的技术部门交给过去并无经验的他来管理,对于他这个“外人”而言,“实在是没想到”。高岩峰在公司里被大家称为“高老师”,因为有些员工拜他为师,学习采购和物流管理。

  经朋友介绍,小厉进入公司才一个多月,脸上的笑容很由衷,“生活上没什么好担心的,只要好好干就行了。”年轻的她已经听到公司里很多从普通的服务人员升到领班甚至店经理的例子。一位顾客想再要一个火锅小料,开玩笑地问她:“能送吗?”迅速地思考了一下,小厉爽快地说,“能,我去给您拿!”

  鼓励每位基层员工参与创新,是海底捞信任平等的价值观里的重要组成部分。公司总经理办公会为此专门下了文件,员工提出的每项创新建议都会有专门的记录和片区经理的意见及总经理评价。因为这项工作,诞生了诸如“鱼滑”、“虾滑”等专门的制作模具,这些已被公司广泛推广。

      海底捞对干部的考核非常严格,在张勇的办公室墙上,张贴着对店长以上干部的考核表,考核分了多个项目,除了业务方面的内容之外,还有创新、员工激情、顾客满意度、后备干部的培养,每项内容都必须达到规定的标准。"我们优秀店长的产生不跟他所管理店的命运成正比,评选优秀店长不看他赚了多少钱,看的是员工激情,看的是顾客满意度,看的是后备干部的培养。他哪怕赚很多钱,他的利润始终是公司最高,也很可能由于在这几个问题上出了漏洞而被撤掉,比如不久前牡丹园的店长被撤掉了,他在我们公司的业绩也很好,但就是员工激情和顾客满意度达不到。"

    这几项不易评价的考核内容,海底捞都有自己衡量的标准。例如"员工激情",总部不定期的会对各个分店进行检查,看员工的注意力是不是放在客人的身上,看员工的工作热情和服务的效率。如果有员工没有达到要求,就要追究店长的责任,"你平时是怎么要求的?你是怎么带动的?"一次可以原谅,可以给机会,几天后再派人检查,员工的服务是否快速、准确、热情,是否能够马上完成顾客的要求,是否快速准确,大方得体。

    海底捞的店长都有很大的权利。总部每月会拿出利润的一部分作为每个店的奖金,这些奖金全部由店长来分配,他必须全面考察下属的业绩,如是大家都没有达到要求,不分也可以,只是唯独不能分给自己。海底捞目前的直营分店已有17家,分布于西安、北京、郑州、上海,这么多分店,分配结果又都是各店自己报告上来的,如何保证每位管理者都能真正做到公平公正?张勇告诉记者,"有不公正的可能,但是千万不要太明显,他的一切作为必须让绝大多数员工接受,如果大家不能接受的话,他的领导力与影响力会下滑、业绩会下滑。"并且,海底捞有一个公开信息源监督制度,每一个分店都会选举两个普通员工做信息源,对本店管理方面出现的一些问题以书面形式向总部反映,每个月都必须要有,张勇看过后,再转到监察部备案、核实。如果确定反映的问题属实,就会转给该部门的领导进行处理。

    尊重与关爱,创造和谐大家庭

    海底捞的管理层都是从最基层提拔上来的,他们都有切身的体会,都了解下属的心理需求,这样,他们才能发自内心地关爱下属,并且给予员工工作与生活上的支持和帮助,同时也得到员工的认可。张勇笑着举例,"如果将北京区的总经理换成一个从美国回来的博士,相信不到半年就乱套了。员工不认可你,你讲的再好,你的理念再好,员工与你不是一条心,不听你的,没办法!"

    海底捞的员工,大部分来自农村,他们的需求非常简单,有时候管理层多冲他笑一笑,给他一个领班,给他一个机会,他就满足了。

    在海底捞,尊重与善待员工始终被放在首位。从2003年7月起,海底捞实行了"员工奖励计划",给优秀员工配股,以西安东五路店作为第一个试点分店,规定一级以上员工享受纯利率为3.5%的红利。2005年3月,又推出第二期"员工奖励计划",以郑州三店作为员工奖励店给优秀员工配股,并且经公司董事会全体董事一致同意,从郑州三店开始计算,公司每开办的第三家分店均作为员工奖励计划店。

    海底捞的管理人员与员工都住在统一的员工宿舍,并且规定,必须给所有员工租住正式小区或公寓中的两、三居室,不能是地下室,所有房间配备空调、电视,电脑,宿舍有专门人员管理、保洁,员工的工作服、被罩等也统一清洗。若是某位员工生病,宿舍管理员会陪同他看病、照顾他的饮食起居。

    海底捞的所有岗位,除了基本工资之外,都有浮动工资与奖金,作为对员工良好工作表现的鼓励。同时,考虑到绝大部分员工的家庭生活状况,公司有针对性的制定了许多细节上的待遇:在海底捞工作满一年的员工,若一年累计三次或连续三次被评为先进个人,该员工的父母就可探亲一次,往返车票公司全部报销,其子女还有3天的陪同假,父母享受在店就餐一次;工作年满一年以上的员工可以享受婚假及待遇;工作满3个月以上的员工父母去世,该员工可以享受丧假及补助;工作3年以上的员工可享受产假及补助;若夫妻在同一地区工作,只要有一方工作满半年,在外租房就可以享受每月60元的补助,已婚的店经理则可享受400元以内的住房补助;店经理小孩3岁以下随本人生活的,还可享受每月300元的补助……

    在尊重与善待员工的问题上,海底捞还有不少"创意".例如,将发给先进员工的奖金直接寄给他的父母。张勇说,"这不仅仅是400块钱的事情,400块钱对于农村也许很重要,但更重要的是,他父母有了荣耀。

    海底捞的员工,有很多都是亲属,这在许多企业都是禁止的。张勇却认为,"正因为员工在海底捞获得了尊重和认可,同时他也认可了这里的工作环境与和谐的氛围,他才会介绍亲戚朋友们来。"

    关于员工的夫妻生活、子女教育问题,许多企业规定,服务员不能和厨师谈恋爱,高级管理人员配偶不能与其在同一个地区同一个城市,"这种规定是很不人道的,我们的做法相反,会尽量把他们吊在一块儿,让他们一起工作,一起生活。公司会发给他们补贴,鼓励他们住在一起,并且把孩子带着身边,自己照顾和教育孩子。"不仅如此,海底捞店长以上的干部,公司还会帮助他们联系其子女入学,并且代交入学赞助费。

posted @ 2009-11-04 18:50 CowNew开源团队 阅读(2145) | 评论 (2)编辑 收藏

现在有的网站为了防止其他人转帖他们的内容而不写“转帖自。。。”,在你复制它网页内容的时候会自动增加“本文来自于如鹏网”这样的额外的文字。这本来无可厚非,但是它们的原理是首先监听用户的复制事件,当复制动作发生的时候取得用户选择的内容,在内容后添加“本文来自于如鹏网”,然后在用clipboardData.setData设置新的粘贴板内容,但是clipboardData.setData只支持Text、URL两种格式,无法设置HTML格式的粘贴板内容,因此造成复制出来的内容粘贴的时候一些html格式都丢失了,比如字体颜色、表格等等,非常麻烦。
如果使用Maxthon浏览器,有如下两种解决思路:
1、思路1
(1)选中要复制的部分,点击右键选择“查看选定区域源代码”;
(2)在弹出的记事本中将文件另存为htm文件,也就是文件名中输入“1.htm”之类的带htm后缀的文件名。
(3)用浏览器打开刚才保存的htm文件,全选,复制就可以了。
2、思路2(推荐方法)
(1)选择主菜单的【工具】→【内容控制】→【禁止运行Javascript】,然后就可以任意的复制而没有“零碎”了
(2)复制完了再次选择主菜单的【工具】→【内容控制】→【禁止运行Javascript】,将【禁止运行Javascript】前的勾选去掉即可。

使用普通的IE浏览器有如下两种解决思路:
1、思路1
(1)选中要复制的部分;
(2)在地址栏中输入
javascript.:var bjSelection = document.selection;var bjTxtRange=objSelection.createRange();clipboardData.setData("text",objTxtRange.htmlText);alert("复制成功");
然后回车,这时候IE7、IE8浏览器可能会提示是否允许操作剪贴板,点击【允许访问】即可。
(3)打开记事本,Ctrl+V粘贴,然后另存为一个htm文件,也就是文件名中输入“1.htm”之类的带htm后缀的文件名。
(4)用浏览器打开刚才保存的htm文件,全选,复制就可以了。
原理就是地址栏中的javascript代码会被执行,这段代码的作用就是将选中部分的HTML拷贝到剪切板中(关于代码的详细解释参考这篇文章《 取得网页选中部分HTML的方法 》 ),由于添加“零碎”的代码没有对此进行控制(也无法控制),因此复制出来的HTML就是没有零碎的了,保存成htm再复制就带格式同时没有零碎了。

2、思路2 禁用javascript
(1)打开internat选项,选择安全标签,
(2)点击下方的自定义级别,这时会弹出安全设置对话框,拖动滚动条找到图示脚本-活动脚本,并选择禁用;
(3)再复制内容就不会有零碎了。

原理:因为添加“零碎”的原理是监听用户的复制事件,然后向复制的内容中添加“零碎”,这些逻辑都是javascript代码,我们禁用IE的javascript,这样那些代码就不会执行了。

很显然Maxthon中的两种方法和IE中的两种方法原理都是一样的,不过Maxthon的功能帮我们省了很多事情。
posted @ 2009-10-22 16:40 CowNew开源团队 阅读(1240) | 评论 (0)编辑 收藏

昨天网站虚拟主机提供商发送提醒邮件说我的网站“如鹏网”流量超标了,很奇怪,上个月流量用了一半多一点儿,这个月网站访问量并没有明显的上升,怎么会这个月才过20天就流量超标了呢?到网站后台查看流量报表才发现agent.php消耗了31%的流量,将近1/3呀。

agent.php就是为“如鹏助手” 提供数据的api页面,默认如鹏助手每10秒钟就会向这个页面请求最近50条新帖和50条新回复。当时开发的时候也考虑过这个功能会不会对网站流量有非常大的消耗,但是当时没有进行科学的计算,想当然的认为不会。但是现在仔细一算,50条新帖、50条新回复的信息估计有100K,那么每分钟请求6次,假设每天监控15小时,每个月30天,那么一个月的流量就是100K*6*60*15*30=16200000k=16200M=16.2G,恐怖呀!!!网站每月限定流量是45G,正好是16.2/45=36%,估算和报表中的31%差不多。

因为网站流量已经超标,因此必须买额外的流量才能保证网站正常运行,10G的流量一个月20元,买流量就要买足剩下10个月的,10个月就是200元,本来这部分花费是可以避免的。当初花几分钟算一下就不至于犯这种错误!

不要再拍脑袋,要科学的计算!!!!!!!!!

为了减少如鹏助手流量消耗,我做了如下的优化:
1、agent.php不再传输全部的帖子内容,帖子正文只传输前50个字。
2、去掉agent.php传输帖子中的空格等无意义字符。
3、因为如鹏网现在发帖量不大,没必要每次显示50条最新贴,因此改为只传输10条最新贴。
4、在agent.php头部加入“Ob_Start('ob_gzhandler');”,也就是启用GZip压缩网页,减少网页的流量传输。
5、降低如鹏助手的刷新频率,由10秒刷新一次改为60秒刷新一次
经过本次优化,10条新帖、10条新回复的信息估计有6K,6K*1*60*15*30=162000K=162M=0.162G。这样流量消耗基本可以忽略不计了。

不要再拍脑袋,要科学的计算!!!!!!!!!
posted @ 2009-10-20 12:06 CowNew开源团队 阅读(2358) | 评论 (5)编辑 收藏

修改于http://blog.csdn.net/majianan/archive/2008/12/30/3646565.aspx
使用的这个TabPane已经有了TabPane的所有功能。
不过我想增加一个功能,就是:
1、每隔一段时间,选项卡自动切换到下一页。
2、当用户点击TabPane内任意一个选项卡的时候自动切换停止。

代码下载: http://bbs.blueidea.com/viewthread.php?tid=2952907&page=1&extra=page%3D1

使用方法参考附件rupengtabpane.zip中的test.htm
TabPane类构造函数有三个参数,第一个参数是占位div的id,第二个、第三个都是可选参数,第二个为自动切换的时间间隔,单位为秒,默认值为10,第三个为是否启用自动切换,默认值为true
tabPane.js中还提供了一个function randint(m,n)函数,用于产生一个changeTabInterval的随机数,防止页面上TabPane过多,如果设置的changeTabInterval都一样的话会产生整齐划一的切换的效果,不好看,因此用它产生随机的Interval给TabPane类构造函数的第二个参数。

                                   <script>
                                 var tp = new TabPane("divGlobalNew",15);
                                 tp.addTabPage({title:"论坛新帖" ,width:80 ,panel:"divGlobalNewThreads"});
                                 tp.addTabPage({title:"论坛新回复" ,width:80 ,panel:"divGlobalNewReplies"});     
                                   </script>  
       
演示地址:http://www.rupeng.com/forum
posted @ 2009-10-14 13:45 CowNew开源团队 阅读(1971) | 评论 (1)编辑 收藏

假设Jetty监听的端口是8080,
1、首先修改/etc/lighttpd/httpd.conf,查找

server.modules=部分
不要动"mod_proxy_core"等前面的注释,在之前插入"mod_proxy",
保存,退出。
2、进行代理设置,修改/etc/lighttpd/httpd.conf(如果使用的是kloxo之类的虚拟主机管理系统,那么修改/etc/lighttpd/conf/kloxo中相应虚拟目录下的可能更好,比如我修改的就是/etc/lighttpd/conf/kloxo/lighttpd.so.rupeng.com)
在尾部增加:
$HTTP["host"]=="so.rupeng.com"{
proxy.server=(""=>(("host"=>"127.0.0.1","port"=>8080)))
}

3、执行“/etc/init.d/lighttpd restart”重启lighttpd即可。



posted @ 2009-10-10 16:15 CowNew开源团队 阅读(1192) | 评论 (0)编辑 收藏

看很多人在乐此不疲的找卡巴斯基的Key。其实kav一年的key才30块钱,花几十块钱买个key够用1年的,省得浪费时间再去找key。浪费找key的时间不止30块钱吧?
就按月薪9000算,一天平均300元,平均一小时30元,想一下一年时间用来找key的时间早就超过1小时了吧,看起来是省钱了,其实是浪费了
posted @ 2009-10-01 15:06 CowNew开源团队 阅读(853) | 评论 (2)编辑 收藏

有时候需要在discuz基础上增加一些自定义的功能,不免要自己建表,自己建表就涉及到数据备份的问题,一般情况下就要写自己的备份功能。不过在discuz中只要自定义表的表名以discuz表名的前缀开头(一般都是cdb_),那么discuz就会自动将其加入discuz的备份体系。不用单独维护了,:)

如鹏网 http://www.rupeng.com 在校不迷茫,毕业即辉煌
posted @ 2009-09-25 15:41 CowNew开源团队 阅读(338) | 评论 (0)编辑 收藏

前一阵子看我以前一位同事的MSN签名是“面对它,处理它”,感觉收获非常大。以前做事情经常会拖延,以为逃避问题的话问题就说不定自己就解决了,现在每次要给自己拖延理由的时候我都会想起这句话“问题怎么逃避也逃避不了,面对它,处理它”。

比如前两天由于不知道的原因我提交给公司财务部的报销票据财务部找不到了,没法报销,一开始就想“反正就几百块钱,认倒霉了,再去折腾肯定特麻烦,不管它了”。但是朱老师一直催促我说“抓紧办,麻利的!”,我就联系财务部、联系主管领导,用了工作间隙的几个小时时间就办好了,打了几个电话就办成了,根本没有之前想象的那么复杂。
问题没什么大不了的,碰到问题不要想着怎么躲开它,而是用积极的心态去处理它,“面对它,处理它”。

由此想到以前上大学的时候有一段时间学《自动控制原理》的时候看着那些公式推导就头大,碰到一道难题就像“不管它了,先跳过去”,一个晚自习竟然发现自己整晚上都在“跳过去”,根本没做什么事情,后来调整了自己的心态,“蚂蚁啃骨头”一样的啃那些题,发现很快就明白了,其实离以前我“跳过去”的理解程度也没差不多,只不过多努力了一点儿而已。

又想到很多同学学编程的时候,碰到一个难写的程序、莫名的bug,只要稍微解决不了了,就开始抓狂,并且质疑自己“是不是处理不了这个问题了”,然后就放弃或者去论坛上求助别人,但是很有意思的是看到很多同学在论坛发的提问帖后没几分钟就又自己回复帖子“问题已经解决了”,呵呵,其实遇到问题的时候不要抓狂、不要放弃,“面对它,处理它”,没什么大不了的!

如鹏网上的hackhou同学去年春节的时候一直不找工作,我和他交流,发现他的想法是“找工作太麻烦,不想去想,还是自己在家里写程序能忘掉烦恼”,我就劝他“现在的主要问题是去找工作,而不是用写程序麻醉自己;你躲着求职并不会使你找工作的问题得到解决,也不会使得工作自己找上门来,快去找工作!”,听了我的建议他出去找工作了,没想到没几天时间就找到了满意的工作!

面对它,处理它;不逃避,直面问题解决问题,问题终将会得到解决的!
posted @ 2009-09-25 11:24 CowNew开源团队 阅读(1721) | 评论 (2)编辑 收藏

package com.rupeng.search.discuz;

import java.net.URLConnection;

import org.htmlparser.Parser;
import org.htmlparser.Tag;
import org.htmlparser.tags.Div;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import org.htmlparser.visitors.HtmlPage;
import org.htmlparser.visitors.NodeVisitor;

public class DiscuzDefaultStyleHTMLParser
{
 private String title;
 private String bodyText;

 public DiscuzDefaultStyleHTMLParser(URLConnection urlConnection) throws ParserException
 {
  Parser parser = new Parser(urlConnection);
  HtmlPage visitor = new HtmlPage(parser);
  parser.visitAllNodesWith(visitor);
  this.title = visitor.getTitle();
  NodeList nodeList = visitor.getBody();
  final StringBuffer sb = new StringBuffer();
  nodeList.visitAllNodesWith(new NodeVisitor() {

   @Override
   public void visitTag(Tag tag)
   {
    //因为主题、回帖都是包含在Div里,而且主题、回帖的divid都是以“postmessage_”开头
    if (tag instanceof Div)
    {
     Div div = (Div) tag;
     String divId = div.getAttribute("id");
     if (divId != null&& divId.startsWith("postmessage_"))
     {
      sb.append(div.getStringText());
     }
    }
   }
  });

  this.bodyText = sb.toString();
 }

 public String getTitle()
 {
  return title;
 }

 public String getThreadText()
 {
  return bodyText;
 }
}

posted @ 2009-08-13 19:26 CowNew开源团队 阅读(708) | 评论 (0)编辑 收藏

一、关于 realtek hd audio 装不上驱动的问题:
首先,要针对你的操作系统打上微软的音频补丁,本文针对 XP SP2系统。对于SP2系统,请你先打上KB888111补丁,这个网上有下载!搜索一下吧!

打上补丁以后,在设备管理器的系统设备里面出现一个带“!”的“PCI bus”设备,手动安装驱动找到HdaudBus.sys(这个微软的KB888111补丁里面有带的,如果不能自动找到就将KB888111XPSP2解压,commonfiles里可以找到。)开始安装,安装完后会在系统设备里面多出一个微软的UAA BUS 的设备驱动,重启以后自动安装驱动就可以了。

这时,驱动安装就已经完成。

其实sp2以后的系统这个貌似可以自动驱动!

下面说说麦克风无声的问题!

二、安装好驱动后,有时会发现麦克风是灰色的,不能说话的问题:

这个可能是你设置的问题,如何解决呢?

HD audia 是一种新的音频规范,不同于以前的AC97,驱动安装好以后在你的控制面板里和系统的任务栏里面都有一个配置程序。

在这里,我们要先打上HD的声卡补丁,把rtkhdaud.dat文件复制到C:\WINDOWS\system32\drivers下,并必须重新启动计算机。

补丁下载:点击下载

重启后,让我们来看一下realtec的设置,在这里或者在右下角点打开。

然后就到这里。

点上图中的混频器,我们就可以看到,打完补丁后的录制界面会变成下图这样,也就是,下面四项可调了。我产把这四项的声音全部都调到最大,然后选中麦克风(麦克风下面的那个黄点选中)。

接下来看音频输出项(HD Audio output),也就是上一排的重放栏。通过 < 和 > 我们可以看到全部项,注意用红色框圈住的那两项,请取消静音,去掉这两个X,并且音量调到最大。

接着,我们点一下最上面的,和混频器一排的,音频IO,按下图标示1的位置,将喇叭数设为选择8CH,这样设声音会大一些。然后再点2的位置,进入3,接头设置,禁用前面板检测,也就是,在前面打上对勾。

最后,重新插一下耳机和麦克风,注意这里,这也是容易被大家忽视的,一定不能勾选错,选错了同样不能用,具体是这样的:

当你插入耳机时会弹出来下图,一定要选耳机。

 

当你插入麦克风时会弹出来下图,一定要选麦克风。

打开控制面板--声音设备--声音和音频设备

 

高级 -选项--属性

 

选中rear pink in (麦克风要插在后面板的粉红色插口中,插在前面板相应设置Front pink in)

 

这时候麦克风的音量就可以设置了,还可以点高级使用 麦克风加强 (小心震耳朵)

 

这时候再点选项--属性--选中 Audio input 如下图所示

 

确定之后,把录音音量调到最大

 

这时候打开QQ的音量调节,声音输入输出按照下图设置,试试效果吧



http://www.blogjava.net/Files/huanzhugege/Realtek%20HD%20Audio录音声音小的解决方法.zip

posted @ 2009-07-28 23:38 CowNew开源团队 阅读(2336) | 评论 (0)编辑 收藏

远离新版本软件,拒当小白鼠

本文是专门为在校生写的,是看到了很多同学把很多精力放到折腾这种各样的新软件而忽略了正路的学习有感而发,不是针对那些有太多时间研究新东西、有志于改善世界上所有软件、要解放全人类的牛人。
=================================================================================================

刚才帮一个同学解决一个在IE8下在如鹏论坛无法发帖的问题。由于如鹏论坛使用的Discuz系统的验证问答功能对IE8支持有Bug,所以新用户无法发帖。验证问答功能是防止垃圾广告的一个有效手段,但是对IE8、Opera、chrome等非主流浏览器支持有Bug。刚才为了能让这个同学发帖,我就暂时关闭了验证问答功能,但是刚关闭了,就来了一大堆垃圾广告贴。所以我就赶紧又把验证问答功能打开了。所以以后使用IE8、Opera、chrome等非主流浏览器访问如鹏论坛的时候会有这样那样的问题,现在也没有精力解决这些问题,只能满足大多数同学的需求了。
    我以及很多同事都有一个新习惯,绝对不拿新软件尝鲜。因为新软件千好万好,但是经验证明新软件会给我带来麻烦而不是方便。当年XP刚推出的时候,我还在上学,很多同学抢着装,我就还是Win2000坚持不动摇,当时大部分软件都能在Win2000下跑的很好,而很多软件对XP兼容性不是很好,所以他们一直在跟XP做斗争,我则用着Win2000做着该做的事,编着该编的代码。碰到问题当时网上介绍的方法都是在Win2000下的解决方案。这节省了很多时间。毕竟操作系统、电脑只是工具,是要工具为你服务,不是给你添乱。
    还有当初IE7推出的时候,很多人尝鲜用IE7,可是很多网站都对IE7支持有问题,到最后干什么都干不了。而那些用IE6的人则干着该干的事情,一点时间、精力都没浪费。
    IE8推出来了,我相信它很好,我相信它比IE6、IE7都好,比别的浏览器都好,可是有一点,很多网站用IE8看都有问题,那我用IE8干什么,给自己找那个麻烦干什么。有同学说“IE8用起来快”,由于网站对IE8支持有问题导致你你一个帖子半个小时都发不出去,节省的那点时间早就浪费没了。浏览器的目的是上网,不是给别人当小白鼠。我估计早晚有用IE8的那一天,但是那一天是所有网站都对IE8支持没问题我再用IE8。我不当小白鼠。
    Vista推出来了,同学们争着用,可是各个软件在Vista上装的都有问题,那不是给自己找闲事儿吗?竟然还有同学用Windows7,Win7和IE8现在都是测试版,各个软件的兼容程度可想而知,给自己找那个麻烦干什么?等主流软件都支持他们在说吧。有同学说Windows7兼容性可好了,可是再好有XP好吗?只要没有的话你就有可能运行一个别人能跑你不能跑的软件,给自己添那个麻烦干什么。别人在拿着书在运行着代码,你却在为着开发工具和操作系统的兼容性艰苦奋斗着,何必活的那么累呢。
    我现在从事的银行系统软件开发中,一个新技术推出以后必须经过其他客户至少三年的验证和升级以后才会考虑使用,就是基于这样的考虑,毕竟工具是给人用的,不是给人添麻烦的。

远离新版本软件,拒绝当小白鼠!
==================================================
本文是专门为在校生写的,是看到了很多同学把很多精力放到折腾这种各样的新软件而忽略了正路的学习有感而发,不是针对那些有太多时间研究新东西、有志于改善世界上所有软件、要解放全人类的牛人。

posted @ 2009-06-11 10:31 CowNew开源团队 阅读(2297) | 评论 (27)编辑 收藏

首先说一下我的网站(www.rupeng.com)的结构,discuz论坛放在了网站根目录的forum目录下,论坛的附件目录并没有使用默认的/forum/ attachments,而是我把论坛附件也挪到了网站根目录的“/forum_attachments”下,因此我在discuz后台将【附件保存位置】修改为“./../forum_attachments”(discuz文档中说“相对目录务必以 "./" 开头”)。然后同时启用了“远程附件”。
经过上面的修改以后我发现当上传的附件超过“附件尺寸下限”的时候提示“附件文件无法保存到远程服务器,请与管理员联系”,也就是上传远程附件失败。经过调试discuz代码发现了问题所在,确认是discuz的Bug。
Bug在include/post.func.php的ftpupload函数中,如果是上传的远程附件,那么假设$source参数传过来的是“/www/users/cownew.com/forum/./../forum_attachments/month_0906/20090602_8af8as9dfas8du9823898898.rar”,后面的代码把$source传递给了dftp_put函数,但是好像dftp_put函数对这种有点复杂的路径“/www/users/cownew.com/forum/./../forum_attachments/month_0906/20090602_8af8as9dfas8du9823898898.rar”识别有Bug,因此我在ftpupload函数的一开始加入一句“$source=realpath($source)”来将这个复杂的相对路径转换为绝对路径。这样问题就解决了。

我采用的是康盛的虚拟主机,昨天晚上康盛的技术人员整个晚上都在帮我解决这个问题,虽然最终还是我自己发现discuz的这个Bug,但是还是非常感谢康盛的虚拟主机技术人员,他们非常尽职,而且服务器也非常稳定,用康盛的主机一年以来只碰到过两次持续时间不超过半小时的服务器被DDOS攻击和一次MYSQL故障,相对其他IDC来说稳定性已经非常好了,推荐大家使用康盛的IDC。
posted @ 2009-06-02 22:21 CowNew开源团队 阅读(1795) | 评论 (0)编辑 收藏

以前一直使用卡巴斯基杀毒软件,用过半年360安全卫士赠送的卡巴斯基授权文件,又用了一个月的试用版,今天试用到期。看到网上很多人在费劲找授权码,我也试着找了找,但是最终还是决定购买授权码,做一个“正版人”。

我是基于以下几点考虑的:
1、人家千辛万苦开发出来的软件不容易,做为软件从业者的我们更知道开发一个软件的艰辛和耗费巨大的财力,卡巴斯基是非常优秀的杀毒软件,为它的服务付费理所应当;
2、我们是未来的计算机从业者,如果连我们都不尊敬同行,使用盗版软件,以后难道能要求别人尊敬我们的劳动成果吗;
3、也许浪费几个小时能找到能用的授权码,但是浪费这几个小时我可以看看书,可以去做一点其他事情,获得的收入比那几十块钱的正版软件费用多得多。
4、软件的生产商要吃饭,没人会饿着肚子为你开发软件,大家都不肯购买暴风影音,所以暴风影音只有靠在软件中放广告赚广告费,有的人竟然骂暴风影音放广告是“流氓行为”,真不知道谁是流氓。暴风影音在这次DNS事件中的唯一责任就是软件中不应该频繁的重试连接自己的服务器,仅此而已。不花钱用软件人家就要放广告,难道要人家替你免费打工?
5、用盗版软件是违法的;

我购买的是“卡巴斯基反病毒软件2009”一年的授权,全价40元,太便宜了,5月份使用优惠券代码为:232346472323385738 还可以打九折,也就是36元,有购买的同学记得使用这个优惠代码。
posted @ 2009-05-28 14:26 CowNew开源团队 阅读(370) | 评论 (0)编辑 收藏

修改discuzcode.func.php中discuzcode方法,
修改最后一行的return $htmlon || $allowhtml ? $message : nl2br(str_replace(array("\t", '   ', '  '), array('&nbsp; &nbsp; &nbsp; &nbsp; ', '&nbsp; &nbsp;', '&nbsp;&nbsp;'), $message));


 $tempstr= $htmlon || $allowhtml ? $message : nl2br(str_replace(array("\t", '   ', '  '), array('&nbsp; &nbsp; &nbsp; &nbsp; ', '&nbsp; &nbsp;', '&nbsp;&nbsp;'), $message));
 $tempstr= str_replace("&amp;#160;","&nbsp;",$tempstr);//code标签在粘贴一些代码的时候会把一些空格替换成"&amp;#160;"从而出现乱码,这是暂时性的解决策略,不严谨,不过一般没问题 by 杨中科
 return $tempstr;
 

posted @ 2009-05-22 23:29 CowNew开源团队 阅读(298) | 评论 (0)编辑 收藏

1、编写rewrite脚本,编辑/etc/lighttpd/local.lighttpd.conf内容如下:
url.rewrite-once = (
        "^/forum/archiver/((fid|tid)-[\w\-]+\.html)$" => "forum/archiver/index.php?$1",
        "^/forum/forum-([0-9]+)-([0-9]+)\.html$" => "forum/forumdisplay.php?fid=$1&page=$2",
        "^/forum/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$" => "forum/viewthread.php?tid=$1&extra=page%%53D$3&page=$2",
        "^/forum/space-(username|uid)-(.+)\.html$" => "forum/space.php?$1=$2",
        "^/forum/tag-(.+)\.html$" => "forum/tag.php?name=$1"
)
这里假设论坛装在forum目录下,如果是装在根目录下则是:
url.rewrite-once = (
        "^/archiver/((fid|tid)-[\w\-]+\.html)$" => "archiver/index.php?$1",
        "^/forum-([0-9]+)-([0-9]+)\.html$" => "forumdisplay.php?fid=$1&page=$2",
        "^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$" => "viewthread.php?tid=$1&extra=page%%53D$3&page=$2",
        "^/space-(username|uid)-(.+)\.html$" => "space.php?$1=$2",
        "^/tag-(.+)\.html$" => "tag.php?name=$1"
)

2、重启lighttpd,重启方法:/etc/init.d/lighttpd restart

posted @ 2009-05-16 21:41 CowNew开源团队 阅读(1190) | 评论 (0)编辑 收藏

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^http://rupeng.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://rupeng.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.rupeng.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.rupeng.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tinyosstudy.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tinyosstudy.com$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe|pdf|attach|chm)$      http://www.rupeng.com


一定要注意保存为Unix格式。有的版本的IE“另存为”发送的referer为空,所以加上第一行“RewriteCond %{HTTP_REFERER} !^$ [NC]”
posted @ 2009-05-04 13:37 CowNew开源团队 阅读(397) | 评论 (0)编辑 收藏

付费解决疑难问题:

杨中科是国内知名的技术图书作者和IT培训讲师,经验丰富,详见百度百科:http://baike.baidu.com/view/1607669.htm 

杨中科在各种主流语言和技术平台上都有过丰富的经验,善于处理各种疑难问题,把您的技术难题提交给我,包您满意。
支付方式: http://item.taobao.com/auction/item_detail.jhtml?item_id=040979d74ff665498567ed0848fc5bf7
支付后和我连接解决问题,对于特别疑难的问题不排除加价的可能。

开源收费服务:

负责解决CowNew开源相关产品的问题,包括使用咨询、产品定制、二次开发、培训等。

服务费以500元为单位,具体费用需要协商。


支付方式:http://item.taobao.com/auction/item_detail.jhtml?x_id=0db2&item_id=237dfa9931ab86dcdd6a2a7a9179c05d
posted @ 2009-03-14 00:07 CowNew开源团队 阅读(298) | 评论 (0)编辑 收藏

     摘要: 第一部分 AppWizard及其工作原理 AppWizard即应用程序向导,它是Visual Studio开发环境中强大的编程工具之一,用它可以创建各种不同类型的程序。比如Win32应用、ATL、MFC应用等等。在Windows的术语中,向导(wizard)一词指得是一个应用程...  阅读全文
posted @ 2009-03-08 00:04 CowNew开源团队 阅读(986) | 评论 (0)编辑 收藏

当自定义的应用程序向导生成一个项目时,则它只是不能替换自动创建的.dsp 项目设置文件。 .dsp 文件中的项目设置由假定所有生成的项目为 MFC 项目的内部规则设置。 但是,Visual C++ 5.0 的新对象模型允许修改工具设置,以便从生成的项目中删除所有依赖 MFC 的自定义 AppWizards。

Visual C++5.0 CCustomAppWiz 类现在具有名为 CustomizeProject 在虚拟重写。 CustomizeProject 提供与 IBuildProject 接口自定义向导。 IBuildProject 配置方法提供了一个的 IConfiguration 界面,用于在项目中每个生成配置。 IConfiguration 可以添加和删除如编译器提供给工具的设置。 在使用这些方法自定义向导可以删除在 MFC 上添加依存关系的设置。

示例代码

以下是示例 CustomizeProject 重写的演示 MFC 依赖项的删除:
   #import "c:\Program Files\DevStudio\SharedIDE\bin\ide\devbld.pkg"
void CNoMfcCustWizAppWiz::CustomizeProject(IBuildProject* pProject)
{
using namespace DSProjectSystem;
long lNumConfigs;
IConfigurationsPtr pConfigs;
IBuildProjectPtr pProj;
// Needed to convert IBuildProject to the DSProjectSystem namespace
pProj.Attach((DSProjectSystem::IBuildProject*)pProject, true);
pProj->get_Configurations(&pConfigs);
pConfigs->get_Count(&lNumConfigs);
//Get each individual configuration
for (long j = 1 ; j < lNumConfigs+1 ; j++)
{
_bstr_t varTool;
_bstr_t varSwitch;
IConfigurationPtr pConfig;
_variant_t varj = j;
pConfig = pConfigs->Item(varj);
// Remove Preprocessor def for MFC DLL specifier, _AFXDLL
varTool   = "cl.exe";
varSwitch = "/D \"_AFXDLL\"";
pConfig->RemoveToolSettings(varTool, varSwitch, varj);
varTool   = "rc.exe";
varSwitch = "/d \"_AFXDLL\"";
pConfig->RemoveToolSettings(varTool, varSwitch, varj);
// OPTIONAL
// Add Libs that MFC headers would have pulled in automatically
// Feel free to customize this listing to your tastes
varTool = "link.exe";
varSwitch = "kernel32.lib user32.lib gdi32.lib winspool.lib "
"comdlg32.lib advapi32.lib shell32.lib ole32.lib "
"oleaut32.lib uuid.lib odbc32.lib odbccp32.lib";
pConfig->AddToolSettings(varTool, varSwitch, varj);
}
}
本代码示例使用 Visual C++ 5.0 的新 COM 编译器支持功能的说明。 # import 语句导入,并创建 DEVBLD.PKG 类型库的所有类型的定义。 这将允许使用窗体 IInterfacePtr 的 COM 智能指针,以及新的 _ bstr _ t 和 _ variant _ t 类型代码。 这些新类型的所有自动清理使用的内存,并在超出范围时释放保持的接口指针。

此外请注意标准的自定义应用程序向导将使用预编译的头文件 StdAfx.h。 应当将放 # import # 结尾处的语句 StdAfx.h 中包含列表。

注意: DevBld.pkg 路径将不同,如果您使用 Visual C++ 版本 6.0。 假设 Visual C++ 版本 6.0 已安装到 C: 驱动器上的默认目录,# import 语句应阅读,如下所示:
   #import "C:\Program Files\Microsoft Visual Studio\Common\MsDev98\Bin\IDE\DevBld.Pkg"
注意: 上面 </a0>-# import 行必须在代码中相同的行。

请参阅有关 Visual C++ 文档。

警告

  • 请注意没有编程的方法可用于删除内部的项目将该控件设置"Microsoft 基础类"设置在常规的项目设置由包含上述代码的自定义向导生成的方式项目仍将显示"使用 MFC 共享 DLL 中"。 您可以更改此设置,唯一方法是不支持修改.dsp 项目设置文件。 但是,此设置仅用于某些 DevStudio MFC 用户界面元素如类向导和一些基于 MFC 的组件库组件。 它应该有一个非 MFC 项目没有影响。
  • 即使后修改项目设置使用 AddToolSettings 和与上面的 RemoveToolSettings,默认项目设置将仍然保持相同 Visual C++ 版本 5.0 中。 如果项目生成此自定义应用程序向导的用户打开项目设置,并单击重置,已还原的项目设置将包含已删除的 MFC 引用。 再次,防止出现这种唯一的方法是使不支持的更改生成的.dsp 项目设置文件手动自定义应用程序向导已创建项目后。

    Visual C++ 版本 6.0 提供新的自动化方法更改默认项目设置的。 配置对象支持 MakeCurrentSettingsDefault 方法。 此方法更改成为当前的设置配置的默认项目设置。
  • 当您使用 RemoveToolSettings 时,删除一次的只有一个工具设置。 在上面示例中进行另一调用 RemoveToolSettings CL.EXE 命令行而不是附加到同一个 varSwitch 语句的末尾删除定义中删除另一个的预处理器定义。 此外,请记住,工具设置的是大小写区分"/ d"和"/ D"不是相同的操作。
  • 遗憾的是,AddToolSettings、 RemoveToolSettings,和 AddCustomBuildStep (另一个 IConfiguration 方法) 运行仅在 Visual C++ 版本 5.0 在整个项目上,他们不能进行工具设置或创建自定义生成步骤单个文件。 是例如最好通常添加处理使用 MIDL 文件并生成 TLB 和其他所需的项目文件的一个项目的 IDL 文件的自定义生成步骤。 在 Developer Studio 97 对象模型不支持此。 单个文件的自定义生成步骤需要自定义应用程序向导生成项目后手动添加。

    Visual C++ 版本 6.0 对象模型不会支持若要更改的方法文件设置,并添加自定义生成步骤的文件。 请参阅 Visual C++ 版本 6.0 文档的下列方法配置对象:
    AddFileSettings
    RemoveFileSettings
    AddCustomBuildStepToFile

转载自:http://support.microsoft.com/kb/173483

大学生计算机学习社区
posted @ 2009-03-08 00:00 CowNew开源团队 阅读(676) | 评论 (0)编辑 收藏

  2005年的时候我大学毕业来到深圳工作,公司负责解决户口,因此户口也就落到了深圳。为啥我要说找个呢?难道我要做“深户担保”?哈哈,我不会贴小广告,具体原因后面你就明白了。

  05年春节我开办了一个开源技术研发组织,因此就创建了第一个网站cownew.com,也就立即备案了,一个礼拜备案就下来了。

  06年底我离开了深圳来到北京发展。转眼到了2008年,我准备创建一个为计算机相关专业提供学习指导服务的网站,所以申请了域名jsj321.com(含义是“计算机321”),然后申请了备案,但是一个多月过去了备案还是没有通过,无奈之下只好花了几十块钱在淘宝网上通过网上那些宣传“快速备案”进行了备案,10分钟就“获得了备案”,6个月之后终于收到哦啊了,计算机321没有通过备案的通知,然后我去备案中心一查原来计算机321买的那个“快速备案”也是上了备案骗子的当了,他们完全是用自己ISP的权限在修改自己手头已有的备案的域名,没过几天他又用这个备案号帮别人“快速备案”了。希望光大站长以后一定不能上这帮人的当,咱们也一起祝愿这些“备案骗子”生孩子没屁眼儿!一气之下计算机321就一直没有备案,2009年随着网站的发展壮大,越来越感到原有域名传播力太差,而且怎么看怎么像垃圾站的域名,所以在会员的帮助下改用了现在的新域名www.rupeng.com (如鹏网),立即备案了,一个礼拜备案就下来了。

  说了一通,到底为啥cownew和如鹏网这么容易备案通过,而计算机321就不容易通过呢?还记得前面我提到的我的户口落在了深圳吗?cownew这个域名备案的时候主办人所在地我当然填的是深圳。而jsj321.com备案的时候由于我在北京,所以主办人所在地我填的是北京,而身份证当然还是深圳的。在备案如鹏网的时候我就想为什么一个备案快一个备案慢的要命呢?我猜是户口的原因,因此我在备案如鹏网的时候主办人所在地也填的是深圳,没想到确实很快就批准下来了。

  这只是我的一个猜想,不过联想到目前的户籍制度,应该是有一定道理的,不是结婚都要回户籍所在地办理的吗?网站备案“回自己家备案”当然会容易很多了。希望正在准备备案的站长可以试一试,也验证一下我的猜想。

posted @ 2009-03-06 23:14 CowNew开源团队 阅读(522) | 评论 (2)编辑 收藏

1、SS在后台:系统设置→搜索优化设置→站点链接URL方式修改为“简短Apache模式”
2、discuz在后台:全局→优化设置→搜索引擎优化→URL 静态化下的几项全部选中。
用记事本建立如下内容文件(要另存为,不能重命名,因为重命名无法重命名为只有后缀的文件名):

RewriteEngine On

# 修改以下语句中的 /discuz 为你的论坛目录地址,如果程序放在根目录中,请将 /discuz 修改为 /
RewriteBase /forum

# Rewrite 系统规则请勿修改
RewriteRule ^archiver/((fid|tid)-[\w\-]+\.html)$ archiver/index.php?$1
RewriteRule ^forum-([0-9]+)-([0-9]+)\.html$ forumdisplay.php?fid=$1&page=$2
RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ viewthread.php?tid=$1&extra=page\%3D$3&page=$2
RewriteRule ^space-(username|uid)-(.+)\.html$ space.php?$1=$2
RewriteRule ^tag-(.+)\.html$ tag.php?name=$1


保存到网站根目录。

默认CuteFTP是不会显示.htacess文件的,因为它被Linux认为是隐藏文件,所以需要在cuteftp的过滤器中在弹出的窗口中选中“启用过滤”和“启用服务器端过滤”,并在"远程过滤"中填写"-a"。

posted @ 2009-02-06 00:09 CowNew开源团队 阅读(1035) | 评论 (0)编辑 收藏

1、Validator
2、IsPostBack
3、AutoPostBack。控件离开焦点的时候自动Post。
4、repeater控件的使用。:Repeater控件比以前版本的asp.net好用了,只要 Eval就可以了,不用DataBinder.Eval(container.DataItem,"***"):了,只要Eval("Name")就可以,注意不能丢了前面的“#”。
    <asp:Repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
            嘎嘎嘎
        </HeaderTemplate>
        <ItemTemplate>
        <%# Eval("Name")%>
        <%# Eval("Desc")%>
        </ItemTemplate>
    </asp:Repeater>

        protected void Button3_Click(object sender, EventArgs e)
        {
            List<Person> list = new List<Person>();
            list.Add(new Person(){Name="芭芭拉",Desc="白牙呗"});
            list.Add(new Person(){Name="奥巴马",Desc="黑黝黑"});
            Repeater1.DataSource = list;
            Repeater1.DataBind();
        }
5、DataList控件:
(1)行的高亮选中
     <asp:DataList ID="DataList1" runat="server" >
        <SelectedItemStyle BackColor="#FF6666" />
    <ItemTemplate>
        <%# Eval("Name")%>
        <%# Eval("Desc")%>    
        <asp:LinkButton ID="LinkButton1" runat="server" Text="选择" CommandName="select" />  
    </ItemTemplate>
    </asp:DataList>
核心是CommandName这个属性,可选值还有edit、delete等可选值,当按钮被点击的时候将会执行EditCommand、DeleteCommand等事件。
(2)行的在位编辑:
    <asp:DataList ID="DataList1" runat="server"
        oneditcommand="DataList1_EditCommand">
        <SelectedItemStyle BackColor="#FF6666" />
    <EditItemTemplate>
        <asp:TextBox runat="server" ID="t1" Text='<%# Eval("Name")%>' />
        <asp:TextBox runat="server" ID="t2" Text='<%# Eval("Desc")%>' />
        <asp:Button runat="server" Text="提交" CommandName="update" />
    </EditItemTemplate>
    <ItemTemplate>
        <%# Eval("Name")%>
        <%# Eval("Desc")%>    
        <asp:LinkButton ID="LinkButton1" runat="server" Text="编辑" CommandName="edit" />  
    </ItemTemplate>
    </asp:DataList>

        protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = e.Item.ItemIndex;
            ReBind();
        }

        private void ReBind()
        {
            List<Person> list = new List<Person>();
            list.Add(new Person() { Name = "芭芭拉", Desc = "白牙呗" });
            list.Add(new Person() { Name = "奥巴马", Desc = "黑黝黑" });
            Repeater1.DataSource = list;
            Repeater1.DataBind();

            DataList1.DataSource = list;
            DataList1.DataBind();
        }
(3)行的在位编辑并且提交修改
    <asp:DataList ID="DataList1" runat="server"
        oneditcommand="DataList1_EditCommand"
        onupdatecommand="DataList1_UpdateCommand">
        <SelectedItemStyle BackColor="#FF6666" />
    <EditItemTemplate>
        <asp:TextBox runat="server" ID="t1" Text='<%# Eval("Name")%>' />
        <asp:TextBox runat="server" ID="t2" Text='<%# Eval("Desc")%>' />
        <asp:Button runat="server" Text="提交" CommandName="update" />
    </EditItemTemplate>
    <ItemTemplate>
        <%# Eval("Name")%>
        <%# Eval("Desc")%>    
        <asp:LinkButton ID="LinkButton1" runat="server" Text="编辑" CommandName="edit" />  
    </ItemTemplate>
    </asp:DataList>
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["PersonList"] == null)
            {
                List<Person> list = new List<Person>();
                list.Add(new Person() { Name = "芭芭拉", Desc = "白牙呗" });
                list.Add(new Person() { Name = "奥巴马", Desc = "黑黝黑" });
                Repeater1.DataSource = list;
                Repeater1.DataBind();
                Session["PersonList"] = list;
            }           
        }

        protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = e.Item.ItemIndex;
            ReBind();
        }

        private void ReBind()
        {
            DataList1.DataSource = Session["PersonList"];
            DataList1.DataBind();           
        }

        protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
        {
            TextBox nT1 = e.Item.FindControl("t1") as TextBox;
            TextBox nT2 = e.Item.FindControl("t2") as TextBox;
            //不要直接从DataList1.DataSource中取,因为取到的是null
            List<Person> list = Session["PersonList"] as List<Person>;
            Person curPerson = list[DataList1.EditItemIndex];
            curPerson.Name = nT1.Text;
            curPerson.Desc = nT2.Text;
            DataList1.EditItemIndex = -1;
            ReBind();
        }
    }
6 GridView控件
    <asp:GridView ID="GridView1" runat="server" AllowSorting="True"
        AutoGenerateColumns="False" onrowcommand="GridView1_RowCommand"
        onsorting="GridView1_Sorting">
        <Columns>
            <asp:ButtonField ButtonType="Button" CommandName="DingGou" HeaderText="订购"
                ShowHeader="True" Text="订购" />
            <asp:ButtonField ButtonType="Button" CommandName="TuiDing" HeaderText="退订"
                ShowHeader="True" Text="退订" />
            <asp:BoundField DataField="Name" HeaderText="名称" SortExpression="Name" />
            <asp:BoundField DataField="Desc" HeaderText="描述" SortExpression="Desc" />
        </Columns>
    </asp:GridView>

        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "DingGou")
            {
                Debug.WriteLine("第"+e.CommandArgument+"行被订购");
            }
        }

        protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
        {

        }
7、用户控件(UserControl)
通过向导创建一个UserControl,然后就可以任意编辑这个UserControl,而且还可以为UserControl增加属性、事件。使用的时候只要将控件直接从SolutionExplorer拖到页面上就可以。
8、继承控件
(1)通过向导创建一个WebCustomControl。
(2)定义自己应用界面。需要重载从Control类继承来的CreateChildControls方法,并在其中生成界面控件。如果用户定义的控件会在一个页面中反复使用,最好implements System.Web.UI.INamingContainer,它会为该控件创建一个唯一的命名空间。
(3)定义自己控件的消息处理函数。自己定义的控件含有两种类型的消息,一是包含的子控件所产生的消息,二是自定义的控件消息。
9、向工程中添加“Global Application Class”就可以添加Global.asax,在这里可以监听Application、Session的生命周期。
10、(1)Response.Redirect("newpage.aspx");客户端转发
(2)Server.Transfer("newpage.aspx");服务器端转发
11、web.config配置
(1)  <appSettings>
    <add key="FTP" value="127.0.0.1"/>
  </appSettings>
  this.Title = WebConfigurationManager.AppSettings["FTP"];
(2)
  <connectionStrings>
    <add name="mydb"  connectionString="jdbc:ddd"/>
  </connectionStrings>
  this.Title = WebConfigurationManager.ConnectionStrings["mydb"].ConnectionString;
12、BulletedList就是<ul><ol>
13、PostBack本质论
ASP.NET also adds two additional hidden input fields that are used to pass information
back to the server. This information consists of the ID of the control that raised the event and
any additional information that might be relevant. These fields are initially empty, as shown
here:
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
The __doPostBack() function has the responsibility for setting these values with the
appropriate information about the event and then submitting the form. A slightly simplified
version of the __doPostBack() function is shown here:
<script language="text/javascript">
function __doPostBack(eventTarget, eventArgument) {
var theform = document.Form1;
theform.__EVENTTARGET.value = eventTarget;
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
</script>
14、跨页表单提交
在页1中指定按钮的PostBackUrl属性为WebForm1.aspx,这样表单就会提交到WebForm1.aspx了,然后在WebForm1.aspx中还可以取到前一页中所有的值:
TextBox1.Text = PreviousPage.Title;
还可以将PreviousPage cast成更详细的页面子类。
15、取QueryString的方法:
Request.QueryString["recordID"]
16、Server.UrlEncode(lstItems.SelectedItem.Text)
17、Multiview控件用来实现动态界面,Multiview里嵌套多个view控件,每个view控件里可以方式其他控件。通过控制Multiview控件的ActiveViewIndex属性来控制不同View的显示。
18、Wizard控件比Multiview控件更方面,更像一个TabControl
19、动态图片:
在pageload的事件中:
Bitmap image = new Bitmap(300, 50);
Graphics g = Graphics.FromImage(image);
Response.ContentType = "image/png";
image.Save(Response.OutputStream,
System.Drawing.Imaging.ImageFormat.Gif);
20 页面导航
创建SiteMap文件,修改SiteMap文件增加节点。
在页面上增加一个SiteMapDataSource,然后只要拖TreeView、Menu、SiteMapPath等控件上来,指定DataSource属性为SiteMapDataSource就可以了。
21 单值绑定
URL = "Images/picture.jpg";
this.DataBind();
<asp:CheckBox id="chkDynamic" Text="<%# URL %>" runat="server" />
22 下拉列表框绑定
    <asp:DropDownList ID="DropDownList1" runat="server" DataTextField="value"
        DataValueField="key">
    </asp:DropDownList>
    IDictionary<string, string> dict = new Dictionary<string, string>();
    dict["1"] = "aa";
    dict["2"] = "bb";
    DropDownList1.DataSource = dict;
    DropDownList1.DataBind();   
23 设定起始页:在aspx上点右键,选择“Set as startpage”
24 程序中数据库连接字符串的设置
(1)、web.config中加入: 
<connectionStrings>
    <add name="DBConnectionString" connectionString="server=192.168.88.128\SQLEXPRESS1;uid=sa;pwd=123456;database=CRM" providerName="System.Data.SqlClient"/>
  </connectionStrings>
(2)、在IDE中拖放DataSource组件以后,在属性视图的ConnectionString属性中选择DBConnectionString即可。
(3)、程序中读取这个连接字符串的方法:
            System.Configuration.Configuration rootWebConfig =
                System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
            string connString =
                rootWebConfig.ConnectionStrings.ConnectionStrings["DBConnectionString"].ConnectionString;
24 制作简单的CRUD页面的步骤:
(1)拖放一个SqlDataSource组件上来,设定好ConnectionString,命名组件为dsList。
(2)修改SqlDataSource组件的DeleteQuery属性为:delete from T_PSI_User where FId=@FId
InsertQuery属性为:INSERT INTO T_PSI_User(FId, FUserName, FPassword) VALUES (NEWID(),@FUserName,@FPassword)
SelectQuery为:select * from T_PSI_User
UpdateQuery为:Update T_PSI_User set FUserName=@FUserName,FPassword=@FPassword where FId=@FId
(3)拖放一个GridView组件上来,设定其DataSourceID属性为dsList。修改AllowPaging、AllowSorting、AutoGenerateDeleteButton、AutoGenerateEditButton属性为True。设定AutoGeneratedColumns属性为false。设定DataKeyNames属性为FId(这样哪怕隐藏了FId字段,Edit、delete功能也能正常执行了)
(4)修改GridView的Columns属性,在弹出的对话框中点击【RefreshSchema】链接,这样在BoundField下就显示了FId、FName、FPassword三个字段,将FUserName和FPassword字段Add进来。
这样不用一行代码,有删、改功能的页面就做好了。下面来做“增”的功能。
(5)选择GridView组件,在智能提示中选择EditTemplete、然后选择“EmptyTemplete”,拖放一个FormView组件到EmptyTemplete中,选中Formview组件,在智能提示中设定DataSource为dsList。
(6)新建一个【新增】按钮,编辑其Click事件代码为:
            GridView1.DataSourceID = "";
            GridView1.DataBind();
(7)设定FormView的ItemInserted事件代码为:
RefreshList();
RefreshList()函数定义如下:
            GridView1.DataSourceID = "dsList";
            GridView1.DataBind();
这样“增”的功能就做好了,不过还是有缺憾,那就是显示出了不归我们管的FId字段,并且字段名、按钮都是英文的。
(8)选中,FormView组件,然后点击EditTemplete,选中InsertTemplete,这样就可以删除不需要的FId字段了,并且可以修改控件布局以及界面的语言文字。
(9)这样的话Insert界面中的“Cancel取消”按钮还是不能用,编辑FormView1的ItemCommand事件,编写如下的代码:
            if (e.CommandName == "Cancel")
            {
                RefreshList();
            }
25 上面实现CRUD的方法有两个缺陷:
(1)需要编写一个EmptyTemplete
(2)很难对Edit的控件做定制
因此我们还是用ListUI和EditUI分置的方法来解决。步骤:
制作ListUI:
(1)使用datasource、GridView,不过DataSource只要配置SelectQuery、DeleteQuery即可。
(2)GridView不自动生成Edit按钮。
(3)GridView生成一个ButtonField,标题为“编辑”,CommandName="EditInPage"
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "EditInPage")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                Guid guid = (Guid)GridView1.DataKeys[index].Value;
                Server.Transfer("/Sys/SysUserEdit.aspx?Action=Edit&FId="+guid);
            }           
        }
(4)新增按钮的Onclick事件:
Server.Transfer("/Sys/SysUserEdit.aspx?Action=Insert");

制作EditUI:
(1)拖一个DataSouce控件,按常规配置InsertCommand和UpdateCommand,配置SelectCommand为“SELECT * FROM [T_PSI_User] where 1<>1”,配置UpdateCommand为“”
(2)拖一个FormView上来,并且修改EditTemplete和InsertTemplte(可以直接将EditTemplete修改后的拷贝到InsertTemplte,注意不要忘了修改Button的CommandName)
(3)代码;
        protected void Page_Load(object sender, EventArgs e)
        {
            switch (Request["Action"])
            {
                case "Edit":
                    dsEdit.SelectCommand = "select * from T_PSI_User where FId=@FId";
                    dsEdit.SelectParameters.Clear();
                    dsEdit.SelectParameters.Add("FId", Request["FId"]);
                    FormView1.ChangeMode(FormViewMode.Edit);
                    break;
                case "Insert":
                    FormView1.ChangeMode(FormViewMode.Insert);
                    break;
            }
        }

        protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e)
        {
            GogoList();
        }       

        protected void FormView1_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
        {
            GogoList();
        }

        private void GogoList()
        {
            Server.Transfer("/Sys/SysUserList.aspx");
        }
    }
    }
26、DropDownList实现基础资料选择器,比如在商品编辑中的选择计量单位:
(1)拖一个针对T_MeasureUnit表的DataSource,比如名字为dsMeasureUnit。
(2)拖一个商品的Datasource,比如dsMerchan。
(3)拖一个FormView上来,并且设定其DataSource为dsMerchan
(4)将一个DropDownList放到FormView中,因为只有这样才能设定DropDownList本身的绑定。
(5)选中DropDownList,在智能提示中选择“ConfigDateSource”,在这里配置上dsMeasureUnit。
(6)选中DropDownList,在智能提示中选择“EditDataBindings”,然后设定绑定到dsMerchan的FMeasureUnitId字段。

源码:http://www.blogjava.net/Files/huanzhugege/PSI.Net.rar

posted @ 2009-01-22 18:04 CowNew开源团队 阅读(531) | 评论 (0)编辑 收藏

今天早上听到这样一个报道:在全球不景气的市场环境下,电子游戏业似乎独自顶住了消极影响,呈现出良好的市场表现,Xbox欧洲销售同比增长124%。而在美国Xbox销售同比增长25%,为历史最好表现。在金融危机下,很多人虚幻世界中寻找慰藉,以转移注意力:电视剧、网络、音乐、小说、电子游戏,以此逃避压力。
碰到过很多这样的人,或者一直找不到工作、或者考研失败或者工作不顺心,碰了几次壁以后不再是“越战越勇”,而是到游戏、网络中逃避压力,靠一次次的打怪、一次次的发灌水帖、看一部部肥皂剧的方式让自己忘记痛苦,当别人劝告他的时候他还美其名曰“玩网游也是一种创业,也能赚钱”,这不禁让我想起了老家里一些常年赌博成性的人嘴里唠叨着“玩麻将也能赚钱”那样好笑。“玩麻将也能赚钱”的人是赌王,人家的目的是赚钱而不是玩儿;同样“玩网游的人也能赚钱”的人是代练公司,而不是把玩网游当成逃避手段的懦夫。
遇到危险时,鸵鸟会把头埋入草堆里,以为自己眼睛看不见就是安全。事实上鸵鸟的两条腿很长,奔跑得很快,遇到危险的时候,其奔跑速度足以摆脱敌人的攻击,如果不是把头埋藏在草堆里坐以待毙的话,是足可以躲避猛兽攻击的。 心理学家将这种消极的心态称之为“鸵鸟心态”。
“鸵鸟心态”是一种逃避现实的心理,也是一种不敢面对问题的懦弱行为。有鸵鸟心态的人,不敢面对现实,不敢担当责任,平常大言不惭,遇到事情来临就畏缩不前了。 课堂上老师要提问的时候,每个学生都噤若寒蝉;做事情失败的时候靠烟酒麻醉自己;听说企业要裁员的时候总是认为“还有比我差的的,裁员也轮不到我”;学校里要选人参加软件大赛的时候,“比我学的好的有的是,轮不到我,我也不去争了”;考研的时候干脆不去参加考试,为自己考研失败找理由“我都没去考试,不能说我能力差了吧”;考试挂科,“我就干脆所有课都挂,难道学校敢开除我?”……
“遇食颈如鹤,遇事头如鳖”、“多做多错、少做少错、不做不错”、“天塌下来有高个儿顶着呢”、“眼不见为净”、“破罐破摔”等等都是鸵鸟心理。
不敢面对现实,而现实却不会因为你的躲避而不会发生。该来的始终会来,躲避是没有用的,只有迎难而上。工作不好找,那就要调整自己的求职策略和求职技巧,必要的话参加培训班给自己充电;企业要裁员,那就要更努力的工作,不要被末尾淘汰掉;公司待遇不好,那就要增强自己的“杀敌本领”,跳到更好的职位,甚至可以筹备自己创业,金融危机下游戏、网络等娱乐业以及培训业反而发展比较快,难道就不能找到一个创业机会,从而使自己在下一个经济大潮来临的时候勇立潮头,要知道现在很多国际性的大公司都是在上一轮的金融危机中脱颖而出的。
万事想开点,勇敢面对现实才能把问题解决。逃避、麻醉自己是懦夫的行为,只有迎难而上才是一个真正的男子汉。
posted @ 2009-01-12 11:59 CowNew开源团队 阅读(3459) | 评论 (5)编辑 收藏

关于女生做IT行业的话题我在jsj321的其他板块也提到过。我的一个原则就是除了天生的天才巾帼英雄之外(这样的人我也碰到过不少),大部分女孩子并不适合长期在第一线从事编程工作,这并不是什么性别歧视,而是考虑到女孩子的生理、心理等各方面的因素说出的这句话。但是这并不说明女孩子不能从事IT相关工作。对于一个计算机专业的女生来说,如果能在IT行业找到自己的位置,那是比转行更加合适的。IT行业的测试工程师(主要做软件的测试)、软件配置管理(主要从事软件的文档、数据库管理、源代码管理等)、项目经理助理(主要辅助项目经理处理项目开发、人员管理中的问题、项目进度管理等)等等这些都是非常适合于女孩子长期发展的,这些职位即对计算机技术有一定要求,而且又不像编程工作一样对技术要求非常高,我有很多同事都是从事这些工作的女孩子,而且做的都很优秀。
这些工作毕竟是贴近于编程一线的工作,因此也不能对编程一窍不通,否则沟通起来很麻烦,建议你在上学期间把专业课学好,同时学好英语,并且锻炼自己的写作能力、沟通能力等,毕业后你的前途是不可限量的。有更多问题欢迎访问http://www.jsj321.com

from:http://www.jsj321.com/forum/viewthread.php?tid=420&extra=page%3D1

posted @ 2008-11-27 22:37 CowNew开源团队 阅读(1059) | 评论 (0)编辑 收藏

 

引用:
Real提问:
小有迷茫,求教
先声明吧,也许这些话过几天自己都会忘记,但确实有发出来的冲动,而且也是反复看过杨老师以前的文章才发出来的。别批评我是愚昧的发牢骚吧。呵呵。
最近一个公司联系到班长说是免费实习,去了以后才发现是个培训机构。教了我们一些ASP的基础,连接数据库,做一些最基本的增删改查,但也有些想法。
1.他们告诉我们代码不是最重要的,代码看看书谁都会,重要的是流程。说刚出来的大学生都是做编码和测试人员,等做了5,6年以后熟悉了再去做设计人员。这对刚学了半年专业课,上了两年半大学还一直以代码至上,看到代码就想吃通吃透的我(们)有些茫然了。真的是这样?
2.培训是一条捷径。杨老师说过嘛,经过2,3个月的培训,我能会,别人也可以会,没有门槛的。但是现实是,人家说找工作就是让你敲代码,熟不熟一眼就看出来了,再告诉我们老板要的是上来能干活的人,自己培训自己很重要。当然,人家是搞培训的,自己也是王婆卖瓜。我们虽然要保持警惕,但事实也正是这样,从上届学生的情况看,在校内接受过一个7000块钱/5个月 的JAVA培训的同学确实找工作比较容易。我们呢?要知识还是要技能?是个问题。毕竟时间有限。
3.刚好也是学期末,做课程设计,最早出来的是数据库的课程设计题目,老师要求也很有意思,前台的语言不限制,于是大家都去图书馆借这样那样的书,走近图书馆,看到5花6门的书,说以前不迷茫只知道学老师教的也许是真的什么都不懂,现在什么都懂一点,迷茫感真的来了。
我以后是做什么?我到的是一个B/S还是一个C/S模式的公司?我应该拿我的这次课程设计来强化自己的哪方面?甚至还真有点“什么技术有前途”的小笑话。
杨老师说大公司考察的就是书本上的内容,好吧,我们不是清华的计算机系,我们当然不能拿我们的前途豪赌,到时候进不了大公司又没有一定的技能——两手空空?
太乱了...也许过几天自己就好了,呵呵。
******************************************

real是jsj321的老会员了,而且你也看过网站上的很多文章了,所以我的“陈词滥调”就不在这里重复了,直接解答你的问题。
1、“代码看看书谁都会,重要的是流程”。对于信息系统开发而言,确实有“业务重于代码”的说法,而且我非常同意,因为在信息系统中系统是供用户使用的,是给用户带来价值的,所以符合用户需求的系统才是好系统,采用什么技术、用什么样的代码写出来的则不是用户关心的。这是站在用户的角度看待技术和业务的,但是被很多从业者偷换概念用来进行妄自菲薄。对于用户来说当然是一个软件开发商怎么开发的他们不用关心,但是对于软件开发商本身也要这么想吗?对于一个企业来说它的唯一使命就是“赤裸裸的赚取利润”,什么是利润?利润就是“收入减去成本”,增加利润只有两条途径“增加收入”或者“削减成本”,企业的收入增长非常难,而“削减成本”则相对较容易。那么对于软件企业来说怎么“削减成本”呢?当然是缩短软件的开发时间了。怎么缩短软件的开发时间呢?软件是软件工程师编写出来的,当然就是要求软件工程师有比较高的编程水平,尽快的开发出高质量的程序来。站到软件开发商老板的角度想一下你还认为软件工程师的水平不重要吗?
“等做了5,6年以后熟悉了再去做设计人员”,“设计人员”这个词是一个非常宽泛的词,软件开发工程师、UI设计师、架构师、业务分析师等等都可以叫做设计人员。我估计他这里说的“设计人员”其实应该指得是“业务分析师”吧。业务分析师是站在用户的角度设计软件的整体业务架构以及产品功能,不用再思考用什么代码编写某个功能,企业里的业务分析师有两个来源:从软件工程师中来、从业务人员中来。比如对于一个财务软件来说,它的业务分析师会从资深的财务系统软件工程师以及经验丰富的会计师中来。一个企业里软件工程师有很多,而业务分析师则是相对来说比较少的,那么什么样的人才会成长为业务分析师呢?一个业务分析师必须有很丰富的项目经验并且在这些项目从事核心工作,一个软件工程师如果没有过硬的编程本领,连简单的功能都不能实现,连软件工程师的本质工作都没能力完成,老板怎么可能让你参与项目的开发又怎么敢让做核心工作呢???没做过这些你又怎么能获得这些经验呢?又怎么能成长为业务分析师呢?
“代码看看书谁都会”,这样的话工作几年后的人说还差不多,对于还没毕业,只学过编程语法、根本没写过像样程序的人敢这么说吗?我给你一个功能需求你能想出来大体用程序怎么实现吗?相信大部分同学都说不出来。一个长跑运动员可以说“跑步就是两条腿前后交替着运动呗”,但是一个刚会四条腿爬着走的婴儿如果说出“跑步谁都会”的话,我只能对着蔚蓝的天空大喊“My God,救救这个孩子吧!”。对着在校生说“代码看看书谁都会,重要的是流程”这种话的人不是存心误人子弟的人就是什么都不懂还要装牛B的人。
2、“经过2,3个月的培训,我能会,别人也可以会,没有门槛的”。其他同学有类似问题也可以访问jsj321.com。我说这句话是对那种把就业培训当成救命稻草的同学说的,这样的同学只是希望大学四年不好好学习,盼望着毕业以后找一个承诺“高薪就业、100%就业”的培训机构学几个月就成功当上白领甚至金领的人说的。对于自学能力稍差的同学来说,在培训机构有老师教能快速的提高技术水平,我从来没否定过。只不过不希望同学们只是寄托于培训机构而已,他们不是你什么都不学都能让你高薪就业的活神仙,不仅要在培训机构好好学,在进这些培训机构之前也要好好学习。争取在大学期间、在培训期间比别人多用功一些,多学一些,那些参加培训的人也不是100%掌握了老师讲的东西,他们能掌握20%就算不错了,只要你比他们多掌握10%,你不就是相当于“你会的他们不会”了吗?
3、“我以后是做什么?我到的是一个B/S还是一个C/S模式的公司?我应该拿我的这次课程设计来强化自己的哪方面?”别想太远了,踏踏实实的走好脚下的每一步,路是人走出来的,整天抬着头看远方的人肯定会被脚下的石子绊倒。我这并不是让同学们没有大的理想,而是希望同学们在走好每一步的基础上再去思考那些问题。等你真实的走过这段以后你会发现你现在思考的问题有多么“傻”(请原谅我用这个词)。把课程设计做好吧,不要抄袭,把课程设计自己做好,哪怕课程设计做好了也要继续研究相关的技术,这是最实际的事情。
4、“我们不是清华的计算机系,不能拿我们的前途豪赌,到时候进不了大公司又没有一定的技能——两手空空”。你可能误解我的意思了,并不是只有大公司才注重基础,除了少数草台班子公司或者皮包公司之外,大部分大中小型公司都是非常欢迎基础扎实的求职者的,而且都会委以重任和重点培养。当然所有公司也都欢迎接受过短期职业培训能够熟练使用一两门工具进行开发的人,但是这些人公司不会重点培养,而且只会给他们一些重复性的劳动,就像流水线上的工人,有几个工厂会把流水线工人培养成骨干呢?又有几个流水线工人认为自己有前途呢?"上等男人豪赌,中等男人不赌,下等男人滥赌"。

from:http://www.jsj321.com/forum/viewthread.php?tid=431&extra=page%3D1

posted @ 2008-11-27 22:32 CowNew开源团队 阅读(1178) | 评论 (0)编辑 收藏

在使用数据选择器的时候(ValueObjectDataPicker),如果只有一条数据,显示窗口的时候,提示document.formDataList.selectId[...]为空或不是对象。
这是一个Bug,修改WebContent\Ctrl\ValueObjectDataPicker.jsp 的getSelectedData 方法开头如下添加代码:
function getSelectedData()
{
if(document.formDataList.selectId.constructor != Array)
{
    var ret = new Array();
    ret[0] = document.formDataList.selectId;
    return ret;
}
var selectIndex=-1;
…………………………
}
posted @ 2008-11-13 23:05 CowNew开源团队 阅读(448) | 评论 (0)编辑 收藏

 

shupi 

Chinapub在线购买地址:http://www.china-pub.com/301651

当当网在线购买地址:http://product.dangdang.com/product.aspx?product_id=20368319

试读电子版下载:
下载地址1:http://www.blogjava.net/Files/huanzhugege/cxydSQLjd.zip
下载地址2: http://www.namipan.com/d/2ec1eacc92d2678a38095bef1d19ed938f78831d6f791500
第一本专门为程序员编写的数据库图书

《程序员的SQL金典》

  • 将子查询、表连接、数据库语法差异等用通俗易懂、诙谐幽默的语言讲解出来
  • 配合大量真实案例,学了就能用,在短时间内成为数据库开发高手
  • 高度提取不同数据库的共同点,仔细分析不同点,并给出解决方案,同时学会MSSQLServer、MYSQL、Oracle、DB2数据库不再是梦
  • 国内第一本讲解开窗函数实际应用的图书

轻举技术之“纲”,张合用之“目”,锻造SQL高可用性数据库应用指南从理论到实践,凝聚SQL主流数据库最前沿的技术要领。

本书特色:主要介绍SQL的语法规则及在实际开发中的应用,并且对SQL在MySQL、MS SQL Server、Oracle和DB2中的差异进行了分析;详细讲解数据库对增、删、改、查等SQL的支持并给出了相应的SQL应用案例;透彻分析函数、子查询、表连接、不同DBMS中的SQL语法差异、SQL调优、NULL值处理、事务、开窗函数等高级技术;通过对实际案例开发过程的详细分析,使读者掌握SQL的综合应用技巧。

内容提要

本书主要介绍SQL以及在实际开发中的应用,并且对SQL在MYSQL、MSSQLServer、Oracle和DB2中的差异性进行了分析。本书分为三部分:第一部分为基础篇,主要讲解数据库对增删改查等SQL的支持,给出了这些SQL的应用案例;第二部分为进阶篇,讲解了函数、子查询、表联接、不同DBMS中SQL语法差异、SQL调优、NULL值处理、事务、开窗函数等高级技术;第三部分为案例篇,讲解了前两部分的知识的综合运用。此书适用于学习数据库编程的读者,对于有一定数据库开发经验的读者也有非常大的参考价值。

前言

市面上讲解数现在据库的书都花了很多篇幅讲解数据库的备份、授权、调优、修复、监控等内容,这些内容是数据库管理员(DBA)应该掌握的,而对于程序员来说更需要去掌握的则是SQL语句的使用。但是市面上专门讲解SQL语句的书非常少,初学者学习数据库开发过程中常常被那些写给DBA的书弄的晕头转向,无法真正快速的掌握SQL技术;而且这些书中讲解的SQL也常常是针对特定数据库系统的专有实现,无法很容易的在其他数据库系统中运行,读者需要阅读大量的书和查阅大量的文档才能掌握不同数据库系统的使用。

本书是专门写给程序员的,因此没有讲解备份、授权、调优、修复、监控等开发人员不关心的内容,直接从SQL语句入手让读者快速的掌握数据库开发的技能。“面向开发人员,讲解对开发人员最有用的知识”是本书的编写宗旨。

MYSQL、MSSQLServer、Oracle和DB2等都是非常流行的数据库管理系统(DBMS),虽然在大部分SQL语法上这些DBMS实现都是一致的,不过在实现细节以及高级语法方面这些DBMS的实现差异还是非常大的。如果编写能够兼容这些DBMS的SQL语句是开发人员经常需要面对的问题。本书将帮助读者从根本上解决这个问题。

很多开发人员对于SQL语句的掌握只限于简单的SELECT、UPDATE语句,对于稍微复杂的逻辑经常需要编写程序代码来完成,这不仅无法发挥数据库的优势,而且开发出的系统性能非常低,而如果能够使用数据库函数、子查询、表联接、开窗函数等高级的SQL特性则可以大大简化系统开发的难度,并且提高系统的性能。本书将对这些高级特性进行详细的讲解。

本书第1、2章介绍数据库系统的基本知识以及基本操作;第3章介绍Insert、Delete和Update语句的基本应用;第4章对Select语句进行全面的介绍,对模糊匹配、分组、限制数据条数、计算字段、组合查询等高级内容进行了重点的讲解;第5章介绍常用的数据库函数以及它们在主流DBMS中的实现差异;第6章介绍索引与约束等知识点;第7、8章分别介绍表连接、子查询等高级查询技术;第9章对主流DBMS的语法差异进行分析,并且给出了解决方案;第10章介绍注入漏洞攻击、SQL调优、事务、自动增长字段、NULL值处理、开窗函数等高级话题;第11章以一个案例讲解书中知识点在实际开发中的应用。

在此,我要感谢为这本书的诞生给于我帮助的所有人。首先我要感谢CowNew开源团队的朋友们一直以来的无私奉献;感谢KingChou在开发CowNewSQL过程中的卓越工作,没有CowNewSQL也就不会有这本书的问世;还要感谢EasyJF的蔡世友,他一直以来对开源事业的奉献是值得我学习的;最后我要感谢电子工业出版社的田小康经理,他的高效工作使得本书能够顺利的完成和出版。

如果您对我的书有任何意见和建议,您可以给我发送邮件:about521@163.com,本书相关的后续资料将会发布到CowNew开源团队网站(http://www.cownew.com)中。

第1章 数据库入门 1

1.1 数据库概述 1

1.1.1 数据库与数据库管理系统 1

1.1.2 数据库能做什么 2

1.1.3 主流数据库管理系统介绍 2

1.2 数据库基础概念 5

1.2.1 Catalog 5

1.2.2 表(Table) 6

1.2.3 列(Column) 7

1.2.4 数据类型(DataType) 8

1.2.5 记录(Record) 9

1.2.6 主键(PrimaryKey) 9

1.2.7 索引(Index) 10

1.2.8 表关联 12

1.2.9 数据库的语言——SQL 13

1.2.10 DBA与程序员 14

第2章 数据表的创建和管理 17

2.1 数据类型 17

2.1.1 整数类型 17

2.1.2 数值类型 19

2.1.3 字符相关类型 21

2.1.4 日期时间类型 23

2.1.5 二进制类型 24

2.2 通过SQL语句管理数据表 25

2.2.1 创建数据表 25

2.2.2 定义非空约束 26

2.2.3 定义默认值 27

2.2.4 定义主键 27

2.2.5 定义外键 29

2.2.6 修改已有数据表 30

2.2.7 删除数据表 31

2.2.8 受限操作的变通解决方案 31

第3章 数据的增、删、改 33

3.1 数据的插入 34

3.1.1 简单的INSERT语句 34

3.1.2 简化的INSERT语句 36

3.1.3 非空约束对数据插入的影响 36

3.1.4 主键对数据插入的影响 37

3.1.5 外键对数据插入的影响 38

3.2 数据的更新 38

3.2.1 简单的数据更新 39

3.2.2 带WHERE子句的UPDATE语句 40

3.2.3 非空约束对数据更新的影响 41

3.2.4 主键对数据更新的影响 42

3.2.5 外键对数据更新的影响 42

3.3 数据的删除 43

3.3.1 简单的数据删除 43

3.3.2 带WHERE子句的DELETE语句 44

第4章 数据的检索 47

4.1 SELECT基本用法 48

4.1.1 简单的数据检索 48

4.1.2 检索出需要的列 49

4.1.3 列别名 51

4.1.4 按条件过滤 52

4.1.5 数据汇总 53

4.1.6 排序 56

4.2 高级数据过滤 59

4.2.1 通配符过滤 59

4.2.2 空值检测 63

4.2.3 反义运算符 64

4.2.4 多值检测 65

4.2.5 范围值检测 66

4.2.6 低效的“WHERE 1=1” 68

4.3 数据分组 72

4.3.1 数据分组入门 74

4.3.2 数据分组与聚合函数 76

4.3.3 HAVING语句 79

4.4 限制结果集行数 81

4.4.1 MySQL 81

4.4.2 MS SQL Server 2000 82

4.4.3 MS SQL Server 2005 83

4.4.4 Oracle 84

4.4.5 DB2 86

4.4.6 数据库分页 88

4.5 抑制数据重复 90

4.6 计算字段 91

4.6.1 常量字段 92

4.6.2 字段间的计算 93

4.6.3 数据处理函数 95

4.6.4 字符串的拼接 97

4.6.5 计算字段的其他用途 103

4.7 不从实体表中取的数据 105

4.8 联合结果集 107

4.8.1 简单的结果集联合 108

4.8.2 联合结果集的原则 110

4.8.3 UNION ALL 112

4.8.4 联合结果集应用举例 114

第5章 函数 119

5.1 数学函数 122

5.1.1 求绝对值 122

5.1.2 求指数 122

5.1.3 求平方根 123

5.1.4 求随机数 123

5.1.5 舍入到最大整数 125

5.1.6 舍入到最小整数 126

5.1.7 四舍五入 127

5.1.8 求正弦值 128

5.1.9 求余弦值 129

5.1.10 求反正弦值 129

5.1.11 求反余弦值 130

5.1.12 求正切值 130

5.1.13 求反正切值 131

5.1.14 求两个变量的反正切 131

5.1.15 求余切 132

5.1.16 求圆周率π值 132

5.1.17 弧度制转换为角度制 133

5.1.18 角度制转换为弧度制 134

5.1.19 求符号 134

5.1.20 求整除余数 135

5.1.21 求自然对数 136

5.1.22 求以10为底的对数 136

5.1.23 求幂 137

5.2 字符串函数 137

5.2.1 计算字符串长度 138

5.2.2 字符串转换为小写 138

5.2.3 字符串转换为大写 139

5.2.4 截去字符串左侧空格 139

5.2.5 截去字符串右侧空格 140

5.2.6 截去字符串两侧的空格 141

5.2.7 取子字符串 143

5.2.8 计算子字符串的位置 144

5.2.9 从左侧开始取子字符串 145

5.2.10 从右侧开始取子字符串 146

5.2.11 字符串替换 147

5.2.12 得到字符的ASCII码 148

5.2.13 得到一个ASCII码数字对应的字符 149

5.2.14 发音匹配度 151

5.3 日期时间函数 153

5.3.1 日期、时间、日期时间与时间戳 153

5.3.2 主流数据库系统中日期时间类型的表示方式 154

5.3.3 取得当前日期时间 154

5.3.4 日期增减 157

5.3.5 计算日期差额 166

5.3.6 计算一个日期是星期几 172

5.3.7 取得日期的指定部分 177

5.4 其他函数 183

5.4.1 类型转换 183

5.4.2 空值处理 188

5.4.3 CASE函数 191

5.5 各数据库系统独有函数 194

5.5.1 MySQL中的独有函数 195

5.5.2 MS SQL Server中的独有函数 202

5.5.3 Oracle中的独有函数 206

第6章 索引与约束 209

6.1 索引 209

6.2 约束 211

6.2.1 非空约束 211

6.2.2 唯一约束 212

6.2.3 CHECK约束 217

6.2.4 主键约束 221

6.2.5 外键约束 224

第7章 表连接 233

7.1 表连接简介 236

7.2 内连接(INNER JOIN) 236

7.3 不等值连接 240

7.4 交叉连接 241

7.5 自连接 245

7.6 外部连接 248

7.6.1 左外部连接 250

7.6.2 右外部连接 251

7.6.3 全外部连接 252

第8章 子查询 255

8.1 子查询入门 261

8.1.1 单值子查询 261

8.1.2 列值子查询 263

8.2 SELECT列表中的标量子查询 265

8.3 WHERE子句中的标量子查询 267

8.4 集合运算符与子查询 270

8.4.1 IN运算符 270

8.4.2 ANY和SOME运算符 272

8.4.3 ALL运算符 274

8.4.4 EXISTS运算符 275

8.5 在其他类型SQL语句中的子查询应用 277

8.5.1 子查询在INSERT语句中的应用 277

8.5.2 子查询在UPDATE语句中的应用 283

8.5.3 子查询在DELETE语句中的应用 285

第9章 主流数据库的SQL语法差异解决方案 287

9.1 SQL语法差异分析 287

9.1.1 数据类型的差异 287

9.1.2 运算符的差异 288

9.1.3 函数的差异 289

9.1.4 常用SQL的差异 289

9.1.5 取元数据信息的差异 290

9.2 消除差异性的方案 293

9.2.1 为每种数据库编写不同的SQL语句 293

9.2.2 使用语法交集 294

9.2.3 使用SQL实体对象 294

9.2.4 使用ORM工具 295

9.2.5 使用SQL翻译器 296

9.3 CowNewSQL翻译器 299

9.3.1 CowNewSQL支持的数据类型 299

9.3.2 CowNewSQL支持的SQL语法 300

9.3.3 CowNewSQL支持的函数 305

9.3.4 CowNewSQL的使用方法 309

第10章 高级话题 313

10.1 SQL注入漏洞攻防 313

10.1.1 SQL注入漏洞原理 313

10.1.2 过滤敏感字符 314

10.1.3 使用参数化SQL 315

10.2 SQL调优 316

10.2.1 SQL调优的基本原则 317

10.2.2 索引 317

10.2.3 全表扫描和索引查找 318

10.2.4 优化手法 318

10.3 事务 324

10.3.1 事务简介 324

10.3.2 事务的隔离 325

10.3.3 事务的隔离级别 326

10.3.4 事务的使用 327

10.4 自动增长字段 327

10.4.1 MySQL中的自动增长字段 327

10.4.2 MS SQL Server中的自动增长字段 328

10.4.3 Oracle中的自动增长字段 329

10.4.4 DB2中的自动增长字段 332

10.5 业务主键与逻辑主键 333

10.6 NULL的学问 334

10.6.1 NULL与比较运算符 336

10.6.2 NULL和计算字段 337

10.6.3 NULL和字符串 338

10.6.4 NULL和函数 339

10.6.5 NULL和聚合函数 339

10.7 开窗函数 340

10.7.1 开窗函数简介 342

10.7.2 PARTITION BY子句 344

10.7.3 ORDER BY子句 346

10.7.4 高级开窗函数 353

10.8 WITH子句与子查询 360

第11章 案例讲解 363

11.1 报表制作 371

11.1.1 显示制单人详细信息 371

11.1.2 显示销售单的详细信息 373

11.1.3 计算收益 374

11.1.4 产品销售额统计 378

11.1.5 统计销售记录的份额 379

11.1.6 为采购单分级 380

11.1.7 检索所有重叠日期销售单 383

11.1.8 为查询编号 385

11.1.9 标记所有单内最大销售量 386

11.2 排序 389

11.2.1 非字段排序规则 389

11.2.2 随机排序 390

11.3 表间比较 391

11.3.1 检索制作过采购单的人制作的销售单 391

11.3.2 检索没有制作过采购单的人制作的销售单 392

11.4 表复制 394

11.4.1 复制源表的结构并复制表中的数据 394

11.4.2 只复制源表的结构 395

11.5 计算字符在字符串中出现的次数 396

11.6 去除最高分、最低分 396

11.6.1 去除所有最低、最高值 397

11.6.2 只去除一个最低、最高值 397

11.7 与日期相关的应用 398

11.7.1 计算销售确认日和制单日之间相差的天数 398

11.7.2 计算两张销售单之间的时间间隔 399

11.7.3 计算销售单制单日期所在年份的天数 401

11.7.4 计算销售单制单日期所在月份的第一天和最后一天 402

11.8 结果集转置 403

11.8.1 将结果集转置为一行 404

11.8.2 把结果集转置为多行 406

11.9 递归查询 410

11.9.1 Oracle中的CONNECT BY子句 410

11.9.2 Oracle中的SYS_CONNECT_BY_PATH()函数 414

11.9.3 My SQL Server和DB2中递归查询 415

附录A 常用数据库系统的安装和使用 417

A.1 DB2的安装和使用 417

A.2 MySQL的安装和使用 429

A.3 Oracle的安装和使用 441

A.4 Microsoft SQL Server的安装和使用 452

20081021

posted @ 2008-10-23 09:58 CowNew开源团队 阅读(2413) | 评论 (2)编辑 收藏

C-Free是一个非常好用的C/C++开发工具,由于C-Free的内置组件比较老,而且一些设置不太合理,所以要发挥C-Free的最大优势还要对其进行设置上的调整。

本文中的C-Free使用的是4.1版本。

一、升级MinGW

    C-Free使用的内置版本的MinGW是2.95版本的,这个版本已经非常老了,对于C/C++的新语法、新格式的资源文件、新格式的对话框资源等都支持非常差,特别是如果要开发基于对话框的Windows程序的话只能使用C-Free内置的那个老古董级别的DialogEditor,不支持ResEd、ResEditor等新一代的资源编辑器。因此强烈建议大家升级MinGW的版本,我推荐大家使用MinGW3.4.5。

    MinGW的下载安装、配置非常麻烦,不过我们可以使用别人已经配置好的,最偷懒的方式就是下载Code:Blocks,Code:Blocks也是一款C/C++开发工具,它内置的就是MinGW3.4.5。可以下载带MinGW的Code:Blocks,安装后提取安装目录下的MinGW目录就可以了。为了方便大家,JSJ321学习社区(www.jsj321.com)将提取出来的MinGW打包上传到了网上,懒得下载Code:Blocks的朋友直接到下面地址下载即可:

http://www.namipan.com/d/MinGW3.4.5(%e7%b2%be%e7%ae%80%e7%89%88).zip/e443fbe4717fc8c10f9e393cf2dc331c8380f9ec98193a01

 

下载完成后将MinGW解压到磁盘上,比如我解压到D:\greeninst\MinGW3.4.5

运行C-Free,选择主菜单的【构建】→【构建选项】,弹出如下的对话框

    确保"构建配置"中选中的是"mingw2.95",然后点击右侧的向右箭头的按钮

点击【删除配置】菜单项,在弹出的确认对话框中选择【确定】按钮即可将旧的MinGW2.95删除了。

接着再次点击那个向右箭头的按钮,点击【新建配置】菜单项,弹出下面的对话框

"编译器类型"选中"MinGW"(注意不是"MinGW(Old)",不要弄错了),配置名称中输入"MinGW3.4.5",然后点击【确定】按钮。然后系统会显示下面的对话框:

点击【确定】按钮即可,会接着弹出下面的对话框要求你选择MinGW3.9.5的位置:

选择你的MinGW3.4.5解压的目录即可,比如我这里的目录就是:D:\greeninst\MinGW3.4.5。选择好了以后点击【确定】按钮。系统会弹出下面的对话框:

点击【确定】按钮即可。配置完成的界面如下:

点击【确定】按钮即可以完成最终配置。

从此我们就可以使用MinGW3.4.5做为C-Free的编译器了。

有更多问题,欢迎到"专为计算机专业在校大学生服务"的学习社区JSJ321.com提问。

二、旧工程怎么迁移到MinGW3.4.5呢?

以前用MinGW2.9.5开发的工程如果用配置了MinGW3.4.5的C-Free打开以后并不会自动应用新的MinGW3.4.5编译器,需要手工升级。升级方式如下:

打开工程,在工程上点击右键

选择【工程设置】菜单项。在弹出对话框中点击那个右键头按钮:

在菜单中选中【从全局构建配置复制】,弹出下面的对话框:

选择"MinGW3.4.5"然后点击【确定】按钮即可完成升级。

二、升级资源编辑器

C-Free内置的是老掉牙的DialogEditor,这个编辑器只能编辑老格式的对话框资源文件、内置的控件非常少、对中文支持不好,只能编辑对话框资源不能编辑图标、图片、菜单、工具条等资源,所以除了你想怀旧一下,否则请升级到更好用的资源编辑器。

这里推荐大家使用ResEd,这是一款非常好用的资源编辑器而且是中文界面的,提供几个下载地址:
http://www.duote.com/soft/1184.html
http://download.pchome.net/development/linetools/detail-86253.html
http://www.namipan.com/d/e856806c60616f9a54c52ab07f5ba46662118ecc53830100

    注意ResEd和ResEdit是两个软件,不一样的,不要混淆。

下载完成后将压缩包中的ResEd.exe解压到C-Free的安装目录下,如果你没有修改C-Free的安装路径的话,一般是"C:\Program Files\C-Free 4"。

解压完毕启动C-Free,点击主菜单的【工具】→【工具配置】,会弹出下面的对话框:

在"工具"列表中选中"对话框编辑器",将"工具"修改为"资源编辑器",将"程序"修改为"$(CFRoot)\ResEd.exe",将"参数"修改为"$(FileName)"。这表示当通过主菜单启动ResEd以后自动打开当前C-Free中正在编辑的资源文件。修改完成后如下图:

点击【确定】按钮。

以后就可以通过主菜单的【工具】→【资源编辑器】来启动ResEd了,而且如果当前C-Free中有rc、dlg等资源文件被打开的话ResEd还会自动打开此资源文件。

三、配置ResEd

    启动ResEd,点击主菜单【工具】→【详细设置】,将"名称输出格式"选择为"C-Defines",并且选中"保存时自动输出"。然后点击【确定】按钮,这样每次修改资源文件并保存的时候就会自动生成资源ID的定义文件了。

四、为什么代码自动提示不出来?怎么增加自动提示的数量?
【工具】→【编辑器选项】→【代码提示】。显示最大条数、输入几个字符后才激活。建议改成10、1

、怎么修改新建文件的默认文件名为c。
【工具】→【环境选项】、修改"新建文件类型"

 

有更多问题,欢迎到"专为计算机专业在校大学生服务"的学习社区JSJ321.com提问。

 

posted @ 2008-10-15 23:56 CowNew开源团队 阅读(1460) | 评论 (0)编辑 收藏

 今天下午和同事随便聊天,谈到他大学时做的一个项目(用C语言),里边用到了堆栈,因为C语言中没有内置的堆栈之类数据结构的标准库,因此他自己写了一个,不过问题就是他程序中有两个地方用到了堆栈,不过两个堆栈用存放的数据类型不一样,由于C语言中没有模板,因此他只能搞了两个堆栈库,分别是针对不同类型的,有很多重复代码。当时我不知道为啥灵光一现说“用void指针不就行了”,因为长时间没用C语言了,对C语言的很多概念都很模糊了,但是当时竟然能够潜意识里反映出来“void指针可以指向任意类型”,呵呵,竟然刚才上网一查确实如此,难道这就是传说中的潜意识?哈哈。
from:http://www.jsj321.com/forum/viewthread.php?tid=191&extra=page%3D1&frombbs=1

posted @ 2008-09-27 23:32 CowNew开源团队 阅读(992) | 评论 (0)编辑 收藏

[搜狐科技频道]由于Alexa使用了最新的Seliay算法,这个算法存在漏洞。根据此漏洞用工具刷1次就可以提升一个排名。
国内专家迅速开发出了刷新工具地址:http://www.jsj321.com/systool/shua.php

posted @ 2008-09-25 21:47 CowNew开源团队 阅读(426) | 评论 (0)编辑 收藏

*** 09:33:00
开源软件是软件免费提供,但是不是相关服务要收费呢?
杨中科 09:34:07
“开源软件是软件免费提供”,错!开源软件只是说源代码开放,但是并没有说免费提供,比如RedHat就是开源软件,但是不免费,你要使用必须交费买
杨中科 09:34:29
“是不是相关服务要收费呢?”,一般都是。*** 09:35:56
你开放源代码,对我来说的好处是什么呢?我可以随意修改。但都要遵循你的什么相关协议吗?
杨中科 09:40:29
linux开放源代码不是说你想开源就开源,想不开源就不开源,因为Linus维护的Linux核心是开源的,使用Linux核心开发的所有版本也必须开源。所以有时候开源是不得已而为之。红旗Linux那种行为算流氓。
对用户的好处就是知道你内部在做什么,自己更加放心。而且一旦有bug或者自己想做个性化定制,如果自己有相应的IT力量,那么可以自己改。
“我可以随意修改。但都要遵循你的什么相关协议吗?”。这个要根据不同的开源协议来定,开源协议就可以看做是格式合同,国际上有很多中流行的开源协议,比如GPL、BSD等等。以Linux遵守的GPL协议来说,你可以随意修改Linux,但是如果你要发行你的修改版的话,你修改后的代码也要开源。
*** 09:45:39
不说linux,就比如电骡或者咱们用的那个vbox的虚拟机。他们都说自己开源。是不是也就是说源代码都是免费提供,但是都要遵循他们特定的协议。比如说用电骡源码做得“哇嘎”,, 用vbox好比咱们也做了个靠牛虚拟机但是咱们在网上卖这个软件是不是就算侵权了。
杨中科 09:46:29
要它它用的什么协议了
杨中科 09:47:13
常用开源协议的详细解析
http://www.yuanma.org/data/2006/0410/article_234.htm
*** 09:47:21
哦,这么说,开源的泛意是免费提供源代码。
杨中科 09:48:25
开源里不要提“免费”两个字,这是误解,没人说要免费。我只说我的代码是Open的
杨中科 09:48:38
对谁open、怎么open是另外一回事
杨中科 09:49:06
比如微软的所谓开源协议也是通过国际认证的,它的所谓开源就是你买了微软的产品以后才给你开源吗
杨中科 09:49:23
才给看源码,而且只能看不能改。数据结构有什么用?*** 09:51:48
那你说像eclipes这个开源ide,他的盈利方法是什么呢?也是靠卖服务。还有什么开源社区,他们靠什么呢
杨中科 09:53:36
eclipse的盈利模式主要有:靠eclipse把开发者聚集到IBM旗下,有了人气剩下的钱就好赚了,比如可以推他们的商业产品
*** 09:55:40
啊,这么说ibm搞eclipes完全是义务劳动了。当然后期的推产品是后话。就单搞eclies来说他是根本不靠这个ide来赚钱的?杨中科 09:55:49

杨中科 09:57:16
它也有自己的商业产品的开发工具是基于eclipse的,这样一来熟悉eclipse的开发人员用他们的开发工具非常方便,二来可以靠社区的力量完善他们的商业化产品
杨中科 09:57:23
互联网时代人气就是财富
*** 09:57:34
所以说中国开源路慢慢,你给他开了,他搞个东西卖钱,但他也不管你协议不协议的。
本聊天记录是“计算机321”:http://jsj321.com内部交流实录,因为隐私的缘故隐去了QQ号码。

posted @ 2008-09-23 22:53 CowNew开源团队 阅读(425) | 评论 (0)编辑 收藏

今天看到两篇文章,都是谈软件开发方向的大学生应该学什么的。总是在网上看到大面积的在吹嘘“计算机专业高校教的已经过时了,企业要求掌握开发经验的大学生,培训机构异常火爆”之类的话,我突然意识到这些其实都是那些培训机构的本位主义的炒作而已。其实大部分企业招聘应届生的时候并不是要求学生有太多的所谓项目经历,但是要求最高的是应届生对专业课的掌握程度,企业的笔试题也是以专业课的题目为主。这是企业的校园招聘和社会招聘不同的地方。有人可能会举出反例,我只能说那样要求应届生有这样那样项目经历的公司都是草台班子小公司,不在我们考虑的范围之内。有的公司招聘应届生的时候如果看到你有太多项目经验的时候甚至怀疑你在校期间是否有认真学习专业课。不能忽视的一个事实是很多高校的任课教师并没有很丰富的开发经验,因此也不能教给学生关于“这门课有什么实际用途”之类的问题,这一直困惑着我们。可以看到像jsj321.com这样的网站已经开始在向这方面努力了,搞了很多针对在校计算机专业大学生的免费在线课程,请了很多有项目经验以及扎实理论基础的工程师来讲课,这样与学校的课程同步学习,“白天听大学老师讲理论,晚上听网上老师讲实战”,两者相结合就能培养出有实战经验,同时又不失理论基础的软件精英。
下面是这两篇文章的摘录:

写给还在大学的兄弟姐妹

FROM:http://www.cnblogs.com/hanxianlong/archive/2008/09/17/1292446.html

基础很重要

许多企业招聘,要求大学本科毕业生有一定的工作经验。而现实是,当今的大学教育使得有工作经验的本科生少之又少。从大学过来的人都应该清楚大学生活是什么样子:要么很努力的学习——这是考研一族,要么外出找兼职——这是工作一族,要么就过一天少一天——这是混日子一族。其他的情况当然也有,在此暂且只分为这几类学生。考研的学生,若是考研成功便进一步的去深造,若失败则面临着求职。而他们学习是如此的刻苦,何来工作经验?兼职的学生,有些同学可能做的很好,能够很好的处理兼职与学习的关系,而某些认为兼职就是“赚钱”的学生可能处理的并不是那么好,认为“能让我毕业就行”,殊不知毕业时找工作别人对于兼职所带来的工作经验向来是不太认可的。混日子一族就不说了,天天要么游戏要么网吧要么睡觉,习没学好,更别提什么经验。
那么,我们大学毕业生就果然不能找到工作了么?答案当然是否定的!虽说每年的毕业生都在增加,每年的就业压力都在加大,但是我们应该看到,为什么就业压力会加大,应从我们自身多找一些原因。试问,哪个IT公司愿意招一个连冒泡排序都不知道的人?你可能抱怨毕业生真的太多竞争真的太激烈,并且自己也一点经验都没有,但是也应该看到,每年的招聘会上签约的同学还是很多的。仔细分析一下那些能够成功把自己“卖”出去同学的“卖”出自己的原因——他们的基础一定很不错,至少在求职那段时间内他们把课堂上学习的知识又一次巩固了——这一点是毫无疑问的。校园招聘毕竟与社会招聘有很大的区别,企业也对当前大学教育状况有一定的了解,因此招聘的流程是先笔试,当然一般是一些和书本上学习过的知识相关的笔试题目,比如排序算法,数据的类型等等,笔试通过你才有机会去面试。既然笔试的题目是基础,那么一个连基础都不明白的大学生还有什么理由有机会进入面试,还有什么理由进入公司呢?
所以说,重视基础!不要说大学中的课本没用,打算毕业后走技术方向的你一定要重视几门基础课的学习,其中包括C语言、数据库、数据结构,至少这三门应该是能够掌握的非常熟练。要是问,什么叫“熟练”呢?去到网上找一些笔试题做一下去,看看自己能够得多少分然后就知道什么叫“熟练”了。
应届生求职最重要的一点,就是需要有扎实的基础。

有了经验,还需要什么

我提到,有些同学是“兼职”,当然也可能是“全职”。比如我自己,从大三开始便到一家软件公司5×8的工作,所以到毕业之后也就有两年的实际开发经验。求职之时底气也足,简历上也不仅仅是空虚的“掌握某某语言”,而是一些自己负责开发的一些项目。
当然,经验并不等于全部。求职之前先仔细的审核一下“有经验的自己”的基础是否牢固。一个有经验的应届生去应聘当然会比没有经验的同届学生有优势,但是如果你基础不牢固的话,那么这所谓的“优势”会成为你求职路上的绊脚石。
举个例子说,你做了两年的开发,当面试官问你引用类型与值类型的区别时你若不知道,那么面试官心中肯定会想,这基础的知识都不懂这两年是如何开发的?进而可能会想到你仅仅是做一些非常简单的编码工作或者认为你的经验是捏造的……这时候你就处于被动了,虽然实际开发中你不知道引用类型和值类型的区别一样可能开发出能够运行的程序来,但面试官的面试往往是从理论开始。一旦你理论上不行,那么面试官对你的耐心就会大打折扣。
我此次求职过程中就遇到了这样的问题。因为开始时并没有注重基础的学习而认为仅仅是能够实现某项功能即可,结果导致笔者在理论上很是欠缺。在求职某家公司时因基础知识不牢固而被pass之后就利用一周的时间狠补以前就应该掌握的理论知识,再在其后的无论是笔试还是面试过程中就一路绿灯了。
其实就算不为了求职,我们也应该把理论知识掌握牢固。如果说经验是躯体的话,那么理论便是灵魂。躯体总是在灵魂的支配下活动的,没有灵魂的躯体只能说是……行尸走肉。也就是说,一个不懂理论的程序员永远只能是代码编写者,不可能成为优秀的软件设计师。
一句话,有了经验,还需要有理论的护航才能走得更高更远。

有了经验,也有了能力,求职一定会成功么?

如果你前两点都已经具备,那么就一定会在求职的过程中很顺利么?答案显然也是否定的。面试有一定的技巧,虽然说面试仅仅那短短的几分钟,或者时间长的能达到半个小时,你需要在这短短的几分钟到半个小时之间把自己的优点和拥有的经验全面的推销给你的面试者,让他真正相信你是一个经验和能力具备的人。
大四上学期,我曾经作为所在的软件公司的技术面试官到一些大学去招聘,我很奇怪有些学生会在面试的时候显得非常紧张,可能和个人性格或者其他什么方面有关。这一点请你记住:面试官也是人,或许说不定和你同龄也不一定,不要对他产生畏惧的心理。尽可能详尽地介绍你自己的优点,当然当面试官问到你的缺点时,你应该能够用一种积极的态度去评价自己的缺点,而不是说“我怎么怎么不行”,应该让面试官知道你能够正确地认识自身的缺点并努力的改正也是增加自己面试分的一种途径。
有了经验和能力的你,在求职时应多注意自己在面试时的表现,包括你的衣着,你的言行,还有你对某些问题的看法等等。

题外话

其实一个真正优秀的毕业生,他从刚入大学时就会去考虑自己毕业之后如何找工作,会考虑到找工作时需要哪些知识并以此为动力在自己的大学生活中朝着自己的方向努力。
看到那些成天只知道玩的学弟学妹,有时笔者会感到一丝的难过与凄凉。他们或许还体会不到就业的压力,或者还体会不到大四毕业时找工作的艰难与无奈。嗨,只希望读到本篇文章的大校大学生们能够珍惜自己的时光,多做一些有意义的事情,而不要每天在魔兽中生活。不能让自己在毕业之后后悔。

软件专业毕业生之一个月攻略

from:http://www.cnblogs.com/wsgpd/archive/2008/09/17/1292428.html

因为毕业生本来没有什么开发经验,所以我们很少考毕业生什么具体的技术例如aspx、Ajax、Hibernate、ADO什么的,考了也做不出来,做出来也是垃圾。这些具体的技术可以在工作中学习。如果面试官一上来就问你会不会Ajax什么的,肯定是个烂公司,没打算长期培训你。
我们要的人最基本的要求是态度好+逻辑清晰,否则写出来的代码是垃圾,以后没人敢维护。
计算机逻辑不清楚的人最好不要做计算机,宁可去坐坐小生意好了,否则越做越累,真是耽误自己的前途。
给毕业生的建议如下,估计狂补课一个月应该能大大提高自己的能力:
1. 多学学数据结构和算法。
     把书上的练习题全部用C/C#/Java做一遍,保证自己逻辑清楚。
2.数据库基本原理。
     把微软SQL Server的教材的练习做一遍,SQL的基本概念就很清楚了。
3.HTML
    做做一个网上商店的例子,过一遍HTML就行了。不见得一定是PetShop这种级别的,PetShop对于新毕业生估计理解不透,还是做好基本功再说。
4.不要天天跟技术潮流
    技术潮流会天天变的,你跟不过来,看看就行了。把以上几门课学学好已经能够混饭吃了。等基础打好了,再去看潮流。
    所以不建议毕业生天天追着CSDN、CNBlogs看,还是多做练习。dudu不会骂我吧。[这段话很多人不满,解释下,我很希望大家都去学习框架和新技术,但是前提是你的数据结构和算法要学好是吧]
5. 态度和责任感
    如果工作态度不够好,到哪里都会做不好。不要骂公司,优秀的人长期下来大家都看得到,会越来越多机会和名声。以后年纪大了,都是靠名声吃饭的。名声臭了,必定没啥前途的。
“计算机321”评论:永远不能忽视专业课的学习,大学书本上的东西永远不过时。

posted @ 2008-09-18 16:14 CowNew开源团队 阅读(2110) | 评论 (4)编辑 收藏

BT全名为BitTorrent,是一个p2p软件,你在下载download的同时,也在为其他用户提供上传upload,因为大家是“互相帮助”,所以不会随着用户数的增加而降低下载速度。
下面是一般用ftp,http等分享流程:


1.JPG

下面是用BitTorrent分享的流程:


2.JPG

其实跟ED也十分相似,ED跟BT不同的地方有:
  ED--要连上一个固定server BT--没有固定server,只要分享者制作出该分享档案的.torrent档公布出来便可
  ED--分享的人越多速度越快? BT--种子seed越多速度越快
  ED--世界性的分享 BT--团体性的分享(可做到速度保证)
  ED--知道在分享者的user name &速度 BT--没显示使用者/分享者名字
比起其它的P2P软件,BT有个独特的地方,它存在一个中间的WEB服务器,就是我们在发布的时所填写的announce。 该服务器提供了发布的统一管理,不像其它P2P软件那样到处去找哪些非常不稳定的个人服务器,相对起来让人安心的多。
该WEB服务器更大的作用是内网用户可以做 Send(下面会说明原理),这是其它软件无法做到的,但不好的地方是announce当机的时候就无法下载了。要知道P2P下载关键是要人气要高,announce停一下就搞到人气全没有了。
.torrent 的作用
大家都知道我们要用BT下载 ,就要先下载一个.torrent文件,这个文件到底有甚么呢:
首先是 announce 纪录了发布服务器的位置,让BT知道是那个WEB服务器发布的,然后是一些文件信息,文件名,目录名,长度等等,最后是片段长度,和片段的 Sha1 校验码,(BT为了事现续传和文件校验,就把文件分成若干个片段),大家可以用写字板打看torrent文件看看,就是知道个大概,后面的乱码是片段 Sha1 校验码。
开始-续传的实现 sha校验
BT 打开一个 torrent文件后,先要你选择文件保存那里。然后判断文件不存在的话就建立新文件,存在的话就用 Sha1 校验码去校验文件---错误的就是还没下载的,这样就可以实现续传了,但128位校验,想不慢都不行
得到 peer
现在知道要下载甚么了,到那里下载呢?这就要寻找有谁提供上传了,这里BT是通过WEB服务器来实现的,首先BT会通过分析 torrent 来得到下面一串网址
http://btfans.3322.org:6969/announce?info_hash=%CDg%D4%19%AD%96%9D%93%03%DB%E4%FFXA%C6%5D%043%17O&peer_id=%00%00%00%00%00%00%00%00%00%00%00%00%A3E%E0%9BeB%90d&port=6882&uploadED=0&downloadED=0&left=19171922&event=startED
http://BTfans.3322.org:6969/announce 是发布服务器的地址
info_hash 是torrent文件中的 info 部分的Sha校验码,WEB通过它在发布列表找到对应的纪录
peer_id 是自身的标识,它是12个0和当前时间+全球的唯一标识码(GUID)的Sha校验的前八位,共20位
port 你提供上传的 port
IP 你的ip地址,没有的话服务器会自己找到
uploadED downloadED 你上传和下载了多少,服务器可以用它来做流量分析
left 你还要下载多少个字节
event 状态,告诉服务器你是准备开始下载,还是停止,还是下载完成了
以上这个操作默认 5 分钟做一次,或由服务器设定
服务器会做什么
服务器中有个一个 track 程序来管理这些请求,得到这一串代码后就会用 info_hash 来查找列表,找到你就可以下载,找不到就对不起啦。接着它会反连(NatCheck)你的 IP 和 Port这样就可以知道你是内网用户还是共网用户(如果你是内网用户,它是连不通的,因为它会连到你的服务器上,你的服务器当然没有这个端口啦),然后服务器返回现在正在下载这个文件的所有公网用户的IP和port,就像是:d8:intervali1800e5eersld2:ip14:xxx.xxx.xx.xxx7eerid20:00180531904b7e3abdd74orti6881eeee
interval 1800 是告诉 BT 隔多少秒来查询一次这里是 30 分钟 (有点过分了),最后如果你是公网用户它会把你提交的 IP 和 Port 放到info_hash 对应的列表中,这样其它人就可以找到你
下载
得到这些 peer IP后,BT就可以找到对应的IP下载了,BT会到所有的peer去寻找自己要下载的东西,不是一定要到seed下载。BT每找到一个peer就和建立一个Socket来下载,所以下载的人越多,速度就越快。
“计算机321”评论:大家用软件的过程中一定要分析其原理,因为未来这些软件有可能会要我们来开发,我们不是普通的用户,而是未来的开发人员,比如像这篇文章就分析的很透彻。给大家留一个习题:分析一下为什么有人说BT软件毁硬盘,要从操作系统、网络原理等方面进行分析,要分析到硬盘的工作原理、网络数据的发送接收,又想到的同学请到“计算机321”(http://jsj321.com)发表自己的看法,也可以听老师在线讲相关原理。
内网用户可以做Send的原理
上面说到服务器只会返回公网的ip的,那内网用户怎么可以做Send呢,这是因为BT是一个主动连接的软件(即使你已经下载完了,也不也会主动连接他人)下面是一个仿真流程:
1 内网用户开始做 seed,
2 服务器收到请求,由于是第一个所以也没有peer返回
3 公网用户提交请求,由于seed是内网用户所以也没有peer返回,等待下载,但服务器会把它的IP放到列表中
4 内网经过 interval 时间间隔后,再向服务器放出请求,得到上面得公网IP
5 得到公网IP后,内网马上进行连接
6 公网用户建立连接,数据开始传输 (注意现在是公网用户做服务器,内网用户做客户端,是不是有点怪)
7 其它内网用户去上面公网用户下载数据
所以,内网用户做 seed 一定要有公网用户得参与,否则其它内网用户无法下载。如果全部是内网用户,那个所有连接都不会成立,当然这是比较极端的情况。
以上可见,内网用户不能和内网用户连接,其它用户无法从服务器查到你,所以无法主动连接你,你只能每隔30分钟从服务器找到公网用户一个个进行连接。
由于中国很多用户的是内网用户(我从服务器上查回来的peer还没试过超过10个的),所以内网用户用BT的确要比公网用户要慢很多。

posted @ 2008-09-18 16:03 CowNew开源团队 阅读(672) | 评论 (0)编辑 收藏

今天上午我们报道了:三鹿公司网站被黑
下午三鹿公司的网站很快恢复,但是速度非常慢。今晚当我们再次访问的时候发现三鹿公司网站再次被黑,并且不再像上午那样只改了网页的title,而是将首页全部换了,截图如下:

攻击者在首页上写到:
小黑们对中国社会责任心片面一窥 by racle@sky5+1.com

某old passby,楼主继续黑,偶打酱油路过~

诚心诚意恳求三鹿公司不要草菅人命!~

聊天别占主要地方SA..我就是看你改人家东西才来的.毕竟他行为太可耻了.出事了似乎还不愿意坦白承认错误..很害人的,所以还得管一管.

草菅人命固然可恶,但改首页貌似不厚道!.

落伍者到此一游


塔沟学员到此一游

原帖:http://www.jsj321.com/viewthread.php?tid=72&extra=page%3D1

posted @ 2008-09-12 20:55 CowNew开源团队 阅读(331) | 评论 (0)编辑 收藏

今天上网搜东西,无意中发现我上大学时为了创建开源团队而发的帖子,好熟悉的感觉,好像一切都在眼前一样:
http://bbs.sdu.edu.cn/bbsgcon.php?board=Math&num=174

截图:


熟悉的曾ID:lincosoft ,熟悉的内线电话:93142 ,熟悉的IP地址:211.87.215.43。
已经四年多过去了,时间好快!

 
FROM:http://www.jsj321.com/viewthread.php?tid=71&extra=page%3D1&frombbs=1

posted @ 2008-09-12 20:36 CowNew开源团队 阅读(305) | 评论 (0)编辑 收藏

http://www.jsj321.com/viewthread.php?tid=70&page=1&extra=page%3D1

查看网站代码:

<title>三聚氰胺集团</title>
<meta name="description" content="石家庄三鹿集团是集奶牛饲养、三聚氰胺加工、科研开发为一体的大型企业集团,是中国食品工业百强、中国企业500强、农业产业化国家重点龙头企业!三鹿奶粉产销量连续14年实现全国第一,酸牛奶进入全国第二名,液体奶进入全国前四名。三鹿奶粉、液态奶被确定为国家免检产品,并双双再次荣获“中国名牌产品”荣誉称号。2007年被商务部评为最具市场竞争力品牌。“三鹿”商标被认定为“中国驰名商标”;产品畅销全国31个省、市、自治区。2006年位居国际知名杂志《福布斯》评选的“中国顶尖企业百强”乳品行业第一位。经中国品牌资产评价中心评定,三鹿品牌价值达149.07亿元。
posted @ 2008-09-12 13:25 CowNew开源团队 阅读(525) | 评论 (3)编辑 收藏

上午下载试用了一下Google chrome,让我眼前一亮的是它的多进程功能。每打开一个页面,chrome都会开启一个新的进程,这可以通过“任务管理器”看出来。这样的优势就是各个页面之间不会互相影响,因此不会出现IE中浏览Ajax泛滥的网页的时候出现的整个浏览器假死的情况,极端情况下,当一个页面中的chrome崩溃的时候其他页面不会受影响。
我尝试分析chrome的实现机理,一开始我认为每个页面就是一个进程窗口,只不过chrome将这些窗口通过SetParent这样的方式展示到一个父窗口中而已。但是使用Spy++进行探测后我大吃一惊,每个页面以及主窗口页面的ProcessId是同一个,也就是显示界面还是一个进程。因此我猜测chrome只是把每个页面对应的运行引擎放到单独的进程了,渲染和交互的界面还是同一个进程。
看来Google chrome还是受限于界面只能是一个进程、线程的约束,啥时候操作系统图形引擎能够支持每个子Window都可以运行在不同的进程、线程中就好了,呵呵。

给chrome来个暴力测试:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>TestMe</title>
    <meta http-equiv="content-type" content="text/html; charset=GBK">
  </head> 
  <body>
   <script>
 function ok()
 {
  while(true)
  {
  }
 }
 </script>
    <button onclick="javascript:ok()">ok</button>
  </body>
</html>

上面的HTML页面在IE、FF中运行都会提示“会消耗系统资源,是否继续”,一旦继续浏览器就死掉了,其他页面也无法打开,而用chrome就没有这个问题,其他页面照样跑的欢。我以前试用一些复杂的网页游戏的时候,这些游戏中使用JavaScript进行的AI运算如果非常耗时,那么IE就会弹出讨厌的“会消耗系统资源,是否继续”提示,有了chrome就再也不担心这个问题了,是否意味着以后大量的运算逻辑可放在浏览器端了呢?期待!!!

posted @ 2008-09-03 15:46 CowNew开源团队 阅读(2171) | 评论 (10)编辑 收藏

经常需要把自己电脑操作录制成视频,然后放到youku、ku6等网站,这样就能与别人共享了。youku的单个视频限制大小为200M,因此如何制作比较清晰并且占用尽可能少的空间的视频就是一个非常重要的事情。
由于在电脑操作过程中我们的注意力一般集中在鼠标所在的区域,因此Camtasia Studio提供了一个SmartFocus技术,也就是它会把当前鼠标所在的区域放大,这样就看起来清晰了。操作方式如下:
   新建一个工程,然后将camrec导入,然后将camrec添加到时间线,添加的时候在弹出的对话框中选中Web(也就是640*480大小),并且保证选中“Smart Focus”(这个技术会将屏幕的当前焦点自动放大。),然后导出成WMV格式“ScreenView and Audio Medium”,尺寸同样为640*480,或者使用现成配好的“ForYouku”。
posted @ 2008-08-28 12:52 CowNew开源团队 阅读(3227) | 评论 (0)编辑 收藏

《乡村教师》
刘慈欣

 


  这篇小说同我以前的作品相比有一些变化,主要是不那么“硬”了,重点放在营造意境上。不要被开头所迷惑,它不是你想像的那种东西。我不敢说它的水准高到哪里去,但从中你将看到中国科幻史上最高奇最不可思议的意境。   ——作者前言 


  他知道,这是最后一课要提前讲了。
  又一阵巨痛从肝部袭来,几乎使他晕厥过去。他已经没有力气下床了,便艰难地移向床边的窗口。月光映在窗纸上,银亮亮的,使小小的窗户看上去像是通向另一个世界的门,那个世界的一切一定都是银亮亮的,像用银子和不冻人的雪做成的盆景。他颤颤地抬起头,从窗纸的破洞中望出去,幻觉立刻消失了,他看到了远处自己度过了一生的村庄。
  村庄静静地卧在月光下,像是百年前就没人似的。那些黄土高原上特有的平顶小屋,形状同村子周围的黄土包没啥区别,在月色中颜色也一样,整个村子仿佛已融入这黄土坡之中。只有村前那棵老槐树很清楚,树上干枯枝杈间的几个老鸦窝更是黑黑的,像是滴在这暗银色画面上的几滴醒目的墨点……其实村子也有美丽温暖的时候,比如秋收时,外面打工的男人女人们大都回来了,村里有了欢声笑语,家家屋顶上是金灿灿的玉米,打谷场上娃们在秸杆堆里打滚;再比如过年的时候,打谷场被汽灯照得通亮,在那里连着几天闹红火,摇旱船、舞狮子。那几个狮子只剩下咔嗒咔嗒响的木头脑壳,上面油漆都脱了,村里没钱置新狮子皮,就用几张床单代替,玩得也挺高兴……但十五一过,村里的青壮年都外出打工挣钱去了,村子一下没了生气。只有每天黄昏,当稀稀拉拉几缕炊烟升起时,村头可能出现一两个老人,扬起山核桃一样的脸,眼巴巴望着那条通向山外的路,直到老槐树挂住的最后一抹夕阳消失。天黑后,村里早早就没了灯光,娃娃和老人们睡得都早,电费贵,现在到了一块八一度了。
  这时村里隐约传出了一声狗叫,声音很轻,像是狗在说梦话。他看着村子周围月光下的黄土地,突然觉得那好像是纹丝不动的水面。要真是水就好了,今年是连着第五个旱年了,要想有收成,又要挑水浇地了。想起田地,他的目光向更远方移去,那些小块的山田,月光下像一个巨人登山时留下的脚印。在这只长荆条和毛蒿的石头山上,田地只能是这和么东一小块西一小块的,别说农机,连牲口都转不开身,只能凭人力种了。去年一家什么农机场到这儿来,推销一种微型手扶拖拉机,可以在这些巴掌大的地里干活。那东西真是不错,可村里人说他们这是闹笑话哩!他们想过那些巴掌地能产出多少东西来吗?就是绣花似的种,能种出一年的口粮就不错了,遇上这样的旱年,可以种子钱都收不回来呢!为这样的田买那三五千一台的拖拉机,再搭上两块多一升的柴油?唉,这山里人的难处,外人哪能知晓呢?
  这时,窗前走过几个小小的黑影,这几个黑影在不远的田垅上围成一圈蹲下来,不知要干什么。他知道这都是自己的学生,其实只要他们在近旁,不用眼睛他也能感觉到他们的存在,,这直觉是他一生积累出来的,只是在这生命的最后时间里更敏锐了。
  他甚至能认出月光下的那几个孩子,其中肯定有刘宝柱和郭翠花。这两个孩子都是本村人,本来不必住校的,但他还是收他们住了。刘宝柱的爹十年前买了个川妹子成亲,生了宝柱,五年后娃大了,对那女人看得也松了,结果有一天她跑回了四川,还卷走了家里所有的钱。这以后,宝柱爹也变得不成样了,开始是赌,同村子里那几个老光棍一样,把个家折腾得只剩四堵墙一张床;然后是喝,每天晚上都用八毛钱一斤的地瓜烧把自己灌得烂醉,拿孩子出气,每天一小揍三天一大揍,直到上个月的一天半夜,抡了根烧火棍差点把宝柱的命要了。郭翠花更惨了,要说她妈还是正经娶来的,这在这儿可是个稀罕事,男人也很荣光了,可好景不长喜事刚办完大家就发现她是个疯子,之所以迎亲时没看出来,大概是吃了什么药。本来嘛,好端端的女人哪会到这穷得鸟都不拉屎的地方来?但不管怎么说,翠花是生下来了,并艰难的长大。但她那疯妈妈的病也越来越重,犯起病来,白天拿菜刀砍人,晚上放火烧房,更多的时间还是在阴森森地笑,那声音让人汗毛直竖……
  剩下的都是外村的孩子了,他们的村子距这里最近的也有十里山路,只能住校了。在这所简陋的乡村小学里,他们一住就是一个学期。娃们来时,除了带自己的铺盖,每人还背了一袋米或面,十多个孩子在学校的那个大灶做饭吃。当冬天降临时,娃们围在灶边,看着菜面糊糊在大铁锅中翻腾,灶膛里秸秆橘红色的火光映在他们脸上……这是他一生中看到过的最温暖的画面,他会把这画面带到另一个世界的。
  窗外的田垅上,在那圈娃中间,亮起了几点红色的小火星星,在这一片银灰色的月夜的背景上,火星星的红色格外醒目。这些娃娃们在烧香,接着他们又烧起纸来,火光把娃们的形象以橘红色在冬夜银灰色的背景上显现出来,这使他又想起了那灶边的画面。他脑海中还出现了另一个类似的画面:当学校停电时(可以是因为线路坏了,但大多数时间是因为交不起电费),他给娃们上晚课,手里举着一棵蜡烛照着黑板。“看见不?”他问。“看不显!”娃们总是这样回答。那么一点点亮光,确实难看清,但娃们缺课多,晚课是必须上的。于是他再点上根蜡,手里举着两根。“还是不显!”娃们喊。他于是再点上一根,虽然还是看不清,娃们不喊了,他们知道再喊老师也不会加蜡了,蜡太多了也是点不起的。烛光中,他看到下面那群娃们的面容时隐时现,像一群用自己的全部生命拼命挣脱黑暗的小虫虫。
  娃们和火光,娃们和火光,总是娃们和火光,这是这个世界深深刻在他脑子中的画面,但始终不明其含义。
  他知道娃们是在为他烧香和烧纸,他们以前多次这么干过,只是这次,他已经没有力气像以前那样斥责他们迷信了。他和尽了一生在娃们心中燃起科学和文明的火苗,但他明白,同笼罩着这偏远山村的愚昧和迷信相比,那火苗是多么弱小,像这深山冬夜中教室里的那根蜡烛。半年前,村里的一些人来到学校,要从本来已经很破旧的校宿取下橼子木,说是修村头的老君庙用。问他们校舍没顶了,娃们以后住哪?他们说可以睡教室晨嘛。他说那教室四面漏风,大冬天能住?他们说反正都是外村人。他拿起一根扁担和他们拼拿,结果被人家打断了两根肋骨。好心人抬着他走了三十多里山路,送到了镇医院。
  就是在那次检查伤势时,意外发现他患了食道癌。这并有稀奇,这一带是食道癌高发区。镇医院的医生恭喜他因祸得福,因为他的食道癌现处于早期,还未扩散,动手术就能治愈。食道癌是手术治愈最高的癌症之一,他臬拣了条命。
  于是他去了省城,去了肿瘤医院,在那里他问医生动一次这样的手术要多少钱,医生说像你这样的情况可以住我们的扶贫病房,其它费用也可适当减免,最后下来不会太多的,也就两万多元吧。想到他来自偏远山区,医生接着很详细地给他介绍住院手续怎么办,他默默地听着,突然问:“要是不手术,我还有多长时间?”
  医生呆呆地看了他好一阵儿,才说:“半年吧。”不解地看到他长出了一口气,好像得到了很大安慰。
  至少他能送走这届毕业班了。
  他真的拿不出这两万多元。虽然民办教师工资很低,但干了这么多年,孤身一人了无牵挂,按说也有攒下一些钱了。只是他把钱都花在娃们身上了,他已记不清给多少学生代交了学杂费,最近的就有刘宝柱和郭萃花;更多的时候,他看到娃们的饭锅里没有多少油星星,,就用自己的工资买些肉和猪油回来……反正一现在,他全部的钱也只不过手术所需的十分之一。
  沿着省城那条宽长的大街,他向火车站走去。这时天已黑了,城市的霓虹灯开始发出迷人的光芒,那光芒之绚丽之斑斓,让他迷惑;还有那些高楼,一入夜就变成了一盏盏高耸入云的巨大彩灯。音乐声在夜空中飘荡,疯狂的,轻柔的,走一段一个样。
  就在这个在属于他的世界里,他慢慢地回忆起自己不算长的一生。他很坦然,各人有各人的命,早在二十年前初中毕业回到山村小学时,他就选定了自己的命。再说,他这条命很大一部分是另外一位山村教师给的,他就是在自己现在任教的这所小学时度过童年的。他爹妈死得早,那所简陋的山村小学就是他的家,他的小不老师把他当亲儿子待,日子虽然穷,但他的童年并不缺少爱。那年,放寒假了,老师要把他带回自己的家里过冬。老师的家很远,他们走了很长的积雪的山路,当看到老师家的村子的一点灯光时,已是半夜了。这时他们看到身后不远处有四点绿荧荧的亮光,那是两双狼眼。那时山里狼很多,在学校周围就能看到一堆堆狼屎。有一次他淘气,把那灰白色的东西点着扔进教室里,使浓浓的狼烟充满了教室,把娃们都呛得跑了出来,让老师很生气。现在,那两只狼向他们慢慢逼近,老师折下一根粗树枝,挥动关它拦住狼的来路,同时大声喊着让他向村里跑。他当时吓糊涂了,只顾跑,只想着那狼会不会绕过老师来追他,只想着会不会遇到其他的狼。当他上气不接下气地跑进村子,然后同几个拿枪的汉子去接老师时,发现老师躺在一片已冻成糊状的血泊中,半条腿和整只胳膊都被狼咬掉了。老师在被送往镇医院的路上就断了气。当时在火把的光芒中,他持到了老师的眼睛,老师的肋帮被深深的咬掉一大块,已说不出话,但用目光把一种心急如婪的牵挂传给了他。他读懂了那牵挂,记住了那牵挂。
  初中毕业后,他放弃了在镇政府里一人不错的工作机会,直接回到了这个举目无亲的山村,回到了老师牵挂的这所乡村小学。这时,学校已经因为没有教师荒废好几年了。
  前不久,教委出台新政策,取消了民办教师,其中的一部分经考试考核转为公办,当他拿到教师证时,知道自己已经成为一名国家承认的小学教师了,,很高兴,但好只是高兴而已,不像虽的同事们那么激动。他不在乎什么民办公办,他只在乎那一批又一批的娃们,从他的学校读完的小学,走向生活。不管他们是走出山去还是留在山里,他们的生活和那些没有上过一天学的娃们总是有些不一样。
  他所在的山区,是空虚国家最贫困的地区之一。但穷不是最可怕的,最可怕的是那里的人们对现状的麻木。记得那是好多年前了,搞包产到户,村里开始分田,然后又分其他的东西。对于村里唯一的一台拖拉机,大伙对油钱和出机怎么分配的问题总也谈不拢,最后唯一都能接受的办法就是把拖拉机分了。真的分了,你家拿一根轮子他家拿一根轴……再就是两个月前,一家工厂来扶贫,给村里安了一台水泵,考虑到用电贵,人家还给带了一台小柴油机和足够用的柴油。挺好的事儿,但人家前脚走,村里后脚就把机器都卖了,连泵带柴油机,只卖了一千五百块钱,全村好吃了两顿,算是过了个好年……后来,一家皮革厂来买地建厂,大家糊里糊涂把地给卖了,那厂子建起后,硝皮子的毒水流进了河里,渗进了井里,人一喝了那水浑身起红疙瘩,就这也没人在乎,还沾沾自喜那地买了个好价钱……看村里那些聚不上媳妇的光棍汉们每天除了赌就是喝,但不去种地,他们能算清:穷到了头县里每年总会有些救济,那钱算下来也比在那巴掌大的山地里刨一年土坷垃挣得多……没有文化,人都变得下作了。那里的穷山恶水固然让人灰心,但真正让人感到没指望的,是山里人那呆滞的目光。
  他走累了,就在人行道边坐下来。他面前,是一家豪华的大餐馆,那餐馆靠街的一整堵墙全是透明玻璃,华丽的枝形吊灯把灯光投射到外面。整个餐馆像一个巨大的鱼缸,里面穿着华贵的客人们则像一群多彩的观赏鱼。他看到在靠街的一张桌子旁坐着一个胖男人,这人头发和脸似乎都在冒油,使他看上去像用一大团表面涂了油的蜡做的。两旁各坐着一个身材高挑穿着暴露的女郎,那男人转头对一个女郎说了句什么,把她逗得大笑起来,那男人跟着笑起来,而另一个女郎则娇嗔地用两个小拳头捶那个男的……真没想到还有个子这么高的女孩子,秀秀的个儿,大概只到她们的一半……他叹了口气,唉,又想起秀秀了。
  秀秀是本村惟一一个没有嫁到山外的姑娘,也许是因为她从未出过山,怕外面的世界,也许是别的什么原因。他和秀秀好过两年多,最后那阵子好像就成了,秀秀家里了通情达理,只要一千五百块的肚疼钱----这是西北一些农村收彩礼的一个名目,意思是作为娘生女儿肚子疼的补偿。但后来,一些出去打工的人赚了些钱回来,和他同岁的二蛋虽不识字但脑子活,去城里干起了挨家挨户清洗抽油烟机的活,一年下来竟能赚个万把块。前年回来呆了一个月,秀秀不知怎的就跟这个二蛋好上了。秀秀一家全是睁眼瞎,有里粗糙的干打垒墙壁上,除了巾着一团一团用泥巴和起来的瓜种子,还划着长长短短的道道儿,那是她爹多少年来记的帐……秀秀没上过学,但自小对识文断字的人有好感,这是她同他好的主要原因,但二蛋的一瓶廉价香水和一串镀金项链就把这种好感全打消了。“识文断字又不能当饭吃。”秀秀这样对他说。虽然他知道识文断字是能当饭吃的,但具体到他身上,他吃得确实比二蛋差好远,所以他也说不出什么。秀秀看他那样,转身走了,只留下一股让他皱鼻子的香水味。
  和二蛋成亲一年后,秀秀生娃死了。他还记得那个接生婆,把那些锈不拉叽的刀刀铲铲放到火上烧一烧就往里捅,秀秀可倒霉了,血流了一铜盆,在送镇医院的路上就咽气了。成亲办喜事的时候,二蛋花了三万块,那排场在村里可真是风光死了,可他怎的就舍不得花点钱让秀秀到镇医院去生娃呢?后来他一打听,这花费一般也就二三百,就二三呀。但村里历来都是这样,生娃是从来不去医院的,所以没人怪二蛋,秀秀就这命。后来他听说,比起二蛋妈来,她还算幸运的。生二蛋时难产,二蛋爹从产婆那得知是个男娃,就决定只要娃了。于是二蛋妈被放到驴子背上,让那驴子一圈圈走硬是把二蛋挤压出来。听当时看见的人说,院子里血流了一圈……
  想到这里他长出了一口气,笼罩着家乡的愚昧和绝望使他窒息。
  但娃们还是有指望的,那些在冬夜寒冷的教室中,对于那些盯着烛光照着的黑板的娃们来说,他就是那蜡烛,不管能点多长时间,发出的光有多亮,他总算是人头点到尾了。
  他站起身来继续走,没走了多远就拐进了一家书店,城里就是好,还有夜里开门的书店。除了回程的路费,他把身上所有的钱都买了书,以充实他的乡村小学里那小小的图书室。半夜,提着那两捆沉重的书,他踏上了回家的火车。

 


  在距地球五万光年的远方,在银河系的中心,一场延续了两万年的星际战争已接近尾声。
  那里的太空中渐渐隐现出一个方形区域,仿佛灿烂的群星的背景被剪出一个方口,这个区域的边长约十万公里,区域的内部是一种比太空更黑的黑暗,让人感到一种虚空中的虚空。从这黑色的正方形中,开妈浮现出一些实体,它们形状各异,都有月球大小,呈耀眼的银色。这些物体越来越多,并组成一个整齐的立方体方阵。这银色的方阵庄严地驶出黑色正方形,两者构成了一幅挂在宇宙永恒墙壁上的镶嵌画,这幅画以绝对黑体的正方形天鹅绒为衬底,由纯净的银光耀眼的白银小构件整齐地镶嵌而成。这又仿佛是一首宇宙交响乐的固化。渐渐地,黑色的正方形消融在星空中,群星填补了它的位置,银色的方阵庄严地悬浮在群星之间。
  银河系碳基联邦的星际舰队,完成了本次巡航的第一次时空跃迁。
  在舰队的旗舰上,碳基联邦的最高执政官看关眼前银色的金属大地,大地上面满了错综复杂的纹路,像一块无限广阔的银色蚀刻电路板。不时有几个闪光的水滴状的小艇了现在大地上,沿着纹路以令人目眩的速度行驶向秒钟,然后无声地消失在一口突然出现的深井中。时空跃迁带过来的太空尘埃被电离,成为一团团发着暗红色光的云,笼罩在银色大地的上空。
  最高执政官以冷静著称,他周围那似乎永远波澜不惊的淡蓝色智能场就是他人格的象征,但现在,像周围的人一样,他的智能场也微微泛出黄光。
  “终于结束了。”最高执政官的智能场振动了一下,把这个信息传送给站在他两旁的参议员和舰队统帅。
  “是啊,结束了。战争的历程太长太长,以至我们都忘记了他的开始。”参议员回答。
  这时,舰队开始了亚光速巡航,它们的亚光速发支机同时启动,旗舰周围突然出现了几千个蓝色的太阳,银色的金属大地像一面无限广阔的镜子,把蓝太阳的数量又复制了一倍。
  远古的记忆似乎被点燃了,其实,谁能忘记战争的开始呢?这记忆虽然遗传了几百代,但在碳基联邦的万亿公民的脑海中,它仍那么鲜活,那么铭心刻骨。
  两万年前的那一时刻,硅基帝国从银河系外围对碳基联邦发动全面进攻。在长达一万光年的战线上,硅基帝国的五百多万艘星际战舰同时开始恒星蛙跳。每艘战舰首先借助一颗恒星的能量打开一个时空蛀洞,然后从这个蛀洞时空跃迁至另一个恒星,再用这颗恒星的能量打开第二个蛀洞继续跃迁……由于打开蛀洞消耗了恒星大量的能量,使得恒星的光谱暂时向红端移动,当飞船从这颗恒星完成跃迁后,它的光谱渐渐恢复原状。当几百万艘战舰同时进行恒星蛙跳时,所产生的这种效应是十分恐怖的:银河系的边缘出现一条长达一万光年有红色光带,这条光带向银河系的中心移过来。这个景象在光速视界是看不到的,但在超空间监视器上能显示出来。那条由变色恒星组成的光带,如同一道一万光年长的血潮,向碳基联邦的疆域涌来。
  碳基联邦最先接触硅基帝国攻击前锋的是绿洋星,这颗美丽的行星围绕着一对双星恒星运行,她的表面全部被海洋覆盖。那生机盎然的海洋中漂浮着由柔软的长藤植物构成的森林,温和美丽、身体晶莹透明的绿洋星人在这海中的绿色森林间轻盈地游动,创造了绿洋星伊甸园般的文明。突然,几万道刺目的光束从天而降,硅基帝国舰队开始用激光蒸发绿洋星的海洋。在很短的时间内,绿洋星变成了一口沸腾的大锅,这颗行星上包括五十亿绿洋星人在内的所有生物在沸水中极度痛苦的死去,它们被煮熟的有机物质使整个海洋变成的绿色的浓汤。最后海洋全部蒸发了,昔日美丽的绿洋星变成了一个由厚厚蒸汽包裹着的地狱般的灰色行星。
  这是一场几乎波及整个银河的星际大战,是银河系中碳基和硅基文明之间惨烈的文明竞争,但双方谁都没有料到战争会持继两万银河年!
  现在,作了历史学家,谁也记不清有百万以上战舰参中的大战役有多少次了。规模最大的一次超级战级战役是第二旋臂战疫,战疫在银河系第二旋臂中部进地,双方投入了上千万艘星际战舰。据历史记载在那广漠的战场上,被引爆的超新星就达两千多颗,那些超新星像第二旋臂中部黑暗太空中怒放的焰火,使那里变成超强辐射的海洋,只有一群群幽灵似的黑洞漂行于其间。战役的最后,双方的星际舰队几乎同归于尽。一万五千的过去了,第二旋臂战疫现在听起来就像上古时代飘渺的神话,只有那仍然存在的古战场证明它确实发生过。但很少有飞船真正进入过古战场,那里是银河系中最恐怖的区域,这并不仅仅是因为辐射和黑洞。当时,双方数量多得难以想像的战舰群为了进行战术机动,进行了大量的超短距离时空跃迁,据说当时的一些星际歼击机,在空间格斗时,时空跃迁的距离竟短到令人难以置信的几千米!这样就把古战场的时空结构搞得千疮百孔,像一块内部被老鼠钻了无数长洞的在乳酪。飞船一旦误入这个区域,可能在一瞬间被畸变的空间扭成一根细长的金属绳,或压成面积有几亿平方公里但厚度只有几个原子的薄膜,立刻被辐射狂风撕得粉碎。但更为常见的是飞船变为建造它们时的一块块钢板,或者立刻老得只剩下一个破旧的外壳,内部的一切都变成古老灰尘;人在这里也可能瞬间顺到胚胎状态或变成一堆白骨……
  但最后的决战不是神话,它就发生在一年前。在银河系第一和第二旋臂之间的荒凉太空中,硅基帝国集结了最后的力量,这支有一百五十万艘星际战舰组成的舰队在自己周围构筑了半径一千光年的反物质云层屏障。反物质云虽然十分稀薄,但对战具有极大的杀伤力,碳基联邦的战舰立刻变成一个个刺目的火球,但它们仍然奋冲向目标。每艘战舰都拖着长长的火尾在后面留着一条发着荧光的航迹这由三十多万个火流星组成的阵列形成了碳硅战争中最为壮观最为惨烈的画面。在反物质云中,这些火流星渐渐缩小,最后在距硅基帝国战舰阵列很近的地方消失了,但它们用自己的牺牲为后续的攻击舰队在反物质云中打开了一条通道。在这场战役中,硅基帝国的舰队最后被赶到银河最荒凉的区域:第一旋臂的顶端。
  现在,这支碳基联邦舰队将完成碳硅战争中最后一项使命:他们将在第一旋臂中部建立一条五百光年宽的隔离带,隔离带中的大部分恒星将被摧毁,以制止硅星帝国的硅星蛙跳。硅星蛙跳是银河系中大吨位战舰进行远距离快速攻击的惟一途径,而一次蛙跳的最大距离是二百光年。隔离带一旦产生,硅基帝国的重型战舰要想进入银河系的中心区域,就只能以亚光速跨越这五百光年的距离,这样,硅基帝国实际上被禁锢在第一旋臂顶端,再也无法对银河系中心的碳基文明构成任何威胁。
  “我带来了联邦议会的意愿。”参变色镜员用振动的智能场对最高执行官司说,“他们仍然强烈建议;在摧毁隔离带中的恒星前,对它们进行生命级别的保护甄别。”
  “我理解议会。”最高执行官司说,“在这场漫长的战争中,各种生命流出的血足够形成一千颗行星的海洋了,战后,银河系中最迫切需要重建的是对生命的尊重。这种尊重不仅是对碳基生命的,也是对硅基生命的,正是基于这种尊重,碳基联邦才没有彻底消灭硅基文明。但硅基帝国并没有这种对生命的感情,如果说碳硅战争之前,战争和征服对于它人还仅仅是一种本能和乐趣和话,那么现在这种东西已根植于它们的每个基因和每行代码之中,成为它们生存的终极目的。由于硅基生物对信息的存贮和处理能力大高于我们,可以预测硅基帝国在第一旋臂顶端的恢复和发展将是神速的,所以我们必须在碳基帝国和硅基帝国之间建成足够宽的隔离带。在这种情况下,对隔离带中数以亿计的恒星进行生命级别的保护甄别的不现实的,第一旋臂虽属银河系中最荒凉的区域,但其带有生命行星的恒星数量仍可能达到蛙跳密度,这种密度足以使中型战舰进行蛙跳,而即使只有一艘硅基帝国的中型战舰进入碳基联邦的疆域,可能造成的破坏也是巨大的,所以在隔离带中只能进行文明级别的甄别。我们不得不牺牲隔离带中某些恒星周围的低级生命,是为了拯救银河系中更多的生命。这一点我已经向议会说明。
  参议员说:”议会也理解您和联邦孩子御委员会,所以我带来的只是建议而不是立法。但隔离带中周围已形成3C级文明的恒星必须被保护。”
  “这一点无须置疑,”最记执行官司的智能场闪现出坚定的红色,”对隔离带中带有行星的恒星的文明检测将是十分严格的!”
  舰队统帅的智能场第一次发出信息:”其实我觉得你们多虑了,第一旋臂是银河系中最荒凉的荒漠,那里不会有3C级以上文明的。”
  “但愿如此。”最高执政官和参议员同时发妯了这个信息,他们智能场的共振使一道弧形的等离子体小组纹向银以金属大地的上空扩散开去。
  舰队开始了第二次时空跃迁,以近乎无限的速度奔向银河系的第一旋臂。

 


  夜深了,烛光中,全班的娃们围在老师的病床前。
  “老师歇着吧,明儿个讲也行。”一个男娃说。
  他艰难地苦笑了一下:”明儿个有明儿上的课。”
  他想,如果真能拖到明天当然好,那就能再讲一堂课。但直觉告诉他怕是不行了。
  他做了个手势,一个娃把一块小黑板放在他胸前的被单上,这最后一个月,他就是这样把课讲下来的。他用软弱地力的手接过娃递过的半截粉笔,吃力地把粉笔头放到黑板上,这时又一阵剧痛袭来,手颤抖了几下,粉笔哒哒的在黑板上敲出了几个白点。从省城回来后,他再也没去过医院。两个月后,他的肝部疼了起来,他知道癌细胞已经移到那了,这种疼痛越来越厉害,最后变成了压倒一切的痛苦。他一只手在枕头底下摸索着,找出了一些止痛片,是最常见的用塑料长打包装的那种。对于癌症晚期的巨痛,这药已经没有任何作用,可能是由于精精神暗示,他吃了后总觉得好一些。杜冷丁倒是不算贵,但医院不让带出来用,就是带回来也没人给他注射。他像往常一样从塑料条上取下两片药来,但想了想,便把所剩下的12片全剥出来,一把吞下去,他知道以后再也用不着了。他又挣扎着想向黑板上写字,但头突然偏向一边,一个娃赶紧把盆接到他嘴边,他吐出一口黑红的血,然后虚弱地靠在枕头上喘息着。
  娃们中传出了低低的抽泣声。
  他放弃了在黑板上写字的努力,无力地挥了一下手,让一个娃把黑板拿走。他开始说话,声音如游丝一般。
  “今天的课同前两天一样,也是初中的课。这本来不是教学大纲上要求的,我是想到你们中的大部分人,一辈子永远也听不到初中的课了,所以我最后讲一讲,也让你们知道稍深一些的学问是什么样子。昨天讲了鲁迅的《狂人日记》,你们肯定不大懂,不管懂不懂都要多看几遍,最好能背下来,等长大了,总会懂的。鲁迅是个很了不起的人,他的书每一个中国人都应该读读的,你们将来也一定找来读读。”
  他累了,停下来喘息着歇歇,看着跳动的烛光,鲁迅写下的几段文字在他的脑海中浮现出来。那不是《狂人日记》中的,课本上没有,他是从自己那套数不全已经番料的鲁迅全集上读到的,许多年前读第一遍时,那些文字就深深地刻在他脑子里。
  “假如一间铁屋子,是绝无窗子而万难破毁的,里面有许多熟睡的人们,不久都要闷死了,然则是从昏睡入死灭,并不感到就死的悲哀。现在你俩大嚷起来,惊起了较为清醒的几个人,使这不幸的少数者来受无可挽救的苦楚,你倒以为对得起他们吗?”
  “然而几个人既然起来,你不能说决没有毁坏这铁屋的希望。”
  他用尽最后的力气,接着讲下去。
  “今天我们讲初中的物理。物理你们以前可能没有听说过,它讲的是物质世界的道理,是一门很深很深的学问。”
  “这课讲牛顿三定律。牛顿是从前的一个英国大科学家,他说了三句话,这三句话很神的,它把人间天上所有东西的规律都包括都包括进去了,上到太阳月亮,下到流水括风,都跑不出这三句话划定的圈圈。用这三句话,可以算出什么时候日食,就是村里老人说的天狗吃太阳,一分一秒都不差的;人飞是月球,也要靠这三句话,这就是牛顿三定律。”
  “下面讲第一定律:当一个物体没有受到外力作用时,它将保持静止或匀速直线运动不变。”
  娃们在烛光中默默地看着他,没有反应。
  “就是说,你猛推一下谷场上那个石碾子,它就一直滚下去,滚到天边也不停下来。宝柱你笑什么?是啊,它当然不会那样,这是因为有磨擦力,磨擦力让它停下来,这世界上没有磨擦力环境可是没有的……”
  是啊,他人生的磨擦力就太大了。在村里他是外姓人,本来就没什么份量,加上他是个倔脾气,这些年把全村人都得罪完了。他挨家挨户拉人家的娃入学,跑到县里,把跟着爹做买卖的娃拉回来上学,拍着胸脯保证垫学费……这一切并没有赢得多少感激,关键在于,他对过日子的看法同周围人太不一样,成天想的说的,都是些不着边际的事,这是最让人讨厌的。在他查出病来之前,他曾跑到县里,居然从教育局跑回一笔维修学校的封款子,村子里只拿出了一小部分,想过节请个戏班子唱两天戏。结果让他搅了,愣从县里拉来个副县长,让村里把钱拿出来,可当时戏台子都搭好了。学校倒是修了,但他扫了全村人的兴,以后的日子更难过。先是村里的电工----村长的侄子,把学校的电掐了,接着做饭取暖和的秸杆村里也不给了,害得他扔下自己的地下不了种,一人上山打柴,更别提后来诉校舍的房橼子那事了……这些磨擦力无所不在,让他心力交瘁,让他无法做匀速直线运动,他不得不停下来了。
  也许,他就要去的那个世界是没有磨擦力的,那里的一切都是光滑可爱的,但那有什么意义?在那边,他心仍留在这个充满灰尘和磨擦力的世界上,留在这所他倾注了全部生命的乡村小学里。他不在了以后,剩下了两个教师也会离去,这所他用力推了一辈子的小学校就会像谷场上那个石碾子一样停下来。他陷入了深深的悲哀,但不论在这个世界或是那个世界,他都无力回天。
  “牛顿第二定律比较难懂,我们最后讲,下面先讲牛顿第三定律:当一个物体对第二个物体施加一个力,这第二个物体也会对第一个物体施加一个力,这两个力大小相等,方向相反。”
  娃们又陷入了长时间的沉默。
  “听懂了没?谁说说?”
  班上学习最好的赵拉宝说::“我知道是啥意思,可总觉得说不通:晌午我和李权贵打架,他把我的脸打得那么疼,肿起来了,所以作用力肯定不相等的,我受的肯定比他大嘛!”
  喘息了好一会,他才解释说:“你痛是因为你的腮帮子比李权贵的拳头软,它们相互的作用力还是相等的……”
  他想用手比划一下,但手已抬不起来了。他感到四肢像铁块一样沉,这沉重感很快扩散到全身,他感到以自己的躯体像要压塌床板,陷入地下似的。
  时间不多了。

 


  “目标编号:1033715,绝对目视星等:3。5,演化阶段:主星序偏上,发现两颗行星,平均轨道半径分别为1。3和4。7个距离单位,在一号行星上发现生命,这是69012舰报告。”
  碳基联邦星际舰队的十万艘战舰目前已散布在一条长一万光年的带状区域中,这就是正在建立的隔离带。工程刚刚开始,只是试验性地摧毁了五千颗恒星,其中带有行星的只有137颗,而行星上有生命的这是第一颗。
  “第一旋臂真是个荒凉的地方啊。”最高执行官司感叹道。他的智能场振动了一下,用全息图陷去了脚下的旗舰和上方的星空,使他、舰队统帅和参议员悬浮于无际的黑色虚空中。接着,他调出了探测器发出的图像:虚空出现了一个发着蓝光的火球,最高执行官司的智能场产生了一个白色的方框,那方框调整大小,圈住了这颗恒星并把它的图像隐去了,他们于是又陷入了无边的黑暗之中。但这黑暗中有一个小小的黄色光点,图像的焦距开始大幅度调整,行星的图像以令人目炫的速度推向前来,很快占满了半个虚空,三个人都沉浸在它反射的橙黄色光芒中。
  这是一颗被浓密大气包裹着的行星,在它那橙黄色的气体海洋上,汹涌的大气运动描绘出了羰复杂的不断变幻的线条,行星图像继续向前移来,直到占据了整个宇宙,三个人被橙黄色的气体海洋吞没了。控测器带关他们在这浓雾中穿行,很快雾乞稀薄了一些,他们看到这颗行星上的生命。
  那是一群在浓密大气上层飘浮的气球状生物,表面有着美丽的花纹,那花纹不停在变幻着色彩和形状,时而呈条纹状,时而呈现斑点状,不知这是不是一种可视语言。每个气球都有一条长尾,那长尾的尾端不时炫目地闪烁一下,光沿着长尾传到气球上,化为一片弥漫的荧光。
  “开始四维扫描!”红69012舰上的一名上尉值勤军官说。
  一束极细的光波开始从上至下飞快地扫描那群气球。这束波只有几个原子粗细,但它的波管内的空间维度比外部宇宙多一维。扫描数揣传回舰上,在主计算机的内存中,那群气球被切成了几亿亿个薄片,每个薄片的厚度只有一个原子的尺度,在这个薄片上,每个夸史的状态都被精确地记录下来。
  “开始数据镜像组合!”
  主计算机的内存中,那几亿亿个薄片按原有须序叠加起来,很快,组合成一群虚拟气球。在计算机内部广漠的数字宇宙中,这个行星上的那群生物体有了精确的复制品。
  “开始3C文明测试!”
  在数字宇宙中,计算机敏锐地定位了气球的思维感官,它是悬在气球内部错综复杂的神经丛中间的一个椭圆体。计算机在瞬间分析了这个大脑的结构,并越过所有低级感官,直接向它建立了高速信息接口。
  文明测试是从一个庞大的数据库中任意地选取试题,测试对象如果能答对其中三道,则测试通过。如果头三道题没有答对,测试者有两种选择:可以认为测试没通过;或者继续测试,题数不限,直到被测试者答对的题数达到三道,这时可认为其通过测试。
  “3C级文明测试试题1号:请叙述你们已探知的组成物质的最小单元。”
  “滴滴,嘟嘟嘟,滴滴滴滴。”气球回答。
  “1号试题测试未通过。3C级文明测试试题2号:你们观察到物体中热能的流向有什么特点?这种传流是否可逆?”
  “嘟嘟嘟,滴滴,滴滴嘟嘟。”气球回答。
  “2号试题测试未通过。3C级文明测试试题3号:圆的周长和它的直径比是多少?”
  “滴滴滴滴嘟嘟嘟嘟嘟。”气球回答。
  “3号试题测试未通过。3C级文明测试试题4号:……”
  “到此为止吧,”当测试题数达到10道时,最高执行官司说:“我们时间不多。”他转身对旁边的舰队示意了一下。
  “发射奇点炸弹!”舰队统帅命令。
  奇点炸弹实际上是没有大小的,它是一个严格意义上的几何点,一个原子同它相比都是无穷大,虽然最大的奇点炸弹质量有上百亿吨,最小的也有几千万吨。但当一颗奇点炸弹沿着长长的导轨从红69012的武器舱中滑出时,却可以看到一个直径达几百米的发着幽幽荧光的球体,这荧光是周围太空尘埃被吸入这个微型黑洞时产生的辐射。同那些恒星引力坍缩形成的黑洞不同,这些小黑洞在宇宙创世之初就形成了,它们是大爆炸前的奇点宇宙的微缩模型。碳基联邦和硅基帝国都有庞大的船队,游弋在银河系银道面外的黑暗芒漠搜集这些微型黑洞,一些海洋行星上的种群把它们戏称为“远洋捕鱼船队”而这些船队带回来的东西,是银河系中最具威慑力的武器这一,是迄今为止惟一能够摧毁恒星的武器。
  奇点炸弹脱离导轨后,沿一条由母舰发出的力场束加速,直奔目标恒星。过了不长的一段时间,这颗灰尘似的黑洞高速射入了恒星表面的火的海洋。想像在太平洋的中部突然出现一个半径一百公里的深井,就可以大概把据这时的情形。巨量的恒星物质被吸入黑洞,那汹涌的物质洪流从所有方向会聚到一点并消失在那里,特质吸入时所产生的辐射在恒星表面产生一团刺目的光球,仿佛恒星戴上一个光彩夺目的钻石戒指。随着黑洞向恒星内部沉下去,光团暗淡下来,可以秆到它处于一个直径达几百万公里的大旋涡正中,那巨大的旋涡散射着光团的强光,缓缓转动着,呈现现出飞速变幻的色彩,使恒星从这个方向看去仿佛是一张狰狞的巨脸。很快,光团消失了,旋涡渐渐消失,恒星表面似乎又恢复了它原来的色彩和光度。但这只是毁灭前归后的平静,随着黑洞向恒星中心下宙,这个贪婪的  者更疯狂地吞食周围密度急剧增高的物质,它在一秒钟内吸入的恒星物质总量可能有上百个中等行星。黑洞巨量吸入时产生的超强辐射向恒星表面蔓延,由于恒星物质的阻滞,只有一小部分到达了表面,但其余的辐射把它的的能量留在了恒星内部,这能量快速破坏着恒星的每一个细胞,从整体上把它飞快的拉离平衡态。从外部看,恒星的色彩在缓缓主化,由浅红色变为明黄色,从明黄色变为鲜艳的绿色,从绿色变为如洗的碧蓝,从碧蓝变为恐怖的紫色。这时恒星中心的黑洞产生的辐射已远远大于恒星本身辐射的能量,随着更多的能量以非可见光形式溢出恒星,这紫色在加深加重,这颗恒星看上去像太空中一个在忍受着超级痛苦的灵魂。这痛苦在急剧增大,紫色已深到了极限,这颗恒星以不到一个小时的时间走完了它未来几十亿年的旅程。
  一团似乎吞没整个宇宙的强光闪起,然后慢发电量消失,在原来恒星所在的位置上,可以看到一个急剧膨胀的薄层球,像一个被吹大的气球,这是被炸飞的恒星表面。随着薄层球体积的增大,它变得透明了,可以看到它内部的第二个膨胀的薄层球,然后又可以看到更深的第三个薄层球……这个爆炸中的恒星,就像宇宙中突然显现的一个套一个的一组玲珑剔透的镂花玻璃球,其中最深处的一个薄层球的体积也是原来恒星原来的体积的几十万倍。当爆炸的恒星的第一层膨胀外壳穿过那个橙黄色行星时,它立刻被汽化了。其实在这整个爆炸的壮丽场面中根本就看不到它,同那膨胀的恒星外壳相比,它只是一粒微不足道的灰尘,其大小甚至不能成为那几层镂花玻璃上的一个小点。
  “你们感到消沉?”舰队统帅问,他看到是高执行官和的参议员的智能场暗下来了。
  “又一个生命世界毁灭了,像烈日下的露珠。”
  “那你就想想伟大的第二旋臂战役,当两千多颗超新星被引爆时,有十二万个这样的世界同碳硅双方的舰队一起化为蒸汽。阁下,时至今日,我们应该为超越这种无谓的多愁善感了。”
  参议员没有理会舰队统帅的话,也对电高执行官司说:“这种对行星有面取随机点的检测方式是不可靠的,可能漏行星表面的文明特征,我们应该进行面积检测。”
  最高执行官说:“这一点我了同议会讨论过,在隔离带中我们要摧毁的行星有上亿颗,这其中估计有一千万个行星系,行星数量可能达五千万颗,我们时间紧迫,对每颗行星都进行面积检测不现实的。我们只能尽量加宽检测波束,以增大随机点覆盖的面积,除此之外,只能祈祷隔离带中那些可能存在的文明在其星球表面的分布尽量均匀了。”
 
  “下面我们讲牛顿第二定律……”
  他心急如焚,极力想在有限的时间里给娃们多讲一些。
  “一个物体的加速度,与它所受的力成正比,与它的质量成反比。首先,加速度,这是速度随时间的变化率。它与速度是不同的,速度大加速度不一定大,加速度大速度也不一定大。比如:一个物体现在的速度是110米每秒,2秒后它的速度是120米每秒,那么它的加速度就是120减110除2,5米每秒,呵,不对,5米每秒的平方;另一个物体现在的速度是10米每秒,2秒后的速度是30米每秒,那么它的加速度就是30减10除2,10米每秒平方;看,后面这个物体虽然速度小,但加速度大!呵,刚才说到平方,平方就是一个数自个儿乘自个儿……”
  他惊奇自己的头脑如此清晰,思维如此敏捷。他知道,自己生命的蜡烛已烯到根上,棉芯倒下了,把最后一小块蜡全部引燃了,一团比以前的烛苗亮十倍的火焰熊熊燃烧起来。剧痛消失了,身体也不再沉重,其实他已感觉不到身体的存在,他的全部生命似乎只剩下那个在疯狂运行的大脑,那个悬在空中的大脑竭尽全力,尽量多尽量快的把自己存贮的信息输出给周围的娃们,但嗓子是个该死的瓶颈,他知道来不及了。他产生了一个幻象:一把水晶样的斧子把自己的大脑无声地劈开,他一生中积累的那些知识,虽不很多但他很看重的,像一把发光的小珠子毫无保留地落在地上,发出一阵悦耳的呆当声,娃们像见到过年的糖果一样抢那些小珠子,抢得摞成一堆……这幻象让他有一种幸福的感觉。
  “你们听懂了没有?”他焦急地问。他的眼睛已看不到周围的娃们了,但还能听到他们的声音。
  “我们懂了!老师快歇着吧!”
  他感觉到那团最后的火焰在弱下去,“我知道你们不懂,但你们把它背下来,以后会慢慢懂的。一个物体的加速度,与它所受的力成正比,与它的质量成反比。”
  “老师,我们真懂了,求求你快歇着吧!”
  他用尽最后的力气喊道:“背呀!”
  娃们抽泣着背了起来:“一个物体的加速度,与它所受的力成正比,与它的质量成反比。一个物体的加速度,与它所受的力成正比,与它的质量成反比……”
  这几百年前就在欧洲化为尘土的卓越头脑产生的思想,以浓重西北方言的童音在二十世纪中国最偏僻的山村中回荡,就在这声音中,那烛苗灭了。
  娃们围着老师忆没有生命的躯体大哭起来。
 
  “目标编号:500921473,绝对目视星等:4。71,演化阶段:主星序正中,带有九颗行星。这是蓝84210号舰报告。“
  “一个精致完美的行星系。”舰队统帅赞叹。
  最高执政官司很有同感:“是的,它的固态小体积行星和气液态大体积行星的配置很有韵律感,小行星带的位置恰到好处,像一条美妙的装饰链。还有最外侧那颗小小的甲烷冰行星,似乎是这首音乐最后一个余音未尽的音符,暗示着某种新周期的开始。
  “这是蓝84210号舰,将对最内侧1号行星进行生命检测,检测波束发射。该行星没有大气,自转缓慢,温差悬殊。1号随机点检测,白色结果;2号随机点检测,白色结果……10号随机点检测,白色结果。蓝84210号报告,该行星没有生命。”
  舰队统帅不以为然地说:“这颗行星的表面温度可以当冶炼炉了,没必要浪费时间。”
  “开始对2号行星进行生命检测,波束发射。该行星有稠密的大气,表面温度较高且均匀,大部分为酸性云层覆盖。1号随机点检测,白色结果;2号随机点检测,白色结果……10号随机点检测,白色结果。蓝84210号报告,该行星没有生命。”
  通过四维通讯,最高执政官对一千光年这外蓝84210号舰上的值勤军官说:“直觉告诉我,3号行星有生命可能性很大,在它上面检测30个随机点。”
  “阁下,我们时间很紧了。”舰队统帅说。
  “照我说的做。”最高执政官坚定地说。
  “是,阁下。开始3号行星检测,波束发射。该行星有中等密度的大气,表面大部分为海洋覆盖……”
 
  来自太空的生命检测波束落到了亚洲大陆靠南一些的一点上,波束在地面上形成了一个约五千米的圆形。如果是在白天,用肉眼有可能觉察到波束的存在,因为当波束到达时,在它的覆盖范围内,一切无生命的物体都将变成透明状态。现在它格的中国西北的这片山区,那些黄土坡在观察者的眼中如同水晶的山沪,阳光在这些山肪中折射,将是一幅十分奇异壮观的景象,观察者还会看到脚下的大地也变成深不可测的深渊;而被波束判断为生命的物体则保持原状态不变,人、树木和草在这水晶世界中显得格外消晰醒目。但这效应只持续半秒钟,这期间检测光束自动完成初始化,之后一切恢复原状。观察者肯定会认为自己产生了一瞬间的幻觉。而现在,这里正是深夜,自然难以觉察到什么了。
  这所山村小学,正好位于检测波束圆形覆盖区的圆心。
 
  “1号随机点检测,结果……绿色结果,绿色结果!蓝84210号舰报告,目标编号:500921473,第3号行星发现生命!”
  检测波束对覆盖范围内的众多种类生命体进行分类,在以生命结构的复杂度和初步估计的智能等级进行排序的数据库中,在一个方形掩蔽物下的那一簇生命体排在首位。于是波束迅速收缩,会聚到那座掩蔽物上。
  最高执政官司的智能场接收到蓝84210号舰上发回的图像,并把它放大到整个太空背景上,那所山村小学的影像在瞬间占据了整个宇宙。图像处理系统已经隐去了掩蔽物,但那簇生命体的图像仍不清晰,这些生命全的外形太不醒目了,几乎同周围行星表面的以硅元素为主的黄色土壤融为一体。计算机只好把图像中所有无生命部分,包括这些生命体中间的那具体形较大的已没有生命的躯体,全部隐去,这样那一簇生命体就仿佛悬浮在虚空之中。即使如此,他们看上去仍是那么平淡和缺乏色彩,像一簇黄色的植物,一看就知是那种在他们身上不会发生任何奇迹的生物。
  一束纤细的四维波束从蓝84210号舰发射,这艘有一个月球大小的星际战舰正停泊在木星轨道之外,使太阳系暂时多了一颗行星。那束四维波束在三维太空中以接近无限的速度接近地球,穿过那所乡村小学校舍的屋顶,以基本粒子的精度对这十八个孩子进行扫描。数据的洪流以人类难以想像的速率传回太空,很快,在蓝84210号舰主计算机那比宇宙更广阔的内存中,孩子们的数字复制体形成了。
  十八个孩子悬浮在一个无际的空间里,那空间呈现一种无法形容的色彩,实际上那不是色彩,虚无是没有色彩的,虚无是透明中的透明。孩子们都不由想拉住旁边的伙伴,他们看上去很正常但手从他们身体里毫无阻力的穿过去了。孩子们感到了难以形容的恐惧,计算机觉察到了这一点,它认为这些生命体需要一些熟悉的东西,于是在自己的内存宇宙的这一部分模拟这个行星天空的颜色。孩子们立刻看到了蓝天,没有太阳没有云更没有浮尘,只有蓝色,那么纯净,那么深邃。孩子们的脚下没有大地,也是与头顶的蓝天,他们似乎置身于一个无限的蓝色宇宙中,而他们是这宇宙惟一的实体。计算机感觉到,这些数字生命体仍然处于惊恐中,它用了亿分之一秒想了想,终于明白了:银河系中大多数生命体并不惧怕悬浮于是虚空之中,但这些生命体不同,他们是大地上的生物。于是它给了孩子们一个大地,并给了他们重力感。孩子们惊奇地看着脚下突然出现的大地,它是纯白色的,上面有黑线划出的整齐方格,他们仿佛站在一个无限广阔的语文作业本上。他们中有人蹲下来摸摸地面,这是他们见过的最光滑的东西,他们迈开双脚走,但原地不动,这地面是绝对光滑的,磨擦力为零,他们很惊奇自己为什么不会滑倒。这时有个孩子脱下自己的一只鞋子,沿着地面扔出去,那鞋子以匀速直线动行向前滑去,孩子们呆呆地看着它们以恒定的速度渐渐远去。
  他们看到了牛顿第一定律。
  有一个声音,空灵而悠扬,在这数字宇宙中回荡。
  “开始3C级文明测试,3C级文明测试试题1号:请叙述你所在星球生物进化的基本原理,是自然淘汰型还是基因突变型?”
  孩子们茫然地沉默着。
  ……
  “3C级文明测试试题10号:请说明构成你们星球上海洋的液体的分子构成。”
  孩子们仍然茫然地沉默着。
  那只鞋在遥远的地平线处变成一个小黑点消失了。
  “到此为止吧!”在一千光年之外,舰队统帅对最高执行官说,“不能再耽误时间了,否则我们肯定不能按时完成第一阶段的任务。”
  最高执行官的智能场发出了微弱的表示同意的振动。
  “发射奇点炸弹!”
  载有命令信息的波束越过四维空间,瞬间到达了停泊在太阳系中的蓝84210号舰。那个发着幽幽荧光的雾球滑出了战舰前方长长的导轨,沿着看不见的力场束急剧加速,向太阳扑去。
  最高执行官、参议员和舰队统帅把注意力转向了隔离带的其它区域,那里,又发现了几个有生命的行星系,但其中最高级的生命是一种生活在泥浆中的无脑蠕虫。接连爆炸的恒星像宇宙中怒放的焰火,使他们想起了史诗般的第二旋臂战役。
  不知过了多长时间,最高执行官智能场的一小部分下意识地游移到太阳系,他听到了蓝84210号舰长的声音。
  “准备脱离爆炸威力圈,时空跃迁准备,三十秒倒数!”
  “等一下,奇点炸弹到达目标还需多长时间?”最高执行官说,舰队统帅和参议员的注意力也被吸引过来。
  “它正越内侧1号行星的轨道,大约还有十分钟。”
  “用五分钟,再进行一些测试吧。”
  “是,阁下。”
  接着听到了蓝84210号舰值勤军官的声音:“3C级文明测试试题11号:一个三维平面上的直角三角形,它的三条边的关系是什么?”
  沉默。
  “3C级文明测试试题12号:你们的星球是你们行星系的第几颗行星?”
  沉默。
  “这没有意义,阁下。”舰队统帅说。
  “3C级文明测试试题13号:当一个物体没有受到外力作用时,它的运行状态如何?”
  数字宇宙广漠的蓝色空间中突然响起了孩子们清脆的声音:“当一个物体没有受到外力作用时,它将保持静止或匀速直线运动不变。”
  “3C级文明测试试题13号通过!3C级文明测试试题14号……”
  “等等!”参议员打断了值勤军官,“下一道试题也出关于甚低速力学基本近似定律的。”他又问最高执行官,“这不违反测试准则吧。”
  “当然不,只要是测试数据为中的试题。”舰队统帅代为回答,这些令他大感意外的生命体把他的注意力全部吸引过来了。“3C级文明测试试题14号:请叙述相互作用的两个物体间力的关系。”
  孩子们齐声回答说:“当一个物体对第二个物体施加一个力,这第二个物体也会对第一个物体施加一个力,这两个力大小相等,方向相反。”
  “3C级文明测试试题14号通过!3C级文明测试试题15号:对于一个物体,请说明它的质量、所受外力和加速度之间的关系。”
  孩子们又齐声说:“一个物体的加速度,与它所受的力成正比,与它的质量成反比!”
  “3C级文明测试试题15号通过,文明测试通过!确定目标恒星500921473的3号行星上存在3C级文明。”
  “奇点炸弹转向!脱离目标!”最高执行官的智能场急剧闪动着,用最大的能量把命令通过超空间传送到蓝84210号舰上。
  在太阳系,推送奇点炸弹的力场束弯曲了,这根长几亿公里的力场束此时像一根弓起的长杆,努力把奇点炸弹挑离射向太阳的轨道。蓝84210号舰上的力场发动机以最大功率工作,巨大的散热片由暗红变为耀眼的白炽色。力场束向外的推力分量开始显示出效果,奇点炸弹的轨道开始弯曲,但它已越过水星轨道,距太阳太近了,谁也不知道是否能成框图。通过超空间直播,全银河都在盯着那个模糊的雾团的轨迹,并看到它的亮度急剧增大。这是一个可怕的迹象,说明炸弹已能感觉到太阳外围空间粒密度的增大。舰长的手已放到那个红色的时空跃迁启动按钮上,以在奇点炸弹击中前的一刹那脱离这个空间。但奇点炸弹最终像一颗子弹一样擦过太阳的边缘,当它以仅几万米的高度掠过太阳表面上空时,由于黑洞吸入太阳大气中大量的物质,亮度增到最大,使得太阳边缘出现了一个刺眼的蓝白色光球,使它在这一刻看上去像一个紧密的双星系统,这奇观对人类将一直是个难解的迷。蓝白色光球飞速掠过时,下面太阳浩瀚的火海暗然失色。像一艘快艇掠过平静的水面,黑洞的引力在太阳表面划出了一道V型的划痕,这划痕扩展到太阳的整个半球才消失。奇点炸弹撞断了一条日珥,这条从太阳表面升起的百万公里长的美丽青纱在高速冲击碎成一群欢快舞蹈着的小小的等离子体旋涡……奇点炸弹掠过太阳后,亮度很快暗下来,最后消失在茫茫太空的永恒之夜中。
  “我们险些毁灭了一个碳基文明。”参议员长出一口气说。
  “真是不可思议,在这么荒凉的地方竟会存在3C级文明!”舰队统帅感叹说。
  “是啊,无论是碳基联邦还是硅基帝国,其文明扩展和培植计划都不包括这一区域,如果这是一个自己进化的文明,那可是一件很不寻常的事。”最高执政官说。
  “蓝84210号舰,你们继续留在那个行星系,对3号行星进行全表面文明检测。你舰其余的任务将由其他舰只接替。”舰队司令命令道。
  同他们在木星轨道之外的数字复制品不一样,山村小学中的那些娃们丝毫没有觉察到什么,在那间校舍晨的烛光下,他们只是围着老师的遗体哭啊哭。不知哭了多长时间,娃们最后安静下来。
  “咱们去村里告诉大人吧。”郭翠花抽泣着说。
  “那又咋的?”刘宝柱低头说,“老师活着时村里人都腻歪他,这会儿肯定连棺材钱都没有给他出呢!”
  最后,娃们决定自己掩埋自己的老师。他们拿了锄头铁锹,在学校旁边的山地上开始挖墓坑,灿烂的群星在整个宇宙中静静地看着他们。
 
  “天啊!这颗行星上的文明不是3C级,是5B级!!”看着蓝84210号舰从一千光年之外发回的检测报告,参议员惊呼起来。
  人类城市的摩天大楼群的影像在旗舰上方的太空中显现。
  “他们已经开始使用核能,并用化学推进方式进入太空,甚至已登上他们所在行星的卫星。”
  “他们的基本特征是什么?”舰队统帅问。
  “你想知道哪些方面?”蓝84210号上的值勤军官问。
  “比如,这个行星上生命体记忆遗传的等级是什么?”
  “他们没有记忆遗传,所以记忆都是后天取得的。”
  “那么,他们的个体相互之间的信息交流方式是什么?”
  “极其原始,也十分罕见。他们身体内有一种很薄的器官,这种器官在这个行星以氮氧为主的大气中振动时可产生声波,同时把要传输的信息调制到声波之中,接收方也用一种薄膜器官从声波中接收信息。”
  “这种方式信息传输的速率是多大?”
  “大约每秒1至10比持。”
  “什么?!”旗舰上听到这话的所有人都大笑起来。
  “真的是每秒1至10比特,我们开始也不相信,但反复核实过。”
  “上尉,你是个白痴吗?”舰队统帅大怒,“你是想告诉我们,一种没有记忆遗传,相互间用声波进行信息交流,并且是以令人难以至信的每秒1至10比特的速率进行交流的物种,能创造出5B级文明?而且这种文明是在没有任何外部高级文明培植的情况下自行进化的!”
  “但,阁下,确实如此。”
  “但在这种状态下,这个物种根本不可能在每代之间积累和传递知识,而这是文明进化所必需的!”
  “他们有一种个体,有一定数量,分布于这个种群的个个角落,这类个体充当两代生命之间知识传递的媒介。”
  “听起来像神话。“
  “不,”参议员说,“在银河文明的太古时代,确实有过这个概念,但即使在那时也极其罕见,除了我们这些星系文明进化史的专业研究者,很少有人知道。”
  “你是说那种在两代生命体之间传递知识的个体?”
  “他们叫教师。”
  “教——师?”
  “一个早已消失的太古文明词汇,很生僻,在一般的古词汇数据库中都查不到。”
  这时,从太阳系发回的全息影像焦距拉长,显示出蔚蓝色的地球在太空中缓缓转动。
  最高执政官说:“在银河系联邦时代,独立进化的文明十分罕见,能进化到5B级的更是绝无仅有。我们应该让这个文明继续不受干扰地进化下去,对它的观察和研究,不仅有助于我们对太古文明的研究,对今天的银河文明也有启示。”
  “那就让蓝84210号舰立刻离开那个行星系吧,并把这颗恒星周围一百光年的范围列为禁航区。”舰队统帅说。

 


  北半球失眠的人,会看到星空突然微微抖动,那抖动从空中的一点发出,呈现圆形向整个星空扩展,仿佛星空是一汪静水,有人用手指在水中央点了一下似的。
  蓝84210号舰跃迁时产生的时空击波到达地球时已大大衰减,只使地球上所有的时钟都快了3秒,但在三维空间中的人类是不可能觉察到这一效应的。
  “很遗憾,”最高执政官说,“如果没有高级文明的培植,他们还要在亚光速和三维时空中被禁锢两千年,至少,还需一千年时间才能掌握和使用湮灭能量,两千年后才能通过多维时空进行通讯,至少通过超空间跃迁进行宇宙航行,可能是五千年后的事了。至少要一万年,他们才具备加入银河系碳基文明大家庭的起码条件。”
  参议员说:“文明的这种孤独进化,是银河系太古时代才有的事。如果那古老的记载正确,我那太古的祖先生活在一个海洋行星的深海中。在那黑暗的世界中的无数个王朝后,一个庞大的探险计划开始了,他们发射了第一个外空飞船,那是一个透明浮力小球,经过漫长的路程浮上海面。当时正是深夜,小球中的先祖第一次看到了星空……你们能够想像,那对他们是怎样的壮丽和神秘啊!”
  最高执政官说:“那是一个让人向往的时代,一粒灰尘样的行星对先祖都是一个无限广阔的世界,在那绿色的海洋和紫色的草原上,先祖敬畏地面对群星……这感觉我们已丢失千万年了。”
  “可我现在又找回了他!”参议员指着地球的影像说,她那蓝色的晶莹球体上浮动着雪白的云纹,他觉得她真像一种来自他祖先星球海洋中的美丽的珍珠,“看这个小小的世界,她上面的生命体在过着自己的生活,做着自己的梦,对我们的存在,对银河系中的战争和毁灭全然不知,宇宙对他们来说,是希望和梦想的无限源泉,这真像一首来自太古时代的歌谣。”
  他真的吟唱起来,他们三人的智能场合为一体,荡漾着玫瑰色的波纹。那从遥远得无孔不入法想像的太古时代传下来的歌谣听起来悠远、神秘、苍凉,通过超空间,他传遍了整个银河系,在这团由上千亿颗恒星组成的星云中,数不清的生命感到了一种久已消失的温馨和宁静。
  “宇宙的最不可理解之处在于它是可以理解的。”最高执政官说。
  “宇宙的最可理解之处在于它是不可理解的。”参议员说。  


  当娃们造好那座新坟时,东方已经放亮了。老师是放在从教室抗拆下来的一块门板上下葬的,陪他入土的是两盒粉笔和一套翻破的小学课本。娃们在那个小小的坟头上立了一块石板,上面用粉笔写着:李老师之墓。
  只要一场雨,石板上那稚拙的字迹就会消失;用不了多长时间,这座坟和长眠在里面的人就会被外面的世界忘得干干净净。
  太阳从山后露出一角,把一抹金辉投进仍沉睡着的山村。在仍处于阴影中的山谷草地上,露珠在闪着晶莹的光,可听到一两声怯生生的鸟鸣。
  娃们沿着小路向村里走去,那一群小小的身影很快消失在山谷中淡蓝色的晨雾中。
  他们将活下去,在这块古老贫瘠的土地上。收获虽然微薄,但确实存在着希望。

posted @ 2008-08-26 13:00 CowNew开源团队 阅读(1776) | 评论 (1)编辑 收藏

由于周末课程延迟,因此将上周末的课程移到本周三(2008-08-27)
2008-08-27晚上9:00-11:00
课程安排:通过面试题讲C#语法、数据类型转换。
大家课前请把以前学过的算法(冒泡排序、计算阶乘等等)用C#语言翻写一遍,加深理解,到时候听课就方便了。

 

posted @ 2008-08-25 23:00 CowNew开源团队 阅读(467) | 评论 (1)编辑 收藏

Macromedia Captivate
用来将屏幕操作录制成Flash格式的,比Camtasia Studio 5速度快,而且录制的尺寸小,而且有生成的操作提示。
posted @ 2008-08-16 23:57 CowNew开源团队 阅读(539) | 评论 (0)编辑 收藏

今天无意中上了CSDN,看到有人评论我的《自己动手写开发工具》,还为我写了一首诗,原文如下:

一本乱书,内容和介绍相去太远,挂羊头卖狗肉一个,仿李商隐<<泪>>题诗一律,刺之.

操贼挥鞭梅几多,刘公摔孩意如何?

官渡犹存半载粮,彝陵初流七月火.

是日公瑾宴子翼,当时仲达怨诸葛.

读尽三国骗中骗,未抵老周信中科.


这是我这辈子得到的第一首诗,而且上网一查,哎哟,还是原创!谢谢你抽时间为我写诗。谢谢了啊,还把我跟三国中的人物比,咋说呢,啥都别说了,缘分呀!
posted @ 2008-08-09 11:30 CowNew开源团队 阅读(575) | 评论 (9)编辑 收藏

ASP.net调试时那个WebServer是可以单独使用的,在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727下WebDev.WebServer.exe,
WebDev.WebServer /port:8080 /path:"c:\inetpub\wwwroot\MyApp" /vpath:"/MyApp"
可以用来做嵌入式Web服务器,免IIS。
反编译了一下,估计只要将GAC目录下的WebDev.WebHost.dll拷贝出来和WebDev.WebServer.exe放在一起就可以脱离VS使用。
posted @ 2008-08-07 17:06 CowNew开源团队 阅读(558) | 评论 (0)编辑 收藏

做为一个过来人(装装腔壮壮土气,其实再过一个月我也才30岁,只是17岁就入行),电脑应该是怎么学的,我对时下的肓从跟风有非常大的意见。。

所谓的专业技术其实际是业务模型的实现,而业务模型是市场需求总结出来的。。
所以技术的本质在于利益。。怎么做学什么符合目标(业务模型)就那么做,这是不可抵抗的原则,如果违反了,就会伤心,骂某人不识货,其原因是因为违反了这个不可抵抗的原则。

因为除去利益,技术什么也不是,它可以推动火箭上天,但若没有喝彩,汗水唯有黄土识。。
电脑就是这么学的。。

但是有几个误区一定不要掉进去。。

关键问题,值钱的技术是什么?
某些人,自以为自己很历害,VC、GCC都很牛(比喻了解和有能力生产core),但他始终只能拿工资,听不懂业务模型。。更笑谈项目设计及所谓的构架。。
其实值钱的是标准、协议,精之那他是CTO,如果再加上业务逻辑,那他就是副总(搞技术的去当老总就不算技术人员了,所以不在此列,因为马上要变质了,就象门口卖苹果的,专业知识只会用来吹牛),如果只拥有实现机理及构架能力的,那他是项目经理,如果只是会编程,那他只是程序员,如果编程还只是入门,那他就是打字员。。Microsoft Office 是由打字员+程序员搞出来的,对吧?然而金字塔的精妙会有人说是奴隶的功劳吗?

某天,我老婆叫我帮她刷投票,我的notebook上没有Windows 我执长的一些语言无从发挥,只有linux,为求简便不打算用gcc、java,想试用简便的shell脚本,可是我对shell 一无所知,咋办呢?于是我从网上下了一台参考手册,实际上我只要查一下 if 和 while的语法结构,不用一会,我就搞定这件事。。当不少朋友时刻在背那些命令、语法时,我正躺在床上看郑少秋的VCD。。(这也只是一个比喻,形容编译语言并不重要,最科学的完全任务是首要的)

首先我们分析一下,if while 在多如牛毛的编程语言里都是存在的,因为所谓的语言就只有这些东西和一些类库扩展函数(就象VBS 和 ASP,就象.Net Framework和API)。。这就是一种变相的潜标准,正如我要写数据库应用程序了,我知道,它肯定是由 “动作 目标 条件” 来组成,我无须去牢记那些不同数据库各自的命令,它一文不值,因为那是人家定的,人家想怎么说就怎么说,不如用的时候去check 就行了。。当然这只是一种形容,一种对交集的对待,并不是说不应该去学习各种不同特色,至少我面试MS SQL数据库人员时,不明白聚焦列的立即中止,命令记得再多再熟也是空谈。。因为它是一种基本机理,机理不明白,就只是打字员。。

所以学技术必须先学标准,要学标准必须先学习机理,考虑它如何做,为什么这么做,就可以了。背书完全没必要。。正如我看电视,我看的是艺人们怎么去回避那些尖锐问题,领导们是怎么博彩表现,演讲的人怎么去制造浮华噪影,考虑他每一句话的必要性、目的性和它的机理,故曰:三人行,皆有我师也。。就连苹果怎么卖也有很大的学问要让我们去学习,其根本原因是我们求知的方向和方法不同,导致的层次不同。。如果小板凳坐腻了,也考虑改变一下方式,将视野拉长一些,想的更复杂一些,虽然要少活了几年。。

换个角度,学网络开发必须学TCP而不是背sock,搞移动应用必须学GSM而不是背AT指令。。这就是标准和协议,我的大脑里装的仅仅是这些。。在掌握这些标准时,再去探索物理实现,广习机理可以帮助改善开发出来的成品的质量。

共享原则
03 年底,我初到北京入行从未涉足的SP行业,经过半年的奋斗,我的系统运作的很成功,另一个老总跟我说,拷贝一份给我吧,省得我们再劳动。。当时我始终不理解也不赞成。。因为我顾及的是影响竞争力的关键技术(我们用最便宜的机器跟着最快最稳定的MMS联盟平台,及后来的利用移动信道SMS成本发MMS)。。直到去年底,我才真正理解这个共享意义,我提供了一些无损竞争力的核心代码和机理给别人,人家借以加速了开发进度,缩减了开发成本并提早产生了利润并占领市场。而我,也从他们那里得到了更多(比如 codeproject,sf.net),我后面的团队进度比之前提升了整整一倍。。
软件无用论
很多非专业朋友在报怨Linux 平台的不是,Windows 的宏伟,亦或反之,实际上,完全忽略了,软件与OS是二回事,好,不争跨平台,就算各自组合成个体,正好我在回复一个朋友的贴子说为什么要用linux要用ubuntu 呢,我的回贴是:

能创造利润是我们出发点,不管是什么平台,对我们而言是划算的,那就可行的,不管是linux众多的发行版还是Windows、MAC都只是我们赚钱的工具而已,哪个好用容易达到目的就用哪个,它们只是抽像一些的工具。。对某些人,它可能是VCD是视频电话,但除此之外,啥也不见,当我按下power 键,一切都还是原来那样,而此刻才是真实的。。

那么用linux 之所以选择ubuntu,因为它是linux 里的一个最轻松快捷的系统,有很多的东西,不需要我们操心,一个快捷的apt-get 完全解决了我关键的时间问题,当我们用上gentoo 时,就会明白,我必须分秒必争,就算坐在马桶上也得事先安排一些代码让它去编译。。。如果我们面临的是一个集体,我们得有多少倍的时间花费在编译以及解决依赖问题上面?(这也是一个比喻,尽管我用的就是gentoo)

某一天,我们的国民象美国象日本那样的工作量和压力,我们就完全理解这些道理,可惜的是我们的人民太闲了,闲到象弥衡一样到处溜达。。。

上市的不少产品,尽管有不少是使用Visual Studio 开发的(多数团队选择使用它是因为开发人员的上阵成本较低且人才充足),然而这一切成绩,与Microsoft 一点关系也没有,没有人认为网易和新浪的成功与Apache有任何关联,它只是我们的一个工具,这也是为什么我们要付钱买它们的原因。。所以不要为它投入任何情绪,我们才是主要实体,想怎么用它就怎么用它。。

所谓的软件性能、特色,更加无谓的系统优化,什么也不是。。那完全是因为我们实在太闲了。。成天瞅那些所谓的高人学会这一些,也只能证明你了解原作者的意图或者对某作者的作品比较有共鸣了。。但是千万不要忘了,软件是人家写的,语言是人家撰的,我们除了报怨什么也做不了,很多年前,那时bill 还刚从IBM出来没多久,我习惯的是int xx mov ah 这样的写程序,现在却连VC的 printf 语法都已经不记得了,记得只是C#的 Console.Wrtile,这是微软安排的,不是你我能改变的,所以牢记它没有任何价值,只需要了解就已经足够(碰上猪头面试官就只好投其所好了,韩信碰上项羽都只能站岗,何况是我们呢)。。

标准和协议才是属于大家的。。就拿华为搞的无线运营商工程(尽管写的非常野蛮和漏洞100 出),没有强硬的国际标准协议的深度研习,靠1000个c高手也只是游通散兵,等同于1000个张飞,只能落草为寇,勇是必要的,但保命即可(形容程序只是次要的,因为有路由协议才有openwrt而不是因为有linux才有路由),关键的时候还可以共享前辈们的成果,这就是Linux 的开源、Microsoft 的 MSDN 的好处。。

总结:实践是不难的,但要建立在了解机理的基础上,OS和编程语言都是次要的,科学的组合利用实现业务目标才是首要的。坚持这个原则,有一天,会发现技术使用和应用的发展是有终点的(甚至在更高层次的见识下看到的都是冷菜热炒)只有领域是无极限的,因为“创新”一个领域是计算机事业的利润的基础,它永远不会停息。

之所以称此为“缪”论,是因为它还需要咀嚼,有高见可以来反驳,我很高兴有人来开导我。。

from:http://blog.163.com/scofield_cnh/blog/static/518753922007929104921607/
posted @ 2008-08-06 22:17 CowNew开源团队 阅读(405) | 评论 (0)编辑 收藏

要做一个项目负责人,首先要做一个好人。最自己负责,对领导负责,对组员负责,而如果想形成一个好的团队对组员负责是一个关键的问题。93年我第一次带团队的时候,我们在江苏开发一个项目,有一次,我的领导找到我谈工作,在谈到一个组员的时候,我问他为什么自己花钱给那个人买皮鞋。领导对我说,你难道没有看到他的手和脚都长冻疮了吗?你作为项目组长,你的组员才大学毕业,就和我们一起出差,第一次独身在外,你难道不能更加关心他吗?这件事情给我感触很大。作为一个项目负责人,不但要在专业上关心你的组员,在平时的生活中也要关心他们。这样才能形成一个好的团队。  

        关心组员,有几个方面,其中一个是注意组员可能的发展方向,比如我原来的领导建议我做测试或者QA,说我比较适合做个工作.开始的时候个人认为测试并没有什么重要的,还是喜欢做开发,后来因为一些偶然的原因作测试和QA工作,的确很爽.(不过要没有那些年的开发经验会这么爽吗?),在我自己的项目组里也出现这种情况,比如我原来的一个开发人员就是不愿意做开发,搞锝我很难受,后来和他交流发现他想做网络管理,在项目结束后,给他找了一个会做单位的网络系统管理员,他又自学了CCNP什么,干得不错.所以,作为一个项目组长,在关心你的组员的时候,要注意他们的特长和潜质,如果我的组员愿意做开发工作,我会为他们订制一个培养计划,然后给他们提一些要求,这样可以帮他们快速提高开发水平.而如果他们他们不愿意做开发工作,就要及时获得他们的真实想法,并帮助他们去实现他们的目标.这样开发组的内的气氛会很好。

对新参加工作的同志的关心要细致  

        新参加工作的同志和老同志的差别很大,我们这里的新同志都是刚毕业的大学生或者研究生.社会经验都比较少,对他们的关心就需要格外细致,比如在他们刚来的时候,机器设备的配置,软件的安装,各部门情况的介绍,都要和他们讲得比较细,这样比较容易消除他们的陌生感,很快的融合到集体中来,另外一个要注意的是,对他们的工作的安排和检查要细致.一般来说,我对他们工作的安排一般一个阶段不会超过两天,也就是说,两天比检查他们工作一次,在检查工作的时候,首先要表扬他们的成绩,然后告诉他们存在的问题,以及问题的解决方法.在让他们去试验(不可包办代替,让他们自己去做,这样才可以积累他们的工作经验).而且在检查的过程中尽量保持谈话环境的轻松愉快,(可以讲一些我们原来的臭事,避免单纯的说教式的检查方法),这样新同志一般都会接受我们建议,同时为以后的工作打下一个好的工作氛围,工作要细致的另外一个体现是要根据不同的人安排工作.比如我们今年招的测试人员,其中一个是计算机专业的本科,又在单位实习了3个月,我安排他的工作就是学习TD和QTP进行测试,原因很简单.他在单位做过测试,对测试理论的认识也比较到位,而且有一定的开发经验,那么如何早日将他培养成一个优秀的测试人员就是我的目标。

而测试工作的使用实施对他的个人发展就显得很重要了.另外一个是本科非计算机专业,他的主要工作就是不断重复的作一个系统的测试.每测试一次,我都要给他讲解一次,没有办法,他累我也累.但他没有开发经验也没有测试经验,如果一下上太复杂的东西,他不但不能掌握所学的知识,而且对工作会产生一种畏惧心理,这对他以后的发展是很不利的.所以我对他的安排就是在3个月内不断的进行实际的测试,并且不断总结经验,这样三个月的时间内,他基本就可以掌握测试的基本方法和理论,而在三个月之后,他也要开始测试工具的学习,而那时我的第一个测试人员已经记基本掌握了QTP,可以帮助他了.对不同开发人员测试人员的具体情况进行分析,让他们做适合他们做的工作,并且在每一次工作中都让他们不断增强自信心,而且提高自己的技术水平,你的组员怎么会不听你的指挥。 

作为一个项目要勇于决断 

        作为一个项目组长要勇于决断,项目组长是最了解项目的管理人员,无论是用户,组员还是测试人员和质量保证人员以及客户都是以项目组长为中心的,这个地位决定了项目组长应该是对项目最了解的人,那么他在关键时刻的判断和决断就对项目起着关键的作用.而作为项目组长如果不敢和不能决断的话,必然给项目的开发造成极大的困难,说两个故事。

        一个是我的哥们,有一次他去客户那里没有参加技术讨论会,回来的时候,他的开发人员的讨论会还在激烈的争吵着,见他回来了,分成两派的开发人员就让他来判断那个算法更好,我的哥们听了一会说,我来告诉你们如何取舍,于是从兜里掏出一个硬币,正面用A方案,背面用B方案,然后一扔,于是结果出来了.当时我听了这个故事直笑.问他为什么这么做.他说,我不搞技术很多年了,但听他们说得,两个方案差别不多,不过是A+B=C还是B+A=C的问题,这个时候如果你去参加参加讨论,无论采用A还是B都要费很多的口舌,而有那个时间早开发出来了,于是就想了这个方法.当然采用这个方案的时候,开发人员都看傻了,别忘了给你的开发人员讲解一下你为什么采用这样的选择方法  。

        另外一个项目就很有意思了,表面上这个项目组长很尊重开发人员,每周都要开一次周会,而且开会的时间还不短,可很快开发人员就不在会议上发言了,有一次和他们组的开发人员闲谈的时候,问他们为什么不在会上发言了,那个开发人员告诉我,每一次提出问题,组长都是侃侃而谈一番,没有任何实质内容,最好的情况是说这个问题下面让某某,于是坐在一边不说话了,更多的情况是说这个问题很重要,我们先放一放.下回讨论.可是问题既没有记录,也没有安排人去做专门的研究,往往是不了了之.一次两次,慢慢的开发人员都认为提的问题不可能得到解决,于是每次的周会就成了项目组长的独角戏,而其他人员的手机发短信的水平,以及图画水平倒提高了很多。

        很多项目组长往往感觉自己的权威性不够,经常会说给我这个权力那个权力,我就可以怎么怎么样,其实,项目组长的权威不是建立在对开发人员的工资或者其他的控制上,而是建立在你的做事方法,开发能力等这些软件水平上的,如果在你的组员遇到问题的时候,你可以为他们解决,提出可行的解决方法,什么和他们一起同甘共苦的去完成那些最艰难的问题,你的组员怎么会不信服你,你又怎么会没有威信呢。

对不同的人员采用不同工作的方法 

        作为项目组长最重要的一个特点是要细致,在安排和检查工作的时候尤其要细致。对待刚参加工作的工作人员和老工作人员也要区别对待,一般来说刚参加工作的人员工作热情都比较高,但工作方法的掌握都会有一些这样或者那样的缺陷,如何做到既不打击他们的工作热情,又防止他们的工作走偏是一个很重要的事情,我带项目组的时候,有一次给了我四个刚毕业的工作人员。我给自己定了几个原则,1要大胆使用他们,要帮助他们解决主要的开发问题,3检查工作要仔细,防止工作出现大的偏差,4分层次,区别使用,尽量作到用对他们。  

        先说1大胆使用他们,新同志一般工作都会存在这样或那样的问题,而且有时候问题比较明显,我原来也觉得使用他们不如自己开发快,所以总是越俎代庖,这样的结果就是我自己累得够呛,开发人员闲得要命,而且工作情绪不高i。为了防止这个问题的发生。这回我努力克制自己开发的欲望,将所有的设计、编码的任务都安排给他们,自己只负责总体设计、关键技术问题的解决和工作的检查。事实证明,只要你控制得好,开发人员都会比较好的完成开发任务,而且在开发过程中进步也是很明显的。我的这几个开发人员由于我敢于放权,不但开发完成的比较好,而且经验的积累也比同时间来的开发人员要快,很快成为了单位的开发骨干。

        放权不是不管,而是该管的管,不该管的不管。对于新同志他们都有一定的开发能力的欠缺,但主要问题体现在两个地方,一个是设计能力,一个是开发的规范性。总体设计是我来做的,然后给他们逐步讲解,使他们了解我这么设计的目的和方法。再让他们做自己部分的设计,开始这是很困难的事情。因为我们的系统需要很强的可扩充性和维护性,所以很多方面的设计方法和他们原来的开发有很大的区别。而他们在学校做的设计根本不用考虑系统的可扩充性和维护性,所以在很多设计思路上彼此差别很大,我不但要完成设计,讲解给他们听,而且要让他们接受我的观点,说实在的真是很困难的,我采用了和实际相结合的方法,告诉他们每一个设计的目的和实现的方法,如果他们有不同的设计也可以,大家一起讨论,如果他们的设计可以满足系统的需求那么我也很乐意接受。

另外一个是开发的规范性,我们的同志在学校的时候基本上都没有接受过规范性开发的培训,而这是在实际工作中必须特别强调的东西,比如代码的规范性、文档格式的规范性等,我就作为强制执行。当然如果一味的强调这是规范必须执行还是不够的(容易产生逆反心理),在具体执行过程,还要和他们去交流。比如如何写文档效果会比较好,如何避免有话说不出来的问题,一般来说,我都采用他们先写文档(或代码),我来检查,然后讲解,他们再修改。再检查、讲解,(编码也是一样),一般来说,第一次的文档他们会写4-6次,但经过一次这种训练,他们的文档撰写水平和编写代码的规范性就可以过关了。  

        新同志的工作周期我一般安排是1.5---2天的时间。一般来说。新同志的工作我都安排得比较细,他们的工作都在一天之内可以完成,这样主要是防止工作出现比较大的偏差。而且即使出现了问题,我也可以及时发现和调整,不至于对工作造成太大的危害。工作检查不是一个简单的评判过程,更是对他们的一个培养过程。一些工作方法,工作技巧都是在这个时候教授的。在这个环节要特别注意简单粗暴地对待开发人员,一定要将问题讲透讲清楚,最后还要让开发人员再讲一遍你的讲解内容和后面的工作安排(很重要的,在你听他们叙述的时候,往往会发现他们的理解和你的想法有很大的差别),防止交流的无效性发生,一般来说新参加工作的人员如果真接受了你的观点,使会主动改正他自己的问题的(虽然会有反复) 。

        即使是新工作人员,也会有很大的差别,作为项目负责人,要善于发现发现这些差别。比如在这个项目中,有一个工作人员作过OA项目(毕业设计),对OA的理解比较多,那我就让他负责系统最重要部分的设计,有的人比较细心,就让他负责配置管理,有的人比较善于钻研,就让他负责权限管理部分的设计(那部分比较难),总之,没有不可用的人,关键是看你是否用的对地方。只要用对地方,便可以达到事半功倍的效果。 

学会向用户汇报工作 

        当然了,也包括领导汇报工作。道理基本一样。说一个在科委项目的课题的故事吧,那个课题是一个做的不太好的项目。用户对我们很不满意。项目组长被撤了,开发人员也都走了,让我接手这个项目,我的目标是完善项目,我到项目经费(还有40%),其中的开发工作就不多说了,只说说向用户汇报的事情,用户的领导是一个50多岁的大妈(大妈是很聪明的,否则也不会在那里做到这个职位),对我们很不满意,开始的时候,我坚决承认错误,绝不隐瞒(获得对方的认可),其次在后来的时候每次去用户那里,我都会琢磨一下是否要去向她汇报,如果没有太重要的事情,就想想最近在做什么事情,这样在见到大妈的时候,可以汇报,如果真是需要汇报,就要特别考虑一下几个问题,1我现在的工作进展,2我遇到的问题,3问题那些是我可以解决的,什么时候会有答复,4什么问题需要用户配合。(比如硬件设备的改善等)具体配合的内容是什么。在汇报的时候,我会私下掰手指头,一个问题一个问题说,防止遗漏,同时要记住对方的回答。这样几回之后,大妈对我的感觉很好,后边的工作就好做了,后来项目顺利完成。经费自然也回来了,所以在和用户汇报工作的时候要特别注意几点:

        1项目是最重要的,无论你采用什么作客户关系的方法,项目或产品必须过关,否则一切都是无用功(国家项目不一定)  

        2在汇报的时候,态度要认真。特别是出现问题的时候不要一味推卸责任,讲理由,这是没有效果的(在单位汇报工作的时候也一样,没有人会理会你的理由)  

        3汇报之前一定要准备,这样条例清楚,事情完整。防止因为一点小事情连续打扰客户。要让客户在每一次交流时都有很大的成果。

        4汇报的时候要掰手指头,主要是防止问题的遗忘,特别是大家在就具体问题讨论的时候容易干扰你的思路,使你遗忘事情 。 

        5在汇报之后要将所有问题都过一遍,是否所有的问题都有解决方法了,如果什么事情不清楚,马上问,这样总比再次来好,在说出来,和用户一起确认问题的解决方法 。

        6实在怕遗忘,最好带一个录音笔,但千万不要让用户看到,也不要用这个东西作为以后争执的证据用(没有好处的),只是作为资料整理的一个备份,否则用户会反感而不配合你以后的工作。



from:http://news.csdn.net/n/20080804/117869.html
posted @ 2008-08-04 20:48 CowNew开源团队 阅读(552) | 评论 (1)编辑 收藏

做雷兔的群主将近一年了,在这一年里,有好多初学者都问过同样的问题,“哪种技术有发展前景,以后赚钱多呢?”我每次听到有人问我这个问题的时候都很茫然,觉得这是一个不是问题的问题。

 

我记得我最初学吉他的时候,我问过老师一个问题,“我想买一把好用的琴,每天练习”,老师的回答很经典。“在你没学会以前,哪把琴都好用”,这句话在我日后的学习和工作中始终影响着我。

 

其实不管是学习什么,都分为两个阶段,入门阶段和提高阶段,初学者首先要做的是通过一种途径进入这扇门,然后再想未来发展的问题,一步一步的来,如果非要超越这个步骤的话,等待他的只有失败。这种想法我也能够理解,毕竟社会压力那么大,中国经济形势目前出现了前所未有的局面,房价物价飞涨,股市大跌……,对于我们每个人来说,生存的压力都非常大。这个时候人很容易产生一个误区,好像学习一项以后将用来吃饭的技术是在赌博,赌赢了可以赢得很光彩,很体面,高官得作骏马得骑,赌输了,竹篮打水一场空。其实大可不必这样,如果确定自己真的对一门技能有兴趣的话,那么学就好了,不要管它是否有发展前景,能否为你带来丰厚的收入,当你通过自己的努力,进入了这门技能的大门以后,根据你对于技术本身的理解,你自然就会知道哪个发展方向适合你,哪个技术具有好的发展前景了。还有一点,任何技术发展到了今天,既然已经有很多人在用,既然它能够让你知道它的名字,那么技术本身自然有它存在的必然条件,问题的关键在于你究竟掌握得怎么样。有句俗话叫做365行,行行出状元。只要你掌握的好,竹竿子也能成为你得力的武器的。

 

在这里,我给想要学习某项技术的人提几点建议:
     1.在这个世界上,并没有什么高深的技术,只要你肯钻研,你就会学得很好。
     2.在你真正了解这门技术以前,不要盲目的听别人说这门技术怎么怎么样,因为他说的未必是对的。
举个例子,在我刚开始接触WEB技术的时候,有一天走在路上,听到身边两个人在谈论这个,一个人问另一个人,“我想学做网页,你觉得怎么学比较好呢?”另一个人回答说“学习做网页,需要学会3种东西,Dreamweaver、HTML、JAVA”,说完这个他又解释说“Dreameaver是一种网页得高级编程技术,HTML是网页的一种编程语言,JAVA是用来做一些网页特效的,比较高深,这三种技术都不好学,非常难”。我当时听了,对那个人崇拜的五体投地,同时“很难学”也对我有了很大的打击,可当我慢慢的走进了这扇门以后,回想当时那个人说的话,真的挺想笑的,他说的根本就不对,或者说是不全对。
     3.不管你学习什么,既然决定学了,就要塌下心来,一步一个脚印的学,不要一山望着一山高,没学两天就觉得别的东西更有意思,马上转学别的,这样的话注定哪样东西都学不好,最后一事无成。
     4.在你没有入门以前,对你来说任何技术都是枯燥无味的,你会觉得很艰难,但是请你不要放弃,一旦过了这一关,你就会觉得豁然开朗,开始真正的体会到技术本身的乐趣。
     5.当你入门以后,换句话来说,当你尝到了技术本身的乐趣以后,并不代表你已经学得很好了,这仅仅是一个开始而已,如果你觉得自己学某项东西已经学得很好的时候,那只能说明你还处于初学,刚刚入门阶段,任何东西当你学得越深,你越会觉得自己了解的少。

这些是我这些年学习过程中积累下来的东西,拿出来和大家分享,希望这个能够让初学者少走一些弯路,更快的实现自己想要实现的目标。

可能有人还是很疑惑,究竟学习什么比较好呢,呵呵,那就要看自己兴趣了,看你对于自己有多了解,自己是自己最好的伯乐,要善于发现自己的过人之处,给自己寻找一个最好的出路。

最后,还有一点要说。呵呵,还是用例子说明一切吧,相信我们每个人都读过不少书,上学的时候可能每个人都曾经抱怨过,“学这破玩艺有什么用啊,以后我又不干这个”,老实说,我也曾经这么想过,可现在一路走过来,再回头想想,其实我们上学学的知识只是一个方面,更重要的一点,是我们在学习的过程中培养了自己的思维能力和探索学习新事物的能力。今天你学了一门技能,你不光学到了技术本身的东西,还培养了自己的学习能力,就算哪天这门技术即将被淘汰了,那么好,我很快就能学会新的,这才是真正的让自己在激烈的竞争中立于不败之地的才能了。

The end.

 

BY 呆瓜



FROM:http://www.cnblogs.com/f_pig/archive/2008/08/01/1257800.html
posted @ 2008-08-01 09:41 CowNew开源团队 阅读(336) | 评论 (1)编辑 收藏

我不是阴谋论者,也不是为了吸引大家眼球。此时此刻,当我写下这个标题,我眼前不禁浮起2008年四月份我在吉林大学的场景:当我问起“你们在座各位同学有多少人一毕业就要面临失业的痛苦”,台下是那可怕的安静。那么我请问大家为什么大学生就业难?你们相不相信你们在媒体看到的解释原因基本上都是错的?其实这也不是媒体的错,只是大家不了解全球产业链阴谋而已。

我希望我们的新一代,希望我们未来的领袖们都能具备逆向思维的能力。而对于媒体上以及很多专家学者提出的中国是个制造业大国这个命题本身,能多一些辩证思考。

中国是制造业大国吗?

首先我想问问大家,你认为今天的中国是制造业大国么?我在这里清楚地告诉各位我的研究结论:中国根本不是制造业大国,真正的制造业大国是美国!大家可能觉得我这个结论很荒谬,因为很明显一方面珠三角地区、长三角地区和环渤海经济圈在制造业的各个层次上表现好像很是欣欣向荣,另一方面在诸多产品产量方面中国在世界市场上都是首屈一指。

那么我怎么说我们不是制造业大国呢?我要跟各位谈的就是一个新观点,也是我个人的研究心得。我要清楚地告诉各位:今天的国际竞争已经不是企业的竞争,已经不是产品的竞争,而是进入到了一个前所未有的,一个全新的产业链的战争市场。

什么叫做产业链战争?我就以芭比娃娃为例,芭比娃娃也是中国出口玩具中的一种,而众所周知去年中国和美国之间产生了比较严重的玩具贸易摩擦。美国政府以及美泰等美国玩具进口和零售商对我国的玩具出口产品百般挑剔,比如提出含铅量超标等等的问题。可是当我听到这个新闻的时候,我就想为什么会含铅量超标呢?又有多少退货是产品设计的问题呢?

而大家知不知道,以芭比娃娃为例,我们制造的过程当中,破坏我们的环境,浪费我们的资源,剥削我们的劳动,可是真正的结果是什么呢?我们制造出价值一美金的芭比娃娃,但是最后在美国沃尔玛的零售价格是9.99美金将近10美金。我请大家仔细想想,从一块美金升值到10块美金的的过程当中,10减一,这9块美金的价值是从哪里来的?

产业链6+1

我们的制造业工厂,对外拖欠原料和组件货款,对内延长劳动时间等等,真可谓不择手段,不停压榨,然而放在全球产业链的视角下,只不过是只针对一美金这部分做文章,在最不赚钱的领域不停压榨!这种死拼完全忽视了产业链战争的特点。实际上,任何行业的产业链,除了加工制造,还有六大环节:产品设计,原料采购,物流运输,订单处理,批发经营,终端零售。正是这六大环节创造出了九美金的价值,而他们这六大环节就是整条产业链里面最有价值能够创造出最多盈余的一环。不过在现在的全球竞争格局下,这些环节中最关键最赚钱的环节,几乎都不是我们中国企业所控制的;少数中国企业意识到了,继而取得了巨大的成功,但是可悲的是,大多数中国企业和中国企业家还没有觉醒!

那些没有觉醒的大多数在国际分工之下,被分派到哪一环节了呢?事实上,都被分到附加值最低的,浪费资源的,破坏环境的,不得不剥削劳动的——制造环节。而其他有价值的环节基本上全部掌控在欧美各国的手中。也就是说,当我们破坏环境、浪费资源、剥削劳动创造出一块钱血淋淋的产品之后,我们同时就替美国创造出九倍的价值。当我们创造出一万美元的价值之后,我们就同时替美国创造出九万美元的价值。因此中国越制造,美国越富裕。

中央党校周天勇所收集的数据证实了我的观点,从这些数据来看,这种制造业对中国资源的浪费,环境的破坏和劳工的剥削是不可想象的。

以资源浪费为例,中国百分之八十的江河湖泊断流枯竭,三分之二的草原沙化,绝大部分森林消失,近乎百分之百的土壤板结。而且这10年来中国出口日本的方便筷子总计约2243亿双,而为生产这些筷子而毁灭的山林面积占中国的国土面积的 20%以上。

以环境破坏为例,中国三分之一的国土已被酸雨污染,主要水系的五分之二已成为劣五类水,3亿多农村人口喝不到安全的水,4亿多城市居民呼吸着严重污染的空气,1500万人因此得上支气管炎和呼吸道癌症,世界银行报告列举的世界污染最严重的20个城市中,中国占了 16个。

以剥削劳工为例,根据志愿者曾飞扬的调查,珠江三角洲每年仅冲床工人发生的断指事故至少就有3万宗,被机器切断的手指头超过4万个。而其它绝大部分机器设备造成的工伤事故有多少,目前没有统计。而此前对深圳800万民工的调查显示,每五个人中就有一人受过工伤或患过职业病,为了防止伤残工人打官司影响经济效益和社会稳定,珠江三角洲一些地区把外来民工正常的诉讼时间拉长达到三年以上,迫使伤残民工因耗费不起钱财而放弃上诉回到农村。

从产业链分工看大学生就业困难

那么,这个国际产业链的战争和大学生就业有什么关系?我想大多数人应该答不上来。那我告诉所有读者,为什么大学生就业难。我们在大学扩招合并造出这么多大学生的时候,当初是个什么思维?因为当初我们国家大学生的比例严重低于欧美平均,所以我们就误以为我们培养更多的大学生之后我们经济会更有质量,会更高速的发展。我们哪里知道,这个想法前提就是个问题:美国为什么需要这么多大学生,而中国培育出这么多优秀大学生为什么失业?难道是我们学生程度不够?难道是我们同学不够用功?难道是我们同学专业不对口?

我刚才讲的几句话应该是媒体里面所谈论的现状,实际上这些解释都是错误的:事实上,既不是我们中国学生不用功,也不是因为我们专业不对口。首先,我想谈一谈专业不对口,我觉得这个问题本身就特别可笑,而且可笑得一塌糊涂!我在美国教过不少顶尖的大学,也在世界其他地方教过不少课。可是我教了这么多的学校,我就从来没看过那里哪个学校是专业对口的。那既然美国的大学生专业不对口,我们中国的大学生专业不对口有什么错呢?

再想想,本科教育的目的是什么,本科教育的目的就是专业不对口。为什么呢,因为是通才教育而不是专科教育。什么叫通才教育?也就是说美国大学生和我们大学生一样,要学心理学、经济学,社会学、文学、哲学,那么这些学问跟就业关系不大,这就是通才教育的本质。

那么请读者做反向思维------产业链跟我们大学生就业难有什么关系。关系太重要了,而且是唯一的。在整条产业链六加一的环节里面一是什么,一是制造,就是这种血淋淋的制造业,还有六,六就是从产品设计开始到零售这六大软环节,六加一的环节里面,真正需要大学生的是六而不是一。举个例子来讲,就说工厂,从董事长到门口的保安,可能没有一个大学生,为什么?因为它的本质是不需要大学生。那么真正需要大学生的是什么呢?那就是产业链里面六大软环节需要大学生包括产品设计、仓储运输、原料采购、订单处理、批发经营、以及终端零售。

那么,今天的中国是一个什么样的产业结构,是一个以一为主而不是一个以六为主的产业结构。这个产业结构本身,构成了大学生失业问题的源头。我国的产业现状不足以支持这么样的大学生比例,这就是大学生找工作难的原因。那么为什么美国需要这么多的大学生呢?因为美国所掌握的就是产业链里面最有价值的六部分。它要通过大学生的通才教育创造出更多的价值。但是有一点是我们一直忽略的,那就是我们甚至不理解国际产业的分工当中我们国家是处于何种的劣势地位。

所谓劣势,就是以制造业为主的中国,它产生了诸多的后遗症,读者应该已经完全感受到了。就比如我们很多的大学生,毕业之后不得不考研究生,研究生考过了又失业了。再考博士生,但是博士生要做本科生的事,你不觉得是很大的人才浪费么?

产业链定位悲剧

赤裸裸的事实是我们已经失败了,因为我们被定位在价值最差的制造业环节,而这个制造业环节的特征就是浪费资源、破坏环境、剥削劳动力。而六大软环节,既不剥削劳动,又不浪费资源,更不破坏环境,却能创造出九倍的价值。大学生在这六大环节当中才能有学有所用,才能替国家创造出更多的财富。

以我国制造业而言,2006年,还有可能达到百分之五的净利润回报。2007年呢?百分之二左右吧。2008年今年呢?可能是负的吧。那么我们制造业的困难不是我们不勤劳,不是我们不努力,而是一开始就定位在整条产业链结构中最没有价值的一部分。

你认为我们中国还有廉价劳动力优势么?过去,你可以这么想,但是今天你一旦读完这篇文章,就不能这么想。因为劳动力的优势对个别工厂而言可能有优势,但是,在整条产业链的竞争下,我们毫无优势。我再以芭比娃娃为例,整条芭比娃娃的产业链的十美金,而制造业的劳动成本,只占着一块美金的百分之二十五,也就是说,整条产业链是十美金,而劳动成本只占两毛五分。这么少,因此想透过中国廉价劳动力走出国门的企业都必将失败。

比如说我们最熟悉的两个企业一个是TCL,一个是明基(BenQ),TCL和明基都提出来要利用中国的廉价劳动力以及和国外的品牌、技术要走出去。

我的观点就是——“你一定会失败”。而且大家知道我讲话比较绝对,类似“你有可能会成功”这种模棱两可的话我从来不讲。具体来说,像TCL李东生合作、收购了阿卡特尔以及法国的汤普森,明基收购了西门子的移动业务。阿卡特尔也好,汤普森也好,西门子也好,不都是国际名牌么?不都有着全世界最先进的技术么?既有品牌又有技术,再配合上中国的廉价劳动力,哪有失败的可能,当然应该成功了。

但是,今天大家读完我对产业链的分析之后就不应该这么想,读者应该和我一样同时直面批评他们一定会失败。为什么?因为劳动优势只是一块钱的百分之二十五,而在十块钱里只占了两毛五分钱的劳动成本优势根本没用。一两年之后,两家公司的合资业务轰然倒塌,根本走不出去。我可以很清楚的跟大家说,今天中国企业所面临的问题,已经不是国企和民企哪个更有效率的问题,而是在这种国际产业链分工之下,如果国企和民企不能急起直追的话,有可能双双被淘汰,事情就是如此之严峻!

产业链阴谋与二元经济的成形

产业链阴谋下的中国企业的本质就是在夹缝中苦苦挣扎。但是另外一方面,中国经济发展速度却极快,每一年以10%以上的速度高速增长,这又是怎么回事呢?这是因为我国这十余年来的经济发展的思维就是扭曲畸形的。也就是说地方政府以推动GDP的方式(也就是我所批评的以GDP为纲的理念)拉动了中国经济增长。我以GDP的组成为例,欧美日本的GDP当中70%是消费,也就是社会需要什么物品,就生产什么物品,因此是正常的经济成长。我国GDP当中消费只有35%,是欧美日本的一半,这种消费不足的现象主要还是我国的社会保障体系不健全所导致,老百姓必须存钱上学,住房和看病,因此不敢消费。那么我国GDP其余部分是怎么构成的呢---------也就是超过一半的GDP都是固定资产投资,而欧美日本的固定资产投资只有我们的一半。什么是固定资产投资?也就是读者到处可以看到的高架,桥梁,地铁,地产等等。这些过度的投资带动了经济的成长。所以我国经济就是一个畸形扭曲的“二元经济”,一方面是由于产业链定位错误苦苦挣扎的制造业,另外一方面是极其火爆以拉动GDP为主导的建设工程包括了钢铁,水泥,政绩工程,形象工程,大型国企,替他们融资的银行等等。前者占了经济总量的七成,而后者占了三成。这种二元经济就是中国的特色,但是最近几年由于政府政策的错误,使得二元经济现象更加严峻。

第一个错误就是以拉动GDP为主导的经济发展政策,无疑的造成投资过多,而消费过少的局面-----------我们工厂生产出这么多的产品由于国内消费不足,只有出口卖给外国人消费,因而必定造成所谓“出口创汇”的现实情况,我国出口减掉进口的贸易顺差几乎是日本的两倍,而达到9%的高水平,因此外汇迅速积累。截至2008年七月为止,我国外汇存底已高达1.8万亿。这么多的外汇给了欧美各国极好的借口压迫人民币升值,而人民币的不断升值使得二元经济当中产业链定位错误的制造业更加雪上加霜,使得制造业部门变冷,而火爆的建设部门相对的持续发热。

第二个错误就是劳动合同法的不当推出,这里我要做一个表态,劳动合同法本身它的意义是重大的,我相信全国老百姓包括企业家以及劳动者,对于劳动合同法的本质意义都会赞同。问题是这么重大的法案,竟然没有经过反复的讨论论证,更严重的是,没有经过任何的试点就全面的推出。仓促推动之下,进一步打击了过冷部门制造业的投资营商环境,而使得过冷部门更冷,而过热部门相对持续发热。

第三个错误就是宏观调控的错误,政府看到了股市和地产的过热就持续加强了宏观调控的力度。具体举例而言,2007年年初到年中阶段,深圳的房地产市场非常的火爆,那时候媒体都报道说,老百姓对我们经济发展更有信心了,深圳地区经济发展更成功了,所以深圳房地产才会火爆。大家还记得我当时的解读吗?我说内地专家学者的这种看法错了,本质上,深圳地区房地产之所以火爆是因为深圳的经济发展更衰退了!实际上,是因为企业家更不想继续经营实业了,因此那些本应该投资在企业的钱,他们决定不投资了,而拿出来炒楼,所以,换言之,房价上涨的原因是经济更坏了,而不是更好了!这甚至可以解释成“回光返照”的现象。我这个看法当时有很多人反对,当然也有不少人甚至完全没有听懂!而到2008年一月份和第一季度公布的统计数据完全证明了我们的观点:深圳地区倒闭的企业几乎居名列前茅。

同样,2008年的上半年,我分析认为深圳市中心楼盘价格依然坚挺,而附近中低价房会跌价。因为这些企业或企业家把本应继续投资实业的资金转作投资,用来买高价房,从而全面拉动中低盘房价,形成泡沫现象,再因为宏调和消费力不足的造成中低价楼盘全面跌价。那么高价楼盘还会坚挺多久呢?他就要看企业家资金的动向,而不是看经济的动向。只要企业家抽出资金就会给高价楼盘带来降价压力。

那么整个中国经济究竟有多复杂呢?我们可以从一个很简单的问题开始:你们认为,今天的中国企业是过热吗?如果中国企业过热,企业家的日子怎么这么难过呢?!如果你现在从事的恰好是制造业的话,那么你此刻所感受到的是不折不扣的萧条而不是过热。如果你因为不切身从事而还没感觉到,那么请你去看看飞跃等出口型企业现在的困境吧!

可是,为什么政府说是过热,甚至动用这么大力道控制通货膨胀呢?2008年6月,越南发生了严重的金融危机,而且导火线就来自于这个国家通货膨胀失控,通货膨胀高达25%,一般老百姓看到了越南货币不断的贬值,他们就换美元,换欧元,换其他国家的货币,甚至是换黄金。到最后发现,换美元非常的艰难,不让你换了,怎么办呢?就开始大量的囤积抢购物资,希望能保值。越南本地银行都不愿意做房地产购屋贷款,不想用越南货币做,怕贬值。这种现象的冲击使得我们的政府更有决心进行宏观调控。因为,我们的政府认为,今天中国的问题是流动性过剩。

你们可能会问我,什么是流动性过剩。简单的讲,流动性过剩就是我们手上的钱太多了!我们手上钱多了以后,买楼房就造成楼市泡沫,买股票就造成股市泡沫,买产品就造成了通货膨胀。因此用流动性过剩这个理由可以解释2007年所看到的一切现象,包括楼市泡沫、股市泡沫,以及通货膨胀,所以我们的宏观调控是延续了过去四年来的紧缩政策一直到今天为止。在07年你可以糊涂,因为楼市泡沫,股市泡沫,通货膨胀你可以用简单的钱太多来解释,可是2008年,你看不到楼市泡沫了,你反而担心,楼市要下跌,股市更不用讲了。股市大跌的程度几乎全球名列前茅。那是流动性过剩吗?!通货膨胀确实是有,说不定更严重了?目前的经济现象已经让流动性过剩理论破产了!

如果把目标搞错了,在二元经济环境之下推动这种控制流动性过剩的宏调是什么结果,可以通过三个管道彻底的打击了二元经济的制造业部门。

第一个管道, 银行从过冷的民营企业部门大量的收回流动性,打给过热的地方政府继续从事地方基础建设,这就是为什么四年宏调下来,我国广义货币的增长率依然在18%的高水平,这么多货币供给为什么企业家享受不到实惠呢?因为这些钱通过银行体系从民营制造企业手上收回更多的钱,给地方部门从事地方建设了,这样让二元经济当中过冷的部门更冷,过热的部门更热。

第二个管道,就是处在过冷部门的民营企业家面临宏调所带来利率和银行存款准备金率不断上升的压力、再加上第一个错误造成的汇率的不断上升和第二个错误劳动合同法不当推出等因素,让这些过冷部门的制造业企业家再也干不上去了,所以就把很多应该投资的钱不投资了,从过冷的部门抽出来,打入过热部门去炒楼炒股了,这就是06年开始的股价上涨,也是06年开始房价上涨的主因,那是因为在二元经济环境下,过冷部门的资金大量转入过热部门所导致的,根本不是流动性过剩。

第三个管道,我称之为海尔现象,海尔筹集150万资金自己去干房地产,很多媒体说那是海尔战略重新出发,我说不对,那是海尔在过冷部门的家电制造业干不下去了,就从过冷的制造业部门抽出大量资金,打入过热部门,干开发商了!这种现象也使得资金从过冷获得部门转移到过热的部门。

这三个管道无疑的使得资金从过冷的部门逆流转到过热的部门,使得过冷部门更冷,制造业逐渐萧条,而过热部门更热,这就解释了为什么四年的宏调会失败。

二元经济和股价的关系-----同样的,我们也可以利用这个二元经济的理念来解释股价的走势。2006年股价上升的原因就是因为上面第二个原因使得资金逆流转到股票市场,而造成股价大涨,根本不是因为中国的经济环境更好了。 2007年5月30日政府调升印花税的举措使得股价大跌,但是从五月底到11月的股价大涨却是由大盘股所拉动。当时的大盘股都是那些股票呢?就是地产,钢铁,水泥,政绩工程,形象工程,大型国企,替他们融资的银行,当然还有证券公司。请各位读者回忆一下,这些部门是不是就是我前面讲的二元经济中过热的部门呢?换句话说,当时股市所谓的二八或三七现象拉动了股指,其中的二或者三就是二元经济中过热的部门。到了11月我已经开始呼吁股民注意股市可能的向下波动,听了我的话的股民都逃过了一劫。我当时为什么不看好股市呢?原因很简单-------因为大盘股涨幅太快,一定会回调,而其他股票都是过冷部门的股票,没有涨的可能,因此二元经济中的过热部门股票一定会回调,而过冷部门的股票没有理由涨,其结果就是大盘一直跌到今天。

二元经济和金融超限战引发的通货膨胀

二元经济引发通货膨胀------------读者一定很好奇,这种恶化二元经济的宏观调控政策能够控制通货膨胀吗?当前的治理思路就是简单认为我们当前的国民经济体系中流动性过剩了,所以买什么东西,什么东西就涨价,换言之,宏调的目的就是靠提高利率和准备金率收回一定量的流动性,就可以克制通货膨胀了!是吗?如果真是这么简单的话,我们就太幸运了!我最近和媒体朋友吃饭,媒体记者看到我第一句话就是郎教授你瘦了。我说对的,他说为什么。我说猪肉贵了,我就趁机减肥。

你们认为猪肉价格上涨,粮油的价格上涨,是因为你手上的钱太多吗?!如果真懂经济学的话,就不用讲经济学的理论,用一个老百姓能听得懂的话讲出来就对了。猪肉价格上涨了,是因为钱太多了吗,各位读者想想,如果你钱多了,你会去抢购猪肉吗?!甚至有人认为大米价格上涨也是流动性过剩,难道读者有钱的话要吃五碗饭吗?!你用膝盖去想想,你就会知道流动性过剩是胡说八道。读者哪有可能因为手上有钱可能就多吃大米呢?!也不可能多买猪肉啊!我们食品价格上涨多少,按照官方的公布22%,猪肉76%,实际上比这个高。食品价格上涨这么快,你可以找任何理由,千万不要讲是因为大家手上钱太多,根本不可能,有钱的人不会去多吃几碗饭,但他可能去买奢侈品,买LV包包有可能,食品价格这么高而且远超过其它货品就充分证明流动性过剩是错的。那为什么涨这么多呢?!就要从二元经济开始讲了。

在二元经济里面,过热部门是膨胀的部门,所以价格就上升了,这可以理解。那么,你认为,过冷的部门的价格会下跌吗?不会。过冷的部门价格也会上升,无论是过冷过热部门的价格都是涨的。例如猪肉就是过冷部门的产物。猪肉价格怎么上涨了,原因很简单,那就是二元经济现象。养猪肉的民营企业家跟其它行业企业家是一样的,他们所面临的投资营商环境也是急速恶化。什么原因呢?就是进口饲料价格大涨,还有猪瘟。按照我的二元经济理论他们会怎么做,他们就不养猪了,而把应该投资买小猪的钱不买了,而去炒楼炒股了。所以今天猪肉价格上涨的原因就是农村养猪户从过去的猪肉供应者,变成了今天的猪肉消费者,就这么简单。也就是说,当把你猪宰了以后,你发现后继无猪。政府为了鼓励农民养猪,而提供了各种优惠措施,如果农民不小心把猪养死了,政府还会补贴五百元的丧葬费,但是为什么大家还是不养呢?因为这些补贴弥补不来营商环境恶化带来的损失。

金融超限战(超过传统战争限制的新战争)引发通货膨胀-----------最近石油期货价格涨到130多美元一桶,大米价格飞涨,按照经济学理论似乎很难解释!很多经济学家是只认死道理,不知道怎么一回事!我给读者一个数据大家就懂了,每日石油供需基本维持在8700多万桶,而且有时候市小幅度的供过于求。此外,2008/2009年度的全球农产品供应量大约是21.6亿吨,而需求量接近21.5亿吨,年底库存接近3.4亿吨,这是小幅度的供过于求,两个市场没有出现大幅度的供不应求现象。那么为什么石油价格和粮食价格大幅上涨呢?显然不是供求的问题所造成。原因就是我们进入了一个前所未有的金融战时代-------产品定价权不再由供需决定,而是由国际金融炒家所决定,我们已经进入了一个前所未有的金融超限战争的年代。

为什么金融炒家进入大宗物资的期货市场呢?请读者想一想,炒期货的成败,有一个必备的原则,那就是经济基本面一定要配合你的炒作方向,比如我今天赌这个股票会涨,你就要肯定未来一定有人会买这个股票,比如说你认为大米会涨,你就一定要确认一定有一个国家去大买大米。你一定要掌控基本面才能炒期货,否则容易失败。

我们来看看国际金融炒家是怎么想问题的。他们一下子就看到了中国,各位读者知道中国的影响有多大吗?我们石油价格才涨了13%左右,全世界期货市场的石油价格当天一下子大跌,因为中国人买什么东西,什么东西价格上涨,因为中国人太多了。就以国际金融炒家的立场来看问题,中国人买什么东西,什么东西就大涨,这不就是基本面吗?因此在中国人买什么东西之前先买,比如从一百块炒到三百块,再卖给中国人,国际炒家就赚两百块。生产者没赚到好处,我们大亏,这就是国际金融炒家的阴谋。

金融超限战的原则就是取得定价权----------国际金融炒家为了取得产品定价权就开始选品种,首先他挑到了大米。为什么是大米?而不选小麦,这就是水平呀!因为喜欢吃大米的国家相对吃小麦国家而言,一般而言都是比较贫穷的。这些贫穷国家的老百姓吃大米,如果买不到大米怎么办?就饿死了,但是不是简单的饿死就算了,这会造成政局的动荡!所以,把大米价格一炒高以后,这些吃大米国家的政府立刻面临倒台的危机,因为买不起大米。而且大米价格一上升,稻米出口国就配合国际炒家,像越南一样,不让大米出口,为什么呢?首先保证本国人民不被饿死,因为一饿死政府就倒台,亚洲这些产稻米的国家不让稻米出口了,读者想一想如果不让稻米出口是什么结果呀?价格更涨。那些穷国,比如说菲律宾就更买不起大米了。国际炒家就这么厉害,大米价格一炒高,各国政府为了保全政权的稳定就不出口大米,越不出口,价格越高,穷的国家更买不到大米。其必然结果就是这些大米进口国一定会有人饿死,一旦走到这么一天,这些穷国一定会尽自己的最大力量,砸锅卖铁,求爷爷,告奶奶,到处借钱,他们什么都顾不上,而只能去国际市场上用高价格买大米,以防止自己本国的老百姓饿死。如果所有的国家都是这个逻辑,怕老百姓饿死,连带的使政府倒台,在所有国家都不出口稻米的情况下,不得不接受国际炒家最高定价,只要有一个政府去买,这个价格就是市场价格。就像炒股一样,如果有人在13块交易,市场价格就是13块,12块交易,市场价就是12块。因此,这些穷国家的政府在求爷爷,告奶奶,砸锅卖铁的情况下,筹出这么一点点钱在国际市场上只要一买稻米,这个最高的天价就是稻米的市场价。在这个时刻读者知道不知道发生了什么事?那就是稻米的定价权由过去的供需双方决定,改成了国际金融炒家的定价,也就是国际金融炒家取得了最终定价权。

由于是国际炒家取得了最终定价权,所以供需不重要,世界大米供过于求,石油供过于求,价格却不跌反涨,因为2008年的大宗物资价格是由国际金融炒家决定的,他们说几块金钱就是几块钱。他们找代理人来放话,例如在中国游走的罗杰斯就是其中的重要成员,例如他曾经说过粮食价格上涨将会饿死人,这不就是国际炒家透过饿死人来达到控制定价权的目的,而透过这些代理人发话吗。

这种国际通货膨胀怎么影响我国的物价呢?我以东北大豆为例。中国东北黄金大豆原来是中国最好的,现在美国的大豆进来了,美国大豆比中国的大豆好,因为出油量高达23%,而且价格比我们东北大豆便宜12%。刚开始的时候,因为美国大豆便宜了,所以大豆油也便宜了,因此拉低了其他品种食用油的价格。但从此以后我们的大豆失去了定价权,而由国际炒家取得了定价权。最近国际粮价大涨,所以逼得我们食用油价格不得不上涨,造成进口通货膨胀!举例而言,我国今年全年农产品供应量10,000亿斤,而需求高达10,350亿斤,其中供不应求的350亿斤要靠进口,各位读者猜一下是什么?对了,基本是大豆。

我讲出来读者觉得很简单,都听懂了。如果我不讲,读者可能怎么也想不到,这就是国际炒家的厉害,我把他的逻辑分析给读者讲的清清楚楚。比如说罗杰斯在半年前呼吁大家要买农产品衍生产品,为什么?完全因这个阴谋铺路,他讲什么,什么就要涨。这就是国际金融炒家的厉害。读者读到这里一定觉得很悲哀,你们肯定会说我们不能坐以待毙,我们要联合其他国家,我们要彻底打败国际金融炒家。读者们是不是要问这个问题,想不想要要打败国际金融炒家啊?我们意气风发地联合几个国家一起来围剿国际金融炒家好不好?

但是读者应该知道会有什么结果,那就是我们可能一起被打败,因为国际金融炒家很少失败,而且今天的战争是我们从未经历过的“金融超限战”。而要在这一场战斗中取胜,只有两个重要原则,第一你必须有最充沛的国际资本;第二必须有世界顶级金融操作高手。我把这两个前提丢给各位读者,你觉得我们具备吗?是的,我们只具备第一项充沛的国际资本,第二项具备吗?很遗憾的,中国13亿人口,包括我本人在内,都不具备。因为我只知道理论,我没有亲自操刀过。更可悲的是我们连试试的机会几乎都没有,因为一试就失败!90年代日本经济崩溃谁造成?1997年亚洲金融危机谁造成的?2008年越南经济危机谁造成的?------都是国际炒家。很无奈但又不得不面对的事实就是,国际炒家可以动用几千亿资金轻轻松松打败了各国政府。我想举个让我们痛心的例子,2007年底,美国银行(Bank of America)宣布次债危机该行遭到巨大损失,但是他们透过我国建行的上市赚取了1300亿元,也就是每一位读者都付了100元给美国银行。他们为什么能赚这么多钱呢?因为国际金融炒家取得了建行上市的“定价权”,从而压低定价图利自己。对比而言,我国主权基金购买了黑石基金遭到了巨大损失。以美国银行和我国主权基金的水平相比,证实了我国确实缺乏世界顶级金融操作高手。

总的来说,今天的通货膨胀就是一个二元经济环境和国际进口通货膨胀两个扭曲的力量勾结在一起,我请问一下,这是流动性过剩吗?!只要读懂了我这篇文章,读者就完全理解了为什么食用油、大米价格上涨,猪肉价格上涨,那就是二元经济配合上进口通货膨胀造成的。

那么怎么办呢?难道就只能坐以待毙,束手就擒了吗?我想给读者讲一个小故事。韩国总统李明博要进口美国牛肉,读者知道不知道韩国民众为什么这么激动要冲击韩国政府呢?!读者以为韩国人只是好斗吗?我告诉各位读者,韩国人比我们聪明的多得多,他们从亚洲金融危机学来太多经验那就是韩国一旦成功了进口美国牛肉以后,美国牛肉特别的便宜,他将席卷全韩国牛肉户,把全韩国养牛户淘汰,到最后,韩国牛肉价格将被国际金融炒家掌控!所以我个人认为,韩国老百姓反对政府进口牛肉是有原因,因为只有自己生产,才不会被别人所控制,就这么简单!

我们今天大米价格为什么这么低,而国际价格是我们国内价格的四倍,因为是我们自己生产的。石油价格为什么还可以扛一下,因为我们自己产油。但我们扛不久,因为造成大量的浪费,很多人因为石油便宜就胡乱开车,甚至香港的货车统统到深圳加油,这就是一个负担。我今天通过这么长的文章,把大家过去认为流动性过剩的理念彻底的打掉,流动性过剩确实是存在的,但不是股市泡沫,楼市泡沫和通货膨胀的原因。我们发现楼价上涨、股价上涨也是因为二元经济造成的,是因为投资营商环境恶化,企业家不干了,去炒楼炒股造成的,通货膨胀也是二元经济环境所造成的,过热部门的有膨胀,过冷部门生产不足也有膨胀,以大豆油为例,不但有二元经济结构的问题,还有进口通货膨胀的问题。这就是今天所处的投资营商环境。

产业链阴谋与两只秃鹰的金融超限战

前面谈到二元经济下我国制造业逐渐萧条的现实情况,我想请读者想一想,我们应该怎么办。我想换种方式玩一个游戏好不好。咱们玩什么游戏呢,大家想一想如果你是个外国人,你会怎么对付中国?假设我所讲的这一切外国人都知道,他们会怎么做?

事实上,今天的天空翱翔着两只秃鹰。这两只秃鹰看着我们中国的企业,慢慢流血而死的尸体,即将飞扑下来,把我们的尸骨啃得精光。它们在天空边翱翔,边飞边流口水。大家想一想,这两只秃鹰是谁?我给大家举个例子,你们有多少人以为青岛啤酒还是国有企业。在2008年的年中,它还是国企,青岛国资局控股百分之三十。请各位上网查一下,第二大股东是谁,它是美国安海斯布希,占百分之二十七。它只要多买百分之四的H股,就可以达到百分之三十一的控股权,突然之间,青岛啤酒就会变为外资企业。安海斯-布希公司当初是怎么进入青啤的?青岛啤酒在2001年的时候由于前任的首席执行官政策执行不当的结果,使得公司业绩大幅下滑经营面临极大困难,负债率高达89%,在这种难以为继的情况下,青岛啤酒发行了14亿元的可换股债券,卖给了安海斯-布希公司,安海斯-布希公司将可换股债券转换成27%的股份,基本上而言,安海斯-布希公司就是趁人之危进入了青啤。

安海斯-布希公司就是头上翱翔的第一只秃鹰,他叫做产业资本。产业资本对中国企业的掠夺,其可怕程度大家必须要清醒知道,而对这一点,我预警大家应该及早的注意情况的发展。

那么二只秃鹰是谁?讲讲徐工,徐工是重工业领域,美国的凯雷基金想收购徐工,当时包括我在内的许多人,提出坚决反对,我的反对理由非常坚决,那就是国有企业的好坏,不能以净资产做评估标准,一个企业的价值,不取决于净资产,而取决于这个企业的永续经营能力,因此我反对徐工出让给凯雷。而且更值得我们关切的是假设徐工以100块的价格被卖掉,凯雷基金将可能会以十倍的价格,将它分拆转卖掉,到时候他就会赚大头。或者凯雷将徐工整合进入整条产业链而获取整合的巨大收益。凯雷基金是谁,凯雷基金就是天上翱翔的第二只秃鹰,它叫做金融资本。最近凯雷基金再次说服了徐工,而正式的控股了徐工,我为之叹息。我相信凯雷给的条件非常优惠,因为无可置疑的,凯雷将从这次收购中获取巨大利益.

欧美国家通过头上两只秃鹰,进入中国,看着我们的企业逐渐流血而死的尸体,伺机飞扑下来,啃食我们的尸体。很多人可能就会有个疑问:我们企业家这么努力的工作都不能赚钱,老外凭什么能赚钱?我坦白地告诉大家,你们这句话问错了!我们不赚钱,老外也不一定能赚钱,但是我想要告诉各位读者的是:这一块钱制造业赚不赚钱不重要,你这一块钱的制造业最多赔多少钱,最多赔一块钱吧,但是整条产业链创造出十美金价值,因此制造业赔多少钱都无所谓,因为可以从6+1的6把1的亏损全部赚回来。因此对于两只秃鹰而言,它们并不是看制造业能不能创造利润,而是看能不能把制造业融入到产业链当中,这就是头上的两只秃鹰的产业链战略,而我们对此一无所知。我们还在搞招商引资,欢迎他们进来洗劫我们的企业。当头上的两只秃鹰把我们的制造业融入到整个产业链当中之后,读者们相不相信,这些制造业虽然变成了两只秃鹰的产业,但是秃鹰仍然会把制造业继续放在中国,为什么呢?因为他们要继续浪费我们的资源,破坏我们的环境,剥削我们的劳动,这就是所谓的“国际分工”。目前外资对我国企业的收购就像井喷一样,我国利用外资占GDP的比重已超过40%,外资企业占全国进出口总值的 55.48%,外资企业占高科技产品出口的87%。

法治化游戏规则的缺乏助长金融战

在这种格局之下,有一种话题也是各位读者想问我的话题:郎教授,工厂都在中国,难道你反对我们中国国际化吗?难道你反对外资进入中国吗?我当然不会反对,我是最赞成国际化的,但是我想提醒读者,我们曾经经历过的极左思维给我们国人带来了巨大灾难,但是目前内地专家学者的极右思维依然给中国带来的极大灾难。我们不要极左,也不要极右,我们需要中间路线,而达到中间路线的法则,就是透过精英政府以严刑峻法建立一套法治化游戏规则来规范政府,企业和老百姓。当然很多人对政府是否有能力做这件事提出质疑,我只能说我期望我们政府能做到。

资本主义的本质从来都是掠夺,从来没有改变过,从150年前大清王朝到今天都没有改变过,只是150年前它是以东印度公司为前导,炮舰为后盾,而今天却是以国际化为前导,金融为后盾,其掠夺的本质是不会变的。但是读者们都会提问,产业基金也好,金融资本也好,难道我们不让他们进来吗?

我们当然是有条件的欢迎他进来!不过为了讲清这个问题,我举个农民种地的例子来做解释,大家可以想象农民如何做灌溉呢。灌溉其实很简单,你把这个水闸打开之前必须得先挖沟渠,沟渠挖好之后再把水闸打开,让水顺着沟渠流到需要水的农田。可是如果你忘了挖沟渠怎么办呢?水闸一开,洪水不就漫流大地把良田都淹了吗!

哦,农民同志都知道的事我们会不知道吗?什么是洪水泛滥?那就是大欺小强欺弱,我们今天的国际化包括头上的两只秃鹰,就是打开水闸之后,忘了挖沟渠了,洪水漫流大地,把我们内资企业的良田美地都淹没了。这就是我所反对的国际化!

那么大家想一想什么是沟渠?我们绝对欢迎国际化,我们绝对欢迎产业资本,金融资本大举进入中国但是也要挖沟渠,大家知道什么是沟渠吗?那就是你一定要指定一个严刑峻法的法治化游戏规则,这个规则是要控制这个国家的所有个体包括政府包括国有企业包括百姓。如果缺乏一个严刑峻法的法治化游戏规则,而盲目的引进外资,你陡然放两只秃鹰在天空翱翔,这两只秃鹰将会像洪水一样席卷大地,把良田都淹没,因此未来的格局一定是大欺小,强欺弱。

产业资本和金融资本在这种无沟渠的环境下,他们对我们企业的掠夺简直让我们国内工厂欲哭无泪。两者相比,产业资本更可怕,他们一旦看上了我们的企业,简直可以说我们不卖都不行。举例而言,德国施奈德想要收购正泰,而正泰不想卖,结果施奈德到处控告正泰抄袭仿冒,到处打官司,我相信把正泰搞烦了,他说不定就卖了。为什么这些产业资本这么嚣张呢?因为他们所处的环境就是一个没有挖过沟渠的中国,因此可以用这种不正当的手段大欺小强欺弱。

产业链阴谋下中国企业的危机

表面上,经过20多年的高速发展,今天的中国享受着“世界工厂”的美誉。“中国制造”凭借物美价廉的优势,在世界每个角落几乎随处可见,成为当地人的生活必需品。可以说,“中国制造”已经行销全球。比如说根据研究,在工业制成品中,中国已有超过130种产品的产量位居世界第一。但实际上,中国只不过是国际产业链的分工里利润最薄的一环。事实上,在国际产业链中,中国企业做实际制造那部分如果赚到一块钱(10%)的话,那么对于外商,做这种产品设计与研发以及采购、仓储、订单处理、批发、零售这部分能赚到九块钱(90%)。换句话说,我们就是用这不到10%的价值,积累了1.8万亿美元的外汇储备,意味着我们同时为国外贡献了18万亿美元,这几乎是全国80年的工资总额!

那么什么叫做国际产业链分工呢?我们不妨以玩具业为例来看,一个芭比娃娃的前期产品设计、市场调研等均在美国完成,中国工厂只不过进行“来料加工”或“来样加工”,而后期的仓储、物流、批发、零售也是由外商来做。换言之,就是在国际产业链中真正做制造的是一块钱,我们称之为“硬一元”,而做这种采购、仓储、订单处理、批发、零售这部分的产业链叫做“软九元”。国际产业链分工背后是怎么回事呢?本质是通过“软九元”将劳动密集型的同时也是最不赚钱的部分外包给中国工厂,外商凭借其主导的产业链,靠其在订单上的优势,实际上支付给中国工厂的价钱可以远远比其自己制造还便宜。“硬一元”不是不赚钱,但问题是“硬一元”里最核心的产品设计能力外商从来不会与中国合资企业分享;与此相反,外商或者透过立体营销,全面挤压中国品牌,如果强攻不下,就透过合资、合作、收购等方式,悄悄地消灭中国的这些具备一定“硬一元”核心能力的企业和品牌。而我们地方政府非但完全不晓得这一点,反而不分好坏欢迎一切外商投资。

以玩具业为例,一个芭比娃娃我们的出厂价一块美金,在美国的沃尔玛零售价格是9.99元美金,那一块美金,原料占了0.65%,生产价0.35%,那么你晓不晓得我们能赚多少钱?几美分了不起了吧!我们不停地剥削我们的劳动者,浪费我们的资源,破坏我们的环境,却用这么贱的一块钱的价格卖到美国去,而外商最后以9.99元的价格卖给消费者,席卷了所有的利润。而在国际产业链分工下,中国代工厂事实上没法改变自己的命运。为什么呢?因为中国代工厂既不具备“硬一元”的核心能力,也不懂得掌控“软九元”。这样外商就有机会可以有意识地操控中国代工厂,挑起中国企业之间的价格战,这样让中国企业没有多余的资金积累,进而无力进行核心能力的积累和开发!这样恶性循环的结果就是中国企业永无出头之日!

换句话说,外商透过掌控全球产业链,可以轻而易举地挑起中国厂商的价格战,进而让中国制造走向恶性循环。如何挑起价格战呢?举例而言,还说玩具业,美国前三大进口商透过历史上不断的并购如今基本上垄断了市场的全部订单。假设说其中最大的美泰手中有一亿张单,那么美泰怎么主导价格战呢?第一年美泰给A厂五千万订单,给B三千万,给C两千万,给大家很好的利润,鼓励大家好好干,来年会加订单。到第二年,美泰给B四千万订单,给C三千万,只留给A三千万;这时候A肯定不敢有什么怨言,而且甚至会表示愿意压低报价,要不然还有两千万产能吃不饱呀!为什么A愿意报低价?因为代工业有个严重的问题,就是扩产容易,但扩产都是一次性固定投入,扩产之后的维护成本会逼着代工厂不敢减产,因为签单的时候外商只给一个边际的毛利率,根本不考虑你有多高的固定成本。而实际上,真正的好戏还要等到第三年,按照我们代工厂的惯性思维,B会扩产到四千万产能,C扩产到三千万,而A因为我前面指出的代工业的固有问题,还会维持五千万的产能。现在美泰可以跟三家摊牌:现在你们现在的产能总共一亿两千万,而我手中只有一亿的订单,我只需要你们中任意两家就足够了,有一家今年很可能要出局。然后引入网上同时报价的办法(这正是现在的做法),让三家在短时间内同时独立报价。结果一目了然,很有可能B和C开出的价格仅有成本价,而A甚至报出一个低于另外两家成本的价格,因为不开工就只能亏钱,而开工还能少亏一点。而且在这种分工格局下,中国代工厂只能忍气吞声,任打任骂。在这种背景下,大家就不难理解,为什么美泰将责任推向中国代工厂时,中国老板只有自杀以明志了。

更为可悲的是,在中国最擅长的制造环节,也就是产业链定位错误的环节,也正面临越来越多的问题,宏观调控的压力,汇率的上升,劳动合同法的不适当推出以及通货膨胀的压力。此外,频繁因产品质量问题引起的国际贸易纠纷,印度、越南等更低成本国家的替代竞争压力。这些问题正逐步演变成中国制造日见微薄的利润率,揭示出隐藏在中国制造产品畅销背后的实质上的全面崩盘现象。目前广东企业在这种压力之下,停工和半停工的企业几乎达到30%,而江浙两省停工和半停工的企业也达到20%。这种现象是暂时的经济周期性问题吗?如果不是的话,按照这种趋势走下去,到了年底停工和半停工的企业可能达到了50%?这会释放出超过几千万人的失业人口,再加上依靠他们生活的大约上亿人的亲属,也就是说有接近上亿人口的生活问题立刻显现出来。这些后续性的危机问题值得我们思考。

产业链阴谋下中国企业的战略出路------产业链高效整合

面对重重危机,中国企业的出路在哪里呢?我想透过一个简单例子------世界知名的服装品牌西班牙的飒拉(Zara),系统地解答这一问题。飒拉的成功简单的讲就在于整条产业链6+1的高效整合。而我国服装制造业有没有6+1的部门呢?基本上都有,但大多数分属于不同的企业,更重要的是缺乏“高效”的整合。什么叫做高效整合,简单的讲,我国服装业者走完整条6+1的流程需要180天,而飒拉走完整个流程只需要12天,也就是他们整条产业链的整合速度是我国服装业者的15倍。

这种高效整合的意义重大,因为这是节省成本最有效管道,举例而言,一件衣服库存12天的成本比库存180天的成本起码节省了90%以上的成本。而飒拉85%的生产都在欧洲,当然,由于飒拉大部分的销售都在欧洲,因此在欧洲生产可以提高速度。但是读者可能会问我,他们在欧洲生产劳动成本不是很高吗?如果读者还记得我前面谈的TCL和明基想利用中国廉价劳动力和国外品牌走出去的失败战略吗?由于劳动成本只占了整条产业链的2.5%,而这正是飒拉选择在欧洲生产的原因,因为劳动成本在整条产业链中不重要。而真正能节省成本的方式就在于产业链的高效整合,这是我所提出现代意义的成本控制新思维。

飒拉怎么做产业链的高效整合呢?我想简单谈一谈6+1的几个环节,包括仓储运输,终端零售和产品设计。首先谈谈仓储运输。飒拉为了加快运输的速度,他们在物流基地挖了200公里的地下隧道,用高压空气运输,速度奇快无比。此外,为了加快运输速度,他们用飞机而不是轮船从西班牙将成品运送到上海或香港,虽然飞机运费很高,但是高效整合更重要,成本会更低。

再谈一下终端零售。飒拉有意的减少需求量最大的中号衣服,故意弄成供不应求。因为他们发现当妇女同胞想买中号衣服而买不到的时候,他们心中那种极度的挫败感让他们下礼拜又来了。这样不但加快了周转率,同时吸引了更多的顾客。

此外,飒拉的产品设计的思维也是一绝。他们首先放弃了自主创新的思维,而代之以“市场的快速反应”。我对这点特别推崇,因为要想到放弃大家都认同的自主创新思维,就是一个最创新的思维。那么他们怎么做市场的快速反应者呢?我举个例子,为什么妇女同胞总认为衣橱里少了一件衣服,肯定是她们不知道自己到底需要什么类型的衣服,如果她们知道的话,他们就会去买了,因此衣橱就不会缺少一件衣服了。如果消费者自己都不知道自己需要什么衣服,企业搞自主创新的产品能讨好这些消费者吗?显然不行。因此,什么才是最好的策略呢?那就是做市场的快速反应者,怎么做呢?首先想一想,能卖掉的衣服肯定是消费者喜欢的衣服,假设100件衣服前天卖了12件,昨天卖了6件,今天卖了7件,他们就根据这三天卖掉衣服的共性设计衣服,根据趋势变化稍作修改,而不要创新。这样不但大幅缩减了产品设计的速度,而且可以在市场需求还没变化之前迅速推回市场抓住市场脉动。他们几天可以推回市场呢?12天,这么短的时间当然可以抓住市场脉动。但是12天的速度就是产业链高效整合的结果,如果我们的速度是180天的话就根本不可能当市场的快速反应者。

我想总结一下我的观点,飒拉透过产业链的高效整合大幅压缩成本,而同时透过高效整合作市场的快速反应者,因此他们的衣服总是最新潮,最受市场喜爱,虽然品质不一定很好,但是这年头谁还穿一辈子同样的衣服呢?因此品质没那么重要了。飒拉的产业链高效整合思维应该对我们的企业非常有启发,因为这才是我们企业的未来战略出路。

政府产业政策的思维转换

由于我们已经进入了前所未有的产业链战争的新时代,因此政府推动的产业政策就格外的重要。过去我们犯了很多错误,例如市场换技术,结果市场丢了,技术也没换来。这两年很多地方政府呼吁企业搞产业升级和品牌战略,我认为这又是一个误区。所谓的产业升级,不应该仍然在6+1的1上面搞升级,而应该从1升级到6的环节。此外,以飒拉为例,品牌的建立是产业链高效整合后的必然结果而不是企业成功的原因,因此我们不能倒果为因。政策的转变必然牵扯到思维转变的先行,我期望政府,企业,都能发挥思维的创新,进一步的理解这篇文章的观点,才能真正地走出低谷。

结语

最后,我很痛心地告诉读者,2007年我写的“中国经济的八大危机”文章刚刚发表的时候,全国正洋溢着股市楼市的欢乐气氛,甚至有人认为我唱衰中国经济,而对于那些粉饰太平的专家学者反而给与了更多地关注。这个时刻我想起了屈原所著“离骚”的一段话--------“黄钟毁弃,瓦釜雷鸣”,夫复何言啊。2008年年初南方人物周刊对我做了这个评论“如果郎咸平是对的,其他人都错,那中央从紧的货币政策,非但是下错了药,还是个雪上加霜,落井下石的毒药”。但是今天我对于众人皆醉我独醒的胜利没有丝毫的喜悦,因为我们老百姓并没有因为我的八大危机文章而改善了生活,反而陷入更艰难的生计。我这次发表的文章希望能够在八大危机的基础上,唤醒政府,企业和百姓的共识,共同为着中国的未来,走一条正确的路。最后,我想沉重的提醒这个社会,专家学者粉饰太平的言论虽然能够取悦政府,但今年却让政府和全社会付出沉重的代价。(郎咸平)

 

posted @ 2008-07-30 23:44 CowNew开源团队 阅读(370) | 评论 (0)编辑 收藏

赚钱才是硬道理

据内部人士透露,金山软件(3888.HK,下称“金山”)计划把WPS、词霸等非营利业务从上市公司中剥离出去,单独成立新公司,目前该计划已基本敲定,有望在年底宣布.
据内部可靠消息称,金山内部讨论把非盈利业务剥离的想法由来已久,思路已定,相关工作在今年年底能完成.其此番调整的基本思路是:把词霸、 WPS这些不盈利的业务剥离出去,单独成立新公司,与网游、毒霸这些主营业务分开.相关人士称,这样做的目的不是为了剥离不良资产,而是公司核心战略调整的一环.

根据金山的布局,网游是一块“赚现钱”的业务,软件主要是投资未来的业务.所以,公司管理层希望把需要长期投资且不盈利的业务剥离开,一来有利于长期布局,二者也能给上市公司减轻负担.

  根据公开数据显示,网游业务占金山总收入约70%,毒霸业务约25%,其他业务收入总和仅5%.据了解,这部分业务虽也投入很多资源和人力,但发展效果并不明显.

  金山由求伯君于1988年创办,并于2007年10月9日在香港主板上市.该公司以办公软件业务起家,目前主要涉及软件和网游两大核心业务,旗下还拥有英语学习社区爱词霸网以及大型在线游戏交流社区逍遥网.其中,软件业务主要包括WPS软件、词霸、毒霸等主要产品线.

  另据《第一财经日报》于2007年12月刊载的报道,金山当时进行了一次架构调整,拟将毒霸和网游作为未来发展的重点业务,以提升公司整体赢利水平,并策略性地弱化WPS及词霸等几乎不赢利的通用软件业务.

  显然,金山此次剥离非盈利业务并成立新公司的计划酝酿已久.不过,目前金山新公司的名字并未曝光.昨日下午,金山软件业务相关负责人表示不予评论.

posted @ 2008-07-30 09:42 CowNew开源团队 阅读(301) | 评论 (0)编辑 收藏

计算机专业学习交流问题专用帖
提问请回帖
posted @ 2008-07-29 23:49 CowNew开源团队 阅读(496) | 评论 (3)编辑 收藏

刚看到netbeans成了2008年计算机等级考试java上机考试的IDE,看来SUN没少运作,从娃娃抓起呀 。
C语言的IDE由TC终于升级到VC6了,微软偷偷笑“就是让这帮孩子认为C就是微软家的,C就是VC”,呵呵。
看来这就是传说中的商业化运作。
posted @ 2008-07-28 22:58 CowNew开源团队 阅读(311) | 评论 (0)编辑 收藏

自1999年以来,我国高校开始大规模地扩招。作为热门专业之一的计算机专业,更是走在各专业学生数量扩张规模的前列。

       大多数中国高校计算机专业目前的培养体系,大都于二十世纪八十年代建立并完善起来的,面对着21世纪计算机技术日新月异的进步和中国经济和社会状况的变化,这一教学体系面临着巨大的冲击,弊端开始显露。
       引发问题的关键之处在于:教学主体(指在校学生)整体状况的变化。

一、我国高校计算机本科教育的现状分析
      
       目前在校的计算机本科生中,其主体是被称为“80后”的年轻一代,独生子女占绝对多数。这一代的大学生,伴随着中国经济的快速发展而成长,家庭经济条件的改善使他们比以前的大学生拥有更好的学习环境,从小接触到更多的信息,受到更多的正规教育,而且思想活跃,接受与学习能力强。

       然而,这一代的大学生也有自己的问题。由于许多学生从小在比较富足的环境中成长,又是独生子女,从小受到父母长辈过度的呵护,生活一帆风顺,走的都是父母和老师事先安排好的道路,加上社会风气的影响,带来了一些问题,比如依赖性强、自制力弱、缺乏吃苦耐劳的精神……。

       学生主体状况的改变,会直接影响教学方法与方式的选择。

       根据北京理工大学计算机学院2006年对2004级本科生所作的不计名问卷调查结果,发现许多学生都出现了对计算机专业缺乏兴趣的状况,有的学生打算毕业时转行,有的表达出对未来的迷茫与对激烈就业竞争的忧虑。有不少学生抱怨:我都到了计算机专业3年级了,还不会写程序……

       事实上,据笔者了解的情况,不止北京理工大学,其他高校计算机专业的学生情况也大致相同,这种状况具有相当的普遍性。

       我国高校采用的是通过全国统一进行的高考选拔学生的体制,为了让孩子能考上一所理想的大学,家长为此是“不惜花费一切代价”也要让孩子的成绩好。在这种需求的强劲推动下,中国普遍形成了从小学到高中的应试教育,将对学生其他素质的培养放到了次要的地位。学生在这种强制性的潮流面前,没有任何的自主权,只能被“押着”上了高考的“战车”,其心中的反抗心理是不难想象的。

       从小学到高中,家长和老师几乎为学生“包办”一切,甚至包括为他们选择所读的专业。笔者是2004级学生的班主任,在新生入学时做过调查,全班28个学生,只有不到三分之一的学生回答他们选择计算机专业是出于“喜欢计算机”。事实上,说喜欢计算机的学生中,大部分只是喜欢互联网,喜欢游戏,觉得计算机“好玩”,是个热门专业,就业后收入高,……,真正了解计算机专业内涵的学生是少之又少。可以这样说,大多数学生的专业选择是盲目的,许多学生在入校时对计算机专业的认识是“一张白纸”。这就为日后出现的问题打下了伏笔。

       我国许多高校计算机系课程教学体系是在扩招之前形成的,近年来虽有所调整,但总体框架并未变化。从各门专业课程的设置来看,大都要求对学生要有扎实的理论基础,强调培养学生自主学习与探索的能力,这是一种以培养计算机科学的研究者为目标的“精英教育”。应该说,在扩招之前,这种体制的确培养出了许多人才。

       然而扩招之后各方面情况都发生了变化。最明显的就是由于学生规模的迅速扩大,师资力量严重不足,原来可以比较密切的师生交流现在难以为继,出现了动辄上百人的大课,使教学效果大打折扣。

       为了快速地补充师资,各高校大量将计算机专业硕士和博士毕业生直接补充到教师队伍中来,教师的平均学历指数虽然上升了,但总体平均的水平并未随之有相应的提高。反过来则有下降的趋势。新进的教师中大多从学校到学校,很少或没有业界经验,因而在教学中也只能从“理论”到“理论”,难于做到理论与实践相结合。学生是一张白纸,教师是“纸上谈兵”,其结果是计算机专业开设的理论课打掉了多数学生的兴趣。

       计算机科学与数学等传统的学科不太一样,其实践性非常强,许多重大的计算机理论与技术创新都有一定的应用背景,是由实践推动发展的。

       目前的计算机专业教学过于偏重理论基础的培养,在培养学生实践能力上显得比较弱,结果实践能力的匮乏严重打击学生的自信心,当他们想到毕业后所面临激烈的就业竞争时,其忧虑甚至恐惧的心理是可以想见的。由于大多数学生过去的生活一帆风顺,缺乏足够的人生经历,挫折承受能力不强,面对挑战,有些学生就采取了逃避的态度,于是高校中“网络游戏”成为不可治的顽症,毁掉了许多学生的学业。

       人类已进入信息时代,IT业是发展最迅猛的行业之一,快速发展的整个行业对人才提出了迫切的要求,几乎所有的IT企业都“求才若渴”,在招聘上投入巨大的人力和财力,却痛感要找到一个合乎企业要求的人才是如此地困难。另一方面,每年又有大批的毕业生找不到合适的工作,据报道,2006年全国有124万大学毕业生无法当期就业,在大学生占总人口比例仍非常低的中国,在经济快速成长制造出大量就业机会的时代,在发展迅速对人才需求量很大的IT业,计算机专业大学生就业难居然成为了一个问题。

       大学应服务于社会,应为国家富强与社会进步提供巨大的推动作用,然而,现状表明:我国各高校计算机及相关专业作为当前最大的为IT业提供人才储备的大本营,其教育成效并不能满足社会对人才可渴求。

二、高校计算机本科教育改革的突破口

       我国高校计算机本科教育面临的一个带有全局性的问题是:大学计算机教育是要培养计算机行业高级技术管理人才和科学研究者,还是要培养出大批合格的软件工程师?

       这本质上是大学教育的本质性问题:大学教育是精英教育还是大众教育?

       在高等教育发达的美国,象耶鲁等世界一流名校,其策略是非常明确的:四年本科阶段给本科生提供大量的选修课,培养其基本素质,增加其对社会的适应力,以培养通才为主要目的,到硕士阶段进入才进入与特定行业密切相关的职业训练阶段,博士阶段的培养目标是科学研究者。

       耶鲁这样的大学,很明显是一种“精英”教育。但美国数千所高校中,除了哈佛、耶鲁等名校之外,还有大量的社区大学,在数量上占绝对多数,它们完成的却是“大众教育”的工作。

       美国高等教育的成功经验,对我们有很大的借鉴作用。但中美之间有着巨大的历史、文化和社会背景差异,不能简单地将美国的体制全盘照搬到中国。

       笔者认为,目前我国大学计算机本科教育的主体是—大批入学时对计算机专业知之甚少的学生,因此应实事求是,走“大众教育”这条路,以培养业界合格的工程师为主要目标,满足业界对人才的迫切需求。在此基础之上,给少数优秀的学生以较大的自由发展空间。

       根据我们的调查,经过两年左右的大学学习,真正喜欢上计算机不足学生总数的10%,大多数学生的状况都是“不能说讨厌,但也不是喜欢”,居于一种茫然的状态。笔者与许多成绩不理想学生进行沟通,发现他们之所以不喜欢计算机,多由于所学理论课程枯燥无味、脱离实际而导致。在现有教育体制之下,这些学生几乎不可能有机会转换专业,他既不喜欢所学的课程,但又不得不学习,教学效果差就可想而知了。

       那么这些认为不喜欢计算机专业的学生中的相当部分,是不是真的无法成为一名合格甚至优秀的软件工程师?

       解决问题的关键在于我们的教学体系能否帮助学生培养出对计算机专业的兴趣。

       根据教育心理学的相关理论,兴趣是最好的老师,有了强烈的兴趣,学生就会主动地去学习,在兴趣面前,各种枯燥的理论也都呈现出另一种面貌。

       培养学生兴趣就是实践。事实证明,学生通过实践对计算机技术产生兴趣是非常普遍的现象。

       目前,大学生中沉迷于网络游戏的现象日益引起教育界的重视,仔细分析一下游戏设计者的思路,可以对我们大学计算机教育如何引发学生的兴趣有着很大的借鉴作用。

       我们来分析一下网络游戏的一些特点。

      (1)游戏通常有许多关卡,开头的关卡很简单,过关很容易,以后每一关都比前一关难,每一关都比前一关更有挑战性,正是这种由于游戏的这种持续性与挑战性,玩家在整个玩游戏的过程中其潜在的争强好胜的天性被激发,他们通过不断完成日益困难的任务,获得了很大的成就感,这正是许多学生沉迷游戏的原因之一。
      
     (2)另一方面,人是需要朋友的,而许多网络游戏就提供了这样的一个场景:同玩一个游戏的玩家在一个虚拟的环境中相互合作,满足了人的情感需求。
     
     网络游戏的设计方法,给我们设计计算机专业的实践环节提供了很好的思路:
   
     注重持续性,由浅入深,组建团队协作的学习与实践环境。

      在整个实践环节中,教师起着一个关键的引导作用。
     1940年代,清华大学校长梅贻琦在《大学一解》一文中提出了“大鱼带小鱼”的教学理念:

    古者学子从师受业,谓之从游。孟子曰:“游于圣人之门者难为言”,间尝思之,游之时义大矣哉。学校犹水也,师生犹鱼也,其行动犹游泳也,大鱼前导,小鱼尾随,是从游也,从游既久,其濡染观摩之效,自不求而至,不为而成。

       学校是江河湖海,老师是大鱼,学生是小鱼,小鱼跟着大鱼游,小鱼在游的过程中也成了大鱼。
      
       在计算机教育而言,游就是实践。实践包括科研实践与开发实践。对于计算机本科生教育而言,应以开发实践为主。

       这里面有一个问题,那就是理论课学习与开发实践的关系问题,处理得不好,会顾此失彼。

       笔者认为:理论与实践是相辅相成的,对于绝大多数学生而言,只有在实践中才能真正地理解与掌握理论。

       比如比较抽象的《数据结构》课程,许多学生学完了之后并不知道里面介绍的树、图、堆栈等概念有什么作用,而让学生去亲自设计并开发一个真实的四则运算器程序之后,学生不仅巩固了原先学过的C++、Java等编程语言,也熟悉了业界流行的开发工具如Visual Studio和Eclipse等的使用方法,还弄明白了数据结构到底有什么用……,一举数得,这就是“实践促进理论学习”的例子。

       笔者将计算机本科教育中的理论与实践的关系总结为“珍珠与项链”关系:

    可以把计算机专业开设的《编译原理》、《操作系统》等理论课比喻为一颗颗的珍珠,而实践就是那根将珍珠串成项链的丝线。一串项链的价值,大于单个珍珠价值总和。

       因此,高校计算机本科教育改革的突破口就是实践。

三、高校计算机教育实践环节的实施建议

       一个重要的改革方向是压缩必修课的数量。现在的普遍情况是大学二三年级安排的必修课太多,而且许多课程在教学方式上并未摆脱高中教学那种满堂灌的方式,加上大量的闭卷考试,这实际上是鼓励学生为追求高分而死记硬背,无利于学生培养出真正的能力,应减少专业课的闭卷考试,而采用课程设计、上机考试、撰写论文、课堂讨论等多种方式,增大开放式课程考核的比重。然而,采用开放式课程考核方式也有一些问题,比如抄袭问题在目前的学生规模之下难以避免,另一个出现的问题是评分主观性强,尺度难于把握。一般来说,对于实际开发能力比较出色的学生,他们是欢迎采用开放的考核方式的,其余的学生则更希望采用传统的考试方式。为此,可以尝试采取一种“一课两制”的教学方案,即一部分学生采用传统的卷面考试方式,而另一部分学生则采用开放式的课程设计方式,由学生自由选择。

       另一方面,计算机科学涉及相当广阔的领域,每个学生的情况千差万别,在课程安排上不能软件硬件课程一起上,眉毛胡子一把抓,这不仅会加重学生的负担,而且在短时间内安排多门难度较高、抽象复杂的专业课(比如三年级学生一个学期要学七八门计算机专业课程,绝大部分采用闭卷考试),学生很难在这么短的时间内理解并掌握大量的知识,其结果是学生没有足够的时间通过实践去逐步地消化这些知识,将这些课程煮成了“夹生饭”。笔者认为应根据计算机学科的内在发展规律提供大量的选修课供学生自主选择,学校和教师为学生选课提供足够的指导与帮助。在这点上,国内许多大学都先后实施了本科生的全面选课制,为本科教育改革走出了重要的一步。

       人们在长期的教育实践中发现,学生对于具体的知识易于掌握,而要掌握抽象程度较高的知识必须付出更多的努力。因此,在教学内容安排上就遵循从简单具体再到抽象复杂的认知规律。

       那么,应如何安排实践环节,让实践渗透到计算机专业四年本科的教学体系中?

       这是一个复杂的问题,需要许多教师与教育专家的共同探索。

       就笔者看来,可以采用以下的模式:

       在计算机专业的一年级,学生处于从高中到大学的过渡阶段,实践的内容主要是“用”,即让学生使用现成的各种软件工具培养兴趣,并和他们正在学习的理论课程结合起来。比如计算机专业一年级学生通常都需学数学(高等数学、线性代数等),这时可以同步开展学用数学工具软件(比如MathLab)的教学实践。又比如,C语言是许多学生第一门学习的高级语言,这时可以同步安排LINUX操作系统的实践活动,让学生试着在LINUX这种C语言最适合的“原生环境”中编程,直接拉近学生与现代软件开发技术前沿的距离,并为以后学习《操作系统》等专业课程打下良好基础。

       笔者认为,应该在计算机专业低年级(大一或大二),让每个学生都掌握一个主流的开发工具和语言,在目前而言,Java和C#是两个很好的选择。通过在低年级开设Java/Eclipse或C#/Visual Studio等选修课,可以让学生直接接触到当前主流的软件开发(或硬件设计)技术,不让其与当今计算机技术的发展脱节,同时更重要的,是让学生培养出基本的开发能力,为他们在高年级(大三大四)接触到更抽象复杂的课程(比如《数据结构》、《编译原理》、《软件工程》、《面向对象分析与设计》、《数据库原理》等)时,让给理论有一个落脚点,就不会出现“纸上谈兵”,“空对空导弹”的问题。

       除了在课程安排上要注重突出实践,另一个也很有效的教学环节就是促进团体学习环境的形成,可以尝试组建学生科技活动中心、创新基地、各种专业兴趣小组等,一旦形成了一个良好的学习与实践氛围,于正常的课程教学之外,这些组织对学生能力的增长帮助尤大。

       在创建团队学习与实践环境的过程中,要特别注意发挥教师的引导作用。可以采用从我国古代历史悠久的书院体制,形成密切的师生关系,以“师傅带徒弟”的方式培养精英人才,非常有效。

       总之,在当前我国经济快速增长,各方面都在发生巨大变化的时代,高等学校的计算机专业教育必须进行必要的变革,不进行这种变革,就无法满足社会对人才的渴求,不管对国家还是对学生个体,都是一种巨大的人力资源浪费。而在这一变革中,大力加强实践环节在整个计算机教学体系中的地位,将是一个重要的手段。

from:http://www.5xue.com/modules/bbs/viewthread.php?tid=114897&extra=page%3D30
posted @ 2008-07-28 22:45 CowNew开源团队 阅读(258) | 评论 (0)编辑 收藏

欢迎加入高校计算机专业学习指导交流QQ群,业界资深IT工程师提供指导,在这里你可以聊自己的学习、工作、生活、就业等话题,也可以向专家提出问题,更可以与优秀的计算机专业同学交流。
现在计算机专业就业情况如何?
您不知道如何安排自己大学四年的学习生活吗?
大学里这么多专业课程有用吗?应该怎么学?
找工作的时候应该注意哪些问题?
学习专业课程的时候遇到的问题应该找谁请教?
………………
加入我们的群吧,这些问题都能够帮您解决!
本群偏向于软件开发方向;本群原则上只限于计算机专业在校大学生加入,对计算机有强烈兴趣其他专业学生也可以加入,谢绝已经参加工作的人员(本群特邀专家除外)。加入时请写明自己的大学、专业以及入学年份,比如“清华大学计算机2006”,进入群后修改自己的群备注为自己的个人介绍(包括但不限于“大学、专业以及入学年份”)
QQ群号:29449019
posted @ 2008-07-26 23:04 CowNew开源团队 阅读(1279) | 评论 (2)编辑 收藏

http://211.99.196.18:6666/cownewdemo

posted @ 2008-07-20 20:18 CowNew开源团队 阅读(380) | 评论 (0)编辑 收藏

有同事竟然找LOWORD、HIWORD在C#中的替代函数搞了一个上午 。看来真是被拿来主义给惯坏了,自己写一分钟就能写出来
        /// <summary>
        /// 取低位
        /// </summary>
        /// <param name="i"></param>
        /// <returns></returns>
        public static int LOWORD(int i)
        {
            return i & 0xFFFF;
        }

        /// <summary>
        /// 取高位
        /// </summary>
        /// <param name="i"></param>
        /// <returns></returns>
        public static int HIWORD(int i)
        {
            return i >> 16;
        }

posted @ 2008-07-03 14:22 CowNew开源团队 阅读(589) | 评论 (0)编辑 收藏

历经半年时间,《antlr 2.7.5 中文文档》正式版终于发布!

感谢欧进利、周晓、曲金龙、west2snow、阿乐、杨中科等队友卓有成效的工作。特别是欧进利挤出个人时间为文档的最后的合稿与校对做了大量的工作。
未经Antlr.orgCowNew开源团队许可,请勿将此文档用做商业用途!

点击下载:
http://www.blogjava.net/Files/huanzhugege/antlr_2_7_5_中文文档.rar
posted @ 2008-06-30 22:11 CowNew开源团队 阅读(2896) | 评论 (11)编辑 收藏

SWT中调用Automation的方式 这篇文章中我们介绍了SWT中通过Automation访问IE的方式,但是只是简单的URL导航,没有自动填表单、自动提交等功能。我们对其进行了升级,采用了新的操作方式,充分利用了SWT对OLE的支持,裁减掉大量代码。现在可以实现自动填表单、自动提交等功能。不过暂时还无法响应IE的事件。
核心代码如下:

package test;

import org.eclipse.swt.SWTException;
import org.eclipse.swt.internal.ole.win32.COM;
import org.eclipse.swt.internal.ole.win32.GUID;
import org.eclipse.swt.internal.ole.win32.IUnknown;
import org.eclipse.swt.ole.win32.OLE;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.widgets.Composite;

/**
 *
 * @author 杨中科
 *
 */
public class AutomationClientSite extends OleClientSite
{
 public AutomationClientSite(Composite parent, int style, String progId)
 {
  super(parent, style);
  try
  {
   appClsid = getClassID(progId);
   if (appClsid == null)
    OLE.error(OLE.ERROR_INVALID_CLASSID);

   //使用CoCreateInstance创建一个进程外Automation服务器
   int[] address = new int[1];
   int result = COM.CoCreateInstance(getClassID(progId), 0,
     COM.CLSCTX_INPROC_SERVER | COM.CLSCTX_LOCAL_SERVER,
     COM.IIDIUnknown, address);
   if (result != COM.S_OK)
    OLE.error(OLE.ERROR_CANNOT_CREATE_OBJECT, result);

   objIUnknown = new IUnknown(address[0]);

  } catch (SWTException e)
  {
   dispose();
   disposeCOMInterfaces();
   throw e;
  }
 }

 protected GUID getClassID(String progId)
 {
  GUID guid = new GUID();
  // create a null terminated array of char
  char[] buffer = null;
  if (progId != null)
  {
   int count = progId.length();
   buffer = new char[count + 1];
   progId.getChars(0, count, buffer, 0);
  }
  if (COM.CLSIDFromProgID(buffer, guid) != COM.S_OK)
  {
   int result = COM.CLSIDFromString(buffer, guid);
   if (result != COM.S_OK)
    OLE.error(result);
  }
  return guid;
 }

}
public class OleUtils
{
 public static int getIdOfName(OleAutomation auto, String name)
 {
  int[] ret = auto.getIDsOfNames(new String[]{name});
  return ret[0];
 }
 
 public static void setProperty(OleAutomation auto, String name,Variant value)
 {
  int id = getIdOfName(auto, name);
  auto.setProperty(id, new Variant[]{value});
 }
 
 public static Variant getProperty(OleAutomation auto, String name)
 {
  int id = getIdOfName(auto, name);
  return auto.getProperty(id);
 }
 
 public static Variant invoke(OleAutomation auto, String name)
 {
  return invoke(auto,name,new Variant[0]);
 }
 
 public static Variant invoke(OleAutomation auto, String name,Variant... params)
 {
  int id = getIdOfName(auto, name);
  return auto.invoke(id,params);
 }
}



package test;

import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.Variant;

/**
 *
 * @author 杨中科
 *
 */
public class HtmlElement
{
 private OleAutomation auto;

 public HtmlElement(OleAutomation auto)
 {
  this.auto = auto;
 }

 protected OleAutomation getOleAutomation()
 {
  return auto;
 }

 public void setProperty(String name, Variant value)
 {
  OleUtils.setProperty(auto, name, value);
 }

 public Variant getPropertyAsVariant(String name)
 {
  Variant value = OleUtils.getProperty(auto, name);
  return value;
 }

 public void setProperty(String name, int value)
 {
  OleUtils.setProperty(auto, name, new Variant(value));
 }

 public int getPropertyAsInt(String name)
 {
  Variant value = OleUtils.getProperty(auto, name);
  return value.getInt();
 }

 public void setProperty(String name, boolean value)
 {
  OleUtils.setProperty(auto, name, new Variant(value));
 }

 public boolean getPropertyAsBool(String name)
 {
  Variant value = OleUtils.getProperty(auto, name);
  return value.getBoolean();
 }

 public void setProperty(String name, String value)
 {
  OleUtils.setProperty(auto, name, new Variant(value));
 }

 public String getPropertyAsString(String name)
 {
  Variant value = OleUtils.getProperty(auto, name);
  return value.getString();
 }

 public HtmlElement getPropertyAsHtmlElement(String name)
 {
  Variant value = OleUtils.getProperty(auto, name);
  return new HtmlElement(value.getAutomation());
 }

 public Variant invoke(String name,Variant... params)
 {
  return OleUtils.invoke(auto, name,params);
 }

 public int invoke_Int(String name,Variant... params)
 {
  return invoke(name,params).getInt();
 }

 public boolean invoke_Bool(String name,Variant... params)
 {
  return invoke(name,params).getBoolean();
 }

 public String invoke_String(String name,Variant... params)
 {
  return invoke(name,params).getString();
 }

 public HtmlElement invoke_HtmlElement(String name,Variant... params)
 {
  return new HtmlElement(invoke(name,params).getAutomation());
 }
}




package test;

import org.eclipse.swt.ole.win32.OleAutomation;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.ole.win32.Variant;

/**
 * 更多方法参考MSDN“InternetExplorer Object”文档
 *
 * @author 杨中科
 *
 */
public class IEAutomation extends HtmlElement
{

 public IEAutomation(OleClientSite clientSite)
 {
  super(new OleAutomation(clientSite));
 }

 public void setVisible(boolean value)
 {
  setProperty("Visible", value);
 }

 public boolean isVisible()
 {
  return getPropertyAsBool("Visible");
 }

 public void setMenuBar(boolean value)
 {
  setProperty("MenuBar", value);
 }

 public boolean isMenuBar()
 {
  return getPropertyAsBool("MenuBar");
 }

 public void setStatusBar(boolean value)
 {
  setProperty("StatusBar", value);
 }

 public boolean isStatusBar()
 {
  return getPropertyAsBool("StatusBar");
 }
 
 public void setToolBar(boolean value)
 {
  setProperty("ToolBar", value);
 }

 public boolean isToolBar()
 {
  return getPropertyAsBool("ToolBar");
 }
 
 public int getHWND()
 {
  return getPropertyAsInt("HWND");
 }
 
 public String getReadyState()
 {
  return getPropertyAsString("ReadyState");
 }
 
 public String getLocationURL()
 {
  return getPropertyAsString("LocationURL");
 }
 
 public boolean getBusy()
 {
  return getPropertyAsBool("Busy");
 }

 public void navigate(String url)
 {
  invoke("Navigate", new Variant(url));
 }

 public HtmlElement getDocument()
 {
  return getPropertyAsHtmlElement("Document");
 }

 public String getInnerHtml()
 {
  HtmlElement document = getPropertyAsHtmlElement("Document");
  HtmlElement body = document.getPropertyAsHtmlElement("body");
  return body.getPropertyAsString("innerHtml");
 }

 public HtmlElement getElementById(String id)
 {
  HtmlElement document = getDocument();
  return document.invoke_HtmlElement("getElementById", new Variant(id));
 }

 public void quit()
 {
  invoke("Quit");
 }
}




使用范例:

 protected void 自动填表()
 {
  //"kw"为关键字输入框
  HtmlElement txtKW = ie.getElementById("kw");
  //自动填表
  txtKW.setProperty("value", "杨中科");
  HtmlElement btnSB = ie.getElementById("sb");
  //自动点击【百度一下】按钮自动提交查询
  btnSB.invoke("click");
 }
 private void automation() throws Exception
 {
  OleFrame frame = new OleFrame(composite, SWT.NONE);
  AutomationClientSite client =
   new AutomationClientSite(frame,SWT.NONE,"InternetExplorer.Application");   
 
  ie = new IEAutomation(client);
  ie.setVisible(true);
  ie.setMenuBar(false);
  ie.setToolBar(false);
  ie.setStatusBar(false);
  
  int hwnd = ie.getHWND();
  OS.SetParent(hwnd, composite.handle);
  // 窗口最大化
  OS.SendMessage(hwnd, OS.WM_SYSCOMMAND, OS.SC_MAXIMIZE, 0);
  OS.SendMessage(hwnd, OS.WM_ACTIVATE, 0, 0);
  
  ie.navigate("http://www.baidu.com");
  //等待加载完毕,正确的方式应该是在网页onComplete的时候继续执行,但是没弄明白OLE 的EventSink机制怎么搞到SWT中来
  //所以先凑合着Sleep循环检测getBusy()的值,当不busy的时候再进行后续处理
  while(ie.getBusy())
  {
   Thread.sleep(10);
  }
  msgBox(ie.getInnerHtml());
  //"sb"为【百度一下】这个按钮的id
  HtmlElement btnSB = ie.getElementById("sb");
  //取value属性
  String txt = btnSB.getPropertyAsString("value");
  msgBox("按钮上的文字:"+txt);
  msgBox("网址:"+ie.getLocationURL());
  
  composite.addDisposeListener(new DisposeListener() {
   public void widgetDisposed(DisposeEvent e)
   {
    //必须手动指定退出,否则会报异常
    ie.quit();
   }
  });
 }

posted @ 2008-06-30 21:08 CowNew开源团队 阅读(1435) | 评论 (2)编辑 收藏

时间:2008年7月5日下午13:30到17:30
  活动地点:北京清华大学(清华东门Fit楼)
  特邀咨询师: EasyJF开源团队 大峡

  活动参加对象:vifir.com的vip用户;
  参加费用:VIP免费;

  主办单:开源人网站(www.vifir.com)
  承办单位:成都蓝源信息技术有限公司 EasyJF开源团队 Cownew开源团队
  
  活动内容:
  采用开展专题讲座、问题答疑等形式,在网下开展面对面的关于前沿富客户端技术的应用及经验交流活动,主要以Ext技术的学习及应用经验交流为主。还将会根据vifir推出的一些ext应用示例,进行比较深入的分析及探讨。

  活动联系人:静水 (QQ: 970426526) 联系电话:028-86272612
  电子邮箱:970426526 at qq.com

posted @ 2008-06-30 21:01 CowNew开源团队 阅读(280) | 评论 (0)编辑 收藏

     摘要: 在SWT中提供了访问OLE的方式,不过相关的例子都是进程内OLE的例子,比如嵌入浏览器、引用ActiveX控件什么的。由于客户的需求,我们需要在程序中通过进程外Automation服务的方式访问IE浏览器。经过网上搜寻,找到一个朋友写的CComObject类可以访问Automation服务。不过经过使用发现一些错误,因此对其进行了修改,为了方便访问IE,我又封装了一个IEAutomation类,这...  阅读全文
posted @ 2008-06-23 17:04 CowNew开源团队 阅读(2294) | 评论 (1)编辑 收藏

     摘要: 《专家手记AJAX开发实战》电子版下载地址:http://www.blogjava.net/Files/huanzhugege/《专家手记AJAX开发实战》电子版.rar
  阅读全文
posted @ 2008-06-22 18:19 CowNew开源团队 阅读(2387) | 评论 (5)编辑 收藏

    在开发系统的时候经常需要嵌入外部的程序,比如将企业原有的系统集成到我们的系统中,而且要求看起来像和我们的程序一样嵌入到我们的系统中,这时就要借助于Win32了。在以前使用VC、Delphi、C#开发的使用的时候可以直接调用Win32的API来操作,好在SWT中提供了Win32API的封装,而且封装的比较好,大部分都在org.eclipse.swt.internal.win32.OS这个类中。核心原理就是调用SetParent这个API将我们的程序中的某个控件设置为被嵌套程序的父窗口。具体原理可以参考我以前写的《WPF中嵌入普通Win32程序的方法 》(http://www.blogjava.net/huanzhugege/archive/2008/04/24/195516.html)。
主要代码如下:
 private void executeProg(String fileName) throws Exception
 {
  int hHeap = OS.GetProcessHeap ();
  TCHAR buffer = new TCHAR (0, fileName, true);
  int byteCount = buffer.length () * TCHAR.sizeof;
  int lpFile = OS.HeapAlloc (hHeap, OS.HEAP_ZERO_MEMORY, byteCount);
  OS.MoveMemory (lpFile, buffer, byteCount);
  SHELLEXECUTEINFO info = new SHELLEXECUTEINFO ();
  info.cbSize = SHELLEXECUTEINFO.sizeof;
  info.lpFile = lpFile;
  //隐藏启动
  info.nShow = OS.SW_HIDE;
  boolean result = OS.ShellExecuteEx (info);
  if (lpFile != 0) OS.HeapFree (hHeap, 0, lpFile);
  if(result==false)
   throw new Exception("启动失败!");
 }
 
 protected void startNotePad() throws Exception {
  //"notepad.exe"为待启动的程序名
  executeProg("notepad.exe");
  
  //等待NotePad.exe启动并且初始化完毕,需要根据实际情况调整sleep的时间
  Thread.sleep(1000);  
  
  //"Notepad"为被嵌套程序窗口的ClassName(Win32级别),可以使用Spy++等工具查看
  int notepadHwnd = OS.FindWindow(new TCHAR(0,"Notepad",true),null);
  
  //&~WS_BORDER去掉内嵌程序边框,这样看起来更像一个内嵌的程序。如果需要显示边框,则将这两行代码删除
  int oldStyle = OS.GetWindowLong(notepadHwnd, OS.GWL_STYLE);       
        OS.SetWindowLong(notepadHwnd, OS.GWL_STYLE, oldStyle&~OS.WS_BORDER);
       
        //composite为承载被启动程序的控件
  OS.SetParent(notepadHwnd, composite.handle);  
  //窗口最大化
  OS.SendMessage(notepadHwnd, OS.WM_SYSCOMMAND, OS.SC_MAXIMIZE, 0);
 }

全部代码在此下载:http://www.blogjava.net/Files/huanzhugege/swtwin32.zip
posted @ 2008-06-05 10:49 CowNew开源团队 阅读(3786) | 评论 (2)编辑 收藏

由CowNew开源团队的侯志松(网名:芽孢)编写的《Hibernate完全手册》已经由机械工业出版社出版。
        本书从应用程序开发的角度出发,在介绍关系数据库系统知识和面向对象方法的基础上,全面介绍对象关系映射领域的工业标准――Hibernate的基本功能、体系架构、使用方法及高级特性。全书以对象关系映射为主线,分成3个模块:第1~6章介绍对象持久化的基础以及Hibernate的基本配置和使用方法;第7~11章详细介绍如何使用Hibernate实现对象关系的映射,并讨论了使用面向对象方式查询数据的方法和技巧;第12~16章分析了Hibernate中事务、并发、缓存等高级特性,并讨论了如何整合Hibernate和成熟技术,构建企业级应用程序开发框架的技术实践。
posted @ 2008-06-04 10:16 CowNew开源团队 阅读(464) | 评论 (0)编辑 收藏

随着Web开发的不断进步,AJAX以一种新的面貌出现在了我们面前,并且迅速席卷全球,成为一种炙手可热的技术。越来越多的开发人员想快速的掌握这门技术,并把它快速应用到自己的项目中。

虽然构成AJAX的技术已经非常成熟了,但是都是以CSS、JavaScript、XML等单一形式出现的,所以相关的技术书籍都仅仅停留在孤立的介绍这些技术方面,读者无法将这些技术有机的整合起来,更无从谈起将AJAX应用到项目中。本书将尝试着打破这种局面,在书中我们对AJAX的基础知识做有重点的介绍,而且本书中将穿插各种小的案例,让读者能够在实践中快速学习到AJAX技术,并且在最后我们安排了一个实用性非常强的WebOS应用,让读者能够学了就能懂、懂了立即用。

在AJAX领域已经有一些非常好的图书出版,不过这些图书大都是用PHP、.Net等语言描述的,以Java实现的并不是很多,即使有也是浅尝辄止。不过《专家手记AJAX开发实战 》的出现改变了这一面貌。

这本书不仅用了大量篇幅介绍了流行的AJAX框架,更加可贵的是,书中用了三个章节以一个实用的WebOS为案例讲解了基于AJAX技术的Web系统的开发开发出了模拟Windows桌面、网络相册、爱墙、在线Office、网络硬盘等经典的Web2.0应用,充分展示了AJAX技术的强大。WebOS是AJAX技术登峰造极制作,跟着作者实打实的学到了一个WebOS的制作,你就是AJAX高手!!!

值得一提的是《专家手记AJAX开发实战 》这本书的代码质量非常高,看了作者的代码不仅能使您学到高手的代码编写习惯,更能使您掌握AJAX的高级开发技能。
    此书是CowNew开源团队第一本团队合作形式出版的图书!
    稍后会提供试读电子版给各位。

       由CowNew开源团队的侯志松(网名:芽孢)编写的《Hibernate完全手册》也已经由机械工业出版社出版。本书从应用程序开发的角度出发,在介绍关系数据库系统知识和面向对象方法的基础上,全面介绍对象关系映射领域的工业标准――Hibernate的基本功能、体系架构、使用方法及高级特性。全书以对象关系映射为主线,分成3个模块:第1~6章介绍对象持久化的基础以及Hibernate的基本配置和使用方法;第7~11章详细介绍如何使用Hibernate实现对象关系的映射,并讨论了使用面向对象方式查询数据的方法和技巧;第12~16章分析了Hibernate中事务、并发、缓存等高级特性,并讨论了如何整合Hibernate和成熟技术,构建企业级应用程序开发框架的技术实践。
posted @ 2008-06-03 16:59 CowNew开源团队 阅读(2036) | 评论 (5)编辑 收藏

向四川汶川大地震遇难同胞表示深切哀悼! 

  举国哀悼,也许,我们会泪流满面,也许,我们会放声痛哭,但任何困难都难不倒中国人民,我们终会擦干泪水,挺起脊梁,继续前进。

posted @ 2008-05-19 21:05 CowNew开源团队 阅读(253) | 评论 (0)编辑 收藏

        今天终于把《鲁宾逊历险记》第一部看完了,看到其中说到“既然上帝都能饶恕他,我们有什么权利剥夺他的生命呢?”,我这才明白为什么电影里边基督徒要杀一个人的时候要说“我以上帝的名义,杀了你”,既然能够有权剥夺你生命的人只有上帝,那么我要杀了你就必须“以上帝的名义”了,也就是说这是上帝他老人家的意思。这也就是说,做一件事情必须有“名分”。看以前很多革命电影中,我们的革命战士要枪毙叛徒的时候要说“我代表人民代表D枪毙了你”,应该这是一个意思吧。
        朱棣要当BOSS就要打着“清君侧”的旗号、洪秀全要造反就必须说自己是上帝的次子、小鬼子要发动七七事变就要找理由攻占宛平城、老美要弄死萨达姆就必须以找核武器为理由……看来无论是国内还是国外、无论是做好事还是做坏事名分都是很重要的,必须找个名分才能行动,如果哪天一个人做事不讲“名分”的话估计也就是流氓透顶了吧。
posted @ 2008-05-03 23:24 CowNew开源团队 阅读(423) | 评论 (5)编辑 收藏

ssy(*^__^*) 16:57:16
不知你做过js的语法分析没有,我正在用antlr做js的语法分析,遇到两个难题,想向您请教:
1.正则和除法的区分
2.js匿名类和组合语句的区分
杨中科 17:08:22
sorry,没做过js的语法分析  
ssy(*^__^*) 17:10:37
哦,谢谢你
杨中科 17:11:39
为什么不用mozilla的js包呢?它那里边好像提供了解析js的类,直接能拿到AST  
ssy(*^__^*) 17:12:30
好的,谢谢您提醒,我去试一下mozilla的js包
杨中科 17:13:04
你们解析JS做什么用途?  
ssy(*^__^*) 17:13:46
做安全代码分析,就是找出js代码可能存在的安全隐患
杨中科 17:14:14
哦。JS包中的Parser类可以干这个  
ssy(*^__^*) 17:14:55
嗯,我去找一下这方面的资料,还没用过js包呢,呵呵,谢谢你提示
posted @ 2008-04-25 21:13 CowNew开源团队 阅读(906) | 评论 (2)编辑 收藏

     摘要: 公司现在在研发基于.Net中WPF技术的产品,由于要兼容旧有产品,比如一些旧有的Win32程序、第三方的Win32程序等等,还要实现自动登录这些外部Win32程序,因此必须能够将这些程序整合到我们的系统中来,让使用者看起来它们好像是一个程序。 在MSDN中有专门的章节提到了在WPF中嵌入Win32控件的办法,那就是使用 HwndHost ,只要把 Win32控件的句柄传递给 HwndHost ...  阅读全文
posted @ 2008-04-24 12:48 CowNew开源团队 阅读(6216) | 评论 (0)编辑 收藏

CowNew开源产品汇总,点击即可下载:
《自己动手写开发工具》随书源码:UIDesigner.rar

《自己动手写开发工具》随书光盘下载地址:http://www.namipan.com/d/b8879fd74ea3e2b2fd092bb3c7550352f5c6f49765b57b00
JDBC监控:JDBMonitor.rar
Hibernate建模工具CowNewStudio源码:CowNewStudio-src.rar
多数据库翻译器,源码CowNewSQL-src.rar,二进制包cownewsql-2.1.zip
antlr中文文档预览版.rar

CowNewToolKit: http://www.blogjava.net/Files/huanzhugege/CownewToolKit.rar

CowNewSQL在线演示:http://211.99.196.18:6666/cownewdemo
《程序员的SQL金典》随书源码: http://www.blogjava.net/Files/huanzhugege/《程序员的SQL金典》随书源码.rar
posted @ 2008-04-17 21:50 CowNew开源团队 阅读(2845) | 评论 (16)编辑 收藏

经过CowNew开源团队成员的不懈努力,《Antlr参考手册》的中文化工作第一阶段已经完成绝大部分工作,现在发布预览版供有兴趣的朋友参考,也请提出宝贵建议。下载地址:http://www.blogjava.net/Files/huanzhugege/antlr中文文档预览版.rar

感谢欧进利、周晓、曲金龙、west2snow、阿乐、杨中科等队友卓有成效的工作。
由于力量有限,Antlr的中文化工作还需要更多朋友的加入,有兴趣的朋友可以和我们联系:about521 at 163.com
未经Antlr.orgCowNew开源团队许可,请勿将此文档用做商业用途!
posted @ 2008-04-15 23:28 CowNew开源团队 阅读(2686) | 评论 (10)编辑 收藏