二週間ぐらい前に、友人が「高レートでハードウェアエンコードできるTVキャプチャデバイスが無い」って嘆いていたんですが、ついにそれが登場。しかもダイレクトにDVD-R(RAM)に記録できるっていうのがおもしろいなぁ。DVDレコーダを買うか、これ使ってPC組むか、悩むところです。
でも結構CPU食うなぁ...。P3 800MHzで一番低いレートで、ちょうど3倍のレートを記録しようと思ったら2.4GHzいるなぁとか、単純計算したらもろ推奨環境がP4 2.4GHzだったし。
ま、実際買うときに再考するか。
以前、リンク参照で書いた機能を求めて上のプラグインに当たったんですが、求めていたモノとは違ったもよう。プラグインリストを見渡しても無かった。あぁ、結局作らないといかんのか。
っていうか、リンク先から題名を持ってくるのって、著作権違反になるのかなぁ。私的利用ならまぁ、問題は無さそうだけども、他人が見る場所にこうやって公開されている以上は100%私的利用ですとは言い切れなさげ。その辺の問題があるから、求めていたプラグインは作られていないのかしら。
ITMediaや、PC Web等普段巡回しているサイトでは、事前に連絡をくれというサイト(ITMedia、日経BP周り)や、大丈夫というサイト(毎コム、impress等)の二通りがあった。新聞系は普段は見てないのでなんとも。というわけで、プラグインを利用できる先を制限すればいいのかなぁとか思ったり。
しかし、普段から事前連絡くれっていうサイトの題名引用してリンク作っているので、それはどうなるんだっていう話もあるか...。むがが。
unixuserの中の人(?)。djbやpythonやscheme等の文書があります。簡潔で読み易いので暇のあるときにすこし読んでみるとよいかも。
以下の方法で画像を単独で表示させることはできたけど、文章内に画像を表示させるのは一時的にキャッシュファイルにした方がいいのかなぁ。SQL Object FAQにもあったようにDBに突っ込む前にbase64でエンコード。でもぶっちゃけこれであってる確信全然無い、挙動把握できてないし。しかもtubogears(cherrypy)経由で画像の保存ができてないし。(tg-admin shellからやった)→解決
# ===== mode.py ===== class Image(SQLObject): data = StringCol() height = IntCol() width = IntCol() def _set_data(self, value): self._SO_set_data(value.encode('base64')) def _get_data(self): return self._SO_get_data().decode('base64') # # # ===== controller.py ===== class Root(Controllers.Root): @turbogears.expose() def getFile(self): image = Image.select(orderBy=Image.q.id)[0] cherrypy.response.headerMap['Content-Type'] = 'image/jpeg' return image.data
で、cherryPyで作業ディレクトリのファイルを直接見せようとしてもうまくいかない、ガッデム。っていうかドキュメントどころかTipsすらまともに見付からない、生産性悪い気がしてきたしruby on railsに乗り換えようかなぁ。ぇ、ソース読まないならOSSに手を出すなって?ごもっとも...orz。
pythonでも@やら*やら使われてきたんじゃ自分がpythonを使っている理由「特殊記号が無い」が成り立たないし、くそー、とりあえずもう少し調べよう。
というわけでまぁ解決、っていうかそもそもの前提が間違えていた。「http://localhost:8080/test.jpg」みたいなURLで画像に大してアクセスできないか試していたけど、これじゃ"test.jpg"ってページを見に行ってるんだから見れなくて当り前じゃないか...、何考えていたんだろう自分(泣。
というわけで、引数を渡して任意の画像を指定するメソッドを作ってそのメソッドから画像データを投げさせるようにした。文章中に画像を張り付けたいときは、imgタグのsrcでそのメソッドを指定させれば画像は表示できた。
なんだか最初から最後まで考えれば当然の事なのにやってる最中はムキになって全然ちゃんと見ようとしていなかったorz。なんていうか全く無駄な事に馬力使ってしまった。まぁこれで問題も解決したし、今度からはもっと落ち着こう。
あ、作業ディレクトリはパスを直接書き出させた結果、プロジェクトのルート、つまり***-start.pyがあるディレクトリだった。
アップローダからのデータの受け取りは一つ目のリンクのコードをコピー、でImageオブジェクトを生成する際に以下のように生成した。
@turbogears.expose() def postFile(self): ... file = dataDict['myFile'] hub.begin() # heightとwidthの値は適当、参照されていないけどとりあえずつっこんでるだけ image = Image(data=file.value, height=100, width=100) hub.commit() hub.end() ...
何を渡すべきかはFieldStorageのドキュメントを読んで確認した。pythonでは他にもcgiへのアクセス方法はあるけど、CherryPyのドキュメントではFieldStorageを使うことを勧めていたのでこれに則ってコーディングする。
やっとpythonがわかってきた感じ(遅、そもそも動的に型が決まるっていうのはまだ慣れないなぁ。基本がJavaなせいかも。
土日は人が来てたので日記を付けず。
スピぱらは久しぶりに小野寺浩二を買ってみるかと思ったけど、明らかにパワーが弱くなってる気がするな。
夜桜四重奏、知り合いから薦められたけどその時、2巻までは買わないときついとも言われたので2巻までは買ってみた。確かに1巻だけだったら止めてたな、大化けしたとかってわけではないけど、2巻まで読んでキャラの掘り下げが進んだおかげかしら。
Wネームは最後に軽く山をつけて終わり、まぁこれでええじゃろ。
やっと買えたドスペラード、やりっぱなしの投げっ放しだけど、ネタを出しきったら後はどうでもいいや的な感じなのでこれはこれで、”そういうもの”として受け止めればなんともないか。