タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

ProgrammingとJavaScriptとJavascriptに関するagwのブックマーク (1,007)

  • 「足あとライブ!」に関するテクニカル・メモを書いてみた

    「足あとライブ!」や「ホットエントリーライブ!」を作っているうちに、CometサーバーとJavascriptをどう組み合わせれば良いか、なのどノウハウが色々とたまってきたので、一度テクニカル・メモの形にまとめてみることにした。ちょうど英語のブログの更新が止まっていて、なんとかせねばと思っていたので、そちらのエントリーとして書かせていただいた。 Live Page-View Counter, Comet server and JSON-push ソースコードすべてを公開しているわけではないが、C++で直接ソケットを操作するコードを書くことができて(つまりCometサーバーを自作することができて)、サーバー側のスクリプト(言語は問わない)とJavascriptをある程度書ける人であれば、このペーパーに書かれた情報を元に自分でも同じようなサービスを作ることが可能になるように書いたつもりである。も

  • Live Page-View Counter, Comet server and JSON-push

    Overview A "page-view counter" or "hit counter" is a mechanism that displays the number of page-views on an HTML page. It uses a server side of script that counts the page-views, dynamically generates an HTML page on the server side, and returns it back to the browser. Although it accurately displays the number of page-views at the point when the HTTP request was made to fetch the HTML page, it wi

  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

  • プリミティブ値でもプロトタイプ的継承: Days on the Moon

    書き上げた後に元記事の続きが出ているのに気づいたが、方向性が違うようなのでそのまま掲載。 404 Blog Not Found:javascript - プロトタイプ的継承 (元記事: Prototypal Inheritance) より。継承という言葉は意味が広いので、この操作に対してはチャイルドの作成といったほうが個人的にはわかりやすい。 さて、元記事で紹介されているコードではプリミティブ値からのチャイルドの作成 (継承) ができなかった。これはなぜかといえば、オブジェクト作成の際、プリミティブ値をプロトタイプ ([[Prototype]] 内部プロパティ、__proto__ プロパティ) に設定することはできないからである。 そこで、プリミティブ値が渡された場合は、それをラッパオブジェクトに変換することにする。といっても場合分けの必要はない。Object 関数を使えば、プリミティブ値

  • javascript - プロトタイプ的継承完全版 : 404 Blog Not Found

    2006年10月18日21:00 カテゴリLightweight Languages javascript - プロトタイプ的継承完全版 Kazuho@Cybozuさま、いつもありがとうございます。 Kazuho@Cybozu Labs: JavaScript の String 型を継承する 結論から言うと、String 型も継承っぽいことができます。こんな感じ。 おかげでプロトタイプ的継承モデルの完全版が出来ました。 AtomicなObjectを継承 これは、以下のように包括的に出来ます。 var Atomic = function(C){ var P = function(v){ this._v = v; }; P.prototype = new C; P.prototype.valueOf = function(){ return this._v.valueOf(); } P.pro

    javascript - プロトタイプ的継承完全版 : 404 Blog Not Found
  • javascript - Prototypal Object Modelの落とし穴 : 404 Blog Not Found

    2006年10月19日11:30 カテゴリLightweight Languages javascript - Prototypal Object Modelの落とし穴 「404 Blog Not Found:javascript - プロトタイプ的継承」とその続編「404 Blog Not Found:javascript - プロトタイプ的継承完全版」は、案の定反応すべきbloggersが然るべき反応をしてくれた。これをbloggingの魅力と言わずしてなんと呼ぼうか。 プリミティブ値でもプロトタイプ的継承: Days on the Moon 書き上げた後に元記事の続きが出ているのに気づいたが、方向性が違うようなのでそのまま掲載。 IT戦記 - 関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。でも、実際はあそこまで複雑に書かなくても、できると思います ^^; 感想は

    javascript - Prototypal Object Modelの落とし穴 : 404 Blog Not Found
  • JavaScript で undefined って予約語じゃなかったんだ!! - IT戦記

    変数が undefined かを確認するとき、以下のようなコードを使うのをよく見かけます if(typeof obj == 'undefined') 個人的にはこれでいいじゃんとか思ってたんです if(obj == undefined) でも、偶然発見してしまった。。 undefined って変数だったんすね。。 undefined = 1; alert(undefined); // 1 でも、nullは予約語なんだー。 なんか、釈然としないぞー!うーん!

    JavaScript で undefined って予約語じゃなかったんだ!! - IT戦記
  • 関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。 - IT戦記

    最近、プロトタイプ的継承の話しが盛り上がっています。 http://blog.livedoor.jp/dankogai/archives/50662064.html http://labs.cybozu.co.jp/blog/kazuho/archives/2006/10/javascript_string.php http://blog.livedoor.jp/dankogai/archives/50662606.html 最終形がやたら複雑になっています でも、実際はあそこまで複雑に書かなくても、できると思います ^^; そう思う理由 P 関数は object 関数の中でローカルのものである。コンストラクタとして使える必要はない。なので、 Atomic な場合でも P は function(){} でいい。 method 関数では P.prototype のプロパティに関数が代入されて

    関数一発でプロトタイプチェーンに繋げて、オブジェクトをクローンする。 - IT戦記
  • Firefoxでのスクリプト読み込みの同時実行について - snippets from shinichitomita’s journal

    http://d.hatena.ne.jp/ladybug/20060926#p2 FireFox では、複数の SCRIPT タグがレンダリング対象に存在すると、そのすべての SCRIPT タグのソースコードを読み込み完了するまで、スクリプトエンジンは新しいスクリプトを実行しないようになっているようだ。また、レンダリングエンジンは読み込み終わったスクリプトをメモリ上で保持しているため、レンダリングと読み込みは完了しているがまだスクリプトエンジンにわたっていない、という状態のスクリプトを保持している SCRIPT タグを破棄しても、その SCRIPT タグで読み込まれたスクリプトは、きっちりスクリプトエンジンによって実行される。 えっ、と思ってしまった。Firefoxではちゃんと同時実行されてるような気がしてたので。 とりあえず、www.lingr.comに行って、以前作ったYahooペー

    Firefoxでのスクリプト読み込みの同時実行について - snippets from shinichitomita’s journal
  • きまぐれ日記: Javascript でキャレットの位置を取得できる?

    Ajax IME は Javascript を悪用しつつ強引にインラインかな漢字変換を実現しています. 簡単そうに見えて以外とややこしいのが,変換候補の表示. textarea のキャレット(カーソル) のピクセル単位での位置をなんとかして取得してその位置に変換候補を 出す必要があります. ありがちな google suggest ような補完インタフェイスだと inputbox の真下に出せばいいので位置は完全にわかるのですが,textarea は簡単ではありません. 調べた限り,どうやら標準ではキャレットの位置を取得できないそうです. ただし IE だと以下の方法でピクセル単位での位置がわかります. var caretPos = document.selection.createRange(); y = (caretPos.offsetTop + document.documentEle

  • 最速インターフェース研究会 :: SafariのAjaxの文字化けをクライアント側だけで対応するバッドノウハウ

    SafariでXMLHttpRequestのresponseTextが文字化けするという話。 http://blog.33rpm.jp/garbled-on-safari.html 最近のバージョンだとcontent-typeがちゃんとしてれば化けなかったような記憶があるけど、まあともかくとして、Safariで文字化けするのはJavaScript側だけで対処することができたりする。 http://kawa.at.webry.info/200511/article_9.html これ読んでほんとかよ、って感じだったんだけど案外役に立った。livedoor Readerで使われてたり。 実際に使われてるコードはこんなの。 if(browser.isKHTML){ ajax.filter.add(function(t){ var esc = escape(t); return(esc.index

  • 最速インターフェース研究会 :: 実践JavaScriptリファクタリング、その2

    連載すんの? リファクタリングとか嘘で実は実践ビルトインオブジェクトハックなんだけど。 例題 配列 a = [3,5,4,2,1] から一番小さな値と、一番大きな値を取り出すにはどうすればいいか。 多分昔はこんな風に書いてたと思うんですよ。 a = [3,5,4,2,1]; for(i=0;i<a.length;i++){ if(i == 0){ min = a[0]; max = a[0]; } if(min > a[i]){min = a[i]} if(max < a[i]){max = a[i]} } 模範解答として、後先考えないやり方を提示しておく。 a = [3,5,4,2,1]; min = a.sort().shift();// 1 max = a.sort().pop(); // 5 短い。ただし、これをやるとaの内容は並べ替えられて最初と最後の要素が取り除かれる。 a /

    agw
    agw 2006/09/21
    大変秀逸なエントリ。
  • いしなお! - JavaScriptでpreg_replace_callback (17:16) , WikiParserをアップデート (18:19)

    _ JavaScriptでpreg_replace_callback (17:16) WikiParserをJavaScriptに移植してみようかと思ったら、preg_replace_callback相当の正規表現(Perlで言うと/eg)が見あたらない。っつーか、ないんだよね? しょうがないんで、こんな感じで動かしてみたんだけど、なんとも不格好な感じ。もうちょいいい書き方ないかなー。 function replace(str) { str = str.replace(/(123)/g, "' + callback('$1') + '"); str = str.replace(/'/g, "\\'"); str = str.replace(/\\' \+ callback\(\\'(.+?)\\'\) \+ \\'/g, "' + callback('$1') + '"); str = e

    agw
    agw 2006/09/19
    replaceと関数オブジェクト
  • 正規表現のeオプションをJavaScriptでエミュレート

    Perlなどの置換系の正規表現ではeというオプション(フラグ)をつけると、置換後の文字列をプログラム・コードとみなしてくれるわけですが、JavaScriptのreplace()の第一引数で指定する正規表現にはeオプションなどというモノはありません。しかし、replace()の第二引数である置換後の文字列にはStringオブジェクトや文字列リテラル以外にも関数を指定することもできるので、事実上eオプション相当のことが実現できます。エミュレートというのは正確ではない気がするけど気にしない。 具体的には、 var s = "asdf123asdf123456asdf123asdf"; document.write( s.replace( /123/g, function (num, idx, old) { return parseInt(num) + 333; } ) ); という感じ。上記例で

    正規表現のeオプションをJavaScriptでエミュレート
    agw
    agw 2006/09/19
    replaceと関数オブジェクト
  • 最速インターフェース研究会 :: Safariでreplace callback のエミュレーション

    replaceメソッドをhackしてsafariでもreplace callbackを使えるようにしてみた。Safari バージョン 2.0.2(416.13)で上手く動いたそうです。手元に環境が無いので細かい検証はできませんが、とりあえず。 http://la.ma.la/misc/js/replace_callback/ 解説JavaScriptのString#replaceメソッドは文字列を置換して新しい文字列を返すメソッドですが、第二引数に置換後の文字列を指定する代わりにfunctionオブジェクトを渡してやると、Perlでいうところのeオプションみたいなことができます。 // 大文字を小文字に、小文字を大文字に String.prototype.swapcase = function(){ return this.replace(/([a-z])|([A-Z])/g,functi

    agw
    agw 2006/09/19
    replaceと関数オブジェクト
  • Canvas tutorial - MDC

    このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。 0 , ��View in English P�- ��Always switch to English このチュートリアルは、 <canvas> 要素を使用して二次元のグラフィックを描画する方法を、基から説明します。ここでの例は、キャンバスで何ができるかを明確に示すものであり、独自のコンテンツを作成するためのコードスニペットも提供しています。 <canvas> は HTML の要素であり、スクリプト(ふつうは JavaScript)を使ってグラフィックを描くことができます。これは例えば、グラフを描いたり、写真を合成したり、簡単なアニメーションを作成したりすることができます。 <canvas> は ApplemacOS Dashboard

    Canvas tutorial - MDC
  • JavaScriptのsetTimeoutについて - 最速配信研究会(@yamaz)

    JavaScript を学ぶ際に一番重要なのに、誤解されがちな setTimeout 系の概念 http://d.hatena.ne.jp/amachang/20060910/1157911122 上記はてブコメント http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/amachang/20060910/1157911122 JavaScriptがシングルスレッドなのは仕様? http://d.hatena.ne.jp/ajiyoshi/20060911 でsetTimeoutの仕様について熱く語られている.私も興味を持ったのでざっと調べてみた. まず超基的な話としてマルチプロセスなOSにおいて完璧な 時間制御というものは無理ということだ.これは話を極端にして 「1万個ブラウザ立ち上げてきっちり1msecごとになにかをさせようとしたらちゃん

    JavaScriptのsetTimeoutについて - 最速配信研究会(@yamaz)
  • [鏡] 入門 JSON 2 -- 戯れ言++

    「入門 JSON」が微妙に評判がいいみたいなので, 今回はもう少し踏み込んだ内容を書いてみたいと思います。 前回では JSON のデータフォーマットについて曖昧な表現や説明のまま流していますが, ここではもう少し厳密に見ていきます。 またもや長文です。 ご注意を。 なお, この記事は「Introducing JSON」(日語訳)と併せてご覧いただくことをお奨めします。 前回は JSON のデータ型について連想配列(members)と配列(array)の2つがあると説明しました。 しかし実際にはもうひとつオブジェクト(object)という型があります。 実は JSON ではこのオブジェクトがデータの基になっています。 (説明が長くなるので前回はこの部分についてワザと端折りました) オブジェクトは以下に示すようにブレス記号で囲んだ表現になります。 { } { members } ここで注意

    [鏡] 入門 JSON 2 -- 戯れ言++
  • cyano: prototype.js version 1.4.0系でのEnumerableの使い方

    Ruby on Railsなどのフレームワークに標準付属されていて、オブジェクト指向なJavaScriptを書く人たちの間で注目されているprototype.jsですが、Version 1.3.1時点での機能についての解説書は見つけたものの(prototype.js v1.3.1 の使い方)、1.4系で盛り込まれるであろうEnumerableについては見つけることができませんでした。なので、Version 1.4.0_rc4時点でのEnumerableについて解説してみます。 Enumerableとは、配列やハッシュなどのデータ構造に対して繰り返し処理をさせるための機能を集めたものです。たとえば配列に入っている値それぞれについて処理を行いたかった場合、従来ならば以下のように書いていたでしょう。 var data = [1,2,3,4]; for(var i=0; i<data.length

  • 2006-08-02

    【抜粋】一部省略 var Hash = { _each: function(iterator) { for (key in this) { var value = this[key]; if (typeof value == 'function') continue; var pair = [key, value]; pair.key = key; pair.value = value; iterator(pair); } }, (省略) inspect: function() { return '#<Hash:{' + this.map(function(pair) { return pair.map(Object.inspect).join(': '); }).join(', ') + '}>'; } }いわゆる連想配列を扱うクラスです。Hashクラスも、Enumerableクラスと同

    2006-08-02