ページ

2010年7月24日土曜日

KINESISのキーボードを引っ張り出してきた

大学生のときに買ったKINESISのキーボードを引っ張り出してきました。買ってからもう10年近く経つのではないでしょうか。 キー割り当ての設定: 1. Progrm + F12 LEDが早く点滅 2. 先に割り当て元のキー LEDがゆっくり点滅 3. 次に割り当て先のキー LEDが早く点滅 4. 他にも変更したいキーがあれば続けて割り当てる 5. Progrm + F12 LEDが消えて設定終了 マクロの設定: 1. Progrm + Progrm Macro F11 LEDが早く点滅 2. トリガーにするキー LEDがゆっくり点滅 3. 登録したいキーストロークを押す 4. Progrm + Program Macro F11 LEDが消灯して設定終了 具体例は次のような感じ。 久しぶりだったのでキー割り当ての設定を変更するやり方を忘れてしまいました。マニュアルを眺めて見ましたが英語だからなかなか苦労します。 デュアルアクションのフットスイッチにはSpaceとCtrlを割り当てておいたのですが、これをShiftとAltに割り当てを変えてみました。 Progrm キーを押しながら Progrm Remap F12 を押してLEDが早く点滅したら最初に左のShiftを押しますとLEDがゆっくり点滅するので、次にフットスイッチの踏みやすい方を踏むと今までSpaceに割り当てられていたフットスイッチがShift-Lになり、再びLEDが早く点滅するので続けて左のAltを押してからふフットスイッチの押しにくい方のスイッチを踏んでやります。設定が終わったら Progrm を押しながら Progrm Remap F12 を押して設定終了です。 ついでに左の\(Keypad時Insert)をCtrl+Spaceに割り当てて日本語入力の切り替えができるようにもしました。 Progrm + Progrm Macro F11 を押してやります。LEDが早く点滅するので左の\を押します。LEDがゆっくり点滅するのでここでCtrl+Spaceを押します。そしたら再びProgrm + Progrm Macro F11 を押してやれば設定終了で、左の←キーの横の\キーを押すと Ctrl + Space を押したときのように日本語入力のオンオフを切り替えることができます。 長らく Windows で使っていたけど先日久しぶりに Windows マシンの電源を入れたら壊れたようなので、それに Linux マシンの使用頻度が高くなってHHKを使っていたけど、プログラミングの勉強とかしようとして段々指の負担が辛くなってきてしまい埃を被っていた KINESIS の ErgoElan を引っ張り出して埃を落として久しぶりに使って見ました。 やっぱり指の負担が少なくなってだいぶ楽になりました。なんとなく大きく感じますが普通のフルサイズのキーボードより幅が狭いので意外と省スペースだったりします。 確かに日本人の手には少々大きい感じがしますが、それでも普通のフラットなキーボードに比べたらずっと楽ですから、どうしてもう少しでも普及しないのか不思議でなりません。

2010年7月10日土曜日

喋ってくれるソフト

Linuxに喋って欲しいので以前にも設定していたけど再び。 festival とか espeak とか mbrola を入れてみました。 他にも mecab とか kakasi とかも入れました。 Debianのパッケージが見つからないと思ったら sid でした。 source.list に追加してあげる必要がありました。 deb http://ftp.jp.debian.org/debian/ sid main contrib non-free とりあえず英語では喋れるようになったけど日本語で喋ってもらえたら嬉しい。 それはそうと festival を使ってみると思いっきり LISP だった。 scheme で書かれているのかな? そういえば割り算って (/ (/ (/ 40000000 360) 60) 60) なんてしなくても (/ 40000000 360 60 60) で良いんだね。1分は1海里だけど1秒は30メートルちょいだね。 それにしても音素のデータをどうやってひらがなに対応させるかとか、日本語をローマ字に変換してコンピュータで読み上げられるようにするのにはまだまだ苦労しそうです。

2010年7月1日木曜日

やさしいLisp入門

先週くらいに丸ノ内OAZOの丸善で購入しました。 http://www.amazon.co.jp/やさしいLisp入門-酒井-皇治/dp/4877831029 LISPの本は何冊か持っていますがなかなか身につきません。今回もまた身につかずに終わってしまうのかなとも思いますが、少しは成長できるでしょう。 前書きを読むと理解のしやすさを優先して正確さを犠牲にしているとか、とっつきやすくするために car を first で cdr を rest で代用しているとあり、car や cdr で覚えているのでちょっと残念と思いましたが、読み進めると正確さを犠牲にしている部分はそれとわかるように、defun で関数を作る章で本当はマクロなんだけど関数と違うところはほとんどないから関数として扱いますというような冗長な説明が書かれているので読んでいて安心ではあります。 日本語の扱いについては取り扱っていないなど、知りたい部分が書かれていない感もあり少々残念ではありました。 まだ全部読んでいませんが丁寧に説明されている感じがするし理解のしやすさを優先したというだけあって分かりやすい感じもします。実際に自分が理解しているかどうかは別として。 さて、実際に書いたプログラムを実行するにはどうしたらいいのかなと、LISP関連の本を読んでいるといつも思うのだけど、ファイルの1行目に次のような実行するコマンドへのパスを記述するというような説明はないので本当にこれでいいのか自信が持てない。
#!/usr/bin/clisp
そう思って調べてみるとこのやり方で良かったらしい。 http://clisp.cons.org/impnotes/quickstart.html
Platform Dependent: UNIX platform only. On UNIX, a text file (#P".fas" or #P".lisp") can be made executable by adding a first line of the form #!interpreter [interpreter-arguments] and using chmod to make the file executable.
ということなので #!/usr/bin/clisp とか #!/usr/bin/env clisp とかを1行目に書いて chmod で実効権限を与えればOKということでした。 本書では MacOS X を前提にしているらしいので UNIX ライクなOSでの扱いはあまり詳しくないので少々残念。だけど概念的なプログラムの本質に関わるところで理解を深めることが大事なのだから細かいことにいちいち残念がっていてもしかたありません。 早くスマートで実用的なプログラムを書けるようになりたいです。

Windows の nslookup は完全修飾で検索しないといけないのね

お家のDebianで DNSサーバーとDHCPサーバーのセットアップをしたので Windows Vista なノートPCから接続して nslookup でちゃんと名前解決ができるか検証してみました。 DHCPクライアントになっている他の Debian マシンからはうまく動作しているように見えるのですが、Windows の nslookup で www.google.co.jp とか検索してみると www.google.co.jp.my.local.domain. みたいに勝手にドメイン名が追加されて困りました。 DHCPサーバーの設定を間違えたのかとも思いましたが、良く調べてみると最後に . (ドット)を入れないとダメだったのですね。 http://support.microsoft.com/kb/200525/ja
Nslookup は、常に現在のコンテキストから名前を委譲します。完全修飾名 ( ドットで終わっている名前 ) の問い合わせをしなかった場合は、その問い合わせには現在のコンテキストが追加されます。
ということなので www.google.co.jp. で検索すると正しいアドレスが引けました。Linux上の nslookup や dig は融通がきくのですね。