仮メモスマートフォン用の表示で見る仮メモ2020-02-10楽天モバイルのホスト名が解決できないクライアントの操作ログを記録する必要があって、アクセス元ホストのIPアドレスからホスト名を記録する処理があるのだが、なぜか一部のレコードの逆引きしたホスト名部分に抜けがある。DNS問い合わせなのでブロックしないように、やむを得ず非同期で行っていて、全体としてはシンプルな処理にはなっていない。バグかと思って調べてみると、単に順引きできないホストだった。順引きできない欠陥ホストというと某.adslが思い浮かぶが、国内だった。返ってくるが、それを順引きできない。順引きで検証できないので、無効なホストとなるのは仕方ない。自分が使っているわけではないので、このせいで何かがができなくなるといった不利益はないのだが、気になるので直して欲しい気はする。関係ないが...順引きは正引きとも言う。"X引き"で検索すると、現在35,900対705で順引きは圧倒的に少ないし権威付けもあるのか判らない。正の反対は負、誤、邪だから変な日本語だと思うのだが。lookupとなるが、前引きとは誰も言わないようだ。したら正引きは正面引きの略なのかもしれない。lookupは裏引きになるだろうか。71のabout:configフィルタFirefoxでabout:configをいじるときに、以前はフィルタの入力を/で括って正規表現が使えていたのだが、バージョン71でUIがXULからHTMLに書き換わった影響で機能が省略されて使えなくなっていた。不便なので試行錯誤したところ、ワイルドカードは使えるようで、*で任意の文字を表せる。試しに[a-z]のような文字クラスも入れてみたところ、これも使えたのだが、?だけは任意の1文字(正規表現で言う.)ではなく正規表現の?の挙動を示す。filterPrefs()を調べたところ、単に*が含まれている場合に.*に置換した上で正規表現でフィルタしているようだった。*以外のメタ文字がそのまま通過するので、*さえどこかに含めれば、今まで通り正規表現によるフィルタもできるということになる。(例えば末尾に*を書くならパターンの意味は変化しない)おマヌケなバグっぽい挙動だが、ひとまずは今まで通りに使えそうだ。checkoutした状態でマージしてしまった。infinity状態でないとファイルの欠損が起きてしまう...らしい。改善されたというような話を聞いたのだが、とにかく今回はうまくいかず、変なコミットを作ってしまった。-rで最後のコミットを消したレポジトリを作成し、そこからマージをやり直そうとしたのだが、うまくいかない。checkoutできないまず新たにcheckoutしようとしても、空のフォルダを2、3作った状態で止まって進まない。mod_dav_svn経由なのでWAFがブロックしているのかと思って確認してみるも空振り。repoサーバ上でローカル限定のsvnserveを起動してcheckoutしてみるとうまくいった。そこでそれをtarで固めて作業PCに持ってきてからrelocateした。mergeできない改めてmergeしようとしたり、diffを取ろうとするとエラーが起きる。representationなどとメッセージが出る。repoが壊れているときに出るらしいのだが、dump/loadしたばかりのrepoなので、当然verifyしてもエラーは出ない。原因svnserve経由だとcheckoutできたところにヒントがあったのだが、httpdをリスタートしたところ問題なくcheckout/mergeできるようになった。1.11系)がrepoの巻き戻りが起こらないことを前提に何らかのキャッシュをしていたのではないかと疑っている。UUIDなので同様なのか)。03:48svnadminで最新commitを消した後、レポジトリ操作が失敗するTweet広告を非表示にするもっと読むコメントを書く2019-05-01名前解決できずSSHサーバに蹴られるLinux突然サーバにSSH接続できなくなった、と言っても原因はいろいろある。今日あるVPSサーバでscreen内のsshが切れているのを見つけ、再接続しても繋がらない問題が出た(ウェブにはつながる)。海外の安サーバで最近AlphaRacks*1に買収されたところの一つだ。この新会社は買収に際して突然に収容ホストやIPアドレスを変更しても半日アナウンスせず、こちらが自己解決してから文句付けがてらに問い合わせた後でしれっと告知メールを出すようないい加減なところ*2。何かやらかしたんだろうと思い、とりあえずシリアルコンソール経由で接続する。SolusVMを使っているので本来はブラウザ経由でコンソールにつなげられるはずなのだが、受け側が整っていないのかWebSocketのエラーで接続できない。Viewerを使って接続した。Viewerにはポート番号を入力する欄がないので、コロン付きでIPアドレスとポートを区切って入れる。コンソール接続してログインし、sshdのエラーを確認してみる。(x.x.x.x)普通にはじかれているが、カッコ内もIPアドレスのみで逆引きされていない。DNS設定が欠落していた。名前解決に頼ったフィルタをしていたため、接続拒否されていたようだ。ネットワーク設定を戻す。おまけに何度もsshを試したせいでFail2Banにマークされてしまっていたのでunbanしたら復活した。SolusVM"とある。修正日が収容ホスト変更があった日になっているので、ホスト側が指定するネットワーク設定が間違っているのだろう。いえばこのサーバは最初のセットアップ時からsshが繋がらない欠陥ノードだった。ネットワークが再設定されてその状態に戻っていたのだ。*1:AlphaRacksはその後まもなく夜逃げした。scamの一環だろうという見方がある。*2:元の値段が値段なのでサポートには金の処理とサーバの提供以外は何も期待していないが、IPアドレスが変わるのに事前告知しないところは初めてだ。02:04名前解決できずSSHサーバに蹴られるTweet広告を非表示にするもっと読むコメントを書く2018-10-12DOMDocument->loadHTML()でパースすると文字化けするPHP大体HTMLに原因があるのでそこを見ればよい。charsetがないブラウザが「いい感じ」に処理してくれるのもダメHTMLがいまだに駆逐されない原因の一つじゃないだろうか。charset指定を補うのが一番速いだろうと思う。charsetがない場合、mb_detect_encoding()で見当をつけるにも言語を絞り込まないと限界があるので、結構難しい。ちなみにコンストラクタで文字コードを指定できるが、HTML処理では全く使われない。エンコーディングを指定できないようになっている。指定していると保存するべきエンコーディングを発見できず、出力がHTMLエンティティだらけになる。そもそもHTML4のパースと言っているので、HTML5の記法には対応していないということだろうか。読み込みでは認識しているようにも見えるが深く追っていない。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。