アメリカから帰国。これでやっと開発に戻れる,なんだけどゴールデンウィークで実家へ帰るので,もうしばらくSurfaceのまま。来週からはちゃんとした開発環境に戻れるはず。
2014年4月のエントリ
カナダからアメリカへ移動して週末。現地在住の日本人に案内してもらいつつシリコンバレーへ。といってもGoogleとかFacebookとかの本社をただ見ても、ってことでコンピュータ歴史博物館(Computer History Museum)へ行ってもらった。ここはちょっと前にMS-DOSのソースコードをWebで公開してて知ったのだが、実際の博物館だったんですね。
博物館の中はかなり広いが、20の区画にいろんな展示があり、プログラマは飽きない。お昼ご飯も含めて6時間くらいいたような。最初は計算尺、タイガー計算機、そろばんなどから始まり、パンチカード、ENIAC、UNIVAC、EDSAC、DECのVAX、Cray-1など聞いたことはあるけど実物は見たことがない実機の展示、IBM 1401で実際にパンチカードを入力してプリンタに出力するところのデモ、Apple-IやDeepBlue、虫が入ってバグの元ネタとなったコンピュータ、ロボットやゲーム展示コーナーとか、ギークグッズのお土産コーナーとか盛りだくさんだった。
少しずつWindowsストアのコメントが増えていっている。評価がばらけているところもなかなか面白い。既存の電子書籍リーダーの常識的なところを割と無視しているので、ぴったり使い方が当てはまればいい評価になるし、当てはまらなければ何コレ?的な感じだと思う。掲示板にも書いたが、ダメなところを言ってもらえると参考になるので、そういう意見は歓迎。
今日ついたコメントだと、見開きでスキャンした本を縦置きで表示したときに、画面タップすると2ページ進んでしまうので使いづらいというもの。なるほど確かに。自分の環境は横置きメインで気づきにくいので、参考になった。他にも、ペン色は操作を複雑にしたくないのであえて黄色一色にしていたのだが、変えられるようにしたいというのが2票目なので、需要がありそうとか。
Analog Book Reader要望集を作ったので、進捗が知りたい方は見てください。
新しいバージョンがWindowsストアに登録された。ファイル読み込み中にページ移動しても一瞬でページが表示されるようにして、サムネイルも現在ページに近い順に読み込むようにしたので、体感的にはだいぶ改善されているはず。あとファイルを大量に登録しているときに、サムネイルを読み込んでから表示していたのを、表示してから少しずつ読み込むようにした。これで起動時に遅いのも改善される。
後は、どのページが見開きなのかという情報と、サムネイルそのものをキャッシュするようにすればかなり快適になると思うが、それはまた今度。
今日から出張で、とりあえずカナダに到着。
Surface Pro 2があるので、十分開発も可能。
MSから回答。なんか障害だったらしくて今は大丈夫とのこと。見てみると,アプリケーションクラッシュのようだ。レポートには,いくつかの情報ファイルが含まれていて,一番重要なのがdmpファイル。このファイルをVisual StudioかDebugging Tools for Windowsで開いて,クラッシュの原因を調べる。今までのWindowsアプリだと,アプリケーションのpdbがあればどこで落ちたかがすぐに分かったのだが,winrtではなかなか難しい。言語レイヤーがいくつかあって,async/awaitでスレッド実行シーケンスが複雑になり,何重にも例外がラッピングされている。
普通に解析するのはかなり大変なので,Defrag ToolsのOneDriveで配っているPDEというツールを使うと,「!pde.dse」コマンド一発でコアな部分のスタックトレースまで表示してくれる。で,今回の場合,それでもユーザコードのココ,っていうのは出てこなくて,winrtの中で落ちてたりするので100%これが原因ってのは分からない。
とりあえず何かのボタンを押し終わったときに落ちていたのが分かったので,全てのボタンの動作をテストした。結果,ボタンの二重押しとかロード中にボタンを押したりしたときに落ちることが分かったので対策した。
Windows Storeから新しいバージョンがリジェクトされた。のはいいのだが,詳細を見ると
Overall result: in progress Report generated at 1/1/0001 12:00 AM UTC
となってそのまま半日くらい変わらなかった。ので,サポートの認証ステータスのリンクから質問してみた。
Analog Book ReaderのWindows Storeのコメントで,「統計画面にスペルミスがある」というのと「遅くて使えない」というのをもらった。
遅いというのは他の人からも指摘されていて,改めてチューニングを考えてみた。今までは,ファイルロード中,最初から読み込んでいくのと平行して,画面に表示しようとしたページを優先で表示するようにしていた。それはいいのだが,ページをパラパラやっていると,読み込み待ちのページが増えていって,結局表示されるのがずいぶん後になってしまっていた。なので,今表示しようとしたページを最優先で表示するようにしてみた。専門用語で言うとFIFOからLIFOに変えたってことですね。とりあえずこれだけでもだいぶ改善されて,ロード中にパラパラめくる分にはそんなに待たないようになった。
あとは見開きの決定をもっと早くできればよいのだが,見開き計算結果をキャッシュするしかないだろうな。ここは慎重にやらないとバグりそうなのでもう少し後で。
ストアに提出したので,まもなくダウンロードできるようになるはず。
CSSのセレクタを実装中。結構ルールが複雑なのでオートマトン化を検討中。でもHTML内にある全ての要素をCSSの数十のルールと全てマッチングをとるというのはなかなかヘビーな気がする。ブラウザの実装ってどうやってるんだろう。
ある環境で,どうやってもWindowsストアにつながらないなあ,と思って調べてみたら,ローカルプロキシのせいだった。その環境では,いろいろあってローカルPCにWebプロキシをたててそれ経由でWebにアクセスしているのだが,Windowsストアはローカルプロキシ経由では見られないようになっているらしい。となりのPCにプロキシたてることで解決したけど,なんのためなんでしょうね。
Windows 8.1 Updateがでたよ,と聞いたので早速アップデート。いきなりタスクバーにストアアプリが表示されて違和感が。Analog Book Readerはとりあえず問題ないが,アイコンがなんかちっちゃい。
で,今後はスタートメニューが付いてストアアプリをウィンドウで動かせるようになるという話ですか。スタートメニューはもう使うことないからいらないんですが。ストアアプリをウィンドウで動かせるのは多分やると思ってたし期待していたので嬉しい。これでデスクトップアプリに移植しなくてよくなる。
リリース以降、自分で使っていて気付いた不良をいくつか修正。詳細は更新履歴参照。夜中にWindows Store申請を出したら朝には公開されていた。米国で審査しているとしたら、時差の関係で日本からは効率よく公開できますね。
ユーザはどうやって更新するかというと、Windows 8.1の場合は自動更新らしい。なのでそのうち入れ替わっていることになる。
Flashぱじさんの非公開日記から。最初,私が「アナログ本に近い電子ブックリーダーを作る」と言ったときに,「パラパラめくるアニメーションに力を入れるの?? それは違うんじゃないかなー リアル本に近づけても意味ないよー」という感想を持ったらしい。
元々Analog Book Readerは,Windows 8の脱スキューモーフィズム,つまりデジタルなのにアナログを真似して使いにくくするのはもうやめよう,という理念に賛同して作り始めたもの。電子書籍も,本を読みたい人にとっては,ページめくりなんかやりたくないものであって,デジタルでまでめくる操作をさせられるのは苦痛だよね,と思ったのがきっかけ。なので私が目指したものとぱじさんが最初から持っていた感覚は同じわけですね。さすがぱじさん。
名前にAnalogが入っているが,これはデジタルで読んでいるのにアナログの本を読んでいるような感覚を得るという理想を表したつもりだが,まだそこまではいってないですね。できるだけ理想に近づけたいところ。