こんばんは,うどん大 情報系 院2年の@hico_horiuchiです.
この記事はesa Advent Calendar 2015の15日目です.
研究室でesa.ioを使おうとしたのですが,諸々の理由で使えなかったトノコト.
結局,esa.ioの機能を真似たクローンを内製してるという話です.
合わせて,研究室で内製することの厳しさも話せればと思います.
esa.ioとのデアイ
esa.ioを知ったのは,他の研究室の友達の紹介でした.
第一印象は「ステキなデザインだなぁ」でした.
当時はβのチーム募集をしている最中だったと思います.
うちの先生は寛容な方で,試してみたいと言ったら二つ返事でOK.
研究室の名前でチーム申請を出して,有料化までの数ヶ月利用していました.
具体的には,有志数人で週1のゼミの週報を書くのに使っていました.
esa.ioを使うまでの週報はと言うと,以下のような感じでした.
- フォーマット自由 (最低限の必要事項あり)
- PDF等でファイルサーバにアップロード
- ファイルサーバ内のディレクトリ構成も学生毎にバラバラ
このままだと,全文検索も無く,本人以外は編集も出来ない….
報告の粒度もバラバラで個人差も大きいので,どうしようかと思っていた次第でした.
研究室で使えなかった理由
単純に「Webサービスの利用料金を研究費で出すのが難しい」トノコトでした.
他にも,先生が心配していたことが幾つかありました.
- サービスの継続性・セキュリティは大丈夫か
- 手元へのバックアップは可能か
- ゼミ生全員が問題無く使いこなせるか
(1)については,研究室のサーバに無造作に保管するより安全だろう.
(2)と(3)も大丈夫だろうと思ったのですが,残念ながら有料化の前に利用停止となりました.
esa.ioクローン「書庫」
esa.ioの継続利用が厳しいと分かった時から,1人でクローンの開発を開始しました.
(esa.ioの利用如何に関わらず,週報の運用を何とかしたい.)
実装にはRuby on Railsを使いました.
研究室にRubyistが多かったこと,所属するSLPで活発に使われていることが理由です.
クローンの開発に当たり,重視したのは2つです.
- テンプレート機能でフォーマットを統一可能
- WIPで「ゼミ前夜にまとめて書く」を防止
ソースコードはGitHubで,研究室のOrganizationとして公開しています.
テンプレート機能はこんな感じで,WebSocketで情報をやり取りしています.
他にも,独自機能として,週報の「活動概要」から議事録を作る機能もあります.
(ゼミの出席者と報告概要をメーリスに流す慣習があったため.)
ちなみに,ドキュメントを保存するとpublic/
以下に書き出されます.
このディレクトリはファイルサーバにリンクしており,Sambaで見れるようになっています.
(ディレクトリ構成はドキュメントのタイトル?カテゴリ?に従います.)
これは,私の卒業後にサービスが停止してもドキュメントを見れるようにとの配慮です.
利用開始から1年弱ですが,現在は研究室のほぼ全員が利用しています.
研究室内外から幾つかプルリクも貰ったような気がします.
研究室内製のキビシサ
こんな記事を書いておいてアレですが,年内に書庫を捨てようと思っています.
卒業を数ヶ月後に控え,やはり研究室で内製するのは厳しかったかなという感じです.
- Ruby・Railsのバージョンアップに追従できるか
- バグフィックス・バックアップ・サービス監視等の運用を継続できるか
- 学生の入れ替わりが激しく技術の継承が困難
- 配属される学生の技術レベル・モチベーションのバラツキ
幸運なことに今年配属された3年生は皆モチベーションが高く,Rails経験者も居ます.
今後数年は安泰かなと思いますが,その後も継続して利用できるか,やはり不安が残ります.
(サービスが停止して負の遺産化,元の運用に戻る怖さ.)
ちなみに研究に必要な技術については,新人研修をやっています.
ここにRailsを含めるのも手ですが,どこまで教えるかなどが難しい所です.
まとめ・これから
esa.ioが使いたかったけど使えず,クローンを内製したけどそれも捨てたい話でした.
最近は開発系バイトの日報にesa.ioを使っていて,ゼミの週報も書いて書庫にコピペしています.
やはりesa.ioの使いやすさ・コンセプトは凄いなぁと実感しています.
今後は,GitHubのプライベートリポジトリのWikiに移行しようかと思っています.
(認証あり,差分が見れる,バックアップはgit pull
,継続性もOK.)
これからもesa.ioを応援しています! グッズ買います!
開発者のお二人にも,一度勉強会等でお会いしてみたいですね.