分类 小工具 下的文章

科普科学,便捷上网

鉴于很多朋友不大清楚科学上网的原理,这里简单介绍一下。
大陆墙是为了祖国社会稳定,使大众免受外来不良思想的影响而建立的。
墙外有一些网站,我们没办法访问,尽管他们的产品很棒。
kexueshangwang1.png
计算机网络中,有一种架构叫做代理。
你直接访问不了的,可以交给能访问得了的人(软件)帮你访问,再转达给你,问题解决!
上图的Shadowsocks(以下简称ss)便是你的帮手,它可以代理你的网络请求,使你能够Google一下。

下面说一下技术逻辑:

  1. ss提供网络代理服务,同时配置系统网络代理。
  2. 当我们用浏览器打开一个网址A时,浏览器会读取 系统的网络配置 或 浏览器自身的网络配置,从而得知,网址A应该直接访问 还是 通过代理来访问。
  3. 用已确认出的方式访问吧
    kexueshangwang2.png

完。

故事三则

1. 钥匙丢在哪了?

昨日早骑电动摩托去公司,然后在食堂吃早餐。下班时发现钥匙丢了。我仔细回想,可能早上落在食堂的餐桌上了、可能坐在哪个沙发掉了、也可能不小心掉进桌下的垃圾桶,被清洁员工误收走了?物业-失物招领处的同事已下班,只能明天去问有没有人捡到,无奈心情不好,打个车回家。幸好房东留有钥匙一把,我才得进家门;也幸好电动摩托也有备用钥匙。

今日上午便去问失物招领处、食堂员工、清洁人员,都没有。我在想会不会真有歹人捡到车钥匙,去车库骑走?要是那样的话必须调监控,嗯。但我更相信钥匙是被清洁人员误收走了,因为我觉得若同事捡到,一定会交到失物招领的吧。
下班去地下车库,戏剧性的一幕出现了,钥匙它就插在车子上,有两天整!谁再说新浪地下车库不安全我跟谁急!
微信图片_20170809210435.jpg
顿时不敢相信我寄几,居然把钥匙留在车子上,这人啊大概是脑残吧。这两天回想钥匙丢在哪时,潜意识里设置的前提是:骑到车库停车拔下钥匙,我一定是把钥匙丢哪了。全然没想到钥匙可能就插在车子上!这个最本源最基本的疏漏。

由此可见,人们遇到问题时,会自以为是地认为,首先,一些前提是没问题的,但常常问题可能就出在那前提上。
想想《三体》里的几个科学家,耗时大半辈子研究一个领域,却意外发现,他的理论体系里,最基本的概念和公理是不成立的,那简直能让人崩溃。

所以,遇事时莫慌,花几分钟,想想你觉得不可能出现的情况、质疑那些“理所当然”,可能就解决问题了。

2. 不懂别瞎说

这两日在公司食堂,饭菜真是令人难以吃饱。今日下班去外面一家饺子馆,还点了盘“凉拌山野菜”,菜一上来,入眼的是黄瓜丝儿+香菜,我问路过的服务员,“山野菜是什么”,她看到我桌上的菜说,“这就是山野菜”。我忍了。喝口饺子汤,我拿筷子扒开两下,哦,原来里面有“老蕨菜”,我在家的时候吃过,我们家那边的乡土叫法。
shanyecai.jpg
她的回答,我觉得不行;我的问题,我觉得OK。我是没看到老蕨菜,所以质疑,难道他们家的山野菜,就是黄瓜丝儿配香菜?她竟然以题答题,不知怎么地想起了《让子弹飞》里喊的一句台词,“上海就是浦东 浦东就是上海”……

其实怪我,没看明白呢,就开始瞎质疑。想要否定一个事儿,你就得先理清这个事儿。虽然关系不大,但毛主席说过,“没有调查,就没有发言权!”。

3.新好的事物不可挡(电脑技术篇,业外人酌情忽略)

我是一名PHP工程师,PHP意思是Hypertext Preprocessor,Web上的超文本预处理器。Web是啥?超文本预处理器又tm是啥?这俺就不扯了,再扯远喽。啊对,我们还用一种数据库,叫MySQL。

微信图片_20170809210446.jpg

以前啊,我操作数据库,习惯用那个phpmyadmin,使用PHP编写的网站形式的MySQL数据库管理工具。今天死活想在机器上安装,最新版呢嫌机器上的PHP版本低,旧版呢又依赖Mysqli扩展。同事推荐一个软件叫DataGrip,是JetBrains公司的产品,用了还真不错。起码这软件和PHP没毛关系,谁也不耽误谁。

我们都有舒适区,不阶段性地远离就很难进步。远离一下下,尝试新的东西,不耽误事儿,而且肯定有新的视角、新的体验、新的收获。

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 | grep -v grep|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"

编码概述与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编码是汉

未完待续。。。

USTB校园网自动登录chrome插件

请允许我自诩Geek一名,面对computer,连一秒都不愿等待,校园网登录页要等5s着实忍不了,所以抽空写了自动登录的插件。
先作声明:
1.此插件支持chrome和360极速浏览器
2.此插件只是本地存储,不会泄露您的密码,请放心使用
3.此插件不会影响您的ipv6地址

安装使用步骤:
1.浏览器地址栏输入 chrome://extensions/ 以打开扩展程序页面
2.下载附件autologin,将附件拖入页面以安装
2.png
3.刷新校园网登录页面,右上角LA(login automaticly)按钮处,输入自己的账号密码,点击“save”、“关闭中”以开启
3.png
4.OK了

由于chrome官方的安全策略,windows下的chrome可能会提示“已停用不支持的扩展”,解决办法详见chrome插件出故障的解决方案.rar

想说的话:
(校园网5s可能是官方折衷的做法,但牺牲每个同学每次登录的5s,并不是解决问题的好方式)
插件主要用了一晚上做出来,又一上午对细节调整完成,因为自己不愿等那5s,结果花了好几个小时。
登录校园网每个同学每次登录都要等上5s,所以希望我的几小时工作可以为大家省去无数个5s。