モチベが戻ってきた

体調が戻ってきたというのが一番の理由だと思うけど、 以下の小町先生のエントリーで、 komachi.hatenablog.com

岡野原さんでもモチベーションがやられることがあるんだと知れて、だいぶ気が楽になったというのも理由の一つ。

一番難しかったのがモチベーションの維持でした。もし、3年間やる気を全開にし続けられたら、10倍ぐらいの成果がでていたでしょう。実際はやる気が全くでない時期、パソコンを開いても全く論文が書けず、実験ができない時期というのがよくありました。

また、欝とまではいかないですが、言い知れぬプレッシャーと戦ってました。自分がやらなくても誰も何も言わないし、何をいつまでどのようにやるか全部自分で決められる、というのは最初はいいなぁと思ってましたが、途中からこれは何と厳しいことかと思いました。人の心は弱いので、こうした状況では何もしない楽な方向にまずいきます。そして研究が進まないことに不安になります。

滞在期間の尻が見えてきてとてもナーバスになっていたことと、研究が進まないことの両方がぐるぐるして悪循環に陥っていたけど、 やっていくぞ。 やっていくぞ。

2022年振り返り

ざっと振り返り

  • 1月 - 5月 ビジョンの研究
  • 6月 国際学会発表
  • 7月 - 9月 ビジョンの研究が頓挫、元のmotion planning系の研究にシフト
  • 9月 - 10月 国際学会締切直前にcovid感染、ダウン&ブレインフォグ
  • 11月 - 12月前半 研究指針が迷走
  • 12月後半 - 2023年1月前半 covid再感染、ダウン&ブレインフォグ

2021年後半から2022年の前半を芽の出ない研究に費やした点、2022年後半の半分をcovidの倦怠感とブレインフォグで生産性が無になった点で非常に後悔が残る。 かといってどうすればよかったのかわからない。

また、研究進捗をどうしたら量産できるのか未だに全然わからない。 研究の大目標を立ててそれを無理矢理追いかけるより、できることから積み上げるように進める方が進捗は出るんだろうなという気はする。

国際学会は楽しかったので後一回だけでもなんとかして出したい。

デカフェインスタントコーヒーでも結構おいしい

ドンキのドリップコーヒーがあまりにもまずく(なんか粉っぽい)、これはだめだということで色々物色した後、 結局近くのスーパーに売っているちょっといいデカフェインスタントコーヒーを買った。 これが結構おいしい。これもうドリップしなくていいわ

Classic Decaffeinated

moccona classic decaf
Moccona Instant Freeze Dried Coffee - Classic 5 (Decaffeinated) | NTUC FairPrice

これまではデカフェコーヒーはnescafe gold decafを買っていた。悪くはないけど、酸化するのか味が急速に落ちるので候補外にした。 今回は当たりを引けてよかった。

追記(2022/12/26): ちょっと時間が経つと、酸化したせいか若干味が落ちた気がする。 やっぱり人がインスタントを避けるのには理由があるのね…

僕、まばたきできてない気がする

ドライアイや眼精疲労、頭痛がひどくツールとか色々作ってきたけど、あんまり改善しない。 ompugao.hatenablog.com 思い当たる理由は以下の2点:

  1. 姿勢がわるい
  2. まばたきがまばたきになってない

姿勢は以前から気になっていて、座っているときにお尻がずり下がった状態になってたり腰が曲がっているので これは背筋をトレーニングして改善していきたいんだけど、腱鞘炎でちょっと難しい。

理学療法士さんにおすすめされてこの本は買った。読みもした。一つ目のトレーニングもやった。それ以降やってないけど…

www.amazon.co.jp

まばたきできてない、というのは今日気づいた。 まばたきした時に上まぶたが下まで下がってはいるんだけど、すぐに持ち上げるせいで、目の筋肉が緊張したままになっている。

まばたきする時に少し長めに閉じるというのをやってみようと思う。 どうせタイピング中に画面を見続ける必要はないので、特に文章のタイピング中は目を閉じることを心掛けようと思う。

姿勢がわるかったり画面を凝視してたら肩たたいて教えてください。

Language Serverの仕組みに乗っかればscrapboxっぽいwikiをvimで実現できる

scrapboxみたいなwikiを好きなエディタ(vim)で編集したい。 そこでLanguage Serverとして作った。

github.com

こんな感じ(ちょっと長めの動画。2倍速でどうぞ):

youtube video

syntax

scrapboxpythonに大いに影響を受けている。 全ての文章が箇条書きで、タブ文字で右にシフトして入れ子的にリストをつくっていく。

地の文。
改行は改行として扱う。
    タブ文字でインデントするとリストができる
        ネストしてもよい
    2こ目の要素
    [@quote]
        引用するときはこんな風に。
        一段インデントする。


装飾:
    [* 太字]はこう。
    [/ イタリック]はこう。
    [*/ 太字イタリック]はこう。

リンク:
    [wiki内リンク]
    [https://google.com google]
    [google https://google.com] タイトルとURLはどっちが先でも可。
    [@img https://via.placeholder.com/50 width=100 height=100] 画像はこう。
    [@img https://via.placeholder.com/50 "altテキストもいれていいよ"] altテキストとurlの順番も入れ替え可。


コードハイライトはhighlight.jsがやってくれる
    [@code python]
        import numpy as np
        print(np.sum(10))
    [` インラインコードはこう `]

数式はkatexにお任せ
    [@math]
        O(n^2)\\
        sum_{i=0}^{10}{i} = 55
    インライン数式はこう: [$ O(n log(n)) $]

テーブルもタブで区切ってね
    [@table]
        hoge    fuga
        piyo    asdf

preview画像。なぜか画像が荒い

実装

pythonに慣れてるのでpythonで。 pyinstallerにかければ実行ファイルも簡単にできる。 パースはgrammarを定義すればlarkがよしなにやってくれる。 lspについては、最近はべんりなものでgeneric language serverなるものがあり、 ベースの実装にちょっと書き足すだけでLanguage Serverになる。 github.com

僕はそこにrendererもくっつけた。 なぜならrendererのwikiリンクをクリックしたらエディタ側もそのテキストを表示してほしいし、 それをするには双方向の通信が必要で、lspの仕組みにのっかるのが楽だったから。 lspにのっかっておけば他のエディタでも使える。 completionもdiagnosticsも簡単に出せる。

無論Zettelkastenに対応した。Language Serverは起動するとフォルダ内のファイルをスキャンしてグラフを作る。 [を入力するとグラフ内のページが補完される。 プレビューアの下部にはバックリンクが表示される。 これが欲しかった。

動画には入れてないけれど、zoteroのデータベースを指定するとzoteroのアイテム補完もできるようにした。べんり。

なんでmarkdownじゃないの

markdownが好きじゃないから。flavorやextensionによって挙動が異なるせいで、

  • 改行は改行と認識されるのか?
  • インデントしたときcode blockもインデントも揃えないといけないのか?
  • quote内の改行は改行として扱われるのか?
  • mathの記号はどれか?
  • リストの前に改行は必要か?

などと書いてる最中に気になることが多すぎて、何を書こうとしていたのかわからなくなって、書く気力が削がれてしまう。 二つ目のcode blockが特に嫌いで、例えば

- 箇条書きの中でコードスニペットを書こうとする
    - こんなふうに:
    - ```python
      def fn(arg):
          print(arg)
      print(fn('asdf'))
      ```
    - 箇条書きの続き

のように書こうとすると、3行目のコード片のところでインデントを揃えるためには"- "の二文字のせいでたくさんスペースを手で打ちまくる必要がある。 そもそも箇条書き中のcodeはmarkedjs等では書けるのにobsidianでは書けない。 ポータブルなマークアップ言語とはなんだったのか。

obsidianでのコードスニペットの認識のされ方の画像。箇条書きの中ではcodeとして認識されなくなる。
obsidianでは箇条書き中のcode snippetはうまく認識されない

逆に自作しちゃえば実装==仕様になる。フフン*1

そんなわけわからん言語にロックインされる方がよくないのでは

現状markdownへのexportが可能。 文法の機能的にはmarkdownやその他言語の下位互換なので、ちょっとrendererを書けば簡単に移行できるのでヨシ。

これから

とりあえず常用するには困らない分だけ実装したところで、lspの実装できてないところはたくさんある。 めんどくさくなってvim plugin側で書いてしまったところもある(DocumentLinkとか←対応した)。 vscode extensionの実装も途中で止まってしまっている。←とりあえず動いた。 ちょっとずつ進める予定→issues

*1:フフンではない。現状specはガバガバである