康康马

梦里不知身是客

 kangkangma | 15 十二月, 2007 22:55

    最近睡觉老是做梦,梦里总是差不多的场景,一帮初中,高中,大学同学在同一个教室里上课。

    前文提及的已经生了一对双胞胎的MM不时的出现在梦中,触手可及。 醒来已经记不太清梦中的情形了,也没有什么欢乐,悲伤或者其它的情绪。以前总是能很清楚的回忆出梦中的细节,然后躺在床上感概为什么梦不是真的,或者还好梦不是真的。

    也许我变得成熟了,可以把梦与现实生活分开,因为我比以往任何时候都知道自己该干什么。 事业,梦,冥想是我目前的三种状态。我不知道哪一种状态才是真正的生活,但是我知道,我必须把它们区分开来,让每一种状态成为独立的部分。

    昨天和蓓桢同学去姚餐厅吃饭喝酒,相谈甚欢。去年她回上海的时候我们在酒吧里狠狠的回忆了一把高中的同学,今年我们聊的是各自的事业和追求,高中同学已很少提及。

    从前的日子已远去, 还是让它留在梦里吧。

PHP优化(一) --使用文件缓存降低数据库的并发连接数

 kangkangma | 06 十二月, 2007 18:32

    笔者目前所在公司的网站访问量那是相当的大,所以在编程中对PHP程序的优化要求很高。优化有很多种方法,本文介绍的文件缓存方法主要是在数据库并发访问量很大的时候能有效的降低mysql的连接数。缓存的方法有很多种,本地文本缓存只是其中最简单的一种,当访问量超过一定的数量的时候,可能还需要考虑其他的缓存方法,笔者在接下来的文章中也会做相应的介绍。

    文本缓存的主要原理就是针对不是实时更新的数据,每次访问先查看有没有文本缓存,有则从文本缓存中读取数据,如果没有则从数据库里读取数据,并生成缓存,那么在下次读取的时候便可以从缓存中读取,而不用连接数据库,可以极大的降低数据库的并发连接数。针对不同的应用情况,可分别设置cache的过期时间。

cache example
  1. function getNewsData()
  2. {
  3. $cache_file = 'cache/news_data.txt';
  4. if (file_exists($cache_file)&&time() - filectime($cache_file) < 60)
  5. {
  6. $ret_str = file_get_contents($cache_file);
  7. return unserialize($ret_str);
  8. }
  9. else
  10. {
  11. include ("include/conn_dc.php");
  12.  
  13. $sql = "select * from news limit 4";
  14.  
  15. $result = mysql_query($sql, $mysql_db_link);
  16.  
  17. while ($result && $row = mysql_fetch_assoc($result))
  18. {
  19. $ret[] = $row;
  20. }
  21. mysql_close($mysql_db_link);
  22.  
  23. if (!empty ($ret))
  24. {
  25. $ret_str = serialize($ret);
  26. $handle = fopen($cache_file, 'w');
  27. if ($handle)
  28. {
  29. fwrite($handle, $ret_str, strlen($ret_str));
  30. fclose($handle);
  31. }
  32. }
  33.  
  34. return $ret;
  35. }
  36. }
kangkangma © 2007

注意事项

1. linux每个目录下的文件数量是限制的,所以在生成cache文件的时候要注意文件的数量。
2. 如果遇到特别复杂的sql,比如需要执行1秒以上,那么可能发生的情况是,需要一秒以上的时间才能生成cache文件,而在这一秒钟里可能会有大量的并发访问,导致服务器当机,所以sql的执行时间也是需要考虑的因素。

我的性格测试

 kangkangma | 03 十二月, 2007 23:03

    今天编了一天的程序,一直写到现在,大脑迟钝了,本来想写篇技术文章,可是实在不想再动脑子了。有人在我的blog上留言问我有没有兴趣做项目,没想到blog还能帮我接单子。看来我有写不完的程序,突然冒出个念头,把我所有写过的程序连起来不知道会有多长,也许会让人大吃一惊的。我基本上已经是个工作狂了,除了看NBA,基本上都在做些和程序相关的事情,不是在写,就是在思考,要么就是在边写边思考。不过离我大学刚毕业那段时间同时做7个项目的巅峰状态还有点差距。来篇轻松点的文章吧,事情永远是做不完的,只要我们朝着正确的方向努力就行了,有的时候不必太苛求自己。

    言归正传,几个月前在sherwin的威逼利诱下,在百合网注册了用户并做了网站里的心理测试,感觉基本上还是挺准的,和我以前做过的一些心理测试的结果很接近。

“这份测试是百合网与北京大学、北京师范大学、中国科学院联合组建的百合婚恋研究院的研究成果。”-- 似乎还挺像那么回事情

经过对您的测试结果的全面分析,我们发现您的恋爱类型是

灵性特质的作家型

作家型的特点是:
  • 会被心理学、哲学、神秘主义和心灵感应所吸引。
  • 是很好的聆听者而且非常具有同情心。
  • 通常很安静。
  • 有些时候极端固执。
  • 喜爱阅读和写作。

 以上描述非常准确。

根据您的测试结果,我们还评估出您的16个心理维度:

冒险性 -- 您具有较强的冒险精神,在生活目标、生活方式、财务管理等方面,可以承受较大的风险压力。准确

责任心 -- 您追求自由,不希望被婚姻和承诺束缚,喜欢按照自己的意志行事,灵活选择自己想要的生活。 非常准确

成功欲望 -- 您渴望成功,会不断挑战自我,努力进取。准确

性欲强度 -- 保密

自信心 --  您勇于尝试新的工作任务或学习内容,愿意接受挑战,遇到困难能够迎难而上,充满信心。非常准确

对伴侣的信任度 -- 您比较敏感,有些缺乏安全感,有时对伴侣也不能完全信任。准确

独立性 -- 您具有较强的独立性,在感情上不过于依赖对方,期望与伴侣能够互相关心,但仍可以自由处理各自的事务。 准确

精神活力 -- 您喜欢比较安静的生活方式,并希望与伴侣静静地享受在一起的时光。 非常准确

物质观念 -- 您不太看重物质在双方关系中的作用,更看重精神层面的需求,追求生命的意义。 非常准确

表达方式 -- 您喜欢用言语直接表达情绪或感受,会把自己的需要直接告诉对方,相处时不需要过多的猜测。 基本准确

沟通强度 -- 您沟通欲望都比较强烈,沟通方式比较直接,喜欢和心直口快的人交往,只要表达的都是真实想法,不介意与他人争论,并希望与伴侣开诚布公地讨论。 非常准确

伴侣的重要性 -- 您认为伴侣和婚姻并不是唯一重要的,人生中重要的事情还很多,并希望拥有自己的事业和社交圈,看重事业上的成就和人际关系的维护。基本准确

事业一致性渴望 -- 您希望与伴侣拥有相似的事业追求,能够随时交流,携手进步,关注双方在事业上的共同话题。基本准确

共享空间的要求 -- 您希望与伴侣保持一定的独立空间,不一定与伴侣分享所有事情,需要一些完全属于自己的私人空间和小秘密,不过于依赖对。非常准确

婚姻观念 -- 您对婚姻看得比较淡然,认为爱情不一定要以婚姻为归宿。非常准确

生育观念 -- 您看重生命的延续,希望和伴侣一起生育孩子,认为培养下一代是婚姻的重要组成部分,并希望伴侣有同样的想法。基本准确

心理学家的研究表明,和您最匹配的恋爱类型是: 作家型 哲学家型

唉, 对找到和我匹配的不报什么希望。

不烧饭的女人

 kangkangma | 27 十一月, 2007 19:56

康康马     个么你以后结婚会烧饭洼
Joanna     不会
Joanna     叫我男朋友烧,不会么,学
Joanna     或者以后吃爸妈的,每月交饭钱
康康马     哈哈
康康马     当你男人真可怜
Joanna     切,那是他的幸福所在
康康马     强迫人家烧饭就算了,还要强迫人家觉得幸福
Joanna     :D
Joanna     ;)他会觉得很幸福的
康康马     流着眼泪说很幸福
康康马     不说就打他
Joanna     他打不过我,我们打过了
Joanna     哈哈
康康马     替我问候你男人,不容易啊

    以上摘自我和某位MM的msn聊天记录。我不是大男子主义者,认为烧饭应该是女人做的事情,相反我是一直提倡男女平等的。可是当男人要给女人一个安定的生活,并且也要随大流的期许一个远在星辰之外的美好未来,然后还要顺手把饭烧了的时候,你会发觉这个世界永远都不会有平等。

    没有文化的女人很可怕,但是被言情小说和言情电视剧毒害的女人更可怕。她们不知道婚姻的本质是合法的性关系和共同抚养后代,幻想着有个男人让她过上安定的生活,并且爱她,照顾她,理解她,XXX她……(省略100项)一辈子。也许这就是造成众多婚姻悲剧的一个重要原因。

    爱一个人是心魔。同样,要求被爱也是一种心魔。 

用PHP正则表达式解析网页内容

 kangkangma | 26 十一月, 2007 22:41

    在前面的文章中,笔者上传了正则表达式Cheat Sheet,不过光看这些手册是不能明白正则表达式的精妙的,来个实例更有助于理解。

    抓取网站内容应该是程序员经常会碰到的问题,获取网页的内容很简单,只要一个file_get_contents就搞定了。你也可以选择一个叫snoopy的class,虽然只是一个class,但是功能很强大,可以模拟用户登录,表单提交等。

    假设要获取网页中所有的链接和链接中的文字,可以用以下的正则表达式代码来获得:

正则表达式 example
  1. $content=file_get_contents($url);
  2. preg_match_all('/<a href="(.*)" >(.*)<\/a>/U', $content,$arr_pat);
  3. print_r($arr_pat);
kangkangma © 2007

$arr_pat[1][0]是网页中第一个链接的地址, $arr_pat[2][0]是网页中第一个链接的文字。

    正则表达式就是这样的简单,强大,它能让你头疼,疑惑,也能让你更有效率,更加的cool。 

大道至简

 kangkangma | 17 十一月, 2007 11:52

    今天早上7点起床,和友人一同前往龙华寺烧香。

    难得这么早起床,也难得感受一个宁静安详的早晨。跨入寺门,香雾缭绕,耳边不时传来诵经声,顿觉心清气爽。

    “凡进佛寺人,多有求佛事”。我到还好,也没什么特别的事需求佛帮忙,只想暂时远离现实的生活,寻求片刻的心灵安宁。 生老病死,富贵贫穷,皆是定数与劫数,冥冥之中,早有安排。故不必强求,专心烧香礼佛即可。

    礼佛需心无杂念,心净则心静。 礼佛之时,眼中只有佛像,心中只有佛,忘了我自己是谁,诸多烦恼也随之烟消云散。

    礼佛之后,与友人在寺中闲庭信步,他前些日子刚去过法门寺,便向他询问佛手指骨舍利的情况。大道至简,快乐的生活其实也很简单。

    有些朋友时常会和我抱怨,觉得郁闷,无聊,我会建议他们读读金刚经,听听大悲咒。方法很简单,不过许多人不相信如此简单的方法能管用,也许他们的机缘还没到。

    最后引用一个关于“事事无碍”的谒语,希望我也能早日到达事事无碍的境界。

事事无碍,如意自在。手把猪头,口诵净戒。
趁出淫房,未还酒债。十字街头,打开布袋。

 

正则表达式的Cheat Sheet

 kangkangma | 15 十一月, 2007 21:00

    不知道各位程序员是不是和我一样,反正我看到正则表达式就头大,这么多规则,根本记不住。最近写的一个程序要大量的用到正则表达式,先来个cheat sheet,有备无患。

PNG版本

PDF版本

尘埃落定

 kangkangma | 13 十一月, 2007 22:34

    拿了3个offer,最终去了薪水最低的那家公司,希望这次的选择是正确的。

    相比较学习生涯的顺风顺水,我的职业生涯总是磕磕绊绊,不那么顺利。 不少关键的选择,好像都选错了,好在冥冥之中,自有定数,要取真经,必经磨难。

    就像johnny君说的,我总是带有SB气质的乐观,在事情一团糟的时候还能打起精神,重新振作,并乐观的认为我有一个光明的前途。

喜欢曹操,来首他的横槊赋诗以明志:

对酒当歌,人生几何?
譬如朝露,去日苦多。
慨当以慷,忧思难忘。
何以解忧,唯有杜康。
青青子衿,悠悠我心。
但为君故,沉吟至今。
呦呦鹿鸣,食野之苹。
我有嘉宾,鼓瑟吹笙。
明明如月,何时可掇。
忧从中来,不可断绝。
越陌度阡,枉用相存。
契阔谈宴,心念旧恩。
月明星稀,乌鹊南飞。
绕树三匝,何枝可依?
山不厌高,海不厌深。
周公吐哺,天下归心。

CSS Framework -- 让程序员轻松搞定css

 kangkangma | 11 十一月, 2007 23:01

    既然是framework, 那么其作用也和程序的framework一样,抽象出可以通用的模块,避免重复开发,统一风格,提高工作效率。如果你有10个网站,你的css是基于一个framework做的,那么维护起来会很方便,否则你会发觉这是个灾难。同样,这些抽象出来的模块对于程序员来说也是个好东西,可以让程序员轻松的在页面中加入css,比如专门用来排版的,专门定义form的css,你再也不用面对一堆杂乱无章的css代码,因为不知如何下手而头痛。

    首先介绍一下YUI中的css。Yahoo真是太棒了,不光提供javascript给我们用,还给我们准备了css。目前最新的版本(2.3.1)中包括4个css文件,分别是:

1. reset.css

这个css的作用是消除一些浏览器中默认的css样式的差异,让你的HTML Element能够在不同的浏览器上通用(across broswers)。比如统一h1的字体大小,移除img的边框等。

2.  base.css

在reset.css消除了差异性后,base.css提供了一个默认的能够跨浏览器的定义。

3. font.css

顾名思义,这个css是用来处理字体的显示的,你再也不用因为IE和FF的字体大小不一样而烦恼了。

4.  grid.css

这个css是用来处理页面布局的,比如让你方便的进行2栏排版或3栏排版的设置。

 接下来介绍另外一个比较热门的css framework -- blueprintcss

里面包含了form.css, grid.css, ie.css, reset.css, typography.css, print.css, screen.css。部分功能和yui差不多,我会在接下来的项目中用到blueprintcss,到时会另外撰文详细的介绍一下。

 相关资料

1.  blueprintcss -- http://code.google.com/p/blueprintcss/

2.  YUI(The Yahoo! User Interface Library) -- http://developer.yahoo.com/yui/

99%的相遇与地铁有关

 kangkangma | 07 十一月, 2007 22:26

    今天下午,在星巴克,规划着我接下来一段时间的努力方向。抬起头,喝了口咖啡,朝窗外望了随意的望了一眼。我初中时暗恋的MM穿着职业套装,那种非常帅气和她性格非常和谐的西装,从窗外快速的走过,进入了地铁站。这已经是最近几个月第二次遇到她了。上一次是在人民广场地铁站,我前往一号线,她走向二号线,迎面相遇,我们都认出了对方,但没有打招呼,对望的瞬间已擦肩而过。事实上,我们以前也没说过什么话,只是知道彼此的存在,仅此而已。似乎从高中毕业之后,我们就没有遇到过。地铁是个神奇的东西,相遇基本上都与地铁有关。

    每次找工作,公司在地铁附近是必要条件。 地铁是去的最多的地方。大家在地铁里行色匆匆,各奔东西。我们相遇,有时会一起乘一段,有时朝着相反的方向。地铁似乎是生命历程的一个缩影。在地下行驶很黑,只能对着车厢东张西望。在地上行驶时,可以看风景。当身边有朋友一起乘时,你会忘了风景,专注和朋友聊天。有的人会先下车,有的人比你晚。到了终点大家都会下车。当方向相反时,彼此淹没在人流中,不能回头。

    小学的时候,学校组织大家参观地铁,那时候只有一号线,坐到莘庄再坐回来,地铁上好像没什么人。现在,几乎天天都要乘坐拥挤不堪的地铁。很多东西,没有的时候好奇,有的时候躲也躲不掉。 

    下一站,会遇到谁?