rhasm.net/blog

興味の赴くままに色々紹介し、解説をするブログです。

*

名古屋市が大雨非難勧告解除でnull宣言

      2015/08/29

名古屋市が大雨でぬるぽ

2013年9月4日。名古屋市にもバケツの水をひっくり返したような大雨が降り注ぎ、路面とかどえらいことになったのです。そして、名古屋市消防局がnullメールを出しました。


大変酷い大雨になりまして、路面はちょっと低いところは軒並み冠水。
こりゃすごい大雨だなと思っていたら、緊急速報メールが届きました。
緊急速報メール 2013.09.04
名古屋市全域て。
どえらいことになったものです。
もっとも最近は名古屋ばかりか日本全国津々浦々、色々なところで大雨に限らず色んな自然災害が発生していますね。被害に遭われている方々には慰めの言葉もない。

ともかく自宅に大人しく帰宅して大人しくテレビなど見ていたら、再び緊急速報メールが届いたのです。
名古屋市緊急nullメール
最初に思った言葉と言えば「名古屋市、落ち着け。」
次に、このメールの意味するところを妄想しました。
まあ普通に考えたら非難勧告の解除なんだろうなとわかりつつ。

———ここから妄想———
大雨に見舞われ市内各所での対応に奮闘する名古屋市防災対策本部。
そこに突如、耳を疑うような一報が舞い込んだ。
「市街地に正体不明の巨大生物が!!!」
まさかと思いつつつい窓の外を見る通信係。
滝のように降り注ぐ雨のせいで煙幕のように霞んだ景色の向こう側、黒くそびえる影。
(あんな方角にあんな巨大なビルがあったかな?)一瞬考えた瞬間、そのビルがぐらりと動く。
次いで聞こえたのは、窓ガラスをビリビリと響かせるような咆哮。
街を破壊しながら一歩一歩、思わぬ速さでこちらへ歩み寄ってくることに気がついた通信係は、ハッと我に返る。
「この未曽有の危機を、少しでも多くの人に伝えなくては…!!」
しかし彼にはもはや文字を打ち込む猶予などなかった。
せめてこの異常事態を多くの人に気がついて欲しい。彼はもはや目前に迫る巨大生物におののきながら、ただ必死に送信ボタンを押した。

null (名古屋市)
———ここまで妄想———

などと考えて怪獣の名前を検討していたら、訂正メールが届きました。
緊急速報メール
普通過ぎる。
まあ、ともあれ大雨が引きそうなのは良いことなのだけども。

以下余談です。

nullというのは「ぬる」または「なる」と呼ばれる、おおよそこんぴゅーた用語の一つだと思います。ぬるぽ、はJavaのNull Pointer Exceptionの略称なの(だと思うの)で、null=ぬるぽではありません。
少し深めの話をすると、nullというのはゼロ・無価値・無効といった意味をもつ英語です。コンピュータないしプログラミングにおいては、「何もない」状態を表現しています。そしてもう少しつめていくと、「null/何もない」は「empty/空っぽ」とは違います。例えば「箱に荷物を詰める」という作業であれば、「箱が置いてあるけども中味が空っぽ」なのと「そもそも箱がない」のは明らかに違います。例えば学校でテストを受けた時に「白紙の答案を出す」ことと、「そもそも答案を提出しない」のは明らかに違います。nullとemptyの違いはこんな感じの違いです。

さらにもう少しプログラム寄りな事を言うなら、
・変数を定義しただけでは変数が示すものはnullです。変数をきちんと初期化するとnullではなくなります。
・Java(サーバサイド)等のプログラミングでpost等した場合、post元でパラメータと値を設定している場合は値が取得できます。post元でパラメータだけを設定した場合は空値が取得できます。パラメータそのものが設定されていないものを取得しようとするとnullが返ります。

二つ目は文章では解りにくいので、Java(jsp)でものすごく単純な例を示します。

<%@ page contentType="text/html; charset=UTF-8" %>
<%
	String var1 = request.getParameter("var1");
	String var2 = request.getParameter("var2");
	String var3 = request.getParameter("var3");
%>
<html>
<head>
</head>
<body>
	var1: <%=var1%><br />
	var2: <%=var2%><br />
	var3: <%=var3%><br />

	<form method="post">
		<input type="hidden" name="var1" value="something" />
		<input type="hidden" name="var2" />
		<input type="submit" name="dopost" value="更新" />
	</form>
</body>
</html>

このjspでは、画面表示直後はvar1もvar2もvar3も全てnullになります。

var1: null
var2: null
var3: null

しかし、更新ボタンを押してリロードがかかると、var1は「something」という値に、var2は空欄に、そしてvar3だけがnullのままです。var2はパラメータが定義されているけども値が設定されていない(=空値)だけなのに対して、var3はそもそもパラメータが設定されていない(=null)という違いがあるために、結果もまた異なるわけです。

var1: something
var2: 
var3: null

ここまで余談を続けましたが、つまり空っぽのメールが届いたらきっとそれは送信者の手違いの可能性が高いですが、nullが届いた場合は送信プログラム側の問題の可能性が高いのではないかと考えられます。

たいして話を纏めることもないまま、ではでは。

 - その他, 小ネタ