Skip to main content

ログ取得ツール

Pythonの連想配列のfor

Pythonでいつも忘れて変なことになるのでメモしておく。 連想配列(辞書)をforで受けるとkeyしか出てこない、という話。

a={"key1":"val1", "key2":"val2"}
for i,j in a:
  print i, j

と書くとエラー。fori,jを受け取れない。Perlから来た人は、ここでもうブチ切れですよ(うそ)。しょうがないから

a={"key1":"val1", "key2":"val2"}
for i in a:
  print i, a[i]

などと書くと素人なのだ(私は思い出せなくていつもこうなってしまう)。正しくは、

a={"key1":"val1", "key2":"val2"}
for i,j in a.items():
  print i, j

である。items()を忘れるな、ということだ。おもむろにdir({1:2})とやってメソッドのリストを眺めて思い出そう。iteritems()でイテレータがもらえる。

SO_REUSEADDR

いつまで待ったらSO_REUSEADDRがデフォルトで有効になるのか。このフラグを立てずにサーバを書いている人がいるとは思えない。何度Address already in useを見てうんざりしたことか。 Pythonの場合、$pythonlib/SocketServer.pyにあるSocketServer.TCPServerallow_reuse_addressをTrue(1)に設定すればよい(デフォルトはFalse(0)だ)。これはクラス変数であるから、派生クラスで値をTrueに設定すればsocket()bind()の間で

socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

を呼んでくれる。つまり、例えばSimpleXMLRPCServerだと、

import SimpleXMLRPCServer
SimpleXMLRPCServer.SimpleXMLRPCServer.allow_reuse_address=True
sv=SimpleXMLRPCServer.SimpleXMLRPCServer(("localhost", 9999))

という感じになる。BaseHTTPServer.pyのHTTPServerではクラス定義の部分でデフォルトでTrueに設定している。ここは、あえてTCPServerのレベルでデフォルトをTrueに設定すべきと思う。 …まあ、こんなこと書くのは、書き忘れて使えるようになるのを待ってるからなんですけどね(笑) (追記) 2004-06-08 08:50 いまさら補足。後で使うほうのプログラムでTIME_WAIT状態のソケットを破棄してアドレスを再使用するというものなので、後で起動したほうのプログラムがSO_REUSEADDRに設定すればよい。本来は待たなくてもよい状況なのです。 そういう性格のものなので、setsockopt()をsocket()とbind()の間で呼ばなければならず、後で呼んでも効果はない。最初はTCPServer(すでにlisten中)のインスタンスに対してsetsockopt()を呼んでしまって効果のなさに戸惑う。 というわけで、Pythonの実装がこれをクラス変数にしたというのは当然なのである(ついでに言えば、Pythonではクラス変数とインスタンス変数に区別はないはず)。

コピーボタン

ロジテック、HDD/プリンタなどを増設可能なNAS(impress.co.jp)。おっ、コピーボタンが実装されている。

前面のCOPYボタンを押すことで、前面USBポートに接続したフラッシュメモリなどから内蔵HDDにファイル転送ができる。

しかし、製品情報(logitec.co.jp)によれば、

2.2GBを超える容量のメディアのワンタッチコピーはできません。

というわけで、実質HDDについてはコピーボタンはダメらしい。HDDのバックアップには使えないのか。USB経由でHDDつなげてコピーボタンでバックアップマシン、みたいな使い方はできないということだ。無念。 まあでも、けっこう便利だとは思うけどね。

人に隠れて

Wikiをはじめてみた。調子に乗ってプロフィールまで書いてます。単にユニフォーム姿を出したいだけなんじゃないかという噂は却下。 こちらでログに取ってあるAmazonへのリンク(newsclipのやつのみ)を全部amazonプラグインに投げ込んでみました。単純に、パターンに合ってればwikiディレクトリの中のbin2hex().".txt"に適当なテキストを書き込むだけ。たぶん、自動的に増えていくはず。 Wiki側にも書いたけど、Wikiの記法はなかなかおもしろい。とりあえず、InterWikiNameあたりは見習って実装したいなーと思った。

汚染の証明

Matzにっき(2004-05-24)(rubyist.net)より。 モンサント、遺伝子組み換え作物特許訴訟で勝訴(nikkei.co.jp)。かわいそうに。

米農業バイオ大手モンサントが、同社開発の遺伝子組み換え作物の特許を侵害されたとしてカナダ農家を相手取って訴訟していた問題で、カナダ最高裁は21日、モンサント側の主張を支持する判決を下した。

しかしながら、この記事だけでは背景がよくわからない。 長いが引用すると、 名古屋講演(hi-ho.ne.jp)。

この判決ではどのような経緯で、この組換え遺伝子がキャノーラなり大豆なりに混入したかということは問題ではないということです。そしていかにして入って来たかという、その考えられるケースにまで言及しました。  例えば自然交配です。花粉が飛んで来て自然交配するとか、実際に種が直接運ばれる、鳥や小動物や蜜蜂によって運ばれたり、あるいは水害によって種が流れるということもあるかと思うのですが、いかにしてモンサント社の組換え遺伝子が混入したかについては問題ではないということです。  しかしながらもしその混入が起こってしまった場合には、その農家の持っている種子、それから農作物、そこからの収穫は、全てモンサント社の所有物になってしまうということです。この判決の中で、わたくしの98年度の農場からの収穫の全ては、モンサントのものである。それから種も作物も全てモンサントの物であるという判決をくだしました。そしてまたこの判決でわたくしはもう、自分の家で取れた種を使う事はできないし、苗を使う事はできないということになってしまいました。

売れました

夢の「マイタウン」、加州の町をオークションで購入(cnn.co.jp)。おめでとう。

米競売サイトのイーベイで2年前から売り出されていたカリフォルニア州北の小さな町に、とうとう買い手がついた。
(中略)
以前は住民100人ほどが住んでいたが、今はゴーストタウンとなっている。

村全体を売りに出して、住民は離散。あたかも悲劇のようだが、こういうニュースだと悲劇に聞こえないんだよな。土地とか故郷ってなんなんだろうね。

今後の日程

とりあえず、Jリーグの公式サイトで今後の日程が発表されたので。

今後の予定

| 節 | 相手 | 日付 | キックオフ | 場所 | 放送予定 | 備考 | | 15 | 仙台 | 5/29(土) | 14:00 | 等々力 | SKP(184=生, 185=5/31 12:00) | | | 16 | 大宮 | 6/6(日) | 14:00 | 大宮 | CS | | | 17 | 甲府 | 6/12(土) | 14:00 | 等々力 | | | | 18 | 鳥栖 | 6/19(土) | 13:00 | 鳥栖 | | | | 19 | 札幌 | 6/23(水) | 19:00 | 等々力 | CS | | | 20 | 福岡 | 6/26(土) | 14:00 | 博多球 | テレビ西日本(録) | | | 21 | 横浜FC | 7/2(金) | 19:00 | 等々力 | | | | 22 | 京都 | 7/10(土) | 18:00 | 高知陸 | KBS京都 | | | 23 | 水戸 | 7/24(土) | 19:00 | 等々力 | CS(録) | | | 24 | 山形 | 7/27(火) | 19:00 | 山形県 | CS | | | 25 | 湘南 | 7/31(土) | 19:00 | 等々力 | CS(録) | | | 26 | 仙台 | 8/8(日) | 19:00 | 仙台 | CS | | | 27 | 札幌 | 8/11(水) | 19:00 | 札幌厚別 | CS | | | 28 | 福岡 | 8/14(土) | 18:00 | 等々力 | CS | | | 29 | 横浜FC | 8/21(土) | 19:00 | 三ツ沢 | CS | | | 30 | 京都 | 8/25(水) | 19:00 | 等々力 | CS | | | 31 | 鳥栖 | 8/29(日) | 18:00 | 等々力 | CS(録) | | | 32 | 甲府 | 9/4(土) | 19:00 | 小瀬 | CS | | | 33 | 大宮 | 9/11(土) | 19:00 | 等々力 | CS | | | 34 | 湘南 | 9/18(土) | 14:00 | 平塚 | CS(録) | | | 35 | 山形 | 9/23(木祝) | 16:00 | 等々力 | CS | | | 36 | 水戸 | 9/26(日) | 19:00 | 笠松 | CS(録) | | | 37 | 横浜FC | 10/2(土) | 14:00 | 等々力 | CS | | | 38 | 京都 | 10/15(金) | 19:00 | 西京極 | KBS京都/CS | | | 39 | 仙台 | 10/23(土) | 14:00 | 等々力 | CS | | | 40 | 大宮 | 10/30(土) | 13:00 | 大宮 | CS | | | 41 | 福岡 | 11/06(土) | 14:00 | 博多球 | | | | 42 | 札幌 | 11/20(土) | 14:00 | 等々力 | | | | 43 | 甲府 | 11/23(火祝) | 13:00 | 等々力 | | | | 44 | 鳥栖 | 11/27(土) | 14:00 | 鳥栖 | | |

湘南0-1川崎

東海道線で平塚へ。片道950円(+バス170円)。茅ヶ崎の先、小田原城の手前。天気は雨。昨日は晴れるって言ってたじゃんか。 試合は前半は押し気味だったような気がするようなしないような一進一退という感じで0-0。得点はなかったが、守備が非常に安定していて不安はない。アマラオもがんばってたと思うけど川崎のDFはことごとく、すぐに潰してくれた。前後半通じて何度か見せた、スローインからペナルティエリア内でアマラオがヘディングでゴール前に転がすプレーがちょっと恐い。我那覇がキーパーと競って押し込んだのがキーパーチャージかハンドのどっちかを取られたのは前半だったかな。…いや後半か。 後半に目の前で憲剛のFKを箕輪がヘッドで入れた。これが決勝点。箕輪は自分からアウグストのおんぶを要求してました。後ろを向いて、手を広げて。 しかしいつも思うんだがジュニーニョの足はどうなってるんだ!? ものすごい動き。 帰りに平塚名物、都まんじゅうを買いました。おみやげのつもりだったんですが、できたてのあったかさに負けて、食いながら帰りました。試合に勝って、まんじゅうに負ける。 帰って(18:30頃)一寝入りして気付いたらもう26:30になってました。このまま朝まで眠ってようと念じたものの、こんな夜中に8時間睡眠完了で、もう眠くない、という。やることねー。 来週は序盤のひどい状況を川崎が調子に乗せてだんだん上向いてきてしまった仙台とホーム等々力で対戦。箕輪が累積警告で出場できず。

GNU screen for X11

X用のGNU screenを書こうとした奴はいないのだろうか。あったらあったで、便利だと思うのだが。 ブラウザをdetachしてログアウト、次にまたログインしたときにattach、とか。 すごく遅くなりそうな気がするのは気のせいだ。気のせいに違いない。