pre-communication

模擬会話

精神と思考の関係 2

1年くらい前に書いたこの記事を見るとかなり絶望していたんだなと思う。

somai.hatenablog.com

今も薬の量は変わっていないが、もう少し建設的に考えれている。

この記事で書いた精神と思考の関係についての考えは、しばらく経ってより正確で悲惨でない考えに置き換わった。

前書いたところによると、思考によって未来の認識は良いと悪いを振り子のように行き来するということだった。 しかし今はそう思っていない。未来の認識に良いも悪いもないのだ。

どういうことか。 それは未来は1次元のスカラー値ではなく、D次元のベクトルだということだ。 人間誰しも色々な目標や夢を持って生きている。 その数を100としよう。

現実的に考えて、100個の夢がいきなり陰るということはありえない。 思考した結果いきなり未来がそう見えてくるというのは、単純に落ち込んだ結果全ての物事が悪く見えてしまっているだけの話だ。 悪いと思っても、せいぜい1個か2個ぐらいが悪く見えるというだけで、他の夢については状況は変わらない。

と考えると、今の未来の認識は常に100個の数字で構成されるということだ。 人間の頭が常に100個の数字をトラッキングして、「今は前より悪くなった」などと論理的に考えることができるだろうか? そもそも100次元のベクトル空間での比較演算子はどのように定義されるのだろうか? そう考えると、未来について良いとか悪いとか言えるのは、単に未来のどこかの部分に執着しているからだと言える。

では、前の僕はなぜ思考によって良いと悪いが揺れ動くと考えたのだろう。 それは、実際には僕を悩ませていたのは「未来予想」ではなく「自分の価値」だったからだ。 そして僕は自分の価値に自信がなく、自分の価値は自分が達成した業績で決まると考えていた。

この前提があると、たしかに注目する値は自分の価値という単一のスカラー値になり、 自分が未来何かが達成できないとなるとその値が下がる。

また、正常な人たちがなぜ常に安定した精神を持っているかも分かる。 それは彼らが自分の価値に疑いを持っていないからだ。 心理学などで盛んに言われている話だ。 幼少期に親からの無条件の愛を十分に受け取った子供は、大人になってからも自分の価値を疑うことがない。 それに対して僕は親からそのような愛をあまり受け取れていない。 ここに正常な人と僕との明確な差があり、精神の安定性の違いに結びついていたのだ。

従って、僕がうつ病から寛解するには、自信を持つ必要がある。 どうやったらそうできるかというのは学術的にも研究されているみたいで、今は自尊心に関する本を読んだりしている。 調べてみたら、最近は自尊心の他にセルフコンパッションというものも提唱されているみたいだ。 最近は何がなんでもうつ病から寛解したいと考えているので、ケチらずにこれらを全部生活に取り入れるつもりだ。

しばらくして良い報告ができるようになっていたい。

クラウドサービス (IaaS) とOSSの関係

あらゆるミドルウェアクラウド事業者から提供されることでミドルウェアソースコードクラウド事業者しか見なくてよくなり、OSSの文化は衰退していくのでは?となんとなく考えたのだが、調べてみるとそう簡単な話でもないみたいだ。

  • まずはその意見に近い2010年の記事

The intersection of open source and cloud computing - CNET

インフラをクラウド事業者が完全に面倒を見てくれることにより、インフラのソースコードに貢献したりするのはクラウド事業者だけでよくなり、すると最終的にはクラウド事業者は OSS を fork したり放置したりするようになるのでは?という未来予測。

  • なぜクラウド事業者も OSS にこだわるのかを書いた 2012年の記事

Cloud versus open source - Cloud computing news

世の中の開発者はベンダーロックインを避けたいだろうから、特定のクラウドサービスに乗っかるとしてもその仕様が他のサービスとそんなに食い違わないことを期待するだろう。 仕様は当然使いやすいことが期待され、ソフトウェアの仕様を洗練させる良い方法はそれを OSS にして広く使ってもらうことだという趣旨。

  • 主要クラウド事業者の OSS へのアプローチを書いた2017年の記事

How Google Turned Open Source Into A Key Differentiator For Its Cloud Platform

そもそもクラウド事業はオープンソースである Linux とか Xen とか Docker とかのヘビーユーザーである。 特に AWSオープンソースで広く使われているソフトウェアの管理を自社でやってお金を取るというビジネスをほとんどの OSS で結構やっている。 Microsoft, AWS と違って Google は積極的に OSS プロジェクトを作っている。

追記するかも。

リズと青い鳥

大好きな Homecomings が主題歌をやるということで「リズと青い鳥」を見てきた。

liz-bluebird.com

僕は感情を表に出すのが苦手だ。 表現のしかたが分からないという面もあるし、表に出すのを恥ずかしいと思っている面もあるし、表に出しても誰も気に留めてくれないのではないかという恐怖もある。

そのように感情を表に出さないように生きていると本当にびっくりするくらい誰にも気づかれないようで、「人の感情は話せばわかる」などと豪語してはばからない人も明らかに僕の感情に気付いていない行動をするし、感情を読むことも仕事のうちというような職業の人からもきれいに見落とされる、ということがあって、まぁそりゃ自分で表に出さないようにしているんだから誰にも分からないのは当たり前だよな、と思いつつも、「気づかれたくないけど、気付いてほしい」みたいなアンビエントな気持ちになることもたくさんあって、でも自分から気付かれないようにしているんだから気付いてもらえないのは自業自得だよな…、でも本当は理解してほしい…と感情のはけ口が見つからないのが常だった。 カウンセリングを受けても本を読んでもまずは自分の感情を明確に出しましょうというところから話がスタートしていて、結局そういうふうに矛盾した態度を持つのは幼稚なことでダメなことなんだと自分に言い聞かせていた。

それがこの映画では登場人物たちが気付かれないようにしている感情が物語の中心で、中心なんだけどその視点の置き方が絶妙で、気付かれたくないという気持ちに完璧に配慮しながらも気付いてほしいという気持ちもすくい取ってくれるようなことになっていて、こういう世界もあるんだと目が開かれる思いだった。 監督の山田尚子さんはそのような感情への態度を「彼女たちの尊厳」とまでポジティブな言い方をしているのだが、それも映画を見ると理解できる。

なんだか自分の感情も肯定してくれた気分になって、嬉しかった。救いになった。 そのような物語が存在するということにもそうだし、少なくともそういう気持ちを汲んで作品として世に出してくれる人がいるということにもそう。 単純に何年も物語を摂取していなかったというのもあるけど、そういう話に出会えて良かったなと思う。

3回観たけど、毎回新鮮な発見があって、感想が変わる。 また観るかも。

FP v.s. OOP に対する Alan Key の回答

Alan Kay's answer to Why is functional programming seen as the opposite of OOP rather than an addition to it? - Quora

関数型とオブジェクト指向は compatible である。

計算とは現実世界のシミュレーションである。 シミュレートするときに現実世界の「時間」概念を CPU時間で表現していると race condition (競合状態) が発生するし、プログラムについて推論するのが難しくなる。 そこで、現実世界全体の「状態」を経歴として持ってそれぞれに現実世界の時間を反映した index を持たせて管理すると上記の問題が発生しなくなる。 ここまでを 1960年頃に Lisp の考案者であるジョン・マッカーシーが考えた。 我々オブジェクト指向考案者はこれがオブジェクト指向でも有用だと気付いた。 例えば、オブジェクト指向でも計算機の状態が正しく現実を模写した状態から次の正しい模写へ遷移するというイメージでプログラムをかける*1。 このように書かれたプログラムには競合がないし推論も簡単だ。経歴という考え方には他にも様々なメリットがあった。

重要なのはオブジェクトが状態を持つかやモナドがどうとかではなく、計算が現実のシミュレーションだと気づくことだ。

--

--

大学で計算機科学を学んだ印象と結構違って面白かった。 大学で得た計算機科学への印象は、全てのものを「問題」だと捉えて計算とはそれを解くために使う学問、といった感じでシミュレーションという感じではなかった。 オブジェクト指向設計者の意図としてこの意見があるのは設計をする上での指針になる。ドメイン駆動設計とかこれを穏健にして技術よりにした発想ですよね。

ふんわりとした推測としてはプログラムの中の「問題解決パート」(複雑なアルゴリズムなどが出てくる)をうまく隠蔽して、アーキテクチャ的に上位のレイヤーでは模倣であるかのように見えるプログラムを書いていけばいいのかなぁ。という感じ。 まぁ上の回答中でもこの思想を現実にしているプログラミングツールはまだないということらしいけど。

*1:オブジェクト指向ではオブジェクトは現実世界の物事を反映したものという考え方は一般的だろう

PaaS (Politics as a Service)

Dropbox saved almost $75M over two years by moving out of AWS についた Hacker News のコメントより

クラウドを使う理由を2つある。

  • インフラを自前で調達するよりクラウドに任せたほうが安いとき(小さい企業で起きる)
  • 高速にスケールしたいとき(幼い企業で起こる)

しかしこれ以外の理由でクラウドを利用している企業を何社か見た。 それらの企業ではクラウドは技術選択に伴う社内政治を省くために使われていた。 インフラ技術の選択肢を1つ消すごとに管理職が減り、コミュニケーションが少なくなり、問題が起こったときに外部に責任をなすりつけられる。

彼らは実質的には自分たちを「技術の会社」だと思っておらず、技術がビジネスの成功に重要なのに技術職になるべく少ない人員しかさこうとしないが、彼らのインフラに対する認識を「誤り」だと批判しようとは私は思わない。

(抄訳ここまで)

おそらくそのような技術選択は企業が意図的に行った意思決定ではないだろうが、クラウドを選択する理由として十分であるような気もする。

話を広げると、クラウドだけでなく言語やフレームワークの選定などの技術選択も社内政治を増やす要因になるだろう。 そのような状況において「より良い技術」を求めて積極的な技術選択を行うのは社内政治を嫌いとするエンジニアにとって本当に幸せな結末になるのかどうか。