2010年9月14日火曜日

pythonのimportの罠

pythonのimportにはなんだか問題があると思った.

というのも後輩がmatplotlibというプロットライブラリでグラフをプロットしようとしていたとき,matplotlibをimportするだけでエラーが出る,と言ってきたのがきっかけ.
見てみると,matplotlibが標準モジュールであるrandomをimportしようとしてエラーが出ている.しかし別のディレクトリに移動してからテストするとimportは成功する.

エラーの原因は,スクリプトを実行しようとしていたディレクトリに別のrandom.pyというファイルがありmatplotlibがこちらをimportしようとしていたからだった.

例えばC言語なら

#include "random.h"
#include <random.h>

この2種類の意味は異なり,"random.h"の方はカレントディレクトリから探しに行くが,<random.h>の方はインクルードパスから探す.

つまりpythonのimportは#include "random.h"の意味を持っていて,この1種類しかない.ちょっと問題だと思った.

だってrandom.pyとか作りたい(作っちゃう)時もあるでしょ.python3では直ってたりしないのだろうか….

2010年8月29日日曜日

pythonによるlinuxのマウス・キーボードイベントのグローバルフック

pythonによるキーロガープロジェクトが参考になります.
特にこのLinux向けのソースが使える.要python-xlib.

作成中のloox uのユーティリティに使わせていただきます.

2010年8月23日月曜日

一曲こさえちまった.

1年ぶりくらいに作ったような.2分半程度と短いです.


Recent melodies by ucwtnb

改めて聞くと暗いんだよっ!

2010年8月18日水曜日

譜めくりガジェット・ソフトAirTurn

ここで見たのでメモ.

足踏み式のガジェットを踏んで踏めくりできるガジェットらしい(iPadに対応予定).マリンバ演奏には使えないけどピアノには十分だろう.

コマンドから無線LANを有効にする


Loox uのUbuntuをリカバリする時に苦労したのでメモ.ここを見た.

wlan0を有効にするとする.
ifconfig wlan0 up
iwlist wlan0 scan
とすることで,wlan0を立ち上げ,周辺のAPをリストアップする.そして対象のAPのSSIDとかを確認したら,
wpa_passphrase SSID Password
の出力をそのまま/etc/wpa_supplicant/wpa_supplicant.confに保存する.そして,
sudo wpa_supplicant -ieth1 -c /etc/wpa_supplicant.conf -Dwext
とする.うまくいけば,wpa: key negotiation completed with…など出てくるのでAPとの接続は成功.その後dhclientを実行すればDHCPが働くようになる.

2010年8月12日木曜日

debian lennyでipodを自動マウントするには


ユーザ権限ではgnome-mountがうまく働かないので,ユーザをplugdevグループに追加する.
su
adduser username plugdev
おそらくUSBメモリも自動マウントされるようになったと思う.試していないけど.

2010年8月9日月曜日

Machinarium

Machinarium(リンクは4Gamerのレビュー)というゲームが5ドルっていうニュースを見たのでやってみた.内容については4Gamerのリンク先が詳しい.

チェコのゲームらしくまるでバンドデシネ(フランスの漫画)をスキャンしたような芸術的なグラフィックが素晴らしかった.キャラクターや背景の描き込み・動きに物凄い時間がかけてあり本当に漫画の中を探検しているような感じ.加えてグラフィックにマッチした内向的な音楽がゲームに奥行きを与えていると思う.特に世界観については繊細に作られている.

脱出ゲーム的な少し理不尽な詰まり方をする・少し最後のほうが短いなどの不満点はあるけど,手間がかけてある分だけ濃密な世界観を楽しめた.時々出てくるパズルもキレがいいしね.好きな人は買ってあげて欲しい.