• 寫 RoR 的人要求特別高? at 2018年03月02日

    Rails 的学习曲线相对平滑些,入门更轻松,然后在项目制作过程中渐渐挖掘背后的黑科技。所以用 Rails 用多了,知识面很容易快速拓展,Rails 所选用的那些 Best Practices 可以让你获得远比其他框架多的知识量。

    一个写 PHP 或者 Python 的人,他可能会对 DB Migration / ORM 不太熟,但是 Rails 用户是一定熟悉的。

    他可能会对 TDD / BDD 不太熟,但是 Rails 用户是一定熟悉的。

    他可能会对 SCSS / SASS 不太熟,但是 Rails 用户是一定熟悉的。

    他可能会对 yarn / mvvm 不太熟,但是等以后 Rails 5.1 流行起来,项目多起来,Rails 用户也会很熟悉这些。

    比起一些 PHP 程序员那样,抓来一个 TP4 就开始码,jQuery+CSS 扒皮一把梭,测试代码为零来讲,那是高到不知道哪里去了。

    不过这并不只限于 Rails。你把主题里的 Rails 换成 Laravel,其实结论是一样的。

  • 区块链如何改变世界 at 2018年02月27日

    倒是可以写一篇为什么我错过了狠狠从中国人手里捞钱逼着他们卖房跳楼的机会。

  • 我的编辑器打 do 会自动补全|x|和 end,不需要手敲。

  • Ruby 2.6.0-preview1 已发布 at 2018年02月24日

    Ruby 2.6 introduces an initial implementation of JIT (Just-in-time) compiler.

    Ruby 2.5 引入了 JIT (Just-in-time) 编译器的初始实现。

    纠正一个小错误 XD

  • 定义数组可以不要括号? at 2018年02月24日
    [1] pry(main)> a, b = 1, 2
    => [1, 2]
    [2] pry(main)> a
    => 1
    [3] pry(main)> b
    => 2
    [4] pry(main)> 
    

    一般是给这种用法用的。

  • 部署 Windows 太花时间了,反正我是不想折腾。

    做开发,也就算了,毕竟需要交互环境。不做开发,有用 Windows 部署的理由吗?

  • 不奇怪。而且不是理论上,是实际上。

  • 我一直觉得,像是数字货币这样级别的东西,在经济学和计算机科学两个领域不拿个 master 或者 PhD 就高谈阔论的,总觉得很那啥……

  • 官方包 bootstrap-sass X

    第三方包 twitter-bootstrap-rails ✓

  • 二维数组生成小陷阱 at 2018年02月10日

    指针被你赋值改掉了呀。而且 4 本来就是不可变对象,你本来就改不了 4 的值。

    看下面的例子。

    # pry
    [1] pry(main)> s = ['0']*4
    => ["0", "0", "0", "0"]
    [2] pry(main)> s[0] = '1'
    => "1"
    [3] pry(main)> s
    => ["1", "0", "0", "0"]
    [4] pry(main)> s[1].replace '2'
    => "2"
    [5] pry(main)> s
    => ["1", "2", "2", "2"]
    [6] pry(main)> s.map &:object_id
    => [46944791677080, 46944791865940, 46944791865940, 46944791865940]
    [7] pry(main)> 
    

    拿你开头的例子来说:

    值 [[0 0] [0 0]]
    针 [[A A] [A A]]
    针 [  B     B  ]
    a[0][0] = 2
    值 [[2 0] [2 0]]
    针 [[C A] [C A]]
    针 [  B     B  ]
    

    因为你是把 A 指针换成了 C 指针,所以不会变成 [2 2],但是因为 B 和 B 指向同一个数组,所以会变成 [2 0] [2 0]。

  • 一个生成证书讲那么长,不如做一篇 xca 的教程呢?

  • 二维数组生成小陷阱 at 2018年02月10日

    是因为数组是对象,*5 是复制指针而不是复制数据。

  • 关于 inject, 疑惑的地方. at 2018年02月04日

    第二段的 sum + 2 if a >3

    第四段的 sum + 1 if a <2

    都相当于空行。

  • Linux、Ruby 不冷没天理! at 2018年01月31日

    没有办法。

    醒醒,你是一个人,不是一个机器。你有人性吗?有,就很难做到高效团结。你一天只有 24 小时,就算不吃不喝也只有 24 小时。你一辈子只有几十年撑死一百年。有限的时间投入到无限的工作中去,那就是个笑话。如果你觉得你的想法是对的,觉得你这样的办法能挣到钱,那就创业去啊,搞个牛逼的公司来给我们开开眼呗。Linux 不算周边软件,只算内核,开发成本超过 10 亿美元,你打算花多少钱来高效团结多少人做开发呢。

    对着命令行码字也不是什么不符合人体工程学的。文字表述准确,信息密度高,在人类界广泛使用。新闻报纸为什么都用文字,而不用图形界面(漫画?)。你的工作环境怎么样我不知道,但是要是让我用图形界面去配置几十几百台机器,那我宁愿辞职走人,把活交给你来做。

  • 谨防比特币和区块链骗局 at 2018年01月30日

    感谢提醒,我已经搬家到比特币上了,比原来的商品房宽敞很多,风景也好。

  • 用现在的价值去衡量当年的价值本来就没什么意思。币的市值是因为有人投了钱进去才能一路升值上去。这 3 万元也不是 Github 送的,而是那些后来投钱买币的人送的。Ripple 只要印出千亿废纸,然后等大家花钱买废纸,把废纸变成钱就行了。

  • 用 Ruby 嘛,自己爽就行了,上不上 TIOBE 前几又咋了呢。

  • 对于 Rails 的 QPS 疑问 at 2017年12月30日

    workers 8 threads 16 不是会产生 128 线程吗?

    如果你真的只配置总共 16 线程并且每个请求真的要花掉 1 秒的话,是的最多 16qps。

    所以实际运行中,这么慢的请求不会配置这么少线程的。

  • 是会出现偏差,但是大 O 主要是看增量规模而不是实际性能的,如果要计算实际系数的话,要考虑的东西会多得多,不仅仅是 n 和 x,还要考虑每一步的实际 CPU 和内存消耗,比如排序的 nlogn 的系数(数据移动和读取比较)就比查询的系数(只读取和比较)大;甚至有些排序还要新开内存区段,还要执行递归等等。

    大 O(x) 的意思是对于 x 的增长,整体耗时也是线性增长。如果是 O(x^2),则说明 x 增长时整体耗时增长是平方级的。具体系数不是大 O 要考虑的东西。

  • 第一部分里变量是 n。第二部分里变量是 x,nlogn 相当于常量了。也就是问题转变成了,给定一个固定大小的数组时多次查询的算法复杂度。这时候 n x 和 logn x 的数量级相同,但是 logn x 的系数更小。

  • 谈谈我对 Ruby 的看法 at 2017年12月29日

    包管理那段也是槽点。Ruby 在 gems 之前不也没有包管理,装个 rails 都要 vendor 下面拷一大堆文件,运气好是 plugins,运气不好直接裸拷 lib 文件……

  • 被博士碾压是什么很奇怪的事情吗?

  • 明明后面还跟了个posts_path你怎么能说他们效果一样呢。

  • stdout, status = Open3.capture2('/bin/sh', 'files/test.sh')

  • 找工作的话,简历还是需要的,没简历人家怎么招你。

  • 因为这个交互式命令行本身也会被你的代码改变吧。

  • edit 方法为什么要负责 new 啊……

  • 就是working directory啊。 https://en.wikipedia.org/wiki/Pwd

  • Gemfile 要改名了 at 2017年09月12日

    编辑器也完全可以根据整个文件的名称来判断语法类型。

    比如我这 Rakefile 和 Gemfile 语法高亮并没什么问题。