whoru

学习、分享、交流、沉淀

  • 夫妻之间的矛盾要在孩子不在场的时候解决。和谐产生快乐。
  • 永远没有完美的时候。将一个比原来更好的一点的版本按时提供给用户,总比为了追求一个完美的版本,最后什么都提供不了好得多。
  • 从做每一件小事开始,慢慢形成习惯,习惯塑造来性格,性格决定来命运。
  • 盖茨和扎克伯格:
    • 他们至少都上了哈佛;
    • 他们都有过人的技术专长;
    • 他们都是在找到了赚钱方法之后,才退学的,而不是在退学之后开始创业的
  • 好运气后面是三倍的努力
  • 成功固然不错,但更重要的是做个好人(It’s nice to be great, yet it’s great to be great.)。
  • J.P.摩根说:“任意让‘小钱’从身边溜走的人,一定留不住‘大钱’。”
  • 天天操作股票的人,都是在向股市送钱。只有耐得住性子的人,才能赚钱。
  • 关于投资(与巴菲特的午餐):
    • 不要过于冒险,会导致灭顶之灾的投资;
    • 不要进行自己不懂的投资。
  • 关于领导力:
    • 组织和工作能力,能否将一件事分解,组织大家完成;
    • 团结大多数人,让每个人能够各尽其才,发挥作用。
  • 关于沟通:
    • 有效的沟通要以对方的确认为准;
    • 以对方听得懂的话来沟通;
    • 要简洁,切中要害;
    • 善辩不等于好的沟通。
  • 世界上永远有很多我们觉得无能为力的事情,有些是注定的,或者运气不好,我们能做的事情比较少,但是这些倒霉事如果一再发生,就说明我们做事的方法可能有问题,需要跳出原有的固定思维,寻找更好的方法。

  • 一条河的水量,由它的长度宽度深度三个因素决定,一个人的影响力也是如此。
  • 对于那些试图在金字塔上爬几个台阶的人来讲,要做的不是抱怨社会的不公平,而是需要付出足够多的努力,同时把注意力放到最该关注的事情上去。
  • 恋爱是激情,是化学物质分泌所带来的愉悦;婚姻则是由两个人一同构造一个舒适的共同体,在那个共同体中,双方都将受益。
  • 很多时候,我们把太多的精力花在了选择上,而不是经营上,导致难以精进。
  • 做减法。如果一个人不能把一件事做好,他首先想到的就应该是少做事情,而不是让自己更忙碌。
  • 学习是一件长期的事情、一辈子的事情,是马拉松比赛,而不是百米赛跑。
  • 如果一定要说有什么起跑线的话,父母的见识就是起跑线。从教育下一代的角度看,一个家庭比贫穷更可怕的是缺乏见识缺乏爱缺乏规矩
  • 但凡那些能够比较长期稳定挣钱的行业,开始的投入都是比较大的,并不存在一种不需要投入就能获得很高回报的行业,否则,这个行业一定太挤,以至一段时间以后行业的回报肯定会急剧下降。
  • 衡量一个专家水平最可靠的方法,就是看他们是将复杂的问题简单化,让每一个人都理解,还是故作高深,将简单的问题复杂化。
  • 一个好的产品设计者会想办法引导顾客,而不会去做迎合每一个顾客的事情。
  • 少就是多。适度的选择给我们自由,但是过多的选择会适得其反。
  • 对于所喜欢的东西,如果付出的代价是让生活质量变差,那就算了。因为钱和任何东西,都是为了让你生活得更好,而不是给你带来麻烦。
  • 每个人无论是自己创业还是为别人做事,都应该有自己独特的能力,才有可能高效率的挣钱。
  • 投资大师巴菲特一直在强调长期成功的投资,关键不在于把握了多少次机会,而在于是否能少犯错误
  • 对于任何演讲者,都不要指望一次演讲能够讲清楚 10 件事,真能把一件事讲清楚,目的就达到了。

1. 安装、卸载

1.1. 安装

依赖:

  • Intel CPU
  • OS X 10.10 or higher
  • Command Line Tools (CLT) for Xcode: xcode-select --install, developer.apple.com/downloads or Xcode
  • A Bourne-compatible shell for installation (e.g. bash or zsh)
1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1.2. 卸载

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
阅读全文 »

1. 升级

1.1. 下载、编译新版本的 Nginx

1
2
3
4
5
➜  ~ wget https://nginx.org/download/nginx-1.15.6.tar.gz
➜ ~ tar zxvf nginx-1.15.6.tar.gz
➜ ~ cd nginx-1.15.6
➜ ~ ./configure --prefix=/usr/local/nginx
➜ ~ make

备份原 Nginx 二进制文件,并用新版本替换

1
2
➜  ~ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
➜ ~ \cp -rf objs/nginx /usr/local/nginx/sbin/nginx

1.2. 切换 Nginx 的新老进程

1
2
3
4
5
➜  ~ cd /usr/local/nginx/sbin/
➜ ~ ps -ef | grep nginx
root 6680 1 0 12:17 ? 00:00:00 nginx: master process ./nginx
nobody 6681 6680 0 12:17 ? 00:00:00 nginx: worker process
root 31579 3601 0 12:28 pts/0 00:00:00 grep --color=auto nginx

向正在运行的老版本的 master 进程发送热部署信号

1
2
3
4
5
6
7
8
9
10
➜  ~ kill -USR2 6680

# Nginx 将使用新的二进制文件启动新版本的 master 和 worker 进程
# 并将所有用户请求平滑的过渡到新的进程
➜ ~ ps -ef | grep nginx
root 6680 1 0 12:17 ? 00:00:00 nginx: master process ./nginx
nobody 6681 6680 0 12:17 ? 00:00:00 nginx: worker process
root 31581 6680 0 12:29 ? 00:00:00 nginx: master process ./nginx
nobody 31582 31581 0 12:29 ? 00:00:00 nginx: worker process
root 31584 3601 0 12:29 pts/0 00:00:00 grep --color=auto nginx

向老版本的 master 进程发送信号,让其优雅关闭所有 worker 进程

1
2
3
4
5
6
➜  ~ kill -WINCH 6680
➜ ~ ps -ef | grep nginx
root 6680 1 0 12:17 ? 00:00:00 nginx: master process ./nginx
root 31581 6680 0 12:29 ? 00:00:00 nginx: master process ./nginx
nobody 31582 31581 0 12:29 ? 00:00:00 nginx: worker process
root 31587 3601 0 12:31 pts/0 00:00:00 grep --color=auto nginx

⚠️ 注意:老版本的 master 进程不会自动退出,以方便执行版本回退操作。当新版本稳定运行后,再发送信号退出老版本的 master 进程。

阅读全文 »