2011-02-01から1ヶ月間の記事一覧

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

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 アカウント英語版ですが、ネットのリファレンスページを漁るより高速に調べられます。

BaseRequestHandler はいかがでしょう?

テンプレートエンジンで扱う HTML ファイル群は、一つのディレクトリ内にまとめて格納しておきたい。 その場合、webapp.RequestHandler のサブクラスとして BaseRequestHandler が提案されています。 以下では、templates ディレクトリを作成して HTML ファ…

ListProperty はただの Property にあらず

ListProperty クエリの比較演算子は、他の Property クエリとは異なる振る舞いを示します。 クエリでは、リスト プロパティと値を比較してリスト メンバーを照合します。たとえば、list_property = value は値がリスト内に存在するかどうかを調べ、list_prop…

開発サーバにデータをリストア(復元)する

Web サーバのデータをローカル開発サーバで利用したい場合の対処 ここの説明は、基本的に Loader クラスを自前で用意しなくて済む方法です。 まず、remote_api へアクセスできるように app.yaml の handlers に以下を追加しておきます。 # # app.yaml # hand…

分割した CSS ファイルを統合する時がきた

CSS

CSS ファイル設計の段階で CSS を以下のように分割して管理しやすいようにしていました。 しかし、ファイル数が多くなると HTTP リクエスト数も増えるため、安定した運営が可能になった段階でこれらの CSS ファイルを統合してページ速度の改善をはかります。…

jquery.cycle スライドショープラグインと Ajax を組み合わせる際の注意

$.get() や $.load() 等の Ajax メソッドで画像を取得し、jquery.cycle プラグインでスライドショー表示させようとするも、なかなか上手くいかない場合、Firebug に [cycle] terminating; zero elements found by selector が出ているのではないでしょうか。…

or を用いた代入は順序に気をつける

代入式で or を用いる場合、None や '' や Null 等は or の後ろに置く。 def assign_string(value): str = value or '' # 良い例 # if not value, |str| is '' str = '' or value # 悪い例 # if not value, |str| is None

null オブジェクトは直接、データストアに入らない

Python では Null という便利なクラスが提唱されています。 # # null.py # class Null(object): """ Null objects always and reliably "do nothing." """ # optional optimization: ensure only one instance per subclass # (essentially just to save mem…

【2ch】キーワードあんてな ( ゚д゚ v) のレポート

【2ch】キーワードあんてな ( ゚д゚ v)の AppEngine ダッシュボードです。 そろそろ古いエントリーとキーワードを削除する準備をしておこう。 ちなみにアップデートは更新頻度から Top/High/Middle/Low の 4 段階に分けて Cron Jobs を設定してあります。 こう…

ことえりで変換したキーワードを出力する

Mac で「ことえり」を使って日本語(漢字・カタカナ)変換しているなら、PredictDictionaryChecker で一部の変換履歴を出力してみることが可能です。 「ターミナル」を起動し、以下を入力します。 /System/Library/Input\ Methods/Kotoeri.app/Contents/Supp…

YouTube Data API のフィード情報を jQuery で取得する

クライアント側 (jQuery) で YouTube のフィードを取得したい場合、JSON 形式であれば簡単です。 例として http://gdata.youtube.com/feeds/api/videos のフィードを取得する際は次の通り。 $(document).ready(function() { var uri = 'http://gdata.youtube…