■ 開発日記 巻之六拾参


OSTRA / Takeshi Yoneki


 ちょっと前、矢野顕子関連をWebで検索してるとき(多分清水ミチコのラジオ番組の録音を聴いてるときだ)、矢野顕子ファンらしきヒトのツイートあるいは掲示板の書き込みで、「矢野顕子を聴こうとしたらモンゴロイドが来るぞが流れてきてヘコむ」といった内容のものを読んだ。解説すると、おそらくiTunesかiPodでアーティストを選択してシャッフル再生したのだと思う。DEMO TAPE 1は坂本龍一・矢野顕子名義なので、矢野顕子作品として再生されちゃうということだ。なんというか、ご愁傷様。ごめんなさい。


2015.11.04


 テレビ王国で「図書館戦争」を検索したら「這いよれ!ニャル子さんW」が一覧された。何かおかしい、トチ狂ってると思ったがさにあらず、『第2話「セラエノ図書館戦争」』だということで、おそらく図書館戦争のパロディ。


2015.11.10


『サンワダイレクト 400-MEDI002 カセットをUSB経由でPCに取り込み、無料のGoogle Play Musicで音質をロンダリング』(http://pc.watch.impress.co.jp/docs/column/yajiuma-mini-review/20151110_729550.html)

 これ、合法かなぁ。Googleと各レコード会社の契約しだいなのかもしれないが、割とグレーな気がする。


2015.11.10


 スラドでスマートフォンが話題になると、とたんに書き込みのレベルが落ちる。なんだろう、自分でも解る話題ということで群がるんだろうか。その割には一度も開発したことないだろうな内容なうえに、嘘も多い。妄想を垂れ流してるのも多い。


2015.11.10


 OCaml 4.02とcamlzip 1.05を使って作ったzipファイルがLeeyes 2.6.1で開けない。axzipx.spi 1.3を無効に、amzip.spi 0.52を有効にすると開けるようになる。axzipx.spiかcamlzipのどちらかが間違った実装をしているということだ。少なくともcamlzipで生成されたzipファイルはInfo-ZIPのUnZip 5.51で-tでチェックして問題なしとされた。もちろん-tなしならば適切に展開される。


2015.11.15


 OCaml + camlzipをCygwinでビルドした実行ファイルが、たまたまIntelの入れてたzlib1.dllで動いていたと気付いて愕然とする。なるべくIntelの入れたPath設定を消し、明示的にC:\cygwin\opt\wodi\binをパスに加える。各メーカーの皆さん、使いもしないパスをぼんぼこ環境変数に追加するのやめてくれませんか。


2015.11.16


 libjpegを使ったプログラムをCygwinでビルドするとcygwin1.dllを要求する実行モジュールになる。これ、どうにかならないかとMinGWをインストールしてみたが、libjpegは用意されていない。自力でビルドしろということらしい。面倒だったのでC:\cygwin\binにパスを通した。


2015.11.17


Subject: Re: 【重要】e+より『KING CRIMSON』発送についてのお知らせ

To: Satoshi Ikeda, Yusuke Yamanaka, Satomi Yoneki

Date: Sat, 28 Nov 2015 19:59:46 +0900 (JST)


住所は合ってます。

よろしく。


最近、時間よ止まれのレコーディングにユキヒロと教授が参加してたと知る。

いまぁ、この曲好きです。中学の頃ラジカセで聴きまくってた。

兄が買った時間よ止まれが収録されたアルバムのゴールドラッシュ、

ウチにあるんだが、そのうちデジタル化しよう。


OSTRA / Takeshi Yoneki


ハーモニー(小説、伊藤計劃)

 ママからSony Reader PRS-T1ごと借りて読み始める。T2に比べ画面が暗い。.book形式の欠陥なのかReaderでの実装の問題なのか時折「〓」に遭遇する。虚無への供物と同じように「久」の字がおかしい。なんというかDRM付き電子書籍の不便さをこれでもかと堪能満喫している。ハーモニーは未だにKindle以外では.bookでしか提供されていないようだ。今まさしく映画が公開されている作品だってのに。


2015.11.30


 小娘がクリスマスプレゼントとして私の兄夫婦に米津玄師のCDを注文。12月初頭に届く。カーオーディオ用のiPod classicに入れるため一時的に借りてキャプチャ。ファイルサーバalephのパパオーディオライブラリに追加される。

 居間のステレオ装置でdioramaとBremenを再生する。パパとママは不満顔。なんか音が狭くて悪いね。

 翌日、試しにサカナクションの表参道26時を再生。なんだか音が酷い。35年使ってきたスピーカーがいよいよヤバいのだろうか。YMOのWARTERFORDを再生。普通に鳴る。ええと、米津玄師もサカナクションもスピーカーで再生すると粗が目立つ程度に音が悪い。多分ミックスダウンが全然ダメ。音圧を上げることを前提としたミックスなんだろうか。音楽家と聴衆ともに可哀想だ。

 まぁ、昔から日本のポップスは音が酷かったし、今も結局良くない。35年前YMOでやっと洋楽なみのクオリティになったと喜んでもYMO以外は相変わらず酷いまま。テクノ御三家のファーストのうち2枚は佐久間正英がサウンド面を担当したはずだが、地味な音作りは悪くはないものの特に良い感じでもなかった。その後小室哲哉が底上げを図ったものの、じきに音圧競争が始まってしまう。

 キッチンで作業中よくPC用のミニスピーカーにiPodを接続して再生する。試しにサカナクションを再生したらなんだか音が濁ってる。Underworldや808 StateやKraftwerkではそういったことはない(いつもはだいたいこのへんしか掛けない)。とはいえヘッドホンで聴くとそんなに変とも思わない。ヘッドホンってサウンドの良し悪しを認識しにくい装置なのかもしれない。そう考えると、音楽をスピーカーでなくヘッドホンで聴くという最近の風潮は、ミックスダウンで手抜きをしても良いというお墨付きを与えてるということになる。ポップスなんぞ通勤通学途中にヘッドホンやイヤホンでしか聴かないんだから品質なんてそれなりで良かろう、なのか? それで良いのか音楽家さん達よ。


2015.12.08


 Bremenをヘッドホンで聴くと(勿論通勤中に)、全体的に音が割れている。音が悪いのはローファイに仕上げてるせいで、音楽家の責任だと気付く。それでも全体としてバランス良く成立させるのがミックスダウンの責任だが、やはり腕か耳か上司が悪いんだろうかねぇ。

 つうか、ローファイなんてのはハイファイを成り立たせる腕があるという前提での崩しの手法なんだから、実際に悪い音じゃダメなんじゃないかと思うのだが、それは俺がオヤジだから? サカナクションもローファイ気味なんだろうなぁ。

 女の子5人以上のアイドルグループですら音が割れている作品をリリースする程度にちょっと前の流行の手法だと思ったのだが、現代ポップスにおいてディストーションギター並みに定着しちゃったんだろうか。気持ち良く歪んでるならまだしも、気持ち悪い割れ方をしてると感じるのは俺がオヤジだから?


2015.12.09


 大昔クラフトワークを観に行ったメンバー(イケダ・ヤマナカ・俺・ママ)でキングクリムゾンを観てきた。渋谷のオーチャードホール。ジョジョとは一切関係ない。副都心線に初めて乗る。渋谷駅に着いてから地上に出るまで10分迷う。

 生Fractureはなかったが、生Epitaphはあったので良し。会場はオヤジがほとんど。ハゲも多い。おそらく四十台でも若造扱い。


2015.12.10


 勤務先のメールボックスのspamディレクトリを見たらinvoice_17337060_scan_.zipとかいうファイルが添付されたメールがあった。例のvvvウイルス拡散用スパムだ。

 中にはinvoice_SCAN_sfSSk.jsというJavaScriptファイルが入っているが、難読化されてるのか、なんだかよくわからない。


2015.12.15


 小娘が「テトリス」をやりたいと言う。残念ながら我が家には「テトリス」はない。私が落ちモノが苦手ってのもあるが、たとえあったとしてもファミコンを稼働させる環境がない。

 秋葉原ヨドバシカメラでPS Vita版「ぷよぷよテトリス」を見掛ける。ぷよ好きな小娘に訊くと欲しいという。私はVitaを前提に話をしていたが、小娘は3DSを前提に話をしていた。「ぷよぷよテトリス」は様々なプラットフォームでリリースされている。


小娘「Vitaじゃなくて3DSの方がいい、長く遊ぶソフトになるから、Vitaは絶対バッテリー交換できなくなる」

親父「まぁ、そうだな」

小娘「絶対絶望少女みたいなのは一回やったら終わりだけどぷよはそうじゃないから」

ママ「ついにゲーム選びで何が重要なことかわかったのね」


 小娘のPSPも買ってから何年か経ち(3-4年程)、もうバッテリーが心許ない。ソニーさんはこうやってファンとかユーザを減らすんですよ。

 3DSで遊べる「テトリス」を調べる。上記「ぷよテト」以外にバンナムの「テトリス」がある。なぜかバーチャルコンソールのゲームボーイ「テトリス」の配信が終了している。ファミコン版の配信はない。DS版を配信とかいうこともしていない。そういうわけで、「ぷよテト」はどうでもいいけど、「テトリス」は俺も遊びたいので、近所のゲオを覗く。中古で「テトリスDS」を入手。十年前にリリースされたゲームが普通に遊べるって重要。


2015.12.18


小娘「あれ、チバドメだよね」

友人「えっ、何だって」

小娘「なんでもない」


小娘「もしかしてチバドメってウチ以外で通用しない?」

親父「ばれた」

小娘「他にそういうのないの?」

親父「あとは、ナベゲンかな」

小娘「…」


2015.12.18


 「2016年 祝日」でググると相変わらず「2016年 日本の祝日カレンダー」(http://calendar.infocharge.net/cal/2016/)というページがトップにでる。昨年参考にしたものの間違いが多くて役に立たない以前に迷惑だったサイトだ。今年はどうか。相変わらず間違っている。「山の日」がない。なんでこんなサイトがトップになってしまうのだろう。中身が間違っていてもGoogle対策でランクが上がるような何かを高度に施しているという意味なんだろうか。無茶苦茶迷惑。

 内閣府のページ「国民の祝日について」(http://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html)を参考に.icsファイルを作る。


2016.01.01


 割と衝動的にASUS TransBook T90 Chiをヨドバシカメラにて購入。PC Watchさん、少なくとも一人は買ったので良い記事というか宣伝でした。Zenbookで懲りてたはずなのに、結局その後もNexus 7に続きTransBookと最近は本当にASUSだらけ。

 フットプリントはかつてのネットブックを彷彿とさせるが、それより小さくて軽い。パフォーマンスも向上している。少なくとも普通にWindows 10が動く。Eee PC 901のWindows XPはあんまりまともには動いてなかった。概ねUbuntuで使っていたけどそれだって厳しい。CPUが非力すぎた。非力なCPUに合ったOSがあればいいんだけど、そういうわけでもなかったし。

 急いで買ってきたので、店頭でちらりと他社製品も見たが、似た構成の製品として東芝のタブレットが置いてあったと記憶している程度。TransBookが三万円程なのに東芝の製品は七万円程。きっとスペックやら色々と上なんだろう。帰ってからwww.yodobashi.comで調べてみる。七万円程のキーボード付きWindowsペンタブPCはdynabook N29。画面解像度が高いが、メモリもストレージも同じ。CPUはdynabookの方がちょっと弱い。あれぇ。きっとカメラとかスピーカーとかマイクとかトラックパッドとかキーボードに耐久性の高い良い部品を使ってるんだろう。そういうことにしておこう。www.yodobashi.comでユーザーレビューが無いのも納得。いやいやいや、本当は日本製品を買いたいんですよ。良いタイミングで手頃な製品をリリースするのが必ずASUSだったりするだけで。

 画面解像度もねぇ、特にWindowsでは高ければ良いというわけではないということがバレてるからなぁ。Modern UIだけを使うなら解像度の問題はかなり緩和されるんだろうけど、それならWindowsを選ぶ意味はほぼ無いわけで。デスクトップアプリが動くからこそのWindows。おそらく私はModern UIのアプリは電卓以外使いそうにない。

 ともかく、TransBookがNexus7の後継環境として使えるかの動作確認開始。

 VAIO Pro 11から実行ファイルをコピーしたら動かないものがある。CPUの制限なのか、32bitのWindows 10だった。VAIOは64bit。


2016.01.07


 TransBook T90 Chiを電子手帳として運用するにあたり、ネットワークを使わない地図が欲しい。Nexus 7ではMapFanを使っている。インクリメントPのサイトを見て驚いた。Windows版のMapFanは全部オンライン版、すなわちネットワークなしでは全く運用できないものだった。困ったな、ネットワークがあるならGoogleマップもWindows 10付属のマップもあるんだよ。Android向けにはオフライン版の地図ソフトをリリースしてるのになぁ。他社を調べよう。

 小説を読む環境としてKinoppyを入れようと紀伊國屋書店のサイトを見ると、なんとWindowsのKinoppyにはデスクトップ版とタブレット版と両方あると知る。頑張るねぇ。嬉しいねぇ。XMDFやEPUB3はこれで安心。

 PDFはとりあえずEdgeで読めるとわかったが、AdobeのReaderを入れるかどうか。ちと悩もう。

 テキストエディタは普通にサクラエディタが使える。電子手帳扱いできる機器が普通にPCだってのは結構良い感じ。Androidとは違う。このデスクトップとタブレットの未成熟な融合がカオスというか今のWindowsの醍醐味。自分で書いたプログラムが普通に動かせる自活環境。自活が半ば強要されるわけでもあるが、やっぱ楽しいわ。


2016.01.09


 ラーメンを食おうとママと練馬駅東側へ行く。しばらくまえから横浜家系ラーメン屋が二件ある。午後五時だというのにどちらにも客が一人もいない。危険を察したのか、ママが「ここはやめよう」と言い出した。閑古鳥ラーメン屋は後で俺が一人でチェックを入れることにして、何度か行って様子も味も分かっているつけ麺屋やすべえに行く。横浜家系の店はあの様子ではさっさと行かないと店がなくなるな。なくなるような店のチェックは不要といえば確かにそうなんだが。


2016.01.10


 ビックカメラでASUS TransBook T90 Chiと同じカテゴリのマウスコンピューターの製品が似た値段で売られていた。ヨドバシカメラの売れ筋ナンバーワンはT90 Chiだが、ビックカメラではマウスコンピューターのその製品が売れ筋ナンバーワンになっていた。型番などを見なかったので、推測だがおそらくNW892なのかなと思う(NW891はディスコンのようなので)。画面解像度は同じ1280x800。ストレージが32GBと半分。バッテリーの持ちはスペック上低い。

 日本電気も似たカテゴリの製品LaVie Tab W TW708をリリースしている。値段は似た感じだがキーボードはない。純正のオプションにもキーボードはない。画面解像度は東芝の製品と同じく細かい1920x1200。キーボードがないのが惜しい。10インチの製品にはあるのに。

 カメラ(というか家電)量販店でT90 Chiのケースを物色したが、ヨドもビックもアクセサリコーナーを占拠してるのはApple製品向けばかり。その他もSurface向けとXperia向けが割合としては多い感じ。ようするにT90 Chi向けは何一つ売ってないということだ。そういうわけで、amazon.co.jpでポチッとなをする。

 T90 Chiの弱点というか問題点のひとつが、キーボードのヒンジがあまり開かないこと。高めのテーブルで使う分には問題ないが、電車で膝の上などではもっと開いて欲しい。ぱったりと倒れるからこの角度なんだろうけど、倒れても良いからもっと開きたい。せっかく一体で使えるのに勿体ない。キーボードを開けて、金属部品を削る工作を解説しているWebページもあるが、流石にそれをする勇気は俺にはない。


2016.01.11


 OCamlの入門書を探していた頃、京大の五十嵐淳さんの「プログラミング in OCaml」が適切であると判断し(というか真っ当そうなのはこの本しかない)、幾つか書店を巡ったが見つけることはできなかった。結構前にディスコンというか市場からは消えてしまっていたようだ。さいわい技術評論社は電子版を販売していたが、PDFのサンプルを確認したところNexus 7 2013では私の目に厳しいと判明。諦めていた。

 より画面の広い(ただし解像度は低い)TransBook T90 Chiならばどうかと再確認、なんとか読めそうなので再び技術評論社のWebサイトをチェック。驚いたことに一年程前にEPUB版が追加されていた。すかさず購入。変なコピープロテクトもないのでどのEPUBリーダーでも読める。Sony Readerでも読める。T90 ChiではKinoppyで読める。


2016.01.11


 EdgeやFirefoxではPDFを読む環境としては結構微妙。もうちょっとちゃんとページ指向で読めるようにしようとAdobe Reader DCをインストール。しかし、どうにもダブレット環境では使えない。どうやらAdobe Reader Touchという製品がWindowsタブレット向けにリリースされているようだ。が、ユーザレビューでは評判が悪い。標準のリーダーの方がマシという言葉に注目。標準って何だ? プリインストールはされてないがマイクロソフトがリーダーというストアアプリをリリースしている。使ってみるとこれで十分だと判明。Adobe Reader DCはアンインストール。スワイプでなくタッチでページ移動できるといいんだが、まぁ、多くは望むまい。


2016.01.11


 メインPCのmonado(自作タワー、Windows 7)のOCamlがリンクエラーとかで適切に動けなくなっていた。はて、俺が何をしただろう。何かしたんだろうなぁ。色々してるせいで何が原因かわからない。OCaml環境も試行錯誤しながらの構築だったし、大分以前のことだ。考えてもしかたがないのでCygwinとWodiを入れ直す。CygwinはOCamlのコンパイルくらいしか使わない上に、HOMEは別に用意してるので、実際のところ単に再インストールするだけ。無事コンパイルできるようになった。

 monadoは20世紀からずっとメインのPCに引き継がれてきたホスト名だが、元々ライプニッツの単子論から持ってきたので正しくはmonadとかmonadeのはず。おそらく当時monadologyでは長いのでmonadoにしたんだろうと思うが、ともかくそんな単語は実在しない。メインMacのethicaも引き継がれていたが、ずっと稼働してないし、もはや後継もない。これはスピノザ。Linuxサーバのalephも何度も引き継がれている。これはカントール。


2016.01.21


 TransBook T90 ChiのWindows 10の[システム - 設定 - ディスプレイ]のサイズ変更が効かなかったのだが、大規模アップデートで効くようになった。やっぱりバグだったのか。良いことばかりでない。割と頻繁にスリープから復帰できなくなる。電源ボタン長押しで強制的に再起動させると、設定してもいない機内モードになってる。かなり迷惑なバグだな。デバイスドライバの出来に依存なのかもしれないが。


2016.01.22


 タブレットPCは縦で使うときと横で使うときと頻繁に切り替わる。TransBook T90 Chiはキーボードと接続すると画面下にタッチできなくなるのでタスクバーは左か右に欲しい。キーボードを外して縦で使うときはタスクバーは上か下に欲しい。現在のWindows 10にはそういう設定というか機能はないようだ。


2016.01.22


 昨年暮れに、いやもうちょっと前か、HPのプリンタOfficejet Pro 8600の液晶がおかしくなった。RGBのうちひとつが表示できてないような感じ。年賀状印刷が終わったら修理に出そうと思ってた。

 修理費用を尋ねようとHPのサイトからフォーム入力。何か様子がおかしい。電話しろってことか。電話する。NTTなどに比べ待つことなくオペレータが出る。一応オペさんの言う通りに電源プラグを抜いたりしたが当然ながら直るはずもない。

オペ「あとできることは交換になります、8600は現行機種ではないので8610になります」

俺「修理ってのはないの?」

オペ「すみません。交換になります」

俺「わかりました」

 他社もそうかもしれないが、現在HPのプリンタは異様に安い。その安さのしわ寄せはこういうところに出てくる。液晶が2年程でおかしくなるなんてのはおそらく製造不良だろう。それは一定の確率で発生するもので、工業製品ではしかたがないことだ。でも、不良品に対するケアを1年でバッサリ切って、たまたま不良に当たったユーザは運が悪かったと思うしかないってのは何か違うだろ。前の製品の8500は5年くらい使ったし。

 なので、当分現在のまま使うが、リプレース先がHPである可能性はかなり減ったと思ってください。少なくとも四半世紀程はHPプリンタのユーザでしたが、納得できません。


2016.01.26


 ヒットしてた当時は気付かなかった、というか大瀧詠一を知らなかったのだが、松田聖子の「風立ちぬ」を今聴くと完全に大瀧節。見事。


2016.01.26


TransBook T90 Chiのスリープからの復帰問題はスリープに限らず、ハイバーネート(休止)でも発生する。電源ボタンを押しても反応がなく、それでも押してると一度強制シャットダウンしてからの起動になるようだ。ドライバかOSか知らないが、さっさと何とかしてください。


2016.01.27


 エクスプローラーでファイルを掴んで例えばsakuraエディタに抛り込もうとする。途中バックにAdobe Readerがあると勝手に前面に出てくる。抛り込む先のエディタも元のエクスプローラーもバックに行っちゃってどうにもならなくなる。かなり迷惑。PDF描画の機能や性能はリファレンスたるものがあるけど、こういうおそらく各OS対応な部分はお粗末。昔っからお粗末。


2016.01.28


 IEでMSDNを見る。.NETのSystem.Drawing.Graphicsクラスを見る。メソッドの説明が読めない。異常に長い褌状態のテーブルの下にスクロールバーがある。をいをい、説明を読めるようにしたらメソッド名が読めないじゃないか。ハイビジョンサイズのモニタで全画面表示しても無駄。見た目の格好良さを優先したのか、一定サイズ以上には幅が広がらない。あちゃぁ、お粗末。昔っからお粗末。


2016.01.28


 Windows 10のタッチでWPFプログラムのモーダルダイアログの動きがおかしい。仮想マウスのTouchMousePointerだと想定したように動くので、タッチの問題だと思える。ドライバとOSのどっちがダメなのかはわからない。

 自分で用意したボタンをタッチしたときは良いのだが、モーダルダイアログを右上のクローズボックスで閉じたとき、どうもウィンドウインスタンスが生きててモーダルのままのような動きで、元のメインウィンドウをタッチすると再度モーダルダイアログがビジブルベル付きでポップアップする。それ以外にもなんだかおかしい部分があるので、モーダルダイアログをやめてモードレスダイアログにする。モーダルダイアログ自体は前世紀の遺物ではあるが。


2016.01.30


 iOSのUIWebViewは画面の描画にHTMLを使うとか、インターネットのページを表示したりするユーザインターフェースクラス。で、インターネットのページを表示するときに、例えばユーザIDを自動的に入れたりなど細工を噛ますことができる。そのためのメソッドがstringByEvaluatingJavaScriptFromStringである。名前からしてJavaScriptを表示に対して適用できますよってことなんだが、これって「JavaScriptを記述したObjective-Cの文字列」を渡すって意味なので、そのスクリプト自体の文法チェックもないし、停止しながらのデバッグとかも不可能。うんともすんとも言わないときにできるのはじっと手を見る、いやいや、じっとスクリプトの記述を見るくらいしかない。はっきり言えば泣きそうな開発環境だ。さらに、HTMLでインタラクティブな反応を付け加えるときには、「createTextNodeなどのJavaScriptのメソッドに渡すJavaScriptを記述したJavaScriptの文字列を記述したObjective-Cの文字列」を渡さなくちゃいけない。わかりますか、この親亀子亀感。これをマトリョーシカプログラミングと名付けましょうか。勘弁してください。


2016.02.02


 WindowsのWPFプログラムでシステム設定のDPI値ないし拡大倍率をもうちょとマシな方法で得たい。MSDNの「高DPIアプリケーションの記述方法」(https://msdn.microsoft.com/ja-jp/library/ms969894.aspx)を見ると本来ならGetDeviceCapsで得るんだろうが、あいにくC#(.NET)にはGetDeviceCapsあるいは類似APIは存在しないようだ。ググって色々見ると皆苦労しているようで、主な対応方法が3つに絞られている。

 ひとつはSystem.Drawing.Graphics.FromHwndにIntPtr.ZeroかSystem.Windows.Interop.WindowInteropHelperで得たウィンドウハンドルを渡してグラフィックインスタンスを作ってDpiXとDpiYを貰うもの。これ、FromHwndにIntPtr.Zeroを渡せるなんて当然ドキュメントには記載されていない。GetDC(NULL)でデスクトップのデバイスコンテキストが得られることは「NULL を指定すると、GetDC は画面全体を表すデバイスコンテキストを取得します」とドキュメント化されてるので、そこからの類推も不可能ではないとはいえ、裏技っぽい。突然動かなくなっても文句は言えないので、安全策としてWindowInteropHelperで有効なハンドルを渡すのが吉。

 もうひとつはPresentationSource.FromVisual(this)でPresentationSourceのインスタンスを得て、CompositionTarget.TransformToDevice.M11とCompositionTarget.TransformToDevice.M22を貰うもの。TransformToDeviceは「このターゲットからレンダリング先デバイスに座標を変換するために使用できる行列を取得します」だそうでってローレベル過ぎますがな。GetDeviceCapsでさえLOGPIXELSX(画面の水平方向での、論理インチ当たりのピクセル数)っていう意味のある名称だってのに、いきなり行列ですか、あんたはPDFですかっての。しかもメインウィンドウのLoadedのタイミング以降じゃないとPresentationSource.FromVisual(this)がnullだってのもあんまり。実はWindowInteropHelperもLoadedのタイミング以降じゃないとウィンドウハンドルは得られないのであんまりさ加減は似たようなものだが。

 最終手段はWin32 APIのGetDeviceCapsを使うこと。当然DllImportしないと呼べない。

 そもそもはウィンドウのサイズ情報で得られるのが倍率計算後の値のみってのが最大の問題というか馬鹿なところ。ドットバイドットの情報の扱いが必要なのは全くもってレアケースでもなんでもない。画像ファイルを画面に表示する前に適切なサイズに拡大縮小するのに必要なので、調べたんだが、これのどこがレアだっての。高DPI機で125パーセント(120dpi)とかに拡大指定してるとして、BitmapクラスでWPFのウィンドウの持つ値のまま拡大縮小すると案の定ボケる。Imageコントロールにそのまま渡すと汚く拡大縮小される。Bitmapクラスでドットバイドットに拡大縮小すると綺麗になるけど、表示サイズを得るのがこんな裏技っぽいものしかないのは、何故?

 論理座標を倍率計算後の値にするという過激なことをするなら色々サポートが必要だろうに。ともかくWPFもまだ高DPI対処途上ってことなんだろう。


2016.02.02


 WindowsのWPFプログラムはカスタムDPI設定で100パーセント(96dpi)以外を設定していると、その指定した倍率で割った値をやり取りするようになる。画面の実際のピクセル数の座標を物理座標、倍率換算された座標を論理座標とする。物理サイズ800は125パーセント(120dpi)設定だと論理サイズ640になる。プログラムはあくまで96dpiだとして動けば高DPIに対応できるということで、ここまではまあ良い。

 WPFはダイアログ(Window)の位置をLeftとTopに値を指定することで決定する。はたして、このLeftとTopに要求される値は何か。どうやらWindowのLeftとTopに要求されるのは、スクリーン原点の論理座標らしい。マウスでクリックされた座標にダイアログ(Window)を出したいのだが、マウスクリックで得られる座標は、クライアント矩形原点の論理座標のようだ。MSDNでは「指定した要素に対する相対的なマウス ポインターの位置を返します」となっているので、合っている。問題はPointToScreenメソッドで、これがスクリーン原点の論理座標に変換してくれるなら良いのだが、どうもスクリーン原点の物理座標を返すようだ。

 必要なのはクライアント矩形原点の論理座標をスクリーン原点の論理座標に変換する方法。

 スクリーンがWindowのような何かとして得られてPointFromScreenが呼べれば解決なのにそういうものはなさげ。結局まともな方法では得られない倍率を使って計算するしかないってことなんだろうか。解せない。こんなくだらないことに面倒な計算が必要になる。何かが間違ってる。多分PointToScreenが物理座標を返すのが設計上間違っている。あ、いまさら直さないで下さい。論理座標を扱う別のメソッドを用意してください。ToとFrom両方ですよ。とにかくこの程度のことに裏技みたいなことを要求してちゃダメでしょ。


2016.02.03


 Windows 10のエクスプローラーのアドレスバーの中のテキストで、yとかgの下(ベースラインより下のほう)が領域に入ってなくて見えない。これ、多分システムフォントを変更したためですよね。システムフォントがバグってるので直してもらえませんか。自分で書いたWPFプログラムでもボタンの文字列が思ったより下になる。プログラムでメイリオを指定すると思った位置になる。これ、一目見てわかる問題なのになんで放置されてるの? フォントの権利の関係で直せないの? なら適切な別のフォントに変えるか、ユーザが設定できるようにすべきなんじゃないですか? 日本からのバグレポートは無視して良いという方針ですか?


2016.02.12


注:

 倍率100パーセント(96dpi)だと現象は発生しない模様。不完全な高DPI対応の問題ということでしょうかねぇ。迷惑。倍率100パーセントだとシステムフォントはかなり違和感あるというか変な文字。125とか150ではさほど違和感はない。


 小娘がポケモンをやりたいと言い出した。小娘は小学生の頃二度Nintendo DSをなくしており、我が家にはポケモンのパッケージは残っているが肝心のゲームカートリッジがない。GBAのもDSのもない。あるのはチュンソフトのダンジョンのみ。

 小娘は3DSのバーチャルコンソールの赤とか緑でいいみたいなことを言っていたが、俺はDS版の中古があればそれが最適と考え、ママと一緒に中村橋のエーツーへ向かう。貸店舗の張り紙。お店がない。野方のドラマに続き中村橋のエーツーまで閉店してしまった。スマホゲーム全盛期の時代にはもうコンシューマーゲーム中古店は成り立たないってことか。

 都立家政のゲオにて物色。小娘が昔遊んでたDSのパールは置いてなかったが、ダイヤモンドとその改訂版のプラチナがあった。それぞれ300円と500円。ダイヤモンドはパッケージなし。あと、DSの次の作品であるホワイトが1000円。さすがに売れたゲームは安い。この三つを入手。ダイヤモンドは俺用。

 ダイヤモンドを3DS LLに挿すものの認識しない。接点復活剤を吹き掛けてようやく認識する。小娘がネットで見つけた初期化コマンドを適用し、ポケモンゲットだぜ。チュンソフトのダンジョンは遊んだことはあるが、ポケモン本編を遊ぶのは初めて。


2016.02.12


 ASUS TransBook T90 Chiで大分Windows 10の様子が解ったので、VAIO Pro 11をWindows 10にする。Windows 10にしてしまってから気付いたのだが、「VAIO Update for Windows 10 Upgrade」を先に適用しておけということだった。ありゃりゃ。Windows 10インストール直後は動画がおかしくなっていたが、VAIO Updateを最新にしたら動画もおかしくはならなくなったのでまぁこれでいいんだろう(X-Reality for mobileの設定をオフにしたうえで設定そのものを消してるそうな)。

 普通に動くので割と拍子抜け。XP時代のDAWソフトCubase SXもASIO4ALLで動く。EFIのbootmgfw.efiをすり替えたらちゃんとUbuntuとデュアルブートもできる。


2016.02.13


 Windows Vista以降、Explorerの検索ボックスでのファイル検索で、日本語のファイルが見つからないことがそれなりに頻発するのはもうどうにもならないのだろうか。少なくともそこにあるファイルを確実に見つけ出すことは可能だろうか。

 困ったことに、この検索の正式な仕様は完全には公開されていない。マイクロソフトの仕事としては珍しく何故か徹底的に曖昧だ。きわめて断片的な情報を掲載しているページが幾つかあるのみ。「ファイルが見つからない理由」(http://windows.microsoft.com/ja-jp/windows-vista/why-cant-i-find-the-file-im-looking-for)とか「Windows での検索の高度なヒント」(http://windows.microsoft.com/ja-jp/windows7/advanced-tips-for-searching-in-windows#section_3)。タイトルからも判るように、網羅的な仕様ではなく、しかも日本語の問題は一切触れていない。

 この二つの文書から「予想・類推」できるのは、どうやら検索のメタ文字と分析のセパレータ文字が存在するらしいこと。そして、その二種類の文字を検索対象にするにはエスケープが必要らしいこと。しかし、メタ文字とセパレータ文字を網羅した一覧すらない。いやそこに書いてあるじゃないかと思うかもしれないが、それらの文字をいわゆる全角にした文字も含むなんてどこにも情報がない。そう、「~=<>!"」に加え、少なくとも「~=<>!“”」がメタ文字として扱われているように検索機能は振舞う。そして、「 .-_$()[]{}\/」がセパレータ文字とされているが、いわゆる全角文字のどこまでセパレータ文字なのか一切不明だ。経験で「・」とか「☆」がセパレータ文字扱いされているらしいと想像しているが、そんな情報は一切マイクロソフトからは提供されていない。

 そんなわけで、「無彩限のファントム・ワールド.txt」というファイルを探すときは「ファントム・ワールド」でも見つかるが、「究極超人あ~る.txt」というファイルを探すときは「あ~る」ではなく「"あ~る"」と入れなくてはいけない。「・」は単なるセパレータだが「~」はメタ文字なので、なんらかの命令として解釈しようとするようだ。

 メタ文字やセパレータそのものを検索対象にするには「~="~"」だとか「~="・"」になる。これで見つからない原因の一部は対処できるが、Windowsが勝手に分解した単語での検索なので、「ルパン.txt」が「パン」で見つからないことには「*パン」で対処する必要はある(これは割と知られている情報だと思う)。さいわい「*」はファイル名には使えない文字なので「*」を検索対象にすることはない。

 マイクロソフトさん、ある程度はこのへんの情報をヘルプに書いておいてくれませんか。「Explorerの検索ボックスは使い物にならない」と日本で判断されている最大の原因は、日本語検索関連の仕様が一切公開されてないことにありますよ。予想とか類推とか想像とか本来全く不要なことです。


2016.02.14


 Windows 10でアクティブウィンドウのタイトルバーの色を白から変えられると気付く。TH2での変更点だそうだ。つうか、明白に使い勝手を悪くする変更であったと世界中から非難されないと分からないのかよ。早速青くする。次はタイトルバーの色だけを自由に設定させていただきたい。Windows 3.1でも出来たことだよ。

 でも独自描画のVS2015では変わらない。


2016.02.15


 Windows 10にしたVAIO Pro 11に休止(ハイバネーション)と高速スタートがなく、おかしいなと思っていたが、自分で書いたメモに、

hiberfil.sysの削除

powercfg /hibernate off

ってのが見つかった。あぁ、自分で無効にしてて、Windows 10にアップグレードしてもちゃんと無効のままなんだ。疑問は解消。VAIOでは休止は使わない。


2016.02.16


 ASUS TransBook T90 ChiにインストールしたCygwinに/etc/passwdがないと気付く。どうも最近のCygwinではデフォルトでは生成されなくなったそうだ。


2016.02.16


 TransBook T90 Chiではせっかくなので「映画 & テレビ」という純正のユニバーサルだかストアだかのアプリを使っていた。だんだんコレジャナイ感が募り、結局MPC-HCに移行。シークが遅いのが致命的。


2016.02.17


 何故かは知らないがWindows 10の目玉の一つと思しき地図は日本のデータのオフライン利用ができない。とりあえず何かということで、Open Street Mapを調べる。直感でAtlasというソフトを試してみる。どうやら当たりのようだ。タッチ操作でも普通に使える。地図データはOpenAndroMapsのJapan_N.map、poiデータはMapsforgeのjapan.poi。japan.poiの中身を見るとどうも「すき家」が「すき屋」になってる。本格利用するならゼンリンの地図ソフトが良いのだろうか。LAN環境でならWindows 10の地図もGoogleマップも使えるわけで、多分本格利用はしないよなぁ。


2016.02.23


 自宅のメインWindows機monadoでVisual Studio Community 2015を使っていたら、メモリが足りないとシステムに警告される。Windows 7 32bitで4GBメモリ。なんでかと調べたら大分以前に仮想記憶を切っていた。それまで仮想記憶なしで問題なかったわけで、VS2015はどんだけメモリ食いなんだよ。


2016.03.08


 京大の五十嵐淳さんの「プログラミング in OCaml」のEPUB版で脱字があったので技術評論社に報告する。即座に修正対応してくれた。


2016.03.09


 Winows 10のソフトキーボードであるタッチキーボードにイライラさせられる。余計な予測変換候補がひたすら入力を邪魔する。


2016.03.11


 「Ocamlnet Http_client」で検索すると、Http_client.Convenienceを使ってみた系の頭の悪い話ばかりでウンザリする。Cookieをセットしたりとか細かく制御したいからプログラムを書くんであって、Http_client.Convenienceでは仕様が大雑把過ぎて使えない。

 Http_clientの使い方はHttp_client.pipelineが関係してることまでは突き止めた。つうかマニュアルのHttp_client.pipelineのところにExampleが書いてある。ダウンロードのプログレスを出したいんだが、どうもよく分からん。プログレスが出せないならHttp_client.Convenienceでも同じ。


2016.03.17


 OCamlの外部ライブラリのOCamlnetを調べて判ったのは、ダウンロードするときにどのくらい済んだのかの経過を表示したいという私の目的はちょっとやそっとでは達成できないらしいこと。OCamlnetはなるほど壮大なフレームワークのようで、色々取り揃えているようだ。だが、ガイドの説明にて「The Netchannels tutorial - strongly recommended read!」なんて書いてあるから読んでみたが、単に独自のI/Oデスクリプタの説明だった。Http_clientを調べてる私には一切無関係。

 単にhttps接続されたWeb上のファイルをダウンロードするのにpipelineやらcontextやらtransportやらequeueやらengineやらあまりにも普通名詞過ぎて意味不明な独自概念が目白押し。あぁ、なんだ、世界系だったのか。こういうのチマチマ構築するのって楽しいんだろうなぁ。結局経過表示をする方法は発見できなかったわけで、縁があったらまた会いましょう、さようなら。せめてPythonのurllib2とか.NETのWebClientくらいに扱いやすければ文句もないんだが。

 結局自分でUnix.socketを使って書いたHTTP GETをするコードを元に、Socket通信をOCamlの外部ライブラリのSslに置き換えることで実現。さらにはファンクターにして、httpとhttpsでコードを共有した。C++なら仮想関数で実現するようなことはOCamlではファンクターで合ってるんだろうか。五十嵐淳さんの入門書に「一部だけ異なる似たようなモジュールを何度も書く面倒をなくし」とあるから多分合ってるんだろう。


2016.03.22


 家のファイルサーバalephのSambaの設定ファイルは古い。Samba接続でdirectory maskやらforce directory modeを0775にしても0755のディレクトリしか作られないでいた。色々ググって得たのは、obey pam restrictionsという設定。これがyesだったのをコメント化してnoにすることで解決。encrypt passwords = trueのときはPAMによる認証はしないらしい。


2016.03.26


 唐突にiCloudにログインできなくなった。

 Apple製品ユーザのママに合わせ、家族と小娘の予定表(スケジューラとかカレンダーと呼ばれるもの)はiCloudを使っている。私はThunderbird(以前はそれにLightningを入れていたが、割と最近統合された)で参照するためにURLを指定してCalDAV接続している。URLはだいぶ以前にicloud.phpってのを拾ってきてゲットした。読み書き双方問題ない。AndroidではCalDAV-Syncを経由してBusiness Calendarを使っていた。LinuxでEvolutionを使っていたこともある。私自身の予定表は自宅のファイルサーバalephにカレンダーサーバのDAViCalを入れて活用している。で、今日唐突にiCloudの予定表と接続するときにログインできなくなった。

 https://www.icloud.com/でログインしようとすると専用アプリを使えみたいな意味不明なメッセージが表示される。しかたがないので、WindowsのiCloudアプリをインストールしてログイン。Thunderbirdでも予定表に接続できたので、iCloudアプリは即アンインストール。なんだろう、古いiOS端末を捨てさせるためのサーバ側の変更の影響でも出たんだろうか。


2016.03.26


 で、今度はiTunesが起動しなくなった。バックスペースで隣の曲も削除されるというバグがあって、iPod classic用に古いバージョンを使っているのだが、おそらく最新のiCloudのインストールが原因でiTunes 10が起動しなくなった。しょうがないので最新のiTunes 12.3.3.17をインストール。起動はするが隣の曲削除のバグは放置されたまま。誰も報告しないのか、報告窓口がないのか、この迷惑なバグはいまだ放置されていた。ググると同じ症状(CoreMedia.dllでの欠落エクスポート)で困ってる人は結構いる模様。

 iTunesなどをインストールするときなどに一緒に入るApple Mobile Device Supportのコンフリクトだそうだ。最新のiCloudを入れたときに上書きされたのだろう。とりあえずこれと、一応Apple Software UpdateとBonjourとApple Application Supportをアンインストール、もちろんiTunesもアンインストールして、再度iTunes 10を再インストール。無事に動き出す。いや、設定ファイルが新しくなって読めないとかで起動しなかったがそれ(<ユーザ>\マイ ミュージック\iTunes Library.itl)を削除することで起動・復帰。


2016.03.27


 NHK-FM ミュージックライン2月23日放送の「僕だけがいない街」の主題歌、ASIAN KUNG-FU GENERATIONの「Re:Re」の最初のアルバムバージョン。テレビバージョンとシングルバージョンのギターの位置から考えて左右逆。なんなんだろう。なんらかの楽曲を再生する装置の出力が左右逆に接続されてるんじゃなかろうか。


2016.03.27


 長いこと愛用している三菱鉛筆のゲルボールペン「uni-ball Signo スタンダード 0.5 黒 UM-100.24」(http://www.mpuni.co.jp/products/ballpoint_pens/gel/signo_cap/signo_standard.html)。勤務先近所(曙橋)では入手できない。練馬の西友にも精美堂にも置いてない。三菱鉛筆のWebページを見ても特に製造終了したとの話もない。が、ともかく私の生活圏内では入手できなくなっている。

 そもそもは入手性が高くて扱い易く安定して高性能というのが愛用している理由だったのだが、理由の一つが崩壊している。ゼブラのSARASA(http://www.zebra.co.jp/pro/listball_jel.html)に移行しようかとも思った。しかし、店頭でも気付いたが、そもそもゼブラの商品ラインナップに古典的典型的キャップ式ボールペン型のゲルペンがない。昔はあったはずなんだが今はない。SARASAは性能は良いのだがクリップが大きく邪魔なのでそのまま使うということは考えられない。SARASAを使うとなるとOHTOの軸に入れるという運用になる。OHTOの軸もイマイチなんだよなぁ。鞄に入れて持ち歩いてるペンはまさしくそういう運用(OHTOの軸にゼブラの芯)ではあるが、利用頻度が低いから可能だというだけだ。

 そうなると代替はパイロットかぺんてるになるのだろうか。インクが切れる前になんらかの結論を出さねば。ぺんてるはRolloyが好きで、家では黒1.0を三菱鉛筆ピュアモルトの軸に入れて使っている。勤務先ではサイン用に青1.0をそのまま使っている。パイロットは常用していない。以前調べたとき、唯一水に弱かったのがパイロットのゲルペンだったような記憶。調べるとSigno、SARASA、Hybridは顔料だけど、HI-TEC-Cは染料なのか。そりゃ特性も違うわ。ってことは代替はHybridになるってことか。そもそもSigno以前はHybridをよく使ってたが途中で書けなくなることが多くて三菱鉛筆に移行したんだったよな。


2016.03.28


 四谷三丁目の文房具店の和楽にて「uni-ball Signo スタンダード 0.5 黒 UM-100.24」をゲット。これで当面代替を考える必要はなくなった。


2016.03.28


 USB接続が怪しく、ジャイロも効かなくなり(縦画面のまま)、ASUS Transbook T90 Chiの導入によりすっかり用済みになったNexus 7 (2013)のシステムを最新にしようとOTA(ファクトリーイメージ)をダウンロード(https://developers.google.com/android/nexus/images)。コードネームrazorの6.0.1。boot.imgとsystem.imgを適用。

fastboot flash boot boot.img

fastboot flash system system.img

 いつまで経っても起動シーケンスが終わらない。どうも途中で再起動を繰り返してるようだ。そういえばキャッシュを消してなかった。twrp-3.0.0-0-flo.img(https://dl.twrp.me/flo/)を適用。

fastboot flash recovery twrp-3.0.0-0-flo.img

 Dalvik/ART CacheとCacheをWipe。それでも起動シーケンスが終わらない。こりゃやっちまったかなと思い、Swipe to Factory Resetを行う。無事起動するがアプリは奇麗さっぱり初期状態。まぁ、用済みマシンなのでいいか。

 アカウントの設定をすると通知メッセージにNexus 7 (2012)云々と出る。Googleからのメールでも「ASUS Nexus 7 (2012) からの新しいログイン」となってる。razorにせよfloにせよNexus 7 (2013)なんですが、いったい何が起きてるんでしょうか。

 twrp-3.0.1-0-flo.imgがリリースされてたので適用。

fastboot flash recovery twrp-3.0.1-0-flo.img

sending 'recovery' (11442 KB)...

OKAY [ 0.374s]

writing 'recovery'...

FAILED (remote: size too large)

finished. total time: 0.421s

 でかすぎるとか言うし。実際今までと結構大きさが違うんですが、いったい何が起きてるんでしょうか。


2016.04.02


 Windows 32bit機でAndroid Studioを使うとメモリ使用量がシステムの限界に到達するようで、あまり全うには動かない。CodeViewの出始めの頃のような気分。


2016.04.02


 Nexus 7 (2013)のUSB接続が怪しくなってるので、ファイルのやり取りはSamba Filesharingを使っていた。いつの間にやらGoogle PlayにはSamba Filesharingはなくなっており、怪しげなサイトから導入するしかないのだが、それが動かない。apkの中を見るとnmbdとかsmbdとか結構素直に移植したものっぽい。6.0でまたネイティブに動くバイナリの規約が変わったのだろうか。5.0ではPIEが要求されて古いツールが動かなくなった。

 しかたがないので、Ftp Server (The Olive Tree)を入れる。普通に動く。


2016.04.02


 現代に甦るHyperCard、その名はElectron。

 なんというか、業務アプリを素早く開発してとかのソリューションならいいんですよ。でも、一般的なアプリケーションでこんな手抜きで富豪なプログラミングされたら堪りません。たかだかメッセージアプリごときでElectronを使うとかひどい手抜き。こんなんでIDEを作るとか、使う人のことこれっぽちも考えてない。こんなもんで作られたアプリケーションが世に溢れるようになったらメモリがいくらあってもCPUがどんなに速くても足りない。32bitを捨てたいマイクロソフト的には良いことなんだろうけどさ。ユーザには厄災だわこれ。


2016.04.06


 Windowsの高dpi対応に関して調べていて、.NET Framework 4.6の説明のページ(https://blogs.msdn.microsoft.com/visualstudio_jpn/2015/07/20/net-framework-4-6/)で「.NET Framework 4.5.2 (英語) でプロジェクトとして始まった Windows フォームの高 DPI サポートが更新され、対応するコントロールがさらに増えました」という文を発見して驚く。フォームは見捨ててWPFにするんじゃなかったのかい。もうなんというか、やっぱりフォームは捨てられなかったということだよな。フォームをやめるんならWindowsを見限るよという有力なユーザ企業でもあったんだろうか。なんにせよ、これは嬉しい。

 次はフォームで書かれたプログラムを簡単な手間でUWPにすることだな。


2016.04.11


 Windowsフォームを使ったアプリケーションを高DPI対応にするには、結局のところ、app.manifestに適切な記述を書いてプロジェクトに加えるだけ(https://msdn.microsoft.com/en-us/library/dn469266%28v=vs.85%29.aspx#using_an_application_manifest)。ID3TagEditLite(C#プログラム)はコントロールの特殊な使い方もないし画像も扱ってないので、VS2008からVS2015にコンバートついでにapp.manifestを加える。もうそれだけで高DPI対応。あとはフォームのメニューのフォントがファミリー名でしか決められないので、プログラムでSystem.Windows.Forms.SystemInformation.MenuFontにするとWindows 10だとYu Gothic UIだかになる。ダイアログをLocalizableにしないと設定したフォントが反映されないとか謎な現象もあるが、概ねOK。あと一応、EnableWindowsFormsHighDpiAutoResizingの記述をapp.configに加える(https://blogs.msdn.microsoft.com/visualstudio_jpn/2015/07/20/net-framework-4-6/)。

 AudioFixLite(C++プログラム)はマネージとネイティブの混成。VS2008からVS2015にコンバートついでにapp.manifestを加える(マニフェストツールの設定の追加のマニフェストファイルで設定)。これで高DPI対応になってるんだが.NET Frameworkは4.0。4.5ではないのに高DPI対応になってる。俺が使う程度のメジャーなコントロールはかなり早い段階で高DPI対応だったってこと? 高DPI対応のためにWPFに移植しようかと悩んでたのが無意味だった。「方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更する」(https://msdn.microsoft.com/ja-jp/library/ff770576.aspx)を参考に4.5にしたところフォームデザイナがまともに動かなくなる。C++で混成のプロジェクトは.NETのバージョンを自由には選べなさそうな気配。ID3TagEditLiteと同じくメニューのフォントとダイアログのLocalizableを対処。

 VAIO Pro 11(11インチでHD解像度なので150パーセントで使ってる)を買ってから色々と悩んできたが、もっと早くにちゃんと調べれば良かった。


2016.04.12


 EPUBを扱うプログラムに必須のライブラリはXMLとZIPだ。EPUBファイルはとどのつまりXMLファイルをZIPしたものだからだ。中身を見るのにZIP展開が必要で、中身を解析するのにXMLが必要だ。で、iOSにはこのどちらもロクなもんがない。iOSのフレームワークにはZIPファイルを扱う方法がない。一般的にXMLを扱うならDOM(Document Object Model)だってのはもう了解事項だと思っていた、iOSプログラムを見るまでは。XMLはSAXベースの(扱い辛い)ものがあり、DOMっぽく扱いたかったらlibxml2という更に扱い辛いCのライブラリを使えということになっている。UIWebViewはJavaScriptが動くんだからDOM持ってますよね。どんな縦割り行政ですかいな。Objective-Cはlibxml2を素直に使えるけど、Swiftはどうするんだろう。いや、方法でなくAppleの戦略的に。今時DOMもZIPも扱えないフレームワークは使いたくないなぁ。マジに。

 で、AndroidはDOMもZIPもかなり昔から、つうかAndroid登場前からJavaのライブラリにある。もちろんそのまま使える。

 AndroidがSwiftを云々言い始めてるそうだが、Javaの利点である豊富なライブラリを捨てるんでしょうか。


2016.04.27


 Googleで「アイ先生」を検索するとトップに少年マガジンエッジ公式サイト(http://magazine-edge.jp/contents/ai.html)が出る。2番目3番目も「アイ先生はわからない」関連の講談社のそれっぽいページが並ぶ。

 Bingで「アイ先生」を検索するとトップがウィキペディアで、実在の人物の事らしい。2番目が上記講談社の「アイ先生はわからない」関連だが、amazon.co.jpになっている。1ページ目には講談社のサイトは一つもない。

 なんなんだ、この差は。


2016.04.28


 ASUS TransBook T90 Chiのケースが壊れた。キーボードのことはほぼ考えてないぴったりとしたケース(IVSOってロゴのあるやつ)を使っていたが、磁石の埋め込まれたプラ部分が壊れた。三ヶ月程の寿命。そんなわけで、今度はプラ部品を持たない、キーボードのことも考慮したそんなにぴったりとしてないケースを導入(amazon.co.jpではVSTNってメーカーだかブランドだかになってる)。予想よりは良い感じなので丈夫だといいんだけど。


2016.04.28


 Remix OSをASUS TransBook T90 Chiで動かしてみた。悪くはないが、マシン自体が不安定なせいか起動に妙に手間取るとか、SDカードスロットのメモリカードからは起動できないなど、実用性に難あり。どちらの問題もRemix OSのせいではない。SSDにインストールすればなんとかなるのかしらん。

 一時的にページファイルを消したりなど色々頑張ってSSDを分割し、Remix OSをインストール。今度は何故か起動途中で止まったりSelect Languageで止まったり、おいどうした。

 ともかくまだダメってことで。


2016.05.01


 次は評判の良いAMIのAMIDuOSである。ASUS TransBook T90 ChiではAndroid 5.xのDuOS 2.0は一度も起動に成功していない。Android 4.xのDuOS 1.1は何度か起動しなかったが、Windows Defenderを止めて再インストールするなどしてようやく起動する。ちょっと懐かし目のJelly Bean(Nexus 7 2013には先日Android 6.0 Marshmallowを入れた)。アイコンがフラットデザインになる前。スマートフォンではこれが現役の人がまだまだ多いとは聞く。

 フルスクリーンで使うと完全にAndroid実機に見える。かなりパフォーマンスが良いエミュレーター。とりあえずPayPalで買う。PayPalがおかしいと思ったらメールアドレスが間違ってた。PayPalのアカウントを作り直して買う。

 基本的な機能や性能には文句はないが、一点、縦状態でフルスクリーンにしているとタブレットのタッチだけでは終了方法がない。ステータスバーの中央クリックで終了ボタンが出るのは横状態のときだけ。多分バグ。自動回転オフで使うと嵌る。

 Googleアプリを入れてPlayストアに接続。今のところWindowsストアアプリになってないオフライン版MapFan 2015をインストール。普通に動くので嬉しい。CalDAV-SyncとBusiness Calendarも普通に動く。Nexus 7からT90 Chiに移行して、最後まで問題として残った地図とスケジューラーが使える。いやまぁ、DuOSの起動はそれなりに時間を食うし、メモリの圧迫具合やバッテリーのことを考えても起動しっぱなしってのはないので、地図はまだしもスケジューラーに価値があるかは疑問。でも、ThunderbirdのLightningはやっぱり常用するにはヘッポコですよ、これ。


2016.05.03


 佐野元春の「SOMEDAY」を今聴くとモロに大瀧サウンドと気付く。大瀧詠一のレコーディング・セッションを見学してアイデアを得たっていうからそのものではないのだけど、新人が方法を倣った対象が大瀧詠一だったということ。


2016.05.04


 自作オーディオプロセッシングプログラムのAudioFixLiteをWindows 10 32bitのASUS TransBook T90 Chiで起動する。ACMの設定acmFormatChooseをWAVE_FORMAT_MPEGLAYER3で呼び出すとMMSYSERR_NODRIVERというエラーが返る。ググってみてもろくな情報がない。これではメインマシンのWindows 10への移行で問題がある。

 ろくな情報がないってことはレアなケースということで、モノは試しとビデオエンコーディング環境を整えてみる。AviSynth 2.6、ffmpeg 3.0、IrisのDVドライバをインストール。相変わらずMMSYSERR_NODRIVERになる。次にVirtualDub 1.10.4とXvid 1.3.4をインストール。今度は正常にMPEG Layer-3のダイアログが表示された。おそらくXvidのインストールが何かを有効にしたんだろう。謎だが解決。何か細工をしたわけでもないのに320kbpsまで選べる。56kbps制限って解放されたんだっけ。


2016.05.05


 念願のAACがデフォルトでサポートされたというffmpeg 3.0を試す。結構いい感じで動くのでようやくffmpeg r-16517から移行できる。AACの品質は(Fraunhofer IISのものに比べ)そこそこだそうだが、l3codecp.acm(Windowsに入っているMP3コーデック、Fraunhofer IIS製)と比べて遜色無ければ問題ない。どうせビデオ用音声だし。


2016.05.05


 WALKMANで中田ヤスタカっぽいイントロで始まった曲、浜ちゃんだった。全体としてちゃんと中田ヤスタカっぽい(いやまぁ本人だし)のだが、SMAP向けの曲でも思ったが、容赦されてる。きゃりーなんかでは、これはカラオケで歌える人おらんだろって程度に難しいメロディラインの曲が時折あるのだが、そういう進行は一切ない。中田さんに「お前には無理」って引導渡されてる。なので、浜ちゃんのもSMAPのも駄作だった。まぁ、しょうがない。


2016.05.06


 キャンディーズの「その気にさせないで」(40年前)ってソウル・ディスコサウンドというか4つ打ちやん。ウィキペディアで見ると田中清司さんがドラム。格好良いですコレ(ドラムは)。ウィキペディアのポップス関連の項目でファンによる情熱的な書き込みがときどき見受けられるのだが、「その気にさせないで」にも『サビでランが「なぜかあなたには隙を突かれそう。」というフレーズで絶叫口調で歌っているが、この歌唱方法が後にSPEEDや安室奈美恵のソウル調の楽曲にも継承された』なんて書いてある。あのさ、女の子のシャウトなんてそんなに種類があるわけないでしょ。

 日本の若手のロックバンドで比較的最近4つ打ちが流行ってたそうなんだが、ウルフルズの「ガッツだぜ!!」ももう20年前かぁ。


2016.05.07


 メインマシンの次期スペックはメモリ16GBで64bitのOSだろうなぁと考えている。とはいえ、現行のメインマシン(メモリ4GBで32bitのOS)は当面Windows 7 32bitでいいやと思っていた。がしかし、TransBookやVAIOで様子見してWindows 10でも問題なさげと判断。monado(Windows 7 32bit)をWindows 10にする決意をする。

 1回目、ドライバーを云々の段階で失敗、Windows 7に戻る。

 2回目、使ってないSCSIボードとIDEボードを外して再挑戦。多分同じところで失敗(出掛けてたので)、Windows 7に戻る。

 3回目、やっぱり一番怪しいのはコイツだよなと、オーディオボード(E-MU 0404 PCI)を外して再々挑戦。無事Windows 10になる。実際は余り無事ではない。

 早速の問題はディスプレイモニタの画面に黒枠があること。Windows 7での画面用ツールは「このアプリは利用できなくなりました」とWindows 10に判定されている。Radeon用のCatalyst Control Centerはもうない。ともかくググりまくって情報を漁り、レジストリを弄れば良いと判明。そもそもはHDMI接続時テレビだと判断して黒枠を入れてしまうという間違ったオプティマイズの典型。


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{なんらかのGUID}\0000

DALR6 DFPI 21920x1080x0x59

の値を全部0にする。


 SCSIボードとIDEボードを元に戻す。Xvidコーデックを入れなおしてACMの状態を正す。大雑把に問題はなさげだが、暫くは検証モード。オーディオはTASCAM US-122をUSBで接続。


2016.05.09


 Windows 10で.aviと.mp4でアイコンを分けたいと思うのだが、どちらもMPC-HCで再生するようにするとどうも「既定のアプリ」の機能で妨害され同じアイコンなってしまう。ビデオだけでなくオーディオファイルである.mp3と.wavもMPC-HCで再生するのでこれもまた同じアイコンなってしまう。アイコンはアイテムが種類として同一なのかを明確に区別することができるという前世紀から続く優れたアイデアのはずなのだが、もはやそういったことすら解らない程度にマイクロソフトの人たちは狂ってるんだろうか。Windowsの関連付けやアイコンの制御はOSバージョンが上がる毎にどんどんカオスが進行してる。

 文句を垂れても解決しないので、手荒なマネをする。

 レジストリエディタで「HKEY_CLASSES_ROOT」のキー.avi、.mp4、.mp3、.wavの(既定)の「WMP11.AssocFile.云々」を空にする。キーの下に別のキー(フォルダ)があるなら全部削除する。MPC-HCを起動して.avi、.mp4、.mp3、.wavの関連付けを設定する。既定のアプリ云々のエラー修復が行われ、例えば.aviは「映画 & テレビ」で再生される。各拡張子のファイルのコンテクストメニューの「プログラムから開く - 別のプログラムを選択」でMPC-HCを選ぶ。これで拡張子毎のアイコンになる。あとはFileTypesManで好きなアイコンに変える。

 これで安定してくれればいいのだけれど、大規模アップデートで御破算とかありそうだ。.flvは「既定のアプリ」の「ビデオプレーヤー」の対象ではないらしく、元々好きに設定できる。とにかく厄介なのは「既定のアプリ」配下の拡張子。


2016.05.10


PixelJunk Monsters(PS Vita)

 シンプルなタワーディフェンスでいい感じ。


テラリア(PS Vita)

 チュートリアルをプレイしてる最中にマインクラフトを遊びたくなる。で、マインクラフトを再開する。テラリアに戻るかは不明。マインクラフトを再開すると書いたが、久々にアップデートチェックしたらでかいダウンロードが始まった。ダウンロード中はしかたがないのでリッジレーサーズ2をプレイ。


2016.05.12


「ホーム」へ戻る

「読まなくてもいいよ64」

OSTRACISM CO.

OSTRA / Takeshi Yoneki