最終更新時刻:2008年8月28日(木) 17時59分

6

「Google Code Search」は圧縮ファイルの中身まで探す

公開日時:
2007/12/24 22:27
著者:
kirifue

オタクな面ばかりが表に出るので誤解が多いのだが、本職はIT系技術屋だ。なので、日々コードと格闘している。今はPHPから離れ、かと言ってRubyまではたどり着けず、Perl辺りを使ってちょいとした仕事をこなしたり、JavaやJavascriptをいじくりまわしてWebアプリを開発したりしている。

なまじHTMLを平打ちするのが好きなばっかりに、このCNETブログではひどい目にあった。11月のリニューアル前に手入力したHTMLファイルが、リニューアル後軒並みレイアウト崩れ。と言っても、再編集しなければ崩れないのだが、カテゴリ分けするためには、どうしても編集画面を呼び出さなければならず。すると行末の<br>が勝手に外されてしまい、グチャグチャ状態に(泣)。調べたところ、<br>でなく<br />でないと認識されないようだ。そんなこんなで、いろいろな問題が噴出..まあ、間借りしている身としてはあまり文句は言えないのだが、CNET編集部さんにはしっかり要望は伝えておいた(具体案としては、エディタの仕様変更は置いといて、編集時に「WYSIWYG画面」か「コード編集画面」かを選択可にするだけ)。というわけで、チリポリと気長にカテゴリ分けを続けているのだが、未だに50もの過去記事が未分類のままである(半分は言い訳だけども)。

あ、いやいや、愚痴を言おうとしたのではなかった。
そんなゴリゴリとプログラムを書いている私のオススメのコード検索サービスが「Google Code Search」だ。何か調べたいコードがあるとする。その一部(インクルードファイル名とか関数名とか)を入力して検索すればOK。世界中の膨大な数のソースコードの中から、マッチしたコードを探し出してくれる。最近では「Apache FOP」の関数の使い方を調べるのに役立ったので、この例を紹介してみたい。

簡単な検索例

Google Code Search

PDFTranscoderクラスを使用して SVGファイルをPDFファイルに変換したいのだが、使用方法がよく分からない。そこで「Google Code Search」を一発。

  1. 「Google Code Search」で語句を入力して[ソースコードを検索]。
    "PDFTranscoder"と入力。

  2. 「ソースコード」一覧から目的のコードを見つける。
    最初のコードは「PDFTranscoderクラス」自体を記述しているので目的のコードではない。
    一番下の"government-grants.org/.../xmlgraphics/fop/fop-current-src.tar.gz - Apache - Java"が、Apacheのソースファイルなので適当かもしれない。
    Google Code Search1

  3. 「fop-current-src.tar.gz をさらに検索 ≫」のリンクをクリック。
    ファイル名を見ると、"fop-0.93/examples/embedding/java/embedding/ExampleSVG2PDF.java"が求めているコードのようなのでクリック。
    Google Code Search2

  4. コードが見つかった。
    Google Code Search2

コードの内容はともかくとして、このExampleファイルのある場所に注目したい。「fop-current-src.tar.gz」とある。つまり、圧縮ファイルの中にあるコードだ。Googleによると、アーカイブ (.tar.gz、.tar.bz2、.tar、.zip)、CVS リポジトリ、サブバージョン リポジトリなどから探し出してくれるという。もちろん、非公開のサイト(robots.txtの設定が必要)はクロールしない。

もっと便利な使用方法

2007/12/25追記
トップページの[ソースコード検索オプション]のリンクをクリックすると、詳細なオプションの設定が可能。

詳しくは「Google ソースコード検索よくある質問」へ。

  1. 正規表現
    POSIX 拡張正規表現をサポートしている。ただし、後方参照、照合要素、照合クラスはサポートされない。空白文字はバックスラッシュでエスケープするか、文字列を引用符で囲む。
    例えば関数名がはっきりと分からないといった場合でも、正規表現を使用することで「あたり」をつけることが可能となっている。

  2. 言語、ライセンス、パッケージ URL、ファイル名で絞り込める
    lang: 演算子 プログラミング言語で検索を絞り込む
    (例) lang:"c++"、-lang:java、lang:^(c|c#|c\+\+)$
    license: 演算子 ソフトウェア ライセンスで検索を絞り込む
    (例) license:apache、-license:gpl、license:bsd|mit
    package: 演算子 パッケージ URL で検索を絞り込む
    (例) package:"www.kernel.org"、package:\.tgz$
    file: 演算子 ファイル名で検索を絞り込む
    (例) file:include/linux/$、-file:\.cc$

検索できるコードの多くがオープンソースであり再利用が可能となっているが、中にはライセンスを明記していないものもある。利用時には気をつけたい。

CNETの記事によると、このサービスに関してのGoogleのスタンスは以下の通りだ。

Stocky氏は「検索できるコードの多くはオープンソースであり、再利用が可能だ。しかし、それが主要な使い方だとは思わない。むしろ、プログラミングの方法を習得するためのツールであり、オープンソースのソフトウェアを作成する際に、やり方が正しいかどうかを確認するためのツールだと考えている」と語った。

たとえ丸々コードを再利用しないにしても、プログラミング例があると無いのとでは開発スピードに雲泥の差がつく。あえて言うなら、これはインターネット上のfind、あるいは、grepコマンドのようなものだ。一度使うと病みつきになる「超便利な」ツールなのである。

CNET Japan 2006/10/05
グーグル、コード検索の新サービス「Google Code Search」を発表

※このエントリは CNET Japan ブロガーにより投稿されたものです。シーネットネットワークスジャパン および CNET Japan 編集部の見解・意向を示すものではありません。

このエントリーへのコメント

ブログにコメントするにはCNET_IDにログインしてください。

この記事に対するTrackBackのURL: 

このブログについて

ブロガープロフィール

アーカイブ

2008年8月
     12
3456789
10111213141516
17181920212223
24252627282930
31      

カテゴリ

ブログネットワーク

アルファブロガー

佐々木俊尚 ジャーナリストの視点グーグルはストビューで「よそ者」化する
佐々木俊尚 ジャーナリストの視点
クロサカタツヤの情報通信インサイト北京オリンピック
クロサカタツヤの情報通信インサイト
江島健太郎 / Kenn's Clairvoyance新サービスをローンチしました
江島健太郎 / Kenn's Clairvoyance
村上敬亮 情報産業の未来図コンテンツ市場14兆円の中身と行方
村上敬亮 情報産業の未来図
末吉隆彦 ロケーションウェアの「空」と「実」場所・空間を増幅!?「ロケーション・アンプ」
末吉隆彦 ロケーションウェアの「空」と「実」
鈴木健の天命反転生活日記パラレルワールドとしての電脳コイル
鈴木健の天命反転生活日記

読者ブロガー

企画特集

仮想化環境で求められるストレージの要件仮想化環境で求められるストレージの要件
それに応えるNetAppの実力とは?
DELLが掲げる「新・仮想化アセスメントサービス」DELLが掲げる「新・仮想化アセスメントサービス」
〜企業システムの仮想化環境の構築を支援〜

新着コメント

文章まずくてゴメン。訂正。 アンダートンという客(目(おそらく虹彩パタ......
コンバージョンとレレバンシー今昔
投稿者:ルート134
> ある日突然ひっくり返った場合(上層部からのお達しなど)の手戻り > 工数......
新しい開発手法:初期にユーザインターフェースを完璧に作れば、最高の要件定義になる 2
投稿者:生島勘富
アンダートンという客(目で個人を判別)が客が施設内に入ってきたら、すかさ......
コンバージョンとレレバンシー今昔
投稿者:ルート134
自分の知らない町に行ってぶらぶら歩いてみてまわるのはどうなの? まあ確か......
グーグルはストビューで「よそ者」化する
投稿者:p_man
渋谷のスクランブル交差点そばにある 地下道への入り口の屋根にあるハイビジ......
グーグルはストビューで「よそ者」化する
投稿者:長尾彰一

ブログブックマーク

ブログネットワークとは?

CNET Japan ブログネットワークは、元はCNET Japanの一読者であった読者ブロガーと、編集部の依頼により執筆されているアルファブロガーたちが、ブログを通じてオンタイムに批評や意見を発信する場である「オピニオンプレイス」、また、オピニオンを交換するブロガーたちが集うソサエティです。

広い視野と鋭い目を持ったブロガーたちが、今日のIT業界や製品に対するビジョンや見解について日々熱く語っています。

あなたもブログを書いてみませんか?

CNET Japanやその他サイトが提供するITニュースやコンテンツへの意見や分析、 ビジネスやテクノロジーに対するビジョンや見解について語っていただける方を 募集しています。ご応募はこちらから

ブログの投稿・管理

ブログの投稿はこちらから(※ブロガー専用)

ブログアワード2007開催決定!

今年最も活躍したブロガーを表彰します。詳細はこちらから

αマークって?

これは、CNET Japan 編集部の依頼に基づいて執筆されているCNET Japan アルファブロガーによるブログの印です。

Good!って?

CNET Japan ブログネットワーク内で拍手の代わりに使用する機能です。ブログを読んで、感激した・役に立ったなど、うれしいと思ったときにクリックしてください。多くGood!を獲得した記事は、より多くの人に読まれるように表示されます。

レビュー

[レビュー]高い信頼性を普通に使う地球に優しい電源ユニット--Antec EarthWattsシリーズ EA-650
“自作ユーザーは、電源ユニットに何を求めるのか?”出力なのか、安定性なのか、それとも機能性なのか?難し
今週の新製品総チェック:ノート、デスクトップ、UMPCまでPC秋モデルが続々
富士通、NEC、東芝などのPCメーカーから続々と新製品が登場した。ノートPC、デスクトップPCに加え、注目の
今週の新製品総チェック:薄さ13.9mmのサイバーショット登場!NEC「LaVie」はデザインモデルが
最薄部13.9mmのソニー「サイバーショット」、ニコンのGPS内蔵デジカメ「COOLPIX」など、機能性、デザイン性