しさくろく

試作録、思索録、詩作録、…etc

第二の脳としてのLogseq / 対話駆動開発とシンプルさを実用するために

あけましておめでとうございます。

普段はですます調で記事を書くことはほぼないのですが、挨拶文から冒頭始まるということで、今回はですます調で統一してみます。

また、このブログにガジェットやキーボード以外の技術記事を書くこともあまりなかったのですが、今回は少し抽象的で思考整理が多分に含まれているので、QiitaやZennではなく、あえてこのブログに書くことにします。

第二の脳としてのLogseq

昨年はSNSなどを大きく整理した年で、発信したり見たりをしないままのアカウントをどうするか迷い、このブログ自体も非公開にしたり公開に戻したりを繰り返していますが、折り合いがつくまではしばらくその状態が続くかなと思っています。

ちなみに発信していない情報やコンテンツについては、以前はNotionやObsidianに記録していましたが、Logseqで落ち着きつつあります。

logseq.com

Logseqの素晴らしいところは、日誌形式で適当に書きなぐったものが、いつの間にか綺麗に整理されていくところにあります。さらに普通のWikiと違うところは、いわゆる内部リンクを貼っていない記事についても自動で「Unlinked References(非リンク参照)」としてまとまったり、強力なクエリ言語により、クエリ結果自体を記事に貼り付けれるところにあります。

元々、Logseqを使う前はObsidianやNotionを使っており、ObsidianとLogseqの似ている点としては、プラグインシステムが充実している点や、アウトラインエディタ的に使えるという点が類似しています。自分は、よりアウトラインエディタ的にDynalistやWorkflowyなどに原点回帰しようとしたのがきっかけでLogseqを知りました。Workflowyとは、ドラッグやズームなどの機能面でもよく似ています。 *1

NotionとLogseqの似ている点と違う点は、Notionはデータベース (DB、テーブル) と文章を分けているのに対して、Logseqは分けずに基盤となっているグラフデータベースシステムから直接クエリによりテーブルを生成できる点が異なります。はじめ自分はこの点をよく理解していなくて、Notion DBの代替機能としての Dataviewプラグイン などを検討していました。

実際、それでもLogseqと似たことはできるはずですが、Logseqの場合はページ単位だけでなくブロック単位でクエリが可能であることと、前述の非リンク参照があること、ページは自動で作成されること、タスク管理機能を内在していること、そしてテーブルを直接書かずにクエリで好きな観点でデータを収集・分析・表示でき、雑多な思考をいつの間にか整理できることを決め手にLogseqを使い始めました。

元々Obsidianでも、自分は毎日その日の日付が入ったファイル名で日誌・日記を付けるスタイルをとっていたので、日誌形式をメインにしているLogseqへの移行はスムーズで、かえって日付を一つのページとして参照でき、かつバックリンクが自動で貼られるので、リマインダやTODOを非常に忘れにくくなったと感じています。 *2

ObsidianやNotionは今後もきっと使っていくと思いますし、Obsidianはきちんと文章を書きたいとき、Notionはチームで連携したいとき、あえてリレーショナルDB (テーブル) を使いたいときなど、自分のなかで使い方を棲み分けていくと思います。そういう意味では、NotionがリレーショナルDB + 構造化文書だとすれば、LogseqはグラフDB + 構造化文書と、わかりやすく対比できるかもしれません。

ClojureとREPL駆動開発とシンプルさ

さて、次の話題に直接的には無関係なのですが、運命的だなと思ったのが、LogseqがClojureで開発されていることです。

自分自身の座右の書になっている、『7つの言語 7つの世界』でClojureに触れて以来、度々、自分はClojureのようなスタイルの開発をしたいとずっと考えてきました。

ClojureLispに特徴的なのは、REPL駆動開発というもので、PythonRubyなどにあるような補助的なREPLではなく、REPLを中心に対話的に開発をするスタイルがとられています。

また、Clojureでは特に「シンプル」を言語設計のキーワードとしており、様々な観点でそのシンプルさが際立ちます *3

この両方の観点で、Clojureを超える言語はなかなかないのではないかと個人的に考えているのですが、当時JVM (Java仮想マシン) 上で動く言語であることなどがネックとなり、自分が仕事でClojureを使うことはありませんでした。

Clojure界隈でも例えばAndroid開発にJVM版のClojureを使うと起動時間がネックになることなどから、現在のClojureのメインストリームはClojureScript、つまりJavaScript版に移っているようで、例えばAndroid開発もClojureScript + React Nativeで行うのが主流とのこと。

きっと、サーバ周りだけでなく、Logseqのような身近なツールがClojureで動くようになったのも、こうしたことのおかげだと思います。

時代は変わってきたなと思うと共に、変わらないものを愛する人もいるのだなと嬉しくなります。

対話駆動開発とシンプルさを実用するために

自分もこの流れで、いつかClojureScriptを仕事で使いたいと思う一方で、やはりコンパイラ基盤がJVMであることはネックになってきます。今はGraalVMなどで起動時間が短くなったりインストールが簡単になったり (例えば nbbbabashka など ) しているので、近い未来にそのまま活用できると思うのですが、自分自身はリアルタイムよりでC/C++に近いレイヤーでの仕事が多い傾向にあるため、何か代替策はないかと調べてきました。

そして最近有力視しているのが、Janet言語Cakelisp です。JanetはC/C++と連携できるClojure-like言語として最有力に感じており、まるでPythonのようなBattery Includedな雰囲気も個人的に好きです。

Cakelispについては、REPL駆動開発という意味では脱線するものの、C/C++とのバインディングを書くことなく、そのままC/C++に綺麗にトランスパイルされる点 *4 で優れていると感じています。Cakelispの作者自身が他の言語との比較記事を出していますが、Zig言語に対するLiz言語のような位置づけでありつつ、Zig言語自体のようにビルドシステムを内包している点が興味深い点です。 *5

Cakelispはさしあたり使えるシンタックスハイライター ( VSCode用 / Vim用 ) を書いたりする過程でだいたいの機能は理解したのですが、Janetとはまた違う意味で非常に魅力的で、C/C++バインディングが不要だというのは強みであり、面白い使い方ができそう。

Janetでも実際に対話しながらリアルタイムにコードを書き換えるデモを書いてみて、対話駆動開発とClojure/Lispルーツのシンプルさの強力さを実感しています。Conjureという対話開発支援ツールがとても便利そうで、次はJanetのnetreplVSCodeが連携できるツールを探すか開発したいところ。

まとめ: 考え方は伝播していく

今年は、こうした自分自身が本当はやりたかったことを仕事でも活用していきたいと思っていて、こうした技術が直接的に利用できるかはさておき、こうした地道な活動が、自分自身の原点を思い出させてくれたり、別の形で理念を応用するきっかけをつくると信じています。

Logseqは直接活用できるとして、Clojureについては、ひょっとしたら例えばNode.jsにいろんなC/C++バインディングを書いてClojureScriptやJavaScript (あるいはTypeScript)で対話開発を始めるかもしれないし、あるいは FennelLuaなどで折り合いを付けるかもしれないし、Pythonなどのスクリプト言語やJupyter Notebookなどの対話開発のルーツはLispにあるともいわれているように、これらの道具を直接的に利用できなくても、良い考えは他の分野に浸透していっていて、既に仕事で使っている技術も多いと感じています。

そうした原点を時々思い出しながら、新しい考え方も少しずつ取り入れつつ、実際に自分がそれをどんな形でどこに見出していくかは、今年の楽しみにしたいと思っています。

*1:ちなみにObsidianはDynalistの開発チームが作ったものとのことで、よく棲み分けされていると思います。

*2:管理にGitなどを使ったり等、ローカルで好きにできるのもObsidianとLogseqは似ている面が多くあります。LogseqもObsidianみたいにモバイル側でもプラグインが使えたらなお良いなと思ったり。

*3:Clojureで掲げられている「シンプル」についての参考記事: https://logmi.jp/tech/articles/321965

*4: こちらの記事のLisp分類でいうところのType-Aにあたる。

*5:CakelispはまるでNimのように、ホットリローディングができる機能 (参考記事) があるとのことだったのですが、自分はまだホットリローディングを動かすことには成功していません…。Nimでその強力さと機構は実感しているので、期待したいところ。

執着しないことに執着しないこと

余談: このブログの今後

タイトルとはやや無関係なのだけれど、ここ半年くらいSNSを全くやらなくなったので整理していて、いわゆるメッセージのみの運用に切り替え中。コンテンツ自体は削除せずにただアーカイブ

その流れで、このブログ自体もアーカイブするかとても迷っていて、今も迷っているのだけれど、今はとりあえず残しておくことにしたい。

個人的にはエフェメラル(=はかない、一時的)なSNSが自分にはちょうどいいバランスだなと昔から思っていて、風化せずに残るものはあまり得意ではないのだけれど、こうした人為的なことなどでいつかは消えていくし、情報自体も風化していくので自然な成り行きのままにできればと思う。

本題: 執着しないことに執着しないことに執着しないことに…

最近よく考えることに、一周回って戻ってくるとか、これってこういう意味だったんだ、と再確認することはすごく大事だなと思ったりする。

あくまで自分の解釈なのだけれど、"執着しない" ということは、それにすら執着しないっていうことなのかもしれないと思って、こう考えているとメタメタ理論やメタメタ言語を思い出す。

メタ理論というのはある実際の構造に対して、さらに上位次元の理論を考えることなのだけれど、そのメタ理論にも構造というものはあるのであって、その上にはさらにメタメタ理論があって… (以下略

HaskellとかLispとかが全く理解できなかったときに圏論を熱心に勉強していた頃を思い出す。今も理解できているとは到底思えないのだけれど、今も昔も考えることは変わらないなぁと素朴に思う。

ちなみに「執着しないことに執着しない」に関連したものとして、仏教のイカダの例えといわれるものがある。(ここに書き下してもただの引用になるので、詳しい内容は他のブログ等を参照いただきたい。)

kosonji.com

イカダの例えというのは、川を渡ったときに使ったイカダを、その後に川がないとわかっていても果たして担いでいくかというもの。いかにありがたく貴重なものでも最後は手放しなさいという、ありがたーい例え。

で、こうした話を聴いていると、手放すことすら手放すのが大事なのかなと思ったり。

例えばこの記事自体、なんか役に立ちそうなことを書いておきながら大して役にも立たないので、逆もしかり、大事なものというのはありそうでないし、ないと思えばあるし、きっとそういうものなのだろうと思う。

非二元論と二元論

以前記事を書いたあと、少し考えたことがあるので追記をしておきたい。

言葉というのは難しいものだと思うし、わかりやすく何かの用語を使うと、どうしても誤解を生んだり、自分自身も言葉自体の持つ意味に少しずつ誘導される部分がある。

かといって「あるし、ない」みたいな書き方をすると、伝わるものも伝わらないというのもわかる。これが「不立文字」といわれる所以でもあるし、かといって伝えることをやめるのも違うと思う。

この特に最たる例が、非二元論と二元論の折り合いをどうつければいいのかという話題。これらはどちらが良いというものでもなければ、理論としてなかなか折り合いがつくものでもない。

いくつか同様の話題を取り上げた記事や論文があるので一応参考に挙げておきたい。

ku-haku.jp

cir.nii.ac.jp

以前自分が書いた記事で非二元論を取り上げて、あたかも非二元論が正しいかのような書き方をしているので、誤解のないようにしておきたいのだけれど、前述の記事でも書かれているように、どちらも結局のところ似たような結論に落ち着くし、どちらでも良いことだと思う。

例えば数学でも、ゲーテルの不完全性定理といって、無矛盾な公理的集合論は自己そのものの無矛盾性を証明することができないという性質がある。

ただ、単にどちらでも良いといっても今ひとつしっくりこないとすれば、ある意味で、非二元論と二元論は父と母みたいなものだと考えると、少ししっくりくるのではないかと思う。

もし私たちが何の知覚も分別もできないのであれば、それが一つだとか二つだとかいう分別はできない。非二元論が出てくるのは、文字通り二元論があったからであって、非二元論があるから二元論がある。この両者はある意味で相補的だというのが、自分の意見である。

正直いって、世界に対して盲目的でもいいのかもしれないと思うときが、ごくたまに自分の頭によぎることもあるのだけれど、没頭と集中の違い、溺愛と慈愛の違いにあるように、私たちは知覚も分別もできて、それでも手放すからこそ人間なのであると思う。

どんな理論でも完璧とはいかないし、完璧なものを見つけたと思うと苦しみにしかならないので手放すべきなのだけれど、どんな気休めであっても、一時的にでも役に立てば立派に人を助けていると自分は思うし、役に立って窮地を逃れることができたなら、ありがたくすんなりと手放すべきだと思う。

引き寄せがうまくいかないときは引き離す

ときどき引き寄せの法則について考えることがあるのだけれど、うまく引き寄せられない、という現象もよく聴く。

そんなときは、引き寄せようとしすぎて、引き離せていないのではないかと思ったりする。

仏教でお布施という言葉がある。お布施は他者に施すことで、何も金銭だけではないのだけれど、お布施とか、徳を積むということは、引き離していることだといえるのではないだろうか。

徳を積めばそれがカルマ(業)としていずれかは巡ってくるのであれば、それは引き離したものが自然と引き寄せられ、巡り巡ってくるということなのだろう。

宇宙全体で見れば、プラスもマイナスも相殺され、引くも足すもないのだから、引き寄せることばかり考えてもうまくいかないというのは必然かもしれない。

悟りはきっとみんなが思っているようなものではない

記事タイトルは、マインドフルネス考案者であるジョン・カバットジン先生著作の『瞑想はあなたが考えているものではない』にちなんだもので、内容は関連はあるけれど直接的に関係ないのであしからず。

最近、マインドフルネスの延長線として、特に『Beyond Mindfulness ― マインドフルネスを越えて』や『8マインドフル・ステップス』などを含めた複数の書籍を読んでいて、その他特に悟りとは何かというものを書いた書籍や論文を読み、日々の自分自身の体験を交えた上で、感じたことを以下に書いていこうと思う。(多分に宗教的な内容に踏み込むことになるので、苦手な方は控えてもらえればと思う。)

なお、このブログの筆者の職業はエンジニアで、宗教学者でも心理学者でもないので、以下は気軽なエッセイ程度に捉えてもらいたい。

マインドフルネスを越えることの意味

まず、大前提として、マインドフルネスは宗教とは意図的に切り離して作られている。

キリスト教を含めたアメリカやその他の国々の人たちに広く使いやすい "ツール" として使えるように考えられたもので、一つの心理療法や心理学的手法、さらにいえばハサミとか鉛筆みたいなシンプルな道具として使えるように設計されたからに他ならない。

自分はこのことは本当に素晴らしいと思っている。例えばブログや言葉もそうだけれど、単なる道具になることでみんなが気軽に使うことができて、気に要らなければ捨てることもできるし、興味があればどんどん深めることだってできる。

一方で、単なる道具にしたということは、それなりに限界もあるということである。例えば鉛筆だけでは書いた絵を消すことができないのと同じように、他の道具と組み合わせたり、ルーツになった信条を参考にすることでさらに深みが増す。

前述の二つのグラナラナ長老の著書は、後者の例で、マインドフルネスの元になった禅の、さらに仏教の八正道のなかから、Beyond Mindfulnessでは正定を深掘りし、8マインドフルネス・ステップスでは八正道全体を深掘りしている。

個人的にBeyond Mindfulnessは「正しい集中」について平易な言葉で書かれた貴重な書物だと感じている。内容としてはかなり仏教的なのだけれど、意図としては仏教徒以外にわかりやすく内容を伝えようという狙いがよくわかり、続編の8マインドフルネス・ステップスと併せて、初心者である自分自身にとっても貴重な情報源となった。

ただし、ここで一つ注意しておきたい問題がある。それが、信条や宗教に踏み込むというのはどういうことか、ということ。

深い知恵を得るために、何かを求めるというのは、メリットの大きさに対してそれなりに大きなデメリットやコストが存在する。特に、信条や宗教といった、考え方や生き方のベースになっているようなものを置き換えたり、考え直すというのは、それなりに大変なことである。

次の項ではこのことについての注意喚起も含めて、この記事の核心である部分を書くつもりなのだけれど、最冒頭で紹介した『瞑想はあなたが考えているものではない』でも挙げられているように、もしメリットを求めてマインドフルネス自体やその先を深掘りするのであれば、多分それは大きな過ちに陥るし、きっと求めているものは得られない。

自分自身、マインドフルネスで得られた良い体験を基盤にして、さらに深く知るべく、日々瞑想を続けたり、座禅をしたり、関連書籍を読んだりしてきたけれど、得られたものはそれなりにあるものの、「良い体験」をさらに良くできたということはなかった。だからこそ、スタート地点を心地よさや楽しさに置くと、おそらく大きなドンデン返しを食らう。

悟りとは何か: 当たり前を当たり前だとわかること

では、この記事の核心である、悟りとは何かということに言及していきたいのだけれど、前置きとして、自分は決して日々八正道を熱心に努めた修行僧ではないので、以下は想像の範疇でしかない。しかしながら、悟りに言及している多くの書籍や論文が同様のことを書いているように、日々「小さな悟り」、いわゆる気づきを絶やさないことで、その有り様というのはなんとなく想像できるものであると感じる。

悟りとは単刀直入にいえば、ワンネス(真我)やノンデュアリティ(中道、非二元論)を体現することであると思う。

それらは何かというと、ワンネスというのは、他者や自分といった区別のない、全てが一つ(の自分)であるという認識。そして、ノンデュアリティというのは、前者のような自己認識も含めて、あらゆる観念において、言語や思考のような二元論的な区別すらなく、全てがニュートラルであるといった認識。

これらを知識として知ることは容易いのだけれど、自分自身がそれになるというのは、実際には非常に困難であるし、いや、実は何もしなくてももうそれであるともいえる。

言葉で表現するとこうなってしまうのが、なんとも歯がゆいといつも思う。言葉の語彙というのは二元的、カテゴリー的であって、非二元的で区別のない世界を形容するには自分の語彙が足りなさすぎる。

ただ、少なくともいえることは、これらはごく当たり前で普通のことだということ。

ここに挙げた『これ以外のなにかはない』にも書かれているのだけれど、もし悟りというのが今の自分ではない全く別の超常的存在になるようなものであると考えているのだとしたら、それは誤りだと言わざるをえない。

仏教でブッダが目指したこともそういうことではない。あくまで現実を正しく見るということであって、現実を歪曲させることではない。つまり、悟りで得られることも、至極当然で当たり前のことで、今ここにあるものと何も変わりはないということ。

ノンデュアリティ関係の書籍でもよくいわれている、非二元論を考えると虚無感を感じるという問題があるのだけれど、そうした問題はここを誤認していることにある。

言葉でうまく伝えられる自信はないのだけれど、どんな言葉で何を形容しようとしても、今ここにあるものの有り様は変わらない。たとえそこにどんな理屈をつけたとしても、物事が変わることはない。変わるのは見方だけなのであって、見方と事実が二つに分かれている時点で、二元的になってしまっているのである。八正道やノンデュアリティ、ワンネスといったものは、このことに気づかせようとしているに過ぎない。

ただ、虚無感を感じるというのはとてもよくわかる。日常で言葉を使って様々なコミュニケーションをしたり、思考をして生きているところに、急に言葉や思考では捉えられないようなものがあるといわれると、面食らうし、何をしてもしなくても変わらないとかいわれると、もっと訳がわからなくなる。

でも、そういうときは思い出してほしい。考え方や言葉が変わったとしても、事実は変わらないということ。今ここにあるものは何も変わらない。

一方で、全ての物事は常に変化している。科学の授業で原子と分子、クォーツなどを習ったらすぐにわかることだけれど、ミクロのレベルでは全てが動いていて、変化している。

言葉で捉えようとすると、変わらないのに常に変わっているとは如何に、みたいになってしまうけれど、当たり前のことだし、どんな理屈をつけても世界が変わるわけでも、地球の自転が止まるわけでもない。でもひょっとしたら、ベースになっている考え方が一変してしまえば、地動説と天動説の違いみたいに、まるで世界が豹変するような衝撃を受ける人もいるかもしれない。

後者について少しだけ言及しておきたい。自分自身も日頃からよく間違いを繰り返す。失敗しながら少しずつ前に進んでいる。感動するとか衝撃を受ける、というのは、そうした過ちに気づく瞬間であったり、真理のようなものに気付かされてハッとする瞬間であることが多いと思うのだけれど、ワンネスなどが物語るように、失敗や誤った見方というものは存在しない。見方というのは無限にある。

ただ、これもまた言葉で語るのが難しいのだけれど、真理というのは存在する。目の前の物事は間違いなく動き続けているし、一定のルールに基づいて動いている。だから、真理はあるのだけれど、真理というものはない。

これは、古典物理学が間違っていたり、量子力学相対性理論では説明できないことが存在することに似ている。これらはどれも「正しい」のだけれど、「誤っている」のである。

こうやって読んでいて、さっぱり意味がわからないとか、前述の虚無感に陥るという感想があることはとても腑に落ちる。けれど、実際の現実がそうなっているのだから、仕方がないし、そういっている間にも物事は動いている。

悟りというのは、科学が真理を探求しようとすることと、同一であると自分は思う。そして同時に、科学的根拠がないものが役に立たないとはいえないし、いや逆に民間療法の方がときには役立つことがあるように、どちらも役に立つ。

例えば、古典物理学が間違っているとしても、古典物理学というのは日常の99%で大活躍するし、正しい。でも間違っている部分もある。

数学だって、矛盾はあるし、証明されていない問題もたくさんある。でも破綻しているわけではないし、とても役に立つ。

悟りだって、同じものだと思う。知らなくても生きていけるし、知ったところで当たり前のことを知るだけだし、常に変化している物事のなかで、自分自身も常に変化しているのだから、忘れていくし考え方だって変わっていく。悟ったとしても、努力しなくていいことにはならないし、学びがなくなるわけではない。

まとめ: 真理を追求するというのは、普段通りの生活をするということ

さて、この記事では、悟りというのがどんなもので、悟りを目指そうということにどんなリスクやリターンがあるかを、できる限りわかりやすく書こうと努めてみた。

しかしやっぱりというべきか、多くの禅にまつわる書籍がそうなっているように、まるで「煙に巻く」ような表現ばかりになってしまったし、内容は矛盾だらけで取り留めのないものになってしまった。

でも、それが現実というものなのだから仕方がない。自分はそのことを知ってもらえたら満足だと思う。

ブッダも、人間は糞袋にすぎないといったそうだけれど、悟りはそんなものであって、そんなに崇高な何かではない。

たとえ真理が「なんだこんなものか」というものであったとしても、真理に至ろうという活動は素晴らしいものである。だから、真理の探求をやめるべきではないし、何より、目の前の仕事や生活をおろそかにするべきものではない。それどころか、真理は目の前の生活や日常にあるのだし、目の前の生活や日常そのものなのである。

もしワンネス(真我)やノンデュアリティ(中道)を知り、学んで、虚無感に襲われている人がいたら、このことをどうか思い出してほしい。言語や思考というのは必要だからそこにあるのであって、言語に限らず、全ては必要だからそこにある。意志の力もしっかりと存在するし、何もしなくても物事は動いていく。

現実というのは、偏りや矛盾があるように見えるのだけれど、それでもただ、そこにあるのである。

Niz Plum 84に電源ON/OFFボタンをつけて不具合(文鎮化)を直した話

最近、Niz Plum 84キーボードというものに惚れ込んで、中古で安く手に入れたのだけれど、いきなり不具合に見舞われた。(下記商品リンクは参考。直接的には無関係。)

その不具合というのは、Bluetooth周りでうまくペアリングができない挙げ句、F12キー (Bluetoothランプ) が光りっぱなしになったまま、何も操作できなくなるというもので *1 、いわゆる文鎮化という致命的な不具合が起こってしまった。

調べてみるとこの不具合に陥るケースはかなり多いようで、新品で購入した方はほとんどが交換対応で解決しているようだった。

結論からいえばこの問題は電源のオンオフ (あるいはバッテリーの完全放電) さえできれば解決するのだけれど、Niz Plum 84には電源ボタンはなく、本体の横にある電源ボタンのようなものは、あくまでBluetoothのオンオフスイッチでしかないため、文鎮化すると操作できなくなる。

自分は中古で買ったこともあり交換には出せないので、悩んだ挙げ句、とりあえず分解してみることに。分解は以下の記事がとてもわかりやすく、自分はギターのピックや、アイスの棒をナイフで削った自作器具を作って分解した。

dosukoi-ichibanboshi.com

開けてみたところ、記事中にもあったように電源部はシンプルなものだったので、単純に電源のマイナス側の線を切って、電源ON/OFFできるスイッチを取り付けた。

本当は100均とかの電源トグルスイッチがついているおもちゃをバラして部品に使おうと思ったのだけど、手元にちょうどいいのがなかったので、ブレッドボード上での電子工作に使うジャンパー線で代用した(繋げればON、外せばOFF)。

電源ボタンをつけるだけなので、やったことといえばキリで穴を開けたり、被覆を剥いてハンダ付けしたくらいなのだけど、このシンプルな改造で不具合はあっさり直った。

ただ、ペアリング時の微妙な挙動というのは相変わらず続くので、電源ボタンは一度付けてからというもの毎回のように利用している。もし断線したら今度はちゃんとしたボタンを取り付けたい。

そもそもなぜ最初から電源ボタンをつけなかったのだろうと疑問に思ったりするし、ボタンが全く反応して何も操作できなくなる「文鎮化」ともいえる不具合はかなり致命的なので、最新版では直っていてほしいと切に思う。

少なくとも執筆時点では同モデルの不具合はファームウェア更新をしても継続しているようで、機能的には非常に優れたキーボードだけに、こうしたバグのような根幹的な不具合で評価を落としているのはもったいない。

NiZは他のキーボードに比べてかなり機能が多く、チャイルドロックなどの複数のロック機能や、ボタンの組み合わせによって様々なカスタマイズができることから、それが逆に仇となって、トラブルシューティングの手順も複雑になっており、トラブルの原因を分かりづらくしている部分もあるのかもしれないと感じた。

自分の場合は結局分解・改造で解決したのだけれど、分解してしまうと保証対象外となるはずなので、ファームウェア更新などで今後は直るようになることを期待したい。

*1:筆者の場合はMaciOSとのペアリングがうまくいかないケースが多く、Windowsの場合はうまく使えるといった報告もあったり、有線で利用を続けているというユーザも多かった。操作できなくなる以外に、挙動がおかしくなったり一部ボタンが使えなくなるといったトラブルも報告されている様子。

両腕を自由にするゲームパッド入力レイアウト

github.com

現段階では大半が未実装で、草稿段階ではあるものの、一旦GitHubに公開してみることにする。

最近年齢のせいもあってか、キーボードとマウスでパソコンに向かうことが辛く感じる日が多くある。また、スマホタブレットもそれはそれで疲れるようにも感じる。理想的には、両腕が自由にできて、好きな姿勢で動きながらでも仕事ができれば、と考えているうちに、SwitchのJoyConのようなもので文字入力やカーソル操作ができればと考えるようになった。

同様の考えを実装してみている先行研究はいくつかある様子。

今回の重きは文字入力にあるのだけれど、こうした先行研究にあるフリック入力的なものをゲームパッドに実装して感じたのは、思ったほどサクサク入力するのは大変だということ。多分慣れの問題が大きくあるものの、ジョイスティックで8方向入力を正確に行うのは意外に難しいため、親指シフトと同様にデバイスを選びそうな感じがした。

実装の過程で重視したのはMacでもWindowsでも(Linuxでも)動作することなのだけれど、特にMacではpygameinputsで認識するハードの種類に限りが見られたので、HIDレベルで入力処理をする羽目になり、手こずった。特にDirectInputについては手元のLogicool F310でしかテストを行っていないので、実用性・汎用性のためには多くの課題がありそうに思う。

ベースはできつつあるので少しずつ練習して改良していけば、例えば最近多くあるSteam Deckのようなゲームデバイス風ポータブルパソコンでも役に立つかもしれない。