TPO

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

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

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

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

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

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

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

仕組みが原因

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

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

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

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

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

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

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

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」を生成し、想定通りの動きをしてくれている。使いやすそう。

 

ライブラリ無しで

javaScriptで描画表現を行うとき、昨今はcreatejsに頼りっきりである。
Flashのような表示リスト、階層構造はとても使いやすい。
ただこれだけの機能、どの程度負荷がかかっているのであろうか?以前から気になっていたので簡単なサンプルで試してみた。

サンプルには、本ウェブサイトのaboutusページに使っているパーティクルの移動モーションを使う。

particle
1.createjs:Shapeを継承したParticleクラスを作成。Shapeの描画機能及びStage表示はcreatejsに頼る

http://nouv.biz/labo/20141209_createjs/nodeGarden_with_cs.html

2.ライブラリ無し:オリジナルクラスParticleクラスを作成。Particleクラスにcanvasを渡し、それぞれ描画
http://nouv.biz/labo/20141209_createjs/nodeGarden_2.html

結果(当然だけれど)圧倒的にcreatejsは重かった。
それはそうだ。今回のパーティクル(ただの円)であればcreatejsのShapeの豊富な機能は必要ないし、階層も考慮する必要は殆ど無い。いちいちcanvasを意識するのが面倒だけれど。

結局、ちょっとした演出程度に用いるのであれば「ライブラリを使わない」という選択肢もある、という結論でした。