维持开源团队及项目的几点心得

作者:sluke 发布时间:December 28, 2009 分类:闲言碎语

1、合理的成员构成,分工明确,宁缺毋滥
2、强势热忱的team leader
3、不间断热点事件激活团队,积极反馈
4、良好的成员关系,偶尔相互妥协
5、稳定的个人收入

这是几句闲话。

Check Software Update,一个小工具网站的构想

作者:sluke 发布时间:October 20, 2009 分类:劳动万岁

这篇日志,是为了纪念几年前一段狂热试用开源程序的日子……

想做小白鼠,试用最新版本的程序,就需要每天访问各种程序的官方网站,看是否有更新,过去我是通过订阅程序官方的博客或邮件列表来达到及时关注的效果,这是一个费时费力的过程,而且并不是所有程序都有博客或是邮件列表。于是我就构思了一个小工具网站,用于自动检测各种程序更新。

核心的机制是通过监测程序的发布网页(尤其是程序下载页的更新)是否有变化,来判断程序是否有更新(当然这样并不精确,所以在网站用语选择上,使用“可能”这样的词)。

一、监测机制
1、RSS监测,这个没什么好说明的
2、Page2RSS,利用这个工具把网页转成RSS来检测
3、监测网页的MD5值是否有变化,需要把整个网页load到服务器,消耗比较大
4、对于开源程序,最好不过的方式是检测SVN的更新,还能获取到更新日志,效果佳
5、托管在google code、sf.net上的项目,单写规则监测,能获取更优质的信息,例如监测typecho的update list

二、展示机制

首页:
将被监测的程序分为两种,在显示时略有区别
1、有SVN,能获取到详细信息的
2、只能监测到可能更新的

采用按最后一次监测到更新的时间倒序排列,同日更新的按收录顺序排列,就像是一个冒泡算法,有更新的会排到前面。用于大致如下:

“XXX日检测到XXX程序可能更新”

程序展示页:
这里还说产生一个需求,就是想进一步了解某一个程序,这就需要有一个单独程序展示页,包括程序简介以及采集网络中对该程序的评价(通过采集blogsearch.google.com的搜索结果实现,缺点在于可能会有重复信息,优点是自动更新,质量由google去保证,最大限度减少人工)。

三、程序实现
这里我实际上构思了两种实现方式:
1、单独写一个程序。优点是简单,确定是不方便编辑,需要做个后台管理部分
2、改造博客程序实现。优点是管理方便,缺点是冗余

单独程序实现包括两个部分:
1、程序
包括
1.1 index.php
功能:判断是否需要更新,并导入一个html显示,下面用伪代码写一下思路:

<?php
//导入一个记录上次更新时间的txt文件
import lastUpdateTime.txt;
//获取当前服务器时间
getNowTime();
//判断是否需要更新,7200是时间,超过2小时即可更新
if NowTime>lastUpdateTime+7200{
  //导入监测更新的程序
  import checkUpdate.php;
}
//不需要更新则导入一个事先生成的html,可以减少数据库查询
import display.html;

1.2 last_updateTime.txt
功能:记录上次更新时间的txt文件

1.3 check_update.php
功能:根据监测类型监测程序是否更新,并写入数据库,需要分组,避免超时,以下是伪代码表明思路:

<?php
//数据库连接及操作
function updatebase(){}
 
//监测RSS的函数
function checkRSS(){
  if 程序更新==true {
    将更新时间写入数据库;
  }
}
//监测网页MD5的函数
function checkPageMD5(){}
//监测SVN的函数
function checkSVN(){}
//监测google code的函数
checkGooglecode(){}
 
if checkType==RSS{
checkRSS();
}
elseif checkType==MD5{
checkMD5();
}

1.4 update_comments.php
功能:获取以程序名为关键词的google blogsearch结果,并采集到评论表里,供程序展示页使用,需要分组,避免超时,以下是伪代码表明思路:

<?php
//数据库连接及操作
function updatebase(){}
 
//取出程序名称,提交搜索并获取结果
function getBlogsearch(){
  //获取程序名称
  getSoftTitle();
  //提交搜索并获取结果
  getBlogsearch(){
    return $blogTitle, $blogSummary, $blogURL;
  }
  //取出已有评论的URL与新获取的URL比较,去重
  removeRepeat();
  //写入数据库
  writeDatebase();
}

1.5 writePage.php
功能:取出数据库内容,生成html,供首页显示,以下是伪代码表明思路:

<?php
//取出数据
getSoftDate();
//写入html
writePage();

1.6 index_content.html
功能:首页内容,供index.php调用

1.7 display_soft.php
功能:显示程序展示页

2、数据库设计(简表)

2.1 soft表
字段:
softID 标识录入程序ID 数值
softTitle 程序名称 文本
softSummary 程序简介 文本
softURL 官方地址 文本
checkURL 监测地址 文本
checkType 监测类型 数值

2.2 comment表
字段:
commentID 标识评论ID 数值
commentURL 评论来源URL 文本
content 评论内容 文本
contentBlogTitle 评论来源博客名称 文本
contentBlogURL 评论来源博客URL 文本
softID 标识从属程序ID 数值

上面就是单独写程序的构思,还有一种改造博客程序的实现方式,原理差不多,就是需要写监测程序的功能和加入评论内容的功能。

多一句嘴,已经有网站很好满足了我最初构思这个工具网站的需求。http://chkversion.com/

scite2.01中文版

作者:sluke 发布时间:September 15, 2009 分类:闲言碎语

跟着官方更新了一下scite,没什么技术含量。

各目录下存放的东西:
abbrev 存放缩写配置文件
api 存放API文件
doc 存放文档
languages 存放语言配置文件
tools 存放Lua扩展文件

功能及改进(与scite原版比较):
1、加入简体中文翻译
2、增加文件管理,自动列出当前文件所在目录中的文件
3、增加函数列表,可列出当前文件中的函数及参数
4、加强缩写功能,可根据不同文件使用Ctrl+B
5、加入tab转换成空格的功能,快捷键Ctrl+8
6、使用SciTePHPSuit项目加强对PHP的支持,包括自动完成、提示、PHP Doc等等

http://scite4chinese.googlecode.com/files/SciTE2.0.1.zip

补充上加入中文文件的scite-ru
http://scite4chinese.googlecode.com/files/SciTE-ru-cn.zip

Habari0.6.2简体中文文件

作者:sluke 发布时间:September 9, 2009 分类:闲言碎语

做了个habari0.6.2的简体中文包,从繁体中文包转过来,改动了一些翻译,符合简体中文用户习惯,感谢翻译的台湾同胞Joel Lee。

用法:解压文件,放到\system\locale\就行了

textpattern4.2.0RC发布

作者:sluke 发布时间:July 30, 2009 分类:闲言碎语

奇迹啊
http://textpattern.com/file_download/55/textpattern-4.2.0-rc1.zip

1、Admin-side themes
2、Timezone support with automatic DST adjustment on capable servers
3、PHP 5.3 compatibility
4、Role-based permission checks for images, links and files
5、Core support for unlimited custom fields
6、Multi-site capabilities

以上几项太让我激动了!

  1. 1
  2. 2
  3. 3
  4. 4
  5. ...
  6. 14
Clicky Web Analytics