2008年4月10日から2008年4月6日までの日記を表示中

2008年 4月10日 (木)

uim.elの変換候補

今まで uim.el では超狭いウィンドウに変換候補をインライン表示しようとした場合,はみ出して表示させてました.つまり,変換候補の一部が表示されない状態.そんなアホみたいに狭いウィンドウで変換する奴なんかいねーだろと思っていたので・・・が,何とどうにかしろという要望がw

というわけで,まず,インライン変換候補表示するにはバッファの行数が足りなくてはみ出てしまうような場合は,強制的にインライン変換候補表示を無効化するようにしてみました.これは楽勝.

次に,エコー領域に表示する変換候補を整形します.今までは,Emacs21以上の場合,Emacsのエコー領域のリサイズ機能に任せて何も考えずに変換候補を横に並べたものをエコー領域に出力していたんですが,ウィンドウの高さが極端に小さい場合,エコー領域のリサイズにも限界が生じることから,これだと場合によっては現在選択中の変換候補が見えない事態が生じてしまいよろしくありません.

そんなわけで,『変換候補をエコー領域に表示した場合に何行消費するかをこっそり確かめた上で,実際に表示してみて全部表示しきれてないようだったら切り詰める』 という処理を追加してみました.

まず,こっそり確かめるために,新たに隠しバッファを追加して,ここに変換候補を書き込んだ上で, minibuffer-window で取れるウィンドウにセットしてみて,高さを見積ります.で,次に実際に message でエコー領域に表示させて,エコー領域の高さがさっき見積もった高さと同じだったらそのまま何もせず,小さかったら全部表示できていないってことなので,切り詰め処理を行って再表示する・・・と.

次に,切り詰め処理の方ですが,こっちはエコー領域が勝手にでかくなってくれない Emacs20・XEmacs 向けの変換候補を1行に切り詰める仕組みをちょっといじればいいのですぐできるはず・・・だったんですがここではまりました.自分で書いたはずの処理が読み返してもさっぱりで,どこを「ちょっといじればいい」のかが全然わからん (;´Д`).変数の名前は適当だし,謎の定数の足し引きをしてたりするし,何でこれでうまく動いているんだろうって感じです・・・.上の方から読み返して変数名を付け替えたりしてどうにか乗りきれましたが,できることならもう触りたくないですなぁ,この辺・・・.

そんなわけで,現状↓な感じになってます.

ウィンドウが狭いときのuim.elでの変換候補表示

[コメントを書く]

いわた 2008/04/13(日) 00:22:51
rieceのbottom-rightレイアウト愛好者でJ( '-`)しゴメンネ
アホな要望でJ( '-`)しゴメンネ
nosuke 2008/04/13(日) 03:25:34
か,かあちゃんw
なるほど,rieceでは確かにちっこいバッファが作られますね.
そういえば,以前,uim.el は rieceと組み合わせるとちゃんと動かない
という報告を頂いたことがあったんですが,その辺は大丈夫ですかねぃ
#自分の環境だと再現できなかったもんで

2008年 4月 9日 (水)

コントロールボックスみたいなもの

サービススイッチとテストスイッチをつけました.例によって,直径12mmくらいの穴を2個空けて配線するだけなんですが,手持ちのドリルソーで空けられるのは6mmまでなんで,残りの6mmは手でごりごりと・・・.結局穴あけだけで1時間くらいかかったような(´・ω・`) .ホールソー買おうかな・・・.

サービスイッチとテストスイッチを増設

サービススイッチはいつも通りモーメンタリなスイッチなんですが,テストスイッチの方はオルタネイト (押すと凹んでONのままになって,もう1回押すと飛び出してOFFになる) なスイッチにしてみました.その方が良いケースがあるようなので・・・.

あとRGB出力に75オーム抵抗を挿入するかどうかを切り替えるスイッチも追加してみました.3回路を一発で切り替えるトグルスイッチとなると3回路2接点しかないんですかね.3回路1接点でもっと小さいのがよかったんですが,見つけられませんでした (´・ω・`)

次は連射とボタン入れ替えかな.

2008年 4月 8日 (火)

H320 CF化続き

朝になって玄箱への退避が終わっていたので,今度はH320にCFをつけ直して書き込み・・・しようと思ったけどよく考えたらCFを直接カードリーダーにさして書き込めばいいんじゃん・・・っていうか,カードリーダー使えば,玄箱なんかに退避せずに直接HDD→CFで転送できたじゃん_|‾|○

まあ,仕方ないので,普通に玄箱から,T60に接続したカードリーダー経由でCFへrsync・・・遅いってレベルじゃねーぞこれは・・・(;´Д`).読み出しの時のさらに数倍遅い感じです.半日放置してどうにか終わらせました.

そしていよいよ,ケースを閉じる作業開始.覚悟はしていましたが,やはり普通に入れると,こんな感じで(わかりにくいけど)かなりはみ出てしまいます.ギュッと閉じてガッとネジを締めれば一応閉まるんですが,バッテリやアダプタ,コネクタ部分などへの負荷が大きそうで怖いので,できればもう少し何とかしたいところ.

で,あれこれ試してみた結果,青いゴムを全部取っ払うのが一番マシっぽいという結論に(笑).こんな風に一応変換アダプタの裏を絶縁して,青いゴムを全部取り外したH320に装着.あと,この金具を外すとさらにもう少し高さを下げられそうだったのでこちらも除去してみたり.

まだケースを閉じた際に下の方が若干浮き上がるような状態だったんですが,妥協してそのままネジを締めて作業終了.無事 RockBox も起動しました.まあ,これ以上やるならアダプタの出っ張ってるところ削るとかそういう作業になるかと・・・.

CF化して起動テスト

いやー,とりあえず無事完了してよかったです.使える領域がもう10G増えたのは非常に大きい.レスポンスとかバッテリの持ちとかはどうかなー.

uim.elでWnnがおかしくなる問題

例のWnnの変換候補がおかしい問題ですが,uim-el-agent をターミナルから上げて,以下の順で打ち込んだだけで再現可能でした.

1 0 SETENC wnn EUC-JP
1 1 NEW EUC-JP
1 2 NEW EUC-JP
1 1 CHANGE wnn
1 2 CHANGE wnn
1 1 [27 32]
1 1 [97]
1 1 [32]
1 1 UNFOCUSED
1 2 FOCUSED
1 2 [27 32]
1 2 [105]
1 2 [32]
1 2 UNFOCUSED
1 1 FOCUSED
1 1 [32]

↑はEmacsでバッファを 2個作って,片方で「あ」を変換している途中で,マウスで別のバッファに切り替えて,そっちで「い」を変換して,途中でまた「あ」の方に戻った,という状態に相当しまして ([27 32] (Alt+Space) ってのは uim-wnn の日本語入力をOnにするキーに適宜読み替えて下さい),これをやると,本来最後の行を打ったところで「あ」とそれに対応する変換候補がわらわらと表示されなきゃならんのですが,なぜか「い」に対応する変換候補が表示されます.

ひとまず uim-el-agent 側で管理しているコンテキストのアドレスを確認してみたんですが,特に異常はなさそう.コールバック時に一緒に返ってくる,登録時に設定したコンテキストのポインタは正しいのですが,その時渡されるプリエディットなどの文字列が違ってました.一応,uim-wnnがベースとした(?)という uim-canna でも試してみたんですが,こちらでは問題は出ませんでした.uim-wnn固有の部分が怪しいのかな?

でも,それなら 他のブリッジとかでも再現してもよさそうなものなんですが,gtk-demo を2個起動して,同じようなことをやっても再現しないんですよねこれ.uim-el-agentがAPIの使い方間違えてるのかなぁ・・・? いや,でもそしたら Wnn 以外でも問題発生するだろうし・・・.ひょっとして単一のプロセス内で2個コンテキスト作ると駄目なのか?

というわけで,gtk-demoを1個だけ上げて,その中で HyperText と Multiple Views の両方を開いて,それぞれで「あ」と「い」を並行して変換してみたところ・・・再現したッ! というわけで,uim-wnn の中で,本来 uim のコンテキスト毎に独立していなければならない何かの変数を使い回ししちゃうような記述になっているのではないかと予想.kinput2 はそういう使われ方しなそうな気がするし・・・(続く?)

ちなみに,これまでの話とは多分関係ないんですが,気がついたらWnnで「い」を変換すると,「い」が超いっぱい出るように(笑)

「い」がいっぱい

mixi

一瞬イタリアでの検索でも出るようになっていたんですが,すぐ直っちゃいました.

2008年 4月 7日 (月)

H320 CF化してみた

H320のCF化をやってみました.まずネジを外して,ゴムをはがしつつ蓋を開け・・・

蓋を開けたところ

青いゴムを金具ごと外してHDDのコネクタに到達.HDDはコネクタ抑えながらコネクタのない側に引っ張ったら取れました.

次に変換アダプタCFを装着.邪魔になるらしいので ジャンパを曲げてみました.とてもわかりにくい厚さ比べ大きさ比べ

大きさ比べ

で,こんな感じで装着.「PIN1」と書いてあるところがコネクタの端っこに対応するようです.3列分くらい穴が余るんですねー.最初アダプタ間違えたかと思ってかなり焦りました(笑)

変換をアダプタを差し込んで,純正ファームで起動してUSB接続して・・・ちゃんとPCから認識されたッ! アクセスするとLEDが光るのかw.

LEDが光っている

fdiskしてみたら,既にFAT32のパーティションが切られてました.そういうもん?

# fdisk /dev/sdb

このディスクのシリンダ数は 3948 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)

コマンド (m でヘルプ): p

Disk /dev/sdb: 32.4 GB, 32480690176 bytes
255 heads, 63 sectors/track, 3948 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

 デバイス Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        3948    31712278+   c  W95 FAT32 (LBA)

コマンド (m でヘルプ): q

dosfstools をビルドして,すかさず mkfs.vfat でフォーマットです.

# mkfs.vfat -F 32 /dev/sdb1

いざ・・・マウント・・・ッ!

# mount /mnt/sdb1
# df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/sda1              16G   14G  658M  96% /
/dev/sda5              93G   80G  8.5G  91% /home
none                   64M     0   64M   0% /dev/shm
/dev/sdb1              31G   16K   31G   1% /mnt/sdb1

∩( ・ω・)∩ワーイ

で,現在,古いHDDをつないで中身を玄箱に吸い出し中なんですが,何か20Mbpsくらいしか出てないっす (;´Д`).当初,間に無線LANのおまけのハブみたいなものをつないだのが良くないのかと思ったんですが,実は PC - H320 間が遅かっただけっぽい.これって USB1.1なんだっけ・・・? ここまで遅いとは・・・.

ちなみに,ここまでやった作業で一番大変だったのは蓋を外すところなんですが,多分本当に大変なのは蓋を閉じるところなんじゃないかという気が.果たして無事に終わるのだろうか・・・.多分明日に続く.

グラII

今日はちょっとだけ.6面までノーミスでいけたんですが,ほんとあと少しってところで激突.やっぱ完璧に覚えないとダメだ・・・.が,死んだところがよかったのか,カプセルをそこそこ取れてそこそこ復活.ビッグコアMK-IIは時間切れになったものの,その後のザブラッシュを初めてwノーミスで抜けることができ,オプション2個+レーザーにまで回復.なんと,そのままボスラッシュのボスたちを全部倒せてしまいました.やりましたね.

そして生涯で二度目の8面へ.当分来れないと思ってたんですが,そんなことはなかったようです.最初の細いところは抜けられたんですが,その後,一息ついたところでザブがわいてきてやられましたorz.

ていうか今気づいたんですが,デモ画面の6面,最後まで行ってるじゃんね.とりあえずこれ真似しとけばいいのかな・・・?

2008年 4月 6日 (日)

Wing:1行ってきた

日付が変わってからだいぶ経ったところで「名刺でも作ってみるかー」と思って作り始めたものの,全然うまい具合にまとまってくれず,朝まで無駄にいじったけど,結局大して改善しなかった上に寝坊するというがっかりな展開で一日が始まりました orz.後で目覚まし (普通のと携帯のアラーム) を確認してみたら,鳴った形跡があったものの,ばっちり止められてました.記憶にねー (;´Д`).よく10時に目が覚めたな・・・.

で,起きてから名刺刷ったりして,開場するくらいに家を出発.浅草でちょっと道を間違えたりしつつ,13時もだいぶ過ぎたころにようやく会場に到着.遅いかなーと思ったけど,まだまだ普通に買えました.ゆるくていいですねー.サークル参加のシューター部の方にご挨拶してみたり.名刺,ありがとうございました.

一通り買い物が済んだ後は,ゲーム大会の方を見てました (参加はしてないっす・・・).予選はPS版のおしゃべりパロディウスのおまけ面 (P1グランプリ) を使って行われたんですが,何かこれが超難しいっぽく,かなりの方が完走できずにリタイアされていました.恐ろしい・・・.

その後,15時過ぎたあたりで予選が終わり,上位8名による準々決勝が開始.準々決勝はティンクルスタースプライツ (LPPの方) で行われたんですが,普通に対戦するのかと思いきや,変則的な勝ち抜きシステムでした (4組ペアを作って,ペア内で先鋒+大将を決めてペア同士が戦う).先鋒が連勝すると,大将は何もせずに準決勝に勝ち上がれてしまうのがすごい.

準決勝は,勝ち残った2ペアをシャッフルして,旋光の輪舞で普通に対戦.そして決勝はなぜかアタックアニマル学園のスコアアタックでしたw.うわー.すげー懐かしい・・・.昔借りて結構遊んでたなぁ.上位4名に商品が贈られて,軽くじゃんけん大会があって終わり.参加された皆様,おつかれさまでした.ご挨拶させて頂いたシューター部の皆様,ありがとうございました.

にしても,大会はすごいゆるゆるな感じで意外でした.もっとあらゆるシューティングに精通した猛者同士による熾烈な争いになるのかと思っていたのですが,全然そんな感じじゃなかったっすね.

ちなみに,ゲームコーナーの一角にはデスクリムゾンがあって,パッドでクリアできる猛者を募集してました(笑).なぜか他より音量がでかく,誰も遊んでいない間はしょっちゅう「上から来るぞ!気をつけろ!」とか聞こえてきて酷かったです(笑).あと,いつの間にかバルトロンが設置されていて (シューター部の誰かが持ってきて置かせてもらったらしい),いつの間にかくしーさんが3周目くらいまで進めてました.さすが過ぎですw

Wing:1 買ったもん

しかし,よく考えたら超時間に余裕があったんだから,本とか既刊もその場でチェックして買っておくんだった・・・.まあ,でも,きっとまたチャンスはあるか.

あー,あと,なぜか名刺を刷った際に,本来黒いはずのところが,一部ラベンダーっぽい色になっちゃいました.超謎です.

秋葉原

その後,時間があったのでちょろっと秋葉原寄ってきました.ようやく32GのCF買いましたよ.これで俺の H320 も H332 だぜうへへへへへへへ.ところでどうやって開けるんだろうなこれ.普通にネジはずせばいいのかなー.ま,じっくりやろう.

あとは,いつものように雑多なパーツ買ったり.6回路4接点のロータリースイッチとかいって,何か超ごっついのー.こいつでガチガチと3・4ボタンの位置を入れ替えられるようにしたいんですが,よく見てみたら本体側の回転防止用(?)のでっぱりみたいなのがあって,スティック側への取り付けですごく悩みそうです・・・.

2008年4月10日から2008年4月6日までの日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2008年4月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ