• npm常用命令(nodejs)

    npm install <name>安装nodejs的依赖包

    例如npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install express@3.0.6

    npm install <name> -g 将包安装到全局环境中

    但是代码中,直接通过require()的方式是没有办法调用全局安装的包的。全局的安装是供命令行使用的,就好像全局安装了vmarket后,就可以在命令行中直接运行vm命令

    npm install <name> –save 安装的同时,将信息写入package.json中

    项目路径中如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包

    这样代码提交到github时,就不用提交node_modules这个文件夹了。

    npm init 会引导你创建一个package.json文件,包括名称、版本、作者这些信息等

    npm remove <name>移除

    npm update <name>更新

    npm ls 列出当前安装的了所有包

    npm root 查看当前包的安装路径

    npm root -g 查看全局的包的安装路径

    npm help 帮助,如果要单独查看install命令的帮助,可以使用的npm help install

  • tar 压缩/解压包

    tar包压缩的时候用cvf参数,解压的时候用xvf参数
    或压缩的时候用czvf参数,解压的时候用xzvf参数

    bz 包遇到了,就把z参数换成相应j参数

  • centos6 安装spawn-fcgi No package spawn-fcgi available.

    32位centos6:

    http://mirrors.neusoft.edu.cn/epel/5/i386/repoview/epel-release.html
    
    rpm -Uvh http://mirrors.neusoft.edu.cn/epel/5/i386/epel-release-5-4.noarch.rpm

    64位centos6:

    rpm -Uvh http://mirrors.neusoft.edu.cn/epel/5/x86_64/epel-release-5-4.noarch.rpm
    
    yum install spawn-fcgi
  • 墨菲定律

    1.别试图教猫唱歌,这样不但不会有结果,还会惹猫不高兴。
    2.别跟傻瓜吵架,不然旁人会搞不清楚,到底谁是傻瓜。
    3.不要以为自己很重要,因为没有你,太阳明天还是一样从东方升上来。
    4.笑一笑,明天未必比今天好。
    5.好的开始,未必就有好结果;坏的开始,结果往往会更糟。
    6.你若帮助了一个急需用钱的朋友,他一定会记得你——在他下次急需用钱的时候。
    7.有能力的——让他做;没能力的──教他做;做不来的──管理他。
    8.你早到了,会议却取消;你准时到,却还要等;迟到,就是迟了。
    9.你携伴出游,越不想让人看见,越会遇见熟人。
    10.你爱上的人,总以为你爱上他是因为:他使你想起你的老情人。
    11.你最后硬着头皮寄出的情书;寄达对方的时间有多长,你反悔的时间就有多长。
    12.东西越好,越不中用。
    13.一种产品保证60天不会出故障,等于保证第61天一定就会坏掉。
    14.东西久久都派不上用场,就可以丢掉;东西一丢掉,往往就必须要用它。
    15.你丢掉了东西时,最先去找的地方,往往也是可能找到的最后一个地方。
    16.你往往会找到不是你正想找的东西。
    17.你出去买爆米花的时候,银幕上偏偏就出现了精彩镜头。
    18.另一排总是动的比较快;你换到另一排,你原来站的那一排,就开始动的比较快了;你站的越久,越有可能是站错了排。
    19.一分钟有多长? 这要看你是蹲在厕所里面,还是等在厕所外面。
    20、计划没有变化快。
    21、欠帐总是要还的。
    22、做恶总是要遭报应的,现在未报,不是不报,只是时候未到。
    23、该来的总是要来的。
    24、明天又是一个新的开始。
    25、你越是害怕的事物,就越会出现在你的生活中。
    26、往往等公车太久没来,就走了的人,刚走公车就来了。
    27、关键时刻掉链子。
    28、越想要什么就越能得到什么。
    29、人出来混,总是要还的。
  • 移动互联网产品设计的原则

    1、 绝不考虑Web形态,一切考虑都基于APP。

    2、 产品优先级:

    (1)有趣高于功能。产品必须有趣,必须Cool,才可能形成传播和口碑。

    (2)功能高于交互。明确的功能满足明确的需求,用户不会在意炫酷交互效果。

    (3)交互高于UI。便捷、快速的交互设计为先,围绕具体功能实现UI,而非有优质UI方案为此专门设立一个功能。

    3、 聚焦:一个APP只做一件事情,一个大而全的APP意味着全面的平庸。

    4、 永远一维化:让用户在一个维度里解决具体的问题,Twitter的Timeline就是一个好的范例。而类似Facebook、Path那样的滑出式菜单则是一个灾难,因为这使得产品拥有两个维度,加大了用户理解的困难。

    5、 保持主干清晰,枝干适度。产品的主要功能架构是产品的骨骼,它应该尽量保持简单、明了,不可以轻易变更,让用户无所适从。次要功能丰富主干,不可以喧宾夺主,尽量隐藏起来,而不要放在一级页面。

    6、 不要让用户选择。同一个页面之内,有多个入口;同一个功能,有多个实现方式;同一个界面,有多个展示方式。这对于用户来说是一种痛苦而非享受,因为他们只会因此而感觉到困惑和恐惧。用户宁可采取重复操作漫长而固定的操作路径,也不愿意使用多变的快捷方式。

    7、 隐藏技术,永远展现简单的、人性化的、符合人类直觉的界面。开发不可以为了炫技而展示功能,产品不可以为了炫耀而功能堆砌。

    8、 拒绝个性化。除了依靠设计特色而立身的APP,换肤一类的个性化设计,除了让产品经理幻觉自己做了许多工作而自我满足之外,没有任何价值。它只能证明产品经理对自己的产品不自信,因为自信的产品经理凭借默认皮肤就可以满足用户。延伸开去,一个好的产品,其功能应该满足全球用户需求,无需为地区做特别定制化。

    9、 产品一定程度上是为了满足人性中的贪嗔痴,这是用户的痛点。能把握住之后,产品经理应该超越其上,用产品帮助人们得以解脱。

    10、想清楚自己究竟要做什么,不去迎合上司,不去讨好用户,不去取悦自己。

    11、分类!分类!分类!这是产品经理在确定产品主要功能构架之后,唯一应该为用户做的事情。分类无助于降低产品使用的难度,但是可以帮助用户认知产品和周边的世界。

    12、永远围绕功能而做设计,永远不要倒过来做这件事情。

    13、一个产品的基本功能不受用户认可,做加法也无济于事。

    14、想不清楚一个功能点之前,宁可不做。

    15、千万不要让用户在产品里“管理”什么。

  • 使用nginx作图片服务器的访问权限控制

    说到访问权限控制,很多看了nginx相关文章的朋友都会自然联想到X-Accel-Redirect这个头。这个头有个缺陷,就是所有的访问都会先经过一个fastcgi来判断权限。在下载系统上,用这个方法是非常合适的,但是在访问量非常大的图片服务器,单单用这个方法会使大量无需权限判定的图片也经过一个fastcgi处理,多此一举并且无端耗费大量的资源。虽然X-Accel-Redirect是一个新的方案,但是并不代表它能很好的解决所有问题,同时也不妨碍继续思考解决问题的其它办法。

    图片服务器加上权限判断主要用于博客和相册这样的系统。在网上稍微观察,可以看到目前大部分的博客相册等系统并没有针对图片本身加入权限判断,而仅仅是将网页部分的权限控制住。这样的话很多网友将其图片加锁,实际上此图片在外部仍有办法打开。我估计此原因有其一是实现起来有性能问题,其二是诸多网站将图片放置到CDN上,而CDN并没有对此有相应的方案的缘故。走了一圈发现只有QQ空间在用带权限的图片,而它看上去是直接用fastcgi实现的,性能居然还不错,佩服一下。

    下文单纯解决性能问题,其思路是在访问图片附近放置一个控制文件,通过nginx判断决定是否要到fastcgi认证,其原理类似apache的.htaccess。有用到CDN的,因为CDN多数是squid,要加入清理squid缓存的机制。

    1、针对单一图片的控制

    如果图片按照哈希结构放置,那么用户的图片加锁后要把每一张图片都加上控制文件,如果该用户图片较多,写入时稍嫌多些。

    比如有一张图:

    /data/image/a/z/asdfqerqwegasd.jpg

    写上一个空文件:

    /data/image/a/z/asdfqerqwegasd.jpg.lock

    然后在nginx配置判断:

    location / {
    root /data/image/;
    if ( -f “${request_filename}.lock” )
    {
    #rewrite ^(.*)$ http://www.sudone.com/access.jsp?url=$1 last;
    return 403;#test
    }
    }

    这样,只要在图片旁边有一个.lock文件,就会访问到403 Forbidden;使用rewrite会将图片链接和cookie定位到后端,由后端返回判定结果X-Accel-Redirect头或者重定向到另外一个jsp去填密码。

    2、针对目录的控制

    如果图片是按照目录放置,那么配置会稍微复杂一些。

    location / {
    root /data/image/;
    if ( $request_filename ~ ^(.*)/[^/]*$ ){
    set $dir $1;
    }
    if ( -f “${dir}/lock” )
    {
    #rewrite ^(.*)$ http://www.sudone.com/access.jsp?url=$1 last;
    return 403;#test
    }
    }

    首先用正则表达式取出图片路径的目录,然后带上控制文件名判断此文件是否存在,这样只要在图片的目录中放置一个名叫lock的空文件就能控制完整个目录:

    /data/image/a/z/lock

    测试一下,效果不错,只要控制文件存在,访问立刻403;删去控制文件,访问正常。

  • Rewrite 伪静态规则 在线Apache转换为Nginx

    http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

  • 线上nginx配置模块

    湖州4

    configure arguments:

    –prefix=/etc/nginx/

    –sbin-path=/usr/sbin/nginx

    –conf-path=/etc/nginx/nginx.conf

    –error-log-path=/var/log/nginx/error.log

    –http-log-path=/var/log/nginx/access.log

    –pid-path=/var/run/nginx.pid

    –lock-path=/var/run/nginx.lock

    –http-client-body-temp-path=/var/cache/nginx/client_temp

    –http-proxy-temp-path=/var/cache/nginx/proxy_temp

    –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp

    –http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp

    –http-scgi-temp-path=/var/cache/nginx/scgi_temp

    –user=nginx

    –group=nginx

    –with-http_ssl_module

    –with-http_realip_module

    –with-http_addition_module

    –with-http_sub_module

    –with-http_dav_module

    –with-http_flv_module

    –with-http_mp4_module

    –with-http_gzip_static_module

    –with-http_random_index_module

    –with-http_secure_link_module

    –with-http_stub_status_module

    –with-mail –with-mail_ssl_module

    –with-file-aio

    –with-ipv6

    –with-cc-opt=’-O2 -g’

    –add-module=./src/nginx-http-concat

    –add-module=./src/ngx_devel_kit

    –add-module=./src/lua-module

    测试199

    configure arguments:

    –prefix=/etc/nginx –

    -conf-path=/etc/nginx/nginx.conf

    –error-log-path=/var/log/nginx/error.log

    –http-client-body-temp-path=/var/lib/nginx/body

    –http-fastcgi-temp-path=/var/lib/nginx/fastcgi

    –http-log-path=/var/log/nginx/access.log

    –http-proxy-temp-path=/var/lib/nginx/proxy

    –http-scgi-temp-path=/var/lib/nginx/scgi

    –http-uwsgi-temp-path=/var/lib/nginx/uwsgi

    –lock-path=/var/lock/nginx.lock

    –pid-path=/var/run/nginx.pid

    –with-debug

    –with-http_addition_module

    –with-http_gzip_static_module

    –with-http_realip_module

    –with-http_stub_status_module

    –with-http_ssl_module

    –with-http_sub_module

    –with-ipv6 –with-sha1=/usr/include/openssl

    –with-md5=/usr/include/openssl

    –add-module=/home/pougin/b/nginx-1.2.1/modules/nginx-echo

    –add-module=/home/pougin/b/nginx-1.2.1/modules/nginx-upstream-fair

    –add-module=/home/pougin/b/nginx-1.2.1/modules/nginx-http-concat

    –add-module=/home/pougin/fastdfs-nginx-module/src

  • tibet

    30日14:35 抵达西藏

    D1,拉萨,布宫,大昭寺,逛逛八角街

    D2,拉萨—羊湖—江孜—日喀则

    (羊卓雍错,卡若拉冰川,宗山古堡,白居寺)

    D3,日喀则—定日—珠峰

    (景点:珠峰,绒布寺)

    D4,珠峰—日喀则

    (景点:扎什伦布寺)

    D5,日喀则—羊八井—纳木错

    (景点:纳木错,念青唐古拉山)

    D6,纳木错—拉萨

    对应海拔:

    拉萨:3650

    八一:2900

    泽当:3560

    江孜:4000

    日喀则:3850

    珠峰大本营:5200

    拉孜:4000

    纳木错:4718

  • 笑话

    1.两位棋手一动不动地在棋盘前已经沉默地坐了五个钟头了。 他们全神贯注地盯着每粒棋子。
    突然,一位棋手说:“原则上我是反对在下棋时说话的,但是我现在不得不开口问:我们到底该谁先下一步棋?”
    2.某日,一个对中文略知一二的老外去某工厂参观。
    半路当中,厂长说:“对不起,我去方便一下。”
    老外不懂这句中文,问翻译:“方便是什么意思。”
    翻译说,“就是去厕所。”老外:“哦……”
    参观结束,厂长热情地对老外说:“下次你方便的时候一起吃饭!”
    老外一脸不高兴,用生硬的中文说:“我在方便的时候从来不吃饭!”

    樱子跟小强说:“今天考试的时候我踢你一下,你就要给我瞄一下。 ”到了考试的时候,樱子踢了小强一下,小强便回答:喵!

    甲:你年薪多少?乙:1000万。甲:那一个月有80万多哦!乙:是的,这是基本工资。甲:不错嘛,做什么的?乙:做梦的 ……

    一美女从的士上下来,把照相机落在后座了。司机见状赶忙把头伸出窗外,冲着美女喊:“小姐,你相机~。” 美女一脸红,扭过头骂道:“你TMD像鸭!” 然后的士走了。然后美女追着喊:“师傅,我相机,我相机……”

    甲:老同学,好久不见了,你的女朋友小丽还好吗?乙:(得意洋洋):哈哈,她早就不是我的女朋友了!甲:嗯,你早该这样了,在大学时,我就听说她跟咱们班里好几个男生有染,想当年我还和她有过一腿呢!乙脸色铁青,半晌才低声吐出几个字:她现在是我的老婆…

    A:你的仇人和情敌同时掉入水里,有个板砖你砸谁?B:思考了一会。B:谁救砸谁。

    一天一个非洲人走在沙漠上,看到一个神灯,捡起便擦。
    出现了一个精灵说:“我可以实现你三个愿望。”
    非洲人说:“我要变白,我要天天可以喝到水,我要天天看到女人的屁股。”
    说完“碰”的一声他变成了一个马桶。

    一司机大雾天晚上迷了路,隐隐约约看见路边有一个路标,就把车停崴下来。可是雾太大,怎么也看不见写的什么字。于是决定爬上去看看。好不容易爬到顶上,终于看清上面的字:油漆未干。

    公园有一对恋人正在甜蜜,女孩撒娇说老公:我牙痛!男孩于是吻了女孩一口问:还疼吗女孩说不痛了!一会女孩又撒娇的说:老公,我脖子痛!男孩又吻了吻女孩的脖子,又问这回还疼吗女孩很开心的说:不痛了!旁边一老太太站着看了半天了,忍不住了,上前就问小伙子说:小伙子你真神了,你能治痔疮不能。

    几个人在高尔夫更衣室,一手机响很久,一男人按了免提键。女:亲爱的你在俱乐部吗?男:在。女:我看到一辆宝马才不到两百万。 男人:买 。女:还有那个楼盘又放盘了,6万一平。男:买。女:好爱你。男:也爱你。
旁边男人敬佩得目瞪口呆。男人挂了电话,问:这是谁的手机?

    某剩女在一次相亲时拐弯抹角地打听男方家底:“你最常用的交通工具是什么?” 男方回答:“飞机,动车。” 女方觉得男方属于高档商务白领,遂嫁之。 婚后发现男方是个民工,骑一辆破自行车上下班。 女怒道:“当初你竟然骗我。” 男茫然答道:“没骗你啊,我说的就是非机动车呀。”