MVCに関して

MVCの発想の根底


「モジュール化と情報の隠蔽により、プログラムがスパゲッティ化するの(コード間の相互依存関係が複雑に入り込んでしまってにっちもさっちも行かない状態になること)を避けよう」というオブジェクト指向の発想がある。MVCは、そのオブジェクト指向に基づいて、GUIアプリケーションを以下の三つの大きなモジュールに分けて設計しましょう、というアーキテクチャの指針である。


Model


データベースなどに格納された生のデータを隠蔽し、抽象化された形のAPIを通じて他のモジュールからのアクセスをコントロールするモジュール。アプリケーション特有のルールやロジック(ビジネスロジック)を持ち、データの整合性(後述)に絶対の責任を持つ。


View


Modelが提供する抽象化されたデータを、どんな形で人間に見せるかを記述したモジュール。GUIアプリケーションの場合、使うGUI部品や画面上のレイアウトを指定するのがこのモジュール。


Controller


ViewとModelの間に位置して、ユーザーにどんな順序でデータを見せて行くとか、Viewを通したユーザーからの入力をModelへのAPIコールへとマッピングするのがこのモジュールの役目。


データの整合性


Modelの外部インターフェイスの設計においてもっとも大切なことは、この「データの整合性」の責任を100%Model側で引き受け、「Controllerが何をしてもデータの整合性だけは絶対に壊れない」ように作っておくことである。そのためには、Controllerによる直接のアクセスは絶対禁物である。
この「Controllerが何をしてもデータの整合性だけは絶対に壊れない」という部分はとても重要で、Controllerに少々のバグがあろうが、会計の知識が全くない新人がControllerを作ろうが、Controllerに悪意のあるコードが紛れ込もうが、整合性だけは絶対に壊れないように Modelを作っておくことが必須である。


Ruby on Railsの「えせMVC」の弊害

テレビ局ごとの電波利用料

営業収益100億円以上のテレビ局、但しNHKは経常事業収入。


 ①営業収益(H18)  ②電波利用料 (単位百万円)


NHK ①675,606 ②1,215
日本テレビ ①288,636 ②317
東京放送 ①277,400 ②318
フジテレビ ①377,875 ②318
テレビ朝日 ①227,687 ②318
テレビ東京 ①111,200 ②317


北海道放送 ①13,245 ②15
札幌テレビ ①16,553 ②15
北海道テレビ ①14,369 ②15
北海道文化放送 ①13,521 ②14


仙台放送 ①10,466 ②4


テレビ神奈川 ①6,824 ②3


中部日本放送 ①35,815 ②4
東海テレビ ①36,723 ②4
名古屋テレビ ①26,120 ②4
中京テレビ ①32,958 ②5
テレビ愛知 ①11,189  ②1
静岡放送 ①11,625 ②7
テレビ静岡 ①10,132 ②6


毎日放送 ①69,514 ②10
朝日放送 ①74,192 ②10
関西テレビ ①72,429 ②10
讀賣テレビ ①66,895 ②10
テレビ大阪 ①14,494 ②1


中国放送 ①11,414 ②10


テレビ新広島 ①10,177 ②8


RKB毎日放送 ①20,656 ②6
九州朝日放送  ①17,643 ②6
テレビ西日本 ①16,090 ②6
福岡放送 ①14,362 ②6


テレビ局の電波利用料負担は、総計で34億4700万円にしかならない。
一方で営業収益は3兆1150億8200万円。


本邦初公開?

携帯でのストリミング配信方法

DoCoMo





DoCoMo 3gpp(1985KB)


au






Linuxで携帯動画をストリーミング再生対応で作成する
FFMPEGでmp4ファイルを3g2ファイルに変換し、変換した3g2ファイルを MP4Boxで分割していますが、分割した3g2ファイルをau端末でストリーミング再生させようとすると「再生できません」となってしまいます。以下、実行に用いたコマンドです。OSはCentOS5.2、FFMPEGは0.5、MP4Box(というかGPAC)は0.4.5です。

Albert Einstein

問題をつくりだした時と同じ考え方では、その問題を解決することはできない。


アメリカのNASAは、宇宙飛行士を最初に宇宙に送り込んだとき、無重力状態ではボールペンが書けないことを発見した。
これではボールペンを持って行っても役に立たない。
NASAの科学者たちはこの問題に立ち向かうべく、10年の歳月と120億ドルの開発費をかけて研究を重ねた。
その結果ついに、無重力でも上下逆にしても水の中でも氷点下でも摂氏300度でも、どんな状況下でもどんな表面にでも書けるボールペンを開発した!!
一方ロシアは鉛筆を使った。〜

快適さの階層性について

家の家具をいくら工夫したところで、家の立地条件や広さなどの基礎の部分はカバーすることはできないように、「快適さ」というものにも階層性があって、ある階層で生じた不快は、それよりも上位の階層でどれだけがんばっても、挽回することはできない。


どれだけスペックのいいPCでも、お布団でごろごろしながらインターネットを見ることができる携帯に勝つことは難しい。それは、いいスペックのPCってのは上位の階層にあたり、お布団の中や起動時間が基礎の階層にあたるから、スベックで挽回することが出来ないんだと思う。


こういうのもたぶん、「n-clickを1-clickにすると商売になる。1-clickを0-clickにすると革命になる」という言葉に連なる現象。「1-click」に相当するのは、「布団から出て3歩歩く」ことであって、革命と言っても、起きたことは「お布団に潜ったままでインターネット」なんだから、それはずいぶんとだらしないものなんだけれど。


「携帯電話でインターネット」が当たり前という文化に育った人、「そこまで行く」面倒くささを解消してしまった携帯機になれてしまった人には、デスクトップPC で見るインターネットだとか、据え置きゲーム機で楽しむテレビゲームは、そこに行くだけのほんのわずかな手間が、恐らくは我慢できない煩雑さに見えてしまうんだろうと思う。


内装をどれだけ立派にしたところで、基礎がグラグラの家には人が住まないように、据え置き型ゲーム機がどれだけ高性能に進化したところで、携帯電話世代の人たちを、据え置き型ゲーム機の世界に引っ張り込むのは難しいんだと思う。


「これはこういうものなんだ」体験のこと
スマートフォンが消し去ったもの

mysqlで重複レコードを一括削除する方法

primary keyでグループ化したtableを作成(下記は複数のカラムがprimary keyの場合)
CREATE TABLE temp_table as SELECT * FROM hoge GROUP BY hoge_id,hoge2_id;


対象tableを削除
DROP TABLE hoge;


先程作成したtableに置き換える
ALTER TABLE temp_table RENAME TO hoge;


重複レコードをSQLデータベースから一括削除