ラベル Mac OS X の投稿を表示しています。 すべての投稿を表示
ラベル Mac OS X の投稿を表示しています。 すべての投稿を表示

2011-03-24

emacs23.3をinline_patch付きでビルドしてみた

めでたくemacs 23.3がリリースされました。inline_patchのリリースアナウンスは出ていませんが、一応svnレポジトリにコミットされているみたいです。今回からは今までのパッチの他にCocoa Emacsのピコピコ問題([Macemacsjp-users 1678]から始まるスレッド)とxcode4でビルドするためのパッチが同梱されているようです。

僕の環境では必要ない(Mac OS X 10.6 + Xcode3)環境なのですが、一応xcode4でビルドするためのパッチも当てました。ビルドの手順は下記の通り。ちなみに、inline_patchのリビジョンは574です。

% mkdir -p ~/src/emacs23.3
% cd ~/src/emacs23.3
% wget http://ftp.gnu.org/gnu/emacs/emacs-23.3.tar.bz2
% svn co http://svn.sourceforge.jp/svnroot/macemacsjp/inline_patch/trunk inline_patch-svn
% tar xjf emacs-23.3.tar.bz2
% cd emacs-23.3
% patch -p 0 < ../inline_patch-svn/emacs-inline.patch

% patch -p 0 < ../inline_patch-svn/font.patch

% patch -p 0 < ../inline_patch-svn/xcode4.patch

% ./configure --with-ns --without-x

% make bootstrap

% make install


今のところ、問題なく使えています。ただし、3/21にコミットがおこなわれたりしているので、リリースのアナウンスが出てからおもむろに使い始めるのが正しいと思います。

2011-02-08

Elecom社製USB-シリアル変換ケーブル(UC-SGT)をMac OS X 10.6で使う

Emacs関連のポストが続いたり、Mac Book Proを買って浮かれポンチなポストをしたりしていますが、本業はインフラよりのネットワークエンジニアだったりします。で、本業で使うかどうかは別として、シリアルケーブルはネットワークエンジニアの嗜みとして使えるようにしておくべきでしょう、というポストです。

まず、僕が所有しているUSB-シリアル変換ケーブルはElecom社のUC-SGTという製品です。こいつは自分がM1の時に買ったので、かれこれ8年くらいの付き合いです。

Elecom社のサイトではWindows向けのドライバは提供されていますが、Mac向けのドライバは提供されていません。ただし、UC-SGTはProlific社のPL2303というチップを積んでいて、Prolific社のサイトではMac向けのドライバが提供されています。

というわけで、Prolific社製のドライバをUC-SGTでも使えるように導入してみます。

まず、何はなくとも本家からドライバをダウンロードして、インストールします。インストール直後にUC-SGTを挿してもMac君は認識してくれません。Mac君に認識してもらうためには /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist というファイルを編集する必要があります。編集する内容は下記のとおりです。

--- /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist.orig 2010-03-25 16:47:26.000000000 +0900
+++ /System/Library/Extensions/ProlificUsbSerial.kext/Contents/Info.plist 2010-12-25 23:22:35.000000000 +0900
@@ -24,7 +24,7 @@
2.0.0
IOKitPersonalities

- 067B_2303
+ 056E_5003

CFBundleIdentifier
com.prolific.driver.PL2303
@@ -37,9 +37,9 @@
bInterfaceNumber
0
idProduct
- 8963
+ 20483
idVendor
- 1659
+ 1390


OSBundleLibraries
ようするに、ベンダーIDとプロダクトIDをUC-SGTにあわせる感じです。

あとは、念のため ProlificUsbSerial.kext を再読込みさせておきます。

% sudo kextunload /System/Library/Extensions/ProlificUsbSerial.kext
% sudo kextload /System/Library/Extensions/ProlificUsbSerial.kext


これで、UC-SGTを挿すと /dev/tty.usbserial として使えるようになります。あとはそのあたりに転がっているシリアルコンソールを持つ箱に挿して遊んでください。

ちなみに、ドライバをアンインストールするには以下のようにすると良いハズです。

% kextunload /System/Library/Extension/ProlificUSBSrial.kext
% sudo rm -fr /System/Library/Extension/ProlificUSBSrial.kext
% sudo rm -fr /private/var/db/receipts/com.prolific.driver.PL2303.bom
% sudo rm -fr /private/var/db/receipts/com.prolific.driver.PL2303.plist

mac os xだったらbrowse-url-browser-functionはopenでしょう

ということで、以下の設定を適当なところに追加して幸せになりました。

(setq browse-url-browser-function 'browse-url-generic)
(setq browse-url-generic-program
(if (file-exists-p "/usr/bin/open")
"/usr/bin/open"))

2011-01-17

GeekToolの設定

別エントリで書いていたGeekToolの設定。
  • uptime
    #!/bin/sh
    uptime| \
    awk '{printf "Uptime: " $3 " " $4 " " $5 " "}'; top -l 1 | \
    awk '/PhysMem/ {printf "RAM : " $8 ", " }' ; top -l 2 | \
    awk '/CPU usage/ && NR > 5 {print $6, $7=":", $8, $9="user", $10, $11="sys", $12, $13}' 2> /dev/null

  • ps
    ps -axr -o %cpu,%mem,user,comm | head -n 21
  • getaddr
    #!/bin/bash
    echo "Active Network Interfaces"
    for netif in `netstat -rn -f inet | awk '{print $6}' | sort | uniq`;do
    echo ${netif} | egrep "en|ppp" > /dev/null 2>&1
    if [ $? -eq 0 ]; then
    echo -n ${netif}" : "
    ipconfig getifaddr ${netif}
    fi
    done

  • resolv.conf
    cat /var/run/resolv.conf | egrep '^(nameserver|domain)'
  • df
    df -Hg -T smbfs,hfs,fusefs,msdos,afpfs,cd9660
  • Time (calendar)
    LC_ALL=C date +%H:%M:%S
  • day (calendar)
    LC_ALL=C date +%a.%B.%d
  • calendar
    LC_ALL=C cal | sed "s/^/ /;s/$/ /;s/ $(date +%e) / $(date +%e | sed 's/./#/g') /"
  • sockstat
    #!/bin/sh
    echo "socket status"
    lsof -i | awk '{print $1,"\t",$5,$8,$9,$10}'

  • Battery Status
    echo "Battery Status" ; pmset -g ps | tail -n 1 | tr -d ";" | awk '{print "Percentage: " $2, "\n" "Status: " $3}'
  • AirPort Status
    echo 'AirPort Status' ; /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | egrep "(\ SSID)|Rate|channel" | sort | awk '{print $1, $2}'

Mac OS X 10.6 (Snow Leopard)に入れたアプリケーション

昨年末に自宅で使用するMacBook Pro 13inchを購入したので、メモがわりにエントリをつくっておく。

まずは/Applicationsに入れたアプリケーション。

  • ClamXav.app
    • アンチウイルスアプリケーション
    • 今は2系のベータが取れているので、そっちを入れる
  • Alfred.app
    •  ランチャーソフト
  • coral.app
    • 後述のEmacs.appからプリンタに印刷するときに使う
  • Cyberduck.app
    • FTPクライアントアプリケーション
  • Dropbox.app
    • クラウド(笑)型ファイル共有サービスのクライアントアプリケーション
  • GitX.app
    • gitのGUIフロントエンド
  • Google Chrome.app
    • Webブラウザ
    • FirefoxやSafariよりも便利
  • Growl.app
    • 各種アプリケーションの通知をしてくれる
  • iTerm.app (iTerm2)
    • ターミナルエミュレータ
    • iTerm.appよりも便利
  • iPhone 構成ユーティリティ
    • iPadのメンテナンスに必要
  • OpenOffice.org.app
    • http://www.openoffice.org/ と http://www.documentfoundation.org/download/ に別れた
  • SimpleCap.app
    • スクリーンショット用
  • Transmission.app
    • BitTorrentクライアント
  • VLC.app
    • 強力なメディアプレイヤ
  • X11.app (XQuartz)
    • Leopardの時はデフォルトのX11.appはバギーだったけど、SnowLeopardはどうなんだろう
    • とりあえず、入れておく
  • OnyX
    • とりあえず、入れておく
  • Xcode
    •  紳士の嗜み(笑)
  • Cocoa Emacs
    • 自前でビルドする
    • inline-patchをあてる
    • 自前で入れたelisp
      • auctex
      • bbdb
      • elscreen関連
      • lookup
      • navi2ch
      • w3m
      • wanderlust
      • apel
      • flim
      • semi
プリファレンスパネルにインストールする分。
    • GeekTool
      • Desktopに各種情報を表示できる
      • 設定内容は別エントリを立てる

    2007-12-26

    spamフィルタを変えてみた

    wanderlustに移行して少したったけど、やっぱりspamassassinのspam判定の遅さには耐えられない。ということで、spamassassinを捨ててbogofilterに乗り換えてみた。幸い、MacPortsにはbogofilterのパッケージがあるので苦労せずにインストールまではできた。

    で、困ったのはbogofilterの学習時にkakasiとnkfを使うべきかどうかということ。ググってみたら、使う人と使わない人が半々くらい。むぅぅぅ。wlのコードを読んでみると、kakasiとnkfはbogofilterを起動しているときに使っていないぽい。というわけで、kakasiとnkfは使わずに学習させてみた。学習はこんな感じ。


    spamメールの学習(spamメールを保存しているディレクトリで)
    for i in *; do
    bogofilter -s $i
    done



    non-spamメールの学習(どこか適当なディレクトリ)
    for i in *; do
    bogofilter -n $i
    done


    bogofilterに-vオプションを付けると処理中のメッセージを出力するけど、今回はなし。

    一応、spamとhamの学習後に試験してみたけど、ちゃんと判別している。

    wanderlustでbogofilterを使うためにはspamassassinで使っていた設定をコメントアウトして、以下の設定を付け加えればいい。


    (setq elmo-spam-scheme 'bogofilter)
    (setq wl-spam-auto-check-folder-regexp-list '("\\+inbox")
    (setq elmo-spam-bogofilter-debug 't)


    elmo-spam-bogofilter-debugをnon-nilにしているのは、しばらくデバッグメッセージで様子を見たいから。本格的に使うときは当然、nilにする。

    年末年始休暇明けのメールチェックでどれだけ早く処理できるかちょっと楽しみ。

    2007-12-14

    記憶にないけど、ある

    久しぶりにMacPortsのメンテナンスで、必要なパッケージをアップグレードしようとしたら、gtk2のアップグレードでこけた。ていうか、gtk2の依存関係に新しくgtk-docが追加されて、このgtk-docのconfigureスクリプトが走っている箇所でエラーを吐いているみたい。以下がエラー内容の抜粋。


    checking for xsltproc... /opt/local/bin/xsltproc
    checking for XML catalog (/opt/local/etc/xml/catalog)... found
    checking for xmlcatalog... /opt/local/bin/xmlcatalog
    checking for DocBook XML DTD V4.1.2 in XML catalog... found
    checking for DocBook XSL Stylesheets in XML catalog... not found
    configure: error: could not find DocBook XSL Stylesheets in XML catalog


    どうやら、docbook-xslで提供しているカタログファイルを見つけられていないみたい。docbook-xslはいろんなパッケージの依存関係に入っているので確実にインストールしているはず。だけど、/opt/local/etc/xml/catalogにdocbook-xslのカタログファイルが記述されていないみたい。しかたないので、以下のようにdocbook-xslのカタログファイルの記述を追加した。


    --- catalog.back.20071214 2007-10-25 19:04:11.000000000 +0900
    +++ catalog 2007-12-14 20:34:35.000000000 +0900
    @@ -10,4 +10,5 @@
    <nextCatalog catalog="/opt/local/share/xml/docbook/4.3/catalog.xml" />
    <nextCatalog catalog="/opt/local/share/xml/docbook/4.4/catalog.xml" />
    <nextCatalog catalog="/opt/local/share/xml/docbook/4.5/catalog.xml" />
    +<nextCatalog catalog="/opt/local/share/xsl/docbook-xsl/catalog.xml" />
    </catalog>

    ここまでだったら、docbook-xslのパッケージが腐ってるんじゃねーのという話なんだけど、実は心当たりがあったりする。少し前にアップデートの時にdocbook関係でハマったので、片っ端からxmlcatmgrでremoveした記憶がある。試しにコマンドのヒストリーファイルを検索したら、2007年10月25日 19時04分11秒に該当箇所を消しちゃっている。

    ということで、きちんと調べてからファイルの操作をしないと痛いメにあうという話でした。

    2007-11-01

    その黒い小鳥は美しい歌を奏でるか??

    どうやらSongbirdのバージョンがあがったもよう。一度、試そうとしてwebでリサーチしてみたら、あんまりいい評判ではなかったので、今回のアップデートを期に使い倒してみた。やはり、firefoxなどと同じ系統なので、チェックしとかないとまずいでしょう、ヒトとして。

    今のところ、iPodと一番仲がいいのはYamiPodだったりする。こいつはiPodにあるmp3ファイルをエクスポートすることができるのでちょっと重宝している。だけど、iTunesが立ち上がっていると、iPodの検出にエラーを出して文句を言ってくる。あと、GUIがgtkを使っているので、MacOS Xにはあわない。

    ただ単にiPodに音楽ファイルを追加するときはgnupodで十分だし。gnupodもとても気に入っている。コマンドラインからアクセスできるのは何にも代え難い。だけど、CUIゆえに万人にお勧めできるとはとてもお世辞でも言えない。ウチのカミサンには絶対無理だね。

    といわけで、Songbirdがどれだけ使えるか試してみた。とりあえず、最初に立ち上げた時にお薦めのadd-onをインストールするか、て聞かれたので何も考えずに全てチェックした。だって、firefoxにしろ、thunderbirdにしろ、add-onを入れてナンボでしょ。少なくとも僕はそう思っている。たとえ、add-onのせいでアプリケーションの動きが緩慢になってもしょうがないと思っている。(ただしfirefoxのメモリ大食い状態は勘弁してほしいけどね。)

    で、立ち上げて使ってみると、ちゃんとiPodを検出するし、iTunesのライブラリもiTunes Music Library.xmlを指定するときっちりインポートする。うーーん、賢い。しかもiPodへの音楽ファイルの追加もできちゃう。あと、メニューの多国語化ができているのもすばらしいかな。別にメニューが英語でも困らないけど、初心者にお薦めする時には重要なポイントです。UIもiTunesを意識した作りになっているので、これも初心者にお薦めする時にはプラスポイントかな。

    ただし、今回試したSongbirdはDeveloper Previewリリースだといっているので、安心して使うには少し待ったほうがいいかも。この手のアプリケーションは少なくともStableじゃないと、安心して薦められない。あとは、今回はMacOSで試してみたので、Linuxでも試してみないとホントのところは分からないかも。自分の場合、家で使っているマシンは全てLinuxだから。Linuxで安定して稼働するようだったら、xmmsを捨ててデフォルトの音楽プレイヤーになるんだけどなぁ……。

    -=-=-=- 追記 -=-=-=-
    手近なLinux Boxで試してみた。結果はちょっとびみょー。初回の起動時に4回クラッシュした。とりあえず、send bug reportはしたけど……。で、クラッシュ後の再試行をくり返すと、使える状態になったぽい。これは家のマシンで再度検証する必要がありますなぁ。

    あと、Songbirdのプロファイルは~/.songbird1に保存されるポイ。なんだかなーーなディレクトリ名。他のMozillaプロジェクト由来のアプリケーションはそんな無作法なディレクトリは作らんぞ。

    2007-10-10

    ThunderbirdからWanderlustに移行する その2

    なんとか、thunderbirdのメールをmh形式に直せたので、次は変換したmhファイルをwlに読み込ませてみようと思う。とはいえ、~/.foldersに記載されているフォルダにmhファイルを突っ込めばいいので結構簡単。昨日のエントリで書いていたshell scriptではdirList.txtというthunderbirdのフォルダ構造をダンプしたテキストファイルがあるので、こいつをいじればいい。今回の場合は↓みたいな感じで列挙されていた。
    ././thunderbird/inbox
    ././thunderbird/inbox/hoge
    ././thunderbird/inbox/foo
    ././thunderbird/inbox/bar
    これを.foldersの形式に合わせればいいのでこんな感じか。
    % sed s/\.\\/\.\\/thunderbird\\//\\+/g dirList.txt > folders-sample.txt
    それと、wlのinboxでメールを受信しても、サーバにメールは残したい(まだ、試験段階だから)。なので.foldersのinboxは以下のように書いておく。
    |&ユーザ名/認証方式@pop3サーバ名|:+inbox
    +inboxの前にある:がミソ。こいつがあればメールを受信してもサーバにメッセージは残ったままになる。あとは、見栄えとかを気にしつつ.foldersを編集すればok。

    ついでにwlの設定もしちゃう。必要な設定はこんな感じ。
    • elmo-maildir-folder-path
      Mailへのパス。自分の場合は~/Mailとした
    • wl-default-spec
      なんかしらんが、+を設定
    • wl-default-folder
      多分、いわゆる、受信箱のこと。+inboxとしておいた
    • SMTP関係
      • wl-smtp-posting-user
        smtpアカウント名
      • wl-smtp-posting-server
        smtpサーバ
      • wl-smtp-authenticate-type
        認証方式
      • wl-smtp-posting-port
        smtpサーバのポート番号
      • wl-smtp-connection-type
        ウチの場合はsslを使っている
      • ssl-certificate-verification-policy
        ど忘れした、とりあえず2と叫んでいればいいかな
    • POP関係
      • elmo-pop3-default-user
        pop3のユーザ名
      • elmo-pop3-default-server
        pop3のサーバ
      • elmo-pop3-default-authenticate-type
        pop3の認証形式
      • elmo-pop3-default-port
        pop3サーバのポート番号
      • elmo-pop3-default-stream-type
        sslとか
    wanderlustの場合は.emacsではなくて、~/.wlに設定を書かないといけないらしいけど、自分の場合は~/.emacs.d/以下にemacs関係の設定をおいている。理由はバックアップを取る時に何も考えずにできるから。とりあえず、~/.emacs.d/emacs-wl.elというファイルを作って、.emacs.elから読み込ませてみる。なんとか、メールの受信は出来ているぽい。
    次はspamフィルタを付けてみる。thunderbirdで使っていたspamフィルターのSpamAssassinがwlでも使えるみたいなので、とりあえず、登録してみる。SpamAssassin自体はmac portsに登録されているので、コマンド一発で入った。
    % port install p5-mail-spamassasin +ssl
    あとは、wlの設定に以下を追加したら、wlからspamassassinが使えるようになる。
    (setq elmo-spam-scheme 'sa)
    (require 'wl-spam)
    (setq wl-spam-auto-check-folder-regexp-list '("\\+inbox"))
    (setq wl-spam-folder "+spam")
    spamassassinは学習させないと、メールがspamかどうか判定できないから今までthunderbirdで溜め込んだspamメールと正常なメールで学習させる。

    まずは、spamメールの学習から。例によってthunderbirdのJunkからincmでmh形式に直して、以下のコマンドを実行。--progressオプションを付けて作業の進捗具合をみておく(小心者なのでプロンプトが帰ってくるまで何も表示されないのは精神衛生上悪い)。
    % sa-learn --progress --spam ./spam
    次に非spamメールを学習させる。こっちは既にmh形式のメールファイルを~/Mail以下に持ってきているから、こんな感じでやってみる。
    % for i in `find ~/Mail/inbox -type f`; do
    sa-learn --progress --ham "$i"
    done
    今までの受信メールを全部喰わせたので、アホみたいに時間がかかった。

    というわけで、今日はこのぐらいで勘弁しておいてやる。あとはカスタマイズくらいかなぁ。

    2007-08-06

    SunbirdとiPod nanoを同期したい

    自分のスケジュールは全部iPod nanoに入れるようにしている。
    理由は
    • iPod nanoは外出時に必ず持っている
    • iCalを使えばMacとの同期が簡単
    • 元々、iCalendar形式でスケジュールを管理していた
    といった感じ。他にあると思うけど、この3つが主な理由。特に、必要に応じてOSを渡り歩く人種なので、どのプラットフォームでも理解できるiCalendar形式でのスケジュール管理というのが重要だったりする。

    だけど、iPod nanoにスケジュールを入れるにはiCalを使わないと、悲しいことになるという頭痛のタネがあった。/Calendars/にicsファイルを突っ込めば、ちゃんとスケジュールとして認識してくれるんだけど、スケジュールの名前が反映されないという問題があった。これはiCalendar形式でスケジュールの名前を定義するタグが定義されていない(ような気がする)という原因があるみたい。(ここらへんはRFCを真面目に読んでいないからわからない)

    だけど、最近はgoogleカレンダーでプライベート用のスケジュールを管理している。やっぱり、googleの提供するインターフェースはエレガントだし、ゆくゆくはgoogle APIを使ってマッシュアップしたいという目論みもある。一番いいのは自前のサーバを調達して、WebDAVで公開、ていうのが一番理想的だったりするんだけどね。俺WebDAVサーバはちょっとめんどくさいから、ペンディングしている。

    実は以前、google カレンダーを使いだして、3秒後ぐらいに壁にぶつかっている。それはiCalにはgoogleカレンダーと同期する機能が提供されていない、という問題に起因していた。この場合の「iCalにはgoogleカレンダーと同期する機能」の定義は「iCalとgoogleカレンダーの両方で正しくスケジュールを編集できる」ということ。iCalでもgoogleカレンダーの内容は参照できるみたいだけど、第3者が公開しているスケジュールとして認識されて、スケジュールの変更、追加ができない。ここらへんで最初は挫折して、iCalべったりな生活を余儀なくされていた。

    というわけで、sunbirdがgoogleカレンダーに対応したのを契機に真面目にiCalと喧嘩してみることにした。といりあえず、sunbirdにはiCalednar形式でスケジュールをエクスポートする機能がついているので、iPod nanoとの最低限の同期には問題ない。ただ、iPod nanoから見るとスケジュールの名前が「その他」てなるだけ。で、iPod nanoのスケジュール管理機能は音楽管理機能みたいにわけわかんないDBで管理していないと思うので、iCalがiPod nanoに吐いたicsファイルをじっと見てみた。どうやら、X-WR-CALNAME:というタグでスケジュールの名前をつけているらしい。タグの名前がXから始まっているのでAppleの独自拡張でしょう。多分。あと、diffをとってみて、sunbirdが吐いたicsファイルとiCalが吐いたicsファイルを比べて、足りていない部分を適当に書き足してみた。結果のdiffはこんな感じ。
    --- google_calendar.ics    2007-08-06 19:57:32.000000000 +0900
    +++ google_calendar-00.ics    2007-08-06 20:02:40.000000000 +0900
    @@ -1,14 +1,19 @@
    BEGIN:VCALENDAR
    VERSION:2.0
    +CALSCALE:GREGORIAN
    PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
    +X-WR-CALNAME:スケジュールの名前
    +X-WR-CALORDER:3
    BEGIN:VTIMEZONE
    -TZID:/mozilla.org/20070129_1/Asia/Tokyo
    -X-LIC-LOCATION:Asia/Tokyo
    +TZID:Asia/Tokyo
    BEGIN:STANDARD
    -TZOFFSETFROM:+0900
    -TZOFFSETTO:+0900
    -TZNAME:JST
    -DTSTART:19700101T000000
    +TZOFFSETTO:0900
    +END:STANDARD
    +END:VTIMEZONE
    +BEGIN:VTIMEZONE
    +TZID:Japan
    +BEGIN:STANDARD
    +TZOFFSETTO:0900
    END:STANDARD
    END:VTIMEZONE
    BEGIN:VEVENT
    
    多分、+X-WR-CALNAME:スケジュールの名前だけでいいと思うけど、とりあえずヘッダー部分で足りていないタグはいれてみた。
    で、書き足したicsファイルをiPod nanoのディレクトリに入れたら、きちんとスケジュールの名前も認識して表示された。

    とりあえず、満足。あとはこのパッチあての作業とか、iPod nanoに自動でコピーしてくれるスクリプトができたら幸せな生活が送れる気がする。

    2007-07-31

    Mac OS XのopenコマンドがLinuxにも欲しい!!

    Mac OS Xをコマンドラインから使っている人は知っていると思うが,Mac OS Xにはopenというステキなコマンドが用意されている.

    このコマンドの使い方はいたってシンプルで以下のように実行をする.
    open 引数

    実行結果は引数に与えたファイル属性にあったアプリケーションやプログラムを起動してくれるのである.pdfファイルを引数にするとプレビューが立ち上がるし,テキストファイルを引数にするとテキストエディタが立ち上がるといった具合だ.また,起動するプログラムはあらかじめ該当ファイルの「情報を見る」で登録することができる.ものぐさな自分にとってはまさにうってつけのコマンドだったりする.なので時々,MacからLinuxなどのUnixサーバにログインすると,openと打っている自分がいる.RedHat系のディストリビューションだけかもしれないが,実はopenというコマンドは用意されていて,コンソールなどで使うらしい.

    しかたがないのでopen.shというシェルスクリプトを作ってみることにした.

    まず,fileコマンドでファイルタイプを調べる.

    fileType="`file "$i" | awk -F:\ '{print $2}'`"

    で変数fileTypeに応じた処理をこんな感じで振り分ける.

    case "$fileType" in
    ファイルタイプ)
    ;;
    esac

    もしも,未知のファイルタイプに遭遇したら

    *)
    echo "$fileType"
    exit 1
    ;;

    としている.あとは使いながらファイルタイプのリストと処理を追加していけば幸せになれたりする.

    ついでに,リモートログインした時にXが使えないときはDISPLAY変数をよしなに設定してくれる処理を入れているので,ディレクトリの中身をnautilusとかでも見れたりできる.

    2007-07-30

    carbon emacsのnxmlモードが残念な件

    前のエントリでmamumo-modeが残念な動きをしているという話.

    この前のエントリでは自前でビルドしたEmacsを使うことにしたけど,やっぱり自前ビルドは茨の道だった.とくにインラインの日本語変換が悲しいことになっている.やっぱりCarbon Emcasのインラインパッチて重要だよね.

    とはいえ,Carbon Emacsの現状だとphpのコーディングのときにかなり悲しい思いをするのは確か.nxml-modeやnxhtml-modeのうまみが今ひとつ理解できないのもあって,/Applications/Emacs.app/Contents/Resources/site-lisp/nxml/nxhtml/php-mode.elだけを読み込ませることにした.あとのelispは無視する方向で……

    とりあえず,.emacsとかに

    (load "/Applications/Emacs.app/Contents/Resources/site-lisp/nxml/nxhtml/php-mode.el")
    (require 'php-mode)

    て書いて急場をしのぐ.がんばってmumamo-modeの最新版とかを入れてもいいんだけどね.今は時間がないのでこれでなんとかする.

    nxmlパッケージに含まれているphp-mode.elはバージョンが1.3.0とかになっているけど,あんまり気にしない.つーか,changelogを読んでもあんまり嬉しい追加機能はないみたい.まぁいいや.

    2007-07-25

    carbon emacsの2007 summerバージョン

    先日,Emacsが数年ぶりにバージョンアップし,自分が使っているCarbon Emacsも2007 Summerバージョンで本家のバージョンアップに追従したようだ.このCarbon Emacsはあらかじめ便利なelispプログラムも付属しているので大変重宝して使っていたのだが,nxmlパッケージ(とくにphp-modeとmumamo-mode)がうまく動作していないような気がする.

    元々のphp-modeはsourceforgeで配布されているパッケージが入っていたようだが,今回のバージョンからnxmlパッケージに含まれるようになったらしい.このためphp-modeでファイルを編集している時に,TabもしくはC-iでインデントをしようとすると,mumamo-modeていうnxmlパッケージに入っているmmm-modeの新しいやつを使うかい?と聞かれるようになった.

    最初はとりあえずyesと答えていたけど,どうやらmumamo-modeの起動に失敗しているっぽい.エラーメッセージを読んだら,autostart.elというファイルが見つからないとぶーたれていた.とりあえず.emacs.elでautostart.elを直接指定して読み込ませるようにしたら,こんどはmumamo-modeを使うぜ,と叫んだ時点でemacsが強制終了するようになった……

    Carbon Emacsで提供されているnxmlモードはビミョーに古い気がするけど,新しいバージョンを入れようとまでは思わない.nxmlパッケージの中のnxhtml-modeはかなり気になるモードだけど……

    ということで,Emacsはgnu版を落としてきて,自分でビルドしたものを使うようにした.とりあえずはCarbon Emacsの次期バージョンでこの問題が解決したら,Carbon Emacsを使うけど,現状だったら自分でビルドしたemacsを使っていたほうがいいかな.

    2006-10-18

    狙ってたのか!?

    http://www.yomiuri.co.jp/national/news/20061013i314.htm
    http://japan.cnet.com/news/tech/story/0,2000056025,20276867,00.htm

    Appleすげーー.
    こんなおいしいネタを提供してくれるAppleが大好きだ.

    2006-10-12

    Apple iBook 12inchバッテリーリコール 完結編

    昨日,バッテリーが届いた.9月26日に申し込みをしたので3週間も待っていない計算になる.すばらしい!! ちなみに古いほうのバッテリーは何も考えずに,運送屋のにいちゃんに渡した. これで爆発の心配はなくなったかな. まぁ,今回のリコール騒ぎの中でも俺のiBook君は24時間フル稼働だったわけだが……

    2006-09-26

    Apple iBook 12inchバッテリーリコールのその後

    仕事が一区切りしたのでバッテリー交換プログラムに申し込んだ. どうやら二つのバッテリーのうち一つは対象外だったようだ.よかった,よかった. でも,『あたり』のバッテリーを今まで使い,対象外のバッテリーをはずしていたので,アホな話といえば,そうかもしれない.なんにせよ今まで爆発もせずにきっちり働いていたので,あんまり気にしていなかったんだけど… そういえば,アップルのバッテリリコールプログラムには色々と問題があるらしい. やれ,4~6週間で届くはずなのに6週間たっても届かないだの,バッテリーを送り返すときには完全放電させないといけないだの. さてさて,どーなることやら…… そういえば,びみょーに曲がっている筐体やゴム足の修理とかでApple Storeに行かなくちゃ行けないんだけどどうしようかな.昼休みとかにさっくり行って申し込みだけでもしたいんだけど……

    2006-09-19

    Dual Monitor with iBook G4

    先々週の合宿で知り合いにミラーリングしかできないはずのiBookでもデュアルモニター化するパッチを教えてもらった. ちょーきもちいーっす. やっぱり2枚のモニターがあるとプログラミングが進みますな.

    2006-08-25

    Apple iBook 12inchバッテリーリコール

    どうやら当たりを引いてしまったらしい. さて,いつ交換に行こうか.会社の近くにApple Storeがあるのに仕事が忙しすぎて,とてもじゃないけど交換するヨユーがない.ちょうど他にも気になることがあるから,今の仕事が一段落したら交換しよう. その前に合宿があるんだよなぁ…… ### 追記 ### Apple Storeに持っていっても交換してくれないらしい.フォームに必要事項を入れたら運送屋のおっちゃんが新しい電池を持ってきてくれて,問題のある電池を持って帰ってくれるらしい. 確かに便利と言えば,便利なんだけど,これを機にApple Storeで修理をしようと思っていたのにな…… さて,どーすっべぇ.