修正版:
Dir['*'].each do |dir|
puts "%15s: %.4f %s" % [dir, Dir["#{dir}/*.txt"]
.map{|x| File.read(x) =~ /max:(.+) min:(.+)/ ; [$1.to_i - $2.to_i, x.split('/')[1]] }
.group_by{|a| a[1][0..6]}
.map{|k,v| [v.map{|a| a[0]}.reduce(:+).to_f/v.size, k]}
.max].flatten
end
恩,我理解错误题目了,大家先出一个正确的版本吧,没有正确性,其它都是没用的
刚发现 max 函数可以直接比较数组,所以不用带 block 了,纯 c 实现,性能会好很多
#12 楼 @ruohanc 我了解的 gem 不多,不好给建议。不过这个接口
是面向对象中的含义,只要一致就行了,其它不重要,你之前的想法(放到 initializers)也不矛盾,关键要实用
举个例子,最简单的场景是你只关心这个机器人会 crash,那只要一个状态查询和重启服务即可,可以把代码包装成一个 Worker 类,内部是独立线程,提供启动/重启/查询状态的方法,这就是你的接口。
class Worker
def start; ... end
def stop; ... end
def status; ... end
end
接下来可能是两种做法
LOGGER = Logger.new 'work.log' begin Worker.new.start rescue LOGGER.error 'fail' end
这种情况下,关键是故障告警,可以让nginx直接输出work.log文件,然后用监控宝监控这个url的内容即可
#4 楼 @xiaolai #5 楼 @smarteng #8 楼 @poshboytl #9 楼 @jimrokliu 楼上几位的观点我之前听很多人说过,以前我也这么想,但是现在有些改变。真实情况下,我们很难判断自己做的事情是否正确,特别是对创业,一般也只能马后炮,而且能被当作经验积累的部分也极少(我始终认为创业就是冒险,历史很难借鉴),而做事方法(即所谓”更好的方式“)是可以不断总结积累提高的,所以后者才更有意义。
强无神论者,其它非宗教性质的广义的“信仰”暂时还没有想到
这个主意不错,RoR 社区的创业比求职还火
这个好像是你的 ruby 环境没装好啊
#16 楼 @HungYuHei 确实不一样,不过总有人以为只要语言整齐划一就没事了,期待各种吐槽
这类应该不需要翻译,不懂英文看演示也够了
又重新看了一下,楼主的问题可能集中在冲突检查上,如果这样的话,@lgn21st 的建议基本上应该就够了
#7 楼 @poshboytl 辛苦辛苦,我粗听了一下,感觉效果还不错
课程和时段之间怎么联系?也许应该有个时段模型,然后让它与课程多对多关联
我没找到链接,放在哪里了?另外如果空间有限,能不能放到 youtube 上?
like this:
Patient.find(current_user.id).physicians.order name: :desc
这里有个前提,一般情况下,你并不会真的关心那张 appointments 表
前面好几个人都说 8G 内存,还有说 16G 的,可是我用 4G(开发娱乐都用这一台)都绰绰有余啊,大家都在干什么事情呢?