• wiki 如何安装 ruby 的介绍里写的是使用 rvm...

  • 谨防比特币和区块链骗局 at January 27, 2018

    其实都是尝试,一些知名的区块链项目都可以在 github 上看到源码。

    一些空气项目确实是骗局,不是所有的用户场景都适合去中心化的。

  • 啥?Github 还做过这种活动...😂

  • 确认一下回调地址吧 😧 看提示是回调出问题了

  • 这就是 bitmap 的实现吧,好处是可以节省内存,位运算性能高。

    缺点是不支持非运算

  • 用来提测的 apk

  • 噢,这个意思,这个改动有点大,我用的云存储服务商也没有提供 js 直传 SDK,只有移动端的直传 SDK😂

  • 😧 如果不通过 rack 怎么处理呢...

  • 云存储也需要后端接收到这个请求再上传到云端啊,现在我遇到的问题是后端需要等很久才能接收到这个请求。

    我新建了一个 rails 工程,按照最简单的文件上传步骤也会遇到这个问题。

    # Rails version: 5.0.4
    # Ruby version: 2.3.1 (x86_64-linux)
    Started GET "/resumes/new" for 127.0.0.1 at 2017-07-19 09:48:13 +0800
    Processing by ResumesController#new as HTML
      Rendering resumes/new.html.erb within layouts/application
      Rendered resumes/new.html.erb within layouts/application (31.5ms)
    Completed 200 OK in 66ms (Views: 60.4ms | ActiveRecord: 0.4ms)
    
    
    # 这里卡住了很久
    Started POST "/resumes" for 127.0.0.1 at 2017-07-19 09:49:31 +0800
    Processing by ResumesController#create as HTML
      Parameters: {"utf8"=>"✓", "authenticity_token"=>"TEKTZqcg32ef+KFzkl2BQeGi8uOkDI/4hx378tTmroLjOSxzNssAQGS2EkcRX5KWTuoWCQnrI5TnMdjysNtxGw==", "resume"=>{"name"=>"333", "attachment"=>#<ActionDispatch::Http::UploadedFile:0x0000000206c550 @tempfile=#<Tempfile:/tmp/RackMultipart20170719-8518-qzkb8k.apk>, @original_filename="paintbook_111M.apk", @content_type="application/vnd.android.package-archive", @headers="Content-Disposition: form-data; name=\"resume[attachment]\"; filename=\"paintbook_111M.apk\"\r\nContent-Type: application/vnd.android.package-archive\r\n">}, "commit"=>"Save"}
       (0.2ms)  begin transaction
      SQL (0.8ms)  INSERT INTO "resumes" ("name", "attachment", "created_at", "updated_at") VALUES (?, ?, ?, ?)  [["name", "333"], ["attachment", "paintbook_111M.apk"], ["created_at", "2017-07-19 01:49:32.031122"], ["updated_at", "2017-07-19 01:49:32.031122"]]
       (217.7ms)  commit transaction
    Redirected to http://localhost:3000/resumes
    Completed 302 Found in 3541ms (ActiveRecord: 218.7ms)
    
    
    
  • 我们组里现在都是要求把 Gemfile.lock 提交进仓库的,原因是如果不提交,遇到过在两台服务器上部署,asset pipeline 后的 fingerprint 值不一样。

  • RailsCast 系列真的很棒

  • 是滴,不过打算短期内不折腾了,没人手干活了 😀

  • 这种调用 API 的方式改造成本也不小哎,除非两个项目原本就都是前后端分离的。

    而且前端直接请求 API 的话,需要处理跨域/登录等;后端请求的话,需要处理请求超时等问题。

  • @jasl 之前相关同学已经尝试重构过一次了,就是 git subtree 的方案

    @Rei @kgen 目前的现状来看,想彻底地拆,不共用数据库很难了。感觉单纯地根据面向的用户将项目分为【对内项目】和【对外项目】并不是很合理。根据读过的一些服务拆分的文章来看,一般都是先确定功能边界后再拆。

  • @dudu_zzzz 我记得以前看过一篇分享,是说拆出来做成 Rails Engine

    @breeze subtree 据说就是改进 submodule 弄出来的概念啊

    @tonyrisk 没听明白具体怎么做

    @nouse 例如将报告展示这种功能拆分出来做成一套服务,供对内/对外调用。但其实也不是彻底的微服务,因为数据库又不独立。

  • Loving JavaScript 👍

  • 为啥楼主所有英文都是大写啊,据说做 iOS 开发的都会比较在意 iOS/iPhone 的大小写,还好楼主没有去应聘 iOS 开发...

  • 我是这么做的:

    params.require(:xxx).map do |param|
      ActionController::Parameters.new(param.to_hash).permit(:aaa, :bbb)
    end
    
  • 手动点赞~虽然我并不会写 nodejs😂

  • 遇到过这个问题,应该算是 rails5 的新 feature。

  • Rails 中如何自定义 Error Pages at September 01, 2016

    我在项目中参考使用了 LZ 的方案,一切正常😊

    直到最近遇到了一个小问题,比如有爬虫访问了xxx.php,后台依旧会报 500 的错误,并且没有自定义 Error pages。

    我是这么解决的:

    def show
      respond_to do |format|
        format.html { render status_code.to_s, status: status_code }
        format.any { redirect_to root_path }
      end
    end
    
  • 到底如何做 HTTP API? at August 30, 2016

    前阵子我也写了一阵子 API,能按照 RESTful 规范来的场景,还是尽量按照规范执行。但我觉得完全按照 RESTful 的规范来执行,也是很难的。

    例如你说的场景 1,如果完全按照 RESTful 拆分出来,原本前端同学发一个 HTTP 请求就可以完成了,那变成要发多个 HTTP 请求。HTTP 请求又比较耗时,会拖慢页面加载时间。

    再比如批量插入场景,RESTful 并没有批量插入的规范,如果严格按照 RESTful 来,只提供插入单条数据的接口,那无疑很耗时。

  • 我是这么做的: 写了一个名叫create_multiple的 action 参数格式是{model_name: [{ arrtibutes_hash }]} 然后使用 bulk_insert 进行批量插入

  • The change may well be that we’re dropping controller tests entirely in favor of integration tests

    dhh 的这句话很有意思,是指从趋势上看,未来我们不再单独进行 controller 层的测试了么,而是使用集成测试?

  • 测试了下效果挺好的,但是如果 Model 层有 validation 的话,并不会触发。

  • RSpec 的一些问题 at May 24, 2016

    这是《Everyday Rails Testing With Rspec》上的例子吧,可能你看的版本比较旧了,新版给你参考下:

    it "is invalid with a duplicate email address" do
      Contact.create(firstname: 'Joe', lastname: 'Tester', email: '[email protected]' )
      contact = Contact.new(firstname: 'Joe', lastname: 'Tester', email: '[email protected]' )
      contact.valid?
      expect(contact.errors[:email]).to include("has already been taken")
    end
    
  • 看一下这个 5 分钟就可以使用 Git Page 搭建出一个博客

  • 这字体丑的我想哭 at May 03, 2016

    windows 上的显示超丑,ubuntu 上看着还挺好~

  • @uestc_bird

    你说的是异步服务的可靠性,但是 Redis 的可靠性也需要考虑进来。现在就是希望一个分布式的 Redis,来保障 Redis 的高可用,然而分布式的 Redis 并不支持infobrpop之类的 sidekiq 需要使用的指令。