/ 最近 .rdf 追記 設定 本棚

脳log[2018-06-18~]



2018年06月18日 (月) 【画像】君たちの精神状態はどのタイプ? : 暇人\(^o^)/速報 - ライブドアブログ」■自分はね、おおむね3番。なぜそう捉えるのか。郵便局員が自身の都合しか語っていないと考えるからだ。自分たちしか知り得ない仕事のやり方に基づいて、事前の適切な対応を求められることが、理不尽で不可能なことに思えるからだ。わかんないんですよ他人の都合が。■自分が郵便局員の立場に立って伝えるべきだと考えることは「今回はこのまま対応する(※出直して来いという意図がない前提をおく)」「予め知らされていれば人員を補強して早く終わらせられるので、次の機会には検討してほしい」ということ。■これ仮に郵便局員が黙ってにこにこ対応することがあっても問題がどこかへ行ったりはしないんだよね。局員の不満につながるだけ。ハイコンテクストに依存せずうまくすりあわせを。


2018年06月07日 (木) Windows 10 は季節のアップデートのたびにパスワード共有を有効化して見えていたものを見えなくする。今回はそれに加えて、タスクスケジューラの履歴を無効化してたまっていた履歴をクリアすることまでした。どっちもそれが既定の設定でありお勧めなのか知らんけど、バカは消えて。■あとノートPCの輝度調整がきかなくなった。ファンクションキーと Windows の設定は連動してるんだけど、最大輝度で起動して、いつの間にか暗くなっていて、調節はできない。


2018年06月02日 (土) HORIZON ZERO DAWN の2周目をクリアした。NEW GAME+ モード実装前に開始したので引き継ぎなしのただの2回目。縛りはここに書いた通り>20170407。■この縛りって要は面倒くさいだけだった。サイレントストライク、クリティカルがないから敵がなかなか死なない。資源袋がすぐいっぱいになる&回復薬(所持上限3個)が尽きるからこまめに売買が必要。すべての武器を使い分けられない。属性に特化した防具をすべて揃えられないから回復薬とは別枠で持てる耐属性薬が必須。フォーカスで透視できないから人間の敵集団がやっかい。あとなんといっても死んでやり直しが多い。耐格闘装備などを着てなければスクラッパーに蹴られたりボールを当てられたりするだけで即死する。スクラッパーってハンターじゃなくて掃除屋なのに……。■3周目は New Game+ Ultra Hard を縛りなしで、DLC エリアに優先して向かう。あまりに面倒だから DLC エリアに進入せずに2周目をクリアしてしまった。


2018年06月01日 (金) アセンブリもバイナリもさっぱりなんだけど、ちょっと目についたコマンドラインオプション /Fa"アセンブリファイル名"/Fm"マップファイル名" をちょっとしたプログラムのコンパイル時に付けてみた。■アセンブリファイルは .obj と内容的に一致するものかな。ファイル名とか行数とか関数名がコメントとして付加されてるので、まずは関数のサイズが行数として把握できる。処理の内容はまあだいたいがスタックの上げ下げ、比較、ジャンプ、call, ret. こういう目立つ定型部分が高級言語の構成要素になるのでしょう。■マップファイルは .dll に対応するものだと思う。オプションを何もつけずにコンパイルしていたら一切の最適化がオフで(これをアセンブリファイル内のコメントで知った)、inline 指定していた関数の名前がすべてマップファイルの中に現れていてぎょっとした。そういうことがわかる。関数を単位とした .obj やアセンブリ(リスティング)ファイルの中身から、何が関数としてそのまま抜き出されたか、何がインライン化され無名のコードとして埋め込まれたかがわかる。インライン化はリンカの標準的な仕事とは違う気もするけどリンク時コード生成が有効だったのかも。並びとアドレスの差から関数のサイズもだいたいわかる。サイズ優先の最適化フラグを付けると、小さい関数間に最低限確保されていた間隔が短く詰められたんだけど、配置の間隔とその他の都合にどういう関係があるのか。■サイズ優先でコンパイルすると POD構造体のゼロ初期化(= {};)に memset が使われるようになって、/NODEFAULTLIB を指定していたもんだからリンクエラーになる。自分が Cランタイムライブラリを使わないように気をつけていても、コンパイラが使ってしまう(ことがある)。どないせーと? 初期化しないでメンバのひとつひとつに代入したら memset を使わせないで済んだけど、なんだかなあ。memset だけ自作してリンクしたらよかったんか。自作せずにコンパイラの実装から memset だけ抜き出したりはできないのか。■@2018-10-29 GCC のドキュメントからそのものズバリ「The compiler may generate calls to memcmp, memset, memcpy and memmove. These entries are usually resolved by entries in libc. These entry points should be supplied through some other mechanism when this option is specified.


2018年05月31日 (木) グーグルでは、問題にぶつかったとき必ず「○○」という言葉が出てくる | 破壊――新旧激突時代を生き抜く生存戦略 | ダイヤモンド・オンライン」■「それはユーザーのためになるのか?」だっていうんだけど、広告で収入を得ているグーグルがユーザーの方を向いてるのは、当たり前のようでそうでなく忘れられがちなことじゃないだろうか。(TVと億万長者を念頭に置いて)


2018年05月30日 (水) 炎上すると思ったら炎上したな、本来はこういう意味だから勘違いだぞ、という文脈でこう続くのだけど。「ですから、上記日大のコメントは「厳しいご批判はやむを得ないものとしてお受けいたします」という意味な訳です。」■しかしですね、やむを得ないから、しかたないから、そうするより他にないから、批判を受け入れるというのは、反省の弁ですか? スピード違反をしておいて、警察に捕まったから、捕まったものはしかたない、反則金は払う、というのが正々堂々たる態度として誉められるものだとでも言うのですか? そんなの当たり前だぞ。■リンクした先の人が混同してるみたいなのでつっこめる方につっこんだんだけど、「甘受する」の本当に本来的な意味は「現状に満足して快く受け入れる」ことと辞書の引用からは読み取れるので、その意味を踏まえれば日大のコメントに「辞書を引け」などとつっこむのが間違いであるどころかブーメランであるというのには同意する。■「本来は」という注釈が辞書に付けられている時点でその後の展開はお察しだったのにそれをやってしまうというのが、このところ明らかになった日大(広報)クオリティそのままで、そこに何か言うのは(言えるのは)内部の人の仕事でしょう。


2018年05月29日 (火) [SakuraEditor] cmake にはたいへん興味がある。なんせ常用してるのが VS2008EE で、インストールだけしてある、そしてインストールできる最新が VS2010EE だから、うっかりすると .sln が開けなくなりそうだ。そこを乗り越えても C++11 を使われるとどうにもならんのだけども、でも一度使うと手放せないでしょうね、あまりに真っ当で不可欠で、遅すぎたくらいにあって当たり前の機能が目白押しだもの。


2018年05月28日 (月) [SakuraEditor] 某所に突如さらされた URL により存在を知るところとなったサクラエディタの旧掲示板。興味深く読んでたらこれ>「返信の返信 BC++ならCBar:本人の書き込みがないので分かりませんが、もしBC++ Compilerを使っているなら、前にも書いたKENCH氏作CBarがいいですよ。BC++のみならず色々なCで統合環境を作れます。それになにしろKENCH氏自身がエディタにサクラエディタを使っているんですから。(ここにも時々登場(^o^)) CBarの設定でタグジャンプもOK。KENCH氏HP http://member.nifty.ne.jp/KENCH/index.htm 窓の杜紹介 http://www.forest.impress.co.jp/article/2000/07/12/sundayprog2.html じぇぷろ 2001/01/22月00:45 [347]」■CBar! そしてその作者! ライブラリを除外した商用コンパイラ無料化のはしりが bcc32 だったと思う。もちろんインストールした。PATH の通し方も知らなかったくらいなのでコマンドラインツールを直に使うのはつらい。CBar を含めいろいろインストールした。最終的な落ち着き先が CBar だったと思ったんだけどもうよく覚えてない。編集して1ボタンで再コンパイルできてエラーメッセージをダブルクリックすると好きなエディタでエラー行を表示できるものだったはず。■この旧掲示板でじぇぷろ氏がたびたび言及する「故[新掲示板]」。旧掲示板より古い「新掲示板」があったってこと? 旧掲示板のログも設定ミスでだいぶ失われてしまったって書かれてるんよなあ。


2018年05月25日 (金) SUBWAYヘビーユーザーのこの俺が貴様らにSUBWAYの使い方を伝授してやる: 不倒城」■そうはいってもミスドもバーキンもサブウェイも近くにないじゃん、と店舗検索をしたらフォレオにあった。失礼。帰りに本屋に寄ったら人生2回目の注文をしよう。最近アマゾンが離れていくから本屋には月に1回くらい行ってる、先月から。


2018年05月21日 (月) 高木浩光@自宅の日記 - 緊急周知 Coinhive使用を不正指令電磁的記録供用の罪にしてはいけない」■これ面白いね。JavaScript 第3の時代が来るか。うまくいけば NoScript 以外の選択肢がブラウザ標準で出てきたり。Coinhive には精々悪名を広めていただきたい。自分は Coinhive に限らずスクリプト全般に対してこういう態度>「実行されないコードに優るコードはない。クライアントサイドスクリプトとはそういうものだ。実行の主体も主導権もこちらにある。」 Enhancement であって、依存するのは下策なんだよ。スクリプトに対しても Web サービスに対しても。■@2018-06-12 面白いとか言ってられない事態だった>「仮想通貨マイニング(Coinhive)で家宅捜索を受けた話を楽しもう「ドークツ」」 警察のやり口ってこうよね。実際にやられると足がすくんで何も言えなくなるわ。最も身近な暴力組織で、多数派のための秩序を法によらず空気によって押しつける。そして続報も出ていた>「高木浩光@自宅の日記懸念されていた濫用がついに始まった刑法19章の2「不正指令電磁的記録に関する罪」


2018年05月20日 (日) [SakuraEditor] 不思議な順番で知った。1.「四九六々(縦書き用)(@496_)さん | Twitter」 2.「めておさんのツイート: "“サクラエディタ GitHub 移行 - clock-up-blog” https://t.co/rJ1yj9SDYT"」 3.「サクラエディタ GitHub 移行 - clock-up-blog」 blog あったんですね。ダウンロードしたっきりで不足も感じず使っていたサクラエディタのアップデートを追いかけるようになったきっかけが、Unicode 版の活発な開発だったんだよね。だから自分は ANSI 版のコードは知らない。■掲示板はやっぱり場所を移してでも設置するべきだと思うんだけど、現状にも問題があるんだよね。投稿したはいいが修正は禁止ワードに引っかかってできないとか、でもやっぱりできるとか。INCM ってよく知らないけど、ツールで掲示板が読めるみたいな、でも修正は追いかけられないから発言の訂正は控えてほしいみたいなことがログに残ってた。自分の考え方が去る者追わずだから、読めなくなったらきっかけがあるまで追いかけなくなっちゃうんだよね。それを基準にして URL の変更、掲示板の変更、あらゆる変更に抵抗を感じてしまう。■自分にとってニコニコと YouTube を分けた決定的な違いが、視聴にアカウント作成とログインが必要かどうかだった。GitHub で発言するためにはアカウントが必要で、自分はサクラエディタと並ぶくらい馴染んだ道具である tDiary で、自分の間違いを訂正するという避けようのない機会を待つまでアカウントを作成しなかった(「脳log[20161111p02] サクラインターネットに index.rbの実行を止められたよ。(その節はご迷惑をおかけしました)」)。ただの偏屈者ですかね。管理しきれないアカウントとかパスワードとかみなさんうんざりしてないんだろうか。おまけに最近は携帯端末の情報までパスワードに加えて求められるなんてまっぴらごめんなんだけど、みなさん抵抗はないんだろうか。■そして管理者。明らかに管理者と開発者は別物なんですね。管理者はマネージャーであり奉仕者であると。比企谷八幡みたいなぼっちには部活動という強制力をもってしなければ他人への奉仕なんて期待できないんだよなあ。自分には能力も行動力もないとしても、良くないところは同じ。これはコードレビューを含めての話だけど、レビューって他人のコードのために時間を使うってことなんだよね。■@2018-06-02 GitHub の方の他の方々の活動の流れの早さに目を白黒させている毎日なんだけど、今日久しぶりに sourceforge.net の方を見たら「A free Japanese text editor for Windows Brought to you by: aroka, ds14050, gentaro, kench-jp, and 5 others」と表示されていた。これ辞書順らしいけど(そんで先頭の人にはメールが飛んで来やすいらしいけど)、ちょっと前まで自分の名前はここにカウントされていなかった。いつからか「権限がなくてできないよー」と都合のいい言い訳ができないようになっていたらしい。


2018年05月19日 (土) mineoの「通信の最適化」、2018年9月末に解除が可能に プレミアムコースの返金も - ITmedia Mobile」■遅いよね。それに TV と同じように動画を垂れ流すことにしか使えない、それで十分だと、そういう認識のうすらとんかちが運営する通信サービスだと知らしめるには十分だった。■化物語か偽物語のオーディオコメンタリにあった。泥の入った樽にワインを~、ワインの入った樽に泥を~。結果はどちらも泥の樽であって、ワインは失われてしまう。■混雑してるから、画像だから、動画だから、音声だから、どんな理由を付けても恣意的(※被害データの選別)、偶発的(※回線状況)にデータが化けるなら、一片の信用も残らんでしょう。俺は自分の書いた文章が改竄されて読者の目に触れると感じた。テキストは対象外だとか圧縮するにしても可逆だとかの言い訳が聞きたいわけじゃないのはわかるな。将来にわたってそうだと信じられる理由がもうないんだから、できるなら、やると想定せざるをえん。そして契約してるのは俺じゃないんだよなあ。村八分にしたい。


2018年05月18日 (金)

最終更新: 2018-06-06T13:48+0900

MeryRelay2

テキストエディタ Mery はシングルプロセス型のタブエディタだから、svn や git のコミットメッセージを編集するためには工夫が必要らしい。工夫でなんとかなるということである。

別プロセスで編集 - MeryWiki

このプラグインは C# で書かれてる。秘訣がこれ>「.NETプラグイン開発キット - MeryWiki」 DotNetLib.dll のソースが読みたいよね、ていうかこれもユーザー投稿なの?

で、プラグインを Mery2.6 の 64ビット版で試してみたんだけど、動かないのはここに書かれていた通り>「【要望】Gitの編集

再コンパイルするだけで動くんじゃないかという気もするんだけど C# はさっぱりなので、思いつきで名前付きパイプを使った方法を試してみた(プラグインもパイプも初めて!)。「プラグインソフトウェア開発キット」の C/Basic プラグインを骨組みにして必要なところだけ書き換える感じ。

.NET プラグインの方のヘルプには OnEvent を上書きするとアイドルイベントまで捕まえてしまうからできるだけ個別のイベントハンドラを実装するようにって書いてあるんだけど、C プラグインのスケルトンには OnEvent ハンドラしかなかった……。

こうなりました>MeryRelay2.zip(あとの方に新しいのがある)。64ビットコンパイラってただで手に入るのかな。Vista 時代の SDK には付属していて、それしか手元にないんだけど。

ポイントはただひとつ。PIPE_NOWAIT は罠であるということ。PIPE_WAITFILE_FLAG_OVERLAPPED を指定すれば非同期に待てる。雰囲気で PIPE_NOWAIT を指定すると待てども返ってこない。

あ、パスの区切り文字の置き換えを忘れてる(でも試したら Mery2.6は / 区切りに対応してるぽい)。それとタスクマネージャーでコマンドライン列を表示するとわかることだけど、Mery.exe のコマンドラインなのにその内容が「"MeryRelay2Exe.exe" "file.path"」みたいになってるはず。少なくとも Vista ではそう。Mery.exe が気にしてないみたいだからいいかなって、最大限に手を抜いた。そんなわけでコマンドラインは一切操作も解釈もしていないので複数ファイルのドロップもできるんだけど、どのファイルがひとつだけ選ばれて監視されるかは運です。最後にもうひとつ。短い時間で連続してリレイ経由でファイルを開くと監視が漏れるかもしれない。ていうかたぶん漏れる。バックアップ中とかウィルススキャン中だと短時間でなくても漏れるかもしれない。

結局ロックファイルでシリアライズしつつ中身で情報をやりとりするのが一石二鳥なのか? くやしいので Mutex にする。zip を差し替えておいた。これで次のようなバッチファイルにも対応する。

start "" "MeryRelay2Exe.exe" a.txt
start "" "MeryRelay2Exe.exe" b.txt
start "" "MeryRelay2Exe.exe" c.txt
start "" "MeryRelay2Exe.exe" d.txt
start "" "MeryRelay2Exe.exe" e.txt
start "" "MeryRelay2Exe.exe" f.txt
start "" "MeryRelay2Exe.exe" g.txt

無駄にクラス化するなど>MeryRelay2_class.zip<不細工な車輪を再発明してでもDLLサイズを縮めるなど。


依然こういうバッチファイルには対応しないはずだ。

start "" "Mery.exe" a.txt
start "" "Mery.exe" b.txt
start "" "Mery.exe" c.txt
start "" "MeryRelay2Exe.exe" d.txt
start "" "Mery.exe" e.txt
start "" "Mery.exe" f.txt
start "" "Mery.exe" g.txt

正しく d.txt を開いていたタブが閉じられるのを検知できるかは運次第。ここにはトレードオフがあって、これに対応しようとするとコマンドラインを解釈せざるをえないが、Mery が解釈するコマンドラインに対していかなる前提も置きたくないというのがある。それで今のように、最初に応答したタブと無差別に関係を結ぶようになってる。

ところで本家 MeryRelay.exe は最初のバッチには対応しないけど次のバッチには対応している。自分のと逆である。

 Why are HANDLE return values so inconsistent? – The Old New Thing

最初に INVALID_HANDLE_VALUE があり、その次に NULL があったと。INVALID_HANDLE_VALUE が 0 でないから、0 が有効なハンドルになることがあるのかと疑っていたが、実際のところどうなのだろう。INVALID_HANDLE_VALUE を使う関数の方が古いらしいから、ないとは言えないよね。ハンドルクラスのデフォルト値・無効値の扱いに困るんだよ。ないと言って。

INVALID_HANDLE_VALUE and NULL - Google グループ

同じ疑問を持つ人が。そして、CloseHandle を実装する側から考えてみると値が NULL で有効なハンドルはありえないでしょって答える人と、これまでの経験で問題がなかったとしてもドキュメントに沿った慎重な振る舞いを勧める人と。

俺はもちろん、問題が生じるまで単純な対処法を選ぶ>20180308

 .NET プラグインが Mery から呼ばれる方法

従来.netのDLLをアンマネージから呼び出すためにはCOMとしてレジストリ登録して、COM経由で呼び出すのが一般的ですが、当然Meryからはこのような呼ばれ方はしません。

これを解決するために、アンマネージのブリッジ用DLL(C++で書いてるみたいです)があって、これがMeryから呼ばれる。

ブリッジDLLにはMeryから呼ばれるインターフェイスがすべて実装されていて、呼ばれたらマネージDLLに転送して、そちらで目的の処理を実行。 という手順をとっているようです。

「再コンパイルするだけで動くんじゃないかという気もする」とは書いたけど .Net には CPU を限定しない AnyCPU ビルドというのがあるらしく、ks さん本人のものと思われるブログでもそれが言及されていた。なのにどうして 32ビット版限定プラグインになってしまうのかな、と。その種明かし。

MeryRelay プラグインには MeryRelay.dll (160 KB) と MeryRelay/MeryRelay.dll (6 KB) という2つの同名の DLL ファイルが含まれていて、たぶん大きい方がアンマネージドのブリッジであり、32 ビット版 Mery からプラグインとして見えるもの。

svn 連携、git 連携にしろプラグイン作成にしろ、いろいろ方法があるもんですね。