ishida

2013.02.05

[号外]Qiita 2 daysハッカソンに参加してきた

前回は芝居がかったエンジニアを募集していた石田です。今回は個人で参加したのですが、どちらかと言うと自分のブログより、このブログ向きな内容であるためこちらに書くことにしました。

Qiitaさん主催のハッカソンですね。2013年2月2日(土)〜2月3日(日) に かけて参加してきました。今回のテーマは「GitHub APIを使う」 + 「プログラマの問題を解決するサービス」でした。

GitHubについて

このブログを読んでいる方でGitHubがなんなのか分からない方はあまり居ないと思いますが、GItHubとは分散バージョン管理ツールGitのホスティングサービスですね。単にホスティングするだけではなくてソーシャルの要素を加えているのが特徴的です。「ソーシャルコーディング」を提唱しているのが有名です。多くのOSSのプロダクトがGitHub上で開発されています。個人的にはプログラマというカテゴリに特化して見た場合、最も本質的な意味での「SNS」なのではないかと思っています。GitHubは「つぶやき」であったり「日記」であったりと既存のSNSの類型だけではなく「その人の属する世界によって最適なSNSが有る」というのを体現しているように感じます。

多くの人がFacebookのアカウントの交換を名刺交換代りに行うようなノリで、プログラマがGitHubのアカウントの交換を行っているのを見掛けます。一部の界隈では「プログラマやっててGitHubのアカウントを持たないで許されるのは、小学生までだよね」というような時代が来ているのを感じています。と、感じながらも恥ずかしながら、どらかと言えばGitHubについては使ってはいるけど…… というレベルだった訳ですが、アライドアーキテクツのエンジニアが「ソーシャルと名の付くものを無視する訳にはいかない」ということで参加してきた という次第です。

ハッカソン

このブログを読んでいる方でハッカソンが分からないという人はあまり居ないと思いますが簡単に説明します。ハッカソンは「ハック + マラソン」を足した造語です。プログラマが缶詰になって一定期間の間に集中開発をするという修行のようなイベントですね。Qiitaさんのハッカソンではお題をその場で出されてからアイデア出しをして、その期間内にプロダクトを完成させるというタイプのものです。この記事を読んで「自分も参加したい!」と思った方はTwitterで@Qiita_jpをフォローしていると、開催予定がいち早く分かるのでフォローすると良いでしょう。

レポート

前置きが長くなりましたが本題に入ります。結論から言うと残念ながら入賞には届きませんでしたが大変楽しい経験をさせて頂きました。世の中にはすごいプログラマ…… というよりは、この場合で要求される能力は本来の意味のハッカーでしょうか? こんなにもすごいハッカーが、こんなにも沢山居るのだな…… と、気を引き締め直して自らを叩き直さなければ、このフィールドでは生き残ることが出来ないと感じました。それほどまでに今回出来上がったプロダクトは、どれもハッカソンらしいライブ感の有るプロダクトでありながらも、出来映えにについては「この期間にそこまで作ったのか!?」というような凄いものばかりでした。どのプロダクトも開発者の想いが伝わる作品だったのですが、その中でも僕にとって特に印象的だったモノをいくつか紹介しようと思います。

ソースコード中のTODOコメントをIssueに登録して、そのコメントが消えたらIssueをCLOSEする

まさにハック! 出来てみれば「むしろ、なんで今まで無かったの?」というモノ。「出来るまで誰も気付かないけど、出来てみれば無いことの方が不思議」という、まさにハックな着眼点と実現力に脱帽しました。きっと、このプログラムを公開して育てていくに辺り、言語別のコメント抽出用プラグインとかの開発が盛り上がることでしょう。これを見た時、その楽しそうな未来まで想像して完敗を悟りました。

GIG

GitHubをブログにしてしまう…… というプロダクト。GitHubでブログを管理するということを個人的にしている人は何人か見たことがありますが、それをサービスとして実装して、誰にでも利用出来るレベルまで落とし込むという実行力にびっくりしました。

GitLib

GItHubの中でメジャーなプロダクトはどれなのか? を探す検索エンジン。とても実用的であること、細かいところまで作り込んでいたことに感動しました。そして、ドメイン振ってサービスとしてリリースしてから威風堂々と発表している。その職人魂に惚れました。

Himagineについて

Himagineは僕のチームが作ったプロダクトです。コマンドは僕が、Web側は関根が作りました。コマンドについては僕のリポジトリに上げてあります。Web側は関根が良いタイミングで上げると思います。続報をお待ちください。

概要

「プログラマは問題が無ければ、プログラムを書けない」という問題を解決するためのプロダクトです。「シェルにhimaとか打ってるほど暇なら、GitHubでIssueを見つけてコード書けよ」というコマンドと「暇に任せてIssueをよく解決しているプログラマを見付けてGitHubでフォローしたりするWebアプリ」の2本から成るサービスです。なお、コマンドはPerl、WebはPythonのDjangoで実装しています。

課題

・コマンドの検索が遅過ぎるので実用に耐えない

・「hima create時のcloneした後にエディタを立ち上げ、逃げる口実を与えない」機能が未実装

・hima close時にフォークしたリポジトリを削除出来ていない

・インストーラを作らないと、普通に動かせない

・コマンドが「WIndows? 知らね」な実装が多い

・どこからでも見える場所にWebが稼動していないので、どこでも動く訳ではない

結び

本当に楽しい経験でした。次回以降も参加してきたいと思いました。こんなにも素晴しいハッカソンを提供してくれたQiitaさん、本当にありがとうございました。もし、この記事を読んで参加してみようと思った方は、是非、ハッカソンの会場で会いましょう。アライドアーキテクツではハッカソンが大好きなエンジニアを募集しています。(いつもの安易な採用オチではなくて、どちらかと言うと真面目に)