TidBITS: Apple News for the Rest of Us  TidBITS-J#401/20-Oct-97

妖しい気配? Matt Neuburg 氏が Text Machine, より多くの人のための grep [ファイルにおけるパターンの検索] ユーティリティを解説。さらに Rick Holzgrafe 氏が成功するシェアウェアシリーズを締めくくる、これで はまるで Zeno [アキレスとカメ] のパラドックスのようだとの批判をかわ しながら。その他のトピックスとして、Apple 社の第 4 四半期の赤字決算 の詳細、NetBITS の最新 2 号の中で掘り下げて取り上げられている広告 メールにどう対処するかの紹介、Apple 製品の値下げ、そして待ちに待っ た Spring Cleaning 2.0 の発売を取り上げている。

目次:

Copyright 1997 TidBITS Electronic Publishing. All rights reserved.
問い合わせは <info@tidbits.com> へ、感想は <editors@tidbits.com> へ。

TidBITS 日本語版は TidBITS 日本語版翻訳チーム メン バーのボランティアによって翻訳・発行されています。


今回の TidBITS のスポンサーは:


MailBITS/20-Oct-97

(翻訳:亀岡 孝仁 <tkameoka@fujikura.co.jp>)

最近の NetBITS から -- もし広告メールにお困りなら、最新の二つの NetBITS を見て欲しい。 NetBITS-003 では Adam が多くの人が受け取っ ている、不必要な、頼んでもいない、商業メールの氾濫からどうやって、 個人的に、経済的に、かつ合法的に身を守れるかについて書いている。さ らに NetBITS-004 では NetBITS の編集長である Glenn Fleishman 氏が サーバーレベルで広告メールを止めてしまう方法について論じている。そ の他のトピックスには、E メールヘッダ に表示される時間がいかに時間帯 と関わっているか、自分のコンピュータの時計を正しく合わせるのにどの 様にインターネットを使うか、そして小規模オフィスのための ISDN 機器 を購入する時に考えるべき事がある。これらの NetBITS 既刊号は我らの Web サイトで見られる。さらに無料での NetBITS 購読申込は <netbits-on@netbits.net> に E メールして欲しい。 [ACE]

<http://www.netbits.net/nb-issues/NetBITS-003.html>
<http://www.netbits.net/nb-issues/NetBITS-004.html>

Apple 社第 4 四半期 161 百万ドルの損失計上 -- 先週 Apple 社は 161 百万ドルの純損失を第 4 四半期の結果として発表した。通年では、売上げ 71 億ドル、1996 年の 98 億ドルから 28% の減。純損失は 1997 年は 10 億ドル、1996 年の 816 百万ドルに対して。何も 161 百万ドルの損失はエ バれる事ではないが、Power Computing 社の Macintosh 資産買収関連で Apple 社が計上した損失分を除けば、24 百万ドルの損失で済んだことにな る。さらに明るい材料としては 1996 年第 4 四半期では 505 百万ドル、 1997 年第 3 四半期では 408 百万ドルであった経常事業経費が 353 百万 ドルに減った事である。Mac OS 8 の好調な売れ行き、7月の発売以来すで に 2 百万部が売れた、も助けになっている。年間で 10 億ドルの純損失と いうのは警戒すべきだが、よくよく見ればリストラチャージ 217 百万ドル と 450 百万ドルの NeXT 社と Power Computing 社買収に伴う償却費が含 まれている。従ってこの 667 百万ドルの一時的チャージを除けば 10 億ド ルは 333 百万ドルにまで下がる勘定となる。[ACE]

<http://product.info.apple.com/pr/press.releases/1998/q1/ 971015.pr.rel.q497.html>

Apple 製品値下げ、リベートも始める -- 先週、Apple 社は PowerBook 3400 と Power Macintosh 8600 の大幅値下げをした。例えば Power Macintosh 8600/300/ Zip の値段は 3,200 ドルから 2,600 ドルへ 、 PowerBook 3400c/200 は 4,500 ドルから 3,8 00 ドルへ値下げされた ( TidBITS-371 の PowerBook 3400 の記事参照)。加えて、Apple 社は Apple 周辺機器の販売促進のため、単体購入でも Mac と抱き合わせのどち らの場合でも適用される一連のリベートも開始した。例えば、Apple QuickTake 200 デジタルカメラの場合(店頭価格 550 ドル)単独購入時は 75 ドル、特定の Mac と抱き合わせの場合は 150 ドルのリベートが付く。 伝統的に Apple 社は新製品発表の前に値下げをしてきているので、今回の 販売促進策も例外ではなく Gossamer Mac と呼ばれている新製品の発表と 関係あるものと思われる。[TJE]

<http://product.info.apple.com/pr/press.releases/1998/q1/ 971013.pr.rel.addontakeoff.html>
<http://db.tidbits.com/getbits.acgi?tbart=00702>
<http://www.zdnet.com/macweek/mw_1137/nw_gossamer.html>

Cyberian Outpost 社はその DealBITS 恩典を更新して PowerBook 3400 の、- 下記 URL を通して - 200 MHz モデルを 3,679 ドルで、そして 240 MHz モデルを 4,427 ドルで提供している。この恩典は通常の Cyberian Outpost 価格から 50 ドル値引きとなっている。

<http://www.tidbits.com/products/power-book-3400c-200.html>
<http://www.tidbits.com/products/power-book-3400c-240.html>

Aladdin 社 Spring Cleaning 2.0 を発表 -- Aladdin Systems 社は本 日、長く待ち望まれていた Spring Cleaning 2.0 へのアップグレードの出 荷を始めた、これは人気の高い Macintosh 用の逆インストーラー [削除] ユーティリティである。Spring Cleaning はハードディスクから重複して いて不必要なファイルを 10 通りの違ったやり方で取り除く事できれいに する役目をしてくれる。Spring Cleaning 1.0 からの変更点、追加機能は 以下のようである;新規でより易しいインターフェース;重複ファイルを 検索除去する Duplicates Remover;完全に消去しても大丈夫と確信出来る まで一時的にファイルを保管しておく Storage Folders;さらに、もし消 去してしまうのが嫌で容量の節約もしたいなら、StuffIt 圧縮してアーカ イブも出来る。1.0 から引き続き維持された機能としては;アプリケーショ ンとその関連ファイルを逆インストール [削除] する、ファットバイナリ アプリケーションから必要でない P owerP C または 68K コードを除去す る、親を失った初期設定ファイルを除去する、破壊されたエイリアスの補 修、空ファイルの除去、等々がある。Spring Cleaning 2.0 は System 7.0 以上を必要とし、定価は 120 ドルである;1.0 からの無料アップグレード も Aladdin 社の Web サイトから 1997 年 12 月 31 年までダウンロード 出来る。[ACE]

<http://www.aladdinsys.com/springcleaning/index.html>


成功するシェアウェア(第 4 部)

by Rick Holzgrafe <rick@kagi.com>
(翻訳:尾高 里華子 <odaka@iprolink.ch>)

私の掲げる「シェアウェアを成功させるための鍵、7 つの P」のうち、第 一部( TidBITS-395 参照)で Product(製品)と Patience(忍耐)を、 第 2 部( TidBITS-398 参照)で Polish(洗練)を取り上げた。前号 ( TidBITS-400 参照)で Pay Up(支払)と Propagation(配布)の話を したので、今回残りの 2 つ Promotion(宣伝)と Politics(政治)の話 をして一連の記事を締めくくろう。

<http://db.tidbits.com/getbits.acgi?tbart=04108>
<http://db.tidbits.com/getbits.acgi?tbart=04155>
<http://db.tidbits.com/getbits.acgi?tbart=04181>

6 つ目の P: Promotion(宣伝) -- 「作りさえすれば、人はよって来 る」と言われるが、「来やしない」というのがここでの私の意見だ。作っ たソフトウェアの宣伝をしなければ、気が付く人も買ってくれる人もほと んどいない。(伝道とも呼ばれたりする)Promotion は、製品の良いとこ ろを声を大にして唱え、同じように福音を唱えてくれる人を作る術だ。こ れには時間と労力とそして少しばかりのお金が必要だが、成功には欠かせ ないものだ。大声で伝道を始める方法を幾つか紹介しよう。

Promotion: 広告 -- 大金持にとっては、自分の作った製品を他の人に 知ってもらうのはたやすい。お金を使って至る所に広告を出せばよい。雑 誌、Web サイト、TV、他の人の市販品に入れる折り込み広告とかだ。

ただし、これは大金がなければできない。広告はとてつもなく金のかかる もので、たいていのシェアウェア作家には無理な話しだろう。私は 10 年 間シェアウェアを売ってきたが、広告には未だに一円足りともつぎ込んで いない。広告を否定している訳ではないのだが、一円で買うことのできる 広告スペースはごくごくわずかで、それなりの広告スペースを買うために 必要な一円玉一トンほどを手にしたことがないからだ。たとえば、メジャー な雑誌の広告は何千ドルもするし、テレビ広告になるともう私にとっては 夢物語、10 〜 100 万ドルもするのでとても手が出ない。

近ごろ新たな方法が浮上してきており、これは検討するに値するかもしれ ない。メジャーどころの Web サイトは広告スペースを売って成り立ってい るところが多い。安いものは 100 ドル代前半からあり、元手があまりない 者にとっては高く感じるかも知れないが、誰でも何とかなる金額だ。私は まだ試していないので薦めることはできないが、やっただけのことはある かもしれないし、ないかもしれない。ともかく人に知ってもらう機会を持 つのはいいことなので、小さな Web 広告なら買うことができるという人は 試してみる価値はあるだろう。

Promotion: 自分の Web サイト -- 自分の Web サイトを作る。通常のプ ロバイダを利用した場合一月あたり 20 〜 30 ドルもしないぐらいで自分 の Web サイトを持つことができるし、実際すでに持っている人もいるだろ う。もしまだなら、ぜひ立ち上げよう。わずかの支出でそれ以上のことが できるものなのだから。HTML に不慣れな方は、良い HTML エディタに投資 をする。今では山のように良いものが出ているので、どれか一つを選ぶ。

Web サイトには、Read Me ファイルと同様の情報を置く。ただし、Read Me ファイルと違って Web サイトは宣伝が第一目標なので、Read Me とは違っ た構成にする。つまらない(が重要な)情報は下の方に置いて、売り文句 などを上に持ってくる。巨大なグラフィックに走らない。たいていの人は 遅いモデムを使っていて巨大なページをロードするのを待っていられない のだ。(製品同様)できる限りページを見栄え良くかつプロっぽくする。 大きなものをダウンロードするのを厭わない人用に別のページに大きめの スクリーンショットを置くのは構わない。メインのページには、会社や製 品のロゴのほかに小振りのスクリーンショットまたはサムネイルを置く。 ダウンロード用には、たとえば Mac 関連製品であれば、世界中の Info-Mac や UMich のミラーのアドレスをピックアップして置いておく。複数置くの がよい。どのサイトもいつでも利用可能だとは限らないのだから。

製品が評判になってくると、20 ドルの Web サイトではとてもロードを処 理しきれなくなるかもしれない。その時は、もう少し高いがトラフィック をさばくことができるだけのサイトを見つける。これは、やるだけの価値 があることだ ! もし金銭的に許されるのなら、年間 50 ドル で InterNIC に自分のドメイン名を登録する。これで自分のサイトを簡単に見つけても らえるようになる(私のサイトを見つけるのには www.semicolon.com だけ でことが足りる)し、プロバイダを変えても古いリンクやブックマークが 壊れることもない。これは計り知れないほどありがたいことだ。

<http://www.semicolon.com/>

Promotion: 他の人の Web サイト -- 世の中には数え切れないほどの Web サイトがあり、その中にあなたのお客様となるべき人を引き付けてくれる ものがある。それはシェアウェアサイトだったり、あなたの製品に関係の あるサイトだったりする。こういったサイトを見つけて、Web マスターに メールを出す。エレベータプレゼンテーションを行って、相手のサイトに リンクを張る代わりに自分のサイトにもリンクを張ってくれるようにお願 いしたり、製品のレビューを依頼する。まさに伝道だ ! 丁寧にしかし彼ら の注意を引くように行う。

Promotion: Usenet -- Usenet は素晴らしくかつ無料の言葉の大通りだ。 ただし注意も必要で、ニュースグループを甚だしい宣伝に利用すると多く の人の怒りを買ってしまうことになる。一般に新リリースに関する簡潔か つ適切なアナウンスであれば、ニュースグループの読者は公報のようなも のとみなして我慢してくれる。だが「このすごいソフトをチェックしよう !」と毎週ポストしたら、嫌がらせのメールが押し寄せてくるだろう。 Usenet の慣習に従い、ニュースがある時にのみ適切なニュースグループに ポストする。

Promotion: プレスリリース -- プレスリリースを利用して自己宣伝をす る。ニュースを扱うところはプレスリリースを大切にしている。プレスリ リースは彼らにとって業界情報を仕入れるための常套手段なのだ。[ 自分 の Web サイトにプレスリリースをポストする場合は、報道関係者がその場 所を見つけやすいようにしておく。ホームページにプレス用のリンクを張っ ておくか、ホームページから「自己紹介」のページへのリンクを張るのが よくあるパターンだ。製品説明のあるページからプレスリリースに行くこ とができるようにするのもいいかもしれない。- Tonya]

7 つ目の P: Politics(政治) -- 7 つの P の最後 Politics(政治) は、事をうまく運ぶ術だ。できるだけ大勢の友人を持ちたいと思うのには、 2 つの理由がある。一つは、友は素晴らしい ! からだ。もう一つは、良い 友は多大な好意につながり、企業にとっても個人にとっても資産だからだ。

Politics: よい人であれ -- いかなる時も、常に礼儀正しくあれ。「ど うぞ」と「ありがとう」という言葉を頻繁に使う(これはママから教わっ たことだろう)。メッセージを送る前に、書いたものを読み直す。そして もう一度読み直す。受け取る人が誤解してしまうような部分がないか探す のだ。シェアウェア作家というものは、良いライターではない場合が多い。 知らず知らずのうちに相手を不愉快にさせてしまうことを書いてしまった りということはよくある。読み手には、書き手の顔が見えないし、口調を 耳にすることもできない。だから、笑わせるつもりだったり、皮肉のつも りだったりしても伝わらないことがある。インターネットを介して製品の 配布を行おうと思っている人は、英語が読み手の母国語(または主要言語) でない場合があるということを特に考慮に入れなければならない。分かり やすく正確であれ。

Politics: 万人に手を差し伸べよ -- 私は昔、シェアウェア料を払って いない人に対するテクニカルサポートをお断りするという過ちを犯してし まっていた。ある日私はサポートの依頼を受けたのだが、その人の支払っ てくれた小切手を紛失してしまっていたために断ってしまった。。平謝り に謝ったのだが、その報いを受けることになった。その人は今後二度と私 のソフトウェアを買うことはないだろうし、私のことを人に「あいつはい いかげんな奴だ」という話をするだろう。今では、誰に対してもサポート をするようして、シェアウェア料を払ったかどうかは尋ねないようになっ た。

誰に対しても協力をすることは別のメリットもある。ユーザーの多くは (このシリーズの第 3 部でお話ししたところの“マウスポテト”であるか ら)、あなたに何か用事ができるまでは支払をしない。ちょっとしたサポー トをしてあげると、なんとすぐに小切手がやって来るのだ。

Politics: 友を作れ -- すでに、友人を作ることのメリットはお話しし た。では、どういった人を友達にできるのだろうか ?

良き友、デベロッパー。デベロッパーの友人は、技術的な問題解決の手助 けをしてくれるだろうし、販売面でのアドバイスをくれるかもしれない。 もちろんこちらからも、友人の問題解決の協力をしてあげ、よいアドバイ スがあったら教えてあげる。

良き友、アーティスト。アーティストの友人は、タダ働きはしてくれない かもしれないが、グラフィックデザインに関して良いアドバイスをくれる かもしれないし、予算に見合ったアーティストを紹介してくれるかもしれ ない。

良き友、ジャーナリスト。ジャーナリストの友人は、製品をプロモートす る上でのアドバイスをくれたり、関連産業のトレンドを教えてくれるかも しれないし、すすんでレビューを書いてくれるかもしれない。また、その 人が関心のある分野のニュース、ゴシップ、意見などを大喜びで聞いてく れるかもしれない。それに、ジャーナリストの話しを聞くのはおもしろい。 物知りで言葉がうまい人達だ。

良き友、Web マスター。Web マスターの友人は、あなたのサイトへリンク を張ってくれるかもしれないし、サイトのデザインに関するアドバイスを くれるかもしれない。彼らが主催する懸賞の賞品用にあなたの製品をいく つか提供してあげると見返りに広告スペースをくれるといったような、お もしろそうなチャンスをくれることがあるかもしれない。

ともかく、友人を持つのは素晴らしいことだ。友は金に勝る。また、友は 名声にも勝る。私の親友の中には、私のシェアウェアビジネスが縁で知合 になった人が何人かいる。その中には未だお互いに顔を会わせたことの無 い人もいる。さあ、友人を作れ、数多く作れ。これは私からの究極のアド バイスである。

さあ、これで私のシェアウェアを成功させるための 7 つの P はすべて話 した。この話題をもっと掘り下げてみたい人は、私のページにもっと詳し いことが書いてある。

<http://www2.semicolon.com/Rick/ShareSuccess/SharewareLinks.html>

[Rick Holzgrafe 氏はシェアウェア製品を作成していない時には、Silicon Valley にある有名な会社でプログラムを書いている。]


グレッパー冥利:Text Machine

by Matt Neuburg <matt@tidbits.com>
(翻訳:尾高 修一 <odaka@iprolink.ch>)
(翻訳:西村 尚 <hisashin@axes.co.jp>)

奴等は私たちの中にも紛れている。もしかしたら今あなたの隣に座ってい るのもそうかもしれない。ひょっとしたらあなた自身もそうかもしれない。 そう、あなただってグレッパー(grepper)なのかもしれないのだ。今まで grep なんてしたことがなくても grep が何かをさえ知らなくても、誰もが 知らず知らずのうちに密かに grep せずにはいられなくなっているのだ。

こうして読者の皆さんの注意を引いたところで本題に入ろう。grep が Unix の“ global regular expression and print”の略だということなどはど うでもよろしい。ここでは“grep”とは単に一種の強力なテキスト検索機 能、または検索・置換機能であって、これなくしては私たちの平穏な生活 が不可能になるか、少なくとも無意味になってしまうようなものだとだけ しておこう。毎日のテキスト処理の多くは grep を使えば一瞬でできてし まうのだ。

今まで私は、一見不可能なテキスト処理問題をグレッピーな魔術を使って 解決し、友達を驚嘆させて(そして敵を愕然とさせて)きたものだ。たと えば、ある日誰かが既存のデータベースにインポートしたいテキストファ イルを持ってきた。このファイルにはタブで区切られた行が何千も入って いた。

John  [tab]  Doe    [tab]  473   [tab]  yes
Dick  [tab]  Smith  [tab]  2471  [tab]  no
Jane  [tab]  Brown  [tab]  587   [tab]  yes

問題は、データベース側は最初に姓、次に名という構造になっており、こ れを簡単に入れ替えることはできなかったため、インポート前に氏名を逆 転させなければならないということだった。私がこのファイルを Nisus Writer で開き、

^\(.:*\)\t\(.:*\)\t

をすべて探し、

\2\t\1\t

で置換し、なにくわぬ顔でファイルを返す間、彼は唖然としていた。この 友達は grep を必要としながら、grep について何も知らないという典型的 な患者だったのだ。でも、なぜ何も知らなかったのだろう?

その理由の一つは、grep をするための唯一の方法が grep 機能を内蔵した ワープロ(またはテキストプロセッサ)を持っていて、なおかつ(あなた がコンピュータでもない限り)解読不能な表現を組み上げることを学ばな ければならないことかもしれない。さらに悪いことに、プログラムによっ て grep の実装のしかたが異なる(先程の Nisus Writer 用の表現は BBEdit では通用しない)。しかし、PreFab Software 社は Text Machine 1.0 のリリースでこの現状を変えつつあるのだ。

Text Machine のコンセプトはユニバーサルな grep ユーティリティだ。一 種類だけの(つまり Text Machine の)grep を覚えれば、あとは他のアプ リケーションから Text Machine を呼び出すだけで済む。また、Text Machine はユーザーが確実に grep できるように、多彩な grep 機能を備 えているだけでなく、コマンドは自然言語に近いものになっているため、 通常のバックスラッシュだらけの grep よりはるかに扱いやすい。Text Machine はスクリプタブル、つまり他のアプリケーションから操作するこ とができる。したがって、外部から操作することができるほか、Text Machine は持っているけれどもオタク度の低い同僚にはスクリプトを渡す だけで grep 能力を分けてあげることができる。

<http://www.prefab.com/>

この着想はすばらしいが、これだけではない。Text Machine に検索・置換 ダイアログを出してもらい、しかもこのダイアログには grep を全く覚え ないで済むようにプルダウンメニューが備えられており、作業中のアプリ ケーションに直接変更を加えてもらうというのが理想だろう。これが PreFab 社の元々の計画だったようだ。というのは、Text Machine は OpenDoc パートとなる予定だったのだ。しかし、Apple 社が OpenDoc を捨 てたために計画は頓挫し、このダイアログインターフェースはバージョン 1.1 まで延期された。私はこのアルファ版を触ったことがあるが、ダイア ログ経由で Eudora を検索・置換し放題だった。しかし現時点では Text Machine にはインターフェースがない。Text Machine と交信するにはスク リプト(一般的には AppleScript か Frontier の UserTalk)を使う以外 に方法はない。私たちの多くにとって、これは問題ではなくむしろ楽しみ なのだが、自信のない方は 1.1 を待った方が良いかもしれない。

Grep 教室 -- 私は Nisus Writer の grep を心底愛しているのだが、そ の理由の一部に魔術的なるものがあることを告白しなければならない。な ぜただの無意味な文字列がこんなに強力なのだろう? もし前述の友達を助 けてあげる際に Text Machine を使っていたら、これほどの畏敬の念を勝 ち得ることはできなかっただろう。というのは以下の AppleScript スクリ プトをたとえば Apple 社製の Script Editor で実行すると、同じことが できてしまうからだ。

    tell application "Text Machine" to
      replace in alias "HD:yourFile" all
        "[(textstart or paragraphdelimiter)1]" &
        "[(column)2, tab]" &
        "[(column)3, tab]" with
        "[group1, group3, tab, group2, tab]"

これが依然としてコードの領域に属するのは確かだが、より自然言語に近 いものになっており、少しの知識があれば解読することができる。括弧内 にあり、次に数字が来ている部分はグループだ。“column”という語はあ るカラムにあるテキスト全部、つまりあるタブまたはリターンと次のもの の間を意味する。したがって、最初のグループはパラグラフの前にあるも の、次のグループはパラグラフの先頭から最初のタブまでのすべて、それ に次のグループは最初のタブから二番目のタブの間にあるものすべてとい うことになる。続いて 2 つ目のグループと 3 つ目の部ループを入れ替え るだけだ。

ここで Text Machine の grep の例をもう一つ挙げよう。昨日(本当の話 だ!)知人が HTML 文書のタイトル(つまり <title> タグに挟まれている 部分)を抽出したいのだがと言ってきた。ほとんどの場合以下のスクリプ トでうまくいくだろう。

    tell application "Text Machine" to
      extract in alias "HD:my Web site:default.html" first
        "['<title>']" &
        "[(shortest oneOrMore char)1]" &
        "[htmlTag]"
        transform with "[group1]"

シングルクォートで囲まれた部分はリテラルな文字列である。“transform with”は元のテキストではなく返されたテキストを置き換える。したがっ て、残るのは <title> タグから次のタグ(</title> のはず)までの部分 である group 1 となる。

Text Machine は大文字・小文字を区別するので、より一般的な解決法とす るには、すべての文字について両方の可能性を勘案しなければならない。

    tell application "Text Machine" to
      extract in alias "HD:my Web site:default.html" first
        "['<']" &
        "[('t' or 'T'), ('i' or 'I'), ('t' or 'T')]" &
        "[('l' or 'L'), ('e' or 'E')]" 
        "['>']" 
        "[(shortest oneOrMore char)1" &
        "[htmlTag]"
        transform with "[group1]"

幸い、これはバージョン 1.1 で変更され、大文字・小文字を区別しないオ プションが加わる予定になっている。

Grep 度テスト -- PreFab Software 社は grep 表現を Unix 風のコード ではなく自然言語に近いフレーズとして実装するにあたって、見事なまで の独創性を発揮している。この機能は他に類を見ないものだ。Nisus Writer には同様のものがあるが、使いにくく機能も限定されている。PreFab Software は Text Machine に驚くほどよく考え抜かれたレパートリーも備 えさせている。

Text Machine が扱うことのできる対象の幅広さを例にとろう。コマンドの パラメータとして渡されたリテラル文字列に対して検索・置換を実行する こともできるし、今まで見てきたようにディスク上のファイルを対象とす ることもできる。

さらに便利なのは、Text Machine が文書を開き、そのまま開いておくこと ができるということだ。特殊なデバッグモード以外ではウインドウを開く ことはないため、文書を表示することはしない。しかし、ファイル内のテ キストをメモリにロードしたままにしておくので、検索・置換によって加 えられた変更はスクリプトのコマンドで明示的に保存しない限りディスク に保存されない。また、挿入ポイントの位置も記憶されるので、“match next”のような verb への連続したコールがきちんとテキストの先へと進 んでいく。さらには、Text Machine は新しい文書をメモり上で作ることが でき、複数の文書をメモリに置いたり、ある文書にテキストを加えること もできる。これによって大きなテキストを繰り返し Text Machine に渡さ なくても済み、オーバーヘッドを抑えスピードを向上させる。

これに加え、Text Machine の 4 つの verb の豊富なシンタックスがある。 “replace”は元のテキストを書き換え、その結果または置換件数を返す。 “extract”は検索を実行し、合致したテキストを返し、オプションで置換 も実行する。“extract all”はリストまたは区切られた文字列を返す。 “locate”と“match”は内容、合致したテキストの位置や長さ、置換結 果、それに任意のグループの内容といったものを教えてくれる。こういっ た情報は他のスクリプタブルなアプリケーションが Text Machine が見つ けた結果を操作する際に役立つ。

また、気が利いている点もある。“replace all”で文書に対し一気に置換 を実行することがよく行われる。Text Machine はこの作業のためのショー トカットを用意している。検索すべきテキストと置換するテキストは 2 つ のリストとして用意し、“replace all”を一発だけ実行すれば Text Machine は両方のリストをループ処理してくれる。付属のスクリプトでは、 これをさらに便利にする方法を示してくれている。タブで区切ったテキス トファイルとして検索・置換するテキストを用意しておくと、Text Machine がこれを解析してリストを生成してくれるのだ。

Grep の傾向 -- Text Machine の grep 機能は BBEdit、Nisus Writer、 Microsoft Word などの grep 機能を実装したアプリケーションのスーパー セットといってもよい。例えば、Text Machine は最長/最短マッチを特定 できるが、BBEdit や Word ではできない。つまり特定の文字数または文字 数の範囲(例えば 60 から 80 の非改行文字)を決められるということで、 これは BBEdit や Nisus では非常に難しい。

Text Machine は一方で伝統的な grep の構成概念を欠いているところもあ る。文字範囲については表すことができず、例えば、アルファベット順で “a”から“g”までの文字なら、"[<abcdefg>]" のように明示的に範囲の 中身を特定しなければならない。(その理由としては、そういった特定法 は難しくないし、ともかく "[lowercaseLetter]" や "[controlChar]" な ど、最も共通に必要とされるセットはあらかじめ定義されているのだ、と いったところだろう。)大文字/小文字を無視するマッチができない(バー ジョン 1.0 の場合)のは不便だ。さらに、位置指定のためのキーワードは ないといっていい。したがって、私の最初の例でいうと、行(パラグラフ) の頭を "[textstart or paragraphdelimiter]" のように表してから、その 後、マッチした文字列に特別な文字が含まれているかどうかに取りかから なければならない。

しかし、こういった短所は見方を変えることが 可能 だし、概していえ ば、Text Machine の grep 機能は非常にパワフルで、さらに英語に似た語 法を使って表現する簡単さもある。

例えば、メーリングリストのメッセージをアーカイブする HyperCard ス タックがある。ダイジェスト形式(一つの電子メールメッセージ内に多数 のメッセージ)でメーリングリストを受け取る。そのスタックはダイジェ ストを切り分け、各メッセージの日付欄、タイトル欄、送信者欄、本文を 別々のカードに格納していく。最初 HyperTalk でこのコードを書くのにひ どく時間がかかったが、HyperCard は AppleScript をしゃべるので、Text Machine の grep 機能は HyperCard に利用できる。この点で、同じ仕事 も、コードを書くのが楽に(そしてかなり速く)なる。また、Microsoft Word も Text Machine をコールできることで恩恵を被ることになるだろ う。WordBasic のマクロを書いていて、どれだけ頻繁に Word の grep が もっと Nisus Writer のようであったらと思ったことだろう!今、Text Machine を手に入れて、それが可能になったのだ。

AppleScript と UserTalk の grep 機能の拡張(例えば Late Night Software 社の“Regular Expressions”と“regex”UCMD)は確かに存在す る。しかし、Text Machine はこれらよりはるかに簡単に使え、もっとパワ フルだ。また、Text Machine が純粋なアプリケーションだということによ る恩恵もある。広範な使用に備えて、テキストファイルを編集したり、巨 大なテキストを記憶したりできるのだ。

Grep をものにする -- Nisus Writer を持っていて、その grep 機能に 満足していて、Nisus マクロ以上のスクリプト処理などなにもいらないの なら、Text Machine は恐らく必要ないだろう。また、Nisus Writer の grep 機能には特別な機能もある。スタイルテキストを扱えることだ。この ように、Nisus 固有の機能に適したタスクがあるので、Text Machine は競 おうとはしていない。

一方、AppleScript や UserTalk を使っている、または使おうとしている なら、そしてスクリプタブルなプログラム、あるいは OSA スクリプトを実 行できるプログラム(HyperCard、Microsoft Word、FileMaker Pro など) をなにか持っているなら、Text Machine の grep 処理機能を合わせて、テ キスト処理をしたいという願望への答を発見できるだろう。

間違いなく Text Machine の学習曲線は伝統的な grep ツールを楽々と凌 駕する。しかし、学習曲線が ない とうそぶくなら、それは間違いだろ う。このバージョンでは、Text Machine は普通のユーザのための grep で はないと思う。事実を正直に受け入れれば、Text Machine はマニア向けで あり、進んでスクリプトをやらなければいけない。また、Text Machine の 語法が簡単に学べるとしても、正しい結果を得るには、試行錯誤と工夫は 依然として必要とされるだろう。

しかし、私の語彙力では、“マニアック”は称賛の言葉だ。恐らく、私が そんなふうに称賛することを奇妙に感じているだろうが、Text Machine は、いってみれば、美しいと思っているのだ。実に見事に実現され、他の アプリケーションへのサービスという役割を持つ単一の機能を提供してい る。私は Text Machine が実現されてくるのを何ヵ月も心待ちにしていた が、今、これが私の道具袋の中で確固とした位置を占めている。PreFab 社 はあなた方が同じように感じるかどうか決めさせてくれる 30 日間無料の デモ版を用意している。

Text Machine は 95 ドルに値上げされる 97 年 11 月 12 日まで 75 ドル である。1.0 を購入した人はバージョン 1.1 への無償アップグレードが手 に入る。


非営利、非商用の出版物およびウェブサイトは、フルクレジットを明記すれば記事を転載またはウェブページにリンクすることが できます。それ以外の場合はお問い合わせ下さい。記事が正確であることの保証はありませ ん。書名、製品名および会社名は、それぞれ該当する権利者の登録商標または権利です。TidBITS ISSN 1090-7017

tb_badge_trans-jp2Valid HTML 4.01!Another HTML-lint gateway