Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
202 lines (133 sloc) 10.3 KB

メンターのインターンシップメモ: 2013-06-17

1日目。以下を実施した。

  • 朝会について説明
  • 挨拶について説明
  • 昼食
  • 事前情報の補足
  • サンプルアプリケーションの大まかな仕様検討
  • EPUBから必要な情報を取得できるかを確認

朝会について説明

朝からでも来れるということなので、朝会も体験してもらうことにした。

クリアコードでは プロジェクトファシリテーション実践編:朝会ガイド(PDF) をベースとした朝会を実施している。時間は毎朝10:30から10分から15分くらい。

クリアコードがこの朝会ガイドを参考にしているのは各自が持っている情報を 短い時間で共有したいからである。クリアコードでは1つのプロジェクトにつき 1人または2-3人で担当している。そのため、社内では各自別々の作業をしてい ることがほとんどである。せっかく一緒の組織で仕事をしているので、必要な ときに素早く助け合えるようにしたい。そのため、各自の持っている情報を共 有したいと考えている。

前述のガイドからカスタマイズしている点は各自の報告内容に「昨日印象に残っ たコミット」を含めていること。つまり、報告内容は以下のものである。

  • 昨日やったこと
  • 昨日印象に残ったコミット
  • 今日やること
  • 問題点

クリアコードでは全員がお互いのコミットを見ている。コミットを見たときに 感じたことがあれば随時コメントしているが、コメントする程でもないささい なこともあったりする。そのように大小問わずコミットを見たときに感じたこ とを共有するために「昨日印象に残ったコミット」を報告するようにしている。

1日目なので、インターンには参加してもらうだけにした。これは実際にどのよ うにやっているかをみてもらうためである。報告は明日からやってみてもらう。

挨拶について説明

自分が社会人になったときはいろいろ暗黙のルールがわからなかったので、社 会人一般っぽいことでも説明することにしてみた。

クリアコードでは出社したら「おはようございます。」と挨拶をしている。

帰るときは「お先します。」と挨拶している。他の人が帰るときは「お疲れさ までした。」と声をかけている。

すでに知っているということだったので、説明しなくてもよかったかもしれない。

説明をすると、「自分ができていないから説明されているのでは?」と勘違い してしまうようなので、「できていないから説明するわけではなくて、一般的 な知識として知っておいた方がいいんじゃないかと思うので説明する」と最初 に前置きするとよさそう。

昼食

インターンシップ中はクリアコードのメンバーのだれかと一緒に昼食を食べに いき、昼食代はクリアコードから支給することにした。これは、せっかくの機 会なので、メンター以外の人もコミュニケーションをとる機会を増やすためで ある。

今日は須藤と南さんと食べた。

事前情報の補足

droonga関連の開発をするにあたり、事前情報として以下を伝えていた。

1. groonga関連

groongaを使ったシステムを作るのでgroongaに関する基本的な知識
はあった方が入りやすいと思います。細かいところはそんなに知ら
なくても、必要なときに聞けば大丈夫です。

1.1. groongaの特長

http://groonga.org/ja/docs/characteristic.html

groongaが強みとしている部分の紹介です。速くしようとしている
というのが伝われば十分です。

1.2. groongaの歴史

http://gihyo.jp/dev/clip/01/groonga/0001

今年の4月からgihyo.jpさんでgroonga連載をはじめたのですが、そ
こに書いたgroongaの紹介記事です。groongaの歴史がわかれば十分
です。

1.3. インストール方法

http://groonga.org/ja/docs/install/mac_os_x.html

ここにインストール方法が書いているので、実際にインストールし
てみてください。

1.3. チュートリアル

http://groonga.org/ja/docs/tutorial.html

groongaのチュートリアルです。実際にgroongaを使いながら説明し
ています。どのように使うかがなんとなくわかればいいです。細か
いところは必要なときに改めて説明します。

(ここがわかりにくいとかいう箇所があれば、フィードバックして
もらえるとチュートリアルを改良できて助かります。)

2. rroonga関連

groongaをRubyから使うライブラリがrroongaです。droongaは
rroongaを使っているので、droongaを開発していくときにrroonga
を使います。

2.1. rroongaの歴史

http://gihyo.jp/dev/clip/01/groonga/0005

groonga連載でのrroongaの紹介です。どこを頑張っているかがわか
れば十分です。

2.2. チュートリアル

http://ranguba.org/rroonga/ja/file.tutorial.html

rroongaのチュートリアルです。これも、Tonga
かがなんとなくわかれば十分です。

(これも、ここがわかりにくいとかいう箇所があれば、フィードバッ
クしてもらえるとチュートリアルを改良できて助かります。)

3. Padrino関連

PadrinoはRuby用のWebアプリケーションフレームワークです。
Railsだと覚えることが多いので、今回は、もっと小さなPadrinoを
使います。

droongaを使った小さなWebアプリケーションを作るために使います。

3.1. ガイド

http://jp.padrinorb.com/guides

たぶん、これを一通りやってみればPadrinoのことがわかるんじゃ
ないかと思います。(私はまだ読んでいません。すみません。。。)

これらを読んでみて、気になったところをフィードバックしてもらった。具体 的には以下の箇所。

groonga関連:

  • 4.4.3 インデックスがないのでエラーになる。 ← チュートリアルの順番を見直し。
  • 4.3.5 「内部表現は整数」と書いているのに入力や結果が小数になっていて不思議。 ← たしかに内部表現は32bit整数2つとなっている。1つが秒数でもう1つがマイクロ秒の値を保持している。外部表現は整数部に秒数、小数部にマイクロ秒の小数表現となっている。みたいなことをドキュメントに追記する。
  • 4.2.3.1 80番ポートで待つにはroot権限が必要なので、エラーになる。-dだとエラーメッセージもでないので余計わかりづらい。 ← sudo付きで実行するか、1024番以上のポートを使うようにドキュメントを変更する。
  • 4.10 これが先にあった方がわかりやすいんじゃないか。 ← 順番を見直す。

rroongaのチュートリアル関連:

  • @Comments@ のマークアップを直す。 ← チュートリアルを直す。

また、よくわからなかったところを聞いて補足した。具体的には以下の箇所。

rroongaのチュートリアル関連:

  • なんでrecord.keyとしないとitemがとれないかがわからない。 ← 結果テーブルという一時テーブルが作られるということを説明。ドキュメントにも書いた方がよさそう。
  • Commentsテーブルのスキーマを定義するときにtable.reference("item")でItemsテーブルの型に暗黙的になるのがわからない。 ← 暗黙的にどうなるかの説明をチュートリアルに書くか、リファレンスマニュアルに書いてリンクを張るのがよさそう。
  • addしたときにkey(URL)を指定したり、Recordを指定したりしてなんやねん。 ← castの仕組みを説明した。レコードを指定したときはそのままそのレコードのIDが保存され、違う型のオブジェクトを指定したときは自動でキャストしている、ということをチュートリアルに追記する。
  • match_targetの説明がない。 ← groongaのselectコマンドのmatch_columns相当であることを説明。追記するかリファレンスマニュアルに書いてリンクを張る。
  • match_targetのリファレンスマニュアルがない。 ← 書く。

とても役にたった。次のリリースに反映させたい。

サンプルアプリケーションの大まかな仕様検討

droongaの機能を拡張するにあたり、まずは、droongaを使ったサンプルアプリ ケーションを開発することにした。拡張した機能を実際に使い、使い勝手を確 認しながら開発していくためである。6月中の完成を目指す。

サンプルアプリケーションはEPUBを検索するWebアプリケーションとした。ただ し、droongaの開発が主な目的なので、サンプルアプリケーションは必要最小限 の機能だけ作ることにする。以下の機能のみを持つ。

  • 画面は1つ。検索フォームと検索結果を表示する画面である。
  • データの登録はコマンドラインから行う。
  • テンプレートエンジンはHAMLを使う。
  • スタイルシート作成にはSCSSを使う。
  • CSSフレームワークはTwitter Bootstrapを使う。

Webアプリケーションを作るための関連技術はいくつか知っているということな ので、Webの画面はサクッと作れそう。

EPUBから必要な情報を取得できるかを確認

EPUBからタイトル・著者名・本文を取得できるかを試した。 確認用のRubyスクリプトを作成 し、取得できることを確認した。

このスクリプトの整理は次の日にする。