はてなキーワード: バグるとは
263
最近わかったこと:「お前の意見を言え」→「~~」→「お前の意見なんて聞いてねえよ」→「??」→「お前の意見をさっさと言えよ」→「~~」→「お前の意見を聞いてないって何度いえば分かるんだ」→「……」→「お前の意見をさっさと言えと言ってるのが分からねえのか!」ってパターンを食らうと脳がバグってブチ切れてしまう。
結局の所は単純なダブルバインドに過ぎないのだが、こういうシンプルな精神攻撃に意外と弱いらしい。
コミュニケーションという行為に対して元々高い負荷を感じている自分にとっては、こんなどうでもいいようなダブルバインド方式のコミュニケーションエラーがある種のバッファオーバーフロー攻撃のようなものになってしまい脳が完全にバグる。
対処法としては、相手がこのような「無礼なコミュニケーション」を行ってきていると気づいた段階で真摯に対応するモードから適当に応対するモードに切り替える、ないしは上っ面だけ真面目に聞いてる風に見せかけて実際は単に「うんうんそうだね」「言えたじゃねえか」と女子会のような中身空っぽトークで乗り切るという回路を脳に形成していくのが有効だろう。
コミュニケーションにおけるバッファオーバーフロー攻撃を狙って実行しているパターンの典型例が宗教における洗脳行為である。
相手の精神に対して高い負荷をかけて一度パニックを起こさせてから、精神に生まれたスキに新たな価値観を入れていく、いわゆるイニシエーションと呼ばれる洗脳の初期段階である。
なるほど、改めて考えてみるとその原理は高負荷をかけることで管理者権限を乗っ取ろうとするタイプのハッキング行為そのものではないか。
逆を言えば、このようなコミュニケーションを無自覚に行ってくる人間は、自分に都合よく状況をすすめるために目の前の人間を洗脳しながら今日まで生きてきたということだ。
それが自覚的にせよ無自覚にせよ、錯覚を起こさせる段階を通り越し相手を洗脳して自分に都合がいいコミュニケーション結果を生み出すことを生存戦略としてきた人間など『まともに相手にしてはいけない』のは間違いない。
自分もまさにこれだったんだけど、子供の頃って「好きなことを書けばいい」という言葉の本当の意味がわからなかったんだよね。
当時の自分は「あらゆる行動は原則的にやってはいけない。ただし特別に許された行動はやってもよい」と思っていた。だから「なんでもやっていい」と言われると、それは先の原則に反するわけで、突然そんなことを言われても脳がバグるだけで手は進まない。
それがある時に、「逆だ」と。「あらゆる行動は原則的にやってもよい。ただし特別に許されない行動はやってはいけない」と気づいた。その頃から文章を書くのが楽しくなったな。
当時は「毎日三行以上日記を書く」っていうトレーニングをやったりしてた。ただし「今日は楽しい1日だった」みたいな抽象的なことは書かない。どんなに下らなくても具体的なことを書く。「朝ごはんは○○だった」とか、「今日は雨が降った」とか。
割と為になったと思う。
WordPressにはパーマリンク機能があるんだけどそれは内部のrewrite_ruleとかいう機能で実装されている
そんで、rewrite_ruleはまぁ文字の通り書き換えルール何だけど、リクエストパスを良きように読み替えてくれる機能です。
んで、どうやってrewrite_ruleを書き換えるかと言うと、add_filter で 'rewrite_rules_array' にルールを追加するのが一般的っぽいです。
それを更新するために $wp_rewrite->flush_rules() を実行するんだけど、これ実は、アクセスごとに実行しては行けない機能っぽい。下記みたいな記事でinitフックで実行する用例がネット上には転がってるんだけど、これを鵜呑みに実装するとバグる。
https://qiita.com/M-Ikezawa/items/22d24455f776065865ea
wpdocs.osdn.jp にすらこの方法が書かれてるの…まずくね?
具体的にどうバグるかと言うと、rewrite_rules_array に設定した関数がときどき実行されません。
なんで rewrite_rules_array に登録した関数が呼ばれないかと言うと、WP_Rewrite::wp_rewrite_rulesっていうメソッドの中でget_option('rewrite_rules') して、DBに保存していたルールがなければ、新規にルールを作成するっていう処理をしている。その新規にルールを作成する処理ってのの一環でrewrite_rules_arrayに登録した関数も呼ばれます。
まぁこのDBにアクセスしているのが怪しいですね。怪しいんですよ。そのものズバリflush_rules()を実行するとこのDB値を一旦削除して、ルールを作り直すっていう処理が動くんです。
なので並列アクセスしていると、DBの中身が作成されたり削除されたりといった動作が繰り返され、「flush_rules()実行しているのに、rewrite_rules_arrayに登録した関数が呼ばれない」といった動作になります。つまりバグります。
そもそも rewrite_rules_array に登録された処理はアクセスごとに実行されるべきものではありません。WordPressでのリライトルールは上記の通りDB管理されていて、DBに保存されたものを使い回すので、rewrite_rules_array の実行は一度だけ行われれば十分になるような処理を書くべきです。rewrit_ruleは処理が重いので毎回ルールを書き換えるような利用は想定外なのでしょう。
そして rewrite_rules_array に登録した関数を変更したら、WordPressのパーマリンク設定で設定を変更するボタンを押せば、処理内部でflush_rules()が実行され、rewrite_rules_array に登録した関数の処理が適用されます。
できるといえばできるけど、毎回アクセスごとに動作させるのがNGとなると実質出来ないってことになります。rewrite_ruleで対応するのは諦めましょう。
昨日久々にあの胃痛が来た
22時から5時まで右脇腹(胃?)がすげー痛くて
病院で処方されたエチゾラム(?)を大量に飲んで、案の定全然効かなくて
風呂で冷水と温水を交互に浴びながら般若心経を唱えつつちんこしごいて耐えきったんだけど(耐えられていない)
今もまだ胃がじわじわ痛いんだけど
まあそれは置いといて
1.炭水化物系を暴食する(暴食と言っても3食普通に食べただけなんだけど)
3.翌日スッキリする
4.安心して飯を食う
他に再現できるのは、2週間以上の激務(1日14時間くらい働く)を終えて休んで3日目、風邪、季節の移り変わり、その他のストレス、帰省あたり
俺の身体、再現性がなさすぎる、バグるにしてももっとちゃんと動け、再現しないと原因がわからないだろう
もうこれ12年目くらいだぞ
だめだ、薬の影響でまだ頭が働いてない