php set_time_limit() 和 sleep()

我们知道,在php中可以 用函数 set_time_limit() 设定脚本执行时间。
但如下程序会造成意想不到的结果,

set_time_limit(5);
for($i=0;$i

Posted in php分享 |

perl 之reverse-sort

今天碰到了两个perl的排序函数 ,reverse & sort
例如:

@array = 1..10; #@array=1,2,3,4,5,6,7,8,9,10
print @array; # print out 1,2,3,4,5,6,7,8,9,10
@b = reverse(@array);
print @b; #print out 10,9,8…….1

@c = sort(@b);
print @c; # print out 1,10,2,3,4,5…..9 此排序顺序主要依照第一个字符,如1在2前面,1在10前面

Posted in perl |

ubuntu 下flash乱码

如果在ubuntu 下碰到flash乱码问题,可以使用以下命令
  |  copy code |? sudo cp /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.bak sudo rm /etc/fonts/conf.d/49-sansserif.conf

Posted in linux系统命令 |

linux script

linux下有很多有意思的小东东~~ 今天俺要介绍的东东叫script ,可以将 命令行操作录像~
  |  copy code |? tiedan@localhost ) script -t 2>demoScript started, file is typescripttiedan@localhost ) echo "Hello world"到这里可以 control+D 退出tiedan@localhost ) scriptreply demo
哈哈哈 , 好玩吧? 还等什么 快快试试吧~~~

Posted in 生活随笔 |

linux strace 命令

strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。
  strace 显示这些调用的参数并返回符号形式的值。strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。
  下面记录几个常用 option .
  1 -f -F选项告诉strace同时跟踪fork和vfork出来的进程
  2 -o xxx.txt 输出到某个文件。
  3 -e execve 只记录 execve 这类系统调用
  —————————————————
输出结果:
  
  brk(0) = 0×8062aa8
  brk(0×8063000) = 0×8063000
  mmap2(NULL, 4096, PROT_READ, MAP_PRIVATE, 3, 0×92f) = 0×40016000
  
  每一行都是一条系统调用,等号左边是系统调用的函数名及其参数,右边是该调用的返回值。

Posted in 生活随笔 |

apache 虚拟主机 403 Forbidden

apache 虚拟主机 403 Forbidden

Posted in linux系统命令 |

北京地铁总结(转)

苹果园总站:车门一开,座位分分钟搞定,一秒钟前还空着呢,眨眼你就发现除了自己,别人都有座儿了。不想等下趟车、着急走的,赶紧在门边、车厢中间儿占好位置,就跟挖战壕备战塞的。紧急集合我不是没练过,可在这站,您光有素质还不成,还不能要颜面,不然您就塌实当门神。其实咱们一个大老爷们,不老不少的,坐不坐的能有啥啊?别介,您要这么想就错了,咱虽然不怕挤,但咱也不喜欢挤啊~~关门发车,车站上一片等座儿的人目送您去参战。
  
  古城站:继续备战。把剩下的有利地形牢牢控制住。虽然座位早已经没有了,但抢个不被挤死的地方仍然很重要。
  
  八交游乐园站:车门一开,谁都不急上,彼此都“谦让”的让别人先上。先别为祖国的精神文明建设感到惊喜,等下站您就明白了。
  
  八宝山站:车一停,门开了,可开的另外一侧的门。上一站最后上的,这时候就成为最里面的人了,任门口风起云涌,他已经岿然不动了。
  
  玉泉路站:黑云压城!奇迹开始出现:看上去明明已经塞满了的车厢,10几秒的功夫就把门外的上班族们塞到了肚子里。整个车厢的空气明显污浊,温度开始上升,血压高的、没练过缩骨功的,建议从这里下车。
  
  五棵松站:这个站台的保安,是最对得起工资的。除了跟喊牲口一样让你抓紧、往里挤外,还不时的用手往里推。要说这人啊,真是可塑性极强的,一平方米站不够8个人,你都不好意思跟人家说“没地儿了,别挤了”。我曾经在这站把包里的一支钢笔挤弯了。
  
  万寿路站:真正的奇迹是在这里诞生的。门一开,还没上人呢,先掉下几个来。然后连同外面的保安,一起喊着号子往里边挤!这时候,但凡谁敢滋扭一声“哎哟~~往哪踩呢~?”,当时就有回音:“挤过车么你?嫌挤上去打车介!叫唤什么呀?”吃撑的感觉都有过吧?在你肚子已经歪了的时候,又端给你两大碗面条,嘴上说着不行了,眨眼就塞肚子里了。这站上来的,绝对属于英雄!这么多年了,我一直想象不出来,如果我从这站上车会是什么样儿……
公主坟站:不多说了!没见过天外飞仙的,可来此免费欣赏。
  
  军事博物馆站:黎明前的黑暗!秉住呼吸!
  
  木樨地站:曙光在前面!在这站想下车的,和生孩子有一拼。
  
  南礼士路站:时间凝固了。没人在这里上车,没人在这里下车,没人在这里说话,没人在这里大口喘气……
  
  复兴门站:胜利大逃亡!在这里听到最多的庆祝语言是:“下不下啊?不下别堵门儿嘿~”
  这里的收获是,可以重新呼吸了。但也仅仅如此而已,大口呼吸还是会晕的。
  座位?从来没想过。
  现在总算天冷了,地铁里的闷已经可以忍受。回想起整个夏天,实在是难耐的经历,不堪回首啊。周围全部是汗浸浸、湿哒哒的陌生人,紧紧贴着你,还不能有怨言。空气似乎完全没有流动,闷罐车听说过吧?谁说和平时期不能锻炼人的意志?
  
  下午下班从复兴门上车时,车门打开,呼的一下,那一股子气味,伴着涌出的人群,怎么形容呢?就是“人味儿”吧,直冲脑门。每次在车上我都恨不得把玻璃打碎,让车外的新鲜空气进来一点。
  
  坐得久了,也有一些经验,就是在最后一节车厢上车,守在门口,等到下一站车门打开,甬洞里会有一阵风吹入,让人有勇气坐到下一站。还有很多人,每一站会下车深呼吸一下,然后继续下面的旅程。
  这样上班好辛苦:城铁纪实– 回龙观人民力量大
  
  今天早上在霍营上车后,看到中间有空隙,就赶忙把自己往里塞了一下,结果不小心轻轻碰倒一位面色苍白秀发飘逸略有姿色的女士,她回过头来用哀怨加不满还有几分不屑的目光狠狠地瞪了我一眼,好像我给了她多大委屈。我很郁闷,难道小姐您是第一天坐城铁吗?对待这么老实厚道和蔼可亲的霍营人民竟然如此不友好,等下一站身手了得的回龙观人民上来了你就知道咋回事了。
  
  每次城铁到达回龙观的之前,我都在心里暗暗算一卦,看看能挤到什么程度。最严重的时候是被挤到不能呼吸,两只脚站在人家的鞋缝里,感觉身体在渐渐被压扁。在上下班高峰的城铁13号线列车里,无论男女老少黑白美丑,一捆捆互不相识的人都必须被迫保持着零距离的亲密接触,你的胳膊别着我的肘子,我的熊腰贴着你的虎背,你的马尾辫扫着我的酒糟鼻,一个人拿着报纸,有三四个脑袋围着看,他们不得不看,因为就在眼前。
  
  今天也不例外,回龙观人民就是力量大。车门一开,人潮就黑压压地涌了进来,被压迫的人们难免喊出几声“哎哟”“哇噻”,还有一个东北口音的大嗓门在车门处向大家呼吁:“再往里挤挤嗷,大家都挺着急上班地,来,一二!”然后车门“咯吱”一声终于关上了。人肉罐头车继续前行,下一站是龙泽,人也是巨多无比,其实要论实力,龙泽人民的力量应该比回龙观人民还要大,因为他们在这样已经挤得满满的车厢里还能再挤上若干人等,那是多么的不容易啊!尤其是那些付出了力量但是自己没挤上去而是把别人挤上去的同志,真是可敬。据一个住在回龙观的同事说,他挤城铁从来就没在第一茬挤上去过,等到下一茬,也是被别人挤上去的。
  
  有一次特别挤的时候,我脑海里突然闪现出电视剧《战争与回忆》里通往奥斯威辛集中营的运囚车,感觉颇有几分相似——拥挤的让人窒息。回龙观人民的力量曾经把我逼急过,我气若游丝地向他们大声喊“别上了,等下一辆吧”这样无关痛痒的话,现在就不是了,有时候挤着挤着居然把我挤笑了,想一想这一车都是什么人啊?80%大学本科以上学历,剩下的不是大专就是自考,都是上地、中关村、西直门一带的工作的初中级白领,一个个都是一幅衣冠楚楚张冠李戴的样子,抓一把散放着,绝对淑女的像淑女,绅士的像绅士,可是一挤在着黑压压的城铁里,一个个就全都斯文扫地狼狈不堪蓬头垢面了。
  
  当挤车肉体的痛苦上升为精神上的痛苦,就会产生买车的冲动。一位已经准备买车的朋友问我:你还在庸俗地挤公车吗?我说:是啊。在北京这座交通残废的城市里,就算你买了车又能斯文到哪去呢?只不过是从人挤人变成车挤车,好不到哪儿去,不过是一种痛苦演变成另一种痛苦而已。

Posted in 生活随笔 |

一男子为验证“信春哥,得永生”竟然跳楼~

据报道,广西一男子为向亲友们说明“信春哥,原地复活”的说法确实为真,竟不顾亲友们的阻拦,从自家3楼一跃而下,所幸并未身亡。
报道称,该李姓男子今年23岁,自从03年起就沉迷于网络游戏不能自拔,今年网上盛传“信春哥,原地满血复活”的说法,而且网络上信“春哥”的人竟然数量庞大,这对他产生了强烈的影响,久而久之,小李也加入了网络上“信春哥”的行列,甚至小李的QQ个性签名都是“信春哥,得永生”。小李之所以深信不疑,据他说,是因为他在玩网络游戏“魔兽世界”时,他扮演的人物曾经一度死亡之后原地复活了(满状态)。这一奇遇让小李对“春哥”更加深信不疑,因为这件事发生在他“信春哥”之后。
随着时间的推移,小李对“春哥”的迷信达到了疯狂的地步,他不断向他人阐述“信春哥”的好处,甚至和家人吵了起来,为了证明他说的是对的,小李不顾亲友阻拦,从自家3楼一跃而下。小李立即不省人事,当120赶到时,曾经一度测得小李心脏停止跳动,但是奇迹般的,小李在被抬上车后恢复了心跳,竟然没有死,全身只是受了一点骨伤而已。可谓幸运之极。
事后记者询问小李时,小李竟然说:“我相信经过这次事件之后,我的家人都不会再阻拦我信春哥了。”被问及鬼门关边捡回一条命的感受时,小李说:“当时我根本不会信自己会死,因为我信的是春哥。”小李坦承,自己被抬入救护车的瞬间,在天空上看到了类似“爷们”的云彩。
据精神病专家分析,小李患有中度的精神亢奋,为了达到自己的目的或者说服他人,可以做出令人意想不到的疯狂举动,对“春哥”的疯狂崇拜直接导致了小李跳楼的发生。小李跳楼生还,是运气太好,还是因为对“春哥”的信仰而产生的强大生存意志?这对我们而言依然是个谜,但是小李没有生命危险,这是最好的结果。
附:
信春哥,得永生
高考信春哥,必定上本科;
大学信春哥,期末不挂科;
毕业信春哥,两年开跑车;
工作信春哥,公款去吃喝;
退休信春哥,全家乐呵呵;
信耶稣,死后上天堂;
信释迦牟尼,死后上西方极乐;
信春哥,死后满状态原地复活;
信春哥,得永生

Posted in 生活随笔 |

[转]PHP 中巧用数组降低程序的时间复杂度

级别: 初级
王 丹丹, 高级软件工程师, IBM
2009 年 11 月 26 日
通常开发人员在写程序的时候,往往是把已经设计好或者构思好的运算逻辑,直接用编程语言翻译出来。程序能顺利编译通过,那是很令人高兴的事情。如果此时程序的运行时间还能接受,就会沉浸在写代码的成就感当中,常常在这个过程中忽略代码的优化。只有当程序运行速度受到影响时,才回过头去考虑优化的事情。本文主要是介绍在 PHP 的编程中,如何巧用数组来降低因多层循环而引起的时间复杂度的问题。特别是当程序需要多次与数据库交互时,用此方法来优化你的代码,将会带给意想不到的效果。
什么是算法的时间复杂度
时间复杂度是开发人员用来衡量应用程序算法优劣的主要因素。客观地说,算法的优劣除了和时间复杂度有关,还与空间复杂度密切相关。而随着设备硬件配置的不断提升,对中小型应用程序来说,对算法的空间复杂度的要求也宽松了不少。不过,在当今 Web2.0 时代,对应用程序的时间复杂度却有了更高的要求。
什么是算法的时间复杂度呢?概要来说,是指从算法中选取一个能代表算法的原操作,以原操作重复执行的次数作为算法的时间量度。影响时间复杂度的因素有两个:一是原操作的执行时间,二是原操作因控制结构引起的执行次数。要把算法的时间复杂度降下来,降低原操作的执行次数是较为容易的方法,也是主要方法。本文所讲述的方法,是通过巧用 PHP 的数组,降低原操作的执行次数,从而达到降低算法时间复杂度的需求,和大家分享。
算法的时间量度记作 T(n)=O(f(n)),它表示算法中基本操作重复执行的次数是问题规模 n 的某个函数 f(n),也就是说随着问题规模 n 的增大,算法执行时间的增长率和 f(n) 的增长率相同。多数情况下,我们把最深层循环内的语句作为原操作来讨论算法的时间复杂度,因为它的执行次数和包含它的语句的频度相同。一般情况下,对一个问题只需选择一种基本操作来讨论算法的时间复杂度即可。有时也需要同时考虑多种基本操作。
在 Web 开发中,通常一个功能的执行时间或响应时间,不仅仅跟服务器的响应能力、处理能力有关,还涉及第三方工具的交互时间,如对数据库的链接时间和对数据进行存取的时间。因而在选定原操作是,需要综合考虑应用程序各方面的因素,以最大影响程序执行时间的操作为原操作,来衡量算法的时间复杂度。也就是说,需要程序员在编写代码的时候,对重要操作的执行时间能有基本的认识。
回页首
常见程序中的时间复杂度分析
我们先看一个例子,假设 Web 程序的开发语言是 PHP,后台采用 DB2 数据库,PHP 通过 PEAR::DB 数据抽象层来实现对数据库的访问。
实例
数据库中有学生表 STUDENTS(见表 1),班级表 CLASSES(见表 2),学生成绩表 SCORES(见表 3),需要在 Web 页面中显示出本次考试数学成绩超过 90 分的同学姓名和所在班级。
表 1. STUDENTS Table
列名 描述
SID 学号
STUNAME 姓名
GENDER 性别
AGE [...]

Posted in 生活随笔 |

perl之关联数组

可以用单个赋值语句创建关联数组,如:
  |  copy code |?  %fruit = ("lemons",17,"apples",9,"oranges","none");
此语句创建的关联数组含有下面三个元素:
# 下标为lemons的元素,值为17
# 下标为apples的元素,值为9
# 下标为oranges的元素,值为none
注:用列表给关联数组赋值时,Perl5允许使用”=>”或”,”来分隔下标与值,用”=>”可读性更好些,上面语句等效于:
%fruit = (”lemons”=>17,”apples”=>9,”oranges”=>”none”);
从数组变量复制到关联数组
与列表一样,也可以通过数组变量创建关联数组,当然,其元素数目应该为偶数,如:
@fruit = (”apples”,17,”bananas”,9,”oranges”,”none”);
%fruit = @fruit;
反之,可以把关联数组赋给数组变量,如:
%fruit = (”grapes”,11,”lemons”,27);
[...]

Posted in 生活随笔 |

Get Adobe Flash playerPlugin by wpburn.com wordpress themes