UQ WiMAXからお試し用のUSBデバイス(USB TYPE UD01NA)が届いた。箱を開けてみての印象は、デカっ。思ったよりもでかい。まあ邪魔になるほどじゃないけれど。せめて3分の2ぐらいになるといいな。
早速、家(山手線田端駅近く)でやってみた。まあ家からの通常利用は無理。窓のそばでカーテンを開ければなんとなくつながるけれど、すぐ切れる。
翌日以降、いろいろ立ち寄りそうなところで試す。
Continue reading
UQ WiMAXからお試し用のUSBデバイス(USB TYPE UD01NA)が届いた。箱を開けてみての印象は、デカっ。思ったよりもでかい。まあ邪魔になるほどじゃないけれど。せめて3分の2ぐらいになるといいな。
早速、家(山手線田端駅近く)でやってみた。まあ家からの通常利用は無理。窓のそばでカーテンを開ければなんとなくつながるけれど、すぐ切れる。
翌日以降、いろいろ立ち寄りそうなところで試す。
Continue reading
と、聞かれたので、書いておく。
という方針でいく。
Continue reading
知らなかった。2じゃないってこと。符号の1文字分だけ増えるんだな。考えてみればそりゃそうか。
あんまり数字をこうやって扱うことがないから。そんなのが必要な時ってたいてい設計が悪いんじゃん。(言い訳)
PostgreSQL 8.4
pguser=# select length(to_char(1,'00'));
length
--------
3
(1 行)
Oracle 9i
SQL> select length(to_char(1,'00')) from dual;
LENGTH(TO_CHAR(1,'00'))
-----------------------
3
Solace http://opensource.plurk.com/Solace/
Plurk Solace Released http://lucumr.pocoo.org/2009/9/2/plurk-solace-released
Stack OverflowインスパイアードのQ&Aサイト構築システム。最初のリリースだけど、とても完成度が高い。Werkzeugの人(たち)が作っている。Ubuntuで動かしてみるのに5分とかかからないから試してみるといいと思う。
Pinaxをいろいろいじっているけれど、カスタマイズのベースにするにはこっちの方が僕にはとっつきやすい感じがしてきた。
PostgreSQLのルールシステムを使ってDELETEが発行されたときに論理削除をするようにしてみた。
Storm(のようなORM)を使うときに、store.remove(object)と削除は削除として実行できるからよい感じ。
stormの話。
def invalidate(self, obj=None):
Set an object or all objects to be invalidated.
This prevents Storm from returning the cached object without first verifying that the object is still available in the database.
This should almost never be called by application code; it is only necessary if it is possible that an object has disappeared through some mechanism that Storm was unable to detect, like direct SQL statements within the current transaction that bypassed the ORM layer. The Store automatically invalidates all cached objects on transaction boundaries.
http://twistedmatrix.com/users/radix/storm-api/storm.store.Store.html#invalidate
これだけじゃ、ダメで、
store.flush()
store.invalidate()
とした後で使わないと、データベースとstorm.storeの同期が取れていない状況になる。
トリガーでバリバリとStormの知らないところでデータを変更していると、わかりにくいエラーになってしまう。
ちなみに、更新後にstore.commit()を発行していればこういう問題は起きない。
ユニットテストでロールバックしながら繰り返しテストしていてはまった。
SQLAlchemyでも同じだよなあ。後で調べる。