• 兼职不兼职不是核心问题,问题是你的这个 idea 做出来后,你要怎么去运作市场,那核心过程说话。其实很多创业都觉得开发个网站或者一个 app 就创业了。说句自己的感觉,做一个网站或者一个 app 真的没什么难的,就算外包出去,2W 就能拿下了。

    问题是在你的运营和推广,你怎么在互联网中把自己的产品推出去,怎么能把资金收回来?

    兼职。。。技术。。。是需要条件,不是必要条件。

  • 好吧,离职了有很多时间,@smallbug 一起去~

  • 那聚会我同事去了几次。我都没去过~ @jjzxcc

  • 这个以前都是自己写的,让 current_user 在 model 里使用,实际用是 before_filter 加到 model 的父类了去了

  • redmine 并不是扩张表和字段来做到自定义字段的。。。@small_fish__ 那个差不多,几张表搞定这个东东。

  • 学习 Rails 的一点看法 at 2013年05月02日

    以我在群里混了 5 年多的经验,见过新手无数。我的经验是,细心的新手效率能高出 500%,常年看到因为一个符号一个字母浪费几天的例子

  • 就算你用 for 循环也一样,你的数组对象在循环的时候删除一个数据,下标也位置也会向前移。所以你要想清楚啥是你想要的,这跟闭包没半毛钱关系

  • 啥时候了深圳开分公司啊

  • 炮哥的遗产 at 2013年04月26日

    那蝙蝠坚持了好久啊

  • 怎么跟那啥小象网一样问问题,题还差不多。不过要求的是有解决能力比小象网要求好学好。嘿嘿,解决能力是学习的目标嘛。

  • 哎呀,我就是那 10 个人中的一个啊~求项目

  • 哎,偶们都是在 model 里用 current_user 的,挺好

  • 如果在上海,可以去找漫步

  • 这才多大的事。。。

    个人建议,不期望有人听 用两个功能增加交互性。 一个功能是面向老鸟:老鸟工作中会碰到各种诡异需求,但是这些需求都是开发生活中会重复碰到的,比如我就经常去翻 4 年前写的代码,来完成现在的工作内容。把这种需求当做问题或者作业,提交到社区。并且把解决的方法或者答案也贴到社区,同时增加定时发放答案的功能。提交这个问题后,新人可以和其他老人进行答复,然后全社区的人对这些回答觉得赞或者反对。 发布诡异需求和解决方案的人,可以获得一个分值,作为这个人的活跃度。参与讨论的人,他们的答案被赞的也作为活跃度。

    其实我现在的工作里 90% 都是工作量,10% 是需要技能和经验的结合。而这 10% 里又有 70% 是以前解决过的。我相信开发到一定程度后会有我这种情况出现。

    另一个功能是面对新手, 新手可以提出基础性的问题(大部分问题会被人提过,这时候可以贴标签,又懒又新的人),由大家参与解释和解决。这类问题没有答案,只有回答的好坏,赞的人多表示好,好的排前面。

    参与的新人获得了针对性的解答,老鸟可以获得活跃度。

    慢慢的一个新手帮助就出来了。而且比较成熟的答案可以添加到 wiki 里,现在的 wiki 挺好,但是资料的来源是不是有点紧缺啊?

    当然,活跃度有啥作用就有待考虑了。

    虽然两个功能都是帖子 + 定时公布答案的方式,但是都是针对性的问题。避免了扯淡在技术里,被赞的贴都排前面了嘛。然后加一个看贴的模式,一个是正常排序,一个是按赞排序。

    是老鸟带新鸟。太被动。本来工作中的问题就充满了乐趣,不把这些乐趣散发开,是很可惜的。 社区又充满各种死气沉沉的感觉。是太 out 了。

  • @xlgwr 你很适合楼主~哈哈

  • 上海真好,深圳啊深圳

  • @NonTwitter 你好能折腾,哈哈

  • @NonTwitter 天啊,你还玩过那玩意

  • 你要先搞清楚,你是要寄出,让别人定时收到?还是要定时寄出?

    定时寄出好办,用 ruby 都可以,delayed_job 加一个异步请求弄个时间就 ok。

    但是要别人定时收。。。

  • @blacktulip 嗯,他的需求还很初创。不过我发的是我们 5 年前的实现,包含他的需求。

  • class CreateNumberings < ActiveRecord::Migration
      def self.up
        create_table :numberings do |t|
          t.column :name,:string  #名称
          t.column :types,:string  #类型
          t.column :template,:string,:default=>'' # 模板
          t.text :note
        end
      end
    
      def self.down
        drop_table :numberings
      end
    end
    
    class Numbering < ActiveRecord::Base
    
      #根据类型产生一个新的编码,同时保存到数据库中
      def self.new_number!(type)
        numbering = self.get_numbering(type)
        number = numbering.template.next_number
        numbering.update_attributes(:template=> number)
        number
      end
    
      #  #根据类型产生一个新的编码
      def self.new_number(type)
        numbering = self.get_numbering(type)
        numbering.template.next_number
      end
    
      private
      def self.get_numbering(type)
        numbering = Numbering.find_or_create_by_types(type)
        if numbering.template.blank?
    #      model = type.to_s.singularize.camelize.constantize
          model = type.to_s.camelize.constantize
          numbering.update_attributes(:name=>model.class_name,:template=>"#{type}00000")
        end
        numbering
      end
    end
    
    
    class NilClass
      def next_number(qty=1)
      end
    
      def -(number)
      end
    
      def region_to(qty=1)    
      end
    
      def region_sizeof(number)
      end
    end
    
    class String
      #得到字符串的下一个编号,是对字符串中数值区域的值的增加,
      #如果该字符串没有数值区域,那么返回原字符串
      #例如
      # 'abc'.next_number         -> abc
      # 'abc100'.next_number      ->abc101
      # '100'.next_number         ->101
      # '100abc'.next_number      ->101abc
      # '0100abc'.next_number     ->0101abc
      # '0099abc'.next_number     ->0100abc
      # "abc100".next_number(10)  ->"abc110"
      # "100abc".next_number(10)  ->"110abc"
      # "100abc100".next_number(10)  ->"100abc110"
      def next_number(qty=1)
        self.reverse.sub(/(0*)\d+/) { |match| (match.reverse.to_i+qty.to_i).to_s.rjust(match.length,"0").reverse }.reverse      
      end
    
      #两个字符串相减,得到两个字符串之间相减的数量
      #例如:
      #  "abc"-"abc"           ->0
      #  "abc110"-"abc100"     ->10
      #  "110abc"-"100abc"     ->10
      def -(number)
        match1 = /\d+/.match(self)
        match2 = /\d+/.match(number)
        (match1 && match2) ? match1[0].to_i - match2[0].to_i : 0
      end
    
      #从当前区段得到下一区段,区段的间隔由qty指定,区段包括首尾部分
      #例如:
      # "a100".region_to(1)      ->"a100"
      # "a100".region_to(2)   ->"a101"
      def region_to(qty=1)    
        raise "参数不允许为0" if qty==0
        next_number(qty<0? qty+1:  qty-1)
      end
      #计算两个区段之间的大小,区段是包含首尾部分
      #例如:
      # "a100".region_sizeof("a100")    ->1
      # "a100".region_sizeof("a101")    ->2
      def region_sizeof(number)
        (self-number).abs+1
      end
    end
    

    上面 3 个代码块是核心模块了,哎,5 年前的东西了。杨总的结晶

  • @small_fish__ 哇,石油大学 石油涨价你有分红不?

  • 在线聊天系统的商业价值 at 2013年04月03日

    加油,我还没搞过这个呢