オタクな面ばかりが表に出るので誤解が多いのだが、本職はIT系技術屋だ。なので、日々コードと格闘している。今はPHPから離れ、かと言ってRubyまではたどり着けず、Perl辺りを使ってちょいとした仕事をこなしたり、JavaやJavascriptをいじくりまわしてWebアプリを開発したりしている。
なまじHTMLを平打ちするのが好きなばっかりに、このCNETブログではひどい目にあった。11月のリニューアル前に手入力したHTMLファイルが、リニューアル後軒並みレイアウト崩れ。と言っても、再編集しなければ崩れないのだが、カテゴリ分けするためには、どうしても編集画面を呼び出さなければならず。すると行末の<br>が勝手に外されてしまい、グチャグチャ状態に(泣)。調べたところ、<br>でなく<br />でないと認識されないようだ。そんなこんなで、いろいろな問題が噴出..まあ、間借りしている身としてはあまり文句は言えないのだが、CNET編集部さんにはしっかり要望は伝えておいた(具体案としては、エディタの仕様変更は置いといて、編集時に「WYSIWYG画面」か「コード編集画面」かを選択可にするだけ)。というわけで、チリポリと気長にカテゴリ分けを続けているのだが、未だに50もの過去記事が未分類のままである(半分は言い訳だけども)。
あ、いやいや、愚痴を言おうとしたのではなかった。
そんなゴリゴリとプログラムを書いている私のオススメのコード検索サービスが「Google Code Search」だ。何か調べたいコードがあるとする。その一部(インクルードファイル名とか関数名とか)を入力して検索すればOK。世界中の膨大な数のソースコードの中から、マッチしたコードを探し出してくれる。最近では「Apache FOP」の関数の使い方を調べるのに役立ったので、この例を紹介してみたい。
PDFTranscoderクラスを使用して SVGファイルをPDFファイルに変換したいのだが、使用方法がよく分からない。そこで「Google Code Search」を一発。
「Google Code Search」で語句を入力して[ソースコードを検索]。
"PDFTranscoder"と入力。
「ソースコード」一覧から目的のコードを見つける。
最初のコードは「PDFTranscoderクラス」自体を記述しているので目的のコードではない。
一番下の"government-grants.org/.../xmlgraphics/fop/fop-current-src.tar.gz - Apache - Java"が、Apacheのソースファイルなので適当かもしれない。
「fop-current-src.tar.gz をさらに検索 ≫」のリンクをクリック。
ファイル名を見ると、"fop-0.93/examples/embedding/java/embedding/ExampleSVG2PDF.java"が求めているコードのようなのでクリック。
コードの内容はともかくとして、このExampleファイルのある場所に注目したい。「fop-current-src.tar.gz」とある。つまり、圧縮ファイルの中にあるコードだ。Googleによると、アーカイブ (.tar.gz、.tar.bz2、.tar、.zip)、CVS リポジトリ、サブバージョン リポジトリなどから探し出してくれるという。もちろん、非公開のサイト(robots.txtの設定が必要)はクロールしない。
2007/12/25追記:
トップページの[ソースコード検索オプション]のリンクをクリックすると、詳細なオプションの設定が可能。
正規表現
POSIX 拡張正規表現をサポートしている。ただし、後方参照、照合要素、照合クラスはサポートされない。空白文字はバックスラッシュでエスケープするか、文字列を引用符で囲む。
例えば関数名がはっきりと分からないといった場合でも、正規表現を使用することで「あたり」をつけることが可能となっている。
言語、ライセンス、パッケージ 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 編集部の見解・意向を示すものではありません。
コンテンツ市場14兆円の中身と行方
原宿で野宿を含む15時間 - iPhone行列完全ドキュメント
Google ストリートビュー、約7割がプライバシー侵害に不安感
“時間軸”は次のキラーコンセプトになるか? 「タイムライン」サービスを考える
【再放送】著作権と2次創作と楽しみたいというデザイア
CNET Japan ブログネットワークの自分のブログのアクセス数一覧をGreasemonkeyで取得してみる
「Parallels Server 3.0 for Mac Build 2173.135959」リリース
詐欺じゃないのに詐欺のように見えてしまうNTT東日本とUSENの商法
一億総報告社会? 近所の噂話から全世界へ・・・
コンバージョンとレレバンシー今昔みんなのお題では、ブロガー同士で質問を出し合いそれに対する回答や意見を集めています。今日はどんな話題が盛り上がっているでしょう?
CNET Japan ブログネットワークは、元はCNET Japanの一読者であった読者ブロガーと、編集部の依頼により執筆されているアルファブロガーたちが、ブログを通じてオンタイムに批評や意見を発信する場である「オピニオンプレイス」、また、オピニオンを交換するブロガーたちが集うソサエティです。
広い視野と鋭い目を持ったブロガーたちが、今日のIT業界や製品に対するビジョンや見解について日々熱く語っています。
CNET Japanやその他サイトが提供するITニュースやコンテンツへの意見や分析、 ビジネスやテクノロジーに対するビジョンや見解について語っていただける方を 募集しています。ご応募はこちらから
ブログの投稿はこちらから(※ブロガー専用)
今年最も活躍したブロガーを表彰します。詳細はこちらから
これは、CNET Japan 編集部の依頼に基づいて執筆されているCNET Japan アルファブロガーによるブログの印です。
CNET Japan ブログネットワーク内で拍手の代わりに使用する機能です。ブログを読んで、感激した・役に立ったなど、うれしいと思ったときにクリックしてください。多くGood!を獲得した記事は、より多くの人に読まれるように表示されます。
[レビュー]高い信頼性を普通に使う地球に優しい電源ユニット--Antec EarthWattsシリーズ EA-650
今週の新製品総チェック:ノート、デスクトップ、UMPCまでPC秋モデルが続々
今週の新製品総チェック:薄さ13.9mmのサイバーショット登場!NEC「LaVie」はデザインモデルが