2007年5月28日 星期一

开源动力何在

具体的动力说不准,我只能猜测一下
很多厂商都参与进了主流Linux发行版的研发,我觉得有下面几种原因
一是为摆脱单一组织束缚,研制更好用的适合于自己开发的系统,比如某软件厂商进行开发,使用Windows等闭源产品一般会交纳昂贵的费用,而且在升级维 护上处于很被动的地位。自己做操作系统即没有研发能力成本上又合不来,因此不如参与开源研发,使得开源系统或软件更适合自己。

二是参与推动标准化进程,光是适合自己不行,别人也用也是很重要的,因为别人用了,当和自己有业务往来的时候,双方的成本就能省去很多,会把注意 力放在业务方面,而不是平台环境等。标准化的好处就太多了,因此如果让自己的私有标准成为公共标准或是公共标准中的一部分,那么成本就会大大降低。而公共 标准又只能是开放的,要不怎么是标准。就像法律如果不公开里面的条款,那么就不具有法律效力了。因此为了使自己的标准成为标准,或是使标准成为自己想要 的,并且要使标准成为真正的标准即大家都用,所以他们一直在参与开源项目的开发的推广。比如eclipse就由ibm的产品成为了开源产品,得到几乎为0 的获取成本使之迅速普及,这样别人都用eclipse时,对于ibm来说,不但自身成本降低,也为相关的很多产品得到了巨大的市场。

对于个人参与开源或是小的团体参与开源,我想和大厂商是有很大不同的,要分这几类吧:
第一类就是为了让自己获得一个更好用的工具,这个厂商的第一个原因很像,这也是现在很多小的开源项目的出发点。比如自己发现所有的ftp软件都不 好用,那么就想去写一个,但自己的力量不够,怎么办,立个开源项目吧,组织一起开发。还有比如自己发现Ubuntu Linux在某项功能上不好用,而整个系统总体上来说又是非常好用的,那么自己可以参与到开发中来,争取说服其他人按照自己的意图发展,当然除BUG好 说,如果改方向就是不容易的。所以现在开源项目越来越多,而大部分都在做重复的工作。最简单的例子,Everest的发起者没能说服Magic Linux的研发者按照自己的意图去做,没有办法,自己再立个项目,再做个发行版吧。做了软件别人也能用是自己最高兴的事了,这也就是分享精神吧。

第二类是个人主张和信仰,比如Richard Stallman主张软件应该是自由的,比如软件的使用者有自由获取和修改软件的权利,而不应受制于某一组织,软件公司应当以服务来赢利,所以会全力参与进开源研发和推广。

第三类是展示自我,比如在Ubuntu中的某个软件的开发团队页面有了自己的名字,这也是对自己的一种认可。自己立了一个开源项目,并且形成了一定规模,也是一种自我肯定。参与Linux的推广,组织一些推广活动,也会得到周围人的羡慕和认可。

第四类是理智的认为开源有益,比如确实觉得Linux好用,各项功能完全满足或是基本满足自己需要,或是更适合于实际需要,而且又很廉价,当然廉 价对于他们不是第一因素,那么就会向别人推荐。自己觉得参与开源研发确实能学到很多知识,得到锻炼,而且很多开源软件的使用方式比闭源要合理得多,比如 Linux的系统比Windows在很多方面都要合理,有发展前景,值得参与,值得推广。

第五类就是盲目和极端主义者,这和信仰是不同的,信仰是有自己观点的,而这些是随波逐流的。比如很多喊着“开源必胜”口号的人,相信开源必胜,但 又不知道为什么必胜。还有天天喊着“开源万岁”,认为开源是万能灵丹,是软件中共产主义,每个人能应该具有高度觉悟、大公无私,认为开发软件的人应该只开 发,不计任何回报,这些是极端开源主义,是盲目的。与此相反的是很多一提开源就抗议,他们甚至不知道什么是开源,只知道自己的生活习惯不应被改变。还有就 是认为开源==Linux,开发开源软件就是开发Linux。这一类都是盲目的不理智的,但形形色色,人数众多。

上面就是我的猜测,也算是一个对自己想法的总结吧

2007-5-13 周日, 下午3:31首发于Ubuntu中文论坛

2007年5月25日 星期五

电脑时代的发展

20年前,“给我一台电脑,我可以创造一个世界”

15年前,“给我一个系统,我可以拥有一个世界”

10年前,“给我一条网线,我可以改变一个世界”

5年前,“我只需要Google,就可以毁灭一个世界”

现在...

2007年3月17日 星期六

一个Windows梦


假期前到现在一直都没有更新了,这期间发生了一件大事--系统又换了。

假前的一天早上,突然从一个梦中醒来,梦中也不是是梦还是想,反正悟到了很多事。马上就要回家了,回家后家里的铁通宽带速度还是很快的,铁通影院里的更新速度更是快,只是用的Viewgood的Webplayer,只能在Windows的IE中使用;带回了几部学习的视频,csf格式的,只能在Windows下播;选专业限选课,分数没选足的情况下无奈选了.net,更要在Windows下运行。也不知着了什么魔,突然冒出一句“Windows是无所不能的”,eclipse能,c++能,java能,还有什么不能?加之,每个假期都有很多同学到家里玩,装了Linux总有拒人之嫌。想到这里,立即备份了数据,装上了Windows(BTW,盗版的,自己有正版,买本时带的,不好用)。

一个假期的时间,都是从Windows下渡过的,而且这个假期也是有史以来第一次没有重装自己电脑系统的假期(以前每个假期都要重装5遍以上,闲的)。Windows上玩得开心,以至于无暇顾及这里。

一个假期过去了,开学回到学校,还得回到现实的学习、工作之中。打开Windows,烦躁、厌倦充斥着整个屏幕,天天更新杀毒软件,ssh登服务器也不好用,系统的故障也很频繁。怎么看都不顺眼--还是Linux的世界清静,有的都是我真正想要的,决心再换回Linux。

换回之前,怎么着也要做一些有趣的事情,于是我在ftp上找了一个Windows Vista Ultimate版,并且用最新的激活工具成功激活了。用了一两天,Vista却实是无聊啊,生搬硬套Linux,近似家目录的结构也向着Linux发展,只是做得太不完善了,很多软件用着都不顺,尤其是Vista那炫目的画面,用着一会儿就眩晕了,还有那个无论什么场合都要展示的层叠切换窗口,比起Beryl差太多了。Beryl是真正方便使用者使用,而Vista只是炫。用Vista时我大部分时间都是在传统主题下运行的。

说换就换,备份了一下数据,再一次完全安装了Ubuntu,像梦一样,一个Windows梦就这样结束了。

2006年12月26日 星期二

回头一看,全是数学

软件,软件,大学走过两年半了,学了不少,有点乱,拿纸总结一下,理清学习思路。不总结不知道,一总结吓一跳。

先是高等数学,然后就是概率与统计,这两课构成了思维的基础,很多方法都是用这两科的。

然后是线性代数,直接与离散数学联成了一体。离散数学再后就是数据结构,看了看数据结构,几乎全是离散数学。哎?旁边还有一本数据库,打开一看,关系代数,也是由离散数学来的。

下面该是什么?编译原理,一打开,又是数学。操作系统,学了很长时间,都是数学算法。

C++,JAVA等等怎么样,哎?书里面只乎都是空的,なぜ?学来学去,学了一大堆装修符号,和cos、tan没有什么区别,只是扩充了一些,可以表现出强大语义的数学符号。

其它的也都是如此,或者是数学的本身(基础课),或是数学的符号(各种语言),或者是数学的算法(其它的)。全是数学,看来现在真该好好补补数学了。

2006年12月17日 星期日

修复Linux下的文件关联

装了几个软件,突然发现文件关联没有了,先是zip的图标和关联都消失了,然后不知怎么的,所有文件的类型和图标也跟着消失了。网上搜Linux文件关联,没结果。


时想到会不会是mime的问题,文件类型就是由mime来完成的。在新立得软件包里查mime,找到了一个名为"mime-support"的包,再看这
个包里包含的文件,看到有一个位于/usr/sbin下的update-mime可执行命令,一看便知是作用是升级mime,很容易联想到这个命令似乎也
可以重建mime缓存。用一下,没结果。不过用的时候使用Tab补全,发现到mime后面没有空格,也就是说还有一个命令,按两下TAB,看到总共有两个
update-mime开头的命令,一个是update-mime,另一个就是update-mime-database。很有可能就是这个带
database的了。直接使用,要求带路径,找网上一搜,看到结果中有update-mime-database
/usr/share/mime,OK,应该就是这么用了,试试。

在Ubuntu下使用这个命令:

sudo update-mime-database /usr/share/mime

使用这个命令之后,再用鼠标点任意一个文件的图标,发现这时很多文件类型都可以识别出来了。只是zip文件类型还是没有,怎么办?


到在自己的主文件夹中好像也有一个share文件夹,应该会覆盖掉系统的设置,立即到主文件夹中,显示隐藏文件,看到.local下也有一个share,
而且share下也有一个mime目录。二话没说,删掉。再用鼠标一点zip文件,图标出来了。有几个文件没有显示图标,注销重登录就可以了。

后来删除一些文件后又发现关联丢失了(Code::blocks惹的祸),用上面的方法不好用了,才知道在重建mime缓存后还需要使用update-mime来更新。即下面两条指令来完成:

sudo update-mime-database /usr/share/mime

sudo update-mime




结一下,Linux下的文件类型和关联主要通过mime来完成,位于/usr/share/mime目录下。而用户主文件夹下也有一个.
local/share/mime可以覆盖掉系统设置。当关联丢失时可能是mime缓存破坏,或是错误的用户设置覆盖掉了系统设置,前者可以通过
update-mime-database来重建,后者直接删除用户设置即可。

2006年12月16日 星期六

VMware在Edgy(Ubuntu 6.10)下不识别USB设备的解决方法

VMware在Dapper中使用正常,而在Edgy中却识别不了USB设备,在网上找了一阵,最后在Ubuntu论坛上找到了下面这个解决方法:

先在终端输入下面命令:

sudo mount -t usbfs none /proc/bus/usb

启动虚拟机,当启动后进入全屏模式,然后连上USB设备,如果看到在虚拟机下设别了USB设备,表明此法有效。

然后可以在/etc/fstab文件中增加下面这行,保证永久生效:

usbfs /proc/bus/usb usbfs auto 0 0

2006年12月14日 星期四

有一种要装Windows的冲动

又想装Windows了



前两天做作业,在虚拟机上使用Win2003+VS2005,程序压缩后有8M,结果困在虚拟机里弄不出来了。



先是想用闪盘传到主系统里,比较快的方法,结果在Edgy(Ubuntu6.10)下的VMware不识别USB闪盘,闪盘是2.0的,从Ubuntu论坛上看到有很多人也在问这个,可是没有解决办法。

然后想到通过VMware的虚拟机共享,结果在Win2003里弄了一通也没打开共享,可能用的版本不对。

再就是通过网盘,在校园网站上有一块空间,一看,空间只有5M,传个8M的文件还要来回倒好几次。再一想传到163邮箱或是Gmail邮箱里吧,网速太慢,传了好久也没传成。



头都晕了。



昨天上Windows编程课(很佩服自己是怎么挺过来的),老师的一句话很有道理,“不管用的是什么软件,能拿到Money是真的”。确实,一想,管它是J2EE还是.NET,能拿到Money是真的。在Linux上工作,学GTK也好,学wxWidgets也罢,到头来还是为自己找一条与众不同的路去拿Money。



可是现在看来,领悟到了一点,就是编程语言上基本上都是差不多了,学多了不如学精了,Ruby、Perl、Python、PHP、Shell、JAVA、C++加上平台相关的GTK、wxWidgets、MFC等等,要想都学精不可能,但总要通一门。像最近这样走马观花一般终究是不行的,也感觉到了自己的编程能力确实太差,确实也太需要提高了。



可能会给自己找一个借口,就是自顶向下学习,算是借口,也许不是借口。使自己明确现在所学在整个学习中、在整个领域中处于一个什么样的角色也是很重要的,也能够使自己更准确的把握学习方向。



话说得远了一点,就眼前而言,先把课学好是真的,Linux确实很优秀,用着很舒服,即便是装上了Windows,我也会把主平台选在Linux上。不过现在像是明确的写MFC相关作业时还是用非虚拟机的Windows比较好。



究竟装不装Windows,现在还没决定,还是看以后的Blog更新吧。



BTW:看了Vista RTM简体版的下载信息,也想在装Windows时直接装Vista算了,就在这时查了一下Vista的开发工具的兼容性,发现和很多开放工具都不兼容,尤其是VS2005,就更不用说VS2003 和VS6.0了。真不知道MS是怎么想的。

PS:以后坚决不用“M$”这个名称了,微软怎么说也是一家公司,公司要的都是利益,而不是公益。没有利在,IBM也不会贡献出Eclipse。再说微软对人类的贡献也是巨大的