2010年5月30日日曜日

経済学を勉強してみた(4) -基本的競争モデル-

※経済学を知らない理系人間が経済学を勉強した事を書くだけの記事です。

■基本的競争モデル
基本的競争モデルは3つの構成要素からなる。
(1)消費者がどのように行動するか
(2)企業がどのように行動するか
(3)これらの消費者と企業が依存しあい、交換が行われる市場がどのように動くか

消費者は合理的であると仮定され、企業は利潤極大化を行うと仮定され、市場はきわめて競争的であると仮定される。

ただし、現実の経済がこの競争モデルによっては完全に叙述されない。

-------------------------------------------------------
高いと思ったらみんな買わないわけで、
高くてもみんな買うんだったら企業は価格を上げるわけで、
ここで言っていることは確かにって感じがする。

でも、この競争モデルは完全に経済を叙述していないらしい。
んー、まだ分からないが、、、経済学の勉強を進めて行けばわかるのかな・・・

2010年5月24日月曜日

HTML5のpostMessageを使ってみた

HTML内にあるiframeに対してメッセージを送信することができます。
まずはmain.htmlとframe.htmlのサンプルを見てください!

実際の画面はサンプルを見てください。

■サンプル
-main.html
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset="UTF-8">  
  5. <title>メッセージングのサンプル</title>  
  6. <script type="text/javascript">  
  7. var MYORIGIN = location.protocol + "//" + location.host;  
  8. function init() {  
  9. var iframe = document.getElementsByTagName("iframe")[0];  
  10. setInterval(function() {  
  11. var date = new Date();  
  12. var dateStr =  
  13. date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate() +  
  14. " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();  
  15. var number = Math.floor(Math.random() * 100);  
  16. var json = '{date: "' + dateStr + '", number: "' + number + '"}';  
  17. iframe.contentWindow.postMessage(json , MYORIGIN);  
  18. document.getElementById("msg").innerHTML = dateStr + "," + number;  
  19. }, 1000);  
  20. }  
  21. </script>  
  22. <body onload="init()">  
  23. <div id="msg"></div>  
  24. <iframe src="frame.html" width="500" height="200"></iframe>  
  25. </body>  
  26. </html>  

-frame.html
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <script type="text/javascript">  
  5. var MYORIGIN = location.protocol + "//" + location.host;  
  6. window.addEventListener("message"function(e) {  
  7. var data = eval("(" + e.data + ")");  
  8. if(e.origin == MYORIGIN) {  
  9. document.body.innerHTML = data.date + "," + data.number;  
  10. }  
  11. }, false);  
  12. </script>  
  13. </head>  
  14. <body>  
  15. </body>  
  16. </html>  


■解説
otherWindow.postMessage(message, targetOrigin);
-otherWindow
別ウィンドウへの参照。次のような参照が保持されます。例えば、iframe 要素のcontentWindow プロパティの利用、window.open によって返されるオブジェクト、あるいは、 window.frames における名前付きか数による添え字。
-message
送信したい文字列データ
-targetOrigin
イベントが伝達されるべき otherWindow の生成元を "*" というリテラル文字列(指定しないことを示します)か URI のいずれかで指定します。もしイベントが targetOrigin で指定されたものにマッチしない otherWindow の文書のスキーマ、ホスト名、あるいは、ポートに伝達するようになっている場合、そのイベントは伝達されません。つまり、3 つすべてがマッチした場合にだけイベントが伝達されます。この仕組みはメッセージが送られる場所の制御を提供します。例えば、postMessage をパスワードを送るために利用する場合、悪意のある第三者によるパスワードの傍受を防ぐためにこの引数が意図されたパスワードを含むメッセージの受け手と同じ生成元である URI であることは絶対的に致命的なものになるでしょう。

ここで、今回はjson形式の物をframeに対して渡しています!
せっかくjson形式で渡しているのですが、postMessageで扱えるのは文字列だけです。
よって、受け取り側でも文字列として受け取ってしまいます。
なので今回は、evalを使い文字列からjson形式に変換しています。

2010年5月9日日曜日

経済学を勉強してみた(3) -ミクロ経済学とマクロ経済学とは?-

※経済学を知らない理系人間が経済学を勉強した事を書くだけの記事です。

■ミクロ経済学とマクロ経済学
・ミクロ経済学
経済を構成している個々の経済主体、具体的には企業、家計、個人の行動に焦点を当てる。
ミクロ経済では、それぞれの経済主体がどのように選択し、またそのような決定に何が影響を与えているかを取り扱う。

・マクロ経済学
経済全体の行動、全体的な失業率、インフレ率、経済成長率、貿易収支のような集計量の動きを取り扱う。
個々の企業や家計についてではなく、経済全体の事に焦点を当てる。

------------------------------------
んー、経済学を勉強しようとしたキッカケは企業とか会社とかを理解したかったからなので、、、
きっとミクロ経済学を勉強すればいいのかな??
マクロ経済学は、焦点が企業とか会社とかではないので、ミクロ経済学の方を勉強すれば良さそう。

経済学を勉強してみた(2) -3つの主要な市場-

※経済学を知らない理系人間が経済学を勉強した事を書くだけの記事です。

■3つの主要な市場
1.生産物市場(財市場)
企業が自ら生産した財を販売する市場

2.労働市場
家計(個人)が労働サービスを売り、企業がその労働サービスを購入する市場

3.資本市場
資金の借入れや貸出しが行われる市場

※個人は,3つの市場に深くかかわっており,生産物市場では消費者とよばれ,労働市場では,労働者とよばれ,資本市場では,投資家とよばれています.

経済学を勉強してみた(1) -経済学とは何か?-

※経済学を知らない理系人間が経済学を勉強した事を書くだけの記事です。

■経済学とは何か?
社会の資源がどのように選択され、使われるのかを研究する学問。

経済学を理解するためには、トレードオフ、インセンティブ(誘因)、交換、情報、分配という5つの概念を考える必要がある。

・トレードオフとは
ある一つのものをより多く入手することは、他のものをより少ない量しか入手できないことを意味している。
ここで言う、”もの”というの資源、時間などである。
資源は希少であり、トレードオフは基本的に避けられない。

・インセンティブ(誘因)とは
費用と便益を比較する人々の意思決定や行動を変化させるような原因のこと。

・交換
経済学では、交換が起こる状況は全て市場とみなされる。

・情報
選択を行うためには情報が必要である。
情報が他の財と異なる点は、情報は自由に共有できることである。
共有されるだけで情報が減少するわけではない。

・分配
市場は、生産された財とサービスが社会のメンバーにどのように分配されるかを決定する。

HTML5の Canvasで動くものを作ってみた

前回のHTML5の Canvasを使ってみたにて単純な三角形を作ってみました。

ただの三角形だとつまらないので、この三角形を動くようにしてみました!

三角形を動かす仕組みは、setIntervalを使って数秒おきに図形を描いています。

ただーし、図形を描くだけならすぐに出来るのですが、図形を消す方法がわからなかった。
ので、調べました!

context.clearRect(x,y,w,h)を使います!
消す方法はこれしか無いようです。
この関数の引数に消す範囲を渡します。そうすると、その範囲内の図形が消されます。

・ただ、三角形がウニョウニョ動くだけのソースです
  1. <!DOCTYPE html>  
  2. <html>  
  3. <body>  
  4. <canvas id="canvas1" width="300" height="200"></canvas>  
  5. <script type="text/javascript">  
  6. var canvas = document.getElementById("canvas1");  
  7. var context = canvas.getContext("2d");  
  8. var plus = true;  
  9. var count = 0;  
  10. var hoge = function() {  
  11.  var pos = 120;  
  12.  if(count > 70 || count < -70) {  
  13.   plus = plus === false;  
  14.  }  
  15.  if(plus) {  
  16.   count++;  
  17.  } else {  
  18.   count--;  
  19.  }  
  20.  pos = pos + count;  
  21.  context.clearRect(0, 0, 200, 200);  
  22.  context.beginPath();  
  23.  context.moveTo(120, 100);  
  24.  context.lineTo(pos , 50);  
  25.  context.lineTo(pos, 150);  
  26.  context.closePath();  
  27.  context.stroke();  
  28. }  
  29. setInterval(hoge, 10);  
  30. </script>  
  31. </body>  
  32. </html>  

・ブラウザが対応していれば、下記リンクから見れます
サンプル

HTML5のCanvasを使ってみた

■HTML5のCanvasとは
JavaScriptを使って、図形を書くことができるものです!
線、四角形、円などいろいろな図形をかけます。

■試しに使ってみた
・作る図形


・ソース
  1. <!DOCTYPE html>  
  2. <html>  
  3. <body>  
  4. <canvas id="canvas1" width="300" height="200"></canvas>  
  5. <script type="text/javascript">  
  6. var canvas = document.getElementById("canvas1");  
  7. var context = canvas.getContext("2d");  
  8. context.beginPath();  
  9. context.moveTo(120, 100);  
  10. context.lineTo(50, 50);  
  11. context.lineTo(50, 150);  
  12. context.closePath();  
  13. context.stroke();  
  14. </script>  
  15. </body>  
  16. </html>  
・ブラウザが対応していれば、下記リンクから見れます
サンプル

・解説
-beginPath()
サブパスのリストを空にして、コンテキストのサブパスが 0 個となるようにします。
今回でいうと、関係ないですが一応書いておいきます!

・moveTo(x,y)
指定された地点で新規のサブパスを生成します。
要するに、初期値店を指定することと同意です。

-lineTo(x,y)
コンテキストにサブパスがなければ、(x, y) に対するサブパスを定義します。コンテキストにサブパスがあれば、サブパスの終点から座標 (x, y) に向けて直線を引きます。そして、サブパスに、座標 (x, y) を追加します。
最初にmoveToにてサブパスが生成されていない場合は、線が引かれることはなく、サブパスの定義で終わります。

-closePath()
現在のサブパスを閉じていると記録し、その閉じたサブパスの開始と終了と同じ地点で、新たなサブパスを開始します。

-stroke()
現在のストローク・スタイルを使って、サブパスに線を引きます。