久しぶりにBlog(WordPress)の広告系設定を見直してみた

いろいろと忙しかったのでその手の設定を放置していたのですよ…。ちょうどGoogleの広告に関する状態を見に行ったときにいろいろと警告も出ていたのでいくつか修正してみることにしました。

 

AMPを導入

この場合のAMPはAccelerated Mobile Pagesの方です。モバイル系でアクセスされたときに速度を向上させるための技術ですね。出た当初はWordPressへ導入するのがかなり大変だったことと、とりあえずWPTouchでモバイルページ側をどうにかしていたので放置しておいたのですが、今回プラグインの導入とともにWPTouchを破棄することにしてみました。メニューとかがなくなって見づらくなっていると思いますが、モバイル版の方は後でテーマを変更して調整する予定です。プラグインは一応2種類あるようですが、公式に近いと思われる方を導入しています。もう片方の方は有料モードがあるのでちょっと怪しいということで今回は使いません。

 

Google広告のプラグインも変更

AMPを導入することで問題になるのが広告ユニットの問題。AMPではJavaScriptが使えない影響でそのままでは広告ユニットが表示できない、という問題があります。…まあ、なんとなくですがここ数年はWPTouch側でも広告を出す処理を設定にしていないような気がしているのでそれはそれでいいのかもしれませんが…。とりあえずAMP対応かつ有料にならないものを探す、ということで今回はAd Inserterを導入してみました。解説ページなどから設定をしてとりあえず動く状態には持って行っています。ヘッダ部への設定およびAMPのページでのみ動作する広告と通常ページで動作する広告を混ぜるのがちょっと大変でした。また特に設定箇所を表示する機能が地味に使えるのがうれしいところで、挿入箇所が予定していたポイントでなかったときにデバッグ的に使うことができました。なお、設定を少し代えてトップページの広告だけ第一記事と第二記事に表示するように設定しています。

 

そのほか詳しいことは別のサイトに譲ります

今回は説明サイトに従って設定してみたただの記録なのでこれで終わりです。WordPressでAMPを導入してかつGoogleなどの広告を表示させるのであればWordPressのプラグインであるAMPとAd Inserterの組み合わせがそれなりにいいのでは?という個人的感想を書いて終わりにします。

 

MEGA BIG1等が1210回に誕生したのでちょっとした数字で振り返る

いろいろとネタにはしてきましたけれども・・・。1週間前のネタですみません。MEGA BIG1等が誕生しましたね。自分でなかったことを残念に思いながらちょっとした数字を見てみたいと思います。ちなみに、行われた回数や口数が圧倒的に少ないですので統計的な収束は全くしていません。それを前提でとりあえずこんな数字、という話です。

 

初の1等が出るまでに購入された口数は・・・約5700万口

正確には56566610口になります。MEGA BIGは4^12=16777216通りありますので、割り算すると3.371…となります。この数字にあまり意味はありませんが、なんとなく求めてみたかった数であります。いわゆる「もし1回で購入されたとき、何口が当選になるのか?の目安」くらいの意味です。ちなみに口数や回数が多くなる(収束する)と1になりますし、宝くじも未購入等で銀行に戻る分がないと仮定すると1になります。このあたりは「コンピュータがランダムに数字を選ぶ」特性が表れている可能性はありそうですが…。その他のBIG系くじと比較していませんのでなんともいえませんね。

 

初の1等が出るまでに行われた回数は・・・37回

今年はコロナ禍の影響で試合が中止になったり一週間のうちに2回くじの機会があったりと…ちょっと変わったスケジュールが組まれましたからね。特に一週間に2回の機会があると期間が短くなる関係で1回あたりの購入される口数が減ってしまうので確率的に厳しくなるのですよね…。試合の中止は確率を押しあげる効果はあるのですが、それでも期間内だと(対象の12試合外で中止になったこともあったので)2回しかなかった、ということになるようです。

 

当たりが出ることは証明できたのでこれで購入口数が増えるのか?

新聞や報道関係でも出ましたからね…。ただ、「今年早い時期に始まったはずのくじが年末まで当たりが出ていなかった」という事態から考えると個人的にはちょっと厳しい可能性は高そうです。とりあえず定期的にちょこっとだけ買って…という考え方が正しそうな気はします。このblogの宝くじ系の記事でも書いていますが、「億円をとれるという条件で確率で見てましな日本の宝くじは100円BIGである」というところは変わりませんのでそれをどう考えるか、ですか。

 

8月に構築した48TBファイルサーバのHDDが一つやられたので交換してみる

まさか構築して1年以内にHDDがやられるとは思いませんでした。しかもエラーが現れたのはZFSのscrub処理によってで、しかもSMARTの報告で確定するくらいのもの。はじめは「とりあえず再チェックかければなんとかなるかな…?」と思っていましたが…

 

HDD1台が不良セクタを大量に出す事態に

まず問題になったのはzpoolのstatusから。たま~にコマンド経由で何か問題がないかチェックをかけていますが、そのとき出てきた状態。ちなみにstatusなどのメッセージはちょっと控えていないので状態だけ。とりあえずこんな状態でした。

$ sudo zpool status
…
    NAME             STATE     READ WRITE CKSUM
    tank             DEGRADED     0     0     0
      raidz2-0       DEGRADED     0     0     0
        zfs1         ONLINE       0     0     0
        zfs2         ONLINE       0     0     0
        zfs3         DEGRADED     0     0   170  too many errors
        zfs4         ONLINE       0     0     0
        zfs5         ONLINE       0     0     0
        zfs6         ONLINE       0     0     0
        zfs7         ONLINE       0     0     0
        zfs8         ONLINE       0     0     0
…

zfs3だけ 大量のCheckSumエラーを出している状態です。不思議に思い一度zpool clearによりエラーを一度クリアして再度scrubによりチェックサムを確認させると同じような状態になったので「こりゃまずいのでは?」と思い、smartmontoolsを入れて問題のドライブの状態を見てみると…

$ sudo smartctl -a /dev/sde
…
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       65
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       936
  7 Seek_Error_Rate         0x000f   075   060   045    Pre-fail  Always       -       33243485
…

はい、明らかな 不良セクタの発生でした。冒頭にも書きましたが(HDDを10台同時とはいえ)稼働させて1年もたたずに1台目がやられてしまうとはびっくりです。とりあえずびっくりもしてられないので回復作業に取りかかります。念のために1台だけ予備のドライブがあるのでそれを取り付けます。

 

ZFSからRAIDZ系の回復作業を行う

ZFSでRAIDZ系を使っているときは対象のパーティションはDEGRADED状態ですがアクセスは可能ですので慌てなくても大丈夫です。後は取り外せる状態にして物理的に電源を落として交換orホットスワップによる交換を行い、再構築を行わせるだけです。まずは取り外す準備として壊れてしまったドライブを無効にする処理を行います。コマンドはzpool offlineです。

$ sudo zpool offline tank zfs3
$ sudo zpool status
…
    NAME             STATE     READ WRITE CKSUM
    tank             DEGRADED     0     0     0
      raidz2-0       DEGRADED     0     0     0
        zfs1         ONLINE       0     0     0
        zfs2         ONLINE       0     0     0
        zfs3         OFFLINE      0     0   170  too many errors
        zfs4         ONLINE       0     0     0
        zfs5         ONLINE       0     0     0
        zfs6         ONLINE       0     0     0
        zfs7         ONLINE       0     0     0
        zfs8         ONLINE       0     0     0
…

上のようにすると取り外しの準備ができます。対象のドライブがOFFLINEになっていますね。これを行った後で当該のドライブを取り外し、予備のドライブと交換します。面倒だったのはどれが/dev/sdeにあたるか、という問題。構築時にも書きましたがSATA3I10-PCIEの特性で端子(物理ドライブ)の順番と認識されているドライブの順番が一致していないので順番を間違えないように交換する必要があります。確認してみると今回対象になっていたのは物理的に一番下に来ていたドライブでした。

あとは交換してパーティションを組み直して終わりです。ドライブが交換されただけなので認識順番が変わらないことを使うとそのまま/dev/sdeになるため、

$ sudo parted /dev/sde
 - mklabel gpt
 - mkpart zfs3 zfs 2048s -1s

でzfs3の領域が元に戻り、ZFSに再構築を行わせれば完了です。

 $ sudo zpool replace tank zfs3

さすがに8TBもあるとかなり時間がかかるようですので気長に待ちましょう。RAIDZ2のよいところは2台故障まで耐えられるので1台の修復中であればそこまで怖がる必要がないことですね。完了したらTwitterにでもつぶやいておきます。

 

壊れたドライブはどうしようか…

最後はこれ。1年もたたず(というか半年すらたっていない)ので保証とか効かないかな…とは考えています。さすがにさらに予備を買っておくのはどうかと思いますので、なんとかしたいところですね。

micro:bitのプログラミングがある場所では動作しなくなる?

ちょっとmicro:bitのプログラミングに関していろいろとやってみる機会があったので使っていたのですが、その中で気が付いたこと。ほかのサイトでも書かれていますが、こちらでもちょっと触れてみたいと思います。この件は一部の環境の人にはとんでもなく刺さる問題になっています。

 

micro:bitの主要なプログラミングツール

皆さんが使うのは大体このあたり、ということで示しておきます。

Microsoft MakeCode for micro:bit (https://makecode.microbit.org/)

インターネット環境とブラウザでプログラミングできる環境として有名です。使おうと思えばAndroidでもiOS系でも使用可能です。その場合は作成したhexファイルをどうやって転送するのか、を考える必要があります。ちなみに2020年6月にバージョンアップしてv3になっています。そのため、いくつかのブロック(Scratch)が追加されていたり、対応言語が増えているなどかなりの恩恵があります。対応している言語は「Scratch」「JavaScript」「Python」です。Pythonの場合はパッケージ指定がいらないので作成にはもってこいかもしれません。しかしながら、このバージョンアップがある悲劇をもたらしています。それは後ほど。

Micro:bit offline App – MakeCode (https://makecode.microbit.org/offline-app)

こちらはインターネット環境およびブラウザが利用できない場合に利用可能な方法です。Windows10とMacOS対応です。インストールが必要なのが欠点ですが、v3ベースの開発環境が使えるので実験する量が多い人はこちらをインストールしてしまうのもありかもしれません。Windows10の場合はストアアプリから同様のものを手に入れることが可能です。言語はオンラインv3版と同様。

Python Editor for micro:bit (https://python.microbit.org/)

Pythonを使う、と決めているならこちらを使ってみるのもよいかもしれません。こちらの場合はMicroPythonで動かすことを前提にプログラムを組むのでMakeCode版とは微妙に作り方が違うことに注意が必要です。ファイル転送に関してもpyファイルおよびデータファイルを指定すればhexファイルにくっつけた形で転送可能です。プログラムのサイズに限界があるmicro:bitにとってはデータファイルが使えるのでうまく組めばMakeCode版に比べて規模を大きくすることが可能です。

Muエディタ (https://codewith.mu/)

Pythonのエディタです。こちらに付属するmicro:bitの転送ツールを使うとpyファイルおよびデータファイルを転送することができます。こちらもMicroPythonベースですので気を付けましょう。

Androidアプリ or iOSアプリ

スマートフォンしか手元にない場合はこれらのアプリを使って作成&転送ができます。転送方法はBluetoothで、micro:bit側を特殊な待機状態にしてペアリングし、プログラムデータを転送します。失敗するとPCからhexファイルの送り直しになるという救援が必要ですが、ちょっとした実験やPCが台数分確保しづらい学校環境などではこれをインストールしてもらって実行する、というのもありかもしれません。

 

MakeCodeのブラウザでIEのサポートが外れたため大変なことに

v3へとバージョンアップしたときにInternetExplorerのサポートが打ち切られました。これ自身はまあかなり古いブラウザので仕方がないのかもしれませんが、ちょっと問題になっているらしいのが「学校で使用できるブラウザとしてInternetExplorerが強制されていることが多く、サポートがなくなって使えなくなってしまう」というものです。学校の環境では自由にインターネットをさせるとまずい場面があるため、それの制限が必要なのですが、IEを使用させてEdgeを使用不可にしている、というパターンが多いようです。このため、プログラミング演習がちょっと厄介なことになっています。

 

回避策は…

学校環境を前提にしていくつかありますが、どれも微妙です。

・MakeCodeのv2版を使う

一応過去版が使用可能です。過去版はv2版でURLに直接「/v2/」を入れる必要がある、つまりhttps://makecode.microbit.org/v2/への直接リンクが必要で、入力作業がかなり面倒だったりします。まあ、ショートカットを使ってごまかすことはできそうですが…ほかにもv3版で追加されたブロックやPythonが使えないこと。さらに根本の問題としてMakeCodeのv2版の期限が2022年まで、ということであと2年後にはIEの制限が解けない限りは同じ問題が起こることになることです。管理ソフトを作っている人たち、この問題は早めに解決しておかないとそもそもIEで正常にアクセスができないサイトがだいぶできていて問題ですよ、と言いたい。G Suite関係もサポート外になりそうですし。

・オフライン版のインストール

PCへのインストールが可能ならばこれで避けることは可能です。しかもv3版になりますのある程度新しい部分まで使うことができます。問題点は「インストールが可能ならば」のポイントで、環境を変えてしまう等の理由で認められない場合には使うことができません。無念…。

・Android版やiOS版のアプリを導入したタブレットで行う

特にコード入力ではなくScratchによるプログラミングを行うことが前提となる小学生レベルならばこのほうが逆に簡単かもしれません。問題は必要となる台数を確保できるか、というところ。まあ、このコロナ禍の影響でコンピュータなどの導入計画が早まっていますのでアプリが導入できるならこちらもありかもしれません。相変わらず導入制限があるとうまくいきませんが。

ちなみに、実機転送を行わずにシミュレータのみで動作を見る場合はタブレットからMakeCodeにアクセスさせる、という手段をとることができます。タブレットの場合はブラウザがChromeかSafariになるはずですのでMakeCodeの制限は越えられると思います。

・ポータブル版のブラウザを授業毎に導入して終了後無効にする

ちなみにたいていの学校のPCはちゃんと環境復元ソフトがある(もしくは学習環境管理ソフト内に同等の機能があるはず)なので、先に起動させておいてブラウザだけ入れておく、終われば即シャットダウン、という形でごまかすことが可能な環境はあると思います。もちろん、これはPC管理のポリシー違反になる可能性が高いのでかなり危ない回避方法だといえるかもしれません。私も考えはしましたが多分使わないでしょうね…。

 

今年の回避策はv2版になるのかな…

まあ、たいていの学校は演習でmicro:bitを使う場合はこれになるのでしょうね。よほど込み入った演習をやる予定か、プログラミング演習でコードを用いる演習をしたくて、かつそのコードにPythonを選ぶ、という場合でもない限りは、ですが。一応JavaScriptもあるので、Pythonをやらなければならない理由がないのであればそちらで頑張ってみてください、ということになるでしょうかね。

 

MEGA BIG1等が出るまで対象回の当選確率表を更新していく

ちょっと楽しくなってきたのでMEGA BIGの1等当選確率の推移(当選者が出ない確率など)をどんどん更新していってみたいと思います。今回から各回における1等当選確率も同時に表示するようにしています。まあ、グラフにするようなものでもないので表の形で出したいと思います。(12/01 更新)

回数 口数 不成立試合数 1等が出ない確率 (1等が出る確率)
1154 1,817,907 0 89.16% 10.84%
1158 964,243 0 94.25% 5.75%
1164 681,109 0 95.94% 4.06%
1165 738,106 0 95.60% 4.40%
1166 766,803 0 95.43% 4.57%
1167 979,506 0 94.16% 5.84%
1168 929,445 0 94.46% 5.54%
1169 1,288,401 0 92.32% 7.68%
1170 1,301,594 0 92.24% 7.76%
1172 1,277,528 0 92.39% 7.61%
1174 1,364,647 1 67.46% 32.54%
1175 943,168 0 94.38% 5.62%
1176 1,228,281 0 92.68% 7.32%
1178 1,514,454 0 90.97% 9.03%
1180 1,460,009 1 65.19% 34.81%
1181 962,565 0 94.26% 5.74%
1182 1,149,320 0 93.15% 6.85%
1183 2,402,965 0 85.68% 14.32%
1185 2,531,145 0 84.91% 15.09%
1187 2,508,561 0 85.05% 14.95%
1187 2,508,561 0 85.05% 14.95%
1189 2,139,020 0 88.03% 11.97%
1191 1,994,678 0 88.79% 11.21%
1192 1,255,264 0 92.79% 7.21%
1193 1,569,095 0 91.07% 8.93%
1195 1,925,928 0 89.15% 10.85%
1196 1,289,770 0 92.60% 7.40%
1197 1,426,875 0 91.85% 8.15%
1199 1,819,687 0 89.72% 10.28%
1200 2,062,545 0 88.43% 11.57%
1202 2,242,597 0 87.49% 12.51%
1203 1,152,172 0 93.36% 6.64%
1204 1,458,163 0 91.68% 8.32%
1206 2,094,547 0 88.26% 11.74%
1207 1,244,458 0 92.85% 7.15%
1208 1,502,001 0 91.44% 8.56%

なお、次の回に1等が出ない確率に今までの出ない確率などは一切関係しません。これはくじの結果はそれぞれの回での独立試行と考えられるためです。なので、口数の変化はそこまでないでしょうから、次回も1等が出る確率は良くても20%位になるのでは?と推察されます。ちなみに確率論で間違えないで欲しいことは当選者が出ない状態が積み重なったからと言って次回当選者が出やすくなるわけではない、ということ。まあ、キャリーオーバーと確率を考えると次回当選者が出ればほぼ確実に12億円だということくらいですし、完全に確率論だけでこの手の当選状態が支配できるようなものでない可能性もごく微少にはある可能性もない訳ではない…のか?

ちなみに、宝くじの場合は各ユニットで一通りの番号が用意されているので1ユニットすべてが完売しているならば1等は100%出現します。これは乱数による番号作成をしているくじだと全通りと同じ口数購入されていたとしても1等が出る確率は1-(1/e)=約63.2%となるBIG系とは大違いな点ですね。買っている側から見れば余り変わらないのですが…。

参考までにMEGA BIGが今までに1回も1等当選者が出ない確率は計算すると12/01時点で約1.856%となります。とうとう2%を切ってしまいました。確率的(+賞金的)には全然及ばないのですが、この調子で当たらない状態が続いていくとなるとアメリカの宝くじであるパワーボールを連想してしまいます。もう一つ考えてしまうことはコンピュータランダムを使うことによる「現れないパターン」というのがあるのでは?ということ。できれば自分がいいですが、とりあえず早く当たりを見てみたいという今日この頃です。