2010/06/20(日)逆あんみつ式ローマ打ち日本語入力

はてブ数 2010/06/21 18:24 計算機な日記::未分類つーさ

今日は日本語を打つに当たってqwertyキーボードでも、
2キー同時押しをするようにしたらもうちょっと速くキーボードが打てるんじゃないのということを考えてました。
つまり、かとかをk,aって打つんじゃなくて、k+aを逆あんみつで打つんですよ。
逆あんみつするのにその順番が重要視されるというのがこの入力方法の痛いところですが、
もしこれになれたら、カナ打ちに近い打鍵数で日本語入力できるんじゃないのかと思ったんです。

こういうことを考え始めたのは、twitterでニコラに関するつぶやきが流れてたからです。
この手の話で僕がまず思い出すのがこの動画。障害者のための生放送字幕支援の話です。
http://www.youtube.com/watch?v=vk8ZFAM2N2s

で、フツーのqwertyキーボードでも2キー同時押しぐらいなら認識してくれるので、
この動画に倣って、もしこの「逆あんみつ式ローマ字日本語入力」をマスターしたら、
僕のタイピングももうちょっと速くなるんじゃないの?
しかも普通のごく一般的な的なqwertyキーボードで

というわけでちょっと(30分くらい)練習してみたりしました。

ミスタイプを考慮しないタイプのタイピングゲームで速度が3/4というところ。
やっぱり単に逆あんみつといえども、キー入力順が制限されるというのがきついようで、
ミスタイプが増えに増えてしまって入力効率があまりよくないという結果が出ました。

日本語タイピングをより効率的に
ni ho n go ta i pi n gu wo yo ri ko u ri tu te ki ni

と打ちたいのに、

にほんごたいいpんうgをよいrこうりうってきに
ni ho n go ta i ip n ug wo yo ir ko u ri ut te ki ni

たとえば、短い時間の同時入力をコレクトする支援ツールをさくっと開発すればいいという考えもあるのですが、
これをやっちゃうと人間側の精度が甘くなって、フツーのキーボードで使えなくなっちゃうだろうし、
練習にならなくなるのでは? と思ったので、今日のところは保留にしておきました。
ただ、CtrlとCapsLockの入れ替えじゃないですが、自分の環境でだけ使うためにならいいのかなぁとも思いますね。
いずれ作ってちょっと使ってみようかと思います。

そこまでするならキーボード配列変えろと言う話もありますが、配列をがらっと変えるのにくらべると習得が速そうなので。
あー、左手に母音が集結してるdvorak-erが、この手の支援ソフト使うとタイピング超速くなりそうですね。

そんな僕の知り合いにはTCODEマスターがいるらしいです。
TCODEはかな漢字変換システムとはそもそも思考方法が違うので、
日本語を打つときにどういう思考の流れで分をタイピングしているのかが不思議です。
実際に紙とかに字を書くのに近い発想なんでしょうか。そんな気がします。

2010/06/19(土)つゆ。

はてブ数 2010/06/19 09:59 のんびり日記::のんびり日記つーさ

なんだかビミョーな天気が続いておりますの。
皆様いかがお過ごしですか。

とりあえず日記を書く習慣をつけようということで。
ちょっと最近のことを書いてみようかと。
思ったわけですが……。

やっぱり、特段これを書こうって思うことがでてこないっていうね。

6月18日 寝てました。
ちょっと体調不良でっていう、そのくらいしか。
SRM前にも目は覚めたんですが、もうなんかこれに出る気がしないっていうのは、
僕にとっては相当調子が悪いということがわかってもらえるかと思います。そうでもないか。
先週と言い、今週と言い、週末になると体調が悪くなるのは仕様なんでしょうか。
ちょっと調子悪いくらいで大学行かないっていうのも、ちょっと悪いクセが付きそうで怖い。
というかもう付いてるかもしれない。ぐふー。

6月17日 お昼頃研究室に出かけていって、輪講。
結城先生のデザインパターンの本を読んでます。良著だと思います。
ただ、僕は既にもう何年もプログラムを書いてきて、それとは知らずにそれらを色々使ってきてたので、
輪講にこの本を読もうと言ったのは(僕個人にとっては)悪手だったかなぁと思う。
なんか、何を読んでも今更という感じ。終盤になったらもうちょっと複雑化するみたいですが。
自分の中のパターンに名前がついてて、それ○○で、と言えるようになるのが利点かも。
夕方まで過ごしてバイト先の全体ミーティングに出て帰ってきました。

6月16日 お昼頃大学に行って、バイト先でパソコンのリカバリをしました。なんか妙に時間掛かった。
メーカー製のノートPCなのですが、リカバリ後にドライバやらソフトやらのインストールを自動で行うみたいです。
そのプロセスに1時間弱掛かったのですが、途中8回くらい勝手に再起動したり、再起動後にも同じ画面が出てくるので、
もしかしてこれ無限ループじゃね? とか訝しんだのですが、辛抱強く待っていたらsysprepしてくれました。
どうしてハードディスクイメージじゃないんですかね……。僕のEeePCは20分でリカバリ終わりますけど。

6月15日 午前中研究室でミーティング。3分ほど遅刻りました。最近プチ遅刻多いな。
午後はプログラムを書いてた記憶。バイト先のミーティングに出て帰りました。
バイト先、バイトなのになんか「顧問」とかいう肩書きを言い渡されてますが、
最近は専属SIerみたいになってる。ちょっとした不便をちょっとしたソリューションで解決する。
変な人と思われてるに違いないけど。その辺結構趣味丸出しでいられるので気が楽です。

6月14日 はなにしてたっけなぁ。
大学に行ったのとサークルに顔出した、ような気がしますが。


とりあえずそんな感じで毎日過ごしております。ふぅ。

2010/06/19(土)日々のことを書く習慣

はてブ数 2010/06/19 09:35 独り言つーさ

習慣という概念自体がそもそも私には通用しないっ
好きなときに好きなことをする、猫のような生活を送っているからだ。

日記を書くことが好きなら、それも習慣付いたかもしれないんだけど、
ここんところの放置っぷりはすごいなぁと、自分で思った。

これも一つの道具だから。

身内コミュニケーションのためのツールとして使ってる人もいるし、
ジャーナリズムの場として使ってる人もいるかもしんない。
徒然とかだだ漏れとかしてる人は何のために書いてるんだろう。
記録? 研究記録とか後で必要になるものはともかく。

そういう意味では、写真を撮る意味にも近いなぁ。
何でも記念日にできる純粋無垢な心を持っていたい。

もうちょっと、毎日やったことをしっかりとしたためておけば、
誰かの役にも立つかも知れないなぁと、ちょっとだけ思う。
何かにつまずいて情報の海を探し回る羽目になったことや、
思考実験とか、なんかの設計について根を詰めたこととか。

僕が、職業としての先生とか研究職とかに向いてないなぁと思うのは、
そういうことが極力めんどくさいと感じてしまうからかなぁ。
突き詰めて考えることは嫌いじゃないというか、むしろ割と好きだけど、
その軌跡を残すことについてはまったく無頓着というか。
職業研究者だったら、成果物とか残さなければ意味ないしね。

あー、でも。それとは全然関係ないんだけど、
ブログを書く習慣をなくしてから記憶力悪くなったかなぁと思う。
毎日が過ぎていくことへの感覚が希薄になって、
何かをしたのは昨日か一昨日かわからなくなって
今日が何日かわからなくなって……。

僕にとってのブログって筋トレに近いのかなぁ。
結局、もっと記事を書け、自分。という話なんだけど。

こう、新しいSNSにも登録したわけだしね。

2010/06/18(金)RenderStateManager.cs

はてブ数 2010/06/18 06:25 プログラミング::SlimDXつーさ
void SetRenderState<T>(RenderState state, T value);
T GetRenderState<T>(RenderState state);

SlimDXのDirect3D9のRenderState周りに関してGetとSetメソッドしかない。
なんで RenderStateManagerとかないの? ググったらGone.とか書いてあるページが出てきたけど。
正直不便。なので、Managed DirectXライクに、その辺をラップするRenderStateManagerを作ったりなど。
この辺欲しい人他にもいるんじゃないかなぁと思って公開してみるテスト。

続きを読む

2010/05/15(土)ゲーセンで失敗

はてブ数 2010/05/16 15:52 のんびり日記つーさ

唐突に日記。

お仕事の帰りにぞろぞろと人を引き連れ、
(自分の感覚的には)久しぶりにゲーセンへいってきました。

例によって、音楽ゲームをいくつか遊んだんだけど、
DDRでLv15とか、IIDXでDPとか、音楽ゲームを知らない人に見せるものではなかったと、今更反省している。
正直すまんかった。

音ゲ人口を増やすためには、
こういう時に限っては、自分の練習したいスタイルよりも、
オーソドックスな、基本的なプレイをして、
「楽しそう」「私にもできるかも」と思ってもらわなきゃいけないのに!

つい……。

ところで、jubeat人口は地味に増えているのか。か?
コインを入れないから、ここ2週間で500人くらいに追い越され。

そうそう、今日の1クレジットで、ついに。
http://twitter.com/jubeatter/status/14040229637

という、くだらないことでもいいから、ブログを書く習慣を復活させよう。
リハビリ、リハビリ。

追記

とかいう記事を書いた次の会話がこれだよ。

ココス「クレジットが安く売ってるお店見つけたんだ♪」
ココロ「すごーい!教えて教えて~」
ココス「へへ~。お姉ちゃん好きだもんね」
ココロ「今夜のおかずにしましょうね!つーささん」
ココス「なんかつーさイヤそうな顔してるよ」
ココロ「えーそんなことないですよね!」

すごい、クレジットが安く売ってるお店!
僕も知りたい! ゲーセンは食費です(キリッ

2010/05/03(月)mp3infp を C# で使うためのクラスライブラリ

はてブ数 2010/05/30 06:20 プログラミング::C#つーさ

TCO Q.Round1 が rescheduled だったのを知らなかったので、
mp3infp.dll を C#から使えるようにポーティングしていました。

C#からMP3ファイルのタグ情報を取得したいなぁと思ったのですが、
自前でフォーマット読んであーだこーだやるよりは、ライブラリで確実にと。
いつもタグエディタとして大変お世話になっているmp3infpに頼ることにしました。

このクラスライブラリの特徴

  • mp3infpが扱えるすべての形式に対応。
  • Unicode形式の保存にも対応。
  • ソースコードをあなたのプロジェクトにコピペするだけで使える。
  • ゆるゆるライセンス

    // タグ情報を読み込んで表示してみる。
Environment.CurrentDirectory = @"E:/Music";
TagInfo tag1 = MP3infp.LoadTag(@"[丹下桜] SAKURA/14. New Frontier.mp3");
Console.WriteLine(tag1.Title + " / " + tag1.Artist);

とか

    // ID3v2 タグを ID3v1タグにコピーしてみる
MP3infp mp3infp = new MP3infp(@"E:/Music/[水樹奈々] PHANTOM MINDS/02. Don't be long.mp3");

// ID3v1がなかったら作る
if (!mp3infp.ContainsMP3Tag(MP3infp.MP3TagType.ID3v1))
mp3infp.AddMP3Tag(MP3infp.MP3TagType.ID3v1);

TagInfo tag_v1 = mp3infp.LoadTag<TagInfo.MP3_ID3v1>();
TagInfo tag_v2 = mp3infp.LoadTag<TagInfo.MP3_ID3v2>();

// コピー元とコピー先で共通して有効な項目のみコピーして保存。
TagInfo.Copy(tag_v2, tag_v1);
tag_v1.Save();
// ID3v2はUnicodeに変換して保存。
tag_v2.SaveUnicode();

とか、そーいうことをC#からできるようになります。
mp3infpのお陰で、mp3ファイルのID3v1,ID3v2の他、RMPやOGG, WAV, AVI, mp4 などにも対応できるのが嬉しいですね。
素晴らしいプログラムをありがとうございました。

次のソースコードをプロジェクトに追加するだけで使えるよーになります。

ダウンロード

本体: mp3infp.cs (GitHub)
ライセンス: NYSL / http://www.kmonos.net/nysl/
動作に必要: Win32工作小屋 - mp3infp / http://win32lab.com/fsw/mp3infp/

mp3infp自体はLGPLですので、配布の際はご注意ください。

続きを読む