bianbian coding life

便便代码人生: 关注技术, 翻译文档, 偶尔动动手

[原] 给LilyBBS新增源代码语法高亮功能

Posted by bianbian on 2008-05-06 09:12


本文Tags: ,

原文:[公告] WEB新增源代码语法高亮功能

使用方法:
[code]
代码
[/code]

目前支持:C/C++、Java、Python、Bash、SQL、HTML、XML、CSS、Javascript、Makefile、Ruby、PHP、Awk、Perl

效果示例:
Read the rest of this entry »

标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | 1 Comment »

[原] 关于web访问小百合BBS的脚本问题

Posted by bianbian on 2008-04-07 01:28


本文Tags: , , , ,

最近发现个别网友访问小百合BBS会出现如下提示:

见到此文字可能是由于浏览器禁用了活动脚本或者脚本有误
请启用脚本支持后刷新本页;若仍有问题,请点击这里提问

原理:使用Javascript动态输出框架结构(好处是能缓存静态化网页,区别guest用户和登录用户)。因此,一旦这步出现错误,框架结构未建立成功,那么就会显示body里的提示内容。

原因:
(1)浏览器版本不支持。目前小百合BBS支持IE5.5(不保证全部功能有效),完美支持IE6+、Firefox 2.0+、Opera 9+等。如果您的浏览器不在此列,并且测试正常,欢迎反馈。
(2)浏览器脚本引擎未启用。您可以点击这里测试:如果能弹出“脚本启用”,那说明这项没有问题;否则,请修改设置如下:
Firefox:firefox_script_enable.JPG IE:ie_script_enable.JPG
(3)脚本有误。可能性不是很大,除非刚好碰到更新的脚本确实存在错误。基本上我都会测试以后才放上去。不过万一你怀疑是这个问题,可以telnet方式到sysop版看看,如果其他人都没问题那基本就只是您的问题了。
(4)浏览器缓存内的脚本版本过旧。因为浏览器缓存脚本文件(这样不需要每次都下载,加快速度),如果服务器端已经更新了脚本文件,而您的浏览器缓存因为各种原因没有更新,可能也会导致这个问题。请清空浏览器缓存后刷新测试:
Firefox:firefox_del_temp.JPG IE:ie_del_temp.JPG
(5)校内用户访问BBS请关闭代理服务器。
(6)浏览器或系统部分DLL(动态链接库)功能因为病毒或木马的原因失效(Windows系统),请点此下载修复程序,保存后运行,然后重新打开浏览器测试。

如果还有问题,请留言将您的操作系统、浏览器(基本是IE出问题)及版本、杀毒软件等告知。另外推荐使用Firefox:

标签: , , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | 36 Comments »

[原] BBS日志和点击率的优化方向及静态化

Posted by bianbian on 2008-04-06 04:01


本文Tags: , ,

尤其是点击率,是网站静态化最麻烦的地方之一:每个用户的每次点击都会改写.DIR文件,也是负担
而且除了看一眼没有其他用处,而且没有办法保证不作弊(blog点击率作弊尤其多)

我想了个办法:tmpfs+数据库(比如MySQL)
1)把所有点击率以日志的形式记录到tmpfs(ramdisk)某文件log.tmp(点一次存一行)
格式:bbs BoardName FileName UserId IP
blog BlogUserId FileName UserId IP
an Path UserId IP
因为是内存操作,非常快
2)10分钟crontab把log.tmp改名log.10,然后另外启动程序分析log.10
去除UserId和IP相同的重复记录(10分钟内同ip同id重复点击只算一次)
把结果一次insert到MySQL,因为是multi insert,即使log很大,其实是非常快的
3)进入数据库以后就好办了,可以出各种统计:
1小时内热门,12小时内热门,24小时内热门,本周热门。。。。。。
这块统计(数据挖掘)其实是目前基于文件系统的BBS最缺的地方,自己写会很辛苦
这块结果输出可以用memcached优化,10分钟从数据库跑一次SQL即可

这样.DIR就不需要改变,而且可以把.DIR部分cache到内存里,结合libevent,有数据改写reload一次

唯一的缺点是显示的时候要从数据库内取,必须memcached,而且10分钟才会更新一次
不过比起带来的好处来看,是微不足道的

针对其他日志的数据挖掘:除了能出各种统计图表外,对于遍历试密码的可以直接从iptables过滤
我准备等我忙完毕业的事情好好实现一下。

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Technology | No Comments »

[原] 未来分布式BBS的可能实现架构

Posted by bianbian on 2008-04-04 02:22


本文Tags: ,

libevent
http://www.monkey.org/~provos/libevent/

memcached
http://www.danga.com/memcached

libmemcached
http://tangent.org/552/libmemcached.html

memcachedb (新浪博客技术团队,赞一个)
http://memcachedb.org/

ncache (同上)
http://code.google.com/p/ncache/

标签: ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in C/C++, Technology | No Comments »

[原] 整理了小百合BBS的Javascript脚本,注意关键字

Posted by bianbian on 2008-02-29 12:56


本文Tags: , ,

随着脚本越来越大,原有的funtion式已经不利于维护。
正好凑着有兴致,一个通宵把Net库完善了一下,Net.Dom, Net.Event, Net.Drag, Net.Dialog, Net.Ajax等,应该能满足日常需要。
另外把BBS的脚本分类到Net.BBS, Net.BBS.Html等命名空间下。
现在pack了以后约50K,以后会更大一点。
有兴趣的可以提意见:http://bbs.nju.edu.cn/jssrc/bbs.full.js
另外谢谢oznyang@Lilybbs指出,Javascript关键字在IE里要小心,其实IE也该聪明一点,很显然是个属性嘛:

  1. addComm: function (id) {
  2.   var url = Net.Util.toQuery("pntcomm", {board: G.c.Brd, "id": id, do: "add"});
  3.   //上句do是关键字,在IE里会报错“缺少标识符、字符串或数字”,应该"do"引起来
  4.  }

人累了确实会变笨,这么低级的错误debug了我几个小时。哎。。。更关键的是IE这个SX报错不准确,再度鄙视

标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in JavaScript, Technology | 4 Comments »