nvm管理不同的node版本

前任栽树后人乘凉 :http://www.cnblogs.com/kongxianghai/p/5660101.html

安装多版本node

  • 安装nvm
    通过下面的命令可进行一步到位的安装,下面两种方式可二选一。
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash
    或者:
    wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.2/install.sh | bash

安装

  • 在命令行中运行命令,安装当前最新的稳定版。
    nvm install stable
  • 运行命令,指明版本,安装早期的版本0.12.4。
    nvm install 0.12.4
  • 安装后,当前使用的node版本默认为最后一次安装的版本,在命令行中运行命令可查看当前版本。
    nvm current
  • 切换node版本
    nvm use 6
  • 显示所有安装的版本
    nvm ls
  • 设置默认使用的版本
    nvm alias default <version>

卸载

  • 删除引用
    nvm deactivate
  • 卸载
    nvm uninstall 7

安装全局组件

非nvm管理的情况下,全局组件是安装到/usr/local/lib/node_modules下,然后通过软连接的方式把包中bin目录下的可执行文件链接到/usr/local/bin。不管用什么版本都装到这些目录下,多版本就没法玩了。

在nvm管理下,以沙箱的方式,全局组件会装到.nvm目录的当前版本node下,也就是装在nvm这个沙箱里,跟在指定版本的node下,当前有什么版本的node,就有对应的全局组件。这是nvm强大的地方,在多运行环境的管理和切换极为好用。

使用.nvmrc文件运行

在服务器上很多时候会运行多个应用系统,每个应用系统使用的node版本是不一样的,老系统用0.12.x甚至0.10.x,新系统用了新特新所以用最新的node版本,都很实际很正常。

为了让不同的应用系统使用各自所需的node版本运行,我们只需在各应用系统内的根目录里生成一个.nvmrc文件,在其内写一个版本号,利用nvm run <系统启动文件>的方式运行系统,即可完成要求。详情请看文章开头链接。

二十四种常见的逻辑谬误

二十四种常见的逻辑谬误
第一条:稻草人
第二条:错误归因
第三条:诉诸感情
第四条:谬误谬误
第五条:滑坡谬误
第六条:人身攻击
第七条:诉诸虚伪
第八条:个人怀疑
第九条:片面谬误
第十条:诱导性问题
第十一条:举证责任
第十二条:语义模糊
第十三条:赌徒谬误
第十四条:乐队花车
第十五条:诉诸权威
第十六条:合成谬误
第十七条:没有真正的苏格兰人
第十八条:基因谬误
第十九条:非黑即白
第二十条:窃取论点
第二十一条:诉诸自然
第二十二条:轶事证据
第二十三条:德克萨斯神枪手
第二十四条:中间立场

第一条:稻草人

你歪曲了别人的观点,使你自己能够更加轻松的攻击别人。 你夸张、歪曲,甚至凭空创造了别人的观点,来让你本身的观点显得更加合理。这是一种极端不诚实的行为,这不但影响了理性的讨论,也影响了你自己观点的可信度。因为如果你可以负面的歪曲别人的观点,你就有可能从正面歪曲自己的观点。 例子:小明说国家应该投入更多的预算来发展教育行业,小红回复到:“想不到你这么不爱国,居然想减少国防开支,让外国列强有机可乘。” 小红就犯了稻草人谬误。


第二条:错误归因

你从两个事物可能存在相关性,就得出一个事物是造成另一个事物的原因。 你看到了两个事物同时存在,就觉得其中一个事物是另一个的起因。你的错误在于,同时存在的两个事物未必有因果关系,可能这两个事物有共同的起因,或者两个事物根本没有因果关系,它们直接的共存只是
2 巧合。一个事情比另一个事情先发生同样不能说明两个事物肯定存在因果性。 例子:小红指出,过去几个世纪全球海盗数量减少,全球温度在升高,从而得出是海盗的数量的减少造成了气候变化,海盗能够降低全球温度。小红犯了错误归因的谬误.


第三条:诉诸感情

你试图通过操作别人的感情来取代一个有力的论述。 你操作的感情可能包括恐惧、嫉妒、怜悯、骄傲等等。一个逻辑严谨的论述可能激起别人的情感波动,但是如果只用感情操作而不用逻辑论述,那你就犯了诉诸感情的错误。每个心智健康的人都会受感情影响,所以这种谬误很有效,但这也是为什么这种谬误是低级和不诚实的手段。 例子:小红在饭店看到小明吃狗肉,于是上前训斥:“你怎么可以吃狗肉,小狗多么可爱,就像小朋友一样,你忍心伤害小朋友吗?” 小红犯了诉诸感情的谬误。


第四条:谬误谬误

你看到别人的论述水平很低,或者别人的论述里面有谬误,就认为别人的观点一定是错误的。 很多时候,辩论的赢家获胜并不是因为观点正确,而是因为辩论技巧更好。作为一个理性的人,你不能因为别人的论述中存在谬误或者错误,就认为别人的观点一定是错误的。 例子:一个提倡健康饮食的人在电视上发表了很荒唐的饮食理论来推广健康饮食理念,小红看后觉得健康饮食就是骗人的,于是开始每天暴饮暴食。小红犯了谬误谬误


第五条:滑坡谬误

你搞得好像如果A发生了,那么Z也一定会发生会,以此来表示A不应该发生。 你不讨论现下的事物(A),而是把讨论重心转移到了意淫出来的极端事物(Z)。因为你没能给出任何证据来证明A的发生一定会造成极端事物Z的发生,所以这是一种诉诸恐惧的谬误,也影响了人们讨论A时候的客观性。 例子:小红反对同性恋婚姻,因为她认为如果我们允许同性恋结婚,那么就会有人想要和桌子、椅子结婚。小红犯了滑坡谬论。


第六条:人身攻击

你讨论时针对对方的人格、动机、态度、地位、阶级或处境等,而进行攻击或评论,并以此当作提出了理据去驳斥对方的论证或去支持自己的论点 人身攻击时不一定是直接进行攻击,也可能是通过背后捅刀子、暗示听众等等方式来造成对对方人格的质疑。你试图用你对别人人格的攻击来取代一个有力的论述。更多关于人身攻击。 例子:当小明提出了一个很合理的关于基础设施建设的提议的时候吗,小红说她不相信任何小明说的话,因为小明不爱国,经常批评政府,不懂得感恩。小红犯了人身攻击的谬误。


第七条:诉诸虚伪

你不正面回应别人对你的批评,而是用批评别人作为你的回复——“你不也曾经…..” 你想要把通过用批评回应批评的方式,免去你为自己辩护的责任。你通过这种方法来暗示对方是个虚伪的人,但是不管别人虚伪与否,你都只是在回避别人对你的批评。 例子:小明在和小红争论的时候指出小红犯了一个逻辑谬误,小红不正面捍卫自己,反而回应:“你之前也犯了逻辑谬误。” 小红在这里犯了诉诸虚伪的谬误


第八条:个人怀疑

你因为自己不明白或者知识水平不够,就得出一个事物可能是假的。 一些很复杂的概念,比如生物进化等等需要一些基本的理解和知识。有些人因为不理解这些复杂的概念,而觉得这些东西是错误的。 例子:小红指着块石头说:“你说进化论是真的,那你让这块石头进化人给我看看。”小红犯了个人怀疑的谬误


第九条:片面谬误

当你的观点被证明是错误的时候,你用特例来给自己开脱。 人类都不喜欢被证明是错的,所以当他们被证明是错的时候总会想办法给自己开脱。人总是觉得自己以前觉得正确的东西必须是正确的吗,所以总能找到理由让自己阿Q一下。只有诚实和勇敢的人才能面对自己的错误,并且承认自己犯错了。 例子:小红说自己有特异功能,能用塔罗牌算出未出生小孩的性别,但是孩子生下来后发现猜错了,于是她就说是算命的人缺乏信仰。小红犯了片面谬误。


第十条:诱导性问题

你在提出问题的时候加入了诱导的成分,使得对方只能按着你的意思来回答。 你试图用诱导性的问题来逼对方回答你提出的低级问题,从而破坏理性的讨论。 例子:小红怀疑自己的丈夫孙越搞外遇,为了一探究竟,于是就问他:“陈轩的屁股上是不是有个胎记?”小红使用的就是诱导性问题。


第十一条:举证责任

你认为举证责任不在提出观点的人,而在于质疑观点的人。 当有人提出一个观点结果被人质疑后,你认为举证的责任不在提出观点的人,而在质疑者。不能证伪一个事物,或者举出反例,并不能证明这个事物的合理性。当然,如果只因为没有足够的证据说明一个事物是合理的并不能肯定的说明它是不合理的。 例子:小红说他相信宇宙是一个叫KengDie的全知全能神创造的,因为没有人能证明KengDie不存在,所以KengDie是存在的。小红犯了举证责任的谬误。


第十二条:语义模糊

你用双关语或者意思存有歧义的语言来歪曲事实。 你使用双关语或者意思存有歧义的语言,当你被别人批评的时候又利用这些有歧义的语言作为自己的挡箭牌。 例子:地上一个猴,树上qi个猴,一共几个猴?


第十三条:赌徒谬误

你认为随机事物的发生和之前发生的事情是有相关性的。 有人在看到独立的随机事件(比如抛硬币)时,总觉得会和前面的事情有相关性(前面连着五个正面,下一个肯定要是反面了。)


第十四条:乐队花车

你试图说明因为很多人都在做同一件事情/相信同一件事物,这件事情就是对的。 一个事物/观点的流行程度和它本身是否合理没有关系。地球是球形的,在人们相信地球是平的时代地球也是球形的,地球才不管你信不信它呢。 例子:看到《货币战争》怎么那么畅销,小红相信一定是罗斯柴尔德和共济会在背后操纵着整个世界。小红犯了乐队花车谬误。


第十五条:诉诸权威

你利用一个权威人物/机构的观点来取代一个有力的论述。 要证明一个观点,只是摘录别人的观点是不够的, 至少要知道所提到的权威为什么有那样的观点。因为权威人物/机构也是会犯错误的,所以不能无条件的假设合理性。当然,权威人物/机构的观点有可能是对的,所以不能只因为对方使用了诉诸权威的谬误就认定这个观点肯定是错的。 例子:小红不知道怎么反驳进化论,于是就说:“我老公孙越是大科学家,他觉得进化论是错的。”小红犯了诉诸权威的额谬误。


第十六条:合成谬误

你认为一个总体的组成部分所具有的特性,对于这个总体的其它部分也是普适的。 很多时候,对于一个组成部分存在合理性的事物,对于其它组成部分并不具有合理性。我们常能观察到事物之间的一致性,所以当一致性不存在的时候也会偏见的认为有一致性。 例子:小红买了辆自行车,当她看到自行车的车座是人造革的时候,她就觉得自行车的其它部位也是人造革的。


###第十七条:没有真正的苏格兰人
你提出了一个观点,并收到了别人的批评,你试图用“诉诸纯洁”的方式来捍卫自己的观点。 你试图通过马后炮和修改标准的方式来维护自己那有缺陷的观点。 例子: 小红:“所有荷兰人都喜欢喝胡辣汤”。 小明:“孙越就是荷兰人,他就不喜欢喝胡辣汤。” 小红:“好吧,所有【真正的】荷兰人都喜欢喝胡辣汤。”<——小红这里就犯了“没有真正的苏格兰人”的谬误


第十八条:基因谬误

你通过一个事物的出身来判断它的好坏。 你试图逃避正面的讨论,而转而讨论事物的出处。这种做法和本文第六条“人身攻击”类似,都是想试图通过已有的负面印象来从侧面攻击对方,却不能正面的回应对方的论述。 例子: 小明:“孙越不喜欢喝胡辣汤。” 小红:“孙越是荷兰人,怎么会不喜欢喝胡辣汤?”<——小红这里就犯了基因谬误


第十九条:非黑即白

你把黑和白作为仅有的可能,却忽略了其它可能性的存在。 你使用了简单粗暴的假二分法,来掩盖其它可能性的存在。你想通过非黑即白的选择来误导讨论,破坏辩论的建设性。 例子:在谈到反恐战争时,总统说如果你不支持反恐战争,你就是支持恐怖分子。总统这里犯了非黑即白的谬误。


第二十条:窃取论点

你采用循环论证的方法来证明一个被包含在前提里面的观点。 这是一种逻辑智商破产的谬误,因为你把你的前提假设默认为真的,然后利用循环论证的方式来证明它。 例子:KengDie教的经文《KengDie Sutra》里面说的东西都是真理,因为在《KengDie Sutra》第一章第二段里面提到了“KengDie所述都是真理。”


第二十一条:诉诸自然

你认为一个事物是“自然”的,所以它是合理、必然并且更好的。 一个事物是自然的并不一定代表它就更好。互相杀戮是大自然中普遍存在的现象,但是大多数人都认为我们不应该互相屠杀。 例子:小红认为吃草药肯定比吃人工制造的药有效,因为草药更加“自然”。小红犯了诉诸自然的谬误


第二十二条:轶事证据

你试图用个人经验或者单独事例来取代逻辑论述或者有力的证据。 比起复杂而确凿的证据来说,轶事证据更容易获得,但是却要粗浅很多。在绝大多数情况下,量化衡量的科学数据/确凿证据比个人经验/轶事要更加可信。 例子:小红爷爷是个30年的老烟枪,现在80多岁身体还很健康,小红依次得出吸烟对身体无害的结论。小红犯了轶事证据的谬误。


第二十三条:德克萨斯神枪手

你在大量的数据/证据中小心的挑选出对自己的观点有利的证据,而不使用那些对自己不利的数据/证据。 你先开了一枪,然后在子弹击中的地方画上靶心,搞得自己真是个神枪手一样。你先决定了自己的立场,然后才开始找证据,并且你只找对自己有利的,而对于那些对自己不利的就选择性忽略。 例子:红X字会为了证明自己尽到了职责,到处宣传自己拨出了XXXX的善款,却只字不提自己公款消费的奢侈无度。红X字会犯了“德克萨斯神枪手”谬误


第二十四条:中间立场

你觉得两个极端观点的妥协,或者说中间立场,肯定是对的。 虽然大多数时候,真理确实存在于两种极端的中间地带,但是你不能轻易的认为只要是处于中间立场的观点就一定是正确的。谎言和实话的中间地带依然是谎言。 例子:小红认为疫苗会造成儿童自闭症,孙越从科学研究的结论中得出结论认为疫苗不会造成儿童自闭症,小明认为两者观点的妥协——疫苗会造成儿童自闭症,但不是全部的儿童自闭症——才是正确的。小明犯了中间立场的谬误.

使用sublime text 3 进行Python3开发

痛点1:每次编写完Python文件后都要切到terminal下输入python fileName.py命令执行文件。
解决:mac版sublime text编辑器使用shift+command+b选择Python 直接执行文件
痛点2:sublime默认执行的Python版本是系统默认的,不能直接使用Python3来执行Python文件
解决:Tools-->Build System-->New Build System 写入:
{
    "shell_cmd": "/usr/bin/env python3 ${file}",
    "selector": "source.python",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "working_dir": "${file_path}",
}
保存为/Packages/User/python3.sublime-build
然后选择环境为python3即可

mac 如何使用wget

下载单个文件,
为什么不用mac原生自带的工具:curl “网址链接” -o “输出文件名”
解释一下,wget是Linux下自带的文件下载工具非常好用,mac下还是推荐使用原生。
呵呵哒,也许我是一片假的教程文章。

抓包调试工具mitmproxy

安装:brew install mitmproxy
其他安装方式: http://docs.mitmproxy.org/en/latest/install.html

启动:mitmproxy -p 8080(监听端口号)

设置代理,具体设置方法请自行查找

抓取https:用 iPhone 打开 Safari 浏览器并输入 mitm.it,安装信任证书

使用:键盘上下移动,Enter 键进入查看详情,按 Tab 键切换顶部导航栏

拦截修改 request 和 response:
输入 i,然后输入 ~s 再按回车键,这时候就进入了 response 拦截模式。如果输入 ~q 则进入 request 的拦截模式,更多的命令可以输入 ? 查看。
其中橘红色的表示请求正被拦截,这时 Enter 进入后 再按 e 就可以修改 request 或者 response。修改时是用 vim 进行编辑的,修改完成后按 a 将请求放行,如果要放行所有请求输入 A 即可

MySQL 数据库迁移

mac 下迁移数据库的结构和内容

迁移准备:数据库文件(可用工具导出Mysql文件)

注意:由于文件权限的问题 可能不能进入Mysql的data文件内
  1. 进入文件 /usr/local/mysql/data
    如果打不开,修改文件访问权限,(右击,显示简介,修改文件读写权限)
  2. 将相应的文件(如:MYD,MYI,frm) copy进合适的数据库内(文件夹)
  3. 打开数据库,查看迁移情况

swift中weak和unowned的区别

weak和unowned都是解决循环引用的关键字
区别:
如果您是一直写 Objective-C 过来的,那么从表面的行为上来说 unowned 更像以前的 unsafe_unretained,而 weak 就是以前的 weak。
用通俗的话说,就是 unowned 设置以后即使它原来引用的内容已经被释放了,它仍然会保持对被已经释放了的对象的一个 “无效的” 引用,它不能是 Optional 值,也不会被指向 nil。如果你尝试调用这个引用的方法或者访问成员属性的话,程序就会崩溃。
而 weak 则友好一些,在引用的内容被释放后,标记为 weak 的成员将会自动地变成 nil (因此被标记为 @weak 的变量一定需要是 Optional 值)。
关于两者使用的选择,Apple 给我们的建议是如果能够确定在访问时不会已被释放的话,尽量使用 unowned,如果存在被释放的可能,那就选择用 weak。

swift 关键字篇

@noescape:no escape(没有逃脱)
用来修饰闭包,含义为非逃逸闭包。
当闭包作为参数传递进函数时,如果这个闭包只在函数中被使用,则开发者可以将这个闭包声明成非逃逸的,即告诉系统当此函数结束后,这个闭包的生命周期也将结束,这样做的好处是可以提高代码性能,将闭包声明成非逃逸的类型使用@noescape关键字。
(1) 默认,swift 3.0 弃用,函数结束后,这个闭包的生命周期也将结束。
(2) 在其内部如果需要使用self这个关键字,self可以被省略。

@escaping 逃逸闭包
逃逸的闭包常用于异步的操作,这类函数会在异步操作开始之后立刻返回,但是闭包直到异步操作结束后才会被调用。例如这个闭包是异步处理一个网络请求,只有当请求结束后,闭包的生命周期才结束。当闭包作为函数的参数传入时,很有可能这个闭包在函数返回之后才会被执行。

@autoclosure 自动闭包
(1)默认非逃逸
(2)闭包也可以被自动的生成,这种闭包被称为自动闭包,自动闭包自动将表达式封装成闭包。
(3)自动闭包不接收任何参数,被调用时会返回被包装在其中的表达式的值。
(4)当闭包作为函数参数时,可以将参数标记 @autoclosure 来接收自动闭包。
(5)自动闭包能够延迟求值,因为代码段不会被执行直到你调用这个闭包。
(6)自动闭包默认是非逃逸的,如果要使用逃逸的闭包,需要手动声明: @autoclosure @escaping 旧版本:@autoclosure(escaping)

//(a)自动闭包演示
var students = [“A”,”B”,”C”]
let studentsProvider = { students.remove(at: 0) } //自动闭包自动将表达式封装成闭包
studentsProvider()//(b)自动闭包演示
var list = [1,2,3,4,5,6]

//创建一个显式闭包
let closures = {
list.append(7)
}

print(list)//将打印[1,2,3,4,5,6]

closures()
print(list)//引用传递,将打印[1,2,3,4,5,6,7]

func func1(closure: ()->Void) -> Void {
//执行显式的闭包
closures()
}

func func2(auto: @autoclosure ()->Void) -> Void {
//执行自动闭包
auto()
}

//显式闭包
func1(closure: closures)
print(list) //将打印[1,2,3,4,5,6,7,7]

//将表达式自动生成闭包
func2(auto: list.append(8))
print(list)//将打印[1,2,3,4,5,6,7,7,8]

如何对2型糖尿病进行中医的辨证论治呢?

如何对2型糖尿病进行中医的辨证论治呢?
2型糖尿病是因为胃肠吸收来的糖不能及时送到四肢、皮肤等外周部位,这些部位的细胞不能正常消耗血糖,最后导致血糖升高。机体内的营养输送和利用由中医的脾来主管,当脾功能衰退或者脾负担过重时候,脾都不能正常地把营养运输到全身,所以,2型糖尿病人可以分为两个大类:脾功能衰退、脾负担过重。在具体用药的时候,还要根据病人体质的寒热来选择药物,寒性体质的要用温性药物,热性体质的要用寒性药物。所以,每个大类中又要分为寒热两个小类。运用中医药治疗2型糖尿病,辨证时必须分为四类。
根据自己的经验,我把2型糖尿病的辨证过程进行了简单化和条理化的整理,具体可以按照下面的方法来操作:

第一步:辨“功能衰退”还是“负担过重”
1、凡有口苦(早上起床时明显),舌苔黄腻,或黑腻等现象,就一定是脾负担过重。
2、凡有胸胁胀闷、肝区或右上腹胀闷疼等现象,属于脾负担过重。
3、只有血糖值升高,而没有任何症状的2型糖尿病人可以根据脉象加以判断:
1) 在没有服用强心药或扩血管药情况下,脉搏有力的是脾负担过重,脉搏弱,软而无力,重按脉搏力道不增加的为脾功能衰退。
2) 脉搏细而有力为脾负担过重,大而无力为脾功能衰退。
3) 左手脉强劲有力,右手脉稍弱,但重按力道增大的属于脾负担过重。
4) 左手脉软而无力,重按力道更小,右手脉即使有一定的力量,也属脾功能衰退。
5) 服用强心药或者扩血管药会改变脉象,因此,给这类2型糖尿病人诊脉,应该选在早上还没有服药的时候,这样才能掌握真实的脉象。
4、体重情况不能作为分型判断的标准,胖人不一定就是脾肺负担过重型。
5、值得注意的是,2型糖尿病人大多数是中老年人,经常既有脾功能衰退的情况,又有脾功能负担过重的情况,就如同汽车既有发动机老化问题,又存在着负担过重的问题一样。

第二步:辨“寒”和“热”
1、判断寒热,首先问诊。“平时怕冷还是怕热?”
2、第二步看舌。
1)如果病人舌质红,舌苔黄或无苔,回答怕热,肯定属热性体质;
2)如果病人舌质红,舌苔白或者黄或者无苔,回答怕冷,平时手足发凉,属内热体质。
(注意黯红和紫红的区别。黯红如放久了的猪肝的颜色,甚至有的微微带龙胆紫的颜色,舌上面必然有水滑,这种情况属于寒性体质;紫红色比暗红色鲜艳,属于热性体质。)
3)如果病人舌质淡,回答“怕冷”,肯定属于寒性体质。
4)如果病人舌质淡,但回答“怕热”,或者“没有注意,无感觉”,这时候就要参考脉象,如果脉沉,重按才能摸到,属于寒性体质;如果脉轻按重按都很有力,属于热性体质,是因为过多使用苦瓜、石膏、知母等寒性药伤了胃阳,全身还是属于热性体质。

正确分清2型糖尿病病人的功能衰退、负担过重,寒热之后,无论是用中药治疗还是平时的饮食、运动都应该有针对性地进行。
功能衰退和负担过重的病人,运动方案不能一样。有的2型糖尿病人运动以后,疲劳乏力、心脏早搏等症状减轻,有的运动后觉得更累,好几天恢复不过来。所以,运动方案不能千篇一律。
现在西医提出了许多糖尿病人食品,比如苦瓜、荞麦、南瓜、薏苡仁等等。有的病人吃了感觉状态转好,但是很多病人吃后不但没有感觉到好,而且,吃出新的疾病。我经常看到吃南瓜吃成了黄疸,吃苦瓜、荞麦吃出胃病的。这些所谓的糖尿病人食品并不是适合所有糖尿病人的,应该“辨证择食”。

本文来源中医纪元的博客 http://blog.sina.com.cn/s/blog_45f8d4f80100hit9.html