可以分享一下最近碰到的坑,涉及到:
Rails mount Rack 应用.
Rails 3 Router Journey
的问题.
Rack 对于 HTTP Stream 的支持,Rails 3 对于 Rack 的特殊癖好。
PS: 最近把 Grack 集成进了 Gitlab. Master 已经 merge 了这个 Feature, 现在 Gitlab 已经可以用 HTTP protocol 了。还有一些小 issue. 最近都会解决掉,不出意外的话。Gitlab 2.7 会正式包含这个 feature.
上面碰到的问题几乎都是在折腾这个事情学到的。
火星马丁叔叔。他的 id, 真名就不报了。据说已经是副总监了。
edoctor. 貌似是蜀黍所在的公司。
#2 楼 @linjunpop 可以了。
结合自己的 User 与 Repository 模型,实现 Gist 里面的 valid? 方法就好了。
在里面可以访问到 rack 的 @env 变量。所以很多事情可以做。
Try this gist out: https://gist.github.com/3009575
暂时还么有 ssh -D 的功能。
这个 issue 关闭掉的话。我应该才会用。 https://github.com/keithw/mosh/issues/261
def attr_accessible(*args)
options = args.extract_options!
role = options[:as] || :default
self._accessible_attributes = accessible_attributes_configs.dup
Array(role).each do |name|
self._accessible_attributes[name] = self.accessible_attributes(name) + args
end
self._active_authorizer = self._accessible_attributes
end
实现就是这样的,用数组自己解决一下吧。
LOOK AT THIS!
我猜是 你内存被吃光了。
#14 楼 @bhuztez Rack 是 Ruby WebServer 的基石。所有的 Web Application 几乎都是使用 Rack 来对接 WebServer 的。所以 Rack 能做的事情就很多。
Rack 自身实现了 chunked.rb 跟 content_length.rb 用来对付没有 length 头的问题。
https://github.com/rack/rack/tree/master/lib/rack
并且 Rack 在包装各种 WebServer 的 Handler 的时候为各种 WebServer 添加了这方面的支持。
thin: https://github.com/rack/rack/blob/master/lib/rack/handler/thin.rb#L2-3
mongrel: https://github.com/rack/rack/blob/master/lib/rack/handler/mongrel.rb#L3-4
所以几乎所有 Ruby 的 WebServer 基本都不会出现默认配置跑不起来的情况..
而会有问题的,都是 Proxy Server 的问题。例如 nginx 必须要携带 content_length 参数,否则会返回 411 Length Required 错误码。所以才要为 nginx build 一个 module, nginx 本身添加 module 也是很平常的事情。chunked 需求本身也挺平常的。
60 WD. 等 1.03 buff .. 听说宠物能出场了。
Hardcore 30 Monk. Normal 通关了。
理解本身 Git 的传输协议很有意义。
例如:可以做基于 branch 的保护,shitty programmer 不能提交 master 之类的这种需求。(虽然我个人很不认同这种做法,我觉得团队第一要意就是信任.) 在自己拥有 Git HTTP 服务端的情况下,可以做 post 拦截。
在 push 中 POST: /git-receive-pack
里:
可以得知 push 的是 refs/heads/master\x00
. 做拦截就可以判断用户是否有 push master 的权限。然后允许或否。
@huacnlee 你这个 commit message 写成 2.3.6 了。囧~
#10 楼 @huacnlee https://github.com/datamapper/dm-core/wiki/Roadmap
主要是架构上的。之前这样声明式的 ORM Migration 都做的不好 ( Mongoid 这样的 ODM 也是一样。现在也着重考虑这部分了。然后也有借鉴一部分 AREL .
#11 楼 @hooopo 大规模的还真不知道,之前我一个人在折腾 blackmine 源码管理工具的时候就是 datamapper, 不过代码已经丢掉了~
@ashchen 这个 浙江 PM 2.5 是 DataMapper 的。 https://github.com/ashchan/zjpm/blob/master/lib/matter.rb 不过是个小项目~
#12 楼 @ShiningRay 大家思维都挺奇特的。要尊重不同。
#8 楼 @ShiningRay 用 Sinatra 自己搭吧~
Sinatra 已经很好的 Router 了。你需要的只是一个后端 ORM 以及一个渲染模板系统。
Simba 就等着 DataMapper 2 出来换装了。
Postgres 也很适合初创小型应用。全文检索什么的都有了~ 也是推荐列表之一~
#6 楼 @ShiningRay 这种合并实际上是消灭了一种设计范式。不是两种真正类似的东西的合并。更像是一种兼并收购。虽然 Rails 3 的架构师是 Merb 这边的 Yehuda .
merbist http://merbist.com/2012/02/29/learning-from-rails-failures/ 这篇文章也可以参考一下~
#15 楼 @chen_bin 基本上可以说没有什么是完美的,当你越深入一件东西。你才越能发现这个东西的缺陷。
而且所有人都觉得重新开发一个会更好,但是实际上你已经陷进去了。
所以 Git 可以更好的意思不是说 我会去转去用 hg. 也没有争论哪个会更好。只是辩证的看缺陷这个问题而已。
Zed A. Shaw - The Web Will Die When OOP Dies 昨天在 Zed A. Shaw 这个 programming mother-f_cker 的演讲上浪费了 30 分钟。跟大家分享~
@JEG2 rocks!