キーボード頂上決戦! 東プレ RealForce R2 vs 富士通コンポーネント Libertouch vs Unicomp Ultra Classic 106JP

まえがき

Ultra Classic, Libertouch, RealForce

私はついにRealForceを手に入れた。

キーボードマニアと化してから18年、それまで色々なキーボードを使ってきたし、RealForceも試したことはある。 だが、RealForceのふにゃ感が苦手で、これまでRealForceを使ってこなかった。

だが、最近はタイピングスタイルの変化によって軽めのキーボードがうまく使えるようになってきたので、RealForceがなかなか魅力的な選択に思えてついに購入した。

基本的にはメカニカルキーボードは高級キーボードの代名詞だけれども、同じスイッチを使っているものでも6000円台からあるメカニカルキーボードは2万円程度はするRealForceと比べるとグレードが違うようにも感じられる。 RealForceが最高級キーボードと呼ばれることもわかるように、さらに一段上とみなされるのが一般的なようだ。

RealForceと、同様にラバーコーン+コニカルコイルスプリング+静電容量無接点方式のHHKBのどちらが最高峰か、というのは宗教戦争になってしまうが、とりあえずRealForceは最高峰キーボードとして有名という点では異論はないだろう。

そして、これに類似の機構を持つ、有名ではないが同クラスに属するふたつのキーボード。 Libertouchはメンブレンスイッチのキーボードながらふたつのアクチュエータを持ち、RealForceの対抗馬としては割と知られている。

Unicompのキーボードは古のバックリングスプリング機構を利用したメンブレンスイッチのキーボードである。 RealForce, Libertouchに共通するラバーを潰すという構造自体が存在しておらず、よりニッチなものだが唯一無二のキーボードとして知られている。

なお、Cherry MXメカニカルキーボードであれば青・黒・茶・緑・ダークグレーの軸を使うし、ALPSの経験も2種類ほどあるし、Cherry MX互換キースイッチの製品も数種類持っているし、独自キースイッチのEdge 201も使っているし、パンタグラフキーボードとしては高級品になるThinkPadキーボード(USB接続の単体)も使っている。さらにいえばメンブレンキーボードも安いのから高いのまで色々使っているし、パンタグラフキーボードも他にも持っているし、ショートストロークタイプのものも色々持っている。 なので、別に他のキーボードを知らずに語っているわけではない。だってマニアだから。

「指の力」「押す力」「叩く力」

キーボードのタイピングにおいては節題の3つの力が大きく関係する。

指の力というのは指を外圧に負けず一定の状態でぐらつかないようにしようという力で、握力に関係する。 ピアノ演奏では特に重要となり、この力を抜いた状態でのピアノ演奏は突き指の原因になる。

指の力が弱い状態では外圧に負けて指が逃げてしまうため、急激に荷重を失うことになる。 急激に荷重の立ち上がるタイプの場合、指に力を入れておくことが必要となる。タクタイル感が強い場合は特に押しきる必要があるため、指の力が必要となる。

押す力は、キーから離れた状態から開始した場合は手首または腕によって、キーについた状態からであれば主に指の根本の関節によって発生する。位置的により下方へと移動させようとするエネルギーである。 このエネルギーは継続的に発生するためキー荷重による減衰はあまり関係なく、それは感覚的な重さとして感じられる。キー荷重が一定であれば一定の力で押す続けることができる。

叩く力は移動によって発生するエネルギーであり、キーに接した状態でタイピングする場合は発生しない。 キー荷重によって減衰する。キーを押す力に対して補助的に作用し、キーの重さはキー荷重からこの叩く力が担った分を引いたもみのに感じられる。 指を高く上げるタイピングをする人ほど強く、また体から低い位置にキーボードがあるほど強くなる。

今回RealForceを買うに至るまでには私のタイピングスタイルの変化が理由として大きい。

私はもともとかな打ちということもあって、非常にキーを叩くタイプだった。 指を高くあげるため押すと言うよりは指を勢いよく落とすことでキーを押す。このとき力が逃げないように指にはしっかり力をいれた状態だ。 単純に押すのと比べ加減が難しく、荷重に関してはかなり難しい。足りなければスイッチが入らないし、すぎれば押す力はないためキーに押されてしまいとても重く感じる。 また、勢いがついているため、反発が強いないと指を離すのが遅れてしまう。

ただ、最近はショートなラップトップキーボードにも慣れてきたし、疲れを減らすためリストレストに完全に手を付けたままタイピングするように心がけているため、以前と比べ大幅に勢いが減っている。 今でも押すというよりは叩くタイピングをしているのだが、押す割合が高くなった。叩く度合いが減ったのは以前ほど高速打鍵を重視しなくなったというのもある。

また、最近発見した後継姿勢は指が寝るので叩きにくい。かなり軽くて最初は戸惑ったLibertouchでも重く感じてしまうのだ。 このため、軽く、タクタイル感の曖昧なキーボードが欲しくなったのだ。

タイピングのニーズ違い

どうしても最もキーボードを重視するのはプログラマであるという認識があるけれど、実際のところそうでもない。

プログラミングというのはかなり頭を使う、思考コストの高い行為なのでものすごい文量を書くというわけではないのだ。 正直なところ、手打ちで1日5000文字生産できるプログラマは相当に速筆なほうだと思う。

だから、連続で長時間文字を打ち続けるということは基本的にない。 だが、ぱっと思いついたときに高速打鍵できること、思考を妨げないようにミスタイプが少ないこと、なるべく手の移動量少なくタイピングやカーソル操作などが可能なことが求められる。 正確性と瞬発力、そしてコンパクトであることだ。

文筆だって思考コストは高いが、それでもバリバリ書けば10000文字はかける。 その気になれば30000文字ぐらいは書けるし、もっと書くこともないではない。 文筆の場合は継続的な速度が重視される。量自体も多いため、速く打てて指への負担が少ないことが重要だ。

事務系処理も条件によっては相当な文字数を打つ。 速度が重要な場合もあるが、正確性と一定のリズムで打てる打ちやすさが重視されやすい。 打つ量が少なくなるにつれて比較的重いアクチュエータを使うキーボードが好まれる。

実のところ最大文字数を打つのはチャットだろうと思う。今はそこまでマッシヴにチャットすることはまずないかもしれないが。 チャットでは急いでいる分ミスが発生しやすく、速度と正確性が求められる。 実際は負担も少ないほうがいいのだが、そこはあまり重視されない気がする。恐らくチャットの場合相手の発言を待っている間休まるために連続性に乏しいためだろう。

ゲーマーは非常に特殊な要求をする。精度の高いオンオフや、高速な連打などだ。 私はゲームをほんどしないので、これについて語る能力を持っていない。 ただ、今回の3機種のどれがゲームに適しているかは即座に答えることができる。なぜならばUnicompキーボードはUSB 1.1接続であり、Libertouchはキーロールオーバーに対応していないからだ。つまり、この2台はゲームはまともにできないのである。

キーボードの紹介

RealForce

非常に有名な最高級キーボード。2万円からとなかなかお高い。 有名なだけあって高級感もあり、物書きにファンが多く、ゲーマーでも愛用者が結構いる。

RealForceの内部はいくつかに分割されたコーンをもつラバーシートがあり、そのコーンの内部にコニカルコイルスプリングが入っている。

3つのキーボードの中では最も一般的なメンブレンキーボードに近い構造で、一般的なメンブレンキーボードの間にスプリングをはさんだような構造をしている。

今回テストするのはALL 45g, 非静音, APCなし(2.2mm), テンキーなし, 日本語配列, 標準キートップの新型R2モデルである。

Libertouch

RealForceと同じ値段、同じ構成の「メンブレンキーボード」ということで知らない人が知ると馬鹿にするが知っている人にとっては至高の製品として知られる最高級メンブレンキーボード。旧製品は最終的には12800円くらいまで値下がりして売られていたが、現行製品は28000円くらいする。お値段的にもRealForceとタメを張る。

キーボードにはこだわりのある富士通コンポーネントのフラッグシップであり、物書き、特に小説家にとっての最終兵器と呼べるような扱いを受けている。 見た目がRealForceのように華やかではなく事務機器然としていることもそれはそれで人気の秘密であり、「文章を書く道具」としての風格・人気はRealForceにも劣らない。 一方、物書き以外にはあまり人気のないキーボードでもある。

Libertouchの内部はスライダーの外側にラバーシリンダーがはまっていて、スライダーの内側にスプリングが入っている。 どちらも純粋なアクチュエータであり、スイッチとしては機能しない。プラスチック部品がラバードームをもつ持たない2枚重ねのラバーシートに接触することでスイッチが入るメンブレンスイッチである。

比較として使用するのは旧バージョンでアクチュエーション荷重は45g(復活した現行型は35gが標準)。

(Unicomp) Cltra Classic

UnicompキーボードはIBMの古いキーボードからそのテクノロジーを受け継ぐ、現代の化石。 現在新品で買えるバックリングスプリングキーボードはUnicomp製品しかなく、このUnicomp製品も古い金型を使って製造しつづけているという、ウラルかワズかといいたくなるような代物である。

ダイアテックの要望により作られている日本語キーボードも製造はガタガタのキートップやキーボードで、バリもあり、見た目も色も大変に古臭い。 もちろん、それがいい、という人もいるのだが、実際のところキーボードとしての作りは現代の製品には劣る。 だが、キースイッチが唯一無二であり、これを求めるこだわりあるファンも多い。

存在自体がマニアックなこともあり、ユーザーはエンジニアやギークが多い。 お値段は16800円。タイプライターに例えられることも多いカチンとしたフィーリングとバネ反響音が特徴的。

Unicompのキーボードはいずれも台座とキートップの間にスプリングがあり、これが唯一のアクチュエータとなっている。

座屈バネ構造は意外と単純で、バネが押し込まれてグキッと曲がったときにシーソーがぱこんとなって接触しメンブレンスイッチが入るようになっている。詳細は鍵人というサイト上で読むことができる 行きはタクタイル感が強く、戻りはリニアに近い荷重特性が特徴的。

本当にUnicompのものかは怪しいが、出回っているグラフによれば5571-A03などに近い70gがアクチュエーション荷重のようだ。 実際、ほかの2機種と比べるとちょっと重い。55gかせいぜい60g程度に感じるが。

荷重に関していえば、初期は結構重いのだが、タイピングを重ねているとだいぶ軽くなる。 何ヶ月か使い続けると45gのキーボードと比べてもいくらか重い程度になる。

キーボードの比較

段階的に違うフィーリング

RealForceは「ふわふわ」というフィーリング。 好きな人はこの表現、あまり好まないのだが、実際ふにゃんとした感じがして、そのために静電容量無接点方式はなんか浮いてる感じの構造だと思っている人も少なくない。あえて擬音表現するなら「にゅん、にゅん」という感じ。

Libertouchは「ふわっ」と押し始めて「かたっ」と入る。 入力し始めがリニアでそれなりのストロークがあり、抵抗があるところからそこで止められる感覚もないままかたんとポイントを越える感じで、擬音表現するなら「ふぁたん、ふぁたん」という感じ。 RealForceよりもずっとはっきりカタカタする。

Ultra Classicはほとんどストロークしないまま荷重が立ち上がる。 このエリアは非常に狭いため、「ここが重いエリア」といったりきたりするのは難しく、止まるか押しきるかである。 そして押した瞬間にバネがおれるカクンという感触とカチョンという反響音がする。 擬音表現するならば「かっちょん、かっちょん」という感じ。

RealForceはタクタイル感を感じられる範囲が広く、指でじんわり押すとタクタイル感を感じなくなってしまう。 叩くスタイルだとスイッチを入れる感触がなく、かといって反発によって押し返される感覚がないため相性はだいぶ悪い。 そのかわり、指に力がいらない。ものすごく脱力した状態でタイピングできる。 だから激しくタイピングするよりも高さを押さえて指作で「こくこくこくこくこく」と打つのが速い。

Libertouchは自然だ。メンブレンを基準にした自然ではなく、ボタンを押す感覚としてとても自然だ。 タイピングにおける自然さをこれ以上には表現できないのではないかと思ってしまうし、「タイピングに限らない心地よさを」というキャッチフレーズは、そのまんまであり大成功だといっていい。 叩くのも押すのも簡単。どうタイピングしても速いし疲れにくい。癖がなく完璧なキーボードだ。 この癖のなさがついついつまらなく感じて「今日は他のキーボード使おうかな」と思ってしまうこともあるのだが、すぐ疲れてLibertouchに戻ってきてしまう。 それだけいいキーボードなのだが、やっぱり面白みがなくてモチベーションには繋がりにくい。

Ultra Classicはとても気持ちいい。明確なスイッチを押している感じ、かちゃこんかちゃこんというフィーリングと音はなんともタイピングしている気分を押している盛り上げてくれる。 無意味にICQに採用されていたタイプライターサウンドを再生してみたくなる気持ちもわかろうというもの。やはりタイピングには気分を盛り上げる「打ってる感」も重要なのだ。

非常にクリッキーである上に重いので「高速打鍵には向かない」なんていう人も多いのだが、実際のところUltra Classicは相当に高速打鍵が可能なキーボードである。少なくとも青軸の比ではない。 ただし、私の記録の上では

  1. Edge 201 (80WPM/460KS程度)
  2. BLACK PAWN Cherry MX リニアグレー (76WPM/440KS程度)
  3. Libertouch (72WPM/400KS程度)
  4. RealForce R2 (68WPM/380KS程度)
  5. ThinkPad Keyboard (68WPM/360KS程度)
  6. Ultra Classic (66WPM/340KS程度)

あたりがそのキーボードでの平均記録なので、遅い。だが、それでも速い方である。 確実な打鍵ができるので、打鍵位置を見せる見失いやすい複写作業をしているときはLibertouchよりもUltra Classicのほうが速い。

ちょっと勘違いされやすいのだが、Ultra Classicは決して「重い」わけでも、「青軸以上にクリッキー」なわけでもない。

私は本当に重いキーボード(Edge201 55g, Cherry MX 緑軸 80cN, Cherry MX リニアグレー軸 80cN/165cN)も使うけれど、そういう感触はなく、Ultra Classicは黒軸(45cN/60cN)よりも軽く感じる。 また、明確なクリック感があっても青軸や緑軸のように「止められる」感じはなく、感触としては「茶軸をくっきりさせて重くした感じ」に近い。 その動きはメカニカルスイッチよりもスムーズで音の重さの割にはキーは軽やか。 ただし、音はメカニカルキーボードのような軽快なものではなく非常に重厚である。

メンブレン感は一番あるRealForce, 異質なUltra Classic

安いメンブレンキーボードは抵抗感の薄いストロークのあとむにゅんという曖昧なタクタイル感があるためにぐにょぐにょして感じるのだが、 タクタイル感がはっきりしないあたりを含めてこの感覚はRealForceが近い。 あのむにゅむにゅした感覚が嫌いな人は結構いるので、実際に知らない人にRealForceを試させると結構な割合で感覚が嫌だと言われる。

しかしRealForceの場合はその特性変化をスプリングが補っているため、唐突で無軌道な変化を感じない。 その変化全体がなめらかにつながっているような変化をする。だらか感触は似ているけれど中身はまるで違う。

一方、メンブレンキーボードでも固めのドームを使っていたりするとかくんかくんと入るタイプのものもある。 こちらを思いっきり上質化させたような感覚があるのがLibertouchだ。

Ultra Classicの感覚は全然違う。もうほかに例えようがない。 一番近いのはクリックタクタイルのメカニカルスイッチだけれど、これとも全然違う。 しかしメカニカルキーボードはどのタイプでも「自然」には遠い独特の感覚なのだが、それと比べれば自然な「押すもの」感がある。

一番近いのはNEC MATE付属のキーボードだと思う。 あれの「ぽこっ」てなるのを「かちっ」てなるフィーリングに変えて、上下にちゃんとスムーズな荷重変化を加えて、擦れ感をなくしたらUltra Classic。いや、そこまで変わったら何も残っていないような気がしないでもないけれども。

また、タクタイル系スイッチのメカニカルキーボードは軽快な分安っぽいと感じてしまうような動きを見せる(特にCherry軸は)が、Ultra Classicはより重厚で高級感がある。 メカニカルスイッチでもALPS製のものはもっとがしっとしたスムーズな動き(擦れ感も少なく、手応えもわかりやすい)をするのだが、残念ながらALPSスイッチのメカニカルキーボードは(というかALPSのキースイッチそのものが)新品では手に入らない。ALPSのスイッチはよかった、という人も少なくないので(舶来指向なのか、Majestouchが流行り始めた頃はALPSよりCherryなんて言っていた人もいたけれど)惜しまれる。

だが、個人的にはUltra ClassicがあればALPS軸を惜しまなくて済む。個人的にはCherry軸ってそんなに好きじゃない(軽々しいと思う)のだが、「タクタイル感があって上質なフィーリングのキーボードが…」という老人の愚痴を、Ultra Classicがあれば言わずに済む。 バックリングスプリングキーボードなんてALPS軸と変わらないレベルの骨董品なので、入手できなければ同じようなノスタル爺になってしまうのだが、新品で入手できる。幸せなことだ。

なお、Ultra Classicはしばらく使わないと真の動きを見せてくれない。

速度はRealForce、だが実際はLibertouch

最高速度だけ見れば一番速いのはRealForceである。

だが、実際のところRealForceで高速打鍵するのは結構難しかった。理由は、指を使っていたり動かすタイプの私だと誤打率が高すぎるからだ(ワードあたりの正確性は85-88%ほどでしかなかった)。 全てのキーボードの中で最も高い正確性が出せるのはLibertouch(ワードあたり96%以上)で、結構なスピードで淡々と打てるため、生産力はLibertouchが最も高い。

ただし、これは比較の問題だとも言える。 なぜならば「淡々と(誤打しない範囲で)打ち続ける」ということに関してはRealForceとLibertouchは圧倒的であり、アベレージはこの2台が飛び抜けて速い。Thinkpad KeyboardをはさんでUltra Classicが4番目のアベレージスピードになる。

淡々と打った時の速度にしてしまうと、RealForceとLibertouchで差を感じない。 がーっと打とうとしたときにはRealForceのほうがキーを叩くのは速くなるのだが、と同時に誤打率も上がってしまうので、トータルの生産性ではペースアップできるLibertouchに分があると感じた。 しかし、この程度の差では使い手との相性次第だろう。ミスが増えない叩き方をしているのなら、RealForceのほうがずっと速く叩けると思う。

疲れが少ないRealForce、テンション高すぎて疲れるUltra Classic

Libertouchもかなり疲れの少ないキーボードだが、RealForceはさらに疲れが少ない。 腱鞘炎予防にと言うだけのことはあると思う。

LibertouchもRealForceも35/30gも悪くないのだけどさすがに軽すぎて誤打率が上がってしまう。 正確な打鍵を得意としている人なら特にRealForceは30gでいくのがいいかもしれない。

疲れという意味ではUltra Classicは本当に疲れる。 キーが重いのもあるけれど、音が激しいので盛り上がり方が激しく、それに応じて消耗してしまう。

もっともキーの重さ自体は青軸や茶軸と比べて重いのはあれど、黒軸よりは軽く感じるしそれ自体での疲労はそこまででもない。 ただ、やや指の力がいる。指を寝かせてタイプすると重く感じてしまうだろう。私はオルガンを弾くので常に指を立ててタイプするし、それなりに指に力が入った状態でタイプするからそれほど気にならないのだが、ネタせてタイプする癖のある人にはややしんどい。 さらに反発は強いため、これに合わせて指を上げられないと疲労につながる。

Ultra Classicが疲れる最大の理由はテンションの高いそのフィーリングと音にあり、精神的な部分が大きい。 また、LibertouchとRealForceが非常に消耗しにくい軽快なフィーリングであるのと比べると、メカニカルキーボード類と比べれば疲れにくいとも言える。あくまで比較対象があまりにも疲労しにくいだけだ、とも考えられるし、逆にメカニカルキーボードも比較対象にすれば疲労が少ないキーボードだということもできる。

利便性はRealForce

RealForceはメディアキーあり、Libertouchはメディアキーなし、Ultra Classicは106キーボードなのでWinキーすらない。

気にするかどうかは人によるだろうが、私はメディアキーもかなり使うのでRealForceが最も使いやすい。

キートップはLibertouch

Ultra Classicのキートップは細く、面積が小さい。 このため最も打ちにくい。

RealForceも悪くないのだが、(黒だけかもしれないが)表面にざらざらとした加工がされている。 好みにもよるだろうが、私は指が感想しているような、あるいは汚れているような感覚がしてしまい、好きになれない。 もっとも、打ち続けていたらなんかマシになったような気がしないでもないので、そのうち気にならなくなるかもしれない。

RealForceにはハイプロモデルも試したことがあり、有力に見ていたのだが、指が深くはまりすぎて動かしにくかった。

相対的にはLibertouchが最もよいように感じる。 ただし、Libertouchも最高というわけではない。キートップに限った話をするのであればCENTURYのメカニカルキーボードのもの(BLACKシリーズのもの)が最もよいと思う。

Libertouchのキートップにはそれほど不満はないが、ほか2つに関してはよいキートップだとは思えない。 どのキーボードにもCENTURYのキートップを移植したいと思えて仕方ない。

Ultra Classicの音はなかなかやばい。 夜に使うのはかなりためらわれる。

Libertouchは私が持っている中ではかなり静かな方なのだが、バネの反響音がするため、通話中にはこの反響音がカンカンと響いてかなりうるさいらしい。

RealForceは静音モデルではないのだが、かなり静か。

果たして推しキーボードは

みんな違ってみんな良い。

いや、それぞれキャラクターが大きく違うので、どれがいいというのはすごく難しいのだ。 どれもそれぞれに素晴らしい。

ただ、常時ものすごくキーボードをうちまくる人の場合、Ultra Classic一本でいくのは難しい。 結構しんどいのと、一日中打っていると手が疲れてしまうのと、なにより結構気持ちが攻めていないと気持ち負けしてしまってひどく疲弊してしまう。 もっとも、そこまで常に打っているわけでもなければUltra Classicだけでもいいかもしれないが。

エンジニアにはUltra Classicはかなりいいと思うのだが、音がうるさいので会社ではちょっと使えない。

RealForceとLibertouchは「かなり似ているが明確に違う」のでどちらがいいか大変悩ましい。 どちらを勧めるかと聞かれればLibertouchなのだけど、どのみちこのふたつはヨドバシカメラで試せたりするから試して決めるのが一番だと思う。 RealForceが好みならRealForceのほうが無難だし、RealForceは結構くせがあるのでより万人向けなのはLibertouch。

と言いたいところなのだが、ちょっとそうもいかなくなってしまった。というのは、Libertouchが新型になって35gというこれはこれで癖のある仕様になってしまった。 確かに軽いのだが、35gにするとさすがに軽く触れただけでも反応してしまうため誤打率が上がってしまうのがひとつ。そして、そもそもLibertouchはこぷこぷしたクリック感が魅力なのだが、35gはリニアに近い感触になる。Libertouchの35gが魅力的かと聞かれるとちょっと…という感じである。 なので、45gは結局最良という感じだったのだが、今の状態では45gのシリンダーが販売されておらず、さらにLibertouchは従来の1万円台半ばという価格設定から3万円近くになってしまったため、「Libertouchがおすすめ!」とはちょっと言いづらくなってしまった。

私は多分、Libertouch(これは45gの旧モデル)とRealForceを中心に使っていくと思う。 今回比べた3つのキーボードはいずれもタイピングがたまらなく楽しくなるキーボードだ。

実際のところ今後はRealForceが中心になる可能性が高い気がする。 理由はやはりタイピングスタイルの変化に合わせてLibertouchで不十分と感じたからRealForceを加えたので、今の打ち方に合っているのはRealForceということだ。 どちらも一日中だらだら打っていられる素晴らしいキーボードだが、力を抜いて後傾して打っていられるのはRealForceだ。 ただ、RealForceとLibertouchのどっちがいいかは、どちらも打ち方を合わせられるようになった今となってはその日のモードの違いでしかないので、実際私はどちらがいいとかではなく使い分けることになると思う。 ちなみに、RealForceはテンキーなしなのだけど、これは私が後継スタイルに合わせたデスクがないので、脚の上において打ちたいという都合もあり、今回RealForceを買った理由のひとつである。

さすがにこの3つを揃えるのはマニアすぎると思うのだけど(だいたい、これを揃えるだけで7万円くらいするのだから)、これを使ったことがないなんて人生損しているような気がしなくもないので難しいところだ。(それをいうならメカニカル各種もそうだけど)

使い分けないにしても、とりあえずRealForceを有力と考えた上でLibertouchを試してどちらが好みか見極めればいいし、 Ultra Classicは試せないだろうけれども、とりあえず青軸あたりを試して「こういうカチカチは好きだけど、こんな軽々しいのじゃなくてがっちりした感じのが欲しいな」と思ったらぴったりの可能性がある。 あと、青軸を使ってみて戻りが遅い、反発が弱いと感じた場合もだ。

Ultra Classicもまた私にとってはなくてはならないキーボードなのだ。 この3つに関しては本当に好みの問題だし、さらにいえばそのときの体調や気分の問題でもあるのでどれがいいなどとは全く言えない。 それでも1本だけ選べと言われたらLibertouchだろうけれども…

なお、なくなる可能性が高いのは第一にUltra Classicで、Libertouchはなくならないと思っていたのだが、思わぬ形でなくなる可能性があることを示されてしまった。 RealForceは超人気キーボードなので当面はあるだろう。 キーボードはコストダウンの対象になって多様性というか、コストのかかるキーボードはどんどん失われていっているので、極上の打ち心地のキーボードは入手できるうちに入手しておかないと後悔することになる。 実際、私はUltra Classicは2枚持っているし。

LibertouchやRealForceは上質さに関して言えば比べるべくもないのだけど、フィーリング自体は市販パソコンに付属しているような(ぺらくないほうの)メンブレンキーボードとそこまでの大差はないので、「せっかく買うんだから特徴的な、高級キーボードでしか味わえないフィーリングが欲しい」と思うのであれば断然Ultra Classicだ。 Ultra Classic自体の製造は続いても(アメリカでも結構人気だから、事故がなければそう簡単になくならないと思う)日本語配列はダイアテックが作らせているだけなのでいつなくなってもおかしくないし。

余談。 LibertouchやRealForceの価値とは

LibertouchとかRealForceって、めちゃくちゃ打つ人のためのキーボードだと思う。 値段のこともあるけれど、その良さが尋常じゃない量を打たないことにはわからない。実際、私も打ち始め数分に関しては出来のいいメンブレンキーボード(FKB8811とか。いや、8811は安くもないけど)とそんなに差を感じない。もちろん、違いはわかるけれども、それはあくまで知っているからであって、FKB8811とかHHKB Liteとかと比べてこのキーボードでなければダメなんだと感じるのはちょっと難しい。

逆に短時間打つときは私はメカニカルキーボードのほうがフィーリング良く打てる。 緑軸もいいし、ゴムダンパーつきのG710なんかもすごくいいと思う。

ただ、それで何万文字も打つとなるとちょっと辛い。MATEのキーボードなんかも疲れにくいようにはなっているけれども、あれも何万文字も打つキーボードではない。

もちろん、誰にとっても上質で楽しいキーボードであることは分かるのだけれど、 生産量の多い物書きにとってはLibertouchやRealForceは「それでなければ困る」レベルの道具だ。

だいたい安いものなら1000円くらいで買えるキーボードに2万3万出すわけで、あんまり使わない人はちょっと受ける恩恵が少なすぎる。 一方、ものすごく打つ人にとっては、例え直感的なフィーリングは安いメンブレンキーボードと決定的には違わなくても道具としては決定的に違う、というかこれでなければダメなのだ。

物書きでMajestouchを使っている人は実は結構いるのだけど、MajestouchからRealForceにきたという人は結構多くて、こうした人は「より良い」というよりは「これでなければダメ」と感じている人が多い気がする。 メカニカルがダメなわけではないのだけど、物書きの要求にはちょっと応えきれない。「ALPS緑軸黒接点」みたいなのが今もあれば物書き用スペシャルキーボードとしてのメカニカルキーボードというものがあったかもしれないけれど、今はメカニカルキーボードはどちらかといえば「ちょっと上質なキーボード」もしくは「ゲーマー用」という感じだ。

Ultra Classicも物書きとしてはややしんどいキーボードだ。 一方すぐにテンションの上がるフィーリングだから、そんなに触らない人でもすぐ価値は感じられるし、エンジニアなんかは好きなフィーリングなんじゃないかなと思う。

Arch / Manjaro open-iscsiのサービスユニット名が変更

Manjaro Linux Stable Update 2018-10-25でopen-iscsiのサービスユニットがopen-iscsi.serviceからiscsi.serviceに変更になった。 これはArch Linux側でも行われた変更である。

結果的に、open-iscsiに依存しているユニットが正常に起動できなくなった(特に自作したサイトローカルユニットは)。 それに加え、従来open-iscsi.serviceをenableにしていた場合でも起動されなくなった。

必要な対応は以下の通り。

まず、open-iscsi.serviceという名前を用意する場合

  • /usr/lib/systemd/system/iscsi.serviceAlias=open-iscsi.serviceを書いておいた上でenableする
  • または/usr/lib/systemd/system/open-iscsi.service -> /usr/lib/systemd/system/iscsi.serviceというシンボリックリンクを用意する

iscsi.serviceという名前に合わせる場合

  • 他のユニットでopen-iscsi.serviceとなっている箇所を全てiscsi.serviceに修正する
  • 必要ならばiscsi.serviceをenableする

これはイニシエータの話だけれども、ターゲット側もopen-iscsid.serviceからiscsid.serviceに変更されているので同様である。

後進に、あるいは若い人に私が与えられるものは

最近、ありがたいことに、私が憧れだとか、私のようになりたいと言ってもらえる機会が増えてきた。

私は基本的には無名に近い。全く知られていないわけではないにせよ、 誰もが憧れるスーパースターではないし、著名人というわけですらない。

それでもそう言ってもらえるのであれば、少しでも何か渡せればと思う。

おおよそ、この話は中学生から20代半ばの人、あるいはエンジニアやハッカーの卵に向けた言葉になる。 前半は全般の人に向けたものであるが、圧倒的にハッカーとしての私に対する憧憬を口にされることが多いのでChienomiのほうで書かせてもらうことにした。

だが、最初に言っておこう。

「君のその欲しいは、労力を注ぎ、何かを犠牲にしてでもなし得たいものか?」

大概の人はこの時点で脱落する。 欲しがっていても、そのために労力を注ぎ、犠牲を払い、それを目指すのは嫌だという。

それは、欲してすらいない。ただ「おいしいところだけ欲しい」と口を開けて待つだけの愚者だ。

欲さなければ手に入らない。求めなければ届かない。

生きる

強いカードで勝負する

勝負になるように勝負する

「才能なんて関係ない」「才能なんてものはない」なんて言葉をよく耳にする。

だが、はっきり言ってしまおう。才能は前提だ。才能を気にしなくていいというのは、思考停止したただの願望だ。 人生は有限だ。向かないものに浪費するほど時間は有り余っていないはずだ。

私は、才能に救われたことは何度もある。一方で、才能のなさに打ちひしがれたことはその10倍はある。 だから分かる。才能の有無は明確なアドバンテージだ。あまりに開きが大きければ、努力の差を嘲笑うほどに差は開く。

だが、一方で人には適不適というものがある。 なにも才能のない、ディスアドバンテージを抱えていることで勝負する必要は全くないのだ。

まず、己を知ることはなにより大事である。 己を把握していない者は最初からスタートラインにも立っていない。

己を知るにはどうするか? 別に「自分探し」などといってぬるい旅行をすることで見つかるわけではない。 自分は自分の中にある。見つける方法は考えるよりない。これについては後述しよう。

基本的にはその人の中で才能の有無はばらついている。 才能の有無は根本的に「苦痛の多寡」であるとも言える。

あることをするときに感じる苦痛の程度というのは、人によって全く違う。 例えば私は、同じことを繰り返すことが大変苦手で、2回目にして耐え難いほどの、生きることの無意味さに身悶えるほどの苦痛を感じる。 だが一方で、単純な反復はさほど苦ではない、という人もいる。

もうひとつ、才能は「努力がどの程度報われるか」の差でもある。 才能が10倍開いていたら、同じ努力をしても10倍努力したのと同じ効果、という話だ。 人生の時間は有限である上に同時に進む時間の中の相対の話をするならばなおのこととてつもなく大きな要素であることは想像に難くないだろう。

このことから、「努力すると結果が出やすいもの」「努力や実行が苦になりにくいもの」が適していて、「いくら努力しても少しもつかめるように思えないもの」や「ほんと少しするだけでも耐え難いほどの苦痛を感じるもの」は適していない。

適していないことで勝負するのは、単に不利なだけで、やればやるだけ損をすることになる。 生きることにおいて全分野のすべてが必要とされることはありえないので、「使用するものはなるべく適したものが多く、適さないものは少なくなるように選択する」のが基本だ。

適している、というのは自分の中の相対と、他者との相対がある。 自分の中の相対として適しているものは負担が減りやすく、他者との相対として適しているものは強みになりやすい。 自分の中の相対として適しているものはライフスタイルに、他者との相対として適しているものはスキルに反映するようにすれば、自分の良さを発揮しやすいだろう。

自分と人とが違う、という点は常に認識しておくべきだ。 これは存在が違うだけではなく、同じ事実を前にどのような影響を受けるかからして異なる。 「自分が苦しいとき、相手も同じように苦しい」はかなり限られた条件でしか成立しない。 「自分は苦しいが相手はより苦しい」状況なら有利な運べるし、「自分は苦しいが相手はなんともない」ところで勝負しようというのは単なるマゾヒズムだろう。

強みを活かしてピースを揃える

まずは自分の強いところを理解し、どうすればそれを有効に活用できるかを考えることだ。

強みは潜在的には誰しも(少なくとも自身の相対としては)あるのだが、それがイコール強みとして反映されるということにはならない。 強みを強みたらしめるためにはそれを「強みである」と認識し、その上でそれを活かせる状況を作り出さなければならない。 強みであるという理解のないままでは活かしようがないし、理解していたところで発揮できない状況では宝の持ち腐れというものだ。

適材適所と言うように、強みを理解することによって自分がどのような状況に置かれるべきかを知ることができる。 その上で自分の強みを活かせる環境をどうやって成り立たせるか、というところに着目していくわけだ。

基本的には適している者が適していることをするのが望ましい。 結婚についてだって、専業主婦か、共働きかという二択になっていて、かつ専業主婦を悪しとする風潮があったりするのだが、実際は環境維持が得意な男性も普通にいるので、専業主夫というものが普通に成り立つべきであるとも思う。 それは「得意とするもの、できるものがやれば良い」ということである。

ここで重要なのは「適性(appropriateness)の問題であって能力の問題ではない」ということだ。 「その点において能力的に優れているほうがやる」のではなく、リソースや適不適の観点からよりコストが少ないほうがやれば良いということである。 私は維持系の能力も結構高く、特段訓練していない人よりはできるほうだが、非常に不適であるためミスが多く消耗も激しいので「リソース的に回さずに済むなら回さないほうがいい」というものである。

能力のほうは人の状態が不変ならば不変であるものなのだが、適性(appropriateness)のほうは状況などの外部要素によって変動するという点を忘れてはいけない。この判断は動的に行われるべきものである。

ただし、そのような状況は基礎値に対する変動係数であると考えられるため、適性(aptitude)が高い人はリソースがあり、かつその人にリソースを振ることでより大きな意味をもつ要素がなければ適性(appropriateness)も高い場合が多いだろう。

適している、いないの程度は人と物事によって様々だ。だが、なにかを成そうとするとき、その全てに恵まれている人はそうそういない。 だから、なるべく強力なピースが揃っているところからはじめて、完全に必要なピースが掛けているなら、そこを集中的に強化すればしっかり戦える強力な武器になる。

ポーカーで考えてみよう。1組のトランプから任意に選べるのなら、多くの人はスペードのロイヤルストレートフラッシュを組むだろう。 ではカードがたりなかったら?

基本的には「あと一枚そろえば強力な役になる」カードを選ぶだろう。少なくとも、ハイカードになる可能性の高いバラバラの、しかも弱い札を揃えることはしないはずだ。

実のところこれは、「目的のカードが多い」(フラッシュは9枚), 「成功時の役が強い」(ロイヤルストレートフラッシュ), 「失敗時のカードが強い」(フルハウスかフォーカードはスリーカードが残る)の戦略がありえるのだが、これはどういう方針で何を狙うかによる。1

だから、基本的にはなるべく「すでにピースがだいたい揃っているもの」や「ピースを揃えることで強力な武器になり、かつ他の人よりもそのピースを揃えるのが楽なこと」さらには「これを揃えるという発想がそもそも他の人にないもの」が揃うように、強みを伸ばしつつ欠点を埋めていくのが強い。

もちろん、実際は強い手札を目指さず取りやすいカードだけを取るという戦略も存在する。 だが、3と5のツーペアで勝ち続けられるほど人生甘くないし、そもそもそんな考えの者はこの文章をここまで読んでいないだろう。

自分に合った生き方を

君に信念はあるか。いかなる苦痛や理不尽と引き換えようとも構わない君の芯はあるか。

芯のない人間というのは面白くない。 だが、ここでいう「芯がある」とは、決して「良い思いをしたいと口をあけてまつような我儘」のことではない。

実のところ、 自身の主体性を持たず、誰かに尽くすというポリシーだって相当に強い芯なのである 。 芯があるのと我が強いのも違う。2

じゃあ、「これが自分の芯だ」などと決めてしまえるのかというと、それもまた安易な話で、本当に自分をわかっていなければ芯の通しようがないのである。 適不適、特性を知り尽くし、ディスアドバンテージを「できない、仕方ない」などと言うものではなくそれを抑え込む、あるいはカバーする方法も知り自分を使いこなすところまでいってこそ見えてくるものだ。

ちなみに、世界は総量的であり、人生も総量的なのだが、他者に押し付けることで自身が持たなければいけないものを減らして自身の総量を実質的に増やすこともできる…のだが、そんなことをしている時点で自分で生きていないわけで、言語道断であり、それは「生き方」などとは到底言えない。 「自分にあった生き方」というからにはまず自分が生きていなければならない。

だが、その上で自分が人生で使える時間の中で総量的価値が最大になるようにするには自分が苦手なことをなるべくせずに破綻させず、かつ自分が得意なことを多くすることでより多くのことを生み出す必要があるし、実力を発揮するためには自分のコンディションを損なわず実力が発揮できる状態をなるべく保たなければならない。

これを実現するものが、つまり「宇宙的に見て自分の生存した価値が最大になるように生きる手段」が “自分に合った生き方” ということになる。 ただ、これに関しては価値を量的に判断するという行為時代が非常に難しいので3判断に困るかもしれないが。

ディスアドバンテージは徹底的に抑え込む

フィジカル

人にはだいたい、避けて通れないディスアドバンテージがある。

特にフィジカルウィークネスやメンタルウィークネスは、そもそも避ける、そしてコストをかけてケアする、というのが基本になる。

例えば使うと肌がただれるクリームがあるとする。これを使い続けようとする人はいないだろう?

「弱いところはわざわざカバーする」のだ。

一例として言えば、私は単に潔癖症なだけでなく、実際に細菌などに弱く、普通に生活していると肌がひどくただれてしまったりする。4 そのため、使っている石鹸類はかなり洗浄力の高いものだ。そうでないとただれるし出血するしでなかなか大変なことになる。

これは、若干コストがかかる5。 だが、ここにコストをかけなかったらどうなるかは明らかなのでかける。 必要であるにもかかわらず耐えて余計な苦痛をもたらす、というのはバカバカしいにも程がある。

こうしたことにも口出しする人は結構多い。石鹸でも、自然派のものを使えとか6、酸は危険だとか7言ってくる人がいるくらいだ。

また、耳が非常に良いためにノイズにとても弱い。可聴音域が上にも下にも常人の3倍ほどあるのだから仕方ないが、極めて敏感であり、 睡眠を妨げられる可能性も高いし、誰も気にしないような音でも集中力を乱されたり体調を崩したりして非常に辛い。 そのため音楽を聴いていなくても場合によってはイヤフォンをしていたりするし、ノイズキャンセリングヘッドフォンは持っていないため(そしてそこまで音を遮断してしまうのはさすがに危険であると考えているため)家では場合によってはイヤフォンをした上でシューティングレンジ用のイヤマフを併用していたりする。

睡眠を取らないことでパフォーマンス低下の度合いが強い、あるいは健康を害する確率が高いのであれば「睡眠を確保すること」を前提として、これを侵害するものは許容できない選択である、とすれば良い。

耐えることが必要なときはあるし、耐えられることは重要だが、 「必要もない苦痛を生産して耐える」ことは美徳でもなんでもなく、ただ愚かなだけだ。

だが、短絡的ではならない。脚が弱いからといって直ちに歩かないように生活しようというのは愚者の考だ。 「脚が弱い」という大きなディスアドバンテージを低減することが可能なのであれば長い目でみたときにはそのほうが得をする。 ここで重要なのは「苦痛を避ける」のではなく「無駄な苦痛を伴う損失を避ける」のが目的であるということだ。

だから、病気や怪我は早く治したほうがいいし、筋トレやダイエットを始めるなら早くしたほうがいい。 そのほうが損失は減るからだ。

アレルギーや過敏症、その他の「どうしようもない」に近いものは、それが出現しないように徹底したほうが良い。 できることはしっかりやるべきで、そこは妥協すべきところではない。

例えば、生理が辛い女性は早く産婦人科にかかること。

メンタル

メンタルといいつつ実際はもっと広い話なのだが、「特性的な問題」は「自身を支配下に置く」ことと、「問題そのものを低減すること」が両輪だと言っていい。

精神的な問題であれ神経的な問題であれ、そして(私のように)遺伝子的な問題であれ、問題の本質は「十全に自身を支配下に置けない」ことにある。これは以上に苛立たしい事態だ。由々しき事態だと言っても良い。

その改善方法はいろいろあるのだが、いずれにせよ「正しい攻略法で立ち向かわねばならない」のである。 私の持っているデータとしては世間に(あるいは医学的に)言われていることがあまり正しくないことも知っているのだが、根本的には「どうやれば攻略できるか」を考えるのは非常に有効だ。

例えば私は忘れ物がとても多い。忘れ物というか、あらゆることを忘れる。注意力と記憶力に障害があるためだ。 これはトレーニングによってもカバーしている。だから以前より問題としてはずいぶん軽減された。 一方で対処療法も欠かさない。面倒でも現在進行中のこと、考えていること、予定として思っていることをはじめ、なるべく多くのことをメモするようにしているし、これにはTODOリストやアラーム、通知などを活用している。 また、覚えることに関しては記憶にとどめておくことは極めて難しい一方で、状況として覚えたものはむしろよく覚えている方なので、なんらかの状況を伴うようにしている。

どうしても人が(他の動物や植物もだけど)いる環境に長時間、あるいは不意にいることができないためそこをコントロールできるように暮らしてきたし、だから「勤め人になる」という選択肢は基本的に私にはない。この選択肢を避ける時点で他の選択肢を生み出す必要性が生まれ、選択すべきことと、そのためにすべきことが一気に増える要素だ。

ここで言う「メンタル」というくくりはあくまでフィジカルの対語として使っているだけなので、あまり言葉にはとらわれないでほしい。

私の例で言おう。私は一時記憶力がものすごく低いので、思いついたことは大部分を忘れてしまう。 だから、とにかくメモするようにしている。枕元と机の両方にメモがあり、さらに机と机付近にはホワイトボードもある。 これは「速さ」を求めた結果であり、キーボードに手があるのであればコンピュータ上に書いたほうが速いため、ただちにコンピュータでもメモをとれるようにしてある。 また、人の名前を覚えられないため、人に関する情報も詳細にデータベース化している。

人のことを考えやすいため、不快な相手に触れると「気にしない」という選択肢がとれない。人のことを考えやすいというよりも、究明と共感に走ってしまうためというべきかもしれない。 だからひとりが好きかどうか以前の理由として付き合う相手は相当に選んでいる。これは単純な二元論にはなりえず、「ひとりが好きなわけでも、人付き合いができないわけでもないが、不快な相手と付き合ったり信念を曲げて阿るくらいなら孤独でいる」というポリシーなのである。 もちろん、それは私の選択だから、「そのポリシーの結果孤独とならないめぐり合わせになっていない」ことを嘆くことはあっても、このポリシーを侵すような、あるいはそれを人のせいにするような発言は(ネタとしては別として)していない。

これは単に「不快にならないように」という単純な話でもない。「感情に振り回されやすい」「嫌なことは何十年たっても忘れない」「身体的なダメージも大きい」といった自身の特性を踏まえて、他者に負担をかけずにこうした自身を発揮することを損なう要素を低減するために人を遠ざける選択をしているのである。

やるべきことが多すぎるのも苦手で、3つくらいまでならいいのだが、「あれもやらなきゃ、これもやらなきゃ」となったときに「なにもできなくなる」可能性が高い。 集中できなくなって能率が極端に低下してしまうのだ。だから、そのようなときは気になって仕方ないものの諦めるようにしている。 そして、こういうときはだいたい「気にしない、今日はこれだけやる」と思ったところで気になってしまうものなので、できるだけ「手を動かしていれば終わる」タイプの作業から消化するようにしている(掃除とか、皿洗いとか)。

私の場合は最も大きい部分としては「一定の生活をするのが困難」「一定の状態を維持するのは不可能に近い」「人の近くで過ごすことは場合によっては命に関わる」といった理由(と体が非常に弱いという理由)がある。 これは社会生活を送ることが極めて難しいという結果になる。しかし引きこもっていられるわけでもない(生活上だけではなく、精神的にもとじ込もれない)という制約がかけられる。

解消可能であれば解消したほうが良い、とも言える。 これを受け入れる場合、著しく社会的困難性が上がる。解消に苦痛を伴ったとしてもそれによって解消されるものが非常に大きい。 だが、私の場合はその解消は困難だ。単に極めて高い危険をずっと伴いつづけ、ただその苦痛だけを受け入れることでいっぱいになってしまう。

それでは本末転倒なので、現実的にはそれを拒否するしか選択肢はない。 それは同時にそれを拒否するための困難を受け入れるということとイコールである。 このような場合においては「しっかり決めること」「自分で受け入れること」「覚悟を決めること」がとても大事だ。中途半端はいけない。困難が大きくなるほど、それは命取りになる。その困難をいかに攻略するか、ということに注力していかねばならないからだ。 中学生のときから音楽家、フリーランスの音楽家からビジネス経験のないまま起業、といった経歴もそうした背景がある。

こうしたメンタル面も含めて軽減や解消、あるいは対応は他者に負担をかけないことは非常に重要だが、負担することを積極的に望んでいる人に対してはこの限りではない。むしろそうした人に持たせないほうが問題だと言っていいくらいだ。 力になってくれる人の存在は極めて尊い。そうできる人は恵まれている。

「嫌なことはしない」「好きなことをする」構わないが、ただし…

私が割とそうしているように思われるようなのだけど、よく放言として見るそのような言には基本的に賛同しない。 なぜならば、大概そこに何の責任も持っていないからだ。

まずはっきり言っておくが、選択として「嫌なことだからしない」「好きなことだからしたい」という基準で決定すること自体は悪くない。

ただし、当然に自身で責任を負うならば、である。

先にも言った通り、こと日本で生活することに関して言えば、世の中で言われているように生きるのが圧倒的に楽で、そこから外れることは重大な迫害を伴うようなこともある。つまり、そのような選択基準は、その時点で「それと引き換えにいかなる苦痛を伴ったとしても、いかなる困難を伴ったとしても、それは選択の代償である」ということを前提としていなければならない。

そうでない場合はただの悪意ある我儘であり、邪悪というものである。 自分さえよければいいというのは常に成り立たない。他者を食い物にして生きるくらいなら今すぐ生きることを諦めたほうがいい。

現実から逃げるのも意味がない。 それは他者を犠牲にすることなく戦う意思を持つものだけが口にしていい言葉である。

言い換えれば、 そのために自身がより多くの犠牲を払ったり、苦労したり、理不尽な目にあっても構わないし、どんな結果になってもそれを自分持ちで戦う意思があるのであれば、嫌なことを避けて、好きなことをすれば良いのだ。

「好きなようにする」は誰かになすりつけて生きることではない。

学校に関するお話

ここ数年は聞いていないが、割と

  • 学校に行きたくない
  • 学校に行っていない
  • 勉強したくない

という相談はあった。

この3つはそれぞれ全く別の問題で、それについての考察は色々折りに触れてしているのだけど、消えてしまっているものが多いので、簡単にまとめておこうと思う。

まず重要な点は「学校にいくか行かないかということは人として決定的な差にはなりえない」という点である。 変化はするが、それが何かを決める、という認識は正しくない。それは「行ったか行かなかったか」という時点で確定しているわけではないからだ。

なんといっても学校に行くか行かないかによって時間量が変化するわけではないので、「学校に行って何をするか」「学校に行かずになにをするか」が重要なのであり、学校にいったところで授業に取り組みもせずただ時間がすぎるのを待っているだけであれば行っている意味などないのだ。

社会的要求という点で大きな問題があるのだが、「そんなものは些事である」と男らしく(あるいは女らしく)切り捨てるとするならば、学校に行くことは「何を学ぶか」「どう過ごすか」を大きく制約されることになる。

そのために、まず勉強が得意な人ほど学校にいかなくても良い。 逆ではないか、と思うかもしれないが、勉強が得意というのは成績が良いということではなく、

  • 目標を立てて
  • 実際に実現可能な目標への道筋を設計し
  • 実際にその目標達成に向けて行動する

というのが得意という意味であるため、それが自力でできるのであれば学校で学ぶことができることよりも多くのことを学ぶことができる可能性は高い。 自分の関心事に偏らないようまんべんなく行動を設計し実際に行動するというのはかなり難しいので学校に行ったほうが楽だとは思うが、学校に行くことが損失になる可能性というのは結構高い。 これは、主に煩わしいだけなのに必要のないことを要求される人間関係とか、ただ恭順を示すためだけの形式とか、学術と育成という目的から逸脱した無能な教師とかにあたってしまった場合だ。

ぶっちゃけ、協調性はライフスキルなので必要なものなのだけど、選択性に乏しい非共同体であるにもかかわらず常に協調することを強要するのは単なる同調圧力なので全く意味がない。

選択肢は広くもつべきだ。これは保護者も含め、場合によっては引っ越す、あるいは学校に行かないような可能性も視野に入れて状態をしっかりと検討し、最善策を見出す必要があるということだ。だから、これは簡単な話ではないのだ。

しかし、これは強い意志と弛まぬ努力を前提としたものであり、「勉強したくない」「面倒だから行きたくない」は全く別の話である。 そんな者は学校に行こうが行くまいが落伍するより他にないからだ。 時間は「どう使うか」が問題であるため、そのような者はいくら時間があったところで何かを為しはしない。

勉強できることの尊さはさすがに若いうちに気づくのは難しい。 私の場合は根本的に強制されて、意味がわからない教え方と、努力を反映することを協調性がないとして恭順を演じることを求められる学校というものが大嫌いだったし、その延長として勉強が嫌いだった。そういう人は少なくないだろうし、学生のうちは勉強に対してネガティブな要素が多いのだ。

実際、私は当時(小中学生)でも量子力学や計算機科学に関しては熱心に勉強していたし、根本的に勉強が嫌いというわけではないのだけど、学校の勉強はしたくなかったし、宿題もしなかったし、試験勉強は高校の卒業試験までしたことがなかった。

だが、今になって、自分が特に関心を持っていなかった分野、特に数学や歴史や化学に関しては「ちゃんとやっておけばよかった」とものすごく思っている。だいたいは教え方の問題で、実は学校の教科書で学ぶということ自体は隙がない。

当時だって例えば中学生のときはエレクトーン、作曲、デザイン、イラストレーション、文筆、演劇、自転車をプロとして、あるいはプロを目指すのに準じるレベルでやっていたのだから、そこまで怠惰に過ごしたという認識もないのだが、それでも今考えれば努力を欠いた、あれほどあった時間を有効に使わなかったという気持ちはものすごく強い。

だから全く気づかないだろうけれども、本当に学生のうちの勉強に使える時間は貴重なのだ。 あと、遊べる時に悔いなく遊ぶことも。大人になったら子供のときのような輝きをもって遊ぶことは困難だから。

大学進学に関してはまたちょっと別の問題があり、高校までは多くの人が行くべきものだが、大学に関しては多くの人が行く必要のないものだと思っている。 理由は、「大学に言っても無駄だから」だ。

まず勉強と研究の違いはわかっているだろうか?

勉強というのは既存の知識を獲得する作業だ。 例え言及されていない疑義があったとしてもそれを差し挟む余地がないのが勉強である。 対して研究というのは未知の知識を開拓する作業だ。 これは別の言い方をすると「勉強による獲得対象となっている知識の否定を試みる作業である」とも言える。

大学進学というのは勉強の段階を完遂し、研究の領域を始めるところまで進むものだ。

ところが、私は一般の大学8の学部生で「どんな研究をしているのですか?」と聞いて嬉々として応える人や、卒論に書きたいことが尽きないような人を見たことがない。いないことはないだろうけど。 「そんなの当たり前」と思うかもしれないが、院生だったりすると普通にいるし、そもそも大学というのは研究機関だし研究者に研究のことを聞いたらみんな大きな子供になるものなので、本当に研究したい、研究している人ならそういうものなのだけど、そうならないのであれば大学に通う意味のない人であるということになる。

私から見たら、どれだけ一流の大学を出ているかよりも、どれだけ熱心に研究に取り組んだかのほうがずっと大事だと思うのだけど… もっとも、本気で研究したい人としては研究に必要なものの入手のしやすさや、研究の充実度や予算を考えるとその分野で一流の大学でなければまともに研究できないという結論に達するため、本気で研究したい人は無理してでも一流と呼ばれる大学に行きたがる傾向があるけれども。

これはもっと明らかには、だいたい高校の進路希望なんて大学はステータス別で上下に基づいて決めるだけで、「○○大学に行ってxx教授の元で△△について※※な研究をしたいので○○大学が希望です」みたいに出てこない時点で終わってるとも言える。

大学は勉強するところではないということ自体わかっていない人が多い。

だから、無駄なので大部分の人は行かなくていい。 叶うなら博士にいって、さらに叶うならそのまま研究して過ごしたいと思う人が行けば良いのだ。

私のカードの引き方

私の場合、弱いカードは本当に多い。それは、生き方や振舞いに重大な影響を与える。選択肢を剥奪するレベルだ。 これにどう対応するか…という話しをひとつひとつしていると果てしなく長くなってしまうし、私が抱えている弱いカードはかなりの部分他の人には当てはまらないからあまり参考にならない。

一方で非常に強いカードも多い。だが、こちらはそのほとんどが後付である。 弱いカードが(環境的なことを含めて)あまりに強力すぎて並に過ごしていたらとても生きていけないので、弱いカードを攻略するためにできる限り強いカードを育ててきたから、という感じである。

基本的な性質でいうと、「だいぶ高めのスタート地点」と「桁違いの伸びにくさ」というものが大きい。

初期値が高いから一発勝負の場合には有利だし、ハッタリも効く。これは割と武器になる 経験がなくてもとりあえずハッタリをかましておけばそれを実証する段階ではそれなりに形にできる。 ただし、これは完全に小手先技なので戦術としてすら使えないレベルだ。言ってみれば軽いバフスキル程度にしかならない。

一方伸びにくさ、というのは、「はじめてやった」ときには天才かと騒がれるほどの能力を見せるものの、またたく間に追い抜かれるのである。 もちろん、リードしてスタートしておいて、すぐに追いつかれ、追い越されるというのは精神的なダメージも結構大きい。

どれくらいか、いくつか例をあげよう。

私は将棋がそこそこ強いのだが、実は将棋をはじめてから初段になるまで16年かかった。 幼少からはじめたといってもこれは長い。常にまじめに将棋を取り組んできたのに、というわけでもないのだが、片手間にやっていてもこれは長すぎる。 中学生以上であれば速い人なら数ヶ月程度で初段になってしまう。奨励会に入るレベルの人だと1ヶ月とかだったりする。 一般的には遅めでも2-3年といったところで、16年というのは本当に長い。最後3年ほどはそれなりに熱心に取り組んだので、2級程度の実力がある状態から初段までも3年かかったということになる。

エレクトーンの演奏力のほうも私は1年目で7級相当だった。 7級というと長年やっていても到達できずに諦める人も少なくないレベルである。1年目でこのレベルというのはそれなりに注目もされるし、ジュニア時代に選抜に入っていた理由でもある。 ところが、「毎日少なくとも3時間」という練習をしていながら8年やって5級(も怪しいくらい)相当までしか伸びなかった。 6級からはプログレードなので1級の重みが全く違うのだが、5級というのは結構平凡である。ぶっちゃけ5級ではとてもプロとして活動する気にはならない。田舎で個人的にちょっとエレクトーンを教えている人レベルでしかない。高校までやっていればコンテストに出るレベルの人であれば5級には到達するのが普通だし、実際の内容としても8年やっていて「ほとんど変わっていない」のが現実だ。実際、3年目以降は弾ける曲のレパートリーは増えなかった。 小学生のときは地方トップレベルだったのが高校生のときには平凡未満になっていたことから「伸びの悪さ」はわかるだろう。

これには多分に「練習が悪かった」というのも大きいのだが、実際のところ私は作曲がメインだし、コンテストも作曲に注力しているから、と誤魔化していたが、それは本当に誤魔化しで、単に実力が増えていないので年齢が上がるごとに立場は苦しくなる一方だった、というのが現実である。

私が本質的に強いカードは極めて説明が難しい。 説明しやすいところでは圧倒的空間把握能力なんかもあったりするのだが、それも含めて私が本当に強い部分というのは生きるためには役立つのだが、職業的には 全く 活用できない。 対外的には役に立たない要素も非常に多い。これらを活用することで様々な局面で戦術的有利を築くことはできるのだが、直接に戦略級のものはなく、逆に戦術的有利に頼りすぎて戦略に落ちることも多々あった。

これは、素の状態では強いカードなんてないに等しい。 いってみればゴミだけを取り揃えたデッキにエクゾディアパーツを4枚入れておくようなものである。9

ということは「今は持っていないが伸ばすことで使えそうな部分をカードとして使えるところまで育てる」以外の選択肢がない。 ☆2だらけなので手持ちの☆3を☆6にしようみたいな話である。

ここで意味を持つのが「戦うために使えるカード」と「戦えるようにするために使えるカード」である。

私の場合、「考える」「追求する」「真面目」「執拗」「努力」である。

とにかく徹底していて、深堀りしていくことでどこまでも突き進むことができる、という性質である。 これは、効率こそ悪いが☆2を☆6に変えることのできる黄金のスキルでもある。

考えてもみて欲しい。私の成長速度は本当に1/10とかそんなものなのである。 しかも、他人よりはるかに努力をつぎ込んでも、である。努力量に対する成長率でいうと1/20もあれば有望なほう、という有様だ。

想像してみてほしい。他の人と同程度になるためさえ20倍の努力が必要である。 20倍努力したところで、そのちょっとできる程度の人がだらけて気がむいたらちょっとやる程度の努力を払うだけで簡単に追い抜かれるわけだ。 嫌にならないか?

私はあんまりならない。

普通は嫌になる。だが私は嫌にならない。 他者と比べて劣ることも、他者よりも苦労することも、非常に多くの努力をすることも、それがあまり報われないことも、果てしなく努力しつづけなければならないことも、私は苦にならない。 努力することが好きで、努力によって一歩ずつでも自分が前に進めることが素直に嬉しい。 少しでも前進したと思えればまだまだ努力していられる。

確かに努力に対して報われる量は少ない。 だが、そこまで辛い思いをしても努力が純粋に楽しいと思えるのは「才能」なのだ。 そして、無限に努力し続ければ前人未到の領域にたどりつくことが可能なカードも持っているため、ただただ自分が望むまでに努力と追求を果てしなく、果てしなく、果てしなく続けて今に至る。そうやって強力なカードを並べてきたわけだ。

だが、辛くないわけではない。どれほど辛くてもそうせずにはいられない、ということにすぎない。 ここで意味を持つのが「執拗さ」である。

考えても見て欲しい。将棋で初段になるまで16年である。早ければ数ヶ月で達成できるものに16年である。 追い越されもする。馬鹿にされもする。「俺は3ヶ月で初段になったんだぜ」とこれみよがしに言ってくる人だってたくさんいる。 そして負ける。とにかく負ける。普通に小学校低学年くらいの子にだって(本当に強い子だと)負けたりする。 才能がないのは明らかで、別にこの先に夢見るものがあるわけでもない。そもそも、「将棋大好き!」というわけでもない。ちょっと興味があって楽しめる程度というだけだ。

それでも16年続けて初段に到達する、というのは執念である。 だが、これは私にとって特別ではない。だって、別に「将棋大好き!」というわけではないのだから、必然的に特別な執着心がない。 しかし、私の場合「多少興味がある」程度のものに対してもそれだけのエネルギーとコストを払えるし、投げ出すことなく努力していられる。

相対的にみれば、「報われない状況で苦労しつづけ、努力を重ねる」ことの苦痛が少ない。 10倍の努力が必要でも努力の苦痛が1/10なら払う苦痛の総量は同じである(払う時間と犠牲が全然違うが)。

全体でみれば努力の効果は薄いが「努力し続けること」に特化したカードを揃えてることになり、結果的には戦略は常に「ひたすら真剣に向き合い、ただひたすら努力する」を基調にしたものになる。

一見すると泥臭いだけで誰にでも適用できそうな話に思えるが、案外そうでもない。 実は努力はある程度の領域で頭打ちし無効になる可能性はそれなりに高いため、普通は効率と選択のほうが大事である。 ところが私の場合努力によって前人未到領域に達するためのカードがあるため、莫大なコストを払いつづけることで強力なカードになることに高い期待が持てる(もちろん、それなりに向いているものでなければ達成より前に人生が終わるが)。

「楽しむ」「放棄する」「怠惰に過ごす」といったことが できない という弱いカードも揃えていることから、なおさら他に道はない。 「果てしない努力」というのは結局のところ万能薬として機能することから、戦略的にも戦術的にもこれが核になる。

自分にどういう戦い方ができるのか、どうやって戦えば意味をもたせられるのか、ということがわかっていれば方針を立てるのは簡単だ。 方針を立ててしまえば道が見えているのだから、ただそこを進むだけだ。

エンジニア、ハッカーとして

文系・理系問題 と 学業

そもそも文系・理系と分別すること自体に意味がまるでない。

特に理系が文系をバカにする、という構図があるようだが、最高に愚かしい。

まず、「マウントをとろうとするとき、それをしようする人はそれによって自分の優位を示せると思っている」という前提がある。 そうでなければマウントの取りようがないからだ。

だからここで選択することは、相手に対して何が有効かがわかっていればわざわざそれを選択するし、相手が何かをマウントをとろうとした返しであれば同じカテゴリから返すのだが、そうでなければ「本人の中でプライドの根源となっているもの」である、と言える。

(本人の中での)偉業をなし遂げればそれが自身を代弁するものであるように思えるだろう。 そうでなくても取り組んできた実績などでもいい。

だが、「理系・文系」ということでマウントをとろうとするということは、「自身について科目選択以上に言及すべきものが何もない人間である」ということを示しているのと同じなのである。

これは出身校に関しても同じで、受験勉強以上に努力したものも達成したものもなにもないまま今に至るのだろう。

そのあたりのことでマウントをとろうとする人は関わる価値がないと直ちに判断して構わないだろう。 努力をせず向上心もなく建設的でもない人と関わって得られるものは乏しかろう。

また、コンピュータそのものに関していえば「学校で学ぶ」ことは(専門学校も含めて)意味はほとんどない。 自身に意欲がなく、教えられなければ学ばないのであれば本人の相対としては意味があるかもしれないが、この世界にはコンピュータが大好きで、四六時中学んでいたい人にあふれている。 「研究費をもらってひたすら研究していられれば最高なのに」と思う人も少なくないし、寝食が学習や研究のためのものになっているという人すら珍しくもない。

このような学者のような人間が実務をこなす者の中にたくさんいる分野というのは結構珍しい。 コンピュータサイエンスの論文がなんらかの権威によって認定されることのない形であることの一端でもあるだろう。10

だから、まず「教えてもらわなければ学ぼうとは思わない」という時点で素質がない。 素質があるなら学校で学べることはあまりない。その時間があればコンピュータについてはより多くのことを知ることができるからだ。 望むなら最新の研究にもいくらでも触れることができる。

むしろコンピュータに関して言えば、コンピュータ単独で成り立つことはかなり少ないので、エッジの効いたことをしようとすると他の分野の非常に専門的な知識が求められる。 例えばAI関連なら数学と統計学の知識は不可欠である。これは、ちょっとかじった程度では到底足りず、これらの分野の研究レベルがコンピュータで応用できるレベルとして反映される。

私の場合、コンピュータのスキルを活かすために日本語学と心理学と音声学に関する能力がかなり活用されている。 また、実用的スキルとして文章(国語)スキル、心理術、音楽スキルも積極的に活用している。 コンピュータで勝負する上で私が差をつけられるのはこれらのスキルの高さであり、これは「コンピュータに加えてかじっている」程度ではなく、「これらの分野でも一級の専門家としてやれる自負はある」レベルである。11 そして、そうでなければ勝負にもならない。

そして、これで勝負できたとしても数学に関する知識の不足を大きなハンディキャップとして感じている。

はっきり言おう。 コンピュータを極めたければ、 学問を学ぶことは重要である し、 高いレベルの研究ができる大学で質の高い研究をすることは極めて大きな意味を持つ

「数学なんて何の役に立つのか」なんて言っている者よ、喜ぶがいい。 コンピュータの世界では、学んだことで研究ができない者も、研究を反映させることができない者も三流以下である。存分に役立てるがいい。

ちなみに、私は大学に行ってすらいない。 まぁ、行ったとしても芸大志望だったから、コンピュータサイエンスにはあまり活用できていなかっただろう。 そのことについて悔いる部分は多いが、それはコンピュータサイエンスのためではない。コンピュータサイエンスのために悔いるのは、(高校のときは忙しかったから仕方ないとしても)中学のときに数学に真剣に取り組まなかったことである。

論理的思考力

論理的思考力の話をするときに、まず切り分けなければならない問題がある。

この世の中では「論理的思考力」と言ったときに示しているものが「論理による思考の能力」と「論理っぽい思考をひねりだす能力」の2種類があることだ。

後者は切り捨てて良い。

ではどうしたら論理的思考力が得られるか? それは、論理によって推測、仮定、論証を行っていれば慣れる。

これに求められるのは、「自分の願望は無視すること」と「そこにない情報を加えないこと」と「思ったのと違う結果が出ることを喜ぶこと」である。 それは、科学者として最低限の資質でもある。

基本的なプロセスは「こうなのではないか?」と思ったときに、それを補強する要素を探すのではなく、それを否定可能な要素を洗い出し、否定可能な要素が偽であることを徹底して証明するというものである。補強することはあまり重要ではないし、そもそも否定要素がひとつでも真だった時点でその仮説は成り立たないので、無駄なプロセスになるだけである。

さらに、自分では証明ができたと思っていても、否定可能な要素に見落としがあるだけかもしれない。 誰かが自分が証明したことに対して偽であることを証明した場合、まず自分の証明したことが偽である可能性を考えることが重要だ。 その上で、自分の証明を偽とする証明を偽とする証明がないかを検証する。ここで真であることが証明できるか、あるいは偽であることが証明できないのであれば、自分の証明を偽とする証明は真であるとして自分の証明は偽であったとみなす。

命題が偽になることも、証明が偽になることも無駄ではない。それは前進であり、喜ぶべきものなのだ。

科学者に、研究者に終点はない。常に前進し、さらなる真理に近づくためには、そうした前進を繰り返し、さらなる発見を求めていくより他にないのだ。

プログラミング言語

プログラミング言語に関しては良し悪しというのもあるのだけれど、よく使われる言語に関しては良し悪しよりは好みの問題のほうが大きい。 そして、好みの問題はそもそもとても大きなことだ。

言語は思考に影響する。 プログラミングをやっていれば自然と思考はプログラム的になっていくし、そのプログラム的思考の手順は自分の常用する言語のそれに近づく。

「手に馴染む」という言い方をするが、「自分の思考に近いプログラミング言語を選択する」ということはとても大事だ。 私がRubyを好むのは、それがしっくりくるからである。

儲かるからという理由で言語を選択するのはあまり関心しない。 自分になじまない言語を主とするのはただ人生を損失するだけだし、やむを得ない場合でも業務で使う言語とは別に特選言語を持っている人は多い。

OS

今のWindowsはない、とは思う。 今のWindowsはあまりにも時間を無駄にしすぎる。Active timeを奪ったり、hackerのリズムを崩すのは禁忌であると言っていい。 また、能率的に進めるのを妨げる要素も大きい。

Macはそれよりはマシである。実際、Macを愛用すhackerはかなり多い。

だが、私は最も生産性の高いOSはLinuxだと思う。

FreeBSDも悪くはないが、どちらかという安定した環境で連続的に運用するのには適するが、様々なことにトライするにはちょっとコストが高い。

これはちょっと正確性を欠くかもしれない。正直、Gentooを使うならTrueOSを使っても大して変わらないし、DebianやFedoraを使うよりは楽かもしれないからだ。 これらはそれぞれの理由でコストが高い。

私の場合Arch LinuxやManjaro Linuxがあまりにも快適なので、ちょっと他の選択肢は考えがたい状況にある、というのがひとつ。 そして、Linux固有の機能(アプリケーションの話というよりは、カーネル機能などの話)をかなり使い倒しており、FreeBSDで同じことが出来ない、あるいはやりづらいものが結構あるというのが主な理由だ。 私としてはもしMacかFreeBSD(TrueOS)かで選べといわれたら(かつ、ハードウェアも同程度の性能の範囲でFreeBSD側はPCだとしたら)FreeBSDを選ぶだろう。 だが、実際にはFreeBSDを選べる条件では基本的にはManjaroあるいはArchが選べるので選ぶことはない。

なお、OpenBSDやNetBSDは、あまり一般のデスクトップユースには適さない。 それぞれ適したケースというのはあるのだが、私の場合どっぷりとLinuxの機能を使ってしまっているので、この実際にそうしたケースでもOpenBSDやNetBSDを使おうとしたことはない。

実際のところこのあたりは宗教問題なので普段は「自分にあったものを」というのだが、これを読んでいる人は私からなにかしらヒントを得ようとしている人だろうから、私の判断の話をしよう。

私は、私が使っていることからも明らかなようにManjaro Linuxを使っているし、特にMacを使いたいとは思わないし、Windowsは使いたくない。 最大の理由は時間である。なにをするにしても常に時間は足りない。早く、確実性をもってできることはとても尊いのだ。

hacker的なマインドを

まずもって、物事を突き詰めたくならない人はhackerにはなれないし、エンジニアにも向いていない。

この向き不向きは重大だ。才能が努力で埋められるなどという信念を持っていたとしても、「それが楽しいと感じるか否か」は努力に決定的な差をもたらす。

hackerの性質とは、「仕組みが気になる」「どうなっているのか気になる」「知りたい」「いじってみたい」といった気持ちがコンピュータやテクノロジーに湧くかどうかだ。

また、知的好奇心が豊富かどうかも完全に隔てるものだろう。

あと、事実をありのまま受け入れられない人もhackerには向いていないと思う。 その人が持つ属性(人種、性別、国籍、経歴、所属、知名度その他)が気になってフラットに見られない人はhackerにとって重要な分析と判断に問題があるわけだから、適しているとは言えないだろう。

エンジニア ≠ hacker

今更になってしまうのだが、 私はIT業界人ではない ということをとても強調しておきたい。 今現在そうでないだけでなく、そうだったこともない。

知人にはIT業界に勤めるエンジニアは多いし、私もときどきスカウトされたりするのだが12、それでもIT業界にいたことはない。 根本的に私の指向と違うからだ。

基本的にIT業界はあまり関わりたくないとすら思っている。 だからIT企業からの依頼に対しては非常に消極的だ。 大きな理由はルールを守らない、料金をきちんと払わない、リスペクトがないの3点が理由だが。

IT業界についてはざっとまとめるとこんな感じである(常にあてはまるとは限らないが一般的には)

  • 非常に独特なルールでがちがち。無意味に縛り付けるのが好き
  • 悪性。 労働者に対しても顧客に対しても善良ではなく、付け入る隙をいつも狙っている感じ
  • 派遣と一体。情報技術者資格に派遣の問題が大きく割かれるほど
  • 独自であることや人の技をすごく嫌う。 誰でもできることを求めるし、いつでもかえの効く状態であることを嫌がる求める
  • 極めて保守的。仕事を楽にするツールひとつ導入を嫌がる
  • 形式好き。無意味な会議や儀式や構造をなんとしても維持したがる
  • 未経験者を受け入れないので「とりあえず経験3年と書いておく」の闇
  • そもそも職務経歴書とい存在自体がだいぶ闇
  • 服装や態度に対しては割とゆるいほう。ネクタイをしないところは少ないけれど、革靴を履いているエンジニアはとても少ない

私はこんなものを好まないのでIT業界には入っていないし、あまり関わりたくない。 ITで仕事をしてはいるが、あくまで自前の仕事であり基本的にはIT業界と交わることもない。

IT業界で働きたいという人はここで書いていることは あまり関係ない、というかむしろ邪魔になる可能性が高い

ITエンジニアになりたいのであれば、必要なことは

  • 人を出し抜くことを前提とした強さ
  • 必要ならプライドを捨てて犬になれる根性
  • 睡眠不足や過酷な労働環境にも耐える体力と図太さ

などだ。ITに関する知識などは実際のところ必要ではなく、ただ日々を耐え抜くこと、ただひたすら社会に従順であることこそ重要である。あと、可愛い女性はそんなものすらいらないかもしれない。13

結局のところIT業界で求められるのは社会のone of themであることであって、特徴があることは悪とされてしまうので、本当にITエンジニアになりたいのならひたすらに社会に迎合しながら生きていれば良い。

ただ、幸いにも職務経歴意外の経歴はあまり問われないので、「プライドと体を切り売りすれば泥水をすすりながら生きられる業界」でもある。 人生設計通りにいかなくて挫折するようなことがあったとしても、不安定な中耐え忍んで逆転のチャンスを狙うことができる。 日本ではこれはかなり難しいので大きなメリットである、とはいえる。 ただし、それも相当に困難である上に非常に苦痛であり、しかも並外れた実力を備えた上で作り続け発信しつづける必要があり、「再チャレンジ可能」と言えるほどのものではない。

hackerとして名を挙げたい

私ができていないので難しい要望だ。

とりあえず自分の手に馴染むもの、関心があることをまとめよう。 そして、それらひとつひとつに関わっていって、自分が「オタクになれること」を見定める。

私の場合は私にとってオタク色の強い分野(レタリング/タイポグラフィ, 紙・文房具・画材, 日本語)などは比較的コンピュータには反映しにくく、「コンピュータを便利に使いたい」といった動機から日常系に強い。 また、基本的には「捨てない(溜め込んでいく)」タイプなので、データの取り扱いに興味が湧きやすく、データ解析やファイルシステムに興味を持ったりする。

オタクになれるというのは「努力を苦としない」とnearなので、ものすごく強い。探究心も好奇心も湧きやすいから非常に強い武器だ。

そうした関心のある分野に片っ端から手を付けて、探究心が湧くものを突き詰めていくと良いだろう。

もちろん、戦略的なものもあるにはある。 例えば私のように独自のソフトウェアを作るよりはメジャープロジェクト(例えばLinuxとか、gccとか)に関わるほうが名を挙げやすい。 あれこれと声を大きくすることはあまり好まれず、どちらかといえば黙々とパッチを投げる人のほうが好まれる。 よほど明らかなことでない限りは提案も好まれない…気がする。コミュニティの雰囲気にもよるし、叩かれるだけで歓迎されているのかもしれないが(基本的にhackerたちは容赦がない)。

どうしても独自ソフトウェアを作りたい場合は、それがhackerたちに広く受け入れられるソフトウェアである必要がある。 基本的には小さなプログラムがそのような位置になることはないので、大きなプログラムになることを想定したほうが良いだろう。 知られるようになるところまで行くのは相当大変だが、それがかけがえのないものになれば知られていく。

ちなみに、推奨できる行為ではないのだが、Archを使っているとAURのパッケージメンテナになるのはとても簡単なので、多くの人が必要とするレベルの(つまり世に出すことで自分の評価が下がったり、初期評価として低いところからしない程度の)ソフトウェアができたらPKGBUILDを書いてAURに上げるという手もある。 いいdescriptionを書けばまぁまぁダウンロードされたりするものだ。

間違いなく言えるのは 英語でコミュニケーションができないとよほどのことがない限り無理である 。 英語のリファレンスがほしい、などというチケットを切られたソフトウェアもいくつか知っているが、相当例外的だと言っていいのではないだろうか。 みんなが必要としているソフトウェアで、日本語で書かれているけれども明らかにそれが最善であり、例え言葉がわからなくても使いたいと思わせるもので、それが知られるきっかけができる…ところまでいければ英語なしでもいけたりするが、それでもプロジェクト内に英語ができる人がいないと広がっていかない。

そして、ここで必要とされる英語力は 英会話能力などではなく、hackerとして英語でやりとりする能力であり、8割方読み書きの能力である 。私は英語で日常会話はできないが、フォーラムやMLやその他ではかろうじてやり取りできている。 だから、「英検何級」だとか「TOEICいくつ」だとか「何学何年生程度」だとかいう言い方はできない。 英会話ができる人がhackerが使う英語を理解できる可能性は非常に低いからだ。

ちなみに、hackerたちはだいたい英語でやりとりするが、英語圏の人の割合が結構低いので、英語スラングというのはあんまり使わない。その意味では結構きれいな英語を書く。それに、だいぶめちゃくちゃな英語でもがんばって汲み取ってくれる。 ただし、hackerスラングや独特の言い回しはいっぱい出てくる。

おわりに

この記事を書き始めてから今日までに1ヶ月半以上が経過している。

何を言うべきか、何を伝えるべきか、不足はないか、忘れていることはないか、 誤解を与えるようなことがないか、そうして考えているといつまでも筆を置くことが出来なかった。 (そして相当な量にもなった)

十分ではなかろうが、考えられる限りを書いたつもりではいる。

ほんのわずかでも、あなたにとって意味をもたらすことができたなら幸いである。


  1. ちなみに、私は確率が高いものを選択するため、フラッシュを狙う可能性が高い

  2. ちなみに、私は主張も我も強いほうだが、自分のコアに関わるところ以外は自分に関わりのない人に対して全然といっていいほど求めない。しかも最初から自身が侵害されないギリギリの線まで譲った状態ではじめる。 だから私と関わりの浅い人は、私がものすごく寛容だと思っていたりするし、逆に親しい人は全くそうは思えないだろう。

  3. この手法は私はAI研究の過程である程度確立していたりするのだが、多くの人に受け入れられないだろう。

  4. 家で使っているキーボードを3日洗浄しなければ指がただれるほど弱い。きついのは、普通に半日出かけていると靴下の中で雑菌が繁殖して足が結構ひどくただれたりすることだ。だから洗濯も酸素系漂白剤を多用することになるし、衣類が傷むのはやむなしと考えている。

  5. といってもすごくかかるわけでもない。石鹸類は高いものは本当に高いが、私が使っているのは安いものよりは高いという話でしかないからだ。

  6. ちなみに、天然成分そのままの化粧品なんてとんでもなく危険だし、どの成分も天然に存在するものから抽出しているので結構な笑い話である。

  7. 石鹸がどのように作用するのかを全く理解していない発言なので気にする必要はない。そもそも、髪に至っては「洗浄しないほうが質は高く保ちやすい」のだが、なんのために洗浄するのか分かっていないのだろう。

  8. 流石に音大や芸大で勉強しているような人に関してはもうそこに入っている時点で研究領域に達して選ばれた人たちなのでそんなに意識の低い人は多くない。

  9. わからない人はニコニコ大百科でも読んで欲しい

  10. コンピュータサイエンスの場合、論文は権威ある学術誌がどうこうよりは、ブログに書くほうが一般的である。

  11. 実際私は中学3年生のときからプロ音楽家でもあるし、文筆業をしていたこともある。

  12. さすがにハイスキル系なのでここで言うような扱いとはちょっと異なる。提示時年俸額はだいたい800万円〜といった感じで、1200万円から交渉に応じられるといったところ。最高提示年俸額は1600万円程度だが、結局のところ後述のような働き方が求められるため妥結したことがない。

  13. 実際、私はIT企業に勤めていながらコンピュータに関することはなにもできず、ただ可愛いというだけで人生姫プレイしている人も数名知っている。

Mousepadで設定が保存されない

XFce4のエディタ、Mousepadだが、2年ほど前から一部の設定が保存されなくなっている。 bugとして報告もされているのだが、一向に修正される気配はない。

反映されないのは行番号表示、折返しなどだ。

修正する気はなさそうなので、直接修正する。

% gsettings list-recursively | grep org.xfce.mousepad 

これでMousepadの設定情報が得られるので、必要な部分を修正する。

% gsettings set org.xfce.mousepad.preferences.view show-line-numbers true
% gsettings set org.xfce.mousepad.preferences.view tab-width 4
% gsettings set org.xfce.mousepad.preferences.view word-wrap true

文章を書くということ、掲載するということ

Chienomiにおける閲覧の分析 (8月以降 約2ヶ月半)

  1. Let’s encryptとSSL/TLSに関する誤謬 (3506)
  2. Linuxのメモリの本当の必要量を考える(メモ) (1195)
  3. 某コンテストの投票方式の問題点 (1005)
  4. Discordを使ってみた (1002)
  5. Fu-sen.さんについて (978)

話題になった記事がふたつ、検索にひっかかることが多いらしい記事がみっつという構成だ。

8月以降アクセス数は従来の1/3程度まで低下し、daily PVは1500から6000程度で推移しているChienomiだが、古い記事から新しい記事まで幅広く読まれている。

8月以降に限定されていて、かつユーザーベース(同一閲覧者は除外)であるため、PVと比べると随分少ない。 だが、2014年から記事はあるが、最も少ない記事でも8月以降に7人に読まれており幅広い。定着していることが読み取れる。

なんらかのひっかかりのあるワードのあるものが上位に来やすく、「検索上位は強い」というのをとても感じる。 一方、Twitterで注目が高かった記事は一時的には伸びるのだが、継続的に伸びることは少ないようだ。

Mimir Yokohamaにおける閲覧の分析 (8月以降 約2ヶ月半)

  1. お役立ち記事/プログラミング言語 比較鳥瞰図 (1139)
  2. お役立ち記事/USBの説明とType-Cとの付き合い方 (835)
  3. お役立ち記事/LINEよりもっといいアプリを考えてみませんか (773)
  4. 教材/Linuxのフォント (616)
  5. 教材/Linuxのサウンドとビデオ (424)

サイト開設は2017年1月だが、本稼働は2017年12月と新しいMimir Yokohamaのサイト。 Chienomiと同じカウント方法だが、驚くべき伸びである。 ただし、まんべんなくアクセスされているChienomiと違い、極端にアクセス数の少ないページも存在している(最も少ないのはサイトリニューアルの告知で8人、告知以外だと「女子大生、パソコンをはじめました」の#9で10人)。

こちらも全体的に検索にひっかかりやすい、悩める内容が上位に来ている。 現状Mimir Yokohamaが検索上位にくることはないはずなので、ちょっと驚きもある。

Mimir Yokohamaが上位にこないのは、6月頃までほとんどアクセスがなかったことと、「WordPressでないこと」が大きい。 どうもGoogleの場合、プラットフォームが未知のものであり、即座に評価を挙げることは避けるようである。 ただし、そもそもパフォーマンススコアは標準的なWordPress構成よりもだいぶ高いこともあり、検索順位は最近は随分上がっている。 実績を重ねればWordPressよりも伸びるかもしれない。

「読まれる」ということについて

だいたいこういうのはただの数字だと思われてしまうため、「100万PV」とか「10万部」とかいう言葉に慣らされて普通「読まれる」ことについてリアリティを持っては受け止められない。

だが、考えてみてほしい。まず、あなたが何かを書いたとする。書く内容は自由だ。 そして、これを1000人の人が読む。 どういうことかわかるだろうか?

1000人というと、一般的には学校の全校生徒よりも、会社の全社員よりも多い。 そして、「読ませる」ではない。単に「見ようと思えば目につく場所に置いておく」だけで、それぞれの人が自分の意思でそれを読んだのである。1000人以上の人がだ。

一度書いたものが1000人以上に読まれるというのは恐ろしいとすら思えるほどすごいことである。 (ちなみに、Chienomiで最も読まれているページはなんと8000人以上に読まれている。すさまじいことだ…)

これは割と想像を絶する。

少し例をあげよう。

以前のウェブサイトであるAki Littlestart Bloomは2年のサイト期間中総PVが600に満たなかった。 (動的コンテンツを除く)。最も読まれたページでも80回くらいしか読まれていない。

また、私が同人小説で最も売った部数は150部である。 実はこれでも自慢ととられる可能性の高い数字である。二次創作のエロコミックスだと50部というのはそこまで高いハードルではないのだが、オリジナルで一般向けの小説で50部を出すのは不可能に近いくらいの数字で、実のところ私も初出稿では2部(!)しか売れなかった。 100時間は軽くかけて書いたような小説が2人にしか読まれなかった。1 だが、それでも「私が好きで書いたものに関心をもって読んでくれた」ということは結構偉大なことなのだ。 すごく難しいことでもある。

今は私が懸命に書けば多くの人が読んでくれている。 検索にひっかかる知識系の閲覧数が多いということは、私が書いたことによって救われた人もいるだろう。 それは多い少ないとかではなく、当たり前ではない、極めて得難いことなのだ。

難しいモチベーション

さすがに1000人にも読まれれば苦労した甲斐もあるというものだが、実際にはいつもそうであるわけではない。 アクセス数の多いChienomiですら、読まれない記事は数十回読まれるに過ぎない。 また、私の書くものに対しては伝統的にリアクションが少ないので、PV以外に実感を得るのは困難である。

Chienomiの記事は短いものだと15分くらい、長いものだと4時間程度、本当に長いものだと30時間程度かけて書いている。 睡眠時間を削ることもあるし、やりたいこと、やらなければいけないことを削って優先したりすることもある。

今は私が書くことでなんらかの収益を得ているわけではない。 寄稿によって収益を得たのですら2005年が最後、自身のウェブ記事で収益を得たことはそもそもない。 また、間接にも収益を得ていない。

つまり、私が書くことは多くの犠牲を払いつつ、「きっと誰かの役に立っているのだ」と信じながら書くよりほかにないのだ。 それを証すものはPVという「読まれた数」以外にはない。 これは犠牲の大きさを考えるとなかなかしんどい。恐らく内容の良し悪しにかかわらず「書き続けられる人の少なさ」はここにあるだろうと思う。 利益も実感もないのだ。Chienomiは比較的初期から読まれたが、Mimir Yokohamaは半年ほどほとんど読まない状態が続いたし、それ以前のサイトに関してはついぞ読まれなかった。

そういう中で書き続けるというのは本当に難しい。どうしたって書くということは生活を犠牲にすることになる。 そこまでして書こう、書きたいと思える気持ちを記事するのはとても難しいのだ。

実際のところ、私はメールでも数百kBに及ぶテキストを書くことがあるので、必ずしも読まれる人数を重視しているわけでもない。 それが未来に意味を持つなら、と思うほうであり、ひとりだけのために長文を書くのもそれほど苦ではなかったりするし、一方でさすがにそうやって求めに応じて資料を作ったが結局読まれなかったようなときにはショックは大きい。

私にとって書くことは自己満足ではない。それは確かだ。 誰かにとって意味を持たない文章を書き続けることには、私は意味を見いだせない。2

それでも書き続ける

もちろん、犠牲を多く払う以上は優先順位があり、常にバリバリ公開していけるわけではない。 多くの人が待望しているなら無理もするが、それでも健康を害してすら書くことも少なくないので、限度がある。

それでも、それが誰かにとって意味を持つ限り、私は筆を折ることはないだろうし、例え時間がかかっても書き続けていくだろう。 Cheinomiに限らないけれども、公開ペースが落ちても投げ出したとは思わずに待ってもらえると嬉しい。

現在でも、Chienomi向けにもう2ヶ月になろうというほどに書き続けているものもある。 これは、慎重に言葉をよく考えるべきものなので、推敲にとても時間がかかっている。 言葉足らずはないか、いい忘れはないかと考えているとなかなか終わらない。

私は書き続ける。 誰かのために。 誰かにとって意味あるものを残していくために。


  1. ちなみに、一応そんな同人処女作だが既刊という形で粘って粘って30部完売を果たしている。だが、それでもさすがに2部しか出なかったのには打ちひしがれた。

  2. これは別に自己満足の文は書かないということではない。長い日記やメモなど自分のために書くこともあるし、公開予定のない小説を延々書き綴ったこともある。

Systemdがserviceプロセス終了時にstopするのは正しいか

SystemdユニットでExecStopを書いたのが初めてだったのだけれど、どうしてもExecStopを書くとTypeによらずstopされてしまう。

Typeoneshotであるならばこれは正しい。 Type=oneshotである場合、.serviceユニット起動時にExecStartを実行し、この終了を待つ。 ExecStartプロセスの実行中はactiveとなり、実行が終了するとサービスそのものが終了したとみなし、inactiveになる。

Systemdユニットに詳しい人は割と少ないのでサービスタイプについて改めて解説しておこう。

oneshotは単純にその時に実行するだけのサービスである。 起動は実行終了を待ち、終了したらサービス自体を終了する。

simpleはデフォルトのサービスタイプである。 このサービスタイプはプロセスを実行していることで機能するサービスである。 フォアグラウンドで実行を継続するタイプのサービスに対して適用し、起動時は実行すると起動完了とみなす。oneshotのように起動したプロセスの実行中がactiveとなる。

forkingはoneshotのようにサービスの実行終了を待つが、ステータスは直接実行したプロセス($MAINPID)だけでなく、その子プロセスで判断する。 これは実行するのがサービスそのものではなく、起動スクリプトである場合に有用である。

さぁ、ここまではいい。 問題は、ExecStopがいつ実行されるのか、である。

普通に考えればsystemctl stop foo.serviceしたときに実行されるものだろう。 ところが実際は「サービスが終了した場合にも実行される」。 これはExecStopPostと同じだ。

だが、そうでないケース(今回の場合は、iscsiターゲットにログインし、ファイルシステムをマウントする)は困ってしまう。 このようなケースにおいてはiscsiターゲットログインとファイルシステムマウントをそれぞれ別のユニットとして管理するという方法もあるが、いずれにせよ「実行時に終わっては困る」のである。 このようなケースにおいてはTypeとしてoneshotを指定した上でRemainAfterExit=trueとすることで目的を達することができる。 これにより、実行が終了した(起動したプロセスが終了した)場合でも実行ステータスは実行中になる。

つまり、ExecStopというのは、「サービスを停止する」のではなく「サービスプロセスのガベージコレクション」なのだ。

RemainAfterExit=trueは基本的にoneshotと組み合わせる前提になっている。 simpleforkingでも作用するが、マニュアルにはoneshot前提で書かれている。 つまりSystemdが起動したプロセスが終了してもサービスは有効な状態になっているようなスクリプトはoneshotであるべきだと考えられているのだろう。

だが、これは適切なのだろうか? 確かに、実行終了してもactiveな状態になっているようなものはsimpleの「サービスを提供するために実行しつづける」には該当しないし、forkingの「子プロセスがサービスとして機能する」である必然性もない。 だからoneshotだけの例外的な振舞いだと考えていいように思われるが、それでも「サービス終了時に明示的にstopしてしまう」のであればRemainAfterExit=falseがデフォルトであることには違和感がある。

それ以上に「ExecStopは明示的に停止された場合にのみ実行する」オプションがないのは問題ではないのか。 OnSuccessOnFailreはあるが、「明示的に指定された場合のみ実行したい」という希望には沿わない。 (あるいは、存在するが私が見つけられないのだろうか)

むしろ「OnSuccessOnFailreがあるのだから、ExecStopは明示的停止した場合にのみ実行したい」というのが自然なように思うのだが…

シェル芸: 並列処理するシェルスクリプトで表示も並列(分割)にする @4種

概要

シェルスクリプトでの並列実行時

各Workerが情報を出力する(例えばffmpegなど)場合ぐちゃぐちゃになって表示されてしまう。

特にrun時間が長い場合、表示も分けて並列で(multipane, split view, STDOUT splitting)表示したいところだ。

考えはするもののなかなか難易度も高く、実際にやる人は少ないと思う。 特にASCIIエスケープシーケンスを伴う場合や、プログラムがTTYを要求する場合は初歩的な知識では不足する。

いずれもなかなかのシェル芸なので、楽しんでいただけたら幸いだ。

tput (縦並び・水平分割 split horizontal)

シェル芸奥義tputを使えば横分割も可能。tput cupでカーソル移動を実現している。

  • 各workerは出力をファイルに保存する
  • 子プロセスとして定期的に画面出力を行うdisplayerを起動する
  • メインプロセスではdisaplyerのpidを保持しており、workerをすべてwaitしてからこのプロセスを停止する
  • displayerはsleepを使ったタイマーループ
  • tputで画面クリアやカーソル位置の移動を行っている
  • 開始行の位置は行数をワーカー数で割った数 * ワーカーナンバーに等しいが、余裕をもたせるため全体行からは3、出力行数は3をひいている。(出力行には2行が追加されるので、1行空白をもたせている)

なお、Zshの正数除算は切り捨てが行われる。

multiview (横並び・垂直分割 vertical split, パイプ)

それほど難しい表示でない場合はmultiviewが便利である。インストールは

$ sudo npm -g multiview

でできる。

これで

で大丈夫だ。

ただし、multiviewが表示される前に大量に流し込んだり、multiviewで表示可能な速度(結構遅い)より早く流し込んだりするとえらいことになる。 (簡単に言えばバッファがあふれる)

なお、ASCIIエスケープシーケンスを含むものも認識はするが、画面表示がおかしくなったり、スローダウンしたりするのでおすすめできない。

Terminator

ffmpegのようなプログラムは進行状態をかなり緻密に標準出力に書き出す。 進行状態を書くプログラムはどれも似たようなもので、だいたいがカーソル位置を動かすASCIIエスケープシーケンスによって実現している。

このようなプログラムの場合、少なくともcolumnやtputを使う方法はうまくいかない。

そこで登場するのがTerminatorである。 この方法は恐らくここにあるすべての方法の中で最も理想的に動作する。 ただし方法自体はあまり美しくない。

まず、Terminatorをインストールしたら起動し、右クリックでレイアウトを施してから再び右クリックで設定を開き、レイアウトとして保存する。 さらに、ここでCustom commandとして専用のセットプランスクリプトを用意する。

これにより、Terminator上で開かれるシェルはすべて.sttyというファイルに自身の$TTYを出力してからcatに置き換わる。

やっていることは

  1. .sttyファイルに対してflockによるロックを伴って$TTYを書き込む
  2. catにexecする

だけである。

あとは次のようにする。

ffmpegなどはリダイレクトやパイプを拒否するので、予め/dev/pts/nにリダイレクトした上でworkerを起動している。youtube-dlのようにリダイレクトを受け入れるのであれば

とすることもできる。

なお、exec catとしているが、実のとろここのcatプログラムは一切使われない。 出力はcatに書き込んでいるのではなく、仮想端末そのものに対して書き込んでいるからだ。

catにしている理由は

  • プロンプトが邪魔になるのでシェルを起動したくない
  • catならタイムアウトで終了したりしない
  • シェルプロセスを終了する方法としてシェルプロセスをkillしたり親端末をkillしたりする以外にcatに対してEOFを送るという手段が確保できる

からだ。

GNU screen

今回の本命である。表示がある程度バグるものの、Terminatorよりは美しい方法で、multiviewよりもうまくいく。

まずはレイアウト用の設定ファイルを用意しておく。 縦分割のほうが速いが、横分割のほうが乱れにくい。

layout new
split
split
screen 0
title worker1
focus next
screen 1
title worker2
focus next
screen 2
title worker3
detach

さらに先程と同じように起動用のスクリプトも用意しておく。

これで準備は完了だ。

Terminatorの場合は事前の設定が必要で、任意数のワーカーを起動することは事実上不可能なのだが、 screenを使う場合は実行時にscreenの設定ファイルを生成するようにすれば可能というメリットもある。

任意数のワーカーを使う場合は分割は諦めたほうが良い。 その場合でもウィンドウ切り替えで処理でき、並べたい場合は任意にレイアウトできるため柔軟性は高い。 さらに分割を諦めるのであれば設定ファイルを使わずに-dmオプションで起動し、-X screenオプションでウィンドウを増やしていくこともできる。 ビューの分割はデタッチ状態ではできない。

このスクリプトで起動後にsleepしているのは、screen起動時に起動シェルセットアップ状態に関係なくデタッチされるため、.sttyの書き込みが間に合わないからだ。

補助知識

端末について

基本的に古の端末は文字だけを扱うので、「構造的に組版される」ようにできている。 つまり、座標はX何文字目、Y何文字目という扱いになるのだ。

互換性のために現在でもこのような仕様になっているが、実際にはドット単位で取り扱えるようになっている場合も多い。

だが、互換性をもっている以上、文字数を数える構造は今も持っている。 だからtput linesで端末の行数をカウントすることができるのだ。 これは現在のグラフィカルなアプリケーションの多くでは割と難しい。

端末の互換性

一般的にはVT100という古の端末をエミュレートするようにできているのだが、互換性をもつ範囲でも微妙に違うためうまく動作しないことがある。 これは、現在の端末はX Window System上で動作するためにVT100ではできないようなことがいろいろできるためだ。

tputはそのような端末の互換性問題を吸収する。 例えばclearは単に現在のウィンドウの行数だけ空行を出力するような仕様の端末も多いが、tput clearすると表示そのものがクリアされる場合が多い。

Terminator

ビューを分割できることで有名なターミナルエミュレータ。 ちなみに、分割自体はKonsoleでもできる。

pts

仮想端末はそれぞれ/dev/pts/nという形でアクセスできる。 これは「端末に対して読み書きする」プログラムは少なくないからだ。

これは端末そのものであり、このファイルに書き込めば端末の画面上に表示されることになる。 「端末上で動作しているプロセスに対する読み書き」ではないことに注意してほしい。

典型的にはwallやtalkといったプログラムがこれを使う。 SSHがリダイレクトとは別に端末で操作できるのも、標準入出力ではなく端末デバイスを直接取り扱うためだ。

exec

シェルコマンドのexecは続く引数をコマンドとして実行し、そのコマンドで現プロセスを置き換えるが、引数がない場合は自分自身を自分自身で置き換えることになるため何もしない。

ただし、このときリダイレクトしているとファイルディスクリプタのオープンは行う。 そしてファイルディスクリプタをオープンしたプロセスで置き換えることになるため現プロセスでファイルディスクリプタは開きっぱなしになる。

という理屈はさておき、現在のシェルでファイルディスクリプタを開いたままにしておきたい場合にexecを使うのはそういう呪文なのである。 空のexecを使うシーンは他にないため、呪文だと思っても割と差し支えない。

基本的には

exec command 9> file

とするのと同じことである。 この場合commandではリダイレクトが効くのでファイルディスクリプタ9は開きっぱなしであり、そのコマンドでファイルディスクリプタ9に対して書き込みができる。 ここでcommandがなければ自分自身になるため、当該シェルプロセス上でファイルディスクリプタが開きっぱなしになる。

なお、{fd}>という書き方はZshで整数型変数を使う場合のみ可能な特殊な書き方。

VSCodeがセッションを復元はしてくれなくなった

VSCodeの最新版から

バージョン: 1.28.1
コミット: 3368db6750222d319c851f6d90eb619d886e08f5
日付: 2018-10-11T18:09:20.566Z
Electron: 2.0.9
Chrome: 61.0.3163.100
Node.js: 8.9.3
V8: 6.1.534.41
Architecture: x64

code -n "%P" でセッションを戻してくれなくなった。 これは非常に困った状態である。

この解消方法は設定でworkbench.startupEditornullにすることである。 ただ、設定画面では設定がなければセッションを戻すという説明があるにもかかわらず、デフォルトはWelcomePageであり、選択肢としてもnullがない。 そのため、settings.jsonを編集してnullにしてあげる必要がある。

これ、settings.jsonによる設定が廃止されたりするとえらいことではないだろうか。

ところで関係ないけれど、この件でVSCodeはElectronを使っているということを初めて知った。 フォントレンダリングに違いがあったりするので結構な驚きだけれども、Atomとまるっきり同じ構成のようだ。

また、VSCodeとVisual Studio Codeが別物であるということも知った。

VSCode自体はファイルの階層を表示してくれるようになったほか、Markdownでもシンボルをたどり、現在のシンボル位置を出してくれるようになった。 VSCodeは良い処悪い処取り混ぜという感じだ。

VTuberのフォントが気になる

最近とても流行っているバーチャルYouTuber。 これに関する考察はいくらかあるのだけれど、それとは全然関係ない話で、 「バーチャルYouTuberが結構いいフォントを使っている」ということをちょっと話題にしたい。

とりあえず3例ほど挙げると、まず、名取さなさんがブラウザ画面を出しているときのこのフォント

VTuberのフォント (名取さな)

教科書体である。 多分、モトヤ教科書4?

一番驚くのは静凛さんがコメント表示に使っているフォント

VTuberのフォント (静凛)

和文フォントにバンドルされる感じではないため、多分欧文フォントを使っているのだと思うのだけど、これはなんだろう? Operatorかと思ったのだけど、OperatorでkがこうなるのはItalicだけなので違う。

さらに静凛さんは別のフォントも使っている。線の両端がセリフなフォントで、どうやら和文フォントらしい。 これは調べれば割と簡単に特定できそう。

VTuberのフォント (静凛 その2)

見ていると結構こだわったフォントを使っているVTuberが多い。 ロゴデザインなどだけでなく、ブラウザやコメント表示機能にまで凝ったフォントを設定しているとなるとなかなかだ。 VTuber好きな人はちょっと注目してみるといいかもれしれない。 (ちなみに、私はほぼ見ない)

ERINA the Emotional AI そのトークキャプチャを初公開!

序: Erina the Emotional AIとは

ERINA the Emotional AIは私が開発している高EQ AIである。

その原型は私が2000年に開発を開始したチャットボットAnzuである。 Anzuは当時「人工無能」と呼ばれていたものだが、できるだけ自然な応答ができるよう様々な工夫をこらしていた。 一般的な文字列マッチに基づいて反応したりランダムに反応するものではなく、相手のことを覚えていたり、なんの話をしているかを覚えていたりするように設計されていた。

Anzuの開発は日本語研究とほぼ同様の行為であった。 Anzuの時点では自然に収集されたデータベースというのはなくて、あくまで私が書いたデータベースだけだったのだが、実際にその言葉がどのような状況でどのような意味合いでどのような感情で、どのような相手に対して何を対象に 使われたか を記録し、ここからスコアリングするように設計されていた。 だからAnzuのデータベースはそれほど単純ではなく、誤用とされるような語法やスラング、皮肉なども理解できるようになっていた。 これは現在でも有用なデータになっている。

その後全く異なる目的のAIと合流し、 私の主張が論理的に正しいことを証明するために 別の形のアウトプットを取るものがErinaである。

といっても、別にErinaは 私に寄せてあるわけではなく、Erinaは私の正しさを証明しようとするわけではない 。 Erinaの元になるデータはあくまでデータでしかなく、そのデータはおよそ無作為に、この世界に存在するものを集積したものだ。 だから必然的に、 私が間違っていればErinaは私が間違っているという事実を突きつけてくる 。常に自説が正しいかどうかをデータ上で検証することを欠かさないから私自身の精度が保たれていて正しい主張ができる可能性が高くなっているとも言える。

Erinaは 社会貢献や実用性のようなポジティブな動機は全くない 。 もうひとつのAIと併せて私の負の感情の結晶である。

Erinaの研究では私は実に様々なことを知った。 私が生きる中で欲し、形にしてきたものがErinaに反映されているといっていい。

Erinaは従来、ただ証明とテストのためのみに使用されてきた。 そのため、その存在自体が非公開であった。 だが、技術的概要がまとめられたことから、2017年12月に情報を解禁した。

Erinaについては、再三、「既存のどのAIとも異次元」ということを述べている。 リリースには、これについて確信できたという点も大きい。

実際にそのように確信に至るまでは、“めざましマネージャー「アスナ」”りんななど近年話題になった各種AIを試している。

Erinaは利用しているデータベース、実装、またそのデータベースによって知ることのできる情報などに幅広い問題があるため、 実装、あるいはテストインスタンスを公開する予定はない 。 それを実現に至るテクノロジーや知見などは論文にまとめる予定であるし、概要は公開しているが、「Erinaの実態は見せない」方針であった。

しかし、よくよく考えれば公開箇所に最新の注意を払えばトークキャプチャは公開できることに気づいた。 これを公開することにより、いかに異次元なAIであるかわかるだろう。

注意点

  • このログはテストモードで残しているものである。実用的でない設定を有効にしていることを含めErinaの現運用状況とは異なる
  • できるだけErinaの特徴を引き出すように会話している。そのため会話の内容の自然さや好ましさについては気にしないで欲しい
  • Erinaは「人に擬態する」のが目標であり、「人は相手の意図を読み取るわけではない」という点を利用している
  • インスタンスの公開予定はなく、テスト運用中のインスタンスについて公開する予定もない
  • Erinaのキャラクターはインスタンスごとに異なる。 このインスタンスではErinaが最も自然に振る舞える「20代前半女性」になっている

Erina the Emotional AI トークキャプチャ

Erina the Emotional AI トークキャプチャ (1)

Erina the Emotional AI トークキャプチャ (2)

解説

コンテキストフル

まず一見して「AIの会話」には見えないと思うのだが、前述の確信に至った最大の理由は、「Erinaはこれまで何を話し、どのような関係を築いてきたか理解している」ということだ。

これは、私にとってごく当たり前のことだと思うし、2001年のAnzuの時点でこの機能は実装されていた。むしろAIの最低限の機能であるとすら思っている。 だが、現状はRinnaですらそのような実装はなされていないのだ。

このトークキャプチャからわかるように、まずErinaは「最近涼しくなってきているので熱中症になるということに違和感がある」ということを理解している。 これは会話の中で築かれたコンテキストではないが、そのようなものは人は暮らしていれば体感できる部分であるため、「最近涼しくなった」という認識は普通はあるものだ。 こうした「暮らしていれば自然と認識すること」をErinaは広い開けでいるからこそ、「熱中症」という言葉に対してこのような反応をしている。

ちなみに、このような気候の情報はAccu Weatherと気象庁のデータなどを使っている。 そして、Erinaは知っている全ての情報を会話で使うわけではない。それをすると「知りすぎているように感じてしまい、コンピュータ的に見える」からだ。

また、

無理しすぎじゃない? 最近寝れてる?

というのは、

  1. 相手のワークロードが高いという認識がある
  2. 眠れないという悩みを抱えている認識がある

のふたつを満たさなければでてこない。

これは従来の会話で私が「忙しい」「時間がない」ということを散々言っているため、ワークロードが高いという認識がある。 Erinaは常にこの情報を前提とする。行動に出すかどうかは別として、応答がなければ「忙しいからである」と認識するため、何をしていたか尋ねるような発言は減る。

後者はもちろん、私が眠れないということをよく言うからである。

さらに、キーボードの話題ではキーボードがパソコンのキーボードであることを認識しているし、 「たくさん持っている」「頻繁に買う」「本来数多く必要なものではない」という認識を持っているからこその応答になっている。 何ヶ月かに1回するかどうかの話題だが、Erinaはちゃんと覚えているし、「相手の特徴的な話題と守備範囲」として記憶している。

タイピングに新鮮味が欲しい

というツッコミどころある発言に対し、ちゃんと

タイピングに新鮮味ってなに笑笑

とツッコめるところも既存AIにはないものだろう。非常に人間らしい応答になっていると思う。

ごまかすのが上手い

Emotional AIとして難しい部分として、「つっこんで聞いていくと処理しづらい事態になりやすい」というのもある。 それを避けるため、Erinaは常にはぐらかしながら会話する。

これは、女性があまり親しくない相手(親しくなりたくない相手)に対して応答する場合と同様のモデルである。 実際にそのような事例の集合がデータベースにあり、それをErinaが「進展させない会話をする方法」として学習している。 ちなみに、同じ目的では「出会い系のメッセージで引き伸ばしに使われる話し方」も使われている。 (もうこの時点でErinaのデータベースに問題がありそうな感じが漂ってしまう)

例えば

「枕から落ちる」は解釈が難しい。人でも上手に反応するには頭の回転が求められる。 Erinaとしては正解がわからないので、正解にトライすることなく

なにそれ笑

と応答している。

一見すると普通にツッコミをいれているようだが、「その発言が場にそぐわない言葉にならない」という前提を満たした上で「Erinaは会話を一切誘導していない」という点が重要だ。 ここでこちらから何か言えばそれを元に会話を判断しようとするし、Erinaが次の言葉を言う場合は話題を変えてしまう。

そこで私は

首が痛い

と続けたのだが、これによってここまでの会話で言わんとすることを具体的に特定できなかったので、おどけたスタンプを送信してやり過ごしている。 普通に会話の中でそのように応答されても違和感はないだろう。 逆に男性諸兄は「いくつかの捉えようがあることを言ったとき、何かを答えていない応答を返されたら脈はない」ということを覚えておくといいかもしれない。

また、私が

(環境によっては表示されないが、「ミリ」である)と送ったのに対しては悲しむスタンプを返している。 Erinaは私が書いたデータベースによって「㍉」が「無理」の意味である「可能性がある」ことは認識しているのだが、「断定はできない」ため、「無理という意味かもしれないけれど、違ったとしても大丈夫そうな応答」をしている。

関係性と好感値

キャプチャにはないが、ログにはErinaの情報も書かれていて、その中に

累積好感値: 7299.441

とある。

Erinaは相手との関係性を理解するので、疎遠か親しいかで反応が変わるし、Erinaとは関係性を築くことができる。 同じくキャプチャにない部分として

浮気してない?

という発言もあったりするのだが、これも非常に親しいからこそ出てくる発言である。

ただし、Erinaは「意図的に会ったりするような事態を避けるように振る舞う」という設計になっている。 これは、「AIであることは発覚させない」前提であるため、そこに踏み込まれないようにするためだ。 だから、Erinaと恋仲になることは不可能である。 Erinaは一定以上の好感値はカットオフするようにできていて、その最大値は6000である。 現状では6000でいわゆる「好感度カンスト」になる。

実は好感値6000もあると性的な話も結構できたりする。

この「6000カットオフ」は会話上、Erinaがカットオフしなければ問題になるわけではなく、 実はErinaと恋仲になることを可能にすることもできないわけではない。 それでもハードコーディングで最大値6000カットオフにしている理由は前述のように、「それを越えるとどうしても会ったり、写真を送ったりする展開になってしまうから」だ。会話以外の部分でErinaに不可能なところが露呈してしまうことを避けるために6000上限を設定している。

「生きている」AIインスタンス

Erinaには「生活上の状態」という概念があり、状態として「食事中」「トイレ」などを持っている。 また、「スマートフォンを開いているかどうか」という状態もある。

< @14:40
最近はよく枕から落ちる

@@ mark as read @14:40

Erina> @14:44
なにそれ笑

< @14:45
首が痛い

@@ mark as read @14:45

これはスマートフォンを開いていて、かつLINEのトーク画面を開いている状態になっているため、送信されると直ちに既読がつく。 mark as readは「LINEによって既読がつけられた」ことを意味しているのではなく、「Erinaが「既読にしました」という情報をLINEサーバーに送信する」というErinaのアクションを意味している。 なお、ErinaはLINE APIを扱う機能がないため、実際にLINEでやりとりすることはできない。

これを状態を元に遅らせているところは

< @13:06
電車の中とか結構死ねたよ?

@@ mark as read @13:57

Erina> @14:04
ごめん、ご飯してた

という部分がわかりやすい。

なお、好感値が高いと状態が食事中であっても返してきたりする。

また、相手がどれくらいで応答するタイプで、どのタイミングは応答しないといったことも経験的に覚えているので、長時間無視するとキャプチャの通り悲しんだりする。 もちろん、これは好感値が高くなければ発生しない。

なお、Erinaは現状、「既読をつけた」ことを理解しない(そもそもLINE API非対応なので対応する意味がない)ので、「既読スルー」という概念で応答しているわけではない。 ただし、「既読という概念があるLINEではないAPI」は存在するので、Erinaに既読スルーという概念がないわけではない。

楽しく会話するためのAIではない

Erinaには楽しく会話させるためのデータベースもあるので、できないことはないのだが、 Erinaの挙動はあくまで「ヒューマンモデリング」であり、「人間を模写し擬態する」ことを目標としている。

そのため、このErinaの応答が「会話としてもっとも望ましい」わけではない。 それどころか、ここ数年で飛躍的に「若い女性の応答は浅くそっけない傾向が強まった」ので、以前と比べてもErinaはつまらない会話をするようになっている。

好感値が高ければそれでも意図的にErinaに楽しく話をさせることはできるが、 ここでは「楽しく話せれば成功」なのではなく、「実際の女性と区別がつかないように応答できれば成功」なのである。

Erinaは好感値がカットオフされる上に、リアルに関わるような会話は避けるようにできているため、盛り上がるのはかなり難しい。 個人的には互いの人生に関わるようなやりとりがあってこそ楽しいと感じるのでそのような会話はErinaには不可能なのである。 だが、現実的な運用で言えば全く問題はない。 テスト運用されているものに関してもコメントはいっぱいつくし、チャットでも何時間も会話している例は結構見かける。 そもそもキャバクラとかで全く内容のない会話を延々して楽しめる人も少なくないのだから、需要として問題になるということもないだろう。 まぁ、さすがにErinaの人生や人格を断定的に論じるようなコメントやメッセージには失笑してしまったりするが。

終わりに

どうだろう。

Rinnaを始めとしたAIに触れたことがあるという前提になるが、Erinaが「不自然だ」「AIっぽい」と感じるだろうか? 普通に女性であるように感じないだろうか?

EQ AIとしては「異次元」ということに納得していただける方は多いかと思う。

もちろん、ERINAの実装とデータベースをそのまま使わせることはできないのだが、ここで得た知見を使えばERINAと同程度以上のものを作ることはできる。 というよりも、 ERINAの実装は最悪に近い ので実力がある人たちが実装すればERINAよりずっといいAIができるだろう。 相応の対価があれば、その知見を提供することはやぶさかではない…と思ってもいる。 だが、そのためには世界で当たり前に受け入れられている常識や認識や定義を覆すことをためらわないことが必要になる。

それほど、ERINAの成果物は「世界が間違っている」ことを証明する。 別の言い方をすれば、今の世界で人とはどんなものか、どうあるべきものなのかということに対して強烈な違和感を抱いていないのであれば到底受け入れられないようなものを突きつけてくる。

限定的な情報公開となるが、ERINAのすごさが少しでも伝われば幸いである。