地震予測は不可能だと理解しなければならない

熊本地震で被害に遭われた方々に、心よりお見舞い申し上げます。
不安な日を過ごされている事と思います。早く穏やかに過ごせる日が来るよう願っております。

5年前の東日本大震災のことが、今でも忘れられません。人間の力は極めて弱く、自然の営みに抗うことはできません。しかし、被害を最小限に食い止めることは出来ます。人災は起こしてはならないのです。
この記事は拙い文章ではありますが、一人の方でも考えるきっかけにして頂ければと願います。


地震の予測は、ほぼ不可能です。
そう理解しなければなりません。

地震発生の予測(予知)が可能かどうかは、地震大国である日本ではとても重要で、よく議論される問題です。人命に直結する問題であり、できることなら可能であって欲しいのは勿論のことです。
しかしながら、知られている事実をよく考えてみれば、精度の高い地震予測を行うにはあまりにも情報が不足していることが判るのです。
(緊急地震速報は地震発生直後の地震波を捉え警報を出すシステムで、地震発生の予測ではなく地震波の到達予測です。従って信頼性が高い警報です。)

一点は、現在知られている地球の内部構造が、推測でしかないという事実です。
地球内部物理学が示す通り、人間が実際に地質を確認している範囲は掘削によるものです。それは半径約6371kmの地球の表面10km前後ほどでしかなく、それ以上深部の内部構造は地震波の伝播の違いなどによる科学的な推測でしかありません。
つまり私たちは、この地球の内部について、明確な事をほとんど何も知らないのです。

そしてもう一点は、地震予測に必要なデータが著しく不足していることです。
46億年という地球の長い歴史とくらべて、人間の歴史は極めて僅かな期間でしかなく、地震について詳細なデータを取るようになったのは更にごく僅かな期間です。
Wikipedia地震予知の「研究と政策の歴史」によれば、近代地震学の始まりは19世紀後半で、その歴史は百数十年です。人間の感覚では長いとも思えますが、仮にそれが150年としても、地球の歴史の3000万分の1の期間でしかないのです。

現在では、断層で起こるにせよ火山活動により起こるにせよ、プレートの変動が地震の発生に大きな影響を与えていると考えられていますが、その根拠となる理論プレートテクトニクスが発展したのは1960年代後半以降です。また、コンピュータによる詳細で正確な地震データを取れるようになったのは、コンピュータの発展の歴史から考えてやはりここ数十年のことでしょう。
何億年、何十億年という単位で活動を続けている地球の変化が、どのようなパターンで発生するかを知るには、あまりにも短すぎる期間であることは明らかです。
現在、一箇所の大地震の周期は百年から数万年とも言われていますが、一回の周期にすら満たない年数の情報で、そのパターンをどうやって推測できるでしょうか。

公的には、地震予測に使われる予算は多いですし、また心情的にも「現状では地震予測は不可能である」とは明確に言えないのだろうと思います。
ですが、本当は解らないにも関わらず出された、曖昧な予測に頼るとどうなるでしょうか。

熊本地震においては、震度6弱程度の余震が起こる可能性があると予測された直後、それを上回る地震が起こりました。更に翌日には、前日の本震を大きく上回る規模の地震が発生し、前日の地震は「前震」で、こちらが本震であるとされました。
例えば、6弱程度なら耐えられると考えられた建物があったとすると、前述の予測を信じ行動することはどんな結果に繋がるでしょうか。

地震の予測は、現在の知識と技術では不可能なのです。
プレート境界が多数集中している日本では、いつでもどこでも、大地震が起ってしまう可能性があるのです。大地震の発生の直後にも、更なる大地震が起こる可能性があるのです。ですから私たちは、地震予測に頼ることなく、必要な対策をしなければなりません。

予測が不可能である以上、まず必要なのは家屋の制震、免震、耐震性の向上でしょう。火災や津波に対する対策や避難対策も必要で、これは公的なレベルでも取り組まなければならない事です。そして大地震が起こった直後は、連鎖して大地震が発生する可能性が非常に高いですから、予測に頼らず最大の警戒をしなければなりません。
様々議論のある原発も、安全性を保証できない以上、やはり稼働させるべきではないのです。社会は経済的合理性の為ではなく、そこに生きる者の幸せの為にあるのです。

テーマ: 地震・天災・自然災害 - ジャンル: ニュース

JavaScriptで配列の文字列をsuffix付きで連結

前回記事の応用で、複数の文字列の末尾に同じ文字列(suffix)を付けて連結する場合を考えてみます。

var array = ['#aaa', '#bbb'];
var string = array.join('_suffix, ') + '_suffix';

結果(string)
#aaa_suffix, #bbb_suffix

前回の応用ですから、これは簡単ですね。ついでに配列の各要素の前後に文字列を付ける場合も考えてみます。

var array = ['aaa', 'bbb'];
var string = '#' + array.join('_suffix, #') + '_suffix';

結果(string)
#aaa_suffix, #bbb_suffix

やや見苦しいですが(^_^;)ループ文を使わないで済みますので、これで良しとしましょう。
配列が不変ならば全て文字列で書いてしまったほうが早いですが、配列内容や要素数が不定だったり、後で追加する可能性がある場合にはこの方法が便利です。

テーマ: プログラミング - ジャンル: コンピュータ

JavaScriptで配列の文字列をprefix付きで連結

配列にある複数の文字列の頭に同じ文字列(prefix)を付けて連結したい事が時々あります。jQueryオブジェクトを複数のクラス指定で作りたい場合などです。
もちろんforやforEachを使えば可能な事なのですが、やりたい事の割に記述が冗長すぎる気がしたので、他の方法はないか考えてみました。
結論から言えば、完璧ではないものの可能です。

JavaScriptでの文字列の連結はjoin()で行えます。これはPHPのimplode関数や、Perlのjoin関数に相当するメソッドです。
join()は区切り文字を挟んで連結することは出来ますが、これだけではprefixは付けられません。

var array = ['aaa', 'bbb'];
var string = array.join(',');

結果(string)
aaa,bbb

それならば、頭に空文字列の要素を追加してprefix込みの区切り文字で連結すればいけるんじゃないかな?と考えたのが次の例です。concat()で空文字列と配列を連結した後、prefix込みでjoin()して、最後に頭の不要な文字を消去してます。

var string = [''].concat(array).join(',.prefix_').slice(1);

結果(string)
.prefix_aaa,.prefix_bbb

できた( ー`дー´)キリッ
…いや、できたことはできたのですが、何をやってるか少し分かり難いし、slice()でのカットは区切り文字の文字数に依存するので余り宜しくない。
うーん、と考えた結果、最終的にこれに落ち着きました。

var string = '.prefix_' + array.join(', .prefix_');

結果(string)
.prefix_aaa, .prefix_bbb

できた(`・ω・´)シャキーン
同じprefixを2箇所指定しないといけない為、記述の美しさの点では劣りますが、文字数や要素が少なく済み、見通しが良いのが利点です。やってることが単純なので、処理も速いことでしょう。
jQueryオブジェクトにしたい場合は下記のように$()で囲ってしまえば、余計な変数も作らずに済みます。

var obj = $('.prefix_' + array.join(', .prefix_'));

関連記事
JavaScriptで配列の文字列をsuffix付きで連結

テーマ: webサイト作成 - ジャンル: コンピュータ

住信SBIのVISAデビットをLOHACOで使う

住信SBIネット銀行がVISAデビットカードを開始しましたが、LOHACOで使おうとするとエラー。
どうもYahoo!ウォレットが今のところ対応してないようです。
そこで、カード情報入力時に「Yahoo!ウォレットに登録する」をチェックしないで注文確定すると、通りました。
クレジットカード登録はできませんが、デビットを使って買い物することは可能です。
また、Amazonでは普通に登録して買い物ができました。

楽天VISAデビットカード(当時はまだイーバンクだったかな?)の開始当初もそうでしたが、一部のお店で使えない状況はやはり有るようです。恐らくは、徐々に対応してゆくのでしょう。
楽天から住信SBIのデビットカードに切り替えようかと思ってましたが、もう暫くは併用する必要がありそうですね。

line-heightの単位はemではない

line-heightの単位としてemを使うのは実は良くなくて、単位なしで指定するのが正解。

line-height - CSS | MDN より引用

パーセンテージ と em 値は、予期しない結果を生むかもしれません。

使用値は、この単位のない <数量> に要素のフォントサイズを掛けたものになります。計算値は、指定された <number> と同じです。ほとんどの場合、継承時の予期しない結果を避けるために、これが line-height をセットする好ましい方法です。


line-heightはフォントサイズを基準として掛け合わされる数値なので、単位を付ける必要はない。
むしろ単位をつけると継承に問題が生じる。

ずっとem付けてたけど、間違いだったとは…。
単位なしで指定してるのを見かけても、つけ忘れてるんだと思ってました(*ノω・*)

テーマ: HTML - ジャンル: コンピュータ

次のページ