2010年02月09日

PSPSDK on Mac OS X 10.6

 Mac OS X 10.6 Snow Leopard で PSPSDK をビルドする為の備忘録。
 こちらの記事を参考にしました。

 まず下記のコマンドを実行します。

 port では 32 ビット版が必要とかなると怖いので、闇雲に+universalしてます。

 次に 005-gcc-4.3.2-stage2.sh をエディタで開いて、以下のように追加して下さい。

追加前:


 ## Enter the source directory and patch the source code.
 cd gcc-4.3.2
 patch -p1 < ../../patches/gcc-4.3.2-PSP.patch

追加後:


 ## Enter the source directory and patch the source code.
 cd gcc-4.3.2
 patch -p1 < ../../patches/gcc-4.3.2-PSP.patch

 cp gcc/cp/Make-lang.in gcc/cp/Make-lang.in.orig
 sed -e "s/tree-inline.o//" gcc/cp/Make-lang.in.orig > gcc/cp/Make-lang.in

 次に 007-gdb-6.8.sh を開いて以下のように追加して下さい。

追加前:


 ## Enter the source directory and patch the source code.
 cd gdb-6.8
 patch -p1 < ../../patches/gdb-6.8-PSP.patch

追加後:


 ## Enter the source directory and patch the source code.
 cd gdb-6.8
 patch -p1 < ../../patches/gdb-6.8-PSP.patch

 cp sim/mips/interp.c sim/mips/interp.c.orig
 sed -e "s/#include \"sysdep.h\"//" sim/mips/interp.c.orig > sim/mips/interp.c

 準備ができたらいよいよビルドします。


$ export C_INCLUDE_PATH="/opt/local/include" 
$ export CPLUS_INCLUDE_PATH="/opt/local/include" 
$ export LIBRARY_PATH="/opt/local/lib" 
$ ./toolchain.sh

2010年01月19日

vimで矩形タイプ

 今までvimでCtrl+Vで矩形選択してキー入力する方法が分からない。
 諸悪の根源は何故かiを受け付けてくれない事。
 ググってもcくらいしか見つからなかったんだけど、今日vim使いに聞いてみたらI (Shift+i)でいいらしい。

 なんとIは行頭じゃなくてセレクションの頭って意味になるのか!
 これは便利。サクラエディタの使い勝手に一段と近づいた。
 大切な事なのでもう一度言うけれど、諸悪の根源はiを受け付けてくれない事。vimの設計が悪い。

 それにしても、長年使っていて今更知ったよ。
 基本的にマニュアル読まないからなあ。

2010年01月18日

郵便番号-住所データベース

 郵便番号と住所の対応付けのデータベースってちゃんと日本郵便が配布してるんだ。知らなかった。

郵便番号データダウンロード - 日本郵便

 対応表みたいのはあるだろうと思っていたけれど、ちゃんとcsvになっているのはありがたい。

2010年01月16日

GNU make でファイル名にスペース

 GNU make でファイル名にスペースを入れる方法が分からない。


app: "foo bar.o" # make が foo bar.c を見つけられない



app: foo\ bar.o # gcc が動き出すけど foo と bar が別のパラメータで渡る

で、探していたらこんな文章が。
 GNU Make meets file names with spaces in them
 ほお、\\オペレータなんてあるのか。そうか「\」をエスケープして gcc に渡すんだな。

 で、gcc に「foo\ bar」が渡ると期待してやってみるも動かない。
 そもそも「foo\\ bar」にすると make がファイルを見つけられない。

 散々悩む。

 この文章が書かれたの4月1日じゃん!
 文章書いた奴は紛らわしいけどまあいいとして、GNU make ふざけるな。

2009年12月14日

gprof

 GNUプロファイラ gprof。
 こいつでプロファイルが取れるわけだけれども、
$ gcc -pg myprogram.c
$ ./a.out
$ gprof ./a.out gmon.out
なんて使い方をしていたら変なところで時間がかかって本当に時間がかかっている箇所が上位に上がるか分からない。

 かと言って
$ gcc -pg -O2 -D NDEBUG myprogram.c
$ ./a.out
$ gprof ./a.out gmon.out
なんてやったら、下手するとプロファイルした結果にmainしか登場しない。

 じゃあなんでプロファイルしたい関数が結果に現れないかと言えば、インライン化されてしまっているから。なので、
$ gcc -pg -O2 -D NDEBUG -finline-limit=2 myprogram.c
$ ./a.out
$ gprof ./a.out gmon.out
 これが正解。-finline-limit=2の「2」は目的に応じて適宜変えると良い。

2009年12月11日

Karaoke 0.1.5

 iTunes の歌詞をデスクトップに表示するソフト、Karaoke 0.1.5 をリリース。

  • 最適化。
  • Mac OS X 10.5 以降に対応。
  • Preferences で色を選択できるようになった。

 0.1.5 は去年の 7 月に作ったんだけど、リリースを忘れてた。

2009年11月29日

Macのエディタ事情

 Mac OS が Mac OS X になり UNIX ベースになってからもう 8 年が過ぎ、あと数ヶ月で 10 年目に突入しようというのに、フリーでまともなエディタが未だ見当たらない。
 結局、コードは Windows で書いてしまった方が早かったりする。
 Mac のエディタが進化しないのは誰もやりたがらない大変な作業だからなのかな。

 もうそろそろ完璧なものが欲しい。でも自分が 1 から作るには時間がかかり過ぎる。かといってエディタの作者だって少ない時間を削って作っているのだろうから、大きな機能は要望しづらい。
 いっその事オープンソースにしてくれれば足りない機能だけ追加できるかもしれないのに。

 シェアウェアなら良いものがあるのだろうか。誰か教えて。

 エディタに必要だと思っている機能はこんな感じ。上に行くほど優先度が高い。

  1. 正規表現検索
  2. 垂直分割
  3. 矩形選択
    (複数行の同時入力、同時ペーストも出来ない物は矩形で選択が出来る意味無し。あとキーボードで選択できる事。)
  4. 検索ボックスの「すべてを置換」にショートカット
  5. キーワード補間
  6. ハイライト検索
  7. オートインデント
    (スマートインデントではなく単に改行したら前の行と同じ位置までインデントするだけのやつ)
  8. 複数行選択してインデント/逆インデント
  9. 対応する括弧へのジャンプ
  10. 検索の「単語単位」「正規表現」のチェックボックスにショートカット
  11. 不可視文字の可視化
  12. 指定した行番号にジャンプ
  13. 関数リスト(ジャンプ)
  14. シンタックスカラーリング
  15. 文字コード/改行コード
  16. 行番号の表示
  17. スマートインデント
  18. ウィンドウ幅での折り返し
  19. 対応する括弧の強調

 こうして本当に必要なものに順位を付けてみると、カラーリングなんて派手な割に無くても困らない事に気づく。
 文字コードの自動判別は必須だけれども、出来なきゃ出来ないで外部ツールで自動化すると思うのでエディタとして必須ではない。

 そしてモニタがどんどん横長になるこの時代に、垂直分割の出来るエディタが知る限り Xcode しか無い。信じられない。他のエディタでも実は出来て、それを気づいていないだけなんだろうか。

 本物の矩形選択は、意外と使った事が無くて知られていないんじゃないだろうか。Mac にまともな矩形選択を出来るエディタは「無い」。
 ぶっちゃけ矩形選択が出来ればオートインデントなんていらないのに(ごめんなさい、誇張です)。
 逆に、単に矩形で選択できるだけのエディタは多いんだけれども、いったい何に使うんだろう。削除とコピーくらいしか出来ない気がする。フリーカーソルでペースト出来るならまだ救いがあるけど、それ以外のエディタは何に使うの?

 とりあえず、せめて Xcode の検索ボックスがキーボードともう少し相性良くなって欲しい。
 しょっちゅう検索条件が変わるのに毎回ステップが多いのはしんどい。