「勝手に解説:大垣流バリデーション入門」の解説の話

勝手に解説:大垣流バリデーション入門

Gunosyで配信されてきて唖然としたので久しぶりにエントリー。

前もって断っておきますが、私はこのエントリーしか読んでいません。徳丸氏という方も大垣氏という方も存じ上げません。なので、全く見当違いの内容になっているかも知れないのでその点はご容赦を。

さて。

私がこの徳丸氏のエントリーで唖然としたのは後半の以下の箇所。

これが本当に「世界の常識」なのでしょうか?私は見たことがありません。よろしければ、ソースを示していただければと思います。

彼が「見たことがない」というのは、大垣氏の主張をまとめた次のようなコードだそうです。

  • 入力値のチェックはアプリケーションの仕様を元に行う
  • このチェックには2種類あり、ユーザの「入力ミス」と「入力バリデーションエラー」である
  • 入力バリデーションエラーとは、利用者の通常の操作では入力し得ない値を検出するものである
  • 例として、JavaScriptによるチェック済みなのにサーバーに仕様外の値が来たら入力バリデーションエラーとして厳しく対処する
  • (恐らく)入力ミスについては優しくナビゲートする

ちなみに、私は見たことがあります。というか、まさしく私はこのように作ってます。むしろ「見たことがない」というのが驚き。

見当違いなら申し訳ないけど、徳丸氏は自分が何を言ってしまったのが解っているのでしょうか?「見たことがない」ということは、徳丸氏が書いてきたコードにはセキュリティホールがあるってことになるのですが…。

(さらに…)

「関数」と「函数」の話

遠隔操作事件のプロファイリングが酷すぎる。いくらなんでもそれはない

記事自体はどうでもいいんだけど↓の部分がTwitterで回ってきたので、ちょっと気になってコメント。

したがって、「関数」という言葉は2種類の意味がある。ひとつめは数学の関数である。説明不要であろう。ふたつめは、数学の素養のある技術者のプログラム作成を助けるために、各プログラミング言語が独自で用意した「数学の関数に似た何か」である。

はいダウト。
関数はfunctionの訳語であり、functionは、それ自体が「機能」を意味する英語。
まともな教養のあるプログラマなら、functionが当初「函数」と訳されて数学とともに日本に入って来て、それが略語になって「関数」になり、構造化プログラミングの導入とともに機能としてのfunctionが「関数」と誤訳されたまま入って来たことは常識。

はい、あなたもダウト。
微妙に間違ってるんだよねえ(苦笑

「関」を「函」の略字だと誤解してるのかな?
漢字とその意味としては「関」と「函」にはまったく関係はないです。
略字や旧漢字といった関係でもありません。
当用漢字が定められたときに「函」がリストから外れてしまったため、仕方なく同音の「関」の時が当てられて「関数」となりました。

当初functionが「函数」と訳されたのも間違いではありません。
むしろ洒落が効いた粋な訳です。
辞書で調べればすぐわかることですが「函」は「箱」の意です。
したがってプログラミングにおいてもfunctionを「函数」と訳すのは間違いではありません。

なぜ function = 「箱」なのかって?
そんな洒落のオチを説明するような無粋な真似はできないですな(笑

それにしても「はてな匿名ダイアリー」の質の悪さったら…(白目

「○○とかいう糞言語」とかいう糞の話

  • 元ネタ(痛々しいページが登場するので注意)

PHPerとしては少々イラッとしたので反撃しようかと思ったら、

すでに反撃していただいていたので溜飲も下がったところです。

それにしても、よく見ると元記事は1年以上前のエントリー。
そんなの拾ってくるGunosyさんもどうかと(^^;

関連してもうひとつ溜飲を下げてくれた記事をご紹介。

わっはっは。実に爽快。

要するに。
匿名で他者をdisってる時点で、話を真っ当に聞く(読む)価値は無いってことですね。

だいたい。
「プログラミング言語」そのものの研究や発展を目的とした議論であれば価値があるだろうけど、
こっちの言語がどうとか、あっちの言語がどうとか。
言語なんてものはその時、その状況に合わせて選択するものであって、そもそもプログラマには選択権すら無いことの方が多いのだから、ナンセンスです。
能なしの愚痴にしか聞こえません(苦笑。

文句があるなら言語の開発に参加すればよろしい。
正々堂々と開発者に意見すればよろしい。
はたまた自分で新しい言語を生み出せばよろしい。
それができない(しない)のなら黙ってなさいな。

Evernoteのパスワード・リセットの話

ついでにもうひとつポスト。

この手の騒ぎが起きる度に思っていたことですが、今回は私も利用してるサービスだったので書いておきます。

パスワードが盗まれたとか漏洩したとか騒いでる輩がいるけど、デマです。念のためパスワードデータをリセット(消去)しただけです。

お知らせをちゃんと読めばわかるとおり、パスワードそのものの漏洩はありません。…というかあり得ません。なぜならばEvernoteはみなさんのパスワードを知らないからです。システムには生のパスワード(平文パスワード)は登録されていませんので漏洩し得ないのです。

Evernote で管理している全てのパスワードは一方向暗号化(技術的に言うとハッシュ化・ソルト処理)により保護されています。

まともなシステムであれば、平文のパスワードデータをそのまま保存するようなことはしません(まともじゃないシステムも多々存在していますが)。お知らせに書かれているとおり「一方向暗号化(不可逆暗号化、ハッシュ化とも言う)」して保存します。一方向暗号化されたデータのことを「ハッシュコード」あるいは「ハッシュ値」といいます。
一方向暗号、不可逆暗号とは、一度暗号化すると二度と元に戻せない暗号化技術です。
通信内容を暗号化する際には「可逆暗号」技術が使われます。一方が暗号化したものを他方で復号(元の内容に戻す)できるようになっています。でないと内容が読めませんからね。

一方、パスワードのように復号する必要が無く、むしろ容易に元に戻ってはならないものには不可逆暗号の方がより安全なのは自明の理ですね。
復号せずに認証する、すなわち保存されているデータと入力されたパスワードが同じかどうかを調べるには、入力されたパスワードを同じ手順で暗号化して、保存されているものと比較します。

というわけで、真っ当なシステムから平文のパスワードが漏洩することはまずあり得ません。
パスワードの漏洩はほとんどの場合、ユーザー側から起きるのです。

ただし真っ当では無いシステムの場合は注意が必要です。可逆暗号が使われていたり、そもそも暗号化して保存されていなかったり…。

真っ当かどうかを見分けるにはそのサイトの「パスワードを忘れたとき」の手順をやってみると一目瞭然です。

真っ当なシステムでは、パスワードデータを復号できませんので、現在のパスワードをユーザーに通知することができません。したがってパスワードがリセットされ新たなパスワードが発行されます。

一方、もしパスワードの通知に現在のパスワードが記載されていたならば、それはパスワードを不可逆暗号化して保存していないということです。
極めて危険な状態です。
このようなサービスは利用しないのが得策ですね。

ボランティア募集を批判するWebデザイナーたちの話

久しぶりのbLog更新です。

この件、静観しようと思っていたのですが、

こんな記事がニュースサイトで紹介されたりしてるので、堪忍袋の緒が切れました。

 

そもそもの論点が的外れ

要するに、こういうことですよね?

仕事を探してるWebデザイナーさんがある日、区のHPで「Webデザイナー募集」のリリースを発見!\(^O^)/
嬉々として詳細を見てみるとなんと「報酬 … なし」。
なんだこりゃ?!なめとんのかー!!苦情じゃ苦情!!(# ゚Д゚)

気持ちはわかります。あのリリースでは私も同じように感じます。
だが、しかしです。

(さらに…)

技術者のこだわりの話

ちゃんと動けばどう作ろうと構わない。出来てればいい。~技術者でない人はもちろんだが、技術者と呼ばれる人の中にもこういう輩がいる。

悪いとは言わないが、俺はそんな輩を技術者とは認めたくない。

例えば。
あなたが椅子を買ったとしよう。
それをよく見ると、足が微妙に曲がって取り付けられていたり、裏返したら余計なネジ穴空いていたり、所々ささくれあったり…。
それを「座れるから全然オッケー(^-^)/」と言えるだろうか。

ソフトウェアも同じこと。
細部に気を使い、見えないところにも美を追求する「こだわり」を持ってこそ、真の技術者と呼べる。

俺はそう思う。

技術に携わる諸氏、ぜひ己のこだわり、美学を持ってそれを探求していただきたい。

技術者よ、職人であれ。

深夜開発blog、スタート。

というわけで、blogサイトを作って見ました。

システムはWordPress。面倒だったのはテーマを選んでヘッダ画像を探す(選ぶ)のと、各種のプラグインをインストールするところだけで、あとはすんなり。
なるほど、WordPressがCMSとして人気な訳がちょっと解った気がします。

が、根っからの開発屋としてはちょと物足りない(^^;
ゼロからスクラッチで作って見たい衝動に駆られてますww

とまぁ、取り急ぎ開設のご挨拶、ということで。
不定期にちょこちょこと更新してゆく予定です。

ではでは。