Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Pragmatic Charty
Search
秒速284km
June 08, 2019
Programming
0
2.4k
Pragmatic Charty
名古屋 Ruby 会議 04
秒速284km
June 08, 2019
Tweet
Share
More Decks by 秒速284km
See All by 秒速284km
fukuoka_ruby_2019
284km
0
190
Rubyアソシエーション開発助成成果報告会
284km
0
2.2k
Charty - Visualize Real-world Data with Ruby
284km
1
2.5k
Charty - Visualizing your data in Ruby
284km
0
2.4k
.so にして色々な言語から便利にのっかろう
284km
0
77
Charty with Rails
284km
1
76
Charty (RubyGrant 2018)
284km
0
2.4k
Better CSV processing with Ruby 2.6
284km
0
96
Charty on Rails - Railsdm 2019
284km
3
2.2k
Other Decks in Programming
See All in Programming
業務でAIを使いたい話
hnw
0
210
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
460
AsyncSequenceとAsyncStreamのプロポーザルを全部読む!!
s_shimotori
1
180
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
840
CSC509 Lecture 08
javiergs
PRO
0
270
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
14
47k
pnpm に provenance のダウングレード を検出する PR を出してみた
ryo_manba
1
170
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
120
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
200
Kotlinで実装するCPU/GPU 「協調的」パフォーマンス管理
matuyuhi
0
110
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
250
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
0
340
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4k
Typedesign – Prime Four
hannesfritz
42
2.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
The Invisible Side of Design
smashingmag
302
51k
Why Our Code Smells
bkeepers
PRO
340
57k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Faster Mobile Websites
deanohume
310
31k
Writing Fast Ruby
sferik
630
62k
Transcript
Pragmatic Charty 名古屋 Ruby 会議 04 秒速亭⼆⼋四粁
None
None
None
None
内径 35 メートル !!
None
昨夜 ロース味噌かつ ⼿⽻先 天むす
今朝 串カツ エビフライ おいしいお茶
お茶 直前の発表で joker1007 さんはお茶を濁すって⾔ってたけど 今朝のは濁っていないきれいなお茶でした
茶
茶 :tea:
...... !!!
"Charty"
(@amatsuda says...)
red-data-tools/charty Visualizing your data in Ruby
Visualizing your data in Ruby って たとえば
None
None
None
None
みたいなのが簡単に出⼒できちゃう
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.
red-data-tools/charty 過去の発表 Charty を知ってほしいなあ。開発者が増えたらうれしいなあ。 RailsDM 2019 RubyKaigi 2019 - RubyData
Workshop
red-data-tools/charty 今⽇の発表 Charty を知ってほしいなあ 名古屋でも開発者が増えたらうれしいなあ 実⽤的な話もしたい ← New!!
Charty を知ってほしいなあ について
Charty の基本情報 前提ぽいことを話すと⻑いので、ちょっと駆け⾜で説明します。 ここわからないんだけど!というのがあったら補⾜するので発表中で も声かけて頂いて⼤丈夫です! (今⽇は最後までいるので発表後に聞いてくれても良いです!)
None
最近の状況を踏まえて (RubyKaigi 2019 での発表以降、⾊々と開発が進んだので最新情報 を説明します)
Data Abstraction Layer Daru::DataFrame Numo::NArray NMatrix ActiveRecord benchmark_driver (Charty Adapter)
Plotting Abstraction Layer PyPlot (matplotlib.pyplot) Gruff rubyplot Google Charts ←
New!! chart.js (experimental) (bokeh) 実装予定 (Plotly) よさそう。実装予定 GR Framework ( 再考。薄いラッパーを⽤意するか)
None
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")
GitHub を⾒たり、デモをしながらい くつかのサンプルを紹介します 実はここにサンプルがいろいろ⼊っている。 https://github.com/red-data-tools/charty/tree/master/examples
名古屋でも開発者が増えたらうれしい なあ について
最近の Charty 開発のようすを紹介し ようと思います
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
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
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 あとは、コミット権を持っている⼈の分は書いていないけれど、裏側 の設計、実装の整理が最近進⾏していたりします。
How to development
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"
最近はどんな⼈が、どういうことをや っているか、という話 Gruff bokeh Chart.js Plotly
Ruby Association Grant のはなし https://www.ruby.or.jp/en/news/20181106
実⽤的な話もしたい
Gruff が古い RMagick に依存している 件 先ほど話した、Charty が Gruff から他の何かへの移⾏パスになり得 るという話。
( もし話していなかったら、ここで話します)
ActiveRecord との組み合わせ image ファイルの場合はまあ、Gruff を置き換えるだけという感じ JavaScript ライブラリと組み合わせた場合はどう? デモをします Chart.js の場合、pan
とか、pinch in, out をするために hammber.js に依存している辺りがちょっと気になっている。 react だったり、他の何らかの javascript のライブラリと組み合わ せた時⼤丈夫なもの? まだ調べられていない。知っている⽅がいたら教えてほしいで す! こちらはまだ実装が無いのですが、bokeh.js や、plotly の⽅が本 命。という感じはしています。
再びバックエンドの切り替えが楽とい う話 それらが後にバックエンドとして実装されたら、バックエンドを簡 単に切り替えればそのまま使えるというのも Charty のメリット まだしていなかったら、Plotly のおもしろそうな機能の話
284km/benchmark_driver-output- charty $ be benchmark-driver examples/parse.yaml -o charty
red-datasets を⽤いての例 デモしながら説明します!
Future Plans 実⽤的な例を⽰そうと思った時、例えば他の⾔語やライブラリのサ ンプルと同様のデータセットを red-datasets に追加して、同様の こういうことはカバーしています。という⾒せ⽅ができると説得⼒ がありそう。とここ最近考えるようになりました。 最近 Charty
の interface を変えているせいで、rubydown との連携 が壊れていると思う。直す。(スミマセン Charty を使えそうなところ ( 使うメリットがある部分で使っていく) Charty を導⼊したいとか、既存のグラフライブラリから置き換え たい。気になる。などありましたら是⾮気軽に声をかけてください
こう書く⽅向に変更しようと現在考えている foo = Foo.where(...) plot = Charty.bar(:price, :sales, foo, plotter:
:google_chart) plot.render
Practicality and Continuity ⼿元のブランチで実はあるリポジトリの gruff を Charty にほぼ置 き換えたやつがある。 少しづつ試してみて、いけそうな段階に達したら切り替えようかと
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