4410.tvって昨年すでになくなってたんですね。今日出場するということで見に行ったら、web.archive.orgに行く羽目に…それにしても、よく覚えてたな俺。
中継を全く見られず、映像を見ることができませんでした。スカパー!は昨年一瞬だけテレ朝チャンネルに入ってすぐに解約していたんで。
結果だけ見ると鹿島が大勝、ガンバもいつか等々力で見たような引き分けと、悪くない結果です。1位上がりだけなんで、下位に負けないこと、ライバルになりそうなところとの直接対決を制することが重要で、1戦目は負けなければよいという試合でした。問題になりそうなのは鹿島が中国の北京国安との2試合、ガンバはメルボルンとチョンナム(川崎とも対戦したクラブ)との4試合か。印象としては、各クラブの実力が拮抗しているガンバのグループのほうがやりやすいんじゃないかと思いますね。
ところで、スカパー!の登録を確認しようとしたら、何度やってもログインできない。IDとパスワードはプログラムに覚えさせているので、合っているはず。しかしできないものはできない。しょうがないのでパスワードを再発行してもらおうとしたがメールアドレスが違うとか言われてそれもダメ。詰んだか、詰んでしまったのか…
ジュニーニョが帰化って。冗談かと思ってましたが、フッキのときと違って肯定するような続報も出てきているし、これはそろそろ踊らないといけないですね。もう遅いくらいで。
それだけ日本を気に入ってくれたというのは喜ばしい。
川崎からPKを取ることで知られる西村主審が裁いた試合。今回は引っ張って引っ張って、終了間際のPKでした。そのシーンはよく見えませんでしたが。
とはいえシーズンの最初の試合ですから、試合は結果よりも内容に注目すべきでしょう。川崎は風を意識しすぎたのか、フィジカル系FW2人を意識しすぎたのか、とにかくハイボールを前線に送り、ひたすら競らせるという、あまり面白みのない試合を展開。それなりに効果的な攻撃ではあったと思いますが、相手を研究してきたヴェルディのほうが持ち味を出せていました。まあ代表組が合流して時間がなかったんでしょう。今日は谷口が良かったかな。
混雑していてイベントを回る隙はなかった。買うつもりだったグッズも、タオマフくらいしか買えなかったよ…今度ガラガラのアズネロに行って買おう。川崎市民の歌は運営にリードされる必要はないんじゃないかな。新曲がいくつか発表されたが、試合中は歌う機会がなかった。神戸では歌いたいね。試合前のまったり時間に久木野の歌の原曲が流れたのは気がついたけど、他の歌も流れてたのかな。
味スタに行ってきました。朝ニュースをチェックしたら佐原が怪我でベンチを外れたという情報を見てだいぶ萎えましたが、それでもでかけました。 新横浜という手も考えたんですけどね、帰り道に勝ち誇る赤い人に囲まれるという不快を思って避けたんです。今思えば新横浜が正解だったような気もしますが。
それで、味スタ。新田義貞像を横目に分倍河原で乗り換えて行ったんですけど、準特急に乗り、慣れていそうなガスサポ2組と同じ車両に乗ってついて行ったら調布まで行き過ぎてしまいました。ガスサポですら間違ってしまう京王線、どうにかならないですかね。アナウンスを信じるべきでした。以前にアナウンスに逆らってガスサポについて行ったら飛田給に止まる電車だったこともあったんだけど。
神戸サポはでかいビッグフラッグを持ち込んで席に展示。いやー、なかなかの大きさでした。
試合。得点は同じような位置からのセットプレーから押し込んだもの。今野と栗原だったかな。
東京は5番の長友が気になりましたね。前半は石川直の出来にかなり依存していた気がする。あとカボレへの期待感は半端じゃないな。♪かぼれかーぼれそうかーぼれ、すきになっちゃうかぼれ
いつも忘れるし、わかりにくいのでメモしておこう。いつもタブだから…とTab Mix Plusの設定とかを探してしまうんだよな。
- Add Bookmark Here 2を入れる
- Add Bookmark Here 2の設定で「[タブですべて開く]の位置」を「非表示」にする
- ついでに「[ここにブックマークを追加]の位置」も「非表示」にするとブックマークがすっきりする
これで日常生活の危険がぐっと減ります。
boostは噂の通り、熱いですね。ほんとにこれがC++か? と思えるほど。STLを初めて見た時もかなりの衝撃でしたが、boostはその上を行ってます。C++さんはまた遠くに行ってしまったんだね…
そういえばSTLのbitsetはコンパイル時に長さを決めるので扱いづらいなぁという印象を受けたことがあったなぁと思ってboostのbitsetを見てみると、boostには実行時に長さを変えることができるdynamic_bitsetがありました。がんばるなぁ。
試しにboost.pythonを使ってPythonから使えるモジュールにしてみました。
Python 2.5.1 (r251:54863, Oct 30 2007, 13:45:26)
[GCC 4.1.2 20070925 (Red Hat 4.1.2-33)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import bitset
>>> b=bitset.bitset(12)
>>> b
bitset("000000000000")
>>> len(b)
12
>>> dir(b)
['__and__', '__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__ge__',
'__getattribute__', '__getitem__', '__gt__', '__hash__', '__iand__', '__ilshift__',
'__init__', '__instance_size__', '__invert__', '__ior__', '__irshift__', '__isub__',
'__ixor__', '__le__', '__len__', '__lshift__', '__lt__', '__module__', '__ne__',
'__new__', '__nonzero__', '__or__', '__reduce__', '__reduce_ex__', '__repr__',
'__rshift__', '__setattr__', '__setitem__', '__str__', '__sub__', '__weakref__',
'__xor__', 'any', 'clear', 'count', 'find_first', 'find_next', 'flip',
'is_proper_subset_of', 'is_subset_of', 'none', 'num_blocks',
'push_back', 'reset', 'resize', 'swap', 'to_ulong']
>>> b[4]=1
>>> print b
000000010000
>>> b
bitset("000000010000")
>>> b.flip()
>>> b
bitset("111111101111")
>>> b.flip()
>>> b
bitset("000000010000")
>>> b.flip(2)
>>> b
bitset("000000010100")
>>> b[4:9]
bitset("00001")
>>> b[-1]
False
>>> b[:5]
bitset("10100")
普通にto_string()を使ってるのに、バイトオーダの影響か、後ろから表示されてますね。boostもboost.pythonもまだよくわからない部分が多いですが、使えなくもないと思います。b1&b2,b1|b2,b1^b2とか~b1といった演算、あとシフトと引き算、大小比較もboostのものをそのまま使ってやってます。
みなさん御存じのとおり、オフィシャルサイトにチケット売れ具合が出るようになりました。えらい便利な世の中になったと感慨もひとしおです。
最少のものをだいたいシーズンチケットぶんだと仮定すると、
- SゾーンとSA指定席は70~90%
- Aゾーンは50~70%
- SS指定は10~30%
がシーチケということになります。席割図を見ると、以下のような分布。
- Sゾーン…約2000席弱
- SA指定席…1235席
- SS指定席…726席
- アウェイ席…4500~5000席 (しかし図の通りだと2階席は1100席くらいしかありませんね…)
- Aゾーン…16000~16500席
- 合計…25000席
ということは、シーズンチケットの内訳は、このくらいかな。
- Sゾーン…2000x7~9割=1400~1800
- SA指定…1235x7~9割=864~1111
- Aゾーン…16000x5~7割=8000~11200
- SS指定席…726x1~3割=72~217
- 合計…10336~14328
まあだいたい11,000セット売れたというところでしょうか。後援会入会者が昨シーズンで16,000人ですから、全員更新したとすると、後援会に入った人の7割近くがシーズンチケットを購入したということに。平均動員が17,000人程度なので、シーズンチケット+後援会の緑チケット(1試合平均1600枚使用されると仮定する)で12,600。
Pythonでネイティブコードを簡単に呼ぶ方法として、ctypesとboost.pythonがある。ctypesは最近はPython本体に含まれるし、boost.pythonもBoost本体に含まれているようだ。この2つは、swigや自力でインタフェースを書く場合と比べてだいぶ楽に呼び出せる。
で、どのくらいコストが違うのか、試してみようと。ネイティブコードを呼んだ先では大差ないと思うけど、ネイティブコード呼び出しにかかるコストによっては、インタフェースの粒度を考えないといけなくなる。
そこで、ためしに
- 何もしない
- math.sinを呼ぶ
- cmath.sinを呼ぶ
- boost.python経由でstd::sinを呼ぶ
- ctypesでlibmのsinを呼ぶ
という呼び出しの速度を測ってみた。cmathは複素数に対応した数学関数のパッケージです。sinが複素数を返すことはない…と思いますけど、mathとcmathの比較のために一応。200万回の呼び出して時間を測定して平均した。測定環境がVista(32bit)環境のVMWareの中のFedora8(x68_64)環境、というのがややこしい。こういう環境は測定が正確じゃないかもしれないですね。仮想環境のgettimeofdayはあんまり信用できないような気がする。vmware-toolsを入れて時刻をホストと同期はさせてますが。
Jリーグが始まるまで暇ですね。新ユニを今か今かと待っているんですが、なかなか来ません。totoは忘れないうちにネットで買いました。
というわけで。
リサイクルについてはやはり、考えさせられますね。リサイクルは3つのRの中で最下層に属するものなので、上位の2つを差し置いてリサイクルを推奨するのは間違いですよね。無駄になるものの量を減らすこと(Reduce)、加工せずに再利用すること(Reuse)を先に考えないといけないのであって、リサイクルが大きな顔をしているのはやはり、気に食わない。そうそう、子供用品なんかはReuseの宝庫ですね。うちでは今のところ、かなりの部分がお下がりです。まあそれは置いといて。
リサイクルの中でも、クローズドリサイクルとオープンリサイクルがあるらしい。クローズドのほうは本当に回っていくもの。缶を集めて、そのアルミからまた缶を作る、みたいなもので、私はこれまでリサイクルというのはこれのことだと思っていた。ただ技術的に問題がたくさん出るので、人類はオープンリサイクルという概念をひねり出したんですよ。なんという胡散臭い話なのか。
オープンリサイクルはもともとの姿と再生した姿が何の関連もなくても可という、何でもありの概念。極端な話、燃やして熱にしてもOK(ご丁寧なことにサーマルリサイクルと名付けられてでかい顔をしている)、埋めて地面にしてもOKというわけで、これが許されてしまうと、リサイクルというくくり自体に意味がなくなるでしょう。確かに夢の島でJリーグの試合が開催されて幸せを運ぶことだってあるけど、オープンのほうは「サイクル」になってないんだよね。オープンリサイクルにならない捨て方なんて、果たして今までに存在したんだろうか。