“真好”,“哪有”,原来当下最好

前几天在微博上看到一句评论,“小学时盼望中学,初中时盼望高中,高中时怀念初中,上大学了怀念中学时代,毕业工作了才知道做学生最好”,很多时候的我们,也许就是这样的状态,或幻想未来的生活、或念想过往的时光,而就是没有活在当下,没有细细品味自己的生活,时光就这样,不间断地、不幸福地流逝。

2012年的我,经过了成人礼,经过了高考,青涩地、懵懂着,踏进大学校园的大门。四年真的很快,有过享受大学的美好,有过自己所谓的努力,有过颓废、失落与失望,有过挣扎...

毕业了,工作了,坐40分钟的公交去上班,偶尔小忙,或闲时看书学习。好些天觉得日子过得萎靡,没有以往的活力。在前几周做了些改变,每天骑车去上班,30分钟的车程,还可以吹吹风。傍晚,在公司所在的公园里,打上一小时的篮球,挥洒着那熟悉的汗水,酣畅痛快...

今天打篮球,还被几个打球的哥们夸了一句,“哥们,弹跳真好,弹速还快!”,当时就小尴尬的一笑,“哪有~”。其实不是开心,只是有感触,年初的时候,打篮球崴到脚,三四个月后,竟然还感觉不适,我苦笑,是不是俺的“职业”生涯报销了,甚是想念高中时,每天傍晚自己组织的篮球赛。所以几个月来因而很少打球。

当我渴望找回我的活力时,我知道篮球还是我的最爱,没有死命地去打,没有懒散和消极,我依旧是那个能跑能跳,人送绰号“小科比”的小伙子。一句“哥们,弹跳真好,弹速还快!”,也许我们真的是没有以前状态好,但我们无感或不喜欢的现在,恰也是别人怀念的曾经,也必是未来自己怀念的曾经。

活在当下,像是老生常谈,但真的是我们生活最不该忘记的信条。

毕业挥手期再见

6月25日晚,824和1#909小聚,凌晨回来的我们,上了宿舍楼,却又下来...
多想,这时间不再流逝,这离别不要来临,在五环广场的我们,是多么舍不得彼此

6月26日,又送走了两个室友。
送钊哥到南门时,我抽泣了,拥抱着说,再也不能和你骂来骂去,看你傻傻地打游戏。我以为哭出来会好受,其实还是很难受。
送郭医生时,不住地在开玩笑,想要强忍住眼泪,却还是偷偷流出了眼泪。

刚躺在床上,看着三张空了的床铺,难过至极,为了不哭出来,我下床写这篇日记。
想想明天,送走或是和谢明敏和朱珂漫一同离开这个居住了四年的地方,酸楚涌上鼻头...

有人选择工作,有人选择gap,有人继续求学,大家都会好好的...

悲伤不舍难免,还是想笑着说再见,相信与祝福,期待常相见

蒋庆宇,2016年6月26日晚,于北京科技大学5斋824

centos6.5 安装 nginx+php7+mysql

nginx、mysql您可以选择源码编译安装三部曲,当然centos下yum install实在是太方便了。

至于PHP7,由于我之前编译5.6踩过各种基本的坑,所以对于./configure基本已经熟悉,下面是我的配置:
./configure --prefix=/usr/local/php7 --enable-fpm --with-fpm-user=user --with-fpm-group=user --with-libxml-dir=/usr --with-openssl --with-openssl-dir=/usr --with-pcre-regex --with-zlib --with-zlib-dir=/usr --with-curl --with-gd --with-webp-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --enable-mbstring --with-mcrypt=/usr --with-mysqli --with-mysql-sock=/var/lib/mysql/mysql.sock --with-pdo-mysql --with-readline --enable-sockets --enable-zip --with-pear

说明:

  1. 先解决库依赖,例如--with-jpeg-dir依赖libjpeg,我们就要先 yum install libjpeg libjpeg-devel
  2. 当configure失败原因诸如 缺少 xxx.h ,安装对应的 xxx-devel就可以解决。(因为,在代码中使用共享库如果是动态加载的话,可以不需要头文件等,因为编译时根本用不着;但如果是静态加载的话,也就是此时的情况,则需要对应版本的头文件,因此需要安装xxx-devel包)
  3. to be continued

附:重启Nginx/MySQL/PHP-FPM的shell脚本

#! /bin/sh
# Nginx/MySQL/PHP-FPM restart

/etc/init.d/nginx restart
/etc/init.d/mysqld restart
kill -9 `ps aux | grep php-fpm|head -n -1|tr -s ' '|cut -d ' ' -f2|awk -v RS="" ' { gsub("\n", " "); print } '`
echo "php-fpm killed"
/usr/local/php7/sbin/php-fpm
echo "php-fpm started"

对PHP连接MySQL和其他数据库方式的理解

PHP/MySQL是主流的应用开发搭配方式,印象中PHP支持使用很多种数据库,而且MySQL就有mysql、mysqli、pdo三种API可用。本文旨在从PHP数据库访问设计的思路为轴,简单的捋清这些关系。

PHP手册中《数据库扩展》一章有两部分:数据库抽象层、针对各数据库系统对应的扩展,已经是足够的说明了,要更深刻的理解可去研读。

首先,直接的想法是,PHP应该为不同的数据库实现不同的数据库抽象层,调用客户端库API来使用DBMS。如下图:
1.png

然后,考虑这个场景:当PHP应用写好后,环境数据库不同时,就要用对应的数据库抽象层重写项目所有数据库相关代码。所以能否把访问抽象出来,用不同数据库时,只要切换不同实现就ok了。如下图:
2.png

最后,主流选用MySQL当然是既可以使用mysql、mysqli两种数据库抽象层,又可以使用PDO数据访问抽象层(须安装PDO_MYSQL扩展实现PDO接口)。如下图:
3.png

当然任何一个数据库抽象层,都要在PHP编译时都要指定数据库的客户端库以使用数据库服务器。以MySQL为例,推荐用mysqlnd库,配置项:--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd

现在是不是清晰些了呢?

编码概述与Apache/PHP/HTML/Javascript中的编码

程序就是数据结构+算法,还有个重要的问题,就是编码!编码是信息从一种形式或格式转换为另一种形式的过程,有诸如字符/文字/语义/PCM等多种编码。
这篇文章只限于字符编码(Character encoding),作为程序员或是多数计算机工作者,你可能研究或看过很多编码ASCII/GB(K)/Unicode(utf8/utf16/utf32)/BIG5/ISO等,但还未搞清楚它到底是什么东东,它们有什么区别和联系,if so,可以继续看下文啦。

简约的前置总结:ASCII是美标,用一个字节表示字母/符号;GBK是国标,用两个字节表示汉字;UTF-8是UNICODE的改进版,兼容几乎所有语言符号,最为流行通用。

ASCII,美国信息交换标准编码,简称“美标”。大家知道,美国抢占了计算机与互联网的先机,美标自然地成为了国际上大部分电脑的通用编码,它规定用从0到127的128个数字来代表信息的规范编码,其中包括33个控制码、1个空格码、94个形象码(英文字母,阿拉伯数字,标点符号等)。我们平时阅读的英文电脑文本,就是以形象码的方式传递和存储的。

GB2312,老美的美标虽通用,但不适合博大精深的中文。1981年我国开始实施的一套国家标准GB2312,把六千余汉字、标点符号、外文字母等,整个字符集分成94个区,每区有94个位。例如“中”字在方阵中处于第54区第48位,它的区位码就是5448。然而GB编码文字较少,致使GBK的出现。

GBK,国G标B扩展K,向下兼容GB-2312编码,向上支持ISO 10646.1国际标准,共收录汉字21003个、符号883个、提供1894个造字码位,简、繁体字融于一库。GBK 采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计23940个码位,共收入 21886 个汉字和图形符号。(另外,BIG5码是针对繁体汉字的汉字编码)
ISO1993年,国际标准ISO10646 定义了通用字符集(Universal Character Set, UCS)。 UCS 是所有其他字符集标准的一个超集。

UNICODE的渊源:中日韩等国家使用的语言中字符多达几千个,当计算机普及到此时,原来字符采用的单字节编码(最多只可容纳2^8=256个字符),既然一个字节不够,人们就采用两个字节,但其中的ASCII码等仍用单字节表示。问题出现了:因为每当涉及到双字节字符串的处理时,总是要判断当中的一个字节到底表示的是一个字符还是半个字符,如果是半个字符,那是前一半还是后一半?
最后两个标准组织合作使Unicode诞生,Unicode对每个字符都固定使用两个字节即16位表示,于是当处理字符时,不必担心只处理半个字符。Unicode在网络、Windows系统和很多大型软件中得到应用。

UTF-8:为了提高等宽字节的Unicode的编码效率,于是出现了UTF-8编码,也是迄今为止最为通用流行的编码,UTF-8可以根据不同的符号自动选择编码的长短。比如英文字母可以只用1个字节就够了。UTF-8的编码是这样得出来的,以”汉”这个字为例:
“汉”字的Unicode编码是\u6c49,然后把\u6c49通过UTF-8编码器进行编码,最后输出的UTF-8编码是汉

未完待续。。。