Skip to main content

ログ取得ツール

IronPythonメモ

Python.NETことIronPythonでプログラムをMSIL(アセンブリ)にコンパイルするときに、普通にやるとモジュールを使えない。Tools/Scripts/pyc.pyでコンパイルできて.exeと.dllを生成できるのだが、実行すると例外が発生して落ちてしまう。sysは組み込みらしく使えるものの、sys以外のモジュールはひどい状況だ。

最初はprintくらいしか使ってない非現実的な例しか見つからなくて困った。

例外の文字列を見ながら、モジュールも込みでコンパイルする(pyc.pyにモジュールのファイルをいちいち追加していく)と、何とか実行できるファイルを生成できるが、非常に長大なコンパイルオプションになり、面倒なことに。とてもやってられない。

import文を追跡してpyc.pyに渡すスクリプトを書けばいいのかなぁと思いながらググッていると、良い情報があった。

次のようなスクリプトを実行して、一度stdlib.dllを作っておく。

main()の外でargcとargvを見るには?

少しググッてみたけど答えは見つからなかった。とにかくmain()に渡されるargcとargv。これを引数で渡すことナシに別の関数から勝手に参照したいと思い立った。

なんでそんなことをしたくなったのか分からない。でも思い立ったものはしょうがない。

それなりに調べていくと、環境変数を示すenvironというグローバル変数を使えば良いようだ。

extern char **environ;

そしてenvironとargc/argvは以下のような関係にあるらしい。

  • (long)environ[-2-argc] = argc
  • environ[-2-(argc-1)] = argv[0] (= 実行ファイルを示す文字列)
  • environ[-2-(argc-2)] = argv[1] (= 第1引数)
  • :
  • environ[-2] = argv[argc-1]
  • environ[-1] = argv[argc] (= NULL)
  • environ[0] = ここから環境変数
  • :

とても移植性があるとは思えないですね。Linuxでは動作したが。

#include <stdio.h>

void show_argv(){
  extern char **environ;
  int n=-1;
  if(environ[n]!=NULL) return;
  --n;
  while((long)(environ[n])!=-n-2){
    --n;
  }
  int argc=(long)(environ[n]);
  char **argv=&environ[n+1];
  int i;
  for(i=0; i<argc; ++i){
    printf("%d: %s\n", i, argv[i]);
  }
}

int main(int argc, char **argv){
  printf("in-main\n");
  int i;
  for(i=0; i<argc; ++i){
    printf("%d: %s\n", i, argv[i]);
  }
  printf("out-main\n");
  show_argv();
  return 0;
}
// gcc -Wall -o test-argv test-argv.c

以下、実行結果。

# ./test-argv test argument here. 
in-main 
0: ./test-argv 
1: test 
2: argument 
3: here. 
out-main 
0: ./test-argv 
1: test 
2: argument 
3: here.

でも、移植性のある方法はないんでしょうかね?

川崎3-0マリノス (オー、ジュニーニョ)

前日に発表された衝撃的な契約満了のニュースを受けて、10番のユニを着て等々力へ。ホーム最終戦。天皇杯に出ずに帰国することがアナウンスされ、アウェイに行けない私には最後のジュニーニョとなる。どういう気持ちで見ればよいのか…

状況が消化試合ってところが悲しいですけど、ジュニーニョにゴールさせて勝つというタスクは完遂しました。しかしマリノスは最初から谷口FWってどうなってるの(笑)。前半はセカンドボールを拾われまくり押し込まれるものの大したチャンスは作らせず、しかし川崎もシュートは少なかった。ジュニーニョは1本ミドルを打って感覚を磨き、小林悠のヘッドはポストを叩き、後半へ。カウンターからのクロスをオウンゴールで先制1-0、ガチャガチャした展開を続け、カウンターで綺麗に崩してフリーのジュニーニョにボールをつなげ、連続得点3-0。1点取らせないとマクドナルドの賞(決勝点を取った選手に贈られる)がジュニに行かないんでは? と思って見ていたが、マリノスのシュートは枠外で守りきってしまった。賞はオウンゴールだとどうなるのかと思ったが、普通にジュニがもらっていた(別に点を取られなくても良かったのだ…)。

Jリーグも残り2試合

残り2試合になりました。今週末がホーム最終戦というクラブが半数。

川崎は広島でJ1残留を確定させましたが、今年もアウェイがラストゲームです。私は最終節はホームでやるほうが好きなので、残念ですね。

J1の優勝は柏・名古屋・ガンバの3クラブに絞られました。マリノスは早々と4強から脱落しまして、川崎は週末にそのマリノスとホーム最終戦を戦うことになります。どっちから見ても、言っちゃ悪いけど消化試合だよね。マリノスのほうは賞金額が変わるか。川崎は2連勝すれば賞金圏に届く可能性が数字上は残っていますが…まずないでしょうね。あんだけ負けてたら当然です。

えー、優勝争いの話でした。柏は2位の名古屋に3ポイント差をつけているので圧倒的有利か。ガンバは可能性は残っているけど、2勝しても勝ち点は70。柏が1勝でもすると追い付きません。残りの対戦は、以下のようにいずれのクラブも最終節がアウェイです。

  • 柏…Hセレッソ、A浦和
  • 名古屋…H山形、A新潟
  • ガンバ…H仙台、A清水

対戦相手を見ると、ガンバが一番きついかな。名古屋は2勝しそうですね。でも柏が浦和を落として目の前で優勝を決めるかな? ちなみに浦和は昨年話題になったように、最終節は毎年負けてますからね。セレッソは難敵ですが、普通に行けば引き分けくらいは得られるんじゃないかな。

1次分は完売

昨日動き始めたサーバにデータを送りながらぼんやりブラウザを眺めていたら…CloudCore VPS 新規受付の一時停止につきまして

初日の反響を見て速攻でマシンを発注したとして、納期が1週間、頑張って構築して10日後(つまり11/25)くらいには申し込み再開できてるかな? こりゃ勤労感謝の日(11/23)は出勤確定か。誰が?

普通はこういうサービスを始めるときはどのくらいのサーバを用意するものなんだろう。

仮に300台くらいで構築していたとすると、1ノードの構成がQuadCoreのAMD Phenom x2だとして8コアだから、12ユーザくらい収容すると考えると、12x300=3600人か。ほとんどの人が年間契約11,340円だとして、全員支払ったとするとこの4日間で売上が4億円くらい。SMB向けとは言っても、この価格設定で数日で完売というスピードであれば、たぶんほとんどが個人ユーザなんだろうと思う。

あと微妙なところは、契約の流れ。10日は無料で使えて請求書の支払期限は1ヶ月後。実際のところ10日でやめる人もいるだろうけど、支払期限は過ぎていない。とりあえず回収してその分の新規申し込みを受け付けたとして、そのあとで無料で去ったと思ったユーザに支払われてしまったら、その時点ではVMを切り出せないということになる? ストレージは支払期限まで保管しておけばいいだけなんだろうけど。

KDDIウェブコミュニケーションズのCloudCore VPSを使ってみた

http://cloudcore.jp/

1年契約のディスカウントで、945円/月で2GBのメモリと100GBのディスク、というのに惹かれて。KVMです。別に仮想化の方式はどうでもいいんです。

このWebサーバ(wtnb.mydns.jp。やっぱり月額1000円未満のVPSで、DTIのServersManです)との比較で言うと、

項目wtnb.mydns.jpCloudCore VPS
CPUIntel Xeon L5520 @2.27GHz (2core)AMD Phenom 9550 (1core)
メモリ512MB~2GB2GB
ディスク30GB100GB
OSCentOS 5(x86)CentOS 5(x86_64)
仮想化方式OpenVZKVM

CPUはwtnb.mydns.jpのほうが良いですね。メモリとディスクはCloudCoreの方が良い。ネットワークは測定していないけど、wtnb.mydns.jpも特に不満はないけど(sshでログインして操作しているとたまに引っかかることがあるが)、CloudCoreもKDDIだから問題はないんじゃないのかな。wtnb.mydns.jpはIPv6も使えるけどCloudCoreはv6のアドレスはくれない。ServersManも契約したときは32bitしか選べなかったけど、今は64bitのOSを使えたりする。

川崎4-0大分 (天皇杯3回戦)

久しぶりな感じがする等々力はのどかなものでした。いいですねこういうのも。

次は湘南が相手のようですね。

この試合は勝つのはもちろんですが、久々に戻ってきた横山やスタメンに入った小林悠の出来が気になりながら見ていました。

序盤は2人とも良かったですが、途中でバテましたね。特に横山は後半34分まで引っ張りましたが、そのずいぶん前からダメな感じになってたし、こういう時に便利な田坂もいたので、ずいぶん引っ張ったなぁという印象。まあでも久々の登場で今日のプレーは上出来だったと思います。

あと、出来が良かったのはボールボーイも。非常にスムーズなボール出しでした。スローインの位置にうるさい主審だったら逆に最悪だったかもしれませんが(笑)、そうではなかったので。リーグ戦でボールボーイやってくれてる市内の高校生も、いつもあんな感じで出してくれるといいんだけどな。

殿下…

先日のワルズ・ギル殿下の薨去に対する悲しみの念が抑えられない。ここ数話のザンギャック側の人間模様はかなりアレで見どころがありました。殿下の死は覚悟していましたが、いざその時が来るとね。

川崎0-1大宮 (黄金の味 具だくさん辛口)

しかし今日の試合は辛口ではありましたが具だくさんでもなく黄金の味でもありませんでした。

焼肉のタレは当たったので持って帰りましたが、配布の手際は良かったですね。試合終了後30分で5000人に配ると聞いて心配しましたが、あっちも手馴れたもんで、非常にスムーズな受け渡し。

花束贈呈でアルパカが芝を食べるのに夢中だった時点でちょっと嫌な予感はしていたんですけど(笑)

2011-11-03@等々力

キックオフからのノーホイッスルゴールはアクシデントとしてもね。等々力でここまで負けたらやってらんないです。悲しいです。これで等々力のリーグ戦は7勝7敗2分ですから、ホーム最終戦に負けたら、負け越しですよ。さすがに負けすぎでしょう。

新ユニのデザインも違和感ありすぎ。なんで横縞?

川崎1-2新潟 (ゆめ区民祭)

区民祭(略称:ゆめ区)はかなり楽しめました。風船やシールを大量にもらい、子供たちも満足してました。防犯の人たちが配る風船は重しをつけずに配っていたので飛ばされる風船が続出。

2011-10-16@等々力

いやー、世の中に不愉快なことは数あれど、新潟に負けることほど不愉快なことはちょっと思いつきませんね。ホントに腹立たしいです。これで新潟もかなり残留に近づき、川崎は来季の勝ち点3(ビッグスワンぶん)を早くも失うという…最悪ですね。これで等々力で7勝6敗2分ということになり、負け越し寸前に。信じがたい屈辱です。

勝ってりゃ賞金圏すら見えてくるこの1戦、久々のベストメンバー?で挑みました。新潟は日差しを気にしてか、コイントスのときにサイドを変えてきた。GK杉山の渾身のPKストップも活かせず、カウンターに沈みました。失点シーン以外でもカウンターで数的同数/不利を作られる場面が目立ち、DFにとってはちょっと厄介なケースが多すぎた。

SBに入っていた實藤の負傷により宏樹がSBに回り、いまいち調子が戻らずサブに回っていた菊池がCBに。井川と菊池のベストCBコンビは毎度のことながらかなりの不安定さを漂わせ、予感どおりに失点。リードされて終盤に入りCBが前線に張り付いて、苦労して作ったチャンスに枠外…言っちゃ悪いけど無様な試合でした。決めろよ~。前半もチャンスは作ってたけど、決められないんだよな。ジュニの得点は久々にスカッとするシュートが決まって良かったが。