• 网络为何分五层? at 2019年08月17日

    只是模型,一种划分方法,帮助研发和维护判断交流的。osi模型是7层模型。

  • 哈,默认1000条,满足大部分伪自增需求。

    尽量自己做下伪自增工作。

  • find_each是order by 主键的,加上排序会有问题。 送你一个带order的扩展

    class ApplicationRecord < ActiveRecord::Base
      self.abstract_class = true
    
      def self.find_eachs(limit: nil , batch: 1000 , order: :id , &block)
        count       = 0 
        last_offset = nil
        next_break  = batch
        data = self.order(order).limit(batch)
    
        until data.blank?
          data.each do |dt|
            count += 1
            block.call(dt)
            last_offset = dt.attributes[order.to_s]
            break if count >= next_break
            break if limit and count >= limit 
          end
          break if limit and count >= limit 
          next_break += batch
          data = self.where("#{order} > ?" , last_offset).order(order).limit(batch)
        end
        count
      end
    
      def self.find_each_datas(limit: nil , batch: 1000 , order: :id , &block)
        count       = 0 
        last_offset = nil
        next_break  = batch
        data = self.order(order).limit(batch)
    
        until data.blank?
          block.call(data)
          data.each do |dt|
            count += 1
            last_offset = dt.attributes[order.to_s]
            break if count >= next_break
            break if limit and count >= limit 
          end
          break if limit and count >= limit 
          next_break += batch
          data = self.where("#{order} > ?" , last_offset).order(order).limit(batch)
        end
        count
      end
    end
    
    
  • WSL1 目前执行rake还是比较慢,可能和权限之类的东西有关,没有深究,因为WSL2就要出来了。Inside的Win 10 已经可以使用WSL2了,不过生产机器没敢安装,我等正式版。

  • Ruby比较适合的不是面向工资编程,而是面向收益编程。也就是说你用Ruby做了一件事,这件事有很大收益,包括但不限于money,而大多数人为了工资,那肯定坚持不下去。

    再者目前缺少大佬推广,为什么呢?现在阶段比较热的是深度学习,谁在这个阶段想把Ruby强推起来也难。谁叫Matz押宝的不是机器学习而是嵌入式呢?(毕竟日本是电子大国基因)。而对于业务系统而言,虽然我认为Ruby比Java更适合,但Java的以下特点稳固了他的霸主地位:

    1. 轮子多覆盖各领域,满足“学一门语言工作一辈子”的面向工资的诉求。
    2. (管理者看起来)员工可插拔性强。
    3. 工种基数大,工会运动能力强。

    再看现阶段互联网、软件行业,主要处在业务系统填坑期,所谓“互联网+”也就是传统行业有大把的业务坑要填,这个阶段的最大诉求是“解决问题”,而Java的以上三个“工业语言”特性,来填坑最适合。Ruby就不要在这里竞争了,Ruby语言本身的 “解决问题” 的能力虽然也很强,但解决不了工源问题。而在大厂里面工会运动搞你也是分分钟的事。搞Python的还能说我做深度学习最好呀,Javascript还能说有本事你写浏览器程序呀。Ruby....猝。

    Ruby的优势是 创造性生产 。但从Ruby语言本身来讲,恢复火爆取决与以下几个条件:

    1. 市场上“业务填坑”需求基本慢慢饱和,转而需要创造性生产的时候。比如之前的web2.0时代初期、移动互联网初期。当某阶段老的领域已经逐渐饱和,已经很难靠Farm挣到钱了,新领域的淘金运动开始,Ruby和Rails的各种优势又能被无限放大。运气好的话出一个Facebook大厂,差一点能出个豆瓣这样的中厂。

    2. 内置/第三方JIT引擎性能开始爆炸,加上Ruby语言级别的良好特性,导至各种高性能领域期望使用Ruby作为首选胶水语言。

    3. Ruby押宝方向大爆发,比如之前押宝的嵌入式。(然而嵌入式这个方向难度还是很大的,毕竟比较硬,需要时间积累,高爆发领域还得是软一些的)

    以上3个条件任意同时满足2个,加上大咖的宣传,即可恢复荣光。但即便如此Ruby仍不是工业级别Farm的语言。不建议Rubyist面向工资编程。

    现在Rubyist应当考虑的是,找到自己愿意深耕10年以上的行业,这里说的行业不是互联网、软件,而是垂直行业,无论汽车、O2O、教育、服装、奢侈品、金融,或者更加细分的领域,深入其中,利用好Ruby的创造力,去创造工资以外的收益。当然就顺便就创造出了一些工作岗位。当然你也可以积累好Ruby的技术和团队,等下一个爆发的时候,可能你就是大厂的大佬。

  • 支持的吧

  • 可以使用ActionCable + Fork一个新进程解决耗时操作问题。

    class ExambleController < ApplicationController
      def create
        Process.fork do 
          Foo.loop(1000000) do |bar|
            ActionCable.server.broadcast(channel_id , {bar: bar})
            sleep 0.1
          end
        end
      end
    end
    
  • 今年主题很棒,好想去,可惜。。

  • 能上RubyChina应该都不会傻到用其他语言去写后端,项目方指定语言的除外。

  • 如果目的只是写博客文章的话,google cloud一键部署WordPress就行。 不想搭建的话简书就可以,就是有些敏感内容会被河蟹。