关于求知欲

目录 思想

之前有一阵,曾仕强教授的易经讲解给我带来了很多感悟。

“亨。匪我求童蒙,童蒙求我。初筮告,再三渎,渎则不告,利贞。” 古人诚不欺我,很有道理。

求知不能填鸭式,一定是对方主动探索求知,这样才能有效果。

不禁想到一个有趣的事情,之前我看到一些觉得很有帮助,能够有所得的文章或书时,我往往发到我们的亲人群里,因为我想这样的东西如果你认真读了,绝对能够帮到自己,即使之前就明白这个道理,再看也应该能够有所收获。我也曾把我心爱的书寄给他们,但是我能够感觉到他们是无感的,也并没有觉得看书有啥应该的,该干什么还是干什么。也就是这东西并没有产生效果。我知道一个人不能改变另外一个人,一个人只能改变自己,影响别人。我们能推动的,只能是我们自己,并不能说他们这样不好。匪我求童蒙,童蒙求我啊,只有他们自己内心产生了进步的想法,需要的时候,这个时候问的问题才会到点上,才会用心,分享人的努力也才会更有效果。

这个问题反过来,当要向他人学习、请教的时候这句话给我的感受同样深刻。

我也有过这样的经历,问什么问题的时候,感觉对方会不耐烦,不太想给我讲这个问题,有时候我认为这个人就是保留着,是一个不愿意分享的人。直到后来,我遇到这样问我问题的人时,我才明白这个问题关键的地方:初筮告,再三渎,渎则不告。这个人问相同的问题很多次,可他依然在问;又或者一些问题如果百度搜一搜应该就能够很快找到答案,自己并没有先去想解决问题,什么就直接来问,这不是对对方时间精力的一种浪费? 我想应该很多人是很乐意分享自己的经验和感悟的,古人说知己难求,理解下,当遇到一个人问你问题,他问的时候已经是去探索过,这样的问题对于自己来说也是一次思考并有所搜获,这样的过程应该是很美好的。

我想找伙伴也应该是同样的道理,假如准备做一个项目,直接拉身边的朋友进来合伙,这样可能效果不是太好,给他讲一些东西引导,他能够自己主动参与,将会好很多。三国演义里,每次点将的时候,军师总是各种套路,尽量不点将,就激发他们,让他们自己主动出来请缨,这样事情才能够做得更好。

认真对待,我感觉这一切都有意思

目录 产品

生活平淡无奇,很多人都在彷徨中迷离;

有人想着,生活应是充满惊险刺激,要一件件意义非凡的大事都围绕着自己发生,然后处理。

我记得以前某次看新闻,几个国家领导人决定着人类的大事。我以前总是认为这是非凡的,非凡自然就有着非凡的体现,哪想到也就是围绕着桌子讨论,和我们几个人商量个事情一个样子。

我想起 大鱼 这部电影,这是我印象深刻的一部之一,文学的描绘总是让一些事情听起来光芒万丈,失去了真实感,离着自己真实的生活很远,直到发现它后,哦,原来就是如此。 但是你会认同它,当你对其他如人讲起时也会选择大鱼里面的那个光怪陆离的故事。

到现在,我发现生活其实也是这样,(当然我可能是错的);

我们所听到的描述应该都经过文学的修饰,看起来总是那么打动人心、让人热血澎湃。总感觉我们自己的生活也太平淡无奇了些。于是有些人便开始寻找着什么,他们看起来是那么不安,那么躁动。

当工作的时候,对不起,我是想我的生活不再平淡无奇,别TM让我加班和普普通通的上班,这一辈子都不可能的;和人沟通的时候,对不起,我想干的是大事,这些小人物我才懒得沟通…  当然我这也是夸大了许多,但这种不认真的态度却无处不在。

这也是我,我也这样过,或者现在也在这个过程中。

可我发现,只要认真对待,意义就真的不一样了,好像躁动中寻找到了一丝安宁。

工作中会和很多人打交道,形形色色不为过,认真做沟通最是有意思的事情:我想传达的是什么,我现在的心理模型是这样的,对方的心理模型是另一个样的(心理模型可以理解为人们对一个东西的不同理解吧,绝对不一样),我们之间的冲突是什么,为了良好沟通我应该坚持原则:态度要和蔼但立场要坚定,我应该站在对方立场考虑然后引导到我方利益 …

哇哦,你会发现,这里面这么多东西,毛选一样的感觉有没有? 你就在处理一件大事咧;认真下去就会发现,很多肤浅的人是斗不过认真的人的,或者当你也遇到一个认真的人的时候一来一往更有意思;想来,你还会像一个愣头青的肤浅人吗?

还有很多以前看起来平淡的事情一瞬间都变得不一样了,这个时候回过头看看,原来平淡无奇只是源于我们自己,看不到更深的层次吧。

真正的快乐

目录 思想

6.1了,让我想起有这么一个段子,说现在的孩子多么可怜,经常被拉去练钢琴,学奥数,画画,都没有好好玩,他们一点都不快乐。

细想来,这种想法真的很恐怖,有这种想法的人,孩子的教育上应该是存在问题的吧?因为你这么定义了快乐:放空发呆玩泥巴玩游戏就是快乐,学习、进步都是不快乐。而身边的孩子在你的影响下也会形成这样的观点,那将会把学习和有用处的东西全部压力化。

如何定义快乐,又如何引导孩子?

一次女朋友去亲戚家做客,吃完饭他们家的孩子就自然走到书橱拿起课外书看了起来,有疑惑还说出来问问家人(是很自然的,整个氛围很轻松),他们家小孩看书的时候肯定是快乐的,他们大人为他们营造了很好的环境。

快乐让孩子们自己去感受,去选择,当他们定义快乐是玩游戏的时候,这是我们应该去引导他们的时候,让他们学习很快乐,自然也不会玩游戏(孩子玩游戏的往往都是父母也玩游戏…,孩子父母定义的快乐是玩游戏… 恶性循环)。

不要去告诉孩子什么是你认为的快乐,不要限制孩子接触,让他们多感受,和孩子一起去讨论,让孩子自己逐渐有了快乐的定义,这就应该是我们要去做的。

 

 

2015年写给她的情书

目录 日记

姑娘,见信如唔:

现在夜已深,看着那街边烟花,天边星宿,想象着这和你家应该查不到的景,想象着有个笨蛋说不定在床上翻身呓语。我想借这纸上笔墨,寄托我的深深思念和牵挂。

我曾体会过爱情里不好受的一些滋味。但没想到,转身让我遇到了你,刚遇到你的时候应该是介绍新同事的时候,你站在什么地方,做着什么事情,我也忘却了。但是我大概一生也不能忘了你。

有你在的地方,气氛总是欢乐的,有时候你不在公司都感觉缺少了点什么。还记得那次在回家的路上你演**,我演**吗?你的敢于表现带动了我,也再一次打动了我。我知道你也有一颗不甘平凡的心。刚好我也是,我还对你这样痴迷。你已经深深烙在了我的心上。我想是一定不能忘了你。

我本以为爱情一定要红尘滚滚,奔腾策马,是对酒当歌,雪月风花。许一些天长地久,说一句爱你万年。一定要英雄救美,武功盖世,还有江南烟雨,撑伞相遇的浪漫。如诗词文章中那样的轰轰烈烈,远离烟火。

这曾一度让我疑惑,自己的生活中的爱情怎么都那样?后来,我以为爱情是岁月长久的相伴,不想绚烂在天际的烟火,好看一时,灰烬飘落无声。要坚守要一些一生的勇气。浪漫终有一天死去,生活总归于平淡。那时候,什么七彩祥云,都不如陪伴在身边,认真剥个橘子,这样真实。

宝贝,我爱你。我才知道,爱情哪里讲什么道理。

我只感觉,这世界雪融晴朗,春风像海浪一般荡漾,没什么角落不是灌满阳光,没有什么地方不是可爱之处。只因为心中有了对你的思念,只因为心中有了个你。不要良辰美景,不用山川无尽,不用我想起以前想过的那些浪漫,那样潇洒。因为这些都比不过你在我眼前转一圈,拉拉我的手,给我讲一个逗比的段子….

宝贝,思念是止不住的渴。在回家的火车上,在家里,在路上,在梦里,都一次次浮现你的脸,让我忍不住想搂着你。从来没有这么想一个人,从来没有这么牵挂一个人。想起铁达尼号Jack沉入冰冷大洋的决然,想起Rose把海洋之心丢进大海里的决然。想到这些我也不会有一丝退缩的意愿。

我们这一生的确漫长,但现在,我有与你共度一生的梦想。我想和你一起看飞雪大江,红云落日,你的头自然的靠在我的肩膀。我想和你一起体验世界的种种未知,爱和思念,而且我的眼神会始终在你身上。

我们可以一起寻找目标,筹备需要的东西,让我们的回忆有两个人的心血,我也会好好照顾你,如同生命一样,遇着什么不开心的事或念头,可记得给我讲。我们一起去面对和解决。有句话:“假若两个人还年轻,他们的生命乐章不过刚刚开始,那他们可以一起创作旋律,交换动机,但是当他们在比较成熟的年纪相遇,各自的生命乐章已经差不多完成,那么每个人的乐曲中,每个词,每件物锁指向的意思便各不相同。”还好,我在这个年龄遇到你,我是能被改变的,有什么需要磨合的地方,记得锁告诫我下,我也想成就不平凡的自己。

我一直都在担心自己,担心自己忘了目标,被生活这把刀改为和其他不少人那样的目光,去向都变了。所以我可能有一颗不安和上进的心。但宝贝,肯定不会枯燥,我们一起学吉他,学习技术,我要学你的逗比精神~~

我的逗比和宝贝,王小波对李银河说过很多关于爱情和生活的话,我想给这一句给你:

姑娘,爱你就像爱生命。

宝贝,我是如此爱你,不知你能否感受到,我要陪你一辈子。

2015.2.22

做好人,不做老好人

目录 日记

前几天去某家公司面试,老板问我如果 在与30岁+的程序员共事过程中,你感觉他能力不行,并发现了他有地方存在错误,你会怎么做?会当场指出来吗?

我的回答他认为太官僚(我当时愣了一下, 我回答了啥在结尾补上),哦,他其实想说的是 老好人 这个概念,我理解为了做好人。

好人 和 老好人 有啥区别呢?老好人最大的特点应该是把宽容和惩罚对立了起来,他们理解宽容就是惩罚的对立面,这其实是不对的。惩罚针对的是犯错、失职等;宽容针对的是缺点和弱势。一点都不对立,他们错误的理解了这两个概念,老好人 以为宽容里面没有惩罚。

老好人现象真的到处都是:

  • “我不是不想这么做,但是需要其他部门配合,我问过了,其他部门不能及时配合,所以这个事情只能往后拖了” (典型老好人,不想积极的影响其他部门配合自己完成工作,反而“理解”别人时间的安排);
  • “孩子虽然做了错事,但是我们不能批评他,要理解他 … ” (我也觉得这也是老好人,在孩子面前,有错就是惩罚,培养正确的是非观,老好人 会害了孩子一生);
  • 有人做了伤害自己的事情,选择原谅、宽容,认为自己道德高尚的阿Q精神,我还是觉得这也是一种老好人,这样子的人最后往往会总结出来这样一句:“好心不得好报”
  • … 或许更多,后面可以慢慢补充

以上老好人我也都干过,写这篇日记的目的是总结下来,警醒自己。

老好人剖析了下,那有人有错误了,直接说出来?直接指出来?

我觉得(说不定过段时间有了又不一样的理解)情况不同,处理不一样,但是 直接说出来,直接指出来 并不是目的,目的是要让对方意识到错误,接受惩罚然后改进。

《人性的弱点》上面很多东西我是很赞同的,人都有很多本性,我们要的是目的(让对方理解到犯错),当然要以对方能够接受的方式去达成。对孩子犯错了,直接点可能会产生很多问题(但是这不能成为老好人的借口),婉转点需要个人的修炼,像电影《春夏秋冬又一春》里面老和尚的方法一样。

所以,我回答可能不会直接指出来,因为会不会有可能存在我没有理解到他的思路?还有这个人的性格如何,直接指出会不会对他造成其他的伤害,影响工作?反正最后会让他理解到他的错误。(主要考虑30岁+,而且是同级…)

估计老板是不希望这样的情况出现的,其实我也很希望有那种能够直接指出的环境,这样大家效率更高,最关键的是,公司的文化环境.

所以啊,老好人无处不在,警惕。

记一次活动系统的部署,对服务器的优化,对编码的反思

目录 码农

最近部署了一个房地产的活动推广,通过砸金蛋的方式派发奖品吸引用户去售楼部看房。考虑到负载均衡,使用了 nginx + tomcat + mysql 的分离部署方式,阿里云的内网流量是免费的,所以按量付费的情况会比较划算。下面记录对nginx、tomcat的配置优化。

tomcat:

tomcat默认采用Bio的模式,虽然自带有Nio,但是性能提升不明显,使用apr库性能提升更大,所以我们将:1 下载tomcat,2 安装apr库,3 安装tomcat-native (利用 APR 来提升Tomcat性能的本地API)

1. 下载tomcat:我比较喜欢把应用放在/opt 目录下 进入 opt 目录,下载tomcat8(tomcat官网有下载地址):

cd /opt
mkdir install
cd /opt/install
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.0.39/bin/apache-tomcat-8.0.39.tar.gz
cd /opt
tar zxvf /opt/install/apache-tomcat-8.0.39.tar.gz
# 创建一个install目录,用来放安装过程中的一些文件,看个人喜好。

2. 安装apr库:http://apr.apache.org/download.cgi 这里去下载,会有三个包需要安装:

  • APR主库:
cd /opt/install
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.gz
tar zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make
sudo make install
# 工具类都装到 /usr/local 符合传统,我会把常用的放到 /opt 下,看个人习惯吧
  • APR iconv:
cd /opt/install
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.1.tar.gz
tar zxvf apr-iconv-1.2.1.tar.gz
cd apr-iconv-1.2.1
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make
sudo make install
  • APR-util:
cd /opt/install
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
tar zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --with-apr=/usr/local/apr
make
sudo make install
# 我都是把下载到包和安装过程中编译到东西统一放到了 /opt/install 目录,看个人喜好。

安装好了后,在系统变量中添加,然后 source /etc/profile 使变量生效:

vim /etc/profile
末尾添加:export LD_LIBRARY_PATH=/usr/local/apr/lib
source /etc/profile

3. 安装Tomcat Native 来调用apr库,提升tomcat性能,需要使用 openssl 1.0.2 以上版本(通过命令 openssl version 查看版本来决定是否安装openssl:

cd /opt/install
wget https://www.openssl.org/source/openssl-1.1.0c.tar.gz
tar zxvf openssl-1.1.0c.tar.gz
cd openssl-1.1.0c
./config --prefix=/usr/local/openssl -fPIC
make
sudo make install
mv /usr/bin/openssl ~
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
openssl version
# -fPIC 参数请自行百度, install 后是为了更新软链
# 出错加上下面这个:
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1 
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
cd /opt/install
wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-connectors/native/1.2.10/source/tomcat-native-1.2.10-src.tar.gz
tar zxvf tomcat-native-1.2.10-src.tar.gz
cd tomcat-native-1.2.10-src/native
./configure --with-apr=/usr/local/apr --with-ssl=/usr/bin
make
sudo make install

tomcat 所依赖的库安装完毕,现在设置tomcat的配置文件:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
 <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
 <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
 <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

 <Service name="Catalina">
 <Connector port="8080" 
 protocol="org.apache.coyote.http11.Http11AprProtocol"
 connectionTimeout="20000"
 redirectPort="8443"
 maxThreads="500" 
 minSpareThreads="20" 
 acceptCount="300" 
 disableUploadTimeout="true" 
 enableLookups="false" 
 URIEncoding="UTF-8" />

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
 <Engine name="Catalina" defaultHost="localhost">
 <Host name="localhost" appBase="/opt/webapps"
 unpackWARs="true" autoDeploy="true">
 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
 prefix="localhost_access_log" suffix=".txt"
 pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 <Context path="" docBase="/opt/webapps/zjd" reloadable="false"/>
 </Host>
 </Engine>
 </Service>
</Server>

tomcat 的配置文件就是这样,可以查询每项的意义自己调整。tomcat最主要的优化在于JVM 的设置,这篇文章Linux中JDK安装:通过命令行安装和手动安装 手动安装的方式,环境变量中的 JAVA_OPTS 进行设置,本次优化后的环境变量:(记得 source /etc/profile 使其生效)

export JAVA_HOME=/usr/local/java/jdk1.8.0_112
export JAVA_OPTS="-server -Xms1024m -Xmx3072m"
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CATALINA_HOME=/opt/tomcat
export LD_LIBRARY_PATH=/usr/local/apr/lib

nginx:

nginx需要安装最新的稳定版,安装请参考之前的文章,因为我们tomcat会采用 Bio、Nio、Apr,所以需要升级openssl到更新版本,记得先装新版本的openssl(参考上面tomcat部分),在安装依赖库的时候 注意不要再安装 openssl 了!之前的这篇文章Ubuntu 中源码安装Nginx ,好了 nginx 也装好了,其调优的配置文件:

worker_processes 2;# 系统有几个核心就设置为多少
events {
 worker_connections 1024;
}
http {
 include mime.types;
 default_type application/octet-stream;
 sendfile on;
 tcp_nopush on;
 keepalive_timeout 65;
 gzip on;
 gzip_vary on;
 gzip_proxied any;
 gzip_min_length 10240;

 upstream servers {
 server 127.0.0.1:8080 fail_timeout=0;
 }
 server {
 listen 80;
 server_name xxxxxx.com;

 location ~ .*\.(gif|jpg|jpeg|png|ico|swf)$ {
 root /opt/webapps/zjd/asset/static; 
 expires 30d;
 }
 
 location / {
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_redirect off;
 proxy_connect_timeout 240;
 proxy_send_timeout 240;
 proxy_read_timeout 240;
 proxy_pass http://servers;
 }
 
 error_page 400 500 /opt/tomcat/webapps/zjd/asset/views/error.html;
 }

}

项目打包上传就开始运行了,两核4G内存,完全无压力,内存最高才到 37%,cpu 就没上过15%。。。刚开始就这么大人同时砸(因为开始时间是定好了的,所以一开始的压力最大)后台数据:

qq20161217-1634132x

代码上的反思:

  1. 改动很小的(基本上不改变)要使用缓存,开发时就要想到这点,架构上就引入缓存,或者部署上线前要对这块进行优化,重复读取是不可取的。
  2. 单一职责,本次上线后分析日志,发现有一个请求速度很慢,跟踪发现调用了后台管理员才会使用的复杂sql,而这是因为service层把该方法封装得太大,名字取得范围就很大,导致在用户端竟然调用了它(全部代码是我写的情况下都发生这种情况…团队开发的情况就可想而知)。

挂掉科目三的思考

目录 日记

报了驾校两年多了,断断续续的去练,刚开始的热情自从在第一次科二挂掉的时候就慢慢减少,外加工作忙起来,就没有再去考过。

没有驾照经常很不方便,状态在几周前变化了:没有再去练过的情况下,报了科二的考试,第二天抽了两个小时的带薪假,竟然就把科二过了。在当时考科二的时候,明显感觉心理素质比第一次好上不少。(心理素质太重要了,不紧张后对环境的感觉都准确很多)乘着这个劲,练习科三都感觉很顺畅,在两次练习后就决定报了今天的科三考试,练就一身功夫似乎终于可以施展拳脚了。

但是,在灯光模拟阶段就挂掉,完全还没有发动车子,同车考试的其他三人都全部合格了。在灯光模拟的时候,误把小灯当成雾灯,更严重的是当时并没有意识到这个问题。所以当第一次提示我成绩不合格的时候,我还在想为啥会挂掉呢?我并没有做错啊… 然后就开始第二次尝试。

问题就在这里:系统提示灯光操作不合格的时候,没有找到真正的问题,竟以为是要开远光灯,就开始了新的尝试,肯定是同样的结局。 当时时间是充足的,完全可以准备好后再开始。

第一,思维的条理性不够。系统都给了提示,肯定是操作有问题,应该认真核对检查,而不是还坚持认为都做对了找其他原因。

生活中也是一样,已经产生了不良的结果,反思的时候就更不能跳过核心找其他地方的问题。哪怕是一直认定的基础的地方,都要去认真思考,反省。 这往往是很难的,但只有这样,才能避免在错误的道路上越走越偏,最终只可能是挂掉。仔细去发现,这样的例子在生活中简直不能太多:被人批评后没有认真剖析自己犯的错误,而是认定那些指出错误的人不怀好心,然后不和他们一般见识,最后的结果当然也很明显,最终还是要自己承担所有后果。

这类问题的另一面也是值得警醒的:当你取得好的方面的结果的时候,不能简单的认为自己核心是对的而忽略了一些其他细节的帮助。

思维要全面,要有条理,经过今天的挂考,总结下来,警醒自己。

 

 

“心智”的力量

目录 杂念

刚看《和时间做朋友》和人聊起来的时候,总会提到“心智”,有次同事问我,心智是指什么?

当时认为心智是一个万能宝,能解决你很多实际问题。所以想下一个明确的有指导性的定义,随着思考和后面看完更多一些书的时候,会发现好多都和心智相通。

想来心智算一个层面的概念,就和“战略”一样,是一个大的概念。随着心智的提高,你理解事物都有多面性,就不会强求他人的观点和你一致;理解学习不是一蹴而就,是需要投入较多时间和精力,需要很多看起来枯燥的大量重复,就不会怀着投机的心态,装模作样去报个班而中途放弃;理解了每个人都有自己的追求和自己的局限,就能理解有些不同的生活方式。

非要有个定义,心智是理解规律,理解本质,理解总的方向。

后来有次和人说到孩子的教育,也说到这个问题。

“兴趣是最好的老师” 说得没错,但最后好多孩子都变得没啥兴趣了。

刚开始孩子想学琴,他们如果不理解学习,不理解兴趣,而家长也不进行心智方面的引导,多数时候都会变成半途而费的那一类孩子。那大抵是因为满怀的热情和期望(有可能还带家长的鼓励,期望就变得更高)在需要花费心思、不断重复练习而不是那么快就能有成就感的过程中略感失望,这些挫折是没有预先意识到的,期望的结果并没有得到,慢慢就不去练习了,直至荒废。

有家长说孩子毛躁,怪孩子不够认真。细想会发现一些问题。

兴趣和学习是有规律的。我理解的兴趣不是凭空产生的,兴趣需要有正反馈的激励,在正反馈的激励下会感兴趣再到更感兴趣。如果你做一件事情,一直都失败,你还有兴趣做下去?(想起大学上技术课,有同学每次都在搞基础环境配置,从来就没在课堂上成功跑起过项目,所以他们已经换行了…)。同样对于学习,我理解的是会需要投入较多的时间和精力的,还有需要大量的重复练习,过程中肯定会遇到挫折,而找到良好的学习方法并快速解决问题的能力也是需要去花精力思考总结(这样想起来反倒更感兴趣,但是枯燥的可能还是存在的,一定要意识到)。这样学习的过程中遇到挫折才不会一蹶不振,而是已经清楚的知道,这正是学习的正常规律,便会更加淡定的对待,更加认真的重复练习。

应该对孩子多进行心智方面的引导和教育,让他也明白兴趣的规律,明白学习的规律,明白学琴过程中一时的挫折是会存在的,预期也就更现实准确一些。 这样,低谷的时候不会放弃,顺利的时候也不会轻浮,也就更容易保持下去,学好一门乐器了。(家长要是只认为孩子不听话,也是在心智层面没有理解孩子的成长学习过程,这都可以延伸出一个学科了…)。

自恋应该也属于心智不高的表现。由于没有认识到有时候人家肯定你只是出于礼貌,出于交际,反而以此沾沾自喜,自以为是,没有意识到有些话是存在差异的,没有得到正确的反馈,也没有思考总结出良好的自我反省方法,在自恋的路上越走越远,走到没朋友。

心智的概念应该和情商是一类的吧,不管怎么说,光了解了他们,得到了规律和本质,并不能发挥出心智的力量。心智是一个大概念,你还得去理解更多的方方面面的规律和本质,有人会说那这样的话,心智这个概念就没有用嘛,因为根本上还是得去理解各个方面的本质,对于一些不熟悉的方面又怎么办?这个概念也只是鸡汤而已。

我感觉并不是这样,当你有了这个理解和认识后,想问题的时候就会多一个思路出来,能够快速的去认识规律和本质,就能够让自己更加平和、冷静,解决问题也应更得心应手。

不得不说《毛泽东选集》算一本有意思的书,但是以前竟然发现不了这种趣味,毛爷爷那种看清本质的能力真的让人佩服,辩证唯物的思路的却应该早点理解。空了就多读书,真的没错。

 

Let’s Encrypt – 免费的Https证书 使用总结

目录 码农

Let’s Encrypt 是一个新型的CA认证方式,简单,易得地获取 TLS/SSL 证书,能够提供 https 的web服务器加密传输。

nginx-letsencrypt

本次使用是在 Ubuntu Server 14.04 上,对web端到nginx之间进行加密,nginx到内网的Tomcat/Apache服务器不进行加密(也可以进行,但是个人觉得没有必要)。

Step 1 — 安装 Let’s Encrypt :

要想使用Let’s Encrypt,要先在服务器上安装Let’s Encrypt的客户端,现在更名为certbot,从他们的官方Github(https://github.com/certbot/certbot)上获取并安装。

安装 Git 和 bc :

sudo apt-get update;
sudo apt-get -y install git bc

安装客户端certbot:

sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
cd /opt/letsencrypt
./letsencrypt-auto --help all

将会进行安装,过程中可能会遇到我遇到的错误:no response “Installing Python packages”   FUCK GFW! 如果遇到其他错误,可以google一下,实在不行就去创建 一个issue。

至此,安装完成。

Step 2 — 生成证书 :

cd /opt/letsencrypt
./letsencrypt-auto certonly -d example.com -d www.example.com

certonly 有webroot参数,是限定在某个目录内,我们这里只需要把需要和带www.的二级域名设定,运行上面命令后,会让你输入 公司信息、你的邮箱、密码等信息。如果当前你服务器上 80端口有运行的程序,要先关闭掉。

运行完成后会出现:Output:

IMPORTANT NOTES:
 - If you lose your account credentials, you can recover through
   e-mails sent to sammy@digitalocean.com
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your
   cert will expire on 2016-03-15. To obtain a new version of the
   certificate in the future, simply run Let's Encrypt again.
 - Your account credentials have been saved in your Let's Encrypt
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Let's
   Encrypt so making regular backups of this folder is ideal.
 - If like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

这样的内容表示证书已经生成!!会提示里保存的位置,你可以进入查看了(这里是/etc/letsencrypt/live/example.com/fullchain.pem)
  • cert.pem: Your domain’s certificate
  • chain.pem: The Let’s Encrypt chain certificate
  • fullchain.pem: cert.pem and chain.pem combined
  • privkey.pem: Your certificate’s private key

好了,证书已经生成,下面我们将进行配置 nginx 。

Step 3 — 配置nginx :

在nginx的server配置中:

 listen 443 ssl;
 server_name www.example.com;
 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

这样,nginx就会在 https 端口 443 中监听了,在下面依然可以设置你将代理的内网服务器。配置成功后,打开你的网站查看吧。(当然最好做一个 http 的301跳转到https)

server {
 listen 80;
 server_name example.com www.example.com;
 return 301 https://www.example.com$request_uri;
}

Step 4 — renew证书 :

上面已经配置完成,但是 Let’s Encrypt 的证书有效期只有三个月,这就意味着三个月后就要更新一次。更新命令:

/opt/letsencrypt/letsencrypt-auto renew

这个命令会自动检查证书剩余时间,如果时间少于30天了,就会自动更新,为了让他自动进行更新,我们可以使用 crontab 来进行定时任务执行这个命令:

sudo crontab -e

然后在命令中输入(每半个月进行一次):

30 2 1,15 * * /etc/init.d/nginx stop
30 2 1,15 * * /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
35 2 1,15 * * /etc/init.d/nginx reload

这个和 QuartZ 和 Spring-task 类似:

crontab0511141848

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

More — 更新 Let’s Encrypt:

cd /opt/letsencrypt
sudo git pull

 

 

Mysql支持emoji图标存储

目录 码农

一 修改您的数据库、表、字段

utf8mb4完全向后兼容utf8,无乱码或其他数据丢失的形式出现。

# 对每一个数据库:
ALTER DATABASE 这里数据库名字 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# 对每一个表:
ALTER TABLE 这里是表名字 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 对每一个字段:
ALTER TABLE 这里是表名字 CHANGE 字段名字 重复字段名字 VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

二 修改mysql配置文件


[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci