Planet R

Planet Rがあった。

早速購読。

あとRとBioconductorを用いたバイオインフォマティクスが気になる。

が、Amazonだと洋書しか出てこない。

FSWIKIをpng対応に

職場Wikiとして利用しているFSWIKIのpdf出力でpngを埋め込みたかったのでPDFJを0.90にあげた。

要するに、PPTをpngで出力して、そいつをWIKIに貼り付けつつ、pdfにも埋め込んで報告書を書くのを楽にしたいという、、、。jpgは汚くなってしまってだめです。

というわけでただ入れ替えたらfloorっていうサブルーチンがねーとかいうエラー。

Labyrinthine Code - PNGに関する資料によると、floor(x)はxの小数以下を切り捨てる関数らしいのでfloorをintに変更して     #vec($clear,$x,8)=(vec($line,$x,8)+floor((vec($clear,$x-$bpp,8)+vec($prev,$x,8))/2))%256;     vec($clear,$x,8)=(vec($line,$x,8)+int((vec($clear,$x-$bpp,8)+vec($prev,$x,8))/2))%256;

解決、、、かな?

Mochikitの角丸めの関数

Mochikitの角丸めの関数はdivとかでpadding入れるとずれてしまうので困った。div->divって入れ子にするのもどうかと思うが、とりあえずいきあたりばったりの処理。

はてなブックマークのこと

jspeedのDDNSが有料化するらしいのと、ロボットがひどくてしょっちゅうスワップするようになったのと、あれやこれやと家庭の事情で光化しそうなので、blosxomから他のに乗り換えようと色々触ってます。turboblogとかgibeとかtypefaceとか(wordpressも)。

turboblogとかエントリ書くのにwysiwygだったりとかして一見使いやすそうだったりするんだけど、書き続けられるかとか考えたときにうーんとなってしまう。wysiwygはwysiwygが必要なひとのためだけにあるんではないか?と最近は思ってます。

なんで、ここはpyblosxomかなぁとかいって一週間ほど時間を見つけていじってたのだけど、タギングがプラグインなのと、エントリ増えたときに遅くなりそうな実装だったので、却下の予感(ボット恐怖症)。

これで行こうと思えるものがなかったので、結局Catalystでシコシコ書いてる。Catalyst+Mochikitの組み合わせでやる気。最近Web Standards DesignとかAjax デザインパターンとか読んだのでAjaxとかCSSとかいじるの楽しいという事情もあったりするわけだが。

ProductName Ajaxデザインパターン ―ユーザビリティと開発効率の向上のために
Michael Mahemoff
オライリー・ジャパン / 5040円 ( 2007-05-15 )


コメントは、はてなブックマークでつけられたコメントをblosxomにインクルードみたいにしようと思ったが、はてなブックマークのコメントは基本的に対話とは無関係だから、短文の感想だよなと改めて思った。

小太郎でラーメン

富士にもあったので寄ってみた。

九州のトンコツラーメン。麺細めでストレート。

小太郎

久々に食べた。

optparseでコマンドラインオプション解析

perlでいうGetopt::Long のようなものはgetoptでおこなえる。が、pythonにはさらにoptparseなるものがあるらしいので、今回そっちを使ってコマンドをつくってみた。

6.21 optparse -- より強力なコマンドラインオプション解析器

optparse モジュールは、getopt よりも簡便で、柔軟性に富み、 かつ強力なコマンドライン解析ライブラリです。 optparse では、より明快なスタイルのコマンドライン解析手法、 すなわちOptionParser のインスタンスを作成してオプションを 追加してゆき、そのインスタンスでコマンドラインを解析するという手法を とっています。optparse を使うと、GNU/POSIX 構文でオプションを 指定できるだけでなく、使用法やヘルプメッセージの生成も行えます。

オプションとヘルプ用の情報を一緒にaddする。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/usr/bin/python

import sys, re
from optparse import OptionParser

parser = OptionParser()
parser.add_option("-i", "--input", dest="input",
                 help="read from MOL2 FILE", metavar="FILE")
parser.add_option("-o", "--output", dest="output",
                 help="write to GAMESS INPUT", metavar="FILE")
parser.add_option("-t", "--type", dest="type",
                 help="select calcuiation type", metavar="TYPE")

if __name__ == "__main__":

   (options, args) = parser.parse_args()

-hでヘルプが出力される。

$ ./test.py -h
Usage: test.py [options]

Options:
  -h, --help            show this help message and exit
  -i FILE, --input=FILE
                        read from MOL2 FILE
  -o FILE, --output=FILE
                        write to GAMESS INPUT
  -t TYPE, --type=TYPE  select calcuiation type

無理なく続けられる 年収10倍アップ勉強法

perl debugger pocket referrenceが1200円くらいで、アマゾンの送料がもったいなかったので、他に一冊でもとあまり考えずに買ったけど、これはなかなか良かった。数時間あれば読めるし、それだけでちょっと自分の考えが少し前進した(気がした)のでそういう意味で良い本だ。

ProductName 無理なく続けられる 年収10倍アップ勉強法
勝間 和代
ディスカヴァー・トゥエンティワン / 1575円 ( 2007-04-05 )


お金儲けの本ではなくて、どうやって自分の意識を高めつづけるかということに関しての一つのアイデアの提示本。役に立つ資格が重要。

  • 英語
  • 経済感覚
  • 会計感覚

モチベーションを保ち続けること。そのためにはこまめなアウトプット(進んでいる感を味わえる環境作り)

そういう意味でblogはいい。

jspeed有料化

JSPEED DDNSインターフェース

これまで無料で提供してきました、bne.jp、jspeed.jp、ii2.cc、jdyn.cc ドメインを利用した無料ダイナミックDNSは2007年9月1日を持ちまして終了させていただきます。

やっぱ有料化か。ちょうどいい機会なので独自ドメインを取得することにした。

次世代ウェブ読んだ

ブックオフにあったので。

ProductName 次世代ウェブ グーグルの次のモデル (光文社新書)
佐々木 俊尚
光文社 / 798円 ( 2007-01-17 )


ちょっと、時間が経っているということもあって(既に)古臭く感じるとこもあるってのに驚く。特に面白そうと感じているのが人の行動の蓄積そのものが巨大なデータベースになっていくくだり。

僕も、どういう論文読んでどういう風に感じたかという行動をDB化するサービスを職場で運用してるけど根底はまさに行動の蓄積をしてみたかったというわけだが、いまのとこデータのたまり具合がよくないなぁ。

サービス動かしてみてよくわかったのは、一部の人はメチャクチャ論文読んでて、読まないやつはホントに読まんってことくらい。そういう部分からしてZipf分布。

web2.0的なものって集合知っていうよりは知識の空洞化を引き起こすもので、大多数に支持されるしょうもないことと少数のエキスパートによる極めて特異なことの分離を促進するだけなのかもと思った。

ソーシャルってのもどうかなぁ。というかその先がそろそろ気になる年頃。

pythonで改行コードを取り除く場合

perlだとchopとかchompとかしますが、pythonだとどうするんだろうか?

最近はこんな感じ

for line in open(filename,"r").readlines():
    choped_line = line[:-1]

こういうやり方もあるらしい。

for line in open(filename,"r").readlines():
    choped_line = line.rstrip('\n')

今のところは改行コードをstripするというメソッドよりは, 文字列の0-最後から-1番目っていう前者のほうがなんとなくわかりやすいかなと思う。