2011-01-01から1年間の記事一覧

マルチカラムのサイトで lazyload プラグインを使うときは右側から設定すべし

まずはこちらをご覧ください。 これは 2 カラム構成のサイトで、左と右のカラムの画像を lazyload するように設定してあります。 しかし、右側のカラムは既に読み込み開始してもいい位置にあるにも関わらず、なかなか読み込まれない状態にあります。 このと…

JavaScript.Date オブジェクト初期化の文字列形式はブラウザによって対応が異なる

Date('日付') にまつわる話です。 YouTube-API 等で '2011-04-12T11:22:33.000Z' のような形式の日付文字列を取得した際、Firefox や Chrome のようなブラウザではそのまま Date('2011-04-12T11:22:33.000Z') で正しく初期化されます。 しかし、Safari や IE…

高速化:jQuery と CSS のセレクタは書き方を変えること

jQuery 『jQuery クックブック』レシピ 5.10 より高速なセレクタを作成する (P.109) には以下の記述があります。 <table id="log"> <tr><td>Client X:</td><td class="clientX"></td></tr> ... </table> // クラス .clientX を取得する jQuery セレクタ $('.clientX') // 遅い $('td.clientX') // 速いかもしれない $('#log .clie…

主体は配列:jQuery.index() メソッドの注意点

index() メソッドで目的のインデックスがなかなか取得できないときに参考にしてください。例えば選択した DOM 要素が、兄弟要素の何番目に当たるのか。 jQuery.index(Element or jQuery) メソッドは該当するインデックス番号を返すが、何も見つからなければ …

GoogleAppEngine の Xcode プロジェクトを PyChecker でエラーチェックする

私の使っている MacOSX 10.6 はデフォルトで python2.6 を使用するため、GoogleAppEngine の python2.5 準拠のプロジェクトで問題なく動作させるために設定した項目をいくつか書きます。 PyChecker について Google Python スタイルガイド で以下のように記…

ImportError がなかなか解決できないときは、相互インポート状態を疑う

ImportError: cannot import name xxxxHandler がなかなか解決できなかったのですが、よく確認すると継承元クラスのモジュールと継承先クラスのモジュールが互いに import し合っていました。 # # module_a.py # import module_b # # module_b.py # import m…

【2ch】キーワードあんてな がより Ajax になりました

今まで jquery.pagenation プラグインを使って、1 ページにつき 10 エントリを表示してきました。 今回、新たに【続きを読む】ボタンを設置し、ページ遷移なしにエントリ追加ができるように変更しました。これ以上、エントリが存在しない場合、次のように【…

YUI Compressor を使ってローカル環境で CSS を縮小化する

CSS

CSS の縮小化についての注意点が『ハイパフォーマンス Web サイト』P.85 に記述されていますが、細かいことを抜きにして YUI Compressor で CSS を縮小化する方法について書きます。 YUI Compressor はここからダウンロードできます。 使用方法は yuicompres…

Ajax ページを Google 検索エンジンに知らせる方法

Google の検索エンジン(クローラ)は、Ajax ページのコンテンツを動的に取得できないため、開発者が別途、検索エンジン用のページを作ってやる必要があります。 ハッシュフラグメント #! で検索エンジンに知らせる場合 Ajax ページはしばしば、ハッシュ値 #…

少し RSS コンテンツを豊富にしてみました

サムネイル画像やキーワード等を追加しました。 RSS 用の HTML テンプレートとして、以下を作成しました。 ここではテンプレート値として article エンティティを利用しています。 <img src="/static/images/thumbnail/{{ article.site.thumbnail }}" alt="thumbnail" align="left" hspace="15"/> <h3>{{ article.site.name }}</h3> <p>更新日:{{ artic…</p>

コマンドラインで JSMin を使うときはリダイレクション指定を忘れずに

久しぶりに JSMin を使おうとしたら、止まったまま動作しない状況に陥ってしまったため、ここにまとめておきます。 プログラムがエラー表示を出してくれたら解決しやすかったのですが。 リダイレクションについて Unix のコマンドにリダイレクション (>, >>,…

Emacs で jQuery 開発するためのプラグイン espresso-mode

jQuery のコード構成は独特なため、多くのテキストエディタでインデント等の不都合が生じます。代表的なテキストエディタ Emacs もその例外ではなく、より効率的に jQuery コードを書くためには espresso-mode のようなプラグインを読み込ませる必要がありま…

JSONP にはコールバック用のパラメータが必要です

JSON では、異なるドメインのサーバからデータを取得することができないません。 また、現在の URL かそのサブドメインからしかデータを取得することができません。 従って、同じサーバであっても、/ranking から /json の JSON データを取得することはでき…

Xcode で Google App Engine 開発する場合の「ターゲット」設定

以前は Eclipse も使っていたのですが、どうも挙動が気に入らなくてプログラム開発は意地でも Xcode を使うようにしています。 さて、Google App Engine を Xcode で開発する際、基本的なことは変わりませんが、エラーチェックやテストケースの実行スクリプ…

クエリは複数の不等式フィルタをかけることができない

Google App Engine のデータストアを利用していると、次のようなフィルタに関するエラーに直面することがあります。 BadFilterError: BadFilterError: invalid filter: Only one property per query may have inequality filters (=, ).. これはあるクエリオ…

locale に依存しないプログラムにする

import locale locale.setlocale(locale.LC_ALL, 'ja_JP') このように Google App Engine で locale の設定を試みると、 locale.Error('locale emulation only supports "C" locale') の例外を目にします。Google App Engine では locale による日本時間の取…

Google App Engine で Twitter に投稿する

認証とか難しいことなしに、データベースが更新された旨などを Twitter に投稿するための方法です。 はじめに、Twitter の開発者ページで Web サイトを登録してください。 今回、使用するのは Consumer key, Consumer secret と My Access Token ページにあ…

jQuery ユニットテストライブラリ QUnit を試してみました

QUnit という jQuery ユニットテスト用ライブラリがあります。テスト用の HTML ファイルを別途用意し、test(name:String, test:Function) でテストケース関数をキューに追加していきます。 テストは HTML ファイルをブラウザで開くと同時に実行され、div#qun…

日本語リージョンで取得可能な YouTube API のカテゴリフィード

YouTube API でカテゴリ毎のフィードを取得したい場合、URI 構成の例として次のようなものが有効です。 http://gdata.youtube.com/feeds/api/standardfeeds/JP/most_viewed_{カテゴリ名}?time=today {カテゴリ名} には「映画とアニメ」であれば、Film が入り…

『イマジネーション jQuery』というページを作る計画

掴み所のない jQuery API を以下のような画像で表現してはどうかと構想中です。 これなら戻り値が String オブジェクトなのか jQuery オブジェクトなのかが一目瞭然。 何か文字が認識しにくい気がするのは、きっと気のせい・・・

Ajax Queue プラグインの ajaxQueue() や ajaxSync() は、jQuery.ajax() メソッドと同様に扱える

Ajax リクエストをキューに入れて順序を制御する場合、Ajax Queue プラグインが利用されます。 // // jquery-ajax-queue_1.0.js // // レスポンスが返るまで次のリクエストを実行しない(一つずつ順番に処理) jQuery.ajaxQueue({ url: "test.php", success:…

IE 各バージョンと CSS の対応を確認できる表

CSS

IE5, IE5.5, IE6, IE7, IE8, IE9 の CSS 各プロパティの対応状況を確認できる表が、以下のマイクロソフトのページにあります。 CSS Compatibility and Internet Explorer | Microsoft Docs 表は CSS2.1 と CSS3 に分けてあります。

【2ch】キーワードあんてな のコンテンツを増やしました

投稿頻度ランキングページと、キーワードランキングページを新たに設けました。これに伴い、サイトマップを以下のように変更しました。 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://keyword-antena.appspot.com/</loc> <lastmod>2011-02-22</lastmod> <changefreq>hourly</changefreq> <priority>1.0</priority></url></urlset>

【画像付き】jQuery UI CSS Framework の CDN

black-tie Google Ajax Libraries API (CDN) http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/black-tie/jquery-ui.css Microsoft Ajax CDN (CDN) http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.16/themes/black-tie/jquery-ui.css

JavaScript のテンプレートエンジン Pure と jQuery

Ajax で取得した JSON データから、HTML 要素の適切な位置に値をセットしてくれるテンプレートエンジン Pure があります。 これは、JSON データの属性と対応するクラス名を持つ HTML 要素に、値の関連付けを行います。 テンプレート用の DOM 要素として、以…

YouTube みたいにサムネイルを横長に表示させたい

YouTube を見てみると、120×90px のサムネイル画像が 16:9 のハイビジョンと同じ比率で表示されています。before: 120px * 90pxafter: 128px * 72px (16:9)今回は HTML と CSS で画像を横長に切り取って表示させる方法と、jQuery UI で角丸の枠を追加する方…

スライドショー用 jQuery Cycle Plugin をマウスオーバー時だけ有効にしたい

jquery.cycle JQuery Cycle Pluginサンプルとして、以下のような .slideshow クラスにスライドショーを適用します。 今回は、jquery.cycle を利用するにあたって、CSS 設定を用いたサンプルと、jQuery だけを用いたサンプルの2つを用意しました。 CSS を使…

Python ユニットテスト用の拡張ライブラリを公開しました

ext-unittest を GitHub に公開してみました。 インスタンスの同等性を評価するためのユニットテスト拡張ライブラリです。 QUnit で謂う所の same(actual, expected) のような動作が期待されます。 オブジェクト ID の異なる二つのインスタンスを比較する目…

テストランナーのサンプル

Google App Engine で Django を利用していない場合のテストについて。 http://appengine-cookbook.appspot.com/recipe/app-engine-test-runner/ urlfetch の結果を評価するだけのようです。 データストアの入出力をテストしたいのですが、何ともうまく行か…

Google App Engine のチートシート

以下よりダウンロードできます。 ログイン - Google アカウント英語版ですが、ネットのリファレンスページを漁るより高速に調べられます。