2008年12月20日土曜日

pythonのお勉強【ConfigParser】

設定ファイル操作モジュール

#!/usr/bin/env python
#-*- coding:utf-8 -*-
import ConfigParser


COFIG_FILE='setup.ini'

#- 設定ファイルの読み込み
conf=ConfigParser.SafeConfigParsre()
conf.read( CONFIG_FILE )

#セクションの取得
conf.sections()

#指定セクションの中のオプションの取得
conf.options(conf.sections()[0])

#セクションの追加
conf.add_section( 'sample')

#セクションの削除
conf.remove_section( 'options' )


# オプション、値の設定
conf.set('sample','hoge','fuga')

#設定ファイルの出力
fp_out = open( 'setup2.ini','w')
conf.write( fp_out)


http://www.python.jp/doc/2.4/lib/RawConfigParser-objects.html

2008年10月22日水曜日

GoogleAppEngine

ちょいと遅ればせながらGoogleAppEngineを使ってみる。

1.App Engine にログイン
2.App Engine SDKをダウンロード&インストール
3. python 2.5以上をインストール
4.スタートガイドに沿ってサンプル作成
http://code.google.com/intl/ja/appengine/docs/gettingstarted/

こんな感じでできる。
ちなみに
> appcfg.py update helloworld/
と実行してもファイルが開かれるだけなので、
> python appcfg.py update helloworld/
と実行します。

ちなみにHTTPSでupdate作業を行っているのでプロクシを通して
いる場合にはurllibがHTTPSプロクシ対応していないという噂を
聞いたので調査は後回し。


サンプルさえ作れば、あとはやりたいように作れるはず。
Googleの中身がどうなっているのかがなぞなので、
環境依存しそうなメソッドをつかったらどうなるのかをちょっと
確かめてみようかなぁ。


popen , os.path,あたりかなぁ?

2008年9月29日月曜日

自宅でリモートアクセス

ートPCからデスクトップへアクセスする機会が増えてきたというわけで
リモートアクセスの設定を行いました。
さぁ、リモートデスクトップえアクセスするかなぁ、と思いきや。
Vista HomePremiumじゃないですが、リモートデスクトップのアクセスされる側の
設定ができない。。。。。。。

というわけでVNCを設定。

ultraVNCをさくっとインストールして、FWで指定ポートを空けてあげました。
リモート接続側はrealVNCをインストール。

一応いろいろ使えるようになり楽になったかな?


hamachi を使ってVPNでやる方法もあるらしいのですが、面倒だったので
今度かな。

2008年9月24日水曜日

chrome用マウスジェスチャー

Google Chromeをインストールしてから、マウスジェスチャー機能がついていない。
めんどくさいなぁと思いつつGreasemetal でマウスジェスチャーを作っていたが、
こんなものがありましたので、備忘録として。

http://www.gigafree.net/utility/mousegesture/strokeit.html

これを使えばほとんど同じように使えるっぽい。
Vistaは重いらしいので、会社のXPで試してみるかな。


Greasemetal で自作のマウスジェスチャーはまぁ、勉強
になったということで、お蔵入りさせておきますw

2008年9月20日土曜日

google chromeでマウスジェスチャー

Google Chromeをインストールをしたはいいが、プラグインがないので、
非常に使いにくいですね。
でもGreasemetal がリリースされてからいろいろ作ってしまえばいいんじゃない?
と思いちゃちゃっとマウスジェスチャーを作ってみた。

作り方
・マウスダウンで座標を取得
・マウスアップで座標を取得し、ドラッグされた方向からhistory.back() or history.go()などなどを
実行


【マイドキュメント】\user.js \mouseGestuer.user.js

に配置してgreasemetalを実行すれば使えます。


でも、読み込み開始までめちゃ時間かかるので、いまだ使えるまでなツールになっていない。
だれかちゃんとしたの作っているんだろうなぁ。

2008年9月14日日曜日

python code reading

金曜日にpython codeb reading 04にいってまいりました。
内容はstring.Templateでした。

ちょっと時間がなかったので予習はできなかったのですが、メタクラス
など知らないことが知れたので、よかった。
懇親会もいろいろ面白い話が聞けたので、やはり参加する意味はあるなぁ~。


次回も参加するぞーーー。

そしてもっと積極的にいかなきゃなぁ。

2008年7月26日土曜日

python code reading宿題その1

python code reading の宿題

methodを実行する場合とmethodをローカル変数に代入してから実行する
場合の速度の違い
下記コードと実行結果。

結論:
100000回実行したところCPUtimeが110sec , 109secと1秒しか変わらない。
試行回数を増やしてみれば変わるかもしれないが、ほとんど変わらない様子。

////////////////////////////////////////////////////////
#!/usr/bin/python
from StringIO import StringIO
import profile

call_cnt=1000000
def callfunc():
strIO=StringIO()
write=strIO.write
for i in xrange(1,call_cnt):
write(str(i))

profile.run('callfunc()')

実行結果:
5000002 function calls in 109.890 CPU seconds

Ordered by: standard name

ncalls tottime percall cumtime percall filename:lineno(function)
999999 9.480 0.000 9.480 0.000 :0(append)
1000000 9.250 0.000 9.250 0.000 :0(isinstance)
1000000 8.040 0.000 8.040 0.000 :0(len)
1 0.010 0.010 0.010 0.010 :0(setprofile)
1 0.250 0.250 109.880 109.880 :1(?)
999999 52.030 0.000 85.690 0.000 StringIO.py:209(write)
999999 6.890 0.000 6.890 0.000 StringIO.py:38(_complain_ifclosed)
1 0.000 0.000 0.000 0.000 StringIO.py:54(__init__)
1 0.000 0.000 109.890 109.890 profile:0(callfunc())
0 0.000 0.000 profile:0(profiler)
1 23.940 23.940 109.630 109.630 sample_write.py:7(callfunc)



//////////////////////////////////////////////////////////////

#!/usr/bin/python
from StringIO import StringIO
import profile

call_cnt=1000000
def callmethod():
strIO=StringIO()
for i in xrange(1,call_cnt):
strIO.write( str(i))

profile.run('callmethod()')


実行結果:
5000002 function calls in 110.210 CPU seconds

Ordered by: standard name

ncalls tottime percall cumtime percall filename:lineno(function)
999999 7.710 0.000 7.710 0.000 :0(append)
1000000 9.580 0.000 9.580 0.000 :0(isinstance)
1000000 7.600 0.000 7.600 0.000 :0(len)
1 0.000 0.000 0.000 0.000 :0(setprofile)
1 0.260 0.260 110.210 110.210 :1(?)
999999 50.450 0.000 82.330 0.000 StringIO.py:209(write)
999999 6.990 0.000 6.990 0.000 StringIO.py:38(_complain_ifclosed)
1 0.000 0.000 0.000 0.000 StringIO.py:54(__init__)
1 0.000 0.000 110.210 110.210 profile:0(callmethod())
0 0.000 0.000 profile:0(profiler)
1 27.620 27.620 109.950 109.950 sample_strio_write.py:6(callmethod)

2008年7月21日月曜日

EeePCを買う

EeePC901を購入。
そして16GBのSDHCを購入。

SDHCはFATなので、NTFSにしたいため下記コマンドを実行

>convert e: /fs:ntfs

これにて2GB以上のファイルも扱えるようになる。

2008年7月3日木曜日

sakuraの入力補完&キーワードヘルプ

とりあえず設定したので覚書程度に


設定->タイプ別設定->支援->入力補完機能
入力補完対象の文字を記述したファイルを設定
////////以下設定例/////////
import
def
class

//////////////////////////
入力補完を行うときにはCtrl+/をタイプすると入力候補が表示される。

設定->タイプ別設定->支援->キーワードヘルプ機能
キーワード設定するファイルを設定
////////以下設定例/////////
ほげ /// ヘルプ情報

//////////////////////////

キーワードヘルプは範囲選択すると表示される。


これでpythonのクラスをさらってきて、入力補完にすると
使いやすくはなるのかもしれませんね。
入力補完のリストは時間がないので、後日作る予定。

2008年3月6日木曜日

sakuraエディタのマクロ設定

やはりこういうのを使いこなさねばと思い。

設定->共通設定を選択
マクロタブを押し、マクロ一覧のディレクトリを
C:\Program Files\sakura\macro\
に設定し、
名前:URLエンコード ID:0 urlencode.js
名前:URL デコード ID:1 urldecode.js
と設定。

これにより、登録済みマクロから実行ができる。

ちなみに登録したマクロは下記二つ。

urldecode.js
//URLEncode.js
var oWsh = new ActiveXObject("WScript.Shell");
var sBuf;
sBuf = ExpandParameter("$C")
InsText(sBuf+"\n"+decodeURIComponent(sBuf));
//EOF




urlencode.js
//URLEncode.js
var oWsh = new ActiveXObject("WScript.Shell");
var sBuf;
sBuf = ExpandParameter("$C")
InsText(sBuf+"\n"+encodeURIComponent(sBuf));
//EOF

2008年2月24日日曜日

postgreSQLを入れてみる。

将来的にpythonでDB接続を目的として、PostgreSQLをインストールする。

1.管理用ユーザ[postgres]の作成
useradd -g users postgres

下記環境変数を設定する。
POSTGRES_HOME=/opt/local/postgresql
export PATH="$PATH":/opt/local/postgresql/bin
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH=$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

2.コンパイル
tar zxvf postgresql-8.2.5.tar.gz
cd postgresql-8.2.5
./configure --prefix=/opt/local/postgresql
make
su
make install


3.DB の作成
su - postgres
initdb

あとはプロセスを起動する。
postgres -D /opt/local/postgresql/data

2008年2月20日水曜日

prototype.js version1.6について

なんかすっごい遅くれていますが、prototype.js 1.6について調べてみました。

・Hashのインターフェースが変更
プロパティについては直接アクセスは禁止、set,get,usetメソッドを使用する。
new Hashによりオブジェクト生成が行えるようになった。
Hash.toQueryStringはObject.toQueryStringに代替するようになる。将来的に廃止するようです。
下記メソッドの削除:Hash.toJSON,Hash#remove
下記メソッドの追加:update,clone,toObject,get,set,unset

・Insertionクラスの非推奨
Element.insertを代用する
・Positionクラスの非推奨
Elemntクラスを使用する。

まぁ、こんな点を注意するべきだということです。
Ajaxあたりのクラスもざっくり変更あったのですが、あまり見てません。
わかり次第更新していこうかなぁ。

2008年1月24日木曜日

Yahoo! Media Player

Webページに埋め込まれているmp3を再生するjavascriptベースのmp3プレイヤー

http://developer.yahoo.com/mediaplayer/

これを使えばバンドのページでmp3を簡単に聞けるようになりそう。

2008年1月17日木曜日

pythonで DartsLiveの情報を取得するプログラム

この2ファイルを使うとダーツライブの情報を取得することが可能。
いまいちパーサの使い方がわからないため、非常にだめなプログラム
にはなっていますが。


メインクラス:
DartsLive.py

HTMLパースクラス:
DartsLiveParser.py

2008年1月14日月曜日

スノボ?ドライブ?

こんばんは、安全ドライバーぽんたです。

日付的には昨日ですが、たんばらに滑りにいきました。

朝出発だったのだが、関越で渋滞にはまり、吹雪きで山道が渋滞。
かなり動けなくなってる人がいました。
なんでこんなに混んでいるんだろうと思ったら、近場のゲレンデのリフトがとまっているらしい!!!
それらの人が流れこんできたようですごい人でした。

結局到着したのが午後。
五時間以上かかりました。

そして初滑り。。。

寒過ぎて死ぬw
このままだとパトラッシュが出て来るくらいでした。

一気にテンション落ちましたので休み休み滑る。

そして帰り。これは案外行きよりは安心して帰れました。

そして今帰宅。

滑った時間より運転してた時間のほうが2倍以上あったので、これはドライブと呼ぶべきであろう。

教訓
・防寒対策はしっかり。
・出発は夜中のほうが逃げがよい。

2008年1月11日金曜日

C言語の%について

%nは普通の%と違う使われ方をする。
%nに引数の値を代入するのではなく引数に値を代入する仕様になっている。
そのためprintfなどで使い方を間違えるとコアダンプしてしまうので注意する。

%nの使い方
int in_cnt;
printf("HOGEHOGE%n\n",&in_cnt );
printf("%d\n",in_cnt);//8が出力される。

【注意】
syslog()を使うときにフォーマット部分を入力値で作ってしまうと
入力値に%nが入っていた場合コアダンプしてしまうので注意する必要がある。
フォーマット部分を作るときに%のエスケープをすること。

2008年1月5日土曜日

カウントダウンジャパン 07/08

30,31 日とカウントダウンジャパン07/08へ行ってまいりました。
まず、見た流れはこんな感じ

・レミオロメン
・フジファブリック
・GO!GO! 7188(20分程度)
・Base Ball Bear
・ASIAN KUNG-FU GENERATION
・TOKYO No.1 SOUL SET(10分程度)
・ストレイテナー(30分程度)


なぜラストのバンドで20分くらいしか見てないかというと。
お恥ずかしいながら寝てしまいましたw やはり睡眠不足と
BaseBallBear での体力の消費がたたったらしく、ぐったりしてました。

後半はほとんどわからなかったりするバンドだったりはしたのですが、
大変満足し、バンドやりたーーーいっていう思いがふつふつと沸きました。

そして31日に観たのはざっとこんな感じ。(めんどうなので、ちょっと見たやつは省きました)

・POLYSICS
・HALCALI
・DOPING PANDA
・DJ ハヤシ
・サンボマスター
・忌野清士郎
・しょこたん
・POISON GIRL BAND ,トータルテンボス、野生爆弾

まぁ、 DJハヤシがこの日のメインでしたw
ほぼオレの好きな曲が流れたので、盛り上がっていたのですが、
結構の人は「何の曲?」って雰囲気もありましたw

そうそう、今回はカヨ、フミ、宮藤官九郎などなどに会いました。
カヨは声掛けたのですが、「時間がないから握手だけにして」
って言われ、別に握手はどうでもよかったのですが、せっかくなのでしましたw

しょこたんライブはキモイ人が隣にいたので、あまり良いイメージがないw
隣で「ぐふふっ」って笑ってるんだもん。

31日は15時間くらい幕張メッセにいたので、なんか正月気分はほぼ0でした。
でも、来年も絶対いくもん!!!