2009-01-01から1年間の記事一覧
# coding: utf-8 def foo(): """ほにゃらら""" 一般的にdocstringと言われていて標準的に使われるドキュメント形式なんだけど、上記のように通常の文字列として書いた場合は (Python 2.xでは) byte string になり、utf-8でエンコードされているという情報が…
eBookにて購入。いいなこの本。 チュートリアルを読み終えてしばらくPythonを触った人〜独学でPythonパッケージをPyPIに登録するようになった人まで、入門者を除く広い層にお勧めできる。 Pythonって、標準で、Python以外の言語は使えるプログラマ向けチュー…
Visual Studio 2010 は SKU (Editionの数) を整理することがこの間発表された。 これで困るのが、Visual C++ Standard Editionを使っていた人。ATL/MFCとx64コンパイラのサポートがExpress Editionにはなく、Visual Studio 2010 ではStandardがProfessional…
ソースはこれ: http://mail.python.org/pipermail/python-dev/2006-December/070238.html例えばパスをwrapするオブジェクトを作るときに、パスをunicodeで扱うのであれば、その文字列表現もunicodeにしたい。 そのオブジェクトに文字列表現を与えるとすると …
builtin の compile() 関数に encoding オプションをつけた IPythonやIDLEといったPython製Pythonインタラクティブシェルは、compile()関数を使ってユーザーが入力したコード片をコンパイルするんだけど、そのコード片をutf-8のコンテキストでコンパイルして…
(hgの部分をgitに置き換えてもOK) bzrとhgを比較するベンチマークだと、特にcloneにおいてbzrが遅い。 bzrとhgにおける、リポジトリとブランチの扱いの違いについて まず、bzrは色々な使い方に対応できるようにしようとしてリポジトリとブランチと作業ツリー…
TortoiseBZRはTortoiseSVNの動作を移植しているんだけど、TortoiseSVNが各ディレクトリに管理ディレクトリを作るのに対してbzrは作業ツリーのトップにしか管理ディレクトリを作らないので、TortoiseSVNのキャッシュ構造だとすごい無駄なことをしていた。作業…
PySide – Python for Qt RiverbankのPyQt4と別のQt Python binding. Nokiaが出資しているらしい。 PyQt4がGPLなのに対して、LGPLで使えるPython bindingがほしかったけどRiverbankとの交渉がまとまらなかったので新プロジェクトが立ち上がったらしい。 まだ…
http://groups.google.com/group/comp.lang.python/browse_thread/thread/314a3043ea63319f/ unicode vs s.decode unicodeはLOAD_GLOBALで、s.decodeはLOAD_ATTRでスタックに積まれる。で、LOAD_GLOBALの方が速い。 さらに言えば、何度もデコードを行うので…
KeePass 2.08 がいつの間にかリリースされていて、しかもとうとう2系が安定版になっていた。 おもしろいのが、2系は.NETになってmonoにも対応しているところ。今までは KeePass 1系をWindowsで、 KeePassXをLinuxで使っていたけど、統合できそう。
TortoiseBZRのコンテキストメニューがWindows 2000環境で上手く動かないという報告があった。 TortoiseSVNの中身を見てみると、Windows 2000でコンテキストメニューにアイコンを表示しないようにしてあった。Windows 2000には何か問題があるらしい。 Tortois…
TortoiseBZRでAddメニューを出すには、バージョン管理されていないファイルがあるディレクトリでコンテキストメニューを表示すれば良かった。 バージョン管理されていないファイルを選択して右クリックしても "add" メニューが出なかったので、出るようにし…
mutableなクセにメソッドはstrと同じくout-placeという中途半端なbytearray. strとの違いは変更が可能 In [4]: ba = bytearray('foo') In [5]: ba[1] = 'O' In [6]: ba Out[6]: bytearray(b'fOo') というだけだと思っていたのだが、実はこんな所にも変更が I…
自分ならこう書く - pythonでA* - ラシウラより def astar(init, goal, nexts, distance=lambda path: len(path), heuristic=lambda pos: 0): import heapq queue = [] checked = [init] heapq.heappush(queue, (distance([init]) + heuristic(init), [init]…
http://msdn.microsoft.com/en-us/library/bb776094%28VS.85%29.aspx GetCommandString() の idCmd は、QueryContextMenu の中で InsertMenuItem 等で設定した id ではなくて、その id と QueryContextMenu の引数の idCmdFirst とのオフセットが渡される?…
例外クラスがformat stringにbyte stringを使っていたので、"%s" % (foo,) みたいな部分で foo.__unicode__ ではなくて foo.__str__ が呼ばれてしまっていた。 __str__ を使うとunicodeのパスをutf8にencodeしてしまうクラスがあり、Windowsでエラーを出すと…
拡張引用構文覚えた! こういう経験があると、たかが「List = list」ごときで何を大げさなと思ってしまうけど、Pythonista的にはこういうのも受け入れられないんだろう。 Pythonistaはtypedefすら拒絶する? (Re: Python での組み込み型をより自然な名前にす…
Windows XP 以下では、symlink (reparse point)はディレクトリに対してしか使えない。 Windows Vista では、symlinkがディレクトリにもファイルにも使えるようになった。が、管理者権限が必要になるのでアプリケーションで使うには何とかしないといけない。…
ncある限りぼくはどこまででもいけるッ! - (ひ)メモこの ProxyCommand を puttyごった煮版で利用してみる。 まずは、踏み台サーバーに普通に対して普通にputtyでログインできる状態を作り、適当なセッション名をつけて保存する。 コマンドラインから "plink…
http://docs.python.org/library/stdtypes.html#file.encoding file.encoding The encoding that this file uses. When Unicode strings are written to a file, they will be converted to byte strings using this encoding. In addition, when the file i…
「Re: "sep".join(list) が気持ち悪い理由」 http://d.hatena.ne.jp/kwatch/20090716/1247717055 みんなー、トラックバックって知ってるよねー!? 他人のとこに長いコメント書くくらいなら自分のブログに書こうぜ!#隠れてコソコソ陰口叩かれるぐらいなら超長…
結局は http://d.hatena.ne.jp/methane/20090702/1246556675 なんだけど、ソースを提示しておく。まず、Python FAQにはこんな風に書いてある。 http://www.python.org/doc/faq/general/#why-does-python-use-methods-for-some-functionality-e-g-list-index-…
http://code.google.com/p/unladen-swallow/wiki/Release2009Q2 後で試そう。
会社のBlogでも告知しているんだけど、会社のBlogはPythonistaのアンテナにあまり登録されていない気がするのでこちらでも告知しておく。 http://dsas.blog.klab.org/archives/51456004.htmlMessagePackはjson相当の機能をもつけれどもjsonと違いバイナリフ…
mercurial 1.3 が出て、本家 hg-fixutf8 が動かなかったので、適当に更新してみた。 http://bitbucket.org/methane/hg-fixutf8-jp/ 変更点はめんどくさいから履歴参照。 もともと強引なfixutf8拡張がさらに強引になった。bzr使えって言えたらいいんだけど、b…
http://d.hatena.ne.jp/pashango_p/20090702/1246550203 len()がリストのメソッドでないのも同じ理由です。 オブジェクト指向的に考えれば、リストのメソッドであるべきなのに、わざわざビルトイン関数にしたんです。 「オブジェクト指向的に考えれば、リス…
bzrのスタンドアロン型GUIとしてハイスピードで開発されている bzr-explorer. 0.4がもうすぐ出ると言うことで、Launchpad上での翻訳に参加してみた。 Launchpad遅いけど、他のプロジェクトで使用した訳語が候補に出てくるのは強みだな。あとは、翻訳対象の語…
hg-fixutf8 は、出力しようとしているutf-8文字列の中に、現在のコードページで出力できない文字が存在した場合、SetOutputCP(65001) して utf-8 をそのまま出力する。 でも、これ、実際にやってみるとコードページを切り替えるときにコンソールの内容が化け…
https://wiki.ubuntu.com/MultiarchSpec 64bit 環境に移行するのが面倒な理由のうち、32bit 環境で動くバイナリをビルドするのが面倒、32bit でバイナリ配布されているアプリケーションを利用するのが面倒、という理由はこれが実現されれば解決するな。そも…
「(ruby|javascript)でstr.join(array)、pythonでlist.join(str)」http://blog.livedoor.jp/dankogai/archives/51226075.html ここではlistを継承したListクラスをこさえて、そこにjoinメソッドを追加しているが、listに直にメソッド追加する方法はないのだ…