0%

While trying to get a perl utility working, I had to install a bunch of prerequisite perl modules on my CentOS 5 VPS. One requirement was XML::Parser. However when I tried to install it like so:

1
2
[root@localhost]perl -MCPAN -e shell
cpan> install XML::Parser

I received errors with the below being the most relevent bit…

cp Expat.pm ../blib/lib/XML/Parser/Expat.pm
/usr/bin/perl /usr/lib/perl5/5.8.8/ExtUtils/xsubpp -noprototypes -typemap /usr/lib/perl5/5.8.8/ExtUtils/typemap -typemap typemap Expat.xs > Expat.xsc && mv Expat.xsc Expat.c
gcc -c -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -DVERSION=\”2.36\” -DXS_VERSION=\”2.36\” -fPIC “-I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE” Expat.c
Expat.xs:12:19: error: expat.h: No such file or directory
Expat.xs:60: error: expected specifier-qualifier-list before ‘XML_Parser’

To make a long story short, the following was the quick fix…

1
yum install expat-devel

最近想研究下linux

基本思路是在现有的windows系统下,装个虚拟机,虚拟机上装 linux。

虚拟机选择了 Sun xVM VirtualBox ,理由是界面友好,操作方便。下载地址 www.sun.com

虚拟机安装很向导化,不多阐述。

比较有意思的是关于 VirtualBox 的网络配置,网上搜索了一下,基本没有简单易懂的相关教程。

于是我花时间自己研究了下,其实实现很简单。

VirtualBox 有4种网络配置方式:

  • NAT
  • Bridged Adapter
  • Internal
  • Host-only Adapter
Read more »

1
javascript:var%20n=document.title.replace('%20-%20Windows%20Live','');var%20id=((location.hash=='')?window.selfPageData.currentItemHash:location.hash).replace('#resId/','');var%20u='http://storage.live.com/items/'+id+'?filename='+encodeURI(n);var%20p='http://'+document.location.host+'/redir.aspx?page=self&resId='+id;var%20e='<input%20onmouseover=%22this.select();%22%20onclick=%22this.select();%22%20value=%22';var%20f='%22%20style=%22width:580px%22%20type=%22text%22%20/><br>';var%20d='by%20(<a%20href=%22http://rpsh.net/%22>Rpsh</a>)';var%20c='\u5916\u94FE\u5730\u5740:'+d+e+u+f+'\u5206\u4EAB\u5730\u5740:'+e+p+f;var%20a=document.getElementById('content');var%20g=(a.getElementsByTagName('p')[0]);var%20b=g?g:document.createElement('P');b.innerHTML=c;a.insertBefore(b,a.firstChild);void(0)

在远景里找到的一位网友贴的解决办法,可以解决目前部份银行使用K宝U盾无法登陆网银的问题。方法很实用,不用修改程序文件或浏览器的安全级别,只需手动在注册表里指定网银CSP的一个文件路径。我只试了农行的华大K宝,其它的如(建行、工行、交行、广发、光大、兴业等)按跟贴的朋友尝试也是可行的。方法差不多相同。下面是原贴内容。

目前许多windows 7 IE8用户无法使用USBkey登入网银。该方法支持农行,建行,工行,光大,交行,广发,各股份制商业银行,各城市商业银行,各农村商业银行等多家银行网银,权当抛砖引玉,欢迎各位网友积极测试,以便供后人参考!

Read more »

google analytics 使用 utma utmb utmc utmz 来做分析,其中 utmz记录了访问的来源 对于市场分析来说非常重要,

有的时候 会出现这个问题 从a网站来的顾客 来到网站 没有买任何东西就走了 后来通过b网站来下单 最后从下单的情况来看 到底是a网站 来的流量还是b (其实对于referral网站 类型 都是以第一次的为准)

有的时候还会碰到这个问题 从百度搜索一个关键词 ,没有没任何东西,又从google搜索一个关键词,买了东西 最后算那个词的转换(其实对于搜索引擎来说是最后一次)

还会碰到更复杂的问题

来一个顾客 从百度搜索一个词 来了网站 没买东西, 然后去别的网站逛 看到别的网站上挂的广告,于是点击这个banner广告来购买了 最后问是在google analytics里 是算那个流量来源的转换 (其实是算搜索的转换)

以上都是经过我多次测试的结果

附上试验表格

结论就是

在金字塔上面的来源的cookie值 ,越能覆盖下来的

文字描述就是 直接来源和推荐来源是算老的, 搜索的是看新的

使用cpan,大概进去后,help一下就会用。

但是今天想安装Chart::OFC的时候还是碰到问题。

不知道为什么我的一台老的rhel3的系统里的urllist竟然是ftp://cpan.cse.msu.edu/,半天一个i Chart::OFC的命令也没有反应,速度太慢了,后来查了一下那个大学是密歇根州立大学,好偏远,于是必须更新一下urllist,但是我又忘了怎么更新了。

好在网上找到个帖子( http://mail.pm.org/pipermail/china-pm/2007-August/001002.html )告诉了我,转到如下:

你无需手工修改 /etc/perl/CPAN/Config.pm 来改变 CPAN 镜像地址的,以ROOT身
份运行:

1
2
3
# perl -MCPAN -e shell
cpan> o conf urllist unshift http://www.perl.com/CPAN/
cpan> o conf commit

search.cpan.org也看到有两个中国的镜像,考虑到稳定性,还是使用perl.com的

还有一点是在用cpan的时候,因为模块安装时默认的make test不成功,make install就不会去做,但是因为某些情况并不需要这样,这时候,可以force install DBD::mysql

配置http_proxy的方法:

1
o conf http_proxy http://proxy:8080`

有时候,可能几个不重要的make test中的测试项导致make test失败,这时候就用强制安装:

1
force install Test::WWW::Mechanize::Catalyst

在地址栏输入 about:config
新建一个布尔项,名称是 extensions.checkCompatibility,值为 **false**,就不会进行扩展兼容性检查了。

1. Nginx配置文件的修改

修改nginx的默认配置文件:

1
vi /etc/nginx/nginx.conf

按下面的内容修改Nginx的配置文件。兰色表示需要手动修改的内容,红色表示增加的内容:

Read more »

1
2
3
4
5
6
7
$array1 = array('a'=>1,'b'=>2);
$array2 = array('b'=>1,'c'=>5,'d'=>4);
foreach ((array)array_intersect(array_keys($array1),array_keys($array2)) as $key){
$mixed[$key] = $array1[$key]+$array2[$key];
unset($array1[$key],$array2[$key]);
}
$mixed = array_merge($array1,$array2,(array)$mixed);