华东地区scala爱好者聚会(2015上海)

昨天下午在上海陆家嘴软件园组织了2015华东地区scala爱好者聚会,原本有6个topic,不巧老高和Intel的钟翔时间冲突没有参与。

报名人数有40人,到场的30人左右。4个topic分别是:

《scala配置与宏》
《scala大数据处理》
《某金融公司的scala使用经验》
《中等创业公司的后端技术选型》

聚会上有几个杭州的创业公司专门赶去的,他们比较进取,产品完全采用scala开发,甚至App端也采用scala。

分享的PPT除了某公司一篇不便公开的,其他都已经放在github上了。

华东地区scala爱好者聚会(2014上海)

感谢看处方汪院长烨明,为这次活动提供了场地和零食,去年在上海的scala聚会也是看处方的汪院长发起的。这次聚会人比上次略微多一些了,而且整体水平是不断提升的。

聚石分享了来往使用scala构建通讯的一些经验,来往的IM部分采用自己的协议(有些类似spdy,要简单很多),在协议网关的实现上主要使用scala、akka,他主要分享了这个过程中踩过的一些坑。

诺铁的分享是scala集合部分,这部分内容是小中见大的,有部分内容来自《scala in depth》(顺便提一下他翻译的这本书快要出版了)。整个ppt很清晰,把Vector的细节讲的比较透,另外还提到Set的一个细节是继承自(T)=>Boolean这个函数类型,也就是contains方法,比如Set(1,2,3)(1)将返回true,这种设计确实怪异,容易误解。

烨明讲的是《play中的Iteratee》,理论结合实践,内容很不错,可惜我对play没怎么玩过,有些东西不太了解。

Max lv分享的《基于 Scala 进行 Android 开发的报告》ppt本身并没有太大亮点,不过吕超本人倒是挺有料的,在NVIDIA研究GPU高性能计算,业余喜欢搞搞android开发,他也是唐茶字节社这款app的开发者,和goagent的主要维护者。他不怎么用微博,相互交换了一下twitter。

这次聚会还有一些创业团队或其他IT公司,大众点评和唯品会以及其他很多公司也在尝试scala/spark,目前来看spark已经成为了scala领域最有影响力的产品。

从报名表上看到有好几个乔布堂的人,去年在杭州聚会的时候他们也来过,跟他们聊了一下他们创业的技术经验:服务器搭建在阿里云上,比托管在机房靠谱。阿里云服务器的稳定性他们还是比较满意的(看处方的服务器使用的是腾讯云,这跟创始人之前在腾讯工作有关)。乔布堂后端使用nginx+jetty+mongodb的架构,当前还没有使用cache,他们比较特殊的一点是web框架采用的lift,估计算是比较小众的(去年的时候诺铁分享过一次lift)。

回去的路上还碰到一个在银联做Jboss相关开发的哥们,从他那儿了解到了银联正准备从weblogic切换到jboss上;银联也是Tuxedo中间件产品的大客户。

补充,ppt的下载地址:https://github.com/CSUG/csug/tree/master/shanghai-2014-5-31

GreenTea JUG的交流

周六下午参加了在支付宝举办的GreenTea JUG交流

Oracle的Simon是这次的主要嘉宾,他分享的主题是《JAVA8:Create The Future》,我下午有些事情到达的时候他已经快讲完了,之后Simon因为要赶飞机,没有太多交流。

有人提到Java8里Optional类型的意义,这点的确是java程序员难以一下子体会的,Java8里的Stream, Optional都是从函数式风格语言里借鉴过来的,有些monad的味道

空冥分享了《HSF2.0》,外部可能对阿里开源的Dubbo更熟悉,实际内部使用HSF更多一些,当然现在HSF1.x和Dubbo都融合成了 HSF2.0

我这次分享了《Ali-Tomcat》,一半内容是apache-tomcat的基本架构和运行方式,另一半内容是阿里内部如何使用,以及我们增加和裁剪掉的功能。ppt可以从slideshareweibo下载。

3.29号的技术沙龙

上周六在北京主持了一场阿里技术沙龙,主题是“中间件与后端技术”,邀请了Redhat的张建锋和搜狐的秦启东分别分享了《Wildfly的新特性以及规划》,《搜狐新闻客户端的push技术》以及中间件团队的封仲淹分享了《JStorm》

相对于Wildfly,我更关注它所用的Undertow的情况,从这里看到一些对比,在纯文本和JSON情况下undertow的性能在netty之上(三轮里有两轮),尽管对这个测试持有一些怀疑,但了解到undertow是jboss团队里核心程序员DavidStuart Douglas在主导的,也是XNIO框架的作者。分享结束后,跟jboss和weblogic的几个开发聊了聊,我们与他们关注的领域有一些差别,主要在解决自己的痛处,偏向运维层面。

搜狐客户端的后台长连接是基于Go语言实现的,最初他们基于MQTT协议实现的Java(Netty)版发现GC引起的抖动没能很好的解决,后来切换到了Go,改写了MQTT,基于goroutine机制实现单机百万的长连接。这与之前淘宝实现web旺旺时的经历有些类似,web旺旺的长连接也是经历了jetty,netty,erlang的过程,也是因为jvm full gc的抖动导致改用了erlang(基于erlang的长连接确实很稳定,但也带来了cpu利用率较高以及不好找人维护的问题)。对GC的调优是门艺术,设置的好的话,基于jvm实现的长连接也是可以达到百万级的。

封仲淹/纪君祥的JStorm分享也有很多干货,他们相当于用java重写了storm,增加了一些特性并做了优化。细节可以看他的ppt,当前内部很多日志处理都是用jstorm在做的。

之前也和邓草原沟通过,希望能交流一下他在豌豆荚怎么用scala构建后端服务的,不过时间上不凑巧,希望下次有机会再切磋。老邓是国内erlang/scala圈子里超级大牛,最早也是用他开发的netbeans插件写scala的。

这些资料可以在: http://club.alibabatech.org/resources.htm 获取,稍后组织方应该会把ppt放上去。也可以关注阿里技术嘉年华的微博

// 补充
建锋写了一些《Undertow服务器基础分析》的博客,很值得参考: 1.概述 2.XNIO 3.Undertow