あままこのブログ

役に立たないことだけを書く。

インターネットでの議論と「市民的公共性」について

前回の記事 amamako.hateblo.jp で書くの忘れていたことをあとで思い出したんで。

千田有紀氏が次のようなツイートをしたことによって、「市民的公共性」についての議論が盛んになっています。

私自身は「表現の自由」は国家から規制されるべきものではない、とは思う。でもそう思うからこそ、国家から規制されるまえに、「市民的公共性」を発達させないといけないと思うんですよ。 あと表現って、さまざまな他者への配慮のなかでこそ磨かれていくものだと思う。フリーハンドの表現なんてない

https://twitter.com/chitaponta/status/1047451777220501504

まず、基本的に言うと、僕もこの意見には賛成。というか、ずっと以前に、僕も「表現の自由は、むしろその表現について、批判的な意見も言えるような市民的公共性の中でこそ保たれる」というような主張をしたことがあります。 amamako.hateblo.jp amamako.hateblo.jp amamako.hateblo.jp (今見たらこれ9年前の記事なのね……)

というか、逆に聞きたいんですけど、「万人が、その立場に関わらず自由に議論を提起し、そしてその議論が尽くされないとならない」という「市民的公共性」を、それが実際に実現しているかではなく、そもそも「そんなことは必要ない!」という規範として*1否定している人達は、いったいそれでどうやって今のこの、言論の自由を保証する自由民主主義制度を支えられると考えてるんでしょうかね?

「議論すれば社会は変えられる」とみんな信じているからこそ、人々は社会を変える際に、暴力ではなく議論を選択するわけで、もし「議論なんかしても社会は変わらない」とみんなが考えるようになったら、行き着く先は万人の万人による、暴力を用いた闘争、そして勝者による独裁なわけです。そうなれば、今のこの言論・表現の自由なんて消し飛びますよ。勝者による、「不快なものを規制する」表現規制を妨げるものなんて何もなくなるんですから。もしかしたら、「そうなったとしても自分は勝者の立場に立つから、自分の表現は守られる」とか考えてるんですかね?だとしたら、おめでてーなーとしか言いようがありませんが。

(実はここ、市民的公共性を批判しがちな社会学者に対する愚痴だったりもして。そう、実は社会学自身の内部でも最近は「市民的公共性とか古いっしょ」みたいな話がよく出るのだ。おそらく、今回の議論でもそういう連中が市民的公共性を揶揄する文章を増田とかtwitterとかに書いているんだと思うんですよ。いや確かに、市民的公共性は「事実」として実現してないし、それが実際は公共性の外のマイノリティを不可視なものとしてしまうという批判はあると思うよ。しかしだとしても、少なくとも今の自由民主義体制は、「市民的公共性」を前提として動いているわけで、市民的公共性を規範としても否定するんなら、じゃあそれとは違う「公共性」のあり様を提起できるのかと。もしそれができないでただ「否定」を叫んでるだけなら、それはワイマール共和国時代に「今の政治ってクソだよねー」と文句ばっか言ってナチスの台頭をまねいた、当時のインテリたちの態度と何が違うんですかと。)

インターネットに「市民的公共性」は存在しない……少なくとも現在は

ただ、その一方で、じゃあ今のこの社会、特に今の日本のインターネット空間で、無邪気に「議論が活発になされること」=市民的公共性の発露とみなせるかといえば、まあ、僕が言うまでもありませんが、それは違うわけです。

そもそも、市民的公共性を成り立たせるためには、まず「立場や身分の違いのかかわらず、議論の相手を一人の人間として尊重し、相手の意見を真摯に聞き、自分の意見を真面目に言う」ということがその公共性の参加者に求められるわけですが、前回の記事で述べたように、そんなの価値観だれも持ってないわけです。更に言うなら、市民的公共性は基本的に、メディアによって歪められることのない直接的な対話を想定したものなわけで、そのためにハーバマスはそのような公共性が芽生えた場所として「サロン」のような場所を想定したわけです。が、現在のインターネット環境は「サロン」と呼ぶにはあまりに広大でフラットすぎます。人間どんなに頑張ったって、一度に同時に対話できる人数はせいぜい十人程度が限界でしょう。ところが、インターネット空間で「誰でも参加できる自由な議論」なんてものを行おうとすれば、それこそ一度に数百人を相手にしなくならなきゃならなくなるわけです(前回の記事も数百ブクマぐらいでしたしね)。そんなものをいちいち誠実に行っていたら、そりゃ疲弊して、それこそ今回の千田氏のように議論から撤退せざるを得なくなるわけです。それか、そのようなインターネットに過剰適応して、メンタルに失調をきたすか。

だから人々は当然、インターネット上においても、というかインターネット空間だからこそ、そういう「開かれた空間」から撤退して「閉じた空間」に移行しようとします。ところがそこにも罠がある。「閉じた空間」を作ろうとすれば、そこには当然、どんな人間を閉じた空間に入れるか選別が行われます。そうすれば人間、やっぱ自分と同じような価値観の人とつるみたくなるんですね。そして、同じような人と「閉じた空間」にこもって、コミュニケーションをしていると、どんどん先鋭化して、違う立場の人の意見を聞かなくなっちゃうわけです(ここで「自分もそうかもしれない」と思った人はまだ大丈夫、「あーあいつらのことね。」とか、自分と敵対する側を思い浮かべてる人ほど危険ですよ)。

つまり、インターネット上で議論をしようとすると、頭の良い・悪い、ウヨサヨとかに関係なく、他人の意見は聞かなくなるものなんです。これは、個人の性格とかではなく、インターネットというアーキテクチャの特性です。まあ、それが必ずしも悪いとは言えない(趣味のつながりを作る際は今まで述べた特徴はむしろ好都合だったりするしね)んですが、少なくとも市民的公共性に基づく討議との相性は、最悪であると言わざるをえなくなるわけです。

市民的公共性は「難しい」、だからこそそれを実現する「仕組み」が必要

ただ、前に述べたことの繰り返しとなりますが、市民的公共性は、確かにそういうふうに、今の社会で実現するものとしては極めて「難しい」ものなわけです、が、それでもこの、曲がりなりにも自由な社会を守るためには「目指さなければならないもの」なんです。

だからこそ、私たちはその難しい課題をいかに実現するかを、考えなくてはならないのです。例えば、「閉じた空間」であっても、同質性ばかりではなく、意見の異なる人々をマッチングさせることができないかとか、「炎上」のように、一度に少数の人に多数がわっと押しかける構図を防ぐことはできないかとか。

実は、そのような「社会」を制御する方法を考えるツールを蓄積したものが、社会学という学問だったりするわけで、僕が今回の騒動を通じて思ったのは、おそらく多くの人と正反対なのでしょうが、「だからこそ、社会学的な考え方が重要なんだよな」ということだったりするのです。

もっと考えを進めるために

最後に今回の問題について考える参考文献。

インターネットと“世論”形成―間メディア的言説の連鎖と抗争

インターネットと“世論”形成―間メディア的言説の連鎖と抗争

フラッシュモブズ ―儀礼と運動の交わるところ

フラッシュモブズ ―儀礼と運動の交わるところ

本文でさんざん「市民的公共性」の重要性を叫んで起きながらあれですが、これらの本は「市民的公共性とはまた違う公共性がインターネットにはあるのではないか」と述べた本です。僕は頭の固い人間なので、「いやそれでもやはり市民的公共性こそが重要なのだ」と考えてしまいますが。まあ、市民的公共性を批判するなら、せめてこれらの本ぐらいの議論はしなさいってことです。
公共性 (思考のフロンティア)

公共性 (思考のフロンティア)

「そもそも公共性ってなに?なんでそれが必要なの?」と思う人にはこの本がおすすめ。
インターネットは民主主義の敵か

インターネットは民主主義の敵か

閉じこもるインターネット――グーグル・パーソナライズ・民主主義

閉じこもるインターネット――グーグル・パーソナライズ・民主主義

「今のインターネットはいかに市民的な議論に向いていないか、それをなんとかするにはどうしたらいいか」を考えるならこちらがおすすめ。

*1:一応述べておくと、「市民的公共性」は規範概念です。

キズナアイの騒動に寄せて―アンビバレンツな態度をいかに保つか

なんかものすごく久しぶりに記事を書く気がします。あままこです。 今ネット上では、NHKのニュースサイトにキズナアイが登場し、その登場の仕方が問題あるのではないかとか、そうやって社会学者が「ポリコレ」を盾にいちゃもんをつけるのこそ問題だ、という感じで、論争が巻き起こっていますね。

で、まずこの論争に対する僕の意見はというと、まあ、荻上チキという評論家の人*1TBSラジオの番組で述べていた意見 www.tbsradio.jp と大体同じ感じで、「キズナアイの記事にはジェンダー的な問題があるから、それに対して議論をすることはいいことで、『騒ぐ方がおかしい』と一蹴するのはおかしい。」というものです。

さらに言えば、ジェンダー的な問題とは更に別に、「こういう解説記事で、聞き役にバカを演じることが強いられる」ということも問題だと思っています。これに関しては、twitterで意見を連投したのでそれを転載しておきます。

僕の、今回の論争の発端となった記事への意見は、だいたいこんな感じです。

論争の議題より、それに言及する人々の態度が気になる

もちろん、これはあくまで僕の意見であって、これに反対する人はまた別の意見を持っているでしょう。それ自体は至極健全なことだし、どんどん論争をして、意見を戦わせればいい。

ただ、今回の論争を見てて思ったのは、そういう「議論」を行うこと自体が、実は人々に嫌悪されていうるのではないかということです。

実際、今回の論争では、明らかに揶揄するために、相手の主張を曲解して、「マスメディアに女性が登場するときはヒジャブでもかぶらないと駄目ってことですかー」みたいなことを言ったり、最初に議論を提起した弁護士の太田啓子氏とか、社会学者の千田有紀氏とかの個人攻撃・人格攻撃に走ったりする人が、あまりに多かったです。まあ、ネットは広大ですから、そういう汚いことをする人が一部に居るのは仕方ないと思えますが、しかしそれが万単位でRT・ふぁぼされたりするのは、やはりおかしいように思えてなりません。

さらに言えば、そういう揶揄・誹謗中傷は、ごく普通の人によって行われてるんですよね。もしこれが自分と全く関係ないネトウヨ連中とかが行っていたんなら、そんなにショックではなかったですが、普通に同じアニメやゲームを楽しんでいて、「あ、この人と趣味合うんだな」と思っていてフォローしていた人や、実際にオフ会で会って趣味の話題を楽しくしたような人が、この話題になるととたんに豹変して、先程のような揶揄・個人攻撃をRT・ブクマしたり、自らそういう揶揄・個人攻撃をおこなったりする。そういう光景には、とてもショックを受けました。

ただ、ショックを受けてるだけではどうにもならないので、色々考えをめぐらしていると、そもそもこういうふうに「議論を提起する」、「異議申し立て」をすること自体が、ごく普通の一般の人にはとても不快で、自分たちの周りから撃退すべき侵襲者として認識されるのかもしれないなと、思うようになったのです。

「当たり前を疑う」ことの苦痛

僕は昔、社会学という学問を勉強し、大学院の修士課程まで行きました。将来は研究者を目指していたんですが、精神の不調とか色々ありまして、ドロップアウトした人間です。

で、社会学―というかこれは人文・社会科学全体で言えることだと思うんですが―という学問に入門して、まずはじめに叩き込まれることは、「当たり前を疑う」ということです。例えば学部1年生が受けるような社会学の入門講座では、まず「世間ではこういうことが常識になっているけど、それは実は違うんだよ」ということをとにかく教えまくります。少年犯罪や外国人犯罪が増加。凶悪化してるって言われてるけど、それは統計のトリックだというものや、専業主婦というのは保守すべき伝統でも何でもなくて近代に構築されたものだとか、ニートやパラサイトシングル・引きこもりは個人の甘えが原因ではなく社会構造の変化が原因だというものまで、とにかく、世間一般で言われている常識・通説が、本当は「当たり前」のものではなく、社会的に捏造されたものであり、そうではない事実・考えもあるということが徹底的に教え込まれるわけです。

もちろん、それはあくまで入門段階のことで、実際にどんどん勉強していくと、「当たり前のものじゃないんだけど、それを当たり前として扱うことによって今の社会は回ってるよね」というような話も出てくるわけですが、ただそれにしても基本は「当たり前のことは当たり前でない。常に、『それって本当なの?』と疑問に思うことが大事」というのは、あらゆる社会学者のマインドセットの基底にあるものなわけです。 (なぜ、そうなったかといえば、それは1960年代の異議申し立て運動があり……というような話をしようと思ったが、そんな社会学史の初歩は、社会学研究者ならとうに知っていることだろうし、そうでない人にとっては興味ないだろうから割愛)。

ただ、当時の僕も含め、多くの研究者が忘れがちなんですが、そうやって「当たり前を疑う」ことって、多くの人にとっては、とても苦痛を伴うものなわけです。

研究者はいいんですよ、そもそも、これだけ人文系研究が厳しいって言われてる中で、それでも研究の道に進もうなんて考えるような人は、最初っから「この社会、なんか違和感がある」と思っているから、敢えてそれを探求するようにその道を選んだような人ばっかりですから。そういう人にとっては、「当たり前を疑う」ことってむしろ楽しいことです。

でも、多くの人はそうではない、当たり前のことは、当たり前として受け取り、そしてその中で、日々の日常に楽しみを見つけ、生きているわけです。そんな中で、突然「それは当たり前ではない、常識を疑いなさい」と言われることは、苦痛以外の何物でもない。

僕がそれに気づいたのは、研究者への道をドロップアウトして、働き始めてからでした。毎日毎日、朝から夜遅くまでずっとパソコンに向かってコード書いて、で家に帰ったらご飯食べて寝る、そして合間に、短時間で済むような娯楽を楽しむ。そんな生活をずっと送っていると、もうできる限り余計なこと考えたくなくなるわけです。アニメとかゲームとか動画とか見るんだったら、いちいちそこに、隠された差別構造があるのではとか考えるより、ただぼーっと笑ってみていたい。可愛い女の子とか見たら余計なこと考えずただ可愛いと言っていたいと、そんなふうに思うようになるわけです。

もちろん、それが堕落だっていうことは分かっています。ていうか、僕がそうやって当たり前のことを当たり前として受け取って、それでなんの疑問も持たずに楽しく生きて行けているのは、結局僕が、多少心根がひねくれていたとしても、日本国籍を持ちエスニシティも、いわゆる「日本人」、有職者で貧困にあえいでもおらず、ジェンダーも、生物学的性;男性・性自認:男性・性的指向異性愛というマジョリティかつ強者の側であるからなわけです。そういう人たちが「当たり前」を社会に押し付けることによって、マイノリティを抑圧することによって利益を受け取っている。まあ、実際はもっと複雑だとしても、基本的な構図としてはそういうふうに、他者を踏みつけた上で「当たり前の日常の幸せ」を受け取っているわけです。

ただ、そういうふうにその幸せが他者を踏み台にし、抑圧した上で得られるものだったとしても、それが「幸せ」であることに変わりはありません。「当たり前のことを当たり前に受け取れる」ことが幸せである以上、それに対して「当たり前を疑え!」と言ってくる社会学者は、結局どう言い繕っても、幸せな日常を壊す、破壊者・侵襲者でしかなく、多くの人にとっては、そんな存在とは議論の価値すらない(議論に乗れば、その時点で「当たり前を当たり前として受け取る」幸せは崩れてしまうのですから)、ひたすら自分の周りから排除すべき対象となるわけです。

だから、千田有紀氏が現在ひどいバッシングを受けていることも、決しておかしなことではなく、むしろ社会の当然の反応なわけです。

(ただ、もしそうであるならば、今のネット上での千田由紀氏に対するバッシングは、社会学、というか人文社会科学全体へのバッシングとも言って良い訳で、別に千田氏を擁護しろとまでは言いませんが、一部の(特に計量系の)社会学者や人文社会学者が、そのバッシングの波に乗って千田氏を攻撃してネットの歓心を集めているのを見ると、「その刃が将来自分に向かってくるとなんで気づかないんだろうな」とは思いますけどね。ま、僕はドロップアウトした人間ですので、どーでもいいですが。)

アンビバレンツな態度をいかに保つか

では、一体どーすればいいのか。

社会の側が反省し、「今まで『これが当たり前だから』という理由で、色々な異議申し立てから目をそむけてたのは間違いでした。改めます」という風になるのが一番正しいです、が、先程述べたように、そんなの実際は実現不可能でしょう。

では、もはや社会学は社会に対する異議申し立て・提言から撤退し、象牙の塔にこもって内輪で議論をしてればいいのか。おそらく、今のネットの大多数が望んでるのはそれで、社会学者の多くも、本音を言えばそれでしょう。実際、社会学者の中には「一般向けの本なんかを書いたりメディアに露出している暇があったら学術雑誌に論文を出したり学会で発表しろ」という風潮があり、それは年々強くなっています(だから古市氏なんかもう、社会学業界の内輪ではパブリック・エネミー扱いだったり)。

ただ、例え社会学が社会に対する提言・異議申し立てから撤退したとしても、それで、現在の社会に対する異議申し立てがなくなるとは思えません。一旦「当たり前のことが当たり前でないこと」がばれた以上、例え社会学がやらなくても、より一層過激な形で、それを担う運動は出てきます。しかも、それはもはや「学問」ではありませんから、手段を選ばない運動となるでしょう。

そして訪れるのが、終わりなき闘争が行われる「公共圏」です。「棲み分けが行われるようになるから、やがて今のような対立は終焉する」と楽観視している人もいるみたいですが。だったらなんでキズナアイは棲み分けされた「Youtube」から出てきて、公共の代名詞のような「NHK」に出てきたのか?

結局、僕らは「自分の当たり前の世界を壊してくる他者」から逃げることはできない。なぜなら自分たちがそうだから。僕らみんな、被害者であると同時に、加害者なんです。

大事なのは、そこで居直らないこと、一方で、過度に深刻に受け止めないこと、また、訴える側も、そのようなアンビバレンツを許容することなのでは、ないでしょうか。

例えば、今、昔の映画やドラマ、バラエティを見ると、その当時は当たり前だった、差別的な描写に嫌な気分になることは、誰しも経験があるでしょう。

でも、だからといってそのような作品が今見たら全く見るべきないところがないつまらない作品かといえば、そうではないわけです。「当時の時代の限界はあってそこは嫌だけれど、一方でこの作品が面白いのもまた事実」というような評価が、昔の作品にはできるはずです。

だったらそれを今現在の時代に適用することも、可能なはずでしょう。今の時代の作品だから、昔の作品と比べて距離を保つのが難しいというのも理解できます。しかし、そもそもオタクの人々は、「この作品にだめな部分はあるし、それをパロディにしおたりするが、それでも自分はこの作品が好きだ」という作品の両義的な楽しみ方を心得ていた人々だったはずなんですね。いつしかそれが盲目的に作品を信仰・全肯定する人々になってしまいましたが、そうではない楽しみ方っていうのもあったはずなんです。

キズナアイを擁護して、今回の問題を提起した、太田啓子氏や千田有紀氏、少年ブレンダ氏を攻撃している人に問いたい。今回の発端となった記事、本当に「全肯定」しなきゃならないような、そこにキズナアイの魅力を全て詰めたような、そんあ記事ですか?僕はキズナアイちゃんの動画も見ましたが、どうしてもそうは思えないんです。むしろあの記事は、明らかにキズナアイちゃんの魅力を伝えるのに失敗していませんか?あれじゃあ、キズナアイちゃんじゃなくて、そこらの女性アイドル捕まえたって似たような記事ができあがっちゃうんじゃないですか?

そして、次に、今回の論争でヒートアップして、キズナアイ自身を攻撃してるようなネトフェミの人たちはこう言いたい。例えそれがどんなに差別的に見えたとしても、世の中にはそれを楽しみにし、それを人生の糧にしているような人がいる。そういう人たちをあなたたちはこの社会から排除したいんですか?だとしたら、排除されることになるのはむしろあなたたちですよと。

「問題はある。しかし一方で、人々を楽しませている」。そのアンビバレンツさを認め、攻撃ではなく、対話を始める。まずはそこから始めるべきなんじゃないでしょうか。でなければ、終わりなき殲滅戦が続くだけでしょう。

ユリイカ 2018年7月号 特集=バーチャルYouTuber

ユリイカ 2018年7月号 特集=バーチャルYouTuber

この言葉を、論争に参加している人たち、そして、キズナアイちゃん自身にも思い出してほしい*2と、そう、思います。

*1:もうid:chikiみたいに気安くIDコールできる感じではないのかしら

*2:https://twitter.com/Sadndeath/status/1049046295078268928参照

最近買って読んでいる本

それぞれ、後でブログに感想記事を載せるつもりがあったりなかったり。

ムーミン問題は良問か悪問か論争まとめ

ムーミン』がどこを舞台にした物語であるかという問題がセンター試験で出され

  • この問題の正答が本当に正答といえるのか
  • センター試験の問題として良問なのか悪問なのか

を巡って、論争が巻き起こっています。

問題について

this.kiji.is
f:id:amamako:20180115221317j:plain

この問題は良問である・問題ないとする立場

blog.goo.ne.jp

  • ムーミンのことをまったく知らなくても解ける問題である
  • 「実生活・実社会と勉強のつながり」に気付くきっかけになる

blogs.itmedia.co.jp

  • 勉強が社会で役に立つのか?という疑問を持つであろう高校生へのメッセージが含まれている

d.hatena.ne.jp

  • 問題文前後の文脈から見て答えは明白であり、問題視するのは馬鹿馬鹿しい

この問題は悪問である・問題あるとする立場

www.sfs.osaka-u.ac.jp

  • ムーミン』がフィンランドを舞台としているものとは断定できない
  • 小さなバイキングビッケ』がノルウェーを舞台としているとも断定できない
  • この設問は解答不能である
  • フィンランド文化の多言語性、とりわけフィンランドにおいてはスウェーデン語のような少数言語の存在を無視する危険性を孕む設問である
  • 日本アニメがつくりあげたステレオタイプな北欧イメージを根拠とする今回の設問は -- 現地語を学ばなくても北欧の実像に迫ることができるといったような安易な発想を植え付けてしまい -- 日本社会に対しては、現地語情報に基づかないことで、多言語・多文化社会のようなリアルな北欧の実像から乖離したイメージを再び広げてしまう危険性を孕んでいる

新聞記事・ネットニュース等

www.asahi.com www.asahi.com nlab.itmedia.co.jp www.sankei.com www.sankei.com this.kiji.is www.nikkei.com

感想

ざっと見たところ、高校教諭や非研究者の間では「良問」と評価する声が多く、逆に研究者の間では「悪問」と評価する声が多いみたい。多分その背景には「わからない問題には安易に答えを出さない」ことを美徳とする、大学の学問の価値観と、「わからない問題でもとにかく答えを出す」ことを美徳とする高校までの教育や、実学の価値観の対立があるのかなーと思ったり。
僕自身の感想としては、「わからない問題はわからないと認める」ことこそが美徳だと思うので、そもそも断定することができない問題で断定することが要求されるこの問題は「悪問」だと思う。
ただ、そうは言っても、そういう悪問に備える学生を受験教育は作り出さなきゃいけないのは事実なわけで、だから高校教諭たちは、それが学問的にはおかしいことを認めつつも、受験テクニックで簡単に解くことができるこの問題が「良問」であると主張してるのかなーと推測します。
でもやっぱり僕は、個人的な好みから言えば、この問題を見たときに、何の疑問も持たず反射的に正答を答えられる人より、ちょっと立ち止まって「うーん……」と考え込んでしまう、そういう人のほうが、受験で不利だとしても「知性」ある人なんじゃないかと思うし、そういう人間こそを高等教育は育てるべきなんじゃないかと思うんだけどね。
そういう「立ち止まる知性」こそが、フェイクやデマがまかり通る日本に今必要とされるんじゃないか、とも。

バーチャルYoutuberが保守速報をRTする日

なんか今インターネット上では、CGモデルを用いてYoutuberをする、バーチャルYoutuberとやらが人気を博しているそうです。
そしてそんな中で、あるYoutuberがまとめブログを好意的に紹介したとかで炎上していたそうです。 togetter.com cr.hatenablog.com で、それらの炎上については、ぶっちゃけそんなに興味もなかったのですが、ふと似非原氏がこの騒動に関連して、こんな発言をしているのがTwitterで目に入りました。

日本のインターネットの歴史からすれば、この予想はおそらく当たると思うんですよ。

VNIネット右翼

そもそも、バーチャルYoutuber自体、技術的な側面を無視して「萌えキャラクターの姿形を借りてインターネット上で何かの表現をする」という点に注目すれば、そんなに新しいものではないわけです。VNIバーチャルネットアイドル)が技術的に進歩したものに過ぎないとも言えるわけで。
そしてVNIの中には、ネット右翼っぽい主張、つまり嫌韓・嫌中・嫌朝日みたいな主張をするVNIも多かったわけです。例えばVNIの代表的なサイトである「ちゆ12歳」についてはこんな議論が起きたことがありましたし。 d.hatena.ne.jp d.hatena.ne.jp bund.jp ちゆ12歳は、今でいえばいわゆる「冷笑系」というカテゴリに入るのでしょうが、そうではなく、ベタにネット右翼ネット右翼的な主張をするVNIも数多くいました。多くのサイトはすでに閉鎖していますが、中には↓のように生き残っているVNIもあったりします。 www.amaochi.com (しかし1999年からずっと続いてるってすげーな……)
そんなわけで、VNIであったことなんだから、それがバーチャルYoutuberで起きたとしたって、何の不思議もないわけです。
(さらに言えば、普通のYoutuberだって、KAZUYAみたいにネット右翼がそのまんまYoutuberになったような人がいるわけなんですから、バーチャルになってそういう人が現れないと思う方がむしろ不自然なわけで)

あくまで「キャラクターの政治利用に反対」を貫くのか、対抗して左派系バーチャルYoutuberを立ち上げるのか

さて、ではそういうネット右翼バーチャルYoutuberが現れた時、どう対抗していくべきか。
僕の基本的な立場は、これまで書いた記事

amamako.hateblo.jp amamako.hateblo.jp で何回も述べてきましたが、右であれ左であれ、二次元のキャラクターに自分の政治的主張を仮託するなです。その点からいえば、あくまで「キャラクターの政治利用」そのものを批判するのが、正しいやり方でしょう。
でもなー、正直そうやって方法論の正しさにこだわり続けてきたから、左派はいつまでたってもネット上でヘゲモニーを奪取できないんじゃないかという感じもするんですよね。
むしろ、相手がそういう絡め手を取ってくるなら、こっちもそれを利用しない手はないわけで、いわゆる左派系バーチャルYoutuber、保守速報やnetgeekに対抗するリテラみたいな立場のバーチャルYoutuberを立ち上げちゃうというのだって、選択肢としてはないわけではないわけです。
……うーん、でもその先に待ってるのは、右と左の美少女キャラクターが、Youtubeの動画上でバトルしあう、地獄絵図だよなあ。いやまあ、そんな地獄絵図こそ、実は健全な民主主義の形なのかもしれないけど、ねぇ。

「戦時下」のおたく

「戦時下」のおたく

Amazon Echoに今NHKで放送している番組を教えてもらう (Alexa Skills Kit & AWS Lambda & NHK番組表API)

Amazon Echo Dotがやっと家に来ました。

Amazon Echo Dot (Newモデル)、ブラック

Amazon Echo Dot (Newモデル)、ブラック

ので、こいつでも何か自作のアプリを作ってみようと思い、前の記事 amamako.hateblo.jp で作ったものと同じような機能を持つアプリの、Amazon Alexa版を作ってみることにします。 結果がこちらです。


Amazon Echoに今NHKで放送している番組を教えてもらう

作り方

下記のページの「スキル開発を始める」をクリックし、Amazonのアカウント情報を入力して開発を始めます。 developer.amazon.com https://gyazo.com/56e3c2188f80c9e562078668d0c0311b
Alexa Skill Kitの「始める」をクリック。
https://gyazo.com/7bd9aeebc64557c08de2480b9618218a
「新しいスキルを開発」をクリック。 https://gyazo.com/a233219432163db35de4e0207a9f58eb 「カスタム対話モデル」を選択し、言語・スキル名・呼び出し名などを入力していき、画面下部の「次へ」をクリックします。
https://gyazo.com/fb95eb9021ea74fb1d3cc87a6566189b
そうするとこの画面になります。
ここで前回の記事でも行ったように、IntentやSlots(前回の記事で言うEntities)の登録を行っていきます。 Intentとは要するに「こういう文がきたらこういう機能を呼び出すよ」という文例の定義で、Slotsは「文中にこういう単語が入りうるよ」という単語集の定義です。詳しくは公式のドキュメント
developer.amazon.com
や解説記事
dev.classmethod.jp
などをご参照ください。
ただ、実はこの画面からは簡易的な定義しかできません。ちょっと複雑な定義、例えば同じ単語に2つ以上呼び名がある場合などのSlotsの定義はここからはできないので、画面の「スキルビルダーを起動する」からスキルビルダーを起動します。
https://gyazo.com/fd9407a6d7fd2dc9f0f6608e0ae255dc
そうするとこんな画面が出てきます。ここでCode Editorを選択し
https://gyazo.com/9562fc63138f4e13e1768b3e9da33e6e
以下のコードを入力。「Apply Changes」、「Save Model」、「Build Model」とクリックしていきます。

{
  "languageModel": {
    "types": [
      {
        "name": "LIST_OF_STATIONS",
        "values": [
          {
            "id": "sougou",
            "name": {
              "value": "NHK総合テレビ",
              "synonyms": [
                "総合テレビ",
                "NHK",
                "総合",
                "nhk 総合テレビ",
                "nhk"
              ]
            }
          },
          {
            "id": "etv",
            "name": {
              "value": "NHK教育テレビ",
              "synonyms": [
                "教育テレビ",
                "教育",
                "nhk 教育テレビ"
              ]
            }
          },
          {
            "id": "bs1",
            "name": {
              "value": "NHKBS1",
              "synonyms": [
                "BS1",
                "nhkbs1"
              ]
            }
          },
          {
            "id": "bspremium",
            "name": {
              "value": "NHKBSプレミアム",
              "synonyms": [
                "BSプレミアム",
                "nhk bsプレミアム",
                "bsプレミアム"
              ]
            }
          }
        ]
      }
    ],
    "intents": [
      {
        "name": "AMAZON.CancelIntent",
        "samples": []
      },
      {
        "name": "AMAZON.HelpIntent",
        "samples": []
      },
      {
        "name": "AMAZON.StopIntent",
        "samples": []
      },
      {
        "name": "GetTVProgram",
        "samples": [
          "{Station} で放送している番組を教えて",
          "{Station}"
        ],
        "slots": [
          {
            "name": "Station",
            "type": "LIST_OF_STATIONS"
          }
        ]
      }
    ],
    "invocationName": "ほたるの番組表"
  }
}

それぞれの定義の意味、特にidやsynonymsについては、下記のドキュメントを見てください。
developer.amazon.com
次に、画面の「Configuration」をクリックします。するとこんな画面が出てきます。
https://gyazo.com/60c2bf20383609acc07925b545780e1a
前回の記事ではFirebaseを用いてバックグラウンドの処理を実装したわけですが、今回はAmazonのサービスなのでAWS Lambdaを用います。
というわけでAWSのコンソールに入り、Lambdaを選択。
https://gyazo.com/c5457b6336fe8245f32f5d9f514bd6ad 「新しい関数を作成」を選択。 https://gyazo.com/2c3552f64222a01150052ee4cca87ce1
「設計図」を選択し、下の検索欄に「Alexa」と入力するとAlexaのテンプレートが出てくるので、「alexa-skills-kit-color-expert」を選択し、「設定」をクリックします。
https://gyazo.com/574c431f7e1b3ce6cc3dcbe12667c96f
すると以下のような画面が出てくるので、名前を入力し、ロール(アプリが他のAWSのリソースにアクセスする権限をまとめたもの)としてテンプレートから新しいロールを作成、ページ下部にある「関数を作成」をクリックします。 そうすると以下のような画面が出てきます。
https://gyazo.com/ab3d12f8d6a07630059376970f60dec2
コード編集欄でコードを編集していきます。今回のアプリではテンプレートをもとに以下のようなコードにしました。

'use strict';

const http = require('http');
const AREA = '';//取得したい番組表の地域ID
const API_KEY = '';//ここにNHK番組表のAPI_KEYを入れておきます。

/**
 * This sample demonstrates a simple skill built with the Amazon Alexa Skills Kit.
 * The Intent Schema, Custom Slots, and Sample Utterances for this skill, as well as
 * testing instructions are located at http://amzn.to/1LzFrj6
 *
 * For additional samples, visit the Alexa Skills Kit Getting Started guide at
 * http://amzn.to/1LGWsLG
 */


// --------------- Helpers that build all of the responses -----------------------

function buildSpeechletResponse(title, output, repromptText, shouldEndSession) {
    return {
        outputSpeech: {
            type: 'PlainText',
            text: output,
        },
        card: {
            type: 'Simple',
            title: title,
            content: output,
        },
        reprompt: {
            outputSpeech: {
                type: 'PlainText',
                text: repromptText,
            },
        },
        shouldEndSession,
    };
}

function buildResponse(sessionAttributes, speechletResponse) {
    return {
        version: '1.0',
        sessionAttributes,
        response: speechletResponse,
    };
}


// --------------- Functions that control the skill's behavior -----------------------

function getWelcomeResponse(callback) {
    // If we wanted to initialize the session to have some attributes we could add those here.
    const sessionAttributes = {};
    const cardTitle = 'こんにちわ';
    const speechOutput = 'こんにちわ、ほたるの番組表です。 ' +
        'いま放送している番組を知りたい、テレビ局を教えて。';
    // If the user either does not reply to the welcome message or says something that is not
    // understood, they will be prompted again with this text.
    const repromptText = 'いま放送している番組を知りたい、テレビ局を教えて。';
    const shouldEndSession = false;

    callback(sessionAttributes,
        buildSpeechletResponse(cardTitle, speechOutput, repromptText, shouldEndSession));
}

function handleSessionEndRequest(callback) {
    const cardTitle = 'Session Ended';
    const speechOutput = 'さようなら。';
    // Setting this to true ends the session and exits the skill.
    const shouldEndSession = true;

    callback({}, buildSpeechletResponse(cardTitle, speechOutput, null, shouldEndSession));
}

/**
 * Sets the color in the session and prepares the speech to reply to the user.
 */
function getTVProgram(intent, callback) {
    const cardTitle = "いま放送している番組";
    const stationNameSlot = intent.slots.Station;
    let repromptText = '';
    let sessionAttributes = {};
    let shouldEndSession = true;
    let speechOutput = '';
    const tvStation = {
        "sougou": "g1",
        "etv": "e1",
        "bs1": "s1",
        "bspremium": "s3"
    };
    console.log("called Station Name");
    console.log(stationNameSlot.value);
    let tvStationId = undefined;
    let tvStationName = undefined;
    if(stationNameSlot.resolutions 
        && stationNameSlot.resolutions.resolutionsPerAuthority[0].values
        && tvStation[stationNameSlot.resolutions.resolutionsPerAuthority[0].values[0].value.id] ){
        tvStationId = tvStation[stationNameSlot.resolutions.resolutionsPerAuthority[0].values[0].value.id];
        tvStationName = stationNameSlot.resolutions.resolutionsPerAuthority[0].values[0].value.name;
    }
    if (tvStationId) {
        shouldEndSession = true;
        //オプションを定義
        var url = 'http://api.nhk.or.jp/v2/pg/now/' + AREA + '/' + tvStationId + '.json?key=' + API_KEY;
        http.get(url, function(res) {
          var body = '';
          res.setEncoding('utf8');
          res.on('data', function(chunk) {
            body += chunk;
          });
          res.on('end', function() {
            var ret = JSON.parse(body);
            speechOutput = `いま ${tvStationName} で放送している番組は` + ret.nowonair_list[tvStationId].present.title + 'です'; // Send simple response to user\
            repromptText = speechOutput;
            callback(sessionAttributes,
                buildSpeechletResponse(cardTitle, speechOutput, repromptText, shouldEndSession));
          });
        }).on('error', function(e) {
          console.log(e.message);
        });
    } else {
        shouldEndSession = false;
        speechOutput = "すみません、よくわかりません。";
        repromptText = "すみません、よくわかりません。";
        callback(sessionAttributes,
            buildSpeechletResponse(cardTitle, speechOutput, repromptText, shouldEndSession));
    }

}


// --------------- Events -----------------------

/**
 * Called when the user launches the skill without specifying what they want.
 */
function onLaunch(launchRequest, callback) {
    console.log(`onLaunch requestId=${launchRequest.requestId}`);

    // Dispatch to your skill's launch.
    getWelcomeResponse(callback);
}

/**
 * Called when the user specifies an intent for this skill.
 */
function onIntent(intentRequest,callback) {
    console.log(`onIntent requestId=${intentRequest.requestId}`);

    const intent = intentRequest.intent;
    const intentName = intentRequest.intent.name;

    // Dispatch to your skill's intent handlers
    if (intentName === 'GetTVProgram') {
        getTVProgram(intent, callback);
    } else if (intentName === 'AMAZON.HelpIntent') {
        getWelcomeResponse(callback);
    } else if (intentName === 'AMAZON.StopIntent' || intentName === 'AMAZON.CancelIntent') {
        handleSessionEndRequest(callback);
    } else {
        throw new Error('Invalid intent');
    }
}


// --------------- Main handler -----------------------

// Route the incoming request based on type (LaunchRequest, IntentRequest,
// etc.) The JSON body of the request is provided in the event parameter.
exports.handler = (event, context, callback) => {
    try {


        if (event.request.type === 'LaunchRequest') {
            onLaunch(event.request,
                (sessionAttributes, speechletResponse) => {
                    callback(null, buildResponse(sessionAttributes, speechletResponse));
                });
        } else if (event.request.type === 'IntentRequest') {
            onIntent(event.request,
                (sessionAttributes, speechletResponse) => {
                    callback(null, buildResponse(sessionAttributes, speechletResponse));
                });
        } else if (event.request.type === 'SessionEndedRequest') {
            callback();
        }
    } catch (err) {
        callback(err);
    }
};

コードを入力後、関数を保存、ARNをコピーし、Configurationの画面に戻り入力、「次へ」を入力すると、自身のAmazon Echoでアプリを動かすことが可能になります。

感想

スマートスピーカーのアプリの作り方は、Google AssistantもAmazon Alexaも似たようなものみたいですね。

元始ブロガーは太陽であった

元始、ブロガーは実に太陽であった。真正の人であった。
今、ブロガーは月である。アフィリエイトに依って生き、PV数によって輝く、病人のやうな青白い顔の月である。

「読まれるテキストは読者へのおもてなしの構造を持っている」という記事を読んで

mizchi.hatenablog.com この記事、はてブでは主に文章作法として読まれたりして、そしてそういう面から論評する記事とかもある*1わけだけれど、著者が本当に言いたいことは、下記を読むと、むしろそういう文章技法が求められる、日本のウェブ空間への苛立ちのように思えてならないのです。

大学生だった当時、梅田望夫の本を読んではてなにやってきた僕は、ブログ論壇への憧れだけがあって、技術者にもなれず、時流のテーマに対して書くべきテーマを持たず、ただ実家の宗教に対する恨みだけを書き綴っていた。

なぜ僕がそんな読み方をするかといえば、それこそ、「はてなブログ」がまだ「はてなダイアリー」であり、「はてなブックマーク」との間である種幸福な蜜月関係か成立し、まさしく「ブログ論壇」というものが存在していた、そんな時代を知っているからです。
それは、もしかしたら過去というものへのありふれたノスタルジーに過ぎないのかもしれませんが、それでもその時代を知っている人間からすると、今のはてブはあまりにも劣化しすぎているように思えてならないんですよ。2009年ごろ、梅田望夫はてブを指して

はてな取締役であるという立場を離れて言う。はてぶのコメントには、バカなものが本当に多すぎる。

と言い放ち、多くの批判を集めましたが、それから8年経ち、はてブコメントに読むに値するコメントがいくつあるか。かつて、150文字にありったけの情熱を注ぎ、それにも飽き足らず二階三階と積み上げていき、idコールを投げつけるほどのエネルギーが今はてブにはあるか。というか、もはや「二階」とか「idコール」という言葉そのものが死語と化してないか。

相手のいなくなったプロレスラーは、ただの道化師である

なんでこんなことになってしまったか。答えは簡単です。ブログ同士の論争というものがなくなってしまったからですよ。
それこそ、かつて「ブログ論壇」というものが存在していた頃は、論争の主役というのは、あくまでブログ・ブロガーだったわけです。誰かが記事を書く、それに対して別の誰かが反論したいときは、自分のブログで反論記事を書き、相手の記事にトラックバックを投げつける、それこそが喧嘩を売りつける王道のやり方だったわけです。そこにはブロガーとブロガーが対等の立場で殴り合うリングが存在し、人はそれを「論壇プロレス」と呼んだわけです。そしてその論壇プロレスにおいてははてブtwitterなんてものはあくまでリングの外の野次に過ぎないものだったんであって、主役はあくまでブロガー同士の対決だったんです。
そこには綺羅星の如く様々なベビーフェイスやヒールが存在しました。しかし一度論争が勃発すれば、相手の記事一パラグラフ一パラグラフごとに揚げ足を取り、自分の記事で相手を完膚なきまでに叩き潰そうとする、そんなバトルが繰り広げられていたわけです。それは、部外者にとっては恐怖すら与えるような壮絶なものだったわけですが、しかし少なくともそこでは、相手を対等な立場と認めるからこそ、全力で戦うことができる、そんな奇妙な信頼関係もあったわけです。
ところが、はてなダイアリーはてなブログに代わり、トラックバック機能が削除され、人々がtwitterに移っていく中で、いつしかそんなネットバトルというものは時代遅れのものになってしまったわけです。そんな中、旧来のスタイルを貫くブロガーたちは、戦う相手もなく、ただ一人でリングに立ちすくみ、はてブtwitterから投げかけられる野次を受け続ける、そんな道化師になってしまったのです。道化師ですから、求められるのは真面目な文章を書くことではなく、タイトルと章題ですべてを説明し、「自分は○○の味方であり✗✗の敵です」ということで、○○から賞賛を得て✗✗からブーイングを受ける、そんな単純な記事を書くことなのです。

「論壇」が存在し得ない時代

そして、どうやらそのような変化は、ネットに限らず、日本の言論空間全体を覆っているようです。
ブログ論壇」という言葉は、あくまで既存の「論壇」というものが存在する日本の言論空間を前提としていました。「論壇」とは、様々な立場の人間が、異なる立場の人間を説得し合う、そういった議論の場でした。
しかし皆さんご存知のように、その論壇が長年存在していた論壇誌というものも、どんどん潰れていき、残った論壇誌も、自分の立場を旗幟鮮明にし、その立場に合致する論客を囲い込む、そんな場になれ果ててしまったわけです。それは論壇誌に限ったことではありません、もはやネット・リアル問わず、論争相手の首根っこ捕まえて、本気で相手を論破しようとする議論は殆ど無いでしょう。あるのは自分が属する勢力を慰撫し、まだ無知な人々をなんとか自陣営に引き込もうとするプロパガンダ合戦です。もちろん、誰もが口では「こんな状況はよくない。論壇を再興しなければ」と言うわけですが、しかし実際やることはといえば、「サロン」や「ラウンジ」、「有料メルマガ」とか言って、自分たちの賛同者を囲い込むことばっかり。本気で論壇なるものを再興したいなら、まず自分が一番隊として敵陣に乗り込んでいくべきでしょうに。
もはや誰も、自分と異なる考えの人を説得できるとは信じていないのです。なぜなら、自分がまさに、そういう「敵側の言葉」で説得されると思っていないから。

誰がブログのリングを管理するか

そういう時代全体の風潮がある中で、ただそれに乗っかって儲けようとするなら、今のはてブのシステムは実に理にかなっているわけです。安全圏から野次を飛ばし、自分の属する勢力を慰撫する、そんな言葉を発する場を与え、コメンテーターに満足感を与え、自分たちはPVを得る。
でも、そんなことを繰り返していればリング上のブロガーは、誠実な人間ほど疲弊していくわけで、残るのは炎上を糧に生きていくような炎上芸人か、誰も傷つけない当たり障りのない言葉しか書かない善良な市民ブロガーだけになってしまうでしょう。そんなつまらないネット、本当にみんな望んでるんですかね?
ブロガーの多様性をもし残そうとするなら、そこではベビーフェイスだろうがヒールだろうが、野次に向かってではなく、相互に信頼できる相手とバトルができる環境を整えなきゃならないわけです。更に言うなら、野次もある程度コントロールする責任もあるはずなんです。しかし今のはてなは、そのどちらもあまりやっているようには見えない。むしろその逆に、トラックバックを廃止する一方で代替策を示さないで、ブログ同士の交流があまり起きないアーキテクチャにしているし、コメントにおいては、スターが多いブコメが単純に上位に来るようにして、炎上を加速させてしまっている。せめてAmazonのカスタマーレビューみたいに、批判側と擁護側が同程度に表示されるようにするとか、ある程度ネガティブ評価を集めたコメンテーターは、ブコメ上位に表示しないとかできないものかと、ぼくは思うわけです。
そもそもはてブコメントというのは150文字しか書けない以上、本質的に的確な批判とかはできないものなんですから、そんなに大事に扱ってやる必要はないでしょう。批判がしたいならきちんと自分のブログを持って、そこでやればいいはずなんです。その度胸がないなら、本来批判なんてものはしてはいけない。ただ、野次が全くないプロレスというのもそれはそれでつまらないから、バトルの盛り上げ要員として存在を許されている。そこのところを、はてなブックマークの管理側はきちんと理解しないといけないんじゃ、ないでしょうか。

今回の選挙に行く前に読んでほしい文、それは憲法前文

最初に言っておくと、僕は今回の選挙では明確に立憲民主党共産党社民党支持です。ただ、今回の記事ではそのことはとやかく言いません。それぞれの党の政策について知りたい人は公式ホームページとかを見てもらえばいいんでないかと。
cdp-japan.jp
www.jcp.or.jp
社民党OfficialWeb┃政策┃衆議院選挙2017
そうではなく、選挙に行く前に、そもそもどういった基準・価値観から候補者・政党を選べばいいか、その基準を悩んでいる人に、こういう文から考えてみてもいいんじゃないかと、提示してみたいのです。
その文はこちらです。
憲法条文・重要文書 | 日本国憲法の誕生

 日本国民は、正当に選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、諸国民との協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、政府の行為によつて再び戦争の惨禍が起ることのないやうにすることを決意し、ここに主権が国民に存することを宣言し、この憲法を確定する。そもそも国政は、国民の厳粛な信託によるものであつて、その権威は国民に由来し、その権力は国民の代表者がこれを行使し、その福利は国民がこれを享受する。これは人類普遍の原理であり、この憲法は、かかる原理に基くものである。われらは、これに反する一切の憲法、法令及び詔勅を排除する。

 日本国民は、恒久の平和を念願し、人間相互の関係を支配する崇高な理想を深く自覚するのであつて、平和を愛する諸国民の公正と信義に信頼して、われらの安全と生存を保持しようと決意した。われらは、平和を維持し、専制と隷従、圧迫と偏狭を地上から永遠に除去しようと努めてゐる国際社会において、名誉ある地位を占めたいと思ふ。われらは、全世界の国民が、ひとしく恐怖と欠乏から免かれ、平和のうちに生存する権利を有することを確認する。

 われらは、いづれの国家も、自国のことのみに専念して他国を無視してはならないのであつて、政治道徳の法則は、普遍的なものであり、この法則に従ふことは、自国の主権を維持し、他国と対等関係に立たうとする各国の責務であると信ずる。

 日本国民は、国家の名誉にかけ、全力をあげてこの崇高な理想と目的を達成することを誓ふ。

この文章をどのように基準にするか、それはあなたの自由です。
「こんな理想論ばっか言っている憲法は良くないから、憲法改正を主張している候補者・政党に投票しよう」でも構いません。
ただ、今回の選挙では、どうも「そもそも何を基準にして候補者・政党を選べばいいか」ということがよくわからなくなっているように感じます。結果として、「周りが○○と言っているから○○」とかいうように、漠然とした雰囲気で決めたり、そもそも決めることを放棄して棄権してしまう人も多いのではないでしょうか。
そういう人は、まずこの文章に立ち返って考えてみてはどうでしょうか。良くも悪くも、日本国の政治というのがどうあるべきか、それを最も根幹において示してきたのが、この文なのですから。