RubyTuesday [上海][2014年2月23日] 2014 年 2 月 周末聚会

gene_wu · 2014年02月14日 · 最后由 gene_wu 回复于 2014年03月04日 · 8495 次阅读

在 2014 年 2 月 23 日,我们将迎来 2014 年的第一次周末聚会。无需报名,没有限制,只要有兴趣,想来就来。

时间:2014 年 2 月 23 日 下午 2 点到 5 点

地点:Vcooline,上海浦东软件园一期 22 号楼 309 室

交通方式:地铁二号线,金科路站

讨论:在本帖里参与

主题:

  • Ruby Under Microscope, iBachue
  • fengche.co 系统构架/创业文化,yedingding (寻房中)
  • build awesome command line applications in ruby, Teddy
  • OOP 原型 VS 类,jjym 待定

往届周末聚会

本次聚会贴

由于新的 Ruby China 的防止挖坟规则,这个帖子超过一个月了,只好开新帖,召集大家!

老帖在http://ruby-china.org/topics/16517

我有邀请@yedingding 大牛把他在 22 日在 http://hnshanghai.com 讲的在我们周末聚会上再讲一下。

他 22 日到上海了,如果要 23 日给我们讲的话,需要在某位同学处留宿一宿。由于我家中人口较多,无法安排。机会难得,先到先得哦!

好近.. 报个名..

我擦 有@yedingding 在我还敢说话嘛

赞,顶个

大家有话题都可以来 share。不要腼腆

#6 楼 @jjym 你来讲讲你的 markdown 的 gem?

#8 楼 @gene_wu@yedingding 一起讲实在愧不敢当啊

#5 楼 @iBachue 你这样子会说的我不好意思了的...

@yedingding 来我这吧,我家就在附近

周末刚好是发布,要是发布没问题就过去看看。

#11 楼 @yedingding 我已经感觉无地自容了。。届时一定要大神多多包涵。。

这个一定要到啊

#15 楼 @kenshin54 连你都到了我更加无地自容了。。

#13 楼 @betterthornbird 发布正好啊,发布有问题直接杀回公司上网!

报名 +1 浦东好远...T^T

赶得上的话也去凑下热闹↖(^ω^)↗

#9 楼 @gene_wu 这个其实没什么要点好讲的啊,等有什么好内容的话我会主动分享的

还有空位吗?我想讲一下 build awesome command line applications in ruby

@gene_wu @yedingding @iBachue 聚会地点哦,有点小哈~

#23 楼 @geekontheway 还行啦 只要有个 projector 就 OK

报名~~

#22 楼 @Teddy 狂顶!我也很喜欢 CLI

@gene_wu 噢噢,那时正在火车上,没法参加,上次安全宝的礼物还一直放在我着,下次聚会再带咯😄

还好,是下午,可以来看看。。

报个名! 过来听听各位大牛的高见

周末爸妈来上海,俺就不去凑热闹了。

#33 楼 @xiaoronglv 向二老问个好:)

#29 楼 @xfstart07 下次下次,不着急,悬念留在后面!

#27 楼 @zgm 你好久不出现了。。。以为你被老板吃了...

#12 楼 @jonny 好的啊,谢谢!怎么联系,有微信吗?61819318

报名 + 1 金科路站 太难绕了 走了两次 都走错方向 ~~~

离我们这很近很近啊,一定参加,哈

#37 楼 @yedingding 我家也在附近,而且有一个房间空着,家里也就我一个人,欢迎来我家吧,哈

#39 楼 @vincent 一定要来,要不然我以为@zgm 被你吃了。。

报名+1

#5 楼 @iBachue 貌似没发出来 twitter

#43 楼 @gene_wu 错误信息是什么?

哇,我好想说:@yedingding 到我家留宿吧...... [掩面]

报名 +1 不知道人会不会挤

恩,回来的。

我可以分享下"OOP 原型 VS 类",我看看这两天能不能抽空做出来 slide,不行的话就等下次...

报名 +1

22 号楼靠近居里路,找不到可以问一下保安。

#54 楼 @gene_wu 还在路上,张江不熟悉😘

建了个微信群 大家掏出手机扫之

WeiChat

微信比较吵,有 QQ 群不?

#57 楼 @cloudqq 可以免提醒的

是的,我也是免提醒,有空上去看看,没空也没关系的

#48 楼 @jjym 下次聚会你要上哦~

我 Session 讲完走了一片人 虽然难度没有形成阶梯式增长,但也没这么难吧。

#61 楼 @iBachue 我跟你学的不是一个 Ruby 吧=。=

#61 楼 @iBachue 本来正打算看那本书,看来不用了。。。

#61 楼 @iBachue 不好意思,看来是我带头走了。

#61 楼 @iBachue 不要这样吧,后面还有 session 啊? 你讲完你们在聊天时候,我坐最里边,大部份人直接就往门口出去了, 门口还有人发名片,前面说 jjym 不讲了,我以为已经结束了就先下楼了 - -!

今天的幻灯片网上有传么?

#65 楼 @jiyinyiyong 不是 我讲完就真的没 Session 了 我是说我没讲完的时候很多人就走了。。

#63 楼 @loveky 你还是可以看看的 我并没有 100% Cover 书上的内容,一些在我看来比较显而易见的东西我是跳过的 JRuby 和 Rubinus 的东西我很多也是跳过的。

#62 楼 @MrPasserby 我学得是 MRI Ruby 呀。。你呢?

#61 楼 @iBachue 讲的思路有点快,要是预习一下的话,再听你讲就没问题了。

#71 楼 @datty258 其实也可以反过来 听我讲过你再看书说不定就更加没问题了呢。。

#67 楼 @iBachue 还好我学长拿他做的语言给我补过课,虽然 Ruby 的有不少地方不懂,但是很有兴趣听,之前没明白一些概念也在这里看到些解释了. 我还刚在想你讲时候那个预览下一篇的工具是什么很赞,原来是这个. 对了..我觉得你 parser 念错了 http://dict.youdao.com/search?q=parser&keyfrom=dict.index

#73 楼 @jiyinyiyong 好吧 原来我单词完全念错了 把 parse 和 phrase 搞混了 还念了这么多遍 糗大了😓 多谢指正

#74 楼 @iBachue 我也发现这问题了 我还瞬间怀疑自己搞错了 parser

#75 楼 @kenshin54 呜呜呜 太糗了 不要说出去啊

#76 楼 @iBachue 我还以为我一直都读错了....

#78 楼 @jiyinyiyong 有道理。。黑历史啊。。

感谢 @jonny 的招待,感谢上海 Ruby 圈子的各位,太给力了,今天真是 People Mountain People Sea 啊

#80 楼 @yedingding 其实我本来还有个问题想问你呢 只是茶歇的时候看你很忙的样子 等我 Session 讲好之后你就不见了。。

#81 楼 @iBachue 我赶火车... 不好意思。你说

#81 楼 @iBachue 如果需要用音频的话,加我 skype: sishen.freecity

#82 楼 @yedingding 就是你用了 Spine.js 还用了 PushState 之后 还能不能像普通的网页一样可以用 URL+Hashtag 来直接跳转到网页的某个位置?因为我在用 Angular 的时候做不到这个,Route 本来就是看 Hashtag 的,不能再用了。再加上 Hashtag 本来也无法送到服务器上,所以也不能做相应的 Hack。

#84 楼 @iBachue URL 跳转有两种,一种是基于 Hashtag,一种是 PushState,我们现在用的是 PushState。所以我根本不需要用 Hashtag 来跳转到网页的某个位置,直接 URL 就够了。比如我访问的是 URL 是 https://fengche.co/projects/xxxx/tickets/yyyy,这个 URL 访问后,就会打开项目页面,并跳转到对应的任务上。如果点击了其他的任务,URL 就变了,这个时候你刷新的话,会显示这个新的任务。所以,我服务端和客户端是公用同一套 URL Route 的。

#85 楼 @yedingding 嗯 可是,比方说,你这个 ticket 很长,因此,为了便于交流,你可能需要用 hashtag 引用 Ticket 中的某一个段落 然后把地址贴给别人看,这样的话,你就有可能既要用到 hashtag 又要用到 pushstate 了吧。

#86 楼 @iBachue 喔,你是说任务的具体内容或者讨论是吧?我们目前没有分配具体的 URL 给讨论,所以也没做,我们的粒度是到任务结束了的。如果要做的话,也许会用 hashtag,但是这个 Hashtag 不一样,我们不监听 hashchange 事件,而是每个讨论会有一个 Dom 的 ID 来直接做跳转,但是目前我们是没有这么去做的。

#87 楼 @yedingding 嗯 那如果你们要做讨论的 URL,是采用类似于https://fengcho.co/projects/xxx/tickets/yyy/discussions/zzzz 这样的 URL 吗?这个做法是可以啦。不过,我上次在做的是一个 Wiki 应用,在那个 Wiki 当中,我本来也想用比如说 wiki.com/projects/:xxx/*paths/tag/:zzzz 的手法,无奈当时 Angular 无法支持*path 之后还有要匹配的参数,所以最后没做成,不得已研究用 Hashtag 的可行性,最后还是没做成,你对此有什么建议吗?

#88 楼 @iBachue 不会用这种 URL,要不是 /tickets/xxxx/comments/yyyy,要不是 /projects/xxxx/tickets/yyyy#comment-zzz. Spine 支持 *paths, Angular 我不熟,但是其实我没怎么理解,*path 可能是什么,举几个 URL 的例子?

#89 楼 @yedingding 哦 比方说 有 /projects/a/api/users/posts/tag/put 指的是一篇讲 A 这个 Project 的 /api/users/posts 这样一个 API 的功能的 Wiki(这页面有可能分 Get,Post,Put,Delete 这四个章节),然后我希望一打开这个页面,立刻跳转到其中的 PUT 章节。那么此时*paths 将匹配 URL 中的/api/users/posts 部分,:zzz 则匹配最后的 put

#90 楼 @iBachue 你这个还玩嵌套的啊,不行啊,*path 都匹配了 /a/api/users/posts 了,一般只支持英文数字字符的,不然库的实现难度直接上去了。可以用 /projects/api/:resource1/:resource2/tags/:tag 这种吧,虽然我觉得 URL 层次太多了,还有就是 /projects/api/:resource1/:resource2#tag,我更喜欢后面的,后面这种 #tag 是你要赋给 DOM 里的 Get/Post/Put/Delete 章节一个唯一的 ID

#91 楼 @yedingding 哦 其实我最初的设计就是可以象文件系统一样一层层下去嘛。。这样看上去比较酷 另外我前面其实就是说#tag 这个东西在 Angular 中很难实现嘛,我一把这个地址打到浏览器中,服务器收不到最后的#tag,只能将地址重写成/#/projects/api/users/posts,然后 Angular 前端再把/#/projects/api/users/posts 改写成/projects/api/users/posts(我不知道 Spine.js 是不是也是类似的做法诶 不过我猜应该是一样的吧),最后#tag 就这么丢了。。

#92 楼 @iBachue 为什么服务器要收到这个 tag? 我觉得完全没必要啊

#93 楼 @yedingding 我觉得 如果服务器收到的话,就可以做些 Hack 传到前端,这样 Angular 前端再改写地址之后,还有机会能知道你最早是想跳转到比如说#tag 这个章节嘛。。这样它还可以再次改写 URL 并且跳转嘛。。而不是完全丢了。。

#94 楼 @iBachue 你这真是 hack.... 我们就不需要这些,URL 很清晰,Hashtag 跟 JS 完全没有关系。最后,也许你可以看 request referrer....

#95 楼 @yedingding request referrer 试过了,浏览器似乎在任何时候都不会把#tag 信息往服务器上送的,包括 referer。。话说 Github 似乎没用 MVC 前端嘛,它的 https://github.com/ruby-china/ruby-china/blob/master/app/controllers/account_controller.rb#L38 这个地址和我的 Case 其实是非常类似的,先打开一个文件,然后跳到 38 行,如果它用 MVC 前端的话,我猜它也会遭遇到同样的问题吧。

#96 楼 @iBachue 我们的方法就是再加个参数传 hash..还有种方法就是不传 hash,把它当成参数传,然后再用 js 控制跳转

#97 楼 @jjym 嗯 这个应该是可以的,我之前也想用来着,只是觉得 URL 不太好看。。

#22 楼 @Teddy 昨天讲的 command line 挺不错的,command line slides 做的也很炫。有没有用过 trollop?好像目前大多数 gem 用得都是它

#99 楼 @kevinclcn 没用过啊,看了一下 demo, 感觉用法和 optionparser 类似,没有本质区别 我使用 gli 的原因是它解决了 global option 和 local option 重名的问题 simple interface 的 application 直接用 optionparser 就够了 sildes 用的是一个叫 tpp 的 gem

#98 楼 @iBachue 昨天你那 topic 实在太高端了,得消化一个月啊。

#96 楼 @iBachue 怎么可能啊,每一行都有个 id 的好吧,这个根本跟 JS 没有任何关系

#74 楼 @iBachue 不应该啊,我还怀疑我自己一直都读错了。你 EMC 的大拿实在是不应该呐。回来翻了翻字典, :)

其实我是很期待 dingding 讲些创业方面的事的,可惜了。

#103 楼 @cloudqq 哎 我英文单词经常读不准的。。从以前就是了 😢

#102 楼 @yedingding 哎 下次当面讨论吧。。

很遗憾没有去,@iBachue 的 slides 内容真多,准备对照着书慢慢消化。 @yedingding@Teddy 有 slides 吗?

#107 楼 @camel 我会有 blog + slides,单单我的 slides 应该没什么内容... -.-
@Teddy 这个挺有意思的

#107 楼 @camel #108 楼 @yedingding https://gist.github.com/teddy-ma/9182722 就是书本目录抄了一遍,唯一的价值算是一个 tpp 的例子吧= =

#110 楼 @yedingding 弱弱地求一下幻灯片...

#111 楼 @Teddy nice, 计划购书

哎。没去听高端大气的分享真遗憾。彼时正在焦头烂额发布中。

#113 楼 @camel 这个作者比较不负责任,我曾经买了他的 1.9 版本从出版到最后 Build Awesome Command-Line Applications in Ruby (eBook) by David Bryant Copeland Current version: P1.0 就只有一个版本 同期买的,Practical VIM 和 Tmux 都有更新。

他老兄,错误不休,写了本 Build Awesome Command-Line Applications in Ruby 2,无语

#115 楼 @gene_wu 像这种改下版本号就当新书卖的都是耍流氓,至少应该提供一些小的更新

#116 楼 @camel 话说《Ruby under a microscope》也是的 如果从 1.9 升级到 2.0 也要至少付一半的钱。。

大家如果有一些现场的照片,如果方便的话,请发到 [email protected],我们会上传到网站,做一个记录。

如果你们有一些对于演讲者的反馈或者评论也可以通过 Ruby China 的帖子反应。

谢谢支持

感谢@zgm更新了当日的照片,我找个时间总结一下当时的情况。如果参与者能够提供一些个人观点和记录那是最好了,这也是对组织者和演讲者的一种鼓励。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号