MacBook Pro 13インチを入手。これでiPhone開発ができる。iPhone持ってないけど。半日使っただけでいろんな知識が身についた気がする。

WindowsとMacを1つのキーボードとマウスで操作するためSynergyを入れる。最新版を入れるとキーボードが使えなかったので,synergy-1.4.7-Windows-x64とSynergyKM-Beta7の組合せで入力できるようになった。記号がおかしいけどそのうち調べよう。


MacBookをマルチブートに。Bootcampを使えばWindows 7をそのまま入れられるんだけど,折角なのでEFIネイティブインストールを試みる。けどどうやってもダメだった。以下の手順でEFIのローダーは起動するんだけど,そこから暴走してしまう。もう一歩な気はするんだけど,まだ誰も成功していない気がする。

  • (Mac)ディスクユーティリティでパーティションを分割。HDDの後ろにMacBookのリカバリ領域があるけど,Macパーティションを縮小したら自動的にリカバリ領域も移動してくれる。
  • (Mac)rEFItをインストール。ブートセレクタの役割をしてくれる。
  • (Win)Windows AIKで,EFI用のWindows 7 x64インストールディスクを作成
    copype amd64 c:winpe_x64
    oscdimg -m -o -u2 -udfver102 -bootdata:1#pEF,e,
      bc:winpe_x64efisys.bin g: c:winpe_x64
      winpeuefi.iso
  • (Mac)Optionキーを押しながら起動し,CDを認識したらrEFItを起動し,メニューからbootx64.efiを起動
# わざわざAIK使わなくてもWindows 7 x64 DVDを使えばEFI選択してそのままブートできた。MSDNのx86 x64共用DVD使ってたからできなかったのかな。

Dell XPS M1710 実機にWindows 8 Consumer Previewをマルチブートインストール。やっぱりある程度本格的に使わないと分からないし。Windows 7βのときはほとんどのドライバを自動認識してたけど,今回は認識してくれない。ドライバ探すの大変かも。

  • おなじみの? Bettaが前面に押し出されている。無駄にイラストチックに進化してるし。
  • ブート選択がグラフィカルに。Win8が起動しきってからOS選択が出てきてWin7を選択するとPC再起動してWin7が起動する。
  • Win7をデフォルトにすると従来の選択画面になる。Win8が壊れたときにWin7も起動できなくなる気がするのでβの間はWin7をデフォルトに変えたほうがいいかも
  • マルチディスプレイにしていると,両方の画面にタスクバーが出ている。便利。かなあ。
  • 例のごとく各社ウィルス対策ソフトは対応していないのでどうしようかと思ったら,Windows Defenderにデフォルトでウイルス対策が入っている。とりあえずはしのげそう。

今月に入ってからウェザタイランキング上位に変動が。JISもQwertyでも上位が入れ替わっていますね。

でタイピングスレでもネタ的な扱いになっているけど,現2位の方の扱いはどうするのが正しいのか。一応私が不正記録認定をした記録は裏ランキングに載せることにしているんだけど,この記録の微妙さで3年間迷っている。一旦裏ランキングに載せておいて,コンタクトがあるまでそのままとかそういう対応をしますかね。裏ランキングの判断規準をもう少し整理してからかな。

謎休みで前から行ってみたかった国会図書館へ行ってみた。幼稚園からの愛読書だったマイコンBASICマガジンが83年6月からずっとあるので閲覧。

今見るとBASICのプログラムって読む気がしないですね。高速化のためにマルチステートメントと論理式を多用してて構造化が見えてこない。ハンドアセンブルのマシン語使いまくりで,今だったら打ち込もうとは思えない。

でもBASICだからこそ1~2ページのプログラムでいろいろ詰め込めるというのがあるし,グラフィックはほとんどなくてアイデアが全てっていうのがあって,当時はこれを見ながら打ち込んで,デバッグして,改造してプログラムの楽しみを覚えたわけで。もし今プログラムを始めようとしたらどこから始めればいいのか。

そういえば,タイピング同人誌は国会図書館に納本して後世に残すべき本なのでは・・・みたいなことを思ったけど,そもそも同人誌って納本するものなのかなあ。

Weather Typingランキングで過去のランキングを公開してみた。タイピング本の影響で少しでも過去が分かるような資料を公開しておこうかな,というところ。

過去に公開してたものだから大丈夫とは思いますが,勝手に公開するな,消しておいてくれ,みたいなのがあれば個別に対応します。

公開TOEICを受けてきた。久々に最後まで終わらなかった。あと3分あれば。

で,前回公開TOEICを受けたときに書いたけど,TOEICを日本語訳した動画は非常に参考になる。プロ?がリスニング試験受けたらどうなるのかを自分で体験できるわけで,やってみると文章を聞きながら問題を解けるのが分かる。ついでにコメントまで読めるのも分かる。というか問題をじっくり聞いて全部覚えてから設問に答えるなんて日本語でも無理。問題聞きながら設問をぱっと見て解くしかない。

なので最近はそれを意識してパラレルにやろうとしてるんだけど,なかなか難しい。問題を覚えてから解くよりは数段安定するようになったけど,問題読んでる間に重要な単語を聞き逃したりする。流し読みと流し聞きができるまでになれば簡単になるんだろうなあ。

Androidに入ってたGoogle音声検索で遊ぶ。Googleの持ってる膨大な検索データを使っているからいろいろ認識される。でもウェザータイピングとか人喰い掲示板の噂は認識したけどデナスシステムは認識されない。何故だ。設定で英語版にすると英語発音のチェックにもなる。

こういうの見ると,音声入力ってフリック入力より将来性あるんじゃない? と思ったりもする。すると当然タイピングゲームも音声入力になって,ランキングもどれだけ標準的な発音に近い音声を連続で出せるかという勝負になる。面白そう。

Android端末を電車で使っていると,たまに縦画面と横画面が意図せず切り替わってしまうことがある。これってひょっとして電車の加減速が影響してるのかな,と思って調べてみた。まずAndroidがどのくらいの加速度で縦横を切り替えるのかシンプル加速度ロガー・アクセロガというアプリで見てみると4.0m/s^2くらいで切り替わってるっぽい。0.4Gくらいですね。次に電車の加速度を調べてみると,起動加速度という用語があって普通の電車で3.0km/h/s=0.83m/s^2くらい。0.08Gくらいですね。ということで全然足りない。急ブレーキは? って調べてみると一般的な自動車で0.6Gとかそのくらいらしい。

長々書いたけど,結論としては,急ブレーキでは影響がありそうだけど,ほとんどの場合は単に身体が傾いて縦横が切り替わってるだけってことですね。

Weather Typing for Android Ver1.1をAndroid Marketで公開。まだ更新されてないっぽいけどそのうち更新・アップデート通知が行われるはず。修正点は以下の通り。

  • 打ち込むワードにカタカナや全角英数字が混じっていたのを修正
  • 「,」を「、」で打てるようにする
  • 30ワード未満の場合ランキングに問題数を表示するようにする
  • プレイヤー名を8文字まで許可する
  • UIの改善

個々の修正の詳細は昨日の日記を参照。ワード数の選択については,今日一日いろいろテストしていたけどどうしても過去との互換性でどうにもならなくて諦めた。その代わり,例えばワード10問設定にしてランキングに登録すると「Android 10ワード」のようにワード数が表示される。一応10ワード内で何位,みたいには見ることが可能。

Android版ウェザタイ1.1。たまっていた修正項目を一通り実装した。明日1日テストして問題なければAndroid Marketに流そう。修正項目は以下の通り。

  • ワード数の選択を廃止。代わりにbeginnerモード(5問固定)とexpertモード(30問固定)を選択できるようにする。beginnerでランキング登録した場合はbeginnerと表示されるので,beginnerランキングでもやり混みが可能。
  • 例外は全てcatchしてログを吐いていたのだが,不明な例外はcatchせずに潔く落とすようにする。ハンドルされていない例外はAndroid Marketから参照できることが分かったので,独自のログをはくよりこっちの方が調査しやすい。
  • アップロードダイアログのボタンがIMEウィンドウで隠れて微妙に使いづらいのを改善。
  • ワードのひらがな行に,カタカナと全角英数字が混じっていたのを修正。Android Marketのコメントから。
  • プレイヤー名が6文字しか入らないのを8文字まで許可。tomoemonさんのtwitterから。
  • 分かりにくい文言を改善。tomoemonさん,typezukiさんのtwitterからヒントをもらった。
  • 画面周りの変更。移植中のSilverlight版から逆輸入。

プレイヤー名について補足。文字数を増やした代わりに,スピード1000以上またはトータルポイント10万以上になると結果表示画面で文字列が切れる。レベル10以上の人は気を付けて下さい。

テレビとか2次元の動画を片眼で見ると立体に見えるという噂。マジで? って感じでWorld Testerを片眼で見てみたが,ブランコとかすごい立体的に見える。せっかく裸眼立体視オプションを付けているのにこんなことで立体に見えるとは。普段は2つの画像があるから両目で同じ画像だったら平面だと認識するが,片眼で見る場合は本当は2次元なのか3次元なのか区別が付かなくて立体だと認識するってことなのかなあ。うまくできすぎ。

Windows PhoneとWindows 8(Metro)開発の練習にWeather Typing Silverlightをちょこちょこ実装。どうせ作り直しなら入力方式プラグインとかランキングでリプレイアップロードとかやりたいよね,的なことを考え出すとなかなか進まない。


Android版ウェザタイ,そろそろ修正したい項目がたまってきた。追加機能なくてもバージョンアップした方がいいのかな。

掲示板が10進数のキリ番になったので1001-2000を過去ログにまとめた。全般的に人喰い掲示板ですね。


今回コミケは帰省の途中に寄ったのでHDDを持ち歩いていた。なので行く前にHDDを全暗号化するソフトを検討した。いろいろ調べて結局TrueCryptに。休止状態にする度にアンマウントされるのでWindows LiveMailと組み合わせるとひどいことになったけど,それ以外は問題なし。

Denasu新年会。ぱじ氏にタイピング本を見せてみたが,反応薄。もはや脱出ゲームの人なのか。

とりえずインタビューのところだけは確認してもらったのだが,ロビーに関して「ぱじ氏が絶対必要と言ってきて」というのが「そうだっけ?」と反論。家に帰ってチャットのログを見てみた。以下2002/3/17のチャット抜粋。

モルタルコ の発言 : ウェザタイ大会を開くらしいですよ
パジャ の発言 : 参加しれ
モルタルコ の発言 : 掲示板によると20人ぐらいでやるとか
やらないとか
モルタルコ の発言 : 本当は我々が主催しないといけ
ないんだけどね
モルタルコ の発言 : ネットワーク対戦は初心者には敷居が
たかいらしいね
モルタルコ の発言 : ロビー欲しいね
パジャ の発言 : 欲しすぎ
パジャ の発言 : 全然告知しないである日いきなり
「ロビーできました」ってのがイカス

ウェザタイ大会ってのは当時むなしいさんがオンライン開催していた「WT大会」で,ロビーがあれば楽だったのに,という話。これを見るとどっちに責任があるのかは・・・?

タイピング本をだいたい読み終わった。第I部にウェザタイの初速に関しての分析があって,なるほどこのソフトはそういう性格のソフトなんだというのが今更分かったり,いろいろな発見があった。

あとは配列系も興味深い。ウェザタイとしては一通りの有名どころの配列をサポートして以来満足していて,新配列系は重視してなかった。でも,もし新しい配列が一定のユーザ数を獲得して要望が挙がってきたらウェザタイのポリシー的には正式対応するのかなあ,とか。サポートするかどうかの基準がすごく難しいし,いろんなバージョンがあってサポートしきれないとか考えないといけない点はいろいろあるよね。


この本と直接は関係ないけど,もはや連絡先はメールアドレスじゃなくてtwitterアカウントなんだなあ,ってのを実感。私もtwitterアカウントは持ってるけど,元々ぱじ氏と連絡とるためだったので最近放置している。今までDenasuサイトで告知してはいなかったけど,そろそろ公式アカウントとして有効に活用しますかね。とりあえず@Mortarcoです。使い方よく分からないし,日記とどう使い分けるのかが微妙だけど。

Android版Weather TypingのランキングをAndroidで見ると名前の最後が文字化けすることがある問題を修正。Android JavaのURLEncoderがバグっていた。以前1つ対策したのだが,もう1つバグがあった模様。

URLEncoder.encode(s, "ISO-2022-JP")

のようにUnicodeからJISコードに変換した場合,以下の2点がバグっている。

  • 全角半角が混在した場合,全角半角の切り替えポイントで「%1B%28%42」が入らない
  • 最後に「%1B%28%42」が入るべき箇所が「%1B」になってしまう

なんていい加減な。それともJISがそういう規格なのかなあ。クライアント側を直しても既にアップロードしている人はバージョンアップしないといけなくなってしまうので,サーバ側で対策。しかもAndroidのバグがいきなり直った場合でもうまく動作しないといけない。結局以下のPerlコードで対策した。

if(($value =~ /%1B%24%42/) && !($value =~ /%1B%28%42/))
{
    $value =~ s/%1B([^%])/$1/g;
    $value =~ s/%1B%24%42((%[A-Fa-f0-9][A-Fa-f0-9])+)
              /%1B%24%42$1%1B%28%42/g;
}

JISの開始コードがあって終了コードが1つもない場合,「%1B」が単独で存在したら消しておき,全角部分をJIS開始コードとJIS終了コードで囲むという処理。一応テストはしたけどあらゆるパターンで大丈夫なのか自信がない。

Android版ウェザタイのテストでGoogle日本語入力βを入れてみた。変換候補が出てきてしまうが,とりあえず動作可能。で,この使いやすさは・・・。普段使うIMEはフリック入力からGraffitiに変えてたんだけど「フリック入力でいいかも」と思うくらい。フリック入力の上下左右が最初から表示されてるのと記号ボタンがあるのがいいですね。抵抗膜感圧式のタッチパネルならGraffiti最強なんだけどなあ。

Android版ウェザタイもダウンロード数1000超えになったことだし,そろそろバグ修正しようかな。

MSDN納品。とりあえずMSDNからダウンロードできるところまでした。というか前回もそうだったけどすごく分かりづらいので,オープンライセンスを取得してMSDNダウンロードできるまでのメモ。

  • MSDNをオープンライセンスで買うと,購入ありがとうメールが届くので書いてあるURLにアクセス。メールアドレスを入力するようなことが書いてあるが,URLにメールアドレスが埋め込まれているので自動的に登録完了。
  • 上で登録したのはオープンライセンスの管理者。MSDNからダウンロードするには,管理者になりきって自分のMSDNアカウントを発行する必要がある。MSDN Volume Licensing Service Centerから[ライセンス]-[契約の一覧]でライセンスを選択し,「MSDNサブスクリプションの管理」を選ぶ。
  • ユーザ一覧から「ユーザの追加」を選び,ユーザを作成。購入した情報に基づいてライセンスを割り当てる。ここで,IEを使っていると「特典を 1 つ以上選択してください」というエラーが出てどうにも先に進めないので別ブラウザを使う。特典を入力するとメディア送付先とか出てくるので入力。
  • ユーザ作成が完了すると「お客様の MSDN サブスクリプション特典アクセス番号がご利用いただけるようになりました。」メールが届く。このメールに従って,自分で登録したユーザ情報を自分で入力。

2年前はMSDNアカウントをどこから作るのかよく分からなくて悩んだが,今回はIEを使ってはいけないというところで悩んでしまった。MSのサイトだからわざわざ素のIEを使ったのに・・・。

「[C81] タイピング Professionals – タイピングガチ勢」でタイピング本の告知が。O’ReillyでしかもProfessionalsとは,プログラマにしか伝わらないネタを仕込んでますね。

大晦日は忙しそうだから私は行けるかどうか微妙なところですが応援はしてます。

Flashゲームのトップをdenasu.com内に移動。とりあえずあそこまでやってあればそうそうアカウント停止とかはないでしょう。

ぱじ氏がサイトを立ち上げたのでDenasuからのFlashコンテンツのリンク先をうなぎタイムズへ変更。ここから先の管理はよろしくお願いします>ぱじ


今年もMSから催促の電話がかかってきたのでMSDN Premiumを更新。この前衝動買いしたAdobe CSもあるので結構な請求が。まあ4万円のお節料理を買うよりはいいか。てことでソフトも揃ったことだしそろそろ何か作り始めないと。

タイピングスレ発祥のTypeLighter,気になりますね。この段階でも作り込みがすごい。ワードファイルがXMLなのが今風な感じ。

先週あたりからAndroidにSPAMが。10年くらい使っていてSPAMは1通もなかったのに。ということで調べてみるとdocomo側でURL入りメール拒否設定というのができるっぽい。

Denasu掲示板もSPAM投稿が大量にきていたが,結局URL入りの投稿を振り分けたら全くSPAMがなくなった。docomoの方はURLを評価して拒否するようなので期待大。


はっぱさんから,電子ペーパーメモ帳Boogie Boardの新作RIPが出るとの情報を入手。うーむ,Save機能とかPDF化とかこの製品のコンセプトに合わないような。書くだけ,という思い切りにこだわりを感じてたのに,普通の製品になっちゃった感じ。

#公式サイトへのリンクを貼ろうと思ったんだけど,自分の環境では開くとブラウザがフリーズするので一応貼らないでおく。

tomoemonさんがまとめているタイピングの同人誌。当選てことでいいんですかね。タイピングソフト作者インタビューというコーナーがあって,私も少し協力させて頂いた。

インタビュアーの方が技術者の方ということで,入力方式の実装の難しさとか,いろいろ深い話をさせてもらった。没になってなければウェザタイのマニアックな話が載っているかも。他にも興味深い記事がたくさんありそうで,冬コミが楽しみですね。

前Purentroを作ったとき,.NETのリモートデバッグをやろうとしてあきらめたのだが,今回別件で必要になったので調べてみた。きっしーとかWebで得た情報によると,リモート側で,ローカルと同じフォルダ構成,ローカルと同じユーザ名のユーザを作成し,プロジェクトのデバッグプロパティで「ユーザ名@ホストIPアドレス」を指定すれば通常のリモートデバッグと同じ方法でいけるっぽい。なんかネイティブデバッグに比べてめんどくないですか。


ついでにWindows Installerのデバッグ。XP時代にやってたときはmsiexecをリモートデバッグしてブレークポイントはったりしてたような気がするけど,今は権限昇格とかいろいろあって何が何だかよく分からないなあ,と思っていた。でM氏に聞いた情報によるとMsiBreak変数にカスタムアクション名を入れておくとそこでダイアログが表示されてプロセスIDが出るので勝手にデバッグしてくれ,ってことらしい。一見親切に見えるけど,やってみるとめちゃくちゃめんどい。

ぱじ氏の人喰い掲示板の噂って8bit ADVに似てるということに気付いた。というか脱出ゲームそのものが8bit ADVに似てるけど,人喰い掲示板の噂は入力ボックス付きだから8bit ADVそのものだ,ということに気付いた。

#といっても8bit ADVはやったことないか。PC-6001,ぴゅう太,ファミリーベーシックを使ってたけどベーマガのプログラムしかやってなかったし。

はっぱさんにBoogie Boardを教えてもらう。その後調べていて欲しくなったので買ってみた。Boogie Boardは電子ペーパー的なメモ帳というか現代版せんせい? ペンで書いておいたら電力消費せずずっと映っているので紙とペン感覚で使える感じ。

でわざわざアキバまでいったのでラジ館を見てみると本当に人工衛星のような物体が墜落していた。なかなかの迫力。

Denasuのデザインを少しいじってみた。そろそろバナーも変えたいんだけどなかなか難しい。

C#のXMLドキュメントコメント。MSが公式に出しているSandcastleを使ってみた。リフレクションをフルに使ってMSDNみたいな形式でドキュメントを出してくれる。標準の型とか親クラスはMSDNへのリンクまで貼ってくれるというやりすぎなツール。

2011092501


GUIのフロントエンドSandcastle Help File Builderってのもあるらしいけど,常に最新版を使うならやっぱCUIよね,ってことで使い方。ちなみにOSはWindows 7 x64,Visual Studioは2010 SP1。SandcastleはJune 2010(Version 2.6.1062.1)。

インストール
  1. Sandcastleの最新版をダウンロード,インストール
  2. 環境変数にDXROOTが登録されるが,間違っているので最後の「」を削除しておく。
ドキュメント生成
  1. Visual Studioのプロジェクトの設定で「XML documentation file」を有効にする。その際ファイル名は「プロジェクト名.xml」じゃなく「comments.xml」にする。
  2. XML Documentation Comments形式で正しくマークアップされたプロジェクトをビルド。
  3. comments.xmlとビルドしたファイルと「C:Program Files (x86)SandcastleExamplesSandcastlebuild_Sandcastle.bat」を同じフォルダにコピーする。
  4. ビルドしたファイルがexeの場合,build_Sandcastle.batを書き換える(※1)。
  5. プライベートメソッド等非公開メンバも出力するには,build_Sandcastle.batを書き換える(※2)。
  6. 上記フォルダで以下を実行。形式は引数によっていろいろ選べる。
    build_Sandcastle.bat
      vs2005 ビルドしたファイル名(拡張子なし) html
※1
修正前:MRefBuilder %2.dll /out:reflection.org
修正後:MRefBuilder %2.exe /out:reflection.org
※2
修正前:MRefBuilder %2.dll /out:reflection.org
修正後:MRefBuilder %2.dll /out:reflection.org /internal+

最近は会社でWPFを使っている。C++の頃と比べるとめちゃくちゃ楽。イメージ的には,WPFではXAML10行くらいですむものをC++でやったら100行かかる,みたいなことを100個作るみたいな。

特に会社でWPFをやって初めて気付いたのがエラー処理の楽さ。C++(Win32 API/MFC)の頃は,UIを駆使するプログラムを書くと何かやる度にエラー処理を何十個も書いていたのだが,WPFだとほとんどバインディングですんでしまってエラー処理がほとんどなくなる。まあ例外に変わっただけと言えないこともないんだけど,それでも入り口にtry-catch書いておけばすむわけで。家プログラミングだとそこまでエラー処理入れないので気付かなかった。


もう一つ。今回は全関数について関数仕様書を書かないといけないかも,みたいな話があって,XML Documentを試してみた。けど結構すごい。関数コメントに書いたものを抽出して勝手にドキュメントができるのは今や当たり前だけど,.NETのはコメントと関数が合ってないとビルド時に警告が出るようになっている。ということは,警告が出なくなるまで修正してやれば,関数コメントは完璧になるわけで。この手のことをやるといつも問題になる,コメントと関数がだんだんかけ離れていくというのがなくなる。Java Docとか最近見てないけどこんな風になってきてるのかなあ。

ただデフォルトでXSLTとスタイルシートがない(と思う)のが残念。Purentroを題材にそれっぽく見えるのを作ってみようかな。

タイピングスレが面白い流れに。ちなみにウェザタイはWeather Typing開発裏によると,0から作って基本的なところまでが1週間,対戦含めて完成まで1ヶ月だったっぽい。

あと入力不能時間に関しては,よくある質問にある通り,ハンデを-9にするとなくなる。リズムが乱される人はその設定でプレイするといいかも。