Giter Site home page Giter Site logo

chenyangguang / studynotes Goto Github PK

View Code? Open in Web Editor NEW
4.0 3.0 0.0 64.88 MB

Freetime Notes

Home Page: https://chenyangguang.github.io

PHP 54.07% HTML 17.63% Common Lisp 11.52% NewLisp 0.18% Shell 9.80% Go 2.31% JavaScript 3.00% Lua 1.48%
notes emacs linux

studynotes's Introduction

life is ex

curl 终端加密访问数据,使用 basic auth 加密方式, 比如查询 WooCommerce 的物流跟踪号

curl -X GET https://yoururl/wp-json/wc-shipment-tracking/v3/orders/50/shipment-trackings \
 -u ck_key:cs_secret \

K8S 安装master节点, 安装 docker 环节出现 404 , 解决方案

vim /etc/yum.repos.d/CentOS-Base.repo # 修改 $releasever 为 7 
vim /etc/yum.repos.d/docker-ce.repo # 修改 $releasever 为 7 

tmux 支持滚屏

ctrl + b 然后 : 进入命令行模式,

set -g mouse on

centos 安装 protoc

PROTOC_ZIP=protoc-3.7.1-linux-x86_64.zip
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP

latex 编辑中文简历不显示中文的问题解决

% UTF-8 encoding
% bad-looking fonts (CJKfonts package)
% latex+dvips, latex+dvipdfm(x) or pdflatex
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK*}{UTF8}{gbsn}
中文
文章内容。
\clearpage\end{CJK*}
\end{document}

golang 交叉编译 , mac 或者 windows 下预先编译好linux二进制可执行文件时,可以如下执行。

env GOOS=linux GOARCH=amd64 go build -o main main.go
  • 可以使用 rdesktop
  • 需要一些依赖
sudo apt-get install ibxcursor-dev libpcsclite-dev libssl-dev
./bootstrap && ./configure --disable-credssp && make
sudo make install 

伤不起的  windows 开发环境

我没想着有一天我会在一个周围尽是 windows 的开发工具的环境里工作,总之一言难尽。你稍微装一下工具之类,在 linux 下三下五去二就搞完了,但是 windows 下面总是出一些 幺蛾子, 而且很多流氓软件,你杀都杀不干净。像韭菜一样,请不走。今天发现 C 盘快满了。C 盘容量总共 121G, 使用 Git Bash 终端查看时,df -h 看了一下。80%磁盘被占用了。赶紧下载一个 WinDirStat 查看了一下各文件夹占用空间大小分布,及百分比。发现系统盘只有 26G 左右。剩下的都是些开发工具。一口气清理掉前人安装的 VS Code 什么的。

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
C:/Program Files/Git  121G   78G   43G  65% /
D:                    272G  3.5G  268G   2% /d
E:                    272G  6.1G  265G   3% /e
F:                    270G  134M  270G   1% /f

再看,还有一个 12G 的 休眠文件 Hiberfil.sys 和 15G 的虚拟内存文件 pagefile.sys , 干掉 Hiberfil.sys, 要启动 cmd 都要将 C:\windows\system32\ 加到 系统变量中去!好烦!

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
C:/Program Files/Git  121G   66G   55G  55% /
D:                    272G  3.5G  268G   2% /d
E:                    272G  6.1G  265G   3% /e
F:                    270G  134M  270G   1% /f

这下感觉好点了。至少 C 盘还有 45% 空间!

有感而发

记一次 laravel框架项目 503.blade.php 问题的小结

laravel 框架的一个 503.blade.php 问题排查, 我从项目日志开始定位,然后发现并没有问题。以为 Nginx 或者 PHP 出现了问题,一查 Nginx 的 error 和 access 的日志,也没有异常。然后排查最新变更的代码版本号,也没问题,于是发布一个灰度版本,一看,灰度是正常的! 找不到原因了, 项目里面搜了一下 503, 发现与之相关的只有的一个 Response.php 有状态码的介绍。 Google 了一下 laravel 503.blade.php 的用法,是框架自定义的一套响应。再回来,从 浏览器里 debug 发现状态码就是 503, 这说明应该是到了 php 层了, laravel 用自己的方式响应了 503 状态。好吧。不知道啥原因了。咨询一下番茄,番茄二话不说,过来发动技能了。

  • 先上服务器,排查线上 .env 配置是否正常
  • 访问一遍不同路由的日志
  • 灰度看测试样本,然后直接从测试样本切换到正式版本, 并看日志!!!
  • cli 终端启动, 另起堡垒机访问, curl 访问
  • 查看需要写入文件权限的文件目录, bootstrap/cache 和 storage 目录!
  • 搜索 app目录和 vendor 目录下的 503, 然后打开其中的一个文件, 看到 handle 处理的一个提示, 番茄突然说,知道啥事了。
  • php artisan up 一起来,访问就正常了。。。。。。

不过从运维的监控里面,并没有查到谁执行过 php artisan down , 留下一个未解之迷: 到底是谁启动过 php artisan down?

emacs 中 golang 环境设置

jquery 改编 汽车之家 滚动切换左侧目录效果的核心 js

原生版:

for (var i = 0, len = metoList.length; i < len; i++) {
    var h = wd.abs.point(metoList[i].dom).y + wd.dom.id(metoList[i].dom.getAttribute('pid')).offsetHeight - 35 - (top + i * 27);
    if (h > sT.top) {
        for (var j = 0, l = obj_link.length; j < l; j++) obj_link[j].className = '';
        obj_link[i].className = 'active';
        break;
    }
}

优化版:

for (var i = 0, l = tables.length; i < l; i++) {
    var h = $(tables[i]).offset().top + $(tables[i]).height() - th_h - (father_h + i * step_h);
    if(h > w_sroll) {
        lis.eq(i).addClass('active').siblings().removeClass('active');
        tales.eq(i).addClass('on').siblings().removeClass('on');
        break;
    }
}
  • 这段代码很有意思,事实上直接使用一层循环就可实现, 没必要使用内层循环。优化之后更简洁, 减少不必要的遍历开销, 可读性有所改善,毕竟使用 jquery 多了,原生的 js 只能读懂 60% 左右, 完整代码

解决高版本对java版本的依赖

  • ubuntu 系统内核和程序升级之后,smartgit 启动失败了,
Java version 1.8 or higher is required, currently  is used (version 1.7.0_151)
Add the line
jre=/path/to/jre
to ~/.smartgit/smartgit.vmoptions and change the path
to the one pointing to the desired JRE.

思考

学会思考而不是一味学编程

spacemacs 全文搜索

  • spacemacs 项目内搜索 文件名 Space+p+f
  • emacs 内替换 space+p+R

南极大冒险

  • 《南极大冒险》是怎么拍出来的?

点滴

_ 从小处着手, 一点一点理解。

专注

  • 搏二兔, 不得一兔 。” –吴清源

强行撕开源码

  • 没有坚实的打怪升级,强行撕开内核源码的一道口子,有害无益?

终端神器

  • thefuck , 让终端命令行飞一会儿。

有所作为

  • 要想大有作为,就必须把根基再扎的更深,必须融入更富创造力和生产力的过程。

blog change theme

数据格式

  • 转了一圈,主要文档还是用通用的 markdown 比较合适。该有的主要功能都有。

接近神的人

  • 尼古拉.特斯拉。重新读了他的传记。上高中和大学那会儿,对他的中文介绍,几乎都是一笔带过。但,在那个年代,他是超越时代, 接近神的人。看看 知乎 的争论, 维基百科 的介绍。然而世人都是更喜欢我们心目中的传说,不会喜欢一个活生生的现实的人。

日常

  • 日常里面应该多做一些改善当前工作,学习的东西。减少和当前工作切入点关联太远的事情。

aircrack-ng

  • Hack for funny!
  • question: ls: cannot access '/sys/class/ieee80211/': No such file or directory
  • question fix

magit 添加文件追踪的问题

  • 一开始有一个问题一直没有解决掉: Emacs 内部调用 Magit 没发现可以直接 git add 的功能的操作命令。今天终于搞明白了。对于没有进入暂存区的文件,当执行 magit-status 的时候,看到 unstaged 状态的文件,移动到这个文件上面去, s 一下就可添加进 暂存区 了。这样就可以顺利的连同修改、删除的文件一起提交 magit-commit 了。
  • 世界太大,东西太多,学不过来,用不过来, 怎么办?怎么抉择?
  • 使用 Typecho 重构自己的 个人博客, 重新发布上线。

Parrot

  • Parrot 好像可以作为 Kali 的替代系统, 据说是白帽子专用的哟. 今天下来看看有什么搞头。

pytorch

  • pytorch 这个货出来以后, 据说,python 快要跨步进人工智能语言头把交椅了。官方 文档说有两个很牛的特色。看到第二特色,忍不住 fork 这个库了。
    • Tensor computation(like numpy) with strong GPU acceleration.
    • Deep Neural Networks built on a tape-based autograd system.

elisp

About Test

  • Code without tests is broken by design.
  • 目前为止,Emacs 里面使用最频繁的是的 Magit 和 Org-mode 这两个神器。

读书笔记的好处

  • 将读书过程中的要点做个笔记,会加深对书中知识的理解,同时方便侧重点的温故知新。所以今后还是多做读书笔记吧。多少年之后,说不定还会回来看,或者别人也可以看到呢。
  • 读书的一个很贴切的好处就是: 安定自己的内心。调整自己的生活节奏。特别是记录书中对自己有警醒或者共鸣的见解的时候。
  • 试想,多少年之后,谁还记得我们阅读过什么?如果不是时时撞见那些深入骨髓的文字,天知道我们业余时间都去了哪里?

关于深度学习

  • 目前每天只能写点短小的总结文字。从深度学习出来之后,我就一直有一个设想:人的大脑是一个很复杂的神经系统。按理说,深度学习,其实也是模仿的人的大脑的思考方式。那么正常人为什么不能通过深度学习去开发一个强大的脑力?是什么原因限制了那么多蕴含潜力的大脑一直蛰伏着,或者是埋没了?怎么冲破那些制约因素的限制?

技术

  • 技术终究是要使用场景。没有使用场景,再高深、再牛逼的技术也是不值一谈。还浪费了时间、精力。
  • 搬家的一点趣事(教训): 看房子,一定要综合考虑,特别是最主要的要点是需要安静,在这个基础上再去考量空间,价格等等因素。考虑一个地方安静与否,需要想象不同时间下,会有啥变化。多花些时间调研,总比后悔好。

英语

  • 这一年来,英语单词虽说是长进了一点,但是距离自由的阅读英文资料还是有一段距离。争取今年再上一个台阶。

更好玩的虚拟技术

Xpath

底牌

  • 没到最后关头,不要亮出底牌。

就绪

  • 万事具备,只欠东风!一点一点突破。 看了一集《越野千里》贝尔带奥巴马的节目。国外的总统都能去做这样一个节目,很神奇。有生之年, 啥时候我们国家的也有这个?不说他们的高层特勤,白宫人员等等。。。。。。

杀气

  • 虽然刚开始捣鼓kali渗透没多久,但是 我的 gmail居然已经找不回来了。绑定的手机号接收不到找回密码的短信,另一个邮箱尽管收到了验证的短信,但是好像被人篡改了。已经验证不了了。这个邮箱有很多关联的,无法通过验证了。好浓的杀气!后脑勺有一丝丝的凉!

工具

  • 哪有那么多时间去捣鼓工具,与其继续捣鼓工具,不如深入去学内核相关的东西。

重新弄下 vim

  • 弄个开发插件比较齐全的spf13-vim
  • 执行 sh <(curl https://j.mp/spf13-vim3 -L), 一键安装了。不少好东东
  • 中间有说到需要安装支持 lua, 先在打开的 vim内 判断一下 :echo has('lua'), 结果是0。好吧。重新编译 vim8.0, 找到 下载的vim目录, ./configure –enable-luainterp=yes, make && make install, 再查看,变成 1 了, OK。
  • 源码安装vim的lua和python支持

旋律

  • 四年前,每当这个时间,晚上 11 点半,几乎都会有熄灯睡觉的习惯。但是现在没有了。唯有夜深人静,聆听着收音机里面的旋律。

几十载

  • 人生不过几十载,再不做自己喜欢的事,就过去了。再不看想看的世界,就没了。

远去的人。

  • 逝者如斯,无人可抵时间的销蚀, 前几天廿二公走了,今天下午四点,五婆也走了。岁月催人,从来不客气。村里祖辈一个个开始凋零了。人生短短几十年, 眨眼之间。没有时间去感叹,捉紧时间实现自己的小目标吧。再不加速,真的来不及了。那么,连并廿二公一起说一声: 曾经给以我难忘童年的长辈们,好走。愿你们带给我的棋艺和欢乐,传承给后代。

成长的条件

  • 要想成长,需要一个变化多端的环境。 真没想到,这么多天没动代码了。立春过后,重新调整晚睡早起的习惯了。

git 额外命令工具套餐 git-extras

  • install 方法
  • 回首 学习 emacs 到现在作为自己的主要开发编辑器历程, 感觉还是挺爽的! 就像当初刚开始接触 vim 一样。从陌生到熟悉,到离不开它。

emacs 工程内快速的操作

  • spacemacs 最快速度查找函数使用的地方包括定义出处(目前没有之一,已经够快了!):选择该函数(evil 模式下可以使用 * 简单粗暴), 然后 /, 列出所有工程内使用了这个函数的出处…
  • phalcon 框架使用了大量的 php 函数
  • emacs 切换到前后 buffer 的方法: Spc + b p 或者 Spc + b n

PHP 性能分析 工具 xhprofgraphviz

  • wget https://github.com/facebook/xhprof/archive/master.zip
  • unzip master.zip
  • cd xhprof-master/extension/
  • phpize
  • ./configure
  • make
  • sudo make install
  • sudo apt-get install graphviz
安装性能图形化工具 graphviz

疯魔

释放压力

  • 遇上很大的压力的时候,过了之后,一定要把这个压力卸掉。就像内存的释放一样。
  • 空间总是有限的, 无论是内存还是心灵。和数组占用内存一样。大压力过后,一定需要找个方式释放掉。

分页理念

  • 其实迄今为止,感受最深的、影响最大的就是分页的**。分页,就是将一个不能或者不方便一次性实现的目标, 切割成一个个细小的可以轻易达成的重复步骤。不管是瓦解对手,还是赚钱,或者番茄工作法的时间利用。无处不透着分页的**。
  • 分化目标。将目标分解成一个个可以轻松达到的小目标。

陶笛

  • 去张家界的时候,买了个陶笛。我想尝试一下学个新鲜的东西。
  • 从今天起,开源节流。十年磨一剑。早日实现财务自由。

还是稍微小结一下

  • 走玻璃桥的感觉是: 心里怕, 它就脆,你不怕,它就踏实。

有梦

  • “有梦不怕夜漫长”

连击

  • 从今天开始,看能连击多少天。“国虽大,好战必亡。天下虽安,忘战必危。” 其实放到个人身上也一样。说到底还是需要先实现财务自由。

Youtube 视频下载

  • youtube 上面的视频清晰度相当高, 虽然他们开始限制下载了。但还是有 下载 的办法。
  • emacs 使用 M x 调起 package-install 安装 php-extras-generate-eldoc 之后,编辑 php 文件时,光标下的 php 函数都有函数参数提示
  • emacs jump-to-go jump to defined of a function, 非常好用://github.com/daniel1988

游戏

  • 这周玩了下以前玩过的一款游戏--真三国无双。和罗宗 说的一样: 一款游戏,偶尔玩下,就是你玩游戏; 沉迷进去的,就是被游戏玩了。游戏为什么吸引人呢?特别是竞技性的游戏。我觉得他们提供了一个让人挥洒精力和时间的交流平台。以配合技能的团队方式,能有效的组织起众人的战斗激情。升级的模式符合打斗场景的预设 以及大众游戏玩家的心理需求。 

不经意之间

  • 有些悬而未解的难题,不妨放一放。某个不经意间,轻而易举就解决了。emacs 里面也可以翻墙了。利用终端的shadowsocks + eww, nice! 好吧, 我手机也可以翻墙了。。。。。。
  • 我所遇到的问题,好像基本上google上面都有人遇到过。而且80%都有切实可行的实现方式。
  • Emacs 安装了 dumb-jump 搜索之后,完美解决了函数跳转到定义处的问题。 spc + m + g + g, 这个简直 歪了!
  • 函数跳转php-mode

爬虫

  • 开始使用phpspider爬取数据
  • Large amounts of data can do a lot of things.
  • 海量的数据背后,究竟隐藏着什么东西?我很期待能有所发现。 怎么挖掘?从哪里入手?到哪里去?怎么使用这些数据产生价值?怎是还没有定论。先爬到一些数据再说。
  • 发现爬的太慢了,有必要改进一下方案。容老夫这两天好好思考一番。多进程是一个目前暂时想到的第一方案。
  • 爬虫好玩。虽然数据还不全,刚刚开始。
  • 索引的效果是显著的: 未添加索引前,爬取之后需要查询,一天只能爬几十只股票全量历史数据;添加索引之后,一小时都可以爬几百只。爬取速度蹭蹭蹭上升了几个级别。

version

  • 安装不同版本的 phalcon 还是用 github 资源好, 想切换哪个版本就切哪个编译, 其它工具类似。
  • Virtualbox 挂了有些日子了,今天使用 VMwame 安装下 Win10, 毕竟弈城上的对手多一点。烂柯比赛还是挺有趣的。带有竞赛性质的活动,动力大些。暂时 B 组不败。

ubuntu 装 smartgit

习惯

  • 从一个小习惯开始,

小森林

  • 大地微弱生灵,刚毅朝向天际。一棵植物上要长得茂盛,还是不能有太多的芽。还是回到起点的圆圈了吗?地一旦荒废了,要再恢复成耕地真是太难了。

电视剧

  • 生活就是电视剧。而且是比电视剧还戏剧。

书是好东西

迷失

  • 过多的选择,开始迷失。当下,应该专注下来。

异常

  • 瞎折腾,又手贱,去升级内核。结果 google-chrome 启动不了了。又没有错误日志。怎么排错?卸载重装,还是启不来。虚拟机也挂了。只能跑到烂柯去下棋了。将代理开启到 Firefox 里面,莫名其妙的,居然看 youtube 一点不卡。乐死宝宝了。冬天快到了,又可以看动物世界了。可惜,Firefox 下面截图不能直接在浏览器里面粘贴。
  • 不急于立竿见影,一步一个脚印儿, 给我迈扎实就踏实了。

point

  • mysql show processlist;
  • emacs commentary by M-;

升级 pip

  • pip install -U pip

阿里事件对我的冲击

  • 这个中秋,我过得很安静。没有吃月饼。不是我不想吃,也不是我想吃,买不到,更不是阿里“月饼”事件让我没有买月饼的冲动。而是我不care月饼。我假设我是阿里这次事件中的一员技术人员,我会怎么做?是否会像胡敏一样, 或者另外四位安全技术中的一位的做法?一个小小的月饼,为什么就引发了短短的两个小时就开掉四个安全技术?这是个什么性质事件?开发有责任?hr为什么投石击水泛起社会如此大的权利波浪?阿里“月饼”不管味道怎么样, 今年对于阿里来说都是变味的,而对于我来说,是变化的。
    • 此刻我脑子里面浮现出的是《遥远的救世主》里的一段话: 透视社会依次有三个层次 技术,制度和文化。小到一个人,大到一个国家一个民族,任何一种命运归根到底都是那种文化属性的产物。强势文化造就强者,弱势文化造就弱者,这就是规律,也可以理解为天道,不以人的意志为转移 。从这个层面去理解,就不足为奇了。因为,技术人员的去留就是他们自己的文化属性的产物。当阿里的制度成为公司的优势文化。上层管理者关心的不仅仅是利润,或者安全,他们更关心的是对大众平民的”公平” 。一个”平”字,弱已经在其中了。在”公平”作为强势文化的公司,技术相对于制度,就没有了优势。技术漏洞并非这次事件的主要矛盾, 因为从事件的处理方式上面看,处理焦点是“脚本者”, 而不是开发者。
    • 从阿里的发展可以知道,前期以开拓市场为主导抢占客户资源,之后逐渐过渡到完善服务来稳定资源。两者都是抵御市场风险的强力手段。但现在阿里的市场蛋糕已经足够大了, 也可以理解为,开拓市场做足做够了,完善服务还不够。这说明阿里不缺少几个终将退出的coders, developers,还缺少的是”夯实基础 砥砺前行”的制度服务。
    • 而作为一名技术来说,技术自由并不等同于权利自由。智者对于愚者确是一种资源,但这是一种有限的资源。你比如这次脚本刷的时候,如果你设置的是循环一次呢?从数量上是不会引发过度月饼资源开采的(即便从性质上说并没有什么区别)。使用这种资源时,需要衡量在当下的环境里使用会引发什么?毕竟不同公司有着截然不同的文化。手里有个锤,不要见个东西就上去当成钉子随便敲几下。 不该作为的不作为就是作为 。因为技术手段使用不当而坐牢的,大有人在。同样的,在国家法律面前,只要你触动了某些线条,一样够你喝一壶的了。在一个大环境里面,首先需要知道它的文化属性是什么,然后结合自己的文化属性,做出最好的结合。而不是制造矛盾。如果这个环境的文化属性压制你的文化属性,那么要么你换个环境,或者改变自己。
    • 从今以后,可以知道,无论手握哪一种语言,哪一门技术,在阿里,coders充其量只是和平时期的军队,对某些技术个人来说已经什么前途。这会引发什么?已经发生, 就不用说了。可以预见的是,不远的将来,阿里无论采取什么手段挽留技术人员,都不可避免的将流失一部分重量级的技术。为什么,因为这已经违背了技术的文化属性。技术的文化属性里面,技术自由是他们的至高追求。当技术人员不缺少生存的需求,他们所追求的是更高的人生价值考量。某些公司可以开始准备好措辞,引进自己需要的人才了。这件事请,最大的赢家是其它的公司。
    • 对于我而言,这次事件给我的冲击是: 我的命运不该被掌握在他人的手里。所以我应该加快速度研发自己的东西,而不只是公司交给我的任务。

聊发少年狂

  • 射雕侠侣里面有一段有关学习的方法论。是金轮法王对还没有遇上神雕时的杨过说的, 当时杨过还没有接触到独孤求败的东西。大意是你跟着别人学了各种各样的武功,但是没有一种武功是你自己的, 而且多而不精,杂而不纯。别看金轮整天转着个”大(金)锅(轮)盖”到处瞎逛,可人家还是有些独到的见解的。从当时杨过的武功学习的状态来看,这见解就是一针见血! 现在学的c和PHP内核源码虽然是更接近源头一点了,但还是很多摸不着头脑的地方。还是苦苦摸索点点滴滴的状态。下棋和coding都是修行。

ubuntu下自己录制视频 

  • 安装karam
  • 启动karam
  • 可以设置声音来源为 sound from speakers or microphone,倒计时读秒,然后选择 Capture 开始录制,中途可以 stop,或者 finish
  • 这样就可以录制自己的视频了。结合 ffmpeg (ffmpeg -ss 00:00:00 -i test.mp4 -to 00:04:00 a.gif

)的命令 可以生成代码过程的 gif

2016-09-13

  • 闲来 ubuntu 下升级 vim 至 vim8.0
  • git clone https://github.com/vim/vim.git
  • 查看readme.md 知道install 相关在src目录下INSTALL有说明
  • make (最好编译时同时支持 python2, python3 ./configure –enable-pythoninterp=yes –enable-python3interp=yes)
  • make install
  • vim ~/.zshrc
  • 添加 alias vim=’/usr/local/bin/vim’ (或者 alias vim=’/usr/bin/vim’)
  • source ~/.zshrc
  • 收工, 查看vim 版本已经使用升级的版本
  • vim --serion VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 13 2016 10:14:12) Included patches: 1-3
  • 有些 gif 图会比文字更好说服力,也更形象具体,为方便自己的文档说明,需要自己制作一些gif图片, 那么开搞吧。
    • sudo apt install ffmpeg imagemagick
    • ffmpeg -h 查看帮助文档,知道可以截取并压缩video视频, convert -h 调出帮助命令,发现可以利用多个文件生成一个gif, 做两个test
    • ffmpeg -ss 00:03:50 -i Vim-2-iTerm-Vimrc-and-Syntax-Highlighting.mp4 -to 00:04:00 vim.gif 果然
    • convert -delay 300 -loop 0 *.jpg test.gif

2016-09-10

  • 先定一个小目标,比如看一遍<深入理解php内核>,先屠他一条大龙。哦,已经两个小目标了。。。。。。

2016-09-09

  • 大脑管理的主要工作是尽可能高效的利用知识存储

2016-09-08

emacs快速工程内搜索
  • 一种是安装 heml-ag 调起的快捷键很多,比如 M-m s a p , 不得不多说,emacs真的是有很多快捷键,而且提示很人性。文档一流。
  • 也可以通过 C-c p 调起工程内的一些搜索方法, 如 C-c p s g (project, search, grep),
need to to learn TIPI(PHP core)
emacs Macro Operation
keytarget
C-x (Defining kbd macro
C-x )kbd macro defined
C-x euse the maro

2016-09-05

  • 维护一份文档需要相当的时间精力

2016-08-26

  • 删除固定日期以前的文件 find logs -type f -mtime +5 -exec rm { } \;
  • emacs 中 C-i 等同于 tab , 用于 eww 模式中的下一个链接跳转

2016-08-14

  • 不可贪胜

2016-08-13

  • 止戈

2016-08-11

  • 身体健康至关重要!

2016-08-03

  • 像知识这种东西,如果不使用,就永远发挥不出它的作用来。emacs技巧也是一样,越不使用,越疏远。但若加以使用,力量便会源源不绝地涌出来。

2016-08-01

  • select-editor command can change crontab default editor
  • use crontab -e command to edit crontab jobs, call to change crontab in /var/spool/cron dir, another way is edit /etc/crontab file.
  • emacs align text(select the text, Alt+x command to call align-regexp then give “=”)

2016-07-29

Kill-rectangle
  1. Put your cursor before somewords.
  2. Call set-mark-command C-space.
  3. Move cursor to end of somewhere you want.
  4. Call kill-rectangle by C-x r k
Replace-retangle
  1. Put your cursor before somewords.
  2. Call set-mark-command C-space.
  3. Move cursor to end of somewhere you want.
  4. Call replace-rectangle C-x r t
Paste Rectangle
  1. C-x r y
Insert a Column of Numbers
  1. Put your cursor before somewords.
  2. Call set-mark-command C-space.
  3. Move cursor to end of somewhere you want.
  4. Call replace-rectangle C-x r N
Insert A to Z
  • put your cursor before somewords.
  • call set-mark-command C-space.
  • move cursor to end of somewhere you want.
  • call replace-rectangle C-u
  • now call rectangle-number-lines. It will prompt you to enter arguments
  • type 65 (Letter A has Unicode codepoint 65. a is 97).
  • remove the default %2d, type *%c*(the “%c” is for character format)
More Rectangle Commands
CommandKeyPurpose
delete-rectangleCtrl+x r dsimilar to kill-rectangle, but doesn’t save to a special clipboard
clear-rectangleCtrl+x r creplace with space
open-rectangleCtrl+x r oInsert space to the rectangle.(shifting text to the right )
copy-rectangle-as-killCtrl+x r Alt+wsimilar to kill-rectangle but doesn’t delete

2016-07-28

  • emacs技巧
  • linum-mode show numbers in current buffer like set nu in vim
  • global-linum-mode show numbers all buffer
  • if i want to show numbers everytime emacs start, set (global-linum-mode 1) in .emacs init file
  • Select a text, then call copy-to-register 【Ctrl+x r s】, then type 3. This will store the text in register “3”.
  • To paste, call insert-register 【Ctrl+x r i】, then type the register name.
  • Call fill-paragraph Alt+q to break a long line into multiple lines
  • Ctrl+x f to set the max characters per line used by “fill” commands.

2016-07-27

试一下相对路径能否解析

2016-07-26

I will use emacs and vim in a year. 对比着学东西,就像吃不同味道的食物。更有食欲。既然指针比较有嚼劲, 我先吃点python水果。

2016-07-24

原来php底层用了很多c语言的函数,比如strcat, strcmp, strcpy,等等, 认识事物,就是要追它的根源。

2016-07-21

世界上最有成就感的事情就是创造或者毁灭一个事物,编程能做到这一点。

2016-07-19

终端里面使用!command 然后tab查找最近的命令历史比ctrl+r还快

2016-07-15

composer config secure-http false

2016-07-12

Time fly and things change. 一段段精小细致的代码就是一道道死活题。个人项目的练习要针对项目中遇到的问题展开。这样才会产生前后次序的联系。这种效率是最高的,速度也是最快的。

2016-07-08

  • vim-easy-align插件对齐, 选中:EasyAlign=

2016-07-05

  • – life

2016-07-02

  • 历史上多少个瞬间都是本可以成为合作伙伴的,最后竟成了对手。

2016-07-02

  • determine to write a set of web go game

2016-06-28

  • you must have your own ideas, Particularly in the field of computers.

2016-06-24

slowly when the start is very big (1000000, eg)

  • select * from test limit start, count;
  • select id from test limit start, count;

quicker way (id is the primary key)

  • select * from test where id >= (select id from test limit bigStart, 1) limit count;
  • select * from test AS x JOIN (select id from test limit bigStart, count) AS y ON x.ID=y.id;

2016-06-23

  • healthy is the most inportant thing for our life

2016-06-16

  • org-mode tips
    • bold
    • italic
    • underlined
    • code
    • verbatim
    • strike-through

2016-06-06

  • 查看网络掉包状况,ping google.com, 然后ctrl+c终止,看最后面几行。
    • 比如: — google.com ping statistics — 5 packets transmitted, 0 received, 100% packet loss, time 3999ms, 这是严重丢包了。
    • 在比如: sudo fping hao123.com, …… — hao123.com ping statistics — 5 packets transmitted, 5 received, 0% packet loss, time 4005ms, 这个网络还可以。
    • 没有止步的空间,不忘初心。

2016-06-03

  • the other way of swap Ctrl and CaplLock key in ubuntu by : setxkbmap -layout us -option ctrl:nocaps
  • another way of swap Ctrl and Caps Lock is xmodmap
  • vim ~/.xmodmap
    • remove Lock = Caps_Lock
    • remove Control = Control_L
    • keysym Control_L = Caps_Lock
    • keysym Caps_Lock = Control_L
    • add Lock = Caps_Lock
    • add Control = Control_L
  • nohup xmodmap ~/.xmodmap &
  • phper solve problem level, here is a referance.
  • lv0
    • open php.ini error_reporting level to E_ALL
    • if the logs had wroted to files. just check the logs files by linux command ‘tailf dirname/logfilename’
  • lv1
    • which php
    • in cli way, php -i | grep php.ini
    • in fpm way, request a file with phpinfo()
  • lv2
    • debug
    • trade class
    • var_dump/die
  • lv3
    • strace command, like strace php index.php, or strace -p PID,
  • lv4
    • tcpdump examples, need to konw what’s TCP SYN3, when to send FIN package, and when to send RST package
  • lv5
    • xhporf
    • xdebug
    • curl
    • record the microtime between the begin to end it requests. fails or success percentages.
  • lv6
    • strace can’t strace why CPU take 100%, but gdb do.
    • coordinate php-src(.gdbinit zbacktrace), find the dead loop
  • lv7
    • see the kernel sources of php, try to fixed some extensions bug of php. know opcode and execude_data and so on.

2016-06-01

  • swap the Ctrl and Caps Lock for ubuntu14.04 or later version by the method below:
  • sudo apt-get install gnome-tweak-tool
  • then run the command by gnome-tweak-tool
  • select the ctrl Typing -> Ctrl key position -> Swap ctrl and caps lock

done

2016-05-30

timethinggoal
30minsthinkinginner peace
1 hoursdo exercisekeep heathy
6.5 hourssleepingbody circle
2 hoursstudy myselflisp, emacs and english
8 hoursjobsfocus on working
  • 日进一寸
  • 也可以有所成
    1. 每天需要坚持学习1-2个小时。
    2. 坚持使用google搜索资料。
    3. 坚持每天学习英语。用两年时间将英语听力和阅读水平提高到一个新的高度。
    4. 从vim转到emacs。除了远程访问服务器之外,其他业务投入emacs环境。
  • C-c C-l 可快速生成org的link
  • spacemacs so nice!

2016-05-28


emacs org-mode is so power!

2016-05-27


  • QPS每秒查询率(Query Per Second)
    • 每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
    • 术语说明: QPS = req/sec = 请求数/秒

    -【QPS计算PV和机器的方式】 QPS统计方式 [一般使用 http_load 进行统计]

    • QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数 单台服务器每天PV计算
    • 公式1:每天总PV = QPS * 3600 * 6
    • 公式2:每天总PV = QPS * 3600 * 8
    • 服务器计算
      • 服务器数量 = ceil( 每天总PV / 单台服务器每天总PV ) -【峰值QPS和机器计算公式】
        • 原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间

公式:( 总PV数 * 80% ) / ( 每天秒数 * 20% ) = 峰值时间每秒请求数(QPS)

  • 机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器
  • 问:每天300w PV 的在单台机器上,这台机器需要多少QPS? 答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
  • 问:如果一台机器的QPS是58,需要几台机器来支持? 答:139 / 58 = 3

2016-05-26


测试 git remote

2016-05-25


道器合一

2016-05-24


  • telnet部分快捷键
    • ctrl+]退出当前
    • close 关闭telnet
    • ?帮助
    • quit 直接退出
    • netcat -u

2016-05-23


emacs中使用alt+w 复制一行 刚开始,有点不习惯,总是习惯性的打完一点内容按下ctrl+[,一直以为用的是vim。真是funny, 但是啊,ctrl+[居然和vim一样都是esc的快捷键~~, ctrl + w 是删除当前行。我觉得,只要是我自己想学的,怎么都喜欢花时间在上面。多少都好。感兴趣了。进步才比较明显。 用点心。

2016-05-21


又重装了系统。晕屎。 ss-qt5图形化界面下运行不起来了。ss-qt5翻墙 看github里面的issues, 不少人安装了ubuntu16.04LTS, 而且都是些喜欢翻墙的人。 只能启动命令行了。 安装:

  • sudo apt-get install python-pip
  • sudo pip install shadowsocks
  • sudo apt install shadowsocksm
  • man sslocal 查看 sslocal用法
  • touch ~/config.json
  • vim ~/config.json
  • { “server”:”xxxxxx.xxxx.net”, “server_port”:10000, “local_port”:1080, “password”:”11111111”, “method”: “aes-256-cfb”, “timeout”:600 }
  • backend work
    • nohup sslocal -c ~/config.json &

2016-05-20


(1) 格式输出日期, date +”%Y-%m-%d %T” (2) vim ex模式下可以ctrl+d调出所有的ex命令, 比如安装了ctrp插件的话, 可以通过 :ctrlp filename 查找文件

2016-05-17


  • du dirname
  • du sm * -h
  • du sm log -h | sort -n
  • du sm log -h | sort -n | less
  • du sm log -h | sort -M | less | grep G ; sort by month and page up/down and find result by size G
  • du sm log -h | sort -n | less | grep 2016-05-17 ; filter by date
  • du sm logs -h --time | sort -n | less | grep G
  • du -sh dirname/* | sort -rn | grep G| tail
  • du -sh dirname/* | sort -rn | grep 2015-05-17| tail

2016-05-14


phalcon2.1.x已经开始支持php7了, 哈哈哈!已经正确运行demo, 项目里面还不能马上用上。 关键是安装zephir的步骤一直没装上。找了不少资料。 先在自己的笔记本上搞搞。 参考看这里

2016-05-07


安装kali linux时需要分配大点空间,开始时给4G, 不够,死活安装没成功。后来直接给50G,终于可以了。好了,现在可以开始玩下这个渗透系统了

2016-05-06


源代码!直接看源代码, 这才是最好境界!最关键的开关。

2016-04-30


提高业务能力的同时,坚持学习python。后者反过来会促进业务能力的增强。

2016-04-29


  • To follow the path: 沿着这样一条道路:
  • look to the master, 关注大师,
  • follow the master, 跟随大师,
  • walk with the master, 与大师同行,
  • see through the master, 洞察大师,
  • become the master. 成为大师。

2016-04-24

sed命令相当的牛逼, 一定要学会, sed -i 直接可以编辑文件,当一个文件很大时,用sed比vim要更方便


  • nl
  • sed
  • awk

三个命令行非常有用 比如直接查看一个最近登录访问你的服务器的几个ip是谁? cat mywebsite.access.log | awk 'BEGIN {FS="|"} {a[$1]++} END {for (b in a) print (b , a[b])} ' | sort -k2 -r | head -n 10

2016-04-23


  • 升级到ubuntu16.04之后,发现php也更新了。但是mysql没更新。重新布置下环境: 
    1. sudo apt-get install php7.0-fpm php7.0-mysql
    2. sudo vim /etc/nginx/sites-available/default 添加index.php
    3. 将这行注释去掉,fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    4. include snippets/fastcgi-php.conf;这样放出来
    5. sudo nano /etc/php/7.0/fpm/php.ini , 将cgi.fix_pathinfo=0
    6. sudo service php7.0-fpm reload 成功了
    7. laravel 的spark需要在php7.0的基础上安装mbstring扩展
    8. sudo apt install php7.0-mbstring

2016-04-11


  • ubuntu下使用c-space启动emacs内的中文输入法, lc_ctype=zh_cn.utf-8 emacs
  • gtd getting thing done, 翻译:把事情做完。
    • 本质是放空人的大脑。然后一步步按照设定的路线去努力执行。
    • 五个核心原则是:收集、整理、组织、回顾、执行。
  • laravel 5 查询最后一条查询sql
    • 需要开启querylog
    • db::connection()->enablequerylog();
    • dd(db::getgetquerylog());

2016-04-09


  • ubuntu14.04 默认的nodejs太老了, 
    • sudo add-apt-repository ppa:chris-lea/node.js
    • sudo apt-get update
    • sudo apt-get install nodejs

2016-04-06

  • mysql去除重复的数值
    • select b.id, b.status, b.name, case when f.id is null then 0 else 1 end is_tag from b_table as b left join d_table as d on b.id=d.id left join (select distinct id from f_table) as f on b.id=f.id where b.status=3;

2016-04-03


今天是清明节 看了下数据库的帮助命令, 大有搞头啊! help command 可以看见少数操作命令, help contents相当于进入了一个mysql的结构的总目录。对于mysql还是有很多东西不知道的呀,嘿嘿嘿~

2016-04-01


愚人节~~, 学习新的东西的时候,自己才会全身心的投入进去。

2016-03-31


mysql 查询字段长度: select length(column_name) from table_name;

mysql查看保存的字段长度: select length(str) from test_table;

2016-03-25


  • dpkg -l | grep jdk
  • dpkg -l 查看linux下安装文件路径

请解释下strtotime(),time(),microtime(),date()的区别。。。。。。

2016-03-24


远程版本库采用merge request比本地merge master更高效

2016-03-23


  • 今天学了两个牛逼的命令:
    • 一个是vim 中的多文件替换
      1. args dirname/**/*.php
      2. argdo %s/test1/test2/ge | update
    • 二是:linux终端 grep -rl need_replace_word dirname | xargs sed -i ‘s/test1/test2/g’
  • 查看内存 cat /proc/meminfo

2016-03-16


通过 curl 方式发post请求,如果url域名经过 30x 跳转后,$_post不会被保持的!可以通过ip方式避免跳转的问题 301的调整是不被保持的

2016-03-15


回顾一下本次alphago与小石头的人机对局,感觉很奇妙啊。alphago确实有进入世界前三的水准。对处于下坡路的小李来说,相对吃力。这个时代,正是缺少神之一手的棋手的时代。然而alphago还不是完全体,人类已经意识到围棋还存在的广阔的提升空间,或许等begago出来的时候,或许人类将迎来围棋的巅峰时代!而我们将见证到这个围棋时代的到来。

2016-03-13


第78手的挖, 实在是”神之一手”啊。这一刻, 简直是吴清源附体, 佐为附体啊!这才是小李啊!哈哈,那个犀利的小石头还在。这才是围棋的魅力所在啊!逼得alphago都出bug了!

2016-03-12


alphago 太牛逼了。完全颠覆了我心目中机器对围棋的理解。见证了这个奇特的围棋历史奇点。

2016-03-11

  • 永远不要轻视那些看起来能力不如自己的人.
  • 今天被一个初中生给我上了一课:我不够自律。自己的自控能力不够。
  • 如果我连自己的没法控制,那真的是一无是处。

2016-03-10


  • 这给了我一个很大的启发:
    1. 如果要赌,你就赌人少赌的那个。人类的本性是和自然规律相反的。
    2. 太震惊了, alphago第二局居然也赢了。
    3. 要集中力量。
    4. 向大师学习。

2016-03-09


今天李世石败给ai了。历史的一个重要时刻啊。计算机离人的思考思维还有多远距离?

2016-03-09


今天李世石要于ai比赛了。历史的一个重要时刻啊。计算机离人的思考思维还有多远距离?

gulp 依赖比较新的npm, npm需升级到5.7.1.

2016-03-09


df 查看硬盘使用情况, du -sm * -h 查看磁盘空间 -h human

2016-03-07


既然是数据, 在计算机网络结构层划分中一定有对应的有载体和关联, 需要重新梳理下这其中的关系.

2016-03-05


时间, 精力, 被撕的四分五裂,这样下去什么事情也弄不成。

2016-03-03


  • 早上的一点时间抽出来 。积累起来做点事情。还有坐车的时间。 所有的事物都可以看成是 数据 。他们都有最小的单元结构,不同的 次序 组成了他们的运行的流程。要知道他们之间的关系,必须熟悉他们的结构和组织形式,以及他们运行的次序。
  • 我的时间都用在哪里了? 今天安装nvm, 用于node.js版本管理。
  • git 下载creationix下的nvm到本地,
  • 进入目录,执行 ./install.sh
  • 启用 source ./nvm.sh
  • 将变量写到.zshrc里面去, 开机启动
  • nvm -v
  • nvm help 开始玩吧
  • 用简单的思维来总结网络的事物, 我的理解是: 数据 , 结构 , 次序的集合

2016-03-01


laravel 的eloquent非常强大, 比phalcon强大太多了。 夜深人静, 折开笔记本,启动ubuntu, 戴上耳机, 翻开今天下载的一首音乐。一个悠扬的声音划破天际,直抵心房,仿佛穿行在一条苍茫峡谷。   什么时候能弄一套合心意的音响?

2016-02-29


即使对某一件兵器特别偏爱, 也不要拘泥于兵器。有比兵器更强大的力量。

2016-02-27


导出查询结果到一个文件里面。 mysql -uname -h hostname -p psw -e"use dbname; select * from table" > /temp/test.xls 还是一句话:天下武功, 唯快不破.

  • php artisan make:middleware oldmiddleware
  • php artisan make:middleware beforemiddleware 前置操作的中间件
  • php artisan make:middleware aftermiddleware 后置操作的中间件

vagrant up 启动时, 启动virtualbox时报个错。 “virtualbox failed to open a session for the virtual machine ”

2016-02-26


  • shadowsocks-go翻墙
    1. sudo apt-get install golang
    2. git clone https://github.com/shadowsocks/shadowsocks-go
    3. echo $golang 查看go路径, 比如是~/gocode什么的, 然后进去, 一直到src下面, 新建文件夹golnag.org/x, 下载加密crypto,命令为git clone https://github.com/golang/crypto
    4. 现在可以安装go-server了
      • go get github.com/shadowsocks/shadowsocks-go/cmd/shadowsocks-server 再就是客户端
      • go get github.com/shadowsocks/shadowsocks-go/cmd/shadowsocks-local 这就安装大工告成了!
    5. 放心, 你怎么输入google都不会有反应的。不用着急, 还没完, 启动啊,

    可以放到后台去, 免得占用我的终端

    • cd ~/go 路径/bin, 执行
    • nohup .shadowsocks-server &
    • nohup .shadowsocks-local &

    现在, 到墙外去耍去吧!前提是你的chome安装了switchysharp.1.10.5.crx或者别的代理 这能帮到这里了~

  • laravel 这个最好还是设置下快捷方式
    • 将 alias laravel=’~/.composer/vendor/bin/laravel’ 放置到~/.zshrc最后,
    • 重新执行下这个文件 source ~/.zshrc , 这里的zshrc是和bash一样的工具, 就是更强大一下, 至于强大在哪些地方, 我也不知道。
  • 没有沉淀的输出如果传播出去, 很快就会消散, 消亡。 怎么把项目弄到博客网站上去?这是个问题。 现在只是一个一个文件的放上去, 很不好。
  • php artisan migrate 时发现自己的文件名改过了。可以 composer dump-autoload 一下, 再重新执行即可。laravel貌似比phalcon好用的多。
  • 今天被onclick坑死了! <a onclick=”method_dosth()”></a> onclick这个写法, 不知道是怎么回事, 到app的话调用了什么都是没有回调的~~, 必须携程onclick, 谁能解释一下?

laravel 上手很快。下周可以用laravel来做博客的开发框架。

2016-02-25


修改git默认的nano编辑器为vim的方法, 设置一下 git config –global core.editor vim

2016-02-24


从一个不熟悉的环境转回来, 感觉vim是如此的顺心如意! 这兵器果然越用约有意思. 利用周末的时间, 下周一之前, 将一个简单的图书馆管理系统开发出来。 使用laravel框架, 优先做图书增删改查, 以及借阅的功能。 晋级那种事放到后面再说。 技术上来之后, 晋级不晋级, 无所谓。 那么, 让我们开始吧。 哟西~

2016-02-23


9秒开机了!so sexy! ssd 大发好!

2016-02-22


两种兵器对比着学。 固态硬盘的速度比机械硬盘存在一个质的差别。

2016-02-19


  • “建设性的懒惰才是真正的程序员应该有的特质。”
  • “虽然编程基本上仍是一种个人封闭的活动,真正高超的程序来自于借助整个社区的注意力和脑力。一哥在封闭的项目中只使用自己脑力的开发者, 将会输给一个知道创造一个开放、进化式的环境–从中吸收成千上万人的探索设计空间的反馈、编码贡献、臭虫检测和其他的改进–开开发者。”
  • “目标只有通过许多共同意志的竭诚努力才能实现.”
  • “不管怎样, 在一个便宜电脑和快速互联网连接的世界里, 我们很一致的发现真正唯一的稀缺资源是有技术的努力。开源项目本质上从不会为了争夺机器或者网络或办公空间而成立;他们只在开发者自己失掉兴趣的时候消亡。”
  • “开源的成功带来的一个最重要的影响会是教育我们:乐趣是创造性工作中最有效的经济模式。”

2016-02-09


年味一年比一年淡了。

2016-02-06


回家的路

2016-02-04


emacs 是个什么东西? 用 emacs -nw -q 不安装任何插件启动emacs

2016-02-18


进入帮助文档内部

  • c-h i
  • c-h t
  • c-h w
  • m-x tetris 玩俄罗斯方块
  • emacs -nw --color=no 不需要颜色
  • emacs --daemon 作为守护进程运行
  • emacsclient -t 桌面环境下打开命令行版的emacs

2016-02-17


what a beauty day today ! emacs is coming! come on!

  • m-d equal kill a word
  • m-delete means backward-kill-world
  • m-k kill-sentence
  • c-k kill-line
  • reset c-x u, c-/, c-_
  • c-y means paste, but c-y then m-y means next paste, like next register in vim, just like a circle
  • c-u means n times to do examples like : c-u 6 c-k means delete three lines, not 6 lines!
  • c-g(esc esc esc) keyboard-quit
  • backspace backward-delete-char
  • c-d delete-char
  • c-x c-s save move :
  • c-f next-char
  • c-b prew-char
  • c-p prew-line
  • c-n next-line
  • c-e end-of-line
  • c-a ahead-of-line
  • c-l like h m l in vim(re center)
  • m-f forward-word
  • m-b backward-word
  • m-a backward-sentence
  • m-e forward-sentence
  • c-v scroll-up
  • m-v scroll-down search:
  • c-s isearch forward
  • c-r isearch backward
  • esc c-s isearch-forward-regexp
  • esc c-r isearch-backward-regexp
  • m-% waken replacement
  • c-x c-f find a file
  • c-x o change window
  • c-x 1 only one window, like :only in vim
  • c-x c-b list all the buffer files
  • c-x b
  • c-x k kill-buffer
  • m-x describe-variable -> “enter” -> auto-mode-alist see all the mode , so sexy!
  • m-x compile woken the compile in linux
  • c-\ 切换输入法
  • c-x shell 进入shell模式, 然后c-x c-b 返回buffer

2016-02-16


start to use emacs to do something

2016-02-03


开始学习emacs 网站搭建起来之后,要逐步建立起自己的博客系统。 持续更新较高质量的博客内容。 你问我800多块钱的书, 我会不会看?那我买来是干什么的?

2016-01-24


做人确实比学代码难 用一个简单的文本文件把每次出错的信息记录下来,后面如果解决了就把解决方法也记录一下,养成这种学习习惯,会受益匪浅, 写博客是最好的办法。

2016-01-23


一龙哥身上有很多东西可以学习。查找一个问题,居然可以发现其背后那么多关联的东西。受教了。

2016-01-22


知耻而后勇. let’s go!

2016-01-21


window.location.search可以获取url里面的查询的参数。 今天遇到一个问题:h5调用app接口。这个很难做兼容。

2016-01-20


nohup my/go/command & 可以把程序丢到后台去, 注销不会kill这个进程, 重启可以。若用ctrl+z做相同的事, 退出当前终端, 进程被kill.

2016-01-19


zsh终端里面可以直接输入文件夹名, 进入目录,不需要加前缀cd。 ..直接道上一级目录。~直接到home目录来了。 不错。

“计划这个词,只是将构思束之高阁的另一种表达方式。只要想到好的构思,我们立刻就着手实现。” –《黑客与画家》 install phpbrew to control version of php. phpbrew

2016-01-18


备案提交了,下周拍下照,备案应该就快下来了。我自个儿的网站的第一个hello world就快出来了。到时候,有的写了。写作于我而言有特殊的用处。对于我来说,是真正的好记性不如烂笔头。而且随着岁月溜去,能留下某一下瞬间的想法,不是一件很有意思的事情么?  rsync -av file (or dir) [email protected]:/home/nil 远程复制命令, niubility!

2016-01-17


下划线和竖线都比矩形的光标要快。

2016-01-16


  • vim 中直接! clisp % 执行当前lisp文件, 无须退出。
  • ssh key
  • ssh-keygen -t rsa -c ‘email’
  • 安装composer并且设置为全局变量 curl -ss https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

1999年的那年, 京东和阿里不同的领导人的定位,居然发展成今天的格局。定位不同,发展的速度,方向差异竟然这么大!

2016-01-14


  • chsh -s /bin/zsh root
  • chsh -s /bin/zsh 当前用户修改bash=>zsh
  • curl -ssl http://git.io/git-extras-setup | sudo bash /dev/stdin 安装git summary 代码统计
  • curl -ssl http://git.io/git-extras-setup | sudo bash /dev/stdin 安装git summary 代码统计
  • 查询某一列重复的记录 select user_name, count(*) as count from user_table group by user_name having count>1;
  • sudo nginx -s reload 可以替代 sudo service nginx restart
  • 丧心病狂的配置啊 git config –global alias.lg “log –color –graph –pretty=format:’%cred%h%creset -%c(yellow)%d%creset %s %cgreen(%cr) %c(bold blue)<%an>%creset’ –abbrev-commit”

2016-01-13


学了点emacs的皮毛, 感觉不是很顺手, 毕竟vim使用快一年半了。 但是emacs应该是lisp入门的绝好材料。

  • c-p 上, c-f 后, c-b 左, c-n 下一
  • c-l 上中下屏幕切
  • c-x c-q 只读模式, 相当于vim的普通模式
  • c-v 下一页, m-v 上一页,
  • controlalt 基本上是对着干, vim里面是大小写对着来。
  • c-ac-e 将光标移到“一行”的头尾, m-a和m-e将光标移动到”一句”的头尾

2016-01-12


lisp是什么样的语言?这个门进去会怎么样?看了《黑客与画家》, 很有冲动, 想钻进这道门里去。在知乎,百度,google, 各种途径里面去找它的点点滴滴, 迫切想找一个入口。 这两天的事物很有冲击力:虾米的大气音乐, deepin系统的使用, 对lisp的着迷, 。。。。。。 脑子充血了,反正。不管是什么路了。我冲下去了!

2016-01-10


From today , use deepin system for my own computer system. Use english everyday. Good beginning! Install php7.0.2 at deepin15 by ”deepin下安装php7” Sleep well tonight, tomorrow sun will still rises. gtkhash (ubuntu下校验文件的hash值工具)

2016-01-08


  • 测试git rebase -i
  • find / -name 'metronic' -type d # 查找目录
  • find / -name components_editors.html -print # 查找文件

2016-01-04


学习应该是随时随地, 从项目中吸收养分. 以项目中遇到的问题和疑点展开, 由点到面的蔓延.而不是特意的去学习各种还没有用上的东西. 学以致用是最适合自己的学习东西的方法. 随着经验的积累, 知识结构也会慢慢完善起来. 最后再补充缺失的知识结构. 越学越有意思了.

2016-01-04


  • insert into , replace intoinsert 的区别,
    • insert into 表示插入数据,数据库会检查主键,如果出现重复会报错;
    • replace into 表示插入替换数据,需求表中有primarykey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和 insert into 一样;
    • insert ignore 表示,如果中已经存在相同的记录,则忽略当前新数据

2016-01-03


凌晨四点, 醒. 人生百年, 白驹过隙. “代码review ,合并master 之前还是要认真做代码审查,提高代码质量 开发之前不要急着coding,先做到心里有比较完整的思路,再开始,要注意一开始代码的质量,不要等到最后去优化,优化,可以随时随地 ” —— 旺旺

2016-01-01


还是应该打实基础.

2015-12-28


  • extract() 函数把数组按键值映射出来.
  • ctrl-tctrl-o, ctrl-i 的区别是?

2015-12-27


adminlte 这个后台样式也不错

2015-12-26


metronic 有很多的js 终端界面的颜色不太好看. 技术,没有终点.

2015-12-25


到过一个地方之后,可能都会对之前不可企及的东西不以为然。比如,买过一个体验不错的耳机之后,你之前的那些随手机赠送的耳机,将变得难以忍受。甚至宁愿不听。

2015-12-24


mysql 声明变量及赋值 select @a:=1;select count(*) from table_name where 1=1 and id>1 and (@a:=@a+1);select @a;

2015-12-23


  • http定义了与服务器交互的不同方法.
    • 最基本的方法有4种,分别是get,post,put,delete。
    • url全称是资源描述符,我们可以这样认为:一个url地址,它用于描述一个网络上的资源,而http中的get,post,put,delete就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,get一般用于获取/查询资源信息,而post一般用于更新资源信息
    • “理论上讲,post是没有大小限制的,http协议规范也没有进行大小限制, post数据是没有限制的,起限制作用的是服务器的处理程序的处理能力”
    • post的安全性要比get的安全性高
    • get是向服务器发索取数据的一种请求,而post是向服务器提交数据的一种请求
  • http定义了与服务器交互的不同方法,最基本的方法有4种,分别是get,post,put,delete。url全称是资源描述符,我们可以这样认为:一个url地址,它用于描述一个网络上的资源,而http中的get,post,put,delete就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,get一般用于获取/查询资源信息,而post一般用于更新资源信息。
  • 根据http规范,get用于信息获取,而且应该是安全的和幂等的。

  1) 所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,get 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。    + 注意: 这里安全的含义仅仅是指是非修改信息.   2) 幂等的意味着对同一url的多个请求应该返回同样的结果。 这里我再解释一下幂等这个概念:

  • 幂等 (idempotent, /idempotence/)是一个数学或计算机学概念,常见于抽象代数中。

  3) 幂等有一下几种定义:

  • 对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有abs(a)=abs(abs(a))。
  • 对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在在实数集中幂等,即max(x,x) = x。

2015-12-13


今天向孙晨请教个问题,才发现自己平时阐述问题都是不清楚的。自己都讲不清楚这个问题,还怎么指望请教别人?怎么加强自己的表达能力?

2015-12-12


锻炼身体对于一个程序员来说,是至关重要的.重要性甚至应该排在工作之前.无视健康,终究会败在健康下. 继续坚持锻炼. 突然冒出一个想法.看看怎么实现它. 下午在深大散步, 借书无果. 后面走到校园内湖边上, 仰躺在湖边的草地上想了许多.

2015-12-10


一般sql我都按照这样的格式 select fields….., fields….. from xxx as xxx inner join xxx as xxx on xxx=xxx where xx = xx and yy = yy and zz = zz group by xxx order by xxx limit xxx offset xxx

2015-12-03


终端里面访问sql, 可以用 explain 开头, 可以查询索引的使用是否合理 奇怪, 在家里的电脑上push的东西, 远程有图标记录, 在公司就没有. 这是什么原因?

2015-12-01


创建表添加注释: create table groups( gid int primary key auto_increment comment ‘设置主键自增’, gname varchar(200) comment ‘列注释’, ) comment=’表注释’

2015-11-30


  • 自行车: 山地车重要的部分包括车架,前叉,刹车,变速,车轮。 先说车架,就材质来说,车架有高碳钢的,有铝合金的,当然铝合金比较轻巧,高碳钢维修起来比较方便。就整体而言,车架分为硬车架和全避震车架,两者各有优缺点,硬车架骑行轻便,全避震车架适用于复杂路况 再说前叉,简单分为硬前叉和带避震的前叉,细分的话,依次为弹簧叉,阻力叉,油簧叉,油气叉,前叉越高级越需要细心呵护,一般情况下,选个弹簧叉就能满足普通人的需要了。 然后是刹车,明显地分为碟刹和v刹,两者工作原理不同,价格差别也很大,v刹靠摩擦,碟刹靠制动轴,v刹是抱死式的,经常高速骑行的最好不要用v刹,抱死易侧滑。 其次是变速,包括指拨,指拨有手拨和指拨之分,前拨,后拨,飞轮(飞轮有普通旋式和定位式,定位式更精确)及牙盘。 至于车轮,车轮需要注意的是车圈和轮胎,车圈有刀圈和t型圈之分。外胎的形状对车手有影响,我们大致根据路面选择轮胎的形状即可。 最后简要说说其他部位,有车条(整体式车轮是没有车条的),停车支撑,车把(根据个人需要选择合适的车把),鞍座(大都符合人体工程学,一般都很舒服),花鼓(即轴,分锁死式和快拆式),中轴(梅花孔中轴,方孔中轴),链条(长距离骑行需要自备链条油)。
  • atom 是一种基于xml(标准通用标记语言的子集)的文档格式以及基于http的协议,它被站点和客户工具等用来聚合网络内容,包括weblog和新闻标题等,它借鉴了各种版本rss的使用经验 atom正走在通往ietf标准的路上,在这之前,atom的最后一个版本是”atom 0.3”,并且已经被相当广泛的聚合工具使用在发布和使用(consuming)上。 值得一提的是, blogger和gmail这两个由google提供的服务正在使用atom. atom是开发一个新的网志摘要格式以解决目前rss存在的问题混乱的版本号,不是一个真正的开放标准,表示方法的不一致,定义贫乏等等。 它与rss相比来讲,有更大的弹性。

2015-11-29


手筋特训看完一遍了. 换个环境,都事物的看法会有些不同.

2015-11-27


莫比乌斯环只有一面 “假定那是一个传奇,任何一个传奇终将落幕,但绕梁若干世,被传颂。我个人更加认为小李的奇在敢于退出韩国棋院的休职,奇在他每逢提及大李必称李昌镐老师。40岁的乔丹退役时,科比25岁,我们假定乔丹是传奇。那么,科比如说出单挑5%的话……再或者,对手是吴清源先生……传奇,只是输给岁月,而非隔代的人。目前这个世道,还真不知道那个运动员有什么霸气。年少,只是懂棋,而非悟道罢了” 柯洁太狂了。忘了上次“让井山裕太血贱五步”的言论了。

2015-11-26


php -r "echo date('y-m-d h:i:s', strtotime('+8').php_eol);" // 命令行里面运行php程序输入, 拉丁猪游戏的实现

2015-11-25


  • 判断回文小程序
  • aptitude 安装效果比apt-get 更好。
  • gpasswd -d tml smbuser 正在将用户“tml”从“smbuser”组中删除
  • gpasswd:未知成员 tmlgpasswd -d tml smbuser 正在将用户“tml”从“smbuser”组中删除 gpasswd:未知成员 tml

2015-11-17


“O use an analogy, if algorithms were about automobiles, it would be for the person who wants to know how cars work, how they are built, and how one might design fuel-efficient, safe, reliable vehicles for the 21st century. the people who hate algorithms are the ones who just want to know how to drive their car on the highway, just like everyone else.” “If you want to become a good programmer, you can spend 10 years programming, or spend 2 years programming and learning algorithms.” “算法是一种将有限计算资源发挥到极致的武器, 当计算资源很富余时算法确实没大用, 但一旦到了效率瓶颈算法绝壁是开山第一刀。” “基于各种数据结构上的增删改查。 如字符串的查找翻转, 链表的查找遍历合并删除, 树和图的查找遍历, 后来为了更好的查找, 我们想到了排序, 排序仍然不够,我们有了贪心、动态规划,再后来东西多了,于是有了海量数据处理,资源有限导致人们彼此竞争,出现了博弈组合概率。”

2015-11-16


三天不练手生。 #alias mydir='cd /xxxx/xxxx' # 自定义别名

2015-11-15


只有打碎些东西,有的化学反应才会发生.慢慢的,我开始从各方面不自觉的运用围棋的翻盘观念来反省日常生活.

2015-11-13


要注意细节,很多个细小的优化,一点点持续地积累,积少成多,最终汇聚为惊艳的成果。为山九仞,岂一日之功。

2015-11-12


  • cli command :
    • php -i -> 图形界面下phpinfo()的输出效果
    • php -a : 供交互式 shell, 和 ruby 的 irb 或 python 的交互式 shell 相似,此外还有很多其他有用的命令行选项。
  • “一款开源软件能否在商业上成功,很大程度上依赖三件事 - 成功的 user case, 活跃的社区和一个好故事 ”
  • 今天安装vagrant布置一个多开发环境, 修改vagrantfile后发现一个问题:vagrant ssh启动时报错->

There is a syntax error in the following vagrantfile. the syntax error message is reproduced below for convenience: /xxx/vagrantfile:54: syntax error, unexpected keyword_end, expecting end-of-input

  • 另外,不能把目录设置成 777 的权限。 即使是别人给你的环境。 也不行。 权限一定要控制好。
  • ruby语言是日本人发明的。牛b. ruby 的end不能顶格写!

2015-11-10


  • kill process by key words
    • ps -ef| grep chrome|cut -c 9-15|xargs kill -9
    • cut -c 9-15 ——截取输入行的第9个字符到第15个字符,而这正好是进程号pid
    • xargs kill -9 ——xargs 命令是用来把前面命令的输出结果(pid)作为”kill -9”命令的参数,并执行该命令。”kill -9”会强行杀掉指定进程。

2015-11-05


phalcon框架下, 使用 empty() 函数, uc浏览器和其他浏览器表现不一样。

2015-11-04


php是用 c语言 写的, 要更深入的学习php, 必须对c语言有所了解。 是先学算法, 还是c? 还是同时展开? 这是个问题。 uc浏览器似乎和别的浏览器有很大的不同。

2015-11-03


  • 细心, 细心 , 再细心 ! 又是一个逗号的问题。 再多的细心都不为过。
  • 安装了 phpunit 单元测试
  • 针对类 class 的测试写在类 classtest中。 classtest(通常)继承自 phpunit_framework_testcase。 测试都是命名为 test* 的公用方法。 也可以在方法的文档注释块(docblock)中使用 @test 标注将其标记为测试方法。 在测试方法内,类似于 assertequals()(参见 附录 a)这样的断言方法用来对实际值与预期值的匹配做出断言。
  • “当你想把一些东西写道print语句或者调试表达式中时, 别这么做, 将其写成一个测试来代替。” –martin fowler
  • “单元测试主要是作为一种良好实践来编写的,它能帮助开发人员识别并修复 bug、重构代码,还可以看作被测软件单元的文档。要实现这些好处,理想的单元测试应当覆盖程序中所有可能的路径。一个单元测试通常覆盖一个函数或方法中的一个特定路径。但是,测试方法并不一定非要是一个封装良好的独立实体。测试方法之间经常有隐含的依赖关系暗藏在测试的实现方案中。” –adrian kuhn et. al.
  • phpunit支持对测试方法之间的显式依赖关系进行声明。这种依赖关系并不是定义在测试方法的执行顺序中,而是允许生产者(producer)返回一个测试基境(fixture)的实例,并将此实例传递给依赖于它的消费者(consumer)们。
    • 生产者(producer),是能生成被测单元并将其作为返回值的测试方法。
    • 消费者(consumer),是依赖于一个或多个生产者及其返回值的测试方法。

2015-11-01


@余弦博客 “这是一个混乱的世界,我们都在各种怪圈中,很多谜必须跳出这个圈才有解。那些被认为无解的不会真的无解,而是在我们所认知的范围内,它们无解。我自认为我不是一个平淡的人,神奇的宇宙与人类行为给我带来了很多启示,我不会一直在某种形态下走下去,却肯定会在一种状态让我的思维与成果一直延续到永久。 对知识我们需要充满敬畏。” –余弦 “我对黑客的定义很简单「守正出奇且具备创造力的群体」 ”

2015-10-30


我已经决定研究下h5+flash上传的结合了。

2015-10-28


let mapleader="," ;

2015-10-27


今日小结: nerdcomment 插件,~/.vimrc 设置leader键-> let <leader>=”,” 公共部分的尽量不要轻易改。

2015-10-26


“是否具有算法知识和技术的坚实基础是区分真正熟练的程序员和初学者的一个特征.使用现代计算技术, 如果你对算法懂得不多,你也可以完成一些任务,但是,如果有一个好的算法背景,那么你可以做的事情就多得多.” – 算法导论

2015-10-23


  • sudo apt-get install kubuntu-desktop
  • kde 下截屏命令行工具scrot
  • sudo apt-get install scrot (命令行下的截图工具)
  • scrot 获取整个桌面
  • scrot ~/photos/my_desktop.png指定目录和文件名
  • scrot -s 区域截屏
  • scrot -s -d 5 延时截图
  • scrot -q 50 调整图片质量, 默认75, 数字越大质量越高
  • scrot -t 10 尺寸, 减小截屏的尺寸到原图的10%
  • scrot -e ‘mv $f ~/screenshots’ scrot允许你发送保存的截屏图像给任意一个命令作为它们的输入。这个选项在你想对截屏图像做任意后期处理的时候十分实用。截屏的文件名/路径跟随于“$f”字符串之后。
  • 机械键盘+kde环境下 fn+prsts截屏
  • php中换行的问题
  • mac换行\r
  • linux换行\n
  • window换行\r\n
  • ctrl+shift+m切换终端的菜单

2015-10-22


用心做一件事,胜过做一百件马马虎虎的事. 更不要急于求成. 天下武学, 虽然无坚不摧, 唯快不破. 但不能一味求快. 急躁总是伴随着失误和破绽的. 张弛有度, 一步步扎扎实实打下厚实的基础. 还有时时反省, 先从自身原因找起. 鞋子合不合适, 要先看自己的脚的大小.

2015-10-21


每天路上读点书, 过不一样的时间, 看不同的风景. “一个真正无所畏惧的人的强大依托就是内心的强大.在任何时候都不要轻易否定自己,要接受自己,热爱自己, 无论是毫无经验还是一事无成都要把自己当成一个堂堂正正的人来看待. 每天都展开对自己的**诚实的战斗.” 年轻人要培养一双神奇的眼睛, 能发现旁人感觉不到的新鲜事物, 然后为他们命名. 在命名之后, 人们就发现世界诞生了新的部分. – 尼采

2015-10-20


活在当下.多整理,整理出效率. 重点找出每天的那个20, 而非80. 每天看点书. 地铁上的时间还是比较多的.每天来回的路上足足有一个半小时. 一定要利用好这些零碎时间. 读书可以让自己平静下来, 睡眠也好多. 感觉有些充实. 上周日到深大图书馆看半天书,深有感触. 一年多没看书了. 拿起来, 挺爽! 往后, 周末腾一天爬山, 一天泡图书馆. 每周借五本以上杂书, 题材不限, 周日下午六点前还, 借. 图书馆好多妹子!

2015-10-16


每天太阳升起,必须快跑.

2015-10-16


每天进步一点点,一小步,一小步的攀登。

2015-10-11


flash + h5(input(file)) 上传

2015-10-10


lla 可以显示ll -a 的结果

2015-10-02


  • sql注入 -正确的过滤 -使用合理的字符集 -宽字节注入
  • xss类型 -反射型
  • php 职业规划-> 职业生涯乃至人生, 持续性.
  • 薪资title
  • 犯下的错误和花去的时间不能重来.
  • 如果你找不到人生的意义,那么可以先累积money.等你找到意义的时候,一定会用得上的, 喵~
  • 提升架构能力的两个基本原则
    • don’t repeat yourself
    • 正交性
  • 很多时候,技术提升的瓶颈是因为对 业务理解 的不够透彻.

2015-10-01


vimium 使用时,网页中复制有个比较笨的方法就是先用 / 搜索选中要复制的内容的前几个字符,然后 shift+-> 选择复制内容, ctrl+c 就可以复制了。 或者进入 visual 模式,然后 shift+向右键 机械键盘,敲起来,果然是飞一般的感觉.

2015-09-30


新的机械键盘,爽歪歪~~, 手感杠杠的

2015-09-29


ctags -r -f .tags


2015-09-20


canvas画股票分时图


2015-09-19


scp [email protected]:/home/test.tar.gz /home/test

2015-09-13


  1. mysql 两个函数
    • FROM_UNIXTIME(time_stamp) -> 将时间戳转换成日期
    • UNIX_TIMESTAMP(date) -> 将指定的日期或者日期字符串转换成时间
    • SELECT FROM_UNIXTIME(1382544000);
    • SELECT UNIX_TIMESTAMP(date('2015-09-15'));
  • 查询今天的注册记录
    • SELECT COUNT(*) FROM table_test WHERE DATE_FORMAT(FROM_UNIXTIME(create_time, '%y%m%d'))=DATE_FORMAT(now(), '%y%m%d');
    • SELECT COUNT(*) FROM table_test WHERE create_time >= UNIX_TIMESTAMP('2015-09-16 00:00:00') and CREATE_TIME <= UNIX_TIMESTAMP('2015-09-16 23:59:59');
    • UPDATE table_test SET update_time= date_add(create_time, interval 30 day) WHERE uid=1008618 limit 1;
  • php 升级: 这里 , 还有还有这里
  • php7 is so super! change vim background “solarized” , add solarized.sh , chmod + x solarized.sh, then ./solarized.sh dark, 这样就可以让ubuntu14.04的vim 运行起solarized,并且和官网的颜色一样了. 原因是ubuntu14.04终端本身没有solarized的配色
  • nginx conf nginx conf 配置参考
  • 迁移代码到/web/
  • 验证码的用处
    • 一般服务器端业务中, 写请求的消耗远大于读请求, 作用, 区分机器/人的请求, 技术要点:
      • 底图的实现,并且添加干扰元素
      • 生成验证内容
      • 验证内容保存在服务器端
      • 验证内容的检验

2015-09-12


  • array_multisort()
  • usort()

these functions are so cute!


2015-09-07

:%s/([\u4e00-\u9fa5]+)/{{ ___('\1') }}/g

2015-09-03

目前搜索引擎对div的友好程度比table好一些 how to install the latest git version? here is the way under ubuntu system

  • sudo add-apt-reposotory ppa:git-core/ppa
  • sudo apt-get update
  • sudo apt-get install git done!
  • git --version
  • git version 2.5.1
  • scp -r /home/administrator/test/ [email protected]:/root/ --> (copy location dir to remote ip dir)
  • scp /home/dirname/test.txt [email protected]:/home/user/ –> (copy only one file co remote ip dir)
  • scp -r [email protected]:/username/ /home/ –> (copy remote dir to location address)

2015-09-02

ctrl+; 历史输入补全

2015-09-01

effortless ctags with git in vim, to use ctags super sex

2015-08-31

ctrl-s 在linux里面,是锁死屏幕的快捷键, ctrl-q 解锁。

2015-08-30

study_note: today learn how to install && use php7 to start with this command : /opt/php7/bin/php -s 0.0.0.0:9009 url visit by http://0.0.0.0:9009 so hot

2015-08-22

add ag plugin today how to use it! :ag [options] {patterns} [{directory}]

sometimes “git grep” is even faster in the quickfix window, you can use:

  • e to open file and close the quickfix windows
  • o to open (same as enter)
  • go to preview file(open but maintain focus on ag.vim results)
  • t to open in new tab
  • t to open in new tab silently
  • h to open in horizontal split
  • h to open in horizontal split silently
  • v to open in vertical split
  • gv to open in vertical split silently
  • q to close the quickfix window

2015-08-19

notice: 这几天扛下来,功力大涨!任何时候都不要害怕问题。要硬着头皮迎上去! 还是那句话:稳住阵脚,冷静观察,沉着应付!

2015-08-08

  • vim plugin surround.vim is all about “surroundings”: parentheses, brackets, quotes, xml tags, and more. the plugin provides mappings to easily delete, change and add such surroundings in pairs. while it works under vim 6, much of the functionality requires vim 7.
    • examples follow. it is difficult to provide good examples in the variable width font of this site; check the documentation for more.
    • press cs”’ (that’s c, s, double quote, single quote) inside, “hello world!” to change it to ‘hello world!’ now press cs'<q> to change it to <q>hello world!</q>
    • to go full circle, press cst” to get “hello world!”
    • to remove the delimiters entirely, press ds” . hello world! now with the cursor on “hello”, press ysiw] (iw is a text object). [hello] world!
    • let’s make that braces and add some space (use “}” instead of “{” for no space): cs]{ { hello } world!
    • now wrap the entire line in parentheses with yssb or yss) , ({ hello } world!)
    • revert to the original text: ds{ds) hello world!
    • emphasize hello: ysiw<em> <em>hello</em> world!
    • finally, let’s try out visual mode. press a capital v (for linewise visual mode)
    • followed by s<p> <p> hello world! </p>
  • this plugin is very powerful for html and xml editing, a niche which currently seems underfilled in vim land. (as opposed to html/xml inserting, for which many plugins are available). adding, changing, and removing pairs of tags simultaneously is a breeze.

the . command will work with ds, cs, and yss if you install repeat.vim, vimscript #2136.

2015-08-07

  • help grep open a buffer containing the search results in linked form. the :silient command may be usedt osuppress the default full screen grep output. the “:grep!” form of the :grep command doesn’t jump to the first match automatically. these commmands can be combined to create a newgrep command:
  • copen
  • lopen
  • lgrep

2014-08-06

  • sudo apt-get install zsh
  • chsh /bin/zsh
  • sudo apt-get install oh-my-zsh

强大的工具。zsh比bash还好玩,而且和bash无缝切换。 在vim 中想用命令行命令的话: ctry_+z , 会使vim进入后台工作, fg 恢复vim工作 bg 或者: !sh&

2015-05-14

单向散列加密是指通过不同输入长度的信息进行散列计算,得到固定长度的输出, 这个散列计算过程是单向的,即不能对固定长度的输出进行计算而获得输出信息

  • 对称加密
  • 非对称加密(分公钥和私钥)
  • 明文 -> 加密算法(salt) -> 密文 -> 解密算法(密钥) -> 明文

2015-05-13

刚上线项目。git太吊了~ 加密形式:

  • md5() 加密算法
  • crypt() 加密算法
  • sha1() 加密
  • url编码加密
  • base64编码加密

2015-05-09

全文索引


全文索引在绝大部分的网站中是不会用到的, 但在数据量巨大(百万级以上)的时候, 这时候通过php模糊查询技术, like 效率是比较低的,而且也比较消耗性能。 使用全文索引搜索时注意:

  1. 数据表引擎必须是myisam,
  2. 不支持中文;如果需要支持中文需要通过特殊的处理

专注才能学的快。

2015-05-08


  1. 第一次提测,出现了后台c++方面的问题。ip和端口访问出现了问题。
  2. error_reporting(); $keywords = isset($_get[‘keywords’]) ? trim($_get[‘keywords’]) : ”;

3)搜索结果的关键词高亮显示 技术点: 利用php的字符串替换功能, str_replace(); $row[‘username’] = str_replace($keywords, ‘<font color=”red”>’.$keywords.’</font>’, $row[‘username’], 学习知识点用熟悉它的应用场景

2015-05-07


团队发展之路

对细小任务的完成时间有明确规定,最大限度调动技术团队内的能力,使项目迭代很稳定。这是小公司不能比拟的。

2015-05-06


  • thrift 强大~
  • 索引有什么好处: 如果按照某个条件去检索数据,如果这个条件没有建立索引,查询的时候是会遍历整张表,如果你建立了索引,查询的时候就会根据索引来查询,进而提高查询性能.
  • mysql 查询 – 精确查询, 有且只有一条 (用户注册、登录,单条数据更新) – 模糊查询, 返回的结果不确定。(站内搜索等)
  1. 使用sql匹配模式,不能使用操作符 = 或 !=, 而是使用操作符like 或 not like
  2. 使用SQL匹配模式,MYSQL提供了2种通配符:
    • % 表示任意数量的任意字符(其中包含0个)
    • _ (下划线)表示的任意单个字符
  3. 使用SQL匹配模式,如果匹配模式中不包含以上2中通配符的任意一个,其查询的效果等同于 = 或 !=
  4. 使用 SQL 匹配模式忽略大小写
    • 查询用户名以某个字符开头的用户 查询以 ‘l’ 开头的用户名数据 -> 1%, eg: SELECT * FROM user WHERE username LIKE ‘l%’;
    • 查询用户名以某个字符结尾的用户 查询以 ‘e’ 结尾的用户名的数据 -> %e eg: SELECT * FROM user WHERE username LIKE ‘%e’;
    • 查询用户名包含某个字符的用户 -> %o% 查询用户名包含字符 ‘o’ 的用户 eg : SELECT * FROM user WHERE username LIKE ‘%o%’;
    • 查询用户名长度为3的用户数据 eg : SELECT * FROM user WHERE username LIKE ‘___’;
    • % 与 _ 的结合 查询用户名中第二个字符为 ‘o’ 的用户数据 eg: SELECT * FROM user WHERE username LIKE ‘_o%’;
    • 正则表达式匹配模式(不建议使用) a . —> 匹配任意但个字符 b × —> 匹配0个或多个在它前面的字符 c x* —> 表示匹配任何数量的X字符 d [..] —> 匹配中括号中的任意字符 d eg:
      • [abc] 匹配 a, b, 或 c
      • [a-z] a-z任意字符
      • [0-9] 0-9任意字符
      • [0-9]* 任意数字
      • [a-z]* 任意小写字母
      • ^ –> 开头
      • $ –> 结尾
    • 正则表达式匹配模式使用的操作符, 是REGEXP 或 NOT REGEXP ,有别于SQL模式 (任何位置满足正则表达式匹配到了模式,就是匹配到了,)
      • 查询用户名以l开始的用户 SELECT username FROM user WHERE username REGEXP ‘^l’;
      • 查询用户名正好是三个字符的用户 SELET * FROM user WHERE username REGEXP ‘…$’; //’…..$’;
      • 注意: 如果仅用通配符 . 来匹配, 有N个 . 就匹配大于等于N个
  • 大公司,把业务精细化管理,技术团队能最大化完成这些划分的任务。看到服务器管理的同事的工作,才知道数据结构和算法才是王道。将武功比之:数据结构和算法才是内功,编程语言只是招法。

2015-05-05


大公司的生活压力很大,每天那么多人git push那么多次代码,就自己贡献最少。 Ctrl+shift+tCtrl+Alt+t 打开的终端不太一样。前者同窗口打开,后者另起窗口。 Ctrl+shift+v 直接将粘贴板的东西,粘贴到终端

2015-05-02


  1. 当前要务是分清主次,轻重缓急,长远的技术。在保证工作顺利的前提下,更新自己的it技能。
  2. 逐个击破。各个技术点逐一学习,分化拿下。

2015-05-01


vim有一个插件可以用python实现vim中直接看hackernews -> vim-hackernews

2015-04-30


  • 前期的环境已经全部部署完毕, 五一前的准备工作, 已完成。 下一步,利用一天,熟悉全部常用的git命令; 用两天,熟悉 phalcon 开发环境下的使用.
  • mysql root密码忘记,可通过最简单的 /etc/mysql/debian.cnf 文件中的用户名和密码,
  • mysql -udebian-sys-maint -p
    • Enter password: <输入[client]节的密码>
    • mysql> use mysql;
    • mysql> UPDATE user SET Password=PASSWORD(’newpassword’) WHERE USER=’root’;
    • mysql> FLUSH PRIVILEGES;
    • mysql> quit
    • # mysql -uroot -p
    • Enter password: <输入新设的密码newpassword> 来修改。 ubuntu14.04上快速解决。

2015-04-29


  1. linux scp , ssl, 这些命令要多用。
  2. awk, sed 都是很常用的数据处理工具, 还有管道命令 grep (选取)

2015-04-28


补充: linux的许多命令,今天那个叫开眼了。大神就是大神。总之就一句话:linux原来还可以这样玩~ tag一个,里程碑式的日子。

  1. thinkphp 官网 phalcon官网
  2. requirejs
  3. 安装git客户端,并熟悉git的使用方式
  4. 安装node: node (注意下载它的二进制版本,注意机器的位数)
  5. 安装对应的npm包 npm install bower -g npm install grunt -g npm install jsint -g npm install requirejs -g npm install uglify-js -g npm install jshint -g npm install opencc -g npm install gulp -g
  6. 用ssh-keygen生成密钥对,设置项目公钥信息
  7. 安装phaltomjs: phaltomjs
  8. php安装memache扩展,thrift扩展,composer

2015-04-24


  • 列举五种设计模式,(单元素模式,工厂模式,观察者模式,命令链模式,策略模式,)
  • 写几种算法的思路,(只写了冒泡算法,选择排序,快速排序,插入排序,)
  • 数据库的索引的认识
  • 事务处理
  • html5, canvas
  • php5.2, php5.3, php5.4的重大改进
  • shell的一堆东西
  • linux下的awk, sed, grep, 等等, 一大堆命令
  • shell数组
  • shell编程做自己的工具补充
  • git 分支等, checkout, rebase, 等等
  • mysql优化,大数据
  • web层面对页面加载的加速
  • phalcon的di
  • thinkphp模板有什么优缺点
  • strtotime输出当前月的最后一天
  • js好几道题目(call, apply什么的)
  • stdClass
  • php的SPL接口有哪些?
  • 分区分表
  • 两个域名如何同步登录?
  • ajax 跨域,(jsonp)
  • ORM 等等 (关系型数据模型)
  • radis
  • web漏洞,如何防?
  • 自己的网站采用了什么办法提速?
  • 一个打开很慢的网站用什么步骤,什么方法检测问题出在哪里,优化之路?,加速? …

等等,一共60多道。

2015-04-22


  • 截取网址后缀: “http://www.xxx.com/xxx/xxx.jpg”的多种方法 a. substr(‘http://www.xxx.com/xxx/xxx.jpg’, -1, 3)
  • 高并发,大数据访问,采取什么办法, 为什么采取这种办法
    • 配置高性能服务器
    • 优化数据库访问
    • 禁止外部的盗链
    • 控制大文件的下载
    • 使用不同主机分流主要流量
    • 使用流量分析统计软件
  • sort, asort, ksort的区别,并分别使用不同排序方法实现
    • sort依据值从小到大排序,键值不参与排序
    • asort 依据值排序,键值参与排序
    • ksort 依据键值排序,值参与排序
  • 超链接之间如何传递数组, 将数组转换成字符串,然后在目标脚本中在将字符串转换成数组, $arg = implode(‘,’, $names); echo $url = “localhost/m/index.php?names=”.$arg; 或者cookie, session 表单传递,get, post方式 <?php $var = ‘love you’; ?> <a href=”<?php echo ‘page02.php?new=’.$var;?>”>get</a> page02.php <?php echo $_GET[‘new’]; ?>
  • 邮箱验证格式 ^[a-z0-9]+([.+\-]*[a-z0-9]*@([a-z0-9]+[a-z0-9]+.{1,63}[a-z0-9]+))$
  • mysql日期区间格式,总数查询
  • linux每天自动备份指定文件到指定目录下,
  • ajax异步,同步的区别, 应用场景 (async:false为同步)
    • 同步:用户不能做任何操作,只能等待。直到有结果返回。
    • 异步:用户可以做任何操作,结果返回后,自动显示判断结果
  • 远程访问制定文件的两种方法 a. $th = file_get_contents(‘http://www.yiqihd.com’); if($th){while(!feof($th)){echo fgets($th);}} 注:fopen()返回的只是一个资源,如果打开失败,本函数返回FALSE b. $th_2 = fopen(‘http://baidu.com’);echo $th_2; 注:file_get_contents()打开网页后,返回的是一个字符串,可以直接输出的 c. curl
  • 自己熟悉的一个开源框架,该框架采用什么设计模式,作者如何使用该框架的

2015-03-26


什么是好的视图引擎? 1.基于该引擎开发出的模板要更贴近标准的html等 2.语法简单易懂 3.良好的缓存机制 4.扩展性好 5.网络资源多

2015-03-25


  • MVC
    • M 从数据库取出数据
    • V 直观看到的web页面
    • C 向系统发送命令和工具
    • (Model View Controllers)是一种软件设计典范, 用一种业务逻辑和数据显示分离的方法组织代码, 将业务逻辑聚集到一个部件里面,在界面和和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑
    • mvc 有利于业务分工
    • mvc 有利于代码重用
    • MVC 的运行原理
      1. 第一: 浏览者 -> 调用控制器,发出指令
      2. 第二: 控制器 -> 按指令选取一个合适的模型
      3. 第三: 模型 -> 按控制器指令取相应数据
      4. 第四: 控制器 -> 按指令选取相应视图
      5. 第五: 视图 -> 把第三步取到的数据按用户想要的样子显示出来
    • 单一入口机制 index.php?xxx, 指在一个web应用程序中,所有的请求都指向一个脚本文件. 使维护更方便

2015-03-24


  • df 查看磁盘空间 df -lahHT
  • du 统计磁盘上的文件大小 不加参数, 遍历当前文件夹所有文件夹目录 -b 以byte为单位 -k 以KB -m 以MB -h 按照1024进制以最合适的单位统计文件 -h 按照1000进制以最合适的单位统计文件 -s 制定统计目标
  • 分区
    • 第一 主分区和扩展分区总数不能超过四个
    • 第二 扩展分区最多只能有一个
    • 第三 扩展分区不能直接存取数据 (扩展分区内部划分逻辑分区才能存取数据)
    • 当硬盘空间消耗殆尽时怎么办?
      1. 办法: 在保留原硬盘的基础上,给服务器添加新的硬盘
  • 必须对硬盘进行分区,格式化,挂载后才能使用
    • fdisk 要加参数才起作用 , fsisk需要根用户权限 -bchlHs
    • fdisk /dev/sdb 进入分区指令
  • 分区模式之 MBR
    • 主分区不超过4个
    • 单个分区容量最大2TB
  • GPT –> 逼格上的一个巨大的提升啊
    • 主分区个数几乎没有限制
    • 单个分区容量几乎没有限制
      1. 1EB=1024PB, 1PB=1024TB, 1TB=1024GB
      2. 18EB=18432PB = 18874368TB=19327352832GB
  • parted可以用于GPT分区, MBR分区, fdisk只能用户MBR分区
    • sudo parted (parted)
    • select /dev/sdc
    • mklabel gpt
    • print all #查看分区类型
  • 分区的格式化
    • 分区格式化命令 mkfs
    • 主分区和逻辑分区才可以格式化
  • 挂载命令 mount
    • 默认挂载到mnt mount /dev/sdb1 /mnt/gitvim
    • 将远程目录文件挂载到本地, 然后直接打开 sudo mount -t cifs -o user=xxxxxx,password=xxxxxx,iocharset=utf8 //10.1.1.1/dir_name /mnt/MYSHARE
    • 卸载 umount /mnt/gitvim
    • 自动挂载(开机自动挂载) Vim + /etc/fstab
  • 添加swap交换分区
    • 第一, 建立一个普通的linux分区
    • 第二, 修改分区类型的16进制编码
    • 第三, 格式化交换分区
    • 第四, 启动交换分区
  • free 查看硬盘使用情况

2015-03-20

  • winSCP具有ftp一样的功能
  • ecshop 下载网盘路径: pan.baidu.com/s/1dDAJvZN 语言都是相通的,JMeter是用java开发的
  • JMeter是apache组织开发的,模拟大并发的开源工具
    • sampler 采样
    • thread
  • JMeter.apache.org 下载

2015-03-18


  • sysstat命令之IO监控 sar -b -f sa18
  • sysstat命令之CPU监控 sar -B -f sa18
  • sysstat命令之网络监控 sar -n DEV -f sa18
  • 评估磁盘读写性能极限 - 》
    • fio -filename=/data/test -direct=1 -iodepth 1 -thread =rw=randrw -ioengine=psync -bs=16k -size 2G -numjobs=10 -runtime=30 -group_reporting -name=mytest13
  • 性能测试工具简介: JMeter 特性: - web -HTTP, HTTPS
    • SOAP
    • FTP
    • LDAP
    • Message-oriented
    • MongoDB(NoSQL)
    • TCP

    -Others

2015-03-16


要改变。

2015-03-14


  • sysstat
  • sar 命令
  • sar –help查看帮助
    • 例子 -> sar -q -f sa08
    • sar -p -f sa25
  • PRI(new) = PRI(old) + nice

2015-03-13

  • 负载测试(Load Test)
    • 为了验证系统设计符合正常业务负载情况下系统性能表现的测试
    • 压力测试(Stress Test)
    • 为了验证系统在极端负载情况下的性能表现的测试
    • 一台Centos服务器
    • 一个可以链接服务器的工具putty
    • top命令查看进程

2015-03-12

  • 横向扩展的能力
  • 数据库的优化
  • 尽量让一台机器能够承载更多的用户请求
  • 性能测试概要
    • 什么是性能测试
      1. 性能测试就是通过技术的手段模拟大量用户同时访问被测应用,观察,记录,分析和系统有关的各项性能个过程。
      2. 性能测试的目的是评估系统的性能瓶颈,预测系统的最大用户负载能力
  • 两个关键点
    • 模拟大量并发用户
    • 监控系统负载参数分析瓶颈
  • 性能指标
    • 平均响应时间(TTLB, time to laster byte)
  • 平均每个请求从发送到接受响应的时
    • 合理的平均响应时间
      1. 2/5/10原则
      2. 2秒好, 5秒比较不错, 10秒失败
      3. 1秒的页面家在延迟相当于少了11%的PV(page view)
    • (2~5 below)为系统资源类的指标
    • CPU - CPU的占用率
    • 内存 - 内存的占用率, 换页数等
    • I/O - 读写请求数, 读写量
    • 带宽
  • 进站出站带宽占用率
    • 为什么要进行性能测试?
      1. 够有效评估系统的性能指标,用于系统的性能测试
      2. 够识别系统的性能瓶颈,协助性能调优
      3. 够指导突发流量承载方案的制定
      4. 够用于系统运维成本的预算

2015-03-11

  • PHP性能问题的具体分析
    • 工具: XHPorf (源自FaceBook的PHP性能呢分析工具)
    • 实践:
    • 通过分析Wordpress程序,进行分析
    • php.ini -> [xhprof] extension=xhprof.so; xhprof.output_dir=/tmp/xhprof
      1. xhprof_enable(XHPROF_FLAGG_CPU+XHPROF_FLAGS_MEMORY) 开启xhprof
      2. $data = xhprof_disable();
      3. include_once “xhprof_lib/utils/xhprof_lib.php”;
      4. include_once “xhprof_lib/utils/xhprof_runs.php”;
      5. $objXhprofRun = new XHProfRuns_Default(); // 数据会保存在 php.ini 中xhprof.output_dir设置的目录去中
  • PHP性能瓶颈解决方法
    • 做到极致
  • Opcode Cache: PHP扩展APC
    • 扩展实现:通过PHP扩展替代原php代码中高频逻辑
    • Runtime优化,HHVM (smarty模板渲染可以用HHVM实现)
    • smarty caching 设置成true启用缓存机制
    • 重叠时间窗口**
    • 串行: Process1 -> Process2 -> Process3 -> Process4
    • 重叠时间窗口 process1 process2 process3 Process4
    • 旁路方案

2015-03-10

  • PHP代码运行流程:
    • ×.ph -> Scanner-> Exprs -> Parse -> Opcodes -> Exec -> Output
  • PHP 语言级性能优化
    • 优化点:PHP 内置函数的性能优劣, isset > array_key_exists()
  • less use php magic function, 减少使用魔术方法减少使用魔术方法
    • linux : time php test.php -> can see the time of the file use
  • don’t use ‘@’, 严格不使用’@’符号
    • vld dumps all the opcodes
  • use unset free 及时释放变量
  • no calculate in a for (减少计算密集型业务,如大批量的日志分析,大批量数据量运算), php语言都需要装化成c处理,从这点上来说,phalcon是最快的php框架
    • php适合衔接webserver与后端服务,UI呈现.
  • 务必使用带引号字符串做键值:PHP会将没有引号的键值当作常量,产生查找常量的开销
  • php周边都有什么 ?
    • 硬件
      1. linux运行环境
      2. 内存
      3. 文件存储(硬盘读写读写)
    • 软件
      1. 数据库 DB
    • 缓存(软硬radis, memcache)
    • 网络
    • php 是串行运行
  • 优化
    • 减少文件类操作。
      1. 常见PHP场景的开销: 读写磁盘 , 读写数据库, 读写内存, 读写网络数据 .
      2. 速度比较: 读写内存 << 读写数据库(基于读写磁盘) < 读写磁盘 < 读写网络数据(也是读写磁盘, 网络有隐性因素,)
    • 优化网络请求(读写内存是最快的)
    • 网络请求的坑
      1. 对方接口的不确定
      2. 网络稳定性
      3. 如何优化网络请求?
        • 设置请求时间
          • 链接超市 (不要超过200ms)
          • 读超时 (不要超过800ms)
          • 写超时 (不要超过500ms)
        • 将串行请求并行化
          • 使用curl_multi_*() (取决于多个中间最慢的)
          • 使用swoole扩展 (推荐)
        • 压缩PHP接口输出
          • 如何压缩
            • 使用gzip输出
            • 压缩输出的利与弊
            • 利:利于数据输出,client端更快获取数据
            • 弊:额外的cpu开销
      4. 缓存重复计算内容
        • 什么情况下做输出内容的缓存?
        • 多次请求,内容不变情况
  • 流程 :
    • x.php -> Cache -> Nocache -> 计算,数据处理 -> cache -> chached

2015-03-09

  • 对未知的问题有一定的解决办法,说明自身的技术已经有所提高
  • php性能问题
    • 项目中遇到问题了吗?
      1. php语法使用的不恰当
      2. 使用php语言做了它不擅长的事情
      3. php语言连接的服务不给力
      4. php自身的短板
      5. 不知道的问题
    • 在什么情况下遇到性能问题?
    • 有什么靠谱的解决办法?
    • PHP的性能问题,占整体项目性能的比例不大,性能优化,不应该仅仅局限在php的优化上。
      1. php语法级的性能优化(易)
      2. PHP周边问题的性能优化(前有服务器如apache,后有数据库如mysql)(中)
      3. PHP语言自身分析,优化(难)
  • 压力测试工具
    • apache benchmark(ab)(linux下)
    • ./ab -n1000 -c100 http://www.baidu.com
    • -n请求数 -c 并发数 url目标压测地址
    • 提高每秒请求次数(Request per second); 优化到每次请求越多越好
    • 平均处理一个请求的时间(time per request). 优化到越小越好
  • PHP语言及级性能优化
    • 性能问题:
    • 自写代码冗余,可读性不佳,并且性能低
  • 为什么性能低?
    • PHP代码需要编译解析为底层语言,这一过程每次请求都会处理一次,开销大
    • 好方法:
      1. 多使用PHP内置变量,常量,函数

2015-03-08

东西多了,得分清急所,大场。

2015-02-10

  • 通信数据标准格式: code状态码, message,data
  • json格式封装数据
  • php生成xml数据
    • 组装字符串
    • 使用系统类
      1. DomDocument
      2. XMLWrite
      3. SimpleXML
  • 混合封装json/xml格式数据格式
  • 缓存技术
    • 静态缓存
    • memecer
    • redis
  • xml节点不能是数字 // <0>4</0>
  • php生成缓存,获取缓存,删除缓存

2015-02-09

php面向对象 app

2015-02-06

还是差太多啊。真的应该出自己的产品。

2015-02-03

show variables like “%log%”; 开启慢查询日志: set global show_query_log=on; show variables like “%slow%”;

2015-02-02

(1)总是朋友们帮我,当朋友有难时,我半点忙也帮不上。

2015-01-26

貌似今天工作比较顺利,很快就把任务完成了。明天就可以开始手机板块了。争取年底前把大部分的工作完成掉。年后接新的项目。明年要做新的技术项目。把git和phalcon真正用到项目上。 Phalcon比laravel的性能还要高出十倍。

2015-01-24

对于php来说,了解它的运行机制,有助于我们写出高效健壮的代码,会更清楚程序的代码到底该怎么去写,如果是做php扩展,那了解它的运行机制就更是必须的了。

  • 运行环境:LAMP的A、M、P是如何互通工作的?
    • L:Linux/Windows(OS)
    • A:Apache(server)
    • M:Mysql(DB)
    • P:PHP
    • 1) 分别安装Apache、Mysql、PHP
    • 2) PHP和DB的互通:修改php配置文件php.ini,“;extension=php_mysql.dll”把冒号去掉,这样php就可以支持mysql数据库了
    • 3) Server和PHP的互通:修改apache的配置文件httpd.conf,在LoadModule配置块添加LoadModule php5_module d:\php5\php5Apache2_2.dll”;添加希望Apache服务器能够识别的PHP扩展名“AddType application/x-httpd-php .php”;默认显示页“DirectoryIndex index.html index.php”;修改apache端口号“Listen 82”

前两相配置就是告诉apache server,以后收到的Url用户请求,凡是以php作为后缀,就需要调用php5_module模块进行处理。

  • PHP运行过程简介
    • PHP总共有三个模块:内核、Zend引擎、扩展层。
      1. PHP内核用来处理请求、文件流、错误处理等相关操作;
      2. zend引擎(ZE)用以将源文件转换成机器语言,然后在虚拟机上运行它;
      3. 扩展层是一组函数、类库和流,PHP使用它们来执行一些特定的操作,比如:我们需要mysql扩展来连接mysql数据库;
    • 当ZE执行程序时可能会需要连接若干扩展,这时ZE将控制权交给扩展,等处理完特定任务后再返还;最后,ZE将程序运行结果返回给PHP内核,它再将结果传送给SAPI层(服务器应用程序编程接口),最终输出到浏览器上。 简单来说,整个运行过程即: 启动apache,PHP解释程序也随之启动; 其中php的启动主要包括两部分
      1. 初始化一些环境变量,这将在整个SAPI生命周期中发生作用。PHP调用各个扩展(php.ini文件中打开的扩展)的MINIT方法(MINIT的意思是模块初始化,各个模块都定义了一组函数、类库等用以处理其他请求),从而使这些扩展切换到可用状态
      2. 生成只针对当前请求的一些变量设置。当一个页面请求发生时,SAPI层将控制权交给PHP层,于是php设置了用于回复本次请求所需的环境变量,同时,它还建立一个变量表,用来存放执行过程中产生的变量名和值;PHP调用各个模块的RINIT方法,即“请求初始化”,一个经典的例子是session模块的RINIT,如果在php.ini中启用了session模块,那在调用该模块的RINIT时就会初始化$_SESSION变量,并将相关内容读入。2. PHP关闭
    • 关闭也分两步
      1. 一旦页面执行完毕(无论是执行到了文件末尾还是用exit或die函数终止),php就会启动清理程序,它会按顺序调用各个模块的RSHUTDOWN方法,RSHUTDOWN用以清除程序运行时产生的符号表,也就是对每个变量调用unset函数。
      2. PHP调用每个扩展的MSHUTDOWN方法,这是各个模块最后一次释放内存的机会。这样,整个PHP生命周期就结束了。
  • PHP运行机制
    • 首先,讲一下apache,它是目前使用最为广泛的一种web server,优点是跨平台、高效和稳定,缺点是越来越重
    • Apache组件逻辑, Apache是基于模块化设计的,总体上看起来代码的可读性高于php的代码,它的核心代码并不多,大多数的功能都被分散到各个模块中,各个模块在系统启动的时候按需载入。
      1. MPM:Multi -Processing Modules,多重处理模块,是Apache的核心组件之一,Apache通过MPM来使用操作系统的资源,对进程和线程池进行管理。最常用的是prefork和worker。
      2. APR:Apache portable Runtime Library,即Apache可移植运行库,它是一个对操作系统调用的抽象库,用来实现Apache内部组件对操作系统的使用,提高系统的可移植性。
      3. Php module:Apache对于php的解析,就是通过众多Module中的php Module来完成的。
  • 启动阶段
    • 在这个阶段,Apache为了获得系统资源最大的使用权限,将以特权用户root(X系统)或超级管理员administrator(Windows系统)完成启动。
  • 运行阶段
    • 在运行阶段,Apache主要工作是处理用户的服务请求。
    • 这个阶段,Apache放弃特权用户级别,使用普通权限,这主要是基于安全性的考虑,防止由于代码的缺陷引起的安全漏洞。
    • Apache将请求处理循环分为11个阶段,
    • 这里,讲一个比较重要的概念,apache的Hook机制,是指Apache 允许模块(包括内部模块和外部模块,例如mod_php5.so,mod_perl.so等)将自定义的函数注入到请求处理循环中。换句话说,模块可以在Apache的任何一个处理阶段中挂接(Hook)上自己的处理函数,从而参与Apache的请求处理过程。

    关于Hook机制在Windows系统开发也经常遇到,在Windows开发既有系统级的钩子,又有应用级的钩子。常见的翻译软件(例如金山词霸等等)的屏幕取词功能,大多数是通过安装系统级钩子函数完成的,将自定义函数替换gdi32.dll中的屏幕输出的绘制函数。

2015-01-23

Phalcon是目前所有的php框架中最快的。没有之一。c扩展. Study_Note 学习的经历,经验

2014-12-07

大丈夫能伸能屈。最近有点忙。经常到三更半夜的。但不能停下来不走。要继续。

2014-12-14

有趣 围棋和编程存在一个很有趣的共通点:)都讲究计算式思维。我在这方面还很不足。 所以,我有空多下棋,对编程是有很大的帮助的。Ok,就这么愉快的决定了。

  • 什么是知识。
    • 陈述式知识;
    • 过程式知识。
  • 计算机的核心是: 在一些基本指令上建立程序实现目的理念,然后才是一系列控制流。
  • 程序的内涵 就是一系列指令。
  • 正确的指令 六条基本的指令就可以主宰世界。 一种语言能行的,另一种语言也可以。语言没有最好的,只有更好的。语言只是一种表单**的工具。我对vim投入过于执着了。
  • language choose
    • 高级语言;
    • 广泛型应用还是特定型应用;
    • 解释型语言,编译型语言
  • 在碰到问题是,将问题细化成计算步骤,转化成计算机能够执行的一串指令
  • 对于一门语言,要了解它的基本组成部分,语法,语义。 静态语义:表示什么程序是有意义的。 完整语义:运行程序会产生什么样的结果。 注册了百度云域名,空间,正在准备备案材料。等备案下来,我的Laravel框架写的自己的博客也就开始上线了。以后代码放github托管,页面和数据就放自己的网站上。 问题是:我的网站应该做一些什么样的事情呢?难道只是博客?这不是我的初衷。 我应该让我的网站变得更有意义。

2014-12-15

胜 从来没有轻易的胜利。人天生对自己劳动所得报有一种希望。一切还是回归自然些好吧。 问题终究可以解决,但有的时间要长一些,有的短一些。就是这样。 我能解决很多问题。但时间上不允许我有解决所有问题的可能。得失的因果决定了我必须进行取舍。 今年这么多人结婚,我去哪里?都去不了啊。没钱,没时间,咋去? 想想就紧张。也不知道这些同学都过的咋么样了?你们过的可还好?那些年,我走过的路,遇上的人,第一吃的东西,第一次旅行经过的地方,都一一记在脑海里。这辈子都记得(老年痴呆除外。。。。。。)。好了,00:06了,要睡觉了。明天还有三个项目接着搞。年底前,技术上应该有一个质的飞跃。

2014-12-18

坑 有些东西,一旦不去动,就没了。每接触一个技术,就会很多感想:人的这辈子太短了。学不完的。要是多些时间,该多爽? 很想把很多代码都学一下。可惜。

2014-12-19

国内翻译的东西,东一块,西一块。要么就是断章取义。能秒懂的人又不屑于浪费时间在解读上面。还是得自己英语过关。英语好的,学起程序那可真的是爽~

2014-12-21

围棋无时无刻不在追求,下一手去哪儿。不知道下一手去哪儿,很危险!一步之差,缪以千里。妙哉!

2014-12-22

<<那山,那人,那狗>>电影的音乐真好听, 刘烨和陈好的处女作。体现湘西邮政的电影。很好看。很有意境。父子和一条狗。湘西真漂亮~ 不兴自己喊苦。这话精辟。 这电影里的稻田让我想起了小时候收稻谷的情景。**人是接地气的。

2014-12-25

秦时明月更新到君临天下了~哈哈哈~帅呆了~,今天火车票没买到。南广高铁通车,两广的经济将产生质的飞跃。

2014-12-29

PHPer要掌握哪些技术才能破万工资

  • WEB开发语言<前后端>:PHP、HTML、JavaScript、CSS。
  • 服务器:Linux安装、LANMP环境搭建<apache和nginx>、SVN安装与配置、git安装与使用、cacti安装与使用、memcache安装与使用、 redis安装与使用、常用命令使用<查找、正则>、Linux安全配置。
  • 数据库:MySQL、MongoDB。懂得分库、分表的应用场景。以及MySQL索引优化、分区、各种引擎适应场景。MongoDB工作原理,优劣场景。
  • 设计模式:单例、工厂、策略、委托、代理等常用模式要熟悉使用。
  • 排除算法:冒泡排序、快速排序、选择排序、归并排序。
  • 计算机原理:分时分片、进程、线程、IO、内存。掌握这些,可以帮助理解设计语言和系统瓶颈。
  • 源码分析:Discuz、PHPCMS v9、Wordpress、typecho、Ucenter原理。
  • WEB安全:SQL注入、XSS、CSRF等常见安全防御。
  • 熟悉各种开源技术:二维码、缩略图生成等。多多益善。
  • 大数据与并发。这个是亮点,也是进入架构层面的基石。薪资是否破万与此直接相关。
  • 前端技术:JQuery、bootstrap等。
  • 代码规范、文档齐全,会制作演示PPT,流程图软件<亿图图示专家或Axure RP>。
  • 掌握MVC模式及框架<LARAVEL、ZendFramework、CI、Yii、ThinkPHP、Yaf>。

2015-01-01

“走不出去的路不是路。路为所有人开放着,但不是所有人都能走那条路。”

2015-01-04

荡尽浮华。尽留坚实。laravel,是让我真正喜欢上php的原因。相比之下,Ruby,Python比php更高雅。

2015-01-09

symfony框架也是相当犀利! 韩红的歌,牛。

2015-01-16

搭建一个千万用户级的网站: 横向扩展的能力 数据库的优化 尽量让一台机器能够承载更多的用户请求

./photos/black_bird.jpg

studynotes's People

Contributors

chenyangguang avatar

Stargazers

Hao Lee avatar Myrice avatar Venj avatar  avatar

Watchers

James Cloos avatar Hao Lee avatar yufeng avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.