<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.5" -->
<rss version="0.92">
<channel>
	<title>JoeCen's 小猫窝</title>
	<link>http://www.joecen.com</link>
	<description>完美之道,不在于无可添加,而在于无可删减.</description>
	<lastBuildDate>Fri, 18 Jul 2008 08:14:45 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>完成了准分子激光手术</title>
		<description>我总是很容易冲动的，前天才去医院检查，看是否适合做准分子激光手术，纠正近视眼，想不到第二天就去了做手术。

可能有的人会觉得这个手术比较大风险，有反弹的可能，但是以我的亲身经历来看，这个手术对医生来说，应该只是小菜一碟。决定做这个手术之前我看了很多关于手术的介绍，也问了几个身边的朋友，都没有人说效果很不好的，这加强了我自己对它的信心。

准分子激光手术其实很简单，就是用仪器将你的角膜割开，然后在瓣下角膜基质层上用准分子激光根据近视、散光度数进行精确切削。听起来很可怕，但是其实做起来很简单很快，真正上手术台的时间只有几分钟。一只眼只需要30秒到1分钟就可搞掂（话虽然这么说，不过其实我做的时候还是很紧张）。

我选的医院是广州市第一人民医院，39健康网上面有一篇文章《年终PK 评点广州10大医院准分子手术》给了我很大帮助，根据文章里面的介绍，市一医院的价格比较适中，而且也是投入比较大，比较重视准分子手术的一家医院。首先，他专门成立了一个“激光近视眼”的科室，然后他的手术仪器据说是最先进的，最后是他的资料是最详细的：有自己的网站，里面的资料很非常有用；在google做了关键字广告，你搜索“激光”或者”近视眼“的话就可以看到。（关键的是，他没有在baidu做，我稀饭）。那么就决定去市一做了。

星期三早上去了检查，380元。检查的项目比较多，时间是1个半小时左右，不过其实有大半的时间是耗在等眼睛散瞳上。散瞳以后，原来要5个小时眼睛才能恢复，我晕，下午还去了上班。不过就是看不清楚近的东西而已。。天呀，我要离显示器2米来工作？所以最好还是留一天来做检查比较好。星期四早上回去复检，然后下午3点左右进行手术。我选的是ORK手术，总价是7500元。

手术准备的屋子不大，只能容纳6、7个人左右，手术的衣服也只有那么几件，大家轮着穿。第一个步骤是自己去洗手、洗脸，然后护士帮我穿上手术服，最后用消毒液帮我冲洗干净眼睛和睫毛，我就可以在旁边等了。看着一个个人从手术间完成手术出来，都安然无恙，我感觉还是比较放心。不过快到我的时候，心里面又开始有点紧张了。轮到我了，先进去手术室，护士帮我的眼睛滴上麻药。几分钟以后，前一位完成手术以后，我就要立即上台了。

躺下以后，眼前是3盏红灯，根据提示，我死盯着中间那盏闪着的红灯看。一个发着机器“孜孜”的声音的金属物体落下，然后我就看不到东西了。过了两秒，金属物体拿开了，我又看到红灯。这时候，我的心里面只有一个念头，”一定要看着红灯“！坚持了几十秒左右，一只眼睛就做好了，然后就到另一只眼睛。整个过程，没有疼痛的感觉。

终于做好了！不过之后我又被戴上了一个透明的眼罩，就好像从玻璃杯看出来一样，很不舒服。不过也只需要戴一晚而已，那就忍一晚好了。下午回家以后不能看东西，那么就睡在床上听歌，几个小时里流了n多眼泪，不是感动，而是麻药的关系。。

手术后的第二天早上去了复检，说每天要滴3瓶眼药水。现在是第二天的下午，已经可以上班了。
 </description>
		<link>http://www.joecen.com/2008/07/18/complete-lasik-ork-cam-operation/</link>
			</item>
	<item>
		<title>ext3文件系统文本文件的恢复</title>
		<description>今天误删了一个脚本文件，十分懊恼。自己做过安全培训的导师，居然也犯这些低级错误，实在是不应该。

虽然脚本不是很长，但是也不想重新写一次，于是到处找方法看能不能恢复。

网上是有恢复的方法，不过都是针对ext2的，如果是ext2的话，直接用debugfs的lsdel指令找出删除文件的inode，然后根据其来进行恢复就可以了。

可是，现在还有人用ext2么？ext3和ext2大部分功能都一样，但是删除文件上面却不一样。在“如何恢复 Linux 上删除的文件，第 4 部分”这篇IBM的文章中写到：


在删除文件时，对于 ext2 文件系统来说，操作系统只是简单地修改对应索引节点中的删除时间，并修改索引节点位图和数据块位图中的标志，表明它们已经处于空闲状态，可以被重新使用；而对于 ext3 文件系统来说，还清除了表明数据块存放位置的字段（i_block），并将索引节点中的文件大小信息设置为 0。然而，这点区别对于恢复被删除文件的用途来说却是至关重要的，因为缺少了文件大小和数据块位置的信息，尽管文件数据依然完好地保存在磁盘上，但却没有任何一条清晰的线索能够说明这个文件的数据块被存储到哪些磁盘块中，以及这些数据块的相互顺序如何，文件中间是否存在文件洞等信息，因此要想完整地恢复文件就变得非常困难了。这也正是使用 debugfs 的 dump 命令在 ext3 文件系统中并不能恢复已删除文件的原因。



上面这篇文章里面一共举出了三个方法对ext3的文件进行恢复，但是我觉得比较靠谱的只有第一个。

第一个方法是使用grep或者strings命令，对分区的所有文本内容进行检索，以找回自己误删文件的内容。这个方法是比较可行的，我也实践成功了。不过缺点是只可以恢复文本文件，因为2进制文件是匹配不到的。

第二个方法是提前备份元数据，这个方法我觉得不靠谱，也是和ext3的原则相违背的：本来ext3就是要改为删除文件的时候同时删除i_block，你还自己手工加一个进去。
其实我在搜索其他方法的时候也见过几个这样做的文章，sourceforge上面也有人写了一个这样的工具，好像叫作"giis"。我下载以后，看它的readme，上面第一句就说：

It's a file recovery tool...but you can't recover files deleted before installtion of giis

差点没把我气死。

第三个方法是修改内核，修改ext3的实现，这个方法评价同上。我的服务器用的是debian，有自己的包更新系统，所以不太希望自己对内核进行改动。


介绍完毕，现在开始实作：
那么我就用第一个方法，匹配分区中所有的文本来找回我的脚本内容。

急救措施第一步，当然是先umount掉你的分区，或者将其设置为readonly的，以免误删文件的block被覆盖，那就完蛋了。

mount -o remount,ro /dev/sda9

可以用fueser命令看当前目录有什么进程在用，然后kill掉它。

fuser -v -m /home


这个方法是使用grep或者strings命令对分区进行操作。

使用grep的话，可以用下面的命令：


grep -A 1 -B 1 -a -n "Your script content" /dev/sdb9 > sdb9.testfile


-A 和 -B分别是同时显示匹配行的下一行和上一行的内容，"Your script ...</description>
		<link>http://www.joecen.com/2008/06/26/recover_ext3_filesystem_text_file/</link>
			</item>
	<item>
		<title>从泰国回来了</title>
		<description>昨天终于从泰国回来了。
休息了一个星期，要好好工作呀！

泰国是一个非常适合去旅行的国家，当然，你知道我不是说跟团。

Bangkok是一个大杂烩，什么都有，混乱、堵塞的交通、特色的guest house、高高在上的BTS、Mr. P、shopping、chinese、naraya、金碧辉煌的大皇宫、历史悠久的火车站、便宜的火车票、渡轮、鸡肉炒饭......

Chiang Mai很安静，古城里有非常多的庙宇，当然不得不提的是路上也有非常多的狗屎。Chiang Mai是邓丽君最喜欢和生命旅程的最后一站，的确足够和谐与安详。素贴山很高，但是我的moto车可以上，不过真的太对不起这台100cc的Honda，载着我们上到海拔1000多米的山顶，上气不接下气，还差点抛锚。下山的时候，我才发觉到原来上山的路并没有上山时看到的如此平坦。

Ayutthaya三面环水，几乎整个城市都在古迹的废墟之中。

Bang Pa-In,夏宫是我们来这里的唯一目的。 </description>
		<link>http://www.joecen.com/2008/06/23/back-from-thailand/</link>
			</item>
	<item>
		<title>virtulbox 中安装招行usb key 以及vboxdrv错误解决</title>
		<description>从ubuntu的源安装了virtulbox-ose，ose是virtulbox提供source的版本。
今天想在virtulbox中安装招行的usb key和专业版，但是怎么都load不到usb设备。
google出马，发现ose版本似乎并不支持usb设备。于是卸载掉virtulbox-ose，然后从virtulbox的网站上面下载了ubuntu的deb包，才发现现在virtulbox变成sun的东西了。
安装deb包很顺利，但是启动的时候出现了麻烦，找不到vbox的module。

于是

/etc/init.d/vboxdrv setup

出现一个错误：

failure "Look at /var/log/vbox-install.log to find out what went wrong"


cat /var/log/vbo-install.log

/etc/init.d/vboxdrv: line 255: /usr/lib/virtualbox/src/build_in_tmp: No such file or directory


找了很久，发现原因是virtualbox遗留下来的一个配置文件作怪，解决方法：
删除

/etc/vbox/vbox.cfg

就可以正常的

/etc/init.d/vboxdrv setup


原因也很简单，从virtualbox网站上面下载的deb包的安装目录应该是
/usr/share/lib/virtualbox/

而使用apt安装的目录是
/usr/lib/virtualbox/

/etc/vbox/vbox.cfg是/etc/init.d/vboxdrv 脚本使用到的配置文件，它指定了"$INSTALL_DIR"变量为"/usr/lib/virtualbox"，所以setup的时候会出错,删除了就没有问题了。

最后，进入新的virtualbox以后，果然出现了usb设备的选项，很简单的就安装好招行专业版的usb key了。
 </description>
		<link>http://www.joecen.com/2008/06/05/virtulbox-usb-key-erro/</link>
			</item>
	<item>
		<title>主动性</title>
		<description>主动性

世界会给你以厚报，既有金钱也有荣誉，只要你具备这样一种品质，那就是主动。

什么是主动？

让我告诉你：主动就是不用别人告诉你，你就能出色地完成工作。

次之，就是别人告诉了你一次，你就能去做。也就是说，把信送给加西亚。那些能够送信的人会得到很高的荣誉，但不一定总能得到相应的报偿。

再次之，就是这样一些人，别人告诉了他们两次，他们才会去做。这些人不会得到荣誉，报偿也很微薄。

更次之，就是有些人只有在形势所迫时才能把事情做好，他们得到的只是冷漠而不是荣誉，报偿更是微不足道了。这种人是在磨洋工。

最等而下之的就是这种人，即使有人追着他，告诉他怎么去做，并且盯着他做，他也不会把事情做好。这种人总是失业，遭到别人蔑视也是咎由自取。

——阿尔伯特•哈伯德 </description>
		<link>http://www.joecen.com/2008/06/04/motivation/</link>
			</item>
	<item>
		<title>我的eee pc 900</title>
		<description>前两个星期去香港的主要目的就是买这部eee pc 900。

在旺角的镭射买的，不知道sales是不是骗我，他说是最后一部，而且没有样版看。不过因为只前我在网上了解得比较充分，有备而去的，所以没有太大影响，而且eee pc 900
在香港的热销的确是不容置疑的。

我买的是黑色的linux版本，硬盘是4＋16G，自己是非常的满意。eee pc 900比起701，屏幕和磁盘大了很多，基本能满足日常的使用需要。eee pc我是作为第2笔记本，主要是用来出去旅行或者回家的时候才用，虽然现在我用的hp4400也是很小，但是便携性和eee pc相比是不可同日而语的。

下面是我的hp nc4400和eee pc900 的对比（手机拍的，效果不太好）：







初步使用小记：

eee pc 900将屏幕升级到了8.9''，是吸引我购买的一个最大的原因。之前701的7''屏幕，简直就像一个玩具。
华硕默认安装的linux更像一个玩具，用它就像用一个浏览器一样。由于这台电脑平时lp会用，所以回家以后还是将其安装为windows xp。
用了两个星期，用来浏览网页处理文档，上周还买了一个usb口的cdma卡（eee pc没有pcmcia口)，在外面上网处理了一次故障。
eee pc的缺点也是比较明显的，键盘按钮太小，打字很容易出错。
内存插槽只有一个，升级不方便。
另外磁盘比较慢，有时候打开程序的时候会出现短时间停顿的感觉。
最后是整台机器觉得有点头重脚轻，上面的mon部分比较重，下面反而有点轻。

不过这些缺点我都可以接受，总体上看我还是非常满意eee pc 900的表现的。 </description>
		<link>http://www.joecen.com/2008/06/02/myeee-pc-900/</link>
			</item>
	<item>
		<title>Unable to use key file "id_rsa" (OpenSSH SSH-2 private key)</title>
		<description> putty 的错误：
 
Unable to use key file "id_rsa" (OpenSSH SSH-2 private key)


原因是openssh使用的私钥格式与putty使用的私钥格式不一样。

解决方法是下载putty软件系列的“puttygen.exe”进行格式的转换。转换很简单，先把openssh生成的私钥load进去，然后再save public key 和save private key  就可以了。
其实只重新生成私钥也是可以的，remote机器上面原来的 public key不需要被替换，可以与putty的private key一起用。 </description>
		<link>http://www.joecen.com/2008/05/26/unable-to-use-key-file-id_rsa-openssh-ssh-2-private-key/</link>
			</item>
	<item>
		<title>卡巴斯基报Trojan.Win32.Aqent.mue病毒</title>
		<description>前天去了趟香港，把梦寐以求的eee pc 900 linux version买了回来。今天在安装xp以后，卡巴居然发现了一个病毒：Trojan.Win32.Aqent.mue，说

C:\windows\system32\wininet.dll

文件被感染了。

我心想不可能吧，操作系统刚安装完，才打完所有补丁，又有安装360和卡巴斯基，而且又没有拨号上网，不可能这么快中病毒吧。google了一下，发现今天（5月18日）开始很多人说卡巴删除了wininet.dll文件，导致上不了网或者桌面不能显示。估计这又是一次卡巴的误报。

详细和解决方法看这里。

update:（5.18）再update了一下卡巴的病毒库，这个问题已经解决，不再发出可怕的鬼嚎声。 </description>
		<link>http://www.joecen.com/2008/05/18/about_trojan_win32_aqent_mue/</link>
			</item>
	<item>
		<title>google talk 的php api 脚本xmpphp</title>
		<description>下周打算将cacti的整套脚本重写，让其真正能成为一个大众化的东西。初步的想法是做成一个插件化和模块化的脚本，使用的语言是php、perl和一点点的shell。

其中里面包含一个报警的模块，我们自己有popo的接口，但是如果给其他人用的话，还是需要使用msn或者gtalk的接口。个人比较倾向于gtalk，毕竟比较方便，但是考虑到使用msn的人比较多，还是做成可以选择的吧。

msn的接口我以前在家里面放一台PC作服务器的时候用过，用来记录adsl多久换一次IP，当电信adsl换IP的时候就会及时的通知到我。那么现在要找的就是google talk的api了。google talk使用xmmp协议，现在连新popo都支持gtalk了，api程序应该很容易找到，不过我要的是php的。

php 的google talk api在code.google.com上面就有：xmpphp.
使用非常简单，只需要include一个php文件，在调用几个函数就可以了：





有点要注意的是，message的中文必须要用UTF-8格式的，用GBK会变成乱码，linux可以使用iconv或者enca来转换即可。
万事具备，只欠东风。 </description>
		<link>http://www.joecen.com/2008/05/09/google-talk-php-api-xmpphp/</link>
			</item>
	<item>
		<title>syslog日志截断的问题</title>
		<description>举个例子，一天我们看到crontab的日志大小居然为零，于是运行"crontab -l"命令一下，如果是正常的话，即使该用户并无crontab记录，也会记录一条LIST信息到crontab日志中。

如果这时候发现crontab日志的大小还是零的话，说明syslog没有记录日志到crontab日志文件中。我们可以用：

#logger -p kern.info "test from system"


命令来产生一条测试信息。我们发现kern 日志中有显示这条测试信息，那么syslog进程应该是没有问题的。

crontab文件大小为零的原因是crontab log文件被改名或移动了。syslog进程还是会将log记录到改名或移动后的文件。因为syslog是附属于开放文件描述符程序，它会将log写入同一个文件描述符的文件中，直到文件描述符关闭为止。既然如此，我们只要将文件描述符关闭就可以了：


kill -SIGHUP $(cat /var/run/syslogd.pid)


该命令告诉syslog关闭并再次打开文件，解决日志的问题。

另外logrotate之类的命令应该已经会自动fix这个问题。 </description>
		<link>http://www.joecen.com/2008/04/24/syslog-cut-problem/</link>
			</item>
</channel>
</rss>
