python
みんな同じことで悩んでいるようで、こんな記事見つけました。 tail -f in python with no time.sleep - Stack Overflow ちなみに NetBSD の /usr/bin/tail を見たら、kqueue()、kevent() を使っているようです。
早速、GCalSync を入れてみました。バージョン 1.3.0ベータというもので、かなり冗長なメッセージが出ますが、いちおう動きました。Google Hosting でも大丈夫のようです。 ちなみに、Python 2.2.2 が動きました! 写真参照。 後記 GooSync に乗り換えました…
最近、ボケ防止にいろんなコードを書いて、各社お客様の若手プログラマに取り残されないように注意しています。コードを見てフンフンと思うのと、実際にコードを書くのでは雲泥の差があるのです。(もちろん雲というのはホンワカしていていい加減であり、泥…
Python にはスライスという概念があって、リスト型の途中に別のリストを挿入する簡単な構文がある。例えば、あるリスト a = [1, 2, 5] の途中にリスト [3, 4] を挿入するには、a[2:2] = [3, 4] とすれば良い。しかし、ここで右辺式にはリストを指定しなくて…
Python のイディオムで、こういうのがある。 f = open('file.txt') whlie 1: line = f.readline() if not line: break process(line)これは、ファイルの終端(EOF)になると readline() が '' (空文字列) を返し、'' は論理値を期待する文脈で False と解…
結局、XLST 使いませんでした。なんか大げさ、というか、ちょっと使い方が違う気がしたので。
せっかく DOM API を使うんだから、ということで、とある XML データを parse するだけでなく、ノードを追加したり削除したりするコードを書いてみました。しかし、xml.dom.minidom の、insertBefore() とか removeChild() とか、めちゃめちゃ遅い! XML の …
通常、「%」を剰余演算子として考えている場合、この演算子と「*」 (乗算演算子)の結合の強さが同じだということは、よーく理解している。(と思う) しかし、盲点があったのだ。以下の式を見て欲しい。Python では、「%」を文字列の置換演算子として用い…
Python がポケコンみたいに使えたら良いのに、と思って調べたら、S60 (Symbian OS のプラットフォームらしい)で Python 2.2 ベースが動くそうじゃないですか。 http://postneo.com/talks/pycon2006/ http://forum.nokia.com/info/sw.nokia.com/id/ee447e84…
NetBSD で Python 2.4 を pkgsrc からインストールしたのですが、readline が入っていません。いまどき readline なんて必須じゃねーの? と思って、setup.py をごにょごにょしていたが、うまく行かず。途方にくれて Google で情報探していたら、なんと NetBS…
さっそく、Python の xml.dom.minidom を使って DOM ツリーをトラバースするコードを書いています。ついでに XML への変換機能も使ってやろうと思ったのですが、本質的でないところで悩んでいる気が。これというのも、toprettyxml() が思ったような形式で出…
Python が好きな点の一つとして、組込ライブラリとかビルトインとかオブジェクトのメソッドなどに関するドキュメントを、Python 自身で問い合わせることで参照可能なことです。 >>> a=[1, 2, 3] >>> dir(a) # リスト型の a が持っているプロパティを表示する…
備忘録です。最近歳をとったせいか、すぐ忘れちゃうので。Python の場合、int() や float() が使えます。int() では radix (基数)も指定できます。 例 >>> int('123') 123 >>> int('0123') 123 >>> int('0123', 0) 83 >>> int('123',16) 291 >>> int('0x12…
最近脱線が甚だしいのだけど、もしかして将来 Python (Jytyon) でコードを書いて GUI のラッパを被せるかも知れないとか思って、最近の傾向を調べてみました。Gumbie も面白そうですが、やはり、GUI は GUI で書いたほうが楽かなー、と。(← 軟弱) 私の調べ…
早速 Jython を Windows XP 上で試してみました。Java の環境変数とかのセットアップはもう忘れてしまったので、ちょっと苦労しましたが、次のことが分かりました。 .py 形式のコードを、そのまま Jython で実行できる。こんな感じです。 C:\> jython hoge.p…
かつて、"Write once, run anywhere" という標語みたいなものがあって、ちょっとばかりプログラマの夢、というか心を惹きつけてました。いまさらですが、一度コードを書けばどこでも動く、という Java 勢力のプロパガンダみたいなものです。これはある程度実…
migration スクリプトですが、ちょっと癖があるようです。$INSTANCE/data ディレクトリに移ってから moin --config-dir=.. --wiki-url=www.hogehoge.net/mywiki migration dataみたいにしたらうまく行きました。
Plone 悪くないと思うんですが、いかんせん設計が複雑で、Zope の癖もよく理解していないと安心していじれないという不安があります。私は MoinMoin と Plone と併用しているんですが、新しいページを作るときは MoinMoin を使いがちです。MoinMoin は、ペー…
DDJ で Ajax のことをちょっとだけ読んでみました。フレームワークというか、ツールキットというか、そういうものがいろいろ開発されているみたいだけど、サーバー側のコードは Java とか PHP が主流なのかな。Python で書けるのはないのかな。 参考 Get Ahe…
Python Imaging Library (PIL) チュートリアルが参考になります。よしよし。
http://diveintopython.org/power_of_introspection/getattr.html なるほどー。
今度は、スクロールバー付きです。良く分かっていないので、「動けば正解」の例ということでご勘弁。 import wx class DrawPanel(wx.ScrolledWindow): def __init__(self, parent): wx.ScrolledWindow.__init__(self, parent, -1) wx.EVT_PAINT(self, self.O…
むかーし、PC で BASIC という言語が標準で使えたころ、画面にグラフィック*1を描くのは実に簡単でした。つまり、 10 cls 20 line (0, 0)-(100, 100) 30 circle (50, 50), 50みたいな感じですね。 いま、仕事でちょっとした図を描きたいのですが、単純なグラ…
久々に Python ネタですぜーっ。(← 遅すぎ?) Eclipse で Python が使える PyDev をダウンロードしてみました。知らないうちに 0.9.8.1 というバージョンになっていて、かなり実用的に使える印象を受けました。ただし、私はそもそも Java を使わなくなって…
http://www.python.org/2.4.1/ 2.4.1 がリリースされました。セキュリティの修正を含む、2.4 系列の最新リリースです。2.4 系列では新機能の追加はされず、バグの修正だけが盛り込まれる予定です。
そういえば、http://www.python.jp/Zope/links/japanesesite なる大仰なリストに登録されてしまって以来、何か Python のことを書こうかと思っているのですが、なかなか書けません。リスト登録を返上しようとも思ったのですが、近いうちに、mod_python を試…
という大それたサイトに、私の日記が登録されてました。驚きました。もっとたくさん Python について書いて、Python 界に貢献せよ、という神のお告げかも知れません*1。今度は、mod_pytohn にチャレンジしようかと画策しています。。 *1:神懸かりはいけませ…
cookie を使う CGI を初めて書いてみようかと思い*1、ちょっと調べてみました。元々は Netscape 社が考案した技術のようで、標準だと RFC 2965*2 というのがあるようです。シェルスクリプトを使って cookie を制御するのは案外メンドーそうで、やはり mod_py…
ちょっと興味を持ったのですが、だんだん本来の目的から逸してきたような気がするので、そろそろ GUI 遊びから一時撤収しようかと思っています。
Python を AWK のように使えないかと思い、こんなの書いてみました。 http://ayoko.homeip.net/ayokomoin/AwkPy それを使うと、次のようなスクリプトを走らせられます。例がダサいのは、ご愛敬。 import awk def func_BEGIN(): print "Hello!" def cond1(arg…