先日、私たちは半年期のハッカソン:Carrot Wars 2018 をインスタカートで開催しました。
イベントを通してある事実、大きなギャップを知りました。今のネット上でハッカソンイベントの結果を簡単に(そして無料で)集計するサービスはありません。素敵な選択肢はありますが、料金はかなり高いです。しかも、ほとんど単一のイベントでしか対応できません。また月額課金制度も基本です。そして他の制限もあります。
最近人気のあるハッカソンがどのようなものかを考えると、そこには少なくともいくつかの選択肢があると思います。もちろん私たちはリサーチをしましたが、ニーズを満たすオプションを残念ながら見つけられませんでした。
この点に対して、私の共催者は私より現実を認識していました。「今はもうイベントの2日前です! もう直前です。一からアンケート用フォームを作る場合ではありません。もっと重要なことに集中するべきです」彼はそう言いました。
彼の言う通り、私は下記の方法でやってみました。
テクフリでフリーランス案件を探してみる個人的に一からアンケート用サイトを作るのが好きではありません。だから私はGoogle フォームの力をちょっと借りたいと思います。もし一気に大量の応募者に対応しなければならない場合、Google フォームはかなり役に立つと思います。Googleは良いUIを提供していますし、作る方法も驚くほど簡単です。
私が興味を持つのは”集計結果”です。私はおそらく、Googleシートに結果を出力するためにGoogleフォームを取得している可能性があります。しかし、私のExcel /シートは、私が望んだ結果を得るために必要な数学的表現を調整するのに十分強くはありませんでした。
それについて、私は数学的シート表現の代わりに単純にKotlinでスクリプトを書きました。それは私にとって自然な行為でした。さらにアンケートの結果を綺麗にプリントできました。
Kotlinを選んだ理由は二つ:私はAndroid開発者です、そしてInstacartでみんなさんはKotlinを愛用者です。面白いことにこのハッカソンを行う時ちょうどKotlinが新いバージョンをリリースした頃でした(Kotlin 1.2.50 )。
あなたがbashのようにターミナル・プロンプトでスクリプトを実行することについては非常に満足のいくものがあります。
bash syntaxの不快さと、Kotlin言語のすべての心地よさがなくてはなりません。
・参加者は五つのカテゴリーに参加できます。
・イベント当日は参加者にプロジェクトのリストを送ります。そして、参加者は各カテゴリーのベストスリーを選びます。
・Googleフォームはかなり使いやすいです。アンケートの結果を簡単にCVSフォーマットに移行できます。
・このKotlinスクリプトはCSVを取り込み、計算も行います。それぞれのカテゴリの結果をプリントします。
私が1押しのアドオンはformRangerというアドオンです。理由は一つ、このアドオンは自動的に資料の追加ができます。
これは私たちにとって役に立ちます。ハッカソンはいつもイベント直前に応募する方々が多くいます。そのためプロジェクトリストはいつも変動が多く、それに対し、アンケート用のフォームも連動しないといけません。(Instacartのハッカソンは五つのカテゴリーがあって、各カテゴリーは30件のプレゼンテーションがあります。それは合計150件のエントリーです。)どのようにして150件のエントリーを管理するのかがとても大事なこととなります。答えはformRanger です。たった一つのGoogleシートで全ての資料を管理できます。
そしてマッチング方法はこのようになります。プロジェクトは行で、順位は列になります(多肢選択法のグリッッドのようです)。あと一つとても重要なポイントは順位に対してレスポンスは一つしかできないという事です。そうでないと一つ以上のベストスリーが発生する場合もあります。
こちらのハイパーリンクから、Kotlin scriptの設定方法がわかります。
# install sdkman (if you haven’t already)
curl -s “https://get.sdkman.io” | bash
sdk install maven
sdk install kotlin
sdk install kscript
# alternatively with homebrew
brew install maven
brew install holgerbrandl/tap/kscript
Googleフォームであるレスポンスボタンを押すと、綺麗なCVSフォームを自動作成しますので、簡単にダンロードできます。Googleフォームはだいたい十分ですが、私はもう少し洗練された要素を付け加えたいです。例えば、各カテゴリー(結果)についてのweightingとfiltering です。こういうプログラムを使うと本当にいろんな可能性がでてきます。
流れは下記のようになります:
kscript carrot-wars-tabulate.kts ~/Downloads/star-wars-demo-results.csv
初回(スクリプトを初めて実行すると必要な依存関係を作成するので)は少し時間がかかりますが、ご了承ください。
実際はこうなります:
気に入らない人もいますが、でもこれは私のチョイスです
・ Demo Google voting form(自分の好きな選択肢を選んでください!)
・Sample CSV responses file (CSV 結果ファイルの見本です)
・Google sheetused topopulate above form (内容追加のためです)
・Source repofor Kotlin scriptthat tabulates and prints out the results
(Kotlin script用、フォーム作りと結果を出力する)
タイトル:Free hackathon vote tabulation using Google Forms & Kotlin
作者:Kaushik Gopal
原文URL:https://tech.instacart.com/free-hackathon-vote-tabulation-using-google-forms-kotlin-3c7b7080ea
テクフリでフリーランス案件を探してみる3つの質問に答えるだけで、フリーランスエンジニアとしての単価相場を算出します。 スキルやご経験にマッチする案件もあわせてご紹介いたしますので、気軽にご活用ください! ※単価相場の算出に個人情報の回答は必要ございません。