投稿

五十音配列付き新下駄配列

イメージ
keyboard layout editorデビューしました。ファイルが複数になると管理がめんどうなので、このブログの内容はSVGファイルに直接書いてますが、これでいいんだっけ?まあ、消えなければ後からなんとでもなるからいいか。 と思ったら、SVGは日本語に対応していないみたいです。しくしく。 レイアウトは新下駄配列に覚えやすい五十音配列を加えたものです。アルファベット自体をいじってますが、qtypをちょっと動かしただけです。bntyを親指で押すシステムなんですが、けっこう快適です。ErgoDox EZだと斜めになっているキーが親指に当たるので取ってしまっています。アルファベットの長押しに制御キーやレイヤーキーを割り当ててしまえば30%で十分なんですね。ほとんど手首を動かさずに入力できます。 日本語配列は新下駄配列の拗音以外はそのままなので、覚え直すことなく使えます。五十音部分は左手で行を指定して、右手で段か拗音を指定する方式です。新下駄配列で使用しているsdklはそのまま残してあるのでさ行、た行がありませんが、それは新下駄の方を使ってください。拗音は新下駄のものをそのまま使うこともできたのですが、左手で行を指定する方式なのを活かして、右手で拗音を指定する方式にしました。各行に拗音とくっつくのはひとつしかないんですね。不思議な感じです。 欠点はロールオーバーミスが起こりまくることです。「うんち」と入力しようとして「にち」になるようなことがよく起こります。新下駄配列でもsdklioがからむと起こるのですが、それ以外にもシフトキーを増やしたので大幅に起こりやすくなっています。そういう配列なのでそこはあきらめてください。スピードを犠牲にして脳の負荷を抑えた配列です。ただ、ローマ字テーブルからfj同時押しで「に」の項目を消してしまえばそうはならないので、いろいろカスタマイズできるかもしれません。この配列でスピードを目指すならステノワードのような方向になるでしょう。脳の負荷が増えてしまいますが。 良い点は、左手で行を指定する方式なので数字行にはみ出していたみゃ行等を30%の範囲に取り込めたことでしょうか。もう一つ、頻度の低い文字は五十音の方を使うことにすれば、空いた所にいろいろ突っ込めるところでしょうか。かなり気に入ってます。 ∨ Source mar...

メモの統合

ブログを書くコツはなんでもかんでもブログを書くていで始めることかな?とここまで書いて「この話題はこの1行を𝕏に書いて終わりでいいんじゃないか?」と思った。でも、せっかくなので考えを進める。 書き始めはどこに上げるのか決めないで書き始めるのがいいのかな?SNSに書くときも下書きに書いているから、できることはできるけど。そうなると、書きかけがたくさん溜まって、どれを上げたのかわからなくなるな。上げたやつは上げたマークを付けておけばいいかな?逆に上げてないマークがいいか?今は下書きに書いてから𝕏, Mastodon, Blueskyのどれに上げるか決めているから、どこに上げたのか書いておくのもいいかもな。となると上げたマークと上げた場所のマークだな。 ブログの下書きは迷っているのでいろいろな所に分散している。 docs/blog/ に blog.md として下書きをまとめているやつと、個別のタイトルが付いているものがある。SNSの下書きは docs/memo/todo.txt にあるので、そこから切り出したやつは docs/memo/ にタイトル付きであったりする。 todo.txt なのは後で見返す用だった名残り。見返さないやつは memo.txt だったが、全部見返す運用にした。ただし、見返していない。 おれおれマークダウンが proj/markdown/markdown にあるので、そこに移動してあったりもする。機能追加しながら書いていたのでこんな運用になっているが、fixして ~/bin 辺りに入れてしまうのがいいかな? docs/blog にリリースするのでもよいか。 markdown が重なっているのはgitの使い方を間違えたから。これも早くなんとかしないと。 おれおれマークダウンの配下にメモを置いてしまえばいいような気もするが、バックアップの管理上ディレクトリを分けたい。 docs/blog/ と docs/memo/ はまとめてしまうのがいいかな?けっきょく、上げる先が違うだけだからなあ。上げないものもあるな。後で見返せるようにカテゴリ別に分けた dropbox/x というのもある。上で挙げたディレクトリはパソコン用で、 dropbox/ はiPhone用。前はさくらのレンタルサーバに上げていたのだが、LiquidLogicで自動保存が効...

キーマップのhold

キーマップでholdも活用するようにしました。そういう機能があるのは知っていましたが、tapのつもりでholdになったり、その逆になったりするのが嫌で使っていませんでした。しかし、キーボードの一番上の数字行を使うのをやめて数字レイヤーを使おうとすると、winキー+数字やctrl+数字を使おうとすると、押せる場所の確保がどうにもならなくて諦めました。新下駄配列でアルペジオで素早く打つのを諦めて、楽に打つ方針にしたのも理由です。 使ってみるといくつか問題が出てきました。まず、新下駄配列で同時押しの判定がぐちゃぐちゃになりました。それまで入力できていた文字が入力できません。どうやらholdを設定したキーは離すタイミングで入力の扱いになるらしく、設定されていないキーを押すタイミングと離すタイミングを合わせなければならないようでした。そんなものは覚えられないので全てのキーにholdを設定しました。これで新下駄配列の問題は解決しました。 今度は全てのキーにholdを設定したせいで別の問題が出てきました。Vimでhjklでカーソルを動かすときに、押しっぱなしにするとカーソルが動かずにholdになるようになってしまいました。まあ、そもそもVimで同じキーを連打するのはかっこ悪いことなので問題ないかとも思ったのですが、ダブルタップからの長押しで機能することに気がつきました。 最初にキーマップを決めるときにも思いましたが、ネットにその手の話題が少なすぎますよね。最近のGoogle検索が使えないだけかもしれませんが。 ∨ Source markdown キーマップのhold キーマップでholdも活用するようにしました。 そういう機能があるのは知っていましたが、tapのつもりでholdになったり、その逆になったりするのが嫌で使っていませんでした。 しかし、キーボードの一番上の数字行を使うのをやめて数字レイヤーを使おうとすると、winキー+数字やctrl+数字を使おうとすると、押せる場所の確保がどうにもならなくて諦めました。 新下駄配列でアルペジオで素早く打つのを諦めて、楽に打つ方針にしたのも理由です。 使ってみるといくつか問題が出てきました。 まず、新下駄配列で同時押しの判定がぐちゃぐちゃになりました。 それまで入力できていた文字が入力できません。 どうやらh...

新下駄配列の誤入力対策

「REALFORCE TYPING CHAMPIONSHIP 2024」を見て「素早く入力できるキーマップと楽に長時間入力できるキーマップは違う」ということがよくわかりました。あんなので数時間ぶっ続けでやったら指がつりますよね。ということで、キーマップも日本語配列も楽に長時間入力し続けられるのを目指す方向でいきたいと思います。 という方針でいくことにしたのですが、それでも素早く入力できるキーマップは考えてしまいます。新下駄配列だと、どうしてもちょくちょく意図しない文字が出てくるんですよね。単打の連続を同時押しと誤認識するからなのですが。素早く離すことでちょっとはましになるとは思うんですが、それでも起こってしまいます。 これを回避するためには単打が即確定になるようになんらかのシステムかキー配置を考えればいいんですが、これがなかなか難しい。かなシフトキーに単打を割り当てないと単打のうまみが無くなるし、親指シフトみたいな左右の親指に一つずつでは拗音用のキーが足りなくなるし。単打をなくしてしまおうかとも思ったけれど、それってわざとめんどくさくして単打を遅くしているだけだし。シフトキーを押しながら即確定は押しながら左右のキーをそれなりに打てないとだし。 とここまで書いて思いついたのですが、bとnのholdをシフトキーにしてしまえばいいのか。別のキーでもいいけど。なんらかの親指のキーのholdをシフトキーにすれば単打が即確定になるからいける気がする。ちょっと試してみよう。 ∨ Source markdown 新下駄配列の誤入力対策 「REALFORCE TYPING CHAMPIONSHIP 2024」を見て「素早く入力できるキーマップと楽に長時間入力できるキーマップは違う」ということがよくわかりました。あんなので数時間ぶっ続けでやったら指がつりますよね。ということで、キーマップも日本語配列も楽に長時間入力し続けられるのを目指す方向でいきたいと思います。 という方針でいくことにしたのですが、それでも素早く入力できるキーマップは考えてしまいます。新下駄配列だと、どうしてもちょくちょく意図しない文字が出てくるんですよね。単打の連続を同時押しと誤認識するからなのですが。素早く離すことでちょっとはましになるとは思うんですが、それでも起こってしまいます。 こ...

パソコンでブログを書く環境再考

ちょっと前まではエディタをWSLのEmacsだけでやっていくつもりでいたのですが、知らない間に落ちていることが頻発したのでやめました。それまでは、当然その環境で書いていたので、その環境が無くなることでブログを書くことから遠ざかってしまいました。ということで、どうするのか考えながらブログも書いていきます。 この文章はとりあえずgVimで書いています。SNSへの投稿の下書きファイルをgVimで開きっぱなしにしていたので、それに間借りする感じです。しかし、Vimのタブ間の移動は不便ですよね。gtは両方とも人差し指だし、tはそもそも押しにくいし。 でも、tはaの左にも設定したので、かなり押しやすくなりました。このtをaの左に持ってきて、bは親指で押すシステムにしたら、とても手首が楽になりました。row staggeredなキーボードのbとか頭おかしいのかと思うような位置ですよね。column staggeredなキーボードで親指で押すのが正解です。 ただ、atがとても打ちにくくなってしまいました。元の位置のtは別のキーを割り当てて、なにか別の便利なものを割り当てようと思っていたのですが、これは残したほうがよいかな? キーボードはいずれ詳しく書くことにして、ここではここまで。ブログの量産体制ができればたくさん書くはず。とはいえ、ブログを書く環境はキーボードと密接に関係しているんですけどね。 ブログを集中して一気に書き上げるならなんでもいいんですよ。でも、だいたいいくつも書きかけが開きっぱなしになると思うんですよね。そうなるとタブの選択がめんどくさいかな?そうでもないかな?めんどくさいならエディタを分けてしまえばいいんですよね。アプリならWin+数字キーで一発で移動できますから。でも、その方法では10までしか選択できないんですよね。すぐに10以上になってしまうから、あまり増やしたくない。となるとgVimで全部やるかな?それがいい気がしてきた。gVimもあんまり使ってこなかったから勉強がてらやるかな? でも、時代はNeovimという話もあるんですよね。ぐぐるとVSCodeと比べる記事とかもあるんですよね。そんなにごてごて機能を追加しているのか?こっちも使ってみないとな。VSCodeももうちょっと使いたいし。 Emacsだとmarkdown-preview-mode...

WSLのEmacsの常用はやめました

WSLのEmacsは知らない間にタスクバーからアイコンが消えているので常用するのはやめました。ちょっと前までは本当にクラッシュしていたみたいなのですが、最近は落ちなくなったようで、新しくEmacsを起動すると2つ起動している状態になるようになりました。なので、新しくEmacsを起動して、すぐに終了させるということを繰り返していたのですが、バカバカしくなりました。これはとりあえずWindowsのgVimで書いています。 ただ、WSLのEmacsをやめようと思うと代わりになにを使うかが悩ましいです。WindowsのVimのシェルは使ったことがないんですよね。NTEmacsでシェルという手もありますが、Diredはあまり使い心地がよくないんでなるべく使いたくないです。Cygwinのシェルからtmux経由でVimというのが慣れているし使い心地もよいのですが、𝕏とかの文字をまともに扱えないんです。どうやらtmuxを使わなければ𝕏の表示の問題はなさそうなので、CygwinのシェルからWindowsのVimを起動するというのもありかな?でも、これだとVimを選択してタブを選択という手間がめんどうです。まあ、Emacsでも同じなんだけど。CygwinでGNU Screenという手もあるけど、プレフィックスが柔軟に設定できないみたいなのであまり使いたくないんですよね。WSLからWindowsのVimやNTEmacsという手もあるか。アプリを複数使うと直接指定できて便利なんですよね。そもそもWSLのVimでもいいのか?でもこれはWindowsのクリップボードを使えないのか。 うーん、選択肢が多いわりに利点欠点が様々で頭がこんがらがるな。でも書いたらだいぶスッキリした。とりあえずWSLからVimやWindowsのアプリを起動するやりかたで問題点がないか確認してみるか。 ∨ Source markdown WSLのEmacsの常用はやめました WSLのEmacsは知らない間にタスクバーからアイコンが消えているので常用するのはやめました。 ちょっと前までは本当にクラッシュしていたみたいなのですが、最近は落ちなくなったようで、新しくEmacsを起動すると2つ起動している状態になるようになりました。 なので、新しくEmacsを起動して、すぐに終了させるということを繰り返し...

キーボード雑感

 ErgoDox EZを使っているのですが、親指で押すキーの位置が気に入りません。手の大きい人が親指で押すキーは2つという設定で作った感じなんですよね。 キーマップをいろいろいじっていくと親指には大活躍してもらわないと困る感じになってきました。記号レイヤー、シフト、リターン、スペースは押しやすい所に置きたいですよね。これだけで左右3つずつ使ってしまう。ここにAlt, Win, 数字レイヤー、ファンクションレイヤー、変換・無変換、タブ、ESC, バックスペースをなんとかしなきゃならない。現状は5つの親指キーとCtrlキーの下のキーでなんとかやっているけど、やや無理があると思っています。 ぐぐって他の人のマップを参考にしたいと思っても、前提条件が違いすぎてあまり参考になりません。書いている人は少ないキーで済ませている人が多いんですよね。自分は60%は欲しいタイプだし、数字キーもタッチタイプできるんですよね。5と6が怪しいけれど。 ErgoDox EZよりも親指が使いやすそうな60%キーボードはErgo68とLily58があるようです。Ergo68はキーが多いくせに親指は4つしかないんですよね。ホームポジションで親指がのるキーの左右に2つずつあればいいんだけど。 それでも4つあればいいほうで、そんなにないやつが多いです。ああいうキーボードを使っている人はファンクションキーとか日本語入力とかどうしているのだろう?そこまで書いていないことが多いんですよね。 親指で押す遠いキーはキーキャップの形状を変えて引っかかるようにすれば押しやすいと思うんだけどな。試していないからわからないけど。もしくは、キーを90度傾けるとか。キーキャップじゃなくて、特殊な装置で既存のキースイッチに90度傾けたかのような押し方に変更できるものがあればいいのに。 自分が欲しいものが無いなら自分で作るかとも思ったんですが、世の中の標準が親指は4つまでとなっているのなら、それに合わせたほうが楽な選択肢が広がるとも思うんですよね。 とりあえず4つでなんとかならないか試してみるのが先かな?でも4つあるやつでも押しやすそうなのは3つまでなんですよね。 少ないキーで済ますためには単押しと長押しで別の意味にしなきゃならないんだけど、うかつにこれをやると意図しない結果になるんですよね。 考えると無限に時間を使いそ...

メモのHTML化

最近スマホでのメモの取り方を見直しています。その一環でHTMLを試しています。 前からLiquidLogicはHTMLのプレビューができるのは知っていたのですが、あまり試せていませんでした。必要最小限のヘッダだけでは字が小さくて読めなかったんですよね。とりあえず大きく表示するためにviewportとか調べなければならないんだと思っていました。てきとうにぐぐると <meta name="viewport" content="width=device-width,initial-scale=1"> と書けばよいと書いてあったので、試したら一発でした。 タブの眼鏡マークを押すとプレビューで、プレビュー画面の戻るボタンでエディタに戻れます。簡単。 ファイルがHTMLとして扱われるには拡張子がhtmlになっていれば自動的に認識されるみたいです。でも、ファイル名は1文字にしたいので拡張子は付けたくない。調べてみるとファイルのタブをタップして出てくるメニューから「ファイル情報」➝「言語」から"HTML"を選択すればよいみたいです。ただ、この方法だと開き直すたびに指定しなくちゃならない。でも、開きっぱなしだからいいか。開きっぱなしにしないやつは拡張子を付ければいいだけ。 HTMLだと末尾に閉じタグが必要なので、末尾にジャンプして追加するときにちょっと操作が必要なのですが、自分専用なので閉じタグは消してしまいました。本当はだめなんだけど、最近のレンダリングエンジンは寛容なのでどこでもこれで通用するはずです。LiquidLogicでもOKでした。 メモなのでテキストでガシガシ書いていってタグなどは付けたくないのでpreタグで囲っています。HTMLの話題のときはタグが出てくるのをそのまま書きたいのですが、CDATAセクションでなんとかならないかと試してみましたがだめでした。LiquidLogicで選べる言語にXHTMLは無いし。そういう話題の場合はパソコンからやるしかないかな?

メモの統合

最近iPhoneでのメモの取り方を変えました。Zettelkastenとかいうのを見つけたのとは関係無いです。LiquidLogicのhtmlを表示する機能を試して、使えそうなので有効活用するためにいろいろ考えています。 LiquidLogicはたくさんファイルを開けていると選択がめんどうなんですよね。右上のメニュー➝タブ一覧➝スクロール➝選択と手数が多いので、なるべく直接タップで開けるように1文字ファイル名で開きっぱなしにしています。それだとiPhone 8 Plusだと4タブまでいけるんですよね。4タブ目は1文字である必要無し。開きっぱなしなのはSNSの下書き、日記、ブログメモの3つです。前はtodoファイルを開いていたこともあるけど、最近はお休み中。これもそのうち工夫して復活させるつもり。 4つのファイルにアクセスが簡単になり、LiquidLogicは先頭と末尾に飛ぶのは簡単にできるから、4×2で8種類のメモは取れていました。 でも、膨らませている最中のブログメモ等は独立したファイルにしていたので、かなりの数になってしまってファイル選択がめんどうでした。そこでまず、ブログに書こうと思ったことを書いているブログメモをその他のいろいろなメモと合体させました。 複数のメモを統合したので先頭末尾の2か所では足りなくなりました。そこで、検索で対応することにします。追加する場所に目印となる文字列があれば検索で飛べるんですよね。全文検索結果一覧で、結果のクリックで飛べるから目次的にも使える。今回メモのhtml化をしたので"<h2"で検索すると目次一覧が出てくる感じになりました。でも、毎回検索文字列を入れるのは大変なので、基本的に常にそのワードが検索対象になるようにしておかないとですね。6個までは履歴が残るみたいだけど。 これで「じゃまだからいったん閉じよう」と閉じて忘れてしまうファイルが減るはず。テキストのサイズなんてたかがしれているから、たくさんのメモをアクティブ状態で管理できる。 ということで、こんな感じでしばらく運用してみます。

ブログの書き方を変えてみた

タイトルは下書き時点では付けない。これはタイトルに沿わないことを書かないようにブレーキがかかってしまうから。先ずは雑文集みたいなのを目指す。 これまではテーマ毎にLiquidLogicかEmacsでタイトルを付けてファイルを新規作成していた。タイトルを書かないためにはこの方法は使えないのでブログメモの中にてきとうに書く。 ブログメモはブログに書こうと思ったアイデアの短いメモ。LiquidLogicではすぐ書けるように基本的に開きっぱなし。前はツイートやトゥートの下書きと一緒にしていた気がするが、今は別にしている。この運用もどうしようかな? タイトルを付けないのでいきなり別の話も書き始められる。さらに、前はブログを書きながら「後でこのテーマでも書こう」と思ったものを文末にメモしていたので、最後に整形するときにブログメモにコピペする作業が必要だったが、それが無くなる。 書き終わったら新しいファイルにタイトルを付けて移動。さすがにそのままだとブログメモが読みづらくなってしまう。 ブログの投稿のしかたもちょっと変更。今まではパソコン上でスクリプトでhtmlに整形してからBloggerのhtmlモードにコピペしていた。iPhoneのみでできるようにしておかないとたくさん書かないので、その場合はテキストモードにコピペに変更。パソコンからのみにしていたのは統一したフォーマットで残すためと数式とかの特殊処理をするため。iPhoneからの場合はテキストのみだろうから、これで大丈夫なはず。まあ、テキストファイルで残すのもいらないかなという気になっている。Bloggerのバックアップで十分かな?

ブログがなぜ書けないのか考えてみた

とりあえずすぐに向かえる環境ができていないからだな。書くなら新下駄配列の練習もしたいからパソコンに向かわなければならないと思ってしまうのだが、スマホは常時握りしめていても、パソコンは起動に時間がかかったり、寒い部屋で手がかじかまない方法を確立していないので億劫なのである。 その点スマホはストーブの前に貼り付いて書けるので手がかじかむ心配は無い。なので今はそうやって書いている。 スマホではLiquidLogicで書いてDropboxに保存なので、パソコンからも簡単に開けて問題無し。ちょっと前はDropboxは使わずにさくらのレンタルサーバにSSH経由で同期して使っていた。これはレンタルサーバ上に公開するものがDropboxに入っているとサーバから取り出せない問題があって、そうしていた。今はサイト自体が放置状態だし、頻繁な更新でないならスマホ経由で送ればいいかと思っている。 Dropboxの使用を解禁したのは理由があって、LiquidLogicで記号の幅が違って見づらかったのでFontInstall.appというやつでフォントを替えたらLiquidLogicが落ちてしまい、セーブしていなかったデータが消えてしまったので、オートセーブ可能なDropboxを解禁した。 書けない理由その2として話題があちこちに行くのを良しとしないで、1つのことを掘り下げて書くべしという思いが強かったのもあるのかも。この話題ならこっち方向の掘り方も必要で、そのことも考えてから書こうとか思っていた。でも、そうすると断片的なメモ集だけできあがって、全然完成しないんだよね。深夜ラジオとかだと話があっちこっちに飛ぶのは好きなのに。 理由その3は、書いたものを後で追加して、その後少し寝かせてからチェックを入れてリリースしようとか思って放置状態にしてしまうからですね。どうせたいして読まれないんだから誤字脱字や語尾のブレぐらい気にすることもないんだよな。 理由4はメモが散らばっているので、メモにざっと目を通して関連するアイデアをメモっていないか確認する作業が必要だと感じていたところかな?せっかく書くのだから、関連するアイデアを統合してブログに書いておきたいと思うのだが、それがめんどうで書かないならやらないほうがいい作業だな。 理由5はこれで全部じゃない気がすると思うところか?これは理由3とかぶっている気がす...

Agdaでかけ算の交換法則

Agdaでかけ算の交換法則を Day2-answer.agda を参考に書きました。というかそのまんま。名前は Programming Language Foundations in Agda に合わせたつもりです。理解のためになるべくていねいに書こうと思ったんですが、 *-suc と *-comm をばらそうとするとエラーになってしまってめんどくさくなってしまいました。 *-suc は先にlemmaが必要なんだろうな。 *-comm は「あっているはずなのに」と思うんですが通らない。基本がわかってないんですよね。 refl はたんに計算するだけで、 rewrite は suc n を n にしたらいいのかと思うんですけど。まあ、いちおう C-c, C-l で通ります。 import Relation.Binary.PropositionalEquality as Eq open Eq using (_≡_; refl; cong; sym) open Eq.≡-Reasoning using (begin_; _≡⟨⟩_; step-≡; _∎) infixl 6 _+_ infixl 7 _*_ data ℕ : Set where zero : ℕ suc : ℕ → ℕ _+_ : ℕ → ℕ → ℕ zero + n = n (suc m) + n = suc (m + n) +-assoc : ∀ (m n p : ℕ) → (m + n) + p ≡ m + (n + p) +-assoc zero n p = begin (zero + n) + p ≡⟨⟩ n + p ≡⟨⟩ zero + (n + p) ∎ +-assoc (suc m) n p = begin (suc m + n) + p ≡⟨⟩ suc (m + n) + p ≡⟨⟩ suc ((m + n) + p) ≡⟨ cong suc (+-assoc m n p) ⟩ suc (m + (n + p)) ≡⟨⟩ suc m + (n + p) ∎ +-identityʳ : ∀ (m : ℕ) → m + zero ≡ m +-identity...