• @jobthoughtworks 请问咨询师,BA,developer 有些什么区别?在薪资方面有体现吗?

  • 如果 ubuntu 的文件系统使用了 lvm 的话 (好像默认就是使用 lvm 的) 可以加载一个分区作为 pv,然后扩大 vg 和 lv 就可以了

  • IEEE 二進位浮點數算術標準(IEEE 754)http://zh.wikipedia.org/wiki/IEEE_754 雙精度浮點數 http://zh.wikipedia.org/wiki/%E5%8F%8C%E7%B2%BE%E5%BA%A6 雙精度浮點數 (double) 使用 64 位(8 字节)來儲存一個浮點數。它可以表示十进制的 15 或 16 位有效数字 345.363631248474 已经 15 位了,执行乘法就超过了双精度浮点数的精度,肯定不会精确的,需要进行舍入。进行舍入 IEEE 有四种方法,不同的 cpu,操作系统,语言实现都可能不一样

    捨入到最接近:舍入到最接近,在一样接近的情况下偶数优先(Ties To Even)(这是默认的舍入方式):会将结果舍入为最接近且可以表示的值,但是当存在两个数一样接近的时候,则取其中的偶数(在二进制中式以0结尾的)。
    朝+∞方向捨入:會將結果朝正無限大的方向捨入。
    朝-∞方向捨入: 會將結果朝負無限大的方向捨入。
    朝0方向捨入: 會將結果朝0的方向捨入。
    

    BigDecimal 能正确精确计算浮点数 就实际需求来说,没有必要用 BigDecimal,对精度要求最严格的系统应该是金融结算,其中每一步的算法都是固定的,A / B * C 写代码的时候就不能用 A * C / B, 并且 A / B 之后保留多少位小数都是有要求的。遇到这种需求,如果客户没有提到计算方法,可以跟客户讨论把算法及每一步的精度写在需求规格说明书中。

    回到楼主的问题,可以用 1 楼的方法,toFixed(2)

  • 任务栏开三行的人飘过

  • @birbird 可能是 ssh 进程关闭的时候把子进程关闭了 1.用 nohup 运行,nohup bundle exec rails s 2.用 tmux 运行(推荐) 安装 tmux

    tmux
    bundle exec rails s
    
  • @tdseed 用过一点 ueditor,欢迎交流

  • 官办民营的开源项目,主要市场应该是政府采购吧

  • Ext.Ajax.request({
        url: 'manager/material_add',
        //params: form.getForm().getValues(), 
        jsonData: form.getForm().getValues(), 
    })
    

    用 jsonData 可以传过去么?

    一定要用 params 传的话,可以考虑

    //hiddenName: 'suppliers',
    hiddenName: 'suppliers[]',
    

    这样 rails 可以正常接收。但是对于 checkbox 写起来很啰嗦

  • #4 楼 @cqcn1991 1.可以写成一个 shell 命令在 ruby 里面,参数通过命令行参数传递过去,参数用 system.args[1],system.args[2] 这样的形式获取,例如传入 url 和图片的路径,执行完以后再继续用 carrierwave 从本地读取 2.如果需要返回生成的文件流或者文件名,可以用 IO.popen

    // Filename: screen_capture.js, edit from loadspeed.js
    // 用法: phantomjs screen_capture.js <URL>
    var page = require('webpage').create(),
        system = require('system'),
        fs = require("fs"),
        url;
    
    if (system.args.length === 1) {
        console.log('Usage: screen_capture.js <some URL>');
        phantom.exit();
    }
    
    url = system.args[1];
    page.open(url, function (status) {
        fs.write("/dev/stdout", page.renderBase64('png'), "w");
        phantom.exit();
    });
    
    # Filename: ruby_test.rb
    # 运行: ruby ruby_test.rb
    require "base64"
    
    def get_png_screen_capture(url)
      cmd_line = "phantomjs screen_capture.js #{url}"
      result = nil
      IO.popen cmd_line, "w+b" do |pipe|
      #  pipe.write params #如果需要通过stdin传大量参数过去,
        pipe.close_write
        result = pipe.read
        pipe.close
      end
      result = Base64.decode64(result)
      return result
    end
    
    File.open('baidu.png',"wb") do |file|
      file.write(get_png_screen_capture("http://www.baidu.com/"))
    end
    

    把这两个文件保存在同一个目录下,运行 ruby ruby_test.rb,会生成 baidu.png 在 ruby 里面拿到文件流以后做什么就可以随意了,用 carrierwave 处理也很容易 js 可以放在 Rails.root/bin 目录下 (因为是执行文件),调用的时候用绝对路径

    抱歉用百度做例子,找不到更好的能稳定访问并且很简洁的页面了,照规矩,上图

  • 任何封装都会损失性能和灵活性 angular 和 emberjs 这种做法有点像.NET、delphi 中的数据感知控件(data-aware),做原型和供初学者把玩的,真的用在产品中会被骂的。谁能科普一下这样的优点? 前后段分离只是 ajax 交互的问题,直接写 js 所有控制点都可以灵活处理。

  • 赞成 #4 楼 "宿主机 windows,虚拟机 linux" linux 安装 server 版,用 putty 通过 ssh 连接过去 在 linux 上开发,总不好意思用图形界面吧 在 mac 上 qq 也有很多缺陷,不如 win 上稳定,没有远程协助功能,复制的图片文件会直接显示,而不是以文件形式传送,截图在很多应用里面无法识别 (例如自带的 mail,截图发邮件给自己,结果发的时候能看到,接收的邮件图片不显示)

  • 求一简洁优美的写法 at April 26, 2013

    这样可以么? (arr1+arr2).group_by{|i| i[:key]}.collect{|k,v| v.inject(:merge)}

  • @chenge migration 是非常好的方法, 1.可以对 migration 进行版本管理 2.自动判断哪些 migration 脚本执行过,哪些没执行,没执行的按顺序执行,用脚本不好控制顺序 3.部署在多个地方的时候很方便,每个人有自己的开发数据库,测试组有测试用的多个数据库,产品数据库都能执行,否则每次人工找哪些脚本没执行过非常累 4.migration 可以执行 ruby 代码,可以调用 model 中的方法,这样一些修复数据的逻辑可以既作为维护工具,也可以在 migration 中调用,对新增加的字段特别重要 。。。好处太多了,现在看一个框架首先看有没有好的 migration 方案

  • xcode 中 command line tools 安装没有?

  • #1 楼 @xds2000 是的呀,我在整个 issue 中都没有找到这个,是不是最后没有被采用 07 年就集成了 yarv,1.9 的规划中就有,很期待的等 5 年了,2.0 的最初规划中又有,到最后又没有 ruby 到底在怎么发展呀,不能光做语法糖呀

  • @sevk ctrl+] 是进入一个方法吧,我说的是在同一个文件的不同方法间跳转,没有调用关系的情况下。例如:编辑 controller 中 create 方法的时候快速切换到 update 方法

  • #28 楼 @blacktulip GUI win > mac 确实是我的误读 我现在主要使用 mac 工作,之前一直用 windows,没有觉得有很大差异

    @mobiwolf 可以拿具体的问题讨论,在 windows 下 ruby 平台没有什么问题的

  • #28 楼 @blacktulip 我找一下,应该就是 ruby-china 中的

  • #23 楼 @blacktulip 对于命令行控直接用 linux 的命令行是最好的,不过也要一个图形界面支撑的,linux 的图形界面确实还有待改进 另外 linux 下无法用 qq 不要骗自己说不用测试 ie

  • #23 楼 @blacktulip 记得有个帖子说 gui 方面 win > mac > linux, cli 方面 linux > mac > win 要么用最好的 gui(windows)+最好的 cli(linux),要么将就着用 mac

  • #6 楼 @sjzg001 excel 中数据类型很弱的,50bb174260388b08260000fa 可以在前面加一个',也就是说写入的时候用字符串"'50bb174260388b08260000fa"

  • windows 很方便,没有遇到什么问题,个别无法在 windows 上安装的 gem 可以用 virtubox 安装一个 ubuntu 的 server 版,用 putty 连过去,跟部署环境一致,一切都很方便

  • windows,ubuntu,mac 下都可用 在 controller 里面

    #获取数据,data 可以用 ActiveRecord::Base.connect.select_all 查询出来 data = xxxx

    xls_report = StringIO.new
    book = Spreadsheet::Workbook.new
    sheet1 = book.create_worksheet :name => "表单名"

    #表头 sheet1.row(0).default_format = Spreadsheet::Format.new :color => :black, :weight => :bold, :size => 10
    keys = params[:columns].keys.compact.collect{|key| key.to_i}.sort.collect{|key| key.to_s} sheet1.row(0).concat(keys.collect{|key| params[:columns][key][:column_header]})

    #写入具体数据,这个看具体应用 ,这里列是从前台 extjs 根据实际显示的 grid 的列和宽度传过来的
    row_num = 1 data.each do |row| sheet1.row(row_num).concat keys.collect{|key| row[params[:columns][key][:data_index]]} row_num = row_num + 1 end #调整各列的宽度 keys.each_with_index do |key,index| sheet1.column(index).width = params[:columns][key][:column_width].to_f/10 end

    book.write xls_report

    send_data(xls_report.string, :filename => 'your_excel_file_name.xls', :type => 'application/vnd.ms-excel', :disposition => 'inline')

  • 建议先把主体业务框架整理出来,最小原型中规划留下扩展空间 例如:有哪些角色 (主办方,参与者,游客,管理员),主办方是否需要一个组织的概念以便多人管理 主办方发起活动,参与者报名,签到以及之后的评价 参与者报名包括 申请报名,支付,报名成功发放电子活动券