青木日記

<前月 | 最新 | 次月>

2007-01-02

■ 日本 Ruby のリファレンスマニュアル 2007 phase 2

うーん、やっぱり年内には終わらなかったか。 しかし、(俺以外の人が) がんばってくれたおかげで思ったよりは進んだね。

残りは、

  • irb
  • net/imap
  • rational
  • rexml
  • rss
  • test/unit
  • tk
  • win32/registry
  • win32ole

tk 以外はなんとかなりそうな気がするけど、やっぱ tk がなあ。 とりあえず rexml と tk はさらにライブラリを分割して当たることにする。

(08:15)

(追記) rexml と tk を分割したら、それだけで完了率が 70% を切った。 これまでは 100% が目前だったのに。鬱だ。

■ YARV デイリービルド

ついに YARV が本体にマージされたので、 デイリービルドもレポジトリを切り替えた。

http://i.loveruby.net/autobuild/yarv/

いきなりテストに失敗してるなあ……。

(08:17)

■ この日記の 2006 年ランキング

ogijun さんとこで見たのがおもしろかったので俺もやるよ! 2006 年度日記ランキング。

ちなみに、一番 Hit 数の少なかったページは 12 月 23 日。 寝過ごして RHG 読書会に遅刻して 「うはー、また寝過ごした。いまからダッシュで行く。」とか書いてる日でした。

■ 10 位 『ふつうの Haskell プログラミング』 (818 Hits)

『ふつうの Haskell プログラミング』の目次が出たとき。 このころにはほとんど書き終わってるんだな。

■ 9 位 イタリア旅行記 (936 Hits)

この日はいろいろあったけど、たぶんイタリア旅行記だろう。 この旅行の写真は 10 月の Ruby 勉強会@関西でも唐突に使われたりした。 イタリア、もう一回行きたいなあ。

■ 8 位 ふつける / カバー (947 Hits)

『ふつうの Haskell プログラミング』のλなカバーが 8 位をゲット。

■ 7 位 YARV daily build (968 Hits)

この日は記事が二つあるけど、たぶんこっちだと思う。 「Opteron 265 値下げ」が原因だったら笑うぞ。

■ 6 位 Windows で / Linux で LazyLines を動かす (975 Hits)

むう、なんかなつかしいネタが出てきた。これが 6 位なのか。 Windows の話題は注目されるってことだろうか。

■ 5 位 Ruby勉強会@関西12 (1410 Hits)

リファレンスマニュアル刷新計画の詳細を書いている日。 あとイタリア旅行記の 1 日目もこの日に書いてあった。

■ 4 位 Ruby リファレンスマニュアル整備計画 (1741 Hits)

なんとまたしてもリファレンスマニュアル刷新計画。 リファレンス関係は両方合わせて 3151 Hits だ。

現在、リファレンスマニュアル刷新計画は phase 2 が大詰めに入っております。 Wiki も見てね。

■ 3 位 ふつうの Haskell プログラミング (2) レビュー (1888 Hits)

ふつける 3 発目はレビュー募集の日。Hit 数はその後日談も含む。 たくさんの応募をいただきありがとうございました。

ふつける関係を LazyLines も含めて全部合計すると 4628 Hits。 今年の前半はとにかくふつけるに尽きるということですな。

■ 2 位 Development Environment Conference (8427 Hits)

そして DECon。2 位からはヒット数が桁違いだ。 9 月は DECon のおかげで転送量が倍近くなって 8GB 越えた。

■ 1 位 YARV on Rails (9179 Hits)

世界で初めて YARV で Rails を動かしたぜ報告。 Rails 効果恐るべし。

■ 2006 年をふりかえって 2007 年の予定

ということで、今年は 2 月に YARV、 3 月から 5 月が『ふつける』、 8 月〜10 月がリファレンスマニュアル刷新計画、 9 月に DECon、10 月がイタリア旅行、となりました。 8、9 月が文字通りホットだった模様。

4 月から 7 月は何をしてたんだろう。 ……ああそうか、ふつけるを書いたり、校正したり、 発売後に虚脱状態に陥ってたりしたのか。 6 月なんて 4 日しか日記を書いてないもんな。 とてもわかりやすい。 実際、今年の 1 月から 4 月あたりは予定キツキツで泣き入ったからなあ。 あのあと死に体と化すのは必然の流れであった。

去年はちょうど死体と化しているときに Ruby 会議があって、 あんまり注力できなかった。今年は何かできるだろうか。

いまのところ今年の予定はというと、 まずるびま本が出る。それから 3 月には人生の転機 (予定)。 でもって何がどうなるか全然わからないのが『ふつうのコンパイラ』。 いったいいつ出るのか、そもそも出るのか、つか cflat コンパイラ書き終わんのか俺? 無事に出るといいね。

(10:49)

本日のツッコミ (全5件)

■ まるまる [はじめまして。あけましておめでとうございます。最近RHGを読み始めた者です。日記のログを拝見したのですが、2005年1月の分が読めないのですが…(最新の表示になってしまいます)]

■ れど [はじめまして、あけましておめでとうございます。
新年いきなりですみません。
tDiarysearchを知り使ってみたいのですが、エラーが出て使えません。
環境はtDiary version 2.0.2.20050820、ruby 1.8.5、search.rb,v 1.12
エラーメッセージは以下です。
search.rb:129: warning: already initialized constant ERbLight
search.rb:143:in `initialize': wrong number of arguments (1 for 0) (ArgumentError)
from search.rb:143:in `new'
from search.rb:143:in `main'
from search.rb:484
何かの初期化に失敗しているようです。]

■ 青木 [修復しました > 2005-01
なぜか 2005 年 1 月のデータベースが壊れてました。]

■ 青木 [tdiarysearch が tDiary の変化に追従してなかったのが原因です。
http://i.loveruby.net/svn/public/tdiarytools/trunk/search.rb
をダウンロードしなおして使ってください。

あと、そのバージョンの tDiary には脆弱性が見付かってるので、
tDiary も最新版にアップデートしたほうがいいですよ。]

■ まるまる [ありがとうございました > 2005-01
これで日記が読破できました。(RHGはまだまだこれから…)]


2007-01-06

■ Object#tap

なんとなく Object のメソッドを眺めていたら、 tap なんてメソッドが追加されてた。 ChangeLog によると [ruby-talk:224013] が理由とあるな。

Sat Nov 18 23:39:20 2006  Yukihiro Matsumoto  <matz@ruby-lang.org>
 
        * object.c (rb_obj_tap): a new method.  [ruby-talk:224013]

メソッドチェーンの途中の値を p したいときに使ったりするのか。ふーん。

(19:12)

■ svnsync

cvsup の Subversion 版が欲しいなあと思ってたんだけど、 svnsync というのがそれか。でも 1.4 以上にしかないのねえ。 めんどくさいな。 かといって家の全マシンで ruby-lang.org から svn co するのもアレな感じだし……。

しょうがない、サーバの /usr/local に svn 1.4 を入れて、 svnsync だけそっち使うか。

……いや待て、Subversion って rpath 使ってんだっけ。

tukumo:~ % ldd /usr/local/pkg/subversion-1.3.2/bin/svn | head -n1
        libsvn_client-1.so.0 => /usr/local/pkg/subversion-1.3.2/lib/libsvn_client-1.so.0 (0x00002aaaaabc3000)

共存できるのか。そんならこれで行くかな。

(19:32)

■ svnsync (2)

svn 1.4.2 を /usr/local/pkg/subversion-1.4.2 以下に入れようと 試みたが、想像よりも大変だった。

まず、apr, apr-util, neon が Subversion に入らなくなっててしくじる。 それぞれチェックアウトしてきてソースツリーのトップに置き、 ./autogen.sh で configure を作る。

次に、libtool がインストールされてなかった。 まあこれは sudo aptitude install libtool で終わり。

次。明示的に --enable-shared を付けないと neon のリンクで 「neon のオブジェクトファイルが PIC じゃねえよゴルァ」と怒られた。 共有ライブラリから neon にリンクしてるのに、 neon はスタティックリンクな感じでコンパイルされてるからダメなわけだ。

次。ようやくインストールできた svn 1.4 の svnadmin help を実行してみると、 なぜか古い (/usr/lib にある) libsvn_fs_base.so をロードしてしくじる。 1.4.2 の libsvn_fs_base.so はコンパイルされていなかった。 新しい bdb をインストールしてないせいかな。 この状況はちょっと回避策が思いつかなかったけど、 問題が起こるのは svnadmin help とかの特殊な場合だけみたいなので、 さっくり無視することにする。

次。ミラー先のレポジトリをうっかり新しい (1.4.2 の) svnadmin で作ったら 古い svn でアクセスできなくて作り直し。

で、ようやく svnsync までたどりつく。

~ % svnadmin create --fs-type=fsfs /var/svn/ruby
~ % echo '#!/bin/sh' >  /var/svn/ruby/hooks/pre-revprop-change
~ % echo 'exit 0'    >> /var/svn/ruby/hooks/pre-revprop-change
~ % chmod 755           /var/svn/ruby/hooks/pre-revprop-change
~ % svnsync init file:///var/svn/ruby http://svn.ruby-lang.org/repos/ruby
~ % svnsync sync file:///var/svn/ruby

svnsync init でレポジトリの順番を逆にしてしまってしばらく悩んだ。

いまシンクロしてるけど、さすがにリビジョンが 10000 以上あると時間かかるねこりゃ。 まだ 3000 くらい。

(22:02)

■ RAII

それはともあれ、RAII は「らいい」でいいのだろうか。

(22:25)


2007-01-07

■ るりま進捗

2006 年中には終わらなかったリファレンス第二段階だが、 2007 年に入ってから恐ろしい速度で進んでいる。 obsolete なやつを除くと、あとは sdbm と tk だけ!

--- Status
392/439 files done (89.29%)
 
--- Ranking by number of files
 1  100 sheepman
 2   69 iwadon
 3   64 okkez
 4   52 date
 5   47 (not yet)
 6   40 aamine
 7   37 moriq
 8   17 kimuraw
 9   11 yanagi
10    2 tadf
 
--- Ranking by Kbytes
 1  460 sheepman
 2  206 okkez
 3  109 aamine
 4   92 iwadon
 5   46 date
 6   42 kimuraw
 7   30 yanagi
 8   22 moriq
 9    6 (not yet)
10    2 tadf

tk を展開したあと 50% 近くまで落ちてたのに、 あっというまに 90% 近くまでリカバーした。 この勢いだと一週間もかからないで終わるなあ。 すごいぞリファレンスマニュアルチーム。

……そういえば、tk と rexml だけでファイル数の 50% を占めてるってことか。 恐ろしいなあ。

(15:44)


2007-01-08

■ るりまの すごい 進捗

ちょ……何この速度ありえない

% ~/c/bitclust/tools/statrefm.rb ~/c/rubydoc
--- Status
436/440 files done (99.09%)
 
--- Ranking by number of files
 1  101 sheepman
 2   78 date
 3   72 okkez
 4   69 iwadon
 5   43 aamine
 6   37 moriq
 7   17 kimuraw
 8   11 yanagi
 9    6 anyone
10    4 (not yet)
11    2 tadf
 
--- Ranking by Kbytes
 1  462 sheepman
 2  206 okkez
 3  111 aamine
 4   88 iwadon
 5   58 date
 6   42 kimuraw
 7   29 yanagi
 8   22 moriq
 9    2 anyone
10    2 tadf
11    0 (not yet)

あと 4 つ! まさか tk が本当に終わる日が来るとは思ってなかったよ…… (っておい)。

(13:52)

■ Rubyリファレンスマニュアル刷新計画:第二段階完了

第二段階おわた。マジすごい。

最終戦績

--- Status
440/440 files done (100.00%)
 
--- Ranking by number of files
 1  101 sheepman
 2   81 date
 3   75 iwadon
 4   73 okkez
 5   43 aamine
 6   37 moriq
 7   17 kimuraw
 8   11 yanagi
 9    2 tadf
 
--- Ranking by Kbytes
 1  462 sheepman
 2  206 okkez
 3  111 aamine
 4   90 iwadon
 5   58 date
 6   42 kimuraw
 7   29 yanagi
 8   22 moriq
 9    2 tadf

(20:54)

本日のツッコミ (全1件)

■ 斎藤ただし [私事が落ち着いたら参加しようと思ってたんですが、ちょっと遅かったみたいですね (^^;;
ほんとにお疲れ様です!! >青木さんと皆さん]


2007-01-11

■ Bertrand Meyer『オブジェクト指向入門』第二版

http://www.amazon.co.jp/o/ASIN/4798111112/

ついに出たかーっ! これは当然買うだろう。

(20:29)

■ 火柱

もう一昨日のことになるが、ちょっとレアな体験をした。

夕方、お茶を淹れようと思って台所に行ったら、グリルから火がバンバン出ていた。

ああっ、これがもしかして「魚の油に点火」というやつか、そうか火を消すのを忘れるとこうなるのか、と意外に冷静な分析を行いつつ素早い動作でスイッチを消し、ガバッとグリルを開けるとそこは火柱だった。

燃えてるし。バンバン燃えてるし。ちょっと天井に届くんじゃねえのこれやばくね? これどうすればいいのグリル閉めたほうがいい? でもなんか閉所に閉じこめるのってそれはそれでやばそうだし、そうだそういえば冷蔵庫の上に消化剤があったはずだアレ使うかでもなんかちょっと大袈裟だな水かければ消えるんじゃね? という考察のもと水をかけてみた。バシャッと。

ぐう゛ぁん! という轟音とともに火柱が 3 倍くらいになって、うわ逆効果かよこれちょっとシャレにならないんじゃないの、もしかして人生初火事?とか思ったのは一瞬のことで、すぐに鎮火しました。

……と、いう事件があったのだ。

本日のツッコミ (全2件)

■ ひらい [十分に濡らした布をかぶせて、空気を遮断してやるといいんだそうです。揚げ物から目を離して中華鍋に火をつけてしまった時にはうまくいきました。]

■ 青木 [なるほど。次はそれでやってみます (次もあるのか)。]


2007-01-12

■ なんとか Pro

あーもう! 無線マウスがめちゃくちゃ反応悪い! イライラする! クリックしても伝わらなかったり、 何もしてないのに突然テキストを選択しちゃったり、 壊れかけのマウスかよってくらい酷い。

絶望した! 反応の悪い無線マウスに絶望した!

ポイズン。

キーボードはそれほど反応が悪くならないというところがさらに許せん。 ハードウェア的に小さいからアンテナ感度が弱いとか、そういうことだろうか。 キーボードはフタ開けたら周囲をぐるっとアンテナが一周してたもんな。

あー、でも、やっぱり「6」のキー位置だけはいまだに慣れないな。 6 だけはキーを見ないと打てない。その余波をくらって 5 も打てなくなった。 なんでこんなことするかなあ……。

ところで、右上の端に小さいボタンが 3 つあるんだけど、 それが「スリープ」「ログオフ」「電卓」なんだよな。 ずっと「電源」だと思ってたんだけど、よく見たら「電卓」。 なぜ「スリープ」「ログオフ」の隣に「電卓」があるのか、 設計者を問い詰めたい。

あ。そうか。テンキーに近いからか。

(05:56)

■ 2chのやりすぎで俳人になった

http://blog.livedoor.jp/michaelsan/archives/50542401.html

> 54 名前:サンフル−ツ:2007/01/07(日) 20:11:24.53 ID:S3DBSD900
> 母パート
> 妹デート
> 俺ニート

うますぎる。

(00:55)

■ 納豆

きょうスーパーに納豆が一つもなかったのはテレビのせいだったのか。 なんてハタ迷惑な。

(02:45)


2007-01-15

■ 7 才のおれ

るびまのインタビューで、おれが 6 才のころに「ゼロってなんにもないってことな の?」 という疑問を発したらしい、と言ったけども、 親が言うにはちょっと違うらしい。正しくは、

ゼロって人間が考えたんだよね。 それじゃあ、人間がいなかったらゼロは存在しないの?

だそうだ。7 才から言語哲学かよ。 ななさいの俺なら哲学の論文くらい苦労しないで書けそうだな。

(17:39)


2007-01-16

■ Amazonおいそぎ便

論文の資料がすぐ欲しかったのでAmazonのおいそぎ便を使ってみた。 朝の 4:00 ごろに注文しておいたら夜の 7 時くらいに来たよ。まじ早い。

それにつけても最近「論文で使うから」とかいって本を注文しては、 そのついでに全然別の本が紛れこんでいるケースが多い。 昨日も硬い本にまぎれて『ヤコブニールセンのAlertbox』とか 『オブジェクト指向入門』が届いたりしているのであった。

■ 『オブジェクト指向入門』第二版

で、そのオブジェクト指向入門だけど、なんか異様に厚くなってんのね。 もともと厚かったのがさらに恐ろしいことに。 パラパラとめくった感じ、第一版で読んだ話がけっこう多かったような気がする。 何が増えたのかまだよくわからない。

ていうかさ、実は俺、二分冊だって知らなかったんだけど。 まあ、どっちにしても買うんだけどさ。

(19:20)

本日のツッコミ (全1件)

■ kitaj [昔のAmazonは,1:00に注文すると17:00くらいに届いてたのに,最近は…]


2007-01-17

■ 俺だけに効果抜群な SPAM

こんな Subject の SPAM が来た。

UltraSPARC T1 Processor Cryptographic ProviderThe UltraSPARC T1
processor accelerates computationally expensive modular arithmetic
operations found in PKC algorithms such as RSA and DSA.

……ていうか、SPAM だよな、これ。 最近は個人ごとに嗜好をカスタマイズしてたりするのだろうか。

(17:17)

■ 一般人の 2 割はサイドバーにお気に入りを常に表示している?

一般人は常に「お気に入り」を表示している!
http://plaza.rakuten.co.jp/catfrog/diary/200701140026/

えー、2 割どころじゃなくない? けっこうたくさんいると思うけどなあ。 俺も Sleipnir のときは出してる。 F1 で消したり出したりできることを最近知ったので、 画面の幅が足りないときだけ消したりするな。 サイドスクロールバーなんていじるのめんどくさいし。

むしろ、サイドバーなんて消してるのがフツー、 という認識のほうにびっくりした。

(18:35)


2007-01-19

■ プリフィクス

そこで <>lvar ですよ。><lvar でもいいけど。

あるいは、記号は前につくものという固定観念を廃して <lvar> で!

(00:35)

■ プリフィクス (2)

> ■まつもと (2007-01-20 01:56)
>
> <は将来のために残しておきたい。
>
> X M L リテラルとか。

そうか!

Ruby の変数名は URI だったんだー!

lvar = 1
1.times do
  lvar = 2
  1.times do
    lvar = 3
    1.times do
      lvar = 4
      p lvar                     # => 4
      p rubyvar://lvar           # => 4
      p rubyvar://../lvar        # => 3
      p rubyvar://../../lvar     # => 2
      p rubyvar://../../../lvar  # => 1
    end
  end
end

こんなもの dRuby 経由でアクセスできるに違いないね。

p druby://i.loveruby.net/binding/times/times/times/lvar   # => 4

(04:22)

本日のツッコミ (全1件)

■ まつもと [<は将来のために残しておきたい。

X M L リ テ ラ ル とか。]


2007-01-20

■ 萌えPerl

http://perl.tomosuma.net/

(19:51)

■ かくれんぼ型目覚まし時計

http://excite.co.jp/News/bit/00091169116759.html

今日も 3 時間にわたって 5 分おきに目覚まし時計のボタンを押しつづけ 1 時間ごとに設定時間をのばしつづけたわたしとしては、 ぜひ買いたいところである。ただ俺の部屋では逃げる場所がないと思うのだが……。

夏なら部屋のドアを開け放っておけるから 部屋から遠く (洗面所とか) に置けるんだけど、 冬はそうもいかないんだよなあ。 おかげで冬は全然起きられない。

(20:27)


2007-01-22

■ MacBook MA700J/A

まっく買いました。これでわたしも立派なマカーですよ……ふふふ。

スペックは Core 2 duo 2GHz, RAM 1GB, HDD 80GB の Mac Book。いま気付いたけど、うちにあるマシンの中で一番速いかも。Athlon64 の 2.4GHz とかもあるから「すげー速い」とは思わないけど、少なくとも不満は感じない。静かだし。リソース見た感じ、Safari でタブをガンガン開いた状態で 700MB くらいは使ってるので、1GB にしたのは正解だった。2GB あってもいいかも。

■ 気に入ったところ

まずフォント。ほとんどこれを目当てに買ったようなものだ。アンチエイリアスがちゃんと効いててすばらすい。俺はとにかくテキストばっかりなので、フォントがきれいなのが非常に嬉しい。

次に expose。画面が縮小して、全ウィンドウが見渡せるやつね。あまりの楽しさに、意味もなく F9 を押してしまう。

ダッシュボード。特に iStat (マシンの状態をいろいろ表示できる) と辞書が吐血するほど便利。日本語の辞書も入れよう。

Spotlight。フツーのデスクトップ検索にはあまり魅力を感じなかったりするのだが、OS の設定項目をキーワード検索できるのが地味に便利 (検索窓に「TCP」と入れると TCP/IP の設定がどの場所にあるのか教えてくれたりする)。

Dock のアイコンがぐにょぐにょ動いたり、うにょーと格納されていくのも快感。

基本的に UNIX のため勘がきく点も UNIX 使いには嬉しいところ。/etc/hosts とかあるし。zsh がデフォルトで入ってるのも助かる。Xcode を入れれば gcc も autoconf も make もついてくるのでコンパイルも問題なし。ああそうだ、まともな端末があるってのもいいとこだよな。直前に Cygwin でいろいろトラブルにあっただけに、この嬉しさはひとしおだった。

プログラムのインストールもとても簡単。ファイル 1 つコピーして終わりってのはすげえと思った (いやもちろんディレクトリだってのは知ってるけど、インターフェイスとして)。

ああ Picasa がないからデジカメの写真とりこむのめんどいかも、とか思ったが、USB でつないだら iPhoto が起動してとりこんでくれたので何も問題はなかった。さすがだ。

最初のスタート時に内蔵カメラで写真をとってアカウントのフェイスにしてくれるのがなんかウケた。こういう使いかたをするものだとは (なぜか) 思ってなかった。

■ 困ったところ

mixi で教えてもらったりしてだいたいの不満は解消できたのだけど、どーしても解決できないことが一つだけ……。それはキーマップを変更するソフトが見付からないこと。Ctrl とかのモディファイヤキーを変更するソフトはけっこういっぱいあるんだけど、通常のキーを変えられるやつがない。おれは JIS キーボードで ASCII 配列を使いたい人なので、これが非常に苦しい。既存のキー変換ソフトをパチってどうにかしないとだめかなあ……。

それ以外にも、最初に苦労する点はほとんどキーボードまわりに集中してたような気がする。基本的なショートカットを覚えてしまったらかなり楽になった。

■ Mac OS Xのキーマップ

ogijunさんのコメントにあったサイトのマッピング (JANSI) でほとんど文句なしだったんだけど、唯一こまったのが「ろ (アンダースコア)」のキーであった。このキーは JANSI では割り当てられておらず、キーコードが何なのかわからない。調べたら、以下のサイトにあるレイアウトファイルに載っていた。

Cocoa Break!

ちなみに、レイアウトファイルの URL に最後にゴミが入ってるので注意。手で消せばOK (修正してくださいました)

で、問題の「ろ」のキーコードは 94 だった。これにバックスラッシュを割り当てて、Linux の X で使ってるのと同じキーマップにできた。

強いて言うと ESC が遠いのが vi 使いにはきついが、これは物理的に無理なのでしょうがないな。あきらめよう。

本日のツッコミ (全10件)

■ ogijun [おおおお、いらっしゃいませー。
記号キーの変更は、*.keylayoutファイルを作成するのが定番かも。
あとで書く。]

■ ogijun [作って公開してくれてる人がいた。
http://homepage.mac.com/kenie/Projects/JANSI/MacOSX10.4/index.html]

■ 青木 [反応早っ。
そういえば *.keylayout の話はどこかで見たよーな気がします。調べてみよう。]

■ 青木 [うお、コメント書いてるあいだに次のツッコミが入ってた。ありがとうございます。リンク先のやつにオリジナルの編集をちょっと加えて文句なしのキーマップにできました。これで不満がなくなってしまった……。]

■ zunda [vi の ESC は Ctrl-[ の小指二本でどうでしょう?]

■ ささだ [ほかの端末からログインすれば問題ないんじゃないの?]

■ 青木 [いやー、ESC はもう慣れちゃってるので……。 > Ctrl-[]

■ 青木 [他の端末から入ったら expose も
ダッシュボードも使えないじゃん!]

■ HK [Cocoa Break! の管理人です。ゴミを取り除いて再度アップしました。ちなみに、これはシステムのハングル用のキーレイアウトファイル(HangulIMKeyboardLayouts.bundle内)を解読して変更しながら作ったもので、もともとのファイルにあったゴミでした。作ったのは2年ほど前ですが、日本語のキーファイル情報で網羅的なものがなく、キーコードを表示させながら自分の JIS キーボードを打ち、残りは古い Inside Mac や Apple サイトのブック型PCの説明などを参考にして注釈を入れました。結局、判らなかったものもあり、とりあえず自分の所で問題なければよし、というものなので完全である保証はありません。]

■ 青木 [うあ、わざわざすみません。あんまりネット上でも見当たらない
情報なので、たとえ確実でなくとも非常に助かりました。]


2007-01-24

■ Mac 感想の続き

Mac で嬉しかったこと。

とりあえず SKK。AquaSKK がとてもよくできているのですげー楽だ。まさか IM が Emacs でも違和感なく使えるとは思わなかった。

Emacs と言えば、C-Spc (mark) が Spotlight に取られるのはいただけない。環境設定のショートカットキーの設定で Spotlight は Option-Spc に変えた。

Emacs と言えばもう一つあった。C-_ (undo) が動かない。エラーを見ると、なぜか C-= (それも普通の = ではないっぽい) が送られているようだ。どうもキーマップ変換では modifier ごとにマップを定義しているみたいなので、Ctrl のときのキーマップが手抜きなのかもしれない。しばらく C-/ を使うことにして、調査中。

うちではホストテーブルを共有するため (だけ) に NIS を使ってるんだけど、NIS を使うのはあきらめた。いや、ふつーに使えるらしいんだけど、接続切り替えと連動しないみたいなので。まあ、つなぐホストだけ hosts に書いとけばいいや (ちなみに hosts 書き換えたら NetInfo にロードする必要があることをあとで知った)。

それからサスペンドと復帰もものすごく早い。おれはわりとそういうのはどうでもいい (正確には「どっちでもいい」) たちなんだけど、ここまで早いとさすがに考える。

ノートではあるが、どうしてもトラックパッドにも馴染めないので最初からマウスを買っておいた。これはたぶん正解。まあ、最初にちょっとトラックパッドも使ってみて、これでも生きていけそうだとは感じだけど、それでもやっぱりマウスのほうが快適。ただ、arton さんも書いてたけど、USB コネクタが右に欲しいな。左からぐるっとコードをひっぱっていくことになるので、コードがえらい短い。ちなみに、ワイヤレスには凝りたのでコーダル (code 有り。正しい英語では wired?)。

その Mighty Mouse だけども、このマウスは見ためスッキリしてていいね。見ためから当然ボタン一個だと思ってたら、なんと右ボタンがあった。右のほうを押すと右クリックになるし、真ん中へんを押すとちゃんと左クリックになる。謎だ。なにしろ全然説明書を読んでないから、変なクリクリボタンで横スクロールしたときはちょっと驚愕した。いやクリクリクリック (わかりにくいな!) でダッシュボードが出るのもかなり驚いたけど。

■ 日記のフォント指定を変えてみた

この日記がヒラギノ明朝になっていないことに絶望して font-family を変更した。

font-family: "HiraMinPro-W3", "Osaka", "MS Gothic", sans-serif;

でいいのかなあ。

■ 日記のフォント指定を変えてみた (2)

"Hiragino Mincho Pro" でよいらしい。

■ 日記のフォント指定を変えてみた (3)

それでいいのは Safari だけらしい。やっぱ "ヒラギノ明朝 Pro W3" が必要か。CSS はめんどいのう。

(追記) この書きかたは正確ではない。正確には「Safari では "Hiragino Mincho Pro" と書かなければならず、Firefox などでは "ヒラギノ明朝 Pro W3" と書かなければならない」。Safari はマルチバイト文字のフォント名を解釈しないバグがあるらしい。つまり両方書いとくのが正解。本当に CSS っていうかウェブはめんどくさい。

本日のツッコミ (全4件)

■ 桑島 [Safariのことは知らないけど
だいたいのブラウザは標準のserif,sans-serif体を言語ごとに設定できて、HTML|CSSで設定されていない限りはそれが使われるはずなので、この場合のモアベターウェイは、ブラウザの日本語のserif体としてヒラギノ明朝を指定し、さらに標準フォントをserif体にして、CSSではfont-familyを指定しない、だと思う。
最終的には何らかのsans-serif体(いわゆるゴシック体)で表示されるべき、と指定したリストに明朝が入ってるのはいくないし。
でも本当にウェブはめんどくさい。]

■ 青木 [なるほど。ありがとうございます。
font-family をできるだけ消す方向でやってみます。]

■ hisa [トラックパッドの二本指スクロールや二本指クリック(コンテキストメニュー)はいかがでしたか?僕ももともとトラックパッドは苦手でしたが、二本指体験後は印象が変わりました。]

■ 青木 [二本指系の操作はかなり便利だと思いました。特にスクロールが
その場でできるとポインタ移動自体が減るので、ずいぶん楽になりますね。
ただ、細かくポインタを移動しようとするとやっぱりきついです。
特にまだショートカットを覚えきってないのでメニューとかボタンとか
押したいんですけど、ボタンがどれもちっこくてむずいです。
短時間ならいいんですけど、長時間使ってると指がひきつってきます。]


2007-01-26

■ Mac Book での bitclust update が死ぬほど遅い

ReFe が入ってないことに気付き入れようとしたが、やっぱり BitClust を使うべきだなと思いなおす。

インストール自体は何事もなく終わったのだが、bitclust update が死ぬほど遅い。あまりの遅さに time で計測したら 2 分もかかっていた。メインマシンだと 20 秒で終わる。なんだこれは。メインマシンは Athlon64 の 1.8GHz なので、CPU は Mac Book のほうが速いはずだ。となるとディスクまわりか。

BitClust データベースのサイズが 70MB くらいだったのでとりあえず 80MB を一つのファイルに書いてみると、これは 2 秒で終わる。つまり小さいファイルを作りまくってるのがよくないわけだ。

うーむ。tar フォーマットかなんかで書くようにしようかなあ。

■ Mac OS X の ps

何気なく ps ax したときに思ったんだけど、ps はどっか らプロセス情報を取ってるのだろう。 うーん、/proc はないな。ということは kmem から取って るんだろうか。でも /dev/kmem ないなあ。

strace で調べ…… いや strace ないか。truss? ……で もないな BSD だから ktrace か。当たり。

~ % ktrace ps ax >/dev/null                              aamine@mac
~ % kdump                                                aamine@mac
   9118 ktrace   RET   ktrace 0
   9118 ktrace   CALL  execve(0xbfffeb8c,0xbffff14c,0xbffff158)
   9118 ktrace   NAMI  "/Users/aamine/bin/ps"
   9118 ktrace   RET   execve -1 errno 2 No such file or directory
   9118 ktrace   CALL  execve(0xbfffeb8c,0xbffff14c,0xbffff158)
   9118 ktrace   NAMI  "/usr/local/bin/ps"
   9118 ktrace   RET   execve -1 errno 2 No such file or directory
   9118 ktrace   CALL  execve(0xbfffeb8c,0xbffff14c,0xbffff158)
   9118 ktrace   NAMI  "/opt/local/bin/ps"
   9118 ktrace   RET   execve -1 errno 2 No such file or directory
   9118 ktrace   CALL  execve(0xbfffeb8c,0xbffff14c,0xbffff158)
   9118 ktrace   NAMI  "/usr/bin/ps"
   9118 ktrace   RET   execve -1 errno 2 No such file or directory
   9118 ktrace   CALL  execve(0xbfffeb8c,0xbffff14c,0xbffff158)
   9118 ktrace   NAMI  "/bin/ps"
   9118 ktrace   NAMI  "/usr/lib/dyld"

……あれ? コマンド開始までしか出てないじゃん。 ダイナミックリンクの後が知りたいわけだが。

そうか、ps が set-uid されてるからだ。 sudo してとりなおし。

% sudo ktrace ps ax >/dev/null
% sudo kdump > ps.log

よし。

……ううむ、なんか /dev 以下をアクセスしまくってるのはわか るんだが、 それしかわからん。 というか、これは単にプロセスの tty 情報を集めてるだけのよ うな気がするな。 たぶんプロセス ID を読んだりしてるのはその前だ。 大量の syscall がなんとなく怪しい。

sysctl(3) を見ると、KERN_PROC といういかにもそれっぽいフラ グがあった。 これか。KERN_PROC で検索するとそのものズバリなページが出て きた。

http://developer.apple.com/jp/qa/qa2001/qa1123.html

ちょっとググった感じ、OS X に限らず最近の BSD は sysctl っぽいな。 さすがに kmem 見たりはしてないのね。

(00:36)


2007-01-27

■ SSHKeychain

あちこちの端末で ssh のキーフレーズを入力するのがかったる いので SSHKeychain を入れた。OS のキーチェーンアクセスと統合して くれるのがいいね。

……しかし、id_rsa を食わせると速攻で落ちる。 どうもこのへん↓の問題らしい。

http://www.ganaware.jp/archives/2006/11/sshkeychain_exc.html

上記ページに出てるパッチを当ててビルドしたら問題なくなった。

SSHKeychain が無限ループに落ちて CPU 100% になる問題にも さっそく遭遇したが、31 日までは余裕が皆無なので調べたりは してない (などと言いつつ日記は書くんだけどな)。

(10:22)


2007-01-28

■ Carbon Emacs がなんかすごい件

ふと気になって Carbon Emacs の site-init.el を見てみ たら、 なんかすごかった。 hown に w3m.el に riece、mew、wl、 そのうえ ruby-mode と haskell-mode までねこそぎ autoload してあんのな。 なんという豪華かつ現代的なセレクションだ。 思わず笑ってしまったよ。

(09:49)

■ Carbon Emacs での C-<, C->, C-_

Apple Mail はメール編集画面が Emacs キーバインドで便利だな あ……。

それはさておき、なんでふと site-init などを見る気になった かと言えば、 C-< (beginning-of-buffer)と C-> (end-of-buffer) が使えな かったからである。 単に定義されてないだけみたいなので、さくっと定義。

(when (featurep 'carbon-emacs-package)
   (global-set-key [C-=] 'undo)
   (global-set-key [C-<] 'beginning-of-buffer)
   (global-set-key [C->] 'end-of-buffer)
   (global-set-key [M-up] 'beginning-of-buffer)
   (global-set-key [M-down] 'end-of-buffer))

ついでにこないだの「C-_ で undo できない問題」も解決 した。 さらについでに Safari に合わせて M-↑ と M-↓ も追加。

(11:38)

■ Apple Mail の行折り返し

げ、なんか行が妙に短いところで折り返されてる。 format=flowed か! これやめさせらんないのかなあ……。

標準の設定にはないのか。

む、プラグインを作ってる人がいた。

http://ichiro.nnip.org/osx/StopFold/

試してみたが、だめだった。何も変わらない。 Mail のバージョンが上がったからとか、そういうことだろうか?

なんか深入りすると面倒そうなので、今日は回避。

(12:21)

■ 本当は暇じゃないんだと力説してみる

こんなに連続して Mac のことばっか書いてると、 こいつ新しい Mac 買って遊んでやがるなと 思われそうだが、そんなことはなく、 本当はものすごく忙しいのである。

というかちょっとピンチである。

より正確に言うとものすごい大ピンチである。

あまりにピンチなため、 ここ数日は半分発狂状態に陥っている。 Amazon の「お急ぎ便」を 2 日で 4 回使い、3 つ同時に届いたりしている。 何がしたいのか激しく謎である。

まあ、そんなわけで、 この日記にいろいろ書き散らしてるのも ぜひその発狂状態の一貫と とらえていただきたいわけである。

んじゃ本業に戻ります。あうあー!

(13:03)

■ Carbon Emacs での C-<, C->, C-_ (2)

あれ? これ動いてないな。 [C-=] じゃなくて [?\C-=] と書かないと効果が出ない。 これ意味が違うのか?

(14:27)

本日のツッコミ (全7件)

■ kjana [" The way to write a vector in Emacs Lisp is with square brackets around the vector elements. Use spaces to separate the elements. If an element is a symbol, simply write the symbol's name--no other delimiters or punctuation are needed. If a vector element is a character, write it as a Lisp character constant: `?' followed by the character as it would appear in a string."

……と Info には書いてあるなあと。詳細はともかく。]

■ えりむ [Cocoa なソフトウェアは Emacs キーバインドなので楽ですよねー。Finder や iTunes も Cocoa になってくれないかなと一日一回くらい思います。(Carbon のままバインドだけ実装してくれても良いですけど)]

■ 桑島 [デフォルト@22.0.92.2(HEAD)の話だと
M-< beginning-of-buffer
M-> end-of-buffer
C-/ undo(たぶん)
まあバインディングは好きずきですが。

M-x describe-function global-set-keyでは「KEYは文字列、キャラクタのベクタ、もしくはイベントで、ベクタを使うなら127を越えたASCIIでないコード(Latin-1とか)が使える」と言ってる。
でまあこの辺をもろもろと見るとあーそういうことかという感じで時間を浪費できます。
http://www.bookshelf.jp/cgi-bin/wwwsrch.cgi?WORD=global-set-key&ANDOR=and&index=memo&memoall=on]

■ 青木 [> M-<, M->
あれ?? なんで Ctrl だと思ったんだろう。

……と思ったら、やっぱり M-< でも効かねえ!

……と思ったら、CMD じゃなくて英数を押してました。
それで勘違いしたのか。恥ずい。]

■ 青木 [> kjana さん

なんか非常に誤解しやすい文でしたが、
[C-=] の件は式全体の意味が違うのかなあという話でした。
[C-t] と [?\C-t] は同じになるのに、
[C-=] と [?\C-=] だと同じにならないのはなぜだろう、と。

> 桑島さん

ありがとうございます。ちょっと時間がなくてリンク先は
真面目に見てませんが、あとでゆっくり参考にさせてもらいます。]

■ 青木 [> えりむさん

そっか、あれは Carbon と Cocoa の違いなんですね。
知りませんでした……。勉強になります。]

■ 青木 [そうか、右 ALT (cmd) がないことが根本的な原因だ。
右 ALT がないから左で押そうとして英数押したり
Ctrl 押したりしてたんだな。これはどうにかしよう。]


2007-01-29

■ 『Rubyレシピブック』第二版

そういえば、もうじきレシピブックの二版が出ます。 二版と言いつつ内容はマイナーバージョンアップなので、 初版を持ってる人は買う必要ないと思います。 持ってない人はこの機会にぜひどうぞ。

ちなみに初版との差は、

  • 表紙が『たのしいRuby』互換になった
  • 二色刷りになった
  • 間違いとかが微妙に修正された
  • 説明も微妙に改善された
  • Ruby 1.8.1 対応 → 1.8.5 対応

てなところです。

(19:03)


<前月 | 最新 | 次月>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|