Ruby Conf 2017 所见所想

Posted Yammy的学习日志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby Conf 2017 所见所想相关的知识,希望对你有一定的参考价值。



先说个故事。

9月初,我们家的小盆友要上幼儿园中班,这次换了一个新学校,小盆友在家颓废了两个月,终于还是不情愿的背上了书包。

新学校,新环境,本来担心小盆友会有点不适应,想不到,小盆友第一天放学回来,一蹦一跳的,跟我说:这就是我想要上的学校。

又过了一天,被通知外教美语课,每个小盆友都要有一个英文名字,哎呀,要取名字这可有点难啊,取得普通,大街上喊一声无数人回头,取得个性化一点,会陷入这什么鬼的尴尬境地,想象一下,如果一个外国人取名活雷锋,这不是我捏造的,去知乎上搜一下:你见过外国人起过哪些奇葩的中文名。你会回来给我点赞的。

好吧,Google is my friend。 取名字也要与时俱进,完全无法想象如果现在取个名字叫“建国”或者“伟业”会给小盆友带来什么伤害,于是我二话不说打开 google,搜the most popular english names in 2017,很快就找到一篇叫Most popular baby names of 2017的文章,里面列出了2017年最受欢迎的前100名婴儿名字,看到第90条的时候,心里咯噔一声,看到这个词,我脑海里浮现出来的是“快乐”和“成就感”,我嚓,这不就是我希望下一代能继承到的 class(品质)吗?

Ruby Conf 2017 所见所想
说明:左边是女孩名,右边是男孩名

于是,我就着手开始说服家里人:

  1. ruby字面上是红宝石的意思,你看我们家小盆友就喜欢红色的和闪闪的宝石类的东西,多契合品味啊。

  2. ruby 也是一门牛逼的编程语言的名字,听我的,取这个名字准没错。

就这样,愉快的说服过程,名字已经定下来了。


说明:这是小盆友的书包上的名字卡片


这次参加 Ruby Conf 2017,也是我第一次参加 Ruby Conf,两天一共15个talks,老实说,大部分都没听懂,下面我会一一列出几个我印象深刻的talk,以下只是我的个人理解,可能有不对或者不准确的地方,欢迎指正。

Ethereum on Ruby - by jan

这个 talk 是来科普以太坊区块链技术的,讲者先科普了比特币和区块链以及以太坊,讲到智能合约账户的时候,说到机器可以在以太坊上开户,有一句话印象深刻:这是机器在人类历史上第一次实现了经济独立。因为,一旦代码写好之后,顺利开户,没有人可以控制机器,因此可以作为可靠的第三方中介。从这个角度说,以太坊未来有很大的潜力。


另外,讲者解释了为什么以太坊会引入gas的概念,主要是为了限制程序无限制的运行,这样会最终瘫痪这个网络,最终消耗多少 gas 要看执行了多少条指令,如果你去看过etherscan.io上的交易,很多交易都是因为 Out of gas而失败的,就是因为 gas 少了,程序却还没有运行结束,只好就抛锚了。

异步编程奥德赛 - by 丁盛豪

我们知道 ruby 的代码都是从上往下执行,即顺序、条件和循环,称之为同步,同步也没什么问题,但如果遇到一种需要执行很久的任务,比如上传或者下载大笔数据等,这样可能会需要等上好几分钟才能执行完成,这时候对用户来说,干等上这么长时间,就会是一个很糟糕的体验,不仅如此,用户看到浏览器没有任何反应,可能会重复刷新页面,大量的请求会造成服务器的效能低下。处理这样的事情,rails有 sidekiq 这样的第三方 gen 来处理异步请求。


仅仅从语言上出发,js有异步函数来处理并行的任务,因此效能上好像看起来会比 ruby 好。


讲者提出一个问题,ruby能否用同步来写异步,理论上是不可行的,但有一种情况合适,那就是web服务器。web
服务器中每一个请求都是完全独立运行的,可以使用 fiber 暂存当前状态,跳过去处理 database,处理完之后继续执行api call,讲者的团队做了一个基于fiber的web框架——midori,现场测试 web 应用,效能接近 node 的 express。

为 Ruby 设计一款 AOT 编译器 - by 潘旻琦

这位讲师,分享了如何把 ruby或者 ruby 项目打包成一个可执行的文件,感觉很酷,以后一定用得到。

金数据是如何鉴黄的 - by 姜鹏

讲者使用非常幽默风趣的方式,讲述如何一步步解决金数据鉴黄的问题,从人工识别到关键字过滤,最后到使用机器学习去自动识别,深入浅出,很容易懂,下午我本来已经有点困了,但听到这场演讲,还是一下被点燃。

mobx-ruby 将前端联动编程带入 Ruby - by 李亚飞

mobx 好像不是很熟悉,但讲者所提到的 vue.js 和 jquery 要熟悉的多,前一个需要事先利用 vue 建立好关系,事后只需要改变数据,就能立刻联动到前端页面,后者提供了比原生 DOM 复杂的api更清晰的 api,方便 js 来调用并改变前端页面的效果。

A brief introduction to Machine Learning - 如何在 Rails 项目中使用机器学习 - by ihower

ihower 老师这次深入全面的给我们科普了机器学习的理论和内涵,并引用了大量的资料,可以看得出来老师在这一块有深入的研究。
其中,老师提到ruby 并不太适合去做机器学习,有很多失败的例子,可能是 ruby 的算法库有缺失或者无人维护,所以大部分的机器学习都是使用 python或者 R 来学的。


最后总结一下,这两天的收获很大,让我对 ruby 以及 ruby 社区有更清晰的认识,我的感受是 ruby 社区是一个开放的社区,不仅仅局限于 ruby 和 rails,只要是能更好的解决问题的工具就是好工具。

感兴趣的可以点击阅读原文,收看现场的高清视频(需要自带梯子),感受一下氛围。





题图:来自rubyconfchina.org官网截图


以上是关于Ruby Conf 2017 所见所想的主要内容,如果未能解决你的问题,请参考以下文章

参加Ruby Conf的四点扎心感受

这里的这一属性如何在 ruby​​ 类中包含多个属性?

ruby 使用此脚本检查每个客户端conf是否具有默认方案集(如果需要)。

apache_conf CircleCI 2.0 w / Ruby + RSpec,MySQL,Redis,ElasticSearch

CANopen个人之所见,所想

茶包上的日记——Ruby Silvious