4月13日生日密码

4月13日 开创奇思异想
4月13日出生的人,企图以工作来解决和世界的冲突。这一天出生的杰出人士之所以会成功,通常是因为受迫,而不得不在一个和他们格格不入的社会中另辟蹊径,开创出一番新天地。但即使已经走在所谓的成功道路上,他们仍然想要重写游戏规则。

4 月13日出生的人擅长表达自己,所以有独立作业的能力,这一点是很多人都不知道的。如果他们终于“杀”出一条路,就会强迫别人但要肯定他们的激进手段,可 能还会要求别人也如法炮制。如果失败了,他们当然也会觉得被人排斥或是感到自卑。不过,不论别人怎么想,他们还是会继续坚持自己的选择。他们当中发展得较 差的人,可能会否认自己具有开创的天赋,而一味地采取压抑、保守的态度,或是凭空想像自己是居高位的重要人物。

4月13日出生的人意志坚强,不论周遭的人接受与否,都会将个人不落俗 套的处事方法发挥到极致。如果亲友强烈反对这些看来颇为怪异的行为,他们通常有两条路可走,一是把别人的否定放在心里,然后从此生起病来;一是为争取应有 的认同和接纳而奋斗。4月13日出生的人如果罹患慢性病,那他们就有可能从事与疾病有关的工作,例如医生、护理人员、心理或社会辅导人员。如果他们是属于 奋斗型的人,则在他们建立起自己的价值之前,是绝对不会放弃的。

由于这在出生的人,具有特殊的习惯与个性,他们通常会维持十分隐密的私 生活,不让别人窥见。这种对隐密的需求甚至会带点儿病态,还好这种情况并不多。说也奇怪,这一天出生的人,喜欢在生活中有一个或是几个伴,但又不会因此改 变他们隐密的守则。由于天性和生活方式比较特别,于是关于他们的各种传闻,会自然在社交圈中流传,而其中有些也确实所言不虚。这些谣言会造成很大的痛苦, 因为他们对于别人的意见非常地敏感。可是,能怎么办呢?就是因为他们不喜欢公开,别人才会对他们的私生活更加好奇。

4月13日出生的人有不错的品味,也颇能接受现代的艺术形式及娱乐,就算本身不是艺术家,也多是艺术品或古董收藏家,他们对看似平凡的物品独具慧眼。4月13日出生的人虽然是理想主义者,却也很实际,只要愿意,就能成功地累积财富。

幸运数字和守护星
4月13日出生的人受数字4(1+3=4)及天王星的影响。天王星通常表示剧烈或突然的改变,以及怪异非传统的行为。这种不稳定的特质,受到火星(特羊座 的主宰行星)的影响将更为明显。4这个数字一向阳花代表叛逆、奇特的偏偏以及改变规则的渴望,因此4月13日出生的人,想要打破现状的意愿就格外地强烈 了。虽然许多人认为13是个不祥的数字,但事实不然,它其实是个很有力量的数字,可以善加利用,也可以造成破坏。

健康
4月13日出生的人,必须学习处理失望、拒绝和排斥,否则这些负面的情绪将在生命的不同阶段,以不同的生理和心理病征显现。这些病征从头疼、焦虑到十分的 沮丧都有可能。睡眠对他们既是福也是祸--通常睡眠具有治疗的效果,但是如果加上沮丧,睡眠就会成为一种逃避日常生活,甚至逃避生命本身的消极态度。就逃 避现实这方面来说,酿酒尤其具有毁灭性。面对这些问题,有一个解决方法,就是建立规律的工作与运动习惯。许多4月13日出生的人,天生就有运动细胞,可以 从事不同的运动,如健行、游泳、有氧舞蹈等。定时、心情愉快的进食,可能是他们的最佳良药。

建议
尝试多与人接触,不要压抑自己。偶尔试试以别人的眼光看这个世界。自由地施予,并且也接受别人的慷慨付出。有些时候过度的自尊心只会碍事。

名人
杰佛逊(Thomas Jefferson)美国总统,他是美国宪法起草人,曾在华盛顿总统任职期间担任国务卿,在其总统任内向法国购买路易斯安那州。他也是学者、建筑师,维吉尼亚大学不但是由他所创立,连校舍建筑也是他亲手设计。

美国连锁商店大亨伍尔活斯(Frank W.Woolworth),他在纽约市所建的伍尔活斯大厦,有一段时间曾是世界最高的建筑。

贝克特(Samuel Beckett)爱尔兰籍诺贝尔奖得主、剧作家,他也是诗人及小说家,著有《莫洛伊》;曾与美国冷面笑匠巴斯特基顿合作拍片,作品有《电影》。

电影制片及导演杜南(Stanley Donen),他也是编舞家,作品有与金凯利合作的《万花嬉春》、《纽约的一天》。

电影演员隆凰玛(Ron Perlman)。

爵士乐颤片琴演奏者查尔斯(Teddy Charles),他也是作曲家与编曲家。

塔罗牌
大秘仪塔罗牌中最容易被误解的是第13张牌,也就是“死神”。我们极少依字面意思去解读,因为它的积极意义是抛开过去,超越限制并持续成长。所以,这张牌是希望人们避免沮丧、悲观或忧愁。

静思语
在人生舞台上,换个场景,戏往往就能继续发展下去。

优点
意志坚定、坦率、具开拓精神。

缺点
过度热心、容易受挫、缺乏自我了解。


... Read more!

vim脚本推荐(TabBar)

Name:TabBar : Plugin to add tab bar ( derived from miniBufExplorer).
http://www.vim.org/scripts/script.php?script_id=1338

以标签形式显示你的buf,这个有别于7.0的Tab,这个脚本可以在7.0以前的版本运行,我只测试了6.3可用。在最顶端模拟一个Tab栏,可以方便的使用Alt+数字进行Buf的切换。
... Read more!

Gtalk的一些常用Tips

1,快捷键

  • ESC: 关闭当前Chat窗口
  • ALT + ESC: 最小化当前窗口(和Windows快捷键一致)
  • TAB: 在多个Chat窗口间切换
  • CTRL + I: 和TAB功能一样
  • SHIFT + TAB: 和TAB功能一样,不过以相反的顺序切换
  • CTRL + TAB: 和SHIFT + TAB一样
  • Windows + ESC: 打开Gtalk主窗体(如果它处于最小化,或者在系统托盘)

有一些跟Call相关的,没有列进去,因为我几乎不用。

2,Chat文字相关
  • 每次消息的最大长度是32767个字符
  • 你可以在在Chat的时候使用如下的表情,看这里
  • 在你的文字前后加上半角的*,可以显示成粗体
  • 在你的文字前后加上半角的_,可以显示成斜体,当然你也可以配合上面的粗体一起用,搞得又粗又斜。
  • 你也可以使用特殊字符比如♥♫☺,这些字符如何输入,参照Windows的字符工具。从开始菜单-〉附件中尼可以找到。


3,启动参数
你可以在启动的快捷方式里面,加入如下参数:
  • /nomutex 使得可以启动多个Gtalk

暂时我只用到这个,其它的就不列举了。
... Read more!

Live Messenger8.1的新功能?

今天在公司以及家里都更新了Live Messenger,更新到8.1的0168版本,但是我在家刚刚登录上,就不断有朋友问,还在公司?一开始我没有在意,后来好几个朋友上来了也问,觉得奇怪,突然发现,我在家里的Live Messenger上的图片竟然是我在公司的时候用的图片,这个图片我家里的机器上是没有的,而且,Live Messenger的第二ID也和我公司的保持一致了。以前我记得只有主ID,无论你在哪个机器上登录都会从服务器上读取,难道现在Live Messenger也在服务器上保存我的图片以及副ID了?
... Read more!

在线Live Messenger多重启动修改服务。

这里提供了在线的 Live messenger多重启动修改服务,提供各种各样的版本,使用之前确认你是否安装了JRE。
... Read more!

(记号)Windows Live Messenger 8.1 Beta去广告及字体修改方法

留个记号吧,省得每次去Google
按照之前的去广告方法,用ResHack打开Messenger目录下的msgsres.dll文件,修改以下几处,编译保存后即可。
1. 去广告:
用RESHACK打开msgsres.dll中的4004-923,查找里面的”ID=Atom(SSConstrainer)”,不包括
两头双引号,将前面的layoutpos=top改为layoutpos=none,编译保存,OK.去除对话框下面的文字广告方法:
同样使用RESHACK打开那个文件,找到小尖括号内的如下内容:
element id=atom(adbannercont) layout=filllayout()
替换为:
element layoutpos=none

2. 字体修正
在4005-923-1033中寻找“sysmetric(-16)”,将它替换为“9pt”,编译;
在4005-1004-1033和4005-1009-1033中的第4行,找到“FontSize:rcint(49615)pt;”,替换为“FontSize:9pt;”,编译保存;一切OK。
... Read more!

Gmail登陆语言选项

无论在IE或者是Firefox中,登陆Gmail都会读取浏览器的相关信息进行地域与语言的判断,我们也可以通过指定语言。我都是使用HTTPS来进行登陆的。下面列出相应语言登陆入口。

英语:https://gmail.google.com/?hl=en
简体中文:https://gmail.google.com/?hl=zh-cn
繁体中文:https://gmail.google.com/?hl=zh-tw
日语 :https://gmail.google.com/?hl=jp
法语:https://gmail.google.com/?hl=fr
... Read more!

将你的文件隐藏到JPEG文件中去。

1,你需要具备下面一些东西

  • Windows2000/XP
  • 会使用基本的命令行工具
  • Winrar
2,文件准备
例如,我们将想隐藏的文件压缩到mento.rar文件中去,然后准备隐藏到simple.jpg文件中,这些文件我们都放在C:/hidden目录下面,打开命令行窗口,进入到C:/hidden,使用下面的copy命令
copy /b simple.jpg + mento.rar sec.jpg
然后我们可以看看sec.jpg,仍然被window识别为图形文件,而且,可以使用正常的图形工具打开,我们指定打开方式,使用winrar,看看是不是可以看到mento.rar压缩包的内容了?

经过测试,这个方法不仅仅适用于rar压缩文件,而且同样适用于7z,你可以尝试一下。

参考自:How to hide files in JPEG's
... Read more!

Ubuntu下开启Apache2的digest认证

Ubuntu版本:6.10
Apache2支持digest认证,相关信息请参考Apache手册
1,开启auth_digest认证模块
$sudo a2enmod
然后会列出你机器上已经安装的模块,输入digest模块名字
auth_digest,然后回车,会有相关提示,请确认成功开启。然后重新启动Apache2服务

2,创建digest文件
mkdir /savepath
htdigest -c /savepath/auth.htdigest Jclips.com myname
其中Jclips.com是你要认证的域,myname是你要建立的用户名,好像认证域和你真正的域名并没有多大关系。没有去考证相关资料。会提示你输入密码,以及确认密码。

3,配置站点
比如,我这边配置/cgi-bin
<Location "/cgi-bin">
AuthType Digest
AuthName "Jclips.com"
AuthDigestDomain /cgi-bin http://www.jclip.com/cgi-bin
AuthDigestFile /savepath/auth.htdigest
Require valid-user
</Location>
其中AuthDigestDomain 是可以不填的,另外,使用的用户名最好不要太长,不知道什么原因,我用了一个稍微长一点的用户名,竟然无法验证。
... Read more!

Ubuntu下 Awstats的安装以及设置

配置版本:Ubuntu 6.10
1,安装
在Ubuntu下面安装awstats很简单,apt-get install命令就可以完成。

2,配置
awstats安装完毕后,相关配置文件位于/etc/awstats目录下面,一般,会提供一个awstats.conf文件,我们可以拷贝一份,作为自己的配置文件,比如我要为www.jlcips.com建立一个配置文件,那么拷贝一份awstats.conf,命名为awstats.www.jclips.com.conf。然后修改里面的配置,相关修改如下:

LogFile="/var/log/apache2/access.log" <==apache日志的位置
LogFormat=1
DNSLookup=1
DirData="/var/lib/awstats/"
DirCgi="/cgi-bin"
DirIcons="/awsts-icon"
SiteDomain="www.jclips.com" <==站点的名字
AllowToUpdateStatsFromBrowser=1
AllowFullYearView=3

一般上面的配置在拷贝后的文件中都是已经有了,只有一些要做相应的变更,每一项都有详细的说明,可以看看相应代表什么意思。

3,拷贝icon文件夹
cp -r /usr/share/awstats/icon /var/www/awstats-icon
目标文件夹就是在上面配置文件中配置的icon路径

4,更新数据
/usr/lib/cgi-bin/awstats.pl -config=hostname -update
上面的hostname替换成你的主机名,比如这边是www.jclips.com。

5,修改Apache的配置
默认在Apache2中cgi-bin目录是注释掉的,进入/etc/apache2/sites-enabled目录,编辑相应的配置文件,确认cgi-bin目录为有效。Apache2的默认cgi目录是/usr/lib/cgi-bin

6,页面访问
http://hostname/cgi-bin/awstats.pl?config=hostname
上面的hostname替换成你站点的名字。

注:我在配置文件中设置了允许从浏览器进行数据进行更新,对应的是AllowToUpdateStatsFromBrowser字段。这样你可以从浏览器中进行数据的更新。你也可以禁止掉,然后创建一个cron任务,让其每天自动更新。
crontab -e
0 1 * * * /usr/lib/cgi-bin/awstats.pl -config=hostname -update
这样会在每天晚上进行数据更新。
... Read more!

Digital certificates are available for Apache-SSL


... Read more!

Ubuntu下Apache SSL的配置方法

基于的Ubuntu版本Edgy,在Ubuntu下面安装配置Apache都比较简单。相应的配置文件位置如下:

默认站点在 /var/www/
配置文件在 /etc/apache2/
日志在 /var/log/apache/
启动脚本是 /usr/sin/apache2ctl 或者 /etc/init.d/apache2

1,安装Apache
$sudo apt-get install apache2

2,开启SSL模块
$sudo a2enmod ssl

3,创建证书
可以使用apache内置的工具创建默认的证书,通过-days指定有效期。
$sudo apache2-ssl-certificate

另外我们可以使用openssl来创建
$sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999
注:在要求输入Common Name (eg, YOUR name) 时,输入你的主机名。

4,编辑SSL的配置
我们可以将当前的默认站点配置文件拷贝一份,然后进行修改
#vi /etc/apache2/sites-enabled/001-ssl
把端口改为443
加入SSL认证配置
其它的根据需要自己定制 与普通配置无异
NameVirtualHost *:443
<virtualhost *:443>
ServerSignature On
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem

ServerAdmin webmaster@localhost
#[......]

修改普通http方式的配置
#vi /etc/apache2/sites-enabled/000-default
把端口改为80
NameVirtualHost *:80
<virtualhost *:80>
ServerAdmin webmaster@localhost
#[......]

编辑Apache端口配置,加入443端口(SSL的)
#vi /etc/apache2/ports.conf:
Listen 80
Listen 443

重新载入Apache的配置
#/etc/init.d/apache2 force-reload
或者重新启动Apache2
#/etc/init.d/apache2 restart

... Read more!

postgrey的安装与设置

安装环境Ubuntu
在Ubuntu下安装Postgrey非常方便,只要apt-get install postgrey。然后就是自己的设置。
首先,修改Postfix的设置,编辑/etc/postfix/main.cf,加入以下代码:

smtpd_client_restrictions = reject_rbl_client relays.ordb.org, reject_rbl_client bl.spamcop.net
smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender
smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:60000


通常我们希望给经常有邮件来往的客户开放绿色通道,那么,我们开启Postgrey的白名单 。修改
/etc/default/postgrey文件,将原来的
POSTGREY_OPTS="--inet=127.0.0.1:60000"
改为:
POSTGREY_OPTS="--inet=127.0.0.1:60000 --auto-whitelist-clients=1"
然后,重新启动Postgrey和Postfix
/etc/init.d/postgrey restart
/etc/init.d/postfix restart


根据文档,白名单的开启,默认就是1,所以如果我们仅仅是要开启白名单的话,postgrey文件可以不作修改。白名单位于/etc/postgrey下面,
whitelist_clients 针对寄信的Server或者是domain name
whitelist_recipients 是指机器上这些受件人不受postgrey限制。
... Read more!

Postfix配置文件main.cf中常用参数介绍

1,外发域配置
参数:
myorigin

说明:
myorigin参数用于指定该服务器使用哪个域名来外发邮件。
缺省的情况下myorigin采用本机主机名称(与参数myhostname相同)。

建议:在很小的网络中,采用缺省配置。而在Internet中,我们建议你保持myorigin与mydomain参数相同。也就是说采用该服务器所在的域名称。

  例如:

  myorigin = $myhostname (缺省)
  myorigin = $mydomain (推荐)
2,接收域配置
参数:
mydestination

说明:
用于指定该服务器的使用哪个域名来接收邮件。
我们建议,系统安装好后,尽量不要改动这个参数。

例如:
缺省设置:
  mydestination = $myhostname localhost.$mydomain

广泛设置:
  mydestination = $myhostname localhost.$mydomain $mydomain

多DNS设置:
  mydestination = $myhostname localhost.$mydomain www.$mydomain ftp://ftp.$mydomain/">ftp.$mydomain

3,转发限定
参数:
mynetworks
relay_domains
mydestination

说明:
转发限定在邮件系统中非常重要。C-Link为客户缺省配置了最安全的转发限定参数。
与转发限定的参数有很多:主要请参看mynetworks、relay_domains、mydestination。

4,系统故障报告配置
参数:
notify_classes

说明:
该参数用于告知系统,在哪种情况下用哪种方式通知用户。

可以选择的参数类型有:

  bounce 邮件原封不动弹回;
  2bounce 将双份弹回邮件发送给Postmaster;
  delay 将拖延的邮件的头部信息通知Postmaster;
  policy 将被系统过滤掉的信息通知Postmaster;
  protocol 将协议错误信息通知Postmaster;
  resource 将因系统资源短缺而投递失败的信息通知Postmaster;
  software 将因软错误而投递失败的信息通知Postmaster.

  例如:
  缺省:
  notify_classes = resource, software

5,主机名配置
参数:
myhostname

说明:
  myhostname参数用于描述运行C-Link系统的服务器所符合规则的域名全称。在许多UNIX系统中,C-Link会自动检测出正确的名称。但在某些操作系统中需要手工配置,如TurboLinux。

  例如:

  myhostname = host.local.domain (local hostname is not FQDN)
  myhostname = host.virtual.domain (virtual interface)
  myhostname = virtual.domain (virtual interface)

6,原始域配置
参数:
mydomain

说明:
系统自己检测。暂不开放。

7,系统内部网络子网配置
参数:
mynetworks_stype
mynetworks

说明:
  mynetworks_stype用于设定邮件系统内部子网的限制情况。通常情况下设定为subnet。在单机情况下设置为host.
  设定的子网内部,邮件可以开放式转发。这对于配置邮件集群很有作用。但要小心使用,防止将邮件系统设置为OPEN RELAY。

  例如:
  mynetworks_style = subnet
  mynetworks_style = host
  mynetworks = 168.100.189.0/28, 127.0.0.0/8

8,系统内部网络地址配置
参数:
net_interfaces

说明:
  inet_interfaces用于指定特定的网络地址。
  系统保留,暂不开放。

  例如:
  inet_interfaces = all
  inet_interfaces = virtual.host.name (virtual domain)
  inet_interfaces = $myhostname localhost.$mydomain (non-virtual mailer)

9,进程限制
参数:
default_process_limit

说明:
  用于限定SMTP服务的最大同时连接数量。缺省为50。根据服务器配置及操作系统的不同,可以做非常宽限的配置。

  例如:
  default_process_limit = 1024

10,本地同时同址分发限制
参数:
local_destination_concurrency_limit

说明:
  系统保留,暂不开放。

  例如:
  local_destination_concurrency_limit = 2

11,缺省同时同址分发限制
参数:
default_destination_concurrency_limit

说明:
  系统保留,暂不开放。

  例如:
  default_destination_concurrency_limit = 10

12,队列重发周期
参数:
queue_run_delay

说明:
  用于设定队列处理程序对拖延邮件的扫描周期。
  缺省为1000秒。
  例如:
  queue_run_delay = 1000

13,最长队列生命期
参数:
maximal_queue_lifetime

说明:
  用于设定队列处理程序对滞留邮件的最长保存期。
  缺省为5天。

  例如:
  maximal_queue_lifetime = 5

14,最小投递失败周期
参数:
minimal_backoff_time

说明:
  用于设定队列处理程序对无法投递的邮件的最短巡回时间。
  缺省为1000秒。

  例如:
  minimal_backoff_time= 1000

15,最长投递失败周期
参数:
maximal_backoff_time

说明:
  用于设定队列处理程序对无法投递的邮件的最长巡回时间。
  缺省为4000秒。

  例如:
  maximal_backoff_time= 4000

16,错误命令缓冲时间
参数:
smtpd_error_sleep_time

说明:
  当SMTP服务端口接收到非法的命令时,系统将缓冲处理的时间间隔。
  这个参数对于防止恶意攻击非常有效。

  例如:
  smtpd_error_sleep_time = 5
  smtpd_error_sleep_time =0

17,软错误容忍次数
参数:
  smtpd_soft_error_limit

  说明:
  SMTP服务所允许的软错误次数。这个参数对于防止恶意攻击非常有效。
  缺省10次。

  例如:
  smtp_soft_error_limit = 5

18,硬错误容忍次数
参数:
  smtpd_hard_error_limit

  说明:
  SMTP服务所允许的硬错误次数。这个参数对于防止恶意攻击非常有效。
  缺省100次。

  例如:
  smtp_hard_error_limit = 100

19,邮件头部过滤
  参数:
  header_checks

  说明:
  用于过滤邮件的头部信息。

  例如:
  header_checks = regexp:/wdpost/filter/header_checks
  文件header_checks内容遵循完全的regexp强大的字符串语法匹配规则。
  如,/^to: *friend@public\.com$/ REJECT

20,SMTP连接控制过滤
  参数:
  smtpd_client_restrictions

  说明:
  smtpd_client_restrictions 参数的功能非常强大。它可以对连接到C-Link邮件服务器的各种客户端以及其他服务器进行限制。
  该参数有以下的选项可以灵活配置设定。
  reject_unknown_client 拒绝不能IP反向解析的地址;
  permit_mynetworks 允许子网中的连接;
  check_client_access maptype:mapname 检测在mapname文件中设定的规则;
  reject_maps_rbl拒绝符合rbl行为条件的连接。
  reject_unauth_pipelining 拒绝为认证的管道连接。
  缺省状态下,该参数不做设定。

  例如:
  smtpd_client_restrictions =

21,HELO握手要求控制过滤
  参数:
  smtpd_helo_required

  说明:
  设定C-Link邮件系统是否在SMTP连接时必须进行HELO或EHLO握手。
  缺省为不需要。

  例如:
  smtpd_helo_required = no

22,HELO握手主机控制过滤
  参数:
  smtpd_helo_restrictions

  说明:
  当HELO握手必须时。该参数用于验证握手信息是否符合要求。

  可以选择的参数有:
  reject_invalid_hostname 拒绝错误的hostname。
  permit_naked_ip_address 拒绝裸IP地址。
  reject_unknown_hostname 拒绝为被DNS A或MX纪录指定的域名。
  reject_non_fqdn_hostname 拒绝不符合域名规则的域名。
  check_helo_access maptype:mapname 根据mapname中设定的信息限制。

23,RFC821类型信封地址控制过滤
  参数:
  strict_rfc821_envelopes

  说明:
  设定C-Link系统是否必须只接受符合RFC821所定义的负荷规则的邮件地址。  
  缺省为no.

  例如:
  strict_rfc821_envelopes = yes

24,发信人地址限定过滤
  参数:
  smtpd_sender_restrictions =

  说明:
  设定发信人地址必须符合的规则。确实为任意。
  可以设定为以下参数:
  reject_unknown_sender_domain 拒绝为没有DNS A或MX纪录的发信人域名。
  check_sender_access maptype:mapname 根据mapname文件中的规则设定。
  reject_non_fqdn_sender 拒绝不符合规则的发信人地址。

25,收信人地址限定过滤
  参数:
  smtpd_recipient_restrictions

  说明:
  设定特殊的发信人地址参数限制。
  可以选择的参数有:
  check_relay_domains 检测转发域。
  permit_auth_destination 允许经过认证的目的地。
  reject_unauth_destination 拒绝为经过认证的目的地。
  permit_mx_backup 允许反查询MX主机名称。
  check_recipient_access maptype:mapname 根据mapname文件中设定的规则限制。
  reject_unknown_recipient_domain 拒绝转发到没有DNS A或MX纪录的域名。
  reject_non_fqdn_recipient 拒绝不符合规则的转发目标。
  reject_unknown_sender_domain 拒绝没有IP反解析纪录的发件人域名。
  ETRN命令限定过滤
  系统保留,不开放。

26,反垃圾邮件组织过滤
  参数:
  maps_rbl_domains

  说明:
  这是一个非常有特色的反垃圾邮件功能。这个参数通常设定为
  maps_rbl_domains = blackholes.mail-abuse.org

  如果RBL lookup打开,系统回自动与全球著名的反垃圾邮件组织mail-abuse进行同步。组织来自mail-abuse所列举的不安全的电子邮件服务器。

  在缺省状态下这个功能是关闭的。

27,SMTP对话行长度限定过滤
  参数:
  line_length_limit

  说明:
  设定SMTP所接受的最长字符行的长度。
  缺省为2048字节。

28,邮件头部长度限定过滤
  参数:
  header_size_limit
  
  说明:
  设定SMTP所接受的最长邮件头部信息的长度。
  缺省为102400字节

29,收件人数量限定过滤
  参数:
  extract_recipient_limit

  说明:
  限制扩展的收件人数量限制。这通常用于防止采用"sendmail -t"的方式来进行的攻击行为。

30,邮件长度限定过滤
  参数:
  message_size_limit

  说明:
  这个参数很重要。用于限定系统所接受的最大的单封邮件长度。
  缺省为10240000 字节。

  例如:
  message_size_limit = 20480000

31,弹回邮件长度过滤
  参数:
  bounce_size_limit

  说明:
  这个参数非常重要,用于设定弹回的最大邮件尺寸。
  缺省为50000 字节。
... Read more!

amavis的白名单

我现在使用amavis-new加ClamAV加SpamAssassin来抵御垃圾邮件以及病毒邮件,但是不知道为何,SpamAssassin总会将我的一些工作邮件识别为垃圾邮件,估计没有好好学习的缘故,而我的默认规则是BOUNCE掉Spam邮件的,这样一来,搞得很多有用的邮件被Reject。没办法,在没有搞明白学习规则之前,还是启用白名单吧。
直接在Amavis中设定,这些设定将覆盖SpamAssassin的设定,Ubuntu中Amavis的设定文件全部位于/etc/amavis/conf.d目录下面,直接在50-user文件中进行修改,首先启动White List
$sa_auto_whitelist = 1; # turn on AWL (default: false)

下面设定白名单的位置,注意,这些指定的文件必须存在,否则Amavis将无法启动,而且,注意这些文件的权限,Amavis必须要能够访问到。
# 指定白名单
read_hash(\%whitelist_sender, '/var/lib/amavis/whitelist');
# 指定黑名单
read_hash(\%blacklist_sender, '/var/lib/amavis/blacklist');
# 若收件人位于此列表中,则不进行垃圾邮件检测
read_hash(\%spam_lovers, '/var/lib/amavis/spam_lovers');

下面还可以指定一些特定的规则,比如,超过特定大小的邮件可以不经过SpamAssassin的扫描
$sa_mail_body_size_limit = 150*1024; # don't waste time on SA is mail is larger
# (less than 1% of spam is > 64k)
# default: undef, no limitations

# 下面是设定一些评分规则
# 超过这个值,就在邮件头信息中加入Spam信息
$sa_tag_level_deflt = 4.0; # add spam info headers if at, or above that level
# 超过这个标准,则直接被视为垃圾邮件
$sa_tag2_level_deflt = 6.3; # add 'spam detected' headers at that level
# 超过这个标准,则将邮件备份后删除
$sa_kill_level_deflt = 10 ; # triggers spam evasive actions
# at or above that level: bounce/reject/drop,
# quarantine, and adding mail address extension

# 下面是开启调试信息
# Turn on SpamAssassin debugging (output to STDERR, use with 'amavisd debug')
$sa_debug = 1; # defaults to false

然后重新启动amavis即可
... Read more!

Postfix常用维护命令

Ubuntu中Postfix常用工具一般位于/usr/sbin 目录下面
#postqueue -p 显示邮件队列中的邮件,也可以使用可以使用mailq命令。
执行postqueue -q 会得到如下的输出
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
DBA3F1A9 553 Mon May 5 14:42:15 kdent@example.com
(connect to mail.ora.com[192.168.155.63]: Connection refused) kdent@ora.com

最Super的命令:postsuper
#postsuper -d 将某一封queue message 删除,后面直接跟QueueID,比如:
#postsuper -d DBA3F1A9

删除所有的queue
#postsuper -d ALL

#postsuper -sv 检查和修复postfix的邮件

显示指定的Message
# postcat -q DBA3F1A9
... Read more!

使用Greylisting机制来阻挡垃圾邮件

Greylisting的原理:
1,此机制是利用SMTP(SMTP RFC)回传一个ERROR CODE 450的技巧来判断对方是否为垃圾邮件,或者是正常的MTA。当mail server收到一封未知发信者(根据IP)寄来的邮件,mail server会退回此邮件,并且标注上“try angain later”,正常的MTA,在看到这个“try again later”时,会重新发送此邮件。但是一般的垃圾邮件服务器不会理会,而会放弃重新发送。
2,目前的大部分垃圾邮件服务器还没有Greylisting。此机制的优点在于误判率低,效率高,坏处就是邮件会延迟。当然邮件延迟的范围是在mail server首次看到由“未知”IP寄来的邮件时会做这样的处理。对方邮件服务器重送的时间依据对方服务器的设置。
3,如果是属于经常会有邮件来往的IP,则会进入whitelist,直接allow。

在Postfix上的实现是Postgrey,目前Jclips.com邮局也使用了此功能。
在第一次接收某个IP的邮件的时候,我们从maillog中可以看到类似于下面的日志:
。。。。 Recipient address rejected: Greylisted。。。。
就代表Postgrey已经开始工作了。
... Read more!

一起courier-authdaemon认证失败问题的初步解决

最近在设置courier认证,但是发现站内投递邮件老是失败,一直报下面的错误。
ERR: authdaemon: s_connect() failed: Permission denied

在su权限下,使用authtest完全没有问题,但是使用maildrop的用户也提示上面的失败信息。google了一下,很多人建议修改 /var/run/courier/authdaemon 的权限,一般建议改为755,但是我改了一下还是不行。最后想,让authdaemon以我的maildrop的身份运行尝试一下,修改/etc/init.d/courier-authdaemon运行脚本,在chown的地方改成maildrop的用户和组,将chmod的地方由750改为755,然后重新启动此daemon,运行成功。
... Read more!

PSP开发第一步:环境搭建

我使用的是cygwin+psptoolchain的开发环境。这两个工具的安装都需要网络,所以,安装之前请先确保网络通畅。
1,cygwin的安装,在www.cygwin.com下载setup.exe安装文件,cygwin是采用的网络安装的方式,你也可以从http://inst.eecs.berkeley.edu/~instcd/iso/ 下载到最新的cygwin的ISO。安装的时候请确保gcc,gdb,make,patch,svn,wget,automake,autoconf,m4,perl这几个包要安装上,安装automake和autoconf的时候尽量选择最新版本,wget和svn都是用来下载必须的工具和代码的,其它都为编译以及相关的工具。具体关于cygwin的安装,可以参考专门的cygwin的资料,如果第一次接触,那么还是首先要熟悉一下cygwin。

2,psptoolchain,这个是PSP的SDK,可以从http://www.oopo.net/consoledev/#PSP下载到,名字一般为psptoolchain-XXXXXXXX.tgz,XXXXXXXX一般为此SDK的构建日期。可以直接从cygwin里,使用wget来下载,下载后,将此文件放置在Cygwin的你的home目录下,一般为X:\cygwin\home\XXX,然后使用命令tar -xzvf psptoolchain-xxxxxxxx.tgz,解压此压缩包,会在你当前目录下生成一个psptoolchain目录,cd进入psptoolchain,确认使用./toolchain.sh命令进行环境的构建,此过程需要下载对应的安装包以及patch,还要编译相应的环境,比较耗时,请耐心等待,具体需要多少时间,我没有统计,我等了一个多小时,没有结束我就去睡觉了,早上起来的时候,已经好了。

3,环境变量配置以及测试,使用命令vim ~/.bashrc,如果没用过vim的可以直接用记事本编辑x:\cygwin\home\xxxx\.bashrc,xxxx为你的用户名。追加下面几行

export PSPDEV="/usr/local/pspdev"
export PSPSDK="$PSPDEV/psp/sdk"
export PATH="$PATH:$PSPDEV/bin:$PSPDEV/psp/bin"

修改完毕后使用命令. ~/.bashrc重新加载一下配置文件。然后输入psp-gcc -v命令,会得到类似于下面的输出
Using built-in specs.
Target: psp
Configured with: ../configure --prefix=/usr/local/pspdev --target=psp --enable-l
anguages=c,c++ --with-newlib --enable-cxx-flags=-G0
Thread model: single
gcc version 4.0.2 (PSPDEV 20051022)

根据PSPDEV的版本,最后的版本好可能有点出入。以上代表psp-gcc编译器已经安装完毕。下面测试一下是否可以成功编译。使用命令cd $PSPSDK/samples/kernel/cwd进入对应的sample目录,输入make命令,如果没有error一类的东西出现,得到类似于下面的输出
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall -c -o main.o mai
n.c
psp-gcc -I. -I/usr/local/pspdev/psp/sdk/include -O2 -G0 -Wall -L. -L/usr/local/
pspdev/psp/sdk/lib main.o -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk
-lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspus
er -lpspkernel -o cwd.elf
psp-fixup-imports cwd.elf
mksfo 'Working Directory example' PARAM.SFO
psp-strip cwd.elf -o strip_cwd.elf
pack-pbp EBOOT.PBP PARAM.SFO NULL \
       NULL NULL NULL \
       NULL strip_cwd.elf NULL
rm -f strip_cwd.elf

那么就代表已经能够正确编译连接PSP的程序了。
... Read more!

日本五大报纸新闻及时看――「新聞つんどく」


五大新聞(読売、朝日、毎日、日経、産経)聚集工具,能够及时更新,关联阅读。可以从作者的主页上获取最新版本。
... Read more!

日本众院今天通过“日本防卫厅升级为防卫省”

防衛庁の「省」昇格 衆院を通過,来自asahi.com的新闻,日本众议院已经通过“防卫厅”升级为“防卫省”的提案,今天新闻已经正式放出来。日本防卫厅的升级扩大了日本自卫队的活动范围。也使得原“防卫厅”的职能和性质得到了很大的提升。其“名变”有着潜在的质变,也许下一步我们会看到日本拥有军队,再下面我们很可能会看到日本逐步向政治军事大国迈进。
... Read more!

Reiserfs 开发者 Hans Reiser 的悲剧

转载这篇文章,权作提前纪念一下我喜爱的ReiserFS,曾经因为ReiserFS而开始研究文件系统,虽然目前还没有什么成就。不管怎么样,希望ReiserFS这个文件系统能够一直走下去。

Hans Reiser 被怀疑杀害了他的俄罗斯裔妻子 Nina Reiser 。而且似乎警方已经掌握了足够的证据。颇有些社会新闻的色彩,现在发生在了开源软件界。如果最后 Hans Reiser 被证实有罪的话,的确是开源软件的一大损失。

ReiserFS 一向以高性能著称,不过稳定性一直是一个很大的问题。Hans Reiser 被捕的消息传出 ,Novell 旋即(本来可能还在游移不定)宣布旗下的 SuSE 企业版将不再将 ReiserFS 作为默认的文件系统,转而使用 EXT3,的确,在稳定性和性能之间衡量,很多人都会选择前者。SuSE 是唯一一个把 ReiserFS 作为默认文件系统的发行版,这次的倒戈几乎宣布了 ReiserFS 的死刑。

Digg上关于此事很多网友也都表示震惊,并有人贴出一个时间表(我添加了一点):


1997: Hans Reiser 成立 Namesys
1998: Hans Reiser found online a beautiful russian woman.
1999: The woman comes to the USA and they married (she loved him)
1999: She cheats on him
2000: They have children
2000: She cheats on him
2001: She cheats on him / ReiserFS 被纳入到 Linux Kernel 2.4.1
2002: He realizes she doesn't love him, she realizes she can now stay in USA
2002: She cheats on him
2004: They divorce
2005: She wants $130.000
2006: He murders her.

不管怎么样,ReiserFS 见证了一段开源软件乃至互联网的历史。Hans Reiser 也会被人记住。


... Read more!

CVS常用操作。

1,根据版本号比较
cvs diff -r1.3 -r1.5 file_name

2,
查看修改历史
cvs log file_name
cvs history file_name

3,恢复到指定版本号
cvs update -p -r1.2 file_name >file_name

如果用了
cvs update -r1.2 file_name”,file_name加一个STICK TAG:“1.2”,可以使用cvs update -A来取消这个TAG

4,cvs命令缩写形式:commit=>ci; update=>up; checkout=>co; remove=>rm;
... Read more!

Blogspot的另外一种访问方法

这段时间Blogspot的访问是断断续续,不知道是不是Google的高层公关不到位,致使用户对Blogspot是又爱又恨,最近对Blogspot的访问又顺畅了,不知道是暂时的还是永久的。现在看到一种访问Blogspot的方法,比如你的Blogspot的帐号是AAA,那么可以通过http://www.pkblogs.com/AAA,访问到你的Blogspot。详细请看Pkblogs.com
... Read more!

IE7给我们带来了什么?

IE7正式版已经发布蛮长时间,我从Beta1开始,就不断的使用,不断地卸载。之前的测试版本用了总觉得没有什么太大的突破,但是正式版出来了,增加了更多的失望。
1,Tab页浏览,这个应该是响应大多数用户的呼声,市面上大多浏览器都具有Tab页浏览功能,只有IE迟迟未跟进,现在,IE7终于按上了这个功能。但是效果我觉得很差,Firefox新开一个Tab页资源开销很小,而IE7呢,新开一个Tab页,机器几乎要咯噔一下,打开资源监视器,可以发现,每新开一个空白Tab页,CPU要形成一个小峰值,内存也是明显有1M左右的增加。而Firefox呢,新建一个Tab页丝毫看不出CPU有多大的影响,机器也没有那么明显的咯噔一下,毫不费力,而内存也没见什么涨,不知道IE7新开一个空白Tab页到底为何要那么费劲,难道MS真的老态龙钟了么?

2,对标准支持的改进。据说对标准的支持是IE7的重要改进部分,但是真的有这么好么?初步尝试了一下,我觉得IE7的推出是对web开发人员的又一次为难。以前我们开发网页的时候要尽量去兼容FireFox以及IE,现在我们不得不增加一项IE7了。之前有一个页面的CSS,经过一番设置使得其在IE6以及FF上都能够完美的表现,但是最近安装了IE7,竟然发现IE7上错位了,调查了一下,发现IE7又引入了一些新的兼容问题。据调查,IE6/IE7/fx1.5/opear8/opera9对CSS2.1的兼容度分别是:51% 55% 93% 92% 95%;IE对HTML的支持上也仅达到73%。
... Read more!

PPLive 与 PPStream

PPLive与PPStream是两款很优秀的网络电视软件,之前看到很多网络文章,推荐PPLive,国内的网站也大篇幅的报道,PPLive有可能创造下一个网络神话,但是,我在日本的YahooBB却用不了PPLive,一连上去不久猫就会当掉。一开始以为是我的设置问题,但是调了N久,没有成功,有朋友使用YahooBB的也遇到了这个问题。于是在PPLive的论坛上看到国内也有人遇到了这个问题。但是很多人用PPStream的时候就没有遇到这个问题,但是PPStream的名气似乎并没有PPLive高。而610版本以前是只能在中文系统下运行,而非Unicode,今天下载了最新的PPStream,没想到更新很快,已经基于Unicode了。
... Read more!

MySQL-Front 被迫关闭,停止更新

一直很喜欢MySQL-Front这个MySQL的前端工具(我刚刚还在用,真的很可惜.by ugmbbc),不过今天登录mysql-front 网站http://www.mysqlfront.de/突然发现主页被几行文字代替,翻译过来是:

由于MySQL AB 强制要求我们从市场上移除我们的程序,所以MySQL-Front 将停止程序的更新.
感谢大家由始至终的支持!

MySQL-Front 团队

我们希望人们学会一起和谐地工作,而不是相互勾心斗角...

原文如下:

MySQL-Front has been discontinued since MySQL AB forced us to remove this program from the market.

Thanks a lot for all your help!

Your MySQL-Front Team

We hope the humanity will learn to work together instead of fighting another senseless...

... Read more!

UML是什么?是word,是五线谱。(转自UMLChina)

   UML是什么?是一种表达工具。不是思想,也不是设计方法。
   举例来说,音乐的表达方式有很多种,可以用乐谱(书面的),可以用录音(声音的)等等,那么乐谱的表达工具呢?有很多种,比如:简谱、五线谱,还有中国古老的工尺谱等等。
   软件设计的表达工具也有很多种,流程图、伪代码,当然还有UML。
   五线谱是什么?它只是一种标记方法,这种标记方法有其优点(比如,能直观体现出音高),所以这个方法成为世界范围内通用的方法,五线谱之于音乐,恰如UML之于软件。
   五线谱本身并没有告诉你应该如何作曲,熟悉五线谱也不意味着你同时就会作曲,当然熟悉五线谱,可以保证你读懂别人的音乐作品。同样,UML本身也没有告诉你如何设计软件,但是,你熟悉了UML,就可以看懂别人的设计,如果你自己也有设计上的思路,你也可以用UML表达出来,大家也都能看得懂。
   所以,掌握UML只是成为软件设计师的必要条件,要想真正成为软件设计师,还需要有很多 设计经验,通过设计模式的学习,了解前人的设计套路(注意,模式就是套路),也是一个比较好的途径。
综上所述:
   1、掌握UML和编码工具(如C++/java),就像一个既能看懂图纸又会操作车床的工人一样,能把别人的意图弄明白,继而实现出来。这是技工的级别。
   2、掌握UML+设计模式,就能比划着也进行一点设计了。这是实习设计师的阶段。
   3、掌握UML,再有自己的创意,这就是到了真正的软件设计师了,就像从演奏上升到作曲,写字上升到创作了。

   另外还可以拿WORD来比如UML。不会用WORD,照样可以当作家。只是传播你的作品比较费事,需要别人来录入、排版。
   不会用ROSE,也可以作软件设计师,只是传播你的设计比较困难,因为需要别人来把纸上的图形输入到工具中。
   不会用UML,也一样可以成为软件大师,UML定型以前,大师们不是一样可以产生?就像五线谱定型以前,很多民间艺人照样可以成为一代大师,比如瞎子阿炳。阿炳哪里懂什么五线谱?还不一样有《二泉映月》?
... Read more!

!important CSS布局的利器

语法格式{ sRule!important },即写在定义的最后面,例如:

box{color:red !important;}

最重要的一点是:IE一直都不支持这个语法,而其他的浏览器都支持。因此我们就可以利用这一点来分别给IE和其他浏览器不同的样式定义,例如,我们定义这样一个样式:
.colortest {
border:20px solid #60A179 !important;
border:20px solid #00F;
padding: 30px;
width : 300px;
}

在Mozilla中浏览时候,能够理解!important的优先级,因此显示#60A179的颜色:
在IE中浏览时候,不能够理解!important的优先级,因此显示#00F的颜色:
可以看到,利用!important,我们可以针对IE和非IE浏览器设置不同的样式,只要在非IE浏览器样式的后面加上!important。因此,上面提到的我的主页2px的显示差别也轻松解决:
PADDING-TOP: 11px !important;
PADDING-TOP: 9px;

!important必定成为CSS布局的利器,请记住和掌握它吧:)
... Read more!

修改了页面模板

    现在的这个模板是按照一个Wordpress的Theme修改而来的,之前看到了Wordpress的这个Theme,非常喜欢,花费一晚的时间照搬过来了,可惜还有点不完美,文章的分割线划出界了,没找到如何修改的办法,先暂时这样,再慢慢完善。


... Read more!

我们的心加剧冷漠 国外却在流行自由拥抱

社会的磨炼让我逐渐长大,最近一个朋友的一件事情让我想到了这个blog,我转贴一下。因为在很久以前,属于同样性质的事情真实的发生在了我的身上,而且,我父亲从不远处也目击到了整个过程。应该是1999年左右,我刚刚上大学,有一次父亲到我上学的城市来看我,下午我送父亲回家,从公交车站到长途汽车站有一段距离,走路大约需要20分钟,父亲和我走了一段就让我先回去自己一个人去车站,我往回走没有两分钟,被一个人叫住了,一个年轻人,他跟我说,他和妹妹到这边来办事,结果钱包和行李全丢了,想要我借点钱给他们打电话回家,让家里人汇钱过来。我当时也没有细想,就掏了10块钱给他们打电话,然后就准备走,他们一直在说谢谢,但是他们接着又说,钱汇到这边需要一点时间,能否再借点住宿费给他们,然后要我留下我的联系方式,他们拿到钱一定还我,我起了警觉心,我说,如果是这样的话,你们可以找警察帮忙,那个人支支吾吾的说找警察比较麻烦,因为他们是外地人。这个时候我父亲走过来了,来询问什么事情,简单听完了马上就拉我走开,然后告诫我,不要随便和陌生人搭话,一个人在社会上这样的事情要十二分的注意。从那时候起,我似乎就变得不那么热心了,见到可怜的乞丐也不随便给钱,见到有人搭讪就会装作没看见,在车上看到有人吵架也会比上眼睛睡觉。就如下面的文章所说一样,心,慢慢的变得冷漠了。

来自:无聊布棉的blog

我们的心加剧冷漠 国外却在流行自由拥抱

昨天晚上,10点多回家,在楼下,一个女子坐在路口很痛苦的样子,叫住了我,客套一番之后,说自己病了,去看病差了一点钱,希望我能帮她,她家就在楼上, 她老妈还没回来,所以现在回不去拿钱。开头我觉得很奇怪,这样很正常,不过我转念一想何必,对于这种情况,我似乎宁愿以小人之心度君子之腹,我说不好意 思,我没这样的义务,还说了一句不好意思。

回去了觉得钱也不多,被骗也就被骗了,于是赶快下楼,那女子已经不在现场了。一直羞愧至今天中 午。中午和室友下去买菜,讲起这个事情,他很惊讶,他说他就不久前也碰到这样的事情,并且还把钱给他了,几十块。我把那个对白重新复述一次,一模一样。我 在庆幸自己没被骗的同时,我也在考虑以后万一碰到真的要帮的人怎么办?这个世界上究竟有多少人实在利用我们的同情心在骗钱?或许下次我应该更聪明一些,跟 着她直接去医院付钱才对。

在今天晚上,在豆瓣发现了一个名为“free hugs”的小组(free hugs官方网站),讲的是国外最近比较流行的自由拥抱的活动,在很多国家,包括韩国、泰国、美国等都很流行,他们把在街上实施的free hugs拍成DV放到youtube(视频列表),非常感人,最初的那个澳大利亚小伙,在youtube的视频已经获得了450万的点击和过万评论。

在群里面有人说,什么时候国内也组织一下这种活动,实际上在北京等地已经有人在搞,但是我并不看好,我说了一句:“中国的痴男怨女太多,善于表达的太少,所以很难成功。”以前,暴闪族在国外很流行的时候,曾经有人搞过这么一两场,但是据说都不是很成功,一个是组织性,另外一个则是中国的文化。

回到刚才骗子的话题,我们的同情心都在被骗子一刀一刀地割下来,一个人的情感都是在被不断打击后“坚强”起来,也灰暗起来。如果国内搞free hugs,或许人家给你的不是hugs,而是一个个差异的目光,在这目光背后,就是鄙夷与不解,或许人家觉得你有什么目的。

你有什么目的?或许就是我们给站在你面前的人所设定的一个套,这个圈套最后很可能是自己往里面跳。

... Read more!

从eMule到aMule

最近从eMule迁移到aMule,但是在eMule下面已经有蛮多的积分了,不想再从头开始, Search了一下,找到了下面的迁移方法:

只需要拷贝criptkey.dat 和 preferences.dat两个文件到~/.aMule文件夹就可以了。你的user hash就可以成功导入aMule中。

你也许会发现“统计”里面你的上传都没有了,没错,那些都是浮云,而且我可以告诉你,你想要多少G就有多少G,因为 ~/.aMule/amule.conf是可以编辑的,修改该文件[Statistics]里面的内容,想多少就是多少(如果money也可以这么改就好了……),改成一个非常大的数值然后再用wxCas做一个在线签名,挂到verycd的论坛上,YY去吧。当然,你改这个是没有用地。你的积分,你的上传量是在别人的机器上,别人的机器会认出你user hash来的,所以该修改只能用来YY。
... Read more!

设置Solaris10下面的默认编辑器

一般的Linux系统都有默认的系统变量标识当前默认的文本编辑器,这样在一些应用程序里面可以自动的进行调用。比如在cvs commit的时候,如果没有指定-m,那么会自动调用文本编辑器让你进行comment的编辑。但是Solaris10下面似乎没有默认的指定一个文本编辑器。通过下面的环境变量的设置来设定默认编辑器:

EDITOR=/opt/sfw/bin/vim
export EDITOR

... Read more!

Solaris10中vim实现高亮显示。

安装好了SunStudio11后,vim也就顺带着安装了,vim比vi好用多了,但是一直没有办法实现高亮显示,一开始以为是终端类型的问题,在bash中设置了好多种终端类型但是还是无法解决问题。后来在vim的老家看到一下的建议,在.vimrc中添加终端类型变量设置:

set term=sun-color
syntax on

现在终于告别黑白时代了。
... Read more!

Solaris10中关闭和开启系统服务。

    与solaris 9(包括9)以前的版本不同,solaris 10提供了功能强大且使用方便的服务管理工具smf(service management facility),通过这个工具,可以方便的管理握solaris 10的服务。

1、 查看系统所有的服务 #svcs -a
2、 开启/关闭/重启系统服务 #svcadm enable|disable|restart <服务名> 。


其中,svcs命令可以在普通用户权限下运行。
... Read more!

Solaris10 x86与Ubuntu实现共存。

        一直用的Ubuntu作为我的服务器,最近开始接触Solaris10 x86,觉得很不错,于是想装在我的Ubuntu的机器上,实现双启动,因为Solaris10和Ubuntu都是使用得Grub,直觉上觉得应该很简单,添加一个启动项目就可以了。我机器上原来已经有了Ubuntu,装Solaris的时候覆盖掉了MBR,安装好后,按照原来Ubuntu的menu.lst在Solaris的Grub里面添加了相应的启动项目,但是启动失败,在进行root check的时候停住了,以为Solaris的Grub版本太老了,于是重新安装Ubuntu的Grub,但是这下无法启动Solaris,Google了一下,得知两个Grub是有一些不同。查看了一些资料,提示使用chainloader 的方式可以,于是,重新安装ubuntu的Grub,这次安装在ubuntu的boot分区上,然后重新启动计算机,进入到Grub后通过命令行进行测试:
Grub>root (hd0,7)
Grub>chainloader (hd0,7)+1
Grub>boot

        我的ubuntu的boot是单独分区的,要知道boot的分区号码,可以在grub的命令行里,输入root (hd0, 后点tab,会列出所有的分区信息,这个时候可以找到你的boot的正确分区位置。

        果然通过,于是进入到Solaris将menu.lst中添加此启动项目,顺便将启动时候的图片去掉了,因为转交给ubuntu引导权后,界面会花掉。
chainloader的含义:
chainloader (hd1,0)+1 #装入一个扇区的数据然后把引导权交给它。
... Read more!

Solaris10 中修改主机名

修改下列文件

/etc/inet/hosts
/etc/hostname.xxx(xxx代表你的网卡的名称)
/etc/nodename
/etc/inet/ipnodes(ipv6协议使用的主机文件)

然后重新启动即可。


... Read more!

Solaris10 x86中DHCP客户端设置

创建两个空文件,是网卡适配器的名字,这两个文件用于系统启动时自动启动dhcp。

# touch /etc/hostname.
# touch /etc/dhcp.

网卡适配器的名字的我们可以通过ifconfig -a 或者文件/etc/path_to_inst得到。 如果需要立即使用dhcp的话,可以执行一下命令:

# ifconfig  dhcp start

... Read more!

Putty远程登录Solaris10时日语文字的输入。

这里可以下载 到支持日语的Putty客户端,这样显示日语就基本上没有问题了,但是在连接Solaris10的时候通过Vi不能够正常输入日语,也不能通过鼠标右键拷贝粘贴日语文字。这是由于.profile配置文件中的stty istrip选项引起的。编辑你的.profile,将stty istrip这一行注释掉。然后可以不注销当前的回话,通过source ~/.profile或者. ~/.profile来使得当前的环境变量生效,并且执行一下stty -istrip。现在你就可以输入并且粘贴日文了。

参考:http://pooh.gr.jp/item-839.html
... Read more!

Solaris10 x86下ViewCVS的配置

直接去Viewcvs的主页下载最新的稳定版viewvc-1.0.3的压缩包,解压缩后,使用root用户执行viewvc-install,执行之前先确认viewvc-install文件中python的目录是否正确。默认安装在/usr/local/viewvc-1.0.3目录下,安装完毕后,进行相关配置。

1,配置viewcvs
使用vi编辑/usr/local/viewvc-1.0.3目录下viewvc.conf文件。修改一下几项
cvs_roots = cvs: /home/cvsroot
default_root = cvs
rcs_path = /usr/local/bin/

注意,默认的rcs_path设置项目是注释掉的,而rcs在Solaris10中默认是没有安装rcs的,去http://www.sunfreeware.com下载安装包进行安装。我因为rcs没有安装折腾了很久。

2,配置Apache
我用的是Apache2,编辑/etc/apache2/httpd.conf文件,增加下面两行:
ScriptAlias /viewvc /usr/local/viewvc-1.0.3/bin/cgi/viewvc.cgi
ScriptAlias /query /usr/local/viewvc-1.0.3/bin/cgi/query.cgi

重新启动Apache,通过浏览器你就可以正常访问viewcvs了。
... Read more!

Vim高效编辑命令

1,gg快速定位到文件头
2,G快速定位到文件尾
3,ma 当前行创建一个名字为a的bookmark,你也可以mb,mc
4,`a 快速跳转到名字为a的那一行
5,`. 快速跳转到你最后编辑的行
6,gd 快速跳转到当前光标所在变量或者函数名的定义处
... Read more!

Solaris10 X86下CVS的安装以及CVS服务的配置

1,下载CVS软件包
从下面的网站下载对应的软件包(我没有直接从源码进行编译)
http://www.sunfreeware.com/

2,安装CVS软件包
将下载后的软件包解压缩,然后使用下面的命令进行软件包的安装
#pkgadd -d <软件包绝对路径>

3,添加用户以及用户组
我直接使用Solaris10提供的图形管理工具进行cvsroot用户,以及cvs用户组的添加。或者可以使用如下命令:
用命令“useradd –d 用户的home目录 –s 用户的缺省shell类型 –g 用户所属组 用户”

4,端口配置
使用下面的命令
# vi /etc/services
打开services文件,添加如下两行(我是添加在行尾):
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations

使用下面的命令
# vi /etc/inetd.conf
打开inetd.conf文件,添加下面一行:
cvspserver stream tcp nowait root /usr/local/bin/cvs -f --allow-root=/home/cvsroot pserver

使用下面两个命令进行新旧配置文件的转换:
#inetconv -n
#inetconv -e
在/var/svc/manifest/network目录下生成cvspserver-tcp.xml文件
进入profile目录
#cd /var/svc/profile
编辑Service文件
#vi inetd_services.xml
添加如下内容:

  <service name='network/cvspserver-tcp' version='1' type='service'>
   <instance name='default' enabled='true'/>
  </service>


5,重新启动服务器
6,确认服务
#netstat -a |grep cvs
*.cvspserver *.* 0 0 49152 0 LISTEN
//表明cvs服务启动起来了

或者:
#inetadm |grep cvs
enabled online svc:/network/cvspserver/tcp:default


6,库的初始化
看了很多资料,进行库的初始化的时候都使用下面的命令:
#/usr/local/bin/cvs -d /export/home/cvsroot init

但实际上这个命令是执行不通的(同样的,上面的一些步骤,很多资料上设置的CVSROOT变量都是基于/export/home/cvsroot),因为Solaris10的安全机制的问题(如果没有为home单独分区的话,那么是无法直接访问,此机制正在调查中)/export/home下的目录是不能够直接访问的。所以,我使用下面的命令
#/usr/local/bin/cvs -d /home/cvsroot init

我是使用root身份进行的,然后将/home/cvsroot的目录整体权限修改一下,设置成owner是cvsroot,cvs组具有读写权限。然后所有有cvs访问要求的成员都加入到cvs组中去。

设置完毕!


... Read more!

[转]Solaris性能监控的Swap空间管理

随着电子商务如火如荼的开展,网站服务器的性能变得尤其重要。一旦服务器的能力不能满足用户的需要,就会对用户的服务大打折扣,那么就需要对服务器进行升 级扩容。但是,有些时候只需对服务器进行一些适当的性能调整,便可以越过性能的瓶颈,大大提高服务器的吞吐能力,从而减少服务器升级的费用。

本文介绍了在Solaris平台上Swap(交换)空间的基本概念、实现的原理以及对Swap(交换)空间进行监控的方法和调整的策略。

什么是SWAP(交换)空间

对于一般的Solaris系统管理员来说,很少会接触Swap(交换)空间,在他们看来Swap区只不过是磁盘上的一两个分区或是几个Swap (交换)文件,当系统没有足够的物理内存来处理当前进程的时候,就利用Swap(交换)空间作为虚拟内存的临时存储空间,这种说法从技术角度来说是没有错 的,但Solaris在实现Swap时有其非常独特的地方。

SWAP空间作用

众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的空间,更重要的是“虚拟内存”是隔离每个进程的安全保护网,使每个进程不受其他程序的干扰。

Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放 的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内 存中。这样,系统总是在物理内存不够时,才进行Swap交换。这种现象对于计算机使用者是经常遇到的。

有一点要声明的是,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap会不堪重负),有相当一部分的数据直接交 换到文件系统。例如,有的程序会打开一些文件,对文件进行读写(其实每个程序都至少打开一个文件,那就是运行程序本身),当这些程序的内存空间需要交换出 去时,文件部分的数据就没有必要放到Swap空间中了,如果是读文件操作,那么内存数据直接就释放了,不需要交换出来,因为下次需要时,直接从文件系统就 能恢复;如果是写文件,只需要将变化的数据保存到文件中,以便恢复。但是那些用malloc(3C)和new函数生成的对象的数据则不同,需要Swap空 间,因为它们在文件系统中没有相应的“储备”文件,因此被称为“匿名”(Anonymous)的内存数据,这类数据还包括堆栈中的一些状态和变量数据等, 所以说,Swap空间是“匿名”数据的交换空间。

Swap的配置对性能的影响

太多的Swap空间会浪费磁盘的空间,而太少的Swap空间,系统则会发生错误。

如果系统的物理内存用光了,你的系统就会跑得慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请 求数量衍生出多个服务进程(或线程),如果Swap空间用完,则服务进程无法进动,通常会出现 "application is out of memory"的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。

通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍 (Solaris 2以上的版本有所变化,见下文)。但根据不同的应用,应有不同的配置:如果是小的桌面系统,只需要较小的Swap空间,而大的服务器系 统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器会随着访问量的增加,对Swap 空间的要求也会增加,具体配置参见各自服 务器产品的说明。

另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘I/O的操作,如果有多个Swap交换区,Swap空间的分配会以 轮流的方式操作于所有的Swap,这样会大大均衡I/O的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统 大多数时间位于等待状态,效率很低,用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢,这说明,瓶颈在I/O上,依靠提高CPU的速度是解决不 了问题的。

性能监视

Swap空间的分配固然很重要,而系统在运行时的性能监控却更加有价值,通过性能监视工具可以检查系统的各项性能指标,找到系统性能的瓶颈。本文只介绍一下在Solaris下和Swap相关的一些命令和用途。

最常用的是Vmstat命令,在大多数Unix平台下都有此命令,此命令可以查看大多数性能的指标。

另外使用swap -s 也能简单的查看当前swap资源的使用情况。例如:
# swap -s
total: 65896k bytes allocated + 56840k reserved = 122736k used, 1069456k available

能够方便的看出swap空间的已用和未用资源的大小。应该使Swap保持30%的负载以下,才能保证系统的良好性能。

Solaris中Swap的特点

虚拟Swap空间

本来Swap空间就是为虚拟内存服务的,现在Solaris的Swap空间也成为虚拟,这到底是怎么回事呢?

让我们看一个例子就明白了,当在Solaris 2以前版本的Solaris(或其它Unix, 如Linux)上编程时经常会出现一个问题:

假设系统当前还有可用的内存空间为30M,而只剩下10M的Swap空间了,这时,如果有一个进程开始运行并企图执行Malloc(15*1024*1024)的命令(分配15M空间),这个进程会因为这个命令而失败。

为什么呢?系统不是有30M可用的内存空间吗?原因在于:你的Swap空间不足,系统认为你在分配空间以后,没有能力(空间)在发生页面交换时, 将这部分数据保存起来,因此认为你没有资格分配这块空间。这不是太不公平了吧!也许这15M空间根本不用交换,当前系统可是还有30M内存空间的富余啊!

还有更不公平的呢?有些大型系统配备了海量的内存,1G或4G,配了这么多内存就是为了避免交换,提高运行速度,可是系统还要为这个系统分配并不需要的Swap空间,占用了大量磁盘资源。

为了弥补这个缺陷,Sun为Solaris 2 以后的版本设计了虚拟Swap空间。所谓虚拟的Swap空间,概念其实很简单,swap空间再也 不是单指硬盘的分区或文件。虚拟Swap空间包含两个部分:部分物理内存和传统上的Swap分区。经过适当的配置,可以使系统需要Swap空间时,先使用 内存部分的swap空间,如果内存部分的swap空间不够,再使用磁盘部分的Swap空间。这样,也许你硬盘上的Swap空间很少得到使用了,甚至根本不 需要Swap分区。

Swap空间与TMPFS文件系统的关系

你知道吗?虚拟Swap空间与 /tmp目录有相当大的关系。Sun在实现
/tmp目录时,充分考虑了应用程序运行的效率。许多应用程序,特别是数据库服务都会频繁使用
/tmp目录作为临时数据保存区,而Solaris将
/tmp目录下的文件都放在内存中而不是硬盘里,这样会大大提高应用程序的效率。

但是/tmp目录的空间是从系统虚拟空间里挤出来的,是虚拟Swap空间的一部分。如果说,你用完了/tmp空间,也就是用完了Swap空间,所以要小心监视系统的/tmp目录的使用情况,千万别用光了,否则系统会瘫痪!下面两点建议作为参考:

1.在Mount /tmp目录时,使用(-o Size)选项来控制/tmp目录的大小。

2.当使用编译器编译文件时,如果不想占用Swap空间,则用TMPDIR环境变量指向另外一个临时目录,而不是/tmp目录。

有关Swap空间操作的系统命令

增加Swap空间

1.成为超级用户 $su - root

2.创建Swap文件 #mkfile nnn[klblm] filename
如:#mkfile 100m swapfile1

3.激活Swap文件
#/usr/sbin/swap -a /path/filename
Swap文件必须以绝对路径来指定,filename指的是上一步创建的文件。

4.现在新加的Swap文件已经起作用了,但系统重新启动以后,并不会记住前几步的操作。因此要在/etc/vfstab文件中记录文件的名字,和Swap类型,如:
/path/filename - - Swap - no -

5.效验Swap文件是否加上 /usr/sbin/swap -l

删除多余的Swap空间

1.成为超级用户

2.使用swap -d 命令收回swap空间。
#/usr/sbin/swap -d /path/filename

3.编辑/etc/vfstab文件,去掉此Swap(交换)文件的实体。

4.从文件系统中回收此文件。
#rm swap-filename

5.当然,如果此Swap(交换)空间不是一个文件,而是一个分区,则需创建一个新的文件系统,再挂接到原来的文件系统上。

(http://www.fanqiang.com)

... Read more!

一起由于Swap空间不足引起的编译错误。

环境:
VMware5.5,Solaris10 X86,SUN Studio11,GNU Make

问题发生:
    在编译一个库的时候,每次进行到一个Table文件时就会耗费大量时间,硬盘,CPU均占用很高,在5分钟左右的编译后,报出如下错误
Failure in /opt/SUNWspro/prod/bin/fbe, status = 0x7f00
Fatal Error exec'int /opt/SUNWspro/prod/bin/fbe
gmake: *** [XScenarTb.o] Error 1

问题解决过程:
    1,首先放狗,关于这个错误的资料出奇的少,就在SUN的论坛里面看到一个类似的,提示是一个编译参数compat的问题,但是我编译的时候并没有用到这个参数,不管它,死马当活马医,加入这个参数,重新编译,还是不行。

    2,在SUN的开发者论坛上发帖,反应很快,Boris_Ivanovsky给了我一个回复,说可能是编译器的bug,要我去提交一个bug,老天,我可不希望是这个结果,如果是这个结果的话,我的开发就彻底的停滞了,要等到SUN出最新的PATCH方可解决这个问题。继续等待,又一个好心的网友留言说,这个可能是一个bug,但是现在已经有一些PATCH出来了,提示我安装PATCH后再试试。JDS桌面下有Update Manager,看起来很方便,而且已经有更新提示,于是点击其提示图标,貌似JAVA做的,启动很缓慢,于是等待,老天,足足半个小时没有反应,有了反应过后选择更新项目,移动鼠标点击checkbox,犹如冰上行走,很是艰难,SUN的东西确实得小型机才能够运行,服了。选中SunStudio相关的7项,点击更新按钮进行更新,未料,又是一场噩梦,足足又花费了1个小时,其间多次停滞不动,末了,更新失败。从失败提示也没有看得出来是什么原因。使用它的更新工具不行,于是决定尝试手动更新,到相应的Patch页面下载Patch包,放到自己的home下面,解压,按照提示的命令进行patchadd,未料,失败。查看失败信息,提示某个文件无法读取,又放狗,狗到的结果提到放置Patch的父目录的权限问题,于是设置成任何人可读写,还是不行,放到/tmp目录下,竟然可以了。又一次晕倒。在更新第二个Patch的时候,又失败,这次的失败提示看懂了,提示磁盘空间不够。查看了一下空间根目录只有400兆,交换空间也只有300M,而这个Patch就需要400M左右的空间,我是使用得VMware,没办法只能重新做。这次仅划分两个区,根目录,以及swap,总共10G,不过swap还是使用默认的500M,这次顺利的将Patch全部装上。安装完成后,继续进行编译,还是不成功。突然想到安装Patch的时候因为磁盘空间不够,而失败,现在编译是不是也可能是磁盘不够?因为在编译到那个失败的文件的时候,长时间的进行硬盘读写。于是再一次编译,然后监控硬盘空间的变化,发现在一段时间过后swap占用达到80%以上,然后就编译失败了。猜想可能是swap空间不够导致的。于是重新追加1G的swap,重新编译,编译过程异常紧张,在大约10分钟过后,终于通过了这个顽固的文件。接下去就非常顺利。

问题的原因:swap空间不够,不要吝啬,多给点,下次装机器,一定给2G,记得以前的规则是内存的两倍。
... Read more!

Solaris下增加swap空间的办法

# mkdir /files
# mkfile 100m /files/swapfile
# swap -a /files/swapfile


然后要加入/etc/vfstab里面一行:
/files/swapfile - - swap - no -
... Read more!

Solaris10下Patch的艰辛历程。

编译的时候发现编译器出现了一个错误,google了一下,据说是编译器的一个bug,要求打patch,Solaris10提供一个Update manager,于是启动之,未料是JAVA写的,反映爆慢,更新到一半,进度条停住了,等待等待再等待,下去吃了午饭,回来小睡了一会儿方见其开始反映,爆郁闷。末了,更新失败。。。彻底无语,查看失败记录,无任何可帮助的信息。于是继续Google,查询是否可以手动更新的方法。提示,在Solaris下有patchadd命令,于是下载相应的Patch,使用patchadd进行更新,未料又是错误,提示不能打开文件。好奇怪,于是将所有的文件权限设置成a+rw,还是未果,继续Google,在一个论坛的末尾看到,有人提示将patch放到/tmp目录下。马上去尝试,果然成功,晕倒,之前我都将目录以至于放patch的父目录都设置成a+rw,不知道为何。
... Read more!

Solaris10和Ubuntu双系统共存的困惑。

最近开始接触Solaris10 X86版,之前的测试一直是在VMware上进行,所以不存在多系统共存的问题,因为在VMware上总觉得有点隔靴挠痒,不是很爽,所以想直接完整的装在真实的机器上看看。因为家里的电脑已经有一个系统Ubuntu,一直作为服务器在运行,里面已经包含了大量的数据,所以准备双系统共存。因为Solaris和Ubuntu都是用的Grub来引导系统,所以,很自然的认为,Grub能够自由的引导两个系统,但是安装好了发现随Solaris安装上去的GRUB无法引导Ubuntu,后来看到Ubuntu的GRUB版本比较高,于是又重新安装了Ubuntu的Grub,但是紧接着,Solaris无法引导了。困惑。
... Read more!

此make非彼make,Solaris10下的make失误

最近一直在做代码迁移的工作,之前SunOS5.8上,某些东西支持的不好,于是尝试Solaris10,现在Solaris10可以免费下载,而且可以在普通X86机器上运行,SunStudio11也提供免费下载。
安装一切顺利,但是在make代码的时候就遇到了问题。首先是make命令找不到,查了一下资料原来默认的环境设置没有包含相应的开发工具的目录。默认的PATH里面只有下列内容:
PATH=/usr/bin/:.
必须将相关开发工具的目录包含进去:
PATH=/opt/SUNWspro/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/openwin/bin:/usr/sfw/bin:/usr/ucb:/etc:.

紧跟着make的时候又遇到问题,连基本的编译都无法进行,以为makefile写错了,修改了N遍还是没有效果,后来想到,是不是版本的不兼容,察看了一下make的版本,原来此make并不是GNU的make,Solaris10默认提供的gnu make在/usr/sfw/bin目录下,而且命令的名字叫gmake。
... Read more!

Linux下使用jsvc将Tomcat作为服务进程运行

Running Tomcat 5.5 as Linux Daemon

在下载的Tomcat包中就直接带了jsvc的源代码,可以很简单的自己构建一下。假设Tomcat被解压在$CATALINA_HOME目录下,按照下面的命令进行构建jsvc

cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..

在$CATALINA_HOME/bin目录下就可以看到一个jsvc可运行文件。接下来配置service脚本。
以root身份创建/etc/init.d/TomCatJsvc脚本,写入如下内容:

JAVA_HOME='/home/tomcat/jdk1.5.0_06'

CATALINA_HOME='/home/tomcat/apache-tomcat-5.5.16'

CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar:$JAVA_HOME/lib/tools.jar

TOMCAT_USER=tomcat
TMPDIR=/var/tmp


RC=0

case "$1" in

start)

$CATALINA_HOME/bin/jsvc \

-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \

-Djava.io.tmpdir=$TMPDIR \
-Djava.awt.headless=true \

-outfile $CATALINA_HOME/logs/catalina.out \
-errfile $CATALINA_HOME/logs/catalina.err \

-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap

RC=$?

[ $RC = 0 ] && touch /var/lock/subsys/tomcat

;;

stop)

PID=`cat /var/run/jsvc.pid`

kill $PID

RC=$?

[ $RC = 0 ] && rm -f /var/lock/subsys/tomcat /var/run/jsvc.pid

;;

*)
echo "Usage: $0 {start|stop}"
exit 1

esac
exit $RC



使用root身份运行此服务
# /etc/init.d/TomCatJsvc start

可以使用
ps -ef|grep tomcat
确认此服务是否运行,另外可以通过浏览器访问,察看此服务是否已经运行。
... Read more!

构建Ubuntu开发环境

默认安装的Ubuntu desktop版本是不带开发环境的,必须自己构建,只是多了两步而已,也非常方便。
sudo apt-get install manpages-dev
安裝C/C++的Man手冊,這樣你就可以隨時的查看一些你不太瞭解的函式的原型,具体參數說明等;還可以查看一些include檔案的具体說明。

sudo apt-get install build-essential
安裝gcc,g++,make等
... Read more!

男と女

中文名:让我欢喜让我忧

歌手:CHAGE & ASKA
作詞:飛鳥涼
作曲:飛鳥涼

誰もが一度は ひき返す道
二人でここまで歩いて 来たのに
あなたの心が 足をとられて
冬の坂道 ころがりはじめた
ふるえる肩越しに あなたのさよなら
背中で 涙をかくす 私

※あなたの愛をもっと ぬくもりをもっと
あふれるほどに
あなたの愛をもっと ぬくもりをもっと
感じていたかった※

言葉ひとつに うなずいたのは
あなたが望む 離別だから
心の支えは いつの時代も
男は女 女は男

あなたを信じて ささやかな夢
積み上げたのは 女の私
幸せだったと 最後に言わせて
せめてさよならは 飾ってみたい

(※くり返し×2)

心の支えは いつの時代も
男は女 女は男
... Read more!

夕焼けの歌

中文歌名为:千千阙歌,曾经陈慧娴翻唱过,我很喜欢。

歌手:近藤真彦
作詞:大津あきら
作曲:Mark Davis

゛あばよ゛とこの手も 振らずに
飛び出した ガラクタの町
あんなに憎んだすべてが
やりきれずしみるのは何故か
憧れた夢さえまだ報われずに
人恋しさに 泣けば・・・・

※ゆらゆらとビルの都会に広がる
あの頃と同じ 夕焼け空
クソ食らえとただ
アスファルト 蹴りつけ
ああ春夏秋・・・と※

この都会誰れを迎い入れ
また誰れを追い出すのだろう
はじめて恋したお前は
俺の目が好きと言ったのに
握りしめたこぶしが 空振りする度
何が宝と言えば・・・

☆ゆらゆらと俺の頬に焼きつく
あの頃と同じ 夕焼け空
土下座したいほど
愛が欲しいだけ
ああ春夏秋・・・も☆

Oh 弱虫の涙が
こぼれないように
空を見上げ 歩け

(※くりかえし)
(☆くりかえし)
... Read more!

君が好きだと叫びたい

中文老爹翻唱过,叫:好像大声说爱你


歌手:BAAD
作詞:山田恭二
作曲:多々納好夫

眩しい陽差しを背に 走り出す街の中
たたかれた いつものように肩を
君に夢中なことに理由なんてないのに
その腕は 絡むことはない

いつの間にか瞳 奪われて始まった
離さない 揺るがない Crazy for you

※君が好きだと叫びたい
明日を変えてみよう
凍りついてく時間をぶち壊したい
君が好きだと叫びたい
勇気で踏み出そう
この熱い想いを 受け止めてほしい※

ざわめいたフロアににぎわうテーブル越し
なにげない 君の視線に酔いしれ
恋をしているようで躍らされてるような
高鳴る鼓動に もう うそはつけない

いつになれば変わる このもどかしい友情
届けたい 確かめたい I take you away

君が好きだと叫びたい 何もかも脱ぎ捨て
心とかす言葉を見つけ出したい
君が好きだと叫びたい 今夜は帰さない
見つめるだけの日々なんて
終わりにしよう I wanna cry for you

(※くり返し)

I wanna cry for you
... Read more!

服务器出现不可挽救的问题,重新配置中

一味追求新,在没有充分准备下升级到Edgy,在经过一阵捣鼓,终于系统百病缠身。关闭掉一切服务,重新修整中,预期明天晚上能够完全修复。
... Read more!

Edgy升级失败,郁闷中。

Ubuntu6.1,代号Edgy, 近期已经放出Beta版本,挡不住诱惑,进行升级。按照官方的Wiki,使用gksu "update-manager -c -d" 命令进行升级,没料到一路坎坷,遭遇4个失败,选择忽略得以进行下去,但是最终还是提示我升级失败,系统处于不稳定状态。提示我使用: apt-get -f install 命令。但是在执行 apt-get -f install的时候出现下面的信息:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在更正依赖关系... 完成
将会安装下列额外的软件包:
courier-authdaemon courier-authlib
下列【新】软件包将被安装:
courier-authlib
下列的软件包将被升级:
courier-authdaemon
共升级了 1 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 29 个软件未被升级。
有 8 个软件包没有被完全安装或卸载。
需要下载 0B/83.9kB 的软件包。
解压缩后会消耗掉 164kB 的额外空间。
您希望继续执行吗?[Y/n]Y
dpkg:处理 courier-authdaemon (--remove)时出错:
该软件包现在的状态极为不妥 - 您最好能
在删除它之前再重新安装一次。
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct NULL not valid
忽略 (core dumped)
:~$ 在处理时有错误发生:
courier-authdaemon

依然无法正常消除错误。问题等待,晚上继续搞。
... Read more!

SunOS 5.8下的挣扎

最近有一批代码,要移植到SunOS 5.8,GCC 3.2.2下,SunOS 5.8应该就是Solaris 8吧,这批代码原来是在别的编译器下写的据称是标准C++。有了这样的保证,原以为会一帆风顺,哪知道一路磕磕绊绊。编译头几个库的时候没有任何问题,只要改一下编译器选项即可。到第三个库的时候开始出问题了,提示找不到,然后紧跟着一大批的uint8_t 未定义,头大,google了一下,方知stdint.h是C99标准里定义的头文件,GCC有部分是不支持的,无奈,只能自己写了一个stdint.h,因为在GCC3.2.2下面有一个inttype.h,里面包含了uint8_t 的定义,简单的在stdint.h中包含它。然后平安通过这一关。紧接着提示wstring未定义,晕倒,察看了一下3.2.2编译器估计编译的时候没有对宽字符提供支持。作罢,今天中秋,就搞到这儿吧。下周再搞。
... Read more!

FF&TB超强自定义工具--Stylish

适用对象:Firefox,Thunderbird,Flock
主页:userstyles.org
FF和TB都可以通过userChrome.css以及userContent.css来修改应用程序以及浏览页面的一些外观,但是直接的编辑这两个文件比较的麻烦,管理这些修改也比较麻烦。Stylish扩展提供了一个非常棒的编辑机制,在其主页上更加提供了很多已经编辑好的代码,可以直接加入到你的Styles list中直接使用。从这里你可以下载到最新版本,FF可以从这个页面上直接进行安装,安装完毕后重新启动你的应用程序,在状态栏上会出现Stylish的图标,点击此图标你可以增加修改各种Style。在http://userstyles.org/上更加是提供了各种各样的现成的Styles,FF可以直接在相应的Style页面上进行此Style的安装。
推荐一个Style:http://userstyles.org/style/show/728,可以修改Google的搜索界面,让搜索结果更加简洁。
... Read more!

你尽力了吗( 武汉白云黄鹤站)

很多人问如何入门如何入门,我却不知道要问的是入什么门。很少把某些好文章耐心从头看完,我这次就深有体会。比如袁哥的sniffer原理,一直以为自己对sniffer原理很清楚的,所以也就不曾仔细看过袁哥的这篇。后来有天晚上和袁哥讨论,如何通过端口读写直接获取mac地址,为什么antisniff可以获得真正的mac地址,而不受更改mac地址技术的影响,如何在linux下获得真正的mac地址。我一直对linux下的端口读写心存疑虑,总觉得在保护模式下的端口都做了内存映象等等。结果袁哥问了我一句,你仔细看我写的文章没有,我楞,最近因为要印刷月刊,我整理以前的很多文档,被迫认真过滤它们,才发现袁哥的文章让我又有新认识。再后来整理到tt的几篇缓冲区溢出的,尤其是上面的关于Solaris可装载内核模块,那就更觉得惭愧了。以前说书非借不能读,现在是文章留在硬盘上却不读。其实本版已经很多经典文章了,也推荐了不少经典书籍了,有几个好好看过呢。W.Richard.Stevens的UNP我算是认真看过加了不少旁注,APUE就没有那么认真了,而卷II的一半认真看过,写过读书笔记,卷III就没有看一页。道格拉斯的卷I、卷III是认真看过几遍,卷II就只断续看过。而很多技术文章,如果搞到手了就懒得再看,却不知道这浪费了多少资源,忽略了多少资源。BBS是真正能学到东西的地方吗?rain说不是的,我说也不是的。不过这里能开阔人的视野,能得到对大方向的指引,足够了。我一直都希望大家从这里学到的不是技术本身,而是学习方法和一种不再狂热的淡然。很多技术,明天就会过时,如果你掌握的是学习方法,那你还有下一个机会,如果你掌握的仅仅是这个技术本身,你就没有机会了。其实我对系统安全是真不懂,因为我一直都喜欢看程序写程序却不喜欢也没有能力攻击谁谁的主机/站点。我所能在这里做的是,为大家提供一个方向,一种让你的狂热归于淡然的说教。如果你连设备驱动程序编写>、<>系统编程>都没有看过,却要写个什么隐藏自己的木马,搞笑。如果你看都不看汇编语言,偏要问exploit code的原理,那我无法回答也不想回答你。总有人责问,要讨个说法纭纭,说什么提问却没有回答。不回答已经是正确的处理方式了,至少没有回你一句,看书去,对不对,至少没有扰乱版面让你生闷气。Unix的man手册你要都看完了,想不会Unix都不行了。微软的MSDN、Platform SDK DOC你要看完了,你想把Win编程想象得稍微困难点都找不到理由。还是那句话,一个程序员做到W.Richard.Stevens那个份上,做到逝世后还能叫全世界的顶级hacker们专门著文怀念,但生前却不曾著文攻击,想想看,那是一种什么样的境界,那是一份什么样的淡然。我们可以大肆讨论技术问题,可以就技术问题进行激烈的卓有成效的讨论,却无意进行基础知识、资源信息的版面重复。我刚在前面贴了一堆isbase的文章,开头就是主页标识,却在后面立刻问什么主页在哪里?前面刚刚讨论过如何修改mac地址,后面马上又来一个,前后相差不过3篇文章。选择沉默已经是很多朋友忍耐力的优异表现了。很多东西都是可以举一反三的。vertex的lids,被packetstorm天天追踪更新,你要是看了THC的那三篇,觉得理解一个就理解了一堆,都是内核模块上的手脚。你不看你怎么知道。我不想在这里陷入具体技术问题的讨论中去,你要是觉得该做点什么了,就自己去看自己去找。没有什么人摆什么架子,也没有什么人生来就是干这个的。你自己问自己,尽力了吗?
... Read more!

人,男人,女人和猪

人=吃饭+睡觉+上班+玩,
猪=吃饭+ 睡觉,
代入:人=猪+上班+玩,
即:人-玩=猪+上班.
结论:不懂玩的人=会上班的猪

男人=吃饭+ 睡觉+挣钱
猪=吃饭+ 睡觉
男人=猪+挣钱
猪=男人-挣钱
所以男人不挣钱等于猪。

女人=吃饭+ 睡觉+花钱。
猪 =吃饭+ 睡觉。
代入上式得:女人=猪+花钱。
移项得:女人-花钱=猪。
结论:女人不花钱的都是猪。

综上:
男人为了让女人不变成猪而挣钱!
女人为了让男人不变成猪而花钱!
... Read more!

我和Vi的相识,相知,到相爱

@smth

    很久以前就接触vi了,差不多是97年的时候,那个时候我还是刚刚接触计算机,在学校的一个Linux机器上用了一个编辑器,当时不知道是叫“vi”,给我的感觉就是极其难用,简单的编辑一个文件也没有成功,留下了一个不好的印象。后来也一直没有怎么用过,到了98年的时候自己有了电脑,喜欢玩 Linux,vi是linux中的御用编辑器,当时知道了它的名字叫“vi”了,想起一年前的经历,对vi有点胆怯,上网搜寻了有关vi的简单操作办法(当时还不会看vi的帮助),知道了简单的编辑操作(还知道用方向键去移动光标),后来也没有深入的去学习如何使用,到了2001年的时候,接触了 Python,很多人推荐使用vim,也就安装了,看了一些帮助,直到了基本的编辑指令,从此,手离不开键盘了,即使在记事本里面也忍不住按j,k,l,晕,后来得到了一本书O'Reilly的《学习Vi编辑器》,从此一发不可收拾,再也离不开vi了。
... Read more!

生活与选择

    一个猴子跑到玉米园,它发誓要摘一个最大的玉米。于是它摘了一个又扔了一个,它总能发现更大的,待它走到园的尽头时,才发现什么也没有摘到。
    我们的人生中是否也存在很多这样的场景呢?事业,爱情,在存在选择的关头,我们应该如何来处理呢?人类比猴子聪明,可以在事情没有到结束的时候就能够拥有很多的理论基础,就能够看到可能的结局。但是已经被你扔掉的很难再找到。我们不需要最大的最好的,我们要抓住真正属于你的,适合你的。追求总是无止境的。
... Read more!

正确设置 Vim 的字符编码选项 (gVim/Vim on Win32 中文环境)

(本文转于此处:http://www.rainux.org/blog/index.php/2005/10/20/106)

正确设置 Vim 的字符编码选项 (gVim/Vim on Win32 中文环境)

和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。

Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names),它们的意义如下:

  * encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义。
  * fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。
  * fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。
  * termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

好了,解释完了这一堆容易让新手犯糊涂的参数,我们来看看 Vim 的多字符编码方式支持是如何工作的。

  1. Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。
  2. 读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (注1) 字符编码方式。
  3. 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为 encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll (注2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。
  4. 编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll

  由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为 utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;)。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示 cp936,也就是 GBK 的代码页)。

以下是我的 .vimrc(见附件) 中关于字符编码方式设置的内容,这个设置比较有弹性,可以根据系统中的环境变量 $LANG (当然,Windows 中的写法是 %LANG%) 的值来自动设置合适的字符编码方式。此时,推荐设置 %LANG% = zh_CN.UTF-8,可以通过后面的 Windows 注册表脚本文件来方便的做到。

注1: 事实上,Vim 的探测准确度并不高,尤其是在 encoding 没有设置为 utf-8 时。因此强烈建议将 encoding 设置为 utf-8,虽然如果你想 Vim 显示中文菜单和提示消息的话这样会带来另一个小问题。

注2: 在 GNU 的 FTP 上可以下载到 iconv 的 Win32 版(http://mirrors.kernel.org/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip),不推荐去 GnuWin32(http://gnuwin32.sourceforge.net/) 下载 libiconv,因为那个版本旧一些,并且需要自己改名 dll 文件。

注3: 查看帮助 :h iconv-dynamic
On MS-Windows Vim can be compiled with the |+iconv/dyn| feature. This means
Vim will search for the "iconv.dll" and "libiconv.dll" libraries. When
neither of them can be found Vim will still work but some conversions won't be
possible.
... Read more!

在状态栏上显示当前文件的format

在vimrc中添加下面的代码

function FunFileEncoding()
return &ff
endfunction

set rulerformat=%40(%{FunFileEncoding()}\ [%m%t]\ \ %l,%c%V\ \ %p%%%)
我自己使用的版本
set statusline=%<[%n][%f]%m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).':'.&ff.']'}%y\ [POS=%04l,%04v][%p%%]

... Read more!

定制vim的标题栏,使其显示文件编码

(感谢水木的 runsnake (狂奔之蛇))
在vimrc中加入下面一行:
auto BufEnter * let &titlestring = hostname() . ":" . expand("%:p") . " ( " . &fenc . " )"

就会显示如:Zhang:/home/john/.vimrc (utf-8)

后记:
虽然能够显示了,但是对一些文件编码的判断似乎有问题,应该是vim底层对文件编码判断的问题了。
... Read more!

vim常用命令两则

1,格式化代码
gg=G

2,将代码高亮和格式使用html输出
:TOhtml
... Read more!

VIM中删除空行命令

只有一个回车 :g/^$/d
行中只有一些空格 :g/^\s*$/d
... Read more!

VIM7.0中CursorLine的支持

修改vimrc

~/.vimrc里加了:

if version >= 700
    set cursorline
    hi CursorLine cterm=bold ctermbg=DarkBlue
endif
效果还不错。
... Read more!

Firefox中,切换Tab的快捷键

Ctrl+Tab 新建一个Tab页
Ctrl+1….9 切换到第N个Tab页
Ctrl+pageup/pagedown
... Read more!

健康贴士:英国专家教你奇妙15招 远离感冒困扰

健康贴士:英国专家教你奇妙15招 远离感冒困扰

英国医学专家日前就“抗流感”提出15项建议,可以帮人们增强免疫力,摆脱感冒困扰。
流感是“万病之源”,传染性极强,特别是在秋冬时节,往往一人感冒,两人遭殃,三人卧床不起。

据每日邮报报道,英国医学专家约翰-奥克斯福德(John Oxford)称,我们生活的环境中每时每刻都有病菌。要抵御病菌的困扰,就必须增强我们自身的免疫系统。只要你按以下的方法去做,疾病就会在不知不觉中远离你。

1、多吃瘦肉
瘦肉富含蛋白质,可以增强免疫力。

2、不要让鼻子“着凉”
注意鼻子保暖,会有效防止感冒。

3、不要贪睡
研究表明:过度睡眠会降低免疫力。

4、少服维生素
研究表明:长期服用维生素对身体有害。

5、适量摄入“奥米伽3鱼油”
奥米伽3鱼油会增强肌体抗感染能力。

6、打打“太极”
“太极”是古老的中国健身术,可增强肌力,舒活筋骨。

7、不时“增压”
适当的压力会使免疫力增强。

8、不要节食
很多的节食方法都对身体无益。

9、常做爱
规律性的“做爱”可增强对抗病菌的能力。

10、多喝酸乳
常喝酸乳,好处多多。

11、多做运动

12、常喝茶

13、多多享受阳光
晒晒太阳,病毒也会远离你。

14、勤洗手
勤洗手会极大的减少病毒感染率。

15、多食人参
人参会让机体免疫系统“活力不断”。
... Read more!

在每篇Post下面添加Del.icio.us以及Diglog It链接

首先登陆你的Blogger Beta帐户,然后点击“Template”,接着点击“Edit HTML",将下面红色部分的内容添加到相应的span中去:

<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'>
<data:label.name/>
</a><b:if cond='data:label.isLast != "true"'>,</b:if>
</b:loop>
</b:if>

<a expr:href='"http://diglog.com/submit?url=" +
data:post.url + "&title=" + data:post.title'
target='_blank'>+Diglog It!</a>
<a expr:href='"http://del.icio.us/post?url=" +
data:post.url + "&title=" + data:post.title'
target='_blank'>Del.icio.us</a>

</span>
然后直接保存一下你就可以看到在Labels的最后出现你增加的两个标签了。
... Read more!

如何隐藏Blogger Beta的Navbar

如果你正在使用 Blogger Beta 架构博客,并同时自由托管在 Blogspot 空间下的话,那在你博客的上方就一定会出现这个叫做 Navbar 的导航条了。它其实是一个功能强大的导航工具,并有4种颜色可供选择,具体操作可以参见 Blogger 的帮助文档

但也许有人会觉得它有些碍眼,与自己的博客风格不是很搭配,等等。那这时应该怎样把它去掉呢? Blogger 并没有提供给我们直接的操作途径,但我们依然可以通过改变模板中的 CSS 参数来达到这个效果。

首先登陆你的Blogger Beta帐户,然后点击“Template”,接着点击“Edit HTML",先在代码中找到这一行

/* global
----------------------------------------------- */

再将如下代码添加至它的后面
#navbar #Navbar1 iframe{
height:0px;
display:none;
visibility:hidden;
}

事实上你也可以将这段 Hack Code 添加到 CSS 表单中的任何位置,但应该以保持表单的规整并方便查找为原则。

现在保存更改,并从新查看你的博客,这时 Navbar 就会消失了。
... Read more!

为何Blogger对段落的前导空格也不支持

之前我自己的Blog是用的Wordpress,架设在我自己的服务器上。Wordpress是目前非常流行的一款Blog系统,但是用起来问题不少,第一点让人觉得不爽的就是会自动将你每段段首的空格给截掉,浏览页面的时候相当的不舒服。以为这个只是Wordpress的问题,现在将Blog移到Blogger上,没想到也有同样的问题,难道支持段落头的空格就这么复杂么?实在是搞不明白。
... Read more!

Visual C++ 2005 Express在Vista上安装竟然有问题

手上有一张Visual C++ 2005 Express的安装光盘,是随着杂志赠送的,在XP机器上安装没有任何问题。前天安装了Vista RC1,漂亮的界面完了几天,想在上面看看其它应用程序运行的如何,想到了Visual C++ 2005 Express,就开始动手安装,安装Visual C++ 2005 Express包括5部分,安装前三部分时比较顺利,在安装MSDN For Visual C++ 2005 Express的时候,跳程序异常的对话框,没办法只能取消,紧接着的下一步,应该是SQL Server Express,也安装失败。Visual C++ 2005 Express是最新的开发工具了,难道在微软最新的操作系统下Vista不能运行?或者是我机器的问题?十分的疑惑。还有就是,搞不清楚Visual C++ 2005 Express安装的时候为什么要SQL Server Express,难道是运行Visual C++ 2005 Express必要的前提?
... Read more!

IE7难道对Javascript的兼容性降低了?

今天增加了Label的Cloud小部件,根据网上的设置步骤一步步来进行,但是发现在IE7中竟然不能显示,而且显示Javascript错误,但是在Firefox中竟然能够很好的显示,在Javascript控制台中没有看到任何错误,非常奇怪,难道IE7的Javascript兼容性降低了?还是我的cloud的代码不对?
... Read more!

使用Ubuntu安装光盘恢复grub

实在抵挡不住Vista的诱惑,于是安装了Vista,将grub给覆盖掉了。由于好长时间没有做过grub的恢复,这次恢复还搞了好长时间。现在还是一步步记下自己恢复的过程吧。

1,使用Ubuntu安装光盘(注意这里不是LiveCD)启动,使用rescue 安装模式进入。
2,系统会要求你选择语言以及键盘等等一些设置,此时选择你习惯的设置,这些设置将不会带到你的系统中,仅仅是作为恢复操作时候使用。系统会进行到选择挂接一个分区进入shell的界面时,选择你的root分区,然后选择在你的root分区上执行shell
3,如果你的boot分区是单独的,那么首先挂接上boot分区。执行
grub-install --root-directory=/ /dev/hda(我只有一块硬盘,所以是hda)
4,重新启动电脑
... Read more!

一篇小小说,笑中带泪,入木三分

黄艳梅

今天是周末,我们高中同学要在天安酒店搞一次同学聚会。自从毕业后,好多同学都混得有模有样,我却默默无闻,在一家工厂当制图员,每月和丈夫一起靠着不多的收入共同撑着这个家。我本不打算去,可禁不起同学们的一片盛情,只好答应。

丈夫正在帮儿子复习功课,儿子就要上初中了,为了上一所好中学,这段时间丈夫没少操心,东奔西走,至今还没着落呢。看了儿子一眼,我走出了家门。

天安酒店是高级酒店,我走进包房的时候,同学们都已到齐。还没坐稳,一张张名片就飞了过来,一看一个个不是总经理就是带长的,就连以前成绩总是甩尾的阿辉 也当上了派出所所长。望着服务小姐端上眼花缭乱的菜肴,我真感叹自己孤陋寡闻,光这一桌就足以抵我三个月的收入了。阿辉像宴席的主人一样不停地招呼大家 吃,不时地为这个斟酒、为那个夹菜,嘴里还说:“只管吃,算我的。”大伙也没任何拘束,一轮接一轮地交杯把盏、海阔天空地闲聊。

酒足饭饱之后,天色已不早,此次聚会该结束了。可究竟谁埋单,我看大伙好像都没有要慷慨解囊的意思。这时候阿辉掏出手机,按了一串号码,然后说:“小李, 今晚所里扫黄抓到人没有?哦!刚抓到———好!好!随便送一个到天安酒店来给我埋单。”说完,他得意地把手机放进了口袋,一旁的同学跟着哄笑起来。

十五分钟不到,一个中年人就进来了,他看了账单,不禁皱了皱眉头,看来他身上的现钞也不足。他随即也拿出手机,拨了一串号码,说:“小张呀!我是马主任 呀!你儿子要读我们学校的事,我今天就给你拍板定下来了……不过我今晚请朋友吃饭,你过来埋单好吗?在天安酒店203包厢……”

二十分钟后,有人敲了敲包厢的门,门被打开了。当我见到戴着副瓶底般厚的眼镜的丈夫站在门口时,我晕了过去。
... Read more!

最近对我MSN ID的非议颇多。

MSN主ID:--饭前饭后便前便后请不要看我的ID
MSN副ID:@Office |生活就是一陀屎,你要学会挑里面的蛆吃~|生活就象强奸,你反抗不了就要学会享受;工作就象轮奸,你不行别人就会上。

放了有3天,每天一上线,就有好友断断续续的发来msg,声讨我的ID,有很多几乎很少说话的好友也浮出水面,大多数的评价如下:
好恶心的ID.....
狂恶....
爆恶心....
你的ID太.....弓....虽....
你不改ID,我发誓不跟你说话!!!.....
......

我的ID单纯从字面上看,确实很恶心,但是,也是生活的一个写照,只是我说的恶心罢了,我的ID是摘自某个论坛的精华,感叹这位高人概括的好,有同感,才放到我的ID上。生活的坚强也包括容忍恶心。
... Read more!

“得一痣”的搬迁

最近两天我自己的服务器经历了升级,系统测试。所以,不得不停机了好几次,也导致了“得一痣”空间连续几天不能够正常地运行。考虑个人的服务器放置Blog的稳定性了。我喜欢的是稳定和简洁,这一点Blogger.com做的不错,相信Google。没办法,我的生活已经摆脱不了Goolge了。最大的希望就是Blogspot.com在国内能够正常地访问。
... Read more!