金曜日, 3月 25, 2011

Cocoa Emacs 23の日本語入力モードでOSXのIMの動作を制御する

昨日まで年度末の報告書書きに忙殺されていたのですが、指定フォーマットがLaTeXのものもあるのです。で通常TeX書きするときはEmacsを使っていますので今回も使っていたのですが、Cocoa Emacsでの日本語入力設定をちゃんとやっていなかったので、使い勝手が通常と違って煩わしかったわけです。別に何もしなくてもCmd+Spcで日本語入力できますが、Emacs使っているときはCtrl-\を使いたいわけです。せっかくいろいろパッチをあててビルドしているのですから、ちゃんと恩恵を得ないと馬鹿みたいだとも思うわけです。

で、忙しいにも関わらずついカッとなって検索するとちゃんと紹介している方がおられるので、そのまま設定してみます。確かにCtrl-\が有効になったので使い勝手はだいぶ向上しました。しかし、日本語入力モードだと「ESC-なんちゃら」なキーアサインが厳しいです。ちゃんと「Meta+なんちゃら」な操作に慣れた方がいいのかな。

日曜日, 2月 20, 2011

Macから他のPCの音を鳴らしてみた

Mac miniを買った頃からなんとなく考えていた事を今頃試してみました。

以前から使っていたPCにはKENWOOD RD-VH7PCを繋いで音を鳴らしていました。Mac miniからも音を鳴らそうと考えましたが、その為に別のスピーカを用意する必要は感じません。取りあえず普段の使用に於いては、両方の音が混じって音が出てくるのに何の問題もありません。両方の音を混ぜるには、双方のマシンからの音声出力をミキサに通してあげれば良いはずです。ですが、その為に新しい機械を用意する必要も当面は感じていません。

単に音が混ざればいいのですから、片方の機械の音声出力をもう片方の機械に入力してあげて、その機械自身から音声出力とミキシングする処理をするソフトウェアミキサを用意すれば良いはずです。メインマシンと現在捉えているMac miniにそのようなソフトウェアがあるか調べてみますとありました。こちらで紹介されている方法がまさにそれです。紹介されている手順に従ってSoundflowerとLadioCastをインストールしますと、確かに思った通りの動作をします。ですが、普通に考えますと自分の用途にはミキサであるLadioCastだけで良いように思いますので、試しにSoundflowerを切ってみますと、問題なく所望の動作をしています。どうやら自分にはこれで十分な様です。

火曜日, 2月 01, 2011

Macbook Airでmatplotlibが使えなかったのでどうにかした

いえ、ちゃんとつかえているのですよ。ただ最近はPyQtからしか使っていなかったので、pylabのデフォルトバックエンドでは全然動作確認してませんでした。で、いざ使おうとしたらうごかなかった。

以前にmatplotlibrcを書き換えることを書いていますが、それってどこにあるんだっけ?と調べてたら、なるほどここでもよかったのか。ということで、自分でmatplotlibファイルをこしらえることで動くようになりました。

水曜日, 1月 26, 2011

Pymacsが動いたり動かなかったりしたのをむりやりどうにかしてみた

先日にMacbook Air上のPython環境を整備してみたのですが、ようやっと役に立ってもらおうとコード書きを再開してみると何故か自動補完が効きません。ところが全然効かないわけでもなくて、まっさらなバッファにPythonコードを書き始めるとちゃんと補完が効きます。何が起きてるんだろう?と思い、何気なく*Pymacs*バッファを見てみると「UnicodeDecodeError」とかが出ています。ひょっとしてと思い、先程の補完が効いたバッファに日本語でコメントを書きこむと、途端に補完が効かなくなります。どうやら何処かで文字コードの扱いが失敗しているようです。

メッセージをよく見ると「.encode('ISO-8859-1').decode('UTF-8')」のくだりがあやしそうな気がします。で、この「.encode('ISO-8859-1').decode('UTF-8')」を誰が送っているかですが、find + grepしてみますと「pymacs.el」にありました。しかしながら、どうすればいいのかよく判らない(めんどうなので調べたくない)ので、ついかっとなって

454c454,455
<                  (princ ".encode('ISO-8859-1').decode('UTF-8')")))
---
>                  ;(princ ".encode('ISO-8859-1').decode('UTF-8')")))
>                  (princ ".decode('UTF-8')")))
とかしてしまいました。何故か動いているようです。誰か正しい対処方法を教えて下さい。

火曜日, 1月 25, 2011

*nixでバイナリを含むディレクトリの比較をする

昔からの懸案でしたが、何のことはない diff でできるそうです。

$ diff -qr cmp1 cmp2

月曜日, 1月 24, 2011

Cocoa Emacs にAUCTeXをインストールしてみた

色々仕事が滞っていて、こんなことしてる場合かと思いつつやってみた。

とりあえずだいたいここにある感じで、

$ ./configure --with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --with-lispdir=/Applications/Emacs.app/Contents/Resources/site-lisp/
ちょっとだけインストールパスが違うけど。

で、C-c C-p C-d ってやってみたけど「latexのパスが見つからないよ?」と怒られる。M-x getevn PATH とかやると見事に /opt/local/bin が含まれていない。ので、ここいらを参考に~/.emacs.d/init.elに

(setq exec-path (append exec-path '("/opt/local/bin")))
を追記。動くようになりました。

火曜日, 1月 04, 2011

MacとXbeeをUSB Explolerで繋いでみた

年末年始も微妙に慌ただしく、年初の投稿がやっぱりこんなんだったり。この話自体は昨年末にやってた事だったりして、今頃になって備忘録を書いてるのです。

昨年末になって、いろいろな通信条件でのXbeeでのデータスループットを測る必要がでてきました。以前から薄々そうなると思ってはいたのですが、準備する時間がなかったのであわてて準備する事になったわけです。昨夏に自分らがXbeeを導入した直後に隣の部署でも必要があってXbeeとUSB Explolerを数個購入していて、今回伺ってみた所快くお借りする事ができました。Xbeeで受信したデータをそのままUSB serialインターフェースに通し、PC側で受信したデータ量をカウントするという腹です。

今回はMacでもできるようにしてみようと思い試してみました。まずはここからOSXに対応したFTDIドライバをダウンロードしインストールしました。実際のUSB serialの動作確認ですが、昔ながらのsttyとcuでも試してみましたが、こちらで紹介されていたjermialというソフトウェアを試してみた所なかなかに快適です。USB serialのデバイスは/dev/cu.usbserial-????????から適切なものを探して使います。

日曜日, 12月 26, 2010

ポータブルHDDをWindows, Mac, Linuxで共有してみた

安かったからという理由でWestern Digital My Passport Essential WDBAAA2500ABK-NESNとかいうUSB HDDを買った。良くあるUSB接続HDDだと思って調べずに買ったらいろいろ驚いた。一緒にリードオンリーなストレージが見えて、そこにあるユーティリティを介さないとストレージにアクセスできない。しかも、仕事で使用しているWindowsでマウントしてからアンマウントしようとすると見事にブルースクリーンに。これでは使えないので、どうにかならないか検討してみた。

調べてみると、新しいファームウェアにすればデータ秘匿機能を無効にする事ができ、Ubuntuなどでも使えるようになるようだ。また、例のリードオンリーなストレージも見えなくする事ができる。それではとOSX用のファームウェアをダウンロードしてアップデート。確かに例の機能は無効化できて、普通のUSB HDDの用に使えるようになった。

次は何のファイルシステムでフォーマットすべきかで悩む。以前はLinuxしか使わない時期が長かったので、ext2-ext3でフォーマットする事が多かった。今の仕事をするようになってからは流石にWindowsを使う事が多くなったのでFAT32にしたりもした。最近は200GB程度の軽く4GBオーバのファイルを多く取り扱っていたので、NTFSでフォーマットして使っていた。このような大きなファイルを扱うようになるのと前後してUbuntuを使うようになった。以前はLinuxのNTFS対応は実験的実装の時期が長く、読み出すのはできてもファイルを書き込むのは怖くてできなかった。ところが最近のUbuntuでは普通に勝手にマウントされて書き込み危険の警告も無く、あっけなく書き込むことができている。問題はOSXへの対応だ。OSXではNTFSのファイルを読む事はできるが書き込む事ができないと思っていた。FUSEを使おうかと思っていたのだけど、パフォーマンスを考えれると二の足を踏んでいた。ところが調べてみると、Snow LeopardではNTFSへの書き込みに対応していたらしい。しかも簡単にマウントするツールもあるらしいときき、導入してみたところ実に快適である。取りあえずこれで使い続ける事にする。

月曜日, 11月 29, 2010

MacPorts で TeXLive を入れてしまった Snow Leopard に pTeX を再びインストールした

MacBook Air さんにもpTeX を入れてあげなければ、と思ってインストールを試みたら撥ねられた。どうも TeXLive とぶつかっているらしい。

あれ、TeXLive なんて何時入れたっけ?と思ったら、matplotlib をインストールしたときに入ったらしい。

$ sudo port install py26-matplotlib +no_tkinter +cairo +ghostscript +latex 
確かにやらかしている。まずはこれをどうにかする。
$ sudo port install py26-matplotlib +no_tkinter +cairo +ghostscript
$ sudo port uninstall py26-matplotlib @1.0.0_0+cairo+ghostscript+latex
$ sudo port uninstall texlive-bin-extra
$ [その他 texlive-basic, texlive-bin, texlive-common と依存しているパッケージをひたすら uninstall]
そして再度 pTeX をインストール。
$ sudo port install pTeX +utf8 +no_x11
どうにか入った。

Snow Leopard で Octave をインストールしてみた

最近それっぽい計算も必要だったりしているのですが、実は Octave や MATLAB は全然使ったことがなく、Python + numpy + scipy + matplotlib + f2py でだいたい事足りていました。それでも MATLAB っぽいコードを見つけては動かしてみたいと思ったりするのでインストールしてみたいかなと。

どうインストールすべきなのか躊躇していたところ、MacPorts で最近まであった問題が解決された模様とのことで、そのまんまトライ。

$ sudo port install octave +gcc44 +no_x11
+no_x11 はあまり意味がなかったかもしれない。

最初 gnuplot から AquaTerm でのグラフ表示ができなくてしばし悩んだが、何故だか判らないけどしばらくいじっていたら表示されるようになった。結局まだ何もしていないはずなのに不思議。

金曜日, 11月 26, 2010

zsh が ~/.profile を読んでくれない

"~/.zprofile" だったのか!

タッチパッドから Cocoa Emacs をスクロールさせてみた

普通に

(mouse-wheel-mode)
としただけだと、"<wheel-down> is undefined" とか "<triple-scroll-down> is undefined" とかいってスクロールしてくれない。

ならばと、こちらを参考に define してみた。

(mouse-wheel-mode)
(global-set-key [wheel-up]
                '(lambda () "" (interactive) (scroll-down 1)))
(global-set-key [wheel-down]
                '(lambda () "" (interactive) (scroll-up 1)))
(global-set-key [double-wheel-up]
                '(lambda () "" (interactive) (scroll-down 1)))
(global-set-key [double-wheel-down]
                '(lambda () "" (interactive) (scroll-up 1)))
(global-set-key [triple-wheel-up]
                '(lambda () "" (interactive) (scroll-down 2)))
(global-set-key [triple-wheel-down]
                '(lambda () "" (interactive) (scroll-up 2)))
なにこれ快適。

emacs で HideShow を使ってみた

こちらにあるままに。正直このキーアサインのままでは微妙だと思う。

Cocoa Emacs で Command キーが Meta キーになるようにした

正直これだけは慣れなかった。こちらを参考に対応。

(cond
 ((string-match "apple-darwin" system-configuration)
  (setq ns-command-modifier (quote meta))
  (setq ns-alternate-modifier (quote super))
  )
)

木曜日, 11月 25, 2010

Makefile内で Windows と Mac と Linux 環境で分岐する

前にも似たようなエントリで書いてるけど、Macを付け足しておかないと。

ifeq (\$(OS),Windows_NT)
# for Windows
.....
else
UNAME = \${shell uname}

ifeq (\$(UNAME),Linux)
# for Linux
.....
endif

ifeq (\$(UNAME),Darwin)
# for MacOSX
.....
endif

endif

Cocoa Emacs で Python 開発環境を再び整えた

やったことをすぐに記録しないと後で絶対忘れるので、仕事中でも書く!

基本的に以前と同様にこちらで書かれていることをそのままなぞっただけなのですが、結構忘れることがありました。特に pymacs の使い方。こちら(その他に 1, 2)に書かれているようにropemacsも試してみましたが、こちらに書かれているようにやはりうまくいきませんでした。 まずは、setup.py と easy_install が通るようにします。

$ sudo port install py26-distribute
$ sudo port install py26-pip

次に python-mode.el をインストール。ここからダウンロードして load-path の通った何処か(ヲイラは ~/.emacs.d/lisp)に置きます。.emacs.d/init.el には以下のように記載します。

(require 'python-mode)
(setq auto-mode-alist (cons '("\\.py$" . python-mode) auto-mode-alist))
(setq interpreter-mode-alist (cons '("python" . python-mode)
       interpreter-mode-alist))
(autoload 'python-mode "python-mode" "Python editing mode." t)

AutoComplete はこちらにあるまま行いました。emacs から M-x load-file で etc/install.el を読み込み、インストール先(ヲイラは ~/.emacs.d/lisp)を指定するだけです。.emacs.d/init.el へは以下のように記載致しました。

;;
;=======================================================================
; auto complete
;=======================================================================

(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/.emacs.d/lisp//ac-dict")
(ac-config-default)

(setq ac-use-menu-map t)
;; デフォルトで設定済み
(define-key ac-menu-map "\C-n" 'ac-next)
(define-key ac-menu-map "\C-p" 'ac-previous)
(global-auto-complete-mode t)

そして pymacs です。こちらからインストールするためのファイルをダウンロードしようとしましたが、何故かアクセスできません。仕方がないので、GitHubから複製しました。pymacs 用のスクリプトは PYTHONPATH の通った所(ヲイラは ~/.emacs.d/pymacs)にコピーします。

$ git clone https://github.com/pinard/Pymacs.git
$ cd Pymacs
$ make
$ cp pymacs.el ~/.emacs.d/lisp/
$ cp -r Pymacs ~/.emacs.d/pymacs

最後に pysmell ですが、これはこちらのままです。pysmell.el やスクリプトは見つからなかったので、こちらの zip ファイルから取得しました(初めからこれでインストールすれば良かったかも)。

$ sudo easy_install pysmell
$ curl -O http://pypi.python.org/packages/source/p/pysmell/pysmell-0.7.3.zip
$ unzip pysmell-0.7.3.zip
$ cp pysmell.el ~/.emacs.d/lisp
$ cp -r pysmell ~/.emacs.d/pymacs
今回のPYSMELLTAGSの作成はこんな感じで。
pysmell /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/ /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/numpy /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib -x site-packages test -o ~/PYSMELLTAGS.stdlib

.emacs.d/init.el への記載内容はこちらをだいたいそのまま。これでどうにか動くようになったようです。

水曜日, 11月 24, 2010

MacBook Air のために再び Python2.6 → matplotlib をコンパイルした

続いて現在の生活必需品である、Python + numpy + scipy + ipython + matplotlib をコンパイルした。

これもまた先の状況とは全く変わっていて、Atlas のビルドに引っかかるなど一切なし。現時点では以下の手順で全く問題ないようです。

$ sudo port install python26 +gcc44 +no_tkinter
$ sudo port install python_select
$ sudo python_select python26
$ sudo port install py26-numpy +gcc44
$ sudo port install py26-scipy +gcc44
$ sudo port install py26-ipython
$ sudo port install py26-matplotlib +no_tkinter +cairo +ghostscript +latex 

ついでなのでPyQtもインストール

sudo port install py26-pyqt4

MacBook Air のために再び Cocoa Emacs をコンパイルした

以前に Mac mini 用にビルドした Cocoa Emacs のイメージファイルをそのままコピーしようかと思いましたが、MacBook Air の処理能力を見ておこうと改めてコンパイルしてみました。

ところが、前回ビルドした時と状況が結構変わっています。最新の安定版が 23.2 に上がっていますので、敢えてリポジトリからでなく安定版の tar ball をダウンロードします。また、よくよく見ると、今年の初夏にはリリースされていますね、emacs23.2。何を寝ぼけていたのだろう。安定版用 inline patch も用意されていますのでこれを適用します。

結局のところ、こちらで紹介されている方法そのままでまったく問題ありませんでした。

curl -O http://ftp.gnu.org/pub/gnu/emacs/emacs-23.2.tar.gz
curl -O http://jaist.dl.sourceforge.jp/macemacsjp/47986/inline_patch-23.2-beta3.tar.gz
tar xvfz inline_patch-23.2-beta3.tar.gz
tar xvfz emacs-23.2.tar.gz
cd emacs-23.2
patch -p 0 < ../inline_patch-23.2-beta3/emacs-inline.patch
./configure --with-ns --without-x
make bootstrap
make install
open nextstep/Emacs.app

火曜日, 11月 23, 2010

MacBook Air (3,2) を買ってしまった

先月のAppleスペシャルイベント前の噂からずーっと心を奪われていたMacbook Airをやっと買いました。今月の初めに初めてApple Store(心斎橋)へ行って見てきたのですが、11.6インチと13.3インチのどっちを買うかで延々と悩み、あまりの悩みっぷりを利用して店員の兄ちゃんを釣り上げ、あれこれ調子の良いことを更に延々と話倒しながらも何も買わずに帰るという極悪非道なことをしてきたのですね。それからも悩み続けたのですが、結局「どこでもプログラム書きに使いたい」というのが自分の一番強い欲求な訳ですので、素直にそれに従ってついうっかり「一番いいのを頼む」をやってしまったわけです。

決心したのは先々週だったのですがオーダしたのは先々週の日曜の深夜。次の日の昼間に「カード会社から拒否された」とメールが。まったく理由がわからなかったので、これでダメならカード会社に連絡しようと登録されていたはずのと同じカード番号を再入力。何故かこれはちゃんと通った。そもそも同じカード情報で一日前にiPhoneアプリ購入できているので、拒否されたこと自体が謎。きっちり3営業日後の金曜日に上海を出発。で、一昨日の日曜日に到着。直ぐに開封したかったのだけど、その日は買い物に出かけたりしておあずけ。昨日になってやっと開封してインストール作業に入った訳です。

まずは最近仕事で使ってみている Evernote, Dropbox, XMindをインストール。特にDropboxについては、こちらを参考に、選択したフォルダのみを同期するようにしてみました。現時点でダウンロードできるβ版(0.8.114)についてForumの内容を確認しながらダウンロードしてインストール。後は先に書いたXcodeや最近購入したOffice for Mac 2011をインストールしたり。

現在、行きつけのお店でDDを使って書き込み中。最近ずっとバッテリが2時間持たないノートPCばかり使っていたので少なくとも5時間以上は持ちそうな機械は久しぶり。PHSの通信が遅いことを除けば結構快適だと思うです。今のところは満足。

Xcodeインストーラをダウンロードしようとしたら拒否された

XcodeをインストールしようとApple Developerに行って、「そういえばデベロッパ登録する必要があるんだよな」とか思ったら案の定登録を迫られたので、必要項目を記載して晴れて開発者登録を済ませ、さてダウンロード…と思ったら「Access denied for download.」とかご無体なことを仰る。特にやましいことはないはずなのに。

こちらを見ると「キーチェーンアクセスを確認せよ」と仰っている。仰せのままに確認してみると、本来あるはずらしい「connect.apple.com」のエントリが全然見当たらない。登録時に何かしくったのかもしれない。試しに手入力でconnect.apple.comエントリを作成して、名称と場所に「connect.apple.com」、アカウントに登録したEmailアドレス、あとはパスワードを入力。再びダウンロードを試みると、何事もなかったようにダウンロードを開始した。