-
Recent Posts
Recent Comments
- fdaf on SVN — import
- 千寻 on 常用的正则表达式及符号诠释
- 55659 on 常用的正则表达式及符号诠释
- 55659 on 常用的正则表达式及符号诠释
- vincent on Python的调试
Archives
Categories
Meta
Monthly Archives: November 2004
微软重回政府采购,玄机在哪里
这篇文章,说的还是蛮对的,国内的软件业目前究竟在做什么?除了做项目还是做项目。虽然还是有不少的企业挣了大钱,但是真正的利润被谁拿走了?目前国内的软件业,甚至是世界的软件业,都面临着一次重新洗牌的机会,我这里只想说:软件需要研发支撑!!!______________________________________________________________________ 有消息称,这次北京政府采购,阔别三年的微软再次中标,国内软件厂商几乎全军覆没。顿时,一时间众说纷纭,说违法的也有,说背后细节难以说清楚也有,说暗存玄机的也有。更有说微软的公关能力令国内厂商望尘莫及的。 玄机在哪里? 如果非说玄机,其实我倒很想问问,3年前的国产软件大规模中标,是否有玄机?如果自己占了便宜就闭口不提,吃了亏就说别人有玄机,这种做法未免太不厚道。客观地说,政府一样是一个客户,凭什么就不能采购便宜好用的产品? 没错,政府确实应该优先考虑国产软件,但是也是要在不太影响工作效率的情况下。如果这些东西实在不好用,那么,买来做什么用?电子政务了,效率反而降低了,难道政府就是这种冤大头吗? 与其盯着玄机,不过先看看台面上面,多看看自己的软件,给了别人什么,让别人付出了什么,然后再来说台面下面的事情。 这三年,你们在做什么? 这句话是我一直想问的。这三年,你们到底做了什么?从中文两千和中科红旗的主页上,似乎可以看到他们还在更新着产品。但似乎就是修修补补而已。三年前中标获得的利润,已经不小了,不知道被用在了那里,是否用于产品的研发投入?从现在的产品和3年前的变化来看,这种小小的提高,恐怕是几个爱好者几个月都能做的事情,不需要这么所谓掌握“中文处理核心技术”的一大群博士硕士们花费3年去做。 我很想问问,红旗linux到底有什么特点?比red hat好在哪里?比slackware呢?比Debian呢?比knoppix呢?这几个linux发行版也都是小公司。占有率超高的slackware甚至就是一个人在维护的。如果一个投入了千万研发资金,且几次中标大单的公司,做出来的产品没有什么核心技术,尚且比不上一个人维护的一个linux发行版的话,是不是也过于讽刺了? 国产比较著名的嵌入gui库minigui,最初的开发者只有一个人,不知道这些公司看到这些个人们的成就是不是会觉得脸红? 微软的命门在那里 所谓天下没有破不了的武功,就算是传说中刀枪不入十三太保横链功夫,也有个肚脐眼这个命门。那么,微软到底有没有弱点? 事实上,所谓有,也所谓没有。首先微软是个大公司,微软要做的事情太多,必然不能专一。微软花费的成本太高,且效率并不高。一个足够强的小团队,不需要多少钱,就能以非常高的效率在某些领域做出来非常强大的产品,这从微软不停的和一些小公司打官司就能看出来了–微软也认为他们具有威胁。 按照我们政府对国产软件的支持力度–至少3年前的支持力度很强,其实,看中文两千主页的大事记就知道,这3年中,这些公司也并非颗粒无收,反而是不停的中标,每年至少有一个大单。这样的收入和支持力度,他们怎么就不能翻天覆地地做出来些东西呢?三年的时间已经很长了。 有国产软件公司老总说:“政府让我们做到微软的水平是不现实的,如果政府说要做到和微软一样的水平再采购,那通用软件这一块可真的就不用做了” 没错,微软确实强大。但是别忘了office中有多少功能是大部分人用不上的。微软需要考虑全球市场,需要让产品适应多少个国家多少人多少种情况。而,国产软件厂商们,只要让产品适应中国,其实只要让政府办公顺畅就足够了。这其间的差距是相当巨大的。如果集中优势兵力,只攻打这一点,最后还是比不过人家,那真够糟糕。 看看这条新闻:“TurboExcel速度是Excel的几百倍 微软诉其侵权”,难道国产软件厂商,就不能做到吗?就算做不到是excel的几百倍,那么,十倍总应该可以吧?要知道,TurboExcel也没有大把的博士硕士和大把的资金啊。就算是做不到10倍,那么易用性做得再好一点,似乎也不是不可能吧?三年的时间呢! 说到微软和国产软件,我总想起来一个故事:狮子总也追不上羚羊,于是问羚羊为什么能跑得这么快,羚羊说:“你是为了一顿饭奔跑,而我是为了生命而奔跑。” 实际情况呢?为一顿饭奔跑的微软获胜了。我看这个故事应该改成这样:有人帮了羚羊一下,羚羊飞快的跑到了前面,有钱有闲了,干脆躺在路边睡大觉。而狮子一直没放弃,终于超过了羚羊。这还是狮子和羚羊的故事吗?我看应该改名叫龟兔赛跑了。 总之,我觉得,这次的失败不能算失败,玄机之类,也大可不看。三年之后又是一条好汉。如果现在卧薪尝胆,做一只好的羚羊,我相信,三年之后仍然有机会。其实,在这三年之中,也有无数的机会等待着他们。何必如此怨天尤人。真金是不怕火炼的。如果是凤凰,那必将浴火重生,如果是野鸡,那么死掉也就死掉了。
iptables介绍文章
kernel 已更新至 2.4.x 就有很多人知了,但随着 kernel 改变而要更新的软件就有很多不为人知,这个 iptables 即为其中一个。kernel 2.4 已经推出这么久,但仍然有人问︰为甚么我的 ipchains 不能使用?皆因 Rusty Russell 等人(ipchains,即 kernel 2.2.x 所用的防火墙工具﹐也是他的杰作!)觉得 ipchains 仍未完善,于是决定在 kernel 2.3.15 时开始重写,希望在 kernel 2.4 推出时有一个功能更强的 firewall 出现。他们的心血就是今期要介绍的 iptables 了。 这个 iptables 的前身称为 netfilter,作者仍未搞清楚为何突然会改名,但新名称约是在 kernel 2.3.99 时出现的。在本章末后的 URL 也可看到点端倪。 话又说回来,凭甚么说它的功能强大呢?这要由stateless … Continue reading
目前软件开发,从技术角度讲,最大的不同只是在于类库的选择
比较郁闷的是,我在IE下面写了近200字,突然IE报错,让我白写了:(不过firefox好像不支持IE的那个HTML编辑。 现在很多的论坛和邮件列表里面,还有很多的新手,在为哪个语言好,哪个语言用的最广泛争个不停。我自己也经历过和别人争什么语言好什么语言差在哪里。现在回想起来,感觉当时的想法真的好幼稚。不过,谁又不是从幼稚一步步的走过来的呢? 我现在在公司,使用的公司内部开发的脚本语言,和我熟悉的C/C++,Python没有多少联系,类库也是公司内部积累的。当时今天在写自己的小程序的时候,发现居然和公司的软件的设计思路在某些地方可以惊人的一致,有些地方完全可以把公司的先进的设计思路带进来(毕竟这些思路已经经受了电信系统的考验,不要自己再去测试该思路的可行性了)。在看看现在的计算机语言,也在开始慢慢的同质化,新的语言大部分都和C/C++有着多多少少的联系,在其基础上,去掉了一些晦涩的东西,简化了代码的编写,并在层次上更加的提高。我记得当时学习ASM,C,Foxbase,Pascal等语言,差别还是比较大的,当时现在看看流行的语言,语法上其实已经差不到哪里去了,唯一有差别的就是所使用类库的不同而已。而且现在的系统,大部分是应用层的较多,底层基本都是使用现有的平台了。应用层的开发,说白了就是比拼类库的年代了(说的比较绝对,跟语言还是有关系的)。还记得刚来这个公司的时候,要写一个链表程序,一个学校刚毕业的家伙,自己琢磨几天之后终于写出了,我看了一下代码,几分钟就把他的功能实现了,不同之处在于我是使用了STL,而他是自己设计的链表。 不过现在语言也在发展,特别是现在动态语言的发展,一个语法可以实现一个很大的类库的功能,而且其性能也很不错。有些动态语言特有的可以融合别的语言类库的能力,使你又可以轻松的维护以前用别的语言编写的代码。不过目前动态语言技术还没有大规模的使用,而实现最好的就是Python了,现在在国外已经非常的流行,微软头段时间也在招人,做Python在.net上面的实现。看来以后的开发,除了要选择类库,还要选择语言了。
帐户管理
以前没有做过用户帐户管理方面的东西,从别人那里给我的感觉就是,要么很难,要么狠容易。不过自从给XX公司做外包之后,对这方面开始有所了解。XX公司的IN平台上,卡号业务做的是相当的不错的,据说是目前业界做的最好的。不过他的卡号业务做的也是狠庞大的,有一个业务已经写了差不多4万行代码了,虽然业务功能的代码占了大部分,但是关于卡号鉴权方面的代码差不多也得有万来行。 卡号业务中,对数据库操作最少会用到3张表,一张基本表,一张系统配置表,一张业务费用表。基本表记录帐号级的信息,系统配置表用来对所有帐户都通用的配置。基本表中,还可以对帐号进行分批次的处理,相对于我们平时说的所谓的分销商的概念。 卡号业务中,鉴权方面的逻辑也是狠复杂的。首先要采集用户的输入,采集方式可以使用一次性采集和多次采集,是可配置的。密码的传输方式是根据硬件来决定的,可以使用密文,加密方式是可选择的。信息采集之后提取帐号的相关信息,然后对该帐号的属性进行判断,如有效期,状态,日限额,月限额,周限额等。为了防止用户的恶意拨打和猜测密码,还要设置黑名单功能,黑名单是可以设置为是否自动解除的。暂时就想到这些了,具体细节就不说了。
BSD系统全家福
BSD是Berkeley Software Distribution的简称,它最初是用来发布由Berkeley大学的Computer Systems Research Group(CSRG)开发的UNIX系统(Berkeley UNIX)。后来出现的BSD系统都是源自于Berkeley UNIX。现在主要的BSD系统有下面这些: 386/BSD 386/BSD是最初的BSD操作系统,是在1992年由William F.Jolitz在4.3BSD的Networking Release 2基础上开发的。它主要运行在386PC的体系结构上。它的发行版主要是在网络上完成的,任何人都可以从网络上自由下载。386/BSD在发展了一定阶段后,就再也没有进展:取而代之的是,从此引出了两个操作系统,NetBSD和FreeBSD。现在,大家都认为386/BSD已经死了。 NetBSD 在386/BSD版本发布几个月以后,一群具有敏锐眼光的用户成立了一个小组,他们收集资源以帮助维护和增强后来的系统。他们把他们的版本命名为NetBSD。NetBSD侧重于支持尽可能多的平台,并继续按照CSRG的风格进行开发。现在,NetBSD能够支持包括从Algor到 VAX在内的近70种平台。你可以去看看NetBSD的官方网站http://www.NetBSD.org了解更多信息。 FreeBSD 在NetBSD小组成立后几个月,FreeBSD小组也成立了,主要专注于PC体系结构,其宗旨是能够开发出一个坚如磐石的网络操作系统。它直接源自于386BSD和4.4BSD-Lite。后来,FreeBSD小组找到了Walnut Creek CDROM发行商,由他们来发行FreeBSD光盘,而且Walnut Creek还提供开发FreeBSD这一计划所需要的计算机和快速的互联网接入。应该说FreeBSD的发展离不开Walnut Creek的支持。FreeBSD发展到现在已经相当成熟了,它的技术性能也是相当出色,十几年的开发使它成为一个“坚如磐石”的网络操作系统,有许许多多的大网站和ISP在运行着FreeBSD,免费和开放的特性使得它成为商业计算和科学研究的极佳平台。现在,FreeBSD也已经可以支持Alpha和Sparc64平台,但与PC平台相比还有很长的路要走。 由于FreeBSD的优越性能和采用BSD许可协议,所以很多国际大公司对它进行二次开发,使它能够适用于专有系统上。像仅次于cisco的第二大路由器厂家Juniper,它的JUNOS系统就是基于FreeBSD的系统,当然Juniper的路由器用的是专用网络处理芯片。防火墙方面有Nokia,Samsung等,他们就是使用FreeBSD 2.2.x的系统。而Maxtor、AMI等厂家在他们的存储系统中也是使用FreeBSD。此外,IBM的InterJet也是使用FreeBSD。其他不太著名的厂家,使用FreeBSD的更是比比皆是。 由此可见,FreeBSD是目前最出色,使用范围最广的BSD系统。FreeBSD的官方网站是www.FreeBSD.org。 BSD/OS BSD/OS也是一个非常优秀的操作系统。它是原来BSD UNIX的部分开发人员成立的BSDi(Berkeley Software Design Inc.)公司的产品。它与FreeBSD差不多,但要比FreeBSD支持更多的硬件,有很好的服务和技术支持。现在,BSDi公司已经被WindRiver公司收购了。 OpenBSD OpenBSD是从NetBSD中分离出来的,专门把NetBSD跟FreeBSD的新功能和修正加在一起,算是NetBSD和FreeBSD的混血儿。他们的技术宗旨是提高系统的安全性,被认为是目前世界上最安全的操作系统,已经有将近四年无远程访问漏洞的纪录。他们的市场目标是使得系统更易于使用和更广泛地被采用,所以他们借用了FreeBSD发行版本便于安装的许多特性。你可以在http://www.OpenBSD.org找到详细信息。 Darwin(MacOS X) Apple公司在2001年早些时候发布了他的MacOS的第十版(X)。它背离了先前的MacOS版本:它把基本系统(Darwin)建立在带有一个BSD环境的Mach微内核基础之上,再加上Apple自己的Aqua图形界面。基本系统(Darwin)也是自由的。FreeBSD和Darwin在用户源代码水平上是兼容的。而且,Apple还雇佣了FreeBSD社区的大拿Jordan Hubbard,他就是FreeBSD计划的创始人之一。最近,Apple也建立起了自己的Darwin社区,希望吸引更多人能加入到它的社区中。 可见,所有的BSD系统分支都有一个共同的起源,所以说它们是一家人一点也不假。实际上,它们之间也是不断地取长补短,共同进步。
PyCon DC 2005概要
Core Databases Documentation GUI Programming Games Programming Jython and IronPython Network Programming Open Source Projects Packaging Issues Programming Tools Project Best Practices Integration (including C/C++ or other languages) Success Stories in Business in Education Science and Math Web-based Systems 看来Python也与时俱进了,越来越关注应用了,好事!
pysvn
今天给pysvn的作者一个答复了,这是他催促下我匆忙测试了一下的结果,pysvn对unicode支持已经很好了,不过只是针对SVN1.1.1,对别的版本不行,缺少apr的动态库。 近来的项目真是急死人啊,接连两个都是夺标项目,任务量大的惊人,我们基本已经不在按照以往的那种细致的方式进行运作了,一切以进度第一进行。质量由测试部来保证(当然,出了问题还是我们开发的责任重大)。不过幸好,项目会在圣诞之前完成,如果不出意外的话,最多一个小活就可以挺到过年了。
网络与病毒
这几天病毒攻击挺厉害,很多公司的网络变得奇慢无比,甚至出现了根本不能上网(包括局域网)的程度。昨天和今天在给同学的公司进行杀毒,由于网络问题,到现在还没有真正的解决。不过已经确定是病毒的问题了,剩下的问题就是打补丁了,不过他们的网速慢,我只能回家下载软件后用U盘拷给他。 现在网络越来越流行了,病毒也是随之大范围的扩展。对于软件公司可能还好一些,但是对于那些非软件公司(包含很多IT企业),对病毒都无所侍从。因为他们相信广告上的杀毒软件,买了,装了,升级了,但是病毒照样有。为什么,因为windows本身的安全,没有打补丁,再怎么装别的软件也是没有使用的。据说现在的病毒是经济利益驱动了,看来以后对于防病毒和黑客,也得花一些代价了。 不过我感觉,反病毒是一个服务型的行业,软件开发由专门厂家完成,但是真正对用户有用的还是要派人过去整个系统的维护,而不是针对一个病毒,或者安装一个软件。这种适合于本地型企业,对与技术要求不高,但是成本相对要低的。
套餐
参考:http://www.ccw.com.cn/news2/commu/htm2004/20041101_14RNH.asp 看看人家写的套餐,对于广大的用户来说是多么的好啊,但是可苦了我们这些为电信做套餐业务的开发人员了。这几天为了巴西的项目,天天加班到很晚,就是为了增加固网的套餐功能。累!
应用浏览器
前几天,haitao在论坛里面谈到了应用浏览器,这个名字使我耳目一新。呵呵,应用浏览器,字面描述就是为某种应用场合定制的,不单是浏览网页应用的。其实这个东西很早就有了,notes算是这类浏览器的开山鼻祖吧。不过notes在国内只是一些大型公司应用,中小企业很少用这种东西的。不过从我使用的经验来说,notes很多地方还是需要大改进的。不过作为一种OA或者是电子流工具,还是狠方便的。 应用浏览器的模型,在我脑袋中最早是去年成型的。因为我主要是对工厂这块感兴趣,而工厂应用中,电子流只是其中一个很小的应用,而且现在很多工厂都上了基于WEB的电子流。不过他们的电子流主要还是半自动的,与工厂中的设备及相关的设计软件没有衔接。说白了,现在应用的电子流只是一种管理的约束,不能是真正意义上的电子流。因为工厂最重要的是设备和工艺,管理是为了让工艺能适应设备的生产,如果不能够让工厂的设备、工艺和人员通过电子流来结合,那就不能算是合格的。而工艺的设计就是拆分设计图的过程,只是不同的人对设计图中与自己相关的部分拆分为工艺,让设备遵从工艺进行生产。而这个设计图WEB是处理不了的,我们自己的软件也是很难处理的,因此需要设计软件厂家的支持。而目前的设计软件厂家,会提供接口,让授权用户进行二次开发。针对这种应用,WEB可以说是很难实现的,而目前流行的GUI却是很好实现。一份设计图狠容易管理,但是现在工厂生产,其图纸也是分版本的,版本多了就管理混乱了,而管理软件的最好界面又是WEB的。 在这种情况下,我想出了一个办法,就是将web和GUI结合,管理功能调用WEB,而WEB实现不了的使用GUI。不过在使用的语言上却不好选择。编译型的语言,使用插件技术很容易,但是扩展却是狠困难的。经过一段时间的了解,决定使用python,因为python不是编译型的,其生成的字节码文件很小,更新狠方便(比下载网页的量小),而且功能强大,同时其具有的mixin技术也使第三方软件更加容易合入。不过还有一点重要的,就是性能场合可以使用C/C++的模块。不过这个方案不好的就是需要安装python的包,虽然第一次可以把python的相关资源打入,但是这样对于新手和初始实施是不方便的,不过现在的linux都带了python了(但是现在有多少用户在用linux啊)。 这是我目前想出来的方案,不过还没有仔细研究可行性。