Changkun's Blog欧长坤的博客

Science and art, life in between.科学与艺术,生活在其间。

  • Home首页
  • Ideas想法
  • Posts文章
  • Tags标签
  • Bio关于
Changkun Ou

Changkun Ou

Human-AI interaction researcher, engineer, and writer.人机交互研究者、工程师、写作者。

Bridging HCI, AI, and systems programming. Building intelligent human-in-the-loop optimization systems. Informed by psychology, sociology, cognitive science, and philosophy.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、社会学、认知科学与哲学。

Science and art, life in between.科学与艺术,生活在其间。

276 Blogs博客
165 Tags标签
Changkun's Blog欧长坤的博客

博客迁移记录

Published at发布于:: 2015-09-13   |   Reading阅读:: 1 min
一点闲话 大三这一年经历了不少事情,导致博客长期断更。一言难尽,就上一句老夏送给我的心灵鸡汤来概括吧: 所有的事情最后都会有好结局,如果你觉得结局不好,那是因为还没有到最后。 迁移原因 其实想把博客从wordpress迁移到静态博客上早在今年四月时就已经开始琢么了,当时大概研究了 Hexo 不到两个小时,觉得靠谱。由于当时忙于学业、生活各方面原因(你们懂的),直到现在来到慕尼黑后才正式开始。 这半年来用惯了 Markdown,更方便地写东西,更加专注于内容,比码起字来就忘语法的 LaTeX 好多了。 其实我也研究过 Wordpress 的 Markdown 插件,实在是没有发现好用的。很长时间是用 LaTeX 里然后往博客上粘贴,太麻烦了。 搭了三年的 Wordpress,最终还是决定卸下,让自己来 Control Every Thing。 Hexo有以下优点: 本地命令行管理,随时随地写作。 命令简单,只需要会hexo n,hexo g,hexo s,hexo d就能搞定一切。 搭建参考 搭建过程其实官方文档写得超级详细了,另外就是我用了NexT的主题: 官方文档:http://hexo.io/docs/ NexT主题:http://theme-next.iissnan.com 迁移问题 在博客从wordpress迁移到hexo的过程中,主要碰到的问题及解决办法如下: 文章迁移问题。原来的 Wordpress 文章里的图片都是保存在服务器用URI的方式来提取的,现在使用了Github Pages后,原来的服务器就没有必要存在了,所以文章中的死链需要一一解决,图片链接同样也需要一一解决。这里我暂时没有想到好办法,只能一篇文章一篇文章的手动适配。 LaTeX公式兼容。以前在 Wordpress 里用的是插件来解决的 LaTeX 公式的解析,到了 Hexo 这里就不能这么干了,我在 Github 上找到了这个项目:hexo-math。这个项目非常好的解决了 LaTeX 公式的解析问题。但是仍然需要手动适配。 待挖掘。

大三总结

Published at发布于:: 2015-06-15   |   Reading阅读:: 1 min
可以预见的是,度过接下来这段考试的日子后,剩下的一年,将不再能像是过去那般的大学生活了。正如在班级群里有同学匿名喊道的那样:“交了四年的钱上了三年的大学”。这一年里,我认为我经历更多的是社会的浮躁、人心的浮动,而不是本该沉下来的心和越发精湛的知识与能力。我也是时候开始整理着装,重新出发了。 关于生活 {% centerquote %}身体是革命的本钱。{% endcenterquote %} 从小我奶奶就同我念叨这句话。然而我却毫无准备的受到了它的重创。在大三的这一年里真是饱受身体的折磨,我能够静下心来思考和学习的时间被大量的压缩。从大二下学期考试结束回家小待了一周返校后,便开始持续头疼了长达两个月的时间。好不容易不知怎么回事的恢复了之后,再在十一月上旬又获面瘫,持续一个月往返于医院和学校之间治疗,搞得心神不宁。 一个月后好不容易治好了,结果马上又患上了耳聋,半个月后莫名其妙恢复后,十二月底视力突然下降,右眼在整个大三上学期的期末考试阶段几乎彻底失明。在整个大三期间,我就在这样一种周期不超过两个月的“失聪-恢复-失明-恢复”还伴有持续头疼和耳鸣的状态循环折腾下,一直持续到了今天仍未痊愈。 在其中几个病重的阶段内我几乎把所有的怨念都埋怨给了我的亲人,我埋怨他们对我不够关心甚至延误病情——在病重的日子里不送我去医院、因过年不吉利而不允许我吃药等等。 然而事实上我内心知道他们的不易却依旧将这些不该说的话说出了口,我才意识到我的自私远比我想象中要大——他们做得已经够多。 直到上周,“饱经沧桑”的我终于死缠烂打,约到了多科会诊,在长达半个小时的会诊下,医生基本确定了病因,在药物治疗下,病情已经开始稳定,至于能不能治好,就是另一个问题了。 总得来说,最终确定病因可能是先天性的,查了查研究报告,平均发病年龄恰好是这个时间点,所以生病这事儿不能怨天尤人,怪就该怪命中注定吧。这场病让我关注到了很多以前从未在意或关注的事物,也算作一种成长。 唯一遗憾的是,如果不生病的话,一切也许会完全不一样吧。如果真的有平行宇宙,我想看看那个世界是怎么个样子。 关于学习 整个大三有一个很明显的感受就是,看的书少了,写的代码也少了,但接触的人和事多得多了,身边突然一下子就冒出来各种牛逼,应接不暇,招架不住。于是养病这段期间花了很长的时间整理我的一些“杂物”。 电脑硬盘里三年来逐渐积累下来的接近500G的文件,有下载的资料、自己写的代码、自己写的文章、自己做的视频和图片等等。我甚至对着那些躺在硬盘里已经一年没有被我翻过的我写过的那些代码惊叹:我当年居然还做过这些(我现在都不一定能做出来的)东西。 整理完这三年来买来读过的书,却发现,专业书之外的阅读量几乎为零。甚至于连我以前喜欢打的游戏也越发觉得索然无味。然而专业却也学得很“Full Stack”,开发上算不上精通,算法上只是略知一二,自己喜欢的数学,也只自学成了一个半吊子水货。 我是一个纯粹的死理性派,所以我对一切“玄学”沾边的东西都是不屑一顾的,比如中医。我的母亲因为我这年的身体状况在家乡县城里找了一个小有名气的瞎子给我算命,瞎子说我的运程都还挺不错的,今年是个坎,但总是有贵人相助。这话说得在理,我的大学里确实遇到了太多的贵人,我总是非常庆幸自己每每都能遇到好的老师指路,提供更多地机会。可是,如果自己不争气,也无济于事。对我帮助最多的陈雅茜老师,就是贵人之一。如果没有她的Push,我和我强烈地拖延症,估计没一件事情能干成。师者完成了传道、授业、解惑,而我却还是没能完成早几个月前就已经安排给我的任务,deadline一延再延,还是没能完成,错失一个大好机会,想想就觉得自己挺没用的。 所以后来在大创项目这事儿上,我的怨念还是比较大的,我总是好奇,难道别人的项目就真的是团队协作干出来的?而且每每到最后甚至会出现那种团结一致的强烈气氛,我却总是体会不到,他们真的真的是齐心协力共同完成的吗?队友一说:我要考研,并断掉了所有的社交网络;我只好不去打扰。队友二说:好,过几天就写给你。苦等却没有结果。队友三说:我不会,不懂。我还能说什么呢。 当然,这事儿并不愿谁,也不该怨谁。回想起来整个项目其实也只是我自己的“一意孤行”,能拉上他们和我一起干,实属不易。所以我也认识到我是一个多么不善于沟通的人。 这次我妈陪我看病时与我提到,“别把自己搞这么累,什么事儿都往自己身上揽,当年你妈在橡胶厂炼胶的时候,总觉着别人炼出来的胶质量差,总揽着我自己弄,结果把自己累得要死,别人却拿着和我相同的工资。” 话虽如此,可能到现在接受的教训还不够多,所以从内心里我依然不能接受这样的行为,事情提出来了,总归要干到自己满意为止才对。尽管到最后,我把整个项目作为一个大学阶段的一道门槛,强行的迈了过去。结果,当然是不尽如人意的。 我确实厌倦了一人的战斗。 另外就是龟谷团队这件事儿了。其实我是很想以自己的身体状况为借口的,侃侃而谈什么“怎么什么事儿都往我身上推”。但事实上是我又一次彻彻底底的认识到自己是一个多么不善于社交、多么不善于团结人心、多么不适合做管理的人。去年俊生学长把龟谷实验室的负责人交给我,我尝试担起这份责任,make things better,最初斗志爆棚,希望能够借助龟谷的力量,办一场牛逼哄哄的产品发布会、拍一段牛逼哄哄的宣传视频、做一个牛逼哄哄的产品出来等等。一年下来却事与愿违,不知道自己到底在忙着什么,每周二的晚上像是完成任务性的赶去机房,通知一些事情过后,就坐下来一起消磨时光,等待着每周的这一个小时过去。一年下来,贡献为零。归根结底,是因为我能力不够,做得不够。所以到今年换届的时候,在我如此糟糕的”领导"下,还能有这么多人聚在一起,感觉能有你们在,真好。 关于未来 按照一般的剧情,即将步入大四的我应该纠结的事情是选择考研还是保研,选择读研还是工作。 在这件事情上,我曾在大一的时候和大学里对我帮助最多的老师之一周伟老师探讨过,他曾极力建议我去考数学研究生,他说他也同曾勇老师还在校车上聊到过我,说我是个好苗子,所以我也确实受他的建议打过一段时间的鸡血,每天捧着刷题,但时间一长我便冷却了下来。因为,在高考填写志愿的最后还是因为父亲的“恐吓”而没有坚持自己的选择报上数学专业,但如今还在坚持学一些和我专业不沾边的数学,只不过是自己骗自己,为自己找个借口罢了。 后来随着自身了解和掌握的专业技术越来越多,我发现赚钱也是一件能够吸引我的事情,我又动起了直接工作的念头。我发现创业、做产品、赚钱是多么富有激情的一件事情,我在我的硬盘里记录下了一个又一个的想法,在Xcode中新建了一个有一个的项目。然而正如前面所说的那样,我意识到我是一个彻头彻尾的Nerd,这一切也又一次埋在了心底。 然而世事难料,万万没想到,最不可能的事情发生了。 出国交换这件事情一开始我是完全没有想法的,我第一次听老师和我提及这事儿是在大二的上学期,当时整个整个交换项目都还没有敲定,我完全没有把这件事情当回事。一来是我英语特差,从初二以来就再没听过英语课,连基本的语法都不懂;二来是我这么个“乡镇分子”窝在这么一个歌舞中学里,想啥子出国。直到后来慢慢出现心态上的变化,我对这件事情的期待变得越来越大。 起初我抱着八字还没有一撇的心态和我的父母提及这件事情,他们并没有说什么。当这学期真正快要进行选拔时,我依旧恶疾缠身,我才真正看出来在这件事情上,我的父母、亲人们,并不是100%支持我的。当我意识到这点的时,我无比的失望。在我的理解中,我的父亲应该支持我出去,这能为他赢得曾因高考失利在饭局上的失去的颜面,但这将为他增加很大一笔经济负担(每次我听到人说我很有钱,都想扇他妈的两耳光);我的母亲应该支持我出去,我却第一次从我母亲口中听到“读那么多书有什么用?”;我的奶奶应该支持孙子出去,我却听到“出去了可千万要回来,别和家乡人断了联系”……忽然回想起来,第一次和父亲提及这件事情的时候,父亲问我:“出国干什么呢?”而我当时毫不犹豫的回道:“不出国干什么呢?” 无论如何,我愿意相信,支持的Part是远大于不支持的Part的。 风雨兼程,困难再多,我依然觉得人总还是得出去走走,才能知道自己有多么渺小,才能在未来的日子里准备好成为一颗“小小的螺丝钉”。 在关于未来这件事上,我已不需考虑太多,我依旧秉承那句:计划赶不上变化。 写在后面的 矫情的话我亲口是说不出来的,只能以文字表述了: 感谢我的父母和奶奶以及其他的亲人们,你们给予我支持,是永不倒下的后盾; 感谢我的几位好基友,你们同我一起怀揣理想,共同奋斗;感谢我的老师们,传道、授业、解惑; 感谢所有给予帮助的人,你们则是我精彩生命中不可或缺的点缀。 最后,我想起了德里克《云端之上》里的话: {% centerquote %} 我们走在同一条路上,穿的却是各自的鞋; 我们住在同一栋楼里,看到的却是不同的风景。 {% endcenterquote %} 希望,明天会更好。 2015.06.15 于 成都

这个世界,终究不会是我们的。

Published at发布于:: 2015-05-25   |   Reading阅读:: 1 min
记得第一次到成都的时候,我内心满怀好奇与期待,独自脱离父母前往大学校园终于要正式跨入并生活在一个大都市之中。而在此之前,父亲为了激励我对大城市的那种向往,在进入高中之前到过重庆,即便如此,我对成都所感受到的那种好感,依然远胜过重庆。但是上海,作为一座城市,第一次令我感到不适。 短短不到一天的时间,发生了很多有趣的事情。 上海的这些人走路很急。走在成都大街上的时,我一直觉得我走路还算快,因为我总是在不停地超过别人,但在上海却完全不一样,上海的这些人似乎很“忙”。从离开机场以后,我总是被不停地超越,他们或手提公文包,或西装革履,或埋头于手机。 离开机场坐上地铁后,看着周围的人们,我能够阴影约约的感受到弥漫在这个城市空气中的压力。地铁上没有遇到结伴出游的大学生,车厢里成堆的西装革履,每个人都专注于手机屏幕,或者是电话打个不停。满口就是:客户如何如何,这是多少的单子,一定要拿下,要让客户开心之类的话。 应该是上海的人民对于地铁等基础设施熟悉得不能再过习惯了,仅仅是地铁站就能够看到无人打理的基础设施,2号线人民广场站地铁进站时本应该关闭的保险门,看样子是坏掉很久了,竟没有人来修理?安检也是乱糟糟的感觉,安检工作人员居然在睡觉? 莫名其妙的外国人。作为一座国际性很浓的城市,随处可见老外(话说我是第一次见到中国男+外国女和外国男+中国女组合的情侣和夫妇)。虽然我不知道是不是我实在太落后感受不到上海的国际化程度,来到东方明珠面前的天桥,我只是站着休息一会儿想想接下来该去哪儿,居然不停地有老外上前或者找帮忙拍照和问路,甚至还有主动搭讪。难道他们心目中的上海民众都已经熟练掌握英文了?(而且为毛都来问我) 压抑的小巷,奇高的楼房。找到住宿后,发现外滩附近的住房楼都奇高,地面利用率简直爆表。房子与房子之间的间距只有两个或者一个车道的距离,天空的可见面积很少。想想在这样的地方生活久了,确实连抬头看个星星都会觉得没有太大意义,反正也看不到。 逼格奇高的国金中心。这辈子第一次进需要在前台登记并领取访客卡的建筑物(前台工作人员相貌也真是上品),进去就上来两个保安围住我,问我干嘛,真是吓我一跳。国金中心就在东方明珠旁边,来上海前我还一直寻思可能有很远。嗯。旋转门,第一次进。虽然我不理解所谓大客户是肿么回事,这算是见识了,对待客户应当帮客户推动旋转门,让用户先进,不和用户挤同一个旋转门,尽管空间很大。(你们身价有多少呢?空气中全是钱的气息。 离开外滩后,去了上海书城泡了一下午。是我还长得不够老气吗,为什么一眼就认出我是学生?书城里不停地有培训机构,甚至同一个机构的不同人员上来搭讪,问我学不学英语,还说要送我教材,短暂交流几句反问我:你不是住在上海吧?我说我来上海出差,立马就不鸟我了。还有的人问我学不学日语,好心给他填了一份信息(虽然都是假的),居然还摆出一副死脸相。 离开书城的时候门口恰好又有一个培训机构的妹子要我填信息。短暂的闲聊中她和我提到说:哎,以前我也是学计算机的,做网站设计,后来来了上海这边实在是不好找工作,找到工作后工资实在太低,迫不得已才转来了做销售。我反问到:你是哪个大学的,这边做网站工资很低吗?她答:南京大学,我当时那个网站工作才6000。 回旅店的路上还遇到了不知道是不是骗子的骗子。上来就一口上海话快速的说了几分钟,我反问一句:你在说什么?然后换用普通话交谈后说要我填一个调查问卷,但是却要领我上电梯。(应该是骗子无误吧 那会儿五点多,应该是放学的时候了,地铁站里迎面走来一个戴着红领巾的人,比我还高,我纳闷了一会儿,以为不是学生可能戴红领巾有特殊原因,结果又走了一段儿,迎面走来一群带着红领巾穿着校服的学生。他们居然都比我高。高一截。 回到住房后,门缝上居然还塞上了几张色情服务卡片,只要拨打电话就可以嗨嗨嗨,就像后会无期里面那样。(话说布丁连锁不是说挺有名?居然也是这个样子?另外,应该不是每个住客都会被塞这种卡片吧,这么说就是酒店自身搞的咯?) 另外,在书城里买了本书《活着之上》,运气很好还拿到了签名本,就当做这次上海之行的纪念吧。

Linux 内核分析 之六:Linux 内核创建进程的过程

Published at发布于:: 2015-04-12   |   Reading阅读:: 2 min
说明 欧长坤 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这学期学校恰好有操作系统的课程,上个学习就开始寻思研究研究Linux内核代码,恰好MOOC有这个课程,遂选了此课。 一、准备工作 这节课的任务依旧很简单,我们来尝试分析一下在一个实际的操作系统下(Linux),它是如何实现操作系统理论中关于进程创建和相关调度的过程。 因此,如果学过操作系统理论的话,我们可以根据相关理论知识来提前预测一下task_struct的应该会存在哪些结构: 进程状态、将纪录进程在等待、运行、或死锁 调度信息、由哪个调度函数调度、怎样调度等 进程的通讯状况 有插入进程链表的相关操作,因此必须有链表连接指针、当然是task_struct型 时间信息,比如计算好执行的时间、以便CPU资源的分配 标号,决定改进程归属 可以读写打开的一些文件信息 进程上下文和内核上下文 处理器上下文 内存信息等等 我们可以在/linux-3.18.6/include/linux/sched.h中找到tast_struct的定义: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 struct task_struct { volatile long state; //说明了该进程是否可以执行,还是可中断等信息 unsigned long flags; //进程号,在调用fork()时给出 int sigpending; //进程上是否有待处理的信号 mm_segment_t addr_limit; //进程地址空间,区分内核进程与普通进程在内存存放的位置不同 //0-0xBFFFFFFF for user-thead //0-0xFFFFFFFF for kernel-thread //调度标志,表示该进程是否需要重新调度,若非0,则当从内核态返回到用户态,会发生调度 volatile long need_resched; int lock_depth; //锁深度 long nice; //进程的基本时间片 //进程的调度策略,有三种,实时进程:SCHED_FIFO,SCHED_RR, 分时进程:SCHED_OTHER unsigned long policy; struct mm_struct *mm; //进程内存管理信息 int processor; //若进程不在任何CPU上运行, cpus_runnable 的值是0,否则是1 这个值在运行队列被锁时更新 unsigned long cpus_runnable, cpus_allowed; struct list_head run_list; //指向运行队列的指针 unsigned long sleep_time; //进程的睡眠时间 //用于将系统中所有的进程连成一个双向循环链表, 其根是init_task struct task_struct *next_task, *prev_task; struct mm_struct *active_mm; struct list_head local_pages; //指向本地页面 unsigned int allocation_order, nr_local_pages; struct linux_binfmt *binfmt; //进程所运行的可执行文件的格式 int exit_code, exit_signal; int pdeath_signal; //父进程终止是向子进程发送的信号 unsigned long personality; int did_exec:1; pid_t pid; //进程标识符,用来代表一个进程 pid_t pgrp; //进程组标识,表示进程所属的进程组 pid_t tty_old_pgrp; //进程控制终端所在的组标识 pid_t session; //进程的会话标识 pid_t tgid; int leader; //表示进程是否为会话主管 struct task_struct *p_opptr,*p_pptr,*p_cptr,*p_ysptr,*p_osptr; struct list_head thread_group; //线程链表 struct task_struct *pidhash_next; //用于将进程链入HASH表 struct task_struct **pidhash_pprev; wait_queue_head_t wait_chldexit; //供wait4()使用 struct completion *vfork_done; //供vfork() 使用 unsigned long rt_priority; //实时优先级,用它计算实时进程调度时的weight值 …… //后面就不看了 我们不关心 }; 可以看到,现在的Linux系统基本上是按照操作系统理论来进行设计的,但是在实现的过程中,理论往往是不够的,为了实现很多实际的需求,tast_struct还定义了很多额外的结构,来方便系统的相关管理,比如后面没有列出来的一些文件操作相关的结构,这些结构一般用于当一个进程没有按照规范来操作文件时,当进程被杀掉后,系统任然可以对这些不规范的操作进行管理。当然,后面还有很多内容也是如此,我们就不一一叙说了,我们只看创建一个进程的相关重点。
Read More阅读更多 »

小说「泽缘」

Published at发布于:: 2015-04-11   |   Reading阅读:: 1 min
本文最初写于2010年6月10日前后,因百度空间关闭搬迁至此。 笔者已无法记起当时写下下面这段文字的心情和情景。 预知后事如何,请读者自行脑补。 终于,我能够静下心来阐述我的某些遭遇,而这些遭遇,对你而言,是必要的。我写这篇小说的目的并不是为了明确什么观点,也不是为了叙述某些事情,而是… 四岁那年的事情,从某种层面来看,我是没有记忆的。事实并非如此,四岁的记忆宛如昨日光景,在我的脑海,记忆犹新。当时的我很幼稚,可以说在大人们眼里,我仅仅只是个孩子。别的,什么也不是。你很难想象当时的我是什么个样子,因为,它只刻印在我的脑海,独一无二,不可传授。很多人会说和我有关的人会有那些所谓“关于我”的记忆,但是我只能够说,他们拥有我的:外貌,行为表现,文化素养,等等。而他们无法获取的一点,也是最重要的一点,那就是我内心深处的心房。 从小就这样,我不喜欢而且憎恨和别人说话,因为我从小就这个样子,没有父母的我或许命中注定了我就是这个样子,阴暗,封闭。这就是我的宿命。 我很清晰的记得,我一个人住在孤儿院的某个房间,封闭自己,足不出户。当然这种封闭不是绝对的,由于生理的需要我会同其他同龄的孤儿同桌吃饭,和其他的人共同出恭,诸如此类的事情比比皆是,但是,我的原则依旧是“金口难开”。 有一次,孤儿院的老院长无意中从我身边经过,也许是我那阴森的气息过于浓重,她叫住了我:“泽缘,你怎么从来就没有和其他的小朋友说话呢?有什么事情别往心里藏,过度的封闭自己是不好的。”筱泽缘,如果不是院长叫我,大概四岁的我长期这样封闭自己很有可能永远都无法知晓我的名字。 “泽缘,知道了么?”我很难以相信,为什么会有人向我主动说话,并且和蔼可亲。我瞪大了双眼,直直的看着院长,满脸莫名。五秒钟后,我飞快的奔往我的房间,碰的关上门,门外,夕阳满天。 十五岁那年我终于憋不住了,当我说出这些年来的第一句话的时候,我释然了。尽管这样,偏偏命运的捉弄,这种感觉稍纵即逝,无影无踪。这次说话是一个女生说话,不知道为什么,我只想和她说一句话:“我喜欢你。”我不知道,喜欢这个词语是怎么跑进我的脑海,我只记得我在孤儿院接受过小学程度的教育,然而这里的条件不好,所以只能够供应我受到这种程度的教育。对此我并没有在意过。对于这样的我,或许是最真实的。 一个瞬间,我的脸上多了一个手印,她气愤的走了,抛下一句:“流氓。” 手印留下的瞬间我十分疑惑我自己,为什么会说出这样的话,为什么从来不说话的我会这个样子,我读不懂我自己,我读不懂这十一年。 我又再和别人说话的那一年是我有记忆起的十四年,是我成年的那年。我独自坐在房间,等待十二点钟声的敲响,它代表这我独立了。九月二十五号的第一鸣钟声响彻整个城市,他呼唤我,向我招手,告诉我说,泽缘,你成年了,你已经来到人间十八年了。是该考虑自己的未来了。 我离开了孤儿院,之前的院长不知去往何处,在五年前新校长就上任了,然而我在新校长面前始终被认为是个异类,对此我感到很正常,因为这个世界上和我说过话的除了那个女生,以及老院长,别无他人。 (待续) 补充: 我居然在硬盘里发现了一个重写过的后续版本 爱情不是轰轰烈烈的誓言,而是平平淡淡的陪伴。 序 终于,我能够静下心来阐述我的某些遭遇。而这些遭遇,对你我而言,无可厚非是必要的。 我些这篇小说的目的并不是为了明确任何的观点,也不是为了叙述某些我想记住的事情。而是…… 四岁那年的事情,从某种层面来看,我是没有记忆的。事实却并非如此,四岁的记忆宛如昨日光景,在我的脑海,记忆犹新。当时的我很幼稚,可以说在大人们眼里,我仅仅只是个孩子。别的,什么也不是。你很难想象当时的我是什么个样子。因为它只刻印在我的脑海,独一无二,不可移植。很多人会说,和我有关的人会有那些所谓“关于我”的记忆,但是我只能够说,他们拥有我的:外貌,行为表现,文化素养等等。而他们无法获取的一点,也是最重要的一点,那就是我内心深处的心房。 从小就这样,我不喜欢而且憎恨和别人说话,因为我从小就这个样子,没有父母的我或许命中注定了我就是这个样子。阴暗,封闭。这就是我的宿命。 我很清晰的记得,我一个人住在孤儿院的某个房间,封闭自己,足不出户。当然这种封闭不是绝对的,由于生理的需求我会同其他同龄的孤儿同桌吃饭,和其他的人共同出恭等等诸如此类的事情。但是,我的原则依旧是“金口难开”。 有一次,孤儿院的老院长无意中从我身边经过,也许是我那阴森的气息过于浓重,她叫住了我:“泽缘,你怎么从来就不和其他的小朋友说话呢?有什么事情别往心里藏,过度的封闭自己是不好的。”筱泽缘,如果不是院长叫我,大概四岁的我长期这样封闭自己很有可能永远都无法知晓我的名字。 “泽缘,知道了么?”我很难相信,为什么会有人向我主动说话,并和蔼可亲。我瞪大了双眼,直直的看着院长,满脸莫名。五秒钟后,我飞快奔向我的房间。碰!门外,夕阳满天。 十五岁那年我终于憋不住了,当我说出这些年来第一句话时,我释然了。尽管这样,偏偏命运的捉弄,这种感觉稍纵即逝,无影无踪。这次说话是和一个女生说话,不知道为什么,我只想和她说一句话:“我喜欢你。”我不知道,喜欢这个词语怎么跑进我的脑海,我只记得我在孤儿院接受过初等程度的教育,然而这里的条件不好,所以只能够供应我收到这种成都的教育。崔次我并没有在意过。对于这样的我,或许是最真实的。 一个瞬间,我的脸上多了一个手印,她气氛的走了,抛下一句:“流氓。” 手印留下的瞬间我十分一伙我自己,为什么会说出这样的话,为什么从来不说话的我会这个样子,我读不懂我这十一年。 我又再和别人说话的那年是我有记忆起的十四年,是我成年的那年。我独自坐在房间,等待十二点钟声的敲响,它代表着我独立了。九月二十五号的第一鸣钟声响彻整个城市,它呼唤我,向我招手,告诉我说:泽缘,你成年了,你来到人间已经走过了十八个年头。是时候该考虑考虑自己的未来了。 第二天我找到新的院长,办理了退宿手续,离开了孤儿院。之前和我说过话的院长在五年前就不知所踪。新的校长自上任后就没有和我说过一句话。他似乎看见我来办理退宿手续就显得异常的兴奋和高兴,巴不得我赶紧离开。 风在撕裂谁? 离开孤儿院的第一天,我感到十分的迷茫,硕大的城市不知哪儿是我的归途。 孤儿院位于在新竹县的一条小巷内,里面的设施十分的简单,除了院长管理孤儿的生活起居外,还有一个人那就是龙老师。龙老师自从我有记忆以来就一直住在孤儿院了。我所有关于这个世界的看法以及各种杂七杂八的知识都来源于他。他只是一个普通的教师,他包揽了我印象中的所有初等教育的内容,有语文,有数学,甚至还有英语。我离开孤儿院的那天龙老师似乎哭的很伤心,虽然我没有跟他说过任何一句话,但是他依然泣不成声,因为每个从孤儿院走出去的孩子,都是他一手教大的。我收拾行李之前,龙老师坐到我的床边,嘱咐我在外奔波时应如何如何。大谈今后的我如果有出息,一定要记得回到孤儿院来看看他。我那时就感觉他是一个敬业的人。虽然我从未跟他说过话,但是他依旧待我不薄。而我却不知道龙老师究竟多少年纪,也不知我离开孤儿院后还能不能再见他一面。 走在路上,我回想起这十八年来走过的点滴。虽然记忆犹新,却暗淡无光。 前面是一堵墙,我看见一份关于房屋出租的广告,于是我撕掉下方的电话,走进公话超市,向其询问了关于住房的相关信息,总的来说价格还是能够接受。 离开孤儿院时院长从自己的银行卡里面取出了三千元钱,对我说:泽缘,这三千块钱就是你今后的所有家产了,至于之后的路,就看你自己了。 对于在世十多年都没有摸过钱是什么的我,三千在我当时看来是一笔不小的数目。给我的感觉就是三千块钱足够我使用一年了。但是很遗憾,当我离开孤儿院后在各种街道上看着那些从未见过的市面,彷徨失措。走过一个个商店的橱窗,看着一个个标着价格的商品。我才意识到,三千块钱最多够我维持三个月。 之后我沿路查看了很多关于房屋出租的信息,对比之下,四百一个月,是这里最便宜的价格了。于是我在天色即将拉下之时入住了一间小房间。 第一晚,我收拾好自己的东西,把房间整理成我想要的样子,躺在了床上,思考着明天的我又将归向何方。 门外的轰鸣声吵醒了我,原来是火车。我这才知道这件房屋背后的不远处就有火车的铁轨。看天色也已明亮,便收拾好各类证件,出了门。 第二天在路上,我明白我应该去找一份能够维持我生活下去的工作。异常的顺利,我成功的在一家餐厅里做起了服务员,月薪一千五。这个价格很符合我的胃口,我认为每个月一千块钱的使用是绰绰有余。所以当老板问及我月薪一千五能否接受的时候,我不假思索的答应了。而在我和老板签订劳动合同后才知道,这里的每个员工的工薪都比我高出很多。我这才知道,自己是被骗了。 遇见 就在这日复一日,乏味,单调,三点一线的日子中,又过去了两个月。这两个月我有尝试着和别人开放性的说话,因为上次我在和餐厅应聘的时候和老板说的话少之又少,老板对我说道,若是我在客人面前也是这个样子就立即解雇我。 这天在我回去的路上,我相信我没有眼花,对,我看见她了——那个打过我的女孩。 她似乎在寻找什么,四处张望,并不断找路人询问着什么。我有意的避开她了,我相信她十分不愿意见到我。因为在她眼中,我就是一个“流氓”。 我有留意过她,这是我从上一次被她打后再一次见到她。熟话说女大十八变,这话不假。她比几年前更加漂亮了。 是的,我错了,她实际上是在找我。几天后的晚上,她敲响了我所住房间的房门。打开房门的瞬间,她冲进来遍抱住了我,随之而来的就是:我找得你好苦。 (待续)

Linux 内核分析 之五:system_call中断处理过程的简要分析

Published at发布于:: 2015-04-05   |   Reading阅读:: 2 min
说明 欧长坤 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这学期学校恰好有操作系统的课程,上个学习就开始寻思研究研究Linux内核代码,恰好MOOC有这个课程,遂选了此课。 一、准备工作 本周的实验是第四周实验的自然延伸。同样的,它也并不难。 我们可以在http://codelab.shiyanlou.com/xref/linux-3.18.6/arch/x86/syscalls/syscall_32.tbl中查看系统调用号。 如果你上周没有看过我的文章,你可以看看这里。我使用了systeminfo这样一个系统调用。 二、实验过程:跟踪系统调用 我们使用了sysinfo这个库函数API。 下面的三张实验图显示了我们已经成功的使用gdb调试跟踪到了sysinfo这个系统调用(函数名为sys_sysinfo),但是随后使用next命令继续调试时,显然无法再继续调试了,因为不能直接使用gdb来对使用汇编代码编写的system_call进行调试和追踪。这里有一篇文章介绍了如何使用gdb来调试汇编代码,我就不继续展开了:http://www.doc88.com/p-0781911176267.html 三、system_call过程分析 不说废话,老师上课对system_call的分析过程非常清楚,伪代码抓住了重点,我们很容易就能够画出下面的流程图: 接下来我们逐行分析系统调用处理过程的汇编伪代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 .macro INTERRUPT_RETURN ; 中断返回 iret .endm .macro SAVE_ALL ; 保护现场 ... .macro RESTORE_INT_REGS ... .endm ENTRY(system_call) SAVE_ALL syscall_call: call *sys_call_table(,%eax,4) movl %eax, PT_EAX(%esp) ; store the return value syscall exit: testl $_TIF_ALLWORK_MASK, %ecx # current->work jne syscall_exit_work restore_all: RESTORE_INT_REGS irq_return: INTERRUPT_RETURN ; 到这里就算执行完了 ENDPROC(system_call) syscall_exit_work: testl $_TIF_WORK_SYSCALL_EXIT, %ecx jz work_pending END(syscall_exit_work) work_pending: testb $_TIF_NEED_RESCHED, %cl jz work_notifysig work_resched: call schedule jz restore_all work_notifysig: .
Read More阅读更多 »

大创项目的标题真是每年都在考验同学们的想象力啊

Published at发布于:: 2015-04-02   |   Reading阅读:: 1 min
今年大创申请结果出来了。虽然我没有申请。但是还是习惯性地关注了一下有哪些项目立项。 突然发现我们学校也开始玩起了前沿技术。 当年一个App可立国家级的项目的情形似乎已经一去不复返了。 校级项目里面几乎全是手机软件的开发,什么交友啊二手啊之类的。作为一个经历过四届大创的学长,所以真诚的提醒你们:计划明年申请的同学一定不要做这个了,评审老师估计也会彻底看不起了。 想当年一个垃圾短信屏蔽的安卓app都可以成为国家级…(逃 各个级别上得划分我看觉得特别合理,特别是我之前在帮学弟们找项目idea时候做的研究方向的预测,上省级的大多数都会大数据啊物联网啊ARVR之类的看起来很前沿很高端的技术上靠拢。 不过,今年的校级项目里面有一个项目从标题上看我觉得挺好,但是没有申请到更高级别显得比较遗憾。 家用NAS云服务器管理软件开发及研究 这个标题实在是太GEEK了,难怪没有申请到省级以上,这个产品毕竟太小众了,那么它的管理软件就更加小众了。(不过。我以后有钱了肯定是要在家里搞这么一个玩意的。 国家级五个项目里面除了我超级喜欢的飞行器和不明觉厉的面向民族地区的地图外,其他三个项目的核心技术我居然都有研究过啊哈哈哈哈哈哈哈哈我好棒(逃。 基于深度学习的人脸识别系统设计与实现 看到深度学习我突然感觉到好温馨啊。点个赞。 不过令我没想到的是人脸识别这项几乎已经被认为是攻克了的技术。居然连续三年不断申请终于从校级走到了国家级。 去年那个项目用的技术叫做压缩感知(这项技术早在08年Deep Learning被提出的时候就失去热度了)。 所以今年这个项目总算把技术赶了上来换成了当下最火的Deep Learning 。 恰好,去年的那个时候我对Deep Learning还不是很了解,始终认为压缩感知作为一种“被淘汰”的技术…我妥妥的在申请项目时候把Deep Learning作为要研究的核心技术。 反倒是在我研究Deep Learning的这一年当中,逐步认识到压缩感知可以作为Deep Learning的一个很重要的Foundation(尽管只是理论价值而已)。 然后实现Deep Learning的时候我还发现这货根本不是一般的dataset可以驾驭得了的……即便有了这样的dataset,也没有硬件成本驾驭这个dataset啊…那么问题来了……(逃 顺便我做一个广告,如果想快速构建一个 Deep Net 我用在做去年申请的项目过程中开发了一个框架叫做SmartNet,专门用来快速搭建DeepNet。项目结题后我就开源。(全世界唯一有中文文档的深度学习库哟 基于LeapMotion和偏振式3D显示器的三维模型演示系统 LeapMotion也是我在研究去年那个项目的过程中被我彻底抛弃的一项技术。 我大致可以想象这个项目最后会出现什么样的结果了…好吧,不跳进坑里你们是不知道这个坑有多深的。(逃 硬性广告:大一时候搞的那个手势识别在现在这个项目里我也做了优化 结题后我也会开源哟(轻量级可轻松扩展的自学习手势库哟 基于用户行为的大数据挖掘引擎——以新媒体平台为例 用户行为大数据引擎= =擦 我大创不就写得这个吗 。 以新媒体为例——我会告诉你我一个库解决了所有平台吗(逃 硬广:HorcruxLib是我开发的一个能够轻松实现分布式机器学习算法的库,性能甚至可以优于MapReduce架构的引擎,支持宕机容错,玩得动TB级的数据,配套使用的还有一个集成了大部分机器学习的算法库MLiteKit。结题后我就开源哟(世界上唯一一个有中文文档的分布式机器学习库和机器学习算法库哟 省级项目也不例外,有四个项目的关键技术我都有涉及: 基于蓝牙技术的通信软件的研究和开发 基于HTTP协议下地远控演示系统 基于Spark大数据处理的在线图书推荐系统 基于树莓派3G4G网络的可远程控制智能家居系统的实现 我擦蓝牙技术我用来做精准定位诶 我擦远控系统不就是拿了中国科学最高奖的透明计算吗 我做的一个演示demo就是远控 果然dr zhou带的项目就是不同 我也觉得spark是未来工业界的希望啊 (特别是spark1.3发布之后 树莓派我用来搭过三节点集群 好好玩真的 总结 国家级/省级中奖概率95%模板:基于XXX和YYY的ZZZ的MM和NN XXX和YYY至少有一样是热门技术名词; ZZZ一定是自己想的一个名词; MM和NN一般是“研究”、“实现”、“设计”等动词 ;
Read More阅读更多 »

Linux 内核分析 之四:使用库函数API和嵌入汇编两种方式使用同一个系统调用

Published at发布于:: 2015-03-29   |   Reading阅读:: 3 min
说明 欧长坤 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这学期学校恰好有操作系统的课程,上个学习就开始寻思研究研究Linux内核代码,恰好MOOC有这个课程,遂选了此课。 一、准备工作 本周的实验比起前三周的实验稍微容易得多。我们可以在http://codelab.shiyanlou.com/xref/linux-3.18.6/arch/x86/syscalls/syscall_32.tbl中查看系统调用号。 二、分析 在这里,我们决定使用sysinfo这个库函数API,首先,我们得会使用这个API。 在 Linux 中,sysinfo可以用来获取系统相关信息的结构体。 函数声明和原型如下所示: 1 2 #include <sys/sysinfo.h>int sysinfo(struct sysinfo *info); 那么,这个sysinfo的结构体长什么样? 1 2 3 4 5 6 7 8 9 10 11 12 struct sysinfo { long uptime; unsigned long loads[3]; // 启动到现在经过的时间 unsigned long totalram; // 总的可用的内存大小 unsigned long freeram; // 还未被使用的内存大小 unsigned long sharedram; // 共享的存储器的大小 unsigned long bufferram; // 缓冲区大小 unsigned long totalswap; // 交换区大小 unsigned long freeswap; // 还可用的交换区大小 unsigned short procs; // 当前进程数目 char _f[22]; // 64字节的补丁结构 }; 其实我们都并不关心这个sysinfo的结构到底长什么样,我们目前所关心的是如何能够成功的调用。 实际上看到这里,我们已经能够完成使用库函数调用的C代码了。
Read More阅读更多 »

Doxygen 生成中文 Latex 文档

Published at发布于:: 2015-03-28   |   Reading阅读:: 1 min
如今已经离不开 Mac 了,寒假的时候好好研究了一下Latex,终于在 Mac 能够熟练使用 MacTex 的各种生成方法了。 造轮子的时候,通常会遇到写文档的麻烦,了解到有 Doxygen 这个工具,还可以生成 Latex 的 pdf 文档,果断用了它。 但是似乎并不能直接根据代码生成中文文档,这就很讨厌了。 原因在于 doxygen 本身并不能直接输出 pdf 文件,而是生成 latex 目录,利用 makefile 来生成pdf文件。幸运的是,对于 latex 排版,doxygen 其实已经做了很多准备,保存的源文件是UTF-8编码,并默认使用了utf8 package。因此是支持多国语言的。 但是对于中文来说,还需要加载 CJKutf8 package,并配置好CJK环境。这才能顺利的使用中文。 所以解决方法其实很简单: 使用docxygen生成文档,注意选上 GENERATE_LATEX 、LATEX_OUTPUT、USE_PDFLATEX(最好还选上 PDF_HYPERLINKS); 用文本编辑器打开 docxygen 生成的 latex 目录中的 refman.tex。找到“\begin{document}”这一行,将其修改为 1 2 3 4 5 6 7 8 \usepackage{CJKutf8} \begin{document} \begin{CJK}{UTF8}{gbsn} [/code] 再找到“\end{document}”这一行,将其修改为 [code lang="latex"] \end{CJK} \end{document} 保存,输入make,完成编译。

Wordpress 站点搬家

Published at发布于:: 2015-03-27   |   Reading阅读:: 1 min
我的 Wordpress 站点使用的是 lnmp 快速搭建的,所以如果是搬家的话可以很快。 首先在新的VPS上安装lnmp。 下面这一行命令就可以解决了。 1 wget -c http://soft.vpser.net/lnmp/lnmp1.1-full.tar.gz && tar zxf lnmp1.1-full.tar.gz && cd lnmp1.1-full && ./centos.sh 然后在执行: 1 /root/vhost.sh 就可以按照步骤创建好文件夹了。 下一步就是把文件备份过来。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 原服务器 tar -cvf euryugasaki.com.tar /home/wwwroot/euryugasaki.com # 网站打包 mysqldump -u 用户名 -p 数据库 &gt; 数据库.sql # mysql 数据备份 mv 文件 /home/wwwroot/euryugasaki.com/backup/ # 新服务器 wget http://euryugasaki.
Read More阅读更多 »
13 14 15 16 17 18 19 20 21
© 2008 - 2026 Changkun Ou. All rights reserved.保留所有权利。 | PV/UV: /
0%