i remember nothing

文章の練習も兼ねています

バトラーの「自分自身を説明すること」を読み始めた

今退職->次の業務までの空き期間なのでいろんな本を読んでいます。

自分自身を説明すること―倫理的暴力の批判 (暴力論叢書 3)

自分自身を説明すること―倫理的暴力の批判 (暴力論叢書 3)

この本でバトラーが主張していること

この本でバトラーは倫理を扱い、ことに「倫理的暴力の批判」を主たる主張にしている。

バトラーにおける倫理は政治の問題と密接に結びついている。

さて、バトラーが具体的にいかなる「倫理」を問題としていたのか。 バトラーはミシェル・フーコーとともに、主体は権力、あるいは規範への呼びかけとその内面化によって創始されると考えていた。多くのポスト構造主義者たちが主体は倫理的熟慮を導く能力、人間の行為能力を基礎づける能力を掘り崩すとみなされていたのとは対照的に、である。

つまり、権力による呼びかけによる主体化(=服従化)以前に主体は存在せず、またこれによらない行為能力は存在しないと述べている。 行為能力(agency)とはつまり、主体の服従化の結果なのである。 バトラーは「ジェンダー・トラブル」においても、 ジェンダー化された主体は、[同性愛の禁止]などの社会的規範の「呼びかけ」によって生産されると述べていた。

このように主体は自らにとって外的な社会的権力・規範によって形成されるという命題を仮定すると、責任の可能性、自分を説明する可能性をいかに基礎づけるか、ということが問題となってくる。

この本ではこの責任の可能性、自分を説明する可能性をいかに基礎づけるか、ということが提起されている。

最近個人的に社会的倫理や規範、権力に興味を持っていて、その上でこのテーマ”責任の可能性、自分を説明する可能性をいかに基礎づけるか”は大変興味深い。 あとは英米倫理の教科書を読んだり、モラル・トライブス

モラル・トライブズ――共存の道徳哲学へ(上)

モラル・トライブズ――共存の道徳哲学へ(上)

を読んでいる。

とはいえこのバトラーの本もまだ中盤までしか読んでいないので、またメモをまとめ次第記事を更新する。

なかなか一人で読むと理解しているかわかりづらいので、一緒にゼミとかしてくれる人いませんかね.....

リクルートを9/30付で退職します

いろいろなことを天秤にかけて考えた結果、会社を辞めることにした。

新卒で入社してから半年しか経ってないのに辞めてしまうのはもったいないと思われるかもしれないが、もしこのまま会社に居続けてもいつか破滅してただろうし、辞めた結果破滅することになっても大して後悔はしないだろう。

会社にいる間は、主にサーバーとウェブの開発をしていて、ScalaとかTypeScriptとか書いてた。Androidもちょっとやった。 自分よりめちゃくちゃ技術力ある人たちと仕事ができたのはとてもいい経験だったし、自分にとって働きやすい環境だったと思う。 威圧的な言動を繰り返す同期と、それが看過されてしまうような状態を除けば。

まあ、そもそも従順さを試されるような組織で自分のような従順さの欠片もない人間が残れるわけもなく、新卒のうちにサクッと辞めちゃうというような、貴重な経験を出来たので逆によかった。

当分の間は受託業務をやって暮らしていくつもりで、すでに案件もある。 学費を稼いで別分野の大学院に行くのが目標なので、それまでは勉強しつつなんとか生活をやっていきたい。

Ever tried. Ever failed. No matter. Try again. Fail again. Fail better. とサミュエルベケットも言っているし、次はもっとうまく失敗したい。

余談になるが、会社を辞めると決めてからめちゃくちゃ体調が良くなって前より本が読めるようになったし物事がこなせるようになった。会社を辞めると健康にいい。

↓退職祝いお待ちしております https://www.amazon.co.jp/registry/wishlist/3P5FKSWNBP8BN/

追記

ベケットのセリフの出典元 ↓

いざ最悪の方へ (Le livre de luciole (34))

いざ最悪の方へ (Le livre de luciole (34))

次の町まで、きみはどんな歌をうたうの?(柴崎友香)

読んだ。

https://www.amazon.co.jp/dp/4309407862/ref=cm_sw_r_cp_api_pcIOxbVRHGP8H

保坂和志の「小説の自由」で紹介されていた同作者の「きょうのできごと」を購入するついでに購入した。 表題作と、併録の「エブリバディ・ラブズ・サンシャイン」が収録されている。 なかなか面白かったので記録しておく。

何を表現しているか

この小説の中では特段変わったことやドラマチックな展開もないし、主張的な描写もない。一人称視点でただただ日常が進んでいく。主人公の視線の移動、こう思ったからこうした、主体としての感情の描写、それだけがただただリアルに描かれている。 だからこそ「主体としての感覚」を受け取ることができる。

たしかに記憶にはあるのだけれど、普段は体感しようとしてもできない感覚(たとえば子どもの頃、祖母の家で一人寝る前の感覚のような)をふと日常の中で感じることがあるように、一人称視点での肌や視線、空気が非常にうまく、いやみったらしさも無く描写されている。そこが面白い。

例えば、ああ犬がいるな、犬が横断歩道をカツカツ歩いているな、みたいな「普段意識もしないのだけれど無意識的に認知していること」を自然に描写している。

ライブのシーンが良い

作品中にスピリチュアライズドのライブのシーンが出てくるのだが、そこもいい。ライブハウス独特の感覚を自然な文体を持って表現している。湯気がスポットライトに照らされている感じとか、轟音の中で眠たくなってしまう感覚とか、とにかくリアルに表現されていて面白い。

作者は洋楽やライブハウスが好きなのだろうか、「エブリバディ・ラブズ・サンシャイン」には複数回ライブハウスのシーンが出てくる。

スピリチュアライズドを知らない人は、聴いてみるとより楽しめるかもしれない。

スピリチュアライズド 宇宙遊泳 https://www.amazon.co.jp/dp/B0006SLD3O/ref=cm_sw_r_cp_api_TgIOxb3W2W573

GRAPEVINEの退屈の花と坂口安吾

はじめに

GRAPEVINEのファーストアルバム、「退屈の花」がある。

邦楽のアルバムで五本の指に入るくらいにはお気に入りである。

高校時代、鳥取ワンマン運転の汽車の中で、部活の遠征帰りのバスの中で、大学に入っても、西池袋を意味もなくふらつきながら、修士論文を書きながら、好きでもない人に告白された飲み会のあとの帰り道で、何度も何度も聞いた。

そんなもう何年も愛しているこのアルバムを、少し紹介してみようと思う。 もちろんサウンドも素晴らしいのだが、今回は歌詞に着目する。

坂口安吾の「恋愛論」

「退屈の花」は全体を通して恋愛をテーマにしているのだが、ここで坂口安吾の「恋愛論」の結びの文を見てみよう。

ああ、孤独。それをいいたもうなかれ。孤独は、人のふるさとだ。恋愛は、人生の花であります。いかに退屈であろうとも、この外に花はない。

「退屈の花」というアルバムタイトルはここから引き出されたものなのだろう。

GRAPEVINEのボーカル、田中和将氏はとあるインタビューで坂口安吾好きを公言していたし、ここには意図があることはほぼ確実だと思う。

アルバムの内容と「恋愛論」の関連性

「恋愛論」は短いし青空文庫で読めるので、それを読んだ方が早いと思う。

「退屈の花」の歌詞には、「日常としての恋愛、または性」が深く埋め込まれている。精液臭さすら感じるほどのリアリティにより、却って恋愛がまぼろしであるということを強調しているように感じる。 ただ、まぼろしであるということを「無意味」として語っているわけではない。

ほんとうのことというものは、ほんとうすぎるから、私はきらいだ。死ねば白骨になるという。死んでしまえばそれまでだという。こういうあたりまえすぎることは、無意味であるにすぎないものだ。

坂口安吾「恋愛論」

これが現実なんだ!とこちら側に押し付けて、脱力させようとしているわけではない。むしろ現実に、その瞬間に確かに存在する幸福を幸福として受け止め、不幸を不幸として受け止める、ある意味で非常に誠実なリアリティを持っている。


「1&MORE」で一人称となっている女はどう見ても愚かなのである。相手にばかり求める独りよがりなくせに、裏切られそうになると恋愛の幻想にすがるようなやつである。 すくなくとも歌詞の中の「私」でない、外側の我々にはそう見える。

でも、我々がそうでないと言い切れるのだろうか?独りよがりでなく、恥ずかしくない恋愛をしたことがあるか? 「1&MORE」の女を見ているのとちょうど同じように、内側の愚かな自己を見ることがあるのではないか?

我々の恋愛など、どこにでも転がっている、くだらない幻想に過ぎないかもしれない。

それに気がついてしまうということがある意味で大人になってしまうということなのだろう。

「鳥」が羽根を失っても元には戻らないし、みっともない過去に対してどうすることだってできない。

「永遠の隙間」のように、汗も涙もすぐに乾くようになるのかもしれない。そこでは、色褪せて干からびた退屈な日常に、ただ退屈な性がある。

でも、恋愛というものは、大人になって、バカだと気がついてしまっても、幻だと気がついてしまっても、やめられる性質のものではないと思う。 幻であっても、同時に現実でもあるからである。


恋愛に限った話ではないが、くだらないことを唾棄し、くだらなくないことを見つけることに「意味」はあるのか?むしろ意味がないことが尊く、救いなのではないか?

「君を待つ間」のように、恋愛という柔らかな光に騙されながら、会いたい人を待ち焦がれながら、生きていってもよいのではないか?

所詮人生がバカげたものなのだから、恋愛がバカげていても、恋愛のひけめになるところもない。バカは死ななきゃ治らない、というが、われわれの愚かな一生において、バカは最も尊いものであることも、また、銘記しなければならない。

坂口安吾「恋愛論」

まとめ

人生はバカげている。死んだら全部おしまいだし、「意味」や「価値」なんてつまるところないだろう。それでも、我々はそのバカさを愛していこうではないか。

一見暗くて斜に構えた世界観を持っているバンドとして見られがちなGRAPEVINEだが、実は(少なくとも初期においては)圧倒的なリアリティにより逆説的に救済を歌い熱狂している、そんなバンドなのではないか。

「退屈の花」は一番それを示唆しているアルバムのように思う。

参考文献

坂口安吾「恋愛論」 http://www.aozora.gr.jp/cards/001095/files/42851_34347.html

GRAPEVINE「退屈の花」 https://www.amazon.co.jp/dp/B00005FQD3/

Generic Programmingことはじめ

はじめに

この記事はHaskellなどの関数型言語におけるGeneric Programming が何なのかを知りたい人向けに書かれています。 ただ、この記事に出てくるコードは簡易的に書いてある擬似的な関数型言語なので、現状そのままでは実行できません。概念が理解できればと思います。

Generic Programmingは何が嬉しいのか

  • 型を任意に構成できる
  • 任意に構成した型を一般的に扱える関数が作れる

以下、Regular という実装方法を用いて generic に型を構成してみます。

1.Type Descriptorを用いていろんな型を構成しよう

今回のgeneric programmingでは、 型の構成法をバッカスナウア記法のような形で表記します。 例えば単純型付きラムダ計算の場合は

t = base | t -> t

のように表されます。 このような定義では、「または」を表す縦棒|で選択肢が区切られていて、 各選択肢の中は列挙されている要素で構成されています。

  • base : 基底 (ex. Unit)
  • t -> t : 2つの型から構成された矢印型

これを generic に表現するために、データ型として、 type descriptor を構成します。

これを擬似Haskellで表現すると

data Desc =
      Base
    | Desc :*: Desc
    | Desc :+: Desc
    | Rec

このデータ型のコンストラクタはそれぞれ

  • Base : 基底 (ex. Unit)
  • Desc :*: Desc : 直積(かつ)
  • Desc :+: Desc : 直和(または)
  • Rec : ここで再帰がおこることを示す

となる型を定義しています。

これを用いて、単純型付きラムダ計算

t = base | t -> t

を定義すると

stDesc :: Desc
stDesc = Base :+: Rec :*: Rec

のようになります。

これは

  • 最初の Base : 基底型
  • 次の Rec :*: Rec : t -> t
    • 関数型の両辺は任意の型が来て良いため Rec で明示

という意味になります。

これで型の定義を与えることが出来るようになりました。

2.具体的な型を表現しよう

定義が与えられるようになったので、次は具体的な型を表現してみます。 まず Descのプログラム上の表現(意味)を以下の関数で表現します。

descSemantic :: Desc -> Set -> Set
descSemantic Base x = T {-全称型-}
descSemantic (d1 :*: d2) x = (descSemantic d1 x) × (descSemantic d2 x) {-集合における直積-}
descSemantic (d1 :+: d2) x = (descSemantic d1 x) U (descSemantic d2 x) {-集合における直和-}
descSemantic Rec x = x

descSemantic は「再帰部分が x であるような Desc 型の値」を表しています。 この再帰部分 X に自分自身を入れる(再帰を閉じる)と、具体的に Desc 型の値を作ることが出来るようになるということです。

再帰を閉じるには、以下のFixという不動点を表すデータ型を使います。

data Fix (d : Desc) =
     F : descSemantic d (Fix d) -> Fix d
   | M : (x : Fin) -> Fix d

ここで、Fin は finite set(有限集合)の型です。

  • F は具体的な値を作り出す構成子
  • F の引数に再帰部分に自分自身である Fix D m を入れることで再帰を閉じている
  • M はメタ変数を表現する構成子

Fで明示的に再帰を閉じることで、任意に大きなデータを作ることが出来るのがポイントです。

すると、stDesc 型(単純型付きλ計算の型を表す型)を以下のように書くことができます。

stType :: Set
stType = Fix stDesc

すると、例えばUnit型は以下のように表現できます。

tbase : stType
tbase = F (tt._1)

また、関数型を作る関数を定義すると、さらに複雑な型を表現できます。

arrow : stType → stType → stType
arrow t1 t2 = F ((t1 , t2)._2)
ttt :: stType
ttt = arrow tbase (arrow tbase tbase)

ここで、ttt は base -> base -> base を表しています。

所感

疲れました。。。

ディスクリプタに対して関数を構成しておけば任意の型を受け取ることができるのはロマンがありますね。

参考文献

A Lightweight Approach to Datatype-Generic Rewriting http://www.cs.uu.nl/research/techreps/repo/CS-2008/2008-020.pdf

いまさらながら、ES2015に入門した

なぜ今更?

私は高校生の時からCSS恐怖症にかかっていて、フロントエンドを避けるエンジニアリングスタイルをとっていたのだが 最近趣味でhubot向けの npm のモジュール書いたり、 Webサイトを構築していて、このあたりの技術のキャッチアップをしないとまずいなと思ったのと 最近のJavaScriptはずいぶん書きやすくなっているという話を聞いて(私の中でのJSの印象は2010年で止まっている。) 少し興味を持った。

ES2015、の前にECMAScriptとは

Ecma Internationalという団体が発行しているJavaScriptの標準化規格にのっとった仕様のことらしい。その第六版としての言語がES2015と呼ばれている。

ES2015でできること

全部は書ききれないけど、とりあえずつまみ食いしてみた

let, const

これまでのJSだとvarと無名関数によりスコープを作成していた。 ES2015ではletconstなどを用いて{}で明示的にスコープを指定することができる。

let hoge = 'a';
{
    let hoge = 'fuck you'
    console.log(hoge); // => fuck you
}

console.log(hoge); // => a

const は値の再代入ができない定数の宣言である。 やろうとすると実行時エラーが出る

クラス構文

オブジェクト指向っぽくクラスっぽいものを書ける。 extendsもできる

こういうのを生JSで書くとprototypeとか使いまくるし自分は読めない

class Human {
    constructor(age, sex){
        this.age = age;
        this.sex = sex;
        this.brains = ['kyomu'];
    }
    
    death(obj){
        obj = 3.14;
        alert("Death is inevitable");
    }

}

class Chisei {
  constructor(stra){
    this.stra = stra;
  }
}


class SugoiHuman extends Human {
  constructor(age, sex) {
    super(age, sex);
    this.brains = [];
  }
  
  death(obj) {
    obj+=2;
    super.death(obj);
  }
  static intelligible() {
    return new Chisei("tokage");
  }
}

Arrow functions

=> を用いて矢印型の表現をすることができる。

var fuga = [2,4,5,6]

var hoge = fuga.map(x => x + 1)

let mul = (x, y) => {
 x * y
}

fuga.map.(suc _)って書きたくなる

関数のdefault引数の設定

let add = (x = 0, y = 0) => x + y

Generator

Iterator を返すことで反復する関数を生み出すことができるなにか

function*yield をつかう

Iteratornextメソッドとthrowメソッドを持っているfor 文の抽象化みたいなものでそれを具体化できるのがジェネレータって感じなのかな

var fib = {
  [Symbol.iterator]: function*() {
    var pre = 0, cur = 1;
    for (;;) {
      var temp = pre;
      pre = cur;
      cur += temp;
      yield cur;
    }
  }
}

for (var n of fib) {
  if (n > 1000)
    break;
  console.log(n);
}

あんまよくわかっていない

import, export などの module

  • hole.js
export function f(x, y){
    return x + y;
} 
  • ex.js
import * as hole from 'hole';
console.log(hole.f("ass","hole")) // => asshole

export default をつかうと

  • anotherhole.js
export * from 'hole';
export default function (x){
    return x + " => {i}";
}
  • sex.js
import darkcore from 'anotherhole'

console.log(darkcore("つ")) // "つ => {i}"

template 文字列

const names = ['kdxu', 'darkness']

console.log(`Hello ${names[0]}, fuck ${names[1]}?`) // Hello kdxu, fuck darkness?

所感

babel を使って少し触った感じだと、that = this; みたいなわけわからんことをしなくて済みそう?便利なのかな、たぶん

あとは arrow function を使って書けるのが個人的にはとてもいいって感じ

ES2016もキャッチアップしていきたい

参考文献

実例とともに学ぶECMAScript 2015 〜Generator〜 – NET BIZ DIV. TECH BLOG

Learn ES2015 · Babel