研究室でesa.ioを使えなかったのでクローン作ってる話

  • 48
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

こんばんは,うどん大 情報系 院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. ゼミ生全員が問題無く使いこなせるか

(1)については,研究室のサーバに無造作に保管するより安全だろう.
(2)と(3)も大丈夫だろうと思ったのですが,残念ながら有料化の前に利用停止となりました.

esa.ioクローン「書庫」

esa.ioの継続利用が厳しいと分かった時から,1人でクローンの開発を開始しました.
(esa.ioの利用如何に関わらず,週報の運用を何とかしたい.)
実装にはRuby on Railsを使いました.
研究室にRubyistが多かったこと,所属するSLPで活発に使われていることが理由です.

クローンの開発に当たり,重視したのは2つです.

  • テンプレート機能でフォーマットを統一可能
  • WIPで「ゼミ前夜にまとめて書く」を防止

ソースコードはGitHubで,研究室のOrganizationとして公開しています.

テンプレート機能はこんな感じで,WebSocketで情報をやり取りしています.

shoko_documents.gif

他にも,独自機能として,週報の「活動概要」から議事録を作る機能もあります.
(ゼミの出席者と報告概要をメーリスに流す慣習があったため.)

shoko_record.gif

ちなみに,ドキュメントを保存するとpublic/以下に書き出されます.
このディレクトリはファイルサーバにリンクしており,Sambaで見れるようになっています.
(ディレクトリ構成はドキュメントのタイトル?カテゴリ?に従います.)
これは,私の卒業後にサービスが停止してもドキュメントを見れるようにとの配慮です.

利用開始から1年弱ですが,現在は研究室のほぼ全員が利用しています.
研究室内外から幾つかプルリクも貰ったような気がします.

研究室内製のキビシサ

こんな記事を書いておいてアレですが,年内に書庫を捨てようと思っています.
卒業を数ヶ月後に控え,やはり研究室で内製するのは厳しかったかなという感じです.

  • Ruby・Railsのバージョンアップに追従できるか
  • バグフィックス・バックアップ・サービス監視等の運用を継続できるか
  • 学生の入れ替わりが激しく技術の継承が困難
  • 配属される学生の技術レベル・モチベーションのバラツキ

幸運なことに今年配属された3年生は皆モチベーションが高く,Rails経験者も居ます.
今後数年は安泰かなと思いますが,その後も継続して利用できるか,やはり不安が残ります.
(サービスが停止して負の遺産化,元の運用に戻る怖さ.)

ちなみに研究に必要な技術については,新人研修をやっています.
ここにRailsを含めるのも手ですが,どこまで教えるかなどが難しい所です.

まとめ・これから

esa.ioが使いたかったけど使えず,クローンを内製したけどそれも捨てたい話でした.
最近は開発系バイトの日報にesa.ioを使っていて,ゼミの週報も書いて書庫にコピペしています.
やはりesa.ioの使いやすさ・コンセプトは凄いなぁと実感しています.

今後は,GitHubのプライベートリポジトリのWikiに移行しようかと思っています.
(認証あり,差分が見れる,バックアップはgit pull,継続性もOK.)

これからもesa.ioを応援しています! グッズ買います!
開発者のお二人にも,一度勉強会等でお会いしてみたいですね.

この投稿は esa Advent Calendar 201515日目の記事です。