如果用 pry, 可以直接 edit Person#update
#65 楼 @lgn21st homebrew-dupes 的公式基本都可以不安装...
因为 clang 的代码检查比 gcc-4.2 的检查给力一些,用 clang 这样安装就可以了:
export CC=`which clang`
CFLAGS="-Wno-error=shorten-64-to-32" rvm install ruby-1.9.3-p385
如果是用 rvm 对应的 openssl 和 readline
export CC=`which clang`
CFLAGS="-Wno-error=shorten-64-to-32" rvm install ruby-1.9.3-p385 --with-openssl-dir=$rvm_path/usr --with-readline-dir=$rvm_path/usr
cd C:\devkit
??
A: 按任意键继续 B: 哪个键是任意键? A: 密码是你生日 B: 你怎么知道我生日,怎么输了不对?
虽然 =
是右结合的运算符,但 defined?
还是先看左边的
UI 不错,很吸引人,用户多了代码自然会改善的... discuzz!, disqus, discourse, ... 下一个你们懂的... @sunfmin disqors ...
attachementable
看起来挺蹊跷的... 直接用一个 attachement
不行么?
json 空间和时间占用都比 marshal 高,标准库和 yajl 效率都不如 marshal, okjson 是更慢的...
stack size 可能是 Ruby 版本太老?最初的 Fiber 完全是绿线程的翻版,要全栈拷贝,后来不用全栈拷贝了消耗内存降低了很多
哈哈 Ruby-China 版春晚
car.changed_attributes[:number] = true
就可以保存了
CRuby 1.9 线程是和操作系统线程一一对应的,也就是去掉了 GIL, 支持多线程了 但是还有 GVL, 线程虽然有了但还是在 VM 中最多只吃一个 CPU
GVL 和 GIL 的区别是,GVL 只要跑到 VM 外面 (例如 C 扩展), 两个线程是可以吃满两个 CPU 的
python 年快乐! 话说前不久看了成龙大哥的十二个中国揍敌客 ...
#14 楼 @iBachue (下面指的是 CVE-2013-0263)
如果代码用了 Rack::Session::Cookie (例如一些 padrino 的程序...), 就有利用这个漏洞伪造 session 的可能。只要能伪造 session, 攻击者就可以把自己的 user id 设成其他人或者管理员,就能随便看/改别人的资料或者登录后台了。
首先我们看看 Rack::Session::Cookie 是怎么处理 session 的:
user_id
, csrf_token
之类的内容Base64.encode64(Marshal.dump(..))
的方式序列化成一个字符串存在 cookie 中。这里能出什么问题呢?就是签名验证是要做字符串比较的,然后字符串比较的耗时是和第几个字符出现不同相关的... 如果签名的第一个字符就不对,比较的速度就很快; 第一个字符一致,但第二个字符不对,比较的速度就慢一些; 前两个字符一致,但第三个字符不对,就更慢一些...
攻击者可以用同一段伪造的 cookie 去请求一个 url, 然后穷举签名的第一个字符,选取能使服务器响应时间最慢的那个,那么 digest 的第一个字符应该就猜对了,然后依此类推穷举第二,第三个字符 ... 最后猜出摘要中所有字符,就能成功伪造了 session 了。
其实攻击的条件挺苛刻的... 首先是请求的时间要能测得很准,基本只能在云服务器上做攻击,而且请求的响应速度要快,请求中 Ruby GC 一下什么的测出来的时间就不准了。其次是要做很多次请求才能猜出 secret, 服务器只要随便有点监控就发现了,配置 http_limit 的服务器,猜摘要的时间间隔也很长,摘要长一点就不 viable 了。再其次是现在字符串比较算法各种利用 CPU 特殊指令,比较时间不一定和第一个不匹配的字符成线性关系...
跑题:网上有很多很多网站有各种更明显的漏洞,像 v2ex 的 cookie 都没设置成 http only, 也没人利用来盗取站长的 session... 这种较难利用的漏洞,攻击的收益成本比不大,应该没几个人会用吧...
timing attack 是通过时间 profile 来破解 cookie secret 的... 但是要网速超快才有效果吧...
devise 代码里也有 secure_compare 之类的,也是为了把计算固定到常数时间
有 libsvm 的包装:https://github.com/febeling/rb-libsvm (可惜不是增量的) 朴素贝叶斯网络 classifier https://rubygems.org/gems/classifier (貌似有人说内存吃得挺大), 但是自己实现一个贝叶斯网络是很简单的,例如 github 的语言检测:https://github.com/github/linguist/blob/master/lib/linguist/classifier.rb rmmseg 是基于比较老的 mmseg 的分词工具 基于 viterbi 的分词工具 mecab 有 ruby binding (算法和中科院 ictclas 差不多的) https://github.com/rsl/stringex 有个表可以用来查找 unicode 字符名称
stochasitic gradient descendent 的 ruby 工具好像还没见过
加了个只做短语切分而不分词的全文搜索服务器的简单例子... 刚测试了索引卫斯理全集效果还行...
在 iTerm 改键,不在 emacs 里改键就可以了...
要用正确的 readline 版本 (例如 rvm 装的)