CherryPyのCacheFilterで以下のようにpropertyというbuildin関数が出てくる(cachefilter 116行〜122行)。
CacheClass = property(lambda self: cherrypy.config.get("cacheFilter.cacheClass", MemoryCache)) key = property(lambda self: cherrypy.config.get("cacheFilter.key", defaultCacheKey)) ... maxobjects = property(lambda self: cherrypy.config.get("cacheFilter.maxobjects", 1000))
関数名の通り、プロパティを実現する。詳しい解説は以下のリンクがわかりやすい、あと対話モードでの「help(property)」
CacheFilterの例ではgetに対応する関数だけが指定されていて、変数から値を取得する感覚で関数にアクセスする。上の例だとself.CacheClassから値を取得しようとすると、propertyの引数で渡した関数を実行する。
や、至極普通なPropertyの挙動なんだけども、pythonは何呼んでるのか把握しにくいんで書いておかないとハマリそう...。
土曜は引越先の採寸と周辺探索をしたら一日が潰れた。引越先の近くの本屋で本買ったり、ホームセンターで家具に萌え萌えしたり、そんな日だった。
日曜は昼すぎに起きて部屋の掃除、来週ぐらいには引越し業者に来てもらって引越しの見積りをしてもらう。んが、寝違えたのか肩が痛くてあんまり捗らず、結局要らない紙を捨てたり、こたつをたたんだりしたのが大きかったぐらいか。
ペン画の本は前からどうしようかなぁと思いながら様子を見てたけど、なんかこうペン画の練習の指針がどうしても欲しくなったので購入、はてさて頑張ろう。
ARIAはちょうど行った本屋で5,6巻しかなかったので飛ぶけど購入。幸せ。
なんかちょっと前に話題になっていたくさかったので、ロリータ以来新しい活字の本を買っていなかったのもあって購入。
んが、久しぶりに本を買って後悔した。っていうか今まで買った新書本ではぶっちぎりワースト1の本だった。
統計っぽいデータは出してる割りにデータの読み方が穴だらけだし、頻繁にでてくる作者の"経験に基づいた"という割りに根拠が全くわからない推論と結論、そして上辺だけのイメージで語る人間像、何よりもったいぶった読みにくい文章。
というわけで帰り古本屋にそのまま売っ払ってくるつもりだったけど、こうやって買ってしまったのも何かの縁だし、怒りにかまけて読んだって良いことはない(はずだ)と思って売るのを止め。「こういうことを書いている人もいるんだ」と自分と違う価値観を勉強する為にも読んでみようと思う、プライオリティ低いけど。
パーフェクトダークゼロがシビア過ぎてUnreal Tournamentとかド派手なFPSに慣れた人間としてはちょっと物足りなさ満点だったので、清ちゃんからの誘いもあって再びHALOの世界へ。
ゲームバランスとしてはやっぱりこっちの方がシステム的には合っているんですが、既に発売からかなり時間が経っているのでマップは攻略されつくしている感があり、右も左もわからん状態ではかなり辛かった。まぁ、慣れるしかない。
下流社会が余りにアレだったから、と言うわけでは無く、matzにっき 2006-02-01で書かれていて、副題に吹いたので興味がわき、買ってみることに。仕事帰り、いつもの本屋に行ったら1,2,5巻しかなくて、帰宅途中に池袋で閉店3分前のリブロとジュンク堂に行って購入、結局3巻だけが見付からず、どーしようかのぅ。
フルメタル・パニックはその途中で偶然発見、そろそろ新刊の季節のはずだよなぁと思ってたら2週間以上前に出てたのか。
両方とも現在読み進めてる最中。
Pythonで、メソッドを定義する際にselfキーワードを必ず必要とするのはSIMULAから来ているとるびまでまつもとさんが話していたけど、SIMULAの文法がどうなっているのか知らなかったので軽く調べたら出てきたのが上のサイト。確かに自身を引数として渡している、とりあえず他にも調べないとー。
(追記 06/02/08):大間違い...。selfの由来はSIMULAじゃなくてModula-3だった...orz。あぁもぅ(泣、ほんのすこし調べればすぐわかる間違いじゃないか。
上の画像を見るよりも、ぐんにょりと曲がるKonquerorの画像を見た方が何をしたいのかはよくわかるかも。ちょっと前にSUSEにこういうのが積まれるっていうんでいつになるのやらと思っていたけど、結構早かったなぁ。とはいえ、Composite使うと画面の描画がメタメタになるんよねぇ、また週末に試してみよう。
先日訂正したけど、pythonのクラス機構がModula-3から来ているということで、いくつか調べてみた。
1,2つ目のリンクではクラスにメソッドを定義する際には、selfを使う事が書かれている。でも3つ目のリンクではそもそもクラスの話自体が出てこないのはなんでなんだろう...。
で、見た感じだとpythonのようなselfの定義の仕方というより、C++でそのメソッドがどのクラスに屬するのかを定義するのと同じ使い方だった。こうなってくるとますますわからないのはpythonでそもそもクラスのブロック内でメソッドを宣言するのに第一引数としてselfを指定しないといけないのか、わからなくなってきた。
以前見付けた、Python のクラスシステムのように後付けクラス機構で、実装上の制限だからということなんだろうか。
そうなると、PythonチュートリアルでC++ と Modula-3 で見られるクラスメカニズムを混合したものと書かれているけど、全然そうは思えない...。C++やModula-3ではクラスブロックの外でメソッドを定義しているけど(だからselfキーワードが必要なのは理解できる)、pythonはクラスブロックの中でメソッドを宣言しているにもかかわらずselfキーワードを必要としている。ちなみに、selfを抜いてメソッドを定義すると、定義はできるけど使おうとするとエラーを起こす。
pythonのクラス機構は意図してModula-3からとってきたのか、それともそういう形になってしまったのかがわからない。selfキーワード自体はもちろん必要なんだけど、第一引数にわざわざselfなんて書かせるのは格好悪いと思うんだよなぁ。
しかしModula-3はのきなみリンクが切れまくってて探しにくいのなんのって。国内にはModula-3の文法を説明したページなんて全然無いし。
pythonのクラスの概念がModula-3から受け継いだモノで、SmallTalkとは異なる概念であるので、pythonがどういう風に影響を受けているのかとても興味はあるんだけども、突っ込みすぎると泥沼っぽいんでどのくらいまで突っ込もうかなぁ。
コミケ70の申し込みを郵送するのに練馬まで行ったついでに古本屋へ。家の近くに古本屋が無くてよかったなぁとか思いつつ買いもの。
四季童子の画集は初めてこの人を知ったカレイドスコープの少女の挿絵も入っていた。
少し古い技術書になると投げ売りな値段になっているので引越し前にもかかわらず、RTOSやビデオ信号技術に関するムックを購入、安かったし、RTOSはカーネルスケジューラの勉強の一環として必要だったのでラッキー。
電車の中でソフトウェアのソースコードを読みたいんですが、人が多い状況でノートを開くのは気が退けるし使いにくい。そしてうちのThinkPadは1時間もバッテリが持たない、と色々障壁があります。
というわけで、PSPのWWWブラウザでソースコードを読むのはどうかと考えました。調べてみるとPSPファームウェア2.0から導入されたWWWブラウザはNetFrontらしく、表示は遅いけど(PSPの性能らしい)タブブラウズができる(タブは3つまで)ようです。
というわけで、GNU GLOBALを使ってHTMLを生成して、メモリースティックへ書き込むことにします。
まず、GNU GLOBAL(gtags)でソフトウェアのディレクトリ上でGTAGSファイル等を生成します。
gtags -v
次にHTMLを生成します。
htags -sanvo --statistics
生成されたHTMLディレクトリをメモリースティックの適当なディレクトリに入れ(ここではhtml/prog1)、PSPから以下のURLを入力し表示させます。
file:/html/prog1/index.html
デモ動画を見て思わず吹いた。やばい、楽しすぎる!ぐんにょりしながら最小/最大化するだけだと思ってたらここまでできるモンだったのか。
うちの環境で動くのかしらと調べてみたら、グラフィックカードは一応いけそうだったけど、開発版XOrgを必要とするようだったので断念...orz。だってめんどくさ(ry というより時間がかかりそうだったのが断念した一番の理由。
新人研修の最後の課題、PostgreSQL CE Silverの試験を受けに池袋へ。マニュアルを適宜確認すればいいじゃねぇかとか思いたくなるような設問がいくつかあって正直テンション上がらない試験勉強だった。とはいえ受からないとまた受けないといけないらしいからなんとか受かるように勉強。
というわけで何とか合格、正当率64%の合格ラインジャストでの合格だった、あぁっぶねー。しかしSQLに関する問題の正当率が悪いのがにんともかんとも、これっくらいちゃんと勉強しても損は無かったのになぁ...復習しとこう。
試験受かってすっきりしたので池袋でオタな買い物。書影のブツ以外にドラゴンエイジピュアも購入。
ドラゴンエイジピュアは思ったより質がよかったので、継続的に買おうかなぁ。あと、すぱすぱが思ったよりおもしろそうだったので単行本も買ってみようと思う。
ラズ・メリディアンはスタンダードな少女漫画、ファンタジー色が強すぎる気がするけど、それは単に自分の趣味の話なのでまぁいいや。E'sと違って明るい画面作りなのでかなり違った印象を受ける、でも相変わらず細部がとことん細かいので見てて楽しい。
はじめてのおてつだいのビジュアルファンブックは思ったよりも資料性のある本だった。しかし、マイナーな出版社のムックってこうイマイチ作りがよくないんだよなぁ、画面からの切抜き画像のエッジが雑でしょうがない。
nautilusのソースを読んでいたら、2800行のファイル(src/file-manager/fm-icon-view.c 461KB)を読み込んだとき、メモリ不足で目的の関数を調べることができなかった。長いファイルを読み込むとメモリ不足になってどうともできなくなり、正直気兼ね無く使えるシロモノとは呼べない。レスポンスが悪いとか、タブ3つは使いにくいとかはまだある程度ゆるせるけど、簡単にメモリ不足に陥られては微妙。
後,GLOBALで生成したHTMLはファイルが多すぎてgimpのソース全部だと容量が足りなくなった。
とはいえ、PSPのワイド画面は思ったよりも見やすかった。PCで見る画面とほとんど変わらない感じで見れる。PSP用に対処する必要はあるけど(flashが使えない、あと上のように大きいファイルは読めない)、画面の大きさでは現行のモバイル機器の中では一番webブラウジングには向いているのかも知れない。
(追記)メモリ不足の件は、他に大きいファイルを開いていたのが原因のようだ、とはいえ1MB強のファイルを開く場合は単体でメモリ不足になる。
師匠からのツッコミを受けてキャッシュを使用しないにして読み込ませてみる。
...うーん、やっぱりメモリ不足って出るなぁ、でもちょっとは耐えられるようになったか?いや気のせいかも。っていうか、キャッシュを使用してもしなくてもレスポンスに全然差が無いのは如何なものか。それともこのキャッシュってメモリースティックの領域使ってるんじゃあ無いよなぁ...。
ぇ、壁紙設定消せって?それはできない相談だ。
まぁそんなわけでもうちょっと様子見てみまする。あと、昨日レスポンスが悪いって書いたけど、決して遅すぎるわけではなかった。スペック相応の反応を見せているようだ。というのは、同じページを仕事先のPCで開いたら思いのほか描画にかかったからでした。
電車内でPSPを使ってソースコードを読むだけでなく、PCにつっこんで暇な時、気分転換にちまちまとコードを読むのにも使っています。気分転換に迷路か宝探しの気分でコードを読むのはおもろい。まぁ実になるかどうかはもっと継続的につきあっていかんからアレやけども。
nautilusのコード.g_signal_newでシグナルは生成され、g_signal_emitで発行される、であってんのか?自分でコード書かないとイマイチ確証が持てんなぁ。受けるのはg_signal_connectのはずなんだけど、対応関係が追いきれない...。PSPで読んでる限界なのか、まぁ自分の読み方が悪いせいなんだけども。
CodeReadingをちゃんと読み返さないとなぁ。
nautilus上でファイルに対してタギングを行う拡張。GNOMEは2.14からデスクトップサーチが標準でついてくるのでそれと合わせてこれを使うとかなり便利になるんじゃないか。
あと、Software Design 3月号を購入、目的はTurboGearsの記事。LL特集の一部だったけど、pythonを使ったこと無い人、使って間も無い人向けの記事としては良い内容だと思う。しかし、perlとかrubyの記事がもっと踏み込んだ記事なのにpythonがここまで入門記事っていうのは悲しいなぁ。
あとの2冊は前々から欲しいと思っていた本、ふつうのlinuxプログラミングはシステムコールを利用する一般的なプログラムを広く扱った本、C言語の特にシステムコール周りを使ったプログラミングは未だに全然わかっていないので、これをとっかかりにしたい。
ワタルメモリアルブックはmixiのワタルコミュで知った本、中身は少々今更感の漂う内容だなぁ。キャラが多すぎるのでどうしても浅くなっているのはしょうがないか、スタッフへのインタビューがこの本を買った一番良かったとこ。
電車男本の中ではこの人の漫画が一番好き。漫画の展開は少々先に流れありき感があったけど、細かいアレンジは一番良かった。
結局我慢できず、The X.Org Modular Tree Developer's Guideに沿ってX11R7.0をビルド中、Building modular X.org with ''jhbuild''のjhbuildを使って楽々ビルド...だったはずが、途中以下のエラーが出て止まる。
(cd .libs && rm -f libXau.la && ln -s ../libXau.la libXau.la) make[1]: *** No rule to make target `Xau. at LIB_MAN_SUFFIX@', needed by `all-am'. Stop.
ちょうど、全く同じ状況になっているメールを発見、どうやらaclocal実行時に読み込ませるべきディレクトリがあるようだ。
というわけで、lib/Xauを単体でビルドしてみる。(%はプロンプト)
%aclocal -I ../util/macros && automake && autoconf %./configure --prefix=... && make && make install
ほんとはconfigureの前までで十分かも。でもってjhbuildを動かすと、今度はX11で止まった。同じように対処してみると、今度はautomake実行中以下のエラーが起きた。
configure.ac:33: error: possibly undefined macro: XTRANS_CONNECTION_FLAGS If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation.
ググったら出てきた記事を参考に、autoconfを動かしてからautomakeを動かしたらうまくいった。というわけでビルドを再実行、ぬ今度はlib/Xtで止まった...(以下エンドレス
よくよく考えたらutil/macrosの中身をインストールしたディレクトリをPATHに加えれば良いだけじゃないか。
大学の時の後輩がこっちに研修で来てたので、今日は一日一緒に東京観光。こういう機会でも無いと近場でも中々足を運ぶことって無いんだよなぁ。ただの出不精かしら。
行ったのは浅草、秋葉でメイド喫茶、赤坂で中華、国会議事堂。でもって最後に葛西臨海公園に行って観覧車乗ってきた。葛西臨海公園に行ったのはハチクロ3巻で出てきたから行ってみよーって感じで。
ハチクロの漫画中でも出てくるように周りに何も無いっていうことは無かったし、人もそれなりにいた。けど、向こうに確かに見えるはずの観覧車に歩いても歩いても着かないってのは実感、ほんと舟着き場から遠い。
一日ひたすら歩いたので足痛い...。運動しないとなぁ。
っていうか、こんなにファイルがとっ散らかってて、ファイル同士の関係がよくわかんなくて、そもそも何のためにどういう意図で作られたのかわからないフォーマットなんてどうやって追従しろっていうんだ。
しかしそれを誰も指摘した気配が無いし、そんなこと思ってるのは自分だけくさいしなぁ...。あーあ、駄目なのかしらorz
仕事先だから試していないけど、app/tools/gimptexttools.cの以下の部分(714行〜725行)を削ったらアクティブレイヤーにテキストをつっこみそうな予感。や、もうちょい下まで必要かも、関数をちゃんと追いかけよう...。
if (gimp_image_floating_sel (image)) { g_signal_handlers_block_by_func (image, gimp_text_tool_layer_changed, text_tool); floating_sel_anchor (gimp_image_floating_sel (image)); g_signal_handlers_unblock_by_func (image, gimp_text_tool_layer_changed, text_tool); }
先日、大学の後輩と遊んだ帰り、送るついでに羽田でANA 制服コレクションを買おーと意気込んでたら、全然店がわかんなくて、疲れてたし断念。で、今日webサイトみたら限定フィギュアの宣伝に気がついた。
うーん、これで7000円は高いなぁ、このラインナップなら8代目以外に用は無いし。あ、制服コレクション欲しい理由は2代目を宮川武氏が作ってるからで、後は制服の好みで8,9代目が欲しい。
ほんとは今日買いにいくつもりだったのに...買いにいくどころか会社からさえ出られないぜ(泣