《跳跃大搜查线》&《神探伽利略》

两部都是和J.C有关的日剧,同样都是大红大紫的人气日剧,但是风格完全不同。

先来说说大搜查线吧。

最初看的是movie1《湾岸署史上最恶的3日间》,然后就被乐得不行了。开篇几个J.C坐在车里,等着一个人出现:那个人是罪犯?是嫌疑人?都不是,是警视副总监。。。所以副总监是要被双规了么?非也,只是地区派出所去接副总监去参加高尔夫表演赛。那为什么要再三确认长相呢?因为怕认错人出洋相啊!这倒没什么,后面一条河上发现了一具尸体,然后这边的J.C就开始嘀咕了:这尸体是在河上,河水在流动,所以说,如果过一会如果尸体流到河对岸去了就不是我们的管辖区域了对吧:)那要不等它漂一会?……总之,之前J.C为人民服务的崇高形象(参考目暮警官等人),瞬间就被颠覆了。

大搜查线的主题是揭露J.C中官僚腐败以及不合理的机构设置,总局和地方警署的冲突(大案要案都要总局主管,分局只能负责端茶送水),以及青岛和室井之间不得不说的故事(大雾)。先说说日本的J.C设置吧,搜查一课负责命案大案的破案工作,地方分局负责在警戒线外维护秩序,这点连柯南里都很明显(目暮警官就是搜查一课的警官哦~),我们的主人公青岛就是分局的一个小喽啰,只是因为J.C人手不够所以被录用了。可别小看了主人公,他之前可是一个IT公司的销售冠军,只是因为觉得公司太官僚太腐败了所以quit要当J.C,先是当了个巡警,两年后通过考试当上了正式J.C(录用的原因是J.C人手不够来者不拒……)。结果,这个小人物愣是仗着自己的一腔热血破获了各种奇怪的案件,虽然功劳基本都不归他,而且还一直被要求写检查(因为总是打破常规触犯规矩),不过却收获了妹纸和基友的好评(大雾)。男女主角在片中感情成份不多,即使最终movie也没有kiss没有表白,只是一个拥抱而已……倒是男男主角(!)整天眉来眼去的。作为搜查一课的搜查官(初始状态,后面越来越nb),整天有事没事去湾岸分局逛一圈,弄得人家局长都心惊胆战以为自己犯事了……跟男主角约定:你在下面,我在上面,各自深入(弥天大雾)。放在今天来看,绝对的搅基王道片啊,只是当年大家还都比较单纯罢了……

anyway,大搜查线是一部打工J.C的日常生活的电视剧。虽然也有破案,但是破案完全是次要的,传统的方法,没有精心设计的密室,也没有复杂的犯罪手法,但却是最真实的。片中搞笑部分很多,值得慢慢回味。

——————————————————————————————————————————————————————————————————————————

相比大搜查线,《神探伽利略》就完全不一样了。主角是个副教授(真的只是副教授嘛?那教授不得nb翻天),因为受到成为J.C的大学同学的委托然后辅助破案,然后就上钩了一直被要求协助破案……对找出罪犯没有任何兴趣,只关注手法,因此都是奇怪的案件,比如某人脑袋突然自焚啦,比如月亮从西边升起啦,比如苍老师无外力作用猝死啦(?)。最初看《伽利略》是看了《嫌疑人X的献身》,觉得好奇妙的推理和逻辑啊,于是一发不可收拾,一下看完了全部的TV,包括刚刚完结的TV版第二季。作为物理学副教授,当然要以实验为主啦,所以片中经常出现汤川学副教授为了重现bug(大雾)于是做了很多实验,一次次失败后终于成功的片段,这告诉我们:失败是成功之母,你没那么多经费或者没人报销就不要投身物理学了(大雾)。

虽然主人公有很强的逻辑思维能力(智商),但是情商基本为0,以至于送别自己喜欢的妹子时送的是锗(碳硅锗锡铅),原子排列和钻石一样。至于为什么不送钻石么,是因为之前有个罪犯(也是个高智商的男子)对女主角示好并送了女主硅做成的挂饰。因为犯了大忌(敢抢男主的妹纸,必须死),所以犯了事被抓起来了,而男主觉得至少得送个更高级的,于是送了锗……多么奇怪的逻辑啊,直接送个钻石女主就归你了啊!~不过第二季里面倒是表现了一些他和第一季女主的CP,于是第二季的女主吉高由里子无论怎么卖萌卖肉(你没看错)都吸引不了男主的目光了。悲剧啊~

最奇葩的还数男主角每次灵光一闪时的行动:找一块大的地方写一堆公式,然后作沉思状。至于公式内容么,其实和案件手法没半毛线关系,某一集他自己也说了:我只是默写了某初中数学的一个公式而已。。。所以日本人的初中数学都学了啥呀!

anyway,伽利略的看点是男主很帅(福山雅治大叔~),以及案件手法的物理还原很精彩。娱乐性不及大搜查线,但是吸引程度相当。

——————————————————————————————————————————————————————————————————————————
结论就是:一个月就看了两部日剧这么多集外加这么多剧场版,难怪paper中不了!给我乖乖学术去!

acm mm short rejected

第一次投paper,花了一个星期的时间连写作带实验(之前代码基本写完了)
本来还抱有一丝幻想。
结果,还是华丽丽的reject了。。。
4个review,1个给了reject,2个给了weak reject,1个给了weak accept。
大致的问题都是:1)实验结果曲线不符合常理。2)写作里面一些公式没必要,一些公式有问题或者未声明。3)理论部分创新不大。
唉,果然还是太天真了啊。看来实验还是得弄出个看上去“正常”的曲线啊,否则人家一看实验就觉得reject了……

windows下绑定线程(进程)到指定CPU核心

不知各位程序员在测试代码性能的时候有没有注意过,一个程序指定到单独一个CPU上运行会比不指定CPU运行时快。这中间主要有两个原因:
1)CPU切换时损耗的性能。
2)Intel的自动降频技术和windows的机制冲突:windows有一个功能是平衡负载,可以将一个线程在不同时间分配到不同CPU,从而使得每一个CPU不“过累”。然而,Inter又有一个技术叫做SpeedStep,当一个CPU没有满负荷运行时自动降频从而达到节能减排的目的。这两个功能实际是冲突的:一个程序被分配到多个CPU协同工作->每个CPU都不是满载->每个CPU都会降频->windows发现每个CPU性能都降低了,因此程序执行速度也降低了。

因此,将线程(进程)绑定到指定CPU核心,从而不让windows自作主张帮我们分散任务,从而提高单线程效率是很有必要的。有两种方法实现绑定进程到指定CPU:
1)手工调节:在资源管理器的进程里面,设置相关性,可以设置进程到某个或者某些指定的CPU核心。
手工指定CPU核心
这种方法最简便,同样是最优效率的,因为你可以根据当前CPU的负载情况进行选择。
2)代码自动调节:
参考:http://www.cnblogs.com/kex1n/archive/2011/05/09/2040924.html
具体函数为:
DWORD_PTR SetThreadAffinityMask(HANDLE hThread, DWORD_PTR dwThreadAffinityMask);
其中,第一个参数为线程句柄,第二个参数为一个mask。
如果要知道当前线程的句柄,可以通过函数:GetCurrentThread()得到。否则,在创建多线程的时候,也同样可以得到创建的线程的句柄。
第二个参数为mask,可取值为0~2^31(32位)和0~2^63(64位),每一位代表每一个CPU是否使用。
比如,你要指定进程到第0个CPU上,则mask=0x01
第1个CPU:mask=0x02
第2个CPU:mask=0x04 (注意不是0x03)
第3个CPU:mask=0x08
以此类推。
如果要指定多个CPU:
比如第0、1个:mask=0x03
第1、2个:mask=0x06
以此类推。
如果CPU个数不足,则会进行取模操作。比如一共4个CPU,则mask=0x0010则和0x01一样。
这种方法的好处是多线程时不用每次都手动选择CPU,缺点是万一选到的CPU负载很高,那么程序执行速度就慢了(英雄所见略同所以大家都抢到同一个CPU去了么~~)
效果如下图所示:
指定CPU核心
还有一个实用的函数来获取当前CPU的核心数量:

SYSTEM_INFO info;
GetSystemInfo(&info);
printf("Number of processors: %d.\n", info.dwNumberOfProcessors);

输出的是逻辑核心数量,比如i3处理器就是双核心四线程,输出4。i5处理器是四核心四线程,输出也是4。
这样就可以方便的知道当前系统一共有多少个CPU了,同时也方便了线程数选择。

暑期实习碎碎念

前些日子大家都在找暑期实习,于是凑热闹也投了四个:
网易游戏:简历没过,连电面都木有:因为简历才写了几行字没贴照片。于是知道了简历要好好写;
百度:简历好好写了,结果鸟通知都没有:好像压根就没举办找实习生的活动吧,所以即使简历写好了也没有用;
腾讯:有了笔试通知,结果和微软的面试时间冲突,所以即使有笔试也不一定可以参加;
微软:笔试okay,面试之后了无音讯一个月后Thank you letter,所以好好面试也是没有用的;

其实还有一点:
暑假实验室都不让实习的,就算拿了offer也去不了的,所以,你丫凑什么热闹啊!

the more you did, the more others want you to do. WTF!

俗话说得好,人善被人欺,马善被人骑。
曾经觉得,兢兢业业做好自己的事,即使不被表扬,至少不会挨批。
但是,事实不是这样。
比如两个人A和B。
A每件事都做得很快很好,偶尔一次出了点小差错,偷了点小懒,便会被指责。
B每件事都做得不三不四,偶尔一次出了点成绩,便会得到夸奖。
现实就是如此的残酷,让人不得不思考这究竟是为什么。
仔细想想,也对。
就好比巴甫洛夫的心理实验。
做好每一件事,便会条件反射以为每件事都应该做好,从而放大瑕疵。
反之,平时马马虎虎,便会条件反射以为做不好,偶尔一次做好了便显得格外突出而收获好评。

the more you did, the more others want you to do. WTF!

漫无止境的程设助教

2011年,大四。觉得大四下比较闲,所以就当了个程设助教,结果没想到就被这个分支剧情套进去了。。原本最happy的时光,却落得每周六晚上都得去机房,结果就是失去了本科最好的出游旅行时间。
2012年,研一。本身想好了要当数字媒体助教,结果却又被忽悠了去当程设助教二回目。虽然作业类似,这点减少了一些工作量(大四时候每次程设作业都得自己做),但是改作业同样费时费力。结果就是研一下半学期也没什么科研进展。
2013年,研二。本身想好了打死也不当程设助教了,结果被push地去当了程设助教三回目。于是,轮回又一次开始了。

细数这三次轮回,第一次因为最新鲜,所以最认真,而且学生提问回答的也最积极;第二次有点老油条了,但是本着对学生负责的态度,还是回答了问题;第三次就有点随性了。
不过,其实最根本的原因还是所谓性别比。一回目是3:1(20:7),二回目是4:1(21:5),三回目华丽丽成为了7:1(22:3)。若明年还有四回目,那岂不是就要23:1了么(等差数列很和谐)……
kamisama,请让这个循环语句写成如下形式吧!
for(g=7;g>1;g-=2)
这样四回目就不存在了喵

所以说,人是逼出来的

时间回到3月2日上周六下午,我跑去找老田:
“我想投mm的short,请问文章该怎么安排?”
“啊,什么时候截止啊?下周六?你来不及的啦。。。”
“那下面还有什么会可以投么?”
“我查查。。。4月ICCV,后面得9月以后了。。。。。。要么你这两天熬夜赶mm吧”
“恩……”

于是,7天,没有实验结果,paper还没写一个字,mission impossible?
day0(3.2):开始跑跑实验吧。
day1:恩,写写introduction吧。好累啊,看看动画吧。。
day2:恩,写related works好麻烦。。跑实验吧~
day3:啊,周二了,必须弄一稿出来了
day4:啊,写完了第一版,啊,introduction和后面内容不一样诶……重写吧
day5:重写完了!
day6:师兄,帮我改一遍吧!
day7:啊,该投出去了……

其实,事情的背后是每天12点回寝室早上8点出门中间把原来每天仅1小时的工作改成了每天仅1小时的娱乐……证据是ipad mini用了一周没充电还剩50%电量还不包括别人拿去玩的……

所以说,人是逼出来的,逼上梁山了连猫都会如此拼命……

windows server 2008 r2系统文件缓存过大的解决方法

问题描述:server 2008 r2系统会在进行大量IO操作时,占据大量内存资源,直至内存占满,从而导致系统运行速度变慢。

相关现象:
1. 内存占用率90%以上(即是是64G内存,也会占用63.5G)
2. 资源管理器中所有进程内存和较低(约10G)
3. 通过RAMMAP可以看到Mapped File一项数值很高。

产生原因:
Server2008 r2会尽量使用内存来进行文件缓存,从而提高相应文件的读写速度,然而,却没有设置一个默认的极限值(属于windows系统的问题)

解决方法:
1. 暂时解决策略:利用RAMMAP的empty system working set,可以使得文件缓存释放掉。具体如图所示。缺点是之后如果继续进行IO操作,文件缓存还会一直增加。
2. 更好的解决策略:强制设置windows系统文件缓存大小,使得其不会占用大量的内存。缺点是每次重启都需要重新设置。

相关图片:

如图所示,使用RAMMAP可以使得文件缓存完全释放,但是后期会重新增加直至填满。
使用SetSystemFileCacheSize可以使得文件缓存得到有效控制。

相关软件下载:
SetSystemFileCacheSize

参考资料:
http://social.technet.microsoft.com/wiki/contents/articles/6925.how-to-prevent-filecache-to-eat-up-all-the-ram.aspx