groonga / meetup

Repository for Groonga meetup
6 stars 0 forks source link

Groongaソースコード読書会(仮) #4

Closed kou closed 9 years ago

kou commented 9 years ago

https://twitter.com/noranuk0/status/579828683512287232

そういえば、先週末のgroonga talknizer talk でのgroonga内部のデータ構造の話を聞いて、groongaソースコード読書会的なものがあったらちょっと行ってみたいなーと思いました。

を実現できないか、というイベント。

TODOリスト:

kou commented 9 years ago

@noranuk0 さんを https://groonga.doorkeeper.jp/ の管理者に追加したので、イベントページは作成できるようになっているはずです!

noranuk0 commented 9 years ago

権限追加ありがとうございます。 こういったイベントの企画設営のお仕事って初めてなので、至らない点もあるかと思いますが 出来るところから順にやっていきたいと思います。よろしくお願いします。

kou commented 9 years ago

http://groonga.org/ja/blog/2015/03/26/groonga-source-code-read-call-for-contributors.html に会場提供などで協力してもらいないかというアナウンスを出しておきました!

協力してくれる人が現れるといいなぁ。

kou commented 9 years ago

こういったイベントの企画設営のお仕事って初めてなので、至らない点もあるかと思いますが 出来るところから順にやっていきたいと思います。よろしくお願いします。

私もソースコードを読むという内容のやつは初めてです! なので、さぐりさぐり、無理のない範囲で進めていきましょう!

わからないところはここで相談すればなんとかなると思います。

よろしくお願いします!

shogondo commented 9 years ago

弊社のオフィス(外苑前)をご提供できます! https://goo.gl/maps/FJywI 収容人数は最大30人(机を片付けて椅子のみにした場合)。 プロジェクター利用可能です。

僕もGroongaに以前から興味を持っていて、ソースコード読書会が開催されるなら是非参加したいと思っています!

kou commented 9 years ago

おぉ!ありがとうございます!

@noranuk0 さん、どう思いますか!?

noranuk0 commented 9 years ago

とても良いと思います。

ある程度の人数が入る場所のあて、こちらでは見つけるのはちょっと厳しいので、非常にありがたいです。

kou commented 9 years ago

では、 @shoutakenaka さんが提供してくれる会場を使わせてもらいましょう!よろしくお願いします!

(@shoutakenaka さんもこのリポジトリーへの書き込み権限を設定しました。)

とすると次は↓を詰めていけばよさそうな気がします。

noranuk0 commented 9 years ago

後、内容なのですが、

例えば、ありきたりですが ・コア機能のなにかの関連ソースを読んでみる。 ・機能拡張のやり方(トークナイザの追加の話とか)の話。 ・開発環境の話(開発者の方は普段どんな環境で開発、デバッグをすすめられているのか) 等、の内容が思いついました。

いかがでしょう。

kou commented 9 years ago

よさそうに思います! 最初はどれを選ぶのがよいでしょうねぇ。とっつきやすいやつを選ぶのがよいのかしら。

とっつきやすさとは。。。1回の開催で完結する規模、みたいな感じですかねぇ。

・コア機能のなにかの関連ソースを読んでみる。

は、範囲を調整すれば1回で完結する規模にはできそうな気がします。

・機能拡張のやり方(トークナイザの追加の話とか)の話。

は、1回だと厳しそうです。

・開発環境の話(開発者の方は普段どんな環境で開発、デバッグをすすめられているのか)

は、それだけだと時間が余っちゃいそうです。適宜紹介するみたいな方が向いている話題かもしれません。

↑はとっつきやすさでどれを選ぶのがよいか考えてみましたが、とっつきやすさ以外の観点もあると思います。

決め方はいろいろあるとは思いますが、まずは1つ話題を決めてやってみるのがいいのかも?と思いました!

kou commented 9 years ago

あ、 @shoutakenaka さんはどんな内容がいいなぁという希望はありますか?

shogondo commented 9 years ago

僕はコア機能に興味があるので、

範囲を調整すれば1回で完結する規模にはできそうな気がします

であれば、範囲を絞ってコア機能のソースを読む、というのがいいなぁと思います。

shogondo commented 9 years ago

ちなみに、弊社オフィスは外苑前駅のすぐ目の前の、NXB青山ビルの7Fです。 http://bbank.jp/overview

写真手前のラウンジスペースを使えます。

会場

naoa commented 9 years ago

私はそのうちクエリをがちゃがちゃしたいのでmrubyでの拡張機能の書き方が知りたいです!(調べてないだけ) まあ私の意見はあまり気にしなくてもいいです

kou commented 9 years ago

おぉ!とてもキレイなスペースですね! 机をとって椅子だけにしてしまうと各自ノートパソコンを開くのが大変になりそうなので、机は残したままがよさそうですね。

kou commented 9 years ago

僕はコア機能に興味があるので、

範囲を調整すれば1回で完結する規模にはできそうな気がします

であれば、範囲を絞ってコア機能のソースを読む、というのがいいなぁと思います。

この方向になるなら、どの機能にするかを考える必要がありますね。

ユーザーレベルの操作から紐付いている処理がイメージしやすくてよいかもしれません。たとえば、select --match_columns COLUMN --query QUERYしたときにどう転置索引を使ってマッチさせているか、とか。動かせるとデバッガーで追いながらソースを読めるので理解も進みそうです。

kou commented 9 years ago

私はそのうちクエリをがちゃがちゃしたいのでmrubyでの拡張機能の書き方が知りたいです!(調べてないだけ)

これは、コアの機能というより、少し上のレイヤーの機能の話題になりそうですね。コアの機能→少し上のレイヤーの機能→コアの機能→…と順番にやるのも全体像が見えやすくなってよいのかもしれませんね。

noranuk0 commented 9 years ago

ユーザーレベルの操作から紐付いている処理がイメージしやすくてよいかもしれません。 たとえば、select --match_columns COLUMN --query QUERYしたときにどう転置索引を使ってマッチさせているか、とか。動かせるとデバッガーで追いながらソースを読めるので理解も進みそうです。

なるほど、良い案と思います。 個人的には、インサート時に転置インデックスを作る部分とセットで見るのもよいかと思いましたが、1回の時間では厳しいですかね。

kou commented 9 years ago

個人的には、インサート時に転置インデックスを作る部分とセットで見るのもよいかと思いましたが、1回の時間では厳しいですかね。

そうですね。厳しそうな気がします。たぶん、最初はデバッガーがうまく動かない!とかあって手間取ったりすると思いますし。

ということで、1回目はまず「インサート時に転置インデックスを作る部分」をテーマにするのがよさそうに思いました。

これでよさそうなら↓に着手できそうです。

どうでしょう? > @noranuk0 @shoutakenaka

shogondo commented 9 years ago

+1 です。

noranuk0 commented 9 years ago

内容については良いと思います。

ちょっと一点あるのですが、

対象とする方のスペックとか、参加される方ができれば事前に準備しておいてほしいもの ってどんなものがあるでしょう?

例えば、groongaの内部に興味があって、C言語が普通に読める方とか 

用意しておいてほしいものとしては、環境については、たとえば groonga 最新ソース一式とか。デバッグできる環境は事前にどの程度まで準備してほしいとか。

どうでしょう?

kou commented 9 years ago

内容については良いと思います。

では、内容は「インサート時に転置インデックスを作る部分」で決定としましょう!

対象とする方のスペックとか、参加される方ができれば事前に準備しておいてほしいもの ってどんなものがあるでしょう?

例えば、groongaの内部に興味があって、C言語が普通に読める方とか 

難しいですねぇ。

まず、「groongaの内部に興味があって」は必須にしてよいと思います。興味がないと面白くないでしょうし。

「C言語が普通に読める」は「普通ってどのくらい?」問題があるので、「C言語でプログラムを書いたことがある人」または「書いたことはないけど他の言語ではプログラムを書いた経験はあって、C言語の文法は知っている人」くらいでどうでしょうか。

一回やってみて徐々に調整していくのが現実的なのかもしれません。

用意しておいてほしいものとしては、環境については、たとえば groonga 最新ソース一式とか。デバッグできる環境は事前にどの程度まで準備してほしいとか。

Debian GNU/Linuxで言えば↓相当のこと(typoあるかも)をやってあればすぐにソースコードを読んでいくところに入れそうな気はしますが、↓でつまづく人もいると思うので、最初はそこのサポートも必要なのかなぁと思っています。LinuxではなくOS X環境の人もいる場合は手順が変わりそうな気がします。たとえば、デバッガーはGDBではなく、LLDBを使わないといけない気がするので使い方が違いそうです。

% sudo apt-get install -V -y gdb autotools-dev zlib1g-dev ruby git build-essential pkg-config
% git clone --recursive https://github.com/groonga/groonga.git
% cd groonga
% ./autogen.sh
% ./configure --prefix=/tmp/local --enable-debug --with-ruby --enable-mruby
% make -j8 > /dev/null
% test/command/run-test.sh

こっちも、一回やってみて手順を確立できれば(ドキュメントにまとめるとか)次回以降は楽にできそうな気はします。

noranuk0 commented 9 years ago

一回やってみて徐々に調整していくのが現実的なのかもしれません。 確かにそうですね。

もうちょっとゆるめに、全文検索エンジンの中身に興味があって・・・な方を対象に、groongaの実装を例に~ みたいな感じでもよいかと思いました。

ebian GNU/Linuxで言えば↓相当のこと(typoあるかも)をやってあればすぐにソースコードを読んでいくところに入れそうな気はしますが、↓でつまづく人もいると思うので、 ・・・・  こっちも、一回やってみて手順を確立できれば(ドキュメントにまとめるとか)次回以降は楽にできそうな気はします。 確かにそうですね。 テスト用のテーブル追加等も合わせて手順化してしまうのがよさそうと思います。

あと、windows + cmake + visual studio express な環境でも大丈夫でしょうか? 3.0.x の頃にこれでソースを追っかけてみたことはあるのですが、現行でも問題ないようでしたら 統合開発環境に慣れている方なら、こういうののほうがおそらくやりやすいかなと思いました。

kou commented 9 years ago

もうちょっとゆるめに、全文検索エンジンの中身に興味があって・・・な方を対象に、groongaの実装を例に~ みたいな感じでもよいかと思いました。

それでもよいと思います!

あと、windows + cmake + visual studio express な環境でも大丈夫でしょうか? 3.0.x の頃にこれでソースを追っかけてみたことはあるのですが、現行でも問題ないようでしたら 統合開発環境に慣れている方なら、こういうののほうがおそらくやりやすいかなと思いました。

Visual Studio 2013以降であれば今でも大丈夫です!

AppVeyorというCIサービスでテストしているのでビルドできることは確認済みです。 https://ci.appveyor.com/project/groonga/groonga/history

noranuk0 commented 9 years ago

それでもよいと思います!

了解です!ではそんな感じにしてみましょう!

Visual Studio 2013以降であれば今でも大丈夫です!

おお、gdbあまり詳しくないので、これは個人的にも非常に嬉しいです

では、事前準備というか、お持ちいただきたいものとして、 使い慣れたノートPCをご持参いただく感じでしょうか。

gdbの導入、デバッガの設定とかはフォロします。 guiな環境使いたい場合、windowsだとvisual studio express 2013 でも大丈夫です。 これはできれば事前にインストールしてきてほしいかもです(ちょっと時間掛かった気がするので)。

という感じでどうでしょう?

kou commented 9 years ago

了解です!ではそんな感じにしてみましょう!

そうしましょう!

では、事前準備というか、お持ちいただきたいものとして、 使い慣れたノートPCをご持参いただく感じでしょうか。

そうですね。Doorkeeperでは参加者に質問することができる(使っているGroonga関連プロダクトは?というのがそれ)ので、環境を聞いておくとよい気がします!

gdbの導入、デバッガの設定とかはフォロします。 guiな環境使いたい場合、windowsだとvisual studio express 2013 でも大丈夫です。 これはできれば事前にインストールしてきてほしいかもです(ちょっと時間掛かった気がするので)。

という感じでどうでしょう?

いいと思います! Visual Studioはたしかにインストール済みのほうがよいですね!

https://www.visualstudio.com/ja-jp/downloads/download-visual-studio-vs を見るとVisual Studio Express 2013にもいろいろバージョンがあるみたいなんですが、デバッガーが付いているのはfor Windows Desktopですかねぇ。

このくらいの情報があるとイベントページを作成できそうでしょうか!?(ただし、開催日を除く) (@noranuk0 さんも @shoutakenaka さんも https://groonga.doorkeeper.jp/ の管理者権限を付与してあります。)

イベントページは https://manage.doorkeeper.jp/groups/groonga/events/new から作成できます。 https://manage.doorkeeper.jp/groups/groonga/events から過去のイベントを辿れて過去のイベントページのソースも見れるので参考にしてください。

ということで、次は開催日を決めるのがよさそうでしょうか!?

noranuk0 commented 9 years ago

ということで、次は開催日を決めるのがよさそうでしょうか!?

そうですね。開催日と大まかなタイムテーブルな感じでしょうか。 時期的には告知かから開催まで3~4週間くらいなのかなー、 という感覚なのですが大体そんなもんでしょうか?

もうちょい早めたほうが、とか、間隔開けたほうが、とか有りましたらご教授ください。

kou commented 9 years ago

時期的には告知かから開催まで3~4週間くらいなのかなー、 という感覚なのですが大体そんなもんでしょうか?

もうちょい早めたほうが、とか、間隔開けたほうが、とか有りましたらご教授ください。

そんなにたくさん人が集まる類のイベントではない(ただ話を聞くだけのイベントよりもだいぶ敷居が高そう)と思うので、今回は関係者(ここにコメントを書いている人たち)と会場の都合で決めていいんじゃないかと思います。興味のある人で都合があうなら参加してね、くらいのイメージです。

もしかしたら、日付を告知してみて「行きたかったけど都合が悪い」という声が聞こえたら再調整、でもいいかもしれません。

noranuk0 commented 9 years ago

では、4月13~17日あたりで、会場の都合がつく日でいったん調整という形でどうでしょう?

ここご覧になられていて、参加を考えている方で、 この日なら、この日はちょっと・・・という日付があればコメントいただく感じで。

shogondo commented 9 years ago

会場の空きは、今のところこんな感じです。

noranuk0 commented 9 years ago

@shoutakenaka さん、ありがとうございます!

では、一応13日で仮決めということでよいでしょうか?

あと、建物の入退館時間も含めて、利用可能なお時間帯も教えていただけますか。

もし、ご都合つかない方が出てきて、会場がまだい空いていれば9日or20日も検討ということで。

kou commented 9 years ago

私は13日は大丈夫ですー

noranuk0 commented 9 years ago

@shoutakenaka さん

あと、建物の入退館時間も含めて、利用可能なお時間帯も教えていただけますか。

↑と合わせて、もう一点ご確認事項です。 以前、机をどかした状態で30人程度とお伺いしましたが、机を残した状態では何人くらい入るでしょうか?

shogondo commented 9 years ago

@noranuk0 さん

建物の入退館時間も含めて、利用可能なお時間帯も教えていただけますか。

19時から23時まで使えます。

机を残した状態では何人くらい入るでしょうか?

20人くらいです。 以前添付した写真に写っている白いテーブルが7つあります。あのテーブルが2人でPCをおいて作業ができるくらいのサイズです。 その他にテーブル代わりに使っているビリヤード台が1つあって、これが6人くらいいけます。

noranuk0 commented 9 years ago

@shoutakenaka さん ありがとうございます。

では、 募集定員20人 

時間は 受付 19:00~ 開始 19:30~21:00 or 21:30頃まで ※ ソースの展開とか、デバッグ環境の準備などは、来た人から順次フォローしていく。

で、とりあえずイベントページ作成&告知な流れでいいでしょうか。

noranuk0 commented 9 years ago

後、当日は、どんな感じで進めてくのがいいでしょう。

この辺は、実際開発されている方々のご意見を伺いたいです。

kou commented 9 years ago

後、当日は、どんな感じで進めてくのがいいでしょう。

こんな感じでどうでしょうか!?

shogondo commented 9 years ago

@noranuk0 さん

時間調整できました。 受付 18時半〜 開始 19時〜 でも大丈夫です。

naoa commented 9 years ago

デバッグ環境準備する場合は、最適化オプション抜いてビルドできるようにしたほうがよさそうですね。ないとビルドだけで30分ぐらいかかりそうです。

http://qiita.com/groonga/items/24ea9b51537217b9f526

noranuk0 commented 9 years ago

@naoa さん

確かにそうですね。ステップ実行とか変数ウォッチがうまくできなくなる可能性が、的な弊害も出てきますし。

@shoutakenaka さん すみません、18:30受付開始だとちょっとぎりぎりかもです(僕が・・) なので、18:45分受付開始 19:15ごろから開始 という形で イベントページ作りますー

noranuk0 commented 9 years ago

イベントページを作成しました。

内容のご確認のうえ、追記、訂正等ありましたらお願いいたします。

@shoutakenaka さん 受け付け方法、会場での注意事項(飲食、インターネット接続環境、電源など?)ありましたら追記をお願いいたします。

https://groonga.doorkeeper.jp/

kou commented 9 years ago

あ、イベントページのURLはだしちゃっていいですよ。告知しなければどうせ気付かれないので。

ログインしていると↓の上の方に「イベント編集」というボタンがあるので、そこから内容を編集できます。 https://groonga.doorkeeper.jp/events/23042

shogondo commented 9 years ago

@noranuk0 さん

イベントページに入館と会場の設備について追記しました。

noranuk0 commented 9 years ago

@shoutakenaka さん

ありがとうございます!

他、特に何もなければ、公開したいと思いますがいかがでしょう。

後で、記載漏れ追記などありましたら適宜修正ということで。

kou commented 9 years ago

いいと思います!

noranuk0 commented 9 years ago

公開しました!

kou commented 9 years ago

ありがとうございます! 地図の下の説明文のどこかにも受付時間・開始時間を書いた方がいいかもしれないと思いました!ページの上の方に書いているのですが、薄めの字なので見逃しそうだと思いまして。。。

kou commented 9 years ago

groonga.org で告知しました! http://groonga.org/ja/blog/2015/04/01/groonga-source-code-read-announce.html

(TwitterとFacebookにも流しました。)

groonga.orgのソースは https://github.com/groonga/groonga.org/ にあって、ブログの記事を公開したいときは https://github.com/groonga/groonga.org/commit/da2f5326df9103b74d1ff1bee752334209be45fe のようにすればよいので、groonga.orgに告知やレポートなどをあげる場合はpull requestを送ってくれれば取り込みます!活用してやってください。

noranuk0 commented 9 years ago

@kou さん ありがとうございます!人、あつまるかなー

地図の下の説明文のどこかにも受付時間・開始時間を書いた方がいいかもしれないと思いました! ページの上の方に書いているのですが、薄めの字なので見逃しそうだと思いまして。。。

なるほど、確かにそうですね。後程加筆しておきます。

kou commented 9 years ago

@shoutakenaka 会場にホワイトボードってあったりしますか!?なかったら紙とペンを持っていったほうが図で書いて理解しやすくなるかなぁと思いまして。