Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2022-05-09 #1

Open
r7kamura opened this issue May 9, 2022 · 20 comments
Open

2022-05-09 #1

r7kamura opened this issue May 9, 2022 · 20 comments

Comments

@r7kamura
Copy link
Owner

r7kamura commented May 9, 2022

No description provided.

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

r7kamura/nippoのリポジトリを作り直した。

r7kamura/gialogの設計を 大幅に見直したためである。一応既存ユーザー用にmigrationスクリプトも書いてみたが、コードの方も新しいものに変えたりしないといけなくて、正直データ移行は諦めて作り直した方がはやい、と思い作り直した。

旧バージョンのデータ構造でもまあ別に問題無く使い続けられるので、既存ユーザーはそのまま使い続けてもらっても全然OK。古いままでいると特に不利益を被るとかは無い。新しい版では、ファイルの保存形式が新しい版ではMarkdownになったので、dataブランチの再利用性が高くなって将来的に何か別のMarkdownを使うブログに移行したくなったときにファイルのコピーだけで済んで手軽たり、diffが少し見やすくなったりという利点がある。

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

リナカフェ跡地っていま1分10円のコワーキングスペースになってるんだ。

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

今日も作業配信をやっている。GW以降も続けられていて偉い

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

ghコマンドを利用して、日本時間でその日のnippo用のIssueをブラウザで開く、なければついでにつくる、というのをやりたい。

@r7kamura r7kamura changed the title 2022年5月9日 2022-05-09 May 9, 2022
@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

Issueのタイトルを元に検索するにはこうする。

$ gh issue list --search "2022-05-09 in:title"

Showing 1 of 1 issue in r7kamura/nippo that matches your search

#1  2022-05-09    about 1 minute ago
/home/r7kamura/ghq/github.com/r7kamura/nippo main
$ gh issue list --search "2022-05-09 in:title" --json number
[
  {
    "number": 1
  }
]
/home/r7kamura/ghq/github.com/r7kamura/nippo main
$ gh issue list --search "2022-05-09 in:title" --json number --jq "first"
{"number":1}
/home/r7kamura/ghq/github.com/r7kamura/nippo main
$ gh issue list --search "2022-05-09 in:title" --json number --jq "first.number"
1

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

日付を得るにはこう。

$ date +%Y-%m-%d
2022-05-09

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

任意のタイトル空のbodyでIssueを作成するにはこう。

$ gh issue create --title "2022-05-10" --body ""

Creating issue in r7kamura/nippo

https://github.com/r7kamura/nippo/issues/2

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

なんやかんやして全てやるにはこう。

title=$(date +%Y-%m-%d)

number=$(gh issue list --search "${title} in:title" --json number --jq "first.number")

if [ -z "${number}" ]
then
  number=$(gh issue create --title "${title}" --body "" | sed --null-data --regexp-extended --expression "s;.*issues/([0-9]+);\1;")
fi

gh issue view "${number}" --web

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

このツールだと1日の終わりに振り返りをするという側面が薄いので、日報より日記の方が適切だと考えて、nippoからdiaryにリポジトリ名を変えた。

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

Issueで日記を書くのを補助するためのGitHub CLI向けの拡張を用意した:

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

YouTubeの登録者数が100人を超えた 🎉

確か100人からチャンネルのカスタムURLを発行できるようになるらしいので、有効化されるのが楽しみ。

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

GitHubでコメントフォームにフォーカスするショートカットキーが欲しかったので、自作のKeyworksというChrome拡張で実現することにした。

image

次のように設定している。

javascript:document.querySelector("#new_comment_field").focus();

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

OBSのプラグイン書きたいのでLuaを学ぶ。

"Learn Lua in Y Minutes" https://learnxinyminutes.com/docs/lua/

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

Luaの歴史は1993年から始まる。

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

世間がSSGという概念を獲得してきたので、Next.jsの next export みたいに、Rubyでも rack export とやると静的サイトが生成されると良いのではと考えたのだけど、それって前につくったrack-captureだなと思い直した。既にあったな…

Next.jsはエンドポイントごとに getStaticPaths, getStaticProps を定義する場所が用意されているのが良い。静的ファイルを配置する場所も決まっているから、特に困ることは無い。

Rackでやろうとすると、自由過ぎてそうはいかない。

Railsでやろうとすると、静的ファイルについては規約があるので上手くいきそう。getStaticPaths, getStaticPropsを書く良い場所はない。Railsが1 action 1 classという設計だったら良かったのにね。N actions 1 classになっているのは、Railsの本当に設計が悪いところだと思う。

config/initializers/rails_exporet.rbのような設定用のRubyコードが書ける場所を用意して、rails exportというサブコマンドを追加するようなrails-export gemを用意して、rails export --initで設定用コードの雛形が生成されるようにして、というのをやると良いかも。でもRailsアプリを静的サイトに使って誰が嬉しいのかという話もある。

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

Luaの使い方を見ていると、Perlや初期のJavaScriptのことを思い出す。

  • この辺の言語の軽い書き味を備えている
  • それなりに高速
  • それなりに移植性が高い

というのは良いことだ。実際、OBSがLuaの実行エンジンを持っていて (詳細は不明なので雰囲気で言っている) Luaで書いたスクリプトをサクッと動かせるのだから、利点が上手く活きていると思う。

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

この例には幾らか驚かされた。

u = {[{}] = 1729}
b = u[{}]     -- We might expect 1729, but it's nil:
-- b = nil since the lookup fails. It fails
-- because the key we used is not the same object
-- as the one used to store the original value. So
-- strings & numbers are more portable keys.

ハッシュの計算方法に、素朴にテーブルというオブジェクトのIDを利用しているという感じなのかな。

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

Luaのメタテーブルとかいうの見てひっくり返りそうになった。まあリクライニングチェアで作業してるので既にひっくり返ってるんですが……

@r7kamura
Copy link
Owner Author

r7kamura commented May 9, 2022

1時間掛けて60%ぐらい読み進めた。次回はそれを読みつつ、OBSに付属しているTimer.luaを読んでいきたいところ。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant