いっしきまさひこBLOG

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

「関連記事」を自動生成するサービス

relatedarticlesicon.gifWebサイトの価値を計る指標として「直帰率」(=1ページ見ただけでサイトを離れる閲覧者の確率)がありますが、実際にWebサイトの訪問者に次々とページを読んでもらうには、自サイト内のほかのページへの誘導が欠かせません。そこで使われるのが「関連記事」の一覧です。

関連記事の一覧とは、現在のページに関連性の高いページへのリンクが一覧表示されるものです。検索エンジンなどから「この情報を知りたい」という明確な目的を持ってやって来た閲覧者に、まさにその目的に関連する記事の一覧が提示されることになり、閲覧者にとっても有益で、サイトで情報を公開する人にとっても(PV面で)良い手法だと思います。

このような関連記事は手動で作成することも可能ですが、労力を省くために機械で自動生成するサービスがいくつかあります。

そこで、現在、世に出ている「関連記事生成サービス」をいくつか紹介します。

続きを読む

メソッドのシグネチャ(signature)とメソッドの構文(syntax)の違い

signature syntaxメソッドの「シグネチャ」(signature)という用語は、メソッドの定義を示す際によく使われる用語ですが、厳密な意味を考えると、この用語を使用する際には注意を要します。シグネチャは、プログラミング言語設計の用語で、言語ごとに明確な意味が定義されているからです。その意味を正しく把握したうえで「シグネチャ」という用語を使う必要があるのです。

一方の「構文」(syntax)という用語は、より汎用的な意味で使われます。単に「ソース コード上にどのように文字が配列されているか」という表記方法を表しているだけなので、プログラミング言語ごとに意味合いが異なるわけではありません。

従って、無難にメソッドの定義について言及したい場合は、「メソッド構文」という用語を使った方がよいと思います。

以下ではメソッドの「シグネチャ」についてもう少し詳しく解説しましょう。

続きを読む

ハッカソンとは(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の立ち位置がより明確になりました。

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

続きを読む