布団が俺を呼んでいる

丘山大一のぶろぐ

Windows Phone (Windows Mobile) Windows Update 後の再起動ににかかる時間(10.0.14393.953)

定時過ぎに電話をかけてきて、残業を強制するスタイル、いいと思います(憤怒)。
とまあ仕事のグチはさておき。

今回はこんな感じ

アップデートファイルのダウンロードや更新自体は済。再起動にかかる時間だけです。
合計16分程度で更新が完了しました(歯車云々の時間は省略)。

状況によって時間は大きく前後すると予想されますので、目安の一つとして。


バージョン

端末はNuAns Neoです。
本日時点の各バージョンは、
バージョン:1607
OSビルド:10.0.14393.953
ファームウェアリビジョン番号:1028.020.001.95
ハードウェアリビジョン番号:1.0
無線ハードウェアバージョン:1.0
チップSOCバージョン:8952

ファームウェアが気が付かないうちに上がっている。いつ上がったんだろう?



mouse SimフリーWindowsPhone (Simフリー/Windows10 Mobile/Office Mobile/大画面 6型フルHD/3GBメモリ/保護シート付) MADOSMA Q601

新品価格
¥20,438から
(2017/3/15 21:51時点)

Delphi でXMLファイルを作成しようとしてハマる

ね、ハマるでしょ?


環境

いつも通り、サポート切れのXE5。


基本構文

xmlファイルを新規作成します。

var
  XML : TXMLDocument;
  RootNode, ChildNode : IXMLNode;
begin
  XML := TXMLDocument.Create(nil);
  XML.Active := True;
  RootNode := XML.AddChild('Root');
  ChildNode := RootNode.AddChild('Child');
  ChildNode.Text := 'ガキ';
  XML.SaveToFile('D:\Doc.xml');
  XML.Active := False;
  FreeAndNil(FResultXML);
end;


ここでハマったよその1 別スレッドで上記を操作

こんなエラーが出ました。
「DOMException Microsoft MSXML がインストールされていません」
Microsoft MSXMLはTXMLDocumentでデフォルトで使用するものです。
当初、このエラーを素直に読み取ったので、
「あれ、コンポーネント配置してない(IDEのポトペタで作ってない)から、デフォルト値がうまく読み込めてないのかな?」
などと思い、
  XML.DOMVendor := MSXML_DOM;
を追記しました。
が、それでもエラーが解消されません。
「ということは、ポトペタ配置と他にもプロパティが違う場所があるのか、おまじないが必要なのか」
と探すも、それらしいものが見つからず。


結論:仕様です

下記の「エラーハンドリングおかしくね?」というページを発見。
さらにこんなページたちも。


原因と解決策

・エラーメッセージが微妙に意図しているところと違う。
・GUI経由、つまりはVCLフォームを表示しているメインスレッドならCOMは普通に呼び出せるが、
 別スレッドの場合はCoInitialize 、CoUninitialize を呼び出してやらなくてはならない。



ここでハマったよその2 TXMLDocumentインスタンスが勝手に破棄される

実際にプログラミングしたのは、上記基本構文よりもちょっとだけ複雑で、
Nodeを作るところ・そのためのデータをとってくるところや、SaveToFileするクラスは別に作っています。
そんなこんなで、SaveToFileしようとすると、「Activeでないよ」というエラーが発生するように。
あれ?
もしかして勝手にクローズしちゃうのかな?
と思って直前でActiveを活性化させても同じ。
なんでやねん、と思って追ってみるとTXMLDocumentインスタンスが死んでいる……
ウソみたいだろ、Freeしてないのに解放されているんだぜ。


結論:仕様です

「作成時に Owner が設定されていない TXMLDocument は、インターフェイス オブジェクトと同様の動作をします。 つまり、そのインターフェイスに対する参照がすべて解放されると、TXMLDocument インスタンスは自動的に解放されます。」
なんでそんな動作なんだよ(怒)
「インターフェイス オブジェクトと同様の動作」なんてさせるくらいなら最初からインターフェースで返せよ!分からんだろうが!


解決策

というわけで、Owner を設定してやれば解決します。
適当なTComponentインスタンスを生成してCreateの引数に渡してやりましょう。


総括:今回ハマったところを全部のせるとこんな感じ。


var
  XML : TXMLDocument;
  RootNode, ChildNode : IXMLNode;
  OwnerComponent : TComponent;
begin
  CoInitialize(nil);
  XML := TXMLDocument.Create(OwnerComponent);
  XML.Active := True;
  RootNode := XML.AddChild('Root');
  ChildNode := RootNode.AddChild('Child');
  ChildNode.Text := 'ガキ';
  XML.SaveToFile('D:\Doc.xml');
  XML.Active := False;
  FreeAndNil(FResultXML);
  FreeAndNil(OwnerComponent);
  CoUninitialize;
end;



NuAns NEO 新製品発表に絶望した。

NuAns NEOといえば、国内で初めてContinuum対応したWindows 10 Mobile。
その新製品の発表が、20日行われました。
それでは、見てみましょう。
NuAns NEO [Reloaded] 登場です!

------------------------------------
NuAns NEO [Reloaded]
[Android]
------------------------------------

ん?(目をこする)
んん?(目をこする)
んんん?(目をこする)


_人人人人人_
> Android <
 ̄Y^Y^Y^Y ̄


…………………………………………………………………………………
………………………………………………………………………
…………………………………………………………
…………………………………………

絶望した。
今日は仕事しないで帰ろう(←20日の感想)


ちょろっと他のサイトを覗いてみましょう

>「NuAns NEO」を購入したいと思っている人の95%がAndroidを求めていた」
え、そんなん発売する前から分かっていたじゃん……
それを理解して、ニッチな市場に踏み出したんじゃないの……??
市場が大きいが、強豪・競合ひしめくAndroid業界ではなく、
WIndows に手を出したのはニッチなのを理解してじゃないの……??

こっちでも寂しげな感じが。


企業の活動としては理解するけどね

実際、Windows 10 Mobile では稼げないので、利潤の追求ならAndroid 端末を出すべきではあります。
そこは理解できます、します。
でもNuAns NEOを買ったユーザはWIndows だから買ったのであって、
Android を望んでいるユーザ=購入ユーザだとは思えないけどなあ……
でもスペックいいな、ちょっと欲しい


過去を振り返って生きたい方はこちらからどうぞ。


PowerShell Windows イベントログの最大値変更

電気屋でひっそりと展開されるWindows 10 Moibleコーナーで遊んでいたら、Windows 10 Moible を片手に遊び始める人がもう一人来て、驚きを隠せなかった丘山です。
町中でWindows 10 Moible持っている人、自分以外に初めて見た……
シェア0.5%未満だったと思いますが、つまりは数百人に一人くらいはいる計算なので、探せばそれなりに会えるのでしょうが。

と、それはともかく、久々のPowerShell ネタ。

Windowsログ(イベントビューアーで見れるヤツ)のログ最大値変更

例:イベントビューアー - セキュリティを右クリック - プロパティ - 最大ログサイズ の変更。

(※Powershell を管理者で実行して)
Limit-Eventlog -LogName Security -MaximumSize 20096KB

変更後の確認は、
Get-EventLog -List
から。

今回はこれだけ!


うごかして学ぶWindows PowerShell

勉強会にてHololens

やり方が悪かったな、と反省したのでそのあたりをば。


会の内容

・毎回、各自発表時間を割り当てられるが、今回は最後に発表することにし、残り時間全てをHololens 体験会にした。
・1時間ちょっとしかないので、だらだらと説明していると肝心の操作がやれない! ということでほぼ説明せずいきなりチャレンジしてもらった。


結果どうなったか

・「表示されている映像が上にいくんだけど!?」→ヘッドセットの位置の問題
・「エアタップできない」→「指を押す」ではなく、「指を倒す」ジェスチャーが正解
・「クリッカー動かない!」→やっべー、クリッカー充電切れてるーw


説明すべきだったこと

・ヘッドセットの位置決めこそ最重要。Hololens は見た目よりも視野が狭いため、視野を決定するヘッドセットの位置を適切に設定できるかどうかで使いやすさが変わる
・エアタップはクセがある。コツは、「センサーが認識できる位置」は「顔の前」であること、指を大きく動かすジェスチャーをすること
・hololens は部屋をスキャンして部屋の形を正しく覚えないとうまく動かないことがある。
(事前に学習させておけばよかった)

まずもって、説明時間をとるべきだった。

でも盛り上がったよ!

UWPアプリをいくつか動かして、roboraidをプレイしてもらっただけなのですが、「すげー、すげー!」という声が聴けました。
やはりrobraid は神。あちこちでDEMOされてる=実績があるだけあります。これが一番凄さが伝わる感じ。

何にせよ、VRもMRも、体験しないと凄さも弱みも伝わらないので、ぜひ皆さんポチってください!



ハードコピー

あんまり更新しないのもなんですので、ちょっとしたことを書いてお茶を濁す。
軽くググッた結果をメモしただけとも。

(大ざっぱに)ハードコピーとは

コンピュータの画面を、そのまま紙等に出力し、永続媒体として記録したもの。
らしい。


(大ざっぱに)スクリーンショットとは

コンピュータの画面や、カメラで撮った画像ファイルをディスク上に保存すること。
らしい。


業務では

全部まとめてハードコピーと言ってしまっていたが、これからはちょっと言いわけてみよう。


Canon プリンター インクジェット 複合機 PIXUS MG3630 BK ブラック

新品価格
¥7,080から
(2017/2/8 08:06時点)

Hololens

遅ればせながらご報告。
MSストアから、Hololens 届きました!
本業でトラブルが続いていたのでいまだに全然弄れていませんけど!


外観について


絶対他でも(多分)言われていると思うのですが、入れ物はまごうことなき「湯たんぽ」




電源

充電はUSB経由。
結構電力いるだろう、と思っていたからUSB経由はちょっと意外。
USBをつなげっぱなしにして装着すれば攻殻機動隊ぽく見える……いや見えないなw


実際につけてみる

わかってはいましたがちょっと重い。


初期設定

Hololens には付属の説明書がついており、そこには日本語の記載もあります。
なんだ、前情報だとサポートは英語だけって言ってたけど、日本語もあるじゃん。
これなら楽勝だね!

と、見事に騙されました

電源ポチーの後の設定、英語音声ONLYじゃないですかー!
英語聞かないと次に何やるのかも分からないじゃないですかー!

Hololensでは音声操作もサポートしています。とありますが、どっちかというと必須の模様。
「音声認識もできる」というより、「音声操作しないといけない」という手順もあります。
初期設定中、次の設定項目に進む時は「NEXT」と「言わなければ」なりません。

一人暮らしへの部屋。
夜中にヘッドセット被って。
「ねくすと」「ねくしゅと」「ねきゅすと」
とつぶやき続ける私。

……メッチャ怪しいですね!



というわけで、雑なHololens 紹介でした!
詳細は他の方々からどうぞ!(投げっぱなし)

購入はコチラから。

Twitter に登録しようとした

ワタクシは全然SNSというものを使いません。
ですが、この度ちょっと事情がありまして、Tiwtter アカウントをとろうと思いました。


そして登録して10分ほどで






まだアカウント登録しかしてないのに違反扱いされたでござる。
冤罪でござる! 殿、冤罪でござるぞ!


調べてみると

結構引っかかる人が多いみたいですね。
推測するに、アカウントがスパム扱いされたかな?
丘山大一で活動している時はoutlookアドレスだからスパム扱いされやすいだよね……。
そして丘山大一としての電話番号なんぞないので、自力解決不可能w


しゃーないので

サポートに連絡してみます。


しかし



電話番号がないから電話番号で解除できないよ、と送ったのにも関わらず、電話番号でやれと。
まあこのメール自体、自動返信なんでしょうね。
自動化対策を自動でやるのは合理的といわざるをえない。

まあもう面倒なのでTwitterは諦めますw


続々・初めてコミケ用同人誌を作った話

原稿の管理

原稿自体は、Github上にでがらし会のPrivateリポジトリを作成することで管理することが決まっていました。
Github で管理するのはいいのですが、ここで地味にネックになるのが、マークダウンで原稿が作成される、ということです。
※もちろん、別の形式で原稿を作っても良かったのだが、Github上ならマークダウンが便利だと判断。


マークダウンは印刷のための形式ではない

当たり前ですが、マークダウンはHTMLを簡易に書くことに重点がおかれています。
出てくるものは解釈されたHTMLであって、その解釈はブラウザやライブラリに依存します。特にTableなんかは顕著です。
また、Github上に置くだけでは連結することも、(当たり前ですが)頁番号を振ることもできません。
よって、「印刷用の何がしかの形式にするためのライブラリが必要」ですが、「成果物はそのライブラリに依存する」します。
でもって、書く人ごとに使っているライブラリ・環境は異なるわけです。
合同誌なのに、書いているのはマークダウン(=テキスト)なのに、人によって結果が異なる。ツライ。


ライブラリの選定ーGitbook

あれこれ悩みましたが、最終的にGitbookを使用することにしました。
※正確にはWindows+Git for Windows+Gitbook+calibre
決め手は、
  • PDFへの変換ができる
  • PDF化した時の結果が、マークダウン+Github(ブラウザ) で表示した結果に近い(個人ごとの差が小さいことを期待)
  • PDF化の結果が印刷に向いている(特に改ページ)
  • 現在のリポジトリの構造でそのまま動く
という点です。ブラウザによる差異は取り除けないので、ここは諦めたところです。
他にも幾つか候補がありましたが、単純な使い勝手でGitbookを上回るものがありませんでした。
しかし、この選定に時間がかかりすぎてしまいました。
ライブラリの選定に時間がかかる=出力結果が不定なまま=ページ数も未定 ということです。
そのうえ、ライブラリと格闘している間に――編集としてあるまじきことに――皆の原稿進行具合の監視が半端になっていました。
結果、当初40頁くらいの予定が、出力してみたら120頁にふくれあがるという事態にw
いくらなんでも120頁は多すぎ! ということで、皆に協力を仰ぎ、最終的に80頁にしました。
いやあ、完全に編集担当の不手際でした(汗)
みんなありがとう!


製本について
色々悩んだのですG、STARBOOKSさんにお願いしました。
ポイントは、
  • 実績がある
  • PDF受付が明示されていた
  • 一部の頁のみカラー に対応していた
  • 比較的安い
  • 会場に搬入してくれる
という点でした。
担当のお姉さんの声が可愛かったのが最大のポイントだったなんていえない。ちなみに会場にいらしていたそうですが、その人も可愛かったそうな。お会いできていないぞチクショウ。
特に、上記事情によりPDFで入稿しなければならなかったため、PDF受付ができることが確定で分かっていたのが非常に大きかったです。

また、仮入稿もできましたので、一度製作途中のものを入稿し、印刷に問題がないかどうか軽くチェックしてもらうことができました。
印刷所に依頼するのは初めてでしたので、コレができたのは安心感の意味で非常に大きいかったです。

いやはや、お世話になりました。


さて、3回にわたって長々と書きました。

正直、理想通りにはいかなかったところが多いですが、処女作&初編集にしては「そこそこ」できたかなあ、という感想です。
通してのご注意ですが、今回はあくまで「初めて」「合同誌の編集という立場で」「丘山としての考え」を書いたものです。
何かの参考になれば幸いですが、「正解」を提示したわけではありません。特に、「文章の完成度を高める」の件は、どちらかといえば小説等で有効な手法です。技術書を書くのであれば、あるいはそうでなくても、異論が出るところだと考えています。
そして���の「異論が出る」ところがキモだと思います。
一人でやってても異論なんて出ませんからね。折角の合同誌ですから、黙々とやるよりも、意見をぶつけあってワイワイガヤガヤやりたいです。

諸々反省点もあります。数多の失敗もありますw
2回目以降の機会があれば、また違ったやり方をしたり、今回のやり方を洗練する形にでやっていきます。
しかし編集面倒くせえ編集は編集で面白いよ!



伊勢藤 同人誌ケース ブラック

新品価格
¥700から
(2017/1/14 21:16時点)

続・初めてコミケ用同人誌を作った話

前回の続きです。

文章の完成度を高める

完成度を高める=推敲の作業です。
いくつかのアプローチがあります。

その1:著者による推敲
最も基本的なものです。
最初から最後まで通して行われます。

その2:著者同士による推敲
余裕ができれば、著者同士による推敲も行います。
ただし著者同士の推敲は(お互いに遠慮するのもあって)さほど大きな変更をもたらしません。

その3:編集によるチェック
「一冊の本」としてまとめる都合上、用語を統一したり、権利上問題がある表現や素材を使用していないか確認します。
編集は文章それ自体よりも、枝葉を気にしたものをチェックします。

その4:読者によるチェック
最重要。
「そこそこ完成した文章」を「読んで」「見て」もらいます。
ここでいう「そこそこ完成した文章」とは、内容が最初から最後まで完結しているものを指します。
書きかけが無い、状態ということです(加筆する分にはよい)。
不思議なものなのですが、どんなにヒドイものでも、ヒドイ状態からちょっとずつ成長している姿を見ていると、最終的にボロボロであっても「最初に比べればだいぶよくなったよね」という結論に至りやすいです。
スパゲティコードをリファクタリングしていると、途中で多少クソコードが残ってしまっても「最初に比べればよくなったよね」という結論になりがちなのを想像していただければと思います。次にそのソースを見る人にとっては、やはりクソはクソなんですけどね。

あとは、読者に「同じ印刷物」を渡して読んでもらうことです。
(重要なのは「同じものを見てもらう」ことです。ちなみに、この方針はでがらし会では非常に強い反発を受けました。)
同じものを渡す理由は、同じものを見たときの感想、指摘事項を集めるためです。
違うものを渡しても違う感想が出てきてしまうのは当たり前なので、意味がないからです。
違うものを読んでいる場合は、(編集の中では)意図して「別物を読んだ」感想として取り扱うようにします。

また、一定周期で印刷しできる限り参加してもらい、なるべく複数回チェックしてもらうように……するつもりでしたが、スケジュール上無理でした。orz
編集の大敗北。

読者によるチェックでは、誤字・脱字等の枝葉より、「面白かった」「つまらない」「色がない」「読みづらい」「読みやすい」「ここの意味が分からない」「興味ない」等の感想が欲しいところです。また、できれば赤ペンなどで紙に書き込んでもらいましょう。
さらに期待されるのは、赤ペンによる読者同士の論争があればなおよしです。
論争がある=色々な読み方がある、色々な意見がある ということだからです。
そして、読者同士の論争をもたらすということは、それは
人に考えさせるよい文章か、
結論を出せていないダメな文章か、
どちらかになっている可能性があります。
それが著者に伝わればベストです。


何を読むか

著者、編集は書きかけのテキストでもなんでもOKです。
ただし、読者側が、そういった中間成果物を読むのはなるべく避けます。
最終的に、紙媒体としての同人誌になるならば、同サイズの紙に印刷したものを読みます。
最終的に、PDFとして出力するならば、PDFで読みます。

大切なのは、「最後にどうやって公開するか」に則ったものを読むことです。
時折、「最後は紙だけど、推敲中は画面で見るからいい」という人もいますが、それは大いなる間違いです。
開発現場の世界に例えるなら、受け入れテストするのに、デバッグで使っていたexeでテストしているようなものだからです。
同じものは作れなくても、「最終成果物と極力近いもの」をでテストすることが重要です。

Q:そうはいっても、画面に出ているものを印刷するのだから同じでは?
A:ぶっぶー

画面で出ているものと紙とでは、大きく異なります。
  • 文字サイズが、画面では拡大できるが紙ではできない = 読みやすさが異なる
  • 画数の多い文字が、印刷したらつぶれてしまって読めない = 印刷の精度の問題
  • 紙では常に見開きだが、画面ではそうとは限らない = 一度に目に入る情報量が違う
  • 紙では片面に画像、もう片面に文字という構成がとれるが、画面ではそうとは限らない = 一度に目に入る情報量が違う
  • 片面に画像、もう片面に文字となるはずが、印刷したら頁の都合上、めくった次の頁に分割されてしまった = 構成の問題
主にこれらが問題となります。
逆に、最終的に電子化するならば、なるだけ画面で見るべきです。


修正の要否の最終判断は「作家に任せる」

商業ではないので、編集の権限はそこまで強くありません。
ここまで、推敲の話をしてきましたが、修正するかどうかは各著者にお任せします。


お金の話をなるべくする

ここらでちょっと毛色の違った話をば。
何をやるにしてもそうなのですが、合同で実施する場合、お金は確実に揉めます。
同人誌についても、「利益を出すのが目標」「トントンになればいいや」「同人誌は赤字で当たり前」は人によって意見が分かれます。
同人誌で利益が出ると色々面倒なのですが、それでも「売る、ということは利益を出すこと」と考える人もいるわけです。
この辺りの意見は、各人バラバラでもいいのですが、「合同でやる時の方針」は早めに固めておく必要があります。
よって、折を見て費用、利益、各人の負担額を提示し、意思の統一を図っておきます。

次回に続く!


伊勢藤 同人誌ケース ブラック

新品価格
¥700から
(2017/1/14 21:16時点)