いっしきまさひこBLOG

AI・機械学習関連、Web制作関連、プログラミング関連、旅行記録などなど。一色政彦。

ハッカソンとは(Hackathonとは)

itbizdic.jpgハッカソン(Hackathon:Hack-a-thon)とは、とある開発テーマの技術に興味のあるプログラマーたちが、会議室やソファーがある場所などにノートPC持参で集まり、みんなで一緒にソフトウェアをハックしまくって楽しみ、最後に開発したアプリケーションやサービスを参加者全員の前でプレゼンするという、いわばギークのためのお祭りイベントです。ハッカソンの期間はだいたい1日中が普通で、長ければ合宿などで数日から1週間もある場合があります。

ハッカソンという用語は、「Hack」と「Marathon」を合わせた造語で、米国で1999年あたりから使われ出し、まず OpenBSD が開いたイベントで使われ、次に Sun の JavaOne conference イベントで使われたそうです。その後、2000年に PHP の開発イベントで、2001年に FreeBSD、2002年に Apache と、徐々にさまざまなイベントで使われるようになりました。ちなみに、ハッカソンと同様のイベントの用語として、「CodeFest」(コードフェスト)や「Sprint」(スプリント)などがあります。ちなみに Google のカンファレンスでは「Code Lab」(コードラボ)と呼ばれています。

ハッカソンの意義は、単にハックしている時間にあるのではなく、多くの人々が一緒に、自分らがしたいことをしたいようにハックする「特別な時間」にあります。通常、参加者は興味テーマごとにいくつかのグループ(5人程度)に分かれて、各グループ内でアイデアを出し合いながら画期的なアプリケーションを作成したり、資料となる開発手順ドキュメントなどを見ながら黙々とサンプル アプリケーションを作ったりします。各グループ内で「ああだ」「こうだ」とやり合うことで、テーマ技術に対するおもしろい発見や気づきがもらえたり、これまで抱えていた疑問が解消したりと、1人でハックするだけの行為にはないメリットがあります。こうやってみんなで考えたものが、革新的なサービスやアプリケーションを開発するためのの新たなプロジェクトの誕生につながったりすることも考えられます。つまり「3人寄れば文殊の知恵」(Two heads are better than one.)というわけです。

日本でもここ最近ハッカソンが開かれて盛り上がる例が増えてきました。そのレポート記事へのリンクを以下に紹介します。

続きを読む

Google App Engine コード ラボ (Hackathon)レポート

Google Developer Day 2008本日の Google Developer Day 2008 Japan の午後は、Google App Engine コード ラボ (Hackathon)に参加しました。20~30名ぐらいの参加者がいました。

まず最初の30~60分が、課題の Google App Engine アプリケーションである「Wiki」のコード内容の説明でした。

 ・セッションで使った資料(A progressive example of developing a Wiki with Google App Engine)

その後、「残りの3時間で、この Wiki を拡張するか、独自の Google App Engine アプリケーションを構築せよ」とのことで、それぞれ個人で黙々と、もしくは数名で協力したりしながら、ときには Google 社員のアドバイスを受け、それぞれが思いのままにアプリケーションを開発しました。

そして、5時あたりから開発したアプリケーションのプレゼンを開始しました。プレゼンは希望者だけだったので8名ぐらいが発表していたと思います。次の写真はその風景です。

googledevday05.jpg

ちなみに僕は、独自アプリケーションの開発を選択しました。今回作成したのは、GData API(= Google のサービスからデータを取得、設定するためのAPI)を Google App Engine アプリケーション内で使うというもの。具体的には、Google カレンダ(Google Calendar)のイベント情報を Web ページにテキストで列挙し、またテキストでイベントを一括設定するというものです。しかし残念ながら 3 時間という時間制限のなかで、不慣れな Python 言語と GData API の活用とあって、一括設定まではすすみませんでした。しかしできたところまでをみんなの前でプレゼンさせてもらいました。質問もあり、興味を持ってもらえた人もいるようで良かったです。

今回作成したアプリケーションについてもう少し詳しく説明しましょう。

続きを読む

Google Developer Day 2008 Japan の風景

Google Developer Day 2008本日開催されたGoogle Developer Day 2008 Japan で撮影したいくかの写真を掲載します(画質が悪いですが……)。

googledevday00.jpg

朝一の5Fに置かれていた丸くてカラフルなイスです。みんな基調講演に行っているので人っ子一人いません。

googledevday01.jpg

その脇にあるショーケース。Googleをモチーフとしたいろんなオブジェが飾られています。

googledevday02.jpg

基調講演が始まる直前の風景。中央にカラフルな立方体が積み上げられていてGoogleらしい。

googledevday03.jpg

基調講演中の外でもこのような映像が流れておりのんびりと受けられます。

googledevday04.jpg

Google App Engineの次期機能

Google Developer Day 2008Google Developer Day 2008 で 12 時からあった「Google App Engine 概要」のセッションで、次に搭載を考えている機能がいくつか示されたので紹介します(※ネットでの情報収集により細かく修正しました)。

 ・日本の電話キャリア(docomo、AU)に国際SMSが送信されない件で、両企業とやり取りをしており、近々に対応できる見通し

 ・ほかの言語への対応(現時点で詳細は明らかにできない)

 ・追加容量の購入(……いまってまだ買えないんだっけ?!)

 ・大容量データのアップロード、ダウンロードのサポート(例えばビデオなどのデータらしい)

 ・オフライン処理(Gearsみたいな機能ということではなく、決めた時間にバッチ処理を走らせたりする機能みたい=「定刻にメールを送りたいという機能は実装できないなぁ」と考えていたのでこれはいいね)

まだプレリリース版であることを強調していました。でもできるだけ早く完成版を提供できるように努力するらしいです。

また、Web 開発を始めるときにはマシンや環境などいろいろな準備が必要で、そのハードルの高さが Web アプリを開発して展開しようとするときの妨げになっている。Google App Engine なら無料でスタートして気軽に Web 開発に踏み出せると言ってました。

Google Developer Day 2008 基調講演レポート

Google Developer Day 2008基調講演では『次世代Webに向けて ― クライアント、コネクティビティ、クラウド ― 』(メイン司会:及川氏)というタイトルでGoogleのビジョンやテクノロジの紹介がありました。特に目新しい発表はなかったです(まぁ、最近、Google I/Oがあったばかりなので、仕方ないとは思いますが……)。

googledevday03.jpg

収穫としては、「Google App Engine = Google のクラウドを活用するためのプラットフォーム」という言葉があり、Google App Engineの立ち位置がより明確になりました。

以下にその基調講演の内容を要約します。

続きを読む

Tech·Ed 2008 のセッション タイトル

teched2008.jpgMicrosoft の(すでに提供している)最新技術を扱う開発者向けのカンファレンス「Microsoft Tech·Ed 2008 Yokohama」が、2008年8月26日(火)~29日(金)の4日間、パシフィコ横浜で開催予定です。そのセッション内容が公開されているようなので紹介します。

Tech·Ed 2008 のテクニカル セッションのタイトル

セッションはジャンルごとに、次の6つの「トラック」(Track)に分けられています。

【トラック群】

Track 1 : 次世代プラットフォーム

Track 2 : 開発プラットフォームとユーザー エクスペリエンス

Track 3 : Office system とユニファイド コミュニケーション

Track 4 : 運用管理、セキュリティ、仮想化

Track 5 : アプリケーション プラットフォーム

Track 6 : モバイル & エンべデッド開発

このうち「Track 2 : 開発プラットフォームとユーザー エクスペリエンス」のセッション タイトルは以下のような感じ。

続きを読む

コード ラボを楽しもう!(Google Developer Day 2008)

Google Developer Day 2008Google Developer Day 2008 Japan では、「コード ラボ」セッションが開催されます。コード ラボ(Code Labo)とは、テーマとする技術に関心を持つセッション参加者がいくつかのグループ(5人程度)に分かれ、グループ内でアイデアを出し合いながら画期的なアプリケーションを作成したり、資料となる開発手順ドキュメントを見ながら黙々とサンプル アプリケーションを作ったりする自由形式のセッションで、最後に開発したアプリケーションをセッション参加者全員の前でプレゼンします。グループ内で「ああだ」「こうだ」とやり合うことで、テーマ技術に対するおもしろい発見や気づきがもらえたり、これまで抱えていた疑問が解消したりと、通常のセッションにはないメリットがあります。

このような形式のセッション(イベント)は、一般的には「ハッカソン」(Hackathon:Hack-a-thon:「Hack」と「Marathon」を合わせた造語)と呼ばれています。ちなみに僕は米国 Microsoft 開催の PDC もしくは TechEd か何かのカンファレンスで行われたハッカソンに一度参加したことがありますが(「コードを持って帰っていい」ということで USB メモリがプレゼントされました)、日本で開催されるTech・Edなどのカンファレンスではいままで一度もハッカソンは開かれていないと思います(ぜひやってみてほしいとは思いますが……)。

脱線しましたが、今回のGoogle Developer Day 2008 Japan では、次の3つのテクノロジをテーマとしたコード ラボが開かれます(※詳しくは「Google Developer Day 2008 セッション プログラム」を参照してください)。

続きを読む