Python

python-cdb の Bug

Red Hat Linux Enterprise Linux WS 4 の glibc はメモリチェックが厳しいらしく、python-cdbを使うと *** glibc detected *** double free or corruption (out): 0x0000002a955ea030 ***とか言って abort しやがる。 で、新山さんの Pure Python版 pycdbを…

False の上書き

Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win 32 Type "help", "copyright", "credits" or "license" for more information. >>> False False >>> type(False) <type 'bool'> >>> if False: ... print "True?" ... >>> >>> False=T</type>…

Python の真偽値

ref:メモ帳 - 真偽値比較表 Python 数値型の 0、空文字列、空タプル、空リスト、空辞書のみ偽。 None と False が入ってねー、とか思ってリンクしてある日本語ドキュメントを参照。 ブール演算のコンテキストや、式が制御フロー文中で使われる最には、 以下…

Python で TCPServer/socket.accept を使う場合の注意

Python を Windows で使っているとどうも、socket.socket.accept で接続待ちしている間、Contol-C などによる割り込みはキューに入るだけで、即座に処理できないらしい*1。結果として Control-C での SIGINT が処理されてプロセスが終了するのは accept から…

coLinux で Emacs の kill-ring の内容をWindowsのクリップボードと同期する

Emacs で kill したバッファを Windows のクリップボードに入れたいんだけど。みんなどうしてるのかな...。というかそもそも coLinux と Windows 間でクリップボード共有する方法がわからない。常識っぽいんだが。 Linux 自体にクリップボードの概念がないよ…

Python の join が str のメソッドになっている理由

それにしても、Pythonのjoin()はなんでArray#joinでなくてString#joinなんだ? これ、理由は明解で、「join メソッドは文字列の処理だから」です。 This method can be used with any argument which obeys the rules for sequence objects, including any n…

「Perl, Python, Ruby の比較」があまりにもいい加減な件

ref:Perl, Python, Ruby の比較 ref:はてなブックマーク - Perl, Python, Ruby の比較 ref:はてなブックマーク - Perl, Python, Ruby の比較 ちょっと遅くなったが以前宣言したとおり、書いておく。 「Perl, Python, Ruby の比較」はどうも調査が足りないの…

XML-RPC で簡易分散環境を構築する

大量のファイルを処理するタスクがあるので、めちゃ適当な分散システムを構築してみた。本当は SGE (Sun N1 Grid Engine) を使えばいいんだろうけど、使い方が悪いのかえらく遅くなったので。 で、普通はスケジューラデーモンが各マシンにタスクを割り振るん…

SimpleXMLRPCServer で None を返せるようにする

下のエントリの Queue Server で Queue にエントリを追加するコードを書こうとして軽くはまったのでメモ。 XML-RPC の規格なのかどうかは良く知らないが、Python の SimpleXMLRPCServer はデフォルトでは None を返せないらしい。None を返せるようにするに…

seq を真面目に実装してみる

ref:技術メモ帳 - seq コマンド for BSD ref:メモ帳 - my bashrc 代わりに、ものすごく高機能な jot コマンドというのが入っているので それを使って seq を実装してみた。 function seq(){ jot $2 $1 $2 }ええと、$1 が 1 以外のときにうまく動かないと思う…

Half Width Katakana の判定

def isNotHalfWidthKana(field_data, all_data): test = unicode(field_data, 'utf-8') KANA = range(65377, 65439) if len([c for c in test if ord(c) in KANA]) > 0: raise validators.ValidationError(_('Not Half-width Kana.'))def isNotIncludeHalfWi…

PySnarl を使ってみる

SnarlというGrowl の Windows 版とでもいうようなソフトがあるのだが、PySnarlという、Snarl の Python binding を見つけたので、以前書いたネットワークの接続状況をシステムトレイに表示するスクリプトに組み込んでみた。 10秒ごとにチェックし、ネットワ…

unlink と remove

ref:Fomalhaut of Piscis Australis : [python] うそん・・・(;´Д`) コメント欄より。 わたしの場合、remove は「削除する」というイメージで、 unlink は「( 結合しているものを ) 外す」というイメージ。 英単語から連想する動作は別なのに〜って ただ…

REXML と ElementTree のパース時間

Ruby で REXML で2MB弱のXMLをパースしてみるとえらく待たされるように感じたのでちょっと Python2.5 の ElementTree とパースの速度を比較してみた。 % time ruby test.rb test.xml ruby test.rb test.xml 5.67s user 0.09s system 99% cpu 5.771 total% ti…

pytstでtrieのsave/load

pytst のテストコードを眺めてたら write_to_file と read_from_file なんてメソッドが。 こんな感じ? import tst trie = tst.TST() for key, val in keys.iteritems(): trie[key] = val trie.write_to_file('test.tst')読みこむときは trie = tst.TST() tr…

pytstがアップデート

Seeing that someone in Japan uses it made me have a look at the project once again. ちょwww 実は日本にはいないんだけどね。 まぁ、それはそれとして、Java で TST を実装するときにノードごとにインスタンス作りたくなかったからレイアウトを決め…

Trieではてなキーワード自動リンク

pytstを使ってはてなキーワード自動リンク。全部 Unicode でやりたかったけど、pytst が unicode オブジェクトを扱えないらしくとりあえず、内部は全部 UTF-8 の str で。 例のdartsを使ったやつと違って一応大文字小文字を区別しないマッチングをするように…

Unicodeオブジェクトへの変換コスト

unicode(s, enc) より s.decode(enc) が早くて decoder(s)[0] は もっと早いという話を聞いたので試してみた。 #!/usr/bin/env python # coding: cp932 from timeit import Timer import codecs decoder = codecs.getdecoder('cp932') setup = 'from __main_…

メタキャラクタとORの扱い

パパパパパイソン - はてなダイアリーキーワードもどき import sys, re, csv path_dict, path_data = sys.argv[1], sys.argv[2] encoding = 'cp932' col_keyword, col_data = 1, 3 reader = csv.reader(file(path_dict, "rb")) keyword = [unicode(row[col_k…

はてなキーワードAPIからはてなキーワード一覧を取得する

technical note - はてなダイアリーキーワードと辞書 こうですか?良くわかりません。 % wget http://d.hatena.ne.jp/images/keyword/keywordlist % python extractkeyword.py keywordlist > keywordlist.extracted % grep java keywordlist.extracted | hea…

Phinlodaさんの問題に答えてみる

とりあえず元のネタは以下 裏表(Phinloda のもう裏だか表だか分からないページ) | プログラミングの問題、というかネタ 自分が中級者かどうかは微妙なところではあるが、Java と Python でやってみた。両方ともテストコード付き。

Emacs22 付属の python-mode

Emacs22 からは python.el が付いてきてて、pycomplete なしでも補完ができるのだけど、補完機能が中途半端なのが残念。使うなら結局 pycomplete と組み合わせることになるかな。まぁ、そもそも python-mode.el と何が違うのかも良くわからんけど。 とりあえ…

Meadow で python-mode + pymacs + pycomplete を使う

Meadow で pycomplete を使うメモ。 Pymacs のインストール http://pymacs.progiciels-bpi.ca/ から Pymacs-0.22.tar.gz をダウンロードしてきてインストールする。 % cd Pymacs-0.22 % python setup.py installpymacs-services を起動するためのバッチファ…

Emacs22 で pycomplete

なんか Emacs22 だと pycomplete が動かなかったので Hack。 プロパティ付きの文字列の入出力周りに変化でもあったのかな。 --- pycomplete.el.orig 2005-12-02 10:30:11.000000000 -0500 +++ pycomplete.el 2006-09-01 20:13:55.718750000 -0400 @@ -26,7 +…

PDICの機能を利用するPythonスクリプト

DDEを使ってPDICを操作するPythonスクリプトを作ってみた。要 Python Win32 Extensions。 なんかもう、Win32にべったりでアレな感じなんだけども。 pdictool search wordで PDIC を Foreground にして word を入力した状態に。 pdictool popup wordでポップ…

ネットワークの接続状況をシステムトレイに表示する

最近、システムトレイのワイヤレスネットワーク接続のアイコンが全然信用できなかったりするので、ネットワークの接続状況をシステムトレイに表示するスクリプトをでっち上げてみた。要 Python + wxPython + dnspython。

Pythonでn-gramの頻度計算

http://d.hatena.ne.jp/squall_kt/20050223#1109094421 1年以上前のエントリにTrackback打つのもアレだけどまあいいや。最近 Python にはまっているので練習がてら。 とりあえず意味もなく徹底的に generator 式を多用してみた。おかげでほとんどループがな…