日常

ケ・セラ・セラ

Rubyアソシエーション開発助成成果報告会(2018年)を終えて

最近はすこし新しいことを始めたり、やることがたくさんあって、一時的に負荷の高い期間だなぁと思って過ごしています。もはや T シャツでは寒くなりました。風邪も引いたしそれも治ってきた頃です。

書かなきゃなーと思っていたのでだらだらと書いてみたら、すごく適当な感じになった気もするけど、内容は本当のことしか言っていないしこのまま公開します。

Charty.new( "Visualizing your data in Ruby" ) |> Grant |> RubyKaigi |> Latest |> render

というタイトルで成果報告をしました。

Grant のプロジェクトである Charty の開発の特徴的な部分として、Grant の期間を終えてその後も引き続きいい感じに継続することが出来たというのがあると思います。例えば RubyKaigi で発表の機会を得られたこと、発表後や、コード懇親会、AfterHack イベントなどを通じて Charty 開発者を増やせたこと、それは次の名古屋Ruby会議でも実行できて、その後 RubyConf Taiwan, RubyConfTH と、海外カンファレンスでも Charty を作った理由とか、今 Charty がある意味みたいなことなどを広めることができて開発者も増やせたりと、もちろん本当に多くの方々が色々なやり方で協力してくれたからこうして実現したのですが、僕が今年の時点で描くことができた開発者を増やすために有効そうなアクションは全部実行することができたんじゃないかなぁ。というのが自分の印象としては強いです。

それをタイトルにどう現そっかなと思って、なんとなく左から右に流れている風に見えるパイプラインオペレーターを用いました。開発が続く中での時間の経過と、その中での毎回の発表のたびに新しいなにかは絶対に盛り込み新しい発表をするぞとは決めてそうしていたのがこう表現されたのでしょう。スライドの冒頭にも書いたのですが、|> はその後 revert されており、タイトルを考えた当時の trunk では動作したものの現在の master では動かないタイトルとなりました。

発表内容としても、僕はずっと、何回も繰り返しているのに、なかなか Charty のことを伝える発表は難しいなぁとずっと思っていて、それでもまぁ、最初に発表したのは Grant の最終報告を終えたばかりの Railsdm 2019 だったのですが、幸いにもそれから半年ほどで計 6 回の発表機会を得ることができて、さすがに最後の方の RubyConfTH とかでは英語でも割とまとまった展開で話せるようになってはきました。というわけでこの成果報告のスライドは Charty の最初の開発の節目的なやつかなと思います。デモとかはスライドにあらわれていませんが。

引き続き Charty は楽しみな感じに開発が続くので、またどういう形かで成果を公開していくぞという感じで、Charty 開発者たちはコードを書いています。

そういう開発に興味のある方はこちらへどうぞ!

speee.connpass.com

speakerdeck.com

いつもは開発者を増やすための発表をするのでこういう紹介をすることがないんですが、僕はけっこう、仕事でも趣味のコードでも、なぜそれをやるか。というのは大事にしていて、と言ってもただ楽しいからだけでもよかったりもするんですが、Charty を作るにあたっては、るびま55号の mrkn さんの記事が腑に落ちるというか、僕にとって自然に作業と向き合うことができる事実だったように思います。僕はけっこう現実をそのまま認識できる方が動機になったりするかも。

ここまで過去数回の記事ではたしかボーナスステージ的に、次はなにについて書きます。とやってきましたがやっと次は未定です。 来年の準備をいくつかしていたり、最近、データ分析基盤を作るというのにそれなりに時間を費やして取り組んでいるのでそちらで得たこととか、なんかそういうのをいい感じに公開できるようにしたいなと思っています。

When I talked at the RUBYCONFTH 2019

I was a little late to write, I talked at the RUBYCONFTH 2019 (9/6 - 9/7).

rubyconfth.com

The title is "Charty - Visualize Real-world Data with Ruby".

speakerdeck.com

Continuing from the RubyConf Taiwan, Speee is also speaker sponsor. Thanks for supports.

This time it was an opportunity to talk about Charty in English a month after talked at Taiwan.

Here is a quick summary of what I have experienced:

Charty

  • Introducing the basic functions of Charty and the latest additions
  • Charty now supports JRuby through development in Thailand. And I was able to introduce it
  • It was always difficult for me to explain Charty. However, this time I was able to speak with a nice feeling
  • I was also able to talk about the improvement of the internal interface and the plan for the stable version

Language

  • Last time (RubyConf Taiwan), the standard for me was made, so I think I could do better this time
  • It was also an opportunity to learn a little bit of Thai language
  • There was a speaker dinner the day before and I had the opportunity to test my daily conversation in English
    • It made the standard for me now
    • I felt it would be a loss if I couldn't communicate in English a little more fluently

Achieved

  • I went to Thailand for the first time
  • Saw the Chao Phraya River
  • RUBYCONFTH is the first Ruby Conference in Bangkok, I am the first person who checked in the reception :)

Charty with JRuby

I was able to meet again in Thailand after fulfilling my promise with Charles in Taiwan :)

The code is here:

github.com

benchmark-driver/benchmark_driver-output-charty

and then, After RUBYCONTH, @k0kubun acted and benchmark-driver/benchmark_driver-output-charty: benchmark_driver plugin to render with Charty that can render with box plot was created. This is also thanks to RUBYCONFTH and k0kubun-san.

github.com

ruby/csv

I also got a very happy word. Really thanks.

thanks everyone. I look forward to seeing you again.

After my talk, so many people told me what they thought and I enjoyed it a lot. My English is inadequate and I want to improve it because I wanted to talked more and told better. There were a lot of nice people here, so it seems more fun to talk more freely in my English.

That's why I would like to continue writing Charty code and other code and improve my English so that I can meet again. I hope I can participate in RUBYCONFTH 2020.

RubyConf Taiwan 2019 is great

About a week has passed since RubyConf Taiwan 2019.

In a word, RubyConf Taiwan 2019 is great. I write down some of the events that were impressive.

Through this conference, I communicated with many people. And I wrote code with them. This is the most enjoyable experience for me.

For example these code:

Charty

I met Anuj for the first time in After Hack event. He said he was interested in Charty and then wrote and sent this code.

github.com

I was talking with him while writing a code. I also talked about Rabbit and kou. I hope he will meet kou if he visits Japan :)

Goby

Another case, I wrote goby code for the first time.

Stan is very kind. He guided me to my first bubble tea experience and also answered questions about the goby code. He also told me a lot of delicious food. So I appreciate very much.

So I thought it would be fun to send him a code at this opportunity. As a result, it was a good opportunity to know about goby, and the code I wrote was merged. I had a great time.

github.com

Pre-Party

This is not a code, but an impressive event for me.

At the pre-party, I talked a lot about Japan and Taiwan with Grace. I often couldn't communicate well in my English, but I thank her for not giving up communication. I should imitate her behavior. and I hope I improve my English :) This time I didn't go to 象山 that I was told, so I'm looking forward to going there next time.

After my presentation

By the way, my presentation is here. I talked about Charty, a visualization library in Ruby.

speakerdeck.com

I got some feedback after my talk. Thank you so much. The feedbacks makes me glad and encouraging. What impressed me was the words from @headius that developed JRuby.

There are currently no Java libraries in the Charty backends (Only supported Ruby, Python, JavaScript library, some language independent APIs), but I think it would be interesting to support them. I will try to implement in order.

Future things

Fortunately, I have a chance to talk about Charty in September at RubyConf Thailand 2019.

rubyconfth.com

By that time, we will finish updating the interface of Charty we are working on. And we will release the stable version.

Based on that, Next time, I would like to introduce Charty focusing on cases that can represent Real-world data with a more intuitive interface.

For a while I will focus on making Charty more usable. Like Seaborn, for example.

Enjoy your code!!

Red Data Tools

If you are interested in developing Charty and other libraries, how about writing code together? I'm also a member of Red Data Tools, I like the policy.

red-data-tools.github.io

Asakusa.rb

I think you can enjoy Asakusa.rb when you visit Japan :)

One last thing: Ruby Association Grant

While I was writing this article, Ruby Association Call For Grant Proposals 2019 is published. Charty is a project of Ruby Association Grant 2018. How about submitting if you are interested in it?

www.ruby.or.jp

名古屋Ruby会議04 と名古屋観光日記

6/7 (金) に名古屋へ行き、6/8 (土) に帰宅。さすがに一日では多くは回れないものの、大いに名古屋を楽しんで来ました。

今回は、これまでと継続しての目的 (上 2 つ) に加え、3 つ目のやつを加えて Pragmatic Charty というタイトルで発表しました。

  • Charty を知ってもらいたいなあ
  • (Charty に限らず) 一緒にコード書く人が増えたらうれしいなあ
  • そろそろ実用的な例を示していきたいなあ

speakerdeck.com

発表準備的には、色々考えたりちょっとした挑戦だったりしたわけですが、カッコいいタイトルにしたのでその名に届く内容をお届けできたかと言うと物足りない部分はあったなあと思います。 この点では、Real-world なデータで説明する。というのが次に発表するに当たってまず早いところ用意したいものだなと感じました。こういうことが出来ますというサンプル用のサンプルデータだとしても、それが現実のデータで、なんのためにどう整理されたデータが最終的に今ここで plot されて、こういう見方が出来るからこういうことが分かっちゃったりするんです。みたいにしないと、なんかふわっとしちゃうのだと思った。 なのでそれを用意して、引き続き必要な機能を加えたり、今月辺りで既存の実装の整理をひととおり終えて、その後インターフェイスを FIX してリリースして、サンプル集を意味のあるデータで置き換えて push して、ぐらいまではこの次一気に進めたいなとか考えています。実際に Charty が使われている例とかも、徐々に紹介できる状態にしていきたいところです。

今回に関しても、やっぱり一番嬉しかったのは、発表の後で Charty に興味があるんですけど。と声をかけてもらえたことです。名古屋Ruby会議04 をきっかけに ggplot2 の対応が進んだ話とかがその内表に出せたらいいですよねー。

まあ、やりたいことはたくさんあるのですが、ひとつずつなるべく速くなるべく楽をしながらやろうと思います。

で、そういえば名古屋と言えばにせれぶさんに伝えようと思っていたけれど結局伝え忘れてしまったなとさきほど思い出したことがあって、六本木のよく行っていたお店(地下の方です)の方からにせれぶさんに会ったらよろしく言っといて!と言われていたのでした。次に名古屋でにせれぶさんに会った時には今度こそ直接伝えようと思います。 あの内径 35m のギネス記録らしいすごいプラネタリウムなどは行きたいので、また来るほかないです。

以下は写真とか。次回は RubyConf Taiwana 2019 のことを書きたいわん。台湾は始めてなので楽しみわん。

2019.rubyconf.tw

RailsConf に初めて行った時の話

4/29 出発、5/6 帰宅。なスケジュールで、RailsConf 2019 に参加してきた。帰りの飛行機の中で文章を書くはずだったところ、色々とあってそうはいかず時間が経ってしまった。

RailsConf のことは書くに難しくて、色々あったのだけれどあまりここに書くことがないなぁという感じ。

行く前後の差分で、主に後の状態について書いてみる。

  • 実際に行って、実際に現地でいろいろと体験したこと
  • だから RailsConf を現実のこととした上で、僕が話したい人と会話することができる
  • ちょっと慣れた。まだ続くわけだし
  • お金が 50 万円ぐらい減った
  • こういう働き方もあるかー
  • とか、こういう選択肢も取れるんだ
  • とかいう発想は向こうで人と話してもらったもの
  • ミネアポリスでバスに乗ることができる
  • ミネアポリスでレンタル自転車に乗ることができる
  • ミシシッピ川に触ったことがある
  • 飛行機の乗り継ぎに間に合わない時のやり方をいくらか知った
  • この作者が、この実体か。といくらか紐付いた。
  • こういうこと考えているのか。とかも
  • 総合すると、楽しかったですね
  • 行ってよかった
  • 行ってよかったと言えるだけの得たものがあった
  • あらためて、RubyKaigi すごいと思ったり
  • 手荷物はもうできる限り預けない

書くにあたって、これらを詳しく説明することを諦めた。

より英語でのコミュニケーションがマシになると、より楽しめそうなのでそこは、モチベーションになっていて良いです。

そういえばなぜ行ったかという話を補足すると、(以前書いた気がするけれど)、yahonda さんと話してもう行くことは決まっていたので、実際に行ってきた感じです。

LT は、今回もできなかったわけですが進歩していて前回 (RubyConf) は 28 番目だったところ今回は 20 番目に名前を書き 19 人目まで順番が回ってきた。おしい。この調子で行くと次回は成功する。ちなみに今回は 11 番目の平野さんことカルパス氏が LT 成功していますね。

f:id:at284km:20190521130626j:plain
RailsConf 2019 LT

今回は自費だったのだけど、宿代は yahonda さんと折半したり、僕が一日長く残る都合で (そうするとなんと帰りの飛行機代が 10 万円ほど安くなった!! )、最終日の宿は、koic さんも RailsConf 2019 に参加していて、幸運なことに永和さんにまたしても宿スポンサーをして頂きました。本当にありがとうございます。

最後にこちらは、RailsConf 一日目に行われた Ruby Tuesday Meetup の様子で、これは Matt's Bar での写真です。

mattsbar.com

次はおそらく、名古屋 Ruby 会議 04 のことを書きます。

regional-gh.rubykaigi.org

RubyKaigi 2019 で発表しました日記

みなさんお疲れ様でした。今は飛行機の中ですのくだりで書き始められた形跡がありますが vim で書きかけのままもう木曜日でした。

blog を書くまでが RubyKaigi 。ということで、日記を書きます。

僕は 2 日目 14:20 からの枠で、須藤さんと CSV に関する発表を、2 日目 afternoon brake の直前の枠で、RubyGrant 2018 で開発した Charty に関する発表をしました。

今回の発表にあたっては、書いてきたコードはもうあるので、自分と、一緒に登壇する須藤さんと、聞きに来てくれた人達が楽しめて、あわよくば仲間が増えたらうれしいなーということを考えてやりました。

slide.rabbit-shocker.org

speakerdeck.com

vim で開きっぱなしのファイルにはなんか色々書いてあるけど、読んでも何言っているかよくわからない...。使える文章がまったくないので自分で書きますが、

なんだろう、closing で松田さんが言っていたと思うけれど、We code です。僕は前回の RubyKaigi からも幸いなことにコードを書き続けて生活してくることができました。これはラッキーだなと思っています。

福岡は非常においしい場所で、1 週間程度の滞在ではおよそ足りないという感じでした。良い場所を知ることができたし、また来たいですね。

で、来週は RailsConf に行ってきます。始めてです。次の月曜にはもう出発ですが、またそのことについてなにか書けたらよいなと思います。

Railsdm 2019 で Charty on Rails というタイトルで発表しました

みなさん Railsdm 2019 お疲れ様でした。

僕は 2 日目 (3/23) に、"Charty on Rails" というタイトルで発表しました。

Charty に関する発表をするのは今回がはじめてでした。そういうこともあって、伝えたいことがたくさんありました。

Charty は Rails アプリケーションを書くに通常必要な技術の領域に対して、扱うもの (データ構造、plotting library, ユースケースや前提知識) が少々ニッチです。

なにから話せば伝わりやすいだろう、30 min という枠の中で、自分の言いたいことはなんだろう。この場で何を伝えて、発表後に得ていたいもの、発表後になっていたらうれしい状態はなんだろう。みたいなことにいつも以上に悩んだなあということを今思います。

これらはスライドにも書いたのですが、結果的に、今回自分はこういう発表をしたいんだなということが分かりました。

  • 自分が前に進むための発表
  • 自分以外の前に進みたい人が前に進みやすくなる発表
  • 開発に参加する人が増える発表

Charty のことを紹介したいが一番強くて、Charty の開発の過程というのは、他の方にも再現性のある成長の 1 パターンだと認識できたので、そういう内容までを含めました。上手く説明できたかどうかはまた別ですが。

そして、30 min (発表)後、こうなっていたら嬉しいと考えていることが分かりました。

  • Charty って、こういうものなんだ! (知ってもらう)
  • この人 (たち) は、そういう活動をしているんだね! (知ってもらう)
  • 私も開発することに興味はあるから、 参加してみよう! (思ってもらう)

なので、発表後や懇親会で Charty について色々と質問をくれたり、中でも Red Data Tools 行きますと言ってくれたりしたことは嬉しい出来事でした。ありがとうございます。

そうそう、次回の Red Data Tools の開発の集まりは 4/9 (火) ですよ。4/9 っていうともう RubyKaigi 直前ですねえー。

speee.connpass.com

AMA で頂いた質問に回答しました。 issei126 さん質問ありがとうございました。

railsdm.herokuapp.com

質問

Charty は gruff や Rubyplot のラッパーライブラリという認識でよいですか? 直接それらを利用するのではなく、Charty を使うメリットはなんでしょうか?

回答

質問ありがとうございます。

  1. Data Abstraction Layer を用意したことにより、サポートしているデータ構造 (現在のところ Daru::DataFrame, Numo::NArray, NMatrix, ActiveRecord) であればどれでも同じように扱えること。

  2. Plotting Abstraction Layer を用意したことにより、サポートしている plotting library (現在のところ maplotlib, gruff, rubyplot) であればどれで統一されたひとつのインターフェースで扱えること。

  3. 1, 2 により、ユーザが使いたいデータ構造、Plotting library の組み合わせで自由に plot できること。

  4. Charty の用意している設定により、render メソッドを呼ぶだけで、"そこそこ良い感じ" の設定でグラフを描画できること (それぞれの plotting library で、きれいなレイアウトでグラフを出力したいとすると、細かなオプション指定を自分でする必要が生じます。その手間を省き、data plot のために時間を使うよりも、本来目的とするデータ解析に集中することができる状態になること) が、Charty を使うメリットです。 なので、手間をかけて詳細に plotting library のオプションを設定してでも、自分好みのきれいなグラフを出力したい。といった用途では、Charty を使わずに、直接自分の使いたい plotting library を使わなければ、やりたいことを表現できないことがあります。

この様な特徴を理解して Charty を使うとよいと思います。 また上記とは別に、 Charty がより多くのケースで便利に使える様に、引き続き改善を続けていきます。

幸運ではない出来事として、発表中に Mac がフリーズしてしまい、再起動のため発表時間が少なくなってしまいました。せっかく発表を聞きにきてくれたのにごめんなさい。Charty の開発という体験から伝えたいことがもう少しあったり、コードに触れる時間が無くなってしまいました。駆け足で飛ばしてしまった部分や、最後の方のまるっと現れなかった部分、言葉で説明出来なかった内容を文章をちょっとだけ加えて公開しました。

speakerdeck.com

参加者としても楽しみました。

Day 3 の時 ほどじゃないけれどいくらか写真を撮ったりしていた。

中でも金子さんの写真はかなりいい感じに撮れたと思うんですよ

treby さんありがとう!!

せりーぬさん、いそはたさん、りゅっくん、あんでぃ

僕は Speee の社員なのですが、今回 Railsdm 2019 のスポンサーの話を快く受けてくれたり、登壇や開催自体を喜んでくれたことが僕としてはかなり嬉しかったし励みになりました。

特に周りが無関心であっても自分がやりたいからやれはするんだけれど、社内で応援してくれる人がいると全然違いますよやっぱり。活動がしやすいし、モチベーションにもなります。

当日などはもっと多くの人に手伝ってもらったのですが、主に関わっていただいた方々には特に感謝しています。

せりーぬさんはめっちゃいい人で、とてもすごい人でたとえば、「(イベントの打ち合わせで) 松田さんと一回直接話した方が手っ取り早いのでは?今日 Asakusa.rb に行くと会えますが一度一緒に行きます?」「行きます!(即答)」 みたいな人で、なんらか活動している人が大切にしていることを理解することの大切さみたいなのを知っているんだなー。という感じの人で、めっちゃ応援してくれる。とてもすごい人。

いそはたさんは Railsdm の冊子や水のデザインなどをもりもり進めてくれたデザイナーの方で、実はこの作業で初めて僕は接点を持ちました。僕も案を出したりの辺りでちょっとだけ関わったんだけれど、目的や状況に応じて意味のあるものに具現化していく様子とか、さっと手を動かして作って、発注などの処理までやってしまう。考え方が枠にとらわれていなくて好きだし、作業の過程でずっとすごいなーと思っていた。色々と進めて頂いて本当にありがとうございます。

りゅっくん、あんでぃ。Speee のこととか、スポンサーとして伝えたいことを、限られた時間や、スペース、文字数の中には収まりきらないほどあるわけなのだけれど、それをどうしたら最大限伝えられるかとか、妥協せずに一番良いところを目指すという考え方、動き方がすごくて、登壇する側としてはとにかくありがたいし、僕は僕でやることちゃんとやろう。がんばろう。という気持ちになれました。ありがとうございます。

今後のこと

Charty に関する一回目の発表が悩みながらも今回できましたが、Charty の開発自体は続きます。より便利に使えるようにします。 今回を基準として、次回はもっと分かりやすく説明できるようにしたいですし、そうできるようなコードを書いて、発表技術の方も改善しないとなあ。ということを思っています。

今回初回なので、色々と詰め込みたくてどうしても話題が発散しがちになってしまったとも思います。機会があれば出来るように、Charty の技術要素のみに特化した発表の準備もしたいです。

そういうわけで、引き続きコードを書いてひとつずつ実現していこうと思います。

幸運にも、今年の RubyKaigi でも登壇することが出来るので、次はその場で良い成果を伝えられるように準備したいと思います。福岡でまた会いましょう。

rubykaigi.org