PUNK IPA

※この記事は↑を飲みながら書かれた。

今日はいい酒を飲みたい気分だったので酒通の友人にビールのおすすめを聞いたところ、『PANK IPA』を勧められた。帰り道の酒屋で買った。

ひとくち含んだだけでメロンかと思うような甘い香りが広がり、舌への刺激は強くないが喉にはじっくりとした刺激がある。美味い。

美味いものを飲み食いすることは人生において睡眠と並ぶ価値を持つ。

バイアス

※この記事は『クリアアサヒ』を飲みながら書かれた。

僕がブログを書くのは決まって夜だ。つまりブログには書かれるのは夜に考えたことが多い。朝や昼にも色々と面白いことを考えてはいるのだが、夜になると忘れているのでブログに書けないのだ。この偏りは心理学専攻としては看過し難い。しかし1日のランダムな時間に書くというわけにもいかないので仕方ない。

というわけで夜の出来事を書くが、今日の帰り道もスリリングだった。23:30ごろに大学を出たらものすごい勢いでタブレットの画面を連打している人がいた。動かないソフトウェアを前にして連打を試みてしまうのは人間の性なのだろうか。怖くて近づけなかったので何をしていたのかはわからない。自宅近くでも酔っ払ったおっちゃんが車道をフラフラ歩いていた。

自宅近くの大きな道路は中央分離帯も立派だ。5mくらいの幅が有り、植え込みの高さも3mくらいはあるだろう。僕はいつか中央分離帯で一晩過ごしてみたいと思っている。毎日目にする場所でありながら、中央分離帯は上り車線でも下り車線でもなければ歩道でもない、いわば行動体としての人間にとっては空白地帯になっているのだ。目には見えるけれども足を踏み入れたことはない、そんな不思議な場所に惹かれる。

 

頭脳・月見・酒

※この記事は『極搾り りんご』を飲みながら書かれた。

僕の頭は常に悪いが、今日は特に悪かった。学科の発表会や研究室のミーティングがあったが、全然話についていけなくて辛い時間だった。一つ考えたのは活動限界で、今朝は9時に大学に来ていたので夕方の発表会やミーティングでは既にガス欠だったという可能性だ。

よくない。自分の至らなさを覆い隠すために「ガス欠」なる新概念を勝手に作るのは。

帰り道は道端に座り込んでいる人を4人見た。普段は0人なのでこれは顕著に多い。まず月見かなと思ったが、今日は満月の前日らしいのでこの説が正しいのなら明日はもっと多いはずだ。もう一つは季節。ここ数日急に冷えるようになり、季節の移ろいを肌で感じたくて外に座っていたという説だ。そんなわけあるかいな。

酒を買ったらテンションが上がりすぎて自宅に入る前に開栓してしまった。おかげで靴を脱いだり鍵を開けたりするのに苦労した。今日も無事に脳細胞を減らしている。悪い頭がもっと悪く。

久々にいかにも日記という日記を書いた。

寛容

※この記事は『Asahi クリアセブン』を飲みながら書かれた。

↑まずい。

今日はクソ酷いミスをして人に迷惑をかけてしまったのだが、さらりと許してもらえた。僕もそういう人間でありたいと思う。食堂の給茶機の順番待ちに割り込まれても笑顔でいられるようになりたい。

これまでaptで入れていたChromeを公式debから入れ直したことでバージョンが70になった。タブのデザインが変わり当たり判定が増えたのもそうだが、何より素晴らしいのは拡張機能のSpeedDialが正常に機能するようになったことだ。これまでは4列に設定するとなぜか右にスペースができてしまってとても気持ち悪かったのだが、それがなくなりきちんと中央に配置されるようになった。

Hyperappのプログラムをいじっていたのだが、actionは引数を1つしかとれないということを学んだ。そういうプログラムになっているのはそうとして、そうしている理由はなんなのだろう。

Actions

The only way to change the state is via actions. An action is a unary function (accepts a single argument) expecting a payload. The payload can be anything you want to pass into the action.

Hyperappでhtml要素の真偽属性を操作する

※この記事は『金麦 RICH MALT』を飲みながら書かれた。

hyperappのviewはh関数で作る。これは公式サイトのサンプルだ。

const view = (state, actions) =>
  h("div", {}, [
    h("h1", {}, state.count),
    h("button", { onclick: () => actions.down(1) }, "-"),
    h("button", { onclick: () => actions.up(1) }, "+")
  ])

h関数は3つの引数をとる。1つ目はタグ名、2つ目は属性を列挙したハッシュ、3つ目は子要素だ。ここで属性はハッシュなので、キーとバリューのペアが必要だ。しかし全ての属性がキーとバリューのセットで用いられるわけではない。たとえばreadonlyは値をセットする必要がなく、存在することによって機能する。

ここでHTML5の真偽属性の仕様を確認する。

checkedおよびdisabledとなるチェックボックスの例を示す。checkedおよびdisabled属性は真偽属性である。

<label><input type=checkbox checked name=cheese disabled> Cheese</label>

これは次に書かれるものと等価であるべきである:

<label><input type=checkbox checked=checked name=cheese disabled=disabled> Cheese</label>

スタイルを混在させることもできる。以下は依然として等価である:

<label><input type='checkbox' checked name=cheese disabled=""> Cheese</label>

どういうことかというと、以下の3つはどれでもいい(参考)。

  • disabled
  • disabled=disabled
  • disabled=””

つまり真偽属性を変化させたいときは以下のように書きわけることができる。

h("input", {readonly=""}, "")
h("input", {not-readonly=""}, "")

これをhyperappの枠組みで考えるとこうなる。

const state = {
  readonly: "readonly"
}

const actions = {
  writable: () => state => ({ readonly: "not-readonly" })
}

const view = state => h("input", { [state.readonly]: "" }, "")

viewのh関数の第2引数のハッシュで、ブラケット記法を用いてキーの方を変更する。バリューはなんでもいい。

ひと目でわかること

※この記事は『極搾り 柑橘ミックス』を飲んで書かれた。

自転車に乗っているときは風景がかなりのスピードで流れていくが、一瞬目に映っただけでも何かわかるものがある。今日はそんな体験が2度続いた。

1度目はネズミの死体だ。自転車を止めてゆっくり眺め回したりはしなかったが、25cmくらいはあっただろうか。道路に無造作に転がるそれなりの大きさの袋状のもので、手足がピンク色に目立っていた。

動物の死体は病原体の巣窟であり、危険だ。危険な情報に素早く反応するのは進化的に古い脳の役割である。視覚であれば後頭葉から嫌悪を司る扁桃体を経由して交感神経が活動する。これによって心拍数の増加、呼吸の増加、発汗などが起こり、体が逃走の準備を整える。

2度目は友人だ。自転車で鼻歌を歌いながら帰宅していたら気がついた。昔はよく会っていたが今はそうでもなく(働いている)、この辺りにはたまにしかこない人なので確率の低い偶然だった。

ヒトの顔についてはFFA(Fusiform face area)という顔認識に特化した領域があることが知られている。ヒトの顔を上下逆にすると認識が難しくなることは倒立効果と呼ばれ、顔は特殊な処理が行われていることを示唆している。サッチャー錯視はその顕著な例だ。

人間の視覚は必ずしも汎用的ではない。危険回避や同種他個体の弁別などの具体的な目的を持って作られた機能も含まれている。ヒトの顔に異常に敏感だからこそ、何でもないところに顔を見たような気になってしまい、心霊現象だと思いこんでしまう。

全然関係ないけど食堂のとろとろ丼定食(ひきわり納豆とオクラのどんぶり)、美味くない。前回は味がなかったので今回は醤油をかけたがただ醤油の味がするだけだった。

生還

※この記事は上野『かっちゃん』で飲んできたあとに書かれた。

今日は研究室のミーティングだった。ろくでもない結果しか出ていないので壮絶な覚悟で望んだが、困っていることを説明したらたくさんのアイデアをもらったディスカッションが弾んだのでよかった。

晴れやかな気分でミーティングを終えられたので友人の招集に応じて上野の立ち飲み屋に行った。『せんべろ』なるジャンルを初めて聞いたのだが、「1000円でべろべろに酔える」ような価格帯の酒場の俗称らしい(wikipedia先生)。そもそも僕は1000円分も飲まずともべろべろに酔えるのでそれほどありがたみは感じないが、今日行った店は1000円ポッキリで生・ウーロン茶・天ぷらセットでとても良かった。昼間は天ぷら定食を売ってる店で本格的な天ぷらだった。

そういえば学科の内定者歓迎会のメールが来ていた。僕の大学は2年生の半ばで3年生以降の学科が決定するので、この時期に学科の内定者の歓迎会が企画される。この会には以前アルコールバトルで敗北して大変なことになった苦い思い出がある。

僕はアルコールが好きだ。強くもなければ詳しくもないが、よく飲む。アルコールを飲むと脳が縮むと言う。気にならないわけではないが、将来の健康を見越して常に最善の行動しかとらないとするとかなり生活が制限されるのであまり考えないようにしている。そもそも人体の耐用年数は30年くらいだろう。その先は高望みしないことだ。

今日のUI心理学

4.3 色の識別能力

目立たせたい色は彩度を上げる。色を比較させたいとき(グラフの凡例など)は眼球運動なしに両方の色が目に入るように近づける。

図1.左眼の網膜位置に対応した桿体・錐体の分布密度(感覚知覚ハンドブック p.924 図18・5・1)

「立命館大学人間科学研究所 人間科学のフロント 色覚障害について考える」より引用

人間の網膜で色を認識できる錐体細胞は視野中心部から両側に10度程度の範囲に密集している。つまりグラフを注視しながら凡例を視野に含めるためには、それらを視角10度以内に配置する必要がある。

視角10度は視距離57cmのときに10cmだ。意外と近い。視角とディスプレイ上の距離(ピクセル)の対応を知るためのツールは以前作った。

(アイコニックメモリーって色はどのくらい正確に保持できるんだろう。教えてエロい人)

友達

※この記事は『チューハイ気分 グレープフルーツ』を飲んで書かれた。

今の僕は友達が少ない。1・2年生の頃は2つのサークルを掛け持ちしていて人間関係には恵まれていたが、3年生になるとキャンパスが変わる関係でどちらのサークルからも疎遠になってしまった。大学院生になると同級生は就職したり、他のキャンパスに行ったりしてさらに遠ざかってしまった。それと入れ替わりに研究室で過ごす時間は増大したが、同室の研究室のメンバーは僕含め去年2人、今年3.4人(1人は週2日なので)だ。

なぜこんなことを言い出したかというと、実験の参加者集めの過程で昔の友達に多く声をかけているからだ。「昔の友達」という言い方は微妙だが、かつては週に複数回会っていたのに現在では特に会う用事がなく、数カ月に1度偶然会うだけになってしまった人間を「昔の友達」と呼ぶのは間違っていないだろう。

学年が上がるに伴って状況が変化したのはそうだが、僕が友達と友達であり続けるための努力を怠ったのも現状の一因だろう。もう少し努力しておくべきだったと後悔している。

孤独は危険だ。イギリスには孤独担当大臣がいるとかいう冗談かマジかわからないニュースを聞いたことがあるが、下手をすると全く音声言語を使わずに1日が終わったりしてそれはやっぱりヤバいと思う。

一人暮らしもよくない。異性でも同性でもいいので、とりあえず一緒に暮らして精神を支え合える人が欲しい。人類史的にはそういう役割は異性がメジャーらしいが僕はどっちでもいい。