タグ

ブックマーク / blog.sarabande.jp (5)

  • クロージャデザインパターン (PHP 版)

    2013年4月13日追記: PHP 5.5 で finally 句が追加されたので Loan パターンを追記しました。 Closure Design Patterns で紹介されている Groovy のコードを PHP に翻訳しました。無名関数とクロージャを区別しても情報が分散してしまうのでクロージャに統一しました。Method Combination (関数合成)は省略しました。原文ではカリー化(currying) と書いている箇所を部分適用 (partial application) に訂正しました。カリー化と部分適用の違いについてはこちらのブログに解説があります。Groovy コアに当のカリー化メソッドを採用することへの要望があり、長期的には取り込まれる見込みのようです。 これらのパターンは Venkat Subramaniam 氏および Neal Ford 氏のプレゼン資料から抜

    クロージャデザインパターン (PHP 版)
  • Cocoa: Unicode 正規化と照合

    Cocoa: NSString の 1文字を取得するCocoa: NSString の文字数とバイト数を求めるCocoa: NSString を char 型の配列に変換するCocoa: Unicode 正規化と照合 NSString には Unicode 正規化のためのメソッドが用意されている。「正規合成」(NFC: Normalize Function Composite)、「互換合成」(NFKC: Normalize Function Compativle Composite)、 「正規分解」(NFD: Normalize Function Decomposite)、「互換分解」(NFKD: Normalize Function Compativle Decomposite)の説明は以前の記事で書いたので、テストケースを流用する。 #import <Foundation/Founda

    Cocoa: Unicode 正規化と照合
  • JavaScript: 配列から空の要素を削除する

    JavaScript: 配列から空の要素を削除するjQuery: テーブルの列を逆順に並べ替えるeach ループのなかで this 変数は現在処理されている要素をあらわす JavaScript の配列から空の要素(falsy な値)を削除するには filter メソッドを使う。これは PHP の array_filter と似たようなふるまいである。stackoverflow の「Remove empty elements from an array in Javascript」を参考にした。falsy と truthy に関しては以前記事を書いた。 var array = [, 0, false, null, NaN, undefined, '']; console.log(array.filter(Boolean)); console.log(array.filter(function

    JavaScript: 配列から空の要素を削除する
  • 2013年において注目すべき PHP フレームワークは Laravel

    4月22日追記。細かい表現、データの追記、リンクを修正しました。Laravel の作者による Laravel 4 とSymfony 2 の比較はこちらの記事をご覧ください。 2013年においてもっとも注目すべき PHP フレームワークとして Laravel を挙げる。 執筆時点で Laravel の知識はほとんどないが、新しいプロジェクトでありながら、英語圏においてさまざまなチュートリアルが書かれおり、熱烈なファンを獲得したと見られる。ほかの PHP フレームワークの開発プロジェクトが抱えている将来の課題を考慮すると、Laravel を学ぶ価値はあると考えられる。 4月21日の時点で GitHub のスターの数は3971であり、2000年代後半からプロジェクトが存在していた CakePHP(3741) および Zend Framwork 2 (3905)を超え、PHP フレームワークとして

    2013年において注目すべき PHP フレームワークは Laravel
  • jQuery 1.8 で XSS 対策に .parseHTML メソッドが追加

    jQuery の $ 関数はセレクタによる絞り込み、HTML 生成、ready イベントコールバックの3つのケースに使われますが、開発者がセレクタとして想定したものが HTML 生成として解釈され、XSS を引き起こすことがあります。次のコードは HTML と解釈され、error イベントハンドラに指定された alert が実行されます。 $("#"); 防衛策として jQuery 1.9 では $ 関数に渡すことのできる HTML に見える文字列の制約を厳しくするため、従来は認識できた文字列が認識できなくなる場合の回避策および、特に単独の要素を生成したり、外部のデータから文字列を生成する場合のために $.parseHTML を使うことをおすすめするとリリース記事に書いてあります。 .parseHTML メソッドの実装を見ると戻り値が配列であり、jQuery のメソッドチェーンを展開できな

    jQuery 1.8 で XSS 対策に .parseHTML メソッドが追加
  • 1