坏处是电子商务站的证书比较贵..
https 速度慢是上个世纪的事情了... 你可以在 nginx 或者 apache 随便配一下 (自己生成个证书就行), 然后用 ab 测一下对性能的影响
另外 https cookie 要加两个属性:secure 和 http only
secure 保证用户在访问 http 同域名其他路径时不会泄露 cookie http only 保证 cookie 不能被各种国产浏览器里悄悄运行的 javascript 访问 ...
有必要,非加密连接可以盗 cookie 的,cookie 被盗后台就完蛋了。
内网也不保证安全的,只要后台操作人员能打开除了后台意外的网页,就有机会被伪造跨站请求。
https 完全不慢...
如果你的网站没有攻击的价值,你就是安全的,但是电子商务网站后台价值你也知道的...
是 bcrypt
komodo 有 5 刀一年的
这个很多网站都有...
任何非 https 的登录都是不安全的。
在机场咖啡厅之类的地方,开个不加密的热点,然后在网络日志里搜 password 就能搞到各种密码,搜 set-cookie 就能搞到各种 cookie ...
最近不是有统计分析了 3 亿 6 千多万行代码,发现 Java 企业级代码平均 bug 最多,速度几乎最慢么...
不是 11+, 还是没办法 apt-get install redis ..
返回 "\u96a7\u9053\u8f66\u884c" 是正确的,显示和 "隧道车行" 一样。
如果直接返回 "隧道车行", 在没安装中文字符集的系统或者某些别的语言的库处理时可能会出错。
我为 railtie 的读音纠结了一周末,终于在改名字的那人的演讲中听到了:['reiltai]
加上 data-disable-with 就不会暴机了
上次被你们弄成台球 Tuesday 了,损失各种惨重:小兰丢了一 iphone,准备的可乐全让可乐哥喝了
可以啊... 连 markdown parser 都改掉了也可以...
我把 octopress 改得面目全非了 http://luikore.github.com/2011/09/good-things-learned-from-octopress/
ack 也有点问题的,它默认不搜索 Gemfile 和 Gemfile.lock, 各种 sass, coffee 也不在搜索列表中,在 ~/.ackrc 里加上 --text 就可以了。
ack2 以后就默认带 --text 了。
搜出一堆日志中的记录很不爽的
git grep 忽略不在版本控制中的文件 (如 log) 和 .git 目录中的文件 ackmate 可以用 ackrc 限制搜索的文件类型
大胡子也说过 pull 一定要 rebase...
如果 merge 没有 no-ff 而且 merge 时没冲突的话,就没有 merge commit 了,github network 上就会把两个分支的标签叠在一起,没有反映平行开发的真实情况 ...
小心处理的一个好处是清晰的路线图:同样的 commit 不重复出现,merge 可以看到箭头,有箭头的地方一定是 merge.
另一个好处是 github 的 pull request. pull request 界面中,点 merge 按钮和 merge --no-ff 是等价的,如果本地 merge --no-ff, 也会自动关闭 github 上的 pull request.
不小心处理的话,可能会发生一些奇怪的事情,例如:
这里面有些和 rebase 的机制有关 (我不敢说全部...). rebase 会将本分支中所有冲突的 commit 都挨个修改一遍,从冲突点开始,本地 commit 的 sha1 hash 都变了。所以只适合在 pull 同一分支时用:这些 commit 只在本地有一份,就不会产生 1 和 3 的情况了。
git 太多内容了,有时出 rp 问题了还觉得自己完全不懂 git, git 也一直在出新功能,可以一直学下去...
附带分享一下我的 ~/.gitconfig , git gl
可以在命令行看到路线图
[alias]
s = status
c = commit
b = branch
co = checkout
d = diff
lg = log -p
gl = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr,%an)%Creset' --abbrev-commit --date=relative
l = shortlog -s --
merge = merge --no-ff
@Rei 是我没写清楚,这里假设本地修改都 commit 了而且处于 rebase 中途...
textmate 对很多强迫症有良好支持:
ctrl + ' 切换单双引号 ctrl + : 切换字符串和符号 ctrl + [ 切换花括号和 do block opt + cmd + ] 对齐等号 ...
打开 copy-on-write friendly gc 以后,很多 gem 占用的内存其实只有一份
然后再改成
if current_user.respond_to?(message_type)
@messages = current_user.send message_type
else
redirect_to my_message_inbox_path(:inbox_messages)
end
我的强迫症是看见长的代码就一定要改成短的...
例如看见 :a => 就一定要改成 a:
我的 case ... when 一定要这样... :
@messages =\
case message_type
when :inbox_messages then current_user.inbox_messages
when :sent_messages then current_user.sent_messages
when :archived_messages then current_user.archived_messages
when :inbox_proposals then current_user.inbox_proposals
when :sent_proposals then current_user.sent_proposals
when :archived_proposals then current_user.archived_proposals
else redirect_to my_message_inbox_path(:inbox_messages)
end
git grep
用 compass 不要用 bootstrap, 用 css3PIE 让 ie6-8 支持部分 css3
unicorn.rb : 为什么既 listen port 又 listen socket, 其中一个可以去掉吧,和 nginx 的配置对应就可以了
timeout 设短一点,假如 6 个人同时点了用 google 登录,每个进程都在 wait google response, 就要死 120 秒了
其实 task_id 读写是在 field :task_ids, type: Array ,:default => [] 定义的,这里没必要用 method_missing ...
其实规则很简单 ... a = x 总是赋值语句而不是方法调用 a.b = x 总是方法调用
不是一定要写 self 的,例如
task_ids=([1,2,3])
slim 自带 vim 和 emacs 插件 https://github.com/stonean/slim/tree/master/extra
slim 的 textmate bundle 是 Fred Wu 写的
因为每次请求之前把代码都重载了一遍,和 rails 相比,sinatra-reloader 只重载变化的文件就非常快... 有个 gem 可以在请求之前重载代码,可能会快点...
query in view 在 asset pipeline 下用户体验很好...