プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです


GBAファイラーができたので、ようやく電車の中などでベーマガスレが読めるようになった。


いやー、しかしこのスレを読むのはなかなか大変だ。
けっこう何日も読んでいるのだが、ようやく7スレ目に到達したところである。
文字を読んでるだけなのだが、一つ一つに反応してしまって、進みが遅い。
これでリンク先なんかをたどってたら、もっと時間がかかってるだろうな。
まだまだ長く楽しめそうだ。


さて、ビュワーとしては便利に使っているのだが、せっかくSRAMを積んでいるのだから、ちょっとしたメモを取ることができたらいいなと思い、GBAによる文字入力の検討を始めた。
数ヶ月前にPHSを解約してしまったので、特にGBAをメモ代わりに使いたいという気持ちもある。
GBASRAMは64KBもあるので、メモを取るには十分すぎる容量だ。
さらに発展させて、blogの記事も書けるようになるといいな。


GBAで文字を入力しようとする時、まず考えなければならないことは、入力方法である。
当然のことだが、GBAは十字キーなどを含めても10個しかキーがないので、100個以上キーがあるPCと同じように文字を入力するわけにはいかない。
ファミコンロールプレイングゲームなどで勇者の名前を入力したことがある人は分かるよね。:)


ひらがなだけでも50種類、英数で36個、記号は30個あまり。合計116個といったところか。
単純計算をすると、最悪キーを10回以上押さないと現れないものもありそうだ。
キーを押す回数を減らすだけでなく、直感的に分かりやすいことも重要である。
単純にキーを押す回数だけだと、非常に使いづらいものになったりする。
まあ人間慣れれば扱えるようになるのかもしれないが。


いくつかのアイデアを考え、簡単にシミュレートしてみる。
決定キーを使わず、十字キーのみで確定してみたり。
LRキーである程度候補を絞り込んでみたり。
それらのコンビネーションというか、妥協点を探してみたり。


いろいろやってみたが、どうも使いやすいものにならない。
キー入力を減らすためには、一つのキーに複数の役割を与える必要があって、それがどうも使いにくさにつながっているようなのだ。
役割を統一させると分かりやすくなるのだが、キーを押す回数はどうしても増えてしまう。
POBOXのようなアプローチが取れるとよさそうなのだけど、GBAだとそれを覚えておくための辞書領域が足りない。


んー、思ったより難しいな。
SRAMに対するファイルシステムも検討しないといけないし。
けっこう先は長そうです。。。

Code Reading


先日amazonで "Code Reading" という本を購入した。


Code Reading―オープンソースから学ぶソフトウェア開発技法


本書でも述べられているのだが、コードを読むための本というのは今までなかったと思う。
よいプログラムの書き方を学ぶための一番よい方法は他人が書いたコードを読むことという意見には賛成である。
よいコードも悪いコードも、学習するためにはどちらもよい教材であり、コードを読んだ分量だけ経験が身に付くものだからだ。
昔から言われていることなのに、このような本が今までなかったというのはなんか不思議だな。


ちょっと高かったけど、なんかとても読みたくなって、思わず購入してしまった。
まだ最初のあたりしか読んでないので、本当にぼくが期待することが書かれているかどうかは分からないけど、面白くて夢中になって読んでいる。
序盤はアルゴリズムのいわゆる定石について書かれている。
まずは基本から押さえようということかな。


ぼくが最初にふれた「よいコード」は、UNIXの4.1BSDのソースコードだった。
シンプルで誰にも分かりやすい実装と、適度に散りばめられたコメント。
性能に対する考慮もされているが、必要以上に複雑で分かりにくいことはなく、あくまでエレガントなコーディングスタイル。
見ているだけでシステムの思想が分かりそうな、統一されたプログラム構造。
それは今でもぼくのコーディングスタイルにかなりの影響を与えている。


さて、ちょっと日記はおいといて、続きを読むとしようかな。(笑)