anti scroll

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

プログラミング

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とかを起動した際は、この間にトイレにでもいっとこうかってぐらいの時間が掛かっていた気…

ocaml memcached client 半端バージョン

Ocaml で memcached client を作ってみようと思って作りかけていたのですが、似たような仕組みでOcaml純正の素晴らしげなものがリリースされてしまったので、多分終了。悔しいので、コードだけ晒しておきます。 あんまり良くわかっていないのですが、get/set…

postgres 覚え書き

以下、管理人以外にはどーでもいい覚書 テーブルを作る際にシーケンス設定していなかったカラムを、途中からシーケンス設定した場合、start は1から設定され、nextvalは2になるが、これはシーケンス設定前に既に割り振られていた作品番号の最小値といずれ…

apache のログをSQLライクに処理する apalog

いままで自前でログを取っていたのですが、apache のログからも同じデータが取れなくもないので、無駄なような気がしていました。そこで、apalog です。SQLライクな操作で、ログを編集できるようです。 SELECT host,date FROM "apache-commonlog.log" whe…

subversion & apache install 覚書

Trac というプロジェクト管理システムが面白そうなので、これを機会にsubversion など入れようと思ったら凄く面倒だったので、覚書です。というか全部パス指定の問題なので、config.log を乗せるのがほとんどなのですが・・・0. BerkeleyDB 4.00 以降をイン…