Monthly Archives: November 2008

socket 中的几个读写函数

ssize_t send(int s, const void *buf, size_t len, int flags); ssize_t sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); ssize_t sendmsg(int s, const struct msghdr *msg, int flags); 用于发送消息到另外一个 socket 上。 send () … Continue reading

Posted in 系统编程 | Leave a comment

Berkeley DB HASH 桶分裂2 (Bucket split)

http://hi.baidu.com/dazhao_dbblog/blog/item/153f29e898430438b80e2d1e.html Berkeley DB 的 hash 方法用用户提供的 key 和用户可配置的 hash 函数计算一个哈希码H, 然后用H通过动态散列技术得到这个key所在的桶,然后去桶中找这个 key 或者将新的 key/data pair 放入这个桶中。它用若干个页组成一个桶,理想情况下是每个桶一页。在每个桶中,key 的排列是页内有序,页间无序的---在插入新的 key/data pair 到一个页中的时候,我们保持这个页内的Key是有序的,这样在这个页中查找一个 key 的时候,就可以使用二分法迅速找到目标 key/data pair. 起初,在 hash 数据库中只有两个桶,每个桶各一页,桶的编号分别是 0 和 1,同时我们有两个掩码 HiMASK 和 LoMASK, 他们起初分别为 0x00000001 和 0x00000000 。 当我们提供一个 key … Continue reading

Posted in Berkeley DB | Tagged , | Leave a comment

I have a dream

妈妈咪呀(mamma mia) 片尾曲 I have a dream, a song to sing To help me cope with anything If you see the wonder of a fairy tale You can take the future even if you fail I believe in angels Something … Continue reading

Posted in Music | 2 Comments

memcached分析

1、可以选择使用TCP还是UDP; 2、多线程程序; 刚开始的时候listen_conn会被初始化; 有几个地址,listen_conn就会有几个元素,上的每个都会进行listen? memcached使用了libevent,事件的处理函数被设置为event_handler;在这个函数中将会调用drive_machine进行事件的处理。drive_machine处在事件循环之中,包括进行accept操作,进入conn_listening状态则进行accept。但只有主线程才进入这个状态。 每个线程会使用pipe形成管道。 setup_thread函数会加入管道读端可读时的事件。 libevent的逻辑就是设置你感兴趣的事件,然后写一个状态循环。 在accept之后, 如果是多线程则调用dispatch_conn_new塞入一个CQ_ITEM到一个线程的队列中,并往管道中写一个字节;塞入管道之后thread_libevent_process会调用(由于事先在setup_thread注册过),将从队列中取出一个CQ_ITEM生成conn。 如果不是多线程则调用conn_new,生成一个conn。

Posted in 系统编程 | Leave a comment

wall E 和2001太空漫游

2001太空漫游被称为是科幻电影的里程碑,它表现了导演对人类文明深层次的思考,尽管我看不懂。 wall e也可以被称为是一部科幻片,其中2处的音乐和2001太空漫游一样,一处是船长起床时响起的蓝色多瑙河,还有一处是在快结尾处,船长跟大副PK时的一段音乐,他居然站起来了。。。。大副分明就是2001太空漫游中的HAL 9000超级计算机,表现了人类面对科技的恐惧。。。这应该算作是在向这部伟大的电影致敬。。 据说HAL是在影射IBM。HAL三个字母的下一个字母就是IBM。。。

Posted in 电影世界 | Tagged | 2 Comments

显示 epoll ET 和 LT 区别的例子

一个简单的例子,显示 ET 和 LT 的区别; LT 即是水平触发,只要还有数据便会通知你; ET 是边界触发,一旦你得到通知,可是你并没有读完,则你不会被再通知,除非状态发生改变,比如像下面例子中子进程不断往管道中灌数据,就可以是一种状态改变。如果要采用 ET 模式,需要一直 read/write 直到出错为止。 特别要主意 man 手册中的话,使用 ET 时一定要使用非阻塞式。比如你期望读到 36 字节,可是你只读到 32 字节,那么你不得不再次尝试,可是在阻塞情况下如果数据没有到达,你就卡住了没法处理别的请求。 http://www.wangafu.net/~nickm/libevent-book/ http://blog.csdn.net/sparkliang/archive/2009/11/05/4770655.aspx libevent在异步socket中的使用 http://blog.csdn.net/liutaoxwl/archive/2008/09/22/2962143.aspx

Posted in 系统编程 | Leave a comment

epoll 的几个例子

一个简单的 echo 例子。

Posted in 系统编程 | Comments Off

2001 太空漫游

很久以前曾经看这个片子,结果没耐心看下去,周末又看了一下,还是没怎么看懂。 第一部分是 人类的黎明,在一片貌似非洲的大陆上,太阳正在升起,一群黑猩猩在大喊大叫,似乎在争夺领地,然后想起了一阵诡异的背景音乐,这种气氛一直伴随着本片,一块像黑色石碑的东西突然出现,引得猩猩又是一阵骚动。无意间一只黑猩猩拿到一块动物尸体上的骨头,然后响起了雄壮的音乐,特写镜头中强有力的臂膊挥舞着骨头,骨头被抛向空中,然后下坠。领地争夺战中一只黑猩猩手持骨头把另一只黑猩猩锤死。然后响起了蓝色多瑙河,画面转向浩瀚的宇宙,不知道蓝色多瑙河,骨头,宇宙之间到底有什么关系。虽然是1968拍摄的电影,但是画面上显示的外太空看地球的照片竟然和后来真的照片一样逼真。此时影片已经播放了30分钟,然后才出现了人物和对白。没耐心的早就不看了。然后人类登上了月球,这个时候的导演就知道月球上漆黑一片,满是陨石坑。 影片的结尾更加诡异,宇宙飞船靠近木星,自始至终都是诡异的音乐,让人毛骨悚然,一片空洞的死寂,镜头不紧不慢在浩瀚宇宙中扫视。透过宇航员的眼睛,我们看到了赤橙黄绿青蓝紫的变幻,然后背景音乐似乎变成沉重的呼吸声,飞船好像停在一间卧室里,透过镜子,宇航员明显变老,他走向门口,看到另外一间房中一个老人在吃饭,这个老人站起来,转过身,原来他是更老的宇航员,老人走向门口,看了一下,宇航员突然就没了,转身又走向餐桌,继续吃饭,然后他摔坏了一只杯子,此时背景音乐又出现沉重的呼吸声,老人侧身一看,他看到床上躺着一个快死的人,然后镜头对准这个快死的人,他伸出右手,想去触摸一个东西,想触摸什么呢?原来是那个突然又出现的黑色石碑,此时吃饭的老人也没了,过了几秒钟,床上的老人也没有,取代的是一个球状,透明,发光的东西,好像有个婴儿在里面,镜头逐渐推向黑色的石碑,再次响起了雄壮的音乐,浩瀚的宇宙中,那个球状物体中的婴儿望着蓝色的地球,然后影片就结束了。。这些元素之间有什么关系呢?导演究竟想表达什么呢? 如果没有看别人的评论,我觉得一般人真的没法看懂,影片中一些元素的符号意义很难理解 。

Posted in 电影世界 | Tagged | 1 Comment

epoll 资料汇总

http://blog.chinaunix.net/u/14063/showart_377118.html http://www.sudu.cn/info/html/edu/linux/20080407/264851.html http://hi.baidu.com/jackbillow/blog/item/c7f242f3e92a71cc0b46e080.html http://www.cppblog.com/converse/archive/2008/10/08/63504.html http://www.cppblog.com/converse/archive/2008/10/13/63928.aspx http://www.cppblog.com/converse/archive/2008/04/29/48482.html http://blog.kovyrin.net/2006/04/13/epoll-asynchronous-network-programming/ http://fixunix.com/linux/340427-example-epoll-usage.html http://new.qzone.qq.com/4169928/blog/1202027558 userver http://www.cs.uwaterloo.ca/~brecht/papers/getpaper.php?file=ols-2004.pdf http://www.kegel.com/c10k.html http://lyningg.spaces.live.com/blog/cns!35cd4180e01b4084!189.entry http://hi.baidu.com/iloveurong/blog/item/7153fc8bf3116a16c8fc7a2d.html http://hi.baidu.com/hytjfxk/blog/item/d844af580c34b4d99c82042b.html http://www.google.cn/search?hl=zh-CN&newwindow=1&q=epoll+ET&btnG=Google+搜索&meta=&aq=f&oq= http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7687e8d92027fa3c215cc792f32247bb2f1667a4e1982d87c6503aa545eeced377432022ab490cc824ad8b8852f5b8d30340746c01e4cc75cf28b102a9673c509b2f3&p=876ac71b9e934eab0dbe9b7b5b&user=baidu http://apps.hi.baidu.com/share/detail/428384

Posted in 系统编程 | 2 Comments

一封家书

慕容萱 亲爱的爸爸妈妈,你们好吗? 我已进入下一轮了,家里的钱还够吗? 我在前方挺好的,爸爸妈妈抓紧筹款啦。 投票公司虽然很贵,该花的钱一定得花。 爸爸不要再像个傻瓜,多请点人帮我策划。 看人家超女都吃香喝辣,你老人家还坐得住吗? 妈妈要每天去百度贴吧,那里的粉丝最多最傻。 记得多注册几个马甲,舆论导向很重要啊。 爸爸妈妈加油加油,不要让孩子放心不下。 这个社会流行作假,没有什么不好意思啦。

Posted in 杂七杂八 | Leave a comment

IMDB Top 250

全新HDTV和Blue Ray格式的IMDB Top 250已经出现在各论坛中。刚接触0day时还是DVD格式的。。总空间2T以上。看来牛人之外还有牛人。。。一个比一个更疯狂。。

Posted in 电影世界 | Tagged | 2 Comments

雌雄大盗

又名 邦妮和克莱德 30年代的美国处于经济低潮,失业率急剧攀升,许多人生计发生问题。克莱德在一间空屋前面看见一家人驻足观望,依依不舍,询问之下才知道这原是他们的房子,后来因为付不起贷款被银行没收了。激于义愤,克莱德对屋门前银行的封条开了一枪,而决定开始抢银行。   邦妮看到克莱德正要偷她妈妈的车,二人由此相遇。之后,一伙人展开了公路亡命的生涯,除了邦妮和克莱德,还有克莱德的哥哥巴克和他的太太布兰彻,以及一个会修车的小个子CW。   克莱德与哥哥难兄难弟,感情甚笃,邦妮和布兰彻则势成水火。因此四人之间呈现微妙的关系:克莱德要维系和巴克之间“哥儿们”的感情,另一方面又要时时安抚邦妮。邦妮则经常在追求自由理想和因为爱人所作的牺牲之间挣扎。最后这种紧张关系在巴克被击毙与布兰彻被逮捕后结束。两人获得独处的机会,也达到了完满的性高潮。   逃亡毕竟会有终点。一群鸽子飞上树梢,邦妮与克莱德正欣赏一刹那的美感,告密者忽然钻到车底下。两人往树丛看一眼,心知大势已去。克莱德急速跑向车中,但此时乱枪已起。慢动作,两人被打成蜂窝。 《邦妮和克莱德》借用了传统强盗片的模式,却改制了原模式,打破了案发、反复追逐、大结局的三段式情节,产生了新的对原模式具有针对性的文本。以邦妮和克莱德这两个反道德化的人物替代了传统强盗片中道德化的人物定位,通过冗长平缓、日常生活化的叙事方式展现了人物的生活、行为细节以及生存和心理状态,流露出对这两个人物的深切同情,将犯罪的原因归咎于社会和家庭对于青年人的忽视和残害。影片结尾处被电影史反复称颂的枪林弹雨的洗礼将这一悲剧升华了,它道出的事实是政府、法庭和警察对两个鲜活生命的屠戮。而克莱德这个人物以"性无能"的形象反复出现在影片的几个段落中,他没有象传统强盗片中匪徒因为过剩的里比多所导致的滥杀无辜,没有凶狠残酷的表情,有的只是在邦妮面前的软弱。故事中社会大萧条带来的是经济贫乏而拍摄电影的六十年代所面临的是精神层面的困扰,克莱德的形象喻意着的是社会的性无能。由此也是对传统强盗片对于意识形态缺乏反思和批判的维护做出了一次反抗,冷静的审视背后饱含着对社会的反省。 http://baike.baidu.com/view/881302.htm

Posted in 电影世界 | Tagged , | 3 Comments