WebBlog:路杨 中标签为 “Perl” 的文件

貌似又是好久没有写Blog :) 今天随便写写最近的一些琐事,也算随笔吧?

第一就是周末去了一趟 西单图书大厦,惊奇的发现了有 小骆驼第四版(中文) 出售.貌似这本书一直是 缺货缺货再缺货 , 呵呵,难得见到,激动之余抓拍了一张照片,见下:
perl.png

小骆驼 是 Perl 入门的经典图书,我这里有它的第3版,关于它的介绍,似乎不用我多费口舌:) 只是要说的是:书不多,有需要的要抓紧哦

第2说的就是另人郁闷的事情了,久不坐地铁,居然在地铁上也发现了牛皮癣--办证广告,苦笑ing,也顺手抓拍了两张(电话号码作了模糊处理):
sw1.png
sw2.png

最近单位事情颇多,不多的上网时间也给了 起点中文网 ,Blog的事情也就放在一边了。自Blog系统换用 MT4.1 后主页的界面也再没有统一,DreamHost 上登陆MT4.1后台也慢的厉害,恩。。。只好等有空再满满整合了:)


--EOF--

什么是 Foorum?这个是 Fayland 使用Perl语言写的一个基于 Catalyst + DBIx::Class + Template 的论坛系统:)

国内基于 Perl 语言的论坛系统很少,除了原来曾经名气冲天的 LeoBBS(LB),LB的框架和编程思想都太古老了,界面和代码混在一起不说,编码风格也一团糟,要改进需要动大手术,加上国内的主机服务商对 Perl 的支持和文本论坛的弊端以及混乱无序的code带来的低下的性能,让大家对 Perl 论坛望而却步。说起来,对 LB 的2次开发或者吸收 LB 的优点来改进性能和界面 DIV+CSS 化的 Perl 论坛,前几年似乎好象还有N个版本,但是坚持下来的很少,因为工作量实在太大了,这个包括我的 LB5000 ES Lite版本,现在依然停留在 2004.03.29。

另外的国内的原创的 Perl 论坛是 麻辣 CCB, 因为不怎么喜欢这个的界面的风格,一直没有怎么测试过,但是很多编程的理念还是不错的。

Fayland 原来的野文论坛使用的是 NiBoard,的一个基于 LB 和 CCB 二次开发的变种系统,觉得界面很清淡,但是依然基于文本,界面和代码也没有分开。

这次的 Fayland 写的 Foorum,基于 Catalyst 框架,代码和界面全部分开(使用 Template),存储使用了 MySQL,告别了文本结构,精练严谨的代码让速度运行和性能也不在是问题了:)
界面延续了 NiBoard 的淡雅,非常不错。

目前 Foorum 的版本是 0.07,是 Fayland 利用国庆假日推出的版本,大家可以在http://www.fayland.org/blog/labels/Foorum.html看到这个系统的界面抓图。

如果有人有兴趣,可以到 http://www.fayland.org/blog/2007/10/foorum-v007.html下载源代码。

另外,如果有朋友对这个系统的开发有兴趣,还可以联系 Fayland :)


--EOF--

提记:最近老有人抱怨自己的Perl程序越来越难维护,也在抱怨Perl的执行效率低下,特写下自己的不成熟的体会,和同好者共勉之。

1。你的程序使用 use strictuse warnings 了吗?
不得不承认,Perl语法的随意性虽然很灵活多变,但有时间给维护和效率都带来了很大麻烦,如果碰见自己的糟糕的编程习惯和随意的语法,那么太长的代码就意味着一场噩梦,但是幸好我们有 use strictuse warnings . 有了这个,我们可以很快的找到变量的拼写错误(类似“$xxx 只使用了一次”的提醒),use strict 迫使你的语法变的严谨。当然如果你是维护别人的旧代码,而原始作者又是习惯使用 全局变量(Global symbol ) 的家伙,那么,加上 use strict 将让你陷入更大的维护危机(除非你想全部重写他的代码)。加 use strictuse warnings 困难吗? 不,你只需要在 你的程序的开头 '#!/usr/local/bin/perl' 后面加上下句就行:

use strict;
use warnings;

我的建议:
养成良好的编程习惯,尽管 Perl 语法允许你灵活和随意,新写的程序一定要加上use strict 和 use warnings .这样可以迫使你定义变量的范围,免避以后出现的效率低下和变量污染(一般都是Global symbol惹的祸 )

查看《Perl 学习手札》
Perl学习手札 , 一本优秀的中文Perl在线学习资料。貌似一年前我已经推荐过了,今天老调重谈。

为什么老调重谈呢?因为在线的Perl中文学习资料貌似不少,但是优秀或者刻薄点说能读的实在太少。好多资料竟然连概念都是错的。而 Perl 的学习经典 大骆驼小骆驼 的中文版本几乎在市面上已经买不到了。有一本这样的书籍当然需要再次推荐了。

Perl学习手札 ,作者 簡信昌,Perl 台北推广组成员,这本书写的很生动,不说教,是一本难得的Perl语言入门书。它语言简练,见解独到,以循序渐进的方式,手把手的让你感受到Perl语言的简练和强大。本书起点低,但涵盖的面并不小,且每章皆有习题分析让你实实在在的学习到东西。

更难得可贵的是,这本书网络版本使用的 CC-by-nc-sa 授权(创作共用,署名-非商业性-相同方式分享),so在线使用网络版本没有任何版权问题。

作者的原始版本地址是: http://perl.hcchien.org/ ,但是我这里似乎打不开很长时间了,按照原来的收藏,处理了一下,在我的网站做了一个镜像。地址为 http://easun.org/perl/perl-toc/,以方便大家使用:)

顺便说一句: 这本书在Perl圈子里 名气不小,so转载的人不少,我简单的 google 了一下,发现很多,但是需要注意的是:作者的网络版本授权是 署名-非商业性-相同方式分享,其他的暂时不说,你的转载署名了吗? 希望看到我这些废话的人别忘了回头给自己的转载加上 簡信昌先生的大名 :)


--EOF--

This is a SiteLog of Easun's WebBlog.。
恩。和国际接轨吧。 虽然我的Website基本上全是 utf-8 编码的,但是还是有部分是 gb2312 的。懒得一点一点修改,找Perl吧。
代码如下:

Movable Type 3.34出来好几天了吧?终于决定给自己的WebBlog升级了。
升级的热点是近来SPAM猖狂和新版本对FastCGI的支援。而我的WebBlog是在DreamHost上,刚好支援FastCGI

升级很容易,简单覆盖,看的出来,似乎 Six Apart 这次只是修改了 Bootstrap.pm 让它支援FastCGI而已,其他的修改基本上忽略不计。

说实在的,对于 FastCGI 技术我并不看好,觉得其不稳定性太高,程序写的稍有不好就会使apache崩溃,相对来说,我青睐于mod_perl,这个稳定点,性能也好点,MT程序标准的OOP编写方式在mod_perl跑的很稳定的,但是似乎支援mod_perl的空间除了自己作主机商外几乎是不可能的:)

Yapc,Yapc又见Yapc。
Yapc,Yet Another Perl Conference的缩写,直白点说就是 Perl爱好者聚会。
作为 PerlChina 的一员,我有必要宣传一下。

Yapc:: Beijing 2007的筹划工作已经开始了,初步定在2007年4月份,地点北京,欢迎各界人事前来参加。
参加的人员现在不清楚,但是 Perl 6主要开发工作人员 唐凤女士(唐宗汉)会从台湾飞来参加的,另外,CCB 论坛作者 麻辣 应该也会来,飞云Hoowa也应该来吧?

偶希望 春子,非四,cnhackTNT,Fkiori 等人都能参加的说。

Yapc:: Beijing 2007的举办方是 PerlChina, 组织的人好象是小成,有兴趣的人可以到 这里 了解更多。

说实在,在北京N年了,聚会偶是一次没有参加过,这次估计也不例外。


--EOF--

顺手写的代码。
用于自动提交自己Website SiteMap的修改到Google,是这里("[Perl脚本]Perl写的生成 Google SiteMap 的小程序")的附加而已。
详细Perl程序如下:

MT 的"导入/导出"功能居然不含 Tags ?
也许是因为 Tag 功能是 MT 系列后加的功能?
这个小的疏忽让重装 MT 的 YangKang 兄弟 吃了一个小亏

上次我在改写 MT 的"导入/导出"功能包含blog的静态命名的时候,就发现了这个问题,但是由于对 MT 系统的不太熟悉而且 MT::Tag 模块是个单独的模块而放弃了,而我的 MT 后台也让我折腾的乱78糟,到了快重新安装的地步了,所以鉴于自己的Perl还算熟悉,好好检查下代码,添加这个Hack吧,于人于己,都是方便。

This is a SiteLog of Easun's WebBlog.
我的网站的 SiteMap 原来一直采用的是 MT 模板的方式 ,参考 Google Sitemaps using Movable Type , 这样的好处是我的 Website 是基于 MT 的。会随着新Blog 的发布自动更新。

This is a SiteLog for Easun's Blog.
MT 很优秀的静态页面发布,但是在每个页面中每个路径都是带域名的长路径,比如http://easun.org/archives/mt_hackmt_331_1.html之类。

This is a SiteLog for Easun's Blog.
MT支持多语言,但是后台选择Blog日期格式的时候居然没有中文格式可以选择。
一般人都选择英语,这样的话将会显示形如 August 30, 2006 的格式。而本人实在想让日期格式显示为 XXXX年X月X日 的中国格式。

Movable Type也就是本站现在使用的Blog程序。

Perl 编程格式指南

译者/作者:zjl_perl
出处:中国Perl协会 FPC(Foundation of Perlchina)
作者:
原名:P5EEx::Blue::perlstyle – P5EE Style Guide
原文:http://www.officevision.com/pub/p5ee/software/htdocs/P5EEx/Blue/perlstyle.html
发表:

请保护作者的著作权,维护作者劳动的结晶。

翻  译:fayland
出  处:中国Perl协会 FPC(Foundation of Perlchina)
原  名:Perl XML Quickstart: The Perl XML Interfaces
作  者:Kip Hampton
原  文:http://www.xml.com/pub/a/2001/04/18/perlxmlqstart1.html

发  表:April 18, 2001
Perlchina提醒您:请保护作者的著作权,维护作者劳动的结晶。

Ajax现在很热门。 废话我不太会说,简单来个例子
保存为HTML就是了。

原作者:Dave Cross
翻译者:sql (http://www.s8s8.net)
正文
让你的perl代码看起来更像perl代码,而不是像C或者BASIC代码,最好的办法就是去了解perl的内置变量。perl可以通过这些内置变量可以控制程序运行时的诸多方面。
本文中,我们一起领略一下众多内置变量在文件的输入输出控制上的出色表现。

说明:
1。根据 http://www.leohacks.com/cgi-bin/topic.cgi?forum=14&topic=552 整理。详细机制皆在这个帖子里面,可以回去看看。
2。原来是为每10分钟加多少论坛货币。整理时候为了大家方便变成每1分钟。。
3。后台添加设置。
4。如果用户在150s内重复登陆不计算在线时间。即不奖励。


如果LB的帖子数据库。。。

前4个字节。。pack写入点击数/回复数目。。那么废弃 $id.pl 文件。
如果 建立 $id.up.pl 记录帖子附件。那么废弃 FileCont目录。。。
如果 建立 $id.sale.pl 记录帖子买卖。那么废弃 sale目录。。。

顺便想到的。:)

这些都是原来的插件加入官方后,没有被官方正在糅合的东西。。



--EOF--

不关痛痒的修改。只是为了更好的兼容一些RSS阅读器,和正规的xml语法。
现在的Leobbs的rss连接是好多RSS阅览器所不能自动识别的。原因部分阅览器比较呆版,只认识xml扩展名。解决办法就是加上虚假的xml扩展名。


--EOF--

作者:非四。
地址:http://www.1313s.com/f/open.html

转载自中国Perl协会 用户推广组(Foundation of Perlchina)
翻译者:Joe Jiang
原文作者:Simon Cozens
原文地址:http://www.perl.com/pub/a/2004/04/15/maypole.html --April 22, 2004

搞文本Session。。。
已经以为成功。。
想到Session可能会自己损坏。所以。。自己做了测试,结果,发现人为改坏Session文本后,程序居然读取失败后 500 err?

原来的改法是针对LB5000的,已经失效。
新的改法应该是:

即LBCGI不再是CGI.pm的mini,而是继承于CGI.pm的模块。
目的 :
1。解决在部分主机上的兼容问题。
2。稳定性加强,尤其是在上传的时候。
3。资源问题在3台不同类型主机上测试,在FreeBSD下cpu时间提升了10ms左右,WIndows基本不变

相关信息 :
 http://www.leohacks.com/cgi-bin/topic.cgi?forum=3&topic=3420

成品 :http://easun.org/old_att/_1118419837.rar

这个。。测试。效率似乎不高。。
思路也很乱。。
能否帮忙优化?
最后我的思路都乱了。。

是 Template 化 LB主界面。 allforums.cgi就是任意的LB论坛的配置文件。

http://easun.org/old_att/cgi_1104936892.rar


--EOF--

一段测试代码

TrackBacks (0) Comments (2)



功能不做解释,纯粹测试而已

声明: 本文转载自非四(FayLand)的Perl Site -_-bbb

如下代码为用163.com的SMTP来发送邮件。

整理硬盘,删除掉些东西。干脆重发到BBS上作为备份。

标题: [讨论]关于论坛开发的几点建议。
近来研究HTML和js语法。对leo程序的HTML语法和js代码有点小小的看法。
1,尽量少用只有ie支持的HTML扩展HTML代码。。
leobbsx现在的forums.cgi上面的介绍就用了非正规的HTML代码。使在NS和Mozilla下界面难看的厉害。。。
2。JS要操作<div> 和<span> 的内容。。请使用符合CSS2+HTML3标准的DOM接口。现在的forums.cgi展开帖子(就是哪个+号)和帖子里广告和虚拟形象和COOL字体转化都采用了all.name方式的调用。但是all方式只有ie支持。。所以在非ie下这个都不能显示。。。。
正确的应该用document.getElementById方式调用的。。。

[原创+发布]会员精华集 For LeoBBSx / By 路杨

#############################################################
#
#        [原创+发布]会员精华集 V.1.0 for LeoBBSx
#        性质 : LeoBBSx插件
#        本插件用于显示该会员的所有精华帖子
#        程序作者:路杨(EasunLee) http://perl.easunstudio.com
#                                 http://www.leohacks.com
#        版权所有,欢迎转载。但 敬请保留版权+出处
#
#############################################################

By tojeff

全文如下:

草草整理一下思路,如果现在再不整理,估计就遥遥无期了。

第一:Hack思路。


1。本Hack彻底改变原LB的附件方式,所有的附件都在帖子里面以[ uploadfile=***]方式存在。
2。上传机制是在$usrfile目录下面建立tmp目录,在此目录下面以用户name分目录存临时上传的文件,可以限制每个人一次上传的个数。(目录程序自动处理)
3,在帖子提交时候,[b]选择插入[/b]的附件被处理。Copy到$usr/$foumid/XX目录下面,并且在帖子里面更新文件名字。
4。改革了附件都放在$usr/$foumid/根目录下面的习惯,在这个目录下面参考用户库再次分目录,使贴图区不在慢如蜗牛。(来自bbser老大的建议)
5。由于存储方式改变,所以和原来上传的旧格式完全兼容(牺牲了点速度)
6。全部转化中文,不建议出现中文目录和中文文件。
7。js实现插入。
8。没有插入帖子的存在与tmp目录下面的临时文件会在15分钟后自动删除。


纯粹技术探讨。
近来在研究自定义文本Session,根据我自己对Session的理解和体会,实现办法可以是:



看看下面。从CU看见的。。

#############################################################
#
#        附件格式升级程式 V.2.0 for LeoBBSx
#        本工具用于将LEOBBS X 040702以前版本论坛附件转换为
#           多附件版本相同的格式
#        程序制作:第一版:亚  http://www.dopc.org
#                      第二版:路杨 http://perl.easunstudio.com
#############################################################

说明 :  本工具用于将LEOBBS X 040702以前版本论坛附件转换为多附件版本相同的格式 ,这样旧附件的兼容性问题就全部不存在了:)

使用 : 放在程序目录下。非Win32要求 755。 转化完请删除本程序或者下载。。

在2个万人bbs测试通过。没有发现BUG,但是不意味就没有BUG:)
http://easun.org/old_att/upattach_1099489827.rar


--EOF--
下面引用由fayland Oct 17, 2004, 8:40 PM 发表的内容:
只有发帖子和删除功能。
没用数据库,而是直接生成html文件。
各位有空看看,给俺点意见。

演示在 http://www.1313s.com/guestbook.html


征求同意后发了过来:)

原始地址 : http://www.perlchina.org/cgi-bin/gforum/gforum.cgi?post=14275

下载地址:http://easun.org/old_att/guestbook_1099060794.rar

--EOF--

似乎还能优化。。

最简单的GD验证码程序。。

中级进阶: 匿名散列表与引用 (tsingson原创)

原始连接:http://www.perlchina.org/cgi-bin/gforum/gforum.cgi?post=12350;#12350
作者: PerlChina 老大 tsingson :)

[发布+工具] LeoHacks精华帖子统计程式 For LeoBBSx。

#############################################################
#Prime Topic Counter for LeoBBSx
#
#Writed by RoyRoy http://www.LeoHacks.com
#Version Beta 2.17 ES Build 040606(Hacked 2004.06.07 by EasunLee)
#
#        LeoHacks 精华帖子数目统计程式(路杨Hacked 2004.06.07)
#
#        原始版权 RoyRoy  修改版权 路杨(EasunLee)
#        网站地址: http://www.LeoHacks.com
#############################################################

CU 社区apile的帖子。看了很不错。

http://bbs.chinaunix.net/forum/viewtopic.php?t=174939

最近在看perlpacktut的document,整理了下面的文章,
希望對大家有幫助,瞭解pack/unpack怎麼用...
還沒寫完..後面跟C有關係..

======================================