• #18 楼 @fsword 一开始穷啊,破解网吧管理软件装 mysql 有木有!

  • #14 楼 @lionzixuanyuan

    我的是 7 月份的 15 寸底配 (有些人会觉得内存不够), 13 寸 + 二显兼顾便携性也不错

    对了还能列几条:

    • NASA 里面全是 Mac
    • Mac 的升级主旨是向未来兼容。LLVM 和 Clang 现在如火如荼,大有超越 GCC 的趋势,C++11 的支持比最新的 GCC 好,Xcode 已经把默认编译器转成 LLVM 了。微软虽然有研究基于 .Net VM 的操作系统,但是向过去兼容的主旨导致不可能革新下来。
    • 微软抵触 C 标准,带有 C99(十几年了都!) 以后特性的很多 C 程序都编译不了,这就是很多 gem 用 nmake+cl 编译不了,只好推荐用 devkit 的原因
    • Linus 讨厌微软,所以 git 不是官方支持 windows 的,用 msysgit 还是会遇到些奇怪问题的,新手遇到这些问题往往不知其中的历史渊源和爱恨情仇结果搞得很糊涂...

    不好的地方就是和 windows 的思维模型冲突很大 (控制面板在哪里?), 改变使用习惯也是痛苦的 (我花了一周!)

  • #10 楼 @lionzixuanyuan

    • retina 屏,爱护眼睛
    • 多点触控的 pad
    • 很多命令是用粗壮的大拇指按 command 键组合出来的,比用孱弱的小指头按 control 键来得轻松
    • 命令行:在 iTerm2 下面用 zsh 完美了,powershell 什么的就是烂泥扶不上墙
    • 不仅能用跨平台编辑器,还能用单平台编辑器 textmate
    • 和 linux 一样:能用 rvm
    • 和 linux 不一样:软件包管理工具 homebrew 是用 ruby 写的
    • ruby 社区用的人多,问 windows 的问题不容易得到靠谱答案
    • 可以以没有 windows 为由拒绝调试 ie 的苦逼工作
    • 装了 wine 后还能跑 windows 程序,例如玩 dota, 算序列号什么的...
    • 另外 mac 的硬件装 windows 的话那个啥体验指数很高...
  • java 的不知道...

  • 同意没有高低贵贱之分,只有不用 Mac 后悔和用了 Mac 更后悔当初为什么不用 Mac 之分

  • pry 和 irb 区别在哪里 at 2012年12月11日

    区别是 pry 有颜色,可以用 show-method, show-doc, edit-method 等命令,另外其实能插 binding.pry 调试的地方插 irb 也可以的

  • 应用场景是啥?大部分需要看上一个/下一个元素的话 each_cons(2) 就解决了...

    而且有重复元素怎么办?a = %w[a b a c] 的话 get_next('a') 总是返回 'b' ...

  • 这样?

    (a = 1; b = 2; c = 3) if cond

    分号好难看...

  • @lgn21st 玛雅人正在计算下次和下下次世界末日

  • @lionzixuanyuan 在 windows 得用 mingw 开命令行编译,(或者你装个 visual studio 就有 nmake 命令了), 这个 gem 存在的原因可能是作者不知道 openssl 而已...

    text = 'hello'
    key = rand(36**32).to_s(36).ljust(32)
    require 'openssl'
    
    # 加密
    aes = OpenSSL::Cipher.new 'aes-256-cbc' # 另外还可以选各种 -128 -ecb -ofb 等模式
    aes.encrypt
    aes.key = key
    ctext = aes.update('hello') << aes.final
    
    # 解密
    aes = OpenSSL::Cipher.new 'aes-256-cbc'
    aes.decrypt
    aes.key = key
    deciphered_text = aes.update(ctext) << aes.final
    text == deciphered_text #=> true
    
  • 非要 excel 格式么?csv 不好么?excel 可以打开 csv 的

  • Ruby 自带的是 OpenSSL 的包装,如果你装 Ruby 用的 OpenSSL 是 1.0.1 以上并且 CPU 是 i5 以上,那么已经没法更快了,因为 OpenSSL 会直接用 CPU 的 AES 指令, 比 C 的实现快 8 倍左右

  • Ruby Conference Taiwan at 2012年12月08日

    有 ko1 和浅草 ruby 的创始人啊,还有 godfat!

  • #19 楼 @zhenjunluo 你原来的程序已经创建了线程并且平行于主线程运行了,问题是 ruby 线程和 java 线程不一样:java 进程会等待所有线程结束才结束,ruby 主线程结束了进程就结束了,进程结束时所有其他线程都一起完蛋。这就是为什么这个 hello 程序里看不到想要的效果,为了看到效果,别人才建议你用 thread.join 去等待 hello() 创建的线程结束。

    但如果你一开始就说明白是 rails 里创建的线程,那又是另一回事了。rails 的主线程一直存在,不用调用 thread.join 去等待 hello() 创建的线程结束。

  • #19 楼 @zhenjunluo 在 rails 中,你就不需要调用 join 了

  • 新 kindle 要好一些,但代码没有多彩高亮挺不爽的...

  • @zhenjunluo 可能你没看明白楼上说的,我把最后代码弄好给你看

    def hello
      thread = Thread.new{
        5.times {
          sleep(1)
          puts "thread.."
        }
      }
    
      sleep 2
      puts "hello exit!"
      thread
    end
    
    thread = hello()
    thread.join # 主线程结束后, 程序就结束了, 如果要等待其他线程结束后再结束主线程, 要调用 join
    

    如果你在一个长期执行的程序里创建 thread, 例如 rails 里,就不需要 thread.join

  • kindle 和 ipad 都有,最后表示还是电脑上看最好... 边看边写代码还是电脑上最方便啊

  • @yangman_wenzhu 就是这样:

    erb <html><head></head><body><%= [1,2,:3].sort %>

    html 的内容好像高亮不了,是 pygment 的限制

  • @zhenjunluo 其实是两个问题:

    1. 主线程要等待子线程执行完才退出,答案 @saiga 已经给出了 Thread.join
    2. 主线程要后台运行,答案 @reus 已经给出了 daemon 进程
  • erb

    ?

    <html><head></head><body><%= [1,2,3].sort %>
    
  • @woaigithub @Saito 整数处理的话,还有打 0.85 折,利息 1% 之类的事情哦,bigdecimal 在 10 进制加减乘是可以完全不丢的

  • #1 楼 @woaigithub

    其实 20.889999999999997 比 20.89 精确,因为后者只有四位有效数字...

    如果是算钱,从出生起就得用 bigdecimal 控制住: BigDecimal.new('1.9') + BigDecimal.new('18.99')

  • #38 楼 @iBachue native 支持 AOP 的语言有很多,全都死掉了,AspectJ 也只是改写了编译过程,但是绝对进不了 Java 标准里

  • #18 楼 @iBachue

    set_trace_func 实现追踪日志应该可以满足你在 #4 楼 描述的需求,而且添加切点的逻辑不局限于 AOP 的定义。

    http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-set_trace_func

  • #8 楼 @iBachue AOP 说白了就是代码生成工具,玩代码生成是玩不过 Ruby 元编程的。

    你觉得系统一定要大型么?大型 Ruby 系统就一定要有这么多重复打日志的调用么?打日志就一定要 AOP 么?我整过自动给 java 方法加统一格式日志的方法,尝试过用 AOP, 但当时就是大型 Java 系统,包依赖很变态各种 alibaba logger 和 log4j 和 slf4j 混在一起,还得看配置按情况插不同的代码,最后还是自己写了 annotation processor 各种改语法树才弄好...

    这种问题归根就是:1. 编程环境没有足够强的 debug 能力,只好用大量手动日志来分析系统状况,2. 编程环境没有足够强的动态能力,只好依赖代码生成工具和容器,甚至各种半吊子的解释器引擎。

    p.s. 如果用 aspectJ 我猜一半人的 eclipse 搞不定,如果用 spring 的动态 aspect 运行又很慢... p.s. 最悲惨的 debug 方式莫过于看日志了,最耗资源吃力不讨好的数据分析也莫过于日志分析了...

  • 几乎所有 AOP 示例都拿打日志做例子,其实在 Java 有 dynamic proxy 后这个应用场景已经几乎没有了...

  • AOP 要解决的问题,在 Ruby 中不存在...

    如果真想用 AOP 处理问题,你可以用 aspectJ 编译 java 代码然后用 JRuby 引入...

  • #4 楼 @huacnlee

    属性多了在 slim 里用 a 更简单,attribute 写法和 html 几乎一致,而且前端很容易用 .btn-success 之类的方式搜出元素定义的代码,如

    a.btn.btn-success.btn-large href=new_session_path rel="facebox" data-name="foo" 登录