ԱŮװ
Ů
׷
Դװ
˼Դ
Ҿ̳
Ա
װ
װ
83ʱŮ
Ҿװ
Ա̳
Ա̳ Ҿװ Ҿ̳ 83ʱŮ ԱŮװ Ů ׷ Դװ ˼Դ װ Ա װ

存档

‘tips’ 分类的存档

pidgin一统江湖

2009年7月30日 2 条评论

logo.text-bigpidgin就是很久以前的gaim,是一个模块化的即时通讯客户端,它目前支持下列协议的IM:QQ, MSN, AIM, Yahoo!, XMPP, ICQ, IRC, SILC, SIP/SIMPLE, Novell GroupWise, Lotus Sametime, Bonjour, Zephyr, MySpaceIM, Gadu-Gadu等, 而gtalk和校内都使用的是XMPP协议,所以可以登录gtalk和校内帐号,另外,也有人专门写了个飞信插件,不过这个插件好像最近有点问题,登录不上。目前比较遗憾的是,还没有旺旺的插件。

功能介绍

同时登录多个帐户,可以同时登录多不同协议的帐号,比如同时把qq、MSN、gtalk都登录了,不受任何限制。

同时更改状态,已经登录的帐号可以一起改状态,比如一起改为隐身。

同一个窗口放置多个聊天窗口,任务栏上不再有一大片聊天窗口了,当然也可以将聊天窗口分开显示。同样适用于所有的帐号。

公共分组,所有帐号的好友可以统一管理,QQ和MSN的好友可以放在一个组里,这样方便自己对好友的管理,感觉不到帐号的区别,当然也可以按帐号分组,适用于所有帐号。

好友多种排序方式,可以按字母序,也可以按状态排序,也可以按聊天记录大小排序(独有的功能,明显区分熟悉度),也适用于所有的帐号。

好友千里眼的功能,当某好友上线或下线的时候,可以发出问候消息或改为隐身状态,这是可配置的。所有可登录的帐号都拥有这个功能,不再限制于QQ。

多种提醒方式,可以在标题上显示消息数,也可以闪烁窗口,适用于所有的帐号。

隐私设置,可以只让好友聊天,或屏蔽所有对话,分级别设置隐私是独有的功能,同样适用于所有的帐号。

跨平台运行,gtalk、qq等软件没有linux的版本,可以使用Gaim来代替。其它平台也可以兼容。

下面就介绍一下我们常用的一些聊天工具在pidgin上的使用。

首先当然得安装了,从此处下载,安装过程中或提示安装gtk+库,也一并装上,因为pidgin就是用gtk+写的。

QQ

QQ是目前国内使用人数最多的IM软件,所以就从QQ开始了。菜单栏选择帐户->帐户管理->add,如图1:

qq协议选择QQ,输入用户、密码。然后点击高级选项,如图2:

4Client Version选择QQ2008,不使用代理的话下面的代理类型选择无代理。都设置好之后,点击添加,这样一个qq帐号就ok了。同样方法可以任意添加多个qq帐号。

该QQ的功能比较简单,和官方的比起来要简洁很多,不过不能传图片,支持简单的表情图片,有时候好友的备注信息不一定能显示出来。对QQ功能不是很挑剔的可以考虑。

MSN

添加MSN帐号和QQ类似,只要协议选择MSN,同时也在高级选项里把全局代理给去掉就可以了。

Gtalk

Gtalk的官方版本就是很简洁的,所以用pidgin版的gtalk应该会比较习惯。Gtalk的协议可以选择Google Talk或者XMPP,用户名填gmail邮箱的前缀,domain填gmail.com,密码,谁用谁知道。

校内

要通过pidgin登录校内,首先得知道自己的校内id,访问自己校内的个人主页,链接上id=后面的一串数字就是了。协议选择XMPP,用户名就是那串数字,domain填www.xiaonei.com,密码,还是谁用谁知道。然后在高级选项里,连接服务器一栏填上talk.xiaonei.com,保存。这样,当好友发了日志或者有新回复时,都能第一时间知道,是强sf的利器。

飞信

要用飞信得先载个飞信插件,可从此处下载并安装。装好后在协议那里就会多出一个fetion协议,选择这个协议,并填好手机号码和飞信密码就可以了。

其他还有很多,只是我都没用过,使用起来应该都差不多,就不一一介绍了。

分类: tips 标签: ,

用google日历管理时间

2009年7月14日 没有评论

毕业正式工作了,合理的时间安排显得尤为重要,尝试用过一些时间管理的工具,网上的介绍也是五花八门,包括我下面要说的google日历。

google日历最吸引我的主要有两点:

一个是它的短信提醒,通过绑定手机可以把在google日历上的安排通过免费短信的方式给发送到手机里,当然也可以邀请别人来接收自己的日程安排。

另一个就是,它是基于网络的,不局限于某一台电脑,无论是在公司或者在家里,都可以随时查看或者更新。

下面介绍一些我个人的使用心得:

1. 短信提醒:

在google日历页面上,点击右上角的设置,选择移动设置选项,按提示填好相应信息并保存,如图1

2009-07-14_110535

接着再返回到日历,点击某个时间段,点击“修改活动详细信息”,如图2

sms

设定好自己的时间安排后,就可以在下面的选项那里选择提醒方式,选择SMS,并设定好提醒时间,这样快到时间的时候就可以收到google日历的短信提醒了。

2. firefox插件

这里介绍一个firefox插件Google Calendar Notifier ,它通过个人日历的rss来取得日历内容,所以需要取得自己日历的rss地址,获得rss地址的具体方法:日历页面->设置->日历,点击email地址,在最下面有个私人网址,点击”XML”,得到的链接就是我们需要的。把该链接填到插件设置里的Feed URL处即可,在Timezone Options处选择GMT+08:00。

最后,想了解更多关于google日历的使用技巧,可以参考这篇文章:善用google日历,让事情做得更高效

分类: tips 标签: , , ,

perl下的时间处理

2009年6月20日 4 条评论

获得unix时间:

1
2
3
4
5
#!/usr/bin/perl 
use strict;
use warnings;
 
print time;

获得当前系统时间:

1
print scalar localtime();

这里localtime()可带一个时间参数,默认是以当前的unix时间为参数,若要得到unix时间100秒的具体时间,可以用localtime(100)

unix时间转换成普通的日期时间:

1
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

$sec –> 秒
$min –> 分
$hour –> 时
$mday –> 当月的第几天(1..31)
$mon –> 月(0.11)
$year –> 年(1900..,从1900年开始,所以得加上1900才能得到当前年份)
$wday –> 一周中的第几天(0是星期天,然后1..6代表周一到周六)
$yday –> 一年中的第几天(0..365)
$isdst –> 夏令时标志,如果当前时间正在使用夏令时,则$isdst为1,否则为0。
执行localtime函数得到的就是由上面这些值所组成的一个字符串。

普通的日期时间转换成unix时间
有时候为了得到两次时间间隔,把普通日期时间转换成unix时间处理起来就方便多了。

1
2
3
use Time::Local;
my $time = timelocal($sec,$min,$hour,$mday,$mon,$year); 
# replace 'timelocal' with 'timegm' if your input date is GMT/UTC
分类: tips 标签: , ,

perl中去除数组里的重复元素

2009年6月3日 2 条评论

方法很多,先介绍下我自己的方法,通过hash的键唯一性来得到不重复的元素列表,代码如下:

1
2
3
4
5
6
7
8
#!/usr/bin/perl 
use warnings;
use strict;
 
my @array = ("a","b","c","d","a","d","c");
my %hash;
$hash{$_}++ foreach (@array);
print sort keys %hash;

下面是网上看到的一个方法,通过grep函数来获得不重复的元素:

1
2
3
4
5
6
7
8
#!/usr/bin/perl
use warnings;
use strict;
 
my @array = ("a","b","c","d","a","d","c");
my %hash;
my @out = grep (!$hash{$_}++, @array);
print @out;

该方法的意思是:当第一次碰到某元素$_时,$hash{$_}的值为0,!$hash{$_}为真,于是把元素$_加到数组@out中,然后把$hash{$_}值加1,这样下次再碰到同样的元素时由于!$hash{$_}此时为假,就不会写入@out数组里了,从而达到去掉重复元素的目的。
两种方法从运行效率上来看应该差不多,不过第二个感觉更炫一点。

分类: tips 标签:

命令行下简单的检索

2009年5月30日 7 条评论

前段时间有这么个需求,两个文件,假设是tmp1和tmp2,tmp1里有服务器序列号和服务器主机名,如下:
a    1
b    2
c    3
d    4
e    5
f    6
g    7

tmp2里则是一些无序的序列号,如下:
d
c
e
f
a
g
b

现在需要做的是按tmp2里的顺序得到它们所对应的主机名。

对于这个需求,最开始想到的就是对tmp2里的每个序列号循环,每个循环里再遍历一次tmp1的内容,从而找到需要的主机名,不过这方法当文件很大时就很慢了。所以改进了一下,把tmp1存到一个hash里,然后遍历tmp2从hash里获得需要的东西。脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl
use warnings;
use strict;
 
open(TMP1,"<tmp1") or die("error1\n");
my %hash;
while(<TMP1>){
    chomp(my $tmp = $_);
    my($index,$value) = split(/\s+/,$tmp);
    $hash{$index} = $value;
}
close(TMP1);
 
open(TMP2,"<tmp2") or die("error2\n");
while(<TMP2>){
    chomp(my $tmp = $_);
    print $hash{$tmp}."\n";
}
close(TMP2);

当然,这样还是麻烦了点,简单一点可以直接在命令行下就搞定了

for i in `cat tmp2`
    do grep $i tmp1 | awk '{print $2}'
done
分类: tips 标签: ,