Glims サムネイル表示機能が Amazon 商品履歴を汚す

Amazon の「チェックした商品の履歴」にクリックした覚えのない商品が追加されていることがありました。 正確には、その商品の画像を見た覚えはあるけど、クリックはしていないというもの。 長い間、謎だったのですが、Glims の検索結果にサムネイルを追加す…

マウスジェスチャーのための Safari SIMBL プラグイン【SIMBLGesture】

追記)2012/4/7 アップデート v1.2 追記)2012/3/19 アップデート v1.1Safari でマウスジェスチャーするための SIMBL プラグインを作成しました。 ジェスチャー機能は基本的なものだけを実装してあります。 なお、Safari の Top Sites, Bookmark, PDF 画面等…

マウスカーソルを目立たせる Safari SIMBL プラグイン【RotCursor】

Realm of the God Mad (RotMG) というブラウザゲームに夢中になっていたのですが、画面がごちゃごちゃしているときにマウスカーソルを見失うことが多々ありました。そこで、マウスカーソルの周辺に特殊な描画を施して目立たせる RotCursor プラグインを作成…

Ubuntu11.10 でスリープ(サスペンド)後にロックしないようにする

Ubuntu 11.04 では gconf-editor でロックしないようにできたのですが、11.10 では dconf-editor という設定ツールを導入する必要があるようです。 1. dconf エディター をインストールする Ubuntu ソフトウェアセンターで dconf エディターを検索し、インス…

引数によって関数の呼び出しオブジェクトが変わる goog.events.listen

goog.events.listen(src, type, listener, opt_capt, opt_handler) は、5 番目の引数 opt_handler を指定することで、関数の呼び出しオブジェクト this を変更することができます。 // opt_handler なし goog.events.listen(src, EVENT_TYPE, function (e) {…

Container 選択時に枠を表示させない

goog.ui.Container やその子要素 goog.ui.Control を選択すると表示される枠は、Container インスタンスに以下を設定すれば表示されなくなる。 var container = new goog.ui.Container(); // Container 選択時に枠を表示させない container.setFocusable(fal…

Django モデルオブジェクトを何としてでも JSON に変換する

今回は説明を省略していくので注意。 あなたは models.py にモデルを定義しているとします。 # # models.py # from django.db import models class Item(models.Model): name = CharField(max_length=50, primary_key=True) tags = models.ManyToManyField(T…

Web ベース統合開発環境 Nide が(・∀・)イイ!!

たまたま以下のページを見たのですが、ブラウザが統合開発環境 (IDE) になるというのは以前から興味があったジャンル。 実際、使いやすかったのでインストール方法等を書いてみる Node.js向けのWebベースIDE「Nide 0.2」がリリース | OSDN Magazine 1. Node.…

V8 の RTLD_DEFAULT が見つからないビルドエラー

MacOSX 10.6 を使用。 JavaScript V8 エンジンを scons でビルドする際、以下のエラーが発生。 src/platform-macos.cc:500: error: 'RTLD_DEFAULT' was not declared in this scope scons: *** [obj/release/platform-macos.o] Error 1 scons: building term…

文字列を is 演算子で比較するのは危険

ascii 文字列は ==, is のどちらでも同じ結果を返します。 一方、unicode 文字列は is で比較した場合の結果が異なります。 # ascii 文字列の比較 a = 'str' b = 'str' a == b >>> True a is b >>> True # unicode 文字列の比較 a = u'str' b = u'str' a == …

【Macintosh】Minecraft のメモリ使用量を指定する

Wiki には Windows 版のやり方しかなかったので、Mac 版のメモリ指定方法を試みてみました。 よくある質問 - Minecraft Japan Wiki - アットウィキWindows: java -Xms512m -Xmx3072m -jar Minecraft.exe Mac 版 Minecraft のバンドル構造は以下のようになっ…

外部から Django プロジェクトのデータベースを操作する

Django プロジェクト(ディレクトリ)の外部にある Python コードから、Django アプリケーションのデータベースを操作します。 ドキュメンテーションにあるように、モデルをインポートする前に以下の手順を実行しておきます。 1. プロジェクトのパッケージを…

kakoroku で保存したタイムシフト放送を NNDD で再生するときのテクニック

Windows の kakoroku でタイムシフト放送をダウンロードした後、Mac の NNDD で(むりやり)再生させるのですが、このときコメントが途中からしか流れない不具合にまみえます。この回避方法として、NNDD の InfoView にある「過去コメント」タグにて、「更新…

ニコニコ動画の検索一覧に総合ポイントを表示するユーザスクリプト【NicoSearchPtsDisplay】

GreaseMonkey ユーザスクリプト(Firefox, Chrome, Safari で動作確認)。 ニコニコ動画の キーワード/タグ 検索一覧に総合ポイントを表示します。 総合ポイントはニコニコ大百科の計算式で算出されます。 4 カラム 適用前 4 カラム 適用後 2 カラム 適用前…

Django のテンプレートシステムをローカルアプリケーションで使う

Python で実装された Web アプリケーションフレームワーク Django の HTML テンプレートエンジンだけを、スタンドアロン(ローカル・アプリケーション)で利用します。以下の Python スクリプトを renderer.py などの名前で保存して、実行します。 #!/usr/bi…

ui.Popup の表示・非表示イベントを監視する

goog.ui.Popup は Positioning 可能なポップアップ View を扱うクラスです。 setHideOnEscape() や setAutoHide() でポップアップ要素を自動的に隠すイベントは、スーパークラス goog.ui.PopupBase の EventType に定義されています。 // Popup の表示・非表…

DragListGroup のドラッグ & ドロップ・イベントを監視する

goog.fx.DragListGroup は dragListElement として追加したノードに含まれる DOM 要素群を、ドラッグアンドドロップで位置交換できるようにするクラスです。 DragListGroup で発生したドラッグ・イベントは、draglistgroup.js の goog.fx.DragListGroup.Even…

Closure Library で新しいページを開く goog.window

API リファレンスからは検索しにくいのですが、Closure Library にはウィンドウ操作のための関数群が window.js に定義してあり、require('goog.window') で利用可能になります。 goog.window には以下の関数が定義されています。 goog.require('goog.window…

DOM 要素のドラッグ&ドロップには Dragger をイベント登録する

goog.events.listen() 関数で DOM 要素のドラッグアンドドロップ・イベントを登録したい場合、DOM 要素を goog.fx.Dragger インスタンスとして登録する必要があります。http://closure-library.googlecode.com/svn/docs/class_goog_fx_Dragger.htmlまた、イ…

$ を使って DOM Element を取得する

Closure Library では goog.dom.getElement(element) 関数で DOM 要素を取得できますが、頻繁にこの長い名前空間を記述するのは面倒なので、次のように変数 $ に関数オブジェクトを代入する方法があります。 goog.require('goog.dom'); var $ = goog.dom.get…

ローカルストレージのリクエスト容量増加を要求されても Flash Player 設定パネルが操作できない問題を解決する

よくあるのが、ニコニコ動画を再生したときに出現する Adobe Flash Player 設定ポップアップパネル。 ローカルストレージ res.nimg.jp はコンピューターに情報を保存する許可を要求しています。 上記のメッセージが以下の画面に表示されるのですが、希にパネ…

width, height がマイナスだと交差判定関数は正しく動作しない

どのフレームワークでも同じような問題を抱えているようです。 NSPointInRect(NSPoint aPoint, NSRect aRect, BOOL flipped) や NSMouseInRect(NSPoint aPoint, NSRect aRect) といった交差判定用の関数は、判定領域 aRect の width, height がマイナスだと…

YouTube のプロモート動画・おすすめ動画を非表示にするユーザスクリプト【YouTubePromoteHidden】

Firefox の GreaseMonkey ユーザスクリプト(Chrome でも動作確認)。YouTube 動画再生中に表示される、サイドバーの広告・プロモート動画・おすすめ動画を非表示にします。 適用前 適用後 // ==UserScript== // @name YouTubePromoteHidden // @namespace h…

Interface Builder で Form の警告 "This view is clipping its content." を解決する

Form を使っていると、"This view is clipping its content." という警告が出ることがあります。 Interface Builder で確認してみると、Form の下に + マークが出現していることが分かります。次に、Form を選択中に表示されるキーボードマークをクリックす…

goog.math.Rect の各パラメータは x, y, w, h でアクセスできない

API Documentation ばかりを見ていたら勘違いしてしまう罠です。console.log で Rect オブジェクトの中身を見てみると分かるのですが、goog.math.Rect(x, y, w, h) の各パラメータには left, top, width, height でアクセスできます。 var rect = new goog.m…

width, height がマイナスな図形は描画されない

Point(100, 100) を始点として、Point(0, 0) を終点とした rect を描画したい場合、Size(-100, -100) とできれば楽なのですが・・・ <div id="canvas"></div> var drawer = goog.graphics.createGraphics(300, 300); drawer.render(goog.dom.$('canvas')); // #canvas にレンダリン…

設定オブジェクトパターンをクラスのコンストラクタに適用する

関数の引数が多くなると、パラメータの順序を覚えたり、オプションパラメータの扱いづらくなります。 /* before */ // 定義 function test(arg1, arg2, opt_arg3, opt_arg4, opt_arg5) { ... } // 実行 test(a, b, c, d); そこで引数に辞書オブジェクトを与…

オプション引数 (opt_***) を扱う

関数の引数をオプションにしたい場合、goog.isDefAndNotNull(val) を使うことができます。 この関数は base.js に定義されています。 // 引数 arg は必須、opt_arg はオプション function (arg, opt_arg) { if (goog.isDefAndNotNull(opt_arg)) { // opt_arg…

ニコニコ動画の説明文に含まれる URL からリンクできるようにするユーザスクリプト【NicoLink】

Firefox の GreaseMonkey ユーザスクリプト。ニコニコ動画の説明文に含まれる URL から直接リンクできるようにします。 適用前 適用後 // ==UserScript== // @name NicoLink // @namespace http://d.hatena.ne.jp/shobonengine/ // @description ニコニコ動…

Google App Engine の値上げについて

参考:開発者にショックなGoogle App Engineの値上げ App Engine フレームワークの学習コストを差し引いても、価格高騰で Google を見限る開発者が増えそうです。 これが特定企業にインフラを依存するリスクなのでしょう。 Amazon EC2 に移行したとしても、…