情報化社会の情報操作

情報化社会なんて、今となっては、当たり前。

個人所有のスマホから、簡単にネットに接続出来る時代。

そういう時代だからこそ、情報操作も簡単になってきている気がする。

普段、何気なく使っている検索でも、

google様のご機嫌次第で、検索上位の内容は入れ替わる。

なんの疑いもなく、検索結果を受け入れている訳だけど、

暗黙の前提として、検索結果が、意図的・恣意的でなく、公平・公正な物である、

といった、思い込みのような物がある気がする。

勿論、google様を攻撃するような意図で書いている訳ではなく、

今のネット社会では、どこでも起こり得る事、という話である。

冷静にネット上の情報を吟味してみれば、玉石混交である。

中には、とんでもないデマ情報や悪意を含む情報などが山ほどある。

結局、自分の目で、しっかりと見極める必要がある。

時代と共に、媒体が変わろうが、その点が変わる事はないように思う。

アルゴリズムとデータ構造

とても有名な書籍のタイトルでもあるのだけれど、

長年、曲りなりにプログラミングに関わっていると、

結局、皆、ここに至るような気がしてきた。

扱う言語やフレームワークが変わっていっても、

根本となる部分は、それほど変わらない。

物によっては、毎回、同じような事を繰り返している事もある。

大事なのは、やはり、やりたい事を実現する手順とその為のデータの持ち方...

これに尽きるように思う。

thisの束縛

JavaScriptの関数内で使えるthisですが、基本的には、その関数を呼び出したobjectが返ります。
つまり、同じ関数であっても、呼び出す箇所によって、thisがコロコロ変わる可能性がある訳ですね。
例えば、他のオブジェクト指向言語における、メソッド呼び出しの際のthisなりselfなりでは、
自分が所属するクラスなりインスタンスとなる。
場合によっては、それと同じように、thisを固定したい時もあったりする。
最近、この実現方法で、しばらく煮詰まっていたのだけれど、
さすが変態言語であるところのJavaScriptである。(笑)
ちゃんと、そういう手段が用意されていた。
「bindを使え!!」
任意の関数funcのbind関数にthisとして与えたいobjectを指定すればOK。
var newFunc = func.bind(object);
これで、newFuncを呼び出せば、期待した動きとなる。

今更 JavaScript

久々に通いの勤め人となり、ここ数週間、JavaScript浸りである。
はるか昔に自分が使っていたJavaScriptとは、随分と様変わりしていた。
正直、恐ろしいくらいに...
実行速度もやれる事も規模も全く比べ物にならない。
この世界は、本当に、変化のスピードが速い。


様々なライブラリやフレームワークが提案され、
様々な使い方が模索されているが、
頻繁な機能拡張や仕様変更、何層にも重なるモジュール群とその関連性で、
複雑さや難解さは加速度的に増すばかりである。
これらをブラックボックスと割り切って使っている間はまだしも、
ちょっとでも道を踏み外そうものなら、
あっと言う間に奈落の底へ突き落とされたような気分になれる。苦笑


結局「シンプル・イズ・ベスト」ではないけれども、
必要な物を必要な分だけ取り入れる方が、
見通しも良くメンテナンス性も維持し易いような気がしてくる...
「過ぎたるは及ばざるが如し」の格言通り、
何でもかんでも突っ込んでしまうのではなく、
むしろ不要な物を削っていくような発想も必要なんじゃないかと、
漠然とだけど、そんな事を感じる、今日この頃である。

レガシーな理由(BIOS)

元祖「IBM PC」が発売されたのが、1981年。
所謂「互換機」の祖である「PC/AT」が発売されたのが、1984年。
それから30年近い年月を経てきた訳だ。


この間、PCの性能は驚異的に高まり、
周辺機器なども淘汰が繰り返され、
中身は全く別物と言っても良いくらい変化してきた。


ところが、BIOS に関しては、この30年間、
細かい改良は継続されつつも、
根幹を成す部分について、大きな変化はない。


極端な言い方をしてしまえば、現在の BIOS は、
ブートメディアの先頭1クラスタ(512Byte)分をロードする為だけにある。
後は、ロードしたプログラムに制御を移し、
基本的には、ここで、お役御免となるのである。
*但し、ロードされた IPL や OS から BIOS サービスを利用したり、
 ハードレベルの(電源管理等における)状態遷移処理などで、
 ちょこちょこ引っ張り出されたりはする。


ブートメディアも時代により主役が入れ替わり、
当初はフロッピーディスクが主流だった物が、
ハードディスクになりCD−ROMになり、
現在ではUSBメモリ等からのブートも可能になっている。
勿論ブートメディアとして利用する為には、
BIOSが対象メディアを認識・制御出来なければならない。
逆に言えば、BIOSが認識出来ないメディアからのブートは不可という事になる。
たかだか先頭1クラスタをロードするだけの処理ではあるが、
これが実行されなければ後に続くOS本体のロードもままならない訳で、
非常に重要な機能である事は間違いなかろう。


それだけ重要な機能であるが故に、
この30年間、大きな変化を許されなかったとも言えよう。
大きな刷新を行いたいのであれば、互換性を犠牲にする覚悟が必要となる。


それはそれで、ある程度、納得は出来るのであるが、
この為にBIOSから制御が移された直後はリアルモードとなる点が、
避け難い副作用としてつきまとう事になるのである。

復習モード

ちょっと放置期間が長かった事もあり、
また、本人の記憶力や整理能力の問題もあり、
これまでやってきた事を、
再度、やり直した方が良さそうだ。
復習復習!


この際、自分への注意点として、
今回、自分の過去の記述や資料のまとめ方で、
分かり辛かった点や不足している点を、
三者的な視点で客観的に洗い直し、
記述の補足や資料のまとめ直しをする事。


忘れないように!