javascript common cases and solution

日 02 十一月 2014 by seaify

About

javascript语言, 代码上比python要麻烦许多, underscore, lodash这些库减少了不少痛苦.

问题1: 两个array, json合并(数据合并, 如data = merge(req.query, req.body))

问题2: 取出数组中第一个不是undefine的元素(比如取ip地址, 举例req.body > req.header['real_ip'])

问题3: 过滤数组, json中,所有value为空的元素(url加解密时会用到, 要去除值为空的键值对如快钱)

问题4: 给定json, 一个list, 判断是否list中的元素是否在json中都有对应的key, 且value不是空.(服务器端收到请求后,对参数进行校验, 某些域一定要有值)

问题5: 给定json, 按照value, 或者key排序(支付宝消息签名需要这么搞), 并且拼接成url param

问题6: 给定值, 判定是否在一个数组中

问题7: 本周二12:00时间的设置

momentjs

问题8: 判断一个数组是否是另一个数组的子集合(检查参数是否齐全)

_.intersection

问题9: 对数组中的每个元素, 进行运算, 比如乘以2

_.map

问题10: 判定对象中是否有a属性, 并判断该属性值是否为123

use brototype


shadowsocks with supervisor

六 01 十一月 2014 by seaify

shadowsocks 以及 Supervisor

翻墙除了赫赫有名的goagent, 以及专业的vpn外, 还有shadowsocks这种解决方案. shadowsocks比goagent稳定(没办法goagent目标太大了), 比vpn便宜, 只需要你有一台没被墙的主机就行, 作为server端.

它的优点有部署很简单, 支持各种平台, windows, mac osx, linux , android, ios试过都可行. 自己搭建的代理, 当然就不会像75vpn这种, 只允许一个设备连接到代理机器上, 多蛋疼.

安装

这么牛逼的东西, 当然早有人写好安装步骤了, 上链接, shadowsocks. 使用这个链接安装后, linux系统上就能正常翻墙了.

当你在远程主机上搭建好server端后, 接着就是在你的各个终端上安装client, 开始翻墙, 各终端的client端下载地址, supervisor client. 值得一提的是, supervisor 中, 提供了后台运行shadowsocks的方法, 使用的是Supervisor. 在我的ubuntu下, 我的dropbox也需要后台运行, 也同样使用到了, 见配置文件:

[program:dropbox]
command=/home/chuck ...

continue
read more