タグ

ブックマーク / tech.nitoyon.com (6)

  • JavaScript フレームワークがデータバインディングを実現する4通りの手法

    最近流行りの JavaScript MV* フレームワークは、どれもデータバインディングをサポートしているが、実現方法はフレームワークによって異なる。 この記事では、各種フレームワークがどのようにモデルの変更を検知しているかを次の 4 つのパターンに分類して紹介する。 モデル クラス方式 (Ember.js、Backbone.js、Ractive.js、Knockout.js など) 力ずく方式 (AngualrJS) モデル書き換え方式 (Vue.js) Object.observe 方式 (Polymer) パターン名は私が勝手に名づけたものだけど、このへんの雰囲気が理解できれば、フレームワークごとの個性が分かるだろうし、利用イメージもわきやすいんじゃないかと思っている。 1. モデル クラス方式 「モデルとして扱えるのはフレームワークが用意したモデル クラスのインスタンスだけ」という

    JavaScript フレームワークがデータバインディングを実現する4通りの手法
  • これがスマートフォン向けサイトを作るときの viewport 設定3パターンだ

    スマートフォン向けの Web サイトを作るとき、viewport の設定次第で使い勝手が大幅に変わる。 最近はレスポンシブ Web デザインが流行してるけども、その大前提として viewport の設定パターンを抑えておくのは重要だろう。 この記事では、viewport の設定によって、見た目・使い勝手がどう変わるかを解説する。 パターン1: 何も考えずに HTML を書く まずは、viewport を指定せずに、単純な HTML をスマートフォンで表示してみる。 <!DOCTYPE html> <head> <meta charset="utf-8"> </head> <body> <img src="/images/logo-ja.png"> <p>色んな素材がごった煮になった様子をお椀で表現しています。 湯気が<strong>「てっく」</strong>に見えるのが隠し味になっていま

    これがスマートフォン向けサイトを作るときの viewport 設定3パターンだ
  • Node.js の fs.watch() と fs.watchFile() の違い

    Node.js のファイル監視の API には fs.watch() と fs.watchFile() の 2 つがある。 微妙に機能がかぶっているし、使い分けが分かりにくかったので調べてみた。 公式情報を見る まずは公式のドキュメント (v0.8.0)を見てみた。 fs.watchFile(filename, [options], listener) Stability: 2 - Unstable. Use fs.watch instead, if available. Watch for changes on filename. fs.watch(filename, [options], [listener]) Stability: 2 - Unstable. Not available on all platforms. Watch for changes on filename,

    Node.js の fs.watch() と fs.watchFile() の違い
  • pageant.exe の仕組みと危険性

    PuTTY で SSH2 接続するとき、毎回パスフレーズを入力するのがめんどくさいという理由で pageant を常時起動してる人も多いのでは。 そんな pageant の仕組みと、使っていく上でのリスクが気になったので、ちょっくらソースを読んでみた。 プロセス間通信の仕組み PuTTY や WinSCP3 など、pageant を利用するアプリケーションは、何らかの方法で pageant と通信しているはずだ。この通信処理を実装しているのが winpgntc.c であり、PuTTY も WinSCP3 もソースコードに winpgntc.c を含んでいる。 リクエスト側 細かくなるけど、PuTTY や WinSCP3 がリクエストするときの手順は次のようになっている。 pageant の(非表示になっている)ウインドウを FindWindow 関数で探し出す。CreateFileMapp

    pageant.exe の仕組みと危険性
    ngyuki
    ngyuki 2014/02/03
    root なら SSH_AGENT_SOCK 環境変数を設定すれば他人のエージェントで認証できる
  • grunt-contrib-watch が重いので grunt-este-watch を試したら幸せになった

    最近、Grunt と grunt-contrib-watch を使っているのだけど、grunt-contrib-watch が CPU を消費しがちである。 watch 対象のファイルが少ないうちは grunt-contrib-watch は問題なく動くんだけども、ファイル数が増えてくると CPU の消費量が増えてくる。自分の環境では、1,000 個ぐらいのファイルを監視していると、常時 10% 程度 CPU を消費している。 この問題は既知であり、FAQ には次のように書いている。 たくさんのファイルを監視している場合、デフォルトの interval の値が小さすぎるかもしれない。options: { interval: 5007 } のようにして増やしてみてほしい。詳しくは issues #35 と #145 を参照のこと (※日語訳は私によるもの) Another reason i

    grunt-contrib-watch が重いので grunt-este-watch を試したら幸せになった
  • LiveReloadX 0.2.0 公開! 除外ファイルを指定可能になったよ

    LiveReloadX 0.2.0 を公開した。 新規インストールするなら今まで通り npm install -g livereloadx で、バージョンアップするなら npm update -g livereloadx でどうぞ。 以前のバージョンでは、監視対象のフォルダー配下のファイルが更新されるたびにブラウザーをリロードしていたので、たとえば、git で管理しているフォルダーを監視していると、git commit するたびにブラウザーがリロードされるという悲しい状態だった。 そこで、除外フォルダーやファイルを指定できるようにした。 たとえば、cache フォルダーを監視から除外したいときは とすればよい。 また、デフォルトでは html, shtml, css, js, jpg, gif, png, cgi, php など、Web 開発に一通り必要そうな拡張子のみを監視するようにした

    LiveReloadX 0.2.0 公開! 除外ファイルを指定可能になったよ
    ngyuki
    ngyuki 2013/05/02
    Windows ユーザには LiveReload の GUI よりオススメ
  • 1