basyura's blog

あしたになったらほんきだす。

Inkdrop - live-export を使ってみた

手順に沿ってやればすぐにブラウザでノートの内容を見ることができるようになる。楽ちん。 気になったところ。

  • ノートの先頭に yaml 記法のヘッダー情報が必要
  • url は ページタイトルから自動生成されるけど日本語はスルーされるので slug がヘッダーに必要
  • public/posts フォルダがないと画像が出力されない (フォルダを作っておけばいい)

ノートの内容をブラウザで手軽に見たいなと日頃から思っているので、もうちょっと挙動を変えて自分好みにしたい。

  • yaml 記法 → 書きたくない。
  • slug → 書きたくない。noteId でいい。

試行錯誤した結果、live-export の index.js にある start と watchChanges でノートの先頭にヘッダ情報を差し込んだらいけた。

   async watchChanges(params) {
     logger.info('Watching changes..')
     let since = params.since ?? (await this.getLatestSeq())
     const timer = setInterval(async () => {
       try {
         const { results, last_seq } = await this.getChanges(since)
         for (const change of results) {
           if (
             change.id.startsWith('note:') &&
             change.doc.bookId === params.bookId &&
             change.seq > since
           ) {
-            const note = change.doc
+            const note = this.rebuildNote(change.doc)
  // 略

   async start(params) {
     const tags = await this.getTags()
     this.tagMap = tags.reduce((map, t) => ({ ...map, [t._id]: t }), {})
     const notes = await this.getNotes(params.bookId)
-    for (let n of notes) {
+    for (let n of notes) {
+      n = this.rebuildNote(n)
       await this.exportNote({ ...n }, params)
   // 略
  
+   rebuildNote(note) {
+     const header = `---
+ public: true
+ slug: ${note._id.replace('note:', '')}
+ ---\n`
+ 
+     note.body = header + note.body
+     return note
+   }

Inkdrop と同じようにサイドバーとノートリストもある構成にできるといいなぁと思いつつ、今日はここまで。 レイアウトを Inkdrop と同じようにサイドバーとノートリストの 3 カラムにするとか、live-export を別実装 (go とか) で作ってみたいなと思ってみたり。

Inkdrop をキーボード主体で使えるように hitahint を作っていて、プレビューモードのノートに加えて編集字のノート(エディタ)、サイドバーとノートリストにも対応したのでほぼブラウザ操作と近い挙動に既になってたりする (ブラウザの操作は cVim を使っているのでキーボードがメイン)。

Inkdrop - scratch note

なぐり書きや一時的なメモを取るときは起動しっぱなしの Vim を表示して、:enew で新規バッファに書き始める。これを Inkdrop でやればバックアップ(歴)も取れて便利じゃない?と思ってやってみたら便利だった。ついでに書き溜め用のアイデアノートを開くコマンドも追加。

keymap

'ctrl-s ctrl-s' : 'mycmd:open-scratch-note'
'ctrl-s ctrl-i' : 'mycmd:open-idea-note'

init.js

inkdrop.commands.add(document.body, "mycmd:open-scratch-note", () => {
  invoke("core:open-note", { noteId: "note:ノートのID" });
  setTimeout(() =>
    inkdrop.commands.dispatch(document.body, "editor:focus", param), 700);
});
inkdrop.commands.add(document.body, "mycmd:open-idea-note", () => {
  invoke("core:open-note", { noteId: "note:ノートのID" });
  setTimeout(() =>
    inkdrop.commands.dispatch(document.body, "editor:focus", param), 700);
});

Inkdrop - HitaHint

マウスを使わずになるべくキーボードだけで操作したい勢なので、ブラウザの操作は基本的に hitahint を使っている。同様に inkdrop もキーボードで済ませたい。編集モードでは Vim plugin があるのでいいのだけど、プレビューモードでもキーボードで済ませたい。Vim plugin を入れておくとプレビューモードでもページスクロールできるようになったのは最高だったけどリンクを開くのもキーボードで済ませたい。 ノート部分だけを対応していたのだけど、ノートの一覧やサイドバー(左端)のノートやタグ、ステータスも対応してみた。画面イメージは個人情報が多いので載せれないのだけど便利になった。 プレビューモードのときだけ想定で作ったけど編集モードでも動くように手を入れた。Vim Plugin を入れてる前提での確認なので、入ってない場合に期待通りに動くのかはよく分からない

↑ に従って変換された TextMarker から元の要素を取得する方法も分かったので short-link の対応も入れた。short-link Plugin は自分用にカスタマイズして使っている(ノート読み込み時に全部表示を変える) のでスッキリしてよい。

また一つ inkdrop が便利になった。

吉田の日々赤裸々

  • YouTube で Producer Letter Live の切り抜きをよく見てる
  • チャラそう、偉そうなイメージがあって敬遠してた
  • 見ていくうちに親近感が湧いた。特に超絶失敗したリリースからの立ち直りあたりは自分にも体験があるところなので (成功はまだまだ遠そうだけど)
  • メンバーやプレイヤーへの接し方、発言、考え方が参考になる

イヤーピース - AZLA SednaEarfit MAX

AirPods Pro を使っているうちに耳の中が荒れてしまう症状が発生した後に使わなくなってしまっていた。同じような症状に悩んでいる方が一定数いるようで、イヤーピースを別のものにすることで改善するという情報を元に幾つか試してみたけどだめだった。その後に骨伝導タイプの AfterShokz AirPods に切り替えて満足して、その後に最新型の AirPods に切り替えて満足していた。

ただ、AirPods Pro のノイズキャンセルを使ったときの衝撃というか外ってこんなにうるさかったんだっていう驚きもあって外に出るときは愛用していたので "いつの日か" と思いつつ封印していた。

たまたま目に止まった AZLA SednaEarfit MAX for AirPods Pro を見て購入。

究極の低刺激フィット」をスローガンにシリーズ史上最も過敏な耳への低刺激性のイヤーピースを目指して開発しました。
究極の低刺激フィットを実現するべく度重なる試作と試験を行い、耳道内に触れるイヤーピース傘部とワックスガード部に、色素やプラスチック等のどんな成分も混合しない認証された安全素材である、KCC SILICONE社の医療用メディカルシリコンを100%使用。
外科手術中に体内への挿入などで使用される100%医療用シリコンのため優れた安全性を持ち、しなやかな弾性とパウダリーな質感が特徴であり、耳道内が敏感な方でも低刺激で使用できます。

あまり期待せず "試しに" 程度で使ってみているけど、今の所は良さそう。今までだと数分付けていただけで耳に違和感があったのだけど、一定時間付けていても大丈夫そう。なんなら一時間程度散歩していても大丈夫だったけど完全に問題ないとはまだ言い切れずお試し中。そもそもの耳の荒れが完治しないまま触ってしまってまた荒れるを繰り返しているのが辛い状態ではあるが。

マイク延長ケーブル

ヘッドセットがしんどくなってきたので Ear Pods に切り替え。マイクは別に購入して位置移動できるようにしたのだけど、Ear Pods の方はちょっと長さが足りないので延長ケーブルを購入。

評価が高かったので購入したけど、しっかり奥までハマらない。ケーブルを触ると音が聞こえなくなったり雑音が凄くなったりする。触ったと言っても手元のケーブルの位置を直す程度。評価のコメントにそれが書いてあったものの「評価は高いしそんなでもないだろ」と思ったけど・・・そんなだった。ちゃんとポイントをとらえていれば音に問題はないけど、音が聞こえないのはボリュームのせいなのかケーブルのせいなのかとなることは無駄にストレスになる。

そのまま使っても良かったのだけど、たまに発生する無駄なストレスは嫌なので別に評価が高いものを購入。L字の必要は無かったけどなんとなく。しっかり刺さるので問題なし。買い替えて良かった。

Cloudlifter

声質起因が多分にあると思うけど (低く滑舌悪く聞き取りづらい)、AG03MK2 経由のダイナミックマイクにだいぶ口を近づけて喋らないとあまり拾ってくれない。もうちょっと離れた状態で喋っても拾ってほしいので購入。似たような商品に Dynamite や T.N.T があるけど配置や指すところを考えると Cloudlifter が無難だった。

使ってみると増幅されるので拾いやすくはなっているけど、AG03MK2 でゲインをマックスにしつつ、フェーダーもほぼ Max 近くまで持っていけばあまり変わらないと判断したのでお蔵入り。

それよりマイクを通しての声がかなり微妙で COMP を通すとマイクに口つけて喋ってる感じの微妙な感じになってる(伝わらない)。COMP を常に入れたほうが良いようにどの Youtube を見ても言っているのCOMP を切った方がだいぶ聞き取りやすい。このあたりは設定を変えることで自分にあったように変えられるとは思うのだけど、どう調整していいかイマイチ分からんのでオフり中。が、他の人との録音で聞けてないのでこれまたどうなのかよく分からない。

一対一ではなく、三人ぐらいでそれぞれの音声レベルを比較して聞いて判断したいのだけどなにか良い方法が無いものだろうか。会議を録音するぐらいか。