Laugh, the world laughs with you. Weep, you weep alone...

SVN服务器烧毁...
一切从简...

六月的最后一天

将近两个月没有写日志了,这两个月发生了太多的事情,让我充分感受到了人生的欺负与悲欢。在上海呆了不到一个月,创业的道路毕竟不好走,每天都很累很艰苦,但是但是心里却是很坦然的。

很多朋友都关心ZD的近况,可以告诉大家的是这个版本最近都没有更新,精力有限哈哈。现在每天都是php+python的环境,我都快忘了asp怎么写了,有空也要复习一下吧。

上周末去千岛湖玩了一次,和LeMO还有两个朋友,偶尔也要放松一下,一眨眼都要7月份了,放张照片轻松一下吧。(型男哈哈哈哈)

 

ZD-BS下个版本预告

2.0发布以来我受到了各个方面的评价,有好的有不好的,这些就是让一个程序成长的动力。从功能、需求、效率等方面分析目前版本的ZD-BS,我个人觉得已经可以了,下个版本会是什么样的呢?

首先要告诉大家的是,下个版本是PHP的,数据库将采用mysql或者sqlite。页面构架模式等还是沿用现在的模式,但是会对php的特性做一些优化,还是原汁原味的ZD-BS。说到下个版本的名字,我本来想叫3.0的,但是毕竟不是同一平台的东西,所以要换一个名字了,目前暂时保密,嘻嘻。

其他的消息我会在之后的文章中跟进。

python+php 程序构架

相对简单的web应用php足以应付,但如果是有复杂业务逻辑的,后台涉及大量算法结构的程序,那么单纯的用php就显得心有余而力不足了。目前对于自己的项目,我遇到了这种情况,在考虑了多种实现方案之后,决定用python来处理后台的逻辑程序,php则用于前台的呈现,作为公共的数据层,选择了MySQL。

首先来说一下这个构架的缺点,python和php均属脚本执行语言,虽然python在执行时可以编译成pyc二进制文件,但是效率和C之类的还是无法比较,作为后台逻辑层需要负责大量数据的运算,python在这一点上不如C,C++等语言来的高效。MySQL同样也经不起高负载的压力,当时考虑用PGSQL,但是由于种种原因还是选择了MySQL,但是对于我这个项目来说,不存在性能瓶颈。

接下来就是优点了,python是一种弱类型高性能脚本语言,你可以很轻松的用它写出各种功能,对程序开发的效率有很大帮助,同时对于前台程序的衔接也可以通过cgi等手段(当然我没有这么使用),可以说是相当灵活。php的优点我想不用多介绍了,作为表现层的首选我想没有什么异议。在这种开发模式下,些一个程序的周期是比较短的,可以说远远短于那些基于C的构架,虽然性能上可能略微差一点,但是这些和开发周期的大规模缩短比起来可以忽略不计。MySQL是个迁移度很高的数据库,虽然目前还缺少一些特性,但是完全不影响我这个项目的使用,这样整个构架可以轻松的迁移和移植,甚至可以单独的按模块移植,非常方便。

这篇文章只是一个思路,而不是一种定式,因为python+php的缺陷还是不容忽视的,关键在于对项目的要求。接下来我可能会写一些关于python的心得和研究,欢迎大家捧场...

LAMP+SVN 架设与维护心得

前段时间Myth项目的正是启动,我也开始忙的不可开交,从服务器的搭建到数据的维护,工作还是不少。于是又是很长时间没写博客,这篇文章主要是对前段时间的一个总结和一些服务器方面的心得,或许会对你有些帮助。

搭建一个项目内用调试和维护的服务器相对要比搭建一个web生产服务器要复杂,因为后台服务往往需要更多的特性。操作系统选择了debian,原因?稳定...搭建LAMP的环境还是很容易的,一路aptitude就行了,配置方面的话主要是apache,开端口-作映射-建虚拟目录-分配权限等等,这样一个lamp的基础环境就搭建完毕了。安装svn也是非常容易,直接aptitude即可,再get一个apache-svn的模块,这个工作就算完成了。初算下来从安装系统到基本环境搭建完成大约需要2个小时。

都好了?这样搭建的环境只能自己用用,为了服务大家,还需要进一步的配置,这里主要是svn与viewvc的配置。首先推荐先安装一个ssh,服务器一般都放在房间的角落,你总不能整天都窝在角落里吧,哈哈。首先给svn分配权限,可以对某个svn库分配,也可以对某个用户分配,或者结合使用,这块还是很方便的。最后就是安装viewvc了,网上有很多介绍,这里就不详细说了,但是viewvc有个比较大的缺陷,就是没法对角色和目录分配权限,经过研究找到了一个比较好的方法:在apache里对viewvc执行目录直接分配svn的读写权限,这样也许会把viewvc.conf复制几分,但是这也是唯一的解决途径。

好了,到这里一切正常运转,但是问题又来了,服务器上的svn版本库需要在服务器上有一个实体目录的映射,这样才能让测试项目和svn库同步,总不能都要update到客户端调试吧?在这里用到了svn的钩子脚本,post-commit,这样能在客户端commit的时候用bash命令update服务器上的实体目录,从而达到了同步。

这样一个服务器基本就满足要求了,运行期间也非常稳定。其实linux的乐趣就是做自己想做的事情...

这段时间我还写了很多的python脚本,主要是数据分析和抓取用的,这些心得下次再和大家分享了,嘻嘻...

A-Spam更新,提供引用过滤

这段时间被垃圾引用搞的很郁闷,于是动手更新了这个A-Spam插件,由于引用的时候没有验证码等手段,所以规则还是比较麻烦的。我没有参照别人接口的写法,而是自己写了一个简单的规则。

我用了一个比较另类的方法,asc码的出现概率,因为我收到的spam一般都是一小段英文,所以我把概率设置为60%。具体实现大家可以看我的源代码。

由于现在是用了svn版本控制,所以大家可以到http://svn.lastcode.cn/zdbs/plugins/签出最新的plugin,或者在http://code.lastcode.cn/zdbs/viewvc.cgi/plugins/选择文件保存。

现在推荐大家注意svn中Revision的更新,新特性都在最新的Revision中。而正式版会在一个稳定的版本之后发布,这个就是现在zd-bs的发布模式,谢谢大家支持。

经过3天的使用,效果相当令人满意,已屏蔽spam引用上千条,推荐大家更新^ ^

退化

以前在电脑前坐着都会有很多事情做,现在却不知道要做什么了,感觉很无聊。写博客经常是三天打鱼两天晒网,真的不知道自己已经到了这个地步,连振作起来的动力都没有。朋友们也不知道整天都在干嘛,或许我真的没什么朋友吧。

大家访问我的博客一般只是为了ZD-BS,但是也无所谓,对我来说博客其实只是写给自己看的。那天无意中在收藏里找到了4年前的0.9Beta版,忽然好怀念那段时光,真不知道当时怎么坚持写了这么个程序,而且还是自己不太熟悉的ASP。时间过得很快,我也退化的很快,现在真是懒的连游戏都不想玩了,真不知道做什么好,可能因为总是挂念一些别的事情吧。

我很想摆脱这种状态,所以最近准备做一个RSS聚合的东西,到底是用ASP写作为ZD的插件,还是开发一个PHP的独立版本现在还没想好,但是做起来应该会很快的。恩...应该要做一个ZD-BS的客户端插件,这样大家都能把自己喜欢的文章知道加入聚合,嘻嘻。这个曾经流产的NETAPI项目看来要我一个人完成了,顺便也缓解一下自己的退化吧。