Monthly Archives: March 2014

Monthly pic 2014 03

中断了很久的monthly pic又开始继续了

IMG_20140313_205151一年一次的搬家,新家第一餐

IMG_20140315_233225初步收拾完的桌子

IMG_20140317_010804最终版的桌子

IMG_20140321_103532
跟了我四年的小花,终于被我养死了

[翻译] Negative dentries的价值

原文: https://lwn.net/Articles/1511/

“directory entry” (dentry)是文件系统内部用来存放文件查找结果的内部数据结构。Linux的”dentry cache”会保存最近使用的dentries,这是很有用的,因为文件通常会在短时间内被多次访问。在dentry cache里查找文件会节省很多时间,避免全文件系统查找。

Kernel还保存”negative dentries”,这些dentry表示相关的文件不存在。Andrea Arcangeli最近表示这些negative dentries会占用相当大部分的内存,他怀疑这是否有用。他还发了一个patch,用来更快速的让negative dentries释放内存。

但实际情况是,”文件不存在”是很有用的信息。比如用strace跟踪一个GNOME程序,会发现程序会查找很多不存在的文件,因为在查找它需要的很多的库文件。同样的,apache也在不断的查找.htaccess文件,shell查找可执行文件,等等。在不调用耗时的系统调用的情况下就能知道文件不存在是非常有价值的,特别是对那些经常被查找的文件来说。所以negative dentries会被保留。

但是还是可以进一步优化。在Andrea提到的情况中,negative dentries的产生是因为删除了拥有大量文件的文件夹。当文件被删除后,相对来说在段时间内它被再次查找的可能性相对较小,所以保存negative dentry就不那么有用了。或许在这种情况下,删除dentry cache是更好的选择。

公司羽毛球活动: 终于赢了一局!

从13年下半年开始,公司羽毛球活动的时候就有一个高手来自己在一个场地练球,后来我们逐渐开始一起打球。现在每周他来都直接到我们的单打场地和我们一起打球。

高手四十多岁,因为孩子在附近上课,他就在球馆里自己练球同时等孩子下课接回家。第一次和高手打球,21分制,我只得了可怜的3分。他打球的特点是,球速很快角度很刁,每个球的质量都很好,压后场和吊前场都很到位,还有假动作。所以跟他打球非常累,经常被他调动的场前场后的跑,最后还是被抓网前或者推后场。前几次每次跟他打完球之后我都会腿疼一周,直到下次跟他打球。

在和他打球的时候感觉自己失误会增多,一个是因为紧张,因为稍微回球不到位就会很被动,被推、被杀,还因为体力消耗很大导致动作不到位,很容易出界或者下网。虽然一直被虐,但是能感觉到自己也在一直进步,得分逐渐提高,从一开始基本不过10,到后来基本得分在13-15左右,偶尔能上18分(在他放水的情况下)。高手也经常说比之前有进步。

今天再次跟他打的时候,第一次赢了他!21-18. 虽然他没用全力(之前也一直没用全力),但能赢他还是一个很大的突破。今天赢在以下几个方面

* 我的杀球比之前更有威胁
我之前的杀球比较软,球速慢,失误多,对他不能构成威胁,经常是被放对角放死,要不就是下网或者出界。但是今天的杀球速度很快,而且角度都比较好,落点比较靠边线。主要因为自己对杀球动作又有进一步理解了吧,发力和击球点都有进步。

杀球进步也是今天能够赢球最大的因素(后来一局他开始发高球了,杀球就没那么容易,我也开始失误增多了),因为杀球质量很好,他的回球就不能很好的限制我下一拍的进攻,我继续挑他反手底线,首先占据主动,他只能反手过渡网前(虽然他也能反手回到底线,但毕竟难度很大,也更耗费体力),然后被我抓住机会放小球或者继续推底线。如果我的杀球没有威胁,那么就是我首先处于被动,然后被虐。

* 失误更少
今天的失误要少很多,无论是接杀球还是网前小球。以前对他的球速不习惯,很多时候接杀球虽然拍子能到位,但是手上动作还没到位,拍子能碰到球但是不能把球接回去。今天能把更多的杀球或者快速的推球接回去了,质量有的还不错,很贴网。网前球也都回的不错,杀球也基本没有下网或者出界的。

* 对方不在状态
打球下来他说今天状态不是很好,转身慢。我也能感觉到他今天没有特别压我后场,他的失误也比平时多一些,好几个球出界或者下网。

* 我运气很好
至少有一个滚网球,一个平时都质量不高的网前球今天质量很高,贴网过去。

第二局他为了限制我的接发球杀球,开始发高球(说实话他之前的发球质量很一般,球只到双打发球底线,并且不高),这样我杀球的机会就不好了,也是因为自己杀球基本功还没那么好,少了杀球这一威胁,他又开始占据主动,我耗费体力也更快。到后来体力不支失误开始增多。13-21再次被虐。

自己慢慢琢磨慢慢提高的感觉很好,这也是我喜欢打羽毛球很重要的一个原因。

Debian下使用TP-LINK WN722N USB无线网卡

搬家了,但是网络布线很失败,虽说现在基本都用无线了,但是布线的失败还是让我很不爽。不爽归不爽,网还是要想办法上的。

笔记本无所谓了,一直都是无线上网的,我的台式机就有麻烦了。于是网上搜了下Linux下使用外接无线网卡的内容,基本有两种选择,一是用USB外接无线网卡,二是买一个笔记本的mini pcie网卡,再买一个转接口插到机箱里。第一种的好处是,产品成熟,不用折腾,坏处是Linux下的驱动可能不完善,可能会不能在Linux下使用。第二种的好处是Linux下kernel基本都带驱动了(一般笔记本装好系统无线就是能用的),坏处就是需要自己买两种东西拼在一起,还不一定什么时候到货。我为了马上能用上无线,就不折腾了。

既然要买USB无线网卡,那么一定要选一个Kernel里有驱动支持的。水木上有人推荐TP-LINK的这个WN722N,固件是AR9271,Linux上是免驱的。上wikidevi查这个网卡的驱动也能看到是ath9k_htc,查看modules.alias文件也能看到ath9k_htc驱动,我就放心买了。今天凌晨下单,上午就到货,amazon的物流速度很不错。

Widnows下装光盘自带的驱动就好了,linux下还是需要一些工作的……google “debian ar9271″,能找到这个链接,发现只要安装firmware-atheros这个包就好了。但是没有网络,又要安装包,只好在笔记本上下载下来优盘传过去了……重启之后网卡就能正常使用了。

顺便说一下,我的系统X系统挂掉了,这些设置都是在console下完成的,需要iwconfig命令(在wireless-tools这个包里,依然用优盘copy过来)

iwconfig wlan0 essid "your essid"
/etc/init.d/network-manager stop
dhclient wlan0

这里需要注意的是要关闭network-manager,否则网卡处在network-manager管理之下,dhclient不会得到ip地址。因为我隐藏了essid,并设置了MAC地址过滤,所以没设置密码。