在chrome中无法正常浏览新浪微博图片的解决方法[zt]

这个问题存在好久了,表现是:初次打开chrome时,第一次点击图片能够正常放大浏览,从第二次点击开始,图片收没了,无任何显示,只能通过下方的链接打开图片。而在IE下,没有这个问题。

今天把chrome的扩展一个个拿出来鼓捣,发现当禁用AdThwart后,浏览正常。然后去安装了adblock扩展,发现问题是一样的。估计是新浪微博的网址进入了filter list。

解决办法:把t.sina.com.cn加入到adblock的exduded sites清单中,缺陷消除。

AdThwart用同样办法应该也能解决,我没试。

MSN 8.1/8.5 去广告修改方法 [zt]

首先,确认你使用的 Windows Live Messenger 版本为8.1或8.5,9.0理论上无效,可以使用后面说的修改方法尝试。
其次,覆盖文件或编辑文件时,要先关闭MSN
方案一:享受现成的
点击这里下载我修改好的文件,解压缩后将 msgsres.dll 放到 MSN 所在目录(默认安装位置 C:\Program Files\MSN Messenger )。
方案二:自己动手阉去多余物件
工具:Resource Hacker 3.4.0.79 绿色汉化版
打开MSN安装目录下 msgsres.dll 文件

1、去除面板底部广告
打开资源 4004 -> 923 -> 1033,找到(按F9搜索)ID=Atom(SSConstrainer),将其前面的 layoutpos=top 改为 layoutpos=none
2、去除聊天框广告
打开资源 4004 -> 920 -> 1033,找到 id=atom(adbannergutter),将其前面的 layoutpos=top 改为 layoutpos=none
3、去除面板底部搜索
打开资源 4005 -> 923 -> 1033,找到 id=atom(idSearchContainer),这个资源下有2个,修改第2个,第867行,将下面的 layoutpos:bottom; 改为layoutpos:none;
修改完后点“编译脚本”,保存文件,完成。
启动MSN看看,整个界面没有广告,清爽速度还快

perl 求合并一个数组的方法

@a=(
['a','2','4'],
['b','3','2'],
['c','4','4'],
['d','t','3'],
['a','4','5'],
['c','3','5']
);
判断第一个字段 如果出现相同的 就吧后面的两个字段加一起
想要的结果是这样的
a,24, 45
b ,3, 2
c ,43, 45
d ,t, 3

[ 本帖最后由 luesfeng 于 2009-10-3 13:54 编辑 ]

CODE:
my %h = ();
for(@a){
push @{$h{$_->[0]}},$_->[1].$_->[2];
}

for(sort keys %h){
print “$_ @{$h{$_}}\n”;
}

CODE:
C:\file>perl 5.pl
a 24 45
b 32
c 44 35
d t3

阅读全文

Perl 根据相同字段并合并两个文本

有两个文本:
a.txt的内容:
0001|abc|1000.00
0002|ddd|1200.20
0003|dde|100.01
0005|ggg|200
……..
……..

b.txt的内容:
1234|2600|1|AAAAA|abc|88888888|
1234|2600|2|BBBBB|ddd|8888888|
1234|2600|3|CCCCC|dde|8888|
1234|2600|4|DDDDD|eee|88888888888|
1234|2600|5|AAAAA|ggg|888888|
……….
……….
我想把a.txt的第一个字段删去前面的0后与b.txt的第3个字段比较,如果相等,就把b.txt中的第4个字段放在a.txt的前面.
生成结果如下:

AAAAA|0001|abc|1000.00
BBBBB|0002|ddd|1200.20
CCCCC|0003|dde|100.01
AAAAA|0005|ggg|200
………..

#!/usr/bin/perl

$filea="a.txt";
$fileb="b.txt";

open(FB,"<$fileb") || die "Can't read $fileb\n$!\n";
while() {
@line=split(/\|/);
$datab{$line[2]}=$line[3];
}
close FB;
open (FA,"<$filea") || die "Can't read $filea\n$!\n";
while()
{
@line = split(/\|/);
$dataa{$line[0]} = $_;
}

foreach $key (sort {$b cmp $a} keys %dataa)
{
print $datab{int $key}.'|'.$dataa{$key} if exists $datab{int $key};
}

awk 列相同 合并行

如果第一列与第二列相同,就合并行

cat a.txt

a b c
a b d
a b e

awk '{v=$1" "$2;a[v]=a[v](a[v]?" ":"")$3}END{for (j in a) print j,a[j]}' file

关于Perl的几点:多行注释,REF函数,类的初始化

多行注释:
perl没有多行注释,可以用下面代替:
=pod
代码行;
.
.
.
代码行;
=cut

关于ref函数:
ref EXPR
ref Returns a non-empty string if EXPR is a reference, the empty
string otherwise. If EXPR is not specified, $_ will be used. The
value returned depends on the type of thing the reference is a
reference to. Builtin types include:

SCALAR
ARRAY
HASH
CODE
REF
GLOB
LVALUE

If the referenced object has been blessed into a package, then
that package name is returned instead. You can think of “ref” as
a “typeof” operator.

讲类的段落,比较明了:
Object Construction
All objects are references, but not all references are objects. A reference won’t work as an object unless its referent is specially marked to tell Perl what package it belongs to. The act of marking a referent with a package name–and therefore, its class, since a class is just a package–is known as blessing. You can think of the blessing as turning a reference into an object, although it’s more accurate to say that it turns the reference into an object reference.
阅读全文

为什么thinkpad T61会发现吱吧电流声[zt]

一台THINKPAD T61笔记本电脑单击用电池使用电脑时,在主板和电池接口的附近会发出吱吱电流声请问这是怎么回事呀?

THINKPAD T61笔记本电脑的CPU在默认状态下是可以变频的,所以当笔记本电脑使用电池时,为了发挥省电效能,CPU会降频运行,而在CPU与WINDOWS操作系统产生大量数据交换的时候,CPU会自动升高主频来完成加速任务,在完成后CPU会自动升高主频来加速完成任务,在完成后CPU会自动降回省电的频率运行,而这一高一低的来回切换频,造成笔记本电脑发出吧吧电流声,是正常的现象,所以要解决该问题,只要在主板BIOS设置中将CPU频率调节到始终使用最高,问题就可以解决,具体方法如下:启动计算机,进入主板BIOS设置,选择CONFIG-POWER-CPU POWER MANAGEMENT –AUTOMATIC将其值改为DISABLE,保存退出主板BIOS设置,问题就可以解决了。

PS:还没尝试过,还有人建议禁用USB接口的节电功能。目前有效果的是,移除底部的散热加,放平笔记本电流声就减少明显。

awk中使用单引号

看了一个帖子,是说明,如何在awk中使用单引号的,并举了一个例子,原文如下:

awk 中插入单引号需要转义,但是并不是想象中的那么简单。有点周折,发出来和大家共享。

awk ‘{print “INSERT INTO TABLE_NAME (COL1,COL2) VALUES (““’\’’“ $1 “’\’’“ “,“ “’\’’“ $2 “’\’’“ “)“ }’ DATA_FILE >abc.sql

其实,这是比较糟糕的方式,awk的单引号可以用\47 表示,原文中的例子可为:

awk ‘{print “INSERT INTO TABLE_NAME (COL1,COL2) VALUES (\47“$1“\47,\47“$2“\47);“ }‘ DATA_FILE >abc.sql

顺便说一句,原文中所使用的sql语句在“)”后面没有加“;”号,这会有问题的。

MySQL分区(Partition)功能试验

[概述]
[分区表和未分区表试验过程]
[分区命令详解]

[概述]

自5.1开始对分区(Partition)有支持,6.0应比较稳定

= 水平分区(根据列属性按行分)=
举个简单例子:一个包含十年发票记录的表可以被分区为十个不同的分区,每个分区包含的是其中一年的记录。

=== 水平分区的几种模式:===
* Range(范围) – 这种模式允许DBA将数据划分不同范围。例如DBA可以将一个表通过年份划分成三个分区,80年代(1980′s)的数据,90年代(1990′s)的数据以及任何在2000年(包括2000年)后的数据。

* Hash(哈希) – 这中模式允许DBA通过对表的一个或多个列的Hash Key进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区,。例如DBA可以建立一个对表主键进行分区的表。

* Key(键值) – 上面Hash模式的一种延伸,这里的Hash Key是MySQL系统产生的。

* List(预定义列表) – 这种模式允许系统通过DBA定义的列表的值所对应的行数据进行分割。例如:DBA建立了一个横跨三个分区的表,分别根据2004年2005年和2006年值所对应的数据。

* Composite(复合模式) – 很神秘吧,哈哈,其实是以上模式的组合使用而已,就不解释了。举例:在初始化已经进行了Range范围分区的表上,我们可以对其中一个分区再进行hash哈希分区。

= 垂直分区(按列分)=
举个简单例子:一个包含了大text和BLOB列的表,这些text和BLOB列又不经常被访问,这时候就要把这些不经常使用的text和BLOB了划分到另一个分区,在保证它们数据相关性的同时还能提高访问速度。
阅读全文

EXCEL导入网页表格时把
换成单元格内部的换行

每次遇到网页表格单元格内部的换行,EXCEL自动把它变成另外一行,这使人非常郁闷,解决方法如下:

先按文本的方式放入一个单元格里,即
显示出来:123
456这样的字符串录入进去。
之后用ALT+10替换掉
即可完成换行。

当然,你可以使用更加个性化的标识来替代
做前期的录入。