<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>刻薄狐狸</title>
	<atom:link href="http://tigerlee.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://tigerlee.me</link>
	<description>记录生活, 分享收获 &#124; record life, share harvests</description>
	<lastBuildDate>Thu, 02 Sep 2010 08:40:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<atom:link rel='hub' href='http://tigerlee.me/?pushpress=hub'/>
		<item>
		<title>crontab中使用scp提示&#039;permission denied&#039;的解决方法</title>
		<link>http://tigerlee.me/p/resolution-of-permission-denied-when-using-scp-in-crontab/</link>
		<comments>http://tigerlee.me/p/resolution-of-permission-denied-when-using-scp-in-crontab/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 16:24:04 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[scp]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=518</guid>
		<description><![CDATA[曾经有一段时间需要从集群中的一台服务器收集数据，并放到另一台服务器上。手工做了几次，实在是烦了。于是写了个脚本加上crontab来做这件事情，脚本内容大致如下：

#!/bin/sh

	# file: script.sh

<span class="readmore"><a href="http://tigerlee.me/p/resolution-of-permission-denied-when-using-scp-in-crontab/" title="crontab中使用scp提示'permission denied'的解决方法">阅读全文——共1536字</a></span>]]></description>
			<content:encoded><![CDATA[<p>曾经有一段时间需要从集群中的一台服务器收集数据，并放到另一台服务器上。手工做了几次，实在是烦了。于是写了个脚本加上crontab来做这件事情，脚本内容大致如下：</p>
<blockquote><p>#!/bin/sh<br />
	# file: script.sh<br />
	#1. collect some data...<br />
	#2. generate data file<br />
	scp data_file someuser@somehost:~/destination/today.data<br />
	echo &quot;[Today] collect data completed.&quot; &gt;&gt; /tmp/collect.log</p></blockquote>
<p>而crontab的内容也很简单：</p>
<blockquote>
<p>* 16 * * * cd path_of_script; sh script.sh</p>
</blockquote>
<p>当然，在放到crontab之前，我用手动运行过个脚本，是可以正确的收集数据，并且将收集到的数据复制到另一台服务器的指定路径。为了记录收集情况，每当执行完后，都会在/tmp的日志中写入一条log。</p>
<p>我在crontab中设定了让这个脚本每天下午4点钟开始执行，可是第二天下午5点钟了，同事说当天的数据没到收集到。我觉得很奇怪，登录到这台机器上发现日志里已经显示当天的&quot;collect data completed&quot;了，但不知道为什么，数据没有复制过去。想了想，把脚本和crontab都稍做了修改：</p>
<p>script.sh:</p>
<blockquote>
<p>#!/bin/sh<br />
		# file: script.sh</p>
<p>		#1. collect some data...<br />
		#2. generate data file<br />
		scp data_file someuser@somehost:~/destination/today.data<br />
		echo &quot;[Today] collect data completed.&quot;</p>
</blockquote>
<p>crontab:</p>
<blockquote>
<p>* 16 * * * cd path_of_script; sh script.sh &amp;&gt; /tmp/collect.log</p>
</blockquote>
<p>不仅记录自己输出的日志，而且把scp的stdout也记录下来。第三天下午4点过了，数据依然还是没有复制到目的机器上，查看collect.log发现当天的日志是：</p>
<blockquote>
<p>Permission denied, please try again.<br />
		Permission denied, please try again.<br />
		Permission denied (publickey,password).<br />
		lost connection<br />
		[2010-08-30] collect data completed.</p>
</blockquote>
<p>这时候我才想起来，这台机器压根就没有可用的key来登录到目的机器！当初我之所以能成功地执行脚本是因为我是开启了ssh_config中的ForwardAgent，在执行脚本中的scp时，使用了我的key，而当我退出这台机器后，它便无法再登录到目的机器，因而亦不能执行scp了。</p>
<p>找到原因后，问题就好解决了。在收集数据的机器上使用ssh-keygen产生一对rsa公私钥对。把公钥追加到目的机器的&quot;/home/someuser/.ssh/authorized_keys&quot;中，然后使用scp时加上-i选项来指定私钥的位置即可，修改后的脚本如下：</p>
<blockquote>
<p>#!/bin/sh<br />
		# file: script.sh<br />
		#1. collect some data...<br />
		#2. generate data file</p>
<p>		scp -i ~/.ssh/id_rsa data_file someuser@somehost:~/destination/today.data<br />
		echo &quot;[Today] collect data completed.&quot;</p>
</blockquote>
<p>记住，退出机器前先使用ssh -i ~/.ssh/id_rsa someuser@somehost来登录到目的机器，不然下次crontab运行时，scp会傻傻地等着你输入yes来确定把目的机器加到known_hosts里。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/resolution-of-permission-denied-when-using-scp-in-crontab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&quot;air&quot;的杯具</title>
		<link>http://tigerlee.me/p/cup-of-air/</link>
		<comments>http://tigerlee.me/p/cup-of-air/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 10:32:32 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[usb短路]]></category>
		<category><![CDATA[ux30]]></category>
		<category><![CDATA[重置]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=499</guid>
		<description><![CDATA[所谓&#34;air&#34;，也就是我那高仿mac book air的华硕ux30了。在电脑城转悠了几个小时后，我毅然为它而买单了。

ux30系列是超轻薄系列，而我的&#34;air&#34;则是这个系列中最低端的那款。不过即使配置低，只要能让我开个vim写代码，然后在Chrome上再打开几个网页看看，基本上我就能满足了。

机器买回来后，一切事情都朝着的方向发展。可是就在昨天凌晨，当我准备看部电影再睡觉的时候，为了获得更好的声音效果，我插上了耳机。平时插耳机时都会找准插孔，昨天就因为懒得再歪过头去看插孔，结果一头插在了USB接口上。话说这是两种类型接口，应该叫做牛头对不上马嘴，可是，偏偏牛头对上马嘴的那一瞬间，机器黑屏了。黑得很纯净的那种，其实就是断电啦。耳机插头接触到USB的上下金属片，导致短路了。于是我就慌了，当时电源还插着呢，马上拔了电源，再按开机键，没有一点儿反应，顿时就觉得自己和&#34;air&#34;化身成了一个大杯具。

<span class="readmore"><a href="http://tigerlee.me/p/cup-of-air/" title=""air"的杯具">阅读全文——共839字</a></span>]]></description>
			<content:encoded><![CDATA[<p>所谓&quot;air&quot;，也就是我那高仿mac book air的华硕ux30了。在电脑城转悠了几个小时后，我毅然为它而买单了。</p>
<p>ux30系列是超轻薄系列，而我的&quot;air&quot;则是这个系列中最低端的那款。不过即使配置低，只要能让我开个vim写代码，然后在Chrome上再打开几个网页看看，基本上我就能满足了。</p>
<p>机器买回来后，一切事情都朝着的方向发展。可是就在昨天凌晨，当我准备看部电影再睡觉的时候，为了获得更好的声音效果，我插上了耳机。平时插耳机时都会找准插孔，昨天就因为懒得再歪过头去看插孔，结果一头插在了USB接口上。话说这是两种类型接口，应该叫做牛头对不上马嘴，可是，偏偏牛头对上马嘴的那一瞬间，机器黑屏了。黑得很纯净的那种，其实就是断电啦。耳机插头接触到USB的上下金属片，导致短路了。于是我就慌了，当时电源还插着呢，马上拔了电源，再按开机键，没有一点儿反应，顿时就觉得自己和&quot;air&quot;化身成了一个大杯具。</p>
<p>于是拿过笔记本包，找出保修卡，打24小时服务热线。不错电话很快就通了，但是听到这么一段录音，&ldquo;400热线从8月7号晚上8点至8月8号晚上8点进行系统维护&rdquo;，立马全身黑线掉。笔记本挂了，打服务热线还不通，真TMD背，真是喝西北风还打嗝啊。</p>
<p>没法，拿出手机上网，找温州华硕维修点，还好发现一个维修点就在附近500米的地方。遂安心了，然后又找&ldquo;华硕笔记本 USB 短路&rdquo;，看到很多人都是因为插错地方导致开不了机了，心想不管走到哪里，天下果然还是有同路人的，哈哈。后来看到一篇文章，一哥们因主板有USB短路保护功能，死机后还能恢复。看到这里，我正好想到原来在看说明书时，发现本本背面有个重置按键的。其实也不能叫做按<meta content="text/html; charset=utf-8" http-equiv="content-type" />键，那地方像以前818手机的硬启功能一样，需要用牙签去捅。好吧，就死马当做活马医一次，找牙签去。</p>
<p>在客厅翻了翻，居然还真找到牙签了，拿过来一捅，然后再按开机，挖草！成功了！屏幕顺利点亮了！系统成功进入了！哈哈哈！</p>
<p>短路不死的小强，哥很欣赏你。<img alt=":D" src="http://tigerlee.me/wp-content/plugins/fckeditor-for-wordpress-plugin/ckeditor/plugins/smiley/images/teeth_smile.gif" title=":D" /></p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/cup-of-air/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>那间电影院</title>
		<link>http://tigerlee.me/p/nuovo-cinema-paradiso/</link>
		<comments>http://tigerlee.me/p/nuovo-cinema-paradiso/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 17:23:16 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[天堂电影院]]></category>
		<category><![CDATA[观后感]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=481</guid>
		<description><![CDATA[做为熟悉中文和略晓英文的当代毕业生，我一般不太选非这两种语言的电影来看。因为在内地，中文电影几年都难得拍出部好片子。不是弘扬主旋律的洗脑片，就是花了无数本钱但拍出来还是带着浓浓山寨气息的娱乐片。所以值得听看并且有能力听看也就只剩下英文片了，随着字幕的飞逝，偶尔还能听懂几句台词。要是换成其它语言的片子，就算换成另一部电影的字幕，也不一定能鉴别得出来。

《天堂电影院》是意大利的一部片子，选这部片子有两点原因：其一、新出炉洗脑片《XX大地震》号称感人至死。在QQ签名上，校内状态上，各式各样的分享上，都流传着观众泪尽而亡的传说，于是我想趁着还活着，去尝尝死的滋味。但找﻿﻿﻿遍了各大视频网站，也没发现有个全集出来，这应该是Vobile的VideoTracker功劳吧。其二、无奈在豆瓣上想找部可以看的电影，看到有人推荐《天堂电影院》，88年的片子，VideoTracker应该不会再去通知下架了吧，于是在Y酷上找了部号称高清的开始看了。

<span class="readmore"><a href="http://tigerlee.me/p/nuovo-cinema-paradiso/" title="那间电影院">阅读全文——共1788字</a></span>]]></description>
			<content:encoded><![CDATA[<p>做为熟悉中文和略晓英文的当代毕业生，我一般不太选非这两种语言的电影来看。因为在内地，中文电影几年都难得拍出部好片子。不是弘扬主旋律的洗脑片，就是花了无数本钱但拍出来还是带着浓浓山寨气息的娱乐片。所以值得听看并且有能力听看也就只剩下英文片了，随着字幕的飞逝，偶尔还能听懂几句台词。要是换成其它语言的片子，就算换成另一部电影的字幕，也不一定能鉴别得出来。</p>
<p>《天堂电影院》是意大利的一部片子，选这部片子有两点原因：其一、新出炉洗脑片《XX大地震》号称感人至死。在QQ签名上，校内状态上，各式各样的分享上，都流传着观众泪尽而亡的传说，于是我想趁着还活着，去尝尝死的滋味。但找﻿﻿﻿遍了各大视频网站，也没发现有个全集出来，这应该是Vobile的VideoTracker功劳吧。其二、无奈在豆瓣上想找部可以看的电影，看到有人推荐《天堂电影院》，88年的片子，VideoTracker应该不会再去通知下架了吧，于是在Y酷上找了部号称高清的开始看了。<span id="more-481"></span></p>
<p>影片主要使用了倒述来讲了一个小男孩多多成长的故事。多多是个有些小聪明的孩子，他经常喜欢跑去电影院看电影，还因此想去和放映员艾费多交朋友拉关系。有一天，他拿了妈妈给他的50里拉买牛奶的钱去了电影院看电影，到了晚上散场回家时，在路上被妈妈狂揍了一顿，正好被路过的艾费多看到了。好心的艾费多用善意的谎言来告诉妈妈，多多看电影是免费的，并把50里拉还给了妈妈。看到这里，我不由得想起了我小学三年级开学时，外公给了我100多块钱的学费，让我自己去缴费，而我回来时，学费不仅没缴，反而少了几块钱，我撒谎说那几块钱丢了，其实是买零食吃了，于是不例外地被外公揍了一把。现在想起如果当是学费是100元整，我会不会像那个笑话一样告诉外公我丢了3块钱呢？</p>
<p>在一次考试中，多多帮助艾费多做弊，赢得了进出放映室的自由，于是他开始和艾费多交上朋友了。在不上学的时候，他跑到放映室，艾费多教他如何使用放映机。就像以前的每个周末，我跑去外公家，然后被外公拉住，他拿起唐诗三百首，抄上两着，然后让我坐在房间背诗，必须当着他的面背完后才允许出去玩。</p>
<p>那时候的放映技术尚不成熟，胶卷在放映过程中会因过热而突然起火。终于有一天，在放映电影的过程中胶卷起火了。艾费多在扑火时晕倒在地，年幼的多多凭一已之力，把艾费多从火海中拖了出来，两人的感情因此更加深厚了。艾费多在这次火灾中失明之后，电影院老板决定让多多来负责放映电影的工作，这当然是多多的最爱。艾费多在他工作时来探望他，他告诉艾费多，他想休学来然后专门来放电影，可是艾费多阻止了他。&ldquo;不行，不可以休学，否则你会后悔。这不是终身事业，以后你还会做别的事，比现在重要很多的事&ldquo;。当多多服完兵役后回家和艾费多聊天，艾费多又劝他：&rdquo;人人都有所追求，离开这里；每天待在这里，会把这里当成全世界，会相信事情一成不变，离开之后，过个几年，一切都会变，你会断了牵挂，不再追寻，不再拥有；去闯一闯，再回到亲友身边，回到这片故土&ldquo;。多么好的朋友，忘年之交。即便艾费多在弥留之际都不忘告诉身边人：&ldquo;不要告诉多多，不要让他回来，他属于罗马&rdquo;。而多多的母亲还是告诉了他，因为她知道如果不告诉多多，他一定会生气的。</p>
<p>多多回来了，30年后的重归故土，坐飞机一个小时的路程。路过广场，他看到了当年的天堂电影院，而如今即将被拆除；回到家中，独自在房间回顾起年青时候心爱女孩的电影胶片；这些过眼往事在如今已变得不再重要，即便是亲眼看到电影院被爆破时，多多心中最多也就一阵感叹而已，叹时光不再；重要的是艾费多留给他的那盘电影胶片，当他回到罗马放映时才发现，这盘胶片正是当年他耍小聪明赖在放映室向艾费多索要，而艾费多为了哄他出门，骗他说替他保管的被剪掉接吻镜头的胶片！感动常在，不是因为礼物贵重，而是情义深厚。</p>
<p>人生一路走来，遇到很多帮助过自己，教育过自己，影响过自己的人们。可是出门求学，常年工作在外时，是否还记得生命中出现过的他们呢？说再见，难道真的只为了见最后一面？每次回家，我会翻开抽屉，找出那些尘封在书桌里的记忆，重新温习一遍。小纸条儿，毕业照片，书信，每一次看到，总能勾起那些难以忘怀的往事。可是看完之后，它们随即和记忆一起，又一次被放进了过去。</p>
<p>谨以为观后感记录那些我应该记住的人，我记得你们的。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/nuovo-cinema-paradiso/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>在命令行中设置终端编码</title>
		<link>http://tigerlee.me/p/set-terminal-encoding-by-commandline/</link>
		<comments>http://tigerlee.me/p/set-terminal-encoding-by-commandline/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 10:08:54 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[命令行]]></category>
		<category><![CDATA[终端]]></category>
		<category><![CDATA[设置编码]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=475</guid>
		<description><![CDATA[我的gnome-terminal和tilda默认都是utf8编码，当使用某些只支持gbk/gb2312编码的程序时，总是要手动把字符编码改成gbk，有时候还不一定记得改。现在碰到的问题是使用ssh连BBS，而国内的BBS大多数是gbk/gb2312编码的，每次连接时还得先将终端编码给改了，完了退出来后又得把编码改回来。于是搜索一番，发现个小工具'luit'。

luit - Locale and ISO 2022 support for Unicode terminals

'luit'不是单独的程序，它是包含在'x11-utils'这个软件包里的小工具。用法也很简单，像我要连接一个中文BBS站，就可以这样：

<span class="readmore"><a href="http://tigerlee.me/p/set-terminal-encoding-by-commandline/" title="在命令行中设置终端编码">阅读全文——共531字</a></span>]]></description>
			<content:encoded><![CDATA[<p>我的gnome-terminal和tilda默认都是utf8编码，当使用某些只支持gbk/gb2312编码的程序时，总是要手动把字符编码改成gbk，有时候还不一定记得改。现在碰到的问题是使用ssh连BBS，而国内的BBS大多数是gbk/gb2312编码的，每次连接时还得先将终端编码给改了，完了退出来后又得把编码改回来。于是搜索一番，发现个小工具'luit'。</p>
<blockquote><p>luit - Locale and ISO 2022 support for Unicode terminals</p></blockquote>
<p>'luit'不是单独的程序，它是包含在'x11-utils'这个软件包里的小工具。用法也很简单，像我要连接一个中文BBS站，就可以这样：</p>
<blockquote><p>$ luit -encoding gbk ssh bbs.xxx.xxx</p></blockquote>
<p>不过每次都样输这么长一串也很麻烦，那就在.bashrc下加个alias好了：</p>
<blockquote><p>alias gssh="luit -encoding gbk ssh"</p></blockquote>
<p>这样的好处是，进入BBS前不用改终端编码，退出BBS后，luit也跟着退出了，即还是不用改终端编码。如果直接运行：</p>
<blockquote><p>$ luit -encoding gbk</p></blockquote>
<p>你会发现提示符没有变化，因为luit已经在运行了，这时终端编码已经变成了gbk。退出方法：'exit'或者'ctrl^d'。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/set-terminal-encoding-by-commandline/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>搭建wordpress的一些分享</title>
		<link>http://tigerlee.me/p/tips-in-build-a-wordpress-blog/</link>
		<comments>http://tigerlee.me/p/tips-in-build-a-wordpress-blog/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 10:20:22 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[分享]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=461</guid>
		<description><![CDATA[话说这个博客搭了也有半年了，虽然这半年来也没写下多少日志，但在使用过程中，还是会遇到一些问题，发现一些技巧，趁着今天有空，在此分享一下。

这些分享是按照时间顺序来排列的，不过这半年工作较辛苦，人都变得有些健忘了，尽力而为之。



<span class="readmore"><a href="http://tigerlee.me/p/tips-in-build-a-wordpress-blog/" title="搭建wordpress的一些分享">阅读全文——共1179字</a></span>]]></description>
			<content:encoded><![CDATA[<p>话说这个博客搭了也有半年了，虽然这半年来也没写下多少日志，但在使用过程中，还是会遇到一些问题，发现一些技巧，趁着今天有空，在此分享一下。</p>
<p>这些分享是按照时间顺序来排列的，不过这半年工作较辛苦，人都变得有些健忘了，尽力而为之。<span id="more-461"></span></p>
<ul>
<li>全手工安装wordpress：在mysql中创建一个wordpress数据库，然后从wordpress的<a href="http://www.wordpress.org/download">官网</a>下载安装包；解压；把wp-config-sample.php复制一份，重命名为wp-config.php，打开并修改数据库相关选项为正确值。然后访问http://your-domain/wp-admin/install.php，按照提示，两步便可安装好。</li>
<li>如果安装完成后界面是英文，修改wp-config.php，增加一行"define ('WPLANG', 'zh_CN');"，如果已存在，不用我说了吧？</li>
<li>在安装插件时如果提示需要FTP账号什么的，多半是因为目录的权限问题导致。使www-data这个用户对你的wordpress目录具有"rw"权限即可。</li>
<li>"comment reply notification"这个插件可以让访客选择留言回复邮件通知。</li>
<li>有些人抱怨在我友情链接的位置太低（不是排名不分先后的么？！！！），好吧，使用"WP Social Blogroll"，可以随意调整友链位置。</li>
<li>博客刚搭建起来，我需要有个网站统计工具来分析博客运行情况，OK，我是深度google控，自然使用google analytics，结合"Google Analytics for WordPress"这个插件，可以方便地分析博客流量。（哎，访问人数少得可怜，纯属安慰自己<strong><em>）</em></strong></li>
<li>有篇日志提到了twitter，结果引来垃圾留言的关注了。顶峰时期，每天有上千条垃圾留言。wordpress自带的"Akismet"根本就防不了，后来找到了"WP-SpamFree"，99.9%的垃圾留言都不见了。</li>
<li>人在江湖混，哪能不备份？"WP-DBManager"功能不错，定时备份并压缩发送到邮箱，从此不用担心日志丢失。</li>
<li>哥一直用智能手机，不过用智能手机看博客，流量太大，不值得。"MobilePress"可以显示适合手机的页面，效果我很满意。</li>
<li>至于"Google Chatback", "Google FriendConnect", "Google Latitude", "Google Buzz ER", "Twitter Tool"这些插件，你们爱用不用了。</li>
<li>今天写“拥有VPS之－清除木马”这篇日志时，发现所有的"--"都被替换成了“－”，搜一下发现是“wptexturize”这个函数在做怪，装了个"Quotmarks Replacer"插件后就显示正常了。</li>
<li>博客启用了Gravatar头像显示，不过每次显示日志都去Gravatar载入头像，这很影响速度。"GravatarLocalCache"，你懂的。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/tips-in-build-a-wordpress-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>拥有VPS之－清除木马</title>
		<link>http://tigerlee.me/p/clear-trojan/</link>
		<comments>http://tigerlee.me/p/clear-trojan/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 09:18:22 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[libsh]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[服务器安全]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=456</guid>
		<description><![CDATA[离上一节整整一个月了，我这才把下节给补起来。上节写完时感觉还有好多没说，可是等过了这么一段时间后，我连当时保存的现场证据都快找不到了。不管怎样，还是把第一次写的系列篇迅速地划个句号吧。

上次讲到发现了若干个木马根据地，但如果是用简单的'rm'命令，是根本不能将其删除的（什么？你是root？即便你是foot，你也无法将其踢掉！）。是的，root也不能。为啥呢？root在u*ix系统中不都是万能的么？要啥有啥，要没啥，啥就没。是的，可root也能给自己加个限制，用来防止自己的误操作。这要用到ext2/3文件系统的一个特性"file attribute"。

<span class="readmore"><a href="http://tigerlee.me/p/clear-trojan/" title="拥有VPS之－清除木马">阅读全文——共1157字</a></span>]]></description>
			<content:encoded><![CDATA[<p>离上一节整整一个月了，我这才把下节给补起来。上节写完时感觉还有好多没说，可是等过了这么一段时间后，我连当时保存的现场证据都快找不到了。不管怎样，还是把第一次写的系列篇迅速地划个句号吧。</p>
<p>上次讲到发现了若干个木马根据地，但如果是用简单的'rm'命令，是根本不能将其删除的（什么？你是root？即便你是foot，你也无法将其踢掉！）。是的，root也不能。为啥呢？root在u*ix系统中不都是万能的么？要啥有啥，要没啥，啥就没。是的，可root也能给自己加个限制，用来防止自己的误操作。这要用到ext2/3文件系统的一个特性"file attribute"。</p>
<p>以前初中时，学到一招很管用的办法，不让别人把自己的文件无意中删除。当然，那是在DOS下。用"attrib +h filename"就能让文件隐藏了"，同理"attrib -h filename"就是将隐藏的重新显示出来。这么个特性，在linux中怎么会缺席呢？下面我简单介绍下今天要用到的两个工具：lsattr和chattr。</p>
<p>lsattr和chattr它们俩是linux系统下用于的控制ext2/3文件系统家族特殊属性的组件，并且已经成为了<a href="http://en.wikipedia.org/wiki/E2fsprogs">e2fsprogs</a>包中的一部分了。它们可以用来显示或修改文件的一系列属性：文件访问时间、安全删除、不可删除、只可追加、同步更新等。更详细地移步维基百科词条<a href="http://en.wikipedia.org/wiki/Chattr">chattr</a>。<span id="more-456"></span></p>
<p>闲话扯太多了，回正题。上节提到在"/usr/lib/"下发现可疑目录libsh，使用root权限进行rm，却不能将其删除。后来使用"sudo lsattr libsh"查看了该目录下的文件状态，结果如下：</p>
<blockquote><p>s---ia------- libsh/.owned<br />
s---ia------- libsh/.bashrc<br />
s---ia------- libsh/.backup<br />
s---ia------- libsh/.<br />
s---ia------- libsh/utilz<br />
s---ia------- libsh/hide<br />
s---ia------- libsh/.sniff<br />
s---ia------- libsh/..<br />
s---ia------- libsh/shsb</p></blockquote>
<p>就是's', 'i', 'a'这三个属性让rm不能成功执行，使用"sudo chattr -R -sia libsh"，即可将libsh连目录一起把‘sia'属性清除。然后就可以对它们肆意摧残了。</p>
<p>对'/lib/libso'目录操作方法同上，本来还想对这些目录下面的文件做些分析的，不过后来觉得挺无聊的，爱看不看吧。本文主要目的也就是介绍如何使用chattr来修改文件属性，结果硬生生地被我扯出了这么多字。还好不是去投稿，不然没人愿意收。</p>
<p>嗯，关于这次VPS安全事故的事情就写到这里算了。这个系列还会继续，不过会写点其它事情，像VPN搭建等，慢慢来吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/clear-trojan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>伪善人</title>
		<link>http://tigerlee.me/p/fake-welldoer/</link>
		<comments>http://tigerlee.me/p/fake-welldoer/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 16:23:00 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[感恩中国]]></category>
		<category><![CDATA[贫困学生]]></category>
		<category><![CDATA[资助]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=433</guid>
		<description><![CDATA[今天上班时，收到一封信，一封让我等了许久的信。

去年年末，在感恩中国网站上选择了一位贫困学生来进行为期7年的资助，当时心想，每年600块钱的生活费，能让一位成绩优异的学生继续学习，是多么的让人感到欣慰。于是我当即便汇去了这些钱，并且写了一封长达三页纸的信。自打毕业以后，还真没写过这么长，这么“工整”的字了。



<span class="readmore"><a href="http://tigerlee.me/p/fake-welldoer/" title="伪善人">阅读全文——共1310字</a></span>]]></description>
			<content:encoded><![CDATA[<p>今天上班时，收到一封信，一封让我等了许久的信。</p>
<p>去年年末，在感恩中国网站上选择了一位贫困学生来进行为期7年的资助，当时心想，每年600块钱的生活费，能让一位成绩优异的学生继续学习，是多么的让人感到欣慰。于是我当即便汇去了这些钱，并且写了一封长达三页纸的信。自打毕业以后，还真没写过这么长，这么“工整”的字了。<span id="more-433"></span></p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/06/screenshot10.png"><img class="alignnone size-full wp-image-435" title="信" src="http://tigerlee.me/wp-content/uploads/2010/06/screenshot10.png" alt="" width="643" height="350" /></a></p>
<p>像每个寄信人一样，我一直都很希望收到回信，即便只是短短的一页纸。可我当时写信的时间太晚了，1月14号才写完，等到寄到那么偏远的山区学校，估计都已经寒假了，所以也只打算等来年开学后希望可以收到回信了。</p>
<p>而事实上，直到3月下旬了，我都还未收到来信，而此时我工作上的一些变动，导致我很少能有时间来处理这些事情了，当然，这也与我的懒惰有关。曾有一段时间，我在考虑，既然通信如此不便，而我又想关心她的学习情况，那我是否可以考虑寄一部便宜耐用的二手手机过去呢？办张免月租的卡，每个月最多充十块钱，当作和我的沟通方式。有朋友知道我想这么做后，表示反对，她讲，一个穷人，一直处于平静的清贫生活，突然有一天，让他享受了平时绝不会有的美味后，他以后的生活是否还像以前般平静呢？换句话说，应该可以理解成，我们不应该给穷人美好的事物，因为这会干扰他们平静的生活？</p>
<p>在某些方面，我认同这个观点，可是具体到我的这种情况，我觉得：不能因为他们的贫穷，而剥夺他们与其它人使用先进通信工具进行沟通的权利，即便这权利是像我这样比他们条件稍微好一点的人们所给予。因此，我去求购二手手机，终于以M8借给Squall Jiang使用一季的代价，将他3年前以300元购入的明基－西门子手机免费到手。这也不过就是前两个星期的事情而已。</p>
<p>今天，收到了这封来自捐赠学校的信。</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/06/screenshot111.png"><img class="alignnone size-full wp-image-437" title="信封1" src="http://tigerlee.me/wp-content/uploads/2010/06/screenshot111.png" alt="" width="466" height="331" /></a></p>
<p>稚气的笔迹，还有那划掉的“叔”字，让我拆信封时都忍俊不禁。但看到寄信人名字时，我很诧异，不是我捐助学生的名字。拆开信封后，我不由得小囧了一下，里面还有一个信封：</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/06/screenshot12.png"><img class="alignnone size-full wp-image-439" title="信封2" src="http://tigerlee.me/wp-content/uploads/2010/06/screenshot12.png" alt="" width="563" height="347" /></a></p>
<p>终于，把这个信封打开后，不再有信封了，而是一页薄薄的材料纸：</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/06/screenshot13.png"><img class="alignnone size-full wp-image-440" title="信纸" src="http://tigerlee.me/wp-content/uploads/2010/06/screenshot13.png" alt="" width="430" height="633" /></a></p>
<p>看完这封简短的信，心里挺不是滋味。一方面，感觉像是希望落空，原来捐助的小姑娘学习成绩优异，我很希望能够帮助她继续完成学业，至少读完高中，甚至大学，可她居然随父母外出打工去了。在喧闹的工地或工厂，她是否还能继续读书，至少可以用知识来改变部分贫穷的命运？另一方面，小林伟，做为一名贫困学生，虽然说学习成绩不太好，但我觉得不是自己选中的，甚至还是由他人安排给我的，总有那么些排斥感在里面。面对这样朴实的字句，我又很难告诉他说：“叔叔不想帮助你，是因为你不是叔叔选中的，并且你学习成绩也不好”。</p>
<p>人之初，性本善。马洛斯的人性需求理论也指出，我现在也只不是过在完成一种精神需求而已，但我做不到去完成一种被安排的行善，不管是好意还是恶意。如果在有限的精力下，我为什么不能帮助那些更加需要帮助的学生呢？虽然我的判定标准仅仅是我从感恩中国网站上对描述的感官认识及学习成绩的好坏，这样的判定是否能够表示他/她比林伟更加需要帮助？行善而无法做到遇善便行，这是我行善的虚伪所在。我承认。</p>
<p>也许，我最终会选择另外一个地方，另一个学校的孩子去进行资助。林伟，对不起，我不能再继续帮助你了，因为我只是个伪善人。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/fake-welldoer/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>拥有VPS之－发现入侵</title>
		<link>http://tigerlee.me/p/my-vps-injection-detected/</link>
		<comments>http://tigerlee.me/p/my-vps-injection-detected/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 16:35:18 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[libsh]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[服务器安全]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=426</guid>
		<description><![CDATA[上周末才买入一台VPS，由于急着把blog迁移过来，所以装完系统后，就只顾着blog的事了，VPS安全方面的事情，本来打算在本周末来收拾一番的。没想到啊，没想到，万恶的资本主义国家，黑客也这么多，哥刚把blog搭好，你又来给哥捣乱了。

上午，正在彻erlang代码，zhoux在gtalk上和我说，他的账号不能通过ssh登录。于是乎，做为VPS的首席维护官，我立马试着去登录。提示输入密码后，很快就看到了$提示符，然后手指不由自主地做了个终端爱好者的习惯性动作－'ls'，可是'ls'并没有像往常一样显示我当前目录的内容，而是提示"/bin/ls: no such directory"，哥当时就震惊了。第一反应还以为是环境变量被人改了，'env'看了下，没有发现异常。然后想用'ps aux'查看到进程列表，结果哥再次震惊了，屏幕上提示"/bin/ps: no such directory"，再试'top'，还是"/usr/bin/top: no such directory"，我靠，你都把路径给提示出来了，却还告诉我没有这个路径，存心逗哥玩么。以前刚开始用linux时，还带着windows cmd的习惯，查看目录内容会用'dir'，结果发现也有效，然后哥又试着用了下'dir'，这下还好，能够看到目录内容了。

<span class="readmore"><a href="http://tigerlee.me/p/my-vps-injection-detected/" title="拥有VPS之－发现入侵">阅读全文——共5861字</a></span>]]></description>
			<content:encoded><![CDATA[<p>上周末才买入一台VPS，由于急着把blog迁移过来，所以装完系统后，就只顾着blog的事了，VPS安全方面的事情，本来打算在本周末来收拾一番的。没想到啊，没想到，万恶的资本主义国家，黑客也这么多，哥刚把blog搭好，你又来给哥捣乱了。</p>
<p>上午，正在彻erlang代码，zhoux在gtalk上和我说，他的账号不能通过ssh登录。于是乎，做为VPS的首席维护官，我立马试着去登录。提示输入密码后，很快就看到了$提示符，然后手指不由自主地做了个终端爱好者的习惯性动作－'ls'，可是'ls'并没有像往常一样显示我当前目录的内容，而是提示"/bin/ls: no such directory"，哥当时就震惊了。第一反应还以为是环境变量被人改了，'env'看了下，没有发现异常。然后想用'ps aux'查看到进程列表，结果哥再次震惊了，屏幕上提示"/bin/ps: no such directory"，再试'top'，还是"/usr/bin/top: no such directory"，我靠，你都把路径给提示出来了，却还告诉我没有这个路径，存心逗哥玩么。以前刚开始用linux时，还带着windows cmd的习惯，查看目录内容会用'dir'，结果发现也有效，然后哥又试着用了下'dir'，这下还好，能够看到目录内容了。<span id="more-426"></span></p>
<p>这下哥就深思了，三大常用命令不能用，可是'cd'竟然还能用，啥原因呢？既然提示"/bin/ls"不存在，那就去看看倒底有没有。"cd /bin"后"dir -l"一看，'ls'还在的啊，只不过，文件属性与其它文件不一致。'/bin'目录下其它正常文件的属性都是像这样子的：</p>
<blockquote><p>-rwxr-xr-x 1 root root  934336 2010-04-19 10:16 bash<br />
-rwxr-xr-x 3 root root   31176 2010-02-08 19:06 bunzip2</p></blockquote>
<p>可是'ls', 'ps'的属性却是这样的</p>
<blockquote><p>-rwxr-xr-x 1 122 avahi  114032 2010-03-05 11:41 ls<br />
-rwxr-xr-x 1 122 avahi  101232 2009-12-17 03:34 ps</p></blockquote>
<p>看到这里，哥一阵心寒，这十有八九是被入侵了，MD，他是从哪来的啊？于是哥又跑到'/var/log'下看了一番，'syslog'的内容太杂乱，什么程序都喜欢往里扔log，仔细翻了翻，发现在我登出服务器后的日志里，发现这么一段：</p>
<blockquote><p>Jun  3 02:32:43 vps syslogd 1.5.0#5ubuntu4: restart.<br />
Jun  3 02:32:43 vps xinetd[1519]: Starting reconfiguration<br />
Jun  3 02:32:43 vps xinetd[1519]: attribute: disable should not be in default section [file=/etc/xinetd.conf] [line=12]<br />
Jun  3 02:32:43 vps xinetd[1519]: Reading included configuration file: /etc/xinetd.d/chargen [file=/etc/xinetd.conf] [line=15]<br />
Jun  3 02:32:43 vps xinetd[1519]: Reading included configuration file: /etc/xinetd.d/daytime [file=/etc/xinetd.d/daytime] [line=28]<br />
Jun  3 02:32:43 vps xinetd[1519]: Reading included configuration file: /etc/xinetd.d/discard [file=/etc/xinetd.d/discard] [line=26]<br />
Jun  3 02:32:43 vps xinetd[1519]: Reading included configuration file: /etc/xinetd.d/echo [file=/etc/xinetd.d/echo] [line=25]<br />
Jun  3 02:32:43 vps xinetd[1519]: Reading included configuration file: /etc/xinetd.d/time [file=/etc/xinetd.d/time] [line=26]<br />
Jun  3 02:32:43 vps xinetd[1519]: removing chargen<br />
Jun  3 02:32:43 vps xinetd[1519]: removing chargen<br />
Jun  3 02:32:43 vps xinetd[1519]: removing daytime<br />
Jun  3 02:32:43 vps xinetd[1519]: removing daytime<br />
Jun  3 02:32:43 vps xinetd[1519]: removing discard<br />
Jun  3 02:32:43 vps xinetd[1519]: removing discard<br />
Jun  3 02:32:43 vps xinetd[1519]: removing echo<br />
Jun  3 02:32:43 vps xinetd[1519]: removing echo<br />
Jun  3 02:32:43 vps xinetd[1519]: removing time<br />
Jun  3 02:32:43 vps xinetd[1519]: removing time<br />
Jun  3 02:32:43 vps xinetd[1519]: Swapping defaults<br />
Jun  3 02:32:43 vps xinetd[1519]: Reconfigured: new=0 old=0 dropped=0 (services)</p></blockquote>
<p>这个时候，没人去操作的话，syslog怎么会突然重启？见鬼了，进而想到用'stat'来查看'/bin/ls'的文件状态，发现：</p>
<blockquote><p>File: `/bin/ls'<br />
Size: 96423    	Blocks: 224        IO Block: 4096   regular file<br />
Device: 807h/2055d	Inode: 1355        Links: 1<br />
Access: (0755/-rwxr-xr-x)  Uid: (    122/    avahi)   Gid: (    122/    avahi)<br />
Access: 2010-06-03 01:02:30.448318679 +0800<br />
Modify: 2010-05-30 11:41:16.000000000 +0800<br />
Change: 2010-06-03 02:32:43.654213635 +0800</p></blockquote>
<p>修改时间是"2010-06-03 02:32:43"，与syslog重启时间一致！，这让我越发肯定系统是被入侵了。<br />
这些不能用的程序，文件属主都是avahi，经google一番，发现avahi只是个正常的系统服务，详见<a href="http://en.wikipedia.org/wiki/Avahi_(software)">wikipedia</a>。不放心，遂"su"到root，然后在'/'下执行"find / -group avahi"，执行结果如下：</p>
<blockquote><p>./var/run/avahi-daemon<br />
./var/run/avahi-daemon/pid<br />
./var/run/avahi-daemon/socket<br />
./usr/bin/find<br />
./usr/bin/md5sum<br />
./usr/bin/pstree<br />
./usr/bin/top<br />
./usr/lib/libsh/hide<br />
./usr/lib/libsh/.sniff/shsniff<br />
./usr/lib/libsh/.sniff/shp<br />
./usr/lib/libsh/shsb<br />
./usr/lib/libsh/.bashrc<br />
./proc/24136<br />
./proc/24136/task<br />
./proc/24136/task/24136<br />
./proc/24138<br />
./proc/24138/task<br />
./proc/24138/task/24138<br />
./sbin/ttyload<br />
./sbin/ttymon<br />
./sbin/ifconfig<br />
./bin/ls<br />
./bin/netstat<br />
./bin/ps<br />
./lib/libsh.so/shrs<br />
./lib/libsh.so/shhk<br />
./lib/libsh.so/shhk.pub<br />
./lib/libsh.so/shdcf</p></blockquote>
<p>事实证明，这次搜索，是这次发现入侵过程中的重大突破。一举发现被替换的系统程序以及潜伏在系统中的木马路径。'/usr/lib/libsh'和'/lib/libsh.so'就是入侵者安放木马的地方！再次使用google搜索"libsh"，发现这木马早在05年前就有了。哥的ubuntu 9.10 server edition居然中了05年前的木马，真是杯具。<br />
虽然人肉发现了木马所在，可还是不太放心，指不定在哪个犄角旮旯还窝着一群木马呢。于是乎，使用"aptitude install chkrootkit rkhunter"安装了两个linux下号称检查木马的神器。先用"chkrootkit"检查了一番，结果如下：</p>
<blockquote><p>......<br />
Searching for t0rn's v8 defaults...                         Possible t0rn v8 (or variation) rootkit installed<br />
...<br />
Searching for Showtee...                                    Warning: Possible Showtee Rootkit installed<br />
...<br />
Searching for Romanian rootkit...                            /usr/include/file.h /usr/include/proc.h<br />
......</p></blockquote>
<p>也就是说，'chkrootkit'检测出了3个疑似木马，前两个光靠个名字，哥实在无从找起，只好看第三个带路径的了，打开这两个文件，发现内容如下：</p>
<blockquote><p>/usr/include/file.h:<br />
h.conf<br />
libsh<br />
.sh<br />
system<br />
shsb<br />
libsh.so<br />
shp<br />
shsniff<br />
srd0</p>
<p>/usr/include/proc.h:<br />
3 burim<br />
3 mirkforce<br />
3 synscan<br />
3 ttyload<br />
3 shsniff<br />
3 ttymon<br />
3 shsb<br />
3 shp<br />
3 hide<br />
4 ttyload</p></blockquote>
<p>隐藏得真TMD好，粗一看，还真以为是C库的头文件，不过linux C库的头文件是肯定没有'file.h'了，文件相关的函数都在'fcntl.h'里。这两个文本文件看起来和用'find'找到的文件有共同点，只不过不清楚它们是干啥的。然后接着用"rkhunter --check"再检查了一番，这次的结果和用'chkrootkit'有些不一样。btw，'rkhunter'的输出不仅显示在屏幕上，还可以在'/var/log/rkhunter.log'中看到：</p>
<blockquote><p>[12:30:08] /usr/sbin/unhide                                  [ Warning ]<br />
[12:30:08] Warning: The file '/usr/sbin/unhide' exists on the system, but it is not present in the rkhunter.dat file.<br />
[12:30:08] /usr/sbin/unhide-linux26                          [ Warning ]<br />
[12:30:08] Warning: The file '/usr/sbin/unhide-linux26' exists on the system, but it is not present in the rkhunter.dat file.<br />
[12:30:28] Warning: SHV4 Rootkit                             [ Warning ]<br />
[12:30:28]          File '/lib/lidps1.so' found<br />
[12:30:28]<br />
[12:30:28] Checking for SHV5 Rootkit...<br />
[12:30:28]   Checking for file '/etc/sh.conf'                [ Found ]<br />
[12:30:28]   Checking for directory '/usr/lib/libsh'         [ Found ]<br />
[12:30:28] Warning: SHV5 Rootkit                             [ Warning ]<br />
[12:30:28]          File '/etc/sh.conf' found<br />
[12:30:28]          Directory '/usr/lib/libsh' found<br />
[12:30:43]   Checking loaded kernel modules                  [ Warning ]<br />
[12:30:43] Warning: No output found from the lsmod command or the /proc/modules file:<br />
[12:30:43]          /proc/modules output:<br />
[12:30:43]          lsmod output:<br />
[12:31:05]   Checking if SSH root access is allowed          [ Warning ]<br />
[12:31:05] Warning: The SSH and rkhunter configuration options should be the same:<br />
[12:31:05]          SSH configuration option 'PermitRootLogin': yes<br />
[12:31:05]          Rkhunter configuration option 'ALLOW_SSH_ROOT_USER': no</p></blockquote>
<p>这下又发现四个异常文件，'/usr/sbin/unhide'、'/usr/sbin/unhide-linux26'，'/lib/lidps1.so'和'/etc/sh.conf'，还有之前哥人肉发现的'/usr/lib/libsh'目录。倒数第二个warning其实是因为这台机器是基于openvz的vps, 所有的modules都是在真实的系统中，在vps里是看不到的，所以该warning是正常，忽略不计。最后一个warning是我工作没到位啊，贫图方便，就允许root登录ssh了。</p>
<p>到此，发现入侵的过程就告一段落，一共发现了8个被替换掉的系统程序，两种木马SHV4和SHV5（chkrootkit检查到的另两种，哥实在没能找出来）以及若干黑客入侵时留下的文件。后续将会带来对这些文件的分析，以及清除方法，可不是简单的'rm'操作哦！</p>
<p>PS: 写完后发现，时间已经过了0点，今天是全国论坛维护日，个人网站留言板检修日。身处海外VPS的刻薄狐狸，感到既庆幸，又伤感。庆幸我不用去备案，不用做任何维护操作，同时又伤感21年前那些为了祖国命运而英勇牺牲的前辈。纸是包不住火的，历史越掩盖，越明朗。天朝这些年的所做所为，无异于掩耳盗铃，终究将成为历史的笑话，而我不知能否有这一天看到被还原的历史真相。谨以此后记，纪念在那场动乱中献身的英雄。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/my-vps-injection-detected/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>复活</title>
		<link>http://tigerlee.me/p/recover/</link>
		<comments>http://tigerlee.me/p/recover/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 16:07:01 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[photonvps]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=419</guid>
		<description><![CDATA[经历了一个不良的空间提供者后，终于觉得买个VPS才是靠谱的。

Blog挂了将近2周了，而我直到挂掉的一周后才发现，实在是罪过。在网上对比了许久，在photonvps.com处购得一台VPS(beam1)，然后拉了几个朋友入伙。VPS的系统理所当然地选择了ubuntu。有root权限就是方便，想怎么玩就怎么玩。不仅搭了多个wordpress，还弄了个openvpn，翻墙之用。以前用tor，觉得全天朝的翻墙都很艰难，巨慢；用了vpn后才发现，原来在youtube上看视频真的不是传说。简单的测了下速，下载一个5M的文件，平均速度111KB/s，感觉还行。

<span class="readmore"><a href="http://tigerlee.me/p/recover/" title="复活">阅读全文——共611字</a></span>]]></description>
			<content:encoded><![CDATA[<p>经历了一个不良的空间提供者后，终于觉得买个VPS才是靠谱的。</p>
<p>Blog挂了将近2周了，而我直到挂掉的一周后才发现，实在是罪过。在网上对比了许久，在<a href="http://www.photonvps.com/billing/aff.php?aff=637">photonvps.com</a>处购得一台VPS(beam1)，然后拉了几个朋友入伙。VPS的系统理所当然地选择了ubuntu。有root权限就是方便，想怎么玩就怎么玩。不仅搭了多个wordpress，还弄了个openvpn，翻墙之用。以前用tor，觉得全天朝的翻墙都很艰难，巨慢；用了vpn后才发现，原来在youtube上看视频真的不是传说。简单的测了下速，下载一个5M的文件，平均速度111KB/s，感觉还行。</p>
<p>通过支付宝付款后，过了1天多，都没收到回馈，一封邮件都没有，后来检查垃圾邮件，才发现，人家其实都发了十几封邮件了。Photonvps的服务方式很奇怪，都是通过发ticket来和客服进行沟通的。FAQ也不健全，就几条简单的问答，基本上还得靠发ticket来问客服，不过如果用英文讲不清楚的，也可以用中文，因为他们还有中文客服，所以网页也有中文界面，所以也支持支付宝。我知道这两个所以完全没有逻辑关系，所以我才这么讲。</p>
<p>所幸WordPress装了个数据库备份插件，并且在4月份时有把整个目录备份过，所以丢失的数据并不多，也就是最近一篇《跨越长成》的配图罢了。</p>
<p>这半年真的很忙，忙得没有时间来认真地写一篇blog了，整个五月，颗粒无收，实在对不住观众。谨以此文，记录博客搬家成功！</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/recover/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>越过长城</title>
		<link>http://tigerlee.me/p/fuck-gfw/</link>
		<comments>http://tigerlee.me/p/fuck-gfw/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 17:04:10 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[chromium]]></category>
		<category><![CDATA[gfw]]></category>
		<category><![CDATA[switchy]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[翻墙]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=407</guid>
		<description><![CDATA[——当一个政权极力掩盖消息传递时，那它离灭亡已经不远了。

记得刚学会上网那会，是在高一，5块钱一小时，上得我割肉般疼。学着别人聊OICQ，号码完全是一次性的，即用即申，用完即扔。看网页也就去新浪，记得当时有个游侠部落，里面有“大话三国”的flash，除了聊天，就是看这种动画了。那时候，除了网络断线，服务器宕机，基本不会出现网页打不开的情况。

时过境迁，现在的机器性能好了，网速也快了，可是打不开的网站也一天比一天多了。古有焚书坑儒，今有防火长城。执政者，你们究竟在害怕什么？当焚书坑儒都未能让你们感到一点安宁时，你们就开始大兴网络文字狱了。Google搜索“胡萝卜，温度，习惯”等，HTTP连接都会被重置。如果说文字狱尚需要那些捕风捉影的人去费尽心思编造罪名，那你们完全是宁可错杀一千，不可放过一个了。

<span class="readmore"><a href="http://tigerlee.me/p/fuck-gfw/" title="越过长城">阅读全文——共2283字</a></span>]]></description>
			<content:encoded><![CDATA[<p>——当一个政权极力掩盖消息传递时，那它离灭亡已经不远了。</p>
<p>记得刚学会上网那会，是在高一，5块钱一小时，上得我割肉般疼。学着别人聊OICQ，号码完全是一次性的，即用即申，用完即扔。看网页也就去新浪，记得当时有个游侠部落，里面有“大话三国”的flash，除了聊天，就是看这种动画了。那时候，除了网络断线，服务器宕机，基本不会出现网页打不开的情况。</p>
<p>时过境迁，现在的机器性能好了，网速也快了，可是打不开的网站也一天比一天多了。古有焚书坑儒，今有防火长城。执政者，你们究竟在害怕什么？当焚书坑儒都未能让你们感到一点安宁时，你们就开始大兴网络文字狱了。Google搜索“胡萝卜，温度，习惯”等，HTTP连接都会被重置。如果说文字狱尚需要那些捕风捉影的人去费尽心思编造罪名，那你们完全是宁可错杀一千，不可放过一个了。<span id="more-407"></span></p>
<p>实在忍不住，给机器装上翅膀，去看看墙外自然的风光。下面是在ubuntu 10.04下使用chromium/chrome来越过GFW的教程:</p>
<blockquote><p>sudo vi /etc/apt/sources.list</p></blockquote>
<p>在文件尾加上</p>
<blockquote><p>deb http://mirror.netcologne.de/torproject.org karmic main</p></blockquote>
<p>然后保存退出，执行</p>
<blockquote><p>sudo apt-get update</p></blockquote>
<p>对，尽管你的ubuntu版本名不一定是karmic，但这个源还是可以用的，但我不保证它在今后会继续提供karmic的包，如果在update的输出中发现有mirror.netcologne.de失败的信息，可以尝试把karmic换成lucid或是你当前的ubuntu开发代号，当然也有可能是这个源本身就被GFWed。</p>
<p>接着</p>
<blockquote><p>sudo apt-get install tor tor-geoipdb vidalia privoxy</p></blockquote>
<p>由于没有保存这个源的GPG key，所以安装时会提示是否确定安装，输入yes继续安装。安装Vidalia时会询问</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/04/Screenshot-tilda.png"><img class="alignnone size-full wp-image-408" title="Screenshot-tilda" src="http://tigerlee.me/wp-content/uploads/2010/04/Screenshot-tilda.png" alt="安装Vidalia" width="640" height="320" /></a></p>
<p>选择第三项，然后回车继续，直到安装完成。然后</p>
<blockquote><p>sudo vi /etc/privoxy/config</p></blockquote>
<p>找到下面这行，并将行首的#号去掉，然后:wq保存退出。</p>
<blockquote><p>#forward-socks4a / localhost:9050 .</p></blockquote>
<p>接着执行</p>
<blockquote><p>sudo /etc/init.d/privoxy restart</p></blockquote>
<p>Privoxy重启完后，给"bridges@torproject.org"这个邮件地址发送一封标题为“get bridges”，内容随意的邮件（其实标题也可以随意）。几分钟后会收到回复，里面内容大致如下：</p>
<blockquote><p>[This is an automated message; please do not reply.]</p>
<p>Here are your bridge relays:</p>
<p>bridge 94.252.160.134:443<br />
bridge 95.209.52.120:443<br />
bridge 118.101.73.160:443</p>
<p>Bridge relays (or "bridges" for short) are Tor relays that aren't listed<br />
in the main directory. Since there is no complete public list of them,<br />
even if your ISP is filtering connections to all the known Tor relays,<br />
they probably won't be able to block all the bridges.</p>
<p>To use the above lines, go to Vidalia's Network settings page, and click<br />
"My ISP blocks connections to the Tor network". Then add each bridge<br />
address one at a time.</p>
<p>Configuring more than one bridge address will make your Tor connection<br />
more stable, in case some of the bridges become unreachable.</p>
<p>Another way to find public bridge addresses is to visit<br />
https://bridges.torproject.org/. The answers you get from that page<br />
will change every few days, so check back periodically if you need more<br />
bridge addresses.</p></blockquote>
<p>去"应用程序"菜单-&gt;"网络"中寻找Vidalia，并运行它，点击"settings", 并切换到"Network", 选中"My ISP blocks connections to the Tor network"，然后把邮件中的网桥地址加到下面的列表中，然后点"OK"返回(btw, Appearance页面可以选择界面语言，有简体中文选项)。</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/04/Screenshot-Settings.png"><img class="alignnone size-full wp-image-409" title="Screenshot-Settings" src="http://tigerlee.me/wp-content/uploads/2010/04/Screenshot-Settings.png" alt="Vidalia设置网络" width="618" height="554" /></a></p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/04/Screenshot-Settings.png"></a>然后先"Stop Tor", 再"Start Tor", 稍等一会儿，就会出现"Connected to the Tor Network"的提示，翻墙成功。</p>
<p>﻿在chromium/chrome中装一个名为"switchy"的扩展，添加一个"Profile"如图：</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/04/screenshot4.png"><img class="alignnone size-full wp-image-410" title="screenshot4" src="http://tigerlee.me/wp-content/uploads/2010/04/screenshot4.png" alt="switchy设置profile" width="570" height="517" /></a><br />
并可以设置以下"rules", switchy支持在线更新rules，这样我们可以不用手动添加大量被GFWed的网址列表。对于使用firefox及其它浏览器的用户，只要将代理服务器按上图设置即可（未测试）。</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/04/screenshot5.png"><img class="alignnone size-full wp-image-411" title="screenshot5" src="http://tigerlee.me/wp-content/uploads/2010/04/screenshot5.png" alt="switchy设置rules" width="546" height="660" /></a><br />
全部保存好后，就可以自由的穿梭于国际互联网了，facebook正常，twitter正常，空姐的blog也正常。</p>
<h3>“<span style="color: #ff0000;">越过长城 我们能达到世界的每一个角落</span>”。</h3>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/fuck-gfw/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>QQ聊天机器人</title>
		<link>http://tigerlee.me/p/qq-chat-robot/</link>
		<comments>http://tigerlee.me/p/qq-chat-robot/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 14:26:21 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[回忆]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=386</guid>
		<description><![CDATA[习惯性的鼠标到处乱点，在新版的QQ2010上点到了“网络硬盘”选项卡，想想当年我还放了一些玩意在这里，如今不知何动向。点开后发现我当年存放在里面的资料竟然还在！

真是太惊讶了，这些玩意基本上是在04年及以前放进去的，因为那时候还没有自己的电脑。不管从哪里找到的资料，我都放这个网络硬盘上放的，尽管只有小小的16M（使用TM可以升级成32M），居然也还够我放。自从有了自己的电脑后，这个网络硬盘就再也没用过，甚至打开过了。



<span class="readmore"><a href="http://tigerlee.me/p/qq-chat-robot/" title="QQ聊天机器人">阅读全文——共1129字</a></span>]]></description>
			<content:encoded><![CDATA[<p>习惯性的鼠标到处乱点，在新版的QQ2010上点到了“网络硬盘”选项卡，想想当年我还放了一些玩意在这里，如今不知何动向。点开后发现我当年存放在里面的资料竟然还在！</p>
<p>真是太惊讶了，这些玩意基本上是在04年及以前放进去的，因为那时候还没有自己的电脑。不管从哪里找到的资料，我都放这个网络硬盘上放的，尽管只有小小的16M（使用TM可以升级成32M），居然也还够我放。自从有了自己的电脑后，这个网络硬盘就再也没用过，甚至打开过了。</p>
<p><span id="more-386"></span></p>
<div id="attachment_388" class="wp-caption alignright" style="width: 252px"><a href="http://tigerlee.me/wp-content/uploads/2010/04/netdisk.jpg"><img class="size-full wp-image-388" title="网络硬盘" src="http://tigerlee.me/wp-content/uploads/2010/04/netdisk.jpg" alt="" width="242" height="478" /></a><p class="wp-caption-text">网络硬盘</p></div><br />
01年的时候，我注册了sina的免费邮箱，50M之巨。当年用这个邮箱用得不亦乐乎，虽然也没几个人给我发邮件，大多数都是广告邮件或是注册提醒邮件，但做为早期上网的一段经历，还是很让人难以忘怀。其后不久，我又从《中学生电脑》上得知有大批提供免费邮箱的网站，于是在某个网吧里通宵的夜晚，我将抄来的网址一一敲进IE，一次又一次地填写用户名，密码等。然后第二天向人吹嘘自己有多少个电子邮箱。不过随着时间推移，这些网站基本上活着的没有几个了。嗯，想想，当年的邮箱有：sina.com.cn(最早)、163.net(被tom收购了)、163.com(活着)、etang.com(当年注册邮箱有送鼠标垫的，现在变成四六级查分了)、elong.com(现在好像改做旅游相关的了)、21cn.com(最著名的一句广告语：有了快感你就喊)、chinaren.com(被搜狐收购了)，当时有个小本子记这些邮箱来着，现在记得的只有这些了。那些被收购或者灭亡了的，把当年我的上网初体验也给带走了。即使是活着的sina之类，也在免费转收费的那次活动中把许久没登录的邮箱给清空了。现在我还能看到的，最早的email只能是04年的一封了。</p>
<p>看到这些列表，我又怀着激动的心情重新翻了个遍，其它的没找到，倒翻出这么一段音频来：</p>
<p><br /><img src="http://tigerlee.me/wp-content/plugins/ws-audio-player/img/music.gif" alt="music" />Author insert a music with <a href="http://icyleaf.com/projects/ws-audio-player/">WS Audio Player</a>.<br />(<a href="http://tigerlee.me/wp-content/uploads/2010/04/chat_robot.mp3" />Download</a>) this music.
<p>这段音频又勾起一起回忆，它是用来通过电话向一位女生播放的。当时在湘潭甚至是整个湖南都很流行的一个回拔服务，具体业务名已经记不清了，使用这个服务，可以匿名地让某个号码收听一段录音。在校园里极其流行，而我恶作剧地和另一位室友用着在今天看来相当简陋的设备，用一部山寨夜光宝盒MP3+三星手机的来生缘铃声，再配上官人那标准的郭柴白普通话，录下了这么一段机器人音频。音频中涉及的人名及音频播放对象已经无需多言了，但它本身却让我想起了象牙塔那自认为美好的四年光阴。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/qq-chat-robot/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
<enclosure url="http://tigerlee.me/wp-content/uploads/2010/04/chat_robot.mp3" length="226366" type="audio/mpeg" />
		</item>
		<item>
		<title>一首小诗</title>
		<link>http://tigerlee.me/p/a_poem/</link>
		<comments>http://tigerlee.me/p/a_poem/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 16:44:32 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[小诗]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=365</guid>
		<description><![CDATA[我是你流浪过的一个地方

作者：王海桑

爱情扶我上路，然后走开

<span class="readmore"><a href="http://tigerlee.me/p/a_poem/" title="一首小诗">阅读全文——共248字</a></span>]]></description>
			<content:encoded><![CDATA[<p><strong>我是你流浪过的一个地方</strong></p>
<p>作者：王海桑</p>
<p>爱情扶我上路，然后走开</p>
<p>让我一生怀念</p>
<p>怀念那一扶的久长</p>
<p>和一生的短暂</p>
<p>黑白色的夜里，我想看看月亮</p>
<p>我看见月亮很好</p>
<p>就像我当初</p>
<p>看见你很好一样</p>
<p>结束了，划一个句号，像一滴泪</p>
<p>握你的手，最后握你的手，再松手</p>
<p>一松手就是一千里</p>
<p>我的心平平静静地合上</p>
<p>你在外边，早晨在外边</p>
<p>你和早晨是一个人，身后是泪雨天堂</p>
<p>很多事情都会突然过去</p>
<p>愿意你好，一生都健康安全</p>
<p>你也会准时起床，干活，吃饭</p>
<p>累了，就歇一会</p>
<p>伤心了，也笑一笑</p>
<p>我也和你一样，好好地</p>
<p>照顾好日子和自己</p>
<p>---</p>
<p>在学校里读到过的一首小诗，写得很生活，记忆犹新。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/a_poem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>三月有话说</title>
		<link>http://tigerlee.me/p/things_happend_in_201003/</link>
		<comments>http://tigerlee.me/p/things_happend_in_201003/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 16:58:56 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=352</guid>
		<description><![CDATA[有时候，想写点东西了，却又觉得廖廖几句，不够凑成一篇像样的blog。如果把每天的一点小想法就用blog记下来，那就是在唠叨了。唠叨的话，还不如用buzz。

三月份发生的事情，我也想用韩峰局长的文体来记叙下，按时间顺序，具体日期记不得了。



<span class="readmore"><a href="http://tigerlee.me/p/things_happend_in_201003/" title="三月有话说">阅读全文——共1129字</a></span>]]></description>
			<content:encoded><![CDATA[<p>有时候，想写点东西了，却又觉得廖廖几句，不够凑成一篇像样的blog。如果把每天的一点小想法就用blog记下来，那就是在唠叨了。唠叨的话，还不如用buzz。</p>
<p>三月份发生的事情，我也想用韩峰局长的文体来记叙下，按时间顺序，具体日期记不得了。</p>
<ol>
<li>3月x号，下午在淘宝上看中了moto的milestone，在支付宝上付了款，下班后叫上y.bw一起去百脑汇拿手机去了。晚上在5楼随便吃了点东西，然后我就回家了。研究手机到12点后才睡觉。</li>
<li>3月x号，用了一段时间的android系统后，发现M8在J.W的修补下确实符合国人的使用，一些常用的小功能都整合进系统了。可是M8一直没法出手，没法收回现金流，很郁闷。</li>
<li>3月x号，晚上下班回到家时，看到手机里有未接来电，打过去才知道是老家的一个姑父来电。他是给我介绍女朋友的，大学生，还没毕业，并且还把手机号发给了我。女大学生的学校离我太远了，敷衍一阵，然后挂断。</li>
<li>3月x号，以前只在电脑上用Google Latitude，并且还是IP定位，玩着玩着就没兴趣了，现在手机上也有，并且支持GPS定位，还可以看到好友的位置，挺有意思的。</li>
<li>3月x号，早上正在上班，群里一个MM问我能不能帮她一个忙，我问是什么事情，她说他伯伯的女儿现在还没有男朋友，想让她帮忙介绍一个，MM问我能不能帮她这个忙，并且还把照片发给我了。MM的伯伯的女儿还不错，可是不是我喜欢的类型，直言无法帮忙。三月桃花运真旺。</li>
<li>3月x号，今天要搬家，昨天晚上把东西都收拾了一下，好多灰，今天早上睡醒后，感觉肺都重了许多。</li>
<li>3月x号，一直以来，都为wordpress的垃圾留言烦恼，用了官方的Akismet，还是不管用，每天总能有上百条。今天换了WP-SpanFree后，立马清爽了。（27号：一直到今天，也没有一条垃圾评论出现）</li>
<li>3月x号，今天把ubuntu从9.10升级到了10.04的beta版，变化挺大的，变好看了，再也不是以前的S黄色了。</li>
<li>3月x号，早上一进办公室，就听说g.cn退出中国了。失望，上网看新闻才知道，g.cn退到g.com.hk了，并且g.com.hk的"go to english"链接一直不起作用。（27号：今天又有一条新闻说，链接不起作用是bug，囧）</li>
<li>3月x号，这几天在抽空学习erlang, 这门函数式编程语言和以前学的语言太不一样了，感觉很新鲜。看到并发编程后，很是感慨，C++中那么复杂的进程间通讯，在erlang中仅20行不到的代码便能实现了。erlang我猜应该是<span style="color: #ff0000;">er</span>icsson <span style="color: #ff0000;">lang</span>uage的组合。</li>
<li>3月27号，晚上下班回住处，路过小摊，忍不住买了一支玉米。老板都烤糊了一片，还说这是正常的。吃了几口发现是糯玉米，不甜，又放了很多孜然粉，扔了，浪费3块钱。</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/things_happend_in_201003/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>C/C++之简易Logger</title>
		<link>http://tigerlee.me/p/c-cpp-simple-logger/</link>
		<comments>http://tigerlee.me/p/c-cpp-simple-logger/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 15:52:23 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[c++]]></category>
		<category><![CDATA[c/c++]]></category>
		<category><![CDATA[logger]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=333</guid>
		<description><![CDATA[用C++写Logger，常见的有这几种方法：



写一个Logger类，封装诸如Info(format, ...)、Warn(format, ...)之类的方法，然后用个实例化一个全局对象，处处皆可输出log，不仅到屏幕，而且可以到文件甚至是网络。

<span class="readmore"><a href="http://tigerlee.me/p/c-cpp-simple-logger/" title="C/C++之简易Logger">阅读全文——共898字</a></span>]]></description>
			<content:encoded><![CDATA[<p>用C++写Logger，常见的有这几种方法：</p>
<ol>
<li>写一个Logger类，封装诸如Info(format, ...)、Warn(format, ...)之类的方法，然后用个实例化一个全局对象，处处皆可输出log，不仅到屏幕，而且可以到文件甚至是网络。</li>
<li>在c99之前，宏定义中的可变参数...是不能直接在宏中展开的，必须在函数中使用va_list这样的方式来处理，所以如果不使用c99标准，简易的Logger可以使用</li>
<blockquote><p>#define LOG_INFO(msg)   printf msg</p></blockquote>
<p>这样的方式来定义一个宏，然后用以下方式来使用</p>
<blockquote><p>LOG_INFO(("hello, %s!\n", "world"));</p></blockquote>
<p>不过，这种方法的弊端在于，LOG_INFO宏在代码中的表现看起来不太符合常理，它应该像个函数，参数周围只用一对括号才好。为什么要用两对括号呢？因为只用一对括号，每个用','分隔的参数都会被传进对应的宏，而宏本身并不支持多态，所以只用一对括号，在c99以前的标准下，根本没法做到。并且如果我希望在每条log前都输出标识"[INFO] "的话，只能在每个使用了LOG_INFO的format参数中增加"[INFO] "，目的虽然能达到，但是灵活性不够，一旦需要修改，处处都得改。</p>
<li>在c99标准及以后，已经支持可变参数在宏定义中直接展开了，所以LOG_INFO可以这样来定义：</li>
<blockquote><p>#define LOG_INFO(...)   fprintf(stderr, "[INFO] "__VA_ARGS__)</p></blockquote>
<p>这样，我既可以选择将log输出到stdout，或是stderr, 或是某个文件指针（暂不讨论输出到文件，因为我暂时没这需求)。并且还可以随意地在format字串里加上前缀，甚至是文件(__FILE__)或函数(__FUNC__)信息，并且使用时就像正常的函数一样使用：</p>
<blockquote><p>LOG_INFO("hello, %d!", "world");</p></blockquote>
<p>如果使用gcc 4.0以上的版本，总是会有警告"warning: anonymous variadic macros were introduced in C99”出现，编译时加上参数"-Wno-variadic-macros"就清静了。</ol>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/c-cpp-simple-logger/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>你是我心里的一首歌</title>
		<link>http://tigerlee.me/p/the-lion-king-ending-song/</link>
		<comments>http://tigerlee.me/p/the-lion-king-ending-song/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 16:58:57 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=311</guid>
		<description><![CDATA[小时候很喜欢看的一部动画片，可是电视不如人愿，总是只能看到其中若干集，让人巨不爽。后来在大学其间，有刻意在网上寻找过，但搜出来的都是电影版狮子王的相关资料，与动画片版相关的完全没有。那个时候，youtube都还没出来，更别说是国内的跟风者了，所以无功而返。

今天突然兴起，在tudou上随意一搜，网络果然是个好东西，年代那么久远的动画片，居然还有人买了光盘，并放到了网上。时刻这么多年，能重新看到这部片子，真的是浮想联翩。

其实，我找这部动画片的主要目的是：我小时候觉得这首片尾曲很好听，很活泼的节奏。现在再重听这首歌，别有一番风味。下面，请听曾在CCTV-1/7播放过的意大利版《狮子王》片尾曲——《从林之王》：

<span class="readmore"><a href="http://tigerlee.me/p/the-lion-king-ending-song/" title="你是我心里的一首歌">阅读全文——共355字</a></span>]]></description>
			<content:encoded><![CDATA[<p>小时候很喜欢看的一部动画片，可是电视不如人愿，总是只能看到其中若干集，让人巨不爽。后来在大学其间，有刻意在网上寻找过，但搜出来的都是电影版狮子王的相关资料，与动画片版相关的完全没有。那个时候，youtube都还没出来，更别说是国内的跟风者了，所以无功而返。</p>
<p>今天突然兴起，在tudou上随意一搜，网络果然是个好东西，年代那么久远的动画片，居然还有人买了光盘，并放到了网上。时刻这么多年，能重新看到这部片子，真的是浮想联翩。</p>
<p>其实，我找这部动画片的主要目的是：我小时候觉得这首片尾曲很好听，很活泼的节奏。现在再重听这首歌，别有一番风味。下面，请听曾在CCTV-1/7播放过的意大利版《狮子王》片尾曲——《从林之王》：<span id="more-311"></span></p>
<p>视频版：</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="401" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="src" value="http://www.tudou.com/player/outside/beta_player.swf?iid=25012670&amp;cs=0xFFFFFF_0x0099FF_0x002864_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0x003366_0x46BAFFF_0x000066_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="500" height="401" src="http://www.tudou.com/player/outside/beta_player.swf?iid=25012670&amp;cs=0xFFFFFF_0x0099FF_0x002864_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0x003366_0x46BAFFF_0x000066_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF" wmode="transparent" quality="high" allowfullscreen="true" allowscriptaccess="always" align="middle"></embed></object></p>
<p>音频版（没有那位阿姨的旁白了）：</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="26" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="align" value="middle" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="src" value="http://www.tudou.com/player/outside/beta_music.swf?iid=13528856&amp;cs=0xFFFFFF_0x0099FF_0x002864_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0x003366_0x46BAFFF_0x000066_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="320" height="26" src="http://www.tudou.com/player/outside/beta_music.swf?iid=13528856&amp;cs=0xFFFFFF_0x0099FF_0x002864_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0x003366_0x46BAFFF_0x000066_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF_0xFFFFFF" wmode="transparent" quality="high" allowfullscreen="true" allowscriptaccess="always" align="middle"></embed></object></p>
<p><strong>这里还有全集的观看地址</strong>：<a href="http://goo.gl/3mo4" target="_blank">http://goo.gl/3mo4</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/the-lion-king-ending-song/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>手机变迁史</title>
		<link>http://tigerlee.me/p/my-cellphone-history/</link>
		<comments>http://tigerlee.me/p/my-cellphone-history/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 16:52:43 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[M8]]></category>
		<category><![CDATA[Milestone]]></category>
		<category><![CDATA[手机]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=284</guid>
		<description><![CDATA[华为A318

我最早用的移动通信设备是华为的一款小灵通A318，这部小灵通伴随了我1年多，既当闹钟，又能发短信，时不时的还可以玩玩贪吃蛇。当年天冷时，就窝在被子里玩贪吃蛇，一直玩到没电为止。打电话时，我就跑到宿舍楼顶，反正我坐顶楼，比较近。那时候，一句话可以形容我打电话时的样子：“手持小灵通，站在风雨中，昂首又挺胸，就是打不通”。

就这样，伴我渡过了大学中碌碌无为的一段时光。可惜最后被我在一滑旱冰时不慎一屁股给到了。话说，我的PP还真厉害，一下就把屏幕给压碎了，然后A318同志就因此重症不治身亡。

<span class="readmore"><a href="http://tigerlee.me/p/my-cellphone-history/" title="手机变迁史">阅读全文——共2927字</a></span>]]></description>
			<content:encoded><![CDATA[<div id="attachment_285" class="wp-caption alignleft" style="width: 250px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/2007060718473710252.jpg"><img class="size-full wp-image-285" title="华为A318" src="http://tigerlee.me/wp-content/uploads/2010/03/2007060718473710252.jpg" alt="" width="240" height="160" /></a><p class="wp-caption-text">华为A318</p></div>
<p>我最早用的移动通信设备是华为的一款小灵通A318，这部小灵通伴随了我1年多，既当闹钟，又能发短信，时不时的还可以玩玩贪吃蛇。当年天冷时，就窝在被子里玩贪吃蛇，一直玩到没电为止。打电话时，我就跑到宿舍楼顶，反正我坐顶楼，比较近。那时候，一句话可以形容我打电话时的样子：“手持小灵通，站在风雨中，昂首又挺胸，就是打不通”。</p>
<p>就这样，伴我渡过了大学中碌碌无为的一段时光。可惜最后被我在一滑旱冰时不慎一屁股给到了。话说，我的PP还真厉害，一下就把屏幕给压碎了，然后A318同志就因此重症不治身亡。</p>
<p><span id="more-284"></span></p>
<div id="attachment_286" class="wp-caption alignright" style="width: 310px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/DSC02466_conew1.jpg"><img class="size-medium wp-image-286 " title="O2 XdaII mini" src="http://tigerlee.me/wp-content/uploads/2010/03/DSC02466_conew1-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">O2 XdaII mini</p></div>
<p>07年初，入手了一台Dopod 818，其实是水货，在英国叫O2 Xda II mini。这是我在网上找了好久，然后专程跑到长沙去买的。第一台入手的智能手机，并且还是触摸屏的，开启了本人的智能手机使用元年。</p>
<p>818是一部好机器，也是一部牛X的机器，它是2004年出产的高端货，在dopod官网上报价是6000多，并且它的配置即使与07年6月的dopod s1(即htc touch)相比，也丝毫不显得落后。</p>
<p>416Mhz的Intel PXA 272 CPU，加上64MB内存，并且还具有一块2.8寸在当时看来超大的触摸屏。一经推出，便折服了许多机油的心。这款机器运行速度超快，搭配Windows Mobile 2003比S1+Windows Mobile 6的组合要流畅许多。我当年每天乐不思蜀的折腾它，pdafans, 3g365, pxdxa等诸多智能手机论坛都有哥华丽的账号。在顶峰时期，我电脑里面的手机软件资源加起来共有4G之多。</p>
<p>只可惜Dopod机器的通病，喇叭音量太小，听筒容易出问题，主板上的电池老化，换了钮扣电池也不顶事，一拔掉主电池，系统就硬启；再加上后盖容易松动，一将手机从口袋里掏出来，机器就掉电硬启了。</p>
<div id="attachment_287" class="wp-caption alignleft" style="width: 310px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/DSC02463_conew1.jpg"><img class="size-medium wp-image-287" title="Meizu M8" src="http://tigerlee.me/wp-content/uploads/2010/03/DSC02463_conew1-300x224.jpg" alt="" width="300" height="224" /></a><p class="wp-caption-text">Meizu M8</p></div>
<p>终于在09年的5月，不堪忍受每天定时备份联系人和短信等资源，以防掉电。入手了当时传得相当厉害的一代国产神机Meizu M8!</p>
<p>M8以它强大的CPU、硕大的显示屏、大容量内存、海量存储空间、独树一帜的用户界面，及iPhone它侄女的外观，让哥不由得暗生情愫，以致于情不能自已，购入到手。</p>
<p>M8的屏幕相当精致，在2010年以前的的手机中，不论贵贱，鲜有显示屏能与之匹敌的对手。480x720的高分辨率，让哥不管是看视频，还是网页，又或是电子书，都相当自信。其多媒体性能之牛X，让我觉得它与魅族官方号称的互联网手机简单是牛头不对马嘴，或者换言之，M8的互联网功能在其多媒体功能对比下，如若无物。从我每月2元包10M的流量只能用到3~5M便可看出，这不是部互联网手机。</p>
<p>另一方面，由于是在Windows CE的基础上做二次开发，手机上的应用软件少得可怜，这让身为软件控的我情何以堪。在有一段时间，官方测试固件的发布频率比其平台上应用软件的发布频率还要高。在这样艰苦的环境下，哥都在始终坚持每版必刷，争当JW的小白鼠。由于这种恶习，到后来，哥连应用软件都懒得装了，不是没有激情，实在是能看得入眼的软件太少了，并且基本上缺乏可用性。</p>
<div id="attachment_293" class="wp-caption alignright" style="width: 310px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/DSC02462_conew1.jpg"><img class="size-medium wp-image-293" title="Moto Milestone" src="http://tigerlee.me/wp-content/uploads/2010/03/DSC02462_conew1-300x224.jpg" alt="Moto Milestone" width="300" height="224" /></a><p class="wp-caption-text">Moto Milestone</p></div>
<p>M8不带GPS，不支持android(谁知道JW的android什么时候能出来呢？也许是2012?)，让哥终于痛下决心，入了一台Moto Milestone。Android集成了太多了哥喜欢的google服务和软件：gmail、gtalk、google calendar、chrome lite、gmap等等，无缝整合用起来就让人心情舒畅啊。杭州这几天连续雨天都让哥的心情没有丝毫阴霾。</p>
<p>后面买的三款机器都是大块头，并且都是触摸屏。使用惯了WM平台的点讯输入法，发现android上居然没有一款像点讯一样的点划式输入法，不得不说是一个遗憾啊。</p>
<p><strong>嗯，在图片秀之前，插播一条广告：</strong></p>
<p><span style="color: #ff6600;">转让Meizu M8 SE版一台，09年5月份购入公测版，10月换新为SE版，1月份因屏幕问题返厂维修。所以整个机器看起来就是&gt;9成新，购机时的配件均在，包括充电器，光宇1300mha电池(换新过的)，耳机等该有的。现于价位1200转让，不接受任何形式的刀。</span></p>
<div id="attachment_294" class="wp-caption aligncenter" style="width: 622px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/DSC02461_conew1.jpg"><img class="size-full wp-image-294   " title="依偎" src="http://tigerlee.me/wp-content/uploads/2010/03/DSC02461_conew1.jpg" alt="厚度对比" width="612" height="459" /></a><p class="wp-caption-text">依偎</p></div>
<p style="text-align: center;">
<div id="attachment_295" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc024671.jpg"><img class="size-full wp-image-295 " title="合影" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc024671.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">合影</p></div>
<div id="attachment_296" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc024791.jpg"><img class="size-full wp-image-296 " title="合影II" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc024791.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">合影II</p></div>
<div id="attachment_297" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc024861.jpg"><img class="size-full wp-image-297 " title="厚度对比" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc024861.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">厚度对比</p></div>
<div id="attachment_298" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc024871.jpg"><img class="size-full wp-image-298 " title="厚度对比II" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc024871.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">厚度对比II</p></div>
<div id="attachment_299" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc024931.jpg"><img class="size-full wp-image-299 " title="Milestone单机照" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc024931.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">Milestone单机照</p></div>
<div id="attachment_300" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc024951.jpg"><img class="size-full wp-image-300 " title="M8单机照" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc024951.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">M8单机照</p></div>
<div id="attachment_301" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc024961.jpg"><img class="size-full wp-image-301 " title="818单机照" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc024961.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">818单机照</p></div>
<div id="attachment_302" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc024991.jpg"><img class="size-full wp-image-302 " title="三兄妹（妹是指8妹）" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc024991.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">三兄妹（妹是指8妹）</p></div>
<div id="attachment_303" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc025041.jpg"><img class="size-full wp-image-303 " title="Milestone视频播放" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc025041.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">Milestone视频播放</p></div>
<div id="attachment_304" class="wp-caption aligncenter" style="width: 650px"><a href="http://tigerlee.me/wp-content/uploads/2010/03/dsc025061.jpg"><img class="size-full wp-image-304 " title="两兄妹视频播放对比" src="http://tigerlee.me/wp-content/uploads/2010/03/dsc025061.jpg" alt="" width="640" height="480" /></a><p class="wp-caption-text">两兄妹视频播放对比</p></div>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/my-cellphone-history/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>可怜的耷拉</title>
		<link>http://tigerlee.me/p/a-pity-word/</link>
		<comments>http://tigerlee.me/p/a-pity-word/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 16:16:53 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[思考]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=263</guid>
		<description><![CDATA[惊闻我国文学史上著名的“耷拉”一词被列为工信部官方指定花季少年上网专用泄洪软件——绿坝打入到屏蔽词汇行列，这让我想起了几年前在科幻世界上看到的一篇小说《寂静之城》。

我依稀记得这篇小说中的主角接上网络，与他人进行联系时，事先都需要下载一个“安全词汇表”，这个表中列出了当前能够自由在网络上传播的词汇，任何在网络上传播的信息仅能够使用这个表中列出的词汇来撰写；并且这个列表会不停地更新，你不知道什么时候会发生变化，可能当你写完一封email后，发现最新的“安全词汇表”中已经又少了几个可以使用的词汇，这意味着如果你的email中包含了这几个消失的词汇，你不得不想办法用其它词汇来代表它们。打个比方，如果“运动”被禁用了，你可以使用“质点位移”来代替它。总之，你需要在有限的词汇中创造出无穷的含义。

<span class="readmore"><a href="http://tigerlee.me/p/a-pity-word/" title="可怜的耷拉">阅读全文——共1107字</a></span>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.douban.com/group/topic/6877195/">惊闻</a>我国文学史上著名的“耷拉”一词被列为工信部官方指定花季少年上网专用泄洪软件——绿坝打入到屏蔽词汇行列，这让我想起了几年前在科幻世界上看到的一篇小说《寂静之城》。</p>
<p>我依稀记得这篇小说中的主角接上网络，与他人进行联系时，事先都需要下载一个“安全词汇表”，这个表中列出了当前能够自由在网络上传播的词汇，任何在网络上传播的信息仅能够使用这个表中列出的词汇来撰写；并且这个列表会不停地更新，你不知道什么时候会发生变化，可能当你写完一封email后，发现最新的“安全词汇表”中已经又少了几个可以使用的词汇，这意味着如果你的email中包含了这几个消失的词汇，你不得不想办法用其它词汇来代表它们。打个比方，如果“运动”被禁用了，你可以使用“质点位移”来代替它。总之，你需要在有限的词汇中创造出无穷的含义。</p>
<p>这篇5年前的文章和我们现在的生活是多么惊人的相似啊，从某种程度上来讲，甚至超越了小说中描写的情节。他们至少还有一本安全词汇表，可以知道哪些词还能正常使用，而我们则永远不会知道使用哪些词能够绝对安全。虽然在现阶段，我们的不安全词汇表还不能大过安全词汇表。如harmony现在只能委曲求全的叫做河蟹或水产，撡亇媽摇身变成草坭玛。</p>
<p>得益于一些软件或网站的程序设计漏洞存在，我有幸收集到一些软件的敏感词们。像老版本emule中的wordfilter.dat，起点中文网javascript中隐藏的forbidenwords，工信部传世之作（绿坝）中的<a href="http://docs.google.com/Doc?docid=dczkbptk_0ffc2hvc9&amp;hl=en">falunword.lib</a>等。它们，只是我们所接触到的一些软件或网站中为数不多的没隐藏好自己的孩子。在一些流量大的网站，如果你在一个著名的社区（比如说<a href="http://www.19lou.com">19lou</a>吧）里写了一张长篇大论的贴子，我基本可以断定，这张帖子会由于敏感词的存在而让你发挥充分的想像力，利用比喻，排除等各式手法来将它们一一删除。这是件很痛苦的事情，因为它们在暗处，并且可能根本就不是你想的那样，如“1000块急转让一台独立服务器”中的倒数第5和第4个字，没有高超的断字技巧，你能知道这句话里在我们老大哥心中包含的深刻含义么？想快速的找到这些敏感词，我只能表示too young too simple, sometimes naive!</p>
<p>在可以预见的未来，当敏感词多于安全词；当河蟹战胜了草坭玛；我觉得像wordfileter.dat这样的黑名单将不复存在，取而代之的将是“Safewords.dat”这样的白名单，这就是我们的最高理想之一——网络言论的<strong><span style="color: #ff0000;">共産宔義！</span></strong></p>
<p><span style="color: #ff0000;"><span style="color: #000000;">注：本blog并未使用我收集的敏感词家族来进行言论过滤，所有火星文均在<a href="http://www.huoxingyu.com/">这里</a>翻译所得，请自觉勿向我索要敏感词族谱，我是绝对不会通过QQ或Email的形式推送给你的！</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/a-pity-word/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>一篇书评引起的八卦</title>
		<link>http://tigerlee.me/p/gossip-caused-by-a-book-review/</link>
		<comments>http://tigerlee.me/p/gossip-caused-by-a-book-review/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 16:53:35 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>
		<category><![CDATA[IT八卦]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=246</guid>
		<description><![CDATA[早上看到TopLanguage的maillist, 提到一个八卦事件，《0 bug——C/C++商用工程之道》的作者肖舸和他的一位读者就书中的一些纰漏的豆瓣上所引起的争论。

我平时对这些IT八卦也有所关注，于是去凑了凑热闹。估计作者那天心情不怎么好或是其它原因，对好心指出文中值得商榷的地方读者Milo竟然不屑一顾，批评Milo在C++和服务器程序开发上没什么经验，没资格挑错等。如果Milo真是个无名小辈那也就算了，可是人家也是位牛人，并且能力据目测加道听途说好像是有可能高于作者，出于职业精神，在豆瓣和当当上发表了下书评，然后作者觉得丢份了啊，光天化日之下砸场子，于是乎就整成了这起杯具事件。事后作者也意识到自己作法不妥当，将自己的回帖全删了。还好有位喜欢看热闹的朋友将全部记录保存下来了，看这里能了解事情的完整经过。并且我居然还发现云风也去凑热闹了，-_-!

<span class="readmore"><a href="http://tigerlee.me/p/gossip-caused-by-a-book-review/" title="一篇书评引起的八卦">阅读全文——共984字</a></span>]]></description>
			<content:encoded><![CDATA[<p>早上看到TopLanguage的maillist, 提到一个八卦事件，《0 bug——C/C++商用工程之道》的作者肖舸和他的一位读者就书中的一些纰漏的豆瓣上所引起的争论。</p>
<p>我平时对这些IT八卦也有所关注，于是去凑了<a href="http://www.douban.com/review/2949973/">凑热闹</a>。估计作者那天心情不怎么好或是其它原因，对好心指出文中值得商榷的地方读者Milo竟然不屑一顾，批评Milo在C++和服务器程序开发上没什么经验，没资格挑错等。如果Milo真是个无名小辈那也就算了，可是人家也是位牛人，并且能力据目测加道听途说好像是有可能高于作者，出于职业精神，在豆瓣和当当上发表了下书评，然后作者觉得丢份了啊，光天化日之下砸场子，于是乎就整成了这起杯具事件。事后作者也意识到自己作法不妥当，将自己的回帖全删了。还好有位喜欢看热闹的朋友将全部记录保存下来了，看<a href="http://www.douban.com/group/topic/9651108/">这里</a>能了解事情的完整经过。并且我居然还发现云风也去凑热闹了，-_-!</p>
<p>热闹凑到这里就够了，我从中得到一些启发：</p>
<ul>
<li>撇开技术层面不说，光谈技术交流，不能依仗自己的经验或资历，便不能接受别人的意见，甚至是指责，即使意见和指责是错误的。让人敬佩的胸襟应该是仔细分析对方的意见指责，平和的道出自己的意见，请求对方理解，就像Milo那样，谦谦有礼，他这点让我很敬佩。对儒家没什么好感，但是他提倡的礼，我觉得应该在自己的生活中贯彻执行。</li>
<li>在技术层面，个人认为"0 bug"言过其实，作者自己也坦言做不到，人家做得最好的也都出了1个bug。可是0 bug真的可以达到么？测试没测出来，运维把系统运行了几个月、甚至几年也没报bug，这就真的是没bug了？对于"没出现"和"不存在"划上等号的这种行为，我不能赞同。</li>
<li>如果发现是自己的错误，碍于面子死不承认是不好的做法，低头认错不代表自己就技不如人。作者之所以招来众人围观，并称之为群P他，是因为他一直认为自己是对的，不仅在书中知识方面，而且在对待像Milo这样的读者方面也是正确的。二十多年经验，在业内小有名声的人，如此心胸，太让人小看了。前段时间也是偶尔拜读到他给一位年轻学生写的回信，觉得此人还行，今日此等做法，实在让人难以再重新认识他了。如果及时承认错误，或者礼貌地澄清问题，我想这种礼貌待人之事也不会引起围观和“群P”了。</li>
</ul>
<p>好吧，因一八卦事引发如此感想，是觉得自己还有上升的空间。如果等到作者这种地步还是如此心境，那就太可惜作者今天“以身作则”了。呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/gossip-caused-by-a-book-review/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>年初二三事</title>
		<link>http://tigerlee.me/p/trifle_at_the_beginning_of_2010/</link>
		<comments>http://tigerlee.me/p/trifle_at_the_beginning_of_2010/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 15:54:34 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=231</guid>
		<description><![CDATA[相对于以往平静的生活，这几天倒是多了一些值得记载的事情了。



一代神机M8终究顶不住不慎泼洒的茶水，摆身变成了只能看，不能摸的花瓶。米办法，只能返厂了。

<span class="readmore"><a href="http://tigerlee.me/p/trifle_at_the_beginning_of_2010/" title="年初二三事">阅读全文——共522字</a></span>]]></description>
			<content:encoded><![CDATA[<p>相对于以往平静的生活，这几天倒是多了一些值得记载的事情了。</p>
<ol>
<li>一代神机M8终究顶不住不慎泼洒的茶水，摆身变成了只能看，不能摸的花瓶。米办法，只能返厂了。</li>
<li>在我的游说下，部门终于舍弃了通过Excel表格提交Bug并处理的流程，转而投奔到<a href="http://www.redmine.org">Redmine</a>,对于日常的开发工作而言，算是进了一步。</li>
<li>代码仓库从cvs迁移到svn，命令行使用cvs真是糟透了，每次cvs st的时候都要等好久，并且出现一堆无用的信息，也许是自己cvs用得不够好吧。不过cvs先天不支持changeset，很难让我对它有爱了。</li>
<li>2010年初，一个阳光明媚的中午，在确认一个Bug属于误报后，打了个出租车奔到延安路，到中信金通开户了。意味着我已经迈入了扑朔迷离的中国股市里，顺带还开了个创业板。当然，不仅打的可以找中信金通报销，而且还送了张面值50银民币的超市卡。</li>
<li>下午接到Meizu电话，说是M8已经医好，可以送回来又让我继续摸了，带着广东口音的售后温柔地向我确认邮寄地址是否正确，我激动得不停的说“色色累”。</li>
<li>今天下班回来，静下心来，把该给学生的拖了好久的信终于搞定了，三页纸！已经很久没用笔写过这么多字了，竟然发现写了么这多字，居然没几行是歪的了。</li>
</ol>
<p>以下是图片时间：<span id="more-231"></span></p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/01/card.jpg"><img class="alignnone size-full wp-image-233" title="账户卡" src="http://tigerlee.me/wp-content/uploads/2010/01/card.jpg" alt="" width="575" height="361" /></a></p>
<p>特意缩小，以模糊字迹。</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/01/letter.jpg"><img class="alignnone size-full wp-image-232" title="信" src="http://tigerlee.me/wp-content/uploads/2010/01/letter.jpg" alt="" width="325" height="182" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/trifle_at_the_beginning_of_2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>使用Google Talk Chatback</title>
		<link>http://tigerlee.me/p/use-google-talk-chatback/</link>
		<comments>http://tigerlee.me/p/use-google-talk-chatback/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 17:32:47 +0000</pubDate>
		<dc:creator>tiger lee</dc:creator>
				<category><![CDATA[折腾]]></category>
		<category><![CDATA[Google Talk]]></category>

		<guid isPermaLink="false">http://tigerlee.me/?p=220</guid>
		<description><![CDATA[逛云风的blog时发现这么个玩意，挺新颖的，不仅可以显示GTalk的状态，还能直接发起对话。

想我也是个GTalk控，尽管一直都是用的皮筋儿(pidgin)，从没用过官方的客户端，这还是得益于开放的协议啊，说到这里，又忍不住BS腾讯了。

Google一番，找到了这个网页，很简洁的说明，要么使用默认的样式，要么自己修改一下，点击"update badge"来生成html代码以嵌入到自己的网页上。

<span class="readmore"><a href="http://tigerlee.me/p/use-google-talk-chatback/" title="使用Google Talk Chatback">阅读全文——共866字</a></span>]]></description>
			<content:encoded><![CDATA[<p>逛<a href="http://blog.codingnow.com/">云风的blog</a>时发现这么个玩意，挺新颖的，不仅可以显示GTalk的状态，还能直接发起对话。</p>
<p>想我也是个GTalk控，尽管一直都是用的皮筋儿(<a href="http://www.pidgin.im">pidgin</a>)，从没用过官方的客户端，这还是得益于开放的协议啊，说到这里，又忍不住BS腾讯了。</p>
<p>Google一番，找到了这个<a href="http://www.google.com/talk/service/badge/New">网页</a>，很简洁的说明，要么使用默认的样式，要么自己修改一下，点击"update badge"来生成html代码以嵌入到自己的网页上。<span id="more-220"></span></p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/01/GoogleTalkChatback.jpg"><img title="Google Talk Chatback" src="http://tigerlee.me/wp-content/uploads/2010/01/GoogleTalkChatback.jpg" alt="" width="489" height="278" /></a></p>
<p>生成的代码是可以修改宽高来适应不同的网页的，就那么几个数字，我就不多说怎么去改了。</p>
<p>完了后，我贴在WordPress的sidebar上，试试，效果很不错，也不需要访客有google账号。可以这会不会对自己造成骚扰呢？要是哪个无聊的人狂点，那还不折腾死了。</p>
<p>测试的时候顺便发现了pidgin的一个小bug，因为这个访客id是google自动生成的，并且很长，而我习惯把pidgin的tab页面放在右侧竖着显示，这样的话，每次接受一个访客聊天，窗口就变成了这样：</p>
<p><a href="http://tigerlee.me/wp-content/uploads/2010/01/pidgin.jpg"><img title="pidgin" src="http://tigerlee.me/wp-content/uploads/2010/01/pidgin.jpg" alt="" width="462" height="524" /></a></p>
<p>并且是无限延伸，一望无垠啊。不过切换到横向显示就没这个问题了。名字太长应该截断的啊，得，去pidgin的trac上提个ticket。</p>
<p>Chatback倒底是个嘛玩意呢？引用官方Help Center的一段话。</p>
<blockquote><p>A Google Talk chatback badge allows others to chat with you even if they haven't signed up for Google Talk on their Google Account or if they don't have a Google Account. You can put the badge in your blog or website, and people who visit those pages can chat with you. The badge will display your online status (whether you're available to chat or not) and, optionally, your status message.</p></blockquote>
<p>OK，2010年的第一篇日志就这样开始了。</p>
]]></content:encoded>
			<wfw:commentRss>http://tigerlee.me/p/use-google-talk-chatback/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
