TPO

先日、テレビをつけると八甲田山遭難のドキュメンタリー番組を放送していた。
全く興味が無かったのだが、つい最後まで見てしまった。
とてもわかりやすかったからである。
その理由は、ゲリラ豪雪、パウダースノー、ホワイトアウトなどなじみのある「単語」で説明されていたからだ。

八甲田山遭難は今から120年近く前の古い話である。
当然、使われている単語も古めかしくわかりにくいものだ。
それらを、この番組ではすべてわかりやすく置き換えていた。
たとえば
「局地的豪雪に見舞われたうえ、粉雪だったため脚が埋まってしまった。その後猛吹雪で目的地が見えなくなった」

「ゲリラ豪雪に見舞わたうえ、パウダースノーだったため脚が埋まってしまった。その後ホワイトアウトで目的地が見えなくなった」
といった具合だ。

馴染みある、カタカナ交じりの単語でぐっと理解しやすくなっていた。

ただ、カタカナ用語がわかりやすいとは限らない。

昨今頻繁に耳にする、オーバーシュートやロックダウン。挙句の果てにはステイホーム。これらはすべてわかりにくい。
素直に、感染爆発・都市封鎖・外出自粛、と言ってもらいたい。防衛大臣のご指摘はもっともである。

使う単語はTPOをわきまえて…といいたいところだがTPOも最近あまり使われない。馴染まないひとも多いかも。そもそも何の略だったか?

仕組みが原因

先日、報道番組でバーテンが
「アルコールが無くて困っている」
と言っていた。
後ろの棚に沢山あるではないか、と思ったが、どうやら消毒用アルコールのことらしい。

確かに、スーパーに行ってみると消毒用アルコールの棚は空っぽ。
一方、酒売り場は商品が所狭しと並んでいる。
酒だけではない。
トイレットペーパーは無いのに、文房具売り場のコピー用紙は潤沢だ。
同じ原料でありながら、最終商品によってあるものと無いものがある。

そこで疑問である。
マスクはどうなのだろう。
マスクの原料は「不織布」である。主にフィルターなどに使われるそうだ。
エアコンのフィルターもさぞ不足していることだろうと思い、エアコン会社の知人に聞いてみると
「いや。全く問題ないですよ」
とのことだった。

首相ですら布マスクしか配れないこの状況にも関わらず、原料は問題なし。
マスク不足も、消毒アルコールやトイレットペーパーと同じ現象だった。

このことからわかるのは、不足の原因は
「資源」があるかないか、
ではなく、
「仕組み」があるかないか、
ということである

世界が鎖国化に向っているような気がする昨今。
せめて、現状の資源を有効活用できる「仕組み」のある国であってほしいものだ。

標準偏差とはなんぞや

ビッグデータやらアクセス解析やら。昨今は統計学が重要になりつつあるようだ。
一発奮起して学ぼうとしても、入門書の冒頭12ページあたりでつまづくこととなる。そう「分散」「標準偏差」で挫折してしまうのだ。この最初のハードルを自分なりの言葉で解説してみたいと思う。
さて。標準偏差とは…「バラつきの平均」のようなもの、である。うん。大雑把過ぎる。事例で説明してみよう。

[事例]:目黒店と渋谷店のどちらの店長になりたいか?
あなたはあるコンビニエンスストアを展開する企業の社員である。ある日、直営店の店長勤務を命じられた。店長職の空きは2つあり、ひとつは目黒店、もうひとつは渋谷店である。両店とも売上規模は同じ。どちらを選んでも良いとのことだ。さてどちらの店にしようか?

[前提]
・なるべく楽な店で働きたい

では、どのような店が楽なのだろうか?売上規模が同じなら、日々の売上にバラつきが無い方が仕入も予測しやすく楽そうに思える。

・売上にバラつきが無い方の店を選ぼう

[表で調べる]
半月分のデータを入手したので見比べてみる。
hyou_uriage
確かに売上の合計は同じ750万円、1日の平均売上は50万円とどちらも同じである。ただ数値だけでは「バラつき」具合はわかりづらい。

[グラフで調べる]
そこで数値をグラフ化してみる。

hensa_graph
これを見ると、どちらの店も平均の50万円付近を中心に上下にデコボコしている。
ただそのバラつき具合は目黒店の方が幾分少ないように見える。

[数値化を試みる]
実際にどの程度バラつきの差があるのだろうか?

グラフでははっきりとした差がわかりにくい。数値で表現できないか?
そのために用いるのが「偏差」であり「分散」であり「標準偏差」である。

[偏差:各日の売上は平均からどれくらいかけ離れているか]
偏差とは平均との差である。その日の売上が平均からどのくらかけ離れているか、を表す。
hyou_hennsa

1日の目黒店の売上は49万円で平均50万円、-1万円が偏差となる。

渋谷店の4日の10万円や15日の-10万円はずいぶんと平均からかけ離れている。
やはり渋谷店の売上のバラつきが大きいことがわかる。

各日のバラつきはわかった。でも半月全体のバラつきはどのくらいなのだろうか?


[分散:半月全体では平均からどれくらいかけ離れているか(準備段階)]

半月全体のバラつき、とは偏差の平均である。

それを算出したいのであれば、偏差を合計してデータ数で割れば良い…のだが、各偏差はプラスとマイナスが混在している。そのため合計すると相殺されてしまうのだ(実際合計すると0になってしまう)。

そこで全てを正の数にするため、

1.偏差を自乗する

そして

2.「偏差の自乗」を合計する
3.「偏差の自乗」の合計をデータ数で割って平均を算出する

これが分散である。

hyou_hyoujunnhensa

目黒店では9.3万円、渋谷店では45.2万円となっている

全体で、どのくらいのバラつきがあるかの目安となるが、「偏差の自乗」を元に算出しているため、数値がかなり大きい(そこで標準偏差を用いることになる)。

[半月全体では平均からどれくらいかけ離れているか(完成段階)]
上記「分散」は『「自乗したものの合計」の平均』なので値が大きくなりすぎている。そこで、平方根にして「差の平均」を算出する。

目黒店:√9.3万円=3.06万円
渋谷店:√45.2万円=6.72万円

目黒店は渋谷店の約半分のバラつきである。

結果あなたはめでたく目黒店の店長就任となった
一日の売上は大体47万円~53万円程度の幅に収まりそうである。
これなら在庫管理も幾分予測しやすそうだ。快適な日々を過ごしていただきたい。

さて。長々と述べてきたが、なにぶん高校時代は数学劣等生だった私だ。思い違いもあるし数学的に正しくない言い回しもあると思うがご容赦いただきたい。私と同レベルの方の理解の手助けになれば幸いである。

ハードディスクを破壊する

2014年も今日でおしまい。
大掃除の仕上げにハードディスクを分解処分した。作業手順を覚書しておく。

ポイントは3つ。
・専用ドライバーを用意する
・隠しネジあり
・ディスクが割れることがあるので注意

それでは作業開始。今回の対象は、IOデータ製のUSB接続ハードディスクである。

まず筐体やコンセントを取り除く


hd_torinozoki

 

 

外側についているネジを通常のドライバーではずし、筐体や電源からハードディスク本体を取り出す。

専用ドライバーでハードディスクを分解する


hd_driver

ここからが専用ドライバーの出番だ。星形ネジを全てはずす。

 

隠しネジを探す
見えるネジを全てはずしたのに筐体はまだ開かない。隠しネジがあるのだ。ドライバーでシールの上をなぞってみると、へこむ所がある。

どうやらここが隠しネジの場所のようだ。
シールを裂いてみる。あたり。隠しネジがむき出しになった。

hd_kakushi

ケースの蓋をあける

 

hd_huta_ake

 

ディスク盤がみえる。
右下のパーツはかなり悩んだ箇所。
hd_jishaku_kakudai

実はこれは磁石なのだ。なんと磁力だけでくっついている。かなり強力だ。マイナスドライバーをテコにし、力を入れてはずす(怪我に注意)。

ヘッドを外す
hd_head
方法がよくわからなかったのだが、いつの間にかとれてしまった…。

ディスク群を止めているネジを全てはずす
hd_disks

盤を一枚づつ取り出すことができる。
hd_toridashi_disk

 

ディスク盤を破壊する

取り出したディスク盤はドライバーなどで傷だらけにする。さらに折り曲げて廃棄しようとしたら…アクシデント発生。ディスク盤が割れたのだ。

hd_disk_ware
ディスク盤は金属だと思い込んでいたが、ガラス製のものもある。

破片は周辺に飛び散り、いくつか顔にも当たった。幸いゴーグルをしていたので目には入らなかったが、危険である。折り曲げる前にドライバーで傷がつくか確認すること(つかなければガラスの可能性大)、作業するときはゴーグルをつけること、をお勧めする。
hd_gogle

戦利品
hd_senrihin
さきほどの強力磁石。今回の戦利品だ。
キッチン周りで役に立つ。我が家では電子レンジの締りが悪くなったため、この磁石で止めている。強すぎるので冷蔵庫には付けないほうがよい(傷付けてしまうことがある)。

This is this

thisisthis

ActionScript2でのお仕事をいただいたときに頭が痛かったのは
・型が無い(あるんだけどデバッグに有効ではない)
・thisがわかりづらい
の2点であった。いまjavaScriptでの制作が多くなり同じような思いを抱いている(そんな方も多いのではないか?)。
特にクラス(もどき)を作成し、その中のメソッド起動時のthis参照は少々面倒である。
そこでtypeScriptである。はたして救世主となるのであろうか?
今回はアロー関数式を用いた場合のthisの挙動を検証+覚書しておく。

以下ボタンを3つ設定
1.通常

2.proxyを用いたもの
(なおproxy関数については野中文雄先生の解説を参考にさせていただいた
野中先生は講義・書籍共わかりやすいので大変オススメである)

3.アロー関数式を用いたもの
クリック時に参照しているthisと自身のクラス名を表示させる
検証URLはこちら

//クリック時は以下のイベントを起動する
private onClickd(event: Event): void {
alert(["this=", this, "myClass=", this.myClass]);
}

//通常
//結果:button自体がthisとして認識されている。クラスは認識出来ない
this.myBtn.addEventListener(‘click’, this.onClickd);

//proxyを用いた場合(proxyにてonClickedから新たな関数を生成)
//結果:classがthisとして認識されている
function proxy(method, scope) {
var aArgs = Array.prototype.slice.call(arguments, 2);
var myFunction = function () {
aArgs.push(myFunction);
return method.apply(scope, Array.prototype.slice.call(arguments, 0).concat(aArgs));
}
return myFunction;
}
var proxyedOnClicked = proxy(this.onClickd, this);
this.myBtn.addEventListener(‘click’, proxyedOnClicked);

//アロー関数式
//結果:classがthisとして認識されている
this.myBtn.addEventListener(‘click’, this.onClickd);
private onClickd=(event: Event): void=> {
alert(["this=", this , "myClass=" , this.myClass]);
}

自動で変数「_this」を生成し、想定通りの動きをしてくれている。使いやすそう。