一个人的世界
晚上被别人惦记起,惦记的理由是曾经说过的一句话,喜欢一个人刷街,无论有没有别人去。其实说来惭愧,最近一两个月已经很久没有去到那个熟悉的A点了,而且也就是最近几天才又恢复到骑车上下班的状态。
让win下的vim支持非等宽字体
最近vim升级到了7.3,很喜欢它的相对行号功能(:h rnu),于是就升级了,然后就毫无悬念的出问题了~
问题的原因是之前用的vim72是个改版,加上了对非等宽字体的支持,于是在vim中可以将guifontwide设置为YaHei Consolas的混合字体,不过这次升级后没找到原作者的网站,只好自己动手了。
改动在os_win.c中,进去后直接找mono,会看到一处注释说忽略非等宽字体,把下面那行注释掉就好,这是diff文件:
diff -r 96b2b1cca7cd src/os_mswin.c
--- a/src/os_mswin.c Mon Aug 23 12:55:47 2010 +0800
+++ b/src/os_mswin.c Mon Aug 23 13:05:17 2010 +0800
@@ -3288,8 +3288,11 @@
#ifndef FEAT_PROPORTIONAL_FONTS
/* Ignore non-monospace fonts without further ado */
+ /*
+ * hzmangel: I need non-monospace fonts!
if ((ntm->tmPitchAndFamily & 1) != 0)
return 1;
+ */
#endif
/* Remember this LOGFONT as a "possible" */
然后直接在vs2010编译环境中用bigvim.bat来编译vim即可,如有需要可以对其中的参数进行修改。写完,收工~
Merge Two Hg Repositories
最近在折腾手头上的小项目,发现有一个工程已经建了Hg的版本库,但是想把它给丢到现有的版本库中以方便管理。假设现在用的版本库叫A,需要被merge过来的版本库叫B,于是有:
A: hg pull –f <repo B> A: hg merge A: hg ci
关键的地方是在那个-f处,如果没有加这个参数会报两个版本库不同源而不让你这么折腾。(via)
清晨,那抹淡淡的荷香
周六的自虐行虽然现在还是心有余悸,但是还是留下了许多美好的回忆,其中就有那份淡淡的荷香~
悲剧的带队,悲剧的130
嗯,其实就是昨天(应该是前天了,呵呵)发在车版的作业,看过的请直接跳到后记就好~
端午内蒙之后记
嗯,再不写就真后不出来了,本文ms牢骚居多,嗯~
端午内蒙之玉龙沙湖
第二天,玉龙沙湖。有沙有湖还有草的一个地方。出发前,看着一帮人揉着惺忪的睡眼从屋里出来,其实也是件满好玩的事情。漫漫的车程拉开了新的一天,一路昏昏欲睡的到了经棚,已然是午饭的点了。吃过午饭再次上车,继续昏昏欲睡了两个来小时,终于到了目的地。
端午内蒙之达里诺尔湖
端午,除了粽子外就是那三天假期了吧。被内蒙活动的照片诱惑了,于是背上了新败的脚架上了大巴。
略去无聊的路上,14号清晨到了内蒙,快4点的时候天已然开始蒙蒙亮,可惜没时间下车拍照,4点半左右太阳就整个蹦出来了,到这时候才发现,这边的天,真蓝~
继续略去经棚难吃到死的馄饨,早上8点多的时候,车终于停了。拎着相机下车,看着通透的蓝天上飘着的像棉花糖一样的云,还有一望无际的草原,啥也不说了,拿起相机按呗。一边按一边感慨,这能见度就是高啊,一眼望过去能把你视线挡住的,也只有山了。
朝圣东方红
骑车也有段时间了,但一直没有去传说中的东方红朝圣,终于在这次踏上了测试赛的道路~
其实,在来之前并是十分想走这一趟,因为对比赛十分的没感觉。但是想想骑了这么久还没有走过东方红,实在有些说不过去哇,所以,就当出来活动活动了,成绩是次要的嘛,重在掺和,hoho。 Read the rest of this entry »
Reuse the TIME_WAIT Port
最近在调试的时候,经常会需要直接kill掉监听的进程,然后在SLES上再启动进程的时候就会报端口被占用,用netstat查看会发现这个端口处于TIME_WAIT状态。此状态是表示,当机器A发出CLOSE请求后,经过FIN_WAIT_1和FIN_WAIT_2,机器B会将socket置于CLOSE状态,此时机器B会将端口置于 TIME_WAIT状态一定时间(2*msl)以保证机器B的数据不会丢失。这一策略可以保证TCP的可靠性,但是在测试过程中经常会报端口被占用,daemon启动错误的信息。
解决的方法一是减少msl时间,让TIME_WAIT的socket尽快结束,这个值好像可以在/proc/sys/net/ipv4/tcp_fin_timeout中指定,不过不是很确定。再一种方式就是通过设置reuse标志位,让处于TIME_WAIT状态的端口可以被新的进程bind,此方式同样需要动/proc系统中的东西:
net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1
其实我也不太确定第一个是做什么用的,只是照猫画虎了。这个方式的写法是写在/etc/sysctl.conf文件中的,而不需要直接向/proc文件系统中echo东西。在改完sysctl.conf文件后运行sysctl -p让配置生效。还有一点需要注意的是可能需要运行如下的命令刷新缓存
sysctl -w net.ipv4.route.flush=1
差不多就这些了,话说,很诡异的一点就是,这个情况只在ppc64_sles11中碰到过,x86/amd64都没碰到过,ppc64_rh5没做测试,不表态,嗯。
话说文章里面TCP状态所表示的含义及转换关系是我自己的理解,嘿嘿,自辨对错哈~~
雁过留声