朝伟 的个人资料我的神韵天堂照片日志 工具 帮助

日志


2007/5/10

Send email via gmail's SMTP server in Perl

use Net::SMTP::TLS;  
my $mail = 'to@to.to';
my $subject = 'some subject';
my $msg = 'body here'    
    my $mailer = new Net::SMTP::TLS(
        'smtp.gmail.com',
        Hello   => 'smtp.gmail.com',
        #Port    =>      465, #redundant
        User    =>      'wanmyome@gmail.com',
        Password=>      'mypass',
    );
    $mailer->mail('wanmyome@gmail.com');
    $mailer->to($mail);
    $mailer->data;
    $mailer->datasend("From: Wan Chaowei\n");
    $mailer->datasend("To: $mail\n");
    $mailer->datasend("Subject: $subject\n\n");
    $mailer->datasend($msg);
    $mailer->dataend;
    $mailer->quit;
    
    print "send mail to $mail\n";
    undef $mailer;
2007/4/28

安装Debian提示检测不到光驱的解决方法

其实这个是很早的问题了,出现在Debian Sarge 3.1的版本,Linux 2.6 kernel上,特别是比较旧的SATA主板出现这个问题的几率挺大。据说testing的Etch也有这个问题,不过我一直没有碰到过。

在安装的过程中,Debian Installer会检测光驱,并且从光驱拷贝安装文件。其实挺邪门的,本来就是从光驱启动进入安装界面,但到这个步骤光驱会被重新检测一遍。然后ata-piix这个模块有BUG,所以在这步造成了CD-ROM检测不到,之后提示下面的错误:

No common CD-ROM drive was detected.
You may need to load additional CD-ROM drivers from a driver floopy, If you have such a floppy available now, put it in the drive, and continue. Otherwise, you will be given the option to manually select CD-ROM modules.

解决问题的方法也比较简单,在光盘启动出现红色Debian LOGO的时候,会有命令行提示输入命令,这个时候用expert方式进入(可以按F1查看帮助),在等到读取光驱前一步会提示选择驱动模块,然后把ata-piix这个模块去掉,基本就可以检测到光驱了。

但还有一点比较重要的需要注意,安装程序走到检测硬盘并且分区的时候,同样会出现这样一个驱动模块选择,这个时候*必须*要把ata-piix加载,否则会找不到硬盘。

如果主板真的是这么顽固,到这步都还是不行,那么下面有一篇文章可以参考:
http://www.linuxsir.org/bbs/showthread.php?s=&threadid=156776

当然,也可以尝试使用netinst.iso来安装。不过这个方法我没用过,不一定行得通。

2007/4/23

Delphi中的正则表达式

在Delphi中使用模式匹配
我推荐使用 pcre-5.0
你可以用BCB编译后,用Delphi调用,速度和支持的功能都是非常好的
boost 上面的性能测试,是这么说的:

http://www.boost.org/libs/regex/doc/performance.html
http://www.boost.org/libs/regex/doc/vc71-performance.html
http://www.boost.org/libs/regex/doc/gcc-performance.html

Averages
The following are the average relative scores for all the tests: the perfect regular expression library would score 1, in practice any small number (say less that 4 or 5) is pretty good.

GRETA |GRETA(non-recursive mode)| Boost |Boost + C++ locale| POSIX |PCRE
2.31619 6.14203 2.30668 1.94363 124.752 2.09365

Averages
The following are the average relative scores for all the tests: the perfect regular expression library would score 1, in practice anything less than 2 is pretty good.

Boost |Boost + C++ locale| POSIX |PCRE
1.4503 1.49124 108.372 1.56255

pcre 的得分都是非常优秀的,而且还是用纯C编写的,
很容易在Delphi中调用,
只不过,还需要一点封装

这个也不错, 可以试试
TRegExpr 0.952
http://regexpstudio.com/TRegExpr/TRegExpr.html

TPerlRegEx
http://www.regular-expressions.info/delphi.html
http://www.regular-expressions.info/download/TPerlRegEx.zip
2007/4/18

Komodo IDE 4.0.2 汉化包

我现在宣布对此汉化包以后的升级负责




软件说明:

Active State Komodo IDE是一款基于Mozilla,支持多种动态编程语言的跨平台的IDE,它提供强大的工作空间用以编辑、调试和测试程序。支持Perl, PHP, Python, Ruby, Tcl 和 XSLT。同时还具备版本控制CVS,支持正则表达式。
分别有Windows, Linux(libcpp5, libcpp6)和MacOSX(Intel, PowerPC)版本。

原版下载地址:
http://downloads.activestate.com/Komodo/

注册机+汉化包下载地址(此汉化包适用于Linux/Mac OS X/Windows以及其他平台):
http://wanmyome.googlepages.com/Komodo1.IDE.v4.0.2.All.Keygen.zh-CN.zip

安装说明:
1.先下载安装原版程序,再下载汉化包.
2.汉化包中有3个压缩包,分别是注册机/跨平台汉化包/用于Mac OS X的PrintPDE插件汉化包
3.注册机有2个,一个是Windows版本(在其他平台也可以用WINE之类的模拟器执行),执行并输入个人信息后可得到注册文件
4.另一个是跨平台的Java注册机,安装Java后,在终端命令行输入: java Keygen_Komodo4 即可得到注册文件
5.得到注册文件ActiveState.lic后,将其拷贝到你的用户目录下,各平台的目录分别为:
Linux: $USER_HOME/.ActiveState/
Mac OS X: $USER_HOME/Library/Application Support/ActiveState/
Windows: $USER_HOME\Application Data\ActiveState\ ($USER_HOME即C:\Documents and Settings\你的用户名)
6.Komodo.IDE.v4.0.2.All.zh_CN.zip跨平台汉化包对Linux/Mac OS X/Windows等各个平台通用.此文件里有5个文件,使用方法:
perdevkit.jar: 拷贝到Komodo IDE安装目录/lib/mozilla/extensions/perldevkit@ActiveState.com/覆盖原有文件
其他4个文件: 拷贝到Komodo IDE安装目录/lib/mozilla/chrome/覆盖原有文件并删除此目录中的en-US.jar和en-US.manifest
7.PrintPDE插件汉化包只适用于Mac OS X,将压缩包中的zh_CN.lproj解压出来,拷贝到Komodo IDE安装目录/Contents/Plug-Ins/PrintPDE.plugin/Contents/Resources/
8.启动Komodo IDE后即可看到完整的中文界面

汉化说明:
1.汉化包基于Intel Mac OS X原程序制作,使用BBEdit/iLocalize/EmEditor汉化,文本编码为UTF-8 no BOM.
2.汉化词句据估计超过1万条(-__-|||).语法检查和正则表达式中有部分内容由于过于专业,主要是个人精力有限,没有汉化
3.Linux/Windows用户使用此汉化包后看不到"关于"菜单,并且有一些操作可能导致跳到其他应用程序窗口
4.打开工程/切换活动工程时可能会发现工程窗口中有部分工程消失,这是原程序本身的问题,再次切换活动工程可以再现所有工程

列出所有已安装的perl模块

众里寻她千百度,得来全不费工夫(原句应该是踏破铁鞋无觅处)
use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new();
print join "\n", $inst->modules();