路傍のプログラマ

只のプログラマが綴る愚痴と備忘録

2to3.py

2010-01-28 18:38:47 | プログラミング
そろそろpy3k対応も考えないといけないようなので、2to3.pyを試しに使ってみました。

まだまだ手作業がいるなあ、と思ったところをメモ。

・「for i in map(...)」というのを、「for in list(map(...))」に直してくれるのですが、ちょっと安全側に倒しすぎでは?と感じます。

・py3kでは、__eq__は__eq__から自動的に作ってくれる(__eq__が定義してあれば「... != ...」のを「not( ... == ...)」と解釈してくれる)のですが、__ne__が定義されていても警告してくれません。

・「print x, y」を「print(x, y)」にしてくれるのですが、前者でスペースが入ることを期待していると、後者は出ないので注意。

・途中までpy3kに直したソースファイルにもう一度2to3.pyを実行すると、余分な処理を付け加えてくれる。「print(a)」を「print((a))」にしてくれたり。

・型を追いかけてくれないので、open(..., "rb")で読み込んだ内容にたいして正規表現のマッチングをしているところでエラーになる。
(python 2.Xでは、読み込んだ内容はstrになるので、reでマッチングできるが、3ではbytesになるのでエラー)

・上記も含めて、str/unicodeとbytes/strのまわりは自分でやらないといけません。「unicode("abc", "shift_jis")」は「str("abc", "shift_jis")」と直訳されてしまいますが、もちろんエラーになります。

ということで、2と3の違いを理解していないと使えないなー、という感じ。

まあここまで自動化してくれたのはうれしいですけれど。


BOF: 「HTML5への対応を進めている」

2010-01-28 12:54:35 | Birds-Of-Feather
記事「Chrome 4でGoogleが見せた"Web標準"へのこだわり - グーグル・及川氏」
http://journal.mycom.co.jp/articles/2010/01/28/chrome4/index.html
より。

あるベンダが引っ張っている規格を、そのベンダが「準拠する」というのも変な感じが。

動画のH.264はFirefoxが対応しないとか、
(記事「ネット参入に“料金所”は要らない、Mozilla」
http://www.atmarkit.co.jp/news/201001/25/video.html
参照)

今年に入っても仕様が分離したりくっついたりとか、
(記事「HTML5 仕様から Communications の章が分離、他。」
http://www.html5.jp/blog/2010/01/09/html5-specs-20100109/
参照)

開発者が幸せになれる標準なんだろうか?HTML5って。

メモ: シンタックスハイライター pygment インストール

2010-01-26 19:39:06 | プログラミング
PygmentはPythonで書かれたシンタックスハイライターのライブラリです。
http://pygments.org/

ソースファイルからハイライトされたhtmlを出力します。多数のプログラミング言語に対応し、オプションもいろいろあって便利そう。

試しにインストール(Windowsで)したのですが、ちょっとだけ引っかかったのでメモ。

インストールはドキュメントにある手順通り、コマンドプロンプトで
easy_install Pygments

ただ、ドキュメントにあるpygmentizeというコマンドプロンプトからpygmentを利用するためのスクリプトが、c:¥python26¥Scripts¥pygmentizeという拡張子なしのファイルになっているので、Windowsでは使いにくい。

pygmentize.pyという拡張子付きのコピーを作りました。

BOF: GILフリーCPythonへ向けた動き

2010-01-26 12:29:35 | Birds-Of-Feather
記事「Dynamic Language Roundup: Python's GIL Gets Overhauled but not Removed, Squeak Comes to Android」
http://www.infoq.com/news/2010/01/new-python-gil-squeak-on-android
によると、

Python 3.2でマルチコアCPUでPythonのGILを改良して、マルチスレッドで妙にパフォーマンスが落ちる(シングルスレッドより遅くなる)問題が解消されるそうです。

さらに、PEP-3146として、Unladen SwallowをCPythonにマージする、というのが提案されたそうです。

この分だと、案外早くGILフリーなCPythonが出てくるかもしれません。

・・・IronPythonは最初からGILフリーだけど、CPythonとの互換性を保ちつつ、.Netの一族でありつづけるという、過酷な宿命を背負ってるからなあ。

メモ: Boost 1.41をBoost.Python付きでインストール

2010-01-25 13:59:16 | プログラミング
久しぶりにBoostをインストールしてみます。

今回はBoost.Pythonの実験用なので、icuとか入れずになるべく簡単に。

いろいろやってみたのですが、結果、以下で大丈夫でした。

(1) boost_1_41_0.zipをダウンロードして展開。

(2) VS2008コマンドプロンプトで、展開したディレクトリにcdして、

(3) bootstrap.batを実行。

(4) 生成されるproject-config.jamを適当なテキストエディタで修正。

もとは
using msvc ;
の1行だけ。

これを、以下のように直しました。
using msvc : 9.0 ;
using python : 2.6 ;
libraries = --with-python ;

2行目と3行目がBoost.Pythonのための設定です。

1行目はVCのバージョンが複数インストールされているので(VC2005, VC2008, VC2010と)、明示的にVC2008を指定するものです。

(5) 続けて、bjam.exeを実行。

boost_1_41_0¥stage¥libに、libboost_python-vc90-*.libができていれば成功です。

Google中国撤退

2010-01-19 15:42:04 | その他
まだ何が起きたのか判断するには早いとは思いますが。

でも、「Googleは中国のやり方をリスペクトしないから失敗した」と英語のサイトで自由に議論している中国の人(正確には、そうだと自称している人)、矛盾と言うか皮肉を感じないんだろうか。

軽量ブラウザmidori導入

2010-01-07 20:08:14 | ubuntu linux
Ubuntu 9.10に最初からついてくるFirefoxですが、ちょっといろいろあって乗り換えたくなりました。

で、探してみると、midoriという軽量ブラウザがあるようなので、早速synapticでインストール。

使ってみると、きびきび動作するし、(少なくとも私が巡回してるページは)正しく見られます。

ということで、Ubuntuではmidoriに乗り換え。パネルも修正。

蛇足

Windowsで動くものはないかと探してみたのですが、噂(?)の次世代OSのコードネームがmidoriなんだそうで、ググれません。(ブラウザのほうの)midoriはgtkを使ってるし、期待していたわけではないのですが…

Re: Re: Thunderbird Portable 3に乗り換え

2010-01-07 18:39:18 | その他
Thunderbird 3ですが、索引を作り終わったあとはすこぶる安定でした。

手間をかけて索引を作っただけあって、検索(ctrl + shift + F)は恐ろしく速いです。これだけでも乗り換えて良かった。

ただ、ウェブブラウザ見たくタブがついたのですが、このタブの使い方がさっぱり分かりません。

まーいいや。

2010年問題、あるいは歴史に学ばないこと

2010-01-06 18:07:00 | Birds-Of-Feather
オーストラリアと中国で起きた2010年問題って、そもそも、2000年問題がくるぞー、ってなったときに応急処置で解決したから起きたわけで。

その2000年問題って、そもそも、システムが何十年も使われないだろうから、西暦は下2桁だけ保存しとけばいいか、といって起きたわけで。

技術的な原因を議論すればそりゃ違う問題なんだろうけど、根っこにある発想は同じというか。

もって他山の石としよう。

Re: Thunderbird Portable 3に乗り換え

2010-01-06 13:03:57 | その他
使い始めて2日目。

「・・・フォルダの索引を作成しています」という表示が出て、なんかがりがりやっているらしい。すべてのフォルダを巡回しているらしく、ずーっと作業中。

上の作業をやっているせいか、4回ほどクラッシュ。

スマートフォルダも使い慣れてきたし、ヘッダの表示も整理されててずっとよくなってるのですけれど。

移行はもう少し待ったほうがよかったか。