November 2007 Archives
今天在细细研究一个极牛的文档,当我正在欢快的阅读时,看到一段话语,让我暴笑:
看来我是需要更快的整理好我的SGML环境多修正一下,要不这样的人身攻击还不让大家笑S。。。。
不过,我还是想笑!乐死我了。。 :-D
BTW:找到了翻译者,烂人自己承认到:
靠,果然是我写的。。。
在地铁上翻的。。。
安装apache和mod_ssl我就不说了。因为在ports中这个太太太太太简单了。这里主要记录SSL的配置部分。
cd /usr/local/etc/apache22
sudo openssl req -new -x509 -nodes -days 3650 -out server.crt -keyout server.key
输入点提示的东东,然后在httpd.conf中include入ssl。然后restart你的apache罢。应元同学把一个人生苦短的事搞的哪么简单,让我忽然觉得生活很灿烂。。。严重感谢呀。。。
呵呵,easy-install自己的安装还是很简单的
wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
完事了。自己下包,自己安装。 :)
昨天为xbaydns写一个操作系统适配的代码,通常我们都是通过os来识别操作系统,可是os里的返回值可怜到让我不忍心去看。当我准备入手写uname -a的正则表达式时,发现了platform。把代码留下:
import platform
system, _, release, version, machine, processor = platform.uname()
system, release, version = platform.system_alias(system, release,version)
if (system == 'Darwin' and release == '9.1.0'):
#操作系统为Mac OSX 10.5
chroot_path = "/"
namedconf = "/etc"
elif (system == "FreeBSD" and release[:3] == "7.0"):
#操作系统为FreeBSD 7.0
chroot_path = "/var/named"
namedconf = "/etc/namedb"
经常有人在问,强大的FreeBSD为什么不能使用牛B的Linux ext文件系统呢?得到的回答通常是:“能,当然能了”。可是,太多的人习惯了使用mount_xxx来工作,这时会发现mount_只有这样的列表:
mount mount_mfs mount_nfs mount_ntfs mount_nwfs mount_smbfs mount_unionfs
mount_cd9660 mount_msdosfs mount_nfs4 mount_nullfs mount_portalfs mount_udf mountd
千万不要灰心,强大的FreeBSD还有很多你所不知道的东东,请使用:
mount -t ext2fs
来mount牛B的Linux ext文件系统罢。对了,小小的提示,ext3也可以使用ext2来mount的。
为社区贡献 :) ,所以也写到了:
http://wiki.cn.freebsd.org/faq/filesystem/e/mount_ext2fs
cvsup了、make world了、make kernel了。人生苦短。。。在make delete-old-libs时
[hd@hdbsd /usr/src]$ sudo make delete-old-libs
>>> Removing old libraries
Please be sure no application still uses those libraries, else you
can not start such an application. Consult UPDATING for more
information regarding how to cope with the removal/revision bump
of a specific library.
remove /usr/lib/libasn1.so.8? y
remove /usr/lib/libgssapi.so.8? y
remove /usr/lib/libhdb.so.8? y
remove /usr/lib/libkadm5clnt.so.8? y
remove /usr/lib/libkadm5srv.so.8? y
remove /usr/lib/libkafs5.so.8? y
remove /usr/lib/libkrb5.so.8? y
remove /usr/lib/libobjc.so.2? y
>>> Old libraries removed
很震惊会有这么多牛B的so被干掉,为了体现自己也很与时俱尽,所以全部y同意了。结果:
/libexec/ld-elf.so.1: Shared object "libgssapi.so.8" not found, required by "svnsync"
更牛的是与时俱尽的delphij同学说可以试试
portupgrade -fra
唉,人生苦短,还是升下不能正常run的包罢。。。 :)
将这个手记也放到了fbcn(腐败CN)的wiki里:
http://wiki.freebsdchina.org/faq/troubleshooting/d/delete-old-libs?do=show
今天调试bind,发现在osx中没有bind用户,粉郁闷的说。当时情急之下直接把程序中的代码改了。这会搞完了,顺手把这个问题解决了。使用的是osx内置的dscl程序。记下这些:
sudo dscl .
不要忘记最后的“.”,说明是对本机进行操作。进到dscl的交互模式下,加了bind用户:
> create /users/bind uid 53
> create /users/bind gid 53
> create /users/bind shell /usr/bin/false
> create /users/bind realname "BIND User"
> create /users/bind home /var/empty
所有的都可以使用help命令知道我干了什么。 :)
正在做一个时间计划,无意间发现了一个里程碑放在了一个时间点上。感叹两年又过去了,丫丫要上学了。心里暗暗下决心这个里程碑的工作一定要在这天完成。到时请大家吃饭,好好纪念一下。给自己加油。。。
另外,预告大家,xbaydns第一个版本预计在12月6日打出RELENG_1_0。
我以前是一个对于持续集成保持中立态度的人。因为我认为花费巨大的代价维护起来一个持续集成的体系是一个不好评估的事。原因有三:
1.大量的测试用例的书写花费巨大,我自己写过的测试用例最夸张的是源代码的200%(不过我自己早已经习惯了测试用例的书写)
2.一个持续集成的环境本身花费巨大,不同的操作系统、不同的平台、不同的用户,想要初始化一个环境就很难了,要保持一批这样的环境更是可怕
3.一但持续集成出现问题,会严重影响进度,因为大家必竟要多关心一个开发过程中的环境
看上去我的否定态度为多。我也知道它的好处,但是做为一个写了十几年代码的人,我不认为持续集成一定会给我带来什么好处。
自从重新开始代码,越来越发现持续集成的好处,当然也有现代技术进步的工具给我带来的便利,使得大家更容易的进行这个任务,同时把这样的工作成果展示出来。
晚上喜欢连夜BT的,或是像我一样,连夜build world的,你的mac的显示器怎么搞?键盘的背光怎么灭?今天在坛子里看到一个好的技巧,值得推广:
这样使用Expose打到最右上角(这是我最不常用的角了),你睡觉,mac关灯吹蜡去了自己玩去了 :) 。。
今天配置好了for google codes的plugin式集成环境。狂爽ing...发现在trac里看svn中的文件是乱码,很是不爽。着手处理时看到trac的conf目录中trac.ini里有如下内容:
default_charset = iso-8859-15
为了表示对于伟大的utf-8的敬仰之情,和对于哪些偏执于陈旧帝国主义西方旧思想的回应,我把它改成了:
#default_charset = iso-8859-15
default_charset = utf-8
从此,全世界人民都开始欢呼了,统一和谐的社会到来了。 :)
我想说的只有:欢迎来到联合国!
我需要在FreeBSD中完成一个与google codes一起协作的集成环境。我需要的是这样的一个环境:
1.使用google codes的subversion
2.在本地有一个trac,这个trac跟踪svn中的更新,同时可以与相关的集成、测试环境进行协作
3.在本地有一个集成测试环境,我使用了bitten来做这个事
4.支持多个项目同时进行工作
5.使用LDAP进行用户身份验证
整体的来讲,这个系统是这样的一个其作流程:
1.用户通过svn将代码提交到google codes上的svn服务器
2.本地的服务器通过svnsync把代码同步到本机的svn库中
3.用户可以通过trac访问本机的svn库中
4.在trac中的bitten插件,得到本trac中的更新,生成了客户端们的集成和测试任务
5.客户端通过bitten客户端取得本机的集成和测试任务并且进行相关的其作,把结果发回trac
6.用户可以通过本机的trac可以知道所有的测试和集成进展
这里记下的没有理念和想法,只是把实现的系统配置说明了。主要说明的是:
1.apache安装
2.subversion安装
3.trac的安装
4.trac-webadmin的安装
5.svnsync的配置
6.svn的配置
7.trac的配置
8.trac-webadmin的配置
9.bitten的安装
10.bitten的配置
没有想到这么快,不过我很高兴 :) 欢迎你,第一个系统大更新:
在DNS的RFC和BIND 9中都对分布式的管理给出了非常多的方法。BIND实现也非常的好,这里会对dns的辅域名服务器进行了深入的说明,同时深入的说明了它的工作方法。对于分布DNS有想法的应该仔细的看看。
昨天讲了这个PPT,感觉讲时还是多出不少内容。所以还是录了下来。对于logging部分说明的比较多,还是应该把后面的练习自己做一下。bind的logging机制做的非常不错。
这几天需要将google code的svn在本机做一个同步,主要是为了在内部环境里做集成测试。试了一下svnsync,确实很好用。注意:这个功能是在svn 1.4开始提供的,老的版本请升级。 :)
总体来讲需要两步:
1.初始化一个svnsync的代码库
2.初始化一个同步
3.同步
今天更新时看到了这样的提示:
. 3600000 NS L.ROOT-SERVERS.NET.
-L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
+L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
大家极时的更新一下自己的named.root罢。
近在一直在用trac,前段时间阿风同学把持续集成和测试放了进来,感觉很不错,强烈推荐它的build的部分
呵呵,这是我和阿风在osx和openbsd上同时进行测试。差不多每一个版本都会有跟进,真的粉不错。看下之前的红道道,感觉很恐怖。
今天发现QuickSilver在google code上多了一个开源的版本。大家要多多支持呀 http://code.google.com/p/blacktree-alchemy/ 。
注意了,它使用的apache许可,呵呵,苹果是不是应该考虑把它集成到osx中去呀,这可是osx王牌应用呢。
听说 http://www.google.cn/hp?sp=china 是一个新的首页,高兴的上去看。正想夸一下,发现了一群乱码:
没想到呀。也许是太想快些干,或是和国内的服务商一样,做了一个绑定流监器的东东。 :(
今天QuickSilver的3814发布了,终于我可以使用它的plugin了,要知道,在没有plugin的日子里,是多么的痛苦呀。再次说明,互联网服务真的很重要。 :) 现在http://www.blacktree.com/已经可以正常的使用了,去下载它的最新的3814的版本罢,这个版本可以正常的从网上下载plugin包包的。
如果你不知道QuickSilver是做什么的,哪么我可以告诉你,它什么都能做,只是你想不想让它帮你做的问题了。我在使用的:
1.用它启动程序(按四个按键就可以启动差不多任何程序)
2.启动浏览器去一个网址
3.把文件当附件发邮件
4.管理地址本
5.管理ical中的事件
6.删除文件
7.做svn的update操作
......
注意,差不多都只用按四下按键 :) 强烈推荐!
昨天在中文网志年会上遇到了之前的同事,他在帮助一个web 2.0的网站做整个系统的优化和重构的工作。这里面他遇到了很多的选择。看来他在选择时遇到了很多决定的难题,我发现大家在面对架构时第一个面对的就是选择了。
为什么选择这么难?是因为大家都有着不同的基础,同时在选择时每个人都不由自主的去收集各种各样的信息,在信息极大丰富时,杂乱的噪音会让大家失去方向。这个同事跟我提过两个选择上的问题,一个是文件系统,一个是交换机。我记下一些我们的谈话,希望能有更多的提示。
