Revert "commit(auto)"

This reverts commit c9262446b5.
This commit is contained in:
Kaz Saita(WSL2) 2024-02-12 23:19:59 +09:00
parent c285ed8897
commit 7a993f4e53
68 changed files with 1828 additions and 0 deletions

View file

@ -0,0 +1,30 @@
# 000000000002 メモ、ノートの書き方
#howto #zettelkasten #index #moc #notes #memo
## 全体的な書き方の方針
202203の時点で、zettelkasten([[202203082335 zetetlkasten|zetetlkasten]])という手法もしくはその周辺の技法を、自分に使える範囲で取捨選択した方法をベースにしている。
これまでもさまざまな変遷があったし、これからも変わるだろう。ゆえに、特定の技法を唯一の手法とすることはしないようにする。
そのため、フォルダ構成などに、できるだけ特定の方法の名称を使わないようにする。zettelkastenとか、orgみたいな名称は使わないことにする。
10年後も情報に意味があるように注意。たとえば、URLなどをリンクするだけだと、そのサイトが消滅した場合に何もわからなくなってしまう。本の場合も捨てたり、紛失してしまうことがあるかもしれない。引用はコピペでよいのでテキストで有用(とノートを書いた時に)思ったことを明示するようにする。そのノート単体で読めば内容が理解できるようになっているか、このフォルダを参照すれば必要な情報が漏れなく読めるようにする。これは完全にやるのはむずかしいかもしれない。努力目標。
書き方のフォーマットについて、plain textとして読むことができれば、どのような種類でもかまわないことにする。ただのtxtでも、orgでも、markdownでも、adocでもよい。200203時点ではmarkdownが、面倒さと記述のバランスが取れていると思っているのでメインで使用している。
リンク的なものについては、wikilink記法を使用している。つまり `[[こういうやつ]]`
色々なソフトがこのリンクをフォルダ全体から探してきてくれて、破綻することはなさそうだと思っているが、将来問題になってしまう可能性は0ではない。
### ファイル名の規則
ファイル名はユニークになるように、 YYYYMMDDHHmm でprefixを追加している。
このため、前述のリンクが破綻してしまうかもしれないリスクは多少減らすことができているかもしれない。wikilinkが使えなくなっても、フォルダ内のどこかに存在することは確実なので、リンクを作りなおすことは可能。
例: `20240109190207 hogefuga.md`
### ファイル内容の規則
専用ファイルなど一部を除き、metadata/front matterのようなシステム依存の内容は書かない。 tagを `#tag` 形式で書く以外は採用しない。
それ以外はmarkdownの基本的な範囲を使う。
[[000000000003 日々のノート追加の流れ]]

View file

@ -0,0 +1,12 @@
# 000000000003 journal(obsolete)
#howto #obsolete
## 20240110120013 jounalは別のvaultに移動することにした。
これでよかったのかも。
### 20240109164324 journalを書くのはやめた。
#### journalを書くのをやめた理由
- 内容単位で分かれておらず、後から参照することがむずかしい
- 同様の理由で、メモとしての利用価値が低い。 日記的なものを書きたかったら別の方法を使ったほうがよい(と今は思っている)

View file

@ -0,0 +1,18 @@
## 日々のノート追加の流れ
#meta
### その1 なんでもCaptureシステムからの入力
[[20240130184342 なんでもCaptureシステム|なんでもCaptureシステム]] で入ってきた内容を整理、まとまったノート的なものが必要なら、抽出してファイルを作成。本当にその場かぎりのものであった場合は実行してしまったら削除。
### その2 書籍などのまとまったドキュメントを読んでからのノート作成
まず、入手した文献を目録に追加する。202203時点では、この役割をはたしているのはzotero。
その後、文献を読みすすめるにつれて、学んだことを自分の言葉で記述するLiterature Note的なものを書く。
Reference noteは多くの場合、不要なのではないかと思ったので一旦作成しないことにする。
本などを読む場合、ハイライトするなどして要点を確認。紙の本の場合は線をひくなどして、電子書籍の場合はハイライトする。pdf, kindle , o'reillyなど、たいていのものはハイライトできそう。webの場合はweava <https://chrome.google.com/webstore/detail/weava-highlighter-pdf-web/cbnaodkpfinfiipjblikofhlhlcickei/reviews?hl=ja>
ハイライトをコピペするのではなく、かならず、自分で言語化してからノートにする。

View file

@ -0,0 +1,42 @@
# 000000000010 フォルダとその使い方
#index #memo
## \_Assets:
  画像、動画、pdfなどのリソースを格納。
  public:
    そのうち公開可能なもの
## 00_Capture :
  [[20240122225308 なんでもCaptureシステム|なんでもCaptureシステム]]からの入力がどんどん入ってくるところ。 inbox的なものでもある。
## memo:
  Captureしたり、読書をしたり、調べものをしたりしながら、メモ/ノートをひたすら貯めていくところ。フォルダ分けはしない。
  public:
    唯一のフォルダ。公開可能なもの。
## 04_Obsidian_Templates:
  Obsidianの各種テンプレート
## old:
  入れてあるけど未整理のためあまり役にたたない。
  整理が必要。
## work:
  案件ごと、クライアント毎にまとめてある。
## Projects:
  まとまった何かを入れようとしたが、そのようなことはできないので廃止され、memoに統合。

View file

@ -0,0 +1,395 @@
# 201804221942 djm-450のudevログ
#linux #soft #usb
```
KERNEL[513625.384614] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3 (usb)
ACTION=add
BUSNUM=001
DEVNAME=/dev/bus/usb/001/021
DEVNUM=021
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3
DEVTYPE=usb_device
MAJOR=189
MINOR=20
PRODUCT=2b73/13/103
SEQNUM=2990
SUBSYSTEM=usb
TYPE=0/0/0
KERNEL[513625.384732] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.0
DEVTYPE=usb_interface
INTERFACE=255/0/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00icFFisc00ip00in00
PRODUCT=2b73/13/103
SEQNUM=2991
SUBSYSTEM=usb
TYPE=0/0/0
KERNEL[513625.384804] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1
DEVTYPE=usb_interface
INTERFACE=1/1/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00ic01isc01ip00in01
PRODUCT=2b73/13/103
SEQNUM=2992
SUBSYSTEM=usb
TYPE=0/0/0
KERNEL[513625.385076] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1 (sound)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1
SEQNUM=2993
SUBSYSTEM=sound
KERNEL[513625.386770] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/controlC1 (sound)
ACTION=add
DEVNAME=/dev/snd/controlC1
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/controlC1
MAJOR=116
MINOR=8
SEQNUM=2994
SUBSYSTEM=sound
KERNEL[513625.386842] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/midiC1D0 (sound)
ACTION=add
DEVNAME=/dev/snd/midiC1D0
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/midiC1D0
MAJOR=116
MINOR=9
SEQNUM=2995
SUBSYSTEM=sound
KERNEL[513625.386914] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/midi1 (sound)
ACTION=add
DEVNAME=/dev/midi1
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/midi1
MAJOR=14
MINOR=18
SEQNUM=2996
SUBSYSTEM=sound
KERNEL[513625.387025] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/dmmidi1 (sound)
ACTION=add
DEVNAME=/dev/dmmidi1
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/dmmidi1
MAJOR=14
MINOR=25
SEQNUM=2997
SUBSYSTEM=sound
KERNEL[513625.387098] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/seq-midi-1-0 (snd_seq)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/seq-midi-1-0
SEQNUM=2998
SUBSYSTEM=snd_seq
KERNEL[513625.387151] bind /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/seq-midi-1-0 (snd_seq)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/seq-midi-1-0
DRIVER=snd_seq_midi
SEQNUM=2999
SUBSYSTEM=snd_seq
KERNEL[513625.387238] bind /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1
DEVTYPE=usb_interface
DRIVER=snd-usb-audio
INTERFACE=1/1/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00ic01isc01ip00in01
PRODUCT=2b73/13/103
SEQNUM=3000
SUBSYSTEM=usb
TYPE=0/0/0
KERNEL[513625.387362] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.2 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.2
DEVTYPE=usb_interface
DRIVER=snd-usb-audio
INTERFACE=1/3/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00ic01isc03ip00in02
PRODUCT=2b73/13/103
SEQNUM=3001
SUBSYSTEM=usb
TYPE=0/0/0
KERNEL[513625.387483] bind /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.2 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.2
DEVTYPE=usb_interface
DRIVER=snd-usb-audio
INTERFACE=1/3/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00ic01isc03ip00in02
PRODUCT=2b73/13/103
SEQNUM=3002
SUBSYSTEM=usb
TYPE=0/0/0
KERNEL[513625.387608] bind /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3 (usb)
ACTION=bind
BUSNUM=001
DEVNAME=/dev/bus/usb/001/021
DEVNUM=021
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3
DEVTYPE=usb_device
DRIVER=usb
MAJOR=189
MINOR=20
PRODUCT=2b73/13/103
SEQNUM=3003
SUBSYSTEM=usb
TYPE=0/0/0
UDEV [513625.406495] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3 (usb)
ACTION=add
BUSNUM=001
DEVNAME=/dev/bus/usb/001/021
DEVNUM=021
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_MODEL=DJM-450
ID_MODEL_ENC=DJM-450
ID_MODEL_ID=0013
ID_REVISION=0103
ID_SERIAL=Pioneer_DJ_Corporation_DJM-450_RAMP000902JP
ID_SERIAL_SHORT=RAMP000902JP
ID_USB_INTERFACES=:ff0000:010100:010300:
ID_VENDOR=Pioneer_DJ_Corporation
ID_VENDOR_ENC=Pioneer\x20DJ\x20Corporation
ID_VENDOR_ID=2b73
MAJOR=189
MINOR=20
PRODUCT=2b73/13/103
SEQNUM=2990
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=513625392472
UDEV [513625.408997] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.0
DEVTYPE=usb_interface
INTERFACE=255/0/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00icFFisc00ip00in00
PRODUCT=2b73/13/103
SEQNUM=2991
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=513625408741
adb_user=yes
UDEV [513625.410391] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.2 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.2
DEVTYPE=usb_interface
DRIVER=snd-usb-audio
INTERFACE=1/3/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00ic01isc03ip00in02
PRODUCT=2b73/13/103
SEQNUM=3001
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=513625410116
adb_user=yes
UDEV [513625.410760] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1
DEVTYPE=usb_interface
DRIVER=snd-usb-audio
INTERFACE=1/1/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00ic01isc01ip00in01
PRODUCT=2b73/13/103
SEQNUM=2992
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=513625410309
adb_user=yes
UDEV [513625.411983] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1 (sound)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1
ID_FOR_SEAT=sound-pci-0000_00_1a_0-usb-0_1_2_4_4_3_1_1
ID_PATH=pci-0000:00:1a.0-usb-0:1.2.4.4.3:1.1
ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_2_4_4_3_1_1
SEQNUM=2993
SUBSYSTEM=sound
SYSTEMD_WANTS=sound.target
TAGS=:seat:systemd:
USEC_INITIALIZED=513625411843
UDEV [513625.412162] bind /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.2 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.2
DEVTYPE=usb_interface
DRIVER=snd-usb-audio
INTERFACE=1/3/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00ic01isc03ip00in02
PRODUCT=2b73/13/103
SEQNUM=3002
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=513625410116
adb_user=yes
KERNEL[513625.413569] change /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1 (sound)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1
SEQNUM=3004
SUBSYSTEM=sound
SYNTH_UUID=0
UDEV [513625.414090] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/midiC1D0 (sound)
ACTION=add
DEVNAME=/dev/snd/midiC1D0
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/midiC1D0
MAJOR=116
MINOR=9
SEQNUM=2995
SUBSYSTEM=sound
TAGS=:uaccess:
USEC_INITIALIZED=513625413917
UDEV [513625.415254] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/seq-midi-1-0 (snd_seq)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/seq-midi-1-0
DRIVER=snd_seq_midi
SEQNUM=2998
SUBSYSTEM=snd_seq
USEC_INITIALIZED=513625415197
UDEV [513625.415426] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/dmmidi1 (sound)
ACTION=add
DEVNAME=/dev/dmmidi1
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/dmmidi1
MAJOR=14
MINOR=25
SEQNUM=2997
SUBSYSTEM=sound
TAGS=:uaccess:
USEC_INITIALIZED=513625415261
UDEV [513625.415587] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/midi1 (sound)
ACTION=add
DEVNAME=/dev/midi1
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/midi1
MAJOR=14
MINOR=18
SEQNUM=2996
SUBSYSTEM=sound
TAGS=:uaccess:
USEC_INITIALIZED=513625415369
UDEV [513625.416940] bind /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/seq-midi-1-0 (snd_seq)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/seq-midi-1-0
DRIVER=snd_seq_midi
SEQNUM=2999
SUBSYSTEM=snd_seq
USEC_INITIALIZED=513625416894
UDEV [513625.417756] add /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/controlC1 (sound)
ACTION=add
DEVLINKS=/dev/snd/by-path/pci-0000:00:1a.0-usb-0:1.2.4.4.3:1.1 /dev/snd/by-id/usb-Pioneer_DJ_Corporation_DJM-450_RAMP000902JP-01
DEVNAME=/dev/snd/controlC1
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1/controlC1
ID_BUS=usb
ID_MODEL=DJM-450
ID_MODEL_ENC=DJM-450
ID_MODEL_ID=0013
ID_PATH=pci-0000:00:1a.0-usb-0:1.2.4.4.3:1.1
ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_2_4_4_3_1_1
ID_REVISION=0103
ID_SERIAL=Pioneer_DJ_Corporation_DJM-450_RAMP000902JP
ID_SERIAL_SHORT=RAMP000902JP
ID_TYPE=audio
ID_USB_DRIVER=snd-usb-audio
ID_USB_INTERFACES=:ff0000:010100:010300:
ID_USB_INTERFACE_NUM=01
ID_VENDOR=Pioneer_DJ_Corporation
ID_VENDOR_ENC=Pioneer\x20DJ\x20Corporation
ID_VENDOR_ID=2b73
MAJOR=116
MINOR=8
SEQNUM=2994
SUBSYSTEM=sound
TAGS=:uaccess:
USEC_INITIALIZED=513625413826
UDEV [513625.419410] bind /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1
DEVTYPE=usb_interface
DRIVER=snd-usb-audio
INTERFACE=1/1/0
MODALIAS=usb:v2B73p0013d0103dc00dsc00dp00ic01isc01ip00in01
PRODUCT=2b73/13/103
SEQNUM=3000
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=513625410309
adb_user=yes
UDEV [513625.421091] bind /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3 (usb)
ACTION=bind
BUSNUM=001
DEVNAME=/dev/bus/usb/001/021
DEVNUM=021
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3
DEVTYPE=usb_device
DRIVER=usb
ID_BUS=usb
ID_MODEL=DJM-450
ID_MODEL_ENC=DJM-450
ID_MODEL_ID=0013
ID_REVISION=0103
ID_SERIAL=Pioneer_DJ_Corporation_DJM-450_RAMP000902JP
ID_SERIAL_SHORT=RAMP000902JP
ID_USB_INTERFACES=:ff0000:010100:010300:
ID_VENDOR=Pioneer_DJ_Corporation
ID_VENDOR_ENC=Pioneer\x20DJ\x20Corporation
ID_VENDOR_ID=2b73
MAJOR=189
MINOR=20
PRODUCT=2b73/13/103
SEQNUM=3003
SUBSYSTEM=usb
TYPE=0/0/0
USEC_INITIALIZED=513625392472
UDEV [513625.422586] change /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1 (sound)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.4/1-1.2.4.4.3/1-1.2.4.4.3:1.1/sound/card1
ID_BUS=usb
ID_FOR_SEAT=sound-pci-0000_00_1a_0-usb-0_1_2_4_4_3_1_1
ID_ID=usb-Pioneer_DJ_Corporation_DJM-450_RAMP000902JP-01
ID_MODEL=DJM-450
ID_MODEL_ENC=DJM-450
ID_MODEL_ID=0013
ID_PATH=pci-0000:00:1a.0-usb-0:1.2.4.4.3:1.1
ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_2_4_4_3_1_1
ID_REVISION=0103
ID_SERIAL=Pioneer_DJ_Corporation_DJM-450_RAMP000902JP
ID_SERIAL_SHORT=RAMP000902JP
ID_TYPE=audio
ID_USB_DRIVER=snd-usb-audio
ID_USB_INTERFACES=:ff0000:010100:010300:
ID_USB_INTERFACE_NUM=01
ID_VENDOR=Pioneer_DJ_Corporation
ID_VENDOR_ENC=Pioneer\x20DJ\x20Corporation
ID_VENDOR_ID=2b73
SEQNUM=3004
SOUND_INITIALIZED=1
SUBSYSTEM=sound
SYNTH_UUID=0
SYSTEMD_WANTS=sound.target
TAGS=:seat:systemd:
USEC_INITIALIZED=513625411843
```

View file

@ -0,0 +1,49 @@
# 201806051543 minimal pythonのクロスビルド
#python #programming #embedded #linux
cross compileの方法
config.siteっていうファイルをつくる
中身
ac_cv_file__dev_ptmx=no
ac_cv_file__dev_ptc=no
```sh
CFLAGS='-Os' CONFIG_SITE=config.site ./configure --build=x86_64-linux-gnu --host=arm-unknown-linux-gnueabihf --disable-ipv6 prefix=`pwd`/build
```
とかやると小さめのができるが、stripはしてくれていないみたい。
んでmake; make install
176MiBとかある
pyc, `__pycache__`を削除
62MB
encodingsがないと困ってしまうみたい。ここサイズでかいな。
などなど、必要なmoduleだけにしていったところ、
```shell
$ du -h .
1.8M ./bin
40K ./lib/python3.6/encodings
288K ./lib/python3.6
292K ./lib
2.1M .
```
こんくらいまでは減らせた。
そこから import socketができるようにした段階
```shell
1.8M ./bin
40K ./lib/python3.6/encodings
368K ./lib/python3.6/lib-dynload
56K ./lib/python3.6/collections
908K ./lib/python3.6
912K ./lib
2.7M .
```

View file

@ -0,0 +1,88 @@
# 201812091402 slimeを動かしているとddskkの変換がうまくいかない
#slime #emacs #lisp
slimeの設定はこんな風にした。
```lisp
(require 'slime)
(setq inferior-lisp-program "sbcl")
(slime-setup '(slime-repl slime-fancy slime-banner slime-company))
(add-hook 'lisp-mode-hook 'smartparens-mode)
(add-hook 'lisp-mode-hook
(lambda ()
(set (make-local-variable lisp-indent-function)
'common-lisp-indent-function)))
(add-to-list 'auto-mode-alist '("\\.lisp\\'" . lisp-mode))
```
それで .lispファイルを開くと、漢字変換ができなくなる。
M-x describe-key で スペース押すとこんな結果。
```
SPC runs the command slime-autodoc-space (found in
slime-autodoc-mode-map), which is an interactive compiled Lisp
function in slime-autodoc.el.
It is bound to SPC.
(slime-autodoc-space N)
Like slime-space but nicer.
```
ということだったので、
```lisp
(define-key slime-autodoc-mode-map " " nil)
```
を追加。
まだだめで、この状態で M-x describe-key で スペース押すとこんな結果。
```lisp
SPC runs the command slime-space (found in slime-mode-indirect-map),
which is an interactive compiled Lisp function in slime.el.
It is bound to SPC.
(slime-space N)
Insert a space and print some relevant information (function arglist).
Designed to be bound to the SPC key. Prefix argument can be used to insert
more than one space.
```
じゃあ、ということで
```lisp
(define-key slime-mode-map " " nil)
```
を追加。
・・・で日本語が打てるようになったが、この2つもddskk利用時以外は使いたい。
とすると日本語変換以外の時は上記の関数を呼びたい。
<https://gist.github.com/hiyosi/1325989/cea57a115897ac6c3a2f3d0c4082e380b6b30bf7>
この方のやつなどを参考にしてこうしてみた。
```lisp
(define-key slime-autodoc-mode-map " " nil) ; 下のadd-hookで上書きされるので不要
(define-key slime-mode-map " " nil)
```
```lisp
;; ddskkが変換中は変換を優先する@slime
(defun slime-space/skk (n)
(interactive "p")
(if (and (boundp 'skk-henkan-mode) skk-henkan-mode)
(skk-insert n)
(slime-autodoc-space n)))
(add-hook 'slime-autodoc-mode-hook
(lambda ()
(define-key slime-autodoc-mode-map " " 'slime-space/skk)))
```

View file

@ -0,0 +1,7 @@
# 201901010002 ボリュームの金属部分をGNDにつなぐ
#hard #potentiometer #electronics #noise
<http://www.maroon.dti.ne.jp/jyaku9/koneta/koneta3/koneta3-10.html>
>  ボリュームのつまみの金属部分を「必ず GND へ接続してください!」。 つまみを触るとノイズがでたりしますし、ノイズの原因となります。(入力部分は敏感なのです!)

View file

@ -0,0 +1,47 @@
# 201907231138 定番の電子部品
#hard #parts #electronics
## オペアンプ
### 秋月
とりあえず使っとけ的な場合 LM358
<http://akizukidenshi.com/catalog/g/gI-11167/>
フルスイングしたい時 DIP NJU7043
<http://akizukidenshi.com/catalog/g/gI-06840/>
フルスイング かつ ハイスピードで動かしたい時 OPA2353UA GBW 44MHz
<http://akizukidenshi.com/catalog/g/gI-02330/>
### 非秋月
とりあえず使っとけ的な場合 LMV358
[LMV358ARZ HTCSEMI | C2928823 - LCSC Electronics](https://www.lcsc.com/product-detail/Operational-Amplifier_HTCSEMI-LMV358ARZ_C2928823.html)
## Nch MOS FET
2SK4017
<https://akizukidenshi.com/catalog/g/gI-07597/>
## ダイオード
小信号用 1N4148
<http://akizukidenshi.com/catalog/g/gI-00941/>
## コネクタに対応した電線
XH
適用電線範囲(AWG) 2822
## ブレッドボードの配線
オヤイデ
BX-S 0.65mm(単線)
IEV(インターホン)0.65mm 4芯10芯
<https://oyaideshop.blogspot.com/2021/07/blog-post_26.html>
## ミニスピーカー
ダイソー
https://jp.daisonet.com/products/4549131578874

View file

@ -0,0 +1,7 @@
# 202108161203 juce made with juce消すには
#juce #programming
- jucerでログインして
- JUCE_DISPLAY_SPLASH_SCREEN=0
ref: https://forum.juce.com/t/help-needed-i-have-an-indie-license-how-can-i-remove-the-made-with-juce-when-using-cmake/40450/2

View file

@ -0,0 +1,9 @@
# 202109100000 pacman/yaourt/yayでpgp ERRORになるとき
#archlinux
```
$ gpg --recv-keys <KeyID>
```
cf. https://qiita.com/hassiyu/items/041dfec87d87f0c914db

View file

@ -0,0 +1,7 @@
# 202109221816 シュミットトリガのシュミットさんは誰
#tech #hard #word #electronics
- オットー・シュミットさん 1913 - 1998 が発明した。
- 詳しくは <https://en.wikipedia.org/wiki/Otto_Schmitt>

View file

@ -0,0 +1,15 @@
# 202203082221 zettelkasten ノートの種類について
#zettelkasten
[[20240122231403 Fleeting Notes|Fleeting Notes]]
[[20240122223312 Reference Notes|Reference Notes]]
[[20240122231010 Literature Notes |Literature Notes]]
[[20240122231152 Permanent Notes|Permanent Notes]]
cf.<https://haikal.blog/my-zettelkasten-journey-understanding-the-differences-between-fleeting-notes-literature-notes-reference-notes-and-permanent-notes/>

View file

@ -0,0 +1,11 @@
# 202203082225 zettelkasten のこされている疑問
#zettelkasten
- literature notes を書いているときに疑問、要調査なことが浮かんでくると思うのだけど、それはイチイチpermanent notesに書くべきものなのだろうか。現状ではliterature noteに `感想` などとして書いている。もしかしたらpermanent notesに書く方がいいのかもしれない。それが何かのアイデアの出発点になるかもしれない。
- 技術書を読んだときに、どこまで reference/literatureの区別が必要なのかちょっと疑問。ほぼliterature noteだけでもいいような気がする。
- literature notesを1トピック1ートにするべきかこれは1冊1つのートにしたい気がする。後で引用したい時にこまるのだろうか
- reference noteって本当に必要literature noteを書きおわったら消してもいいような気がする。

30
202203082335 zetetlkasten.md Executable file
View file

@ -0,0 +1,30 @@
# 202203082335 zettelkasten
202203時点でートをとるときの基本としている概念がzettelkasten。
[[202203082220 zettelkasten ノートの種類について]]
[[202203082225 zettelkasten のこされている疑問]]
## 参考にした文献
[[202201231125 TAKE NOTES]]
## gotchas
[[202203082052 すべてをzettelkastenにする必要はない]]
zettelkasten.de (<https://zettelkasten.de/>)
日本語の説明
<https://jmatsuzaki.com/archives/27446>
Getting Started
<https://zettelkasten.de/posts/overview/>
関係あるような無いような?
[building second brain](https://www.buildingasecondbrain.com/)
値段たかっ
このmarkdownはzettelkasten的では無いかも。
もっと短かいやつをポコポコ作るイメージなのでは

View file

@ -0,0 +1,12 @@
# pythonでモジュールファイルを単体で実行したい場合
#python
```py
if __name__ == "__main__":
# ここにやりたいことを書く
```
cf.
[6.1.1. モジュールをスクリプトとして実行する](https://docs.python.org/ja/3/tutorial/modules.html#executing-modules-as-scripts)

View file

@ -0,0 +1,112 @@
# 202308182205 ESP32 Selection Guide
#ESP32 #electronics #電子工作
[[202309031354 ESP32]]
## 202309115時点での結論
- WROOM, WROVERとも、末尾のアルファベットが後半の方が、リビジョンが上。チップバグなど修正されているので、そちらを採用。
- 基本的には、 WROOM32Eを使う。
- PSRAMが必要なら、 WROVERを使う。
- RISC-V気になるが、Xtensa Coreを選ぶのが良さそう。
cf.
<https://lang-ship.com/blog/work/esp32-series/>
## WROOM-32 WROOM-32D WROOM-32E
<https://tech.144lab.com/entry/esp32-wroom32-nrnd>
32, 32Dは NRND Not Recommended for New Designs
32Eを使おう
32、32Dとの違い
<https://tech.144lab.com/entry/esp32-wroom32-nrnd>
> 未接続になったピンはSDカードがつながる6つのピンで、すでに内部でSPI Flashがつながっているため、32の時から外部で何かに使うのが非推奨になっていました。
## WROOMとWROVERは何が違う
WROVERには[[20230915 PSRAM]](疑似SRAM)というものが乗っている。
## WROOVER-B WROOVER-E
<https://esp32.com/viewtopic.php?t=15904>
E are newer with rev 3 chips
## その他気になること
USB-Serialのオプション
- CH340C
- CP2102
## 秋月で買えそうなやつ
### ESP32-DevKitC-32E ESP32-WROOM-32E開発ボード 4MB
推奨。 32Eだし。
いわゆるESP32、4MB Dual
![](2023-08-18-22-17-38.png)
<https://akizukidenshi.com/catalog/g/gM-15673/>
MCU
• ESP32-D0WD-V3 embedded, Xtensa® dual-core 32-bit LX6 microprocessor, up to 240 MHz
• 448 KB ROM for booting and core functions
• 520 KB SRAM for data and instructions
• 16 KB SRAM in RT
## ESP32-DevKitC-VE ESP32-WROVER-E開発ボード 8MB
![](2023-08-18-22-16-31.png)
<https://akizukidenshi.com/catalog/g/gM-15674/>
## ESP-WROOM-32D開発ボード
![](2023-08-18-22-15-52.png)
<https://akizukidenshi.com/catalog/g/gM-13628/>
テクノよしださんはこれを使っているとのこと。
ESP32-WROOM-32とESP32-WROOM-32Dの違いを教えてください。
<https://akizukidenshi.com/catalog/faq/goodsfaq.aspx?goods=M-13628>
> ESP32-WROOM-32[M-11647]とESP32-WROOM-32D[M-13318]では、 電気的、ソフトウェア的、ファームウェア的、無線プロファイル的な技術仕様に変更はありません。 変更点は、下記4点です。
>
> ① SoC(ESP32チップ)のパッケージサイズが変更になりました。
> ESP32-WROOM-32: QFN 6x6
> ESP32-WROOM-32D: QFN 5x5
> ② 面実装部品(抵抗とコンデンサ)のパッケージサイズが変更になりました。
> ESP32-WROOM-32Dでは、小型サイズの部品が使用されています。
> ③ アンテナパターンが変更されました。
> ESP32-WROOM-32Dでは、パターンが太くなっています。
> ④ 工事設計認証(技適)番号が変更になりました。
> ESP32-WROOM-32: 211-161007
> ESP32-WROOM-32D: 211-171102
ESP32-S3-DevKitC-1
![](2023-08-18-22-15-01.png)
<https://akizukidenshi.com/catalog/g/gM-17073/>
ESP32-C6-DevKitC-1。
![](2023-08-18-22-14-24.png)![](2023-08-18-22-14-27.png)
<https://akizukidenshi.com/catalog/g/gM-17846/>
入手性はあまりよくなさそう。
<https://docs.espressif.com/projects/espressif-esp-dev-kits/en/latest/esp32c6/esp32-c6-devkitc-1/index.html>
## Ali
### 1個38ピンタイプ-cesp32 ESP-WROOM-32 cp2102開発ボード2.4ghzデュアルコア
NRND(Not Recommended for New Designs)
<https://ja.aliexpress.com/item/1005005455717981.html?spm=a2g0o.order_list.order_list_main.11.21ef585agpnRvr&gatewayAdapt=glo2jpn>
## Platform IO
wroom32の各リビジョン、wroover、どれでも下記でいけるのではないか(要検証)
```.ini
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
```

12
202309031354 ESP32.md Executable file
View file

@ -0,0 +1,12 @@
# 202309031354 ESP32
#ESP32
[[202308182205 ESP32 Selection Guide |202308182205 ESP32 Selection Guide]]
ssciのtracが役に立つ。どのピンがどのように使えるかなど
<https://trac.switch-science.com/wiki/esp32_tips>
ADCについての説明
<https://trac.switch-science.com/wiki/esp32_tips#ADC%E3%82%A2%E3%83%8A%E3%83%AD%E3%82%B0%E5%85%A5%E5%8A%9B>

10
202312061945 capture.md Executable file
View file

@ -0,0 +1,10 @@
# 2023120619450000 capture
#capture
## captureとは
org modeの用語かもしれない。あまり一般的ではない可能性がある。
[Capture (The Org Manual)](https://orgmode.org/manual/Capture.html)
自分の中の定義は「外部から得た情報を自分のノート環境に取り込む」こと。
現状だと、[[20240122225308 なんでもCaptureシステム|なんでもCaptureシステム]]によって色々なことがCaptureされるようになった。

View file

@ -0,0 +1,45 @@
# 20240121121237 pythonで制御工学の学習環境を作る
#python #control_theory
## サポートページ
ここに書いてある通りにやれる場合はそうする:
[『Pythonによる制御工学入門改訂』サポートページ | Yuki MINAMI](https://y373.sakura.ne.jp/minami/pyctrl)
## がんばる場合
そうできない or やりたくない場合、 windowsの人は
"windowsの場合、wsl2上でubuntuを動かし、そこで普通のpythonを使う"がよさそう。 macやlinuxでは、あまり大変ではないかも。
Google Colaboratory上で環境を作る場合のうれしくないことは、
- Notebookを開くたびに、毎回 pip installを動かす必要があり、時間がかかる
- そのworkaroundとして、google driveにpipをインストールする方法があるが、google driveの検索が著しく使いにくくなるため、その方法もとりたくない。
Anaconda/Minicondaなどを使う方法は、 20240123 時点ではvscode上でうまく動かない。 condaコマンドによる仮想環境構築が途中で止まってしまうなどした。
windowsの普通のpythonを使おうとすると、slycotのインストールがうまくいかない。検索するとうまくいっていない人が沢山でてくる。ここは頑張るところではない。
・・・などを試した結果、wsl2上にubuntuをインストール、それをwindows上のvscodeから使用する環境を作った。
以下はubuntu上で実行している。
[[20240121125457 venv|venv]]を使い学習用環境を作る。
学習用フォルダを作り、その中で
`python -m venv .venv`
`code .`
vscodeが起動せず、`cannot run .exe files: exec format error` とかエラーが出る場合は
[[20240123115736 wsl2からwindowsのvs codeが起動できない|wsl2からwindowsのvs codeが起動できない]] に書いてある方法で起動するようになる。
vscodeが開いたら、
`Python: Create Terminal` コマンドを実行。自動で.venvが選ばれた環境が起動する。
開いたターミナル内で、
`DISPLAY= pip install control slycot matplotlib notebook`
DISPLAY変数を無効にする理由は[[20240123120540 wsl2上でpipを実行すると、ものすごく時間がかかる|wsl2上でpipを実行すると、ものすごく時間がかかる]]から。
`Jupyter: Select Interpreter to Start Jupyter Server`
コマンドを実行。作った.venvの環境を選ぶ。 windows側のpath /mnt/c/... が表示されるけど、そちらではない方を選ぶ。
実行すると、`Error loading webview: Error: Could not register service workers:` とかいうダイアログが表示されて起動できない場合は、 [python - Error while opening ipynb notebook in VSCode - Stack Overflow](https://stackoverflow.com/questions/73992851/error-while-opening-ipynb-notebook-in-vscode)これを踏んでいる。
.ipynbが開けなくなった。Answerの通り、vscodeを再起動したら直る。
これで環境構築できた(はず)。

33
20240121125457 venv.md Executable file
View file

@ -0,0 +1,33 @@
# 20240121125457 venv
#python #venv
pythonの仮想環境。プロジェクトごとにpythonやライブラリのバージョンを固定できる。
[Conda と venv: Python環境構築ガイド - python.jp](https://www.python.jp/install/anaconda/conda_and_venv.html)
> 一般のPythonでも同じように複数の環境を作成して切り替えながら利用できるようになっており、[標準モジュールのvenv](https://docs.python.org/ja/3/tutorial/venv.html) が利用されます。
[12. 仮想環境とパッケージ — Python 3.12.1 ドキュメント](https://docs.python.org/ja/3/tutorial/venv.html)
> この問題の解決策は [仮想環境](https://docs.python.org/ja/3/glossary.html#term-virtual-environment) を作ることです。仮想環境とは、特定のバージョンの Python と幾つかの追加パッケージを含んだ Python インストールを構成するディレクトリです。
>
> 別のアプリケーションはそれぞれ別の仮想環境を使うことができます。先の例にあった要求の衝突を解決する場合、アプリケーションAが固有の仮想環境を持ってそこにライブラリのバージョン 1.0 をインストールし、アプリケーションBが持つ別の仮想環境にライブラリのバージョン 2.0 をインストールすることができます。そしてアプリケーションBがライブラリのバージョンを 3.0 に更新することを要求する場合も、アプリケーションAに影響しません。
>
> 仮想環境を作るには、仮想環境を置くディレクトリを決めて、 そのディレクトリのパスを指定して、 [`venv`](https://docs.python.org/ja/3/library/venv.html#module-venv "venv: Creation of virtual environments.") をスクリプトとして実行します:
>
> `python -m venv tutorial-env`
>
> これは `tutorial-env` ディレクトリがなければ作成して、その中に Python インタプリタ、その他関連するファイルのコピーを含むサブディレクトリを作ります。
> Windows の場合:
> `tutorial-env\Scripts\activate`
>
> Unix や Mac OS の場合:
>
> `source tutorial-env/bin/activate`
>
> (このスクリプトは bash shell で書かれています。 **csh** や **fish** を利用している場合、代わりに利用できる `activate.csh` と `activate.fish` スクリプトがあります。)
>
> 仮想環境を有効化すると、シェルのプロンプトに利用中の仮想環境が表示されるようになり、`python` を実行するとその仮想環境の Python を実行するようになります:
この手順、面倒だなと思っていたら、vscodeでは、作成したディレクトリを開き、コマンド`Python: Create Environment`で venvを作成すると自動で認識される。 .venvという名前になる。これがデファクトスタンダードのようだ。作成後、
`Python: Create Terminal` コマンドを実行すれば、自動で.venvが選ばれた環境が起動する。

View file

@ -0,0 +1,54 @@
# 20240122201309 全体的な書き方の方針
#meta
### 内容
書いてある内容は、できれば10年後も情報に意味があるように注意。たとえば、URLなどをリンクするだけだと、そのサイトが消滅した場合に何もわからなくなってしまう。本の場合も捨てたり、紛失してしまうことがあるかもしれない。引用は最低限、コピペでよいのでテキストで有用と(少なくとも書いた時には)思ったことを明示するようにする。そのノート単体で読めば、内容が理解できるようになっているのが望ましい。
### フォルダ構成
完全フラット。階層は作らない。どのようにフォルダで分類しても完全では無いし、フォルダ内のアイテムを移動した場合、画像などのリソースが見つからなくなってしまうことなどがある。という苦労を20年くらいして、もう無理ということになった。私にはフラットにする以上に、スケールできる上、ロバストなものは作れなかった。
cf. [[000000000010 フォルダとその使い方]]
### ファイル形式
plain textとして人間が読むことができれば、どのような種類でもかまわない。ただのtxtでも、orgでも、markdownでも、adocでもよい。200203時点ではmarkdownが、面倒さと記述のバランスが取れていると思っているのでメインで使用している。
リンク的なものについては、wikilink記法を使用している。つまり `[[こういうやつ]]`
色々なソフトがこのリンクをフォルダ全体から探してきてくれて、破綻することはなさそうだと思っているが、将来問題になってしまう可能性は0ではない。ことはちょっと気になっている。
### ファイル名の規則
wikilinkを使う都合上、全部のファイルがユニークなファイル名を持っている必要がある。
そのため、ファイル名にはタイムスタンプを先頭に追加する。 YYYYMMDDHHmmss形式。 これは作成したタイミングのタイムスタンプで、中身を変更してもファイル名は変えない。
例: `20240109190207 hogefuga.md`
### ファイル内容の規則
専用ファイルなど一部を除き、metadata/front matterのような、システム依存の内容は書かない。 tagを `#tag` 形式で書くことはOK。
それ以外は、上述の各マークアップを使って書く。
画像その他の非テキストのリソースは assets以下にフラットに保存する。
1行目の最初のヘッディングはファイル名と同じにする。
その直下にタグを列挙。
ざっくり、ファイルの内容は以下のようになる。
```md
# 20240122201909 ものすごいことを発見
#yatta #sugoi
## ものすごい
すごいね。
![[画像.png]]
## よかった
よかったね。
```
画像のテスト
![[スクリーンショット 2024-01-22 200139.png | 500]]
[[000000000003 日々のノート追加の流れ]]

View file

@ -0,0 +1,4 @@
# 20240122223312 Reference Notes
#zettelkasten
文献やWEBサイトなどの内容のうち、気になったものをそのまま書きうつしたもの。使い捨てと思っていいと思う。捨てない方があとで参照/引用できるから残してるだけで、何かを勉強するときにこれをそのまま使うものではないことに注意。

View file

@ -0,0 +1,8 @@
# 20240122225308 なんでもCaptureシステム
#capture
## 概要
discordに何か書くと、自動的にobsidianのvaultに新しい記事が作成される。とても便利。
![[なんでもcaptureシステムの図解.jpg]]

View file

@ -0,0 +1,4 @@
# 20240122231010 Literature Notes
#zettelkasten
これを作ることを勉強の基本とする。超重要。文献などで、何を説明しているかを、*自分の言葉* で書く。ここに至ってはコピペは完全に禁止されると思っていい。うまく書けなければ文献の理解が足りていない。

View file

@ -0,0 +1,7 @@
# 20240122231152 Permanent Notes
#zettelkasten
これを作ることをアウトプットの基本とする。自分の考えをまとめたもの。自分の考えでなくても、何かの概念について、いくつかの本を読んでまとめてみる時にも便利かもしれない。ここで上記のreference notesを引用したりすることになる。具体例がよくわかっていないが、「斉田式ートの取り方」とか、「トランジスタ1石での増幅回路の作り方」などはこの種類になりそう。もっと細かいものもここに含まれるかも。fleeting notesに書いた思いつきなども、有用なものについては、詳細を追記するなどして、permanent noteにする。
permanent notesの注意点としては、1ページに1topicにするということ。

View file

@ -0,0 +1,7 @@
# 20240122231403 Fleeting Notes
#zettelkasten
思いつきなどを書きとめたノート、これは脳のワーキングメモリを空けるためや、備忘のために書くもの。
使い捨てと思ってもいい。[[000000000003 journal(obsolete)]] と til が基本それに相当していた。
現状では[[202312061945 capture]] で自動的に追加されるようにしている。

View file

@ -0,0 +1,22 @@
# 20240123115736 wsl2からwindowsのvs codeが起動できない
#wsl2 #wsl #vscode
[WSL2 (Preview) cannot run .exe files: exec format error: wsl.exe · Issue #8952 · microsoft/WSL · GitHub](https://github.com/microsoft/WSL/issues/8952#issuecomment-1568212651)
```
sudo sh -c 'echo :WSLInterop:M::MZ::/init:PF > /usr/lib/binfmt.d/WSLInterop.conf'
sudo systemctl restart systemd-binfmt
```
次の人のやつも一応やった
```
sudo sh -c 'echo :WSLInterop:M::MZ::/init:PF > /usr/lib/binfmt.d/WSLInterop.conf'
sudo systemctl unmask systemd-binfmt.service
sudo systemctl restart systemd-binfmt
sudo systemctl mask systemd-binfmt.service
```
念の為wslを再起動
pwshで `wsl --shutdown`
これでうまくいった。

View file

@ -0,0 +1,8 @@
# 20240123120540 wsl2上でpipを実行すると、ものすごく時間がかかる
#python #wsl2
[python - On WSL2 \`pip install virtualenv\` comand hangs for too long - Stack Overflow](https://stackoverflow.com/questions/68016708/on-wsl2-pip-install-virtualenv-comand-hangs-for-too-long/69011313#69011313)
pipだけの問題か分からないが、上記にあるように、 pipコマンドの前に `DISPLAY=` を追記すると、この問題は解決する。
例: `DISPLAY= pip install numpy`
何かのバグなのだろうか。謎だけど20240123 時点では発生する。

View file

@ -0,0 +1,35 @@
# 20240201182238 ATMega系のArduinoでprintfする方法
#tech #arduino #printf
いつも忘れるのでメモ。
この、`fdevopen`を使う方法は、この関数がAVR用のavr-libcでしか定義されていないため、
ESP32やARMなど他のMCUがベースになっている場合には使えないので注意。
Aruino UNO3、 Arduino Nano、Pro Microなどでは使える。
```cpp
// 名前はなんでもよい
int my_putc( char c, FILE *t) {
return Serial.write( c );
}
void setup()
{
Serial.begin(115200);
fdevopen( &my_putc, 0);
// 以降printfが使える。例↓
print("Hello world! A0 = %d\n", analogRead(0));
}
void loop()
{
}
```
cf.
- <https://forum.arduino.cc/t/how-to-make-printf-work/6456>
- <https://cega.jp/avr/avr-libc_list/>

View file

@ -0,0 +1,4 @@
# 20240204180223 Carver Mead's OTA-C Lowpass Filter The Second-Order Section
#electronics #OTA #op_amp #analog #filter #read_later #youtube
[Carver Mead's OTA-C Lowpass Filter: The "Second-Order Section" (Operational Transconductance Amps) - YouTube](https://www.youtube.com/watch?v=AVFN6qCKiyg)

View file

@ -0,0 +1,48 @@
# 20240204184839 Raspi4 家サーバー 作業ログ
#tech #raspi #server
## 買ったもの
- 【国内正規代理店品】Raspberry Pi4 ModelB 4GB ラズベリーパイ4 技適対応品【RS・OKdo版】 https://amazon.co.jp/dp/B081YD3VL5
- Smraza Raspberry Pi 4 USB-C (Type C電源、5V 3A ラズベリーACアダプター RPi 4b Model B 1GB / 2GB / 4GB/ 8GB適用 https://amazon.co.jp/dp/B07DN5V3VN
- Flirc ラズベリーパイ4ケース シルバー https://amazon.co.jp/dp/B07WG4DW52
- Ediloca EN760 SSD ヒートシンク付き 1TB PCIe Gen4x4 NVMe M.2 2280 PS5動作確認済み 最大読込: 5000MB/s 最大書き4500MB/s 3D NAND TLC 内蔵SSD ダイナミック SLC キャッシュ メーカー5年保証 https://amazon.co.jp/dp/B0C9TD1FM4
- ORICO M.2 SSDケース USB-C to NVMe M-Key / B&M KeyNvmeのみに対応 USB 3.1 Gen2 10Gbps 外付けケース ABS+アルミ材質 UASPサポート2230/2242/2260/2280 SSD対応 M.2 SSD 変換アダプタ エンクロージャ ケース 黑 M2PV-BK https://amazon.co.jp/dp/B08GC326LL
## セットアップ色々
- [[20240204221756 raspberry Pi Imagerを使ってSDカードを作成|raspberry Pi Imagerを使ってSDカードを作成]]
### ルーターの設定
- DHCPスタティックIP設定 を追加。ポートフォワーディングで必要かなと思ったけど、cloudflareだと必要ないかも。sshは何も設定せずに使用できた。
### 起動
microSDに必要なデータを書きこんだら、Raspi 4に挿して、LANケーブルなど繋いで起動。
wsl2上のubuntuから、sshで接続確認。(名前とパスワード。後で無効化する)
ここまでできたら、SSD bootの設定をする。
- [[20240204221948 raspberry piをSSD bootに設定|raspberry piをSSD bootに設定]]
- [[20240204222141 sshを公開鍵認証にする|sshを公開鍵認証にする]]
- [[20240211171220 sshのポートを変更する|sshのポートを変更する]]
### OSを最新に
`$ sudo apt update`
してから、
```sh
$ sudo apt full-upgrade
...
$ sudo reboot (最新にしたので再起動)
```
### WEBサーバー
- [[20240205150537 Caddyをraspi4にインストール|Caddyをraspi4にインストール]]
### Raspi4 Cloudflareでトンネルを作る
- [[20240211141946 Raspi4 Cloudflareでトンネルを作る|Raspi4 Cloudflareでトンネルを作る]]
- [[20240211202623 Raspi4 Cloudflare tunnel経由でhttpsサーバーを公開する|Raspi4 Cloudflareでhttpsサーバーを公開する]]
- [[20240211185359 Raspi4 Cloudflareでsshアクセスできるようにする|Raspi4 Cloudflareでsshアクセスできるようにする]]

View file

@ -0,0 +1,19 @@
### 20240204221756 raspberry Pi Imagerを使ってSDカードを作成
#raspi
[Install Raspberry Pi OS using Raspberry Pi Imager](https://www.raspberrypi.com/software/) のDownload for * で自分の環境用のRaspberry Pi Imagerをダウンロード、インストール
起動したら、
- Raspberry PIデバイス: RASPBERRY PI4
- OS: Raspberry Pi OS(other) -> Raspberry Pi OS Lite(64-bit)
- ストレージ: マイクロSDカードをPCに接続して、それを選ぶ
`Would you like to apply OS customization settings?`
で「設定を編集する」ボタンを押す。
- 一般 ホスト名、ユーザー名とパスワード、ロケールなど適切に設定
- サービス SSHを有効にする をチェック パスワード認証を使う
- オプション 編集せず
で保存ボタンを押す。
`Would you like to apply OS customization settings?` で、 「はい」を選んで書き込み。
SSDブートにしたい場合
完全に同じことを、USBのSSDで実施する。
microSDはブートの設定を変更する目的で作って、設定を変更してSSDからブートできるようになった後には使用しない。

View file

@ -0,0 +1,88 @@
# 20240204221948 raspberry piをSSD bootに設定
#raspi #ssd
色々と情報を見たが、一番簡単で確実な方法は、
- microSDにRaspberry Pi Imagerで必要なOSを書きこむ
- SSDをRaspberry Pi Imagerで必要なOSを書きこむ 20240204 時点ではraspi-cloneではうまくいかなかった。
- microSDでブート、bootloaderを最新にする
- raspi-configで起動をSSDに設定
という手順が確実そう。
#### SSDのフォーマット
SSDをUSBで接続。認識されると、こんな感じになる。
```
$ dmesg
[ 2371.382886] sd 0:0:0:0: [sda] Attached SCSI disk
[ 2555.521771] usb 2-2: USB disconnect, device number 3
[ 2555.565777] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[ 2555.801704] sd 0:0:0:0: [sda] Synchronize Cache(10) failed: Result: hostbyte=0x07 driverbyte=DRIVER_OK
[ 2627.619831] usb 2-2: new SuperSpeed USB device number 4 using xhci_hcd
[ 2627.652398] usb 2-2: New USB device found, idVendor=0bda, idProduct=9210, bcdDevice=f0.01
[ 2627.652420] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2627.652433] usb 2-2: Product: RTL9210
[ 2627.652442] usb 2-2: Manufacturer: Realtek
[ 2627.652451] usb 2-2: SerialNumber: 012345678905
[ 2627.684644] usb 2-2: Enable of device-initiated U1 failed.
[ 2627.685583] usb 2-2: Enable of device-initiated U2 failed.
[ 2627.714973] usb 2-2: Enable of device-initiated U1 failed.
[ 2627.716024] usb 2-2: Enable of device-initiated U2 failed.
[ 2627.720692] scsi host0: uas
[ 2628.284123] scsi 0:0:0:0: Direct-Access Realtek RTL9210 NVME 1.00 PQ: 0 ANSI: 6
[ 2628.302746] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 2628.306857] sd 0:0:0:0: [sda] 500118192 512-byte logical blocks: (256 GB/238 GiB)
[ 2628.308244] sd 0:0:0:0: [sda] Write Protect is off
[ 2628.308260] sd 0:0:0:0: [sda] Mode Sense: 37 00 00 08
[ 2628.310966] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2628.312278] sd 0:0:0:0: [sda] Preferred minimum I/O size 512 bytes
[ 2628.312300] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes
[ 2628.324088] sda: sda1 sda2
[ 2628.324372] sd 0:0:0:0: [sda] Attached SCSI disk
[ 2753.358307] sda: sda1 sda2
```
fdiskで全部のパーティーションを削除。状況によって異なるので割愛。
#### bootloaderのバージョン確認
```
$ vcgencmd bootloader_version
2023/01/11 17:40:52
version 8ba17717fbcedd4c3b6d4bce7e50c7af4155cba9 (release)
timestamp 1673458852
update-time 0
capabilities 0x0000007f
```
`sudo raspi-config`
A7 Boot ROM Versionを最新に。
`E1 Latest Use the latest version boot ROM software` を選択して再起動。
```
$ vcgencmd bootloader_version
2024/01/22 10:41:21
version 51ed67b03b3dde4e76b345370f312d07aabf45b8 (release)
timestamp 1705920081
update-time 1707048097
capabilities 0x0000007f
```
ここまでできたら、USBブートにする。最初の手順で作ったSSDをraspi4に接続。microSDは外して起動。
どのくらい速度違うか、簡単に調べてみた。
```
$ sudo hdparm -tT /dev/mmcblk0 # マイクロSD
/dev/mmcblk0:
Timing cached reads: 2048 MB in 2.00 seconds = 1024.23 MB/sec
Timing buffered disk reads: 132 MB in 3.02 seconds = 43.70 MB/sec
$ sudo hdparm -tT /dev/sda # SSD
/dev/sda:
Timing cached reads: 2034 MB in 2.00 seconds = 1017.23 MB/sec
Timing buffered disk reads: 1020 MB in 3.06 seconds = 333.44 MB/sec
```
約 7.6倍くらい高速になっている。素晴しい
cf.
- [ラズパイ4をUSB接続のSSDから起動する方法(USBブート) | ラズパイダ](https://raspida.com/rpi4-ssd-usb-boot)
- [Raspberry PiのバックアップをCLIから作成する | Vogelbarsch](https://vogelbarsch.com/2020-08-27-140104/)
- [Rasberry Piでrpi-cloneを使ってバックアップ | TomoSoft](https://tomosoft.jp/design/?p=8721)

View file

@ -0,0 +1,86 @@
# 20240204222141 sshを公開鍵認証にする
#raspberrypi #raspi #ssh #server
以下はwsl2のubuntuでやる。
```
$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/kazbo/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):(Enterを押す)
Enter same passphrase again:(Enterを押す)
Your identification has been saved in /home/kazbo/.ssh/id_ed25519
Your public key has been saved in /home/kazbo/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256: ...
The key's randomart image is:
+--[ED25519 256]--+
...
+----[SHA256]-----+
```
.ssh/に
id_ed25519 id_ed25519.pub
の2つのファイルができている。
```
$ cat .ssh/id_ed25519.pub
```
とやって表示される文字列
```
ssh-ed25519 ...
```
をコピーしておく。
raspi側で
```
$ mkdir .ssh
$ touch .ssh/authorized_keys
$ cat >> .ssh/authorized_keys
ssh-ed25519 ... (をコピペしてEnterを押す)
[ctrl+d]を押す
$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys
```
接続確認。wsl側で
```
$ ssh -i .ssh/id_ed25519 saipi4(自分で設定したraspiのホスト名)
The authenticity of host 'saipi4 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:UVgt3CY1o1JYPTf8CX5CLWV2UG6rtlvNHUQ4w6mLd8g.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'saipi4' (ECDSA) to the list of known hosts.
Linux saipi4 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Feb 4 18:47:22 2024 from 192.168.1.62
```
無事接続できた。
公開鍵で認証できるようになったので、パスワードログインを無効にする。
```
$ sudo nano /etc/ssh/sshd_config
```
` # PasswordAuthentication yes`
と書かれている所を、先頭の#を外して、
`PasswordAuthentication no`
にする。
`$ sudo service sshd restart`
でsshd再起動。
以降は
```
ssh saipi4
```
で接続できるっぽい。最初からできたかも。.
cf.
- [「よく分かる公開鍵認証」初心者でもよくわかるVPSによるWebサーバー運用講座(2) | さくらのナレッジ](https://knowledge.sakura.ad.jp/3543/)
- [SSH公開鍵認証で接続するまで #SSH - Qiita](https://qiita.com/kazokmr/items/754169cfa996b24fcbf5)
- [気付けばssh-keygen -t の後にrsaでなくed25519と打つことが推奨されていた | ABC DX Tech Blog](https://tech.asahi.co.jp/posts/20231005-bbf6)

View file

@ -0,0 +1,126 @@
# 20240205150537 Caddyをraspi4にインストール
#raspi #caddy #web_server
### インストール
[How to Setup a Raspberry Pi Caddy Web Server - Pi My Life Up](https://pimylifeup.com/raspberry-pi-caddy-web-server/) の方法が現在 20240205 は利用できない。
```
Err:4 https://dl.cloudsmith.io/public/caddy/stable/deb/debian any-version InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABA1F9B8875A6661
```
このgpgエラーは、鍵が公開されていないのか、解決不能。
仕方ないのでソースからビルド。
まずgoが必要。
[[20240205152229 raspi4にgoをインストールする|raspi4にgoをインストールする]]
caddyをビルド。
```sh
$ sudo apt install git (インストールしてなければ)
$ git clone --depth=1 https://github.com/caddyserver/caddy.git
$ cd caddy/cmd/caddy/
$ go build
$ cd ../../..
$ sudo mv caddy /usr/local
```
`/usr/local/caddy/cmd/caddy`
にパスを通す。 /etc/profileに追加。
```
$ sudo setcap cap_net_bind_service=+ep /usr/local/caddy/cmd/caddy/caddy
$ sudo visudo
```
`[username] ALL=(ALL:ALL) NOPASSWD: /usr/sbin/setcap` を追加。
WEBサーバーのルートを作る
```
$ sudo mkdir /var/www
$ sudo chmod a+rw /var/www
```
Caddyfileを /etc 以下に作成
```
$ sudo mkdir /etc/caddy/
$ sudo touch /etc/caddy/Caddyfile
$ sudo chmod a+rw /etc/caddy/Caddyfile
```
Caddyfileを編集
```
localhost, 127.0.0.1 192.168.1.100(自分で決めたIPアドレス), saipi4.local(自分で決めたhostname), notes.kinoshita-lab.org(cludflareで設定したhostname) {
root * /var/www
file_server
}
```
/var/wwwにindex.htmlを作成
```
<!doctype html>
<html>
<head>
<title>AYBABTU</title>
</head>
<body>
<p>All your base are belong to us.</p>
</body>
</html>
```
caddyを起動
```
caddy run --config /etc/caddy/Caddyfile
```
証明書が無いなど、色々怒られるかもだけど、とりあえずネットワーク内から接続できる。 saipi4は私のraspi4のhostname。
![[Pasted image 20240205205804.png]]
### サービス化
[Keep Caddy Running — Caddy Documentation](https://caddyserver.com/docs/running#linux-service)
上記を参考にしつつ、パスなどを自分の環境にあわせる。
```
$ sudo groupadd --system caddy
```
caddy.serviceはこちらを使用
[dist/init/caddy.service at master · caddyserver/dist · GitHub](https://github.com/caddyserver/dist/blob/master/init/caddy.service)
変更点は下記2カ所
```
ExecStart=/usr/local/caddy/cmd/caddy/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/local/caddy/cmd/caddy/caddy reload --config /etc/caddy/Caddyfile --force
```
あとは書いてある通りに実行
```
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now caddy
```
```
$ systemctl status caddy
systemctl status caddy
● caddy.service - Caddy
Loaded: loaded (/etc/systemd/system/caddy.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-02-11 18:09:01 JST; 14s ago
Docs: https://caddyserver.com/docs/
Main PID: 3203 (caddy)
Tasks: 11 (limit: 3918)
CPU: 249ms
CGroup: /system.slice/caddy.service
└─3203 /usr/local/caddy/cmd/caddy/caddy run --environ --config /etc/caddy/Caddyfile
...
```
動いてる。
## cf.
- [GitHub - caddyserver/caddy: Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS](https://github.com/caddyserver/caddy?tab=readme-ov-file#build-from-source)
- [caddyで簡単にhttpsサイト #http2 - Qiita](https://qiita.com/mmotoi/items/1af28e2e62a4e344eb6c)
- [CaddyCaddyfileに\`localhost\`を指定すると、https://127.0.0.1/ ではアクセスできない](https://zenn.dev/yuji38kwmt/articles/5d3e729dc9a5c1)

View file

@ -0,0 +1,28 @@
# 20240205152229 raspi4にgoをインストールする
#raspi #go
[All releases - The Go Programming Language](https://go.dev/dl/) ここからバイナリをダウンロード。 raspi4の場合は、linux-arm64。
```
$ wget https://go.dev/dl/go1.21.6.linux-arm64.tar.gz
$ sudo tar -C /usr/local -xvf go1.21.6.linux-arm64.tar.gz
```
グローバルにパスを通しておく
```
sudo nano /etc/profile
```
で、
`PATH="${PATH}:/usr/local/go/bin"`
を追加。`export PATH`の前
![[Pasted image 20240205153644.png]]
再起動。
```
$ go version
go version go1.21.6 linux/arm64
```
などと表示されればOK。
## cf.
[【備忘録】RaspberryPiにGoをインストールする #Go - Qiita](https://qiita.com/Noctiluca/items/eb8a6b879b988e5f3ed1)

View file

@ -0,0 +1,13 @@
# 20240206132752 IAR Embedded workbench の画面がめちゃくちゃになったときのworkaround
#IAR #eww #workaround
いったん終了し、以下フォルダを削除して再起動する。ウィンドウの表示、配置の設定などはすべてデフォルトに戻る。
```
- 出力フォルダ
    `プロジェクトオプション > 一般オプション > 出力 > 出力ディレクトリ`
    で指定されるフォルダ。デフォルトの場合Debugフォルダ。
    
 - .dep / .ewtファイル存在する場合
 
 - settings フォルダ
```

View file

@ -0,0 +1,82 @@
# 20240211141946 Raspi4 Cloudflareでトンネルを作る
#raspi #cloudflare #server
## 注意
色々なサイトを参考にしたけど、変化が激しいので100%参考になることは無かった。おそらくこのメモもすぐに陳腐化すると思う。私はこの分野の専門ではないので、全然わからないで適当にやっている。
## トンネルとは
[トンネリングとは?| ネットワークにおけるトンネリング | Cloudflare](https://www.cloudflare.com/ja-jp/learning/network-layer/what-is-tunneling/)
## 前提
- ドメインを持っている
- ネームサーバーをcloudflareに移管できる
- ブラウザでがんばってやろうとしたが挫折。 cliの方法を試す [Create a locally-managed tunnel (CLI) · Cloudflare Zero Trust docs](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/get-started/create-local-tunnel/)
## cloudflareでアカウントを作る
[Cloudflare | Web Performance & Security](https://dash.cloudflare.com/sign-up)
ここからサインアップしてアカウントを作る。
## cloudflaredをインストールする
raspi4にcloudflaredをインストールする。
[Downloads · Cloudflare Zero Trust docs](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/) から、 raspi4ならARM64をダウンロードしてインストール
```
$ sudo dpkg -i coudflared-linux-amd64.deb
```
sshのproxycommandとして使うので、wsl2(のubuntu) amd64/x86-64をダウンロードしてそちらにもインストールした。
### 専用ユーザーを作成
raspiで
```
$ sudo groupadd --system cloudflare
$ sudo useradd --system \
--gid cloudflare \
--create-home \
--home-dir /var/lib/cloudflare \
--comment "Cloudflaire" \
cloudflare
$ sudo passwd cloudflare
New password:
Retype new password:
passwd: password updated successfully
$ sudo visudo
cloudflare ALL=(ALL:ALL) ALL
を追加
kazbo@saipi4:~ $ su cloudflare
Password:
cloudflare@saipi4:/home/kazbo $ cd
cloudflare@saipi4:~ $ pwd
/var/lib/cloudflare
```
以降作業はこのユーザー(cloudflare)で実施
### ログイン
```
cloudflare@saipi4:~ $ cloudflared login
Please open the following URL and log in with your Cloudflare account:
https://dash.cloudflare.com/argotunnel?aud=&callback=https%3A%2F%2Flogin.cloudflareaccess.org%...
Leave cloudflared running to download the cert automatically.
[URLをクリックして、使いたいドメインをクリック、承認を押す]
You have successfully logged in.
If you wish to copy your credentials to a server, they have been saved to:
/var/lib/cloudflare/.cloudflared/cert.pem
```
## トンネルの作成
```
cloudflare@saipi4:~ $ cloudflared tunnel create saipi4(ここは自分が設定したい名前)
Tunnel credentials written to /var/lib/cloudflare/.cloudflared/******.json. cloudflared chose this file based on where your origin certificate was found. Keep this file secret. To revoke these credentials, delete the tunnel.
Created tunnel saipi4 with id *****
```
`*****` の所のtokenをメモしておく [[20240212183159 Cloudflare トンネルのtoken]]

View file

@ -0,0 +1,46 @@
# 20240211171220 sshのポートを変更する
#ssh #server
## 変更する理由
[[20240211171652 なぜsshをポート22で実行してはいけないのか|なぜsshを22で実行してはいけないのか]]
## 変更の方法
### サーバー側
`/etc/ssh/sshd_config` を編集すればよい。
`# Port 22` とコメントアウトされている所があるので、 \#を削除。
22を別のポートに設定する。
sshdを再起動
```
$ sudo service ssh restart
$ service ssh status
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-02-11 17:31:52 JST; 30s ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 1448 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
Main PID: 1449 (sshd)
Tasks: 1 (limit: 3918)
CPU: 77ms
CGroup: /system.slice/ssh.service
└─1449 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
Feb 11 17:31:51 saipi4 systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
Feb 11 17:31:52 saipi4 sshd[1449]: Server listening on 0.0.0.0 port *****. # (ここの数字が設定したポート番号になっているかを確認。22のままなら何かが変)
Feb 11 17:31:52 saipi4 sshd[1449]: Server listening on :: port *****.
Feb 11 17:31:52 saipi4 systemd[1]: Started ssh.service - OpenBSD Secure Shell server.
```
### クライアント側
ポートを指定してアクセスして、うまくいくか確認。
```
$ ssh <host> -p [上記の番号]
```
うまくいったら、毎回ポートを指定するのが面倒なので、 `.ssh/config` に、こんな感じで書いておく。
```
Host <host>
Port *****
(...その他)
```

View file

@ -0,0 +1,7 @@
# 20240211171652 なぜsshをポート22で実行してはいけないのか
#ssh #server #security
sshのデフォルトポートは22。攻撃しようとする場合、確実に狙われる。ポート番号をわからなくしておくことで、どのポートがsshか攻撃者に不明にすることができて、乗っ取りなどのリスクを下げられる。
## cf.
- [公開サーバでsshをポート22で空けておいては駄目、というのは常識なのでしょうかもちろん公開鍵認証オンリーにしていますが。 - Quora](https://jp.quora.com/%E5%85%AC%E9%96%8B%E3%82%B5%E3%83%BC%E3%83%90%E3%81%A7ssh%E3%82%92%E3%83%9D%E3%83%BC%E3%83%8822%E3%81%A7%E7%A9%BA%E3%81%91%E3%81%A6%E3%81%8A%E3%81%84%E3%81%A6%E3%81%AF%E9%A7%84%E7%9B%AE-%E3%81%A8%E3%81%84%E3%81%86)
- [SSHは22番ポートで通信しちゃダメポート変更してVPSサーバーの安全を守ろう | L'7 Records](https://www.braveryk7.com/change-22-port/)

View file

@ -0,0 +1,54 @@
# 20240211185359 Raspi4 Cloudflareでsshアクセスできるようにする
#raspi #cloudflare #ssh
## 注意
[[20240211141946 Raspi4 Cloudflareでトンネルを作る|Raspi4 Cloudflareでトンネルを作る]] と同じ。設定方法がどんどん変わる上、私はその専門ではない
## 前提
- [[20240211141946 Raspi4 Cloudflareでトンネルを作る|Raspi4 Cloudflareでトンネルを作る]] の作業が完了している
- [[20240211202623 Raspi4 Cloudflare tunnel経由でhttpsサーバーを公開する|Raspi4 Cloudflare tunnel経由でhttpsサーバーを公開する]] の作業が完了している(ユーザー、サービスなどは作成してある)
## 手順
### サーバー(raspi)側
CNAME recordの追加
```
$ cloudflared tunnel route dns **** pi4.kinoshita-lab.org(ここは好きなやつにする)
2024-02-12T11:33:59Z INF Added CNAME pi4.kinoshita-lab.org which will route to this tunnel tunnelID=****
```
\**** は [[20240212183159 Cloudflare トンネルのtoken|cloudflare トンネルのtoken(private)]] を入れる。
systemで動いているcloudflaredにsshの設定を変更。 httpとsshをhostnameで分けるようにする。
```
tunnel: ****
credentials-file: /var/lib/cloudflare/.cloudflared/****.json
ingress:
- hostname: notes.kinoshita-lab.org
service: http:localhost
- hostname: pi4.kinoshita-lab.org
service: ssh://localhost:??(sshのポート名)
- service: http_status:404
```
### クライアント(wsl2のubuntuなど)側
.ssh/config に、 cloudflaredを使う設定にしたssh設定を追記。
```
Host pi4.kinoshita-lab.org (cloudflareで作ったsshのtunnelのドメイン)
Port xxxxx (自分が設定したポート番号)
ProxyCommand cloudflared access ssh --hostname %h
```
```
$ ssh pi4.kinoshita-lab.org
```
でログインできればOK。
## cf.
- [Cloudflare Tunnel を使って自宅サーバを公開する - hoge な blog](https://akkyorz.hatenablog.com/entry/2022/12/15/012728)
- [\[Cloudflare\] Cloudflare Tunnel の Ingress rules で複数サービスまとめて公開する - てくなべ (tekunabe)](https://tekunabe.hatenablog.jp/entry/2023/08/05/cloudflare_tunnel_ingress_rules)

View file

@ -0,0 +1,68 @@
# 20240211202623 Raspi4 Cloudflare tunnel経由でhttpsサーバーを公開する
#raspi #cloudflare #server
## 前提となる作業
- [[20240211193602 Cloudflare Public Hostnameの設定|Cloudflare Public Hostnameの設定]]
- [[20240211195126 Cloudflare Applicationsの作成|Cloudflare Applicationsの作成]]
- [[20240211141946 Raspi4 Cloudflareでトンネルを作る|Raspi4 Cloudflareでトンネルを作る]]
あたりかな。
## WEBサーバーの設定
raspiのwebサーバーは80番(http)で動かして、cloudflareでhttps化してる。
- [[20240212183719 Raspi4でnginxを設定する|raspi4でnginxを設定する]] で、WEBサーバー(nginx)を動かしておく。
- [[20240205150537 Caddyをraspi4にインストール|Caddyをraspi4にインストール]] で、Caddyを動かしてもよい。
## 作ったWEBサーバーをcloudflareのトンネルに登録
```
cloudflare@saipi4$ vim ~/.cloudflared/config/yaml
```
で、中身はこんな感じ。
```
url: http://localhost
tunnel: ******
credentials-file: /var/lib/cloudflare/.cloudflared/******.json
```
\**** の所はトンネルを作ったときの token(or UUID or TunnelID). [[20240212183159 Cloudflare トンネルのtoken|cloudflare トンネルのtoken(private)]]
```
cloudflare@saipi4:~ $ cloudflared tunnel route dns ***** notes.kinoshita-lab.org
2024-02-12T10:20:56Z INF Added CNAME notes.kinoshita-lab.org which will route to this tunnel tunnelID=****
```
```
cloudflare@saipi4:~ $ cloudflared tunnel --config ~/.cloudflared/config.yaml run
```
これでうまくいったら、 https://notes.kinoshita-lab.org にアクセスすると見える。
### service化
うまくいっていたらserviceとして登録。
```
cloudflare@saipi4:~ $ vim sudo vim /etc/systemd/system/cloudflared.service\
```
中身は
```
[Unit]
Description=cloudflared
After=network.target
[Service]
TimeoutStartSec=0
Type=notify
User=cloudflare
ExecStart=/usr/bin/cloudflared tunnel --config /var/lib/cloudflare/.cloudflared/config.yaml run
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
```
## cf.
- [Cloudflare Tunnel を使って自宅サーバを公開する - hoge な blog](https://akkyorz.hatenablog.com/entry/2022/12/15/012728)

BIN
assets/2023-08-18-22-14-24.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 KiB

BIN
assets/2023-08-18-22-14-27.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 KiB

BIN
assets/2023-08-18-22-15-01.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 KiB

BIN
assets/2023-08-18-22-15-52.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 KiB

BIN
assets/2023-08-18-22-16-31.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 KiB

BIN
assets/2023-08-18-22-17-38.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 KiB

BIN
assets/2023-10-20-15-38-20.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 829 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

BIN
assets/image20231228101217_0.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

BIN
assets/image20240208114549_0.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

19
index.md Executable file
View file

@ -0,0 +1,19 @@
# index(public)
#index #root
kazboのpublic notesにようこそ。
## これは何?
kazboことKaz(uki) Saita/斉田一樹の書きちらかしたメモが堆積したものから、ある程度有用かもしれない内容を、publicに公開しようとしているものです。
### 方針のようなもの
- [[20240122201309 全体的な書き方の方針|全体的な書き方の方針]]
- [[000000000002 メモ ノートの書き方|メモ ノートの書き方]]