msgbartop
用铅笔写日记,记录那最原始的美丽
msgbarbottom

大家五一劳动节快乐

五一劳动节来临,在此祝愿广大劳动人民节日快乐,当然我也包括在内~~

伟大的无产阶级革命家 马克思曾经说过,一个民族如果停止劳动,不用一个月,一个星期内就会灭亡。
可见,劳动人民的伟大之处。

这几天,上海世博会开幕,很是热闹,不过真的和我一毛钱关系没有,因为没有tickets~
不过像这样热闹的气氛倒是不多见,呵呵

ubuntu 10.04 也按时发布了,用我的1M带宽挂了三个多小时总于把它down下来了...
之后便火速的刻盘安装。

不过遗憾的是,连续刻飞了两张盘都没有搞定……杯具呀
怀疑是win7的问题,到linux下刻也刻飞了
看来是光驱的问题了。。最后还是用邻居家的电脑刻的盘

装上之后,感觉不错。ubuntu 真的是越做越好了,衷心的高兴

最后,再次祝大家有一个快乐的劳动节!

我为什么不用nginx、lighttpd

有了自己的VPS,在选择软件上有了很大的自主权。自己喜欢什么就用什么,只要高兴就好。

对于web server 的选择,其实有很多个,都是很优秀的,有时候会让人左右为难。

我也是这样。

当初刚到手VPS的时候,第一时间卸掉了自带的apache 1.x 吧(记不清了~)。
原因很简单,我不喜欢用老的版本,因为:
1.有很多已知的 bug 和 CVE。
2.老版本性能上肯定是不如较新版本的
3.就是个人原因,比较喜欢追求新版本(据说这也是一种病),版本控~

所以,我卸载的毅然决然。

其实我一直是apache httpd 的追随者,不可否认的是apache 的 httpd 在全世界的使用率也是最高的。
具体的数据是多少,我一时也说不清楚。

可惜的很,当我拿到VPS的时候,apache httpd 2.3.5 alpha 发布有段时间了。
其实,这是我最想安装的版本。

不过很遗憾的是,该版本不支持,或者说是没有得到 php 5.3.x 分支的支持。
我当时测试的是 php的5.3.2版本.毛病体现在apache httpd 不能正常载入生成的 libphp5.so.

后来被确认是php 开发组没有及时的跟进.这也是为什么以 alpha 形式发布的原因.(具体可以参见Maillist)
我测试了一下apache httpd 2.2.15 是可以正常工作的.

既然用不了新的版本,那就等一等.

先换个别的暂时顶替一下.web server 种类很多.
大概看了一下,国内用的比较多的是 号称快过apache httpd 10倍速的nginx 和 相对来讲低调的多的 lighttpd.

nginx 我以前用过一段时间,当时是为了搭建个web 共享平台,纯粹是directory index 了.
而 lighttpd 我是久仰大名,比如 著名的开源播放器 videolan的 ftp 就是用它搭的。

我之前的也小用过一段时间.

不过,我都不是很喜欢.换句话说,用过一次就不打算再用了.

原因很简单,它们的配置文件让我感觉很奇怪。
或者说是,配置文件的格式让我很蛋疼.

你见过 "port" => 80 这样的配置吗?真的是很别扭.
像nginx 里面居然还出现了 {} 这样的区块!貌似还有嵌套……

我想问一句,这是程序源码吗?要搞成这样..总之是让人很头晕。

能不能像 html、xml 那样有序,一目了然?

可能是我用apache httpd 的时间长了,先入为主了
不过不可否认的是,像httpd.conf 那样的配置的确更加易读、易懂、易改、易扩展.

而在多方考察后,我选择的是工作原理与nginx、lighttpd 一样都为fcgi server的Cherokee.
不为别的,就是为的一个省心,为的一个Cherokee-admin 的程序.

它可以让轻松我配置好一切,而不用去和配置文件打交道.
而且,我要说的是而且,它的并发处理和负载能力一点也不输于nginx之流.

再者它的吉祥物我很是喜欢,一个奔跑的小家伙,很棒!
见图:
Cherokee logo

这是它的官网(http://www.cherokee-project.com/),有兴趣可以看看.
另外,如果你的网站架设在Cherokee上,可以到该地址(http://www.cherokee-project.com/cherokee-domain-list.html) 去提交你的网址,一旦被确认就会被加入到列表中哟

不过Cherokee现在也不是很稳定,有不少潜在的bug.
像这几天,一天一个新版本,人家月经,它日经!

像这种日经般的更新,一般人哪有那么多闲工夫去跟进.
特别是一些个大站,几年难得更新一次。上次看到淘宝网的报错信息,人家的jboss还是04年编译的呢

可见,频繁更新只是我等这些小站站长热衷的事情,不过本人表示影响不大 :)

茫茫软件的海洋,选择一款自己喜欢的才是王道,不盲从、不跟风,只选适合自己的.

初识git

最近看到git这个年轻的SCM(版本控制系统)逐渐流行起来了,很多知名的开源项目都纷纷转移到它的怀抱里,如我们熟知的著名linux桌面环境gnome,还有我最爱的播放器vlc等

而且网上对git的好评也是如潮水一般呀。那么,作为喜好尝鲜的我,情绪自然不会稳定了。

总想去尝试一下,看看究竟如何的好?

由于googecode不支持git,而以git著名的github,我也没有帐号.所以只能在sourceforge上小试牛刀了

以sf为例,首先进入项目页面,找到admin菜单下的feature manage下面,启用git(SourceCode Version Control),就是在它前面打个钩。其实这个时候git repository 就已经初始化好了.

这个时候,如果不想再用其他的SCM的话,把它们前面的钩去掉就可以了(前提是你已经check out了)。

接下来,就是进入members菜单,点击用户名,勾选 "Allow access to Git repository (developer access)"选项,授一下权。

ps:以上操作需要project administrator 身份.

现在,就是导入版本库了。

git 要求用户本地也要有一个版本库,然后再push到远程服务器。这一点让我很不习惯,因为我一般都是直接commit到远程repo的.

因为我在windows 平台,所以还得安装git 的win 版 --msysgit.如果IDE是visual studio 的话,可以直接下载 Git Extensions 的完整版安装,里面包含了MSysGit 和 KDiff3.

之后,进入 git bash,其实就是个MinGW环境.
现在开始初始化本地git repo.

mkdir temp cd temp git init (初始化空版本库 temp) git config user.name "temp NAME" (设置名字) git config user.email "[email protected]" (设置邮箱)

#(添加远程repo 地址.sf 是以 ssh 开头,默认repo 名字是项目unix名,可以改)
git remote add sf ssh://[email protected]/gitroot/TEMP-PRO/TEMP-PRO
git config branch.master.remote sf
git config branch.master.merge refs/heads/master

至此,本地git库建立完毕,并映射好了远程git 库.且merge以本地为主.
当然,这一切均可以通过git extension的菜单完成.

接下来,创建一个hello.c文件,push到远程repo上.

vim hello.c git add hello.c git add . git commit -a -m "this is hello.c" git push sf master #(需要输入密码,如果报 fatal: The remote end hung up unexpectedly 错,可能是ssh地址输入错误. #也有可能是没有生成对应ssh的公钥和私钥到服务器导致的.)

到这步,我已经成功向远程版本库提交了源码.

不过我很快就发现了git的一个毛病,就是无法删除以前提交的文件.
这个真是个问题,万一程序员不小心提交了一下一些私密文件(如密码、艳照之类),哪岂不是糟了!!?
尽管可以 git rm hello.c ,不过在仓库里只是标识了 "deleted",还是可以打开.
谷歌一下,终于找到了一个方案,见 git: forever remove files or folders from history,提供了个shell 脚本.
保存为 del.sh,运行 del.sh hello.c ,嘿还真删除了.
不过 push 的时候,出错了!提示

! [rejected] master -> master (non-fast forward)
error: failed to push some refs to '/path/to/'

说需要先从服务器上pull 一下,oh ,my god...囧rz

好在我有shell权限,直接登录,定位到 /home/scm_git/t/tm/temp-pro/temp-pro,直接删除.草~

最后,给个链接《Git 中文教程》,我还是继续SVN吧.

我也来说说射手播放器

最近射手播放器被炒的很火呀,这是不可否认的事实。几乎网上到处是关于它的新闻.
先是什么“在官方博客发表声明谴责QQ player不尊重开源”,后又被细心网友举报自身不遵守开源协议.这次乌龙事件真的搞得射手很没有面子。自己刚刚在大家心目中树立起来的国内开源先行者的高大形象被瞬间击得粉碎.

这也引起了广大的网友的唇枪舌战,很是热闹。
本来我是不打算蹚这趟浑水的,不过心里有些话真的是不吐不快。本人虽说没有对开源事业做过太大贡献,不过也算是一名开源爱好者,对开源的热情也是很高的.

在我看来,这次事件射手的确是不太地道,在自己还没有做到尽善尽美的情况下,还去高调抨击别人。
这种做事手段真的是让明眼人看不过去.

毫无疑问,射手播放器是建立在FFmpeg基础上的,用FFmpeg issue 上某位网友的话来讲,离开了FFmpeg,射手播放器就是一个空壳.而FFmpeg源码本身是基于GPL 和 LGPL 发放的,它要求任何基于它的项目都得按照自身情况,以上述的两个LICENSE中的一个开放项目源码.

网友们发现,射手播放器是遵循前者的,也就是GPL.这点在射手项目的SVN上也是可以看到的。
http://trac.splayer.org/browser/svplayer/License.txt (为此,我还特地的去读了读,为的是看看射手到底是不是被冤枉,还是怎么的.
附 中文译本的地址: http://www.thebigfly.com/gnu/gpl/ )

并且同时发现射手在代码库里面没有提供全部的源码,在某些分支下只提供了编译好的类库.

这个显然是违背GPL协议的(详见第三点的a小点,以及关于源码的定义),当然射手对此也有解释,一堆一堆。
不过纵然你射手有千万个理由,有什么苦衷,你也不能因此不彻底开放源代码。要么你就不要声称自己遵循GPL,你可以去选择更加宽松的LGPL呀,又没人逼你. 古来鱼和熊掌不可兼得. 我认为cnbeta某位仁兄比喻的很恰当,"既想当婊子,又要立牌坊".

为什么人人都能严格遵循(比如大名鼎鼎的Mplayer),而你射手就要搞特殊呢?看到你在FFmpeg issue 上极力的为自己争辩,你要知道你代表是整个中国的开源脸面.我可不希望你也被钉在FFmpeg 的耻辱柱上面。

我认为,作为一个开源爱好者,必须要严格遵循开源协议。如果都像臭名昭著的暴风影音那样,那么开源也就没人再去热衷.

就拿java里面的Spring 框架来讲,如果它是基于GPL发放的话,那么世界上所有的用到它的J2EE项目,都得遵循它,开放所有代码,哪怕没钱赚了也必须得开放源码。
没有为什么,要么你就不要用该框架. 当然也有一些肆意践踏开源协议的,抱着一副死猪不怕开水烫的态度,“我就用了,怎么的吧”.对于这种未开化的野蛮人,我们还能说什么?

当然这只是一个假设,Spring 实际上是基于Apache License Version 2.0 发放的,见下图:

[caption id="" align="alignnone" width="578" caption="spring in frme"]spring in frme[/caption]

这个可比GPL宽松多咯. :)

最后,对射手播放器今后的方向进行观望,不可否认的是,我的情绪已经开始不太稳定了 囧rz

秀一下我的火狐的插件

我不得不说,火狐浏览器是我用过的最爽的浏览器。

而它最吸引人的也就在于她的数以千计插件和在它们背后无数的插件开发者.

今天就来秀一秀我的ff必备的插件,当然,可能还有很多我没用过、没听说过的优秀的插件.

看图(由于一屏截不下来,所以截了两次,后期用PS拼接了一下..破绽百出呀):

[caption id="" align="alignnone" width="536" caption="firefox plugins"]firefox plugins[/caption]

PS:随着win7 发布和 ubuntu 9.10 发布,我已经刻好盘打算安装了. 为了避免重装ff丢三落四的找插件,截图以记录.