【コラム】

OS X ハッキング!

53 fortuneで爽やかな1日を始めよう

    海上 忍  [2003/05/23]

    以前から噂のあったApple Store銀座店だが、ようやく正式発表された。銀座のどの辺りになるのか? 諸説あるものの、オープンが2004年早々ということからすると、そろそろ正確な場所が判明する時期だ。米国以外では初の店舗となる事情もあり、動向を見守りたい。

    ところで先日、思うところあって過去1年に無駄遣いした品々を書き出してみた。コンピュータ類は仕事の道具なので除外するが、ただ"積ん読"だけの本やら、思わずジャケット買いしてしまったCDやら……いったい何台のiPodが買えることか(こう考えてしまうところがそもそもダメ?)。今更ながら、子供の時分、いつも母親に言い聞かされていた「欲しいものがあったら百数えなさい」という言葉の重みを感じた次第だ。筆者のような凝りない人間には、反復学習が必要なのかもしれない。

    同じことを感じたプログラマがいたのかどうかは知らないが、BSD UNIXには「fortune」という格言プログラムがある。コマンドを実行すると、古の賢者が残した格言・名言がランダムに表示される、というおみくじ的機能が特徴だ。ログインスクリプトに「fortune」とだけ記述しておけば、ログインするたびに含蓄に富んだありがたい言葉が表示される、という仕組み。コンピュータ関連の格言(?)も多いので、歴史上の人物に興味がないユーザにもお勧めできる。

    OS Xにfortuneは収録されていないが、finkプロジェクトが提供する「fortune-mod」というパッケージをインストールすればOK。以下に示すコマンドを実行後、「fortune」と実行してなにやらメッセージが表示されれば準備完了だ。ターミナルを起動するたびにfortuneのメッセージを表示したければ、~/.cshrcや~/.tcshrcなどのログインスクリプトの末尾に「fortune」の1行を追加しておこう。

    ○fortuneのインストール(finkが必要)

    % fink install fortune-mod

    しかし…しかしだ、これでは今ひとつ面白くない。やはり日本語の格言のほうがピンとくるし、徹夜明けの頭に数世紀前の英語はかなりキツい。それに、自分なりの"お宝的格言"も表示したい。

    というわけで、以下のような自選の格言・名言集を用意してみた。これをテキストエディットで入力し、適当なファイル名(ここでは「myfortune」とする)のプレーンテキストとして保存してほしい。書式は単純、格言・名言の間に「%」とだけ記した行を設ければいい。なお、ファイルの保存時には、テキストエンコーディング形式に「UTF-8」を指定すること。

    ○サンプルリスト(UTF-8で保存)

    でもやるんだよ! -- 特殊漫画大統領
    %
    何も見ない、何も聞かない -- 日置陰衆
    %
    ん!? まちがったかな… -- アミバ
    %

    ファイルが用意できたら、同じディレクトリ上で以下のコマンドを実行し、fortuneの実行時に格言・名言をランダムに抽出するためのファイルを作成する。それを/sw/share/fortunesディレクトリへコピーすれば準備は完了だが、あらかじめ用意されている膨大な数の格言・名言に埋もれてしまうため、ここでは/sw/share/fortunesディレクトリを新規作成する方針で臨んでいる。

    ○テキストファイルをfortune形式に変換

    % strfile myfortune


    % cd /sw/share/
    % sudo mv fortunes fortunes.orig
    % sudo mkdir fortunes
    % sudo cp ~/Desktop/myfortune* fortunes/

    これで、ターミナルを起動するたびに自選の格言・名言がランダムに表示されるようになったはず。ターミナルなんていちいち起動していられるか、という非CUI派ユーザは、以下のAppleScriptをスクリプトエディタで入力し、アプリケーションとして保存しよう。それをシステム環境設定の「ログイン項目」パネルに登録しておけば、ログイン直後にFinderのダイアログボックスとして格言・名言が表示されるようになる。

    余談だが、筆者は/sw/share/fortunesディレクトリに「北斗の拳」の自選名言集を登録している。「ブタをかっているのか? -- ケンシロウ」というダイアログボックスが表示された日は、なぜか無駄遣いせずに過ごせていることをご報告しておこう。

    ○AppleScriptのソース

    tell application "Finder"
    set the result to (do shell script "/sw/bin/fortune")
    display dialog result
    end tell

    バックナンバー
    http://pcweb.mycom.co.jp/column/osx.html

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン