anti scroll

ブラウザと小説の新しい関係を模索する

プログラミング

promptを使って検索するchrome拡張を作りました

Chromeアドレスバー(Omnibox)は検索にも使えて便利なのですが、一文字入力するたびにローカルの履歴を探したり、設定によってはグーグルにデータを送信したりするので、時々フリーズするのがいただけません。 なので、サジェッションもヒストリもなく、も…

XP Home EditionではSafari拡張が開発できない?

ここ数日の流れでいくと、最後はSafariの拡張を書いて締めたいところですが、どうもXP Home Editionでは開発できないらしいことがわかりました。 原因は簡単に言えば、XP Homeがサーバー的な仕様のOSではないため、自分自身のPCの証明書を発行できないから、…

Operaの拡張でもクロスドメイン通信

Chrome、Firefoxと拡張を開発できたので、調子にのって普段まったく使わないOperaの拡張も作ってみました。で、何ヶ月ぶりかで起動してみたら、案の定バージョンが偉く上がっていて、早速バージョンアップしてみたら、また一段と我が道を行くUIに変わってま…

Firefox Add-on SDKでサクっとクロスドメインXHRする拡張を作る

Firefoxの拡張機能を作ろうと思って公式のサイトを見たら、ドキュメントは色々とあるんだけど何を読んだらいいのかよくわかりませんでした。でもなんか「今はこれが一押し」みたいなリンクがあって、そこを辿っていったらAdd-on SDKというものに巡り合って、…

kay framework をgae SDK 1.6.0 で動かした時にtoo many values to unpack

gae1.6.0 になってから dev_appserverのLoadAppConfig関数の戻り値が三つになったので、kay/misc/__init__.py の21行目を次のように書き換える。 def get_appid(): from google.appengine.api import apiproxy_stub_map have_appserver = bool(apiproxy_stub…

sphinxがpython2.5でも動いた

Sphinx1.1.1がpython2.5でインストールできたものの、make html してもエラーでドキュメントの出力ができず辛すぎたんですが、どうもSphinxってpython2.6からのサポートらしく……でも僕の環境はgaeの影響でpython2.5に縛り付けられているので2.6には移行しに…

IndexModelを作ってgaeの検索を高速に

ソースは「Building_Scalable_Complex_App_Engines」です。2009年の資料なんですね……完全に見落としてました。 まずよくある多対多のリレーションにおけるデータ検索の正直な実装……例えば複数の送信先のあるメッセージの中から、自分宛てのメッセージを取る…

chrome extensionでcross domain のXHR

表題の件で数日前にブログを書いたのですが、なんか間違っていたっぽいので破棄しました。 困っていたのは、クロスドメインのXHRを許可するpermissionが正しく設定されているのに、contentスクリプトやらbackgroundスクリプトを編集して、デベロッパーメニュ…

kay framework のCRUDでデフォルトのURLマッピングをカスタマイズする

これも忘れそうなので、メモ。 例えば、Category というモデルに対してCRUDビューグループを作ると、 /category/list /category/show/<key> /cateogry/create /category/update /category/delete</key> などとマッピングされるけれども、このURLマッピングが、自分の使…

kay framework で日本時間を出力

kay framework のメモです。表題の件ですが、色々と調べたらフィルターを書くのが楽そうだと思いました。 # myapp.filters.py def to_local_time(time): import datetime return time + datetime.timedelta(hours=9) def local_time_ymd(time): return to_lo…

kay framework のCRUDでkey_nameを設定する

忘れないようにメモ。kay frameworkでは汎用ビューグループという機能があって、データの追加、更新、削除などをやってくれる画面を自動作成することが出来ます。しかしデータを追加する時、モデルにkey_nameを付けたいときはどうすればいいのか。そこで、ka…

javascript の constructor プロパティ

ノリでなんとなく書いていても駄目かなあと強く思うことが増えてきたので、今さらながらjsの基本をしっかり覚えていこうと思うようになってきました。とくにプロパティまわり。今までprototype以外のプロパティをあんまり意識した事がなかったのですが、最近…

PayPalのAdaptive Payments APIについて調べてみた

ちょっと興味があってPayPalのAdaptive Payments API について調べたのでメモです。 今後、ちょこちょこ付け足していくかもしれませんが、間違いなどあったら指摘してくださるとありがたいです。Adaptive Payments APIとは これまでのExpress Checkout APIな…

kay framework でsubmitボタンの文字を変える方法

最近kay-frameworkを調べているのですが、自動フォーム作成で表題の件について意外と苦労したのでメモです。 結論としては、テンプレートで、 {{ form()|safe }} としている部分を、 {{ form(button_label="送信")|safe }} などとすればボタンの文字が「subm…

amazonの価格変動をチェックするスクリプト

先日ウイニングイレブン2011というゲームを買おうと思ってアマゾンを見たら、なんと驚きの8900円。めちゃめちゃ高かったので、仕方なく別の通販サイトで買ったのですが、直後にアマゾンをチェックしたら一気に値下げしてて、そこで買った値段より五百円も安…

gaeで設置できない名前のスクリプト

gaeではまったのですが、本番環境では、PYTHONPATHに定義されているのと同じ名前のスクリプトを設置できないらしく… だから例えば以下のようなファイル名のスクリプトは(テスト環境では動くけど)本番環境では設置できない……と。profile.py struct.py warni…

fc2ブログにツイートボタンを貼る

Twitterからもツイートボタンがリリースされましたね。FC2で導入する場合は、URLを<%topentry_link>として、ツイート内テキストを<%topentry_title>とするのが良いと思います。僕の場合はテンプレートの設定で、記事のタイトルの後あたりに次のようなコード…

jquery の click ハンドラにはまった

今まで知らなくてはまったのでメモ。例えばjqueryで、何かのクリックハンドラをこんな風に書くじゃないですか。 $("#some-button").click(function(){ console.log("hoge"); }); $("#some-button").click(); // -> hoge だけど次のような感じで、クリックハ…

facebookのlikeボタンを付けてみました

なんかfacebookのlikeボタンというソーシャルリンクが凄いらしいので付けてみました。フェースブックのプラグインページにあるコードをテンプレートに貼り付けるだけ。FC2なら、各記事のリンクは<%topentry_link>なので、 <iframe src="http://www.facebook.com/widgets/like.php?href=<%topentry_link>" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px;"></iframe> というコードをテンプレートの中で…

OCaml から OAuth

OCamlでOAuthを使う方法を探していたら既にooauthというライブラリがあって助かった、と思ったのですが結構はまったのでメモしておきます。まずCryptokit。これをooauthが使うのですが、ooauthがfindlib経由でcryptokitを参照するのに、本体のcryptokitはデ…

Ocaml で Twitter Bot を作る

せっかくTwitterに登録したのだから、縦書き文庫のホットエントリーを自動的にTwitterに流すことにしました。Ocamlで作ったのですが、せっかくなので公開しておきます。ocamlnetというライブラリのHttpClientモジュールを使っています。 let sm_update = "ht…

IEにおけるinnerHTMLの不思議

今日初めて気が付いたのですが、例えばIEで以下のように<font size="1.8">あああ</font> みたいに、fontタグのsize要素に浮動小数点を設定した時、このタグの内容を innerHTML経由で参照すると、<font size="1">あああ</font> と内容が書き変わって返ってくるようです。 もちろん本来のfontタグのsizeは整数…

960 grid system メモ

ブラウザごとのレイアウト整合性を確認するのがしんどくなってきたので、何か統一的に使えるCSSフレームワークを導入しようと思いました。960 Grid System というグリッドフレームワークを使うと、IE用のファイルとかが必要ないらしいです。 でも今はぶっち…

camltemplate 覚え書き

忘れそうなので、以下は覚え書き。camltemplate のパス指定で、絶対パスを指定したいとか思って次のように書いても、 let cache = CamlTemplate.Cache.create () in CamlTemplate.Cache.get_template cache "/path/to/hoge.tmpl" デフォルトのロードパスが "…

Ocaml によるO/R mapper

ずっと表題のようなものが欲しいと思って、例によって誰かが作ってくれるのを待っていたのですが、そういう気配がなさそうなので、自分専用の仕様で、それっぽいものを作ってみました。 バリデーションの処理をもうちょっと丁寧に書けたら、縦書き文庫にも導…

青空文庫形式のルビを、ウェブ形式のルビへと変換するツール

色々と探したけれども、表題のような変換をしてくれるツールがなかったので自分で作りました。 これと逆のことをしてくれるツールなら色々とあったのですけれど。 具体的には、青《あお》い空 → <ruby><rb>青</rb><rt>あお</rt></ruby>い空 のような変換をします。 ただし、傍点などは変換さ…

これは良く出来ているなあ

今日、うみがめビューアーという簡単に縦書き小説が公開できるソフトを見つけました。フラッシュでサウンドノベルを作る系のソフトは他にも見たことがありますが、これも良く出来ています。初期のロードもフラッシュの割りに短く、表示領域もロード後は固定…

Geckoスルーで、IEキラーなバグ

Firebugは次の記述をバグとして検出してくれるべき var Hoge = { foo : "hahaha", hoo : "hohoho", // ←ココ }; だって、このまんまIEで見たりすると、普通に何も表示されてなかったりするから困る…!昨日の23時ぐらいから今日の7時ぐらいまで、IEではト…

アルファベット読み上げの音声データを探してます

唐突ですが「フリーで使用できるアルファベットの読み上げデータ」を探してます。 というのも、こちらの記事にあった流動性知能を向上させるソフトウェアってのが面白そうだったので自分で作ってみたのですが、図形認識のn-backは問題ないとしても、音声認識…

Visual C# Express 2008

最近、Visual C# Express 2008 というのをインストールして遊んでいます。ただで使えて、商用利用もOK。凄すぎです。まずIDEの起動が速くてビックリ。その昔、VS2003とかを起動した際は、この間にトイレにでもいっとこうかってぐらいの時間が掛かっていた気…