« 2008年6月 | メイン | 2008年8月 »

2008年7月28日

男性多数の集団と女性多数の集団の決定的な違い

http://d.hatena.ne.jp/kanose/20080726/himoteface

私はこれまで、男性か女性かどちらかが圧倒的多数である集団にいたことが多かった。世の中そう言うものかもしれない。ちなみに今の職場は女性が圧倒的多数。9割が女性。

で、その経験から言うと、男性が圧倒的多数の場合、集団内の女性は男性の誰かしらとくっつくが、逆の場合は、まずカップルは成立しない。

理由は至極単純だ。女性が多数の集団の場合は、集団内の和を乱すことがタブー視されるからだ。なので、男性は「ちやほやされつつ特定の人とはくっつかない」または「空気のようにスルーされる」のいずれかになる事が多い。

民俗学や社会学で言う、「特殊な存在を上か下かに隔離する*」と言う状態です。

そういう中で、女性同士の利害を調整しながら、上手く立ち回れる、あわよくば付き合う段階まで持っていけるような男ははっきり言ってモテなのである。

男性が圧倒的多数の集団だと、話は逆で、女性は確実に誰かしらとくっつく。しかも、たいていその集団のリーダー格の男性と。

面白いのは、これは女性の容姿や性格の如何に関わらないところ。むしろ、容姿が普通よりちょい下くらいの子が一番モテる。急にモテ出しちゃった女の子が調子に乗っちゃって何マタもかける、てのも珍しくない。

そこそこカッコ良いヤツが、なんでその子と…、みたいなことはまま見てきた。「男は容姿ばかり見る」てなことを言う人は多いけど、趣味が合う人を選ぶことはかなりあるように思う。

それに、容姿なんて、表情とか心の持ちようとかででかなり変わるしね。女性にしろ男性にしろ。

*神と崇めたてられるか、村八分にされるかは紙一重だし、どちらにせよ孤独であると言う話

02:05

2008年7月25日

システム管理者の日

そういや、システム管理者の日でした。今週は結構システム管理者っぽい事をしてました。VBScript, Javascript, Perlをフルに使った気がする。

フォームの、バリデート関連とか、サニタイズ関連とかを見直したり、フォームの一つ一つの項目をVBScriptでオブジェクト指向的に実装したりとか、質問項目をCSVとかデータベースとかから引っ張ってこれるようにしたりとかその辺りの汎用モジュールを書いてた。

どれもこれまでやってきたようなことなんだけど、どうもその場しのぎで汎用性が足りなかったんで今後のために書き直した。

とか言っても、自分の昔書いたコードって、いつ見ても稚拙だから、今書いたコードを見てそのうち書き直したくなったりするんだろうな。その辺りキリが無いね。

23:44

2008年7月23日

VBScriptの糞仕様

VBScriptってオブジェクトの中に格納した配列を変更する事が出来ないことに気づいて愕然。いったん格納してしまったら、長さ変更どころか、要素の値変更すら出来ないと言う。

Dim hoge : Set hoge = CreateObject("Scripting.Dictionary")
hoge("fuga") = Array(1,2,3,4,5)
WScript.Echo(hoge("fuga")(0))	'1
hoge("fuga")(0) = 10 			'代入してるのに
WScript.Echo(hoge("fuga")(0))	'1

orz

てことで、いったん配列を一時配列に格納しておいて、オブジェクト内配列を破棄してから、一時配列の値を変更して格納しなおせば一応値変更は可能。以下のような感じ。

Dim tmpArr : tmpArr = hoge("fuga")
Set hoge("fuga") = Nothing
tmpArr(0) = 10
hoge("fuga") = tmpArr
WScript.Echo(hoge("fuga")(0))	'10

うーん、これは明らかに無駄なコード過ぎ。せっかく、クラス自分で定義してオブジェクト指向とか楽しんでたのに、どっちらけ。

01:28

2008年7月20日

ボウリング進歩無し。退化も無し、多分

ボウリング早慶戦でした。168,180,176で524。いつもながら低く安定。何れも200upを狙えるゲームだったが、全てのゲームで9フレのファンデーションをミスると言う。ありえん。1,3ゲームは10フレもミスった。

コントロールが安定せずレーンも読めずスペア外しまくった。ポリッシュしたての16ポンドボールに助けられ、怪しいストライクでなんとかスコアメイクした。何せ、10ピンタップが一回も無かった。

レーンがもともと外速中遅でしかも変化が早いもんだから、殆どの人が苦労していた。ただ、外ミスしたらそのままノーヘッドだけど、内ミスしても真ん中に行かず、怪しく曲がってくれて、サイドヒットしたりと、個人的には投げやすい部分もあった。スプリットも1回だけ。

慶應現役主力チームがバカ打ちして、個人1位、2位、3位独占。それでいて、慶應は総合成績で早稲田に負けたと言う。

しかし、現役上手いわ。岡田のシンプルなボウリングは良いなぁ。球速あってこそだろうけど。リスタイ無し、テーピング無し、ボール1個てのが素晴らしい。私もそうだけど、スコアが段違い。見習いたい。

それと、2年の和田君が上手すぎ。ありえんわ。あれは天才だよ。なんか、関東トップに近い位置にいるとは聞いていて半信半疑だったが、スコアだけじゃなくて、ボールも凄くなってました。納得。

投球を一球見ただけで、とんでもなく上手いことが分かると言う。遠藤誠プロ並かそれ以上の資質を感じるよ。

神様も無駄なアビリティー配分をしたもんだね。別に彼にそんなボウリングの天分を与えなくても良かったのに。もしも、彼が無職だったら、即ボウリングのプロテストを受けて、トップシード入って年間賞金100万(笑)くらいは稼いでいるかもしれないのに。

流石に慶應卒でプロボウラーって選択肢は無いからな。その天分を活かしようが無い。

てことで、私は考えた。彼はPBA行くべき。卒業後アメリカで暮らせば良いんじゃないでしょうか。是非ご検討下さい。秋は1部リーグで優勝してください。応援行くかもしれません。

23:15

2008年7月14日

そういや昔チェスプレーヤーだった気がしなくも無い

大学チェスクラブのOB会に呼ばれた。そういやサークル代表だった気がしなくも無い(他に部員がいなかったから)。私の代で潰えたかと思っていた。まあ、ボウリング部の主将もやっていたのでどっちを優先するかと言う話になって、ボウリングを優先した訳です(笑)

それでも私の卒業後、麻布から強いやつがちょくちょく入ってきていたらしく、まあ、サークルとして活動しているかともかくとして、細々と部は存続していたらしい。

そういう意味じゃ、チェスなりなんなり具体的なものがあると、なんとなく活動の歴史ってのは続くものなのかもしれない。大学時代に所属していた「創作活動サークル」はなくなってしまったようだが。

なんか今は現役に日本チャンピオンが居るらしく、それも全日本選手権4連覇中とかでめちゃくちゃ強いようだ。彼も麻布高校チェスクラブで鍛えられたクチ。彼が昔そんな強くなかった時期に公式戦で戦った気がしなくも無い。

しかし時代は変わったものだ。昔は麻布チェス部でチェス強い人は東大一択だったのだが、最近は結構慶應にも入ってきているみたい。私が現役の頃は「レイティングが1800超えたら東大は落ちない」とかまで言われていたけどね。

てことで、麻布チェス部からの進学が東大に集中しなくなったから慶應チェスクラブ強くなったなぁ。現役の誰よりもチェスが好きな顧問の小澤教授も大喜びだよ。

日本チャンピオンのほか、全日本選手権最多優勝を誇る50代の元日本チャンピオンとか、日本に4人しかいないFIDE Master*が一人いたりとすごいメンバーでした。マイナー競技やってるとトップレベルの人と結構すぐ対面できたりするからお得。

*ちなみに、4人のうちの一人は羽生善治。彼が実質日本最強のチェスプレイヤー。未だ現役。国際大会出たりしてる。

FIDE Mastarは麻雀プロがメインで、チェスの方はご無沙汰らしくかなり訛ってました。ブリッツでミエミエの一発メイト喰らってた。勝ったプレイヤーが一言。

「どこの世界に一発メイト喰らうFIDEマスターがいるんだよ!?」

2次会は、現役交えてマックでチェス(笑) なんか現役が未成年ばっかなんだもんよ。チェスは大学4年の新勧の時に入学してきた先述のFIDEMasterとそのときにブリッツして以来5年ぶり。

いきなりに現役に勝利し、「ここ5年で負け無しだ」とかほざいてたら、日本チャンピオンの小島君にぼこぼこにされました。

しかも「まだ結構指せるもんですね(=そんなに衰えてませんね)」とかありがたいお言葉まで貰っちゃったよ(マジで素直にありがたいと思いました)。

初手F4使ってたら「公式戦でもそれ指してるの?」とか、他の若手OBに言われました。だって、それしか指せないんだもんよ、バードオープニング。フロムギャンビットで返されたらキンギャンにスイッチ。黒番の時に相手にd4指されたら、f5ついてダッチ。それしか定石調べた事無いし。

現役の一人に「F4面白いですね!」とか言ってもらいましたが、くれぐれもF4使いにならぬよう注意。麻布チェス部でもF4使いの系譜がありましたが、F4使いは例外無く弱いし、それでも別に意に介さないと言う伝統(?)がありました。私も同様。強い人が戯れにF4使ったほうが強いんだもんよ。いやんなっちゃうよね、プンスカ。

てことで現役相手に4勝5敗。この成績は上出来じゃないでしょうか。F4で一回綺麗に攻め潰せたのが気持ちよかった。F4は初見殺しみたいな部分があるので、定石を知らない相手だと、戸惑っているうちに攻め潰せるのが良いです。そしてそれくらいしかメリットがありません。弱点を知られてしまうと扱いの難しいもろいオープニングなのです。

しかし、すげーかっこよい現役の男の子がいて、「チェスなんかやってる場合じゃないって」とか言われまくってました(笑) かっこよさげなイメージとは裏腹にチェスの現実ってのはオタクのスポーツなんで(笑) しかし、彼はレイティングも1700台とかで真面目なチェスプレーヤーをやっているようです。偉い。

チェスに関しては、戦略とかの考え方の本をもう少し読めば良かったなぁとか思います。そういう本の有用性を中高時代は分かっておらず、食わず嫌いでしたが今なら分かる。

プログラミング言語だって文法を覚えるだけじゃ、そこそこのコードしか書けず限界がある。その言語の奥にある哲学みたいなものを知って初めて書けるコードがあるわけです。

チェスだって、駒の動かし方と定石を覚えるだけじゃ、そこそこしか指せないわけです。

若いうちはねぇ、「戦略は自分の頭で考えれば何とかなるでしょ」とか思っちゃうのが大間違い。先人の知恵を素直に、積極的に吸収する姿勢が大事だったんでしょうねぇ。

ゲーム勘みたいなものに優れていて、さほど勉強しなくてもかなりチェスに強くなる才能に溢れた人もたくさん見てきましたが、私はどうやらその部類ではありませんでしたしね。

てことで、チェス面白いよ、チェス。公式戦復帰を勧誘されたが、まあ、流石に他の趣味が忙しいので、恋人にチェスを教えるくらいにとどめておく事にしたいと思います。女性チェスプレーヤー人口を増やすことは大事みたいだし(笑)

03:57

2008年7月12日

Inspiron2200のキーボード交換…の予定だったが

職場のInspiron2200のキーボードの調子が突然悪くなり、一部が効かなくなったり、「k」を押すと「jk」、「,」を押すと「,m」とか出ちゃうようになってしまった。Dellに修理の見積もりとったら、2週間入院で4万円とか言われ、却下。補修部品のキーボードユニットを買って自分で修理することにした。ノートのキーボード交換とか初めてだけど、なんとかなるだろうと。実際簡単でした。

残念ながら英語キーボードしか入手出来なかった。日本語配列のままでも使えるだろうとか油断してたら、一部キーの過不足があり英語レイアウトに変更せざるを得なくなるという罠。記号の位置がぜんぜん違うのですげー泣きそうになった。覚えなおしと使い分けが面倒だなぁとか思っておりました。

しかも、キーボードユニットが初期不良でカーソルキーがセンシティブすぎて、キートップに触れただけで認識してしまうという泣きっ面に蜂状態。

もちろん交換してもらうことにして、店に送り返しました。その後、ひとまず元のキーボードユニットを付けてみて使ってみたんですよ。

そしたらちゃんと動くじゃありませんか。単にフィルムケーブルの接続がすこしずれてただけとかそんなことだったようだ。何が幸いするかわからないね。もし、キーボードユニットが初期不良じゃなかったら、泣く泣く英語キーボードを使い続けていたでしょうから。無駄にキーボードユニットは購入してしまったが。

教訓としては、
「調子が悪くなったら一度分解して組み付け直してみよう。ただし出来る範囲で」
ってことですね。

16:50

DVD → Windowsメディアサーバー

Windowsメディアエンコーダーで、VOBファイルを直接WMVストリーミング形式にエンコードできることを知った。これでDVD→ストリーミング配信とかが楽すぎる。手順は以下。

  • DVD ShrinkでDVDからVOBファイルを抜き出し
  • WindowsメディアエンコーダでWMVにエンコード
  • ストリーミングサーバーにアップロードして配信

決して違法行為に手を染めているわけではありません。提携企業の紹介DVDをストリーミング配信して欲しい等の要望があったりするので。DVD内のVOBファイルそのままだと細切れだったりするんで、DVD Shrinkで一本の動画ファイルとして抽出するのが楽。

htmlの記述方法とかはそのうち。ググると色々説明が乱立しているが、これも個人的決定版があったりする。

16:29

VBScriptにおけるpushの決定版

VBScriptの配列は扱いづらいことで有名(?)ですが、pushを定義したらだいぶましになりました。以前から使っていたのだけど、改良を重ねてこれが決定版。

Sub push(arr,elm)
  Dim i,tmp : i = 0
    If IsArray(arr) Then
      For Each tmp In arr
        i = 1
        Exit For
      Next
      If i=1 Then
        Redim Preserve arr(Ubound(arr)+1)
      Else
        Redim arr(0)
      End If
    Else
      arr = Array(0)
    End If
    If IsObject(elm) Then
      Set arr(Ubound(arr)) = elm
    Else
      arr(Ubound(arr)) = elm
    End If
End Sub

実行コードサンプル

Dim hoge()
push hoge,"test"
push hoge,Array(1,2,"fuga",44)
Dim fuga : Set fuga = CreateObject("Scripting.Dictionary")
fuga("item1") = "testitem"
push hoge,fuga
WScript.Echo(hoge(0))
WScript.Echo(hoge(1)(3))
WScript.Echo(hoge(2)("item1"))

これで、配列にオブジェクトやら配列やらを突っ込めてフリーダムな感じ。ひゃっほー。配列にはオブジェクト格納できないのかと思ってたら、「Set」を使えばできるんだね。実はVBScriptでもかなり複雑なデータ構造が実現可能。Classも定義できるし。ちなみに、こうやって配列にオブジェクトを突っ込むと参照渡しになるようだ。配列だと値渡し。

配列関係の条件分岐が複雑になっているが、空の配列の定義方法によって挙動が異なるのが理由。

  1. Dim hoge : hoge = Array() →IsArray()はTrue。UBound()を使うと、-1が返る
  2. Dim hoge() →IsArray()はTrue。UBound()を使うと、即エラー(!)
  3. Dim hoge(-1) →こういう宣言は不可能(即エラー)

2の変数宣言の方法がシンプルで好きなのだが、こうすると型が形だけ配列扱いになるだけで、Uboundで配列の長さも取得できないというクソ仕様。なんで、コレクションを見に行って、ひとつでも要素があれば配列を伸ばすという形にした。

かなり無理やりなので、メモリはすげー無駄遣いしてるんだろうなぁ。Perlみたいに、無名ハッシュみたいなのを直接入れたり、深いデータ構造の自動生成とかは流石にさせられないのが残念。

それと、配列を走査して書き出したりしようと、オブジェクトを書き出そうとしたときにエラー吐いちゃうんだよね。オブジェクトにtoStringみたいなのを定義できない(多分)のが困る。

16:11

お前何年VBScript書いてんだって話なので

VBScriptでg.vbsを書いてみた。これなら拡張子無しでいけるだろうとか思ったらいけなかった。なんだよ。exeとlnkとbatは大丈夫なんだがなぁ。vbsからexeにするツール使おうとしたらウィルス扱いされたので見送り。

Option Explicit
Dim srchStr : srchStr = ""
Dim str
for each str In Wscript.ARguments
	srchStr = srchStr & " " & str
Next
srchStr = Mid(srchStr,2)
Dim sc : Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
Dim js : Set js = sc.CodeObject
srchStr = "http://www.google.co.jp/search?q=" & js.encodeURI(srchStr)
Dim shell : Set shell = WScript.CreateObject("WScript.Shell")
shell.Run(srchStr)

まあ、VBScriptとか言いつつScriptControlとか使ってしまってるわけですが、気にしない。

01:10

2008年7月11日

ファイル名を指定して実行をランチャー化しさらに検索までも

Windowsキー+Rで「ファイル名を指定して実行」を呼び出せるので、これをランチャーとして使っている。C:\mycommand\にユーザ環境変数でPATHを通して、そこにショートカットやらスクリプトやらを置いている。putty.lnk置いておけば、Windowsキー+R+"putty"でターミナル呼び出せたりして便利。これを使い始めてから、デスクトップはTODOのファイルを置くだけになって大分すっきりした。

調べたら当然ながら似たようなことを考える人はたくさんいるようで、検索するのもファイル名を指定して実行なんて人がいた。「ファイル名を指定して実行」フェチのツール

素晴らしいアイデアなのでパクってYSTでも出来るようにした。上記ページのGoogle版も「複数引数を読まない」「URLエンコードがshift_jis」ってのが気に食わなかったので、Google版も別のを作った。

Perlで書いて、PARでexe化した。Encodeモジュール使ってるせいかサイズがクソでかくなり、動作も遅くなった。残念。PARで作ったexeファイルって単なるZIPのようだし。手動でいらないファイル削ったりしたらもうちょっと軽くなったりするのかも。

生のPerlはこちら。ActivePerl入ってたらこっちの方が断然早い。

ソースはこんな感じ(y.exe)。

#!/usr/bin/perl
use strict;
use warnings;
use Encode;
my $srchStr = join " ",@ARGV;
{
	use utf8;
	$srchStr = decode("sjis",$srchStr);
	$srchStr =~ s/ / /g;
}
$srchStr = encode("utf8",$srchStr);
$srchStr =~ s/([^\w ])/'%'.unpack('H2', $1)/ego;
$srchStr =~ tr/ /+/;
system 'start','http://search.yahoo.co.jp/search?p='.$srchStr;

最終行を何とかすれば、どんな環境でも動くはず。引数がShift_jisなのが前提だけど。本当は中国語も検索できるようにしたいんだよね…。「ファイル名を指定して実行」がsjis動作なのがきつい。

それと、環境変数PATHEXTに.PLを追加しても、「ファイル名を指定して実行」からは拡張子plを補完してくれない。コマンドラインからはいけるんだけど。何故?

03:16

2008年7月 2日

最近の鍛錬状況(ボウリング復活か?)

美ヶ原が中止になった悔しさをぶつけにヤビツ行った。34分47秒が出た(名古木からは39分8秒)。35分切ったのはニート時代以来です。

なんか、龍勢ヒルクライムも友人が渋っているので、別の友人と同じ日にやる湘南国際マラソン出ることになりそう。てことで、今年はもう自転車レース出ません。(と思ってたけど、9月の修善寺のレース出るかも)

マラソンだとなぁ、なんか日本ランナーのレベル高すぎなんで、自分との勝負しかなくなっちゃうんですよね。それはそれでつまんない。自転車なんかはJCRCとかあって、クラス別に勝負できたりするから楽しんだけどね。

やっぱ自分との勝負だけになっちゃうとちょっとつまらない部分がある。やる気満々の相手をぶちのめす or ぶちのめされるのは楽しい。これは一種のコミュニケーションですね。やる気の無い相手を無理やり土俵に上げて勝っても虚しいだけだけどね。(分かってる?→勝ち組とか負け組とか言いたがる人たち)

その前に、今月はボウリング部の早慶戦があるので、恥をかかない程度にボウリング強化月間。とか思ってたら、洞爺湖サミットのテロ対策とかで、駅のコインロッカーとか全然使えないの。午前中ボウリング、町田駅のコインロッカーにボール置いて出勤、が出来ない。困った。持って行くか。

てことで3ヶ月ぶりにボウリングした。2シリーズやってなんとか4の字は打たなかった。全然ストライク出なかったけど。要は「狙ったラインに乗る確率」×「狙ったラインの読みが正しい確率」×「ジャスポケ行ってストライクになる確率」=「満足のいくストライクが出る確率」なんで、それぞれの精度が1割落ちるとストライク率は3割弱落ちる。ストライク率4割が3割になる計算なのだ。テンピンは9/9の奇跡。6ゲームで9回しかテンピン残らないってどうよって話もあるが。

ランニングシューズも買い換えた。これまでアシックス一筋だったが、今回はミズノにした。町田のB&Dで、アシックス、ニューバランス、ミズノと履き比べたが、ミズノのウェーブライダー11が足を入れた感覚がめちゃくちゃ良かったのでこれに決定。

ニューバランスは爪先の締め付けが緩すぎてちょっと気持ち悪かった。「足がむくんできても大丈夫なんで好きっていう人も多いですよ」みたいなことを店員さんが言っていた。そう言う人もいるんでしょうね。評価が高いのは頷ける。

アシックスは逆にちょっときつめだった。きつめなのは結構好みなんですけど(自転車ロードシューズはぴったりが基本なんで)、今回は浮気。

いろいろ履き比べさせてもらって、いろいろ相談にものってくれたB&Dの店員さんに感謝。

左膝が不安なんで膝下までのランニングタイツも買った。ワコールのやつ。

てことで久し振りに5km走。いきなり22分台が出てビビった。ボウリングもそんなに悪くなかったし、自転車乗りまくってても身体が出来てるもんだね。シューズもタイツもかなり良い感じ。

最近友人に「頭と身体を使えれば、手段は何でも良いんだね」って言われた。ああ、全くだ。

23:44

2008年7月 1日

そもそも一夫一婦制が男のための制度だってのは有名な話

http://anond.hatelabo.jp/20080629212241

そもそも一夫一婦制が男のための制度だってのは有名な話。一夫多妻制だと確実にあぶれる人が出るわけだから。

女性の側はつがわなければ不完全だと言う物語を信じ込まされ、実際社会の中では女一人ではやっていけない空気が蔓延している状況じゃ、どんなにダメな男とでも一緒にならざるを得ないわけだ。

男には女がほぼ確実に一人あてがわれる。モーレツに働く企業戦士は妻の支えなくしては成り立たない。そうやって日本は高度成長を遂げたわけだよ。

今はそれが通用しない。炊事も洗濯も楽になったしね。一人で十分生きていけるし、男に依存しなくたって楽しく生きていけることに多くの女性が気づいてしまった。

生きていくために誰かと無理やりくっつく必要は無く、ゆっくり相手を選べるわけです。

良い話じゃないか。まとまってないけど、とりあえず、増田に反応だけし終わる。

02:20