Slide 1

Slide 1 text

Pragmatic Charty 名古屋 Ruby 会議 04 秒速亭⼆⼋四粁

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

内径 35 メートル !!

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

昨夜 ロース味噌かつ ⼿⽻先 天むす

Slide 9

Slide 9 text

今朝 串カツ エビフライ おいしいお茶

Slide 10

Slide 10 text

お茶 直前の発表で joker1007 さんはお茶を濁すって⾔ってたけど 今朝のは濁っていないきれいなお茶でした

Slide 11

Slide 11 text

Slide 12

Slide 12 text

茶 :tea:

Slide 13

Slide 13 text

...... !!!

Slide 14

Slide 14 text

"Charty"

Slide 15

Slide 15 text

(@amatsuda says...)

Slide 16

Slide 16 text

red-data-tools/charty Visualizing your data in Ruby

Slide 17

Slide 17 text

Visualizing your data in Ruby って たとえば

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

みたいなのが簡単に出⼒できちゃう

Slide 23

Slide 23 text

red-data-tools/charty You need to write very few lines of code for representing what you want to do. It lets you focus on your analysis of data, instead of plotting.

Slide 24

Slide 24 text

red-data-tools/charty 過去の発表 Charty を知ってほしいなあ。開発者が増えたらうれしいなあ。 RailsDM 2019 RubyKaigi 2019 - RubyData Workshop

Slide 25

Slide 25 text

red-data-tools/charty 今⽇の発表 Charty を知ってほしいなあ 名古屋でも開発者が増えたらうれしいなあ 実⽤的な話もしたい ← New!!

Slide 26

Slide 26 text

Charty を知ってほしいなあ について

Slide 27

Slide 27 text

Charty の基本情報 前提ぽいことを話すと⻑いので、ちょっと駆け⾜で説明します。 ここわからないんだけど!というのがあったら補⾜するので発表中で も声かけて頂いて⼤丈夫です! (今⽇は最後までいるので発表後に聞いてくれても良いです!)

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

最近の状況を踏まえて (RubyKaigi 2019 での発表以降、⾊々と開発が進んだので最新情報 を説明します)

Slide 30

Slide 30 text

Data Abstraction Layer Daru::DataFrame Numo::NArray NMatrix ActiveRecord benchmark_driver (Charty Adapter)

Slide 31

Slide 31 text

Plotting Abstraction Layer PyPlot (matplotlib.pyplot) Gruff rubyplot Google Charts ← New!! chart.js (experimental) (bokeh) 実装予定 (Plotly) よさそう。実装予定 GR Framework ( 再考。薄いラッパーを⽤意するか)

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Simple usage require 'charty' charty = Charty::Plotter.new(:pyplot) bar_plot = charty.bar do series [0,1,2,3,4], [10,40,20,90,70], label: "sample" end bar_plot.render("sample.png")

Slide 34

Slide 34 text

GitHub を⾒たり、デモをしながらい くつかのサンプルを紹介します 実はここにサンプルがいろいろ⼊っている。 https://github.com/red-data-tools/charty/tree/master/examples

Slide 35

Slide 35 text

名古屋でも開発者が増えたらうれしい なあ について

Slide 36

Slide 36 text

最近の Charty 開発のようすを紹介し ようと思います

Slide 37

Slide 37 text

RubyKaigi 2019 コード懇親会にて 3 ⼈からの合計 3 つの pull request がマージまでたどり着いた。 内 2 ⼈は OSS のコードで pull request ははじめだったとのこと これらは⾃分以外の⼈が開発をしたから分かったモノ達である。 Unstrict dependency version for bundler by tomog105 · Pull Request #4 · red-data-tools/charty Adds MacOS installation to README by Chinats · Pull Request #5 · red-data-tools/charty Fix typo in examples/daru.rb by kantarow · Pull Request #6 · red-data-tools/charty

Slide 38

Slide 38 text

RubyKaigi 2019 の翌⽇ After Hack にて 実際に使っている backend を⾒てもらえると助かる例: Gruff 現在は Pyplot がリファレンス実装的位置づけなので( プロット可能な グラフが⼀番多い。などが理由) 直接話しながら背景を踏まえて⼀緒に開発したら捗った例と⾔えそう add an instruction for Ubuntu + pyenv by hasumikin · Pull Request #8 · red-data-tools/charty Add label option to series at README by yaboojp · Pull Request #9 · red-data-tools/charty

Slide 39

Slide 39 text

RubyKaigi 以降、現在まで Add google charts backend by indigolain · Pull Request #11 · red-data-tools/charty Abstract plotter by kantarow · Pull Request #13 · red-data- tools/charty Use volume mount in Dockerfile.dev by kei-s · Pull Request #15 · red-data-tools/charty fix travis ci by katsyoshi · Pull Request #17 · red-data- tools/charty あとは、コミット権を持っている⼈の分は書いていないけれど、裏側 の設計、実装の整理が最近進⾏していたりします。

Slide 40

Slide 40 text

How to development

Slide 41

Slide 41 text

Development with Docker (@koic さんの " 海外Ruby カンファレンスへの踏み出し⽅" に学ぼう!) (yn-misaki さんの 開発環境のに関する話でも⾔及していましたね。) たとえば突然いつもの開発⽤マシンを失うことだってある。そんな時 にもすぐに開発再開が可能となるのは便利。 今ならこれだけで動かせます! $ bundle install $ docker build -f ./Dockerfile.dev -t charty-dev:0.1 . $ docker run -it -v ${PWD}:/charty -w /charty charty-dev:0.1 ./bin/console irb(main):001:0> Charty::VERSION => "0.1.4-dev"

Slide 42

Slide 42 text

最近はどんな⼈が、どういうことをや っているか、という話 Gruff bokeh Chart.js Plotly

Slide 43

Slide 43 text

Ruby Association Grant のはなし https://www.ruby.or.jp/en/news/20181106

Slide 44

Slide 44 text

実⽤的な話もしたい

Slide 45

Slide 45 text

Gruff が古い RMagick に依存している 件 先ほど話した、Charty が Gruff から他の何かへの移⾏パスになり得 るという話。 ( もし話していなかったら、ここで話します)

Slide 46

Slide 46 text

ActiveRecord との組み合わせ image ファイルの場合はまあ、Gruff を置き換えるだけという感じ JavaScript ライブラリと組み合わせた場合はどう? デモをします Chart.js の場合、pan とか、pinch in, out をするために hammber.js に依存している辺りがちょっと気になっている。 react だったり、他の何らかの javascript のライブラリと組み合わ せた時⼤丈夫なもの? まだ調べられていない。知っている⽅がいたら教えてほしいで す! こちらはまだ実装が無いのですが、bokeh.js や、plotly の⽅が本 命。という感じはしています。

Slide 47

Slide 47 text

再びバックエンドの切り替えが楽とい う話 それらが後にバックエンドとして実装されたら、バックエンドを簡 単に切り替えればそのまま使えるというのも Charty のメリット まだしていなかったら、Plotly のおもしろそうな機能の話

Slide 48

Slide 48 text

284km/benchmark_driver-output- charty $ be benchmark-driver examples/parse.yaml -o charty

Slide 49

Slide 49 text

red-datasets を⽤いての例 デモしながら説明します!

Slide 50

Slide 50 text

Future Plans 実⽤的な例を⽰そうと思った時、例えば他の⾔語やライブラリのサ ンプルと同様のデータセットを red-datasets に追加して、同様の こういうことはカバーしています。という⾒せ⽅ができると説得⼒ がありそう。とここ最近考えるようになりました。 最近 Charty の interface を変えているせいで、rubydown との連携 が壊れていると思う。直す。(スミマセン Charty を使えそうなところ ( 使うメリットがある部分で使っていく) Charty を導⼊したいとか、既存のグラフライブラリから置き換え たい。気になる。などありましたら是⾮気軽に声をかけてください

Slide 51

Slide 51 text

こう書く⽅向に変更しようと現在考えている foo = Foo.where(...) plot = Charty.bar(:price, :sales, foo, plotter: :google_chart) plot.render

Slide 52

Slide 52 text

Practicality and Continuity ⼿元のブランチで実はあるリポジトリの gruff を Charty にほぼ置 き換えたやつがある。 少しづつ試してみて、いけそうな段階に達したら切り替えようかと

Slide 53

Slide 53 text

Join us! Red Data Tools: https://red-data-tools.github.io/ 次は 6/11( ⽕) OSS Gate 東京ミートアップ for Red Data Tools in Speee オンラインのコミュニケーションはこちら! red-data-tools/ja - Gitter