更新记录
Google站内搜索
使用到的程序:
NuSOAP: SOAP Toolkit for PHP。
PHP Class GoogleApi: 主要参考该类实现。但做了好些变更,增加了些功能,并额外解决了编码问题。
PHP class URL: 略。已经过deminy较大幅度的改造。
源代码在未来两个月内公布。
类别:
Lilina v0.7修补说明
1. 该软件使用utf-8作为页面编码。如果要在页面标题中使用中文标题,应对conf.php文件内相关设定做如下类似修改:
// 将gb2312编码的文字转换成utf-8编码
$SITETITLE = mb_convert_encoding("Deminy收藏的RSS内容", "utf-8", "gb2312") ;
2. 由于页面程序执行过程可能很长(并因此导致超时),因此最好在conf.php文件中增加一行
set_time_limit(0); // 允许程序一直执行下去
3. 文件index.php对MAGPIE_CACHE_AGE的重新定义无效,因为此前在conf.php已经定义过了。(此条可能有待商榷)
正确的一种修改方式应该是在conf.php中修改相应部分为2:
if (empty($_GET[force_update]) && empty($_SERVER['argv'][1]))
define('MAGPIE_CACHE_AGE',60 * 60 * 3);
else
define('MAGPIE_CACHE_AGE', 1);
4. 该软件使用一个第三方PHP类Snoopy,版本号v1.0。Snoopy.class.inc文件的curl相应变量($curl_path)需要根据服务器配置重新设定。注意总共有2个Snoopy.class.inc文件:一个在./extlib/下,另外一个在./inc/extlib/.下。
6. 在./conf.php中增加一行
define('MAGPIE_FETCH_TIME_OUT', 360);
7. 经过上一步的修改后,并不能保证./index.php?force_update=1(强制更新RSS内容)能够有效地通过浏览器访问 (但可以通过命令行运行该程序,例如命令“php index.php force_update=1”)。
不能通过浏览器有效访问的原因是程序执行时间过长,导致超时。有几个地方可能中断程序执行:客户端浏览器的最长链接时间限制、服务器端服务器允许的程序运行最长时限、Snoopy程序中的fsockopen连接(用于读取RSS内容)超时。另外,如果以上都未超时,某些HTTP协议的具体实现方式也可能规定在指定时限内没有数据传输则断开HTTP连接。
如果仍然出现访问超时的情形,建议用户尝试使用以下做法避免超时(但暂不能明确确定具体是哪一种原因导致超时2):
7.1 Snoopy.class.inc中将$_fp_timeout设一个比较大的值,例如180(基本没有什么效果);
7.2 去处那些访问困难的RSS种子,或者将其移到最后(无可奈何之举);
7.3 使用cron脚本通过命令行执行“php index.php force_update=1”,而不要通过浏览器(最好的办法)。
[注1] $_SERVER['argv'][1]参数是为了便于用命令行方式强制更新,主要用于cron。此处写法非常简略。
[注2] 如果在页面执行的时候能够不断输出HTML,则不会出现超时的现象。
类别:
启用Lilina作为RSS阅读器
Bloglines.com是一款在线阅读器,RSS信息存放在该网站上,因此可以在任何地方上网后使用它。但感觉用起来的不便之处在于首先必须登陆该网站后才能阅读RSS内容;其次,当你打开一个RSS后,不管你有没有真的阅读其RSS的内容,Bloglines都假设你阅读过该RSS了,下次再访问的时候便会隐藏掉你“已经阅读过”的内容,但deminy的习惯往往是翻来覆去的阅读;最后,其RSS的更新方式是每2个小时左右更新一次,这不符合deminy的阅读习惯。
RSSOwl是一款很好的用Java开发的RSS阅读软件。缺点在于只能在一台机器上使用。假设我在实验室或者图书馆使用电脑的话,就没法访问自己喜欢的RSS内容了。
Lilina是一款用PHP开发的RSS内容在线阅读器,没有上面所提到的各种缺点,而且Lilina打开RSS内容的方式比RSSOwl好(RSSOwl里面每个RSS种子都是独立的,因此要看几个不同的RSS种子的内容,需要分别点击访问这几个RSS种子;而Lilina里面是按照时间倒序把各网站的RSS内容显示出来,一目了然)。
因此,deminy重新启用Lilina。Deminy的在线RSS阅读网址是:
http://www.deminy.net/rss/
[注1] 参考文字:与RSS相关的PHP代码简述。
[补充说明] 由于Lilina无法解决HTTP请求超时问题(参见“Lilina v0.7修补说明”一文),暂停使用它。 2005-11-17 14:33:23
类别:
个人网站下一步的改进
断断续续考虑给Blog等增加评论功能多日,终于决定,将启用数据库,以达到一些功能。
因此,在未来的一次重要改版中,将有如下举措:
1. 网站各页面的界面和网址将基本没有变化。
2. 开通对每个网页(包括对每条Blog)的留言评论功能。
[补充说明] 2.1 访客留言提供UBB功能。 2005-12-07 23:19:55
3. 启用Smarty这个插件。网站模版化并充分使用Smarty的Cache功能。
4. 启用数据库,启用ADOdb这个插件;至少如下版块的信息将使用数据库:Blog/更新纪录、照片库、链接、文章、源代码、权限控制等。
5. 基于数据库的站内搜索(可能不完善)。
[补充说明] 5.1. 提供站内搜索引擎。站内搜索为主,Google等为辅。 2005-11-24 12:30:31
6. 启用用户注册机制。更完善的权限分配和管理。
[补充说明] 6.1. 权限分配大概分6级:匿名、注册、普朋、亲朋、亲人、自己。 2005-11-21 15:21:48
[补充说明] 7. 使用AJAX技术。把Deminy.net当成一项正式的开发项目来做。 2005-11-12 21:32:06
[补充说明] 7.1. Sajax (PHP based), LibAjax 2005-11-23 20:49:47
[补充说明] 8. 取消鸡肋般的英文版,使用“Google翻译”或者其它技术实现对应的英文版。 2005-11-15 01:21:40
[补充说明] 8.1. 内容不支持多语言,但界面支持多语言。 2005-11-17 11:46:24
[补充说明] 9. 用户留言时可以使用丰富的文本编辑功能。 2005-11-15 22:22:56
[补充说明] 10. CSS重定义和Style Sheet Switcher 2005-11-17 10:23:24
[补充说明] 11. 是向他人展示自己的平台,也是自己学习、工作的平台,是和他人分享自己收获、体会、资源的平台。 2005-11-17 10:27:58
[补充说明] 11.1 这是一个中心在于面向未来的平台,而不是面向过去。 2005-11-24 12:27:11
[补充说明] 12. 开发应将整个网站纳入某PHP Framework,易于升级(升级到PHP5/PHP6)。向前“兼容”,但不考虑向后兼容。引入更好的版本控制机制。2005-11-17 11:44:37
[补充说明] 12.1. 向外界共享自己的资源,例如代码、书签、文摘等。 2005-11-17 16:03:50
[补充说明] 12.2. PHP Frameworks 2005-11-23 20:54:20
[补充说明] 12.3. Deminy.net v2.0将基于PHP5,并可能使用某一Rails框架。 2005-11-24 12:23:49
[补充说明] 13. 更好的源代码开放、共享机制(绝大部分页面的代码都开放)。 2005-11-17 11:47:21
[补充说明] 14. 更好的robots,更好的RSS,更好的sitemap。 2005-11-17 11:47:47
[补充说明] 15. 未来个人更多的信息是放在Internet上,而不是自己的PC上。个人资料和外界的互动性的加强是必要的,个人资料也需要具有跨地域、跨平台特性,能够即需即取。 2005-11-17 16:04:26
[补充说明] 16. 增加一个栏目:人物传或人物介绍;实现关键字索引和关键字自动链接生成。 2005-11-18 13:29:13
[补充说明] 16.1. 友人资料库,第三方可维护。 2005-11-21 15:22:09
[补充说明] 16.2. 类似wikimedia的索引机制。 2005-11-21 15:22:09
[补充说明] 16.3. 可以考虑使用MediaWiki。 2005-11-22 23:02:26
[补充说明] 17. blog内容分为2大类,一类是对别人有益的文章,一类是自己的随感。两者均公开,但默认提供给访客前者。 2005-11-19 11:51:00
[补充说明] 17.1. 将有个私人琐事日记本栏目,默认不必对访客公开。 2005-11-25 22:47:58
[补充说明] 18. 用SQLite替代class.text_db.php。 2005-11-24 11:15:29
[补充说明] 19. (使用某一技术) 记录网址变更历史记录,便于后来者使用。同时可能需要设计全局网址管理系统,提供对内的动态网址服务(便于网站管理)和对外的统一网址服务(便于搜索引擎收录)。 2005-11-24 12:29:55
[补充说明] 20. 实现有奖纠错功能,大幅度减少错别字现象、减少语法和逻辑方面的问题。 2005-12-02 00:00:59
[补充说明] 21. 关于样式管理。由于自己美工能力薄弱,并且考虑到样式统一性的需要,将会把CSS、XSL等的管理统一到某一样式引擎或样式模版中去,例如Flux CMS。 2005-12-02 00:03:47
[补充说明] 22. 优于Outlook的通讯录管理方式:通讯录联系人自己可更新联系信息,可设定个人信息能够被哪些人浏览等。该通讯录的建立可大大减少Deminy维护个人通讯录的时间和精力。2005-12-10 18:06:50
[补充说明] 23. 完善的网站备份机制,尤其是针对第22点(访客可修改的数据)的备份。2005-12-10 18:13:20
[补充说明] 24. 完善的时间生成、时间说明机制。 2005-12-10 18:15:50
[补充说明] 25. 集成RSS的RSS(优于Lilina软件)。该RSS可以使用在“MSN群”软件中。 2005-12-10 22:16:04
[补充说明] 26. 完善的“这是什么”帮助机制,用于解释人名(例如“韩廷”是谁)、缩略语(例如RSS) 等,方便访客访问、理解某些内容。 2005-12-10 22:17:02
[补充说明] 27. 建立一个(隐藏)栏目:《忏悔录》,记录自己做过的(所有)不道德、不妥当的事情。 2006-01-11 09:30:24
[补充说明] 28. 改进农历年历程序。高亮农历节日。 2006-01-12 19:56:46
类别:
网站变更记录 v1.8.8
该页使用了一些朋友的MSN头像。某些朋友若对此感到不妥,请告知。
更多我整理的有关MSN Messenger的信息请参见这里。
类别:
网站变更记录 v1.8.7
类别:
网站变更记录 v1.8.6
注册Google Sitemap功能,创建为Google Sitemap服务的sitemap.gz文件(仍有待完善)。
定义robots.txt。
[补充说明] 关于站内搜索,以前用过HouseSpider,一个源代码开放的基于Java Applet的程序。它的实现机制是:每次搜索都通过HTTP把整个网站的所有页面访问一遍,然后进行信息匹配。(:D)
由此可以理解为什么后来为什么我放弃用它做站内搜索了。举个例子,如果你的网站使用了PHP的session,并且访客的cookie是禁止的,这个时候所有的session传递是通过URL进行的,这个时候,访客的搜索会出现一些不必要的信息冗余。再如,如果是一个页面较多、或者访客的网速欠佳,这个时候,搜索的过程将会很漫长,往往超出访客的心理预期。