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

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

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

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

さて。

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

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

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

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

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

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

(さらに…)

「関数」と「函数」の話

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

わっはっは。実に爽快。

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

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

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

Javaで可変メソッドな話

実はJavaでの開発経験は乏しいのですが、このところWebアプリケーション開発でJavaをゴリゴリ書いてます。

昨今話題の「静的型付け言語 vs 動的型付け言語」になぞらえば、私は静的より圧倒的に動的の経験が豊富なので、どうも型ありきな思考に慣れていないようです。なんにつけいちいち「型」の壁にぶち当たってます(苦笑。

ふと思ったのですが、静的の方が処理やロジックの一般化あるいは共通化、汎用化といったことが苦手なのでしょうかね?
Javaに限った話なのか、あるいは私のアプローチの問題なのかもしれませんが…。

たとえば。

(さらに…)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

久しぶりのbLog更新です。

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

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

 

そもそもの論点が的外れ

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

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

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

(さらに…)

[CakePHP 2.2.2 Bug] prefix使用時のURL生成不具合を勝手に修正

某案件で CakePHP 2.x を使ってます。
1.3は以前使ってましたけど2.xは初めて。
だいぶ勝手が違っててちょっと戸惑いつつ、1.3よりさらに酷くなったドキュメントの物足りなさをこーどを解析して補いつつ…。

加えて、今回初めて Prefix Routing にチャレンジ中。
最初は管理画面と公開画面のController、Viewをフォルダ分けしようとカスタマイズもしてみたのだけど、 やっぱりCake的には邪道なのだろうと思い直し、標準のPrefix Routingを使うことに。…まあチャレンジってほどのことじゃないんだけども(^^;

ところが、どうもHelper系のURL生成の挙動がおかしい…。
Google先生に聞いてみると、どうも1.x時代からおかしな挙動をしているようで、困ってる方がたくさん…。

(さらに…)

Main Image Animation JS

最近、jQueryを使ったちょっとした仕事をしたのでご紹介します。

いわゆるWebサイトトップページによくある、動きのあるメインイメージです。
以前はFlashを使うのが当たり前でしたが、最近はJavaScriptになってきましたね。

実際に納品したものはお見せできないので、サンプルを作ってみました。
フロントエンドはあまり得意ではないのですが、制作時間は正味3時間程度です。

Main Image Animation – 深夜開発 JS Sample

http://koiz.me/js-samples/main-image-anime/

(さらに…)

blog構築の続きの話

Facebookページのタブにこのblogを設定しました。

Facebookページのタブ設定にはSSL接続ができなければならないので、レンタルサーバーの共用SSLを使用。…がここで四苦八苦。

共用SSLなのでURLのドメインとパスが非SSLと違う。これがWordPressでいろいろな問題の原因になりました。 (さらに…)