タグ

ブックマーク / anatoo.hatenablog.com (8)

  • JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ

    2015年にもなるのにJavaScriptでのDOM操作のパフォーマンスについて書く。ウェブページにインタラクションを持たせたい時に、JavaScriptでDOM操作を行うことがよくある。このDOM操作のパフォーマンスについて、よく聞く意見を大別すると次の2つがある。 JavaScriptによるDOM操作は重たい レンダリングが重いだけで、DOM操作そのものはそれほど重たくない JavaScriptでオブジェクトのプロパティを操作したりする単体の処理は通常1ミリ秒もかからないが、DOM操作をするとレンダリングが完了するまでに数十ミリ秒程度かかったりする場合がある。1番目のDOM操作が重たいと言っている人は経験則的にそう言っていることが多い。 レンダリングの仕組みを知っている人は2番目の意見を言うが、重箱の隅をつつくような話をするとこれも必ずしも正しいわけではない。DOM操作するコードによっ

    tyage
    tyage 2015/10/15
  • PHP5.4のリポジトリに新たに[]による配列の文法が追加 - id:anatooのブログ

    今までPHPでは配列を書くのにarray()という記法を使う必要があったが、PHP5.4のリポジトリに新しい配列の文法が追加された。[]で囲むことで配列を表現することができるようになっている。連想配列についても同様。 add short array syntax as defined in https://wiki.php.net/rfc/shortsyntaxforarrays, 2nd solution using => only http://svn.php.net/viewvc?view=revision&revision=313641 以下、配列の新しい文法に関するテストケースを引用。 --TEST-- Testing array shortcut and bracket operator --FILE-- <?php $a = [1, 2, 3, 4, 5]; print_r(

    tyage
    tyage 2013/11/18
  • 第四回闇PHP勉強会で正規表現リテラルの実装について話した - id:anatooのブログ

    PHPに正規表現リテラルをどんな感じで実装するかを3/2の第四回闇PHP勉強会で話しました。PerlJavaScriptRubyPythonが持っているような正規表現リテラルがPHPには無いのですが、この話では実際にパッチを書いてみてどんな感じで正規表現リテラルを追加していったのかをデモをまじえつつだらだら話す感じで説明しました。 他の方の発表も基的にはZendEngineや拡張の話だったのですが、自分の知らないところの知識やノウハウが話されていて参考になりました。@rskyさん、@do_akiさん、@hnwさん発表お疲れ様でした。 次回の開催はいつぐらいにやるか特に決めてないのですが、だいたい6,7月ぐらいになるかなーと思っています。

    第四回闇PHP勉強会で正規表現リテラルの実装について話した - id:anatooのブログ
    tyage
    tyage 2013/03/09
  • 闇PHP勉強会では何をやっているのか? => 拡張ライブラリとかZendEngineの話ばっかりやってる - id:anatooのブログ

    どうもこんにちは、anatooです。皆さんいかがお過ごしでしょうか。僕は大変元気です。 タイトル通り闇PHP勉強会の話です。ちょうど第四回の参加者募集も始まりましたが、この勉強会は約一年前ぐらいから続けられている小さな勉強会です。名前のとおり、PHPに関する勉強会なのですが、普通にPHPの話しなくてもPHPユーザ会がやっているPHP勉強会があるからもういいよねってことで、「普段光に当たらないところや、メジャーでないPHPの話」をする勉強会として定期的に開催しています。 んで、具体的にはどんな話をしているかというと、9割がたがPHPの拡張ライブラリネタだったりPHP内部のZendEngineの話やそれのハックの話となっています。勉強会のテーマとして拡張ライブラリなどの話に限っているわけではありませんし、PHPで書いたPEGパーサコンビネータに関する話とかも僕が一度やったのですが、なぜか皆拡張

    闇PHP勉強会では何をやっているのか? => 拡張ライブラリとかZendEngineの話ばっかりやってる - id:anatooのブログ
    tyage
    tyage 2013/03/06
  • Node.jsがどうして注目されているのか、もしくはどうして他のサーバサイドJavaScriptはスルーされているのか - id:anatooのブログ

    サーバサイドJavaScriptにはNode.js以前にもいくつかの実装がある。ちょっと前に注目されかけたものだと、現在はAppcelerater社に買収されたAptana社が出していたJaxerなどがあるが、きちんと調べるとRingoJsやnarwhalやv8cgiなど選択肢の一つとして数えられるサーバサイドJavaScript実装がいくつかある。ただ、これらはNode.jsのように注目を浴びているわけではない。 Node.jsとこれらの既存のサーバサイドJavaScriptの違いは、他のサーバサイドJSの動作モデルが既存のサーバサイドのものと変わらないのに対して、Node.jsの場合はそうではないから。具体的には、HTTPコネクションのハンドリング戦略が違っていて、既存の動作モデルが1コネクションに対して1プロセス/スレッド消費するのに対して、Node.jsの場合は非同期I/Oを用いて

    Node.jsがどうして注目されているのか、もしくはどうして他のサーバサイドJavaScriptはスルーされているのか - id:anatooのブログ
  • PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ

    HTTPレスポンスをajaxでストリーミング的に受け取りたいとき、要するにHTTPストリーミングをしたい時には、Transfer-Encoding: chunkedなレスポンスを生成してやるとよい。こうするとAjaxではHTTPレスポンス全体を受け取るのを待たずに、レスポンスの中身にアクセスすることが出来るようになる。従って、一つのHTTPコネクションでサーバ側から任意のデータを好きなタイミングでプッシュすることが出来る。 コード 一秒ごとに生成されるJSONをストリーム的に受け取るデモのコードが以下。 <?php // push.php function output_chunk($chunk) { echo sprintf("%x\r\n", strlen($chunk)); echo $chunk . "\r\n"; } header("Content-type: applicati

    PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ
  • PHPで書いたはてな記法パーサ&レンダラをopenpearで公開しています - id:anatooのブログ

    HatenaSyntax \ Package \ Openpear はてな記法パーサ&レンダラをopenpearで公開しています。現在beta版です。 CodeReposに置いていたはてな記法パーサの後継ですが、コードは全て書き直されています。使い方も違います。 CodeRepos版とopenpear版との違いは以下の通りです。 pearを通してインストールする 構文木を取り出すことができる いくつか細かな部分に対応できるようになった パーサの実装が変わった pearを通じてインストールする CodeRepos版の様にファイルを一つ保存してインストール終わり、という風にはいかず、openpear版の場合はpearを通じてインストールしてもらうことになります。 インストールする方法はOpenpear :: Open PEAR Repository ChannelとHatenaSyntax \

    PHPで書いたはてな記法パーサ&レンダラをopenpearで公開しています - id:anatooのブログ
  • jQueryはモナドだ - id:anatooのブログ

    この記事はjQuery is a Monad | Important Shockという記事の勝手訳です。 追記1: bonotakeさんが補足記事を書いてくれています → JQueryがモナドかどうかとか - たけをの日記@天竺から帰ってきたよ 追記2: hirataraさんが補足記事を書いてくれています → jQueryは当にモナドだった - 北海道苫小牧市出身のPGが書くブログ Haskellプログラマーは誰しもがモナドに関する各々のチュートリアルを書くと言われる。というのも、一度モナドの定義とその可能性を理解すれば、モナド全体を囲む神秘性に挑戦して打ち破るのが容易になるからだ。門外漢からすれば、モナドはHaskellを真に理解することを妨げる不可解な障壁だ。モナドはとても不適当な名前で呪われていて、一風変わった文法を持ち、一度に何もかもやってしまう様に見える。しかしながら、その動き

    jQueryはモナドだ - id:anatooのブログ
  • 1