2007-04-24

zsh 4.3.4

マルチバイト文字の対応が強化されたみたいですが、全角文字判定はあいかわらず wcwidth() まかせなのでOS Xでは「”」(全角ダブルクォート)が半角扱い。

のでPrivatePortfile/zsh-develを4.3.4に追従。

2007-04-23

USB-RS232

秋月で今売ってるUSB-RS232ケーブル(1400円)はProlific PL-2303を使用。

OS Xのドライバ

ちゃんとuniversal binary。Prolificえらい!


関係ないけどLEDに過電流ながして破壊。1つ学習 orz

2007-04-21

gvim7 半透明その2

.gvimrcに set transparency=240 とか書いても反映なし。ウィンドウ開いてからSetWindowAlphaしてないからか。

ということで対応 → http://lapangan.net/darwinports/index.php?PrivatePortfile%2FVim

gvim7 半透明

carbonではSetWindowAlpha呼ぶだけのようですし、どうもkaoriyaパッチでmacvim半透明パッチのオプション部分が生きてるようなので、さくっと対応 → http://lapangan.net/darwinports/index.php?PrivatePortfile%2FVim



iTermみたくタイトルバーを不透過にするにはcocoaじゃないとだめなんかな?

2007-04-01

Xcode データモデリングツール

Cocoaセミナー上級編で、Core Data用データモデリングツールがあることを知る。データベースを軽くスケッチするのにいいかも。で、mogeneratorCore Dataのカスタムクラスコードを生成できるらしいので、ぱくってエンティティ情報をymlで吐き出すものをCocoaで作ってみた。



てな感じにモデリングしてymlを吐き出す。それからrailsのmodel generatorを呼び出して、関係情報をmodelに突っ込むrubyスクリプトも。


class CreateSubscriptions < ActiveRecord::Migration
def self.up
create_table :subscriptions do |t|
t.column :user_id, :integer
t.column :newsletter_id, :integer

class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.column :name, :text
t.column :age, :integer

class CreateNewsletters < ActiveRecord::Migration
def self.up
create_table :newsletters do |t|
t.column :date, :datetime
t.column :content, :text
t.column :title, :text

class Newsletter < ActiveRecord::Base
has_many :subscriptions
has_many :users, :through => :subscriptions
end

class Subscription < ActiveRecord::Base
belongs_to :user
belongs_to :newsletter
end

class User < ActiveRecord::Base
has_many :subscriptions
has_many :newsletters, :through => :subscriptions
end


配布はのちほど。

zsh

「●」問題解決したかと思いきや、zshで半角扱いになっているとの話をいただく。

そもそもzshで日本語使えてなかったので port install zsh-devel +utf8 して、LANG=ja_JP.UTF-8で試す。「●」を削除しても半分しか消えない! これは wcwidth が原因ぽい。OS Xのlibcのせいか。いろんなプログラムで同じような問題を同じように回避してるらしい... libcでなんとかするのがいいと思うんですが、政治的にアレなんですかね? とりあえず有名らしいhttp://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.cで回避成功。

例によってMacPortsのPortfileにしました↓
http://lapangan.net/darwinports/index.php?PrivatePortfile%2FZsh-devel

vim7 かな漢字変換

「f」で検索してると、かな漢字変換が自動的にONになる現象が。100%じゃないけどかなり再現性あり。どうも特定の状況下でiminsertが0以外に設定されてしまう。

で、ソース見てたら imdisable なんつーoption発見。

ということで:set imdisableで回避。うーん。

iTerm

結局iTerm上でvimを使う方が多い訳ですが、0.9.5.0315での問題点は「●」や「→」が何故か表示幅が半角扱い。でもvim上は全角なので表示がずれる。 あとインライン変換のフォントサイズがウィンドウ内と異なるので変換後にインラインウィンドウのかけらが残る。




アスキーフォント 14ポイント、非アスキーフォント 12ポイントなどフォントサイズが異なると、インライン変換ウィンドウが




こんな風にはみでて、しかもゴミが残ったりする。

ということで、CVSからtrunkひっぱてきて調査。かな漢字変換ウィンドウが黄色いところからあたりを付けて、yellowなところを調べる。font(アスキーフォント)とnafont(非アスキーフォント)のうち、インライン変換ウィンドウのフォントにfontを指定しているのが原因。nafontに差し替える。ついでに意味なくgreenにしてみた。



改善!

んでもって「●」などが半角サイズになるのも調査。double widthあたりで調べるとisDoubleWidthCharacterメソッドを発見。「●」が含まれているあたりのUCS-2(unicode >= 0x2500 && unicode <= 0x267f)が何故かコメントアウトされているので復活。



改善!

Index: NSStringITerm.m
===================================================================
RCS file: /cvsroot/iterm/iTerm/NSStringITerm.m,v
retrieving revision 1.8
diff -u -r1.8 NSStringITerm.m
--- NSStringITerm.m 13 Nov 2006 08:01:04 -0000 1.8
+++ NSStringITerm.m 31 Mar 2007 15:40:31 -0000
@@ -306,7 +306,7 @@
if ((unicode >= 0x1100 && unicode <= 0x115f) || // Hangule choseong
unicode == 0x2329 || // left pointing angle bracket
unicode == 0x232a || // right pointing angle bracket
- //(unicode >= 0x2500 && unicode <= 0x267f) || // Box lines, Miscellaneous symbols, etc
+ (unicode >= 0x2500 && unicode <= 0x267f) || // Box lines, Miscellaneous symbols, etc
(unicode >= 0x2e80 && unicode <= 0x2fff) || //
(unicode >= 0x3000 && unicode <= 0x303E) ||
(unicode >= 0x3041 && unicode <= 0x33ff) || // HIRAGANA, KATAKANA, BOPOMOFO, Hangul, etc
Index: PTYTextView.m
===================================================================
RCS file: /cvsroot/iterm/iTerm/PTYTextView.m,v
retrieving revision 1.304
diff -u -r1.304 PTYTextView.m
--- PTYTextView.m 14 Mar 2007 19:08:13 -0000 1.304
+++ PTYTextView.m 31 Mar 2007 15:40:32 -0000
@@ -88,9 +88,9 @@

[self setMarkedTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[NSColor yellowColor], NSBackgroundColorAttributeName,
[NSColor blackColor], NSForegroundColorAttributeName,
- font, NSFontAttributeName,
+ nafont, NSFontAttributeName,
[NSNumber numberWithInt:2],NSUnderlineStyleAttributeName,
NULL]];
CURSOR=YES;
@@ -492,9 +492,9 @@
nafont=naFont;
[self setMarkedTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[NSColor yellowColor], NSBackgroundColorAttributeName,
[NSColor blackColor], NSForegroundColorAttributeName,
- font, NSFontAttributeName,
+ nafont, NSFontAttributeName,
[NSNumber numberWithInt:2],NSUnderlineStyleAttributeName,
NULL]];
[self resetCharCache];



パッチ送らないと。後者はなんでコメントアウトされてたのかな...