我晕
msgbartop
其实我不晕:)
msgbarbottom

简单的事情重复做

( 2011-04-06 )

回想一下,自己做站也好,公司项目也好,做到一半甚至做到80%又放弃的,最近几年至少有十几个,有的是因为感觉没啥前途,有的完全是因为自己的惰性,几乎都是还没有接受市场检验的…

昨天看到一篇文章,很受感触. 虽然道理浅显,别且很多人很多种方式都有表明过,但是看到这个大师面对场下的喧嚣,面对观众的退场,还能这么坚持,确实很受感染.  感谢蓝汛景楠每周的邮件分享!

简单的事情重复做

一位著名的推销大师,即将告别他的推销生涯,应行业协会和社会各界的邀请,他将在该城中最大的体育馆,做告别职业生涯的演说。
那天,会场座无虚席,人们在热切地、焦急地等待着那位当代最伟大的推销员作精彩的演讲。当大幕徐徐拉开,舞台的正中央吊着一个巨大的铁球。为了这个铁球,台上搭起了高大的铁架。
一位老者在人们热烈的掌声中走了出来,站在铁架的一边。他穿着一件红色的运动服,脚下是一双白色胶鞋。
人们惊奇地望着他,不知道他要做出什么举动。
这时两位工作人员,抬着一个大铁锤,放在老者的面前。主持人这时对观众讲:请两位身体强壮的人,到台上来。好多年轻人站起来,转眼间已有两名动作快的跑到了台上。 老人告诉他们游戏规则,请他们用这个大铁锤,去敲打那个吊着的铁球,直到把它荡起来。一个年轻人抢着拿起铁锤,拉开架势,抡起大锤,全力向那吊着的铁球砸去,一声震耳的响声,吊球动也没动。他接着用大铁锤接二连三地砸向吊球,很快他就气喘吁吁。另一个人也不示弱,接过大铁锤把吊球打得叮当响,可是铁球仍旧一动不动。台下逐渐没了呐喊声,观众好像认定那是没用的,就等着老人做出解释。
会场恢复了平静,老人从上衣口袋里掏出一个小铁锤,然后认真地面对着那个巨大的铁球敲打起来。
他用小锤对着铁球“咚”敲一下,然后停顿一下,再一次用小锤“咚”地敲一下。人们奇怪地看着,老人就那样“咚”敲一下,然后停顿一下,就这样持续地做。
10分钟过去了,20分钟过去了,会场早已开始骚动,有的人干脆叫骂起来,人们用各种声音和动作发泄着他们的不满。老人仍然敲一小锤停一下地工作着,他好像根本没有听见人们在喊叫什么。人们开始忿然离去,会场上出现了大片大片的空缺。留下来的人们好像也喊累了,会场渐渐地安静下来。 大概在老人敲打了40分钟的时候,坐在前面的一个妇女突然尖叫一声:“球动了!”刹那间会场鸦雀无声,人们聚精会神地看着那个铁球。那球以很小的幅度动了起来,不仔细看很难察觉。老人仍旧一小锤一小锤地敲着,吊球在老人一锤一锤的敲打中越荡越高,它拉动着那个铁架子“哐哐”作响,它的巨大威力强烈地震撼着在场的每一个人。终于场上爆发出一阵阵热烈的掌声,在掌声中老人转过身来,慢慢地把那把小锤揣进兜里。
老人开口讲话了,他只说了一句话:“在成功的道路上,你如果没有耐心去等待成功的到来,那么,你只好用一生的耐心去面对失败。”

mongodb初体验(macos)

( 2010-12-24 )

周末完成了一件大事儿,终于能有一个月的休整时间了…

nosql都已经火了这么久了,自己除了在 google reader 里看过几篇文章之外,并无过多的了解,听说 mongodb 目前比较流行,今天有时间稍做体验,简单步骤如下.

1. 安装, 从网上看了几篇教程,有几种安装方式, 最简单的莫过于用 macports 安装了. 迫不及待的执行 ”sudo port install mongodb” ,速度这叫一个慢呀,等了15分钟也没蹦几行,索性放弃. 还有说下载编译安装的,对我这种懒人也不试用,看到那一大堆依赖就头疼. 还是直接选择官方编译好的版本吧,原来这个是最简单的,呵呵.

a) 选择适合自己机器的版本并下载 http://www.mongodb.org/downloads

b) tar -xvzf mongodb-osx-x86_64-1.6.5.tgz

c) mkdir -p /data/db

d) cd mongodb-osx-x86_64-1.6.5

e)  ./bin/mongod   (运行后就不要关闭了,因为不是以服务方式启动的,先体验嘛:) 默认打开了两个端口,27017用于程序连接, 27018 是它自带的一个 web server 有一些简单的状态查看和管理,可以通过 http://localhost:27018 来访问.

d) 新开一个command窗口, ./mongodb-osx-x86_64-1.6.5/bin/mongo   启动命令行方式连接数据库. 在这儿你就可以按照官方的 http://www.mongodb.org/display/DOCS/Tutorial 敲着玩玩了..

2. 连接, 光命令行不行呀,咱体验的目的也是为了以后可以用在项目里嘛,所以php连他还得体验一下,先找个管理用的东东吧,在mongodb豆瓣小组里有人推荐 rock-php , 下了一个试试,下载解压部署到apache下就不说了.

a) 得先加载php-mongodb 的扩展呀, 一开始我尝试了使用 pecl install php-mongo ,结果编译失败,错误输出好几百行,没有耐心解决了,还是下个现成的 mongo.so 算了, 这里有下载,要看一下自己的php版本,放到你应该放的位置,我的是Mamp 所以是在 /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613 下

b) 找到php.ini 打开,增加一行 extension=mongo.so , 重启apache,搞定.

c) 访问你刚才下载的 rock-php ,可以用了. 不过没有用户名密码不行, 需要打开你刚才开的那个命令行窗口,执行 use admin 再 db.addUser(‘admin’,'admin’) 就可以用 admin 密码 admin 访问了. 怎么样,是不是和 phpmyadmin 很像?

呵呵,就到这儿吧. 都配置好了,写个简单的php测试是很容易的了.

安装好了,以后再好好看看文档,研究研究,现在对适合什么样的项目使用,性能如何,系统配置等等还都没有任何研究,以后慢慢来..

Tags: ,

centos下nginx+php-fpm报upstream timed out错误解决方案

( 2010-12-17 )

最近迁移一个网站, 从 ubuntu 9.10 迁移到 centos 5.2.* 下出现了比较怪异的错误,每天都要在错误日志里看到几百个 upstream timed out 的错误.

2010/12/15 22:32:45 [error] 3897#0: *1831129 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 116.217.163.37, server: xxx.com.cn, request: “GET / HTTP/1.1″, upstream: “fastcgi://127.0.0.1:9000″, host: “xxx.com.cn”, referrer: “http://xxx.com.cn/”

从日志的表示来看应该不是nginx的问题,而是 fast-cgi 执行超时没有及时返回数据到ngnix的问题. 可web和数据库负载都不高,不应该是程序超时的问题. 查资料也没有找到原因,网上于几个人说遇到同样问题,也没有好的解决方案. 后来仔细分析日志,发现出现错误的日志的时间都是大于当前时间,这点很奇怪,难道是系统时间的问题? 后来再仔细查资料,才找到原因. 原来是 centos 的一个内核bug, 调用gettimeofday()这个函数的时候会比当前时间快4398秒.  具体原因是因为多核cpu,各核的TSC不一样造成的.  看来 fast-cgi 应该是调用了这个函数的.

解决方案是升级内核..  相信很多和我一样不是专业sa的兄弟对升级内核之类的事情还是比较犯怵的,不过不用担心有一个不用升级内核的解决方案. 在不升级kernel的情况下,可以考虑修改time source,来解决。修改kernel option。

具体操作如下:

vim /etc/grub.conf

kernel /vmlinuz-2.6.9-1.667 ro root=/dev/hda2 clock=pit (红色部分为新增的)

然后重启服务器,问题解决.  我的产品环境已经3天没有报这个错误了.

感谢一下,优米的SA提供的支持:)

参考资料:

http://blog.chinaunix.net/u/31357/showart_1302796.html
http://tonykorn97.itpub.net/post/6414/456362

Tags: , ,

在mac下的Mamp使用xdebug调试php

( 2010-12-12 )

很久之前在windows下用 xampp 时用 xdebug 很方便. 现在用mac,用mamp已经很久没用过xdebug了,今天突然需要用到,找了找如何安装使用,简单分享一下.

1. 先下载xdebug模块吧,地址如下http://aspn.activestate.com/ASPN/Downloads/Komodo/RemoteDebugging , 里面有mac版本,找个最新的版本下载就好.

2. 下载后打开,里面有好几个目录,注意选择和你的php版本对应的目录, 我的php是5.2.*, 所以打开 5.2 这个目录, 把这个目录下的 xdebug.so 考到 /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613, 注意目录里最后这个日期可能会因为版本的不同而不同,您需要先查看一下您的目录.

3. 编辑php配置文件 /Applications/MAMP/conf/php5/php.ini , 注意如果用 spotlight 找 php.ini 的话,会找到多个,千万别选成 php4 下的.
增加下面两行

[xdebug]
zend_extension=/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so
还是要注意那个目录最后的日期,不要写错了.  如果已经存在这行了,那就把最前面的 ; 去掉就行了.
4.  重启一下 Mamp , 然后看看 phpinfo 吧. 应该已经可以用了:)
5.  喝水不忘挖井人, 上面几条都是跟这篇文章学的
http://debuggable.com/posts/setting-up-xdebug-on-mac-os-x-or-win32-linux:480f4dd6-0240-4a90-8fa1-4e41cbdd56cb

Tags: ,

我晕!网站管理员工具(google webmasters) 如此重要

( 2010-08-08 )

昨天打开了一下google的网站管理员工具,看到了触目惊心的一张统计图

天那,google3个月来几乎没怎么抓取我的网站。。。 难怪我的pr从8掉到了7,再回头看看数据统计,更是夸张,下面是从google来访的统计这是怎么回事儿呢? 基本可以判定是google的爬虫无法访问我的网站,或者访问的过程中遇到了什么障碍。

接下来就是分析问题的原因了

1. 首先查看网站的日志,发现最新的1000条里还有googlebot 造访的记录

2. 用google搜我一直排第一的关键词,结果前10页都没有翻到我,排第一的是一个极其恶心的网站,郁闷。

3. 用google网站管理员工具种的像google bot 一样去抓取功能,抓一下首页,发现失败,看来真的是google无法访问我的网站。

4. 看来要找google访问不了我的原因了,服务器是我独用的,没有其他网站,也没有邮件服务器或者其他,更没有欺骗搜索引擎的脚本,所以ip被google封掉的可能性不大。那就只能说明是我把google的ip封掉了! 因为之前遭遇cc攻击,写过一个封禁的脚本,自动把访问量超过一定限制的ip用iptables block 掉。

5. 我把 iptables 暂时停用,然后再用google网站管理员工具模拟一下googlebot,神奇的事情发生了,居然立即显示了成功状态和抓取结果。赶紧再查一下日志,发现google是通过 203.208.60.x 这个ip来抓取的。赶紧再去看一下封禁记录,发现这个c段的四五个ip都是在4月份被我的脚本自动封掉的:(  记得我当时还是分析了3个月的googlebot抓取的频率,才设定的每分钟访问动态页面超过150个被视为攻击,脚本跑了一年多,也没见google或者baidu的抓取异常。。。 莫非今年4月份的时候google修改了抓取频率了?

6. 回想起当年写这个脚本的原因,就是在08年底的时候遭遇了恐怖的cc攻击,后来写了脚本防范,为了防止误杀搜索引擎,所以加了 grep -i  ‘xxxx|xxxx’ 的管道,结果这个攻击的人更过分,直接把 refferr 写成和 google bot 一样的方式,几千国外代理一起上来!然后我又改算法。。。。

结果搞清楚了,也可以避免问题的发生了,在这里要提醒做站的朋友,google webmasters 是个好东西,一定要定期查看。写自动封禁的脚本,一定要考虑到搜索引擎误伤问题,千万别犯我一样的错误。


Tags: , ,

mac下安装memcache,与MAMP的php一起工作

( 2010-08-01 )

很久之前在公司电脑上配过一次,周末写点儿小程序用到memcache,又重新查一遍资料,呵呵。 这次做个备忘。

1. 因为需要编译,所以需要gcc环境,不过好在我已经装过xcode了,跳过此步。

2.下载memcache的源码,然后编译配置。。。。 听着麻烦吧,不过有人早就帮忙写好了脚本,从下载到安装完成,执行一下就ok:) 脚本可以从这里下载。 只需要 chmod +x 一下,然后执行就好了。

3. 安装php-memcache扩展, 也简单,下载一个 PHP 5.2.5 (Intel) memcache.so 拷到 /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-[date] ,   这个 [date]会根据你装的 MAMP 版本不同而不同,不用担心,你一定找得到。

4. 配置 php-memcache 扩展,打开php配置文件: /Applications/MAMP/conf/php5/php.ini 增加一行 extension=memcache.so 就ok了。加哪儿? 找到类似的行就行了,比如 php-mysql.so 之类的。

5. 重启 MAMP 就ok了, 用 phpinfo() 试一下,应该能看到 memcache 了。

6. 还没完,memcache 装好了,还没启动呢,我是这么启动的 memcached -m 32 -p 11211 -d 。 如果需要可以把这句加到 MAMP 的 startApache.sh 里,这样就可以自动启动了。 当然别忘了在 stopApache.sh 里也加一句 killall memcached.

就这些了:)喝水不忘挖井人,以上主要是从这篇文章学习的。

Tags: , , ,

哈哈,满月了!

( 2010-04-17 )

呵呵,不是我儿子满月哦,是我们苦心经营的优米网满月了! 3月17日上线,到今天,正好一个月。

发张图片纪念一下,3月17日凌晨,刚刚上线之后,我们最后几个坚守在工作岗位的同事在演播室的合影:

呵呵,跟老俞合了个影

( 2010-04-06 )

又好久没写blog了,实在是太忙了,忙了两三个月,优米网终于上线了,收到祝福不少,挨的板砖也不少。继续努力,希望有个好前景。
上周俞敏洪来我们这儿做了一场直播,非常精彩。 直播之前我也和他合了个影。
我跟他差不多高哦,可惜是身高,不是收入,嘿嘿。

呵呵,背景就是我们的办公室,还不错吧。

Tags: ,

我晕,用户需求是不能靠自己主观判断的

( 2010-02-21 )

做了这么多年的网站,深知网站的需求是要来源于用户的,不能靠自己的主管判断的,可像我一样有很多人很多时候还都是相信自己所谓的眼光,所谓的判断,所谓的逻辑。。 这两天在生活中有一个鲜活的例子。
老爸老妈要回河南老家,让我把宝宝的照片视频刻几张光盘让他们带回老家给亲戚们看。 这个不难,前天晚上开始制作,到制作的时候才发现,家里没有空白的cd盘,只有dvd的,一想是呀,这两年都没用户cd了,刻盘都是用dvd,再一想,好多年没看过vcd机了,老家的人也应该都有dvd机了吧,特别是我朝现在家电下乡工程还进行的“如火如荼”。于是刻了三张dvd,测试播放良好。
昨天晚上回家拿给父母,他们立马傻眼了,说老家能有dvd嘛? 我说都啥年代了,谁还用vcd呀。 还是老妈老道,擅长做市场调查,随即打电话给几个亲戚,果然人家只有vcd机,没有dvd机,这下我也傻眼了。。。。
我晕,即使生活中的小事做市场调查都这么重要,何况做产品,做网站,干事业呼!

Tags: ,

Test for Buzz

( 2010-02-12 )

看看这个文章会不会自动出现在我的 Buzz 里?
刚才开始玩儿几天新浪围脖,google buzz 就出现了,呵呵,像俺这样的 google fans,岂有不倒戈的道理?

Tags: