生活多姿彩

最近看了几部电影耶!

《志明与春娇》,彭浩翔的电影我一定支持,最喜欢的香港导演之一。就没令我失望过嘛。那种讲故事的手法,那种“叼叼”的对白,那种镜头剪辑,那种结局形式,都刻着彭的烙印。非常真实的一个爱情故事,仿佛没有半点做作,就发生在身边的一个平凡的故事。尤其喜欢那个干冰倒进马桶的那幕,“好似系天堂度屙屎”!我在百老汇电影中心看的,基本有喜欢的粤语电影,我都会来这里看,刚好最近发生了一点事,以后还有可能看不到粤语电影了呢,在这里要撑一下粤语!!

《枪王之王》,片尾写着,“纪念张国荣,枪王2000” ,我竟然没有看过。。。怪不得看起来有点怪。。。原来角色有继承的。。。马上回去看了枪王。枪王之王在我看完枪王以后马上被比下去了。枪王的张国荣,直到他不在了我才渐渐看到他的魅力。。。我是迟钝的!!说回来,枪王之王的开篇是很好的,就是到了中间知道了古仔是奸的以后,剧情就开始狗血起来了。。。其中我觉得枪王之王有两个地方,是比较有看点的,一个就是枪王没有讲到的,持枪为了救人而杀人是否要判罪的问题,这次搬上了法庭,法庭上的辩论很精彩,很赞。另一个,我觉得是男主角和两个女主角的感情问题,很有看点的。。。尤其是对李冰冰那最后一吻,我至今还不太理解这一幕。。。

《toy story 3》,pixar 年度大作,上一年的《up》感动得我哗啦哗啦的,今年这个,据闻是玩具们告别之作了,不免会有感人的情节,很是期待!套路仍旧是那个套路,那个创意无限的“越狱”过程,那个从头到尾几乎没有露出笑容的“小丑”,很有喜感,还有龙猫呢!最后那个 andy 和玩具们告别的情景,我一直在想,玩具们留在阁楼会不会是一个完满的结局呢? andy 毕竟已经长大了,不再是玩玩具的年龄了,把少年的玩具送给了同样会珍惜他们的人,最后那一幕,andy 一个一个介绍着他的玩具,最后一次与玩具们玩耍,那个场景又把我感动得哗啦哗啦的了。。。长大就必须与过去说再见,世上没有永恒,永恒的只有记忆。80 后的我已经长大,哗啦哗啦阿

《独唱团》也到手了,肤浅的我,发现里面的文章和漫画有点难懂!!鸭梨好大阿!!

8月底的架构师大会。。。这次又有幸可以参加一下了,上次没有听到重点。。。这次应该可以听重点了吧。。。

门票到手!!

网站技术职位之我见

搭建一个网站,需要很多职能的人加在一起,如策划、美工、技术等。小时候,这么多的职能,就是一个人去完成。自己把网站构图画出来,自己写html 代码,写动态程序,发布上传。当在地址栏输入网址,看到自己的作品时,那是很兴奋的一件事。出来工作后,这些职能终于分开了,有专门的产品策划,还有SEO 专员,有美术和前端页面工程师,还有一个我觉得名字有点怪的后端工程师,哈哈。一个网站是一个团队的结晶,再也不是一个人独立去完成的了,一个人最多作为一个团队的核心成员。儿时那种喜悦感荡漾无存。

我是做技术的,表达下我对一个网站技术类职位的一点点看法。

——————————–

前端工程师,主要负责面向用户的页面代码编写。熟悉html 和 javascript 是最基本的。想当年,我还不会利用工具,还试过全手工写html 代码呢,当然,现在很多geek 都是直接 vim 或 emacs 编写简单的网页的。想方便快捷地写html 代码呢,还是得利用工具的,人和动物最大的不同嘛,就是懂不懂利用工具了。那些什么 frontpage 啦,dreamweaver 啦,都是工具,我小时候还用过一个好像叫东方网页魔术师的东西呢,内置了很多当时以为很有型的javascript 效果(别笑!)。前端工程师的源代码没有闭源一说,因为所有的代码都是运行在用户的浏览器上面的。前几年ajax 开始大行其道,于是javascript 开始重新热起来,不过这次不是因为js 的那种所谓的效果了。其实ajax 就是利用javascript 异步对服务器发出请求,服务器返回后,重新渲染页面,这就是局部刷新。

在这个职位上做得最为出色,个人觉得,就是灵活地运用javascript 造成各种有创意的效果。前端工程师的代码就是直接面向用户的阿,把用户的体验提高到顶点,就像用户在操作自己的电脑一样。gmail 简直就是这方面的极致!有些geek 还利用html 标签弄出一幅画出来,甚至还动画,我只能说,牛人阿!

最怕的是,在这个职位上流于完成日复一日的任务。大公司里,会有美工把页面需要展示的效果做成一个图片,然后前端工程师就把这个图片用html 代码写出来,俗称:切页面。千万不能每天都重复着没有意义的切页面工作。这个职位应该是一个很有创意的职位,而不是一个只会切页面的工人。

其实前端工程师,我觉得,还可以包括flash 的程序员的。由最初的flash 动画,到近几年很热的 flex ,flex 是当前很热的web game 的主力呢。至于flex ,涉及很多对后端的操作,划入前端工程师的范围貌似不太对。但是作为一个技术人员,就应该所有部分都掌握了解才可以把一个产品做出来。

随着时间的推移,html5 的出炉,将会令到前端工程师的地位上升到一个高度。html5 自带了绘图的标签,甚至可能可以替代flash 的绝对地位呢。

——————————-

后端工程师,好像也统称为开发工程师吧。简单地说,就是那些java, php, python 程序员吧。由于js 是运行与客户端的程序,它并不能访问数据库,这个对数据库的操作,就交给动态语言去处理了。例如,用户访问一个 update.php ,最终可能只会得到一个 html 的返回,但其实,这个程序已经对数据库进行了读写操作,这个html 返回,并不是每个用户都是一致的,所以就叫做动态语言。每个访问 update.php 的人,都可能得到不同的返回。

开发工程师,最怕流于平时只会利用各种组件,调用各种api 去实现某些东西。如果不主动思考去改进,去深入,那么平时的工作,就像是堆积木,互联网民工就是这样产生的。最近听朋友在面试时,就说遇到很多人,说是拥有几年的工作经验,把自己工作领域的内容,滚瓜烂熟的样子,但是知识面很窄,甚至可能连缓存是什么都不知道,一直开发桌面软件不去注意性能?互联网,相关知识日新月异,今年流行的技术,可能明年就落后了。就正如前几天流行的一句话,“你以为你有10 年的工作经验吗??其实你只是1 年的工作经验,复制10 次而已”。在一个web 开发框架下,熟练地运用相应的类、函数,处理的是程序逻辑,也就是处理下 if a = 1 , then do sth 这样的简单逻辑,然后不断地重复,再重复,这些最终都只是流于设计出展现给用户的那部分界面,其实毫无技术含量可言的。以前小时候看着,以为程序员很cool ,后来才知道,其实,不是所有的程序员都很cool 的。。。

毕竟我不是这个范畴的专家,甚至我也只是多年前涉足了一下这个领域,但我觉得,如果开发工程师,可以在现有的开发框架下,设计出符合自己的业务需求的框架,或一个很完善的开放平台,就很完满了。就像豆瓣那些大牛们。

至于不同的语言,我觉得从我的角度来看,没有本质的区别。都是处理动态请求的程序,我的角度,统称为 app 。

我自己以前小时候还是做过开发的,那时候还不会用框架,直接jsp 就上了,什么html 页面代码都在jsp 里面,乱死了。那次是一个期末作业,连续一个星期一天16 小时地写jsp 代码,不分日夜地调试阿,google 阿,终于把作业完成,还得到老师的好评。不过我看回来还是觉得挺有趣的,毕竟以前做作业的心情不再,现在再也没静下心来开发一个功能完备的网站了。

今天刚看到一句话,java 工程师,是最远离计算机科学的,因为所有对象都封装,这个封装那个,最上层的,只是把对象的方法调用一下,就完成了一系列的任务。远离了计算机的底层,根本不知道计算机真正在做什么。这种情况下,可能对性能的优化,产生不良的影响了。而我觉得呢,java 工程师,更应该向软件架构师的方向去走,因为java 的思想就包含了许多软件工程的思想,理解了java 的人可以很容易地从宏观去设计一个产品。至于细节的考虑,就相对较少了。

——————————

DBA ,database administrator,数据库管理员吧,这个翻译真别扭,我还是喜欢直接用英文。就是管数据的那班人。

一句话就可以概括DBA 的重要性了,“代码可以重写,但数据不能再造”。本人很肤浅地认为,DBA 作为一间公司的雇员,占据着核心的地位。在这里,有可能会问,那程序员和DBA 相比,谁更核心呢?我资历是很浅的,不负责地讲一句,DBA 才是核心。设想下,如果一个系统拥有3 年的数据了,数据量达到数T ,那么,这个时候,如果失去程序和失去数据两个选择,相信大部分人都会选择失去程序,因为程序仍然可以根据其业务逻辑重写出来,但是生产环境的数据无法伪造出来。

web 2.0 中,这个核心作用表现得更甚。web 2.0 中,通常业务逻辑并不复杂,对数据库的逻辑往往也并不复杂,不会有很多join 表的操作,但高并发对于数据库的压力是web 1.0 时代的n 倍,往往一个web 2.0 的系统的瓶颈就在DB 这里了。

我这个SA 嘛,以前还是有挺多机会弄弄数据库相关的工作的,经常可以客串一下DBA 。当初老大也是想把我培养成为DBA 的,可惜我不争气。。。我客串DBA 的时候,对一些接近满载的机器,进行参数调优,负载下降到1 以下。那时候心里很爽的样子,到处找实战机会,哈哈。不过,毕竟是客串,我对DB 的很多方面,都没有深入认知。。。

DBA 需要掌握的技能,就相对更多了,同时对个方面的关注度也十分高。磁盘的io ,吞吐率,网络知识,开发编程知识,操作系统的内核参数,计算机硬件知识,甚至于内核的新 feature ,每方面都可能对DB 的性能造成影响。

DBA 发展下去,这么全面的知识积累,往往可能成为系统架构师。

——————————-

SA,system adminstrator,系统管理员,终于说到我的职位了!非要加个工程师的头衔的话,可以叫做系统工程师,或者运维工程师。

SA ,貌似没有具体要掌握哪些技能,也可以说,是什么都得掌握一些,什么都得懂。离谱一点的,一位同事嚷着自己的电脑网络有问题,叫SA 过去看,其实是自己输错了网址,这种低级错误也找SA 去解决,令到SA 俨然一个打杂的小兵。

先介绍下SA 的工作吧,包括但不限于,机房的建设,这个并不是别人眼中很容易的工作,单是布线这个体力活,就很有技巧了,如果简简单单地乱布线,将来机房一定乱糟糟的,根本没人敢进去。机房的网络部署,更是至关重要。想想,如果服务器运行正常,但网络断了,那无论架构师设计多好的高可用架构也是于事无补的。google 的数据中心,更是打出了低碳的口号,可见,机房的建设也同样是SA 需要付诸努力的。SA 拥有服务器的 root 权限,至高无上的权力,一个命令可能毁了一个网站!!我就真的试过运行 rm -rf / ,恶梦一样,不过也从此学会了教训,SA 一定要细心,蜘蛛侠也说了,“great power comes with great responsibility.”,哈哈。SA 还负责了操作系统的安装,应用软件的安装及配置啦。svn 或其它什么代码管理工具的,通常也是由SA 掌管的,你看,代码都掌握在手里了,哈哈。DB 嘛,也是需要操作系统来承载的,SA 同样也拥有其服务器权限,DB 也掌握在手里了,哈哈。就是因为这种特殊的权限,什么杂事都会找到SA 的头上,令到SA 的时间管理变成一种学问。由于SA 对于系统底层的认知,也可能于应用方面,对于应用软件作出符合自己业务的hack 。同样,保证系统的安全也是SA 的职责,当然,可能也会有一个叫安全工程师的职位存在。。。SA 的职能真的很多很杂,我一时也想不到了,就此打住吧。

当然,其实一个SA 并不能完全负责了这些东西,我也只是远程地维护服务器而已,并没有亲身去摆弄服务器。平时也就处理一下烦杂的业务需求,管理一下应用系统的服务器,偶然偷懒一下而已。

SA 要关注的知识点,同样较多,多而杂,也不可能每个点都很深入,追求的就是广吧,呵呵。操作系统,计算机网络,计算机原理,C语言程序设计,编译原理等,都掌握就最好不过了,哈哈。别以为SA 平时就弄弄服务器命令,不会编程,其实我们多少还是会一点的,可能就是不够熟练而已,程序出问题的时候,说不定还要SA 去走读代码来解决呢,不是说开发不聪明,而是有时从一个旁观者的角度去看问题,真的是可以跳出那个 box 的。别以为SA 就像工人一样在处理烦杂的事情,一个聪明的SA 不会有2 次重复劳动的机会。或脚本,或走捷径,总之用自己的方法去偷懒,一个足够懒的系统管理员,才是真正优秀的系统管理员。perl 的发明者,不正是由于懒而发明了perl 么?

我为什么要喜欢并从事着SA 的工作呢?其实我小时候还是喜欢开发的,慢慢地,我发现,其实开发有很多都是一些重复的工作,而且对于所谓的高级语言来说,无非就是读取某些地方过来的一个数值,然后if else 一下,然后调用一下某个组件,然后展现出很貌似很漂亮的效果。其实,我觉得,这个没有什么技术含量。当然,我的说法其实过了一点,程序开发还是有很多更加灵活的地方的,我最喜欢那些会利用小技巧设计程序的开发人员了!然后,我就发现,原来SA 可以如此地接近真相,SA 可以更从底层地去解决问题。同时,SA 的知识接触面也是很广的,我喜欢了解更多,选择自己喜欢的点去深入。

我现在更想通过hack 一些东西来令到业务有增长的,这是从细节去令到一件事做得好。其实以前我也有小hack 过一下 proftpd 的,那时候就觉得实在太有趣了!!另外,我现在接触的知识,倒有点像架构师的内容,这是从宏观的角度去把一件事做好。一个小聪明,一个大智慧的分别,其实,我更喜欢小聪明,呵呵。

——————————-

末了,还可以说一个职位出来,叫,架构师。

以前我的大学有一个课程,叫做软件架构。这个也是叫架构,但与我所说的架构,可能不是一回事了。里面介绍的是,一个软件的设计要如何如何,如果换作一个web 产品,负责整个产品的开发设计的工作,这个职位,应该叫web 设计师。我很肤浅的经历告诉我,这个职位由资深的开发工程师来担当足以。

我在这里说的架构师,是指系统架构师。这是个虚无的职位,对于技能没有一个定性的标准。简单地说一下吧,系统架构师,通过合理的低成本,应用软件的选型,服务器选型,网络拓朴设计,通过各种组合,构建出一个高可用(99.99% 简称4 个9,为合格标准?),高并发(c10k?),高负载的大型系统。

系统架构师虽然是从一个宏观的角度去设计整个系统,但是关注的却是整个系统的方方面面,小至几个字节的网络传输,几毫秒的网络延迟等。高可用并不那么容易,负载均衡,健康检测,故障屏蔽并不可少。在地大物博的中国,或许还要考虑南北互通的问题。分布式的应用,更要考虑数据一致性的问题。这一个一个的问题,钻进去都是一个个深不见底的洞。

系统架构师,需要的是经验的积累,不断实践尝试,不断地与时俱进而来的。

——————————–

总结一下,如果把技术当成自己的一个谋生的工具,那么真的没必要学得那么深,做一两个项目就转型做管理就算了。

我一直认为:程序员的领导管理程序员,成功率只有50%,因为不是说技术做得好管理就做得好,很多人真的只能埋头钻研技术,但于人前就不懂表达自己的。但如果不懂技术的领导来管理程序员呢,对不起,门都没有。(好像在哪里看过。。。不是我的原观点啦,只是我十分赞同)

陋见陋见,仅以我幼稚的看法,来表达一下心中极度郁闷的情绪。

修空调

今天终于把空调给修了!!踏入夏天以来,我都是靠着我强大的意识在顶着酷热的天气,所谓“心静自然凉”,哈哈哈哈。

今天宅在家,阿姨来打扫卫生,同时叫了师傅过来修空调。我怀疑是没有那个“氟”了,他们来到以后,做了一些貌似是检测的工作,也证实了我的推断。不过外加一个,空调的启动电容坏了,要换一个。他们的工作其实看起来很危险,因为是分体式嘛,有一部分在外面放着的,他们得爬出去。出去的那个人腰上绑着绳子,一个人在屋子里面拉着,我有畏高的,想想就可怕了。

他们一开始的收费是这样说的,加氟 4MP 压力,每压力收费60,更换启动电容,启动电容220,还有他们从公司过来,收费40,共500 大元。靠,虽然我是觉得你们的工作危险,也不能这样坑我阿。我上网查了一下,加氟收费是 30-60 ,启动电容网上从8-30 都有,靠,收我200 多,这个,是不可以的。

人都是要赚钱的,他们确实也辛苦,我想了下,氟就算1MP 40吧,共160。启动电容,算20 吧。然后100 劳务费吧。280 好像不太好,就300 吧。最后他们也作出让步了,320 成交。

唉,总算吹上了空调了。。。记得我在大学的时候,也是没有空调熬了4 年阿,那时候真是心静自然凉,令到我培养出在酷热的情况下, 仍然保持很好的精神状态。不过,今天吹上空调以后,发现房子外的世界,都是充满着热浪的,很恐怖阿!!。。。

微博作弊

鉴于某规定,微博需要考核。

作弊是肯定的,大部分都是这样,我也是。

注册用户这个比较难,我做不了。。。手工注册的。。。

注册马甲了以后,使用以下两条语句,就可以很方便地发推了。

curl -c cookie.txt -d ‘username=&password=’ https://reg.163.com/logins.jsp
curl -b cookie.txt -d ‘status=curl test’ http://t.163.com/statuses/update.do

作弊与否,其实也不管,需要的是一个数字,数字就是绩效。哼

done, that’s all . ok, KISS .

nginx-0.8.42 的一个新feature

nginx 0.8.42 有个新功能:

Feature: a text answer may be added to a “return” directive. (via nginx.org )

这个功能其实很有趣,当然自己写也不难,官方实现了就最好。

找了下,找不到相关的配置说明,只好自己摸索一下吧。一试就出来了,真神奇,哈哈。

三步走(./configure ; make ; make install)安装好 nginx 后,在配置上加一段:

location /iloveu/ {
return 200 “iloveu” ;
}
同时把
default_type  application/octet-stream;
修改为
default_type  text/plain;
如果是前者的话,不会看到字符串,而会下载的噢。
启动 nginx 后,curl -i http://127.0.0.1/iloveu/
HTTP/1.1 200 OK
Server: nginx/0.8.42
Date: Sun, 27 Jun 2010 18:44:04 GMT
Content-Type: text/plain
Content-Length: 3
Connection: keep-alive
iloveu
就这样玩玩吧。

济州岛之旅

这是一篇游记。

6.13 – 6.16 ,在韩国济州岛度过了一个很不错的旅行。尽管是免签证的一个地方,尽管遇上的人多数都讲中文甚至粤语,尽管没有传说中的pp 棒子妞。

部门组织的旅游,吝啬的部门,3300 的旅游费用,竟然只肯出1500,另外1800 要我自己补上!我还带了个家属GF ,这次旅行的花费真可观,哈哈。其实只要开心,钱不是问题,这次旅行很明显很值得。韩币 1000 大概等于 6 rmb ,看起来好像很便宜的东西,不小心就用了很多了。。。这次旅行在那边的消费大概都几千rmb 了。

那些郊外的公路,虽然不宽,但是环境一流,空气爽,一个字,舒服!实在太舒服了!!还有我住的那个hawaii hotel 附近的那些街道和平房,太有日本的感觉了,尤其是夜晚的时候,非常有 feel 的地方!

很多地方有免费的wifi ,对于我的 iphone 2G 来说,在韩国根本无法打电话,wifi 简直是救星般的东西,严重的网瘾,让我逛到一个商店就拿出手机来看可否搜出wifi 信号来。覆盖最广的,就是那个 iptime ,经常可见的。据说韩国的网络情况是世界数一数二的,确实不赖,看 youtube 一点都不卡。最重要的还是,不用翻墙就能用 twitter 了!!

旅途中,遇到一班中学生,不太会看mm ,引用一下同行的同事的一句话:“棒子妹不整不行阿”。呃。。。底子好像真的不太好。。。但是,有一些有几岁大孩子的妈妈,看起来还很有明星相呢,简单地说,就是脸蛋比较好看,在韩国好看的脸蛋都差不多的样子。。。

泰迪熊博物馆,里面的泰迪熊,扮演了各种角色,出现在任何一个人类重要的时期,包括柏林墙的倒塌,登月。甚至还有一个穿着LV 的熊,据说价值不菲。还有一个熊的两只眼睛是用 125 卡拉砖石做的。这两只熊默默地躲在熊堆中,简直是隐藏人物一样,不是别人带我去看,根本不知道他们的特别呢。

看了一个叫nanta 音乐剧,中文名叫乱打。导游说,不能错过的!明显言过其实了,这个剧竟然收220rmb,唉。nanta 这东西在网上都可以搜出来呢,就不多介绍了。表演的几位,实在多才多艺,搞笑音乐魔术击鼓等。说到底,其实最让我记得的,还是其中那个mm 的身材,很健美的身材啦,哈哈。

这次旅途最昂贵的一顿晚餐,生鱼片,一桌的生东西,对于爱好鱼生的我来说,实在太爽了!!最爽的还是,末了,他们会拿来一只生的八爪鱼,注意,是生的!脚还在不断动!!他们会让你咬着它的手,然后剪断它的手,很残忍的吃法!!。。。我有幸成为残忍的其中一员。。。它的手的吸盘,在离开它的身体后,仍然会紧紧地吸住你的嘴唇,上颚,甚至在嚼它的时候!。。。最后,把它的所有手都剪掉以后,就把头扔进锅里煮了。。。太残忍了!!。。。我都不敢回想。。。尤其是。。。煮熟后的头,被我吃了。。。!!@@

临回国的那个晚上,去尝试了一下韩式汗蒸。真的很有趣,有很多种蒸的方式耶,有个99 度的房,根本不敢进去,会死人的阿!有个很低温的,仿佛又回到冬天的感觉。。。据说高低温配合,对身体好。。。还有一个很多小石头的房,找个人帮忙把你埋起来,很舒服的感觉呢。

http://v.youku.com/v_show/id_XMTgzMTU3MTI0.html 这个视频浓缩了整个济州岛之旅,感谢@seanwong 的制作。

旅途中学了几句韩语,但一句都没有用上!!@@ 因为往往他们店里都有一个中国人,华侨什么的,导购时就直接用中文了。如果实在没有中国人,英文也是用不上的。。。post card 他们也不懂,只好用肢体语言了。。。至于韩语,我就熟悉掌握了以下几句而已:

你好 — an nyung ha se yo

谢谢 — gam sa han ni da

多少钱? — eol ma im ni gga

化妆室(厕所) — wha jaug sill

在哪里? — ah di yee yo

小姐 — a ga ssi

先生 — a jeo sii

哥哥 — oh bba

漂亮 — ye boo yo

非常 — mu ji mu ji

尤其熟悉这句:a ga ssi , mu ji mu ji ye boo yo .

高考,6月7号

6月7号,对于中国的大多数人来说,甚至是决定一个人一生的日子。6 年前的今天,我也和那几百万考生一起步入考室。6 年了,原来时间这么快,现在让我选择,我真希望回去再学习一回才去考这个试。

那一年,我其实没有考失手,没有超常发挥,考了个平平的成绩,甚至,很低下的成绩。结果,念了个很差的专业。其实,念很差的专业也就算了,自己也不努力,往自己喜欢的路走,结果再次平庸地度过了平凡的四年。不能怪人,怪自己呗。

其实,一直以来,我自己都有一些很错误的学习方法。一直以为,只要考试前临时抱佛脚,就万事都成了,而且,考前一晚的记忆力最强,第二天保证能记住。这些想法,源自于我小学的一次考试,我就花了一天晚上,竟然考了个全级第一。。。当然,这个与我的智力发展得比较早,当时周围的同学学习成绩并不太好,小学的内容很少,多种原因结合吧。这个错误的认识,直到高考完我才完全认识到,真傻。

大学嘛,在这个完全松散的环境里,我也终于,tmd 现在才终于,掌握到了些许学习的奥妙。任何的知识,都不是一天两天能看完,即使能看完,也不是所有都理解的。知识,应该在脑中消化,并转化为更多有趣的东西,而不是经过一场考试而丢弃的。说真的,也就大学后,我才真正学会了语文和英语,虽然我的大学四年仍然很糟糕。。。

实在有点感慨,回头望,不是为了后悔,而是为了吸取教训。错了的路不能再错!

从iphone 游戏 Zombie Shock 想到的

最近把我的初代 iphone 升级到 3.1.2 ,海量的游戏阿。。。花了几个小时,很认真地把一个叫 ZombieShock 的 game 爆机了。

Apple ,把平台开放了,让各位愿意折腾的人去折腾,好不容易折腾出来一个app 了,apple  还要抽一部分水。

Facebook ,同样是开放平台,让各位去开发app ,据说平台的工程师只有 15 位,再次赞叹一下。

开放平台,嗯。

debian 下nginx 快速搭建FCGI环境

我的想法是。。。快点,快点,再快点!!

apt-get install spawn-fcgi php5-cgi

用 spawn-fcgi 启动 fcgi ,

spawn-fcgi -a 127.0.0.1 -p 8000 -u nobody -f /usr/bin/php-cgi -C 5 ;

在 nginx 里配置加一句:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:8000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

然后把一个 php 放在 /home/nginx/html 里,就可以使用了。

nginx 实现缓和切换新旧首页

最近首页要改版,瞎折腾,还要新首页和旧首页并行服务,只有网友点击了“新版首页”的按钮后,才会显示新版首页,否则,显示旧版首页。
灵感来自 ayou 的一段配置,我的实现原理如下:

网友点击了切换按钮以后,利用 javascript set 一个 cookie ,如 newindex=y ,首页的 / 会作判断cookie ,然后 rewrite 到相应的页面。

具体实现:
1, 网友点击 set cookie,我抄了一段最简单的东西:

<html>
<head>
<title>Welcome </title>
<script type=”text/javascript”>
function Set_Cookie( name, value, expires, path, domain, secure )
{
// set time, it’s in milliseconds
var today = new Date();
today.setTime( today.getTime() );
/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name + “=” +escape( value ) +
( ( expires ) ? “;expires=” + expires_date.toGMTString() : “” ) +
( ( path ) ? “;path=” + path : “” ) +
( ( domain ) ? “;domain=” + domain : “” ) +
( ( secure ) ? “;secure” : “” );
}
</script>
</head>
<body bgcolor=”white” text=”black”>
<center><h1>it is a test</h1></center>
<a href=”#” target=”_blank” onclick=”Set_Cookie( ‘newindex’, ‘y’, 30, ‘/’, ”, ” );window.location.href=’http://www.helosa.org/’;”>我要访问新首页</a>
</body>
</html>

2,nginx 配置:

location =/ {

root html ;
index index.html ;
if ( $cookie_newindex = “y” )
{
rewrite ^/*$ /index_new.html break;
}

}

其中 /index.html 是旧首页,/index_new.html 是新首页。
如此一来,网友访问 http://www.helosa.org/ 时, location / 就会根据cookie rewrite 到相应的首页。但是要注意的是,
http://www.helosa.org/index.html
http://www.helosa.org/index_new.html
访问的是正确的页面,因为判断 cookie 只在 / 做。