すももさんと小山さんのスペースについてまとめてみた


すももさんと小山さんの恋愛論をまとめる

数日前に、ふたりがTwitterスペースで対談しました。
その際には、「小山さんはすももさんを加害的だと責め」
「すももさんは小山さんが質問に答えていないと詰める」
という図式のまま、物別れに終わりました。

全体的に噛み合った議論はなされず、互いに相手を非難することに終始した感がありました。

筆者は個人的にすももさんの活動に好感を持っていますが、今回は肩を持つことはしません。 それぞれ互いに、論が進みにくくなる要因を作っていたと思います。

小山さんのまずかったところ

  • すももさんの「暴力性という言葉は誤解を生むのでは?」の問いに対し、「コンテクストを読めばそんなのナイナイw」に終始し、真剣に向き合うことをしなかった

すももさんのまずかったところ

  • 「暴力性という言葉がなぜいけないか」という逆の質問に対し、「本気にしたらどうするの/だって常識でしょ」という感じに抽象的で雑な論難をした

※ この点、黒猫さんが非常に残念がっておられました。表現規制論の「子供が真似したらどうすんだー!」と同じ論理構造に見えてしまうんですよね・・・

ふたりの立場の違い

女性に対する期待

  • 小山さん: 女性は能力が低く他罰的。女性には何も期待してはいけない。
  • すももさん: 女性は男性と能力的には同じ。女性が変化することで、社会はよい方向に向かう。

女性が男性からのアプローチを嫌悪することについて

  • 小山さん: 当然であり、女性はその感覚を修正できない。よって、男性側がアプローチを考えるべき。そのアプローチは、女性側にYesと言わせられることが重要。
  • すももさん: 男性からのアプローチは法的に問題ない以上、非は女性にもある。 男性は自信を持ってアプローチするべきだし、女性はできるだけ嫌悪しないでほしい。

f:id:satrex:20220321170926p:plain
アプローチを怖がる女性

非モテ男性のアプローチについて

  • 小山さん: 女性に対して適応的になるためには、まず加害性を理解する必要がある。すなわち、男性が声をかけることで、女性はまず迷惑するということ。 しかし、それを越えた先に、女性を楽しませて関係を発展させる方法論がある。そのため、最初に迷惑をかけることは仕方がないとマインドセットを作る必要がある。

  • すももさん: 男性から声をかけることは、法的に問題ない行為であって、女性はそれに迷惑がるのは本来はおかしい。  男性は、「ぜんぜんOKなことをしている」のだから、自信を持ってアプローチするべき。

「アプローチの暴力性」「女を殴れ」について

  • 小山さん: 非モテ男性が女性にアプローチするためのマインドセットとして有効

  • すももさん: 誤解を生む「暴力」という言葉を入れるべきではない。  本当に殴る蹴るをやるひとが出てきたらどうするのか

聞き手に与えた印象

ここまでのまとめを振り返りつつ、自分がスペースを聞いた印象として。 聞き手に対しては、このように聴こえたと想像します。

  • 小山さん: 女性の感覚に理解がある。紳士的。
  • すももさん: 女性に要求が多い。理想論的。

その実際は、小山さんの女性観には蔑視的な要素が強く、
「紳士的な差別主義者」であることが適応的だということです。
小山さん自身も、以前は女性に対して期待するところがあったようですが、
いろいろあって、今の価値観が醸成されたようです。

すももさんについては、女性を神聖視する傾向が強いように見受けられていました。
(この数日後に、サブアカウントで心情を吐露されたことでいったんの答え合わせになりましたが・・)
真の男女平等主義者にかなり近い立ち位置にいますが、
真の男女平等は、女性に対しても自立した大人としての振る舞いやわきまえを要求することなので、
世の中にいる女性たちにとって、耳当たりのよいものではありません。

このふたりが対談をすると、その場で人気を博すのは小山さんになるでしょう。

すももさんは、「なぜ女性に要求するのか」「要求をされないということはどういうことなのか」というメタな分野について、しっかりと説明を繰り返していかないと、「単に女性に要求を突きつけるミソジニスト」という印象を与えかねません。
今回は、「なんとなく人気を取るムーブ」において、小山さんが圧勝しました(すももさんは、むしろそういうのが嫌いです)。

実際には女性を尊敬しているのは圧倒的にすももさんです。小山さんはむしろ女性を軽蔑してすらいます。
にもかかわらず、小山さんのアプローチのほうが、女性に対して紳士的に一見紳士的に見えてしまうのは、認知のバグの一種かも知れません。

筆者自身の感じ方

男女の能力差について

まず、男女の能力については、僕自身は「基本的には、女性のほうが能力が高い」という色眼鏡で見ています。
事実そうあるか、というデータは持っていないのですが、
男性である自分がそう見ることで、自分自身にとっても適応的だと感じています。

なぜなら、男性は群れを守って死ぬための「使い捨て量産型人類」であり、
「愚かであること」が一種のとりえだからです。

   男性 女性
社会的役割 群れを守る 子供を産み育てる
危機察知 集団的 個人的
個体の価値 低い 高い
価値観 理想主義的 現実主義的
リスク 取りがち 回避しがち

比較的軽はずみで、リスクを取りがちな男性は、失敗も多くします。

しかし、たまたま偶然が重なると、新しい資源を獲得したり、
群れ全体を救う取引を成立させたりして、
社会に好ましい影響を与えることができるのもまた、
男性の愚かさがなせる業なのです。

じゃあ非モテはどうすればいいの?

すももさん自身は、「高望み女性はそのまま放っておこう」 「男性は気にせずアプローチしていこう」という意見をつぶやきました。

この点で、小山さんとアプローチそのものへの意見はほぼ同じです。

単純に、「暴力という言葉」の是非についてが、 このスペースの焦点でした。

なので、男性諸君はアプローチをがんばりましょう。

スペースのテーマ「暴力性」という言葉の是非は?

個人的に「暴力」「暴力性」という言葉を使うことについては・・・
理解できます。

ひとりの男性が、「自分のアプローチは女性を怖がらせ、嫌悪させるものである」
と理解することも、わきまえのひとつであると思うからです。

「法的に許されてるんだから、ぜんぜんOKじゃん!」というのは、 少し乱暴な発想ではないかな・・という風に感じます。

だから言葉をもっと選べというなら、 「迷惑」「未必の故意の加害」「怖がらせ」など、 もう少しトーンダウンした言葉選びはあるかも知れません。

それでも、「暴力性」とそう大きな違いにはなるまいと思うのです。
その結論で、すももさんは納得するのでしょうか。

この下は落書きなので読まなくていいです・・・・・

社会のあり方について

現行の社会において、「女性を守ろう」という社会的圧力が強くあるのは確かです。
その文脈において、「女性が身の危険を感じたら、それは(主観的には)加害の一種」という認知が女性自身にあります。
その感じ方自体は「仕方がないこと」であろうと思います。この点は小山さんと意見が一致します。

しかし、それを「私は加害されている」と声高に喧伝することは、大人としてのわきまえがないので慎むべきだと思います。
むしろ、逆にナンパ師はその認知につけ込みます。
「そーだよね、可哀想だね、俺そんなことしないからね。じゃ、挿れるよ・・・」
という逆手に取る技が成立してしまうのですよね。

男女同権論を進めてゆくことについては、自分の中でも葛藤があります。

すなわち、男女同権を進めることは女性にとってイバラの道だからです。
現在は男性に大きく偏っている自殺率は、イーブンに近づくでしょう。
すなわち、女性の自殺率は今より激増するはずだと思います。

女性が幸せになりたいために男女同権を進めているはずなのに、
それが実現されたら自殺率など、生きにくさを表す指標が増えるのです。
これは、「女性も男性と同じ、自立した個人であること」を求められる結果です。

それは、女性たち自身が望む社会のありかたでしょうか?
ここに、「女性同士の分断」が見え隠れするのです。
女性が男性とまったく同じ土俵で戦う、「実力主義」の社会が訪れたとして、
能力のある一部の女性は諸手をあげて歓迎するでしょう。

しかし一方で、勉強などの稼得能力に恵まれない女性についてはどうでしょうか。
今なら、「家事や育児を分担し、男性のサポートをする」という選択肢があるでしょう。
今後、女性も働かなくては一人前ではないという北欧的な社会になると、
この女性にとっては今よりも暮らしにくくなるはずです。

つまり、男女同権の社会は、女性の能力によって、 生きやすさ/生きにくさがはっきりと現れる社会なのです。

一方で、小山さんたちの保守的な女性観を突き詰めてゆくと、 「男性が女性を養い、女性は人権を制限される」という隷属的な社会観が立ち現れてきます。 イスラム教的な制度設計です。 これは、女性自身の「庇護されたい」という欲求を最大限に満たすと、当然こうなります。

庇護されたいが、自由も欲しい- 二兎は追えるか?

庇護とは、「半人前として大人の管理下に下る」という意味なので、 これを最大化すると、「女性は一人前として扱われない」という結果に行き着きます。

「庇護は最大限受けたいが、自立した個人としての自由も最大限行使したい」というのが女性の望みだとすると、 残念ながらそれは叶いません。 自立した個人の自由とは、「自分がすべての結果責任を引き受けること」であり、 庇護とは、「自分の行動の結果責任を誰かが引き受けてくれること」なので、 その二つは同時に満たせないからです。

男女の平等を究極的に満たそうとして、女性が住みにくい社会が出現するのではないでしょうか。

そうなったら日本国民も淡い夢から醒め、 より現実的な男女分担の社会を模索し始めるかも知れません。 その揺り戻しの中で、新しい保守的な社会設計が試みられるのでしょう。

どうせ回帰するなら、明治期以降の西洋かぶれした家父長制よりも、 もっと古くて日本人に最適化された、江戸自体的な価値観を磨き直したほうが、 より適応的ではないかと思います。 ちょうど江戸期も未婚率が高まって、現代社会に通じる背景があったからです。 (調べてませんが元禄時代あたりが参考になりそう)

sinatra+shotgunの使い方(解答編)

前の記事で、再度thincaさんからアドバイスをいただきました。

それはshotgunの使い方についてのもので、
『shotgunは別のターミナルとして立ち上げておくもので、
QuickRunとは同時に使わない』という事でした。

さっそく実践してみます。

ターミナルでshotgunを実行

ターミナルを起動し、shotgunでサーバー用スクリプトを実行します。

今回実行するソースはこれです。

require 'rubygems'
require 'sinatra'

get '/' do
 "hello"
end

sinatraのWebサイトに載ってるアレです。
『これをパイプに詰めて、喫うといい』ってやつです。

では、ターミナルを起動して、shotgunを実行してみます。

shotgun (中略)072_sinatra_todo.rb

https://img.skitch.com/20120304-m6knjijy1xfaf75t5pfhjhhsix.jpg
正常に起動したようです。
sinatra単体で起動した時とは、ポート番号が違います。
4567ではなく、9393が使われていますね。

ブラウザで実行結果を確認

ブラウザから、実行結果のページを見てみます。

http://localhost:9393

FireFoxの画面)
https://img.skitch.com/20120304-d32m2sdbay818629x754duf395.jpg

はい。正常に表示されていました。

Vimsinatraを更新

では、Vimで先ほどのソースファイルを更新してみましょう。
メッセージを変化させ、Webページが更新されるか確認します。

まず、ソースを変更します。

require 'rubygems'
require 'sinatra'

get '/' do
  # "hello"
  "How you doin'?"
end

そして保存。

ブラウザで実行結果を再確認

では、ブラウザを再読み込みして、ページが更新されるかどうか確認してみましょう。

https://img.skitch.com/20120304-nr4uushqf911kinrfbc795qt8n.jpg

無事に更新されました。
これからは、こうやって作業していけばいいようです。

閉じるときには

ちなみに、作業を終了するときは、shotgunを実行中のターミナルで、
Ctrl-c を入力すると、サービスが停止します。
Vimのほうは、普通に閉じればよいです。

まとめ

  • shotgunは、別ターミナルで起動する
  • Vimでは、ソースファイルの編集のみ行う
  • ブラウザでは、実行結果のWebページを表示しておき、ソース編集のたびに更新する
  • 終了時は、shotgunをCtrl-cで停止させる


わかるまでアドバイスを下さったthincaさんに、感謝します。
ありがとうございました!

shotgun使ってみた

前回の記事のコメントで、thincaさんから『sinatraならshotgunを使うといい』というアドバイスをいただきました。
そこで、shotgunを使ってみることにします。

インストール

gemでインストールします。

sudo gem install shotgun

https://img.skitch.com/20120303-x7xgxssahi9ad6y5sm6h1q5fid.jpg
うまくいきました。

起動

Vimでソースを書きながらちょいちょい起動したいので、
Vinのコマンドから呼べないといけません。

:! shotgun %

結果はこんな感じです。
https://img.skitch.com/20120303-ph4cdt6f4j1ameh1ixtet3e2n1.preview.jpg

でも・・・
shotgun使用中、Vimが固まっています。
昨日までとの違いは、vimからCtrl-Cを受け付けるようになった事です。
それだけでもありがたい事ではあるのですが・・・

やっぱり、サービス起動後に、Vimに制御が返ってきてほしいです。
でないと、オートリロードになりません。
まだ何か足りていないようです。

F5で呼びたい

これからやりたい事は、次のようなことです。
たぶん、そんなに特殊な事ではなくて、使いこなしている皆さんは、普通に実現している状態だと思います。

  • ソース編集中、あらかじめ決めたコマンドで、即時実行できる。

これはオイラの場合、F5でやりたいです。育ちの問題です。

  • 即時実行の際、ファイルタイプによって、実行コマンドが自動選択される。

これはQuickRunが面倒を見てくれます。『sinatraを使う.rbファイルだけshotgunを使う』とか、そんな設定できるんでしょうか・・・

実現方法を考える

どうすればいいのか、ちょっと考えてみます。

  • 起動にQuickRunを使うのは前提。
  • QuickRun+shotgunの使い方を調査する必要がある。
  • vimprocが正しく設定できている事を確認する。

普通ってなかなか難しい。

shotgun使ってみた

前回の記事のコメントで、thincaさんから『sinatraならshotgunを使うといい』というアドバイスをいただきました。
そこで、shotgunを使ってみることにします。

インストール

gemでインストールします。

sudo gem install shotgun

https://img.skitch.com/20120303-x7xgxssahi9ad6y5sm6h1q5fid.jpg

うまくいきました。

起動

Vimでソースを書きながらちょいちょい起動したいので、
Vinのコマンドから呼べないといけません。

:! shotgun %

結果はこんな感じです。
https://img.skitch.com/20120303-g5s9acs99sqyjjwcspfu2665fw.jpg

でも・・・
shotgun使用中、Vimが固まっています。
昨日までとの違いは、vimからCtrl-Cを受け付けるようになった事です。
それだけでもありがたい事ではあるのですが・・・

やっぱり、サービス起動後に、Vimに制御が返ってきてほしいです。
でないと、オートリロードになりません。
まだ何か足りていないようです。

F5で呼びたい

これからやりたい事は、次のようなことです。
たぶん、そんなに特殊な事ではなくて、使いこなしている皆さんは、普通に実現している状態だと思います。

  • ソース編集中、あらかじめ決めたコマンドで、即時実行できる。

これはオイラの場合、F5でやりたいです。育ちの問題です。

  • 即時実行の際、ファイルタイプによって、実行コマンドが自動選択される。

これはQuickRunが面倒を見てくれます。『sinatraを使う.rbファイルだけshotgunを使う』とか、そんな設定できるんでしょうか・・・

実現方法を考える

どうすればいいのか、ちょっと考えてみます。

  • 起動にQuickRunを使うのは前提。
  • QuickRun+shotgunの使い方を調査する必要がある。
  • vimprocが正しく設定できている事を確認する。

普通ってなかなか難しい。

Vim+QuickRunでsinatraがフリーズした際の停止方法(mac)

Vim+QuickRun便利です。

でも、sinatraなど、実行しつづけるプロセスを起動すると、
固まって戻ってこなくなっちゃいます。

そんな時はpsコマンドでプロセスIDを調べてKillするといい、
という風にGoogle先生が言ってました。

psコマンドだけで幸せは来るか

そこで、sinatraが固まった後でps コマンドを入力してみます。

$ ps
実行結果は次のとおり。
https://img.skitch.com/20120301-x8qgkb57pn2yjjk1xgnbr4gybp.jpg

ないですね。

このあと、Vimを再起動してQuickRunしても、返ってくるのは、
こんなメッセージです。

== Someone is already performing on port 4567!

オイラはこの後どうしていいかわからなかったので、再起動とかしてました。
コレを読んでいるあなたは、そんな事しないで下さいね。

プロセスの見つけ方

この問題を解決するのに、ちょうどいいサイトを見つけました。これです。
http://groups.google.com/group/sinatrarb/browse_thread/thread/e34efc83e708576a

これによると、次のコマンドで、sinatraのプロセスが見つかるとの事です。
ps aux | grep ruby

> thks, I also found that simply "ps aux | grep ruby" gives the pid's and
a simple kill seems to clear out the processes.

やってみましょう。
https://img.skitch.com/20120301-db8f4e5nauu3kutjtikp1u9q3b.jpg

見覚えのあるファイル名が出てきました。
どうやらこの2行の中に、プロセスIDが書いてあるようです。
https://img.skitch.com/20120301-dq1diffp55mi9h38erindjauh8.jpg
これですね。

もうひとつの方法

また、ポート4567を使う事がわかっているので、次のような書き方もできるらしいです。
lsof -i :4567

You can try "lsof -i :4567" to find which process has the port open,
then stop it with kill.
https://img.skitch.com/20120301-jj1pbc6w49e5q31n93rqty4x9n.jpg
こっちの方がスマートな感じですね。

このようにして、プロセスIDは749だという事が判明しました。
あとは、kill 749 と入力すれば、めでたくVimはオイラのもとへ帰ってきます。
たぶん、あなたのもとへも。

まとめ

Vim+QuickRunが固まったら、

ps aux | grep ruby

または

lsof -i :4567

で、プロセスIDを調べる。

その結果、たとえばPID=333とすると、

kill 333

と入力すれば、制御が返ってくる。

Vim+QuickRunがむずい

Vimの扱いで難航しています。
RPGのクエストのように、やりたい事までのロードマップが長い。

そもそも、やりたいこと

やりたい事から逆算していきましょう。

WebサービスをHerokuに作りたい
 ↑
Sinatra+αの作り方を覚えたい
 ↑
Sinatraアプリを効率よく実行/デバッグしたい
 ↑
Vim+QuickRunを使って作ろう
 ↑
QuickRunでsinatraが固まるので、非同期化したい
 ↑
非同期化するため、VimProcを入れたい(今ココ)

VimProcを入れるには

VimProcを導入するためには、インストールだけではだめで、
ローカルでmakeFileしてやる必要があります。

makeして、生成されたファイルをVIMRUNTIMEに入れてみたのですが、
sinatraが非同期実行してくれません。
やっぱり、sinatraを起動すると、ターミナルひとつ上げずに固まってしまいます。
そして、sinatraのいるべき4567番ポートが占領されてしまいます。

== Someone is already performing on port 4567!

ただし、vimproc単体では、いちおう動くそぶりを見せます。
しかし、動かした結果がなんかおかしい気がします。

どうおかしいか?

:vimproc#get_command_name('vim')

上記の実行結果が、これです。

/Applications/MacVim.app/MacOS/vim

これがおかしいのかな?

ついでに、:echo $VIMRUNTIME
の実行結果は、

/Applications/MacVim.app/Contents/Resources/vim/runtime

これは、正しい状態なんでしょうか?

追記

繰りごとを書いてぶつぶつしていたら、次の記事(sinatraでVimがフリーズした時の停止方法)にthincaさん(QuickRunの作者です!)がアドバイスをくれました。
sinatraではshotgunを使うのがおすすめ』だそうです。

thincaさん、末端のいちユーザーにアドバイスを下さり、たいへん感謝しています。



次の記事では、sinatraでVimがフリーズした時の停止方法を解説します。

C# Windowsフォームの自動テスト化

Windowsフォームの自動テストは鬼門?

Windowsのフォームは、自動テストが書きにくい。
今まで失敗してきた歴史があるけど、今日初めてうまくいったので、ポイントをメモ。

プロジェクトの構成

アーキテクチャ
クライアントサーバー構成 イントラ内にサーバー構築
フレームワーク: 
クライアント側:.net2.0 サーバー側:.net3.5
DB:
SQL Server
構成ファイル
  • クライアントプロジェクトのapp.configを、テストプロジェクトで読み込む必要がある
    • 今回は試験的にまるっとコピった
    • <configuration>タグの先頭に<configSections>が来てないとだめ
コーディング
  • Formを画面に表示したいので、テストメソッド内でまずFormインスタンスを生成してShowする
  • ShowしたフォームにPrivateアクセスするため、Form_Accessor.AttachShadow(form)して、アクセサインスタンスを生成
  • アクセサインスタンスに対し、ボタンのPerformClickなどで操作を行う