2007-10-31

MacVim

10.4で動作確認したら普通に使えた。インライン変換時の文字幅が変な件がMacVimの修正で直ったのか、Leopardだから発生するのか、は不明。あとで調べる。

kaoriyaまわり削ったMacPortsをMacVimグループに投稿。MacPortsに送るのがスジかもしれんけど。どうかな。

2007/10/31

itojunさん

言葉が出ません...

が、書いておきたい。残しておきたい。


Happy Hacking!

2007-10-30

vimとMacVim

MacVimは専用リポジトリなのでportもvimから分離させてみました。fetchからbuild方法も結構違うので。

vim 7.1.146に更新

http://lapangan.net/darwinports/index.php?PrivatePortfile%2FVim

MacVim 今日のリビジョンは401。vim本体は7.1.145になってました。

http://lapangan.net/darwinports/index.php?PrivatePortfile%2FMacVim


Leopardだと+universalで作ろうとするとCFLAGSに-arch ppcが入らないという謎の挙動。src/auto/config.mkを書き換えてbuild。


で、MacVim 今日のだとIM上の文字幅が半角扱い?なのか重なっちゃって使い辛いです。インライン用のフォントまわりを要チェック。

2007-10-28

ming

もうパッチが取り込まれてます。よかった。これで楽ちん。

swftorubyパッチは

http://sourceforge.jp/projects/splhack/wiki/FrontPage#ming

に置きました。


GitのGoogle Tech Talks

2007-10-27

ming / ming-ruby


■ming
[1821118] Uninitialized variable in SWFFileAttributes.
[1821123] Support swf version 8 in PreBuiltClip.

■ming-ruby
[#15101] Sync with ming trunk.


patch送るなんて超久しぶり。

あ、ruby binding書いて送ってmingに取り込まれたものの、その後放置してたのは私です。すみません...


あと、swftoruby(なくなっているようですのでgoogle cache)をtrunkにあてられるように改造したのもあります。LGPLだし公開していいですよね。

iTerm

LeopardでTerminal.appがマシになりましたが、wcwidthのせいでまだまだ。http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.cのwcwidthを提供するshared library作ってpreloadという手もとれそうですが、ここはiTermで。

http://lapangan.net/darwinports/index.php?PrivatePortfile%2FiTerm

http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/PrivatePortfile/aqua/iTerm/?root=splhack

10.5のSDKだと通らないところもpatchあててます。

A2DP

LeopardでもDR-BT20NXで音質がAMラジオ並みなのでA2DP対応してないのかと思いましたが、

/System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/IOBluetoothA2DPAudioDriver.kext

ありました。サウンドデバイスの設定したりデバイス削除して再度登録したりしてたら、まともになりました。「ヘッドセットとして使用」をoffにして「ヘッドフォンとして使用」のみonにすれば確実っぽい。マイク使えなくなりますけど。


VMware Fusion 1.1 RC インストール最後にエラーが出た。けどちゃんと動いてます。CTRL/CAPS入れ換えがリセットされるのが修正されてて幸せ。


zsh-devel改造版も修正。

http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/PrivatePortfile/shells/zsh-devel/?root=splhack

http://lapangan.net/darwinports/index.php?PrivatePortfile%2FZsh-devel

Leopardファーストインプレッション

sshのパスフレーズまでもKeyChainに入った。これはssh-agentとかの類いは不要になったということか。凄い。
でもsudoでのパスワードは入らなかった。

zsh-devel改造版(http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/PrivatePortfile/shells/zsh-devel/?root=splhack)が起動時に必ずdouble freeなmalloc errorを出すようになった。うむむ。いままでも使ってると出るときがあったけど。あきらめてmacportsオリジナルの最新版を試してみるが、checking for C compiler default output file name... configure: error: C compiler cannot create executables とか。gcc-4.0: argument to `-V' is missing って何かgccのoptionが変わったか?

ってXcodeまったく動かないじゃん! 実行すると即死。

と思ったらDVDにXcode3.0が入ってたのでインストール。

オリジナルのzsh-develも動いた。

改造版は wcwidth.c が更新されてたので、さらに改造が必要。

2007-10-26

AmaTunes

RubyCocoaでhttp://www.bruji.com/cocoa/barcode.htmlを使ったアプリを作りました。その名も AmaTunes (笑)

カメラで読み取ったバーコードのISBNをAmazonで検索して、それをオーディオブック形式(m4b)に変換してiTunesにつっこむ代物。



最初PDFにしとけば本ぽくていいかなと思ったんですが、アートワークが表示されないっぽいのでm4b形式で。そこはfaacで。サウンド部分は無音。

standalonify.rb で単体で動くようにしてみたんですが、rubygemsがうまくrequireできなかったので、各gemsのpathを直接指定して逃げました。

あとちょっとで発売されるLeopardではRubyCocoa, rubygems標準搭載なので配布が楽になるのがうれしい。

って、そう簡単にTiger(10.4)切り捨てられないですよねぇ。

(関連記事)

OS X 10.4以降用universalバイナリ→http://sourceforge.jp/projects/splhack/files/?release_id=27701#27701

ソースコード → http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi/AmaTunes/?root=splhack

2007-10-22

A2DP

そういえば、Bluetooth A2DP対応って

http://www.apple.com/jp/macosx/features/300.html

に書いてないですけど。対応してますよね Jobsさん?

2007-10-21

markedRange

で NSMakeRange(0, [[markedTextField stringValue] length]); って正しく返してしまうと、ことえりの未確定入力?の下のテキストが黄色くなってたのに気づいた。通常は見えないけど、backspaceで速く消すとちょっとだけ見える。

通常見えないから問題ないとはいえ。うーむ。

2007-10-19

MacVim new repository

mailing list見てたと思ってたけど違うmailing listだった。googlegroupsのvim_macにsubscribe。

でMacVimの新しいリポジトリが

http://repo.or.cz/w/MacVim.git

になってた。gitて初めて知った。

vim本体にパッチをあてた状態(現在は140まであたってる模様)に、MacVim固有のパッチとMacVim本体が入った状態のものが取得できる。

これにkaoriyaパッチあててみる実験中。

2007-10-18

rosettaでMacVimバイナリ

なんか動かない。メッセージのエンディアンがひっくりかえってるのが原因。

MacVim実行ファイルからVim実行ファイルをcocoaでlaunchしてるところに /usr/libexec/oah/translate をかましてみても改善せず。なんじゃろ。

rosettaで動いてるプロセス同士のプロセス間通信のエンディアンまで面倒見切れない、とか?

MacVim バイナリ

作りました。OS X 10.4用universalバイナリです。

http://sourceforge.jp/projects/splhack/files/?release_id=27583#27583

http://journal.mycom.co.jp/news/2007/10/16/001/index.htmlで紹介されてるMacVimにKaoriyaパッチなど日本語関連機能を追加したものです。


Vim 7.1.140
MacVim用パッチ
MacVim本体 (trunk)
Kaoriyaパッチ
Carbon版からもってきたIM制御コード
uimfep同居、IM入力キャンセル時不具合対策
などを適用しています。

http://lapangan.net/darwinports/index.php?PrivatePortfile%2FVim
でソースからインストールしたものと同一ですが、起動スクリプトを書き換えてshared libraryを内蔵するようにしていますので上記バイナリ単体で動作させることが可能です(macportsなどに依存していません)。

日本語メニューはMacVimでは未対応です。

2007-10-17

setMarkedText:selectedRange:解決編

markedRange がいかんかった。現在のmarkedTextのrangeを返すようにしたら直った。これで使える。7.1.140.2で修正。

しかしメニューが日本語にならんのはなんでだろう。


noantialiasとインライン入力色設定がほしー

vim7.1.140 + MacVim + IM制御

http://lapangan.net/darwinports/index.php?PrivatePortfile%2FVim

IM入力中のボーダーラインも消してみたりして。なんかインライン入力っぽくないので。

MacVimの描画まわりはvim本体と分離してるので色の設定とかを渡すには結構改造が必要か。

いまのところの問題はIM入力をキャンセルするような操作(全未確定文字列をbaskspaceで削除とか未変換状態でESCとか)時にsetMarkedText:selectedRange: が呼ばれないこと。原因不明。NSTextFieldを使ってるのが原因とかだとやだなぁ... (iTermやvim-cocoaではNSAttributedString)


で、

:set guioptions-=T

とかしたり。iTermでもツールバー非表示派。

2007-10-16

MacVim

vim-cocoaの時にも入れたCarbonによるIM制御までは動作確認。明日の朝アップします。subversionにはcommitしてあります。

IM入力中のESCによる抜けや、全文字削除時にvim側がIMの文字がなくなってることに気づいてないのを直したい。

Leopard

apple storeで購入ー

MacVim

というわけでMacVimも適用。

http://lapangan.net/darwinports/index.php?PrivatePortfile%2FVim

port install vim +huge +kaoriya +cscope +ruby +python +macvim

とか。cocoa + carbonて書いたけど、タブとかメニューとかの上っ面がcocoa + carbonなんですね。vim自体はcocoaだけ。でもIME制御しようと思ったらcarbonリンクせんと...

vim-cocoaに比べて日本語入力まわりが弱い。あとset guifontとかすると悲しいことになります。

これはvim-cocoaからコード持ってくるべきか。きっとvimのtrunkにマージされるでしょうから、ちゃんとIMEまわりをフィードバックしよう。こんどこそ。

あとnoantialiasできないのはvim-cocoaと一緒。

また別のMacVim

フルスクリーンに対応したMac版Vimのスナップショットが公開

メーリングリストは見てたけど、気づかなかった...

http://macvim.googlecode.com/svn/trunk/

cocoa + carbon ですね。


+aqua
オリジナル+インライン+ATSUI+半透明パッチ
+cocoa
vim-cocoa+半透明パッチ
+macvim
上記


とかにしたい。

2007-10-09

isspace(3) 追試

#include <ctype.h>
#include <stdio.h>
#include <locale.h>
int main()
{
int c;
setlocale(LC_CTYPE, "");
while ((c = fgetc(stdin)) != EOF)
printf("0x%x %d\n", c, isspace(c));
return 0;
}

でもって
$ ./a.out
しゅ
0xe3 0
0x81 0
0x97 0
0xe3 0
0x82 0
0x85 0
0xa 1

なわけですが、LC_CTYPEがUTF-8だと

$ LANG=ja_JP.UTF-8 ./a.out 
しゅ
0xe3 0
0x81 0
0x97 0
0xe3 0
0x82 0
0x85 1

0xa 1


「ゅ」の最後のバイトが空文字と判定されてしまうと。

http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/isspace.3.html
(FreeBSDのマニュアルと同じだ。FreeBSDでのisspaceの挙動も同じ。)

マルチバイト文字ロケールでUTF-8文字列をisspaceに突っ込むな or LC_CTYPE="C"でisspaceを呼ぶべし、でしょうか。

2007-10-06

vim 7.1.135



migemo検索時に文字が化ける件はUTF-16になってるわけじゃなくて、LANG=ja_JP.UTF-8時にisspace(0xa0)とかが1になったりするという謎の挙動のせいで、ローマ字かな辞書ファイルを正常に読み込めてなかったのが原因。cmigemoで対策。

http://lapangan.net/darwinports/index.php?PrivatePortfile%2FCMigemo

wcwidthの件とか含めてlibcでなんとかして欲しいところ。そういえば、そろそろLeopardですかね。

iPod touch

iPhoneは1.1.1でもssh loginできる方法が見つかったみたいですが、iPod touchはどうかなー


でiphoneが欲しくてW-ZERO3[es]で再現してみました。


(http://zerobase.jp/people/sakamoto/post_16.html)