🆙定期的に安全なWordPressの更新方法の解説

前回の記事でWordPressを最新に保つために自動更新を有効にする事をお勧めしましたが、自分はプラグインの automatic-updater を使用しているばかりで、他の人に説明できる資料を用意していなかったのでまとめておこうと思います。

そもそもの議題として「更新する必要があるのか?」という点があると思いますが、WordPressは自分で管理をする必要があるWEBアプリケーションなので更新作業が必要になります。例えるならば自動車のオイル交換が必要のように、定期的にアプリケーションを最新版に更新していれば起動速度が速くなったり故障(データ流出や悪意あるサイト内容の改変)というトラブルが回避できます。

自分自身でアプリケーションを開発するのであればWordPressで行う以上の労力が必要になりますし、どうしても更新をする手間を省きたいのであれば既存のプラットフォームに乗り換える選択肢があります。そうなると料金的なコストが上がるのと習得する時間が必要になり自由度が下がり、使い続けるためにはプラットフォームが存続し続けてもらう必要があるので、ご自分が必要となる目的に合致するものを選んでもらう必要があります。

本記事ではWordPressの更新方法さえ覚えてしまえば上記の選択が不要になると考えています。インターネット上で効果的な情報発信を覚えるためにはWordPressの更新方法を覚えておくのは重要なスキルだと考えています。そのための参考資料になれればと思います。

WordPressが挿す「自動更新」の意味合い

まず初めに、WordPressの自動更新についてですが、主に2つの意味合いで使われています。

  • 管理画面上でクリックして更新する機能名「自動更新」
  • 何もしないで最新版が来たら勝手に更新してくれる機能「自動更新」

となっていてややこしいものになっています。

同じ名称ですが実行される処理は若干違い、何もしない場合の自動更新は「マイナーアップデート」が行われます。

マイナーアップデートを解説するためには、バージョン番号の区分が2つあり、

  • メジャーバージョン
  • マイナーバージョン

が存在しています。2020年11月19日 の最新リリースである 5.5.3 を例にすると

  • 5.5.x の数字部分がメジャーバージョン
  • x.x.3 の数字部分がマイナーバージョン

となっています。

そのため、「何もしないで最新版が来たら勝手に更新してくれる自動更新」は x.x.3 の最新版を更新してくれるものになります。これはWordPressをインストールするとデフォルトでONになっている自動更新機能になります。

マイナーバージョンとはセキュリティアップデートのみを対象にしており、基本的な機能の変更はされません。なのでアップデート後にエラーが発生する確率は最小限に抑えられているものしか更新がされません。

WordPressは常に最新版の使用を推奨していますが、過去のメジャーバージョンにもセキュリティパッチが更新されているので管理画面から更新を行わずとも最新のセキュリティパッチが当たったものに更新されていきます。

たとえば 現状の最新メジャーバージョンは 5.5 ですが、過去の 5.3 に対してもマイナーバージョンを上げるリリースが行われています。

セキュリティパッチが更新はされていますが、WordPressの開発としては最新メジャーバージョンを使用した保守しか行っていないので、過去のメジャーバージョンの安全は保証されていません。なので常に最新版に更新していく必要があります。

以上がWordPressの自動更新の概念の話。これが対象となるのはWordPressソースコードのコア部分と翻訳ファイルの話です。テーマとプラグインは分割されており、自動更新の対象外になっていました。

最新版のWordPress 5.5 メジャーバージョンからは事情が変わり、テーマとプラグインの自動更新機能が追加されたので管理コストが少なくなったはずです。

ここまでが前提情報になります。以降は「じゃあアップデートする方法はどうするの?」を書いていきます。

メジャーバージョンも完全自動更新

WordPressは x.x.3 のマイナーバージョン部分はデフォルトで自動更新されると書きました。では 5.5.x のメジャーバージョン部分も自動更新されるように設定していきます。

これは自分が取っているいつもの手法になります。更新後にメール通知が来るので問題が無いか確認して、問題があればバックアップからの復元や問題の解消などを行います。

あまりアクセス数が無い場合や、ある程度のサイト表示が出来なくなる事も許容できる時にこの手法をとることをお勧めします。労力を最小限に出来るメリットがあります。

お勧めはプラグインを使用する方法です。https://wordpress.org/plugins/automatic-updater/

プラグインを入れて設定画面でメジャーバージョンの更新をチェックを付ければ完了です。アップデート後はメールが届くように設定をしておき、アップデートの度にサイトを確認して正常に表示される事を確認しましょう。

経験則的にはcssやjsのminify系のプラグインやキャッシュ系のプラグインでエラーが起こり易い印象なので
(ちゃんと保守されていない物だった可能性はありますが。)
無闇にプラグインを入れないようにしたり、信頼できる情報元以外がお勧めしているものは入れなかったり、バックアップを取っておいて復旧手順を確立しておく事をお勧めします。

プラグインが原因で表示されなくなるぐらいだったら最悪プラグインの使用を停止したり、あまり独自機能に依存しすぎない運用をしておきましょう。

プラグインを使用しないで自動更新をさせるには、PHPファイルで指定する方法もあります。

add_filter( ‘allow_major_auto_core_updates’, ‘__return_true’ );
add_filter( ‘auto_core_update_send_email’, ‘__return_true’ );

こちらは独自テーマを使用していたり子テーマに入れたりプラグイン化して読み込ませましょう。テーマファイルに記載するとテーマ更新時に記載がなくなります。

メジャーバージョンの手動更新

こちらは管理画面上で行う更新方法です。

ダッシュボード -> 更新 -> 「いますぐ更新」のボタンをクリックすればお終いです。一般的な更新方法です。

管理画面に表示される通知を確認した時に実行したり、WordPressのリリース情報をチェックしておく必要があります。

基本としてはこれだけですが、「何かあった場合に巻き戻せるように」「可能な限り安全に」「更新中のダウンタイムを事前に通告したい」場合の最大限問題が発生しないようにする手順は以下になります。

  • 更新を周知(他の管理者や訪問者等、必要と感じる人へ)
  • メンテナンスページの表示
  • バックアップの作成
  • バックアップを使用してローカル環境(もしくはステージング環境)で更新のテスト
  • 使用しているプラグインを全て無効化
  • WordPressの更新、「いますぐ更新」のボタンをクリック
  • 停止したプラグインの使用を有効化
  • 動作確認
  • メンテナンスページの解除

詳細な操作方法はバズ部のこの記事を参照ください

メンテナンスページの表示やバックアップの作成、確認環境の作成が必要になります。

コマンドラインの知識がある人はwp-cliの使用も可能です。メンテナンス表示やバックアップの作成、コマンドでアップデートの実行も行えるのでbashファイルにまとめてしまえば手順の簡略化も可能です。cronに仕掛ければ完全自動更新も可能です。

以上、WordPressの更新方法になりました。
WordPressの更新手順はとても簡略化されており、とても簡単になっています。強いて上げるならバックアップの作成方法や復旧方法も明確になっているとより親切かなと思いますが、それはご自分で作成した方が発生した問題に柔軟に対応できるようになるのかなと考えます。更新手順の記事としては以上になります、お疲れ様でした。

その他

自動更新関連は停止するための情報が多く出てきますが、なぜ自動更新がデフォルトで有効になっているかを考えて、停止した場合のデメリットや対応方法を考えて実行していきたいものです。更新できるようにシステム構築していかなければなりません。

ちなみにこの記事をまとめた情報元は個人的に信用している公式のwordpress.orgの物や、バズ部、capitalpを元にしています。

🔐WPScanを使ってWordPressのセキュリティ改善をする方法

最近の技術トレンドとしてはJAMstackが熱いらしいという情報をキャッチしまして。静的コンテンツジェネレータ自体はjekyllやOctopressが流行った辺りから導入していましたがコンパイルする手間が面倒に思えてしまってWordPressを使う機会がちょこちょことあります。やっぱりブラウザで完結するのは楽なんですよね。

JAMstackのメリットである「静的コンテンツを公開しているからセキュリティが高い」というのは理解が出来るのですが、農家が田んぼに農作業に向かうためにスーパーカー乗る必要はないのと一緒で、ある程度はセキュリティに寛容になって楽した方がいいよね派ではあります。全部が静的コンテンツにすべきってのは乱暴かなと。

かといってセキュリティを意識しないのは違うので、サーバー内で動的コンテンツを出力するメリットを得つつ可能な限りのセキュリティを高める方法ってどんな事出来るの? ってのを具体的にするために、私が管理しているWordPressサイトのセキュリティチェックと対応方法をまとめていこうと思います。お決まりの対応方法が存在するWordPressの知見はアプリケーション開発の現場で活用できるかと思います。

使用するツールはWPScan。Rubyのgemとして公開されているコマンドラインツール、WordPressのコアやプラグインの脆弱性を確認してくれます。こちらのツールは他人のサイトに実行してしまうのは厳禁です、悪意あるアクセスと思われてしまいます。

そのため、対象のサイトは私が管理しているこちらのサイト

https://soramugi.net

自己紹介のために作成したサイトです。
2020年11月16日 時点で最新のWordPress version 5.5.3
公式テーマを使用しつつ子テーマを作成して微調整、プラグインも公式のみ使用しています。
自動更新はONにしたままなので全て最新の状態になっています。

セキュリティ系のプラグインとしてSiteGuardの導入を行っています。ログインページのアクセス制限や画像認証、ログインページURLの変更などができるため、各種レンタルサーバーで導入が推奨されています。

設置しているサーバーはレンタルサーバーのxserver、VPSに置いてもいいんですがOSのアップデートとか面倒なのでレンサバです。共用サーバーだけどSSH可、無料SSL対応、CPU 40個にメモリ188Gのサーバーを月1000円でアプリ置き放題でMySQLのDB無制限のメール送受信可のcrontab弄れるのは個人的に熱いです。

WPScanの実行結果

$ wpscan --url https://soramugi.net
_______________________________________________________________
         __          _______   _____
         \ \        / /  __ \ / ____|
          \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
           \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
            \  /\  /  | |     ____) | (__| (_| | | | |
             \/  \/   |_|    |_____/ \___|\__,_|_| |_|

         WordPress Security Scanner by the WPScan Team
                         Version 3.8.7
       Sponsored by Automattic - https://automattic.com/
       @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart
_______________________________________________________________

[+] URL: https://soramugi.net/ [183.90.238.7]
[+] Started: Mon Nov 16 17:17:59 2020

Interesting Finding(s):

[+] Headers
| Interesting Entries:
|  - server: nginx
|  - x-mod-pagespeed: Powered By mod_pagespeed
| Found By: Headers (Passive Detection)
| Confidence: 100%

[+] robots.txt found: https://soramugi.net/robots.txt
| Interesting Entries:
|  - /wp-admin/
|  - /wp-admin/admin-ajax.php
| Found By: Robots Txt (Aggressive Detection)
| Confidence: 100%

[+] XML-RPC seems to be enabled: https://soramugi.net/xmlrpc.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
| References:
|  - http://codex.wordpress.org/XML-RPC_Pingback_API
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner
|  - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access

[+] WordPress readme found: https://soramugi.net/readme.html
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%

[+] This site has 'Must Use Plugins': https://soramugi.net/wp-content/mu-plugins/
| Found By: Direct Access (Aggressive Detection)
| Confidence: 80%
| Reference: http://codex.wordpress.org/Must_Use_Plugins

[+] The external WP-Cron seems to be enabled: https://soramugi.net/wp-cron.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 60%
| References:
|  - https://www.iplocation.net/defend-wordpress-from-ddos
|  - https://github.com/wpscanteam/wpscan/issues/1299

[+] WordPress version 5.5.3 identified (Latest, released on 2020-10-30).
| Found By: Rss Generator (Passive Detection)
|  - https://soramugi.net/feed/, <generator>https://wordpress.org/?v=5.5.3</generator>
|  - https://soramugi.net/comments/feed/, <generator>https://wordpress.org/?v=5.5.3</generator>
|  - https://soramugi.net/feed/podcast, <generator>https://wordpress.org/?v=5.5.3</generator>

[i] The main theme could not be detected.


[i] Plugin(s) Identified:

[+] contact-form-7
| Location: https://soramugi.net/wp-content/plugins/contact-form-7/
| Latest Version: 5.3 (up to date)
| Last Updated: 2020-10-21T10:25:00.000Z
|
| Found By: Hidden Input (Passive Detection)
|
| Version: 5.3 (100% confidence)
| Found By: Hidden Input (Passive Detection)
|  - https://soramugi.net/, Match: '5.3'
| Confirmed By:
|  Readme - Stable Tag (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/contact-form-7/readme.txt
|  Readme - ChangeLog Section (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/contact-form-7/readme.txt

[+] seriously-simple-podcasting
| Location: https://soramugi.net/wp-content/plugins/seriously-simple-podcasting/
| Latest Version: 2.4 (up to date)
| Last Updated: 2020-11-09T15:30:00.000Z
|
| Found By: Meta Tag (Passive Detection)
|
| Version: 2.4 (100% confidence)
| Found By: Meta Tag (Passive Detection)
|  - https://soramugi.net/, Match: 'Seriously Simple Podcasting 2.4'
| Confirmed By:
|  Readme - Stable Tag (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/seriously-simple-podcasting/readme.txt
|  Readme - ChangeLog Section (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/seriously-simple-podcasting/readme.txt

[+] wordpress-seo
| Location: https://soramugi.net/wp-content/plugins/wordpress-seo/
| Latest Version: 15.2.1 (up to date)
| Last Updated: 2020-11-02T14:14:00.000Z
|
| Found By: Comment (Passive Detection)
|
| Version: 15.2.1 (100% confidence)
| Found By: Comment (Passive Detection)
|  - https://soramugi.net/, Match: 'optimized with the Yoast SEO plugin v15.2.1 -'
| Confirmed By:
|  Readme - Stable Tag (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/wordpress-seo/readme.txt
|  Readme - ChangeLog Section (Aggressive Detection)
|   - https://soramugi.net/wp-content/plugins/wordpress-seo/readme.txt


[i] No Config Backups Found.

[!] No WPVulnDB API Token given, as a result vulnerability data has not been output.
[!] You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up

[+] Finished: Mon Nov 16 17:18:03 2020
[+] Requests Done: 23
[+] Cached Requests: 36
[+] Data Sent: 8.208 KB
[+] Data Received: 70.311 KB
[+] Memory used: 245.828 MB
[+] Elapsed time: 00:00:03

基本的には 「[!]」で表示された内容に対応すれば問題なく、上記のログをみた限りでは全く問題がないサイトになります。

(APIトークンを使えと言われてますが自分の場合は同じ出力結果になったため今回は使用してません、回数制限があるのであまり使いたく無い…)

WordPressは自動更新と公式テーマと公式プラグインを使って必要かどうかを精査しておけばセキュリティ的には問題ないものになっています。

問題は無いのですが、出力された内容は「こういう情報が取得できましたよ」というものになるため、せっかくなので非表示にする対応や情報表示される理由を確認して悪用される種を摘んでおこうと思います。(この記事の本題)

ヘッダーの値削除

[+] Headers
| Interesting Entries:
|  - server: nginx
|  - x-mod-pagespeed: Powered By mod_pagespeed
| Found By: Headers (Passive Detection)
| Confidence: 100%

リクエストヘッダーの値が確認できます。実行アプリケーションが確認できれば攻撃方法も特定しやすくなるため非表示にしてみます。

xserverはnginxが起動していますが、.htaccess が使用できます

.htaccess に以下を追加

Header unset x-mod-pagespeed

Serverの記述削除は効かない?ようなので未対応

DoS攻撃対策

本格的なDoS攻撃をされた場合にはアプリケーションレベルでの対応ではどうしようもないので基本的には不要ですが、高負荷になりやすい箇所の理解のためにも使用できる対処を施します。

xmlrpcの無効化

[+] XML-RPC seems to be enabled: https://soramugi.net/xmlrpc.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%
| References:
|  - http://codex.wordpress.org/XML-RPC_Pingback_API
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner
|  - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login
|  - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access

モバイルアプリからの更新のためにxmlrpcを使用するため存在しているファイルですが、DoS攻撃に悪用されてしまう可能性がある機能です。モバイルアプリからの更新は行わないので無効にします。

.htaccessに以下を追加

<Files xmlrpc.php>
order deny,allow
deny from all
#allow from xxx.xxx.xxx.xxx # アクセスする必要が出たらIP指定
</Files>

wp-cron.php 無効化

[+] The external WP-Cron seems to be enabled: https://soramugi.net/wp-cron.php
| Found By: Direct Access (Aggressive Detection)
| Confidence: 60%
| References:
|  - https://www.iplocation.net/defend-wordpress-from-ddos
|  - https://github.com/wpscanteam/wpscan/issues/1299

WordPressでの予約投稿をした場合、指定時間での公開をチェックするためにユーザーアクセス時に wp-cron.php が実行されます。これもDoSに悪用される危険があるため無効化、予約投稿やバックアップの処理、自動更新もwp-cronで実行されるのでサーバー内のcronで実行するように変更します。

wp-config.php

<?php
define('DISABLE_WP_CRON', 'true'); # 先頭に記載しないと無効にできない

crontab

* * * * * /usr/bin/php7.4 /path/to/wordpress/wp-cron.php > /dev/null 2>&1

.htaccess

<Files wp-cron.php>
order deny,allow
deny from all
#allow from xxx.xxx.xxx.xxx
</Files>

バージョン情報の削除

[+] WordPress readme found: https://soramugi.net/readme.html
| Found By: Direct Access (Aggressive Detection)
| Confidence: 100%

[+] WordPress version 5.5.3 identified (Latest, released on 2020-10-30).
| Found By: Rss Generator (Passive Detection)
|  - https://soramugi.net/feed/, <generator>https://wordpress.org/?v=5.5.3</generator>
|  - https://soramugi.net/comments/feed/, <generator>https://wordpress.org/?v=5.5.3</generator>
|  - https://soramugi.net/feed/podcast, <generator>https://wordpress.org/?v=5.5.3</generator>

自動更新を有効化して常に最新にしていれば問題ありませんが、古いバージョンの脆弱性を突くための確認をさせないためにバージョン情報を表示させないようにします。(意味あるのか?)

バージョン情報を削除しすぎてしまうと更新時のキャッシュ廃棄がうまくいかずに、表示崩れやバグの原因になる可能性もあるのでほどほどに。

.htaccess

<Files readme.html>
  Require all denied
</Files>
<Files license.txt>
  Require all denied
</Files>

functions.php (子テーマの作成、もしくはプラグイン化を推奨)

// rssのURLに出力されるversionの無効化
add_filter('the_generator', '__return_empty_string');

プラグインのバージョン表示もありましたが、プラグイン毎にバージョン非表示用のメソッドは用意されていないため、こちらは対応見送り

contentのディレクトリ変更

プラグインディレクトリへの直アクセスが可能になっています。脆弱性が発見されているプラグインへの直アクセスを狙われる可能性もあるためcontentディレクトリを変更します。

wp-config.php

define('WP_CONTENT_DIR',  dirname(__FILE__) . '/contents');
define('WP_CONTENT_URL',  'https://' . $_SERVER['SERVER_NAME'] . '/contents');
define('WP_PLUGIN_DIR',   WP_CONTENT_DIR . '/plugins');
define('WPMU_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins');
define('WP_PLUGIN_URL',   WP_CONTENT_URL . '/plugins');
define('WPMU_PLUGIN_URL', WP_CONTENT_URL . '/plugins');
define('PLUGINDIR',   WP_CONTENT_URL . '/plugins');

robots.txt

あとはrobots.txtに記載があるというこのメッセージ

[+] robots.txt found: https://soramugi.net/robots.txt
| Interesting Entries:
|  - /wp-admin/
|  - /wp-admin/admin-ajax.php
| Found By: Robots Txt (Aggressive Detection)
| Confidence: 100%

はおそらく対象パスにファイルがあることを記しているということになりますが、この記述を消したところで意味はなく、ajaxの機能を除外するのはコストが高すぎるためスルーです。

終わりに

以上です。
セキュリティチェックは一度対処して終わりでは無いため、自動更新の有効化をしたり最新の情報を定期的に収集することをお勧めします。WordPressは特定バージョンへのセキュリティパッチは存在しないため、常に最新に保つようにしましょう。

WordPress.orgニュース
https://wordpress.org/news/
脆弱性一覧
https://wpscan.com/wordpresses

🤔人に優しくする価値観がズレてきている?

最近は目的を達成するために手段を探して行動していくなかで、どうにも噛み合わない事が気になっている。

最初に目的や役割を提示したとしても理解したつもりになって手段の是非や自己紹介ばかりで進まずに一人喋り(独り言?)を続けられてその人のプライドを優先する行動になってしまって目的を達成できずにお流れになってしまうことが多々あった。

合わない人だったなと気持ちを切り替えてもう一度他の人とやり直しをするのだが、事前に察知できる経験値の積み立てや会話の掛け合いで消費する時間を少なく出来るのではと考えてしまう。

相手に求める事といえば「少しだけ未来を見据えた行動ができているか」だと思っていて、会話の中でもふわっと喋ってどこに着地するかわからないで喋り続ける人はあまり良く無いなとか。そのタスクを完了したら何かが便利で汎用的になるけども、それだったら一言で済むよねとか。

自分が「少し未来を見据えた行動」が過去出来ていなかった反省があるからこそ、少し未来は見据えて行動していきたいしそれがお互い出来るようにしたいよねと。

そのために目的を明確にシンプルに、お互いが達成すべき物をわかり易く。「凡だから却下」と言う変な人も居たけどよくよく聞くと目的と手段の違いがわからず着地点もない事を言い続けて何を伝えたいのか2時間かけても不明だったので「そうですね〜」と言ってこれ以上の関係を持たないほうが良いなと切り替えた。

「少し未来を見据えた行動」を取るためには目的や役割が必要だと思っていて、それが無いと受け身で他力本願と他責思考なので関わると兎に角やる事が増えて労力に見合わない損な状態になってしまうなと。

たとえば以下のような「何か役割が貰えて目的のスイッチが入る」人は案外多いんじゃ無いかなと思うし、自分もその部分があるが、それが関わる項目の全てとなってしまうと少しキツイものがある。

この

  • スイッチ = やる気
  • 役割や目的を見つけられない = 能力がない人

と読み替えると、このツイートにも当てはまる事かなと思う。

自分なりに落とし込んだ結果はダークナイトのトゥーフェイスかなと思ったり

というのも「目的と役割が無くてやる気がある人」と言うのは「人に優しくしよう」と心がけている人で、人の目的にすがりついちゃう人なんですね。

自分自身の目的や役割が無いから困ってる人に優しくする良い人。

だけど目的が「優しくする」なのでリターンが無くて当然で「無性の優しさ」が正しい姿だと思って続けてしまう。感謝の言葉は言われるだろうけど優しすぎて頑張りすぎて疲れて余裕がなくなってしまう。そうするといつもならどうでも良いところが引っかかってしまうし、それが続くと怒るようになって人に冷たく当たってしまう悪い人になってしまうなと。

ダークナイトはジョーカーがハマり役すぎるので、あまりトゥーフェイスにスポットは当たらないけど、彼は本当は良い人だったけどジョーカーにつけ込まれて悪人になってしまうというキャラクター。

インターネットやSNSのおかげでキラキラしている活力ある人はすぐ見つかるようになりました。それを見ていると「何者かにならなくてはいけない」と考えるのが自然な世の中になっています。

そんな中で目的や役割がわからない状態でとにかく「人に優しく」を強く掲げてしまうとそれ自身が目的になって疲弊して人に冷たく当たる人が量産されてしまう「少し先の未来」があるなと感じます。

「無性の優しさ」って美談になるんですよね。

アメコミのヒーローなんてまさにそうで、初期のスパイダーマン映画なんかは自分の生活全てを犠牲にして優しい事をしている。そして何かが起こった段階で初めて行動する受け身な状態。好きだけど、好きなんだけどそうはなれないなと。

アメコミにもそれぞれのヒーロー像があって、その中でもシャザムは他人に対する「無性の優しさ」じゃなくて自分や家族を優先して力を使うって考え方の方が良いな。

この初期のスパイダーマン映画のような「自己犠牲」が強く出ている「人に優しい」姿はあまりマッチしないというか、インターネットが無くて関わる人が少ない時に必要だった価値観のような気がしていて、現代のような関わる人を自由に選べる状況にはマッチしないよねって。「人の嫌な事をしない」の方が合ってる気がします。

「人に優しく」を根っこのほうにもっていると息苦しくなるし、人に冷たく当たる人になっちゃうんじゃないかなと思います。

優しくするなでは無く、優しくしなくちゃ、が基盤にあるのはいくないなと。人に優しくする情報に多く触れすぎたせいなのか、そればかりを重要視するのは改めなければと思う最近。

✅目的を作るのが下手

最近よく考えるのが「目的を作って淡々とこなす」ということで、それが今までの自分は本当に下手だったなと。

今までは目的はなくとも目的を立てた人に依存するという事をしていたなと感じています。自分が出来る事をわかりやすく宣伝したり、出来る事をとにかく増やす事をしていたんだけど、そうなると自分がやる事が増えるだけで楽にならない。

人の目的にすがりつく存在、とでも言うのか、目的が無い事を否定しないで「あなたのためになる事をする優しい人」になろうと努力していた。

それはそれで良いのかもしれないが、それを行う事で得られる結果が自分自身で納得出来ないというか、努力量と比べるととても少ないものに思えてしまってやり方を間違えていたなと反省。

勝手に手伝っている人が勝手に不満を言い出したからそれはやられた方はたまったもんじゃ無いですね。優しくあろうと思う事が先行し過ぎてしまった結果なのかなと。

それを踏まえて最近はどうしているのかというと

究極は「不労所得」が欲しいのと「音声関連で面白いこと」が出来れば良いなと考えているなとまとまってきたので、そのための目的や目標を作って行動あるのみ。

今すぐに出来る事だけをこなすのは性に合わないというか、なるべく中長期的な物だったり将来性として繋がる事を厳選して無闇に疲弊しない個数を考えたり。

「続けるためにはどうすれば良いか?」を考え自分自身のバロメーターを見直しながら「自分の速さで」「自分でしか出来ない価値で」を実践して改善している日々。

言葉としては理解していたことのはずだったけど、感覚としてわかっていなかったのがやっとわかってきた。自分の事がまだ全然わかってないしそれを探るのが楽しくなってきた。

下手だけど、解らないけど、少しづつ解るようにするための目的を作ってこなしていく。

💪運動が嫌いな私がトレーニングを1ヶ月継続できた理由

縁があり4月からyaottiさんが進める自宅トレーニングを始めていました。

運動不足解消とメンタル安定化のための、自宅トレーニングのすすめ – 具体的な方法と習慣化の工夫|やおっち@Coachat🐢|note

結果としては「気分が良くなり、続けられる」という印象で人に進めたい経験でした。

今回は1ヶ月間の自宅トレーニングの振り返りをして自分自身の中で何がどうなったのかを書いていきたいと思います。

基本情報

まず初めに、4月時点での対象者である私についての基本情報や心構えを書いていきたい。

  • 30代男性
  • プログラマー
  • インドア派
  • 運動に興味がない
  • 持久力がなくなり体力の衰えを感じる

最近は集中力がなくなり刹那的な感情の高まりを利用して物事を終わらせる事が出来なくなってきた。主に身体的な不調が原因だったため、改善するために物事のやり方を見直したりジムに通い出してトレーニングを始めたがジムは挫折中、別の個人的な目標を達成するまでジム通いはお休みしている最中。

トレーニングに興味はあったのでTwitterでお勧めされていた本を購入したらトレーニングサポートに誘われたため「受け身でなら出来るかも?」と了承した。

これがその時のツイート

トレーニングメニュー

詳細なサポート内容やトレーニング方法はyaottiさんが書かれた記事を参照してもらいたい。ベースとしては書籍のプリズナートレーニングでの器具を使わない「自重トレーニング」のメニューを組み、朝起きたら実行。

以下のメニューを実行している

  • 月: プッシュアップ
  • 火: スクワット
  • 水: レッグレイズ
  • 木: プッシュアップ
  • 金: スクワット
  • 土: レッグレイズ
  • 日: 休息日

ポイントとしては絶対にSTEPを飛ばさないで順番に実行する、ということを意識した。

プリズナートレーニングの中では難易度が低いものをSTEP1として初心者、中級者、上級者のゴールが設定されてSTEP10までの掲載がされている。

STEP1は大抵の人であれば軽くこなせる内容なので「自分ならSTEP3からやろう」と始めてしまう。だが、それは途中でトレーニングを途中で辞めてしまうダメなパターンとして紹介されていて筋肉が追いつく前に限界が来て進捗が得られずに挫折してしまう結果になるらしい。

運動嫌いだったがジム通いを始めた時に図書館で借りた本の一節を引用しておきたい。

うまく行く人は一見スローな感じがする

気負いや焦りがない分、あまりやる気になっていないように見えるが決してモチベーションが低いわけではない

アドバイスを受けたらそれを信じてやる

一度に多くのことを変えないし一度に多くを望まない。

「しばらくの間はトレーニングに慣れることを目標にしよう」と考える

仕事ができる人はなぜ筋トレをするのか (幻冬舎新書)

朝起きてからすぐ実行するのは最初は苦痛だったが、他に邪魔されるイベントがないので続けられる要因となった。夜だとその日の疲労度などでスキップしてしまう可能性があるからだ。

サポート内容

基本的にはトレーニングを行なった後の記録「何日に何のトレーニングを何回してどうだったか」を書き出し、それをyaottiさんに送信してコメントを返してくれる。実際に送っているコメントは以下

2020/5/2 レッグレイズ:フラット・ニー・レイズ 20*2呼吸を意識、後半がキツかったのでスピードが早くなってフォームが崩れてしまった体☁️気分🌤

他には定期的にZoomでのミーティングで状況の確認をしてもらった。

他に実現したい目標もあったので基本的にトレーニングについては受け身で居るつもりだった。付かず離れずというサポートだったので心地よかった。

トレーニング中の心構え

受け身で始めていたが、やっているうちに情熱が沸いてしまうもので以下の項目を意識して行なっていた

  • 成長する
  • 納得を重視
  • 思い通りに出来る場所にする

プリズナートレーニングの中で書かれていた「トレーニングだけが岩のように安定している場所になった」が気に入っていて、この項目(P322~323)を何度も読んでいた。

トレーニングだけが確かなものであり、楽しみだった。一日のうちのそれ以外の時間がどれほど狂気に満ちていようと、その狂った世界で、トレーニングだけが岩のように安定している場所になった。

確かに、監獄に入った事で失ったものは多い。しかし、体を鍛える時間が、健康と体力、そして、自尊心を取り戻してくれた。

ここで1レップ追加し、そこで技術が進歩する。よりハードなエクササイズにステップアップする。倫理的であり、意味があった。筋が通っていた。常に前進し、常にコントロールしていた。

わたしにとって、これほど特別で魅力的な時間はなかった。

プリズナー・トレーニング 圧倒的な強さを手に入れる究極の自重筋トレ

ある程度の年齢になると、自分自身の思い通りになることは少なく、コントロールできない物事や無駄になった時間が数多くあると思う。

だけどトレーニングは自分自身がコントロールできる場所で、トレーニングをした回数1つ1つ全てに意味があり次につながっている。無心で取り組める心の拠り所になる場所になっていた。

1ヶ月トレーニングを継続した結果

  • トレーニング進捗
    • プッシュアップSTEP2 中級者クリア
    • スクワットSTEP2 中級者クリア
    • レッグレイズSTEP2 中級者クリア
  • トレーニングが心の拠り所になった
  • トレーニング後に気分が落ち込む事が減った
  • 1回も休むことなく続けられた
  • 今後も続けられる確信が得られた

1ヶ月継続できた理由

刹那的な達成感ではなく、自分自身の納得感を常に意識して成長を実感するのを心がけた結果だと思っている。

運動 = 身体を動かしてリフレッシュ
トレーニング = 身体を鍛えて精神を安定させる

という認識が自分の中で変わっていった事も関係しているかもしれない。身体を動かす事が目的ではなく、自分自身の精神向上 = QOLの向上を重視したのが良かったかもしれない。

あとはyaottiさんに日々の記録を送信して「見られている」感覚を意識して行なっていたのも大きな要因だと思っている。そのため1ヶ月足らずでは習慣化に成功したとはまだ言えないため、今後もサポートしてもらうために継続をお願いした。

最後に

平凡な自分が出来る武器としての「継続」を意識する事が増えてきました。今風に言えばサステナビリティ(持続可能性)でしょうか。

刹那的な達成感や一時的な感情の高まりはモチベーションとなり大きな力になると思います。ですがモチベーションだけに頼っていると精神的な疲弊には対処できないと考えています。

モチベーションに頼らずに達成するための武器として「継続」を利用したいと考えているのですが、継続には終わりがなく挫折してしまう事が多々あります。

継続の助けとなる理性を高める、あるいは意思の力を高めるためにもトレーニングを継続する。一見矛盾しているかもしれませんがトレーニングを継続すればあらゆる物事が好転していくんじゃないかと考えるようになってきました。

今回の記事でトレーニングのサポートに興味を持った方はこちらからyaottiさんにサポートの依頼をしてみるといいと思います

オンラインで個人の習慣づくりを支援する会社Coachatを創業しました|やおっち@Coachat🐢|note

継続に関して、今はトレーニングの回数を常に上げられるので達成感につながっていますが、将来的には回数が上がらず挫折してしまいそうになるかもしれません。その時にはこの言葉を思い出して実践していきたいと思います。

優れた人になる唯一の方法は、同じことの繰りかえしに、いつまでも魅了されることだ。退屈に恋をしなければならない。

ジェームズ・クリアー式 複利で伸びる1つの習慣

📹YouTube動画を無料でバックグラウンド/オフライン再生させるために宅内ポッドキャスト配信する方法

YouTubeは好きなバンドのPVを見る事が多いんですが、YouTubeでラジオ動画を公開している人もいるようですね。たまに聞くのですがiPhone版のYouTubeアプリではバックグラウンド再生が出来ないので再生するタイミングを逃して聞かなくなってしまいます。無念。

YouTube Premiumに入会すれば出来るみたいですが毎月1000円と考えると渋ってしまいます。

そこで今回は無料でYouTube Premiumの特典である

  • バックグラウンド
  • オフライン

での再生をiPhoneで実現するために、宅内ポッドキャスト配信を行うためのツール「yotaka」をお勧めします。

GitHub – soramugi/yotaka: 宅内ポッドキャスト配信のためのPCクライアント

私が作りました。ぜひ使ってみてください。

yotakaを使う目的としては宅内ポッドキャストとして音声や動画ファイルを手軽に配信する事ができる点です。

「宅内ポッドキャスト 」とは全世界の人がアクセス出来るインターネットにアップロードする事とは違い、ローカルインターネット、つまり限られたインターネット環境(例えば家の中限定)のみで公開して共有する事を指します。

なぜ宅内ポッドキャスト配信をするのか?

ポッドキャストアプリの標準機能として

  • バックグラウンド
  • オフライン

での再生機能があるため、ポッドキャストとして配信してしまえば特別な処理をする事なく目的が達成できるためです。

通常のポッドキャストの公開だとパブリックなインターネット環境にしか対応していないため、アップロード出来ない音声/動画ファイルが出てきてしまいます。宅内ポッドキャスト、つまりローカルインターネット上 (同じゲートウェイ内、同じWiFiに繋げている環境) での共有を行う事で個人的に楽しむ目的しか出来ないため「宅内ポッドキャスト」という方法を選択しました。

ちなみに、YouTubeの動画は予めPCにダウンロードしておく必要があります。 youtube-dl なんかがあるので各自調べてみてください。https://github.com/ytdl-org/youtube-dl

youtube-dl -f mp4 <YouTubeのURL,YouTubeのプレイリストURL>

yotakaの使い方

  • こちらから最新版をインストールhttps://github.com/soramugi/yotaka/releases
  • 起動したらメニューバーに常駐しているのでアイコンをクリック
  • 「閲覧ディレクトリ」を動画を格納するディレクトリに設定
  • 「Podcast Feedをコピー」や「QRコードで表示」の実行
  • iPhoneにURLをコピー
  • iPhoneの「Podcast」アプリを起動
    • undefined
  • ライブラリ内の「編集」->「番組をURLで追加…」にコピーしたURLを貼り付け
    • undefined
  • ライブラリに「yotaka」が追加されていればOKです
    • undefined

あとはライブラリに動画一覧が表示されるのでダウンロードして再生が出来ます。

以上、お疲れ様でした。

最後に

ポッドキャストとして取得してしまえばラジオ的な音声や動画ファイルを管理しやすく、バックグラウンド再生が可能です。Apple公式のアプリなので質が悪いアプリにありがちな再生停止したら最初からになってしまうような事もありません、ダウンロードも行われるのでオフラインでの再生もできます。

(ただ、yotakaを起動しているPCと同じネットワーク内に無いとダウンロードが出来ません。これは仕様となっています)

ポッドキャストの設定で未再生をダウンロード、再生済みのダウンロードは削除、等々の設定もライブラリに追加した番組毎に切り替えられるので、使用用途によって変更してみてください。使い方によっては既読管理がしやすくなると思います。

🎙音声ファイルからの文字起こしサービスをココナラで始めました

雛形や検索対象などに/音声からの文字起こしをします AIによる文字起こしで大量に素早く1分20円と格安に|データ入力・文字起こし | ココナラ

興味あれば購入いただければと思います。

なぜ始めたのか

音声コンテンツのサービスに興味があり、何か出来ることがないかと機械学習に手を出して見たりアプリ作成に手を出したりしているのですが、文字起こしに着目していました。

自分はラジオが趣味なのですが、ラジオパーソナリティ目線からの文字起こしは「悪い物」と捉えられていることが多いです。なぜなら喋った内容の流れや意図を無視した切り取られ方をされてしまうから。

だけどそれは人が3人居れば発生してしまう事で、どうしようもないことだと感じています。2人で話していた内容を省略して別の人に伝えてしまえばそれは同じことが発生してしまいます。

文字起こしが悪いのではなく

  • 出典(オリジナルのラジオ音声)の参照ができず
  • 文字起こしの手間がかかりすぎてやる人が少ない

この状況下での文字起こしは「わざわざ手間かけてやる人の悪い目的」に利用されてしまう。

この状況を打破すれば「ラジオって面白い事喋ってるんだよ」をもっと知ってもらう方法の一つとして「文字起こし」があると考えています。オリジナル音声が誰でもアクセスできるようにするには権利関連があるのでそっちは出来ないですが、もっと簡単に文字起こしできれば「音声の良さ」を知るきっかけになると考えています。

文字起こしの難しさ

音声から文字起こしするのは完璧な精度を求める事は難しく、ただ書き出せば良いとは思っていません。人の発話のニュアンスや会話の流れ、人柄や喋っている時間や環境が影響して受け手の理解度によって内容が変わる物と思っています。(個人の意見です)

理解しただけでは文字起こしは出来ず、理解した内容を書き起こす文章力や専門知識も必要となる高度なスキルだと考えているので、1個人であるプログラマの自分には到底達成できない物です。

今、自分が出来ることとしては「文字起こしの効率化」が出来るように、精度は後回しにして文字起こしがし易い環境を作る事は出来るかなと作成した次第です。

第1段として、機械学習部分はなんとなく形になったので、宣伝がてらココナラでサービスとして公開しました。

サービス概要

文字起こしサービスの概要

  • 料金
    • 50分まで、1000円
    • 1分20円
      • 手作業での相場感としては1分100円
  • 対応形式
    • 音声ファイルやポッドキャストURL等
  • 納品形式
    • プレーンテキスト
  • 対応言語
    • 日本語
  • 活用想定事例
    • インタビュー内容の書き起こし
    • 議事録作成
    • カスタマーサービスの電話応答の閲覧
    • セミナーやイベントのアーカイブ
    • 授業内容を文字で復習
    • ラジオやPodcastで話した内容検索
  • サンプル

以上、興味ありましたら購入の検討いただけたらと思います!

雛形や検索対象などに/音声からの文字起こしをします AIによる文字起こしで大量に素早く1分20円と格安に|データ入力・文字起こし | ココナラ

🔌WordPressカスタマイズをfunctions.phpに書くのではなく、プラグインに落とし込む

ちょっとした思いつきを実現するためにWordPressを基盤にプログラムを書く事はたまにやります。ブログ機能にちょっとした機能を追加して試作してみたりですね。

先日も超個人的なブックマークサイトが欲しいなと、自作するまでも無いがシュッと作れないかと検索して出てきたこちらの記事に書かれている設定を行ったばかりです。

【WP】WordPressのPress This機能を応用して超個人的なブックマークサイトを作った話

実際に設定したサイトはこちら。以前こちらの記事でも書いた「タチカワサイド」という個人ニュースサイトです。週一更新をしていましたがライフサイクルの変化のおかげで方針転換、ブックマークサイトとして生まれ変わりました。

今回の設定はWordPressの基本的な設定では実現できなく、プログラムの記述を行ってフォーマットの調整やサムネイル画像の挿入を行いました。

通常、WordPressにプログラム記述方式でのカスタマイズだとテーマファイルのfunctions.phpを編集する必要があります。ですが、テーマ更新を行うとその編集が巻き戻ってしまうためあまりお勧めできません。

そこで今回は「WordPressでのプログラム変更によるカスタマイズ」をプラグイン形式で記述することによってテーマ更新を行える環境にする手順を公開していきます。

少ない手数で実現できる成果を、少ない手数で変更出来る環境を用意しておけば楽できるんじゃ無いかなという思いの人向けです。つまり私のような人。

手順

まずはDockerを使ってWordPress環境を作ります

$ mkdir sample-wp
$ cd sample-wp

公式のdocker-composeを少し編集

# docker-compose.yml
version: '3.1'
services:


  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - ./wordpress:/var/www/html
    networks:
      - wpnet


  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - ./db:/var/lib/mysql
    networks:
      - wpnet


  cli:
    image: wordpress:cli
    volumes:
      - ./wordpress:/var/www/html
    networks:
      - wpnet


networks:
  wpnet:

上記のファイルを作成、docker-compose up すればカレントディレクトリ配下にwordpressがインストール、 http://localhost:8080 にアクセスすればWordPressのセットアップ画面が表示されます

コマンドラインからWordPressを操作やプラグイン作成もできる WP-CLI も使えるようにしているので、以下のコマンド実行でプラグインの雛形が作られます

# 本来はこちらのコマンドで作られる
$ wp scaffold plugin <プラグイン名>

# 今回の docker での実行はこちら
$ docker-compose run cli scaffold plugin <プラグイン名>

プラグインの雛形が作成される場所はこちら(test-pluginとして作成)

sample-wp $ ll wordpress/wp-content/plugins/test-plugin/
total 44K
-rw-r--r-- 1 mugi staff  576  4  4 12:02 .distignore
-rw-r--r-- 1 mugi staff  448  4  4 12:02 .editorconfig
-rw-r--r-- 1 mugi staff   94  4  4 12:02 .gitignore
-rw-r--r-- 1 mugi staff 2.2K  4  4 12:02 .phpcs.xml.dist
-rw-r--r-- 1 mugi staff 1.4K  4  4 12:02 .travis.yml
-rw-r--r-- 1 mugi staff 1.2K  4  4 12:02 Gruntfile.js
drwxr-xr-x 3 mugi staff   96  4  4 12:02 bin/
-rw-r--r-- 1 mugi staff  343  4  4 12:02 package.json
-rw-r--r-- 1 mugi staff  389  4  4 12:02 phpunit.xml.dist
-rw-r--r-- 1 mugi staff 4.3K  4  4 12:02 readme.txt
-rw-r--r-- 1 mugi staff  348  4  4 12:02 test-plugin.php
drwxr-xr-x 4 mugi staff  128  4  4 12:02 tests/
 sample-wp $

test-pluginとして作成したプラグインは test-plugin.php ファイルを編集すればfunctions.phpと同じように適応されます。

あとは作成したプラグインを http://localhost:8080 でアクセスしたWordPressでプラグインを適応したり確認したりして動作するようになったらzipで圧縮、作成できたzipファイルを本来稼働する予定のWordPress環境でファイルアップロードによるプラグイン適応を行えば終了です。

お疲れ様でした。

🗑生ゴミ乾燥機を自作した話

1ヶ月経過したので現状報告をしておこうかと。

節約と健康と巣篭もりのために自炊を頻繁にしているのですが、自炊をすると生ゴミの問題が発生します。

以前は排水溝にネットを付けてゴミをキャッチ、一通り料理が終わったら透明なポリ袋に入れて捨てるルーティンでしたが頻繁に行うことにしては手順が多くて面倒になります。ネットを付けてるからこそ乾きづらくなって水カビが出やすい環境になっている気がしないでも無い。

ポリ袋に入れた生ゴミは袋の口をキツく縛っても嫌な匂いが発生、週2もある燃えるゴミの日に間に合わない速さでアイツは臭くなる。

調べると冷凍庫に入れると匂いが出なくなると出てくるが抵抗感が半端ない。。水分が残っているからこそ腐敗して匂いが出るので、冷凍や乾燥をすることによって腐敗を防止すれば良いのだなと理解。

市販の生ゴミ乾燥機を調べるも2万~3万するのが普通で手が出ずに、庭がある人はコンポストを自作したりしていて若干楽しそうではあるが手間が増えるのを懸念して諦める。

そこで昔作った自作空気清浄機のことを思いだす。容器の中に水を入れてUSBファンで空気を叩きつけてゴミを取り除くという装置だが、常に風が発生しているので水が乾燥するスピードが速く、気づいた時には水が無くなっていてゴミが散布されているという代物。

空気清浄機として使うのは諦めていたが、乾燥させるのならこれで良いだろうと新聞紙を敷いて生ゴミを入れたら匂いも出ずに快適。

朝入れて夜見たら十分に乾いていて匂いが気にならなくなります。ネットも使わなくなり、排水溝のゴミをそのまま入れて乾燥したらそのままゴミ箱に入れて匂い問題に解消されました。

ネギ類は匂いが出るかと思っていましたが特に問題はなく、豆苗の根っこを入れた時だけはキッチンに豆苗の匂いが充満していてキツかったです。

捨てるだけでも良いのですが、ちょっとしたエコ活動として卵の殻やコーヒー豆のカス、柔らかい葉物野菜とかはベランダのプランターにある土に混ぜて養分にしてみようと試みています。サステナブルですね。

作り方はこちらを参照ください

アレルギー持ちが考えた空気清浄機がたった800円で作れる – OTHER THAN MAIN

  • USBファン : 790円
  • 蓋付きのプラスチックの箱(セリア) : 100円

を買って10分ぐらいで作れるのでおすすめです。

🤡世界は征服されたがっている

我らがズヴィズダーの光をあまねく世界に!
世界は征服されたがっている!

https://www.sekaiseifuku-zzz.com

目的や指針が無いので暇でしょうがなく、時間が有り余っているのでSNSの投稿や誰かが行動した結果だけに反射だけでマウントを取って優越感を得る。制作物や行動に対して反応してしまった時点で征服されているとも知らずに。

0から1にする苦労や工夫、何を目的としたかを読み取らずに反応だけで「なんとなく」行動してしまった時点で「征服された」暇な人が発信者の宣伝活動を率先と行って有効活用されるとも知らずに。

征服されたがっている人は何をすれば良いか分からないし考えないので征服する人が居ないと何も生きがいがなくなってしまう。

その場の空気感で反応すれば怒られることはないので自己防衛としては大事な戦略だし長期的な生存戦略として間違いではないので征服される事を待ち望んでいる。

誰かに征服される事で「言われたからやっただけだし俺悪くない」が出来るようになる。

征服されれば反応だけで行動できるので、納得してやっていたはずだったが何か間違いだと思った瞬間に水を得た魚の如く生き生きと批判できるメリットがある。

だけどその行動を批判することはできないし、そんな人々のためにズヴィズダーが征服することによって活力を与える必要がある。

征服されたがっている人のために。征服されたがっても良い世界にするために。

自戒の念を込めて