2006年01月15日

因为8月份后,工作突然忙起来了,自己一松懈,就给自己找工作忙的接口了。


今天下载爱搞搞的离线blog编辑软件,想想写blog还是很方便的,就尝试了一把。刚用的时候就发现一个问题。我的密码有一个&,结果验证的时候怎么也不能通过,应该是向上post数据的时候URL编码的问题。到时报个BUG吧。


 

2005年08月28日

一边和LD看大长今,一边上网。看见mikespook写的“PHP写的CVS文件夹清理工具”,自己现在已经很少使用CVS,大多使用SVN,想想这个可以程序可以使用在自己SVN,所以试着改写一下。很容易,
第一步,先到pear.php.net下载FILE模块里的find.php,程序里需要使用了的。
第二步,再将代码里所有的CVS替换成SVN,这个只要在编辑器里一个操作就可以了。
第三步,在代码里的88行if ($name === ‘SVN’) 修改成:if ($name === ‘.svn’) /*注意是小写*/
第四步,将文件另存为SVN_Clean.php。

运行的时候,php SVN_CLean.php <path> -nr。

结果在windows环境下运行的时候发现,存放SVN本地文件的.svn目录下有几个文件是只读属性,暂时不能删除。

2005年08月23日

WebCalendar在8月19日日更新到了1.01版本,解决了一些bug,就我个人看来,最大的就是不用依赖php.ini里关于register_globals的设置了。这在我以前的blog中已经提到了。这次在linux下,php5.0.4的默认安装,可以正常使用了。

2005年08月20日

在研究过程中,也和一些开发者有过交流,在此表示感谢。以下内容全部来自公开的互联网。在研究过程中,和部分开发者沟通过,得到的一些信息可能涉及到他们内部的情况,已经删除了。

PPT 1

PPT 2

全文完·非狐外传@2005年8月20日

最近工作特别忙,别说写blog了,就连GreatNews上订阅的200多条RSS,都没有时间来看。经常就是只能浏览一些摘要。强烈表扬在摘要中输出全文的blogger。

接手了一个部门的工作,开始写一些项目日志和部门工作心得,这些是否考虑放到blog上,一直在疑惑。

前一段时间因为别人的要求,对p2p的网络电视调研了一番,目前看来,这个项目cancel了,今天放出自己的以前写的两篇PPT,有兴趣的朋友还可以讨论讨论。如果需要ppt的正本,可以给我Email。

2005年08月11日

SVN和BugFree的结合第一步只解决了用户认证的问题,下面就是用户权限分配的问题了。SVN的权限设置非常灵活,即可以对单个Repository设置,也可以对同时对多个Repository相同的目录进行设置。既可以对目录进行设置,也可以对文件进行设置。还具有群组的概念。

在(一)的例子中,在httpd.conf文件行:SVNParentPath D:/svntest/parent 后加入“ AuthzSVNAccessFile D:/svntest/parent/accessfile ”

文件内容是:

[groups]
doc = tom, foo
[a1:/]
admin = r
guest = r
[a1:/1]
guest =
feihu = rw
[a1:/1/readme.txt]
guest = r
feihu = r
[a1:/2]
* =
admin = r
[a1:/2]
* = r
admin =
[test1:/]
* = r
[/doc]
@doc = rw



一行行来解释

[groups]  
doc = tom, foo  #定义了一个doc组
[a1:/]
admin = r   #对Repository的根目录/,admin,guest都有read的权限,如子目录没有特殊规定,继承父目录
guest = r
[a1:/1]
guest =     #取消guest对目录"1"的权限,admin还是有r权限,赋予feihu read&write的权限
feihu = rw
[a1:/1/readme.txt]
admin =     #admin 对 1/readme.txt没有任何权限,但guest却有了读权限,但guest对目录"1"却是无权限的
guest = r  
feihu = r
[a1:/2] 
* =        #所有人都没有权限了,但admin还是有r权限
admin = r
[a1:/2]    # 这是目前SVN设置权限的一个问题,admin还是对目录"2"具有读权限,也就是说对权限目前是或的算
* = r
admin =
[test1:/]
* = r     #对仓库 test1,所有人都有读权限
[/doc]
@doc = rw  #对所有仓库的 /doc 目录,doc组里的所有人都有r权限

目前来说,SVN的权限设置是非常灵活的,也非常强大,但只有文本设置,没有什么图形工具,也没有什么验证的手段。最好对每个项目的目录结构做好详细的设计和规划,但人员较多的时候,利用角色,组的概率来定义权限。不要象例子一样,设置过于复杂的权限。

全文完·非狐外传@2005年8月11日

2005年08月02日

本来想使用trac当做SVN的Issue Trace,但trac还是单项目模式,而且还是使用起来比较不习惯,所以暂时考虑SVN和BugFree的整合,目前两者只是用户名的整合,将来考虑是否整合进trac的形式,在BugFree的项目中直接看到Subversion库里的信息

使用的版本:
Windows SP1.5(sp1,后来打的几个补丁)
Subversion 1.2.0
BugFree 0.4
Apache 2.0.54
mod_auth_mysql.so 2.0.49(apache连接MySQL认证)
TortoiseSVN 1.2

SVN的用户管理其实有两个内容,一个是认证:检验用户名,密码是否正确,登录进SVN服务器;第二是权限:针对代码仓库Repository的读写权限分配。

一,首先按照SVN和Apache整合的文档,使用SVNParentPath方式,这样可以在这个目录下建立多个Repository。
我的所有操作全部是在本机进行的,有时会使用TortoiseSVN进行客户端的操作,其实完全可以使用SVN的命令行方式。

1,安装Subversion,apache,TortoiseSVN,建立D:\svntest\parent目录,这里将是SVN所有Repository的根目录,然后在parent目录下,创建a1目录,选中a1,右键菜单,选择TortoiseSVN中的“Create Repository here..”,创建一个基于FSFS的仓库。
2,修改httpd.conf,添加:

<Location /parentsvn>
 DAV svn
 SVNParentPath D:/svntest/parent
</Location>


3,在浏览器中浏览:http://127.0.0.1/parentsvn/a1/,可以看到正确的信息Revision 0。说明apache,SVN已经整合好了。

二,利用BugFree的用户认证

1,首先安装BugFree,保证BugFree能正常运行。其使用的数据库名是bugfree,存放u/p的字段是表buguser里的UserName,UserPassword字段。密码可以用多种方式加密,注意检查include\ConfigBug.inc.php里的$BugConfig["UserTable"]["EncryptType"]是否是md5。

2,解压mod_auth_mysql.so到apache/modules目录里。注意,mod_auth_mysql不是apache自带的,而是sf的一个项目,主页在http://modauthmysql.sourceforge.net/。目前版本已经到了3.0.0,下载下源码的话,自己需要编译,还需要apache的源码,比较麻烦。 不过已经有人编译好了相应的模块,在http://www.gknw.net/development/apache/httpd-2.0/win32/modules/下载。里面还有2.9.4版本的,但在我的安装中,始终不能正常。所以我只有使用了2.0.49,只是稍微有些设置不一样。

3,修改httpd.conf里的设置。

<Location /parentsvn>
 DAV svn
 SVNParentPath D:/svntest/parent
 
 AuthName "MySQL Testing"
 AuthType Basic
 Require valid-user

 AuthMySQLHost localhost
 AuthMySQLUser root
 AuthMySQLPassword xxxxxx

 AuthMySQLDB bugfree
 AuthMySQLUserTable buguser
 AuthMySQLNameField UserName
 AuthMySQLPasswordField UserPassword

 AuthMySQLMD5Passwords On
</Location>
</IfModule>


重启apache,你再次访问http://127.0.0.1/parentsvn/a1/,就弹出认证窗口了,输入用户名admin密码123456,就可以浏览了。

至此,SVN的用户已经和BugFree的用户整合在一起了。可以在BugFree系统中创建用户,修改密码了。

下一步需要做的是设置SVN中多用户,多Repository的访问权限控制。

全文完·非狐外传@2005年8月2日

2005年07月28日

吴鲁加在他的BLOG公司目前用着和将用的几款开源软件介绍的开源日程管理软件WebCalendar,对它非常感兴趣,下载安装了一下,在安装过程中发现它需要打开几个PHP.INI不建议使用的几个配置参数:register_globals,magic_quotes_gpc。把这两个参数设置成ON,安装完毕,进去后,发现后台设置不起作用。调试了一下代码发现代码里使用获得POST数据的变量是:$HTTP_POST_VARS没有数据,查看了PHP的帮助才发现:在 PHP 5.0.0 中,类似$HTTP_*_VARS长的 PHP 预定义数组可以通过设置 register_long_arrays 来屏蔽。而我正好用的PHP 5.0.4,并且PHP.INI使用的是推荐设置,所以这个register_long_arrays设置成了off。把它设置成on,一切都OK了。

WebCalendar还是非常不错的日程,工作安排软件,简单易用,我准备将它用到我们的团队中。希望团队里能够喜欢他,希望每个人都有勇气把自己的工作安排写在上面。

做为一个不错的开源软件来说,PHP的版本升级已经到5了,却还是使用了一个非常不安全,PHP团队也不推荐的设置:register_globals,有点让人想不通。

里面推荐的BugFree,最近也下来使用了一下,也是不错的。以后考虑的应该是把WebCalendar,BugFree,SVN on Apache整合在一起,估计这个要自己动手了,至少要先把用户/密码整合在一起。

补充,刚才去WebCalendar的CVS看了一下,发现已经对register_globals,register_long_arrays参数的问题做了修改。

全文完·非狐外传@2005年7月28日

2005年07月22日

这是朋友给的一个链接:http://estore.8848.com/mail/20050117/8848mgg03.htm

为了防止被删除,先对文字部分做个备份:

搜索助手技术原理与发展展望

搜索助手的技术原理

  通过创新的代码注入技术把我们的程序嵌入到ie浏览器的核心进程,同时挂接在ie浏览器和远端服务器的信息传递的通道上,从而实现用户请求的截获、网页信息的修改和重新整合。

所能实现的功能

  • 捕捉用户发出的任何请求,如用户输入:www.abc.com,mySearch可以知道用户要访问www.abc.com;
  • 可以修改、专业用户的任何请求;
  • 可以截获远端服务器所返回给用户的所有内容;
  • 任意修改远端服务器返回的结果;

搜索助手的工作过程

用户请求——〉mySearch代替用户发出请求——〉服务器端——〉mySearch截获服务器结果并进行修改——〉返回结果给用户

3721网络实名的工作过程

访问新浪——〉3721服务器——〉翻译成一个网址——〉新浪服务器——〉用户

mySearch的稳定性

  • 防止程序恶意卸载的功能;
  • 系统启动就进入内存,无法删除;
  • 理论上讲,必须重装系统或通过DOS才能删掉;

mySearch的优点

  • 优点是能查找,还能看到图片;
  • 下载、启动的速度非常快。

mySearch的未来

  • 新浪新闻下面加上8848的广告;
  • 在卓越的产品页面上加上当当的价格;
  • 8848的网络实名;

8848的alex排名。

无耻的见的多了,没见过这么无耻的。

全文完·非狐外传@2005年7月22日

2005年07月21日

Subversion是当前最红的开源配置管理软件,确实比CVS好用一些,毕竟是针对CVS的缺点开发的。因为较新,所以配套的软件比较少,目前支持SVN的Issue Trace的工具就只有Trac了。

对我来说,安装并不是一个愉快的过程,其中很多问题是因为各个软件版本的原因,引起了很多问题。而文档针对的版本又比较旧,所以只有自己摸索和调试。

可供参考的资料是:
1.官方的Trac安装指南
2.一个关于Trac on Win的Wiki,版本比较老了
3.冰云的Trac配置,非常值得看,中文,他的blog还有一系列的关于SVN的blog

我的安装软件的版本是:(截至到2005年7月20日)
Win XP pro with sp1.5
Apache2.0.54
Subversion 1.20
Trac 0.84
Python 2.3.4 (一定要用2.3版本的)
svn-win32-1.2.0-rc2_py
Sqlite3.2.2
Pysqlite-1.1.6.win32-py2.3 (一定要用1.x版本的)
Clearsilver-0.9.14.tar (很强Python的模版技术,呵呵Yahoo! Grop也在使用)

安装过程基本上可以按照第二份参考资料来做,在安装完成后,初始化Trac环境和配置Apache的,稍有不同,可以参见第3份文档。

我自己安装过程碰到的几个问题主要是:

1。版本不要用太新的。很多subversion,trac不支持。Python 2.3.4 (一定要用2.3版本的),Pysqlite-1.1.6.win32-py2.3 (一定要用1.x版本的)

2。整合安装subversion1.20和apache,如果只按照一些比较老的文档来炒作,会出现apache不能启动:报cannot load mod_dav_svn.so,解决方法是:除了在第一步操作中除了把 subversion/bin/ 目录下的 libdb42.dll、libeay32.dll、以及 ssleay32.dll 复制到Apache/bin 文件夹下以外还需要把 intl3.dll一同复制过去。

3。初始化trac环境,在控制台使用:python trac-admin d:/svnrepo/trac.db,进入后,执行initdb命名

4。配置apache和trac的时候,旧的文档中的TRAC_DB应为TRAC_ENV

嗯,现在Trac已经可以用了,就是有点问题,一个Trac只能管理一个project,不是很好,下一步就是看TracMultipleProjects的相关资料,理解一下,有个台湾同胞写了一个PHP来作multi-project trac portal

全文完·非狐外传@2005年7月21日