0%

CPAN(Comprehensive Perl Archive Network)是internet上Perl模块最大的集散地,包含了现今公布的几乎所有的perl模块。网址: http://www.cpan.org/ 

http://search.cpan.org/ ,可以查找任何一个模块并提供下载

Linux/Unix—perl模块的安装方法

Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装。第一种方法是从CPAN上下载您需要的模块,手工编译、安装。第二种方法是联上internet,使用一个叫做CPAN的模块自动完成下载、编译、安装的全过程。

Read more »

使用perl实现网页抓取,对网络蜘蛛的初步尝试。

环境

windows xp,IIS,perl 5.88,CMD

使用到的模块

1
2
3
4
use LWP::Simple; #用来得到网页
use HTML::HeadParser; #对部分进行解析,得到标题、编码、关键词等
use HTML::FormatText::WithLinks; #将html变成文本可读样式
use Encode qw/encode decode/; #解决不同网页的编码问题
Read more »

perl自带的函数远不及php多,但功能确实很强大,实现起来也只有几行代码。

perl中的目录操作函数有:

1. mkdir 函数

调用语法:mkdir (dirname, permisions)
dirname:将要创建的目录名,可以为字符串或表达式。
permisions:八进制数,指定目录的访问权限。其值和意义如下:

权限值 权限
4000 运行时设置用户 ID
2000 运行时设置组 ID
1000 粘贴位
0400 拥有者读权限
0200 拥有者写权限
0100 拥有者执行权限
0040 组读权限
0020 组写权限
0010 组执行权限
0004 所有人读权限
0002 所有人写权限
0001 所有人执行权限

2. chdir 函数

调用语法:chdir (dirname)

Read more »

Windows Mobile 6.x 上的手机迷宫闹钟G-Alarm

注册过程:
源文件:
G-Alarm2.3V.cab 安装包一个
galarm_KeyGen.exe注册机一个

注册方法:
在手机上,开始--设置--个人--主人信息--姓名--Jxxx
开始--设置--系统---个人--设备ID--设备标识--Jxxx

注意:名字的第一个字母是否大写,我发现设备ID那会自动为大写。。
然后在电脑上打开注册机,在OwnerID中输入Jxxx,得到值0B4SF6285xxx。
到程序中打开G_Alarm,然后将注册值输入注册即可。

xmarks的在线书签居然不能用了,老是”problem syncing”,“网络超时错误”,下面介绍几个解决方法。

  1. 修改 HOSTS

将以下内容手工添加至C:WindowsSystem32etc的hosts文件里(linux在/etc)

64.147.188.86 www.xmarks.com
64.147.188.92 api.xmarks.com
64.147.188.89 login.xmarks.com
64.147.188.87 sync.xmarks.com
64.147.188.86 static.xmarks.com
64.147.188.86 download.xmarks.com
64.147.188.86 my.xmarks.com

如果还不行的话,左键点击 Xmarks 的图标,弹出设置菜单,选择“高级”,加密那个下拉框里面选择“全部加密”,再同步就成功了。
这个只是暂时性的解决,如果墙继续动一下的话可能就失效了,有FTP服务器的朋友可以考虑将XMarks的书签同步到自己的服务器去。

  1. 搭建自己的xmarks服务器
    如果你有自己的虚拟主机或服务器的话,就可以使用xmarks的“使用自己的服务器”功能,方法如下:
  • 用FTP在网站根目录创建一个文件夹(如:xmarks),用来存放xmarks的书签数据。
  • 打开xmarks的“设置”窗口,“把Status”中的用户名和密码改成你的FTP的用户名和密码。
  • 进入“高级”,选中“使用自己的服务器”,然后
    “地址”里填:ftp://你的服务器IP/xmarks/xmarks.json
    “Password URL”里填:ftp://你的服务器IP/xmarks/passwords.json
  • 点击“手动覆盖”区域里“强制覆盖服务器书签”后面的“上传”,xmarks将自动通过FTP把书签数据保存到你的服务器空间中。

如果你没有自己的服务器,推荐你用下面的比较稳定的免费空间:
http://www.v3host.be
http://www.cwahi.net
http://www.website.org

  1. 使用Weave Sync插件https://services.mozilla.com/
    这是由Mozilla实验室开发的一个Firefox同步插件,不仅能同步书签,还能同步Firefox中保存的密码、浏览历史、自动填表内容、Tab项和一些个人设置。

登陆时会要求你输入在第一步注册时使用的邮箱、密码。另外还会要求输入一个Encryption Passphrase用于数据的加密,你可以输入一句好记、有个性、有意义的短语,如果怕麻烦就设成和密码一样的吧。这个短语不能更改(不确定),请和密 码一样牢记它,因为在以后的登录中也需要输入。

  1. 使用Gmarks(对中文支持不好)
    Gmarks是一个基于Google Bookmarks的Firefox插件。

  2. 使用代理
    很多地方都有相关的知识!!!

帮朋友的论坛做了一次编码转换的工作。系统是windows 2003,mysql4.1 discuz 5
本来以为很简单,dump数据

1
2
mysqldump -u root -p –opt –default-character-set=latin1 \
–skip-set-charset olddb cdb_members > d:\bak\cdb_members.sql

出来,用工具转一下编码,然后再导入

1
mysql -u root -p –default-character-set=utf8 newdb < d:\bak\cdb_members.sql

实际操作并没有想象的那么简单,最后解决的方案,也不是那么复杂。

先说一下教训,建立数据库的时候,同一个应用,所有的编码一定要一致, 不然就是自寻烦恼,现在跟你说,你肯定说不好,但是有时候就是不注意。要迁移的这个论坛就有两种编码gbk和latin1,目标是迁移到utf8,里面 gbk的双字节数据全部是乱码,尝试改编码也读不出数据了,由于不是重要数据,后来就放弃转码了,据说原来就有乱码的问题。

里面还遇到一个问题就是老的数据是更改过的,目标db是全新安装的,表结构不一致,好在新系统是老系统的子集,那么我就以老表为参照物,来改新db的表结构。

导出用了mysqldump,这里要提的是--default-character-set,后边要跟数据表的编码,不然导出的数据可能会乱码。

问题出在import,转编码后import,怎么也不成功,说什么mysql数据库gone away或者说duplicate,突然又一次成功,一看是因为建表语句的编码设置没有修改成utf8。

转编码用的ultraedit的转换功能,后来怀疑ultraedit的转换出错,网上找了一个win版本的iconv装上

1
iconv -f ISO-8859-1 -t UTF-8 original.txt> newfile.txt

问题依旧。其中有几个小表,直接用导出的sql粘贴到phpmyadmin里运行就可以了,但是会员和帖子表肯定不能用这个办法。

还试用了把latin1的表修改字符,然后试图用convert转码
update cdb_members set username=CONVERT(username USING utf8),也没成功。

后来当我一筹莫展准备缴械的时候,想起了另外两个功能 SELECT INTO OUTFILELOAD DATA INFILE 是另外一种导入导出的方法。

贴出使用的sql:

1
2
3
4
5
6
7
8
9
10
11
12
SELECT
uid,nickname,site,alipay,
icq,qq,yahoo,msn,taobao,
location,customstatus,
medals,avatar,avatarwidth,
avatarheight,bio,signature,
sightml,ignorepm,groupterms,
authstr INTO OUTFILE 'd:/cdb_memberfields.txt'
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY """"
LINES TERMINATED BY "\r\n"
FROM gench2.cdb_memberfields;

然后转换d:/cdb_memberfields.txt 的编码为utf8,可以用ultraedit或者iconv,然后load到新数据库的表

1
2
3
4
LOAD DATA INFILE 'd:/cdb_memberfields.txt' INTO TABLE cdb_memberfields
FIELDS TERMINATED BY ","
OPTIONALLY ENCLOSED BY """"
LINES TERMINATED BY "\r\n";

上面还有一个问题是TERMINATED,ENCLOSED的选取,如果选的不对,会load失败。

附1:共迁移了如下表
cdb_attachments
cdb_forums
cdb_memberfields
cdb_members
cdb_onlinetime
cdb_posts
cdb_threads

附2:google到的链接
http://gentoo-wiki.com/TIP_Convert_latin1_to_UTF-8_in_MySQL

如何提高mysql load data infile的速度

测试数据2.5G,共有数据9427567条。用的mysql的large服务器的配置。
load一次需要大概10分钟左右。
建的表用的是MYISAM,调整了几个session的参数值

1
2
SET SESSION BULK_INSERT_BUFFER_SIZE=256217728;
SET SESSION MYISAM_SORT_BUFFER_SIZE=256217728;

运行结果如下:

1
2
Query OK, 9427567 rows affected, 1558 warnings (3 min 55.21 sec)
Records: 9427567 Deleted: 0 Skipped: 0 Warnings: 0

google到的,还可以:

1
2
set global KEY_BUFFER_SIZE=256217728;
alter table tablename disable keys;

如何load数据里面带反斜杠(backslash)”' 的数据

由于如果你没有指定FIELDS子句,则默认值为假设您写下如下语句时的值:
FIELDS TERMINATED BY '\t' ENCLOSED BY " ESCAPED BY '\\'
所以,如果你的数据里面有反斜杠(backslash)”\”的时候,数据会出现被截断的问题。出现这种问题,只要写上如下的fields子句即可
FIELDS TERMINATED BY '\t' ENCLOSED BY " ESCAPED BY "

如何load不同编码的数据

原来用的4.X的mysql,我是select INTO OUTFILE ,只后用iconv,或者其他软件来做。可以参考这里,但是由于这次数据大,用ultraedit等软件打开都要半天。好在新版的mysql可以增加一个新的参数
CHARACTER SET gbk
我的文本数据是GBK的编码,数据表是utf8的,用这种方法测试成功。

如何load的时候只insert特定的列

比如表里面有比元数据多的列。可以在load的时候指定要插入的字段名字。

示例的代码如下:

1
2
3
4
5
6
LOAD DATA INFILE '~/data.txt'
INTO TABLE fb0505
CHARACTER SET gbk
FIELDS TERMINATED BY '\t' ENCLOSED BY " ESCAPED BY "
LINES TERMINATED BY '\n' STARTING BY "
(seller_id,fb_type,fb_date,item_url);

其中表fb0505里面还有一列是id。

Firefox3通过Flashgot插件调用调用迅雷(去广告的)时出现了AddRef的问题,即下载对话框如下:

捣鼓了一把,发现解决方案如下:

  1. 使用Firefox3打开about:config页面(即在地址栏中输入about:config后回车);
  2. 找到flashgot.autoReferrer项,将其值改为false,问题就搞定了。

Micro (最小版) 只能用于2MB FLASH

Mini (迷你版) 可用于4MB FLASH

Standard (STD标准版) 可用于4MB FLASH

VOIP (带VOIP功能版)

Mega (完整版) 只能用在8MB FLASH

其他可以不用管. 还有就是NEWD(新驱动)和VINT(旧驱动)之分.

cmd下输入:

1) telnet 192.168.1.1
2) 输入用户名和密码
3) nvram show|grep corerev

如果显示
wl0_corerev=4
则一定要使用 VINT 版

如果显示
wl0_corerev >=5 <=7
则 VINT 版 和 NEWD 版都可用,建议使用 VINT 版

如果显示
wl0_corerev >=8
则 VINT 版 和 NEWD 版都可用

如果显示
wl0_corerev >9
则一定要使用 NEWD 版

在DOS下,用CD 切换到 Outlook.exe 可执行文件目录下(安装目录如:C:\Program Files\Microsoft Office\OFFICE11

使用命令 outlook /importprf .\.prf 进行初始化 Outlook 数据文件。

取其一界面(很熟悉的)(初安装 Outlook 启动时,需要新建一电子邮件帐户界面)