タグ

JavaScriptに関するdaisukebeのブックマーク (57)

  • blog.8-p.info: Facebook の BigPipe と TTI

    Posted at 2010/10/22 01:59, Modified at 2010/10/22 03:42 Facebook のフロントエンドは結構かわったことをやっていて、例えば、ログイン後の http://www.facebook.com/home.php には <div id="pagelet_home_stream"></div> みたいな空の HTML があり、その後に <script>big_pipe.onPageletArrive({ … });</script> <script>big_pipe.onPageletArrive({ … });</script> ... と script 要素が何個もならんでいる。 BigPipe: Pipelining web pages for high performance この仕組みは (変数名のとおり) BigPipe と呼

  • WebSocketで目指せ“リアルタイムWeb”!第1回 node.jsの衝撃とWebSocketが拓く未来 - @IT

    ご挨拶 こんにちは、ロンドンのNew Bambooという会社でWebエンジニアとして働いている@makoto_inoueです。ここのところ、PusherというWebSocketのクラウドサービスの開発に関わっています。今回から3回に渡ってWebSocketに関する短期連載を担当させていただきます。 私を含めたNew Bambooの面々(我々は自分たちのことをBambinoと呼んでいます)がWebSocketになぜ興味を持ったかということからはじまり、実際にクラウドサービスを始めるまでにいたったストーリーをお話ししたいと思います。そのストーリーを通じて、WebSocketが切り開く「リアルタイムWeb」な世界への可能性や技術的課題を皆さんと共有できればと思っています。

    WebSocketで目指せ“リアルタイムWeb”!第1回 node.jsの衝撃とWebSocketが拓く未来 - @IT
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • node.js

    V8 JavaScript を用いたイベント駆動I/Oの実現 全てのリクエストに対して"Hello World"と返答するNodeで書かれたWEBサーバの例です。 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8124, "127.0.0.1"); console.log('Server running at http://127.0.0.1:8124/'); このサーバを走らせるには、コードを example.jsというファイル名で保存し、下記のように nodeコマンドを実行してください。 % node example.js

  • node.js とは何か - I am bad at math

    期せずして久々の更新になってしまった。ブログを書く気がなくなったとかそういうのではなくてただ単に忙しかっただけ。その間、まぁ仕事が予期せぬ方向から炎上してみたり、事故をもらって愛車が全損したり(フロントガラスが全面熱線入りなんていう変なオプションなどを諸々付けていたからお気に入りだったのに)と決して良いことばかりで忙しかったわけではないけどね! で、今回は node.js のお話。異様な盛り上がりを見せているものの、じゃぁそれっていったい何かというと「JavaScriptを用いたNon-blocking I/O環境」という非常にシンプルなものだ。 その根底には「うまくスケールできること」と「動作が速いこと」という理念が見受けられる。 まず「うまくスケールできること(多量のアクセスを捌けること)」を解決するにあたり、まずはスレッドモデルか、イベントループかという問題があった。そこで auth

    node.js とは何か - I am bad at math
    daisukebe
    daisukebe 2010/10/22
    「ryan はこの、イベントループにおけるブロックをなくそうと考えた。それが node.js のそもそもの始まりってわけ」
  • Chrome Extentions by os0x

    daisukebe
    daisukebe 2010/10/20
    os0xさんの拡張集
  • JavaScriptのベストプラクティス大会 jsEdu

    詳細は"10 Free Copies of “JavaScript Patterns” from O’Reilly Books | Nettuts+" http://net.tutsplus.com/freebies/books/10-free-copies-of-javascript-patterns-from-oreilly-books/ 要は #jsEdu つけてJavaScriptのTips投稿してね。の検索メモ。 追記:一部取り出して日語にしてみました。 続きを読む

    JavaScriptのベストプラクティス大会 jsEdu
    daisukebe
    daisukebe 2010/10/19
    まだ全部読んでないけどわりとやってた
  • indexOf と RegExp の速度比較 - m2

    単純な特定文字列の存在確認をするのに indexOf と正規表現でどれくらい差があるのかなと思って、次のようなコードを書きました。 (function(){ var a = [], n = 10000; for (var i = 0; i < n; i++) { a.push('item:' + i); } var str = a.join('\n'); var s = new Date(); for (var i = 0; i < 3000; i++) { //var m = str.indexOf('item:9999'); // (1) indexOf //var m = /item:9999/.exec(str); // (2) 静的な正規表現 //var m = new RegExp('item:9999').exec(str); // (3) 動的生成の正規表現 //var m

    indexOf と RegExp の速度比較 - m2
  • AJAX クロール: ウェブマスターおよびデベロッパー向けガイド - ウェブマスター ツール ヘルプ

    概要 検索結果に表示したいコンテンツで AJAX アプリケーションを実行している場合、Google が新しく作成したプロセスを実装すると、Google によるサイトのクロールとインデックス登録が可能になります。このプロセスは、Google 以外の検索エンジンでもうまく機能する可能性があります。AJAX コンテンツはブラウザによって動的に生成されるためにクロールで検出することができず、検索エンジンで AJAX アプリケーションを処理することは困難でした。この問題に対応するメソッドも既にありますが、このメソッドでコンテンツを最新の状態に保つには、手動で定期的に保守を行う必要があります。 一方、以下のスキームでは、検索エンジンでスケーラブルにコンテンツをクロールし、インデックスに登録できます。また、ウェブマスターが継続的に手動で保守を行わなくても常に最新のコンテンツがインデックスに登録されます。

  • JavaScript: The Good Parts

    JavaScriptは言わばひとかたまりの大理石であり、私はその中からこの言語のすばらしい質が現れるまで、美しくない機能を取り除いていく。最終的に私が削り出すことになる美しいサブセットは、より信頼でき、読みやすく、メンテナンスがしやすく、すべてにおいて非常に優れた言語になると私は信じている。」(「1章 良いパーツ」より)――書は、JavaScript言語の「良いパーツ」に注目し、良質なコードを書くためのポイントを示唆する書籍です。「良いパーツ」を通してJavaScriptを再評価することで、見落とされていたJavaScript言語の質が見えてきます。 関連ファイル サンプルコード 原著者が提供する付録EのJSONコード 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お

    JavaScript: The Good Parts
  • クロージャをメモリから解放する

    think49 @think49 関数オブジェクトを代入した変数に null を代入しても、クロージャによる変数への参照は切れないらしい。 結論としては、参照を切る方法はない…のかな? http://ideone.com/gNwf8 #JavaScript

    クロージャをメモリから解放する
  • コア・JavaScript ( JavaScript. The Core. ) - oogattaの勉強日記

    この文章は、 Dmitry A. Soshnikov さんの、 ECMAScript に関する優れた記事 "JavaScript. The Core." を許可を得て翻訳したものです。世の中に、 JavaScript のブラウザ API や、実装系に関する記事は多々あれど、 ECMAScript の仕様に則って、ここまで詳しく説明してくれている記事は殆ど無いと思います。今回は翻訳できておりませんが、文中で参照されている Dmitry さんの ES3 シリーズも、読み応えのある( ECMAScript3 の仕様の副読としても読める)素晴らしい内容ですので、是非チャレンジしてみてください!(ご要望があれば訳します翻訳許可を頂いたので、この記事内で参照されている章から逐次翻訳を進めます!)。 ちなみに Dmitry さんは、計算機科学や数学にも明るい方でらっしゃいます。が、私は違います。極力

    コア・JavaScript ( JavaScript. The Core. ) - oogattaの勉強日記
  • Scriptish (Greasemonkey フォーク版) キタ━━━ヽ(゚∀゚)ノ━ - hogehoge @teramako

    Scriptish Beta! A New Greasemonkey - Erik Vold's Blog Scriptish :: Add-ons for Firefox Home - scriptish - GitHub ついにというべきか何というべきか、Greasemonkeyのフォーク版が登場した。 因みに対象は Firefox 4.0beta5 〜 4.0beta7 彼曰く、 Greasemonkeyは大好きだ が、Firefox 1.5 をサポートするために新機能の追加ができなかった JavaScriptコードモジュール(JSM)とかね 複数ウィンドウを立ち上げる時や起動時にメモリを少なくパフォーマンス向上につながる 次のメジャーリリースである Greasemonkey 0.9 でやっとサポート対象の最小バージョンが 3.0 に上がる が、メンテナたちはバグフィックスとか最小限

    daisukebe
    daisukebe 2010/10/01
    クリップボードにコピーできるのはよいね
  • Facebook 化の恐怖 - 知らないけどきっとそう。

    ヤバゲーのことを書こうと思ったのですが、メンテが終わらないのでつなぎです Twitter のタイムラインをはじめ様々な場所で、ユーザ人の写真を見ることが多くなってきました Facebook はさらにその傾向が強いですし、顔写真を公開することの抵抗が、だんだんと少なくなってきてるのかもしれません 大部分は横顔だったり、遠景で表情がわからなかったりするものですが、稀に顔部分のアップがあります それがカメラ目線だったりすると、なんというか、すごい速さでスクロールアウトさせてしまいたくなります イラストなどは割と平気なのですが、不思議ですね そんなわけで、心の平静を保つための Greasemonkey ユーザスクリプト です たとえば 日政治家のタイムライン ですが、さすがに選挙ポスターのような写真がほとんどです ここで先ほどの スクリプト を有効にすると… さらに Greasemonkey

    Facebook 化の恐怖 - 知らないけどきっとそう。
  • JavaScriptで比較的本気でお絵描きアプリを作ってみた | fladdict

    JavaScriptで結構ガチに、お絵描きツールを作ったみました。推奨ブラウざは、IEとOpera以外。 実装期間はポケモン・ホワイトをやりつつ、トータルで1週間ほど。 今後、人生をFlash, iPhone, HTML のどの方向にリソース配分するか?ということで、実験的にHTMLも触ってみるテスト。やってみたら、結構いける感覚。IEさえ無視すれば。 以下、雑感。 Flash と JSの比較 かつてFlashが持っていた、実行速度という究極のアドバンテージはもはやないに等しいようです。 いままで「指先ツール」のような負荷の高い機能はFlashでも大分辛い機能でしたが、現在のJSでは遜色なく動きます。カラーホイールも全部、リアルタイムに計算してグラデーションを生成していますが、無問題。 こうなると疑問になってくるのは、Flashの優位性。 正直、現在WebにおけるFlashのプレゼンスは大

  • サイボウズで学んだこと - IT戦記

    はじめに 2010 年 9 月 15 日を持ちまして、サイボウズ・ラボを退職いたしたました。 報告も兼ねて、久しぶりにブログを書いてみたいと思います。 (写真はゆうすけべーさんです) この会社に入って、たくさんの学びと思い出がありました。 その一つ一つをまとめていければ、素晴らしい記事になるのかもしれませんが、僕は文章が苦手です。 ですので、うまく退職のエントリを書き上げることができません。 言葉にできない。そんな感じです。 なので、このエントリはサイボウズ・ラボやサイボウズ社の仲間たちへのありがとうの気持ちをこめて、自分らしく最後まで JavaScript のことを書きたいと思います。 サイボウズでの最後の仕事 僕にとって、サイボウズでの最後の仕事は「JavaScript で新しいユーザーインタフェースを作ること」でした。 そして、その中で始めて複数人による大規模な JavaScrip

    サイボウズで学んだこと - IT戦記
    daisukebe
    daisukebe 2010/09/18
    JavaScriptの大規模開発。やっぱり制約は多い。おつかれさまでしたー
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    daisukebe
    daisukebe 2010/09/16
    むむー
  • Chrome拡張入門

    daisukebe
    daisukebe 2010/09/13
    リンクも含めてまとまってる
  • Chrome Extensions API リファレンス

    This domain may be for sale!

  • Greasemonkeyで永続的に外部スクリプトを利用する - 技術メモ帳

    GM_setValue / GM_getValue + unsafeWindow.eval を使って 永続的に外部スクリプトを利用する方法を考えてみた。 わざわざ DOM で script要素 を毎回注入するよりも 速いんじゃないかと思う。 Greasemonkeyには、GM_setValue / GM_getValue というのがあって、 GM_setValue("キー", "値") 上記のように入力してあげる事によって、たとえ、 Firefoxを終了させたとしても消えないデータを作成する事が出来る。 そして、それを利用して、 初回のみ XmlHttpRequest で外部スクリプトデータを取得して、 GM_setValue でスクリプトデータを永続化しておき、 二回目以降は、それを GM_getValue して eval するようにした。 以下は、永続的に prototype.js を

    daisukebe
    daisukebe 2010/09/11
    なるほどー