タグ

ブックマーク / amachang.hatenablog.com (9)

  • CSS の「値」とは何か - IT戦記

    この前 以下のようなエントリを書きました CSS の名前の整理 - IT戦記 今回は CSS における この「value(値)」という言葉の意味、そして曖昧さについて書きたいと思います。 6 つの値 CSS において「値」は曖昧な言葉です。 なので、「値」という言葉を使って CSS の説明をするのは非常に効率が悪かったりします。 たとえば、「ここの値って、 hogehoge の意味の値?」「いやいや、ここの fugafuga の意味の値が piyopiyo なんだよ」というように、まったく無駄な会話が繰り広げられるわけです。 ですので、今日からはちゃんと CSS の「値」をちゃんと説明できるように、「値」に以下の 5 つの名前を付けましょう。 Declared values Cascaded values Specified values Computed values Used valu

    CSS の「値」とは何か - IT戦記
    talo
    talo 2008/04/10
  • 社内勉強会資料 - IT戦記

    今回の趣旨 あまり JavaScript を書いたことのない人用に講義をしました。 内容 一つ一つ例を見せながら質問を聞き、参加者全員が JavaScript のオブジェクト指向を理解できるまでやりました。時間は当初 40 分の予定でしたが、結局 1.5 時間になりました。 成果 最終的にガイアックスのほとんどの開発者(マークアップエンジニアから、インフラの人まで)が JavaScript を読めるというレベルまでは、到達したのではないかと思います。 まあここからは、テクニックとバッドノウハウの世界ですが・・・。 資料 大切なことは言葉で話して、資料はほとんど例とかソースとかだけですが。教える手順とか参考になるところもあるかもしれないので公開します。 http://usrb.in/amachang/static/gaiax01/

    社内勉強会資料 - IT戦記
  • IT戦記 - [javascript] Plain Old JavaScript Prototypes (普通の JavaScript も使えるようにしよう)

    Prototype.js や MochiKit や jQuery や dojo こういう便利なライブラリがたくさん出てきてとても便利になりました。 でもそのライブラリ当に必要? たしかに、グループワーキングを行うにはこれらのライブラリは必須だと思います。 でも、ちょいスクリプトを作るのに .bind(this) や $ や each や Event.observe が必要でしょうか。 いささかオーバスペックな気がします。 実際に「このツール Prototype.js 必須かよ。こっちは MochiKit で作ってるのにぃ」とかってことも多々あります。 あれを使うためにあれとこれを読み込んで、これを使うためにこれも必要だな。こんな感じだとサイトはどんどん重いものになってしまします。。。orz そこで、原点回帰です。 ちょっとしたツールでライブラリ使うのはやめようよ!何も使わなくても Jav

    IT戦記 - [javascript] Plain Old JavaScript Prototypes (普通の JavaScript も使えるようにしよう)
  • IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念

    おそらく、JavaScript を使いこなす肝は setInterval、setTimeout、イベントによる関数の実行を理解することだと思う 例えば 次のコードの結果を考えたとき document.write("hoge\n"); setTimeout(function(){ document.write("fuga\n") }, 1000); document.write("piyo\n");普通に JavaScript を使いこなしてる人なら、hoge → piyo と表示して、 1 秒後に fuga が表示されるな。って思うはずなんです。 でも、 JavaScript を始めたばっかりの人の中には、 hoge と表示したあと 1 秒後に fuga → piyo と表示するな。って思ってる人が非常に多い。(経験的に) 何故か? たぶん、どのサイトの setTimeout の説明を見て

    IT戦記 - JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念
  • IT戦記 - ベンチマークツール公開

    最近 またしても、JavaScript のベンチマークを取らなければならない仕事が来たので、 ツールをキレイにしました。 それを公開します。(ダウンロードは一番下にあります。) 使い方 script タグで benchmark.js を読み込んで、以下のように連想配列の関数群を渡すだけです。 benchmark({ 'ほげほげの計測': function() { ...... }, 'ふがふがの処理の計測': function() { ...... } }); 結果は以下のように表示されます。 *** ほげほげの計測 *** result : 0.0011[ms] *** ふがふがの処理の計測 *** result : 0.111[ms] 表示された秒数は 関数の中身を一回だけ実行する時間です。 関数呼び出しのコストは差し引かれています。 また、FireBug を使っている場合は benc

    IT戦記 - ベンチマークツール公開
  • ScriptaculousのEffect実行順序を管理するJSを作ってみた。 - IT戦記

    仕事で使おうと思って作ったら意外といい出来だったので公開してみる。 だうそろーど たとえば、こう書くと var element = $('block'); var planner = new EffectPlanner( [ { Move: [element, {x: 200, y: 200}] }, { Move: [element, {x: 0, y: 300}] }, { Move: [element, {x: 300, y: 0}] }, { Move: [element, {x: 0, y: -300}] }, { Move: [element, {x: -300, y: 0}], next: 1 } ] ); planner.start(); こうなる http://sample.ecmascript.jp/20060523-00.html たとえば、こう書くと var col

    ScriptaculousのEffect実行順序を管理するJSを作ってみた。 - IT戦記
  • IT戦記 - FireBug の新しいバージョンが便利すぎる件について

    FireFox の拡張機能 FireBug を更新したらすごいことになっていたので共有します。 まずこれを見てください http://Sample.ECMAScript.jp/20060331.html ぱっと見の機能 HTML のソースを見ながら、属性値を直接編集できる。 影響のある CSS を即時に表示 レイアウト情報を即時に表示 インスペクト中の要素に浮上したイベントをキャプチャ インスペクト中の要素の JavaScript オブジェクトを表示 Ajax レスポンスのヘッダも確認できるようになった。 FireBug のインストール https://addons.mozilla.org/extensions/moreinfo.php?application=firefox&id=1843

    IT戦記 - FireBug の新しいバージョンが便利すぎる件について
  • IT戦記 - Prototype.js を使った JavaScript OOP 講座 #02

    社内の勉強会の資料をここに公開していきます。社内の人も社外の人も読んでください。 ※ターゲットは JavaScript は書いたことない、オブジェクト指向言語プログラマ。 ※信念は「教わるのではなく、必死に着いていきませう」 今週はかなりハードボイルドで全身タイツのような忙しさなので、みんなが春を分けて楽しんでいたり、香港に行って楽しんでいる間にせこせこ資料を作っています。 はぁ。 Section 00 Prototype.js の前に JavaScript と DOM とイベントの概要 HTML は読み込まれた後、すべての情報が JavaScript のオブジェクトに変換される。 イメージ的にはこんな感じ <html> <head> <title>タイトル</title> </head> <body> : : </body> </html>↓↓↓ var document = { doc

    IT戦記 - Prototype.js を使った JavaScript OOP 講座 #02
    talo
    talo 2006/03/24
    prototype.jsの使い方
  • IT戦記 - 複雑で重くなった JavaScript を超高速化する方法。

    以下のスクリプトを他のすべてのスクリプトよりも前に読み込む。 var nativeSetInterval = window.setInterval; _setInterval = {}; window.setInterval = function(process, delay) { var entry; if(typeof process == 'string') { entry = new _setInterval.Entry(function(){eval(process);}, delay); } else if(typeof process == 'function') { entry = new _setInterval.Entry(process, delay); } else { throw Error('第一引数が不正です。'); } var id = _setInterv

    IT戦記 - 複雑で重くなった JavaScript を超高速化する方法。
  • 1