SlideShare a Scribd company logo
1 of 75
Download to read offline
RubyKaigi2018
2018/05/23
Shinjuku.rb #61
treby006
Contents
» Day1 5/31
» Day2 6/1
» Day3 6/2
day1
» Keynote matz
» 13:00 - 13:40
» 13:50 - 14:30
» 14:40 - 15:20
» 15:50 - 16:30
» 16:40 - 17:20
» Lightning Talks
day1 13:00 - 13:40
» Analyzing and Reducing Ruby Memory Usage by
@tenderlove
» Karafka - Ruby Framework for Event Driven
Architecture by @maciejmensfeld
» bancor: Token economy made with Ruby by @kurotaky
Analyzingand Reducing RubyMemoryUsage
by@tenderlove
メモリ使用量は解析が難しくなりやすい
現在進行中のもの、さらにはシステムレベルのツールも含むRubyのプロ
セスのメモリ使用量の解析のための異なった技術を網羅する予定
メモリ分析後システム使用のメモリの減らし方
聴衆はRubyシステムでメモリ分析のための経験則やハックから離れら
れ、さらにはよりRuby内部の理解が進むでしょう
Karafka- RubyFramework for EventDriven
Architecture by@maciejmensfeld
Karafkaを使用すると、システムで発生するすべてのものを大量に取得
し、ビジネスドメインではないものに集中することなく、このデータを
消費し処理するためのシームレスで安定したコアを提供できます。あるア
プリケーションから別のアプリケーションにデータをパイプし、変換して
返送しようとしたことがありますか?既存のコードベースを切り離し、よ
り弾力性と柔軟性を持たせたいと思ったことはありますか?カラフカに
ついては、既存のプロジェクトに適合し、モダンで分散したスケーラブル
なエコシステムのメッセージバックボーンとしてどのように使用するかに
ついて学びましょう。
bancor: Token economymadewith Rubyby
@kurotaky
スマート契約でのトークンの流動性と取引価格の発見を自動化すると言
われる「Bancor Protocol」というプロトコルがあります。プロジェ
クトでこのプロトコルの有用性を検証するには、スマートな契約プログラ
ムを作成し、アプリケーションを実装するのに費用がかかります。Ruby
でアプリケーションを実装する際には、Bancorプロトコルを簡単に導入
して検証するための宝石「bancor」を作っています。このプレゼンテー
ションでは、開発者が "bancor"を使用してRubyアプリケーションで
"トークンエコノミー"を構築し、効果を迅速に検証する方法について説
明します。
13:50 - 14:30
» Deep Learning Programming on Ruby by @mrkn &
@hatappi
» A practical type system for Ruby at Stripe. by
@DarkDimius & @ptarjan & @nelhage
» Hijacking Ruby Syntax in Ruby by @joker1007 &
@tagomoris
DeepLearning Programming on Rubyby
@mrkn & @hatappi
Ruby言語による実用的なパフォーマンスで深い学習モデルをプログラム
する方法を紹介します。 RubyのApache MXNetとRed Chainerを使
用します。 Apache MXNetはpycall.rbから入手できますが、この講
義では、このようなブリッジシステムがなくてもRubyから直接使用され
ます。私たちのデモンストレーションでは、Rubyがそのような作業を行
う準備ができていることが示されます。さらに、データサイエンス分野で
Rubyを利用できるようにするためのプロジェクトの最新の進 状況と今
後の展望についても説明します。
Apracticaltype system for RubyatStripe. by
@DarkDimius & @ptarjan & @nelhage
Stripeでは、型システムが大きなコードベースに大きなメリットをもた
らすと確信しています。彼らは:常に最新の状態に保たれたドキュメント
です。ツーリングからの迅速なフィードバックを介して開発ループをス
ピードアップします。幸せなパスで処理されないコーナーケースを発見す
るのに役立ちます。「定義にジャンプ」などの型チェックによって得られ
た知識を公開するビルド・ツールを許可します。Rubyコードでストライ
プ方式で採用されているタイプシステムを構築しました。このタイプシス
テムは、異なるペースでそれを採用する異なるチームやプロジェクトで
徐々に採用することができます。私たちはAndとOrTypesと基本ジェネ
Hijacking RubySyntax in Rubyby@joker1007
& @tagomoris
この講演では、メタプログラミング技術を使用した新しい構文解析と、
Rubyの多くでよく知られていないRuby機能の紹介方法を紹介します。魔
法のコードを楽しんでください!Rubyの構文をハックするRubyの機能を
表示する(Binding、TracePoint、Refinementsなどを含む)これ
らの技術によって導入されたものを説明するメソッド修飾子(final、
abstract、override)DSLをテストするためのテーブルのような構文
安全なリソースの割り当て/収集(with、defer)新しいトレーサブルイ
ベント、フックなどの提案
14:40 - 15:20
» All About RuboCop by @bbatsov
» What would your own version of Ruby look like? by
@_st0012
» TTY - Ruby alchemist’s secret potion by
@piotr_murach
AllAboutRuboCopby@bbatsov
この講演では、Rubyプロジェクト全体で一貫したコードスタイルを簡単
に実行できる強力なRubyスタティックコードアナライザであるRuboCop
について知る必要があるすべてについて説明します。まず、RuboCopの作
成、その初期の展開とその進化、効果的なRuboCopの使い方、そして
クールだが知られていない機能のいくつかを調べることから始めます。
RuboCopの内部構造について簡単に説明し、機能を拡張するのが簡単で
あることを示します。RuboCopの将来を垣間見ることで話を包み込み、
RuboCopが最終的に1.0の欲望に達する前に、プロジェクトが直面する
いくつかの課題と今後の課題について議論する予定です。
Whatwouldyour ownversion ofRubylook
like? by@_st0012
私たちの大部分はRubyを愛していると信じていますが、私たちの大半は
Rubyが完璧だとは思っていません。だから、Rubyの独自のバージョン
は、あなたが作成することができる場合のように見えますか?あなたが
知っている人もいるかもしれませんが、私は約1年前にGobyと呼ばれる
言語を作成しました。主にRubyに触発されており、Rubyによく似ていま
す。しかし、Rubyとは異なるデザインの選択肢もありますし、Rubyには
ない独自の機能もいくつかあります。この講演では、言語を設計する際に
重視すべき重要なことについて話し合うつもりです。また、Gobyを開発
する際の設計選択肢と、これらの選択肢の背後にある哲学についても説
TTY- Rubyalchemist’s secretpotion by
@piotr_murach
Bundlerのような最新のターミナルアプリケーションをすぐに構築する
際に、生産性を飛躍的に向上させるために開発されたシンプルで強力な宝
石があると言われたらどうでしょうか?あなたはこの力を活用してコマン
ドラインのアプリケーションの錬金術師になる方法について興味があり
ますか?
15:50 - 16:30
» Fast Numerical Computing and Deep Learning in Ruby
with Cumo by @sonots
» Kiba 2 - Past, present & future of data processing
with Ruby by @thibaut_barrere
» RubyGems 3 & 4 by @hsbt
FastNumericalComputingand DeepLearning
in Rubywith Cumo by@sonots
Rubyは、科学計算のPythonなどの他の言語よりもはるかに遅れていま
す。 1つの理由は、Rubyに高速数値ライブラリがないためです。私は
CUDAを使ってRubyの高速数値ライブラリを作成しました。この講演で
は、Rubyにおける科学計算の概要/GPUプログラミングの基礎知識/
CUMOの中には、/高速なCUDAカーネルの作成/Ruby C ext gemで
CUDAカーネルをスマートに構築する/GPUメモリプールの実装/ユーザー
定義カーネルをコンパイルするJIT/Rubyで書かれた新しいDNNフレーム
ワークのNumoとのパフォーマンス比較、Red-Chainer
Kiba2 - Past, present& future ofdata
processingwith Rubyby@thibaut_barrere
Kiba ETL(http://www.kiba-etl.org)は、Rubyのための軽量で
包括的なデータ処理フレームワークで、2015年にリリースされました。
この講演では、木場がなぜ作成されたのか、それがどのように企業の低
メンテナンスデータの準備と処理に使用されているのか(さまざまなユー
スケースで説明されています)、バージョン2(RubyのEnumeratorを
活用する理由)再利用可能なデータ処理コンポーネントのオーサリング
の大幅な改善、なぜRubyによるデータ処理の将来について楽観的なのか
RubyGems 3 & 4 by@hsbt
RubyGemsは、標準ライブラリなしでインターネット経由でライブラリを
インストールするための仕組みです。 RubyGemsのメンテナンスマネー
ジャーとRubyコアチームのコアメンバーとして、毎年RubyGemsの最新
バージョンを最新の安定版Rubyに統合しようとしています。このプレゼ
ンテーションでは、RubyGems 2.7の新機能を紹介し、Bundlerとの統
合のメカニズムについて説明します。最後に、Ruby 2.6と3リリース用
に開発しているRubyGems 3と4のロードマップを紹介します。この講演
を通じて、ルビーの生態系の中心にあるRubyGemsを理解することで、ル
ビーの世界をもっと楽しむことができます。
16:40 - 17:20
» Exploring Internal Ruby Through C Extensions by
@Yuryu
» Architecture of hanami applications by
@anton_davydov
» A parser based syntax highlighter by @pck
Exploring InternalRubyThrough C
Extensions by@Yuryu
あなたは、RubyオブジェクトがCRubyコードでどのように表現されてい
るのか疑問に思っているかもしれません。あんまり?私は、C拡張を書く
ことは、CRubyがさまざまなオブジェクトタイプをどのように扱うのか
を調べ、学ぶのに最適な方法だと言います。このセッションでは、独自の
Hashクラスを再実装し、CRubyの基本タイプについて説明し、ネイティ
ブHash、純粋なC ++実装、およびC拡張バージョン間のパフォーマンス
を比較し、Rubyでのメモリレイアウトと消費について説明します。この
セッションを通じて、観客はCRubyコードの方が快適になります。 Cで
の経験は必要ありません。
Architecture ofhanamiapplications by
@anton_davydov
Webアプリケーションの一般的な部分はビジネスロジックです。残念なが
ら、特定のルールと説明を持つフレームワークを見つけて、それをどのよ
うに処理するのが本当に難しいです。ハナミでは、長期的なメンテナンス
を心配しています。そのため、ビジネスロジックをどのように扱うかが私
たちにとって本当に重要です。私の話では、花菜のアプリケーションでビ
ジネスロジックを保存して作業する方法を共有します。私たちは、イベン
トの調達のような花見、乾燥、いくつかの建築アイデアについて話しま
す。この話は、どの開発者にとっても興味深いものです。他のフレーム
ワークで作業する場合は、これらのアイデアをプロジェクトに取り入れる
Aparser based syntax highlighter by@pck
読みやすい自然な文法を持ち、書きやすい。 https://www.ruby-
lang.org/ja/
絶対に。構文はエレガントです。しかし時には複雑すぎる。したがって、
Rubyのシンタックスハイライターは簡単ではありません。たとえば、お
そらくあなたのエディタは、おそらく正しく、???? ::?:、%%s %%
%%%%、def end(def:def def; end)endをハイライトすることは
できません(これらは有効なRubyプログラムです)。ええ、それはエッ
ジケースです。実際の状況では、一部の構文ハイライターはここの文書を
正しく強調表示できません。
私はRubyのための堅牢な構文ハイライター、Iro gemとIro.vimを話
17:30 - 18:30 LightningTalks
» Test asynchronous functions with RSpec by @ledsun
» Rib - Yet another interactive Ruby shell by
@lulalala
» Create libcsv based ruby/csv compatible CSV
library by @284km
» From String#undump to String#unescape by @tad
» Improve Red Chainer and Numo::NArray performance
by @naitoh
day2
Mywaywith Rubyby@ktou
» Rubyistとしての私の活動は次のとおりです:Rubyができることを
増やす / 図書館を維持する / この講演では、私の活動を紹介しま
す。
10:50 - 11:30
» Controlling Droids™ with mruby & Go by @hone02 &
@code0100fun
» Faster Apps, No Memory Thrash: Get Your Memory
Config Right by @codefolio
» It's Rubies All The Way Down by @wyhaines
Controlling Droids™with mruby& Go by
@hone02 & @code0100fun
Rubyは、ロボット、IoT、または他の低レベルシステムを取り扱う最前
線にいたことはありません。 Rubyの優れた点は、DSLのスクリプト作
成と構築です。 mrubyを使用することで、我々が愛する言語を使用しな
がら既存の生態系を活用することができます。
この講演では、Sphero R2-D2を制御するGoイベントリアクタ内で
mrubyハンドラを実行する方法について詳しく説明します。驚くほど少
ないコード行で、モーター、ライト、サウンドを同時に調整することが
できます。ムルビーとロボティクスについて学び、あなたが実際に探して
いるドロイドを見てください。
FasterApps, No MemoryThrash: GetYour
MemoryConfig Rightby@codefolio
Rubyのメモリシステムは扱いにくいかもしれません。設定は簡単ではあ
りません。 Rubyバイナリのメモリ設定を最適化する新しい簡単なツー
ルを紹介します。 CRubyのメモリリソースとその確認方法について学び
ます。メモリ使用量を最適化してメモリを小さくし、ガベージコレクショ
ンを高速に保ちましょう。
It's RubiesAllTheWayDown by@wyhaines
Rubyは膨大な機能を持つ言語です。その1つはWebアプリケーションの仕
事です。通常、Rubyはアプリケーションコンテナ/アプリケーション層
でのみ使用され、他のテクノロジはスタックの残りの部分を提供します。
Rubyはアプリケーションスタック内の他の役割を満たすことができます
ので、楽しくなるように、上から順にRubyソフトウェアで構成されるス
タックを探索しましょう。どのように見えるだろうか?それはどのように
実行されますか?なぜあなたはこれをやりますか?
13:00 - 13:40
» Guild Prototype by @ko1
» Journey of a complex gem upgrade by @Edouard-chin
» Improve Ruby coding style rules and Lint by @koic
Guild Prototype by@ko1
RubyKaigi 2016、Ruby 3のためのGuildという新しい並行性抽象化
を提案しました。Guildは安全な並列プログラミングと並列計算を実現
します。我々はギルドの試作品を作っている。この講演では、ギルドの概
念と評価をGuildのプロトタイプで紹介します。また、別の適切な名前
を見つけるために "Guild"の名前について議論しています。この「命名
戦」の議論を紹介します。
Journeyofacomplex gem upgrade by
@Edouard-chin
すべての宝石バンプは慎重かつ注意を払って実行する必要がありますが、
ほとんどの場合、バンドルの更新コマンドを実行するだけで、
CHANGELOGを見て、アップグレードによってカップルテストが失敗する
可能性があります。しかし、新しいバージョンで多くの急激な変化をもた
らした宝石のアップグレードはどうですか?アップグレードによって、既
存のテストが何千も失敗するのではなく、何百もの原因となる可能性が
あります。この話では、どんな依存性もスムーズかつ安全にアップグレー
ドできるように、さまざまな手法と戦略を共有したいと思います。
Improve Rubycoding style rulesand Lintby
@koic
RuboCopを使用する際のRubyのコーディングスタイルルールとLintの
改善について説明します。静的解析ツールを使用してリポジトリ内のコー
ディングスタイルを統一する機会は珍しいことではありません。しかし、
実世界は唯一のコーディング規則で統一されていません。それでも、より
良いと思うコーディング規則に近づけることができます。私はこの話題に
ついて話したいと思います。
13:50 - 14:30
» extend your own programming language by @m_seki
» Scaling Teams using Tests for Productivity and
Education by @jules2689
» mruby can be more lightweight by @yuriatearth
extendyour own programming language by
@m_seki
書籍「RubyでつくるRuby」はRubyの(極小の)サブセットMinRubyを
Rubyで実装しながら、Rubyとプログラミング言語とインタプリタを学
ぶ本です。入門者にとって、フルセットのRubyを改造するのはちょっと
難しいですが、MinRubyのサイズならちょうどよい教材です。MinRuby
を拡張し自分の言語を作ることで得られる万能感は格別です。 本講演で
は、MinRubyを拡張してRuby自体に新しい機能を追加する例を紹介しま
す。末尾呼び出し最適化、実行コンテキストの別プロセスへ移送、変数操
作のフックなど、ライブラリだけで実装するのは難しいRubyの変種を示
します。
ScalingTeams usingTests for Productivity
and Education by@jules2689
Ruby組織の規模が大きくなるにつれて、より多くの開発者がチームに加
わります。コードのスタイルを強制し、ベストプラクティスに従い、言葉
に頼らずに行われた間違いを文書化することがますます困難になっていま
す。 Rubocopなどのツールを使用していくつかの文章構成要素を確認し
ていますが、問題やベストプラクティスを文書化するツールがありませ
ん。この講演では、ベストプラクティスを中心とした戦略やソリューショ
ンに焦点を当てています。これは、約1000人の開発者を「時間をぴった
り」に情報提供することで、途方もなく開発し、加速させています。
mrubycan be more lightweightby
@yuriatearth
mrubyは「軽量Ruby」と呼ばれていますが、実際にはRAMメモリをかな
り消費します。この講演では、RAMの代わりにROMを使用する実装の提案
について説明します。さらに、RAMの使用を減らすためのいくつかの構成
についても説明します。また、評価用ボード(RAM:96 KB)を使用し
て、RAM使用量を削減した結果として使用可能になったことを実証しま
す。
14:40 - 15:20
» Ruby Programming with Type Checking by @soutaro
» Ferrari Driven Development: superfast Ruby with
Rubex by @v0dro
» Firmware programming with mruby/c by @hasumon
RubyProgrammingwithType Checking by
@soutaro
昨年、私はRubyのタイプチェッカーSteepを紹介するプレゼンテーショ
ンをしました。しかし、実装は非常に実験的なので、まったく生産に使
用できません。この講演では、プロジェクトの9ヶ月間の進行状況を報告
し、ツールがRubyプログラミングにどのように役立つかを紹介します。
Ferrari Driven Development: superfastRuby
with Rubex by@v0dro
RubyコードをC拡張で高速化したいが、ドキュメンテーションや恐ろし
いCプログラミングの山々に困惑し、代わりに別の言語に移行することを
選んだか?そのGILをリリースし、あなたのプロセッサーがあなたの髪を
失うことなく提供しなければならないすべてのジュースを抽出することが
できたらいいですか?はいの場合は、この話を見に来てください!この講
演では、Ruby Cの拡張を書く最速かつ幸せな方法であるRubexを紹介し
ます。 Rubexは、Rubyの中核となる哲学を念頭に置いて設計された
まったく新しい言語であり、プログラマを幸せにするものです。
» https://github.com/SciRuby/rubex
Firmware programmingwith mruby/c by
@hasumon
私たちは、マイクロコンピュータ(マイクロコントローラ)用のファーム
ウェアを書く新しい選択肢を持っています。それはmruby / cです。こ
の講演では、mruby / cファームウェアプログラミングを紹介します。
また、日本酒醸造所の実際のIoTプロジェクトについても説明します。
mruby / cはまだ若く成長しているツールなので、あなたはそれがより
良くなるのを助けることができるいくつかの(多くの)ものがあることを
知っています。
15:50 - 16:30
» RNode with code positions by @spikeolaf
» Implementing Web Console by @gsamokovarov
» How Ruby Survive in the Cloud Native World by
@udzura
RNodewith code positions by@spikeolaf
この講演では、Rubyのコード位置について説明します。コード位置は、
Ruby 2.5から導入されたASTノードの新しい位置情報です。コード位置
は、警告メッセージ、例外メッセージ、Proc#source_locationなど
を改善することができます。この講演には以下のトピックが含まれていま
す。どのコード位置があるか。/なぜ彼らは必要です。/実装方法
ImplementingWeb Console by
@gsamokovarov
Webコンソールは、Railsにバンドルされているデバッグツールです。最
も一般的な機能は、すべての開発エラーで表示されるコンソールですが、
RubyコードをWeb UIを通じて、実行中の任意のバインディングで実行
できる汎用デバッグツールです。この講演では、Webコンソールの宝石が
どのように実装されているかを見ていきます。これには、Rubyでの例外
の処理方法に関する深い洞察が含まれます。例外バックトレースのすべて
の部分についてRubyバインディングを構築する方法を説明します。これ
を可能にするためにDebugInspectorおよびTracePoint C APIとど
のようにやりとりし、JRubyのような別のRuby実装をどのようにサポー
HowRubySurvive inthe Cloud NativeWorld
by@udzura
コンテナオーケストレーション技術は、Ops / SREの注目を集めつつ、
マイクロサービスとサーバレスアーキテクチャの重要性が増しています。
しかし、私の意見では、これらの「クラウドネイティブ」開発について、
Ruby言語は他の若年言語(特にGoとRust)よりも小さな活動を示して
います。ちなみに、2016年にmrubyでコンテナランタイムHaconiwaを
作成しました。 2017年には、多くのコンポーネントでRubyとmrubyを
使用して私の会社のWebホスティングサービス用コンテナプラットフォー
ムを傷つけました。 2018年には、Rubyとmrubyで完全に実装された新
しいコンテナオーケストレーションツールを作成します。これらのコンテ
16:40 - 17:20
» Type Profiler: An analysis to guess type
signatures by @mametter
» One cable to rule them all by @palkan_tula
» 20k MRuby devices in production by @scalone
Type Profiler:Ananalysisto guesstype
signatures by@mametter
matzが静的解析を含むRuby 3の目標を設定した後、その要件(および
妥協点)が徐々に明らかになりました。私たちが知っている限り、現在
の状況を見直し、Rubyの型チェックに関連する既存の提案や実装を簡単
に調査し、何が良いものか、何が欠けているのかを明確にします。今回の
アンケート調査では、Ruby型検査システムの欠落部分の1つである型プ
ロファイラを試作しました。タイププロファイラは、既存のRubyプログ
ラムを静的および動的に分析し、タイプ定義のスタブを作成します。その
設計について議論し、いくつかの実験結果を示す。
One cableto rulethemallby@palkan_tula
現代のWebアプリケーションは、リアルタイム機能を積極的に利用してい
ます。残念ながら、今日では、Rubyは、まったく別のチャットを実装す
る技術としてはめったに考慮されていません。Rubyのパフォーマンス
は、並行処理と高負荷を処理する場合には大いに期待されています。これ
は、私たちが好きな言葉を裏切るべきであることを意味します。私の答え
は「いいえ」です。私は、Rubyの優雅さと他の言語の能力をどのように
組み合わせて、リアルタイムアプリケーションのパフォーマンスを向上さ
せることができるかをお見せしたいと思います。
20k MRubydevices in production by@scalone
私はmRubyの完全なランタイムを変更しました.3年間は、推奨されてい
ないとしても、mRubyを稼働させて20kマシンと支払いトランザクション
の数十億ドルに達しました。私たちは多くの問題に直面しましたが、
mRubyを採用することでさらに大きな利益を得ました。この話は、次の
ようなトピックに関するものです。ランタイムとアプリケーションの更
新/アップグレード / 通信構成とインテリジェンス / 支払いトランザ
クションのセキュリティと暗号化 / 並行性 / CRubyとmRubyのコード
共有 / メモリ管理とリーク / オープンソース
RubyCommittersvsthe
World
day3
ParallelandThread-Safe RubyatHigh-Speed
withTruffleRubyby@eregontp
ArrayとHashはすべてのRubyプログラムで使用されています。しかし、
現在の実装では、それらを並列で使用すること(MRIのグローバルインタ
プリタロック)やスレッドセーフの保証がない(JRubyは並行Array#
<<の例外を発生させます)。 Concurrent :: Arrayからの
concurrent-rubyはスレッドセーフですが、並列アクセスはできませ
ん。この講演では、シングルスレッドのパフォーマンスを損なうことな
く、並列アクセスを可能にしながら、ArrayとHashをスレッドセーフに
するテクニックを示します。要するに、我々は、Rubyが数十のコアにス
ケールアップできるようにしながら、グローバルロックの最も重要なス
10:50 - 11:30
» Grow and Shrink - Dynamically Extending the Ruby
VM Stack by @sugiyama-k & @duerst
» IRB Reboot: Modernize Implementation and Features
by @aycabta
» Ruby code from the stratosphere - SIAF, Sonic Pi,
Petal by @kn1kn1
Growand Shrink - DynamicallyExtendingthe
RubyVM Stack by@sugiyama-k & @duerst
現在、MRI(Rubyのリファレンス実装)は各スレッドに1MBのスタック
領域を割り当てます。これは特に高度にマルチスレッドのアプリケーショ
ンでは、明らかに準最適です。我々は、非常に小さいスタックサイズから
始め、必要なときにのみ各スタックを成長させることから、MRIのための
動的スタック拡張を首尾よく実装しました。現在のスタック構造に非常
に近いものと、スタック構造が異なるものの2つの異なる実装を示しま
す。私たちの実装が安定していることをどのように確認したかについても
説明します。 Linuxでは、1スレッドあたりのメモリ削減量を30%まで
達成しています(Rubyの全ベンチマークで測定)の平均速度が6%向上
IRB Reboot: Modernize Implementationand
Features by@aycabta
トークン情報と構文チェックによって継続するかどうかを示します。IRB
の実装が近代化された後、私はIRBにいくつかの新しい機能を追加しまし
た。 IRBは、RDoc機能をライブラリとしてインポートします。たとえ
ば、メタプログラムされた名前空間のオートコンプリート、オートコンプ
リートによるドキュメントの表示などがあります。
Rubycode fromthe stratosphere - SIAF, Sonic
Pi, Petalby@kn1kn1
昨年、SIAF2017のspace-moere(札幌国際芸術祭2017)というプロ
ジェクトに参加しました。このプロジェクトでは、成層圏で生成された
Sonic Piコードを受信し、それを使用してライブパフォーマンスを行い
ました。ライブパフォーマンスのために、私はPetalという小さな言語
を作った。このセッションでは、次のトピックについて説明します。ス
ペースモアプロジェクト / Petal / それに基づいたいくつかのプロ
ジェクト(Sonic PiとTidal Cycles)
13:00 - 13:40
» The Method JIT Compiler for Ruby 2.6 by @k0kubun
» Devly, a multi-service development environment by
@drbrain & @ezkl
» Reirb: Reborn Irb by @keiju
The MethodJITCompiler for Ruby2.6 by
@k0kubun
Ruby 2.6がJITコンパイラに同梱されることをご存知ですか? JITコ
ンパイラがRubyを高速化する理由を知っていますか?この講演では、驚
くほど短いERBコードとメソッドインライン化によるRubyの将来のパ
フォーマンスによって、Rubyをより速く作る方法を紹介します。
Devly,amulti-service development
environmentby@drbrain & @ezkl
システムだけで書くのは難しいです。多くの人がいる多くのシステムを構
築するのは難しいです。私たちの会社が成長するにつれ、私たちは使いや
すい共有開発環境に多くのアプローチを試み、何がうまくいくのか、そう
でないのかを学びました。私たちが学んだことをdevlyというツールに
取り入れました。 Devlyは、Fastlyでさまざまな言語で書かれた多く
のサービスにまたがる製品を開発するために使用されています。ツールの
設計は、チームの働き方やコミュニケーションの方法によって導かれなけ
ればならないことを学びました。 Devlyは、これらのニーズに対応する
ために、開発者が自分の仕事に集中できるように、セルフサービス、制
Reirb: Reborn Irb by@keiju
Reirbは生まれ変わったirbで、対話型のRuby言語です。これは、Ruby
の構文を持つ高機能シェル言語です。その機能は、ジョブコントロール、
マルチラインエディタ、スマートコンプリート、言語ナビゲーション機能
などです。Reirbを使用することで、誰もがもっと楽しいRubyライフを
楽しめるようになります。
13:50 - 14:30
» Build your own tools by @shugomaeda
» Deep into Ruby Code Coverage by @malafortune
» LuaJIT as a Ruby backend. by @take-cheeze
Buildyour owntools by@shugomaeda
FLOSSは非常に一般的なので、Microsoftもそれを使用して開発してい
ます。しかし、毎日の使用のためにあなたのツールを制御できますか?独
自のツールを構築することがソフトウェアを開発する最良の方法であ
り、Rubyはそのような用途に最適な言語です。この講演では、私自身の
ツールと私の開発スタイルを紹介します。
Deepinto RubyCode Coverage by
@malafortune
コードカバレッジは、十分なテストがあれば簡単に測定できますが、ま
だ多くの人がテストを使用していません。この講演では、有意義なコード
カバレッジの利点と、DeepCoverという新しいツールを使用して落とし
穴のいくつかを回避する方法について解説します。
LuaJITasaRubybackend. by@take-cheeze
LuaJITはJITの優れたLua実装です。また、他の言語で再利用できる
JITモジュールも提供しています。このセッションでは、mrubyバックエ
ンドとしてLuaJITを使った経験を話します。
14:40 - 15:20
» How to get the dark power from ISeq by @youchan
» High Performance GPU computing with Ruby by
@prasun_anand
» How happy they became with H2O/mruby, and the
future of HTTP by @i110 & @kazuho
Howto getthe dark power from ISeq by
@youchan
のiSeqを指定することは良いことかもしれませんし、悪いことかもしれ
ません。いずれにせよ、その可能性を探求することは有用であろう。ス
ピーカーはISeqの現在の仕様を文書化しようとしています。この話で
は、私は3つの姿勢を話します。最初はISeqのハッキングに関心を持つ
ほとんどの視聴者です。 2番目はISeqの潜在的なユーザーです。私は何
をすべきかヒントを示します。最後に、ISeqをRubyコアチームに文書化
する必要があるかどうかを確認します。
High Performance GPU computingwith Ruby
by@prasun_anand
Rubyは非常に古く、成熟したプログラミングはScientific
Computingにはあまり好ましくありません。主に大規模なデータセット
を処理できないためです。私が作成したRbCUDAとArrayFireの宝石
は、卓越したパフォーマンスを持ち、巨大なデータセットを処理すること
で現実世界の問題を処理できます。この講演では、RbcUDAと
ArrayFireがコードを簡単に加速するのに役立つ方法を示したいと思い
ます。
Howhappytheybecamewith H2O/mruby,and
the future ofHTTPby@i110 & @kazuho
厄介なWebサーバーの設定ファイルに苦しんでいますか?メンテナンス性
と柔軟性の欲求がありますが、パフォーマンスは心配ですか?この講演で
は、大規模な写真共有サービスでnginxからH2Oへの実際の移行の話を
紹介し、mrubyスクリプティングがどのように設定を書いたり維持した
りするのかを示しています。実際の設定例、直面した課題、ベンチマーク
結果の最終結果が表示されます。また、最近追加された多くの光沢のある
新機能やmrbgemを紹介します。あなたはH2Oとmrubyを使って進んだこ
とをやり遂げることができます。講演では、H2拡張モジュールの標準
化、QUIC、そしてそれらがどのようにWebアプリケーションの開発と展
15:50 - 16:30
» Three Ruby performance projects by @vnmakarov
» JRuby 9.2 and Rails 5.x by @tom_enebo
» Design pattern for embedding mruby into middleware
by @matsumotory
Three Rubyperformance projects by
@vnmakarov
CRubyのような深刻なプログラムのパフォーマンスを改善する方法はた
くさんあります。このプレゼンテーションでは、3つの異なるサイズのプ
ロジェクトについて説明しています。1つのプロジェクトはかなり小さい
です。これは、CRuby浮動小数点性能を改善するために、IEEE 754倍
精度数値の新しいCRuby内部表現を導入することです。 2つ目は、YARV
命令からRTLを生成し、解釈とJITコンパイルにRTLを使用する中規模プ
ロジェクトです。 3番目は軽量JITを作成するための非常に野心的なプ
ロジェクトです。このJITはMJITと一緒に階層1のJITコンパイラとし
て、またはmrubyのための単一のJITとして使用できます。
JRuby9.2and Rails 5.x by@tom_enebo
JRuby 9.2がリリースされました。 9.2はRuby 2.5との互換性をサ
ポートしており、Rails 5.xもうまく動作します。この講演では、
JRuby 9.2のさらに興味深い点についていくつか議論する予定です。パ
フォーマンスの更新/Graal統合/IR instrリファクタリング/オブジェ
クトシェーピング/フルエンコードのサポート(@@かいぎ|| = $
"
.send:──ノノーºノ ')/改善されたWindowsのサポート/また、
JRubyでRails 5.xを実行している状態を更新する予定です。この講演
では、ActiveRecord-JDBCに加えた更新情報を紹介し、Discourse
を稼働させる実際の使用例を示します。 JRubyの最新情報を入手!
Design pattern for embedding mrubyinto
middleware by@matsumotory
2012年にリリースされたmrubyと6年が経過しました。私は、mrubyを
ngx_mrubyのような多くのミドルウェアに組み込み、ミドルウェアで拡
張性とパフォーマンスの両立を設計し実装しました。 mrubyに仕様や機
能のパッチを送ってきたので、仕様と背景だけでなく、ミドルウェアをミ
ドルウェアに組み込むために私が知っているだけの設計と実装を共有した
いと思います。このプレゼンテーションでは、インターネットサービスを
サポートするミドルウェアとmrubyを接続し、それをデザインパターンと
して導入するための設計と実装を一般化します。
TRICK 2018 (FINAL)
グルメ
http://tech.smarthr.jp/entry/2018/05/10/192540

More Related Content

Similar to Shinjuku.rb #61 RubyKaigi2018予習

スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例terurou
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Hiro Yoshioka
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてClojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてKazuhiro Hara
 
C++ REST SDKを使ってWebサービスを利用する
C++ REST SDKを使ってWebサービスを利用するC++ REST SDKを使ってWebサービスを利用する
C++ REST SDKを使ってWebサービスを利用するYou&I
 
Rubyと機械学習の現状
Rubyと機械学習の現状Rubyと機械学習の現状
Rubyと機械学習の現状Aki Ariga
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code readingHiro Yoshioka
 
mruby/c機能紹介20160329
mruby/c機能紹介20160329mruby/c機能紹介20160329
mruby/c機能紹介20160329shimane-itoc
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン三七男 山本
 
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編Takekazu Omi
 
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLBYuki KAN
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道Shigeru UCHIYAMA
 
Ruby Extended Library
Ruby Extended LibraryRuby Extended Library
Ruby Extended LibraryAkio Tajima
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionGoh Matsumoto
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Hiroshi Tokumaru
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い sasezaki
 
Sci rubyプロジェクトの紹介
Sci rubyプロジェクトの紹介Sci rubyプロジェクトの紹介
Sci rubyプロジェクトの紹介Kozo Nishida
 

Similar to Shinjuku.rb #61 RubyKaigi2018予習 (20)

スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
20120831 mongoid
20120831 mongoid20120831 mongoid
20120831 mongoid
 
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてClojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
 
C++ REST SDKを使ってWebサービスを利用する
C++ REST SDKを使ってWebサービスを利用するC++ REST SDKを使ってWebサービスを利用する
C++ REST SDKを使ってWebサービスを利用する
 
Rubyと機械学習の現状
Rubyと機械学習の現状Rubyと機械学習の現状
Rubyと機械学習の現状
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
 
mruby/c機能紹介20160329
mruby/c機能紹介20160329mruby/c機能紹介20160329
mruby/c機能紹介20160329
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン
 
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編クラウドデザイン パターンに見るクラウドファーストなアプリケーション設計 Data Management編
クラウドデザイン パターンに見る クラウドファーストな アプリケーション設計 Data Management編
 
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
17 E-5 震災とHackとクラウドと ━ URIベースのCSLB
 
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
 
Ruby Extended Library
Ruby Extended LibraryRuby Extended Library
Ruby Extended Library
 
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd editionRails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
Sci rubyプロジェクトの紹介
Sci rubyプロジェクトの紹介Sci rubyプロジェクトの紹介
Sci rubyプロジェクトの紹介
 

More from treby

失敗から学ぶEM方法論
失敗から学ぶEM方法論失敗から学ぶEM方法論
失敗から学ぶEM方法論treby
 
Vue.js + Vuexチーム開発実践の事例
Vue.js + Vuexチーム開発実践の事例Vue.js + Vuexチーム開発実践の事例
Vue.js + Vuexチーム開発実践の事例treby
 
Frontendと向き合う
Frontendと向き合うFrontendと向き合う
Frontendと向き合うtreby
 
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜treby
 
モダンJSでモダンなWebアプリケーションを作ろう!
モダンJSでモダンなWebアプリケーションを作ろう!モダンJSでモダンなWebアプリケーションを作ろう!
モダンJSでモダンなWebアプリケーションを作ろう!treby
 
Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?treby
 
The Art of Collaboration
The Art of CollaborationThe Art of Collaboration
The Art of Collaborationtreby
 
楽しく学ぶ?API
楽しく学ぶ?API楽しく学ぶ?API
楽しく学ぶ?APItreby
 
VueとdockerとAWSとチームとアイマスと私
VueとdockerとAWSとチームとアイマスと私VueとdockerとAWSとチームとアイマスと私
VueとdockerとAWSとチームとアイマスと私treby
 
アイマスハッカソン2017
アイマスハッカソン2017アイマスハッカソン2017
アイマスハッカソン2017treby
 
Sinatraで触れる生SQL
Sinatraで触れる生SQLSinatraで触れる生SQL
Sinatraで触れる生SQLtreby
 
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~treby
 
最近のRailsフロントエンド開発の紹介
最近のRailsフロントエンド開発の紹介最近のRailsフロントエンド開発の紹介
最近のRailsフロントエンド開発の紹介treby
 
たたかうFFI
たたかうFFIたたかうFFI
たたかうFFItreby
 
mastodon API
mastodon APImastodon API
mastodon APItreby
 
TH@NK YOU for SMILE!!とミリオンボーダーbot
TH@NK YOU for SMILE!!とミリオンボーダーbotTH@NK YOU for SMILE!!とミリオンボーダーbot
TH@NK YOU for SMILE!!とミリオンボーダーbottreby
 
Paperclip
PaperclipPaperclip
Papercliptreby
 
このみさんにPRしてもらう
このみさんにPRしてもらうこのみさんにPRしてもらう
このみさんにPRしてもらうtreby
 
reading suture
reading suturereading suture
reading suturetreby
 
趣味から始めるWebスクレイピング
趣味から始めるWebスクレイピング趣味から始めるWebスクレイピング
趣味から始めるWebスクレイピングtreby
 

More from treby (20)

失敗から学ぶEM方法論
失敗から学ぶEM方法論失敗から学ぶEM方法論
失敗から学ぶEM方法論
 
Vue.js + Vuexチーム開発実践の事例
Vue.js + Vuexチーム開発実践の事例Vue.js + Vuexチーム開発実践の事例
Vue.js + Vuexチーム開発実践の事例
 
Frontendと向き合う
Frontendと向き合うFrontendと向き合う
Frontendと向き合う
 
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
Railsのフロントエンドのトレンドと実際〜事業を進めながら、レールに乗り続けるためのテクニック〜
 
モダンJSでモダンなWebアプリケーションを作ろう!
モダンJSでモダンなWebアプリケーションを作ろう!モダンJSでモダンなWebアプリケーションを作ろう!
モダンJSでモダンなWebアプリケーションを作ろう!
 
Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?
 
The Art of Collaboration
The Art of CollaborationThe Art of Collaboration
The Art of Collaboration
 
楽しく学ぶ?API
楽しく学ぶ?API楽しく学ぶ?API
楽しく学ぶ?API
 
VueとdockerとAWSとチームとアイマスと私
VueとdockerとAWSとチームとアイマスと私VueとdockerとAWSとチームとアイマスと私
VueとdockerとAWSとチームとアイマスと私
 
アイマスハッカソン2017
アイマスハッカソン2017アイマスハッカソン2017
アイマスハッカソン2017
 
Sinatraで触れる生SQL
Sinatraで触れる生SQLSinatraで触れる生SQL
Sinatraで触れる生SQL
 
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
Railsフロントエンドの modernizeにおける一事例 ~decaffeinateからES2015移行まで~
 
最近のRailsフロントエンド開発の紹介
最近のRailsフロントエンド開発の紹介最近のRailsフロントエンド開発の紹介
最近のRailsフロントエンド開発の紹介
 
たたかうFFI
たたかうFFIたたかうFFI
たたかうFFI
 
mastodon API
mastodon APImastodon API
mastodon API
 
TH@NK YOU for SMILE!!とミリオンボーダーbot
TH@NK YOU for SMILE!!とミリオンボーダーbotTH@NK YOU for SMILE!!とミリオンボーダーbot
TH@NK YOU for SMILE!!とミリオンボーダーbot
 
Paperclip
PaperclipPaperclip
Paperclip
 
このみさんにPRしてもらう
このみさんにPRしてもらうこのみさんにPRしてもらう
このみさんにPRしてもらう
 
reading suture
reading suturereading suture
reading suture
 
趣味から始めるWebスクレイピング
趣味から始めるWebスクレイピング趣味から始めるWebスクレイピング
趣味から始めるWebスクレイピング
 

Recently uploaded

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 

Recently uploaded (8)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 

Shinjuku.rb #61 RubyKaigi2018予習

  • 2. Contents » Day1 5/31 » Day2 6/1 » Day3 6/2
  • 3. day1 » Keynote matz » 13:00 - 13:40 » 13:50 - 14:30 » 14:40 - 15:20 » 15:50 - 16:30 » 16:40 - 17:20 » Lightning Talks
  • 4. day1 13:00 - 13:40 » Analyzing and Reducing Ruby Memory Usage by @tenderlove » Karafka - Ruby Framework for Event Driven Architecture by @maciejmensfeld » bancor: Token economy made with Ruby by @kurotaky
  • 6. Karafka- RubyFramework for EventDriven Architecture by@maciejmensfeld Karafkaを使用すると、システムで発生するすべてのものを大量に取得 し、ビジネスドメインではないものに集中することなく、このデータを 消費し処理するためのシームレスで安定したコアを提供できます。あるア プリケーションから別のアプリケーションにデータをパイプし、変換して 返送しようとしたことがありますか?既存のコードベースを切り離し、よ り弾力性と柔軟性を持たせたいと思ったことはありますか?カラフカに ついては、既存のプロジェクトに適合し、モダンで分散したスケーラブル なエコシステムのメッセージバックボーンとしてどのように使用するかに ついて学びましょう。
  • 7. bancor: Token economymadewith Rubyby @kurotaky スマート契約でのトークンの流動性と取引価格の発見を自動化すると言 われる「Bancor Protocol」というプロトコルがあります。プロジェ クトでこのプロトコルの有用性を検証するには、スマートな契約プログラ ムを作成し、アプリケーションを実装するのに費用がかかります。Ruby でアプリケーションを実装する際には、Bancorプロトコルを簡単に導入 して検証するための宝石「bancor」を作っています。このプレゼンテー ションでは、開発者が "bancor"を使用してRubyアプリケーションで "トークンエコノミー"を構築し、効果を迅速に検証する方法について説 明します。
  • 8. 13:50 - 14:30 » Deep Learning Programming on Ruby by @mrkn & @hatappi » A practical type system for Ruby at Stripe. by @DarkDimius & @ptarjan & @nelhage » Hijacking Ruby Syntax in Ruby by @joker1007 & @tagomoris
  • 9. DeepLearning Programming on Rubyby @mrkn & @hatappi Ruby言語による実用的なパフォーマンスで深い学習モデルをプログラム する方法を紹介します。 RubyのApache MXNetとRed Chainerを使 用します。 Apache MXNetはpycall.rbから入手できますが、この講 義では、このようなブリッジシステムがなくてもRubyから直接使用され ます。私たちのデモンストレーションでは、Rubyがそのような作業を行 う準備ができていることが示されます。さらに、データサイエンス分野で Rubyを利用できるようにするためのプロジェクトの最新の進 状況と今 後の展望についても説明します。
  • 10. Apracticaltype system for RubyatStripe. by @DarkDimius & @ptarjan & @nelhage Stripeでは、型システムが大きなコードベースに大きなメリットをもた らすと確信しています。彼らは:常に最新の状態に保たれたドキュメント です。ツーリングからの迅速なフィードバックを介して開発ループをス ピードアップします。幸せなパスで処理されないコーナーケースを発見す るのに役立ちます。「定義にジャンプ」などの型チェックによって得られ た知識を公開するビルド・ツールを許可します。Rubyコードでストライ プ方式で採用されているタイプシステムを構築しました。このタイプシス テムは、異なるペースでそれを採用する異なるチームやプロジェクトで 徐々に採用することができます。私たちはAndとOrTypesと基本ジェネ
  • 11. Hijacking RubySyntax in Rubyby@joker1007 & @tagomoris この講演では、メタプログラミング技術を使用した新しい構文解析と、 Rubyの多くでよく知られていないRuby機能の紹介方法を紹介します。魔 法のコードを楽しんでください!Rubyの構文をハックするRubyの機能を 表示する(Binding、TracePoint、Refinementsなどを含む)これ らの技術によって導入されたものを説明するメソッド修飾子(final、 abstract、override)DSLをテストするためのテーブルのような構文 安全なリソースの割り当て/収集(with、defer)新しいトレーサブルイ ベント、フックなどの提案
  • 12. 14:40 - 15:20 » All About RuboCop by @bbatsov » What would your own version of Ruby look like? by @_st0012 » TTY - Ruby alchemist’s secret potion by @piotr_murach
  • 13. AllAboutRuboCopby@bbatsov この講演では、Rubyプロジェクト全体で一貫したコードスタイルを簡単 に実行できる強力なRubyスタティックコードアナライザであるRuboCop について知る必要があるすべてについて説明します。まず、RuboCopの作 成、その初期の展開とその進化、効果的なRuboCopの使い方、そして クールだが知られていない機能のいくつかを調べることから始めます。 RuboCopの内部構造について簡単に説明し、機能を拡張するのが簡単で あることを示します。RuboCopの将来を垣間見ることで話を包み込み、 RuboCopが最終的に1.0の欲望に達する前に、プロジェクトが直面する いくつかの課題と今後の課題について議論する予定です。
  • 14. Whatwouldyour ownversion ofRubylook like? by@_st0012 私たちの大部分はRubyを愛していると信じていますが、私たちの大半は Rubyが完璧だとは思っていません。だから、Rubyの独自のバージョン は、あなたが作成することができる場合のように見えますか?あなたが 知っている人もいるかもしれませんが、私は約1年前にGobyと呼ばれる 言語を作成しました。主にRubyに触発されており、Rubyによく似ていま す。しかし、Rubyとは異なるデザインの選択肢もありますし、Rubyには ない独自の機能もいくつかあります。この講演では、言語を設計する際に 重視すべき重要なことについて話し合うつもりです。また、Gobyを開発 する際の設計選択肢と、これらの選択肢の背後にある哲学についても説
  • 15. TTY- Rubyalchemist’s secretpotion by @piotr_murach Bundlerのような最新のターミナルアプリケーションをすぐに構築する 際に、生産性を飛躍的に向上させるために開発されたシンプルで強力な宝 石があると言われたらどうでしょうか?あなたはこの力を活用してコマン ドラインのアプリケーションの錬金術師になる方法について興味があり ますか?
  • 16. 15:50 - 16:30 » Fast Numerical Computing and Deep Learning in Ruby with Cumo by @sonots » Kiba 2 - Past, present & future of data processing with Ruby by @thibaut_barrere » RubyGems 3 & 4 by @hsbt
  • 17. FastNumericalComputingand DeepLearning in Rubywith Cumo by@sonots Rubyは、科学計算のPythonなどの他の言語よりもはるかに遅れていま す。 1つの理由は、Rubyに高速数値ライブラリがないためです。私は CUDAを使ってRubyの高速数値ライブラリを作成しました。この講演で は、Rubyにおける科学計算の概要/GPUプログラミングの基礎知識/ CUMOの中には、/高速なCUDAカーネルの作成/Ruby C ext gemで CUDAカーネルをスマートに構築する/GPUメモリプールの実装/ユーザー 定義カーネルをコンパイルするJIT/Rubyで書かれた新しいDNNフレーム ワークのNumoとのパフォーマンス比較、Red-Chainer
  • 18. Kiba2 - Past, present& future ofdata processingwith Rubyby@thibaut_barrere Kiba ETL(http://www.kiba-etl.org)は、Rubyのための軽量で 包括的なデータ処理フレームワークで、2015年にリリースされました。 この講演では、木場がなぜ作成されたのか、それがどのように企業の低 メンテナンスデータの準備と処理に使用されているのか(さまざまなユー スケースで説明されています)、バージョン2(RubyのEnumeratorを 活用する理由)再利用可能なデータ処理コンポーネントのオーサリング の大幅な改善、なぜRubyによるデータ処理の将来について楽観的なのか
  • 19. RubyGems 3 & 4 by@hsbt RubyGemsは、標準ライブラリなしでインターネット経由でライブラリを インストールするための仕組みです。 RubyGemsのメンテナンスマネー ジャーとRubyコアチームのコアメンバーとして、毎年RubyGemsの最新 バージョンを最新の安定版Rubyに統合しようとしています。このプレゼ ンテーションでは、RubyGems 2.7の新機能を紹介し、Bundlerとの統 合のメカニズムについて説明します。最後に、Ruby 2.6と3リリース用 に開発しているRubyGems 3と4のロードマップを紹介します。この講演 を通じて、ルビーの生態系の中心にあるRubyGemsを理解することで、ル ビーの世界をもっと楽しむことができます。
  • 20. 16:40 - 17:20 » Exploring Internal Ruby Through C Extensions by @Yuryu » Architecture of hanami applications by @anton_davydov » A parser based syntax highlighter by @pck
  • 21. Exploring InternalRubyThrough C Extensions by@Yuryu あなたは、RubyオブジェクトがCRubyコードでどのように表現されてい るのか疑問に思っているかもしれません。あんまり?私は、C拡張を書く ことは、CRubyがさまざまなオブジェクトタイプをどのように扱うのか を調べ、学ぶのに最適な方法だと言います。このセッションでは、独自の Hashクラスを再実装し、CRubyの基本タイプについて説明し、ネイティ ブHash、純粋なC ++実装、およびC拡張バージョン間のパフォーマンス を比較し、Rubyでのメモリレイアウトと消費について説明します。この セッションを通じて、観客はCRubyコードの方が快適になります。 Cで の経験は必要ありません。
  • 22. Architecture ofhanamiapplications by @anton_davydov Webアプリケーションの一般的な部分はビジネスロジックです。残念なが ら、特定のルールと説明を持つフレームワークを見つけて、それをどのよ うに処理するのが本当に難しいです。ハナミでは、長期的なメンテナンス を心配しています。そのため、ビジネスロジックをどのように扱うかが私 たちにとって本当に重要です。私の話では、花菜のアプリケーションでビ ジネスロジックを保存して作業する方法を共有します。私たちは、イベン トの調達のような花見、乾燥、いくつかの建築アイデアについて話しま す。この話は、どの開発者にとっても興味深いものです。他のフレーム ワークで作業する場合は、これらのアイデアをプロジェクトに取り入れる
  • 23. Aparser based syntax highlighter by@pck 読みやすい自然な文法を持ち、書きやすい。 https://www.ruby- lang.org/ja/ 絶対に。構文はエレガントです。しかし時には複雑すぎる。したがって、 Rubyのシンタックスハイライターは簡単ではありません。たとえば、お そらくあなたのエディタは、おそらく正しく、???? ::?:、%%s %% %%%%、def end(def:def def; end)endをハイライトすることは できません(これらは有効なRubyプログラムです)。ええ、それはエッ ジケースです。実際の状況では、一部の構文ハイライターはここの文書を 正しく強調表示できません。 私はRubyのための堅牢な構文ハイライター、Iro gemとIro.vimを話
  • 24. 17:30 - 18:30 LightningTalks » Test asynchronous functions with RSpec by @ledsun » Rib - Yet another interactive Ruby shell by @lulalala » Create libcsv based ruby/csv compatible CSV library by @284km » From String#undump to String#unescape by @tad » Improve Red Chainer and Numo::NArray performance by @naitoh
  • 25. day2
  • 26. Mywaywith Rubyby@ktou » Rubyistとしての私の活動は次のとおりです:Rubyができることを 増やす / 図書館を維持する / この講演では、私の活動を紹介しま す。
  • 27. 10:50 - 11:30 » Controlling Droids™ with mruby & Go by @hone02 & @code0100fun » Faster Apps, No Memory Thrash: Get Your Memory Config Right by @codefolio » It's Rubies All The Way Down by @wyhaines
  • 28. Controlling Droids™with mruby& Go by @hone02 & @code0100fun Rubyは、ロボット、IoT、または他の低レベルシステムを取り扱う最前 線にいたことはありません。 Rubyの優れた点は、DSLのスクリプト作 成と構築です。 mrubyを使用することで、我々が愛する言語を使用しな がら既存の生態系を活用することができます。 この講演では、Sphero R2-D2を制御するGoイベントリアクタ内で mrubyハンドラを実行する方法について詳しく説明します。驚くほど少 ないコード行で、モーター、ライト、サウンドを同時に調整することが できます。ムルビーとロボティクスについて学び、あなたが実際に探して いるドロイドを見てください。
  • 29. FasterApps, No MemoryThrash: GetYour MemoryConfig Rightby@codefolio Rubyのメモリシステムは扱いにくいかもしれません。設定は簡単ではあ りません。 Rubyバイナリのメモリ設定を最適化する新しい簡単なツー ルを紹介します。 CRubyのメモリリソースとその確認方法について学び ます。メモリ使用量を最適化してメモリを小さくし、ガベージコレクショ ンを高速に保ちましょう。
  • 31. 13:00 - 13:40 » Guild Prototype by @ko1 » Journey of a complex gem upgrade by @Edouard-chin » Improve Ruby coding style rules and Lint by @koic
  • 32. Guild Prototype by@ko1 RubyKaigi 2016、Ruby 3のためのGuildという新しい並行性抽象化 を提案しました。Guildは安全な並列プログラミングと並列計算を実現 します。我々はギルドの試作品を作っている。この講演では、ギルドの概 念と評価をGuildのプロトタイプで紹介します。また、別の適切な名前 を見つけるために "Guild"の名前について議論しています。この「命名 戦」の議論を紹介します。
  • 33. Journeyofacomplex gem upgrade by @Edouard-chin すべての宝石バンプは慎重かつ注意を払って実行する必要がありますが、 ほとんどの場合、バンドルの更新コマンドを実行するだけで、 CHANGELOGを見て、アップグレードによってカップルテストが失敗する 可能性があります。しかし、新しいバージョンで多くの急激な変化をもた らした宝石のアップグレードはどうですか?アップグレードによって、既 存のテストが何千も失敗するのではなく、何百もの原因となる可能性が あります。この話では、どんな依存性もスムーズかつ安全にアップグレー ドできるように、さまざまな手法と戦略を共有したいと思います。
  • 34. Improve Rubycoding style rulesand Lintby @koic RuboCopを使用する際のRubyのコーディングスタイルルールとLintの 改善について説明します。静的解析ツールを使用してリポジトリ内のコー ディングスタイルを統一する機会は珍しいことではありません。しかし、 実世界は唯一のコーディング規則で統一されていません。それでも、より 良いと思うコーディング規則に近づけることができます。私はこの話題に ついて話したいと思います。
  • 35. 13:50 - 14:30 » extend your own programming language by @m_seki » Scaling Teams using Tests for Productivity and Education by @jules2689 » mruby can be more lightweight by @yuriatearth
  • 36. extendyour own programming language by @m_seki 書籍「RubyでつくるRuby」はRubyの(極小の)サブセットMinRubyを Rubyで実装しながら、Rubyとプログラミング言語とインタプリタを学 ぶ本です。入門者にとって、フルセットのRubyを改造するのはちょっと 難しいですが、MinRubyのサイズならちょうどよい教材です。MinRuby を拡張し自分の言語を作ることで得られる万能感は格別です。 本講演で は、MinRubyを拡張してRuby自体に新しい機能を追加する例を紹介しま す。末尾呼び出し最適化、実行コンテキストの別プロセスへ移送、変数操 作のフックなど、ライブラリだけで実装するのは難しいRubyの変種を示 します。
  • 37. ScalingTeams usingTests for Productivity and Education by@jules2689 Ruby組織の規模が大きくなるにつれて、より多くの開発者がチームに加 わります。コードのスタイルを強制し、ベストプラクティスに従い、言葉 に頼らずに行われた間違いを文書化することがますます困難になっていま す。 Rubocopなどのツールを使用していくつかの文章構成要素を確認し ていますが、問題やベストプラクティスを文書化するツールがありませ ん。この講演では、ベストプラクティスを中心とした戦略やソリューショ ンに焦点を当てています。これは、約1000人の開発者を「時間をぴった り」に情報提供することで、途方もなく開発し、加速させています。
  • 38. mrubycan be more lightweightby @yuriatearth mrubyは「軽量Ruby」と呼ばれていますが、実際にはRAMメモリをかな り消費します。この講演では、RAMの代わりにROMを使用する実装の提案 について説明します。さらに、RAMの使用を減らすためのいくつかの構成 についても説明します。また、評価用ボード(RAM:96 KB)を使用し て、RAM使用量を削減した結果として使用可能になったことを実証しま す。
  • 39. 14:40 - 15:20 » Ruby Programming with Type Checking by @soutaro » Ferrari Driven Development: superfast Ruby with Rubex by @v0dro » Firmware programming with mruby/c by @hasumon
  • 41. Ferrari Driven Development: superfastRuby with Rubex by@v0dro RubyコードをC拡張で高速化したいが、ドキュメンテーションや恐ろし いCプログラミングの山々に困惑し、代わりに別の言語に移行することを 選んだか?そのGILをリリースし、あなたのプロセッサーがあなたの髪を 失うことなく提供しなければならないすべてのジュースを抽出することが できたらいいですか?はいの場合は、この話を見に来てください!この講 演では、Ruby Cの拡張を書く最速かつ幸せな方法であるRubexを紹介し ます。 Rubexは、Rubyの中核となる哲学を念頭に置いて設計された まったく新しい言語であり、プログラマを幸せにするものです。 » https://github.com/SciRuby/rubex
  • 42. Firmware programmingwith mruby/c by @hasumon 私たちは、マイクロコンピュータ(マイクロコントローラ)用のファーム ウェアを書く新しい選択肢を持っています。それはmruby / cです。こ の講演では、mruby / cファームウェアプログラミングを紹介します。 また、日本酒醸造所の実際のIoTプロジェクトについても説明します。 mruby / cはまだ若く成長しているツールなので、あなたはそれがより 良くなるのを助けることができるいくつかの(多くの)ものがあることを 知っています。
  • 43. 15:50 - 16:30 » RNode with code positions by @spikeolaf » Implementing Web Console by @gsamokovarov » How Ruby Survive in the Cloud Native World by @udzura
  • 44. RNodewith code positions by@spikeolaf この講演では、Rubyのコード位置について説明します。コード位置は、 Ruby 2.5から導入されたASTノードの新しい位置情報です。コード位置 は、警告メッセージ、例外メッセージ、Proc#source_locationなど を改善することができます。この講演には以下のトピックが含まれていま す。どのコード位置があるか。/なぜ彼らは必要です。/実装方法
  • 45. ImplementingWeb Console by @gsamokovarov Webコンソールは、Railsにバンドルされているデバッグツールです。最 も一般的な機能は、すべての開発エラーで表示されるコンソールですが、 RubyコードをWeb UIを通じて、実行中の任意のバインディングで実行 できる汎用デバッグツールです。この講演では、Webコンソールの宝石が どのように実装されているかを見ていきます。これには、Rubyでの例外 の処理方法に関する深い洞察が含まれます。例外バックトレースのすべて の部分についてRubyバインディングを構築する方法を説明します。これ を可能にするためにDebugInspectorおよびTracePoint C APIとど のようにやりとりし、JRubyのような別のRuby実装をどのようにサポー
  • 46. HowRubySurvive inthe Cloud NativeWorld by@udzura コンテナオーケストレーション技術は、Ops / SREの注目を集めつつ、 マイクロサービスとサーバレスアーキテクチャの重要性が増しています。 しかし、私の意見では、これらの「クラウドネイティブ」開発について、 Ruby言語は他の若年言語(特にGoとRust)よりも小さな活動を示して います。ちなみに、2016年にmrubyでコンテナランタイムHaconiwaを 作成しました。 2017年には、多くのコンポーネントでRubyとmrubyを 使用して私の会社のWebホスティングサービス用コンテナプラットフォー ムを傷つけました。 2018年には、Rubyとmrubyで完全に実装された新 しいコンテナオーケストレーションツールを作成します。これらのコンテ
  • 47. 16:40 - 17:20 » Type Profiler: An analysis to guess type signatures by @mametter » One cable to rule them all by @palkan_tula » 20k MRuby devices in production by @scalone
  • 48. Type Profiler:Ananalysisto guesstype signatures by@mametter matzが静的解析を含むRuby 3の目標を設定した後、その要件(および 妥協点)が徐々に明らかになりました。私たちが知っている限り、現在 の状況を見直し、Rubyの型チェックに関連する既存の提案や実装を簡単 に調査し、何が良いものか、何が欠けているのかを明確にします。今回の アンケート調査では、Ruby型検査システムの欠落部分の1つである型プ ロファイラを試作しました。タイププロファイラは、既存のRubyプログ ラムを静的および動的に分析し、タイプ定義のスタブを作成します。その 設計について議論し、いくつかの実験結果を示す。
  • 50. 20k MRubydevices in production by@scalone 私はmRubyの完全なランタイムを変更しました.3年間は、推奨されてい ないとしても、mRubyを稼働させて20kマシンと支払いトランザクション の数十億ドルに達しました。私たちは多くの問題に直面しましたが、 mRubyを採用することでさらに大きな利益を得ました。この話は、次の ようなトピックに関するものです。ランタイムとアプリケーションの更 新/アップグレード / 通信構成とインテリジェンス / 支払いトランザ クションのセキュリティと暗号化 / 並行性 / CRubyとmRubyのコード 共有 / メモリ管理とリーク / オープンソース
  • 52. day3
  • 53. ParallelandThread-Safe RubyatHigh-Speed withTruffleRubyby@eregontp ArrayとHashはすべてのRubyプログラムで使用されています。しかし、 現在の実装では、それらを並列で使用すること(MRIのグローバルインタ プリタロック)やスレッドセーフの保証がない(JRubyは並行Array# <<の例外を発生させます)。 Concurrent :: Arrayからの concurrent-rubyはスレッドセーフですが、並列アクセスはできませ ん。この講演では、シングルスレッドのパフォーマンスを損なうことな く、並列アクセスを可能にしながら、ArrayとHashをスレッドセーフに するテクニックを示します。要するに、我々は、Rubyが数十のコアにス ケールアップできるようにしながら、グローバルロックの最も重要なス
  • 54. 10:50 - 11:30 » Grow and Shrink - Dynamically Extending the Ruby VM Stack by @sugiyama-k & @duerst » IRB Reboot: Modernize Implementation and Features by @aycabta » Ruby code from the stratosphere - SIAF, Sonic Pi, Petal by @kn1kn1
  • 55. Growand Shrink - DynamicallyExtendingthe RubyVM Stack by@sugiyama-k & @duerst 現在、MRI(Rubyのリファレンス実装)は各スレッドに1MBのスタック 領域を割り当てます。これは特に高度にマルチスレッドのアプリケーショ ンでは、明らかに準最適です。我々は、非常に小さいスタックサイズから 始め、必要なときにのみ各スタックを成長させることから、MRIのための 動的スタック拡張を首尾よく実装しました。現在のスタック構造に非常 に近いものと、スタック構造が異なるものの2つの異なる実装を示しま す。私たちの実装が安定していることをどのように確認したかについても 説明します。 Linuxでは、1スレッドあたりのメモリ削減量を30%まで 達成しています(Rubyの全ベンチマークで測定)の平均速度が6%向上
  • 56. IRB Reboot: Modernize Implementationand Features by@aycabta トークン情報と構文チェックによって継続するかどうかを示します。IRB の実装が近代化された後、私はIRBにいくつかの新しい機能を追加しまし た。 IRBは、RDoc機能をライブラリとしてインポートします。たとえ ば、メタプログラムされた名前空間のオートコンプリート、オートコンプ リートによるドキュメントの表示などがあります。
  • 57. Rubycode fromthe stratosphere - SIAF, Sonic Pi, Petalby@kn1kn1 昨年、SIAF2017のspace-moere(札幌国際芸術祭2017)というプロ ジェクトに参加しました。このプロジェクトでは、成層圏で生成された Sonic Piコードを受信し、それを使用してライブパフォーマンスを行い ました。ライブパフォーマンスのために、私はPetalという小さな言語 を作った。このセッションでは、次のトピックについて説明します。ス ペースモアプロジェクト / Petal / それに基づいたいくつかのプロ ジェクト(Sonic PiとTidal Cycles)
  • 58. 13:00 - 13:40 » The Method JIT Compiler for Ruby 2.6 by @k0kubun » Devly, a multi-service development environment by @drbrain & @ezkl » Reirb: Reborn Irb by @keiju
  • 59. The MethodJITCompiler for Ruby2.6 by @k0kubun Ruby 2.6がJITコンパイラに同梱されることをご存知ですか? JITコ ンパイラがRubyを高速化する理由を知っていますか?この講演では、驚 くほど短いERBコードとメソッドインライン化によるRubyの将来のパ フォーマンスによって、Rubyをより速く作る方法を紹介します。
  • 60. Devly,amulti-service development environmentby@drbrain & @ezkl システムだけで書くのは難しいです。多くの人がいる多くのシステムを構 築するのは難しいです。私たちの会社が成長するにつれ、私たちは使いや すい共有開発環境に多くのアプローチを試み、何がうまくいくのか、そう でないのかを学びました。私たちが学んだことをdevlyというツールに 取り入れました。 Devlyは、Fastlyでさまざまな言語で書かれた多く のサービスにまたがる製品を開発するために使用されています。ツールの 設計は、チームの働き方やコミュニケーションの方法によって導かれなけ ればならないことを学びました。 Devlyは、これらのニーズに対応する ために、開発者が自分の仕事に集中できるように、セルフサービス、制
  • 61. Reirb: Reborn Irb by@keiju Reirbは生まれ変わったirbで、対話型のRuby言語です。これは、Ruby の構文を持つ高機能シェル言語です。その機能は、ジョブコントロール、 マルチラインエディタ、スマートコンプリート、言語ナビゲーション機能 などです。Reirbを使用することで、誰もがもっと楽しいRubyライフを 楽しめるようになります。
  • 62. 13:50 - 14:30 » Build your own tools by @shugomaeda » Deep into Ruby Code Coverage by @malafortune » LuaJIT as a Ruby backend. by @take-cheeze
  • 64. Deepinto RubyCode Coverage by @malafortune コードカバレッジは、十分なテストがあれば簡単に測定できますが、ま だ多くの人がテストを使用していません。この講演では、有意義なコード カバレッジの利点と、DeepCoverという新しいツールを使用して落とし 穴のいくつかを回避する方法について解説します。
  • 66. 14:40 - 15:20 » How to get the dark power from ISeq by @youchan » High Performance GPU computing with Ruby by @prasun_anand » How happy they became with H2O/mruby, and the future of HTTP by @i110 & @kazuho
  • 67. Howto getthe dark power from ISeq by @youchan のiSeqを指定することは良いことかもしれませんし、悪いことかもしれ ません。いずれにせよ、その可能性を探求することは有用であろう。ス ピーカーはISeqの現在の仕様を文書化しようとしています。この話で は、私は3つの姿勢を話します。最初はISeqのハッキングに関心を持つ ほとんどの視聴者です。 2番目はISeqの潜在的なユーザーです。私は何 をすべきかヒントを示します。最後に、ISeqをRubyコアチームに文書化 する必要があるかどうかを確認します。
  • 68. High Performance GPU computingwith Ruby by@prasun_anand Rubyは非常に古く、成熟したプログラミングはScientific Computingにはあまり好ましくありません。主に大規模なデータセット を処理できないためです。私が作成したRbCUDAとArrayFireの宝石 は、卓越したパフォーマンスを持ち、巨大なデータセットを処理すること で現実世界の問題を処理できます。この講演では、RbcUDAと ArrayFireがコードを簡単に加速するのに役立つ方法を示したいと思い ます。
  • 69. Howhappytheybecamewith H2O/mruby,and the future ofHTTPby@i110 & @kazuho 厄介なWebサーバーの設定ファイルに苦しんでいますか?メンテナンス性 と柔軟性の欲求がありますが、パフォーマンスは心配ですか?この講演で は、大規模な写真共有サービスでnginxからH2Oへの実際の移行の話を 紹介し、mrubyスクリプティングがどのように設定を書いたり維持した りするのかを示しています。実際の設定例、直面した課題、ベンチマーク 結果の最終結果が表示されます。また、最近追加された多くの光沢のある 新機能やmrbgemを紹介します。あなたはH2Oとmrubyを使って進んだこ とをやり遂げることができます。講演では、H2拡張モジュールの標準 化、QUIC、そしてそれらがどのようにWebアプリケーションの開発と展
  • 70. 15:50 - 16:30 » Three Ruby performance projects by @vnmakarov » JRuby 9.2 and Rails 5.x by @tom_enebo » Design pattern for embedding mruby into middleware by @matsumotory
  • 71. Three Rubyperformance projects by @vnmakarov CRubyのような深刻なプログラムのパフォーマンスを改善する方法はた くさんあります。このプレゼンテーションでは、3つの異なるサイズのプ ロジェクトについて説明しています。1つのプロジェクトはかなり小さい です。これは、CRuby浮動小数点性能を改善するために、IEEE 754倍 精度数値の新しいCRuby内部表現を導入することです。 2つ目は、YARV 命令からRTLを生成し、解釈とJITコンパイルにRTLを使用する中規模プ ロジェクトです。 3番目は軽量JITを作成するための非常に野心的なプ ロジェクトです。このJITはMJITと一緒に階層1のJITコンパイラとし て、またはmrubyのための単一のJITとして使用できます。
  • 72. JRuby9.2and Rails 5.x by@tom_enebo JRuby 9.2がリリースされました。 9.2はRuby 2.5との互換性をサ ポートしており、Rails 5.xもうまく動作します。この講演では、 JRuby 9.2のさらに興味深い点についていくつか議論する予定です。パ フォーマンスの更新/Graal統合/IR instrリファクタリング/オブジェ クトシェーピング/フルエンコードのサポート(@@かいぎ|| = $ " .send:──ノノーºノ ')/改善されたWindowsのサポート/また、 JRubyでRails 5.xを実行している状態を更新する予定です。この講演 では、ActiveRecord-JDBCに加えた更新情報を紹介し、Discourse を稼働させる実際の使用例を示します。 JRubyの最新情報を入手!
  • 73. Design pattern for embedding mrubyinto middleware by@matsumotory 2012年にリリースされたmrubyと6年が経過しました。私は、mrubyを ngx_mrubyのような多くのミドルウェアに組み込み、ミドルウェアで拡 張性とパフォーマンスの両立を設計し実装しました。 mrubyに仕様や機 能のパッチを送ってきたので、仕様と背景だけでなく、ミドルウェアをミ ドルウェアに組み込むために私が知っているだけの設計と実装を共有した いと思います。このプレゼンテーションでは、インターネットサービスを サポートするミドルウェアとmrubyを接続し、それをデザインパターンと して導入するための設計と実装を一般化します。