とりあえず、メモと写真。
写真
1050あさま車内。ツイッターの不思議。ネットワークにつながっていないモバイル端末でも、こうやって時刻をつけてメモしておいてwifi環境に戻った時にツイッターにアップロードすることができる。旅の記録なんてものは友達とのリアルタイムなやりとりではないのだから、それで十分なはずだ。ところがやはり、ネットワークに繋がっている端末…例えば携帯電話を持っている時のほうが、いまツイートしなければ!という意欲が起こりやすい。そうしてもフォロワーが見てくれるのはずっと後かもしれないのに。そして、後でツイートした場合でも、同等の確率で見てはもらえるのだ。それでも(今すぐ)を欲するのは、今起こっていることや考えていることを今人に伝えられる可能性があるのならなるべくそうしたいという気持ちの現れだろうか。
1434 池波正太郎記念館となり、太平庵でクルミそばを食べた。上田城は特にどうということはなかったが、町と調和してる感じがする。例えば大阪城はすごいが、明らかにあの辺だけ異質である。その点上田の町は、城から離れて普通の住宅街や商店街になっても真田家の家紋や真田十勇士の旗などが其処かしこにみられる。
くるみ蕎麦、大盛り
すったクルミがついてる。正しい食べ方が分からない。
1515 池波正太郎 真田太平記館。単に自分が池波ファンなだけかもしれないが、これはすごい。書斎の写真とか実際に使われた原稿用紙とか、シアターやらギャラリーやら非常に充実。上田城より全然楽しい。
1640 お土産に『獅子』『チキンライスと旅の空』購入
1923 そうか、なるほど。どうも仕事のことはブログに書きにくいと思っていたが、何となく解決法を思いついた。確かに、開発中のサイトについてその全貌をペラペラしゃべるわけにはいかないが、こうやってメモをとっておいて、サイトリリース後にメモに多少の校正と考察を加えて公開すればいいのだ。もうすぐ東京につく。
JSの設定
2010年10月11日月曜日
2010年7月16日金曜日
同一局面に至る手順の違いで勝率が変わる?
yamajunn21さんのtwitterから引用:
週刊将棋の記事をみて思ったのだが、▲7六歩△3四歩▲2六歩より▲2六歩△3四歩▲7六歩の進行の方が先手勝率が高いって面白すぎる。同一局面なのだから、局面の問題でなく、その手順を選ぶ棋士の問題。
.@spinel3 ▲7六歩△3四歩▲2六歩(手順1)の先手勝率0.505で、▲2六歩△3四歩▲7六歩(手順2)の先手勝率は0.599で約1割違うとのことです。本当に面白いですよねえ。
うーん不思議だ。何でそうなるのか、ちょっと考えてみよう。
対局数としては▲7六歩△3四歩▲2六歩のほうが多いだろうから公平な比較はできないが、仮に居飛車党の先手にとって▲2六歩△3四歩▲7六歩の手順が有力であるとすれば、初手26歩に対する84歩は望むところ(少なくとも、初手76歩に対する84歩よりはウェルカム)なのだろう。
※後手が振り飛車党の場合は初手がどうだろうと2手目はだいたい34歩なのだから先手は手順を工夫する必要はない。なにしろ先手は3手目に25歩とするつもりがないのだから。
よって、26歩・84歩の出だしと76歩・84歩の出だしの先手勝率を比べて前者が高いようなら
「▲7六歩△3四歩▲2六歩の局面(局面A)を目指すなら初手は26歩とすべき」ということになる。
では、仮にそういう理由で手順2を経て局面Aに至るのが有力であるとして、手順1経由より勝率が高いもっともな理由がありうるとしたら、それは何か?
結論からいうと、yamajunnさんの言うように「同一局面なのだから、局面の問題でなくその手順を選ぶ棋士の問題」であろうと考えている。つまり、手順1が伝統的な出だしであるのに対して手順2は明らかに意図的なので、それを採用するには上の議論で述べたような「何か特別な理由」が必要である。多くの棋士を集めて何回も対戦させたら手順1と2が誰の棋譜にも均等に現れるというものではない。
「何か特別な理由」を持っている特定少数の棋士だけが手順2を選ぶのであり、それはやはり意識が高い棋士のなせる技だと思われる。
週刊将棋の記事をみて思ったのだが、▲7六歩△3四歩▲2六歩より▲2六歩△3四歩▲7六歩の進行の方が先手勝率が高いって面白すぎる。同一局面なのだから、局面の問題でなく、その手順を選ぶ棋士の問題。
.@spinel3 ▲7六歩△3四歩▲2六歩(手順1)の先手勝率0.505で、▲2六歩△3四歩▲7六歩(手順2)の先手勝率は0.599で約1割違うとのことです。本当に面白いですよねえ。
うーん不思議だ。何でそうなるのか、ちょっと考えてみよう。
対局数としては▲7六歩△3四歩▲2六歩のほうが多いだろうから公平な比較はできないが、仮に居飛車党の先手にとって▲2六歩△3四歩▲7六歩の手順が有力であるとすれば、初手26歩に対する84歩は望むところ(少なくとも、初手76歩に対する84歩よりはウェルカム)なのだろう。
※後手が振り飛車党の場合は初手がどうだろうと2手目はだいたい34歩なのだから先手は手順を工夫する必要はない。なにしろ先手は3手目に25歩とするつもりがないのだから。
よって、26歩・84歩の出だしと76歩・84歩の出だしの先手勝率を比べて前者が高いようなら
「▲7六歩△3四歩▲2六歩の局面(局面A)を目指すなら初手は26歩とすべき」ということになる。
では、仮にそういう理由で手順2を経て局面Aに至るのが有力であるとして、手順1経由より勝率が高いもっともな理由がありうるとしたら、それは何か?
結論からいうと、yamajunnさんの言うように「同一局面なのだから、局面の問題でなくその手順を選ぶ棋士の問題」であろうと考えている。つまり、手順1が伝統的な出だしであるのに対して手順2は明らかに意図的なので、それを採用するには上の議論で述べたような「何か特別な理由」が必要である。多くの棋士を集めて何回も対戦させたら手順1と2が誰の棋譜にも均等に現れるというものではない。
「何か特別な理由」を持っている特定少数の棋士だけが手順2を選ぶのであり、それはやはり意識が高い棋士のなせる技だと思われる。
2010年7月11日日曜日
willcomのメールフィルタリングの不自由さを解決する
いかに、携帯(PHS)に残したいメールだけ(自動的にフィルタリングして)残すかという話。
willcomのメール設定では、fromアドレスを指定してメールの受信を拒否することができる。
アスタリスクが使えるので、例えば「*@*.com」みたいな条件を設定することができるが、
正規表現までは使えないので加減が難しい。そもそも、fromアドレスだけじゃなく本文もフィルタリング条件にしたい。
これを実現するために、知人には携帯アドレスではなく例えばGMailのアドレスを伝えることにし、そこに届いたメールは一旦全て自宅サーバに転送してしまい、思う存分フィルタリングをかけた上で好きなものだけ携帯に送るようにしてはどうか。間にGMailを挟むことで可用性が向上する上、第一フィルタリングをGMailで設定することによって自宅サーバの負荷を抑えられる。
メールの種類によって読む端末を分けたい場合にも有効で、GmailならiPadやiPhoneを初めとする無線LAN対応機器を使い通信料を発生させずに読むことができる。
「思う存分フィルタリング」のやり方。
だいたいここに書いてあることと同じだが、procmailrcの内容を以下のように変えている。これにより、メールソースを渡しつつfoward.rbを実行することができる。
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
RubyDir=$HOME/scripts/ruby
TmpDir=$HOME/tmp/
LOGFILE=$MAILDIR/proc/`date +%Y-%m`.log
LOCKFILE=$HOME/.lock
VERBOSE=ON
:0 Hc :
* .
|cat > $TmpDir/mail; $RubyDir/forward.rb
メールソースをrubyで扱うのにtmailというライブラリが便利なのでこれを利用する。メールを送信するにはnet/smtpを使うが、認証がうまくいかなかったのでaction_mailerを使うことにした。
gem install tmail
gem install action_mailer
以下、forward.rb の例。
#!/usr/bin/ruby
require 'rubygems'
require 'action_mailer'
require 'tmail'
require 'kconv'
〜中略〜
mail = TMail::Mail.load(mail_path)
# 前述のprocmailrcの「cat > $TmpDir/mail」で保存した一時ファイルを指定している
subject = mail.subject
body = mail.body
〜中略〜
# 日本語文字化け対策つきメール送信メソッドの定義
class HogeMailer < ActionMailer::Base
@@default_charset = 'iso-2022-jp'
@@encode_subject = false
def hogeMessage(recipient, mySubject, myBody)
from 'from@from.com'
recipients recipient
subject '=?ISO-2022-JP?B?' + Kconv.tojis(mySubject).split(//,1).pack('m').chomp + '?='
body Kconv.tojis(myBody)
end
end
#認証とかの情報設定
ActionMailer::Base.smtp_settings = { :address => '127.0.0.1',
:port => 25,
:domain => 'XXX',
:user_name => 'XXX',
:password => 'XXX',
:authentication => :login}
#送信!
HogeMailer.deliver_hogeMessage('to@to.com', mail.subject, mail.body)
上記では単に転送しているだけだが、mail.fromやmail.bodyを正規表現などでフィルタリングしたあと
複数の宛先に投げ分ければよい。また、大量のスパムメールが直接携帯アドレスに届くような場合には、willcom側の設定で例えば「*.com」を拒否しておき、forward.rbの中でfromアドレスを「.com」→「.etc」のように書き換えた上で転送するなど、色々応用がきく。
willcomのメール設定では、fromアドレスを指定してメールの受信を拒否することができる。
アスタリスクが使えるので、例えば「*@*.com」みたいな条件を設定することができるが、
正規表現までは使えないので加減が難しい。そもそも、fromアドレスだけじゃなく本文もフィルタリング条件にしたい。
これを実現するために、知人には携帯アドレスではなく例えばGMailのアドレスを伝えることにし、そこに届いたメールは一旦全て自宅サーバに転送してしまい、思う存分フィルタリングをかけた上で好きなものだけ携帯に送るようにしてはどうか。間にGMailを挟むことで可用性が向上する上、第一フィルタリングをGMailで設定することによって自宅サーバの負荷を抑えられる。
メールの種類によって読む端末を分けたい場合にも有効で、GmailならiPadやiPhoneを初めとする無線LAN対応機器を使い通信料を発生させずに読むことができる。
「思う存分フィルタリング」のやり方。
だいたいここに書いてあることと同じだが、procmailrcの内容を以下のように変えている。これにより、メールソースを渡しつつfoward.rbを実行することができる。
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
RubyDir=$HOME/scripts/ruby
TmpDir=$HOME/tmp/
LOGFILE=$MAILDIR/proc/`date +%Y-%m`.log
LOCKFILE=$HOME/.lock
VERBOSE=ON
:0 Hc :
* .
|cat > $TmpDir/mail; $RubyDir/forward.rb
メールソースをrubyで扱うのにtmailというライブラリが便利なのでこれを利用する。メールを送信するにはnet/smtpを使うが、認証がうまくいかなかったのでaction_mailerを使うことにした。
gem install tmail
gem install action_mailer
以下、forward.rb の例。
#!/usr/bin/ruby
require 'rubygems'
require 'action_mailer'
require 'tmail'
require 'kconv'
〜中略〜
mail = TMail::Mail.load(mail_path)
# 前述のprocmailrcの「cat > $TmpDir/mail」で保存した一時ファイルを指定している
subject = mail.subject
body = mail.body
〜中略〜
# 日本語文字化け対策つきメール送信メソッドの定義
class HogeMailer < ActionMailer::Base
@@default_charset = 'iso-2022-jp'
@@encode_subject = false
def hogeMessage(recipient, mySubject, myBody)
from 'from@from.com'
recipients recipient
subject '=?ISO-2022-JP?B?' + Kconv.tojis(mySubject).split(//,1).pack('m').chomp + '?='
body Kconv.tojis(myBody)
end
end
#認証とかの情報設定
ActionMailer::Base.smtp_settings = { :address => '127.0.0.1',
:port => 25,
:domain => 'XXX',
:user_name => 'XXX',
:password => 'XXX',
:authentication => :login}
#送信!
HogeMailer.deliver_hogeMessage('to@to.com', mail.subject, mail.body)
上記では単に転送しているだけだが、mail.fromやmail.bodyを正規表現などでフィルタリングしたあと
複数の宛先に投げ分ければよい。また、大量のスパムメールが直接携帯アドレスに届くような場合には、willcom側の設定で例えば「*.com」を拒否しておき、forward.rbの中でfromアドレスを「.com」→「.etc」のように書き換えた上で転送するなど、色々応用がきく。
登録:
投稿 (Atom)