Traffic ServerでWordPressを高速化した結果

Traffic ServerでWORDPRESSを高速化するでWordPressの高速化を実施したのだけど、その前後で20%近くPVが増えていてちょっとびっくりした。月間2200PV程度しかない個人サイトだけど、今月は2600PVぐらいになりそう。
コンテンツの内容だけではなく、サーバーの質(応答速度とか)でランクを制御していると見聞きするけど、本当なんだと実感した次第。
最近は電子証明書も無料で使える所が出てきたいので、近いうちにSSLに対応したいと思います。SSL対応有無も検索ランクに影響すると聞いているので、またPVの変動として観測できるかな。

「内部不正による情報セキュリティインシデント実態調査」報告書

IPAによる「内部不正による情報セキュリティインシデント実態調査」を読んだ。悲しいかな、予測の範囲を出ない実態があらためて報告されたように感じる。以下、考えたところを纏めておく。

内部不正の81%は悪意の無い物

内部不正の81%は悪意の無い物だというのが重要。「 ルールを知っていたが、うっかり違反した」「 ルールを知らずに違反した 」「 業務が忙しく、終わらせるために持ち出す 必要があった」「 ルールはあったが、ルール違反を繰り返 している人がいたので、自分もやった」は悪意によるものではない。

・USBメモリの使用やメールへの添付など特定の行為を禁止するなら、ルールを定めるだけではなく、使用不可能にすることが重要。
・仮に使用不可能にすることが出来ないなら、ルール違反には速やかに警告できるように監視体制を構築することが必要。

この二つが実施できていれば、81%については従業員も重大な処分を受けることはないし、会社も損失を被ることは無かったはずだ。正直にいって会社側の責任が大きいと思う。

枝葉の対策に捕らわれずに、業務全体を見直す

悪意を持たない不正の中に「 業務が忙しく、終わらせるために持ち出す 必要があった」と「 ルールはあったが、ルール違反を繰り返 している人がいたので、自分もやった」を合わせて23%ある。業務全体を見直して実施の可否や、その影響範囲、業務手順の変更を同時に行ってないと得てしてそうなる。USBメモリなどの保存して自宅へ持ち帰ることを禁止するのは簡単に思えますが、同時に全業務の棚卸しを行い特定の個人しか実施できない業務がなく、必要なら同僚が何時でも代行できる体制でなければ、業務を遂行するためには持ち帰らざる得ないと考えるのがどおりです。他にも自宅から取引先に直行直帰というわけに行かなくなれば、取引先への訪問に使える時間は減ります。単純に持ち出し禁止とするのではなく、従業員の業務負担を減らすための業務見直しや、サテライトオフィスやテレワークなど代替処置を含めて考えないと、すぐに綻びることになります。

安易に例外を認めない

上長の許可を取れば可能とか、申請をすれば可能とか、安易な例外処置を認めてはいけません。許可申請を行うのが常態化し、本来必要な業務の見直しや代替処置の検討を先送りすることになります。もし例外を認めるなら委員会や役員の許可を得て、特定の業務に対して、業務見直しの期限を設けて許可を与える必要があるでしょう。さもなければ申請を出すのが通常業務の一部とかし、有効性を失いっていきます。

悪意のある内部不正は・・・

禁止事項を設けるだけで防ぐことは不可能です。USBメモリの使用を禁止すればメールで、添付メールを禁止すればWEBで、WEBを禁止すれば紙で、紙迄禁止したら業務にならないのは目に見えています。以下のようなことが必要になります。
・各従業員の行っている業務を明確にし、業務上必要の無い資料の閲覧を禁止する。
・閲覧の許された資料についても閲覧記録を常に監視し、網羅するような閲覧には警告をする。

機械学習でtotoの予測をしてみた(結果)

機械学習でtotoの予測をしてみた

13試合中5試合的中。的中率38%とランダムよりはマシだけど、ランダムと大差ない結果になりました。
totokekka

ランダムと大差ないとかちょっと悔しいので、また学習モデルを検討してみようかな。

機械学習でtotoの予測をしてみた

せっかく学習したのだし多少は実益に・・・・ということで、機械学習(Deep Learning)でtotoの予測を立ててみた。
過去の対戦成績のデータはJ.Leagu Data Siteから頂いた。これだけではつまらないので、気象庁の過去の気象データ・ダウンロードから対戦時の気象情報をダウンロードした。これを元に学習をさせてみる。

チームの構成人員や、それらのパフォーマンスなど入力データを増やすのは疲れるのでやらない。むやみにデータを増やせばよいというものではないし、それらのデータは対戦結果として既にフィードバックされているので問題ないと判断した。

予測結果は次のようになったが、果たして・・・

広島 x G大阪 -> 広島勝
磐田 x 名古屋 -> 名古屋勝
広島 x 川崎F -> 川崎F勝
鳥栖 x 福岡 -> 鳥栖勝
柏 x 浦和 -> 浦和勝
湘南 x 新潟 -> 新潟勝
神戸 x 甲府 -> 神戸勝
横浜FM x 仙台 -> 引分
FC東京 x 大宮 -> FC東京勝
G大阪 x 鹿島 -> G大阪勝
東京V x 札幌 -> 札幌勝
金沢 x 長崎 -> 金沢勝
清水 x 愛媛 -> 引分
山口 x 岡山 -> 引分
熊本 x 松本 -> 引分
群馬 x 岐阜 -> 群馬勝
町田 x C大阪 -> 引分
横浜FC x 讃岐 -> 横浜FC勝
千葉 x 徳島 -> 徳島勝
京都 x 水戸 -> 水戸勝
北九州 x 山形 -> 北九州勝

totokounyuu

マイナンバー登場でアナクロな金庫が売れている?

マイナンバー登場でアナクロな金庫が売れている? ハイテク時代に逆行する安全管理
普通に考えると、通帳や印鑑、実印、パスポート、保険証など、大切なものと一緒に保管しておくのがよさそうだ。現在、貴重品を保管してある場所に入れればいいだろう。

典型的な駄目な例。

窓口の手続きにおける本人認証は多要素認証によって行われている。例えば通帳だけ持っていても現金を下ろすことはできない。通帳と銀行印がそろって初めて本人と認証される。銀行印を持っていない場合には、実印と印鑑証明に保険証や免許証などの組み合わせで本人認証がなされる。印鑑証明の発行は実印の保険証や免許証の組み合わせって具合になる。これらを一か所にまとめて保存しておくと、万が一に盗まれた場合には容易に悪用されて被害にあうことになる。本人確認に使われるような大事なものを一か所にまとめて保管してはいけないのだ。

金庫に保管という方法は古臭くもあるが、金庫を設置する目的は盗難の難易度を上げることにある。金庫には耐火金庫と防盗金庫の二種類がある。防盗金庫はもっとも軽いものでも重量が100Kg程度になる上に、基本的に建物に固定する容易には搬出できない。これと機械警備などの通報システムやWEBカメラを併用すると、盗難を防いだり、不正利用を防ぐには十分に機能する。企業の手続きで毎ナンバーが必要になるのは年に一回源泉徴収票を発行する時と、入退社の時ぐらいでめったに利用しない。下手なITよりは余程効果的。

Microsoft Azureの無料枠を超えてしまったので問い合わせてみた

以前にコンテストの参加賞で貰ったMicrosoft Azureの無料枠の範囲で使うつもりでいたのだが請求が発生していたので問い合わせてみた。

Microsoft Azure Machine Learningで作った機械学習結果を使って、数日連続処理をさせておいたところ3万円強の請求が発生してしまっていた。「使用制限オプション」も有効にしていたのだが、高い負荷で使っていたため、制限がかかる前に突き抜けてしまったのかもしれない。

サポートの問い合わせ画面はわかりにくいところにあるのですが、新しいポータルに移動した後、画面右上のサポートをクリックするとサポート画面に行けます。ここからメッセージを書き込み、問い合わせをします。

問い合わせ後、2~3日待つと「対象の請求期間でご利用いただいていたサービスの使用量が表示されず、明確な使用実績が確認出来ない状況であることを確認いたしました。~」とのことで、全額返金して貰えることになりました。問いああわせてみてよかった。

あらためて使ってみて分かる、Azure Machine Learningのコンピューティングフィーの高さ。実際にどの程度の計算リソースが割り当てられているのかは分かりませんが、大量のデータを常時計算させ続けた場合は、普通に8Coreの仮想マシンを借りるくらいの金額がかかるんですね。

雷雲.ARCHIVEを公開しました

機械学習の習作をかねて作成していた、過去の雷雲発生状況検索サービスを公開しました。まだ日付単位での表示しか出来ませんが、もう2~3検索機能を追加する予定でいます。

私自身が、故障したパソコンを修理するにあたって、何時雷がなっていたか明確にする必要に迫られた事から作成した物です。気象庁のホームページには過去に遡った観測記録がありますが、観測地点の数が1県に数カ所しか無い上に、雷の有無を条件に検索する事ができません。データの基となっている雷ナウキャストも過去1週間程度しか遡る事ができません。落雷証明書を発行している気象会社もありましたがWEBで検索できるのは過去2週間までで、これ以上古い情報は有料となっていました。

これで曖昧な記憶からも、何時に落雷があったのか素早く推測できるようになります。

どの辺りが機械学習?って感じのサービスですが、基となった気象図の座標を、緯度経度にマップするために機械学習を使っています(ニューラルネットワークを使って回帰分析モデルを作る)。使用している座標系の違いや、平面から球面に戻すための幾何学計算はけっこう面倒なものなのです。自分で平面にマップした物を、球面に戻すならなんとかなると思うのですけどね。

構造化データエラー「updatedがありません」への対処。

WordPressでテーマにTwentyElevenを使っているとき、Google Webマスターツールで構造化データエラー「updatedがありません」が発生した場合の対処法。

テーマ→テーマの編集の画面に移動し、テーマのための関数(function.php)を編集して、twentyeleven_posted_onにあるclass=”entry-date”をclass=”entry-date date updated”に書き換えて保存します。

変更前:

function twentyeleven_posted_on() {
    printf( __( '<span class="sep">Posted on </span><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', 'twentyeleven' ),
        esc_url( get_permalink() ),
        esc_attr( get_the_time() ),
        esc_attr( get_the_date( 'c' ) ),
        esc_html( get_the_date() ),
        esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
        esc_attr( sprintf( __( 'View all posts by %s', 'twentyeleven' ), get_the_author() ) ),
        get_the_author()
    );
}

変更後:

function twentyeleven_posted_on() {
    printf( __( '<span class="sep">Posted on </span><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date date updated" datetime="%3$s">%4$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', 'twentyeleven' ),
        esc_url( get_permalink() ),
        esc_attr( get_the_time() ),
        esc_attr( get_the_date( 'c' ) ),
        esc_html( get_the_date() ),
        esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
        esc_attr( sprintf( __( 'View all posts by %s', 'twentyeleven' ), get_the_author() ) ),
        get_the_author()
    );
}

これで徐々に構造化エラーの件数が減っていくので、どうやらうまくいっているようです。

続〃:Brandoo WordPressで¥を入力できない。

以前に「続:Brandoo WordPressで¥を入力できない。」で書いた、/(半角バックスラッシュ)や¥(半角円マーク)を入力していると、更新ボタンを押しても変更内容が保存されない問題について、なんか再発しているorz

下書きとして保存する場合は問題なくバックスラッシュを使えるのだが、公開しようとするとバックスラッシュを含むコンテンツはエラーとなる。ふたたび¥の置き換えで対応している。

いい加減、素直にMySQLに切り替えようか?いや、だがしかし、Microsoftのテクノロジー領域でWordpressを使うことにも意味があるわけで・・・と思っていたらこんなページに切り替わっていた。

これはある意味オープンソースのコミッタになるチャンス到来?でもPHPは詳しくないんだよなぁ。

記憶域プールでトライブルに見舞われたので覚書

記憶域プールでトラブルに見舞われたので覚書。

記憶域プールに接続しているドライブが壊れたので削除を試みる。通常であれば新たなディスクを追加して修復したのちに、壊れたディスクを削除すれば記憶域プールは正常な状態に回復する。ところが今回は削除を試みるとエラーとなって削除できない。壊れたディスクの使用済み容量が0.08%となっており、ディスクの一部が使われたままになっているようだ。

記憶域プールの細かな操作はコントロールパネルからは行うことができないのでPowerShellから操作を行う。

PS C:¥WINDOWS¥system32&> Get-PhysicalDisk

FriendlyName                       SerialNumber         CanPool OperationalStatus HealthStatus Usage            Size
------------                       ------------         ------- ----------------- ------------ -----            ----
...
WDC WD10 EARS-00Y5B1 USB Device    801130168383         False   OK                Healthy      Retired     930.75 GB
...

HealthStatusが正常になっているのが気になるが、UsageはRetiredになっているので、既に使われておらず削除できるはずだ。

念のために記憶域プールの修復を実施してみる。次のようにRepair-VirtualDiskを実行してみるが変化はない。

PS C:¥WINDOWS¥system32> Get-VirtualDisk

FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach   Size
------------ --------------------- ----------------- ------------ --------------   ----
Mirror       Mirror                Degraded          Warning      False            3 TB

PS C:¥WINDOWS¥system32> Repair-VirtualDisk -FriendlyName Mirror

修復は正常に終わっているにもかかわらず「回復性の低下」の警告が表示されたままになっている。

PowerShell側から物理ディスクの削除を試みることにする。

PS C:¥WINDOWS¥system32> $PDToRemove = Get-PhysicalDisk -Friendlyname "WDC WD10 EARS-00Y5B1 USB Device"
PS C:¥WINDOWS¥system32> Remove-PhysicalDisk -PhysicalDisks $PDToRemove -StoragePoolFriendlyName “記憶域プール”

確認
この操作を実行しますか?
Removing a physical disk will cause problems with the fault tolerance capabilities of the following storage pool:
"記憶域プール".
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):
Remove-PhysicalDisk : One of the physical disks specified could not be removed because it is still in use.
Activity ID: {8087f98d-bc35-422c-95d2-cfb5777b1637}
発生場所 行:1 文字:1
+ Remove-PhysicalDisk -PhysicalDisks $PDToRemove -StoragePoolFriendlyNa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (StorageWMI:ROOT/Microsoft/..._StorageCmdlets) [Remove-PhysicalDisk], CimE
   xception
    + FullyQualifiedErrorId : StorageWMI 51004,Remove-PhysicalDisk

“One of the physical disks specified could not be removed because it is still in use.”・・・使用中のために削除できないとのエラーになってしまう。Retiredになっているのに・・・

困ったことにこの時点で記憶域プールのファイルを見ることができなくなっていることに気が付く。ドライブレターは表示されているが、ドライブを開こうとすると長時間待たされた後にエラーとなる。管理者権限でコマンドプロンプトを開きchkdskを実行すると、4KBの不良セクターが検出され、エラーが修復されてドライブを開ける状態には回復した。壊れたディスクに残された0.05%がこのエラーの原因なのだろう。

新たに記憶域を作成し、既存の記憶域を削除するという方針を定める。現在はMirrorになっている記憶域もParityに変更したかったので、よい機会だと割り切ることにした。

PS C:¥WINDOWS¥system32> Get-VirtualDisk

FriendlyName ResiliencySettingName OperationalStatus HealthStatus IsManualAttach   Size
------------ --------------------- ----------------- ------------ --------------   ----
RAID5        Parity                OK                Healthy      False          2.5 TB
Mirror       Mirror                Degraded          Warning      False            3 TB

とりあえずアクセスできる状態にあるMirrorのドライブから、RAID5のドライブにファイルをコピーしていく。壊れたHDDのアクセスランプが時折点滅しており、まだ一部が使われている事を実感する。

Mirror側のデータを全てRAID5側に移動して、Mirrorを削除。その後、コントロールパネルの記憶域から故障したHDDの削除を実施すると、無事に削除された。

もうちょっと強力なエラーリカバリツール提供するか、せめて現状がどうなっているのか類推できるようなエラーメッセージが欲しいよね。今回なら「修復不可能な論理エラーが発生しています。データをバックアップして、記憶域ドライブを削除した後、再作成して下さい。」とか表示してくれると有難い。