Mono Mono

作ろうとしていた人工生物シミュレーションみたいなのは棚上げになっている。
飽きたというわけではないのだけど、今やってる場合じゃない感が強くて、もっと余裕が出てきたらやりたい(そういう事言ってる人は大体のもがエタっている)(エタるってまだ言う?).

ここ一年で、インフラ・バックエンド・フロントエンド全部一人でやりましたみたいなサービスが3つくらいローンチされていて、作ってる時は楽しいのだけど精神的な負担が大きい。
実証実験系のものは別に良いのだけど、お金もらってるサービスで不具合があると責任が出てきそうだし、何より全部一人なので何かあったら魔女狩りをするまでもなく自分が魔女なので言い逃れのしようがない。

最初から魔女まである。

もちろん請負契約ではないので何かあっても自分が直接金銭的な負担を強いられる事は(多分)ないと思っているのだけど、それはそれとして公開してしばらくはログとか延々見てしまう。
大抵ログの設計が不十分で知りたい事が知れなくて悶々として、誰かのせいにしたいが自分の顔しか思い浮かばない。
そもそも不具合が出ているわけではないプロジェクトのログを見続けるべきではない。精神衛生的に。

機能拡充の前にログとエラーハンドリングの充実とリファクタリングと単体テストの拡充をさせて貰おう。

Artificial Creatures

結局意識だけを取り出すのを諦めて、生き物っぽい何かを作ることにした。
以下みたいなパラメータを持った生き物を定義して、快感とストレスと欲求のバランスだけで生き物っぽくなるかを見てみたい。

  • Pleasure
  • Stress
  • Essential
    • Appetite
    • Thirsty
    • Drowsiness
    • Hygienic
  • Emotion
    • Joy
    • Anger
    • Sorrow
    • Comfort
  • Health
  • Desire
    • ……etc.
  • Addiction
    • ……etc.
  • Sick
    • ……etc.
  • Age
  • Intelligence

そして、快感とストレスと欲求に突き動かされている生き物的な何か(以下ACと呼ぶ)には意識のような何かが生まれるはずなので、それを捕まえたい。

…みたいな話をしたら、その道の人(!)がベイトソンを薦めてくれた。その道の人だとは(知っていたけど)知らなかった。
タイミングが完璧でびっくりした。神託か?と思った。

というわけで関連書籍買って読んだ。 (本家も買うだけ買ったけど、高いしなかなか届かない…電子書籍化して欲しい)

コミュニケーション関連の部分では、メタ認知の部分とコミュニケーションの冗長性みたいなところが割と刺さった。
元々AC同士のコミュニケーションはコマンド(ていうかenum?)でやろうくらいにしか思ってなかったけど、確かにそれでは意識は表現されない気がする。
だから、(ベイトソンはそんな事言ってなさそうだけど)「概念の数だけ次元のあるベクトルの方向と強さと遷移」が「意識」っぽいなと思ったので、ACにはそういう「意識」を持たせることにしたくなった。

この『「概念の数だけ次元のあるベクトルの方向と強さと遷移」が意識っぽい』は、例えば各パラメータが以下の概念のベクトルがあったとして
[条件, 物, 感情]
それが
[今, [髪, 水], 不快]
から
[必要, [髪, 乾燥], 快]
に伸びる、みたいな話。この次元数が、100も200もある、的な。
そんなベクトルが大量に存在していて、その塊ごとやりとりするみたいなイメージ。伝われ。

めちゃめちゃ薄っぺらい事言ってる気がするけど、さっきのパラメータを同じくベクトルにして直接AC同士で投げ合うとか、一定のルールに基づいてエンコードした文字列を投げ合うとかさせたら、もうそれってかなりコミュニケーションっぽい。
ただ、投げるのは簡単だけど解釈するのは難しくて、パーサなんか実装してもしょうがないし、共感したり反発したり敵対したりしてほしい。
そうすると、「一意の相手」を概念として知る必要があるけど、そこは一旦無視したい。
受け取った「意識」と自分の「意思」を単純に比較して、利害が一致するかどうかだけを見る、みたいな原始的な仕組みを作ってみるのが良さそう。
コミュニケーション自体に快感が伴うようにしておけば多分勝手に発生する。
それが上手く行ったら自分と自分で同じようにコミュニケートさせたら良さそう。
意識なのでは?

Artificial Awareness

人工意識に興味がある。
そして「意識」を作り出すためには、「身体」もしくは「内面」にあたるものが必要だと思っている。
実際のところ快と不快と、その快不快を決める連続したパラメータがあれば良いのでは、くらいにざっくりとしたものを想像している。

The Script was Created

Obsidianから自動的に切り貼りするようなスクリプトは書かなかったけど、
「その日の日付でマークダウンを特定のフォルダに作成して、中身の date の値をその日の日付に書き換える」
をするワンライナを書いたので、それだけで日記を書くハードルがだいぶ下がった気がする。
気のせいかも知れないけど。

あと、git status git add . git commit -m "add $COMMENT" git push origin master するだけのshellも作った。
これ、なんとなく背徳感があるんだけど、ぶっちゃけ日記の更新するだけなんだから問題ないよね、みたいな。

Display Has Been Broken

日記について

日記について思い出させて貰ったので書く。
実は日記的なものは毎日書いているのだけど、publicに出来ないものが多すぎてここの存在をすっかり忘れていた。

前回の日記で Roam Research を使い始めたと書いたけど、あの後すぐに Obsidian に鞍替えしてしまった。
理由はWEB UIがもっさりしすぎている事と、スマホから使いづらすぎる事だったのだけど、 Obsidian 自体はただのマークダウンエディタに全文検索とグラフが搭載されただけのものなので、可搬性が高いのも嬉しい。

で、日記はそこに書いている。
作業を始める時にその日の日付のページを作成して、TODOやら日記(分報)やらをそこに書き込んでいくスタイルなのだが、その中の公開して良い部分だけをコピペして日記を更新する、というのが面倒でやっていなかった。

よく考えたら公開可能な場所を適当なタグでくくって書いておいて、一日に1回そのタグの中だけコピペして git push するスクリプトを流せば良いので、そういう形式の日記にしてしまうかも?

ディスプレイが壊れた

5年くらい前に3000円くらいで、中古で買ったディスプレイが壊れた。
最近電源を入れてもメーカロゴで固まる等、挙動が怪しかったのでそろそろだろうとは思っていたけど、不便。
そもそもディスプレイは1枚〜2枚足りていないので、買い足そうと思っていた矢先の出来事だった。

最近ちょくちょく外で作業する(屋外という意味でも、カフェ等という意味ではなく、自宅でないところ、程度の意味)事があるので、モバイルディスプレイはとりあえず買おうと思っているのだけど、それとは別に湾曲ワイドディスプレイが気になっている。
元々4Kにも湾曲ワイドにもそれほど興味はなかったのだけど、これにVSCodeを全画面で出して、縦に4分割して使っているという人の話を聞いてから、その「快適そう具合」に脳をやられてしまった。
しかしいくらなんでも高いので、流石に買わない。買わないと思う。買わないんじゃないかな。ま、ちょっと貯金しとくか…。

Soundbiotope

3000円くらいで買ったディスプレイというのは、そもそもクリエーターズマーケットに作品を展示するために買ったもので、その作品はアクリル板をランドセルみたいな形に曲げた箱を作ってそこに穴を開けて、そこからディスプレイを覗いてもらう、といいうものだった。
中身は旧式の SoundBiotope
(展示した当時は「ねむるのまち」と呼んでいて、今もその名前は気に入っているのだけど、ハナレグミ氏の楽曲から拝借した名前であまりにも露骨だったので、途中から Soundbiotope に変更した。)
そもそもアス比が4:3で、HDMIもつながらず、分厚く重く、解像度も低く、質もそう高くないものだったので壊れなくてもさっさと買い換えるべきだったのだろうけど、そんな感じのものだったのでなんとなく捨て難かったのが、ようやく踏ん切りが付きそうで、良かったような面倒なような。

作業環境

モバイルディスプレイの事を少し書いたけど、自宅では Ubuntu Desktop 20.04 を入れたデスクトップPCをメインで使っていて、そうすると外で作業する時に作業環境や内容がリセットされてしまう。
自宅のサーバ公開したくないしな〜と思っていたが、ちょっとググったら一瞬で解決した。もっと早くググるべきだった。
Best VPN Service for Secure Networks - Tailscale
Googleアカウントでログインしてクライアントを端末に入れると、同じアカウントでログインしている端末同士がP2PでVPN接続される、というもの。無料。
作業環境自体は大体全てDockerに移行しているので、外出先に持っていくPCにこれを入れておいて、作業する時はVSCodeのRemote Developmentで自宅PC上のDockerに直接繋いでしまえば自宅と全く同じ状態で作業出来るようになる。
便利過ぎ。
いい時代だなぁ。

さて、件のスクリプトがさっと書けたらこれからもちょくちょく更新するかも。
更新がまた半年とか止まったら察してください。