2010-03-01から1ヶ月間の記事一覧

無線LANの仕組みについて

無線LANが動作するまでの仕組みがわからねぇ。 今msiのv100だったかな?っていうNetBookを持っているんだが、なかなか動作させられる状況にならない。 というのも手当たり次第、Webに掲載されている記事やblogのエントリをためしているだけだから。系統立て…

SICP 問題 2.9(区間の加減算結果の幅)

【問題】 区間の幅(width)は上限と下限の差の半分である。幅は区間で規定した数の不確かさの量である。 算術演算のあるものには、2つの区間から作った結果の幅は、引数の幅だけの関数であり、他のものには、結果の幅は引数の区間の幅の関数にはならない。 …

「記録を残す」というクセが付いてきた気がする。

小学校から20代後半まで日記的なモノが続いた試しがなかったんだが、ネタがあると続くもんだなぁ。 cria.logの時も自分の変化にびっくりしたもんだけど、今回はSICPという1問題で1エントリっていうスタイルがすごくよくて、 「自分の作業・学習結果を記…

SICP 問題 2.8(区間オブジェクトの減算演算を定義)

【問題】 Alyssa と似たような推論をして、2つの区間の差の計算法を書け。 それに対応する sub-interval という減算手続きを定義せよ。 【解答】 減算される側の上限値から減算する側の下限値を引いたものが最大値に、 減算される側の下限値から減算する側…

SICP 問題 2.7(区間オブジェクトの選択子を定義する)

【問題】 区間の抽象化の実装を規定しなかったので、Alyssa のプログラムは不完全である。 区間構成子は、 (define (make-interval a b) (cons a b)) である。 実装を完成させるため、選択子 upper-bound、lower-bound を定義せよ。 【解答】 これは普通に c…

SICP §2.1.4 拡張問題: 区間算術演算

精度の分かっているものに対する誤差を考慮にいれた演算を考えるというセクション。 このセクションでは電気回路で使用する抵抗について考えていて、例えば次のようにモデルを構築している。 10%の許容誤差で6.8Ω ↓ 下限値 = 6.8 - 0.68 = 6.12 上限値 = 6.8…

SICP 問題 2.6(数字を使わずに数字を表現する)

【問題】 対を手続きで表現することがそれほどの驚きでなければ、手続きを操作できる言語では、0 と、1 を足す演算を、 (define zero (lambda (f) (lambda (x) x))) (define (add-1 n) (lambda (f) (lambda (x) (f ((n f) x))))) と実装することで、(少なく…

SICP 問題 2.5(consの別表現その2)

【問題】 a と b の対を積 2^a・3^b とである整数で表現するなら、非負の整数の対は数と算術演算だけを使って表現できることを表せ。 これに対応する手続き cons、car、及び cdr の定義は何か。 【解答】 素数だからこの表現が可能になるのか? 直感的にはす…

SICP 問題 2.4(consの別表現)

例によって休み時間中に問題文を。。 問題 これは対のもう一つの手続き表現である。この表現について任意のオブジェクト x と y に対し、(car (cons x y)) が x を生じることを証明せよ。 (define (cons x y) (lambda (m) (m x y))) (define (car z) (z (lam…

SICP 問題 2.3(長方形の周囲の長さと面積を求める)

【問題】 平面上の長方形 [rectangle] の表現を実装せよ。(ヒント:問題 2.2 が使いたくなるであろう。) 構成子と選択子を使い、与えられた長方形の周囲の長さ [perimeter] と面積 [area] を計算する手続きを作れ。 次に長方形の違う表現を実装せよ。同じ…

SICP 問題 2.2(線分を作る)

休み時間中に問題文だけでも。。 問題 平面上の線分を表現する問題を考えよう。各線分は一対の点:始発点と終着点で表現されている 点を使って線分を表現する構成子 make-segment と選択子 start-segment と end-segment を定義せよ。 更に点は一対の数:x …

SICP 問題 2.1(マイナスを考慮した有理数生成)

さぁ、2章の「データによる抽象の構築」に突入だ!! まだまだ仕事が忙しくて帰ってくるのは遅いが、地道に進めるぜ!! 【問題】 正負両方の引数を扱う改良版 make-rat を定義せよ。 make-rat は符号を正規化し、有理数が正なら、分子、分母とも正、有理数…

イベントの扱い方その7(動的に生成された要素にも影響を与える live())

イベント関連最後?早いな。最後は動的にプログラミングする場合、かなり使う頻度が多そうな live()。Javascriptによって動的に生成されたタグに、既に定義してあるイベントが反映されるようにする。 サンプルでは上側枠線内に表示される文字列は1行目はク…

イベントの扱い方その6(イベントを削除する unbind())

設定されているイベントを削除する。これもどういう時に使うべきなのかイメージがイマイチ。。 例によってサンプルを。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3.2");</script> <script type="text/javascript"> $(function() { $("#div1").click(function(){ var di…</head></html>

イベントの扱い方その5(イベント発生時に一度だけ命令を実行する「one()」)

イベント発生時に一度だけ命令を実行する one()どういう時に使うべきなのかイメージが沸かない。 とりあえずサンプルだけでも。。初期表示状態ではyahooへのリンクとなっているが、 一回クリックするとGoogleへのリンクに変わる。 で、その後はクリックして…

イベントの扱い方その7(mousemove)

mousemoveイベントについて。マウスカーソルが動いている時に発生するイベント。 大抵の場合、マウスカーソルの座標(但し、ブラウザの左上を[0, 0]とする)を取得するような場合に使われるらしい。 他のイベントと違って、引数とし手渡すfunctionに、引数を…

イベントの扱い方その6(mouseover、mouseout)

mouseover、mouseoutイベントについて。マウスカーソルががお目当ての要素の上にきた時、あるいは要素の外に出た時に発生するイベント。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3.2");</script> <script type="text/javascript"> $(function() { $("div").mouseover(…</head></html>

イベントの扱い方その5(toggle)

toggleイベントについて。 今までのイベントは、引数に一つのfunctionを受け取っていたが、toggleは複数のfunctionを受け取れる感じ。 で、クリックする度に登録した順序のfunctionが実行されるらしい。 結構便利そうだな。(具体的な使い道はすぐ思いつかな…

イベントの扱い方その4(mousedonw、mouseup)

mousedown、mouseupイベントについて。 mousedownはお目当ての要素の上でマウスの左ボタンを押した時のイベント。 mouseupはお目当ての要素の上でマウスの左ボタンを離した時のイベント。 クリックとは違うので注意。 以下のサンプルは、文字列の上でマウス…

イベントの扱い方その3(ダブルクリック)

ダブルクリックイベント お次はダブルクリックイベント。 記述の仕方はクリックと変わらん。イベントの扱い方その1(注意点)でも記載したが、 イベントを登録した対象となる要素に、既にclickイベントが登録されていた場合、 dblclickイベントを登録しても…

イベントの扱い方その2(イベントが発生したオブジェクトを扱う方法)

次は、イベントが発生した要素自身を取得したい場合。 例えばアレだ。DBのテーブルに登録したレコードを編集するような「一覧画面」と「詳細画面」の関係。 一覧画面であるレコードをclickしたらその情報を詳細画面に表示するというイベント。 各レコードご…

イベントの扱い方その1(注意点)

buttonみたいなタグは既に登録されているイベントつーもんはない。 んが、aタグのように、hrefが設定されると自動的にclickイベントが登録されるような要素の場合、自前でclickイベントを登録するとどのように振る舞うかをメモ。 自前イベント処理の最後に「…

イベントの扱い方その0(基本)

さて、イベントですよ、イベント。 これがなくっちゃ最近のGUIアプリなんて作れませんよ。じゃ、さっそく基本から。 $(セレクター).イベント(function(){ $(セレクター).命令 }); これだけ。 jQueryだとイベントの登録はこれで大丈夫なんだろうか? 確かjava…

オブジェクトの操作その7(HTML メソッドチェーン)

セレクターを指定してオブジェクトを操作を複数回行う場合、毎回セレクターで意中のオブジェクトを抽出するのは効率が悪い。 そういう場合、操作関数(javascriptの世界ではメソッドというんだろうか?)を数珠つなぎにしていくことでセレクターの処理を一回…

オブジェクトの操作その7(HTML CSS)

見た目を変える為に頻繁に使用されるCSSについて。 主に3つの方法が。 ・指定したCSSプロパティの値を取得する。 ・指定したCSSプロパティの値を設定する。 ・複数のCSSプロパティの値を設定する。3個めがかなり便利そう。これJSON形式の記述フォーマット…

オブジェクトの操作その6(HTML 属性)

今までのは全部「要素」に対する操作だったけど、今度は属性の操作について。 基本となる記述方法は次の通り。 //取り出し var value = $(セレクター).attr(属性名); //変更 $(セレクター).attr(属性名, 属性値); //削除 $(セレクター).removeAttr(属性名); …

オブジェクトの操作その5(HTML 要素のラッピング、置き換え、削除)

次は要素のラッピング、置き換え、削除について。 こいつらも使いそうだなぁ〜。該当する関数は、 ■ラッピング ・囲まれる要素.wrap(囲む要素) ・囲まれる要素.wrapAll(囲む要素) ・囲まれる要素の親要素.wrapInner(囲む要素) ■置き換え ・置換される要素.re…

オブジェクトの操作その4(HTML 要素の移動)

前回は新しく要素を挿入するパターン。 今度は既に存在する要素を移動するパターン。 これも簡単。prependTo()、appendTo()、insertBefore()、insertAfter()がその関数群。 前回の関数が分かれば予想は簡単。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3.2");</script> </head></html>

オブジェクトの操作その3(HTML 要素内・外に対する挿入・追加)

今度は指定したセレクターの要素内、外に対する挿入、追加操作について。 これも簡単だなぁ〜。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3.2");</script> <script type="text/javascript"> $(function() { $("#div1").prepend("<span style='color: red'>要…</span></head></html>

オブジェクトの操作その2(HTML)

今度はテキストではなくてHTMLとして操作する。 <html> <head> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.3.2");</script> <script type="text/javascript"> $(function() { //取り出す。 var div3text = $("#div3").text(); //テキスト var div3html = $("…</head></html>