路傍のプログラマ

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

Visual StudioでCPythonサポートきた

2011-03-16 10:36:10 | プログラミング
記事「米Microsoft、Visual Studio向けのPythonプラグイン「PTVS」ベータ1をリリース」
http://sourceforge.jp/magazine/11/03/11/0530212
によると、

まだベータだそうですが、IronPythonはもちろん、CPythonもサポートされるようですね。

クラウドコンピューティングのサポートも加わる(多分Azureのことを指してるんだろうけど)とのことで、楽しみです。

時間ができたら触ってみよう。

pythonでjsonとたわむれる

2011-02-16 19:17:43 | プログラミング
● jsonの文法チェック

demjsonというモジュールで文法チェックすることができます。
インストールの方法は記事の下の方に

あるjsonファイルを厳密に(RFC4627的に)lintするには、
$jsonlint -v hoge.json

あるjsonファイルを緩く(JavaScript的に)lintするには、
$jsonlint -v -S hoge.json

● jsonのプリティプリント

厳密なjsonなら、標準モジュールjsonを使って、
$python -mjson.tool hoge.js
とできます。

緩いjsonも扱う必要があるなら、標準モジュールjsonと、上のdemjsonを組み合わせて使うことでできます。

以下のようなスクリプト(ppjson.pyとする)を用意して、
---------------------------
import demjson, json
import sys

with open(sys.argv[1], "rb") as f: j = demjson.decode(f.read(), encoding="utf-8")
us = json.dumps(j, sys.stdout, indent=4, ensure_ascii=False)
print us.encode(sys.getfilesystemencoding())
---------------------------

コマンドラインから
$python ppjosn.py hoge.js
としてください。

注)Windowsの場合、ppjson.pyは結果をシフトJISで出力します。jsonファイルはutf-8でエンコードされているので、文字コードが変換されたことになります。
もし、出力もutf-8にしたいのであれば、最後の行(print ...)を修正して、明示的にutf-8にエンコードするようにしてください。

● demjsonのインストール

Ubuntuでインストールする場合は、いつも通りの
$sudo apt-get install python-demjson
で完了です。

Windowsの場合は、
http://deron.meranda.us/python/demjson/
から
demjson-1.5.tar.gz
を(2010/02/16現在)ダウンロードして展開し、

コマンドプロンプトでsetup.pyがあるディレクトリにcdして、

python setup.py install
とします。

さらに、jsonlintはインストールされないようなので、

展開したディレクトリにあるjsonlintという(拡張子無しの)ファイルを、jsonlint.pyとリネームして、適当なディレクトリにコピーしてください。

これで、jsonlintをコマンドラインで以下のように使えるようになります。
python jsonlint.py -v hoge.json

(2011/02/17 一部修正)

pypy 1.4 渾身のリリース

2010-11-27 13:21:19 | プログラミング
pypy 1.4がリリースされてますね
http://pypy.org/

LinuxとOSXについては、64ビットのバイナリも!驚きました。

にしても、computer language benchmarks gameが、早速pypyの64ビットバイナリを使ってベンチマークしてる。さすが。
http://shootout.alioth.debian.org/


BOF: WIMPとディレクトリの終焉

2010-09-01 08:14:27 | Birds-Of-Feather
記事「Magic Trackpadから予想する今後のAppleの製品展開」
http://www.gizmodo.jp/2010/08/magic_trackpadapple.html
より。

注意: 今回は特にオチとか結論とかありません。ただただ感想です。

マウス、ウィンドウ → マルチタッチ、最大化+Exposé
ファイルシステム → データベース

マルチタッチは確かに便利です。ウェブをぶらぶら見たりするのには最高に楽。ただ、プレゼンで必要になるお絵描きには不向きなので、マウスはまだ手放せません。

Macを使ってると、知らず知らずのうちにウィンドウを最大化してしまいますよねー。ディスプレイを複数使っても便利な気がしないし(Macのデュアルディスプレイの機能は、ほぼプレゼンあるいはミーティング用、と割り切って使うようになりました)。Exposéはテキストエディタがたくさん開くことがある私には不向きです。間違い探しというか、くじ引きというか、そういうシーンに陥りがち。

Windows(やUbuntu)だと、わりとウィンドウは最大化せず使うし、複数ディスプレイを使った作業が快適なんですれどねー。ウィンドウをディスプレイ間で移動するショートカットキーとかも登場してる(win+shift+矢印)し、こっち方面にどんどん進化してほしい。

ファイルシステムをデータベースのメタファーで使えるようにするのは、WindowsでもLonghorn以来の悲願ですよね。図書館での本の分類の分かりにくさを考えれば、ツリー構造の整理法の限界も自ずから明らかです。

HotPy

2010-08-17 19:03:42 | プログラミング
Python高速化の新顔です。

HotPy
http://code.google.com/p/hotpy/

PyPyブログ経由で知りました。
http://morepypy.blogspot.com/

PyPyブログからたどれるビデオによると、
Glasgow Virtual Machine Toolkitというのを作って作られているそうです。

まだダウンロードできるものは無いようですが、wktk。

(同日追記)
ビデオを見ていくと、ほとんどの最適化でPyPyと同じだけど、
並列化については「No GIL」とのこと。

ますます楽しみ。

BOF: 知財としてのJava、または、二匹目のドジョウ

2010-08-17 09:24:12 | Birds-Of-Feather
記事「GoogleはOracleのパテント訴訟を根拠レスと一蹴, オープンソースいじめの悪行と呼ぶ」
http://jp.techcrunch.com/archives/20100813android-oracle-java-lawsuit/
より。

Sunは結局Javaケータイの上前をはね損なったけど、Oracleが代わりに訴訟を起こしてる、ということですね。

SunがMSからお金をもぎ取ったときみたいに、OracleがGoogleからお金をもぎ取ることは可能でしょうか?

・・・無理そうだけどなあ。

オープン化 + はやる → 分裂、のケース最新版ですね。


(2010/08/17追記)
記事「Google、Oracleの提訴に反撃――Androidとオープンソースを防衛へ (2/2)」
http://www.itmedia.co.jp/enterprise/articles/1008/17/news030_2.html
によると、

「Androidチームは、Java Micro Editionのライセンスを受けるのではなく、そのコードをリコンパイルしてDalvik VMを開発した」

とあります。驚愕。

もしこれが本当なら、コードをリコンパイルしただけなのに、ライセンスを変えてリリースした、ということになります。

オープンソースをうまく使い倒してきたGoogleらしからぬ大コケじゃないですか。

本当かなあー。にわかには信じられない。

(2010/08/18追記)
↑は事実誤認でした。
(原文の記事に「コードを取ってきて」とある部分で、さらに別の記事を引用しているのですが、その記事を読んでもJava Micro Editionのコードを取ってきた、とは書いていませんでした。)

記事「オラクル、Java関連特許をめぐりグーグルを提訴」
http://computerworld.jp/topics/legal/188915.html
によると、

Dalvikの開発がクリーンルームで行われたかどうかが争点になるようです。

それにしても、GoogleがSunを買っとけばなー、と思わなくもありません。

きっと、56億ドルで買収(Oracle → Sun)するより、20億ドルで和解(MS → Sun)するほうが安い、と考えたんでしょうね。

そして誰もいなくなった

2010-08-16 16:40:58 | プログラミング
記事「e4とEclipse 4.0、次世代のEclipseに触れてみる」
http://journal.mycom.co.jp/column/ide/088/index.html
より。

「XWTはSWT(Eclipseが使用しているJava向けのクロスプラットフォームなGUIツールキット)によるユーザインタフェースをXMLで定義するための技術だ」
とのこと。

「クロスプラットフォーム」「GUI」「XML」。あーもうお腹いっぱい。

何回目の車輪の再発明なんだろう?XAML, XUL, JavaFX, Android(はクロスプラットフォームじゃないけど)、他にもあったような。

本気で普及させる気ないでしょ?

Thunderbird 3.1のクイックフィルタが便利

2010-08-12 18:32:57 | その他
Thunderbird、いつの間にか3.1.2にアップデートされましたが、

新しい「クイックフィルタ」がすごい便利なのに気がつきました。
今まで「メッセージを検索」(Ctrl+Shift+F)してたのがばかばかしくなるくらい。

いやむしろ、「メッセージを検索」メニューをなくすくらいの勢いで、突っ走ってください。

しかし、最近はウェブメールが主流になってきたとは言うけれど、
ブラウザの互換性が(HTML5「標準」のおかげで皮肉にも)損なわれてきたり、
メールの中身が調べられて宣伝を出されたりするようになったりして、
とても安心して使えるような気がしません。

というわけで、ウェブメールに乗り換えるタイミングをすっかり失ってしまったので、
Thunderbirdとは長いつきあいになりそうです。

CPyhton 2.7でてますね

2010-07-05 10:43:47 | プログラミング
なにやら、3.1からのバックポートが主な変更点らしい。

{ 1, 2, 3 }とか
{ i: i * 2 for i in range(3) }とか
collections.OrderedDictとか
viewkeys(), viewvalues(), viewitems()とか

最適化もちょっとだけ。

longの内部表現が2^15から2^30ベースに変わったとか

new GILは(issue 8299)は見送られたみたいですね。

http://bugs.python.org/issue8299
によると、4月末までもめてたみたいだから、スケジュール的に無理だったとは思いますが・・・

うーん。2.7は2系列の最後のリリースだと言うことなので、ひょっとするとnew GILは3系列のみになるのかも。

BOF: 裸のApple

2010-06-09 10:05:42 | Birds-Of-Feather
記事「Safariでしか動作しないHTML5デモは、HTML5に非ず?」
http://journal.mycom.co.jp/column/svalley/369/index.html
より。

「そろそろ誰かが王様(の本当の姿)を公にする時だ」

「"Safari限定"のHTML5デモからは、Safariが一歩先を行くブラウザであるようなイメージが伝わってくる。では、SafariしかHTML5をサポートしていないのかというと、もちろん答えは「ノー」である。」

数年前までAppleに対してこういう言葉が浴びせられるとは想像していませんでした。
良くも悪くも、Appleは変わったんだなー、と思わせられました。

(追記 2010/06/10)

もうちょっと掘り下げた記事が出てきました。

「標準性のなさを批判される Apple の "HTML 5 and Web Standards" ショーケース」
http://www.infoq.com/jp/news/2010/06/apple-html5-gallery