今日もまた踏みました

非定期更新:主に何とも言えない事態にあった際に更新しています

CentOSへのSSH接続が非常に遅い

CentOSSSHで接続しようとした時に非常に遅い
正しくは、前は早かったのにある日を境に遅くなった

原因はDNSサーバーのIPアドレスを変更したのを忘れていて、CentOS側の設定を変更するのを忘れていた

SSHでログインする際にDNSを参照するらしく、DNSにつながらない場合にタイムアウトするまで時間がかかるようだ

ちなみにresolv.confのみを修正し、if-eth0を修正しわすれていたため、再起動時にDNSの設定が戻りまたタイムアウト待ちとなった

正規表現で思いっきり勘違いした

HTMLからTABLEの中を正規表現で抜き出そうとしたが中々うまくいかなかった

古くからあるWEBサイトから情報をピックアップするのが目的なのだが、idもなければnameも無い、構成がTABLEばかりと何とも抜出しにくい

<TABLE>
<TR><TD>項目1</TD><TD>値1</TD></TR>
<TR><TD>項目2</TD><TD>値2</TD></TR>
</TABLE>

これに対して、"(<TR>.+?項目2.+?</TR>)"の様に作成した所、項目1も取れてしまう

完全に勘違いしていて、特に何もしていない場合は前から一致させる
その為、"(<TR>.+?項目2)"とすると

<TABLE>
<TR><TD>項目1</TD><TD>値1</TD></TR>

<TR><TD>項目2</TD><TD>値2</TD></TR>
</TABLE>

が一致してしまう
その為「<TR>」が一致してから「項目2」まで一致するという事らしい
いつもすんなりいっていたのは、idでTABLEを絞り込めていたかららしい

諦めて「<TR> ~ </TR>」を切り出してから、TDで分割する事にした

BoxCryptor でファイル名に特定文字を含んでいると表示されない現象が発生

【追記】

下記の現象を回避する方法がわかりました
ファイル名を暗号化すると、日本語ファイル名を利用しても大丈夫なようです
ですので、日本語で利用したい方は、お金を払ってファイル名の暗号化を利用可能にするのが良いかと思います

 

【初期投稿】

DropBox とか OneDrive とか GoogleDrive とかのオンラインストレージを利用する場合、やっぱりアカウントが漏れたりして、中を見られるのはちょっと怖い
そんな時に役に立つのが暗号化のアプリケーションだ

先日までは、nCryptedCroud ( https://www.encryptedcloud.com/ ) を利用していたのだが、最近になって BoxCryptor ( https://www.boxcryptor.com/ ) に変更していた

変更した理由なのだが、nCryptedCroud はエクスプローラから操作できても、コマンドプロンプトなどから操作ができない。全部暗号化してくれるのは非常に助かるのだが、逆にバックアップを残そうと思った時に、ちょっと使いにくい

その点、BoxCryptor の場合は、ドライブレターの割り当てが行われるのでコマンドプロンプトなどが利用できて、何かと都合がよい感じだ

 

実運用を開始してみて、BoxCryptorに問題が発生した
ファイル名に「合同」の文字があると、ファイルが表示されない
へんなコピーミスが連発した理由も同じかもしれないな

とりあえずフォーラムで聞いてみよう

 

という事なので、日本人の方は現時点で使うのをお勧めできないです

 

下記はBoxCryptorのサポートへ送信したメールに添付した内容
どんな感じになるのかわかってもらえると思う

f:id:itrident_kumakawa:20150224095204p:plain

f:id:itrident_kumakawa:20150224095311p:plain

f:id:itrident_kumakawa:20150224095322p:plain

f:id:itrident_kumakawa:20150224095330p:plain

f:id:itrident_kumakawa:20150224095344p:plain

f:id:itrident_kumakawa:20150224095400p:plain

f:id:itrident_kumakawa:20150224095411p:plain

f:id:itrident_kumakawa:20150224095419p:plain

Fuel + Redis で Session に入れた値が壊れた

(この事件は2013年10月後半に起きました)

Fuel の Controller から、View へ値を渡す時にオブジェクトを利用して渡していた

同じオブジェクトを Session に入れて、後から再利用しようとしていたのだが、そちらで取得すると「α」とかの文字が「&alpha;」とかに変わってしまっている

Redis に送る所が悪いのかとか色々調べてみたのだが、Fuel で Redis を使っている場合は下記の様に処理が行われるらしい

1. Controller でオブジェクトに値を設定 (この時点でSessionにも設定)
2. View でオブジェクトを処理
3. Redis へ送信

実に問題だったのが、2 の View の部分
View に出力するため、\View::forge を実行している訳なのだが、この処理ではオブジェクトのプロパティに対して処理を行い値を書き戻している

その為、3 の Redis への送信時点では、既にエスケープ処理されていて、次の所で Session から取得した時にはエスケープ処理済みが取得されていたようだ

色々と物騒なので、View に渡すオブジェクトは全て Clone する事にした

ERROR 126 (HY000): Incorrect key file for table

半年以上前の事だが、MySQLからこんなエラーを出しつつSQLがエラーになっていた事があった

独自の調査によると、tmpのディスク容量が足りない場合に出るとの事
だが、今回は30GBは空いていたので該当しないと思っていた

SQLを実行してからエラーになるまでの時間は1分程度
その為、頭を悩ませていた訳なのだが

watch -n 1 df

を何となく実行したまま、リトライしたところ
本当にtmpが空になっていた

ちょっとしたクエリーのミスで、tmpの残り30GBを食い潰していた

SSD 8本をRAID 10で使ってるからね…
30GBなんて一瞬さ…
ご丁寧にtmpの中を消してくれるから尚更気付かない訳ですよ

SSD恐るべし

そして LEFT JOIN 項目を ORDER BY に入れるのはやめて欲しい

iPad・iPhone(iPod touchを含む)にはデータを全て削除する設定が存在する

iPod touch(iPhoneも同じ)なのですが、起動時に出るパスコードを特定回数失敗すると全てのデータを削除するという素敵な設定があります
この機能のおかげで、先日(と言っても遠い過去)息子にiPadのデータを全て飛ばされました
本当にありがとうございます

設定から、パスコードを選んで一番下に移動すると、「データを消去」と書かれた設定欄があり、この設定が入っている場合にデータが全て消去される訳です

f:id:itrident_kumakawa:20150126220615p:plainこの赤枠の所ですね

そんなもの、お前が悪い…という声が聞こえてきます
そうですね。おっしゃる通りです
ですが…ですけどね?
この設定を変更せずに、知らぬ間に設定がされるとしたらどうでしょうか

下の画像をご覧ください。同じ設定位置です

f:id:itrident_kumakawa:20150126221341p:plainこの赤枠の所です

良く見て頂くと、「データを消去」の部分が薄くグレーになっているのがお分かり頂けるでしょう
これ、触れないんですよ。つまる所、解除できません
しかも回数が5回になっています

実はこれ、メールの設定を追加した事によって、設定が変更されたのです

今回の事例は、MicrosoftのExchangeをメールサーバーに利用している場合ですが、モバイル デバイス メールボックス ポリシー: Exchange 2013 Help に「モバイル デバイス メールボックス ポリシーの概要」という部分に、「指定した回数パスワードの入力に失敗したらデバイスを無効にする」などという項目の記載があります

裏は取ってませんが、どうもこの手の設定がされているメールサーバーに接続する様にしてしまうと、上記の設定が勝手に入ってしまいます

なお、該当のメールアカウントを削除する事で、強制されている上記設定は解除されました

「データを消去」が解除できない時は、是非とも疑ってみてください

最悪なのは、このアカウントの設定を行った時に警告の1つも出なかった事でしょう…