タグ

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

  • jQuery.extend マニアックス

    jQuery の extend メソッドは便利なんだが複雑で忘れてしまいがちなのでメモしておく。 jQuery.extend の呼び出しパターンは次の4通り。 $.extend([deep,] target, obj1, [obj2, [obj3, ...]])$.extend([deep,] obj)$.fn.extend([deep,] obj)$(...).extend([deep,] obj) 全てのパターンで第一引数に [deep,] がある。これはオプションの引数で true を指定するとディープコピーしてくれる。 以下では分かりやすくするために deep オプションは省略した一覧を掲載する。 $.extend(target, obj1, [obj2, ...]])$.extend(obj)$.fn.extend(obj)$(...).extend(obj) だいぶシンプルにな

    jQuery.extend マニアックス
  • JavaScript フレームワークがデータバインディングを実現する4通りの手法

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

    JavaScript フレームワークがデータバインディングを実現する4通りの手法
  • git commit --amend を省力化する方法

    Git で最後のコミットを修正するときには git commit --amend を使うんだけども、いままでは git add . git commit --amend エディターが立ち上がって、前回のコミット メッセージが表示される エディターを終了させる としていた。 この作業は何度も繰り返すと面倒だったので、man を調べてみると --no-edit なるステキなオプションを発見した。 --no-edit を使う --no-edit を指定すると、上の手順はこうなる。 git add . git commit --amend --no-edit コミット メッセージはそのままに、コミットの中身だけを書き換えられる。エディターが立ち上がらないので楽チン。 -a でさらに省力化 さらに git add . も省力化できて とすればよい。 コマンド一発になった。超楽チン。 注意点は次の 2

    git commit --amend を省力化する方法
  • これがスマートフォン向けサイトを作るときの 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パターンだ
  • jQuery を高速に使う CSS セレクタの書き方 - てっく煮ブログ

    JavaScriptjQuery は CSS セレクタで要素を選んで処理できるのが魅力的ですね。そんな jQuery ですが、CSS セレクタの書き方次第で速度が大幅に変わってきます。ここでは jQuery の内部処理を疑似コードで示しつつ、jQuery を高速に使うためのポイントを5つに絞って紹介します。何度も同じセレクタを実行しないクラスだけを指定するのは禁止#id を積極的に使う途中までの結果を再利用する子供セレクタ(>)を使うと速くなることがある※ この記事は jQuery 1.2.6 のソースコードを元に記述しています1. 何度も同じセレクタを実行しない改善前 // 例題 1 $("div.foo").addClass("bar"); $("div.foo").css("background", "#ffffff"); $("div.foo").click(function(){

  • てっく煮ブログ - 秀丸でJavaScriptのアウトライン解析する定義ファイル

    私はエディタとして秀丸を愛用しています。秀丸 Version 6.0 からはアウトラインのツリー表示機能がついていて、かなり便利です。prototype.js を利用した JavaScript がきれいに解析される定義ファイルを作ったので公開します。Class.create とか Object.extend を使ったクラス定義を正しく解析してくれます。ためしに prototype.js 自身を解析するとこんな具合。左側にツリーでアウトラインが出てますね。私はキー割り当てで [アウトライン解析の枠切り替え] に Alt-X キーを割り当てています。Alt-X を押してアウトラインにフォーカスして、カーソルキーや PageUp/Down で関数を選んで、Enter を押す、という手順によって比較的大きなソースでも移動が楽々です。定義ファイル: / /0000,0002,0000,0000000

  • 具体例で説明するデザインパターン - てっく煮ブログ

    JavaScriptデザインパターンってなんだかたいそうなものに考えられがちだけど、実は、そこかしこのライブラリや仕様に取り込まれていることが多い。「デザインパターン分からん」とか「で、どうやって使うのよ」と悶々としている人には、「どういうところで使わているのか」を知っておけばイメージも沸きやすいし、意外にたいしたことないんだな、ということが分かるんじゃないだろうか。そこで、JavaScript やその周辺の技術で、デザインパターンがどのように使われているかを紹介してみることにする。ここでは、GoFの順番に沿って、以下の11個のパターンを取り上げる。生成に関するパターン Factory MethodAbstract FactoryBuilderPrototypeSingleton構造に関するパターン AdapterComposite振る舞いに関するパターン Chain Of Respon

  • Flash 屋さんは世間が思うほどデザイナではない - てっく煮ブログ

    去年、仕事で Flash をやってる人の集まりに積極的に顔を出したのだけど、Flash の世界はデザイナ寄りではなくて、どちらかというとプログラマ寄りなんだということに驚いた。私が Flash をやってる人に持っていたイメージは、絵を描かせたらうまくて、デザインもバリバリしている、というものだったけど実は違うらしい。ほとんどの会社ではデザイナと Flash 担当者は分業されているようだ。もしくは、デザインが決まった状態でお仕事が来たりするらしい。だから、Flash やる人は Photoshop や Illustrator と向かい合って唸ったりはしない。デザイナが Photoshop や Illustrator で作ったものを、Flash 上に配置していくところから仕事が始まる。この作業は、HTML のページを作るときに、HTMLCSS の設計を考えるのに似ている。まず、下絵からパー

  • Yahoo! Pipes の Page Fetch モジュールでスクレイピングし放題 - てっく煮ブログ

    pipesこのブログでも何度か Yahoo! Pipes の話題は取り上げてきましたが、先日実装された「Page Fetch」モジュールは素敵すぎます。ほんとに。今まで、Yahoo! Pipes といえば、XML・CSVYahoo が提供してるサービスのデータを加工することしかできませんでした。それが、「Page Fetch」モジュールの登場により、任意の Web ページを加工できるようになったのです。Yahoo! Pipes の使い道といえば、次の2つだと思います。1. RSSリーダーで読むための XML 作り複数の RSS を結合したり、見た目を整えたりして、自分専用の RSS を作る。 (例)サイトの最新被ブックマークを livedoor Reader で読むための Pipes2. Web サービスとの連携JSONP に対応してるので、JavaScript と組み合わせてサーバ

  • はてな記法ワープロ

    *はてな記法JavaScript はてな記法ワープロは JavaScript ならではの利点を生かしたダイナミックなワープロです。 試しに色々入力してみてください。即座に出力画面が反映されます((Windows 版 IE6 および Firefox 1.0 でのみ確認しています))。 はてな記法の変換は <a href="http://search.cpan.org/dist/Text-Hatena/">Text::Hatena</a> を JavaScript に移植した "text-hatena.js" を活用しています。 **変更履歴 |*2005/12/1|ソース機能追加 (HTMLソースを表示できます)| |*2005/11/21|はてな記法ワープロ完成| |*2005/11/13|text-hatena.js 移植開始|

  • text-hatena.js 公開 [tech.nitoyon.com]

    Text::HatenaHTML::Parser を用いている部分は実装できていません。 URL の自動リンクや HTML のエスケープなどは実装できていません。 Cookie を利用するようなサイトに text-hatena.js を利用するのはお勧めできません。 ライセンスは Text::Hatena と同等とします。 技術的なアレコレ PerlJavaScript って意外と似てるよね、というところから出発しました。特に、Text::Hatena のソースコードはそのまま JavaScript に置き換えられるぐらいに洗練されたコードです。例えば、Hatena.pm の一部に次のようなソースがあるのですが sub parse { my $self = shift; my $text = shift or return; $self->{context} = Text

    text-hatena.js 公開 [tech.nitoyon.com]
  • 1