2008-07-02 JingAn Shanghai China

2008年07月02日 Wednesday

20080702042.jpg200807020431.jpg

使用wmp给n95传送音乐

2008年03月14日 Friday

1.jpg2.jpg3.jpg4.jpg5.jpg6.jpg7.jpg8.jpg9.jpg7.jpg

访问http://nfader.z-host.ru,出入你的手机串码,就能得到你的手机安全码

2007年12月12日 Wednesday

访问http://nfader.z-host.ru,出入你的手机串码,就能得到你的手机安全码

仅限NOKIA手机

网络上最强50回帖

2007年11月27日 Tuesday

1、楼主:“无力回天”的上句是什么?

回复:脸先着地,无力回天。—不幸的小仙女

2、楼主:如果用你十年的寿命换取一个愿望,你会选择什么?

回复:还我10年寿命

 

3、楼主:漂亮姐姐教你切长长薄薄的黄瓜片(附送黄瓜素汤)

回复1:黄瓜还是整根好用
回复2:原来女生还能这样用黄瓜
回复3:黄瓜二次利用~
回复4:期待LZ继续示范片切香蕉、茄瓜…

4、楼主发布世界最短的小说:

男:“疼么?”
女:“嗯!”
男:“算了?”
女:“别!”

 

  回复:
一、《下面》一女人对一男人说:来我家吧,我下面给你吃。
二、《请客》男人对女人说:我请你吃饭吧?女人答:不了,改日吧。

5、楼主问:几个月没和老婆ML了,今天做了他说没感觉,怎么办啊?

 

  回复:很明显,这2个月里,她爱上了黄瓜。

 

6、楼主问:想问问各位姐妹,对于BF和前女友一起买的留下的东西,比如对戒,项链,手环一类的,是留着还是扔掉?扔了实在是……挺贵的东西……不仍看着就闹心!

 

  回复:他的前男友你不也在用吗?

 

7、楼主问:黑色保险套的真正用途是什么?

 

  回复:黑色TT确实是跟黑女人ML时用的,不过是先关了灯做做完后开灯吓唬黑女人“呀,你掉颜色了!”

 

8、楼主:多少人收藏了女朋友的第一次的落红?进来签名。

 

  回复:我没有收藏.我只记得一切都发生在那个原本我都觉得不起眼花坛里。。。俗话说:落红不是无情物化做春泥更护花。。。

 

9、楼主:生气的时候你们都怎么发泄的?

 

  回复:*的一手好湿

10、楼主:老婆做了小姐,我该怎么办?

回复:和谐社会,要想生活过的去,头上就得有点绿。

11、楼主:我的老版空间进不去,到现在都没解决,而现在新版空间也是这样子,版面内容乱七八糟,怎么回事啊,都没人来解决的。

 

  回复:可以进啊,你不要紧张,尽量放松。

12、楼主:谁知道仙人和仙人掌到底有什么关系啊?

 

  回复:人 黄瓜
仙人 仙人掌

 

13、楼主:一个让我郁闷了二十多年的问题,现在随便进了一间看不到太阳的屋子,我是没办法指出东南西北的而其他有的朋友几乎是完全正常的,为什么存在这么大的差异,啥原因造成了这种现象?有没有解决的办法,期待专业人士指导。

 

  回复:部分女人会缺乏方向感,我曾经有个女友进了房间后,我指着床说你躺下她扭扭捏捏得趴在了床上。

14、楼主发套图《创意电灯组合》

 

  回复:嗯寓意深刻,现代人往往沉迷于插头插入插座不断的活动,却忘了初衷是为了点亮内心那盏爱情的灯

15、楼主问:怎么样让男朋友讨厌我,主动和我分手。智商高点儿的办法。

 

  回复:床下面放个小箱子,里面放些散钱,几个鸡蛋。

16、楼主召集你经历的又糗又好笑的事情。

 

  回复:昨天一个人问我,问南京市长是不是叫江大桥,我说不是。他说那我坐火车在南京过江的时候怎么看到一个广告牌上写著:南京市长 江大桥欢迎您!

17、我一天到晚老是放屁,睡觉时候也放,这是什么病?

 

  回复:缺守门员!治疗方法,塞一个哨子,即能引起自己强烈的耻辱感,也能警示他人,一个星期为一疗程,三个疗程即可康复,病情严重者可能会延长一个疗程。

18、楼主:女朋友的工资远高于我,我们的未来?

 

  回复:别怕,在夜生活上,强过她!!!

 

19、楼主:在入冬的时候应该准备什么来过冬?

 

  回复:我也要准备好大好大一个洞(至少得足够大),不过他们用来藏身,我用来磨檫。

20、楼主YY:挖耳屎居然挖到这个!刚刚突然觉得耳朵里面好痒,拿起我的高级黄金耳勺开始享受挖耳朵的快感,挖着挖着,不知不觉已经过了一个小时,耳屎也堆了一大桌子,正准备收拾收拾去吃饭,突然耳道一紧,掉了一个黄澄澄的透明物体出来,我仔细一看,这不是黄钻嘛!赶紧开了电脑打开我的QQ安了上去,我靠,在Q-zone里买东西居然不要钱,哈哈哈~~~羡慕吧!
回复:你女朋友每个月都飙红钻 是吧!

21、楼主:巴基斯坦和卡巴斯基到底是什么关系??

 

  回复:有基巴关系

22、楼主:为什么动物发情都在春天呢?

 

  回复:春天 = 三人日二人

23、楼主:有些女人喜欢穿暴露的衣服的原因是什么?

 

  回复:理论上来说 是为了接受更多的日光照射
(注:隐晦)

 

24、我的狗喜欢上猫怎么办?

 

  回复:从此抓耗子不再是多管闲事!

25、楼主发照片:新人,你们看我帅么?

 

  回复:楼主好人,我终于有活下去的理由了

 

26、楼主:我的择偶要求只能当二奶才能实现吗?

回复:子日:没钱你不干,有钱不干你,滚蛋~

27、楼主:老人遛狗时倒地猝死,小狗护主不许民警靠近。

 

  回复:人的悲哀不在于不如狗,而是认为自己比狗强很多!

 

28、楼主:我被蜘蛛咬了,会不会变成蜘蛛侠啊?

 

  回复1:被黑人咬了一口 会不会变成黑侠啊?
回复2:我被雷霹过,现在是闪电侠~~~
回复3:弱弱的问一句。。。我也被电劈过。。。为虾米变成沈殿霞

29、楼主:我见到鬼后说的一句话….鬼都无语了
某天深夜,偶起来上厕所,见一透明状东西左忽右闪~
吾问:你是鬼?
鬼曰:恩那
吾:QQ号多少?
鬼:…..

 

  回复:某天深夜,偶起来上厕所,见一透明状东西左忽右闪~
吾问:你是鬼?
鬼曰:恩那
吾:变个大便让我看看
鬼:…..

30、楼主:想开一家精神病院,急召八个字的广告词。选中后我会表示真诚感谢的。如果将来赚钱了,算你股份啊!

回复1:全国统招,宽进严出。

 回复2:凡来者送月球土地

31、楼主:大家放A片的文件夹叫什么名字?

回复1:英语听力
回复2:动物世界-原始的本能
回复3:过把瘾剧场,这是我在我男朋友电脑里不小心看到的,哈哈
回复4:记得有一个哥们是叫“摇杆驱动程序”,那一个才叫强!

32、楼主:气愤!你们这些无知的非处女,都给我去死吧!
女孩子们,你们知道爱人心中什么是世界上最脏的东西吗?
这个东西就是你的前男友在你身体里留下的精液!!哪怕其实早已经洗干净了,可惜这个最肮脏的东西却曾在这个男孩子心里最宝贵的地方停驻过,储存过,快乐的游曳过,放肆的入侵过。

 

  回复:得带TT就没有留下精液了..BS不爱带TT的。

 

33、楼主:女朋友长的丑,带出去有压力,苦恼!

回复:LZ,你女友也是这样想你的。

 

34、楼主:当你晚上一觉醒来,发现身边躺着的是一丝不挂的贝克汉姆,你会怎么办?

回复:怎么可能?那昨晚我上的是谁呢?分明是个女滴~~~~~汗~~~~~

35、楼主:我是非处女,但我并不比你卑贱。

回复:那句话怎么说来着?
我可以接受你在流氓的身体下面拼死反抗,也不愿承受你在别的男人身下飘飘欲仙。
我想说的是,男人在乎的,不是那层膜,你们女人,永远不懂。

36、楼主:说我帅的悬赏100积分大家快顶!

 

  回复:我不会为了100积分出卖我的灵魂的~

 

37、楼主:过年想换一台DVD,最好是又能放DVD,又可以放VCD的,请各位大侠指点一下哈!

 

  回复1:过年想换一台手机,最好是又能打电话的,又可以发短信的,请各位大侠指点一下哈!
回复2:过年想换一个工作,最好是又能上班,又可以下班,请各位大侠指点一下哈

38、楼主:震惊月薪只有区区几百美圆的工作,竟然真的有人愿意去做!

 

  回复:昨日有暴雨,精神病院院墙因年久失修,被雨水冲塌,事后发现逃走一人,望各方人士帮助寻找!PS:此人习惯性将美金当作日元

 

39、楼主:昨天的PP被骂做的吓人,今天发视频截图可以了8.!!!
回复:LZ求你了,昨天看见了你,今天又看见了你,让哥好好吃口饭行不,饿了两天了.

40、楼主:我是女滴,我要发我刚照的照片,艺术照,不喜无入!

回复:如果你足够自信,我想贬低你一下--女孩子天生才丽质,打扮水平不高的话要及时补课;如果你并不自信,我想鼓励你一下--天生一个仙人洞,肯定有人探头来。

41、照片帖:我和老婆,嘿嘿………
他们都说我笑的很Y D,肯定是嫉妒我

回复1:肯定是LZ的妹妹,楼主在这YY呢。中国人口已达13.0756亿,男女比是106:100,而LZ是那6个当中的
回复2:谁能证明这是你lp阿,除非有你们做夫妻间做的事的证据!!

42、楼主:社区像我这样的学历不多了吧?
我今年毕业了 扬大的学士学位
有照为证
虽然比不上什么清华,北大
但估计和你们比比绰绰有余了吧~~~~

回复:唉一个学士证就NB了等我拿出我的泡妞证、准生证还不吓死你!

43、楼主:大家谈谈自己打篮球时的绝招是什么?

回复1:偶最喜欢老汉推车
回复2:我的绝招是大风车…冰天雪地赤身裸体360度后空翻转体720度接跨下换手然后倒跪玻璃渣
回复3:眼神…………………….

44、楼主:孙悟空其实是个女的,有很多证据的:
①、孙悟空虽有定身法,居然从来不调戏美女
②、孙悟空从来都对帅哥没办法,比如二郎神和唐僧。对于小帅哥哪吒还调戏了几下。
……………….

回复1:怪不得她下龙宫借兵器时候其他的都不要,一眼就看上了伸缩自如的如意金箍棒.我一直都很费解.看了楼猪的分析,我不竟恍然大悟~
回复2:悟空爱穿虎皮超短裙,说明悟空不仅是女性,还是位性工作者。

 

45、照片帖:以前在网上看个贴子说把可乐罐斜立起来,觉得不够刺激,今天在家闲来无事,居然把鸡蛋立起来了~~

回复1:好好的不让鸡蛋睡个觉,折磨个什么劲呀你~~~
回复2:禽兽..连蛋也不放过..
回复3:楼主你应该把他们孵出来
回复4:建议楼主把题目改为我把蛋蛋竖起来了,等等。会有更好效果
回复5:靠,给我瓶502,我能把地球立起来

46、楼主:男人的背叛通常都是肉体上的,而女人却是精神和肉体的双重背叛

回复:很久以前,网络上流传着这么一句话,永远不相信那些流一个星期血还不死的动物。

47、楼主:既然”中央一套”被注册成避孕套商标,我想那么中央二套是不是可以注册成胸罩商标?

回复1:中央三套可以注册成比基尼的牌子!!!
回复2:中央十套可以被申请为手套或者五指袜的牌子
回复3:早有牛人提出 内裤可注册 “裆中央”
回复4:壮阳药叫中央一抬
回复5:还不如—-包二奶

48、楼主:弄那么大的乳房做什么?NND,实在是写不下去了!你们谁都别拦着我,我这就出门把悬挂在路边的那个丰乳广告牌给砸了!

回复:作一个让男人不能一手把握的女人

49、楼主:今天我爸和我嫂子居然打了我耳光,良心何在?喜欢李宇春有错吗?喜欢一个人有错吗?保护她不受伤害有错吗?你们的良心呢?你们还有良心吗?!

回复:今天我儿子在夸奖李宇春我上去就一个耳光:只准你喜欢芙蓉姐姐

50、楼主:我们刚刚交往就发生了关系,他对我承诺!他的承诺可信吗?

回复:女人一定要经得起谎言,受得起敷衍,忍得住欺骗,忘得了诺言,放得下一切,最后用笑来伪装掉下的眼泪——宁愿相信世界上有鬼也不要相信男人那张破嘴。

超强firefox的安全连接、代理服务器工具tor

2007年11月19日 Monday

p2p的代理,你可以通过任何一台装有tor的计算机来访问一个网站,很有可能你的每次点击都会从不同的计算机经过n个节点来传递,可以非常容易的藏匿你的行踪,给任何想要追踪和阻止你的人一个高高竖起的中指。

实际上ie也可以用这个代理。

tor 是一个软件项目,帮助你抵御流量分析, 流量分析是一种对网络的监视行为,威胁到个人的自由与隐私、 商业活动与业务关系的保密和国家的安全。Tor 加密你的通信, 将其通过一个由遍及全球的志愿者运行的中继(relay)所组成的分布式网络传递, 以此来保护你的安全。Tor 能与现有的许多应用程序配合工作,包括 Web 浏览器、 即时通讯客户端、远程登录和基于 Internet 的 TCP 协议的其他应用程序。

tor官方网站http://www.torproject.org/

注意:vidalia-bundle-0.1.2.17-0.0.14.exe安装包 中包含的torbutton不支持firefox2.0,需要到https://addons.mozilla.org/en- US/firefox/addon/2275去下载安装下载TOR(洋葱头)软件包.
点击这里直接下载(建议使用迅雷下载)

CSS兼容IE6,IE7,FireFox【转】

2007年11月07日 Wednesday

CSS兼容IE6,IE7,FireFox之一【转的点这里,可达来源页面】

关于CSS对各个浏览器兼容是个非常让人头疼的事情了, 网络上的教程遍地都是.今天在discuz.net上发现了一篇不错的东西,就转载过来和大家共享.可以当作CSS兼容IE6,IE7,FireFox典范了,值得去记录下。发现自己很久没有转载东西。

注:IE都能识别*;标准浏览器(如Firefox,Opera,Netscape)不能识别*;IE6能识别*,但不能识别 !important,IE7能识别*,也能识别!important;FF不能识别*,但能识别!important;

写两句代码来控制一个属性,区别Firefox与IE6:
background:orange;*background:blue;

//这一句代码写出来时,你用firefox或其它非IE浏览时,会发现,写了该代码的区域背景是橙色的,如果用IE浏览,却是蓝色的,这是因为IE都能识别*;标准浏览器(如Firefox,Opera,Netscape)不能识别*;

写两句代码来控制一个属性,区别IE7与IE6:
background:green !important;background:blue;

//这一句代码写出来时,你用IE7浏览,会发现,写了该代码的区域背景是绿色的,如果用IE6浏览,却是蓝色的,这是因为IE7能识别! important*,一但识别了,就执行,忽略了后面的那一句,但IE6却不能识别!important,所以前面部分跳过,直接执行了后半部份。

写两句代码来控制一个属性,区别Firefox与IE:
background:orange; *background:green;

//这一句代码写出来时,你用Firefox浏览,会发现背景是橙色的,而IE里却是绿色的,很简单,因为Firefox不能识别*,而IE6,IE7都可以识*

写三句代码来控制一个属性,区别Firefox,IE7,IE6:
background:orange;*background:green !important;*background:blue;

//这一句会使在Firefox在,背景呈橙色,IE7中为绿色,IE6中为蓝色,道理和前面一样,Firefox不能识别*,所以后面两句都不执 行,直接执行第一句,IE7当然也能执行第一行代码,但是因为第二句,他也能识别,所以就执行了第二句代码,把前面的效果给过滤了,而最后一句,IE7是 不能识别的。IE6不能识别!imprtant,本来运行了第一句代码了,第二句不能识别,那就理所当然的执行了最后一句。

注意事项:

  1、float的div一定要闭合。

例如:(其中floatA、floatB的属性已经设置为float:left;)

 

  1. < #div id=”floatA” >
  2. < #div id=”floatB” >
  3. < #div id=”NOTfloatC” >

这里的NOTfloatC并不希望继续平移,而是希望往下排。
这段代码在IE中毫无问题,问题出在FF。原因是NOTfloatC并非float标签,必须将float标签闭合。

 

  1. < #div class=”floatB”>
  2. < #div class=”NOTfloatC”>

之间加上

 

  1. < #div class=”clear”>

这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。
并且将clear这种样式定义为为如下即可:

 

  1. .clear{clear:both;}

此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;
当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就达到了兼容。
例如某一个wrapper如下定义:

 

  1. .colwrapper{overflow:hidden;zoom:1;margin:5px auto;}

2、margin加倍的问题。

设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。
解决方案是在这个div里面加上display:inline;
例如:

 

  1. < #div id=”imfloat”>

相应的css为

 

  1. #IamFloat{
  2. float:left;
  3. margin:5px;/*IE下理解为10px*/
  4. display:inline;/*IE下再理解为5px*/}

3、关于容器的包涵关系

很多时候,尤其是容器内有平行布局,例如两、三个float的div时,宽度很容易出现问题。在IE中,外层的宽度会被内层更宽的div挤破。一定要用Photoshop或者Firework量取像素级的精度。

4、关于高度的问题

如果是动态地添加内容,高度最好不要定义。浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。(似乎有时候不会自动往下撑开,不知道具体怎么回事)

5、最狠的手段 - !important;

如果实在没有办法解决一些细节问题,可以用这个方法.FF对于”!important”会自动优先解析,然而IE则会忽略.如下
.tabd1{
background:url(/res/images/up/tab1.gif) no-repeat 0px 0px !important; /*Style for FF*/
background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}
值得注意的是,一定要将xxxx !important 这句放置在另一句之上,上面已经提过

常见兼容问题:

  1.DOCTYPE 影响 CSS 处理

2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行

3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中

4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width

5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式

6.div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行

7.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以

8.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。

9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:
div{margin:30px!important;margin:28px;}
注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:
div{maring:30px;margin:28px}
重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

10.IE5 和IE6的BOX解释不一致
IE5下
div{width:300px;margin:0 10px 0 10px;}
div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改
div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}
关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!:)

11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义
ul{margin:0;padding:0;}
就能解决大部分问题

CSS在IE6,IE7,FIREFOX中的区别【转的,点这里可达来源页面】

第一种,是CSS HACK的方法

 

  1. height:20px; /*For Firefox*/
  2. *height:25px; /*For IE7 & IE6*/
  3. _height:20px; /*For IE6*/
  4. 注意顺序。
  5. 这样也属于CSS HACK,不过没有上面这样简洁。
  6. #example { color: #333; } /* Moz */
  7. * html #example { color: #666; } /* IE6 */
  8. *+html #example { color: #999; } /* IE7 */

第二种是使用IE专用的条件注释

 

  1. <!– 其他浏览器 –>
  2. <link rel=”stylesheet” type=”text/css” href=”css.css” />
  3. <!–[if IE 7]>
  4. <!– 适合于IE7 –>
  5. <link rel=”stylesheet” type=”text/css” href=”ie7.css” />
  6. < ![endif]–>
  7. <!–[if lte IE 6]>
  8. <!– 适合于IE6及一下 –>
  9. <link rel=”stylesheet” type=”text/css” href=”ie.css” />
  10. < ![endif]–>

第三种css filter的办法,以下为经典从国外网站翻译过来的。

 

  1. 新建一个css样式如下:
  2. #item {
  3. width: 200px;
  4. height: 200px;
  5. background: red;
  6. }
  7. 新建一个div,并使用前面定义的css的样式:
  8. <div id=”item”>some text here</div>
  9. 在body表现这里加入lang属性,中文为zh:
  10. <body lang=”en”>
  11. 现在对div元素再定义一个样式:
  12. *:lang(en) #item{
  13. background:green !important;
  14. }
  15. 这样做是为了用!important覆盖原来的css样式,由于:lang选择器ie7.0并不支持,所以对这句话不会有任何作用,于是也达到了ie6.0下同样的效果,但是很不幸地的是,safari同样不支持此属性,所以需要加入以下css样式:
  16. #item:empty {
  17. background: green !important
  18. }
  19. :empty选择器为css3的规范,尽管safari并不支持此规范,但是还是会选择此元素,不管是否此元素存在,现在绿色会现在在除ie各版本以外的浏览器上。
  20. 对IE6和FF的兼容可以考虑以前的!important</body>

1秒将你的电脑变成ftp服务器[zt]

2007年11月05日 Monday

1秒种将你的电脑变成ftp服务器介绍:
此程序无需安装。打开后,FTP文件夹默认位置是C:\TEMP
更改FTP文件夹位置:断开FTP服务,然后自行选择位置。
比如你的IP是222.71.75.106 那么你的FTP地址就是: FTP://222.71.75.106

连接FTP://222.71.75.106就可以下载你放在FTP文件夹里的东西了.
你的电脑变成ftp服务器了.想让朋友与你共享你的资料,把你的FTP地址给他,让他自己下载吧,省着你手动给他传了.

一定注意:我刚刚测试了下,发现这个软件没有权限设置的功能,也就是说,别人可以删除或新建文件

一定是要给朋友们用的,绝对不能对外公开用

[点此下载]

女人请听好,男人有话说[ZT]

2007年10月31日 Wednesday

1. 你觉得自己胖,那就是胖,不要问我们,我们拒绝回答。

2.不要睡懒觉,多做运动。

3.不要什么事情都把随便把随便 放在嘴边。

4.没事多打扫家里,不要搞的跟狗窝一样。

5. 善用马桶座,用完随手将它立起来!

6. 不要剪去长发,长发永远比短发迷人,男人害怕结婚很大的原因是婚後女人突然剪成短发,而你仍不得不与她朝夕相处。

7. 不要冀望在生日、情人节、周年纪念发现完美礼物。

8. 问了你不要答案的问题,你就会得到你不要的答案。

9. 请终生记得我们有时候并不在想你,我们得养家护口。

10. 除非你想讨论打球、当兵、政治等话题,否则不要问我们在想什麽!

11. 星期日=运动,就像月圆和涨潮一样固定,请勿改变!

12. NO!购物不是运动!免谈!

13. 我们要一起出门时,你穿什麽都很好,真的!

14. 你绝对有足够的衣服了。

15. 你已经有太多鞋子了!

16. 哭泣是恐吓勒索的行为,有话直说,不要搞这种小动作,常了会腻的。

17. 你的前任男友一无是处,我们不想听他的消息,更不愿意作对比!

18. 想要怎样就直说吧!巧妙的暗示没有用、强烈的暗示没有用、明显的暗示也没有用,说—出—来!

19. 天知道今天是什麽日子?我们从来不在日历上做记号!

20. 站着尿尿确实比较高难度,我们偶尔难免会失去准头。

21. 大部份男人只有两双鞋,我们无法在一大堆鞋中挑出适合你衣服的一双。

22. 「Yes」和「No」是对付所有问题的好答案。

23. 若你须要人帮忙解决问题,尽管来找我们,若你须要的是「同情」,请找你们的手帕交。

24. 持续好几个月的头痛绝对有问题,去看医生吧!

25. 开车前检查你的油箱!

26. 日剧最好留给日本人看。

27. 不要想欺瞒什麽,我们宁愿无能也不愿无知。

28. 不要争论半年前我们讨论过的议题,我们所有的对话均应在七天後自动失效。

29. 你若无法打扮成绝世美女,就不能期望我们表现得像最佳男主角。

30. 如果一件事可以有两种解释,而其中一种令你不舒服,那我们的意思是另外一种。

31. 让我们用眼睛瞟美眉吧,这是天生的!

32. 不想精灵出现就不要碰那口灯!

33. 你可以告诉我们应该做什麽「或」你希望怎麽做,不要同时说两种。

34. 有话尽可能在广告时间内说完。

35. 哥伦布不需要人指引方向,我们也不需要。

36. 穿着暴露的女人没有权利抱怨被人家盯着看。

37. 女人应多穿暴露的衣服,因为我们都喜欢盯着看。

38. 我们的关系永远不可能像刚开始一样,而蜜月期早就结束了!

39. 男人的辨色力像电脑控制台一样,只设定十六种颜色,你们说的「水蜜桃」是一种水果,不是一种颜色。

40. 「雨後的天空」也不是一种颜色的名称。

41. 在上班的时间里不要没事老打电话,很烦的,工作就是工作,不要打搅我。

42. 「啤酒」带给我们的兴奋就像「新皮包」带给你们的一样。

43. 既然这是「我们的」房子,为什麽「我的」东西会被扔到壁橱、阁楼、地下室?

44. 我们永远不会读心术,缺乏这项能力并不能证明我们不关心你。

45. 当我们问你「怎麽了?」而你回答「没事」,我们就当做没事,即使明知你在说谎,我们也绝不争论!

46. 听到旧情人消息时,我们会有性幻想,不过别担心,你和她都会同时出现在幻想。

47.男人也是人啊,也是需要呵护跟安慰的。

48. 对任何人都应该尊重不管他与你是否沾亲带故,要饭的他也是人啊。

json简单入门【转】

2007年10月30日 Tuesday

PS:转载,出处不详

JSON JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。

JSON的规则很简单: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。具体细节参考http://www.json.org/json-zh.html

举个简单的例子:

js 代码

 

  1. function showJSON() {
  2. var user =
  3. {
  4. “username”:“andy”,
  5. “age”:20,
  6. “info”: { “tel”: “123456″, “cellphone”: “98765″},
  7. “address”:
  8. [
  9. {“city”:“beijing”,“postcode”:“222333″},
  10. {“city”:“newyork”,“postcode”:“555666″}
  11. ]
  12. }
  13. alert(user.username);
  14. alert(user.age);
  15. alert(user.info.cellphone);
  16. alert(user.address[0].city);
  17. alert(user.address[0].postcode);
  18. }

这表示一个user对象,拥有username, age, info, address 等属性。

同样也可以用JSON来简单的修改数据,修改上面的例子

js 代码

 

  1. function showJSON() {
  2. var user =
  3. {
  4. “username”:“andy”,
  5. “age”:20,
  6. “info”: { “tel”: “123456″, “cellphone”: “98765″},
  7. “address”:
  8. [
  9. {“city”:“beijing”,“postcode”:“222333″},
  10. {“city”:“newyork”,“postcode”:“555666″}
  11. ]
  12. }
  13. alert(user.username);
  14. alert(user.age);
  15. alert(user.info.cellphone);
  16. alert(user.address[0].city);
  17. alert(user.address[0].postcode);
  18. user.username = “Tom”;
  19. alert(user.username);
  20. }

JSON提供了json.js包,下载http://www.json.org/json.js 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。

js 代码

 

  1. function showCar() {
  2. var carr = new Car(“Dodge”, “Coronet R/T”, 1968, “yellow”);
  3. alert(carr.toJSONString());
  4. }
  5. function Car(make, model, year, color) {
  6. this.make = make;
  7. this.model = model;
  8. this.year = year;
  9. this.color = color;
  10. }

可以使用eval来转换JSON字符到Object

js 代码

 

  1. function myEval() {
  2. var str = ‘{ “name”: “Violet”, “occupation”: “character” }’;
  3. var obj = eval(’(’ + str + ‘)’);
  4. alert(obj.toJSONString());
  5. }

或者使用parseJSON()方法

js 代码

 

  1. function myEval() {
  2. var str = ‘{ “name”: “Violet”, “occupation”: “character” }’;
  3. var obj = str.parseJSON();
  4. alert(obj.toJSONString());
  5. }

下面使用prototype写一个JSONajax例子。

先写一个servlet (我的是servlet.ajax.JSONTest1.java)就写一句话

java 代码

 

  1. response.getWriter().print(“{ \”name\”: \”Violet\”, \”occupation\”: \”character\” }”);

再在页面中写一个ajax的请求

js 代码

 

  1. function sendRequest() {
  2. var url = “/MyWebApp/JSONTest1″;
  3. var mailAjax = new Ajax.Request(
  4. url,
  5. {
  6. method: ‘get’,
  7. onComplete: jsonResponse
  8. }
  9. );
  10. }
  11. function jsonResponse(originalRequest) {
  12. alert(originalRequest.responseText);
  13. var myobj = originalRequest.responseText.parseJSON();
  14. alert(myobj.name);
  15. }

prototype-1.5.1.js中提供了JSON的方法,String.evalJSON(), 可以不使用json.js, 修改上面的方法

js 代码

 

  1. function jsonResponse(originalRequest) {
  2. alert(originalRequest.responseText);
  3. var myobj = originalRequest.responseText.evalJSON(true);
  4. alert(myobj.name);
  5. }

JSON还提供了java的jar包 http://www.json.org/java/index.html API也很简单,下面举个例子

在javascript中填加请求参数

js 代码

 

  1. function sendRequest() {
  2. var carr = new Car(“Dodge”, “Coronet R/T”, 1968, “yellow”);
  3. var pars = “car=” + carr.toJSONString();
  4. var url = “/MyWebApp/JSONTest1″;
  5. var mailAjax = new Ajax.Request(
  6. url,
  7. {
  8. method: ‘get’,
  9. parameters: pars,
  10. onComplete: jsonResponse
  11. }
  12. );
  13. }

使用JSON请求字符串就可以简单的生成JSONObject并进行解析,修改servlet添加JSON的处理(要使用json.jar)

java 代码

 

  1. private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {
  2. String s3 = request.getParameter(“car”);
  3. try {
  4. JSONObject jsonObj = new JSONObject(s3);
  5. System.out.println(jsonObj.getString(“model”));
  6. System.out.println(jsonObj.getInt(“year”));
  7. } catch (JSONException e) {
  8. e.printStackTrace();
  9. }
  10. response.getWriter().print(“{ \”name\”: \”Violet\”, \”occupation\”: \”character\” }”);
  11. }

同样可以使用JSONObject生成JSON字符串,修改servlet

java 代码

 

  1. private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {
  2. String s3 = request.getParameter(“car”);
  3. try {
  4. JSONObject jsonObj = new JSONObject(s3);
  5. System.out.println(jsonObj.getString(“model”));
  6. System.out.println(jsonObj.getInt(“year”));
  7. } catch (JSONException e) {
  8. e.printStackTrace();
  9. }
  10. JSONObject resultJSON = new JSONObject();
  11. try {
  12. resultJSON.append(“name”, “Violet”)
  13. .append(“occupation”, “developer”)
  14. .append(“age”, new Integer(22));
  15. System.out.println(resultJSON.toString());
  16. } catch (JSONException e) {
  17. e.printStackTrace();
  18. }
  19. response.getWriter().print(resultJSON.toString());
  20. }

js 代码

 

  1. function jsonResponse(originalRequest) {
  2. alert(originalRequest.responseText);
  3. var myobj = originalRequest.responseText.evalJSON(true);
  4. alert(myobj.name);
  5. alert(myobj.age);
  6. }

参考

http://www.json.org/js.html

http://www.blogjava.net/Jkallen/archive/2006/03/28/37905.html

http://www.json.org/

http://www.prototypejs.org/learn/json

http://www.json.org/java/index.html

http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/index.html

prototype中ajax在firefox中不运行的问题。

2007年10月30日 Tuesday

在prototype的API文档中:

new Ajax.Request(‘/your/url’, {

onSuccess: function() {

var json = this.evalJSON(); // Uselessly evals a second time!

// Remainder of the code

}

});

new Ajax.Request(‘/your/url’, {

onSuccess: function(transport, json) {

// Remainder of the code

}

});

 

第二种貌似不能在firefox2.x中运行。

MS IE中onunload不执行替代方案

2007年10月29日 Monday

    if (window.attachEvent) window.attachEvent(’onunload’,function(){…});

LAMP(Linux+Apache+MySQL+PHP)服务器的性能优化【转】

2007年10月22日 Monday

转载来源:http://www.ccw.com.cn/server/yyjq/htm2006/20060627_193322.htm 目前LAMP (Linux + Apache + MySQL + PHP) 近几年来发展迅速,已经成为Web 服务器的事实标准。LAMP

 

这个词的由来最早始于德国杂志“c’t Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件虽然并不是开开始就设计为一起使用的,但是,这些开源软件都可以很方便 的随时获得并免费获得。这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普便。为了改善不同组件 之间的协作,已经创建了某些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了“LAMP stack”的产品。这些产品组成了一个强大的Web应用程序平台。“LAMP stack”中的每一个组件都是一个FOSS(免费或者开源软件/Free or Open Source Software)的实例。FOSS方法的好处有三个方面。第一,FOSS软件的性质意味着应用程序可以免费下载,能够让更广泛的人们不用付费就可以使用 这个应用软件。这种免费的方式对于广大用户特别具有吸引力。这些用户如果不使用免费的软件就需要付费购买“专业”的商用软件工具。这在制作网站方面通常是 一种昂贵的步骤。FOSS许可证是开放式的,因此对于基于FOSS技术的应用软件的使用和限制都非常少。不需要为软件的发布支付任何许可证费就可以开发和 应用基于LAMP的工程。因此,这对业余爱好者和专业人员都非常有吸引力。FOSS技术(包括LAMP)的增长和使用的主要原因是因为用户能够访问其资 源,修复故障和改善应用软件的性能都非常容易。与开源软件许可证结合在一起,这种方法为许多企业简化了开发过程,并且为企业提供了专有软件或者商业软件的 限制中所没有的灵活性。本文我们将介绍基于LAMP组合的服务器的性能优化。

一、Linux主机性能优化

1.清理服务器磁盘碎片:

不论Linux文件系统采用什么文件格式(ext3、JFS、XFS、ReiserFS )、何种类型的硬盘(IDE 、SCSI),随着时间的推移文件系统都会趋向于碎片化。ext3、JFS等高级文件系统可以减少文件系统的碎片化,但是并没有消除。在繁忙的数据库服 务器中,随着时间的过去,文件碎片化将降低硬盘性能,硬盘性能从硬盘读出或写入数据时才能注意到。时间长了会发现每个磁盘上确实积累了非常多的垃圾文件, 释放磁盘空间可以帮助系统更好地工作。Linux最好的整理磁盘碎片的方法是做一个完全的备份,重新格式化分区,然后从备份恢复文件。但是对于7×24小 时工作关键任务服务器来说是比较困难的。Kleandisk是一个高效的磁盘清理工具,它能把磁盘上的文件分成不同的”组”,比如把所有的”core”文 件归成一组(Group),这样要删除所有core文件时只要删除这个组就行了。core文件是当软件运行出错时产生的文件,它对于软件开发人员比较有 用,对于其他用户(比如电子邮件服务器)却没有任何意义。因此,如果没有软件开发的需要,见到core文件就可以将其删除。

2、开启硬盘DMA

现在使用的IDE硬盘基本支持DMA66/100/133(直接内存读取)但是Linux发行版本安装后一般没有打开,可以/etc/rc.d/rc.local 最後面加上一行: /sbin/hdparm -d1 –x66 -c3 -m16 /dev/hda 这样以后每次开机,硬盘的 DMA 就会开启,不必每次手动设定。添加前后你可以使用命令:hdparm -Tt /dev/hda 来测试对比一下。

3、调整缓冲区刷新参数

Linux内核中,包含了一些对于系统运行态的可设置参数。缓冲刷新的参数可以通过调整 /proc/sys/vm/bdflush文件来完成,这个文件的格式是这样的:

# cat /proc/sys/vm/bdflush

30 64 64 256 500 3000 60 0 0

每一栏是一个参数,其中最重要的是前面几个参数。第一个数字是在”dirty”缓冲区达到多少的时候强制唤醒bdflush进程刷新硬盘,第二个数字是每次让bdflush进程刷新多少个dirty块。所谓dirty块是必须写到磁盘中的缓存块。接下来的参数是每次允许bd flush将多少个内存块排入空闲的缓冲块列表。 以上值为RHEL 4.0中的缺省值。可以使用两种方法修改:

(1)使用命令

# echo “100 128 128 512 5000 3000 60 0 0″>/proc/sys/vm/bdflush

并将这条命令加到/etc/rc.d/rc.local文件中去。

(2)在/etc/sysctl.conf 文件中加入如下行:

vm.bdflush = 100 128 128 512 5000 3000 60 0 0

以上的设置加大了缓冲区大小,降低了bdflush被启动的频度,VFS的缓冲刷新机制是Linux文件系统高效的原因之一。

4、优化输入输出

I/O程序对Linux系统性能也是相当重要的,网络硬件I/O对服务器尤其重要。现在大多数Linux服务器使用10/100 Mb以太网。如果有较重的网络负载,则可以考虑千兆以太网卡。如果没有能力购买千兆网卡的话:可以使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这 项技术,在Linux中,这种技术称为Bonding。Bonding在Linux2.4以上内核中已经包含了,只需要在编译的时候把网络设备选项中的 Bonding driver support选中见图1。当然利用Bonding技术配置双网卡绑定的前提条件是两块网卡芯片组型号相同,并且都具备独立的BIOS芯片。

图1 Linux内核的Bonding driver support选项
然后,重新编译核心,重新起动计算机,执行如下命令:

#ismod bonding

#ifconfig eth0 down

#ifconfig eth1 down

#ifconfig bond0 ipaddress
#ifenslave bond0 eth0
#ifenslave bond0 eth1

现在两块网卡已经象一块一样工作了。这样可以提高集群节点间的数据传输.bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两块100兆 网卡作bonding,可大大提高服务器到交换机之间的带宽.但是需要在交换机上设置连接bonding网卡的两个子口映射为同一个虚拟接口。编辑 /etc/modules.conf文件,加入如下内容,以使系统在启动时加载Bonding模块。

alias bond0 bonding

options bond0 mode=0

“mode”的值表示工作模式,共有0、1、2和3四种模式,这里设定为0。Bonding工作在负载均衡(Load Balancing (round-robin))方式下,即两块网卡同时工作,这时理论上Bonding能提供两倍的带宽。Bonding运行在网卡的混杂 (Promisc)模式下,而且它将两块网卡的MAC地址修改为一样的。混杂模式就是网卡不再只接收目的硬件地址是自身MAC地址的数据帧,而是可以接收网络上所有的帧。

5、减少虚拟终端机的数量。

Linux安装后系统默认是6个虚拟终端机,也就是 CTRL+ALT F1~F6 那六个,作为服务器使用可以关掉其中四个,只留下 CTRL+ALT F1~F2,大约省下 4 Mbytes 的内存,但是这样一来,X-Window 会从原来的 CTRL+ALT F7 变成 CTRL+ALT F3 。 修改 /etc/inittab 中,将 mingetty 3 ~6 全部加上 # 字号 。

6. 关闭一些不用的服务

Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由 运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现的。如Web服务http等。同 时,守护进程完成许多系统任务,比如,作业规划进程crond、打印进程lqd等。有些书籍和资料也把守护进程称作:“服务”。关闭服务方法请查看笔者的 文章:深入理解Linux守护进程。链结:http: //www.ccw.com.cn/server/yyjq/htm2005/20050914_14ND5_1.htm 。

7.使用工具软件PowerTweak优化系统

Powertweak for linux0.99能够监视你的系统和网络连接,并且可以将你的系统设置为最佳。

软件主页: http://linux.powertweak.com/

软件安装:

#wegt http://prdownloads.sourceforge.net/powertweak/powertweak-0.99.2-1.i386.rpm

#wegt http://prdownloads.sourceforge.net/powertweak/powertweak-gtk-0.99.2-1.i386.rpm

#rpm –ivh powertweak-0.99.2-1.i386.rpm

#rpm –ivh powertweak-gtk-0.99.2-1.i386.rpm

其中powertweak-0.99.2-1.i386.rpm是主程序, powertweak-gtk-0.99.2-1.i386.rpm是KDE环境下的图形前端。程序安装后会自动添加到主选单的“系统工具中”,运行界面见图2。

图-2 powertweak性能优化程序

powertweak能够对X86构架处理器,芯片组,Voodoo等进行最优化设置的软件,支持大多数的中央处理器和芯片组,包括IntelAMD,与Cyrix,内置四种最佳化设定功能,可以自行设定要最优化的硬件(中央处理器、CD-ROM、PCI总线、硬盘、磁盘阵列)、内核(包括日志、安全、资源)、网络(包括ip、TCP、Core、 ICMP、Unix domain Routing、 Arp 、Token Ring)、虚拟文件系统、性能内存管理(页面分配、高速缓存、交换分区)。Powertweak是一个强大的系统性能调节软件。但是对于使用者要求比较高,许多选项要求你对Linux系统比较了解才能准确填写。

关于Apache、PHP、Mysql软件安装,我们建议安装它们的最新版本,并且从源码安装程序。虽然很多Linux发行版本(RedHat 、Suse、TurboLinux)有相应的rpm包, 但从源码编译安装程序,会适合自己的机器设置,我们一般会装到 /usr/local 目录下,这样易于管理。安装过程这里笔者就不介绍了。

二、Apache服务器检测和优化

1.Zend Performance Suite简介

对于Apache要把 PHP 编译其中,或者采用 DSO (动态共享对象)模式,不要采用 CGI 方式。采用DSO最重要的原因是效率。Apache是模块化设计的,所以它可以加载各种各样的服务器端脚本解释器来支持动态的网页。但是随着页面访问量的 增大,CGI已经不看重负,为了提高效率。所以选择把最常调用的模块编译成动态共享对象(DSO)。zend出品的 ZendPerformanceSuite,这是一个Apache服务器的性能测试和优化的工具。可以在它的主页注册并且免费下载。并且得到一个协议文 件。下载的软件包中有两个文件:主程序:ZendPerformanceSuite-3.6.0a-Linux_glibc21-i386.tar.gz 和协议文件:zend_performance_suite.dat

2.软件安装:

gunzip ZendPerformanceSuite-3.6.0a-Linux_glibc21-i386.tar.gz

tar vxf ZendPerformanceSuite-3.6.0a-Linux_glibc21-i386.tar

cp zend_performance_suite.dat /ZendPerformanceSuite-3.6.0

./install

(1)软件安装非常简单只要根据安装向导的提示操作即可,见图3.

图3 软件安装向导

3、Apache服务器的测试

(1)打开一个网络浏览器输入:http://www.cjh.com/ZendPerformanceSuite/login.php

然后输入密码即可进入软件的主界面。

(2)ZendPerformanceSuite的主界面分成四部分。见图4。

图4 软件的主界面

ZendPerformanceSuite软件包括四部分:“Fast Track”、“Console”、“FileView”、“Testing”。Fast Track是测试向导、Console是参数设置、FileView 显示存放的文件、Testing是测试命令。

(3)参数说明

其中“Console”部分比较重要。这里介绍一下它的主要选项:见图-3:

图5 软件的“Console”界面

在这个菜单中将要设置Apache服务器的各项参数:

“Modified File Detection”:自动检测文件类型,

“Filepath Identifiction”:全部文件深度,

“Accelerator memory”:加速内存容量,

“Memory Reclaim Threshold”:内存回收比例,

“Maximum Accelerated Files”:最大加速文件数量。

“Extensions For PHP Files”扩展文件类型,

“Dynamic Caching Enabled”是否支持动态缓存,

“Maximum Cache Size”最大缓存容量,

“Minimum Free Diskspace”:最小磁盘空间,

“Maximum Cached File Size”最大缓存文件大小,

“Default Cache Lifetime”缺省缓存文件存活时间,

“Default Dynamic Caching Conditions”:缺省缓存状态,

“Compress Files”是否压缩文件。根据你的Apache服务器情况配置“Console”中的参数,就可以测试了,目前 ZendPerformanceSuite支持“Performance Test”(性能测试)和“Compression Test”(压力测试)。

(4)压力测试

这里以压力测试为例,“Console”各项参数填写后就可以进行测试了,选择“Testing”菜单进行测试,结果见图-4。

图6 Apache服务器压力测试结果

可以看到测试数据以图形的数值两种方式在图-4中。性能测试的步骤和压力测试一样的,需要说明的是你需要通过修改“Console”菜单中的参数进行多次测试,最后找到符合你的Apache服务器最佳选项。按“Apply Change”按钮保存设置。

Zend Performance Suite 是一个可以大幅度提升Apache运行效率的软件包!它可以增强服务器的数据吞吐能力,节省服务器的资源消费,支持Linux,Solaris和FreeBSD。它可以减小服务器的负荷,减少页面的反应时间,减少数据库的负荷。增大使用者,文件压缩。缓冲的灵活配置,应用编程接口功能。

三、加速PHP

1.使用eaccelerator

我们上面的介绍Apache服务器的优化,如果您曾经浏览过 PHP 的网页时,或许会发现:怎么 PHP 的速度慢慢的,这是怎么一回事啊?PHP 不是号称速度上面的反应是很快速的吗?怎么会慢慢的呢?这是由于 PHP 的程序代码去调用了太多的函式库,而这些函式库每次调用都需要由硬盘读出来,有没有办法提升 PHP 的执行速度啊。如果我们可以将这些在硬盘里面的函式库先读到高速缓存中( Cache ),由于内存的速度可比硬盘快多了。如此一来的话,当然可以提升不少速度。这里我们介绍一款授权在 GPL 上面的可以对 PHP 程序代码进行快取并且予以优化的软件,那就是eaccelerator他的官方网站在:http: //www.arnot.info/eaccelerator/ 。目前版本:0.9.3 。

2、软件下载安装:

wget http://internap.dl.sourceforge.net/sourceforge/eaccelerator/eaccelerator-0.9.3.tar.bz2
tar jxf eaccelerator-0.9.3.tar.bz2

/usr/local/bin/phpize
./configure –enable-eaccelerator=shared –with-php-config=/usr/local/bin/php-config
make;make install

修改/etc/php.ini文件,加入以下内容:

extension=”/PATH/TO/eaccelerator.so”
eaccelerator.shm_size=”16″
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″

然后建立快存取数据目录:

mkdir /tmp/eAccelerator

chmod 0777 /tmp/eAccelerator

从新启动Apache服务器:

/etc/rc.d/init.d/httpd restart

通过lynx浏览器打开Web页面查看通过phpinfo()已经可以看到图7,就表示安装成功。

图7 eAccelerator启用

从图中可以看到:eAccelerator启用了。下面 使用ab命令:Apache HTTP 服务器性能测试工具,是一个测试你Apache http服务器的工具,你可以通过这个工具指定一个单位时间内向apache发出的请求数量来看看你的Apache和机器配合的性能如何。命令如下:

/home/apache/bin/ab -c 20 -n100 –w http://localhost/phpinfo >1.html

-c: 同时向服务器端发送的请求数目,默认状态下是一次只执行一个http请求。

-n: 执行一次测试会话的时候所发出的请求数目。

-w:打印输出结果到HTML表中,默认的表是两列n行白底黑框 。

ApacheBench)的测试数据的 requests per second (以下简称 rps)一项是指每秒服务器返回的页面数,经过比较使用了 eAccelerator 后网页速度明显加快了。图8 lynx浏览器的 HTML格式测试结果。

图8 HTML格式测试结果

2.使用Zend Optimizer

Zend Optimizer用优化代码的方法来提高PHP 4.0应用程序的执行速度。实现的原理是对那些在被最终执行之前由运行编译器(Run-Time Compiler)产生的代码进行优化。一般情况下,执行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。这意味着网站的访问者可以更快的浏览网页,从而完成更多的事务,创造更好的客户满意度。 更快的反应同时也意味着可以节省硬件投资,并增强网站所提供的服务。所以,使用Zend Optimizer,就等于提高了电子商务的盈利能力。Zend Optimizer能给PHP用户带来很多益处,特别是那些运营网站的人。快速运行PHP程序可以显著降低服务器的CPU负载,并可以减少一半的反应时 间,也就是从访问者点击链接到服务器开始读取页面之间的时间。

Zend Optimizer安装是傻瓜化的,安装向导会自动根据你的选择来修改php.ini帮助你启动这个引擎。

软件下载安装:

wget http://downloads.zend.com/optimizer/3.0.0/ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz

gunzip ZendOptimizer-3.0.0-linux-glibc21-i386.tar.gz

tar vxf ZendOptimizer-3.0.0-linux-glibc21-i386.tar

cd ZendOptimizer-3.0.0-linux-glibc21-i386

./install

图 9 Zend Optimizer安装向导

从新启动Apache服务器:

/etc/rc.d/init.d/httpd restart

打开Web页面查看通过phpinfo()已经可以看到图,就表示Zend Optimizer安装成功。

图 10 Zend Optimizer安装成功

然后可以使用ab命令进行再次测试。也可以使用Siege(http://www.joedog.org/siege/ )进行测试,它是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每 个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

四、Mysql优化

对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL and SQL Server。这两者最基本的相似之处在于数据存储和属于查询系统。如果你想建立一个.NET服务器体系,这一体系可以从多个不同平台访问数据,参与数据 库的管理,那么你可以选用SQL Server服务器。如果你想建立一个第三方动态网站,从这一站点可以从一些客户端读取数据,那么MySQL将是一个不错的选择。

1、编译和安装MySQL

通过你的系统挑选可能最好的编译器,你通常可以获得10-30%的性能提高。在Linux/Intel平台上,用pgcc(gcc的奔腾芯 片优化版)编译MySQL。然而,二进制代码将只能运行在Intel奔腾CPU上。 对于一种特定的平台,使用MySQL参考手册上推荐的优化选项。用你将使用的字符集编译MySQL。 静态编译生成mysqld的执行文件(用–with-mysqld-ldflags=all-static)并用strip sql/mysqld整理最终的执行文件。 注意,既然MySQL不使用C++扩展,不带扩展支持编译MySQL将赢得巨大的性能提高。

2、优化表

MySQL拥有一套丰富的类型。应该对每一列尝试使用最有效的类型。ANALYSE过程可以帮助你找到 表的最优类型:SELECT * FROM table_name PROCEDURE ANALYSE()。对于不保存NULL值的列使用NOT NULL,这对你想索引的列尤其重要。 将ISAM类型的表改为MyISAM。用固定的表格式创建表。

3、正确使用索引

索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表 的所有记录,直至找到符合要求的记录。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。
假设我们创建了一个名为people的表:

CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );

然后,我们完全随机把1000个不同name值插入到people表。

但是索引也是有缺点的,首先,索引要占用磁盘空间。通常情况下,这个问题不是很突出。但是,如果你创建每一种可能列组合的索引,索引文件体积的增长速度将远远超过数据文件。如果你有一个很大的表,索引文件的大小可能达到操作系统允许的最大文件限制。如果MySQL能估计出它将可能比扫描整张表还要快时,则不使用索引。另外,对于需要写入数据的操作,比如DELETE、UPDATE操作,索引会降低它们的速度。这是因为MySQL不仅要把改动数据写入数据文件,而且它还要把这些改动写入索引文件。

4、 减少使用字符集编译MySQL

MySQL目前提供多达24种不同的字符集(许多语言版本),为全球用户以他们自己的语言插入或查看表中的数据。缺省情况下,MySQL安装所有者这些字符集,所以最好的选择是安装一两种你需要的就可以了(中文、英文)。

总结:本文介绍了如何在现有硬件条件下提高系统性能,网络管理员充分了解自己的计算机和网络,从而找到真正的瓶颈所在。在预算短缺的今天,理解如何优化系统性能比以往任何时候都重要。一味地硬件投资并不是能够让人们接受的办法 — 并且也不一定生效。

mysql 的 utf8_general_ci 与 utf8_unicode_ci 区别 差异

2007年10月21日 Sunday

PS:在创建某个数据库的时候,看到这两个东西,有点疑惑,google一下找到下面这个文章,也许不仅仅对我有用,贴出来让更多的人看到。

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

转自–http://blog.pixnet.net/origin2/post/1244682

有用過 mysql 的 UTF-8 編碼的人可能都會對這件事感到疑惑:

連線校對(collation)裡面的

utf8_general_ci

utf8_unicode_ci

到底有什麼差異呢?
在 phpMyAdmin 裡面的說明看起來通通一樣:

utf8_general_ci 統一碼 (Unicode) (多語言), 大小寫不相符
utf8_unicode_ci 統一碼 (Unicode) (多語言), 大小寫不相符

實在是看不出什麼刁來。

所以前一陣子在搞 mysql UTF-8 化的時候,谷歌了一番,
發現這篇文章裡有詳盡的說明:(其實就是把 mysql reference manual 翻譯而已)

utf8_general_ci 在轉換時速度比較快
utf8_unicode_ci 在轉換時比較精準

轉換?怎麼講呢?
簡單說就是當資料要從一個編碼換成另外一個編碼時,
mysql 要在兩個 codepage 裡面找出來相對應的字元位置在哪裡。
對 utf8_general_ci 來說,來源 codepage 裡面的一個字元只能對應到目標 codepage 裡面的一個字元,
而 utf8_unicode_ci 則可以把來源 codepage 裡的一個字元對應到目標 codepage 裡的多個字元(或反過來)。
例如德文裡的 ß 要轉換成英文的時候如果是用 utf8_unicode_ci 轉換會變成正確的 ss ,
但是如果用 utf8_general_ci 的話則會變成單一的 s 而已。

所以如果可以的話請盡量用 utf8_unicode_ci 而不要用 utf8_general_ci ,
雖然對 multibyte 字元來說這兩個都沒差,
但是 utf8 的網頁誰也不知道哪天會不會有這種字元出現在你的網頁上,
所以如果設成 utf8_unicode_ci 你就不需要擔心貼上去之後資料在轉換間遺失了。

xampp 安装笔记

2007年10月21日 Sunday

我是懒人所以用xampp,这个东西自称安全性不是很好,运行一下它自己的安全检测,关掉默认的东西应该比我自己装apache搞得更好。

下载地址及安装说明:
http://www.apachefriends.org/zh_cn/index.html

配置虚拟站点:

482行注释去掉Include etc/extra/httpd-vhosts.conf

我的 httpd-vhosts.conf 内容,也不知到对不对,反正生效了

NameVirtualHost *:80

 <VirtualHost *:80>
 ServerAdmin xxx@gmail.com
 DocumentRoot /opt/lampp/htdocs
 ServerName localhost
 ErrorLog logs/localhost-error_log
 CustomLog logs/localhost-access_log common
 </VirtualHost>
<VirtualHost *:80>
 <Directory “/dev.xampp.com”>
 Options None
 AllowOverride None
 Order Deny,Allow
 Allow from all
 </Directory>
 ServerAdmin xxx@gmail.com
 DocumentRoot /dev.xampp.com
 ServerName dev.xampp.com
 ErrorLog logs/dev.xampp.com-error_log
 CustomLog logs/dev.xampp.com-access_log common
 </VirtualHost>

默认的东东都在localhost这个站点里面,dev.xampp.com是新添加的一个站点,/dev.xampp.com 这个目录是后来创建的,自己测试在hosts里面自己做解析。这个配置目前测试没啥问题,不知道以后有什么bug出来。有的话偶在这里会有记录。

vncserver for linux 4.2.6 and license

2007年10月21日 Sunday

 下载地址

http://www.willlog.com/wp-content/uploads/2007/10/RealVNCEnt4Linux4.2.6.rar

安装:

[root@xcorder ]# tar -xvf vnc-4.0-x86_linux.tar
vnc-4.0-x86_linux/
vnc-4.0-x86_linux/vncinstall
vnc-4.0-x86_linux/Xvnc
vnc-4.0-x86_linux/vncviewer
vnc-4.0-x86_linux/vncserver
…..
vnc-4.0-x86_linux/java/vncviewer.jar
# cd vnc-4.0-x86_linux
# ./vncinstall /usr/local/bin
Can’t install manual pages to /usr/local/man/man1
Copying Xvnc to /usr/local/bin
Copying vncviewer to /usr/local/bin
Copying vncpasswd to /usr/local/bin
Copying vncconfig to /usr/local/bin
Copying vncserver to /usr/local/bin
Copying x0vncserver to /usr/local/bin
# mkdir -p /usr/local/vnc/classes
#cp java/* /usr/local/vnc/classes

#vnclicense -add VKQEQ-HTY2P-WN49X-YZJ5S-4WG2A

#vncserver

到访本站的用户,浏览器类别百分比

2007年08月30日 Thursday
  浏览器 Grabber 文件数 百分比
    MS Internet Explorer 43287 95.2 %
    Firefox 1226 2.6 %
    Mozilla 707 1.5 %
    Opera 147 0.3 %

看来firefox并没有宣称的那么高,也许我这里人太少了不具代表性。

关于飞信加好友的郁闷

2007年08月30日 Thursday

中国移动飞信去年到前不久商用,一直在推,而且是免费推,我是一个比较喜欢尝鲜的人,以听说就开始用了。但是加人的时候经常遇到麻烦,对方总是不给回应,问原因,被各种不良sp吓怕了,以为又是来骗钱的,中国移动把自己的用户搞的这么草木皆兵,现在飞信推广难也算尝到苦果了。

在这里俺强调一下,现在仍然是不收费的,我的好友请允许我加你们,发消息用电脑打字比用手机舒服多了。http://www.fetion.com.cn/ 

生成pdf文件的办法

2007年08月30日 Thursday

google文档

可以直接把文件保存成pdf格式

优点:不用安装,能上网的地方就能用

缺点:生成的中文惨不忍睹

wps office 2007个人版 (推荐)

打开一个word文档或者其它文档,然后另存为pdf格式

优点:免费,安装包20M不算大,貌似比google文档对中文支持的更好。

缺点:需要下载安装

下载地址 http://wps.kingsoft.com/down/

生成pdf教程 http://wps.kingsoft.com/product/ts3.shtml 

其他

acrobat 正宗的,要钱的

还有一个什么来着忘记了,是用打印方式生成的。

我的firefox插件

2007年08月30日 Thursday

我做web开发常用的插件:

  1. web developer 功能齐全,不过我基本上之用 resize/clear Cache
  2. live http headers 获取浏览器发出的所有请求,在测试内嵌object与服务器通讯的时候特别有用,这个跟ie的收费插件http watch很相似,但是是免费的
  3. firebug 基本用来测试css和js的错误 ,可以分析页面区块的代码,显示ajax操作时发出和接收到的数据等等。
  4. ie tab 在firefox里面调用ie内核,测试页面在不同浏览器的显示情况

apache经常不响应

2007年08月29日 Wednesday

windows的系统,随机出现,一般一两天出现一次,重启apache一切正常,看log没发现什么问题,抓狂中,谁知道什么原因?一定要跟我说啊

WinAVI iPod/PSP/3GP/MP4 Video Converter 下载(附注册码)

2007年07月23日 Monday

WinAVI iPod/PSP/3GP/MP4 Video Converter 是一个转换媒体文件为智能手机、MP4 播放器及SmartPhone 等移动设备可播放格式的软件。顾名思义,它支持转换所有媒体格式为 iPod,PSP,3GP,MP4,MTV 等文件格式,所支持的来源格式有:AVI,MPEG/MPG,WMV/ASF,VOB,MKV,OGM,SWF,MP4,3GP/3GP2/3GPP, MPV/MPV2,M1V,MPE,MP2V,DAT,MOV,M4V,QT,RM/RMVB 等等。高速高质量转换,同时支持自定义转换参数,支持直接传输文件到 iPod/PSP 设备中。软件界面美观,易于使用,只需点击数次鼠标即可,另外还独家支持命令行方式转换文件。

注册码:
Name: Alistair Dalrymple
Code: B0E62E8F4FB3BACB9A8F4FB35DE9261BFB8B551E74D6A3BDTHE

下载地址

NSS–修改s60手机code的工具

2007年07月22日 Sunday

点击下载

nokia诺基亚N95香港行货microSD(TF)卡备份

2007年07月18日 Wednesday

nokia诺基亚N95香港行货microSD(TF)卡备份,解压密码:smart.ccw.com.cn

点此下载

EmEditor汉化破解版下载

2007年07月17日 Tuesday

很错的一个文本编辑器

点击下载

php中文繁体、简体、Unicode自动转换代码[转]

2007年07月17日 Tuesday

来源:http://www.luar.com.hk/flashbook/archives/000802.php

big5_to_gb.zip

gb_to_big5.zip

big5_to_utf8.zip

gb_to_utf8.zip

开张咯

2007年07月12日 Thursday

写了这么多年code,总算有了一个真正的blog,据说这个wordpress不错,试试再说,不过即使不好用估计我也不会换的,因为—-我太懒了~~:)

Hello world!

2007年07月12日 Thursday

欢迎来到 WordPress。这是您的第一篇文章。您可以修改或删除它,然后开始撰写您自己的 Blog!