Conway's Law

M.Conway:

organizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.

软件系统的架构反映了公司内部的组织结构、团队间的通讯结构。

Go Big or Go Home

Go Big or Go Home

CtrlP.vim

ctrlp.vim 是个非常棒的 vim 插件,可模糊搜索文件、buffer、mru 等等,原生 vim-script,相比 Command-T 更为友好的安装,速度上也没有差多少,所以几年前知道这个插件就一直在用,最近才发现原作者从 2013 年就不再维护更新,另一个社区版更为活跃,也加了不少新功能。

社区版地址 ctrlpvim/ctrlp.vim,支持扩展功能,也就是 vim 插件的插件,其中 ctrlp-funky 可以在当前文件内定义的方法之间跳转,类似 Tagbar/Taglist,但不依赖于 ctags,算是个精简版。

Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'tacahiroy/ctrlp-funky'

let g:ctrlp_extensions = ['funky']
let g:ctrlp_funky_syntax_highlight = 1
:com! -n=0 D CtrlPFunky
nnoremap <Leader>fu :CtrlPFunky<Cr>
nnoremap <Leader>fU :execute 'CtrlPFunky ' . expand('<cword>')<Cr>

Monthly Review 2015-08

  1. 新项目紧紧的进行,客户端赶在月底上线了第一版。
  2. 项目进度很快,甚至有点过快,快到很多地方考虑不周,加上测试不到位,运营又急于推广,导致上线后问题一一出现。
  3. 所以说开发时候配上单元测试是很有必要的,可是完全的 TDD 时间上根本不允许。
  4. 现在我自己的开发测试模式是 httpie: http :3000/api < data.json --session=fann,严格意义上来说只能算开发辅助,很难 cover 到全部。

  1. 六六在北京一共呆了 40 天,每天回家能和孩子在一起真好。
  2. 婆媳关系是个永恒不变的话题,作为丈夫+儿子,大多时候都很无力,只能依靠时间来淡化解决问题。
  3. 又一次搬家,不对,搬宿舍。

根据时间自动切分 Nginx.log

之前是用脚本配合 crontab 来做日志切分:

#!/bin/bash
# This script run at 00:00

# The Nginx logs path
logs_path="/usr/local/webserver/nginx/logs/"

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

最近发现可以直接在 nginx.conf 里通过 $time_iso8601 提取时间进行设置:

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {
    set $year $1;
    set $month $2;
    set $day $3;
}

access_log /var/log/nginx/$year-$month-$day-access.log;

时间粒度可以更为精细:

if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})") {
    set $year $1;
    set $month $2;
    set $day $3;
    set $hour $4;
    set $minutes $5;
    set $seconds $6;
}

via Log rotation directly within Nginx configuration file

28

28.

六六陪爸爸过的第一个生日,妈妈代笔写了贺卡,我 28 了。

Monthly Review 2015-07

  1. 长岛休假半个月。圈个海岸就收钱,沙滩特别差,不推荐去玩。
  2. 第一次带老婆去海边,所以尽管环境不行,前几天玩的还算开心。
  3. 按老家习俗给六六过了一岁生日,农历。
  4. 接六六来北京,尽管很难,尽管很多阻力,至少走出这一步,希望一切向好的方面发展。

Monthly Review 2015-06

  1. 用 Angular Material 写了个管理平台,体验很赞。
  2. Gin 改写了部分接口,现在是 Python+ngx_lua+Go,目前情绪稳定。
  3. Gin 是个不错的框架,够轻量,middleware 扩展,封装适度,性能也不错。另一个是 Goji,两个都是我比较喜欢的。
  4. gorm 不错,目前项目比较简单,就直接通过 gorm 新建表结构,之前一个项目 Python+Go 都会涉及数据库,采取的策略是手动建表,ORM 只负责读写。
  5. 前两天看《非你莫属》,20岁小哥,完全没有互联网从业经验,就因为看现在 O2O 火了,自以为有很多 ideas,要转投移动互联网,应聘产品经理。PM 就是这么被毁的啊。
  6. 6月24日,六六一岁了。

Angular Material

又尝试了点新东西,Angular Material,写了一个的管理后台。

  1. Angular Material 是基于 Flexbox 做布局,在此基础上添加了 layout HTML 属性,写起来非常清爽:layout="row" 横向,layout="column" 纵向。
  2. build-in directives 很丰富,一整套界面写下来,目前最欠缺一个日期时间选择器。
  3. material-start 快速上手包,完整的 Angular Material 实例。
  4. 迭代更新很快,相对来说文档更新差一步,有时候需要看 demo 源码。
  5. 自带主题支持。
  6. 体积较大,min css+js 将近 400K。

5 Years in Beijing

5 years in Beijing. 5 years in Appwill.