xyzzyのバッファを書き出す

PDFのデータをWEBの管理ページにコピペという単調なワープアIT軽作業。
ぺたぺた貼りつけるだけならいいんだけど、PDFのデータは印刷のことを考えて(?)半角数字などの両側に半角のスペースが入ってたりするし、改行があるとWEBで表示すると半角程度空白になってしまう。
・PDFからエディタにコピペ
・無駄な半角スペースと改行を削除
・エディタから管理ページのフォームにコピペ
という作業。
毎度毎度エディタに貼りつけ置換して…いちいち同じ作業にむかついてきたので、調べてみた。
xyzzyというWINDOWSのエディタを10年以上使っていて、以前はマクロ(lisp)が面白くていろいろいじくってた。でも、もうすっかりびっくり忘却の彼方。lispは手強い。
とりあえず。xyzzyの編集中のバッファをperlに渡して処理させて、その結果を編集中のバッファに書き出して、クリップボードにコピーしてくれればいいや、と久しぶりにxyzzyのlispを調べた。
・カレントバッファをtmpファイルに書き出す
・外部コマンドでtmpファイルを開いて処理をして、その結果をカレントバッファに書き出す
・クリップボードにコピーする
(defun put-current-buffer-to-tmpfile ()
(interactive)
(setq temp-file "_xyzzy.tmp")
(delete-file temp-file)
(write-file temp-file)
(execute-shell-command (concat "_xyzzy-tmp.bat" " " temp-file) t (selected-buffer))
(copy-region-to-clipboard (progn(goto-bol)(point)) (progn(goto-eol)(point)))
)
perlを使えば何でもできるしなあ。
…て、「_xyzzy.tmp」とファイルを仲介してるんだけど。バッファを標準出力に出してそれを標準入力でperlが受けとるのが本来あるべきスマートな姿。Windowsだと無理、かなぁ…。
以下、外部コマンド実行でハマったのでメモ。
外部コマンドを実行するための関数「execute-shell-command」があって、xyzzyのリファランスを見ると
外部プログラムを実行します。結果だけをxyzzyに取り込みます。
COMMAND : 実行するコマンドをオプション付で指定します。
INFILE : 標準入力を使用する外部プログラムであれば入力ファイル名を指定します。
OUTPUT : 標準出力を出力するバッファを指定します。
ENVIRON : 設定する環境変数を連想リスト形式で渡します。
(("HOME" . "C:/applications/xyzzy/")
("TOPDIR" . "C:/spool/"))
DIRECTORY : 実行するディレクトリを指定します。
ところが、INFILEにtemp-fileを指定しても、ファイル名が引数になってない=指定のファイルを開けない。
具体的には
(execute-shell-command "_xyzzy-tmp.bat " t temp-file (selected-buffer))
INFILEにtemp-fileを指定すればバッチファイルの引数に渡されると思ったらダメだったので、perlのスクリプトの中で$f=’_xyzzy.tmp’とファイル名を固定で指定してた。
これは超ダサイ。
なもんで、
(execute-shell-command (concat "_xyzzy-tmp.bat" " " temp-file) t (selected-buffer))
↑COMMANDにtemp-fileを入れたコマンドライン文字列を作って入れたところ、バッチファイルでtemp-fileを受けとることができた。
system関数にsprintfでコマンドを作って実行させる、ようなものだ。
うーん、でもきっとINFILEを使った方がいいんだろうなあ。
とはいえ、目先、今月8月も残り10日を切ってるんで、不細工でもこいつで作業してやっつけてしまわんと。時間がかかればかかるほど単価がアレになってしまうんで、〆切一ヶ月前倒し進行!
[08/31 19:48:13]追記。
て、optionalのところ、nilだtだじゃなく、ここにINFILEを書けばいいだけの話だった。誤情報すみません。
ちなみに、xyzzyでは「filter-buffer」というのがあって、「Ctrl+x #」と叩くと、外部コマンドを実行するための1行バッファが現われる。
ここに外部コマンドを入力すると、編集中のバッファ(カレントバッファ)を外部コマンドに渡してくれる。
単純なものならperlのワンライナーでやりたい放題だし、スクリプトを実行させるためのバッチファイルでもOKだ。
超手強いlispを避けて、普段使い慣れてる処理系で書けるのは本当に助かる。

Ingress ガーディアン金の呪い

lv15まではただただAP稼ぎで、面白みがなく、話題もなかったんだけど、つい先日ヨメさんもガーディアンの金を獲得。辺境とはいえ都内23区でガーディアン金はラッキーのひと言。
以前にも書いたように、ガーディアンはひたすら運だのみ。
ウチのあたりは両陣営が拮抗しつつ、どちらかというと敵陣営の方が人数も多く、(大学やグラウンドがあって)地元以外からやってくるAGもなぜか敵陣営が多く、朝昼晩深夜一日4回も焼いてまわる廃人も多くなかなか安定してポータルを保持しにくいロケーション。
敵陣営のポータルを焼くと、倍返し3倍返しの報復がやってくる。
また、ガーディアン狩りをしている敵陣営の廃人もいて、ガーディアン金(20日以上保持)はハードルの高いロケーション。なもんで、地元でガーディアンを狙うために、目立たないようにひっそりと暮らしていた。地元のファーム化したいくつかのポータルは焼かれても焼かれても、淡々と現状回復し続けてきた。たかがゲームとはいえ、もともと短気なので、カッとして敵陣営のファームを焼き払いに行こうかと思ったこともあったけどぐっと堪えてきた。
金のメダルはレベル上げに必須。ガーディアンで金ひとつ獲っておくとラクチンだし、ガーディアンは妙な所有欲独占欲みたいなものも満足させてくれる魔性のメダル。
だからこそ、ハードルがやたら高いガーディアンの金は諦めるしかないと思いつつも、どのポータルでもいいので、なにかの間違い・幸運に恵まれてガーディアンで金が獲れるまではひたすら我慢。Ingressでの行動を制限してきた。地元では基本的にコンバット系の行動は控えてきた。
しかし、やっとのことで我が家はふたりともガーディアンの金を獲得。これでガーディアン金の呪いが解けた。
もう報復を気にすることなく地元でのコンバット系行動も問題なし。報復に焼かれてもまた取り返せばAPや実績にも繋がるので、むしろ「ごちそうさま」ということになる。
もちろん、身近なところが焼かれると「面白くない」のでムッとして取り返しに出るとは思うけど、以前ほどの「必死のぱっち」はない。
現状は。

プラチナ
Recharger 遠隔で見方ポータルの回復
Translator グリフハック成功ポイント
Trekker 歩いた距離
金
+Builder デプロイ数
Connector リンクを張った回数
+Explorer ユニークポータルのハック数
Guardian 自ポータルの維持日数
Mind Controller CF作成数
Sojourner 24時間単位でハックし続けた日数
銀
Engineer 自陣ポータルへのmod差し回数
Hacker ハック回数
Illuminator CF作成時のmu獲得数
Liberator ポータルのキャプチャ数
Pioneer 初めてキャプチャしたポータル数
Purifier 敵のレゾネーター破壊数
SpecOps クリアミッション数
lv14時点というかlv13時点からランクアップしたメダルはBuilderとExplorerのふたつ。
Builderはlv11になった時点から意識して金を狙ってたメダルなので遅いぐらい。Explorerはこれはもうただただポータル密集地への交通費というリアル課金さえすれば簡単にいつでも獲れる金。
今後は、AP稼ぎのために、地元でも敵陣営のファーム、リンク集中ポータルへのコンバット系も遠慮なく。また、次の金メダル候補のPioneer実績稼ぎのために焼いた記憶のない敵ポータルはとりあえず焼いてキャプチャ。
呪いが解けた・限定解除されたこれからこそが、またIngressというゲームは面白そうだ。
(運だのみのガーディアンは無駄にストレスフルだったなあ)
[2016/05/08 07:49:16] 追記。
…なんてことを書いたけど、今やポータルの数も増えたので、こんなストレスなしに、金ぐらいならすんなり獲れるようになってんなぁ。
Kindleオーナーライブラリの読了ページ数

今月2日に
「お知らせ:KDPセレクト グローバル基金の支払いに既読ページ数に基づく新モデルを導入」
というメールがKindle Direct Publishingから来た。
Kindle Unlimited (KU) および Kindle オーナー ライブラリー (KOL) のロイヤリティの支払い方法がダウンロードされた冊数じゃなくて、読まれたページ数に変更となった。
また、それにともなって、KDPの管理ページのレポートも今までのダウンロード冊数じゃなくて読まれたページ数となった。
ひらたくしちゃうと「1冊なんぼじゃ」なくて「ページなんぼ」だ。
正直、こりゃどうなの?という変更。
本は1ページ目からリニアに読んでいくものだ。読まれたページでなんぼ、ということなら、こりゃもう冒頭のツカミが最重要となる。あたまっから見せ場、サビを並べる同じような構成の本が濫造されやしないのか。
実用書やビジネス書ならともかく、創作はどうなの。
(創作も現実は版元や編集のテンプレートを求められることがあるので何を今さら、かもしれないけど)
「冒頭ちょっとたるくて作品に入るのに時間がかかってもそこを通過したら一気読みしちゃったよ、傑作だったよ、これ!あたまのなんじゃこれ、てのが伏線だったんかよ!くそ、読みなおすゼ」
ということはざらにある(あたまのところがたるいから、といってそこで止めちゃうケースがあるということ)
てことで「ページなんぼ」は、創作については、そぐわないと思う。
管理ページがダウンロード冊数ではなくて、読了ページ表示になったのも問題。
版元で契約しているところは知らないけど、KDPを使って本を預かって販売をしているような場合、著者への支払いはどうすんのかな。ページ単価でお支払いってことになるのか。支払い対象が著者ひとりならまだしも、デザインや写真、イラストなどが絡んで1冊に複数人いたら経理処理が煩雑になって販売管理の負担が大きくなる。
とはいえ、他人さまから原稿を預かって本を出すような場合、Kindleだけではなくibookstoreや楽天koboその他のストアに配信するのが一般的だろうからあまり問題じゃないか。ビジネスとして他人から原稿を預かってKDPだけってパターンの方が珍しいわな。
Kindleオーナーライブラリで日野裕太郎の『陽だまりうたた寝若桜』がレンタルされてたのでその様子。

この期間、レンタルしていただいたのは一人だけなので、どういう読まれ方だったのかなんとなく見えて面白い。
読了ページでの支払いには疑問しかないけど、こういうデータを見られるのはいいなあ。
日曜に3ページってことは、休日にダウンロードしてちらっと確かめたのかなあ。
月曜に20%弱まで読んでるってことは、通勤か通学の電車かも。爺婆たちとの展開・向こう側での日常が始まったあたりだっけ。
火曜に一気に読了。往復の時間だけじゃ足りないから、きっと帰宅してからもそのまま読んでもらえたなあ。自炊じゃなくて外食派のひとだろうか。爺婆たちとの世界に子供たちの肝試しが入りこんできたら展開が動くし、楽しんでもらえたかしらん。
雑誌を作るときの「いろはのい」
まずターゲットを決める。そのターゲット層ひとりひとり、読者の属性行動パターン・読者の顔が見えるまで想像する。
アカウント単位、ページ単位で管理できるんだし、KDPの管理ページもどうせなら読者のペルソナ設定にも使えるようにもう少しきめ細かくデータを見せてくれるとありがたい…それはこちらのサービスで別料金となります、いかがでしょう、という案内のメールが届く日も近いか。
Ingress Lv14になった

6月30日にlv13になって、今日7月3日にlv14になった。
lv14:プラチナ2 / 17,000,000AP
前回も書いたように、lv13の時点で、lv15までのメダルは揃っているんで、lv14、lv15はひたすらAP稼ぎ。
lv13時点で16,890,000APぐらいになってたんで、仕事で都心に出た時にポータル密集地で「焼いてレゾ刺してリンク張って」と真面目にやってたらすぐだった。
lv15はプラチナ3 / 24,000,000AP
…AP稼ぎだけだと面白みに欠けるので、残りのメダルの金を目指してみるかなぁ。
前にも書いたけど、Ingressは都市部でポータル密集地は本当に有利。行動範囲にポータル密集地が入っていれば、どうやってもレベルは上っていく。
唯一不利なのは、ポータルが育ちにくいので武器などのアイテム補給が難しいところぐらい。
都心のポータル密集地へ、交通費という名のリアル課金、だな。

Ingress Lv13になった


6月17日にlv12になって、今日6月30日にlv13になった。
レベル13:プラチナ1金7。
プラチナ
Trekker 歩いた距離
Recharger 遠隔で見方ポータルの回復
Translator グリフハック成功ポイント
金
Sojourner 24時間単位でハックし続けた日数
Guardian 自ポータルの維持日数
Mind Controller CF作成数
+Connector リンクを張った回数
銀
Builder デプロイ数
Engineer 自陣ポータルへのmod差し回数
Explorer ユニークポータルのハック数
Hacker ハック回数
Illuminator CF作成時のmu獲得数
Liberator ポータルのキャプチャ数
Pioneer 初めてキャプチャしたポータル数
Purifier 敵のレゾネーター破壊数
SpecOps クリアミッション数
+はlv12時点よりもランクアップしたメダル。
Connectorが金となりLv13の条件クリア。
タナボタのガーディアン金があるからLv13だけど、もともとガーディアンの金はないものと思ってやっていて、Lv11の時点でConnectorとMind Controller、Builderに的を絞ってやってきたので、今日のConnector金は狙い通り。今日でlv12の予定だった。
攻略サイトでも言われているようにConnectorとMind Controllerはけっこう稼げて、金までが近かったなあ。
lv14以上のレベルを狙うには。
lv14はプラチナ2、lv15はプラチナ3で、メダルはすでに揃っている。
APが足りない。lv14が17,000,000AP、lv15が24,000,000AP必要。lv8までの時のように、ひたすらAP稼ぎする感じか。
Lv16はプラチナ4、ブラック2
プラチナは後3ヶ月弱ほど毎日ハックしてればSojournerがプラチナになる。
ブラックはTrekkerとTranslatorで狙える、かな。
とりあえず実績メダルに必死こく必要はなくなった。
ポータル密集地に出かけてExplorerやPioneerの実績をUPさせるとか、地元の敵陣地を積極的に焼いて自陣営を広げるとか、これからやっと遊べる、と思ってよさそうだ。
1年2ヶ月ぐらいでlv13に到達。
レベルアップのペースが早いのか遅いのかこんなもんなのか…ただ、週に何度か仕事で都心のポータル密集地に出かけているのが間違いなくレベルアップに繋っている。都市部と地方でハンデが大きいよなあ。
今後。
この手のゲーム、運営がユーザーを飽きさせないために新アイテム(ベテラン向け)やレベルアップ手段(ニュービー向け)を増やしてくるだろうから、今はLv16が上限だけど、きっとLv17以上が出てくるに違いない。複数人で連携しなきゃ獲れないようなメダルとか十分ありえそう(リクルーターなんちゅーメダルもすでにあるし)…そのあたり、ぼっち参戦のわたしは関係ない。
てことで、ちょっとひと息。

