Compare commits

...

265 Commits

Author SHA1 Message Date
79f7c42e5b Updated Note cigars.md 2025-10-18 19:27:55 -06:00
ef304b21dc Updated Note cigars.md 2025-10-12 14:17:28 -06:00
edeb72bcbe Updated Note to watch.md 2025-09-25 21:29:44 -06:00
6d0b7f153a Updated Note to watch.md 2025-09-22 11:42:35 -06:00
2309764522 foam_sync.ps1 (LIFEBALANCE) 2025-09-20T18:26:09Z 2025-09-20 18:26:09 -06:00
7e78fe06db foam_sync.ps1 (LIFEBALANCE) 2025-09-20T18:00:08Z 2025-09-20 18:00:08 -06:00
ca065a132a Updated Note cigars.md 2025-09-19 07:15:23 -06:00
658d877c57 foam_sync.ps1 (LIFEBALANCE) 2025-09-18T23:06:11Z 2025-09-18 23:06:11 -06:00
b311a961ab foam_sync.ps1 (LIFEBALANCE) 2025-09-18T07:50:19Z 2025-09-18 07:50:21 -06:00
b1732a2289 Updated Note to watch.md 2025-09-18 07:36:19 -06:00
141ec5aa05 Updated Note to watch.md 2025-09-18 00:45:20 -06:00
f3db7cb65e Updated Note to watch.md 2025-09-17 19:52:49 -06:00
6b54ee374e Updated Note cigars.md 2025-09-15 17:37:29 -06:00
b107936fd0 Updated Note cigars.md 2025-09-14 21:23:59 -06:00
f82ff03b1c Updated Note cigars.md 2025-09-14 21:10:57 -06:00
c0136c7502 Updated Note cigars.md 2025-09-13 19:02:15 -06:00
bc2cd3554b Updated Note cigars.md 2025-09-13 18:59:49 -06:00
f3a918746a Updated Note cigars.md 2025-09-13 18:57:13 -06:00
ben
e1605f3589 Update cigars.md 2025-09-11 13:37:07 -06:00
aa5431c280 foam_sync.ps1 (LIFEBALANCE) 2025-09-11T11:24:11Z 2025-09-11 11:24:13 -06:00
a1b1d7e090 foam_sync.ps1 (LIFEBALANCE) 2025-09-11T11:18:12Z 2025-09-11 11:18:12 -06:00
364bd496b7 Updated Note cigars.md 2025-09-11 11:07:47 -06:00
e8b777fa24 foam_sync.ps1 (LIFEBALANCE) 2025-09-10T16:28:13Z 2025-09-10 16:28:14 -06:00
44dc4dd088 foam_sync.ps1 (LIFEBALANCE) 2025-09-10T16:26:10Z 2025-09-10 16:26:11 -06:00
5e941486dd foam_sync.ps1 (LIFEBALANCE) 2025-09-09T02:14:09Z 2025-09-09 02:14:09 -06:00
5cfc9ebbc0 foam_sync.ps1 (LIFEBALANCE) 2025-09-09T02:12:10Z 2025-09-09 02:12:10 -06:00
ben
bbc6c94924 Update cigars.md 2025-09-05 20:29:56 -06:00
ben
f923ca686e Update cigars.md 2025-09-05 16:31:23 -06:00
4f9560fc1e Updated Note to watch.md 2025-09-04 09:34:27 -06:00
5b339c57bc Updated Note cigars.md 2025-09-03 17:49:34 -06:00
4fcfafd7a9 Updated Note to watch.md 2025-09-02 01:54:25 -06:00
7633b3daaa Updated Note to watch.md 2025-09-01 14:21:46 -06:00
84397ea6ba foam_sync.ps1 (LIFEBALANCE) 2025-08-31T00:50:10Z 2025-08-31 00:50:10 -06:00
501f88eeb6 foam_sync.ps1 (LIFEBALANCE) 2025-08-31T00:40:09Z 2025-08-31 00:40:09 -06:00
28862c2d12 foam_sync.ps1 (LIFEBALANCE) 2025-08-31T00:38:09Z 2025-08-31 00:38:09 -06:00
66359f847c foam_sync.ps1 (LIFEBALANCE) 2025-08-31T00:26:09Z 2025-08-31 00:26:10 -06:00
574f050907 foam_sync.ps1 (LIFEBALANCE) 2025-08-31T00:24:09Z 2025-08-31 00:24:09 -06:00
546605759f foam_sync.ps1 (LIFEBALANCE) 2025-08-31T00:00:09Z 2025-08-31 00:00:09 -06:00
ac48760742 foam_sync.ps1 (LIFEBALANCE) 2025-08-30T23:28:09Z 2025-08-30 23:28:09 -06:00
9b83cb2f49 foam_sync.ps1 (LIFEBALANCE) 2025-08-30T23:12:10Z 2025-08-30 23:12:10 -06:00
be1e8c6696 foam_sync.ps1 (LIFEBALANCE) 2025-08-30T22:20:09Z 2025-08-30 22:20:09 -06:00
ac8a8603ff foam_sync.ps1 (LIFEBALANCE) 2025-08-30T21:50:08Z 2025-08-30 21:50:08 -06:00
a97da04177 foam_sync.ps1 (LIFEBALANCE) 2025-08-30T21:48:08Z 2025-08-30 21:48:08 -06:00
5a3142e8f5 foam_sync.ps1 (LIFEBALANCE) 2025-08-30T21:46:08Z 2025-08-30 21:46:08 -06:00
1e30897d8e foam_sync.ps1 (LIFEBALANCE) 2025-08-29T21:56:08Z 2025-08-29 21:56:08 -06:00
a133d63923 foam_sync.ps1 (LIFEBALANCE) 2025-08-29T20:58:08Z 2025-08-29 20:58:08 -06:00
443d44abeb foam_sync.ps1 (LIFEBALANCE) 2025-08-24T16:46:08Z 2025-08-24 16:46:08 -06:00
6c4f805501 foam_sync.ps1 (LIFEBALANCE) 2025-08-24T15:32:08Z 2025-08-24 15:32:08 -06:00
a3baf0086b foam_sync.ps1 (LIFEBALANCE) 2025-08-24T15:28:08Z 2025-08-24 15:28:08 -06:00
34c132569d Updated Note to watch.md 2025-08-23 16:22:11 -06:00
1fb65e616a Updated Note to watch.md 2025-08-22 20:58:26 -06:00
8b3e6b2df4 Updated Note to watch.md 2025-08-21 08:55:36 -06:00
f24f7b5ed4 Added Note to watch.md 2025-08-20 11:26:51 -06:00
2d52c7dc36 foam_sync.ps1 (DESKTOP-DBGBRBK) 2025-08-15T23:50:29Z 2025-08-15 23:50:29 -06:00
ben
cc842ba3d3 Update cigars.md 2025-08-13 20:44:21 -06:00
ben
73f60fe3c8 Update cigars.md 2025-08-13 20:12:20 -06:00
ben
6d240b97d8 Update cigars.md 2025-08-13 12:12:28 -06:00
ben
1fb7a95ac7 Update cigars.md 2025-08-11 15:30:26 -06:00
ben
5624ec5523 Update cigars.md 2025-08-11 15:21:22 -06:00
ben
41fa8e657f Update cigars.md 2025-08-11 14:41:33 -06:00
a3ded544a6 foam_sync.ps1 (DESKTOP-DBGBRBK) 2025-08-10T03:17:27Z 2025-08-10 03:17:27 -06:00
ben
5958b6dbed Update cigars.md 2025-08-07 16:59:05 -06:00
2dc08e7d05 Updated Note cigars.md 2025-08-05 17:10:29 -06:00
fa7121f443 foam_sync.ps1 (DESKTOP-DBGBRBK) 2025-08-02T11:56:28Z 2025-08-03 16:28:42 -06:00
b189952e8b foam_sync.ps1 (LIFEBALANCE) 2025-08-03T02:16:08Z 2025-08-03 02:16:08 -06:00
895ca7942f foam_sync.ps1 (LIFEBALANCE) 2025-07-31T20:54:08Z 2025-07-31 20:54:08 -06:00
115b337e3a foam_sync.ps1 (LIFEBALANCE) 2025-07-31T18:36:09Z 2025-07-31 18:36:09 -06:00
ben
0d62095206 Update cigars.md 2025-07-21 10:43:25 -06:00
f0634603ee foam_sync.ps1 (LIFEBALANCE) 2025-07-19T15:38:08Z 2025-07-19 15:38:08 -06:00
367e69faf6 foam_sync.ps1 (LIFEBALANCE) 2025-07-19T15:36:08Z 2025-07-19 15:36:08 -06:00
81467ee075 foam_sync.ps1 (LIFEBALANCE) 2025-07-19T15:34:08Z 2025-07-19 15:34:08 -06:00
ben
47552367b6 Update cigars.md 2025-07-18 19:36:46 -06:00
ben
d28f64ceb7 Update cigars.md 2025-07-17 13:47:13 -06:00
b3b3c9cde0 Updated Note making.md 2025-07-15 15:30:33 -06:00
ben
7cde42eb75 Update cigars.md 2025-07-14 15:48:51 -06:00
ben
ba48fa5303 Update cigars.md 2025-07-14 15:18:10 -06:00
ea3dce9ec9 Updated Note cigars.md 2025-07-11 16:29:41 -06:00
ben
73fac49347 Update cigars.md 2025-07-10 19:56:56 -06:00
ben
11fcdae114 Update cigars.md 2025-07-09 12:55:49 -06:00
ben
e4a12af050 Update cigars.md 2025-07-08 11:31:38 -06:00
9637bab983 foam_sync.ps1 (LIFEBALANCE) 2025-07-08T00:12:09Z 2025-07-08 00:12:09 -06:00
f6f499ab8a foam_sync.ps1 (LIFEBALANCE) 2025-07-07T23:34:08Z 2025-07-07 23:34:08 -06:00
c429a855da foam_sync.ps1 (LIFEBALANCE) 2025-07-07T22:26:09Z 2025-07-07 22:26:09 -06:00
b06c145575 foam_sync.ps1 (LIFEBALANCE) 2025-07-07T22:24:09Z 2025-07-07 22:24:09 -06:00
ben
47e960449c Update cigars.md 2025-07-07 15:03:33 -06:00
6acee9b716 foam_sync.ps1 (LIFEBALANCE) 2025-07-07T08:52:09Z 2025-07-07 08:52:09 -06:00
ba087a8fe3 foam_sync.ps1 (LIFEBALANCE) 2025-07-06T22:38:08Z 2025-07-06 22:38:08 -06:00
2fc8080666 foam_sync.ps1 (LIFEBALANCE) 2025-07-06T11:38:09Z 2025-07-06 11:38:09 -06:00
1d2a258823 foam_sync.ps1 (LIFEBALANCE) 2025-07-05T18:56:08Z 2025-07-05 18:56:08 -06:00
9b500703c5 foam_sync.ps1 (LIFEBALANCE) 2025-07-05T18:52:08Z 2025-07-05 18:52:08 -06:00
016540aae3 foam_sync.ps1 (LIFEBALANCE) 2025-07-05T18:48:08Z 2025-07-05 18:48:08 -06:00
a27a22e669 foam_sync.ps1 (LIFEBALANCE) 2025-07-05T18:34:08Z 2025-07-05 18:34:08 -06:00
5aa5fe4978 foam_sync.ps1 (LIFEBALANCE) 2025-07-05T18:30:08Z 2025-07-05 18:30:08 -06:00
bd80ee74d3 foam_sync.ps1 (LIFEBALANCE) 2025-07-05T18:28:08Z 2025-07-05 18:28:08 -06:00
1df6ed2e32 foam_sync.ps1 (LIFEBALANCE) 2025-07-05T17:50:08Z 2025-07-05 17:50:08 -06:00
594c2ab3f8 foam_sync.ps1 (LIFEBALANCE) 2025-07-04T17:58:09Z 2025-07-04 17:58:09 -06:00
cd0903ce53 foam_sync.ps1 (DESKTOP-DBGBRBK) 2025-07-03T22:09:14Z 2025-07-03 22:09:14 -06:00
2e4842e649 foam_sync.ps1 (LIFEBALANCE) 2025-07-03T21:12:09Z 2025-07-03 21:12:09 -06:00
9be353d908 foam_sync.ps1 (LIFEBALANCE) 2025-07-03T20:32:08Z 2025-07-03 20:32:09 -06:00
a63cc408f5 foam_sync.ps1 (LIFEBALANCE) 2025-07-03T20:30:08Z 2025-07-03 20:30:08 -06:00
b49020e3d5 foam_sync.ps1 (LIFEBALANCE) 2025-07-03T20:02:08Z 2025-07-03 20:02:08 -06:00
306ee0619c foam_sync.ps1 (LIFEBALANCE) 2025-07-03T12:50:09Z 2025-07-03 12:50:09 -06:00
096bae0e84 Updated Note cigars.md 2025-07-02 07:35:33 -06:00
b26ccf1391 foam_sync.ps1 (LIFEBALANCE) 2025-07-01T16:00:08Z 2025-07-01 16:00:08 -06:00
e8f83829bb foam_sync.ps1 (LIFEBALANCE) 2025-07-01T15:58:08Z 2025-07-01 15:58:08 -06:00
8fb004d9cd foam_sync.sh (beepboop) 2025-06-30T12:06:02Z 2025-07-01 14:46:48 -06:00
55089b85b1 foam_sync.sh (beepboop) 2025-06-30T12:04:05Z 2025-07-01 14:46:48 -06:00
ben
ff1de37b74 Update cigars.md 2025-07-01 14:46:05 -06:00
bd00234aad foam_sync.ps1 (LIFEBALANCE) 2025-06-30T23:50:08Z 2025-06-30 23:50:08 -06:00
69fbf249b6 foam_sync.ps1 (LIFEBALANCE) 2025-06-30T16:52:09Z 2025-06-30 16:52:09 -06:00
d75775b98a foam_sync.sh (beepboop) 2025-06-30T12:00:49Z 2025-06-30 12:00:56 -06:00
ben
38c719b7cb Update cigars.md 2025-06-30 11:53:53 -06:00
6e3a2434ea foam_sync.ps1 (LIFEBALANCE) 2025-06-29T21:02:08Z 2025-06-29 21:02:08 -06:00
303f3fcce6 foam_sync.ps1 (LIFEBALANCE) 2025-06-29T21:00:08Z 2025-06-29 21:00:08 -06:00
1dad7e5892 foam_sync.ps1 (LIFEBALANCE) 2025-06-29T00:22:08Z 2025-06-29 00:22:08 -06:00
3f9a9aa859 foam_sync.ps1 (LIFEBALANCE) 2025-06-29T00:06:08Z 2025-06-29 00:06:08 -06:00
1ad57b1625 foam_sync.ps1 (LIFEBALANCE) 2025-06-29T00:02:08Z 2025-06-29 00:02:08 -06:00
1e11572535 foam_sync.ps1 (LIFEBALANCE) 2025-06-28T23:18:08Z 2025-06-28 23:18:08 -06:00
dfb6363a11 foam_sync.ps1 (LIFEBALANCE) 2025-06-28T23:04:08Z 2025-06-28 23:04:08 -06:00
c320e34e67 foam_sync.ps1 (LIFEBALANCE) 2025-06-28T23:02:08Z 2025-06-28 23:02:08 -06:00
2a34095236 Updated Note cigars.md 2025-06-28 17:07:11 -06:00
5ff96990d2 Updated Note making.md 2025-06-28 15:07:45 -06:00
027e882e6f Updated Note making.md 2025-06-28 14:40:28 -06:00
ee5f9e7030 Updated Note pool.md 2025-06-28 14:30:15 -06:00
cfa16f2048 Updated Note pool.md 2025-06-28 14:29:25 -06:00
19013efa3d Added Note pool.md 2025-06-28 14:27:55 -06:00
4c02ea4959 Updated Note cigars.md 2025-06-28 00:28:20 -06:00
29c34d203e Updated Note making.md 2025-06-27 17:15:35 -06:00
84991f3e48 Updated Note homelab.md 2025-06-27 08:52:46 -06:00
dc8ef80cc6 Added Note TODO homelab.md 2025-06-26 08:10:18 -06:00
6e31eb68ab foam_sync.ps1 (LIFEBALANCE) 2025-06-26T00:38:08Z 2025-06-26 00:38:08 -06:00
66aed86542 Updated Note making.md 2025-06-25 22:09:53 -06:00
ben
b40492d5a7 Update cigars.md 2025-06-25 15:05:13 -06:00
77e96dd03d Updated Note cigars.md 2025-06-25 10:51:33 -06:00
93a3094392 foam_sync.ps1 (LIFEBALANCE) 2025-06-25T00:56:08Z 2025-06-25 00:56:08 -06:00
a5c1aa286b foam_sync.ps1 (LIFEBALANCE) 2025-06-25T00:54:08Z 2025-06-25 00:54:08 -06:00
159bc09c86 foam_sync.ps1 (LIFEBALANCE) 2025-06-25T00:52:08Z 2025-06-25 00:52:08 -06:00
8068f5378c foam_sync.ps1 (LIFEBALANCE) 2025-06-25T00:50:08Z 2025-06-25 00:50:08 -06:00
d327ab1532 Updated Note making.md 2025-06-24 10:47:18 -06:00
fb6322c8e9 Removed Note docs/publishing/publish-to-azure-devops-wiki.md 2025-06-23 23:53:51 -06:00
a6a419160d Removed Note docs/recipes/take-notes-from-mobile-phone.md 2025-06-23 23:50:27 -06:00
6a6a4fb701 Removed Note docs/recipes/automatic-git-syncing.md 2025-06-23 23:49:34 -06:00
5654f2634e Removed Note docs/recipes/real-time-collaboration.md 2025-06-23 23:48:58 -06:00
537cb747cb Removed Note docs/features/spell-checking.md 2025-06-23 23:48:15 -06:00
4eb9db50d9 foam_sync.ps1 (LIFEBALANCE) 2025-06-23T23:12:08Z 2025-06-23 23:12:08 -06:00
aa553995a9 foam_sync.ps1 (LIFEBALANCE) 2025-06-23T23:08:09Z 2025-06-23 23:08:09 -06:00
d6d906c715 foam_sync.ps1 (LIFEBALANCE) 2025-06-23T01:04:08Z 2025-06-23 01:04:08 -06:00
f29af0e155 foam_sync.ps1 (LIFEBALANCE) 2025-06-23T01:02:08Z 2025-06-23 01:02:08 -06:00
e6b24eaff5 foam_sync.ps1 (LIFEBALANCE) 2025-06-21T13:22:08Z 2025-06-21 13:22:08 -06:00
d9f9d2be9e foam_sync.ps1 (LIFEBALANCE) 2025-06-21T02:10:08Z 2025-06-21 02:10:08 -06:00
7b84e178b8 foam_sync.ps1 (LIFEBALANCE) 2025-06-21T02:08:08Z 2025-06-21 02:08:08 -06:00
373da648f1 foam_sync.ps1 (LIFEBALANCE) 2025-06-20T08:54:08Z 2025-06-20 08:54:08 -06:00
8539174c95 foam_sync.ps1 (LIFEBALANCE) 2025-06-20T01:18:08Z 2025-06-20 01:18:08 -06:00
ben
ff08ec3e3b foam_sync.sh (beepboop) 2025-06-19T20:48:02Z 2025-06-19 20:49:53 -06:00
ben
455c290894 foam_sync.sh (beepboop) 2025-06-18T09:50:03Z 2025-06-19 20:49:53 -06:00
82a1826280 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:30:08Z 2025-06-19 19:30:08 -06:00
0df77e29ea foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:28:08Z 2025-06-19 19:28:08 -06:00
6c733c8049 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:24:08Z 2025-06-19 19:24:08 -06:00
47ece60efe foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:20:07Z 2025-06-19 19:20:07 -06:00
85cc329349 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:17:00Z 2025-06-19 19:17:00 -06:00
ec0ca106d6 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:15:33Z 2025-06-19 19:15:33 -06:00
295f33964a foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:13:45Z 2025-06-19 19:13:45 -06:00
d6257c4419 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:02:01Z 2025-06-19 19:02:01 -06:00
1187547c1b foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:01:36Z 2025-06-19 19:01:36 -06:00
543964c79d foam_sync.ps1 (LIFEBALANCE) 2025-06-19T19:00:15Z 2025-06-19 19:00:15 -06:00
e5ff5b72e3 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T18:59:02Z 2025-06-19 18:59:02 -06:00
1fb0d38ebf foam_sync.ps1 (LIFEBALANCE) 2025-06-19T18:58:28Z 2025-06-19 18:58:29 -06:00
331261ac73 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T18:57:22Z 2025-06-19 18:57:22 -06:00
3c23449d1c foam_sync.ps1 (LIFEBALANCE) 2025-06-19T18:54:29Z 2025-06-19 18:54:29 -06:00
1d2c7af6fc foam_sync.ps1 (LIFEBALANCE) 2025-06-19T18:53:38Z 2025-06-19 18:53:38 -06:00
a8b25953d0 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T18:52:19Z 2025-06-19 18:52:19 -06:00
7a2fe9b1c1 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T18:49:21Z 2025-06-19 18:49:21 -06:00
030c7d0d92 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:29:16Z 2025-06-19 14:29:16 -06:00
0c5101c77d foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:27:40Z 2025-06-19 14:27:40 -06:00
2cd6533e53 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:27:09Z 2025-06-19 14:27:09 -06:00
3f0ea6a0f2 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:26:06Z 2025-06-19 14:26:06 -06:00
f3701042c9 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:17:15Z 2025-06-19 14:17:15 -06:00
1b9ff5334f foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:15:16Z 2025-06-19 14:15:16 -06:00
9cda4ed47d foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:13:15Z 2025-06-19 14:13:16 -06:00
4ae4678374 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:11:15Z 2025-06-19 14:11:15 -06:00
0743a76f5d foam_sync.ps1 (LIFEBALANCE) 2025-06-19T14:09:16Z 2025-06-19 14:09:16 -06:00
fd0186fb3b foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:57:15Z 2025-06-19 13:57:15 -06:00
e2fc925029 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:55:15Z 2025-06-19 13:55:15 -06:00
cc35a0b8d6 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:53:15Z 2025-06-19 13:53:15 -06:00
14bcf98f85 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:51:58Z 2025-06-19 13:51:58 -06:00
9834514053 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:50:50Z 2025-06-19 13:50:50 -06:00
f49d4647dd foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:49:29Z 2025-06-19 13:49:29 -06:00
65ce3cd800 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:49:04Z 2025-06-19 13:49:04 -06:00
a40e04dc70 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:48:45Z 2025-06-19 13:48:45 -06:00
7ab7008eb8 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:46:42Z 2025-06-19 13:46:42 -06:00
7e46c2704e foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:46:06Z 2025-06-19 13:46:06 -06:00
d5ca7cf365 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T13:43:24Z 2025-06-19 13:43:24 -06:00
72523d1785 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T01:18:48Z 2025-06-19 01:18:48 -06:00
c1cc8b482e foam_sync.ps1 (LIFEBALANCE) 2025-06-19T01:14:24Z 2025-06-19 01:14:24 -06:00
1439b682d6 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T01:06:29Z 2025-06-19 01:06:29 -06:00
eb8b59ee9f foam_sync.ps1 (LIFEBALANCE) 2025-06-19T00:50:16Z 2025-06-19 00:50:16 -06:00
3ed3847dd2 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T00:48:58Z 2025-06-19 00:48:58 -06:00
8ab3e878be foam_sync.ps1 (LIFEBALANCE) 2025-06-19T00:41:34Z 2025-06-19 00:41:34 -06:00
2f4f8e11da foam_sync.ps1 (LIFEBALANCE) 2025-06-19T00:39:50Z 2025-06-19 00:39:50 -06:00
d595694269 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T00:36:31Z 2025-06-19 00:36:31 -06:00
80a98b4fdd foam_sync.ps1 (LIFEBALANCE) 2025-06-19T00:26:39Z 2025-06-19 00:26:39 -06:00
d10c85b295 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T00:22:29Z 2025-06-19 00:22:29 -06:00
005fa587c4 foam_sync.ps1 (LIFEBALANCE) 2025-06-19T00:03:26Z 2025-06-19 00:03:26 -06:00
642cf06a79 foam_sync.ps1 (LIFEBALANCE) 2025-06-18T23:59:21Z 2025-06-18 23:59:21 -06:00
da806e9c62 foam_sync.ps1 (LIFEBALANCE) 2025-06-18T23:58:32Z 2025-06-18 23:58:32 -06:00
f51a827fae foam_sync.ps1 (LIFEBALANCE) 2025-06-18T23:57:41Z 2025-06-18 23:57:41 -06:00
147e7cdf8c foam_sync.ps1 (LIFEBALANCE) 2025-06-18T23:55:52Z 2025-06-18 23:55:52 -06:00
42dfaee83d Jun 18, 2025, 8:23 PM 2025-06-19 02:23:28 +00:00
d6d5ef3fc7 Jun 18, 2025, 8:22 PM 2025-06-19 02:22:30 +00:00
202cd1c74b Merge branch 'main' of ssh://gitea.hh.lan/ben/homefoam 2025-06-18 17:40:27 -06:00
ben
f414d20381 foam_sync.sh (beepboop) 2025-06-18T09:49:11Z 2025-06-18 09:49:11 -06:00
02ea3f5790 Jun 18, 2025, 3:01 AM 2025-06-18 09:01:26 +00:00
42d09acaf2 Jun 18, 2025, 12:20 AM 2025-06-18 06:20:59 +00:00
b24b461979 Jun 17, 2025, 11:57 PM 2025-06-18 05:57:17 +00:00
82a7b50396 Jun 17, 2025, 11:36 PM 2025-06-18 05:36:25 +00:00
75c9e79312 Jun 17, 2025, 10:48 PM 2025-06-18 04:48:51 +00:00
3384735351 Jun 17, 2025, 10:38 PM 2025-06-18 04:38:49 +00:00
c66c43d2e6 Jun 17, 2025, 10:32 PM 2025-06-18 04:32:38 +00:00
e4fe410bc9 Jun 17, 2025, 7:44 PM 2025-06-18 01:44:37 +00:00
a4d89f66aa Jun 17, 2025, 7:44 PM 2025-06-18 01:44:05 +00:00
cd3718741c Jun 17, 2025, 6:36 PM 2025-06-18 00:36:13 +00:00
093722d713 Jun 17, 2025, 10:33 AM 2025-06-17 16:33:24 +00:00
c61d1025cd Jun 17, 2025, 10:22 AM 2025-06-17 16:22:51 +00:00
58199b5de3 Jun 17, 2025, 10:20 AM 2025-06-17 16:20:07 +00:00
6a0cb12ff7 Jun 16, 2025, 5:53 PM 2025-06-16 23:53:32 +00:00
46aa6a8390 Jun 16, 2025, 5:51 PM 2025-06-16 23:51:03 +00:00
46f4eca145 Jun 16, 2025, 5:50 PM 2025-06-16 23:50:32 +00:00
f2c1832ab2 Jun 15, 2025, 3:06 PM 2025-06-15 21:06:48 +00:00
32d0bbf44b Jun 15, 2025, 2:53 PM 2025-06-15 20:53:04 +00:00
6574564492 Jun 15, 2025, 12:03 PM 2025-06-15 18:03:21 +00:00
e472fa31c1 Jun 15, 2025, 12:02 PM 2025-06-15 18:02:16 +00:00
23ef09f1bd Jun 15, 2025, 12:00 PM 2025-06-15 18:00:45 +00:00
f38d069d45 Jun 15, 2025, 11:58 AM 2025-06-15 17:58:44 +00:00
073ab6a9b4 Jun 15, 2025, 11:54 AM 2025-06-15 17:54:13 +00:00
1490d0da6d Jun 15, 2025, 11:52 AM 2025-06-15 17:52:12 +00:00
12a03af62b Jun 15, 2025, 11:51 AM 2025-06-15 17:51:39 +00:00
f743a26770 Jun 15, 2025, 11:49 AM 2025-06-15 17:49:17 +00:00
2af48c410d Jun 15, 2025, 11:48 AM 2025-06-15 17:48:32 +00:00
3866609e9b Jun 15, 2025, 11:47 AM 2025-06-15 17:47:24 +00:00
cf318c4ec8 Jun 15, 2025, 11:44 AM 2025-06-15 17:44:13 +00:00
717fc7e779 Jun 15, 2025, 11:42 AM 2025-06-15 17:42:26 +00:00
da018b4206 Jun 15, 2025, 11:41 AM 2025-06-15 17:41:03 +00:00
2deabb44bf Jun 15, 2025, 11:38 AM 2025-06-15 17:38:30 +00:00
645240df2a Jun 15, 2025, 11:37 AM 2025-06-15 17:37:23 +00:00
88199a04ea Jun 15, 2025, 11:34 AM 2025-06-15 17:34:26 +00:00
4bc369d0c8 Jun 15, 2025, 11:33 AM 2025-06-15 17:33:17 +00:00
489ed99d13 Jun 15, 2025, 11:31 AM 2025-06-15 17:31:23 +00:00
3c1e40a169 Jun 15, 2025, 11:29 AM 2025-06-15 17:29:58 +00:00
5c519a0d87 Jun 15, 2025, 11:23 AM 2025-06-15 17:23:02 +00:00
685ba7509c Jun 15, 2025, 11:20 AM 2025-06-15 17:20:13 +00:00
cb56f32680 Jun 15, 2025, 11:17 AM 2025-06-15 17:17:47 +00:00
b775d5eaea Jun 15, 2025, 11:16 AM 2025-06-15 17:16:45 +00:00
061fe0e00a Jun 15, 2025, 11:13 AM 2025-06-15 17:13:46 +00:00
b217b5742b Jun 15, 2025, 11:10 AM 2025-06-15 17:10:48 +00:00
b61ae5a15a Jun 15, 2025, 2:36 AM 2025-06-15 08:36:13 +00:00
a0afb7104e changes 2025-06-15 02:26:55 -06:00
55608cb64e Jun 14, 2025, 3:17 AM 2025-06-14 09:17:42 +00:00
a06bafff48 Jun 14, 2025, 3:16 AM 2025-06-14 09:16:57 +00:00
d671a271b0 initial homelab doc 2025-06-14 03:08:55 -06:00
71c0e8a477 Docs sync @ 2a197cf Support custom fonts (#1457) (#62) 2025-04-19 19:26:00 +02:00
175ecbbdb2 explain how to apply keybindings.json (#60) 2024-09-16 14:07:37 +02:00
1f6c9c19a1 Docs sync @ e4f6259 Update recipes.md (#1341) (#59) 2024-03-11 12:36:31 +01:00
d82820575d Docs sync @ cdbb965 Update commands.md (#57) 2023-12-15 22:33:23 +01:00
b90eb07935 Docs sync @ 4276e80 extension descriptions now reflect .vscode dir (#1302) (#56) 2023-10-26 10:25:29 +02:00
158665acb0 Docs sync @ bfcfad3 Add more detail to Support for sections. (#1296) (#55) 2023-10-25 13:11:36 +02:00
62 changed files with 1168 additions and 226 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# .gitignore
.logs/

View File

@ -5,6 +5,9 @@
// Foam's own extension // Foam's own extension
"foam.foam-vscode", "foam.foam-vscode",
// Tons of markdown goodies (lists, tables of content, so much more)
"yzhang.markdown-all-in-one",
// Prettier for auto formatting code // Prettier for auto formatting code
"esbenp.prettier-vscode", "esbenp.prettier-vscode",

View File

@ -18,5 +18,8 @@
"_site/**": true "_site/**": true
}, },
"files.insertFinalNewline": true, "files.insertFinalNewline": true,
"markdown.styles": [".vscode/custom-tag-style.css"] "markdown.styles": [
".vscode/custom-tag-style.css"
],
"gitdoc.enabled": false
} }

1
2025-06-15.md Normal file
View File

@ -0,0 +1 @@
# 2025-06-15

1
2025-06-17.md Normal file
View File

@ -0,0 +1 @@
# 2025-06-17

1
2025-06-18.md Normal file
View File

@ -0,0 +1 @@
# 2025-06-18

1
2025-06-19.md Normal file
View File

@ -0,0 +1 @@
# 2025-06-19

1
2025-06-30.md Normal file
View File

@ -0,0 +1 @@
# 2025-06-30

1
2025-07-01.md Normal file
View File

@ -0,0 +1 @@
# 2025-07-01

1
2025-07-03.md Normal file
View File

@ -0,0 +1 @@
# 2025-07-03

1
2025-07-06.md Normal file
View File

@ -0,0 +1 @@
# 2025-07-06

1
2025-08-15.md Normal file
View File

@ -0,0 +1 @@
# 2025-08-15

1
2025-08-24.md Normal file
View File

@ -0,0 +1 @@
# 2025-08-24

1
2025-08-29.md Normal file
View File

@ -0,0 +1 @@
# 2025-08-29

1
2025-08-30.md Normal file
View File

@ -0,0 +1 @@
# 2025-08-30

1
2025-09-09.md Normal file
View File

@ -0,0 +1 @@
# 2025-09-09

1
2025-09-10.md Normal file
View File

@ -0,0 +1 @@
# 2025-09-10

33
AI.md Normal file
View File

@ -0,0 +1,33 @@
# AI
## Learning
* [The Ultimate Guide to Local AI and AI Agents (The Future is Here) - YouTube](https://www.youtube.com/watch?v=mNcXue7X8H0)
* Docker Compose based framework for running AI locally
* https://github.com/coleam00/local-ai-packaged
* https://www.reddit.com/r/LocalLLaMA/
*
## LocalAI Packaged
### Services
* [Open WebUI](http://localhost:8080/)
* [n8n](http://localhost:5678/)
* [Langfuse](http://localhost:3000/)
* [Ollama](http://localhost:11434/)
* [Qdrant](http://localhost:6333/)
### Start services
```shell
python start_services.py --profile gpu-nvidia
```
## AgentOS
* https://github.com/buildermethods/agent-os
## AG2
* https://github.com/ag2ai/ag2

9
TODO homelab.md Normal file
View File

@ -0,0 +1,9 @@
---
created: 2025-06-26T08:08:31-06:00
modified: 2025-06-26T08:10:18-06:00
type: Checklist
---
# TODO homelab
- [ ] https://marketplace.visualstudio.com/items?itemName=OpenTofu.vscode-opentofu

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

0
assets/images/graph-filter.gif Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 7.1 MiB

After

Width:  |  Height:  |  Size: 7.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

26
booloumud.md Normal file
View File

@ -0,0 +1,26 @@
# booloumud
* https://store.booloumud.com
*
## Tech
### DNS
* Squarespace
* booloumud.com --> store.booloumud.com (Shopify)
* Porkbun
* Transfer in progress, need to re-establish after transfer
* booloumud.org --> booloumud.com
* booloumud.net --> booloumud.com
## Designs
### Earring holders and storage
* `G:\My Drive\booloumud\designs\earring_display`
### Tooth pendants
* [🦷 Real Anatomy Tooth Seth #1・ 3D File for 3D printing・Cults](https://cults3d.com/en/3d-model/art/real-anatomy-tooth-seth-1)
* https://cults3d.com/en/orders/128683287

View File

@ -0,0 +1,3 @@
{
"folders": []
}

145
cigars.md Normal file
View File

@ -0,0 +1,145 @@
# cigars
## to try
* Drew Estate
* Deadwood Crazy Alice
* Java Mint Maduro
* https://www.reddit.com/r/cigars/s/gEAeA9gw2o
* https://www.reddit.com/r/cigars/s/O42EdsJXSf
* Johnny Tabaconaught
* https://www.reddit.com/r/cigars/s/A8KFQ9sovB
* Brickhouse
* Maduro
* https://www.reddit.com/r/cigars/s/bRg03rKkZ1
* Crowned Heads Le Careme
* https://www.reddit.com/r/cigars/s/798wqgYHMp
## I like
* Deadwood
* Leather Rose
* Girl with No Name
* Undercrown Shade
* Mild flavor, strong buzz
* Famous Smoke Shop
* Nicaraguan Selection 3000
* Foundation
* Tabernacle Havana Seed
* Maduro
* Dark Natural - a little strong
* Gurkha
* Rogue
* Chateau de Prive - nice burn, very mild, toasted
* Evil - leather and mild pepper
* L'Atelier
* Surrogates Bone Crusher
* Oliva
* Serie O Corona
* 3rd Degree
* Master Blends 3
* Kentuky Fire Cured
* Just a Friend
* Fat Molly
* Arturo Fuente
* Gran Reserva Curly Head Deluxe Maduro - a little shaggy, but inexpensive
* Selection Privada No. 1 Double Claro
* Rojas
* Street Tacos Barbacoa Robusta
* Breakfast Tacos Sumatra
* Tatuaje
* Reserva Broadleaf
## I don't like
* Rocky Patel Seed to Smoke Share Toro
* Just, gross. Tastes like a book depository.
## meh
* Drew Estate
* Factory Smokes Belicoso Sweet
* Rocky Patel
* Seed to Smoke Classic
## shops
* https://www.cigarsdirect.com/
* Neptune
* Famous Smoke Shop
## Journal
* [[2025-09-18]] - Tatuaje Reserva Broadleaf ([[2024-09-13]])
* [[2025-09-16]] - Arturo Fuente Curly Head Delux Maduro ([[2024-11-20]])
* [[2025-09-15]] - Acid Twenty (2024-01-16)
* [[2025-09-14]] - Gurkha The Tabernacle (2024-11-20)
* Chocolate, leather
* [[2025-09-13]] - L'Atelier Surrogates Bone Crusher ([[2024-09-13]])
* Earthy soil, dark roast coffee. Tight ash, even burn.
* [[2025-09-12]] - Arturo Fuente Curly Head Delux Maduro ([[2024-11-20]])
* [[2025-09-11]] - Arturo Fuente Curly Head Delux Maduro ([[2024-11-20]])
* [[2025-09-10]]
* Nub Habano ([[2024-07-08]])
* Not bad - mild to medium. Lumber and leather. Wrapper was really thin and fell apart, had to relight a few times
* Arturo Fuente Curly Head Delux Maduro ([[2024-11-20]])
* [[2025-09-09]] - Famous Smoke Shop Nicaraguan Selection 3000
* [[2025-09-05]] - Gurkha Cellar Reserve 18 Years
* [[2025-09-04]]
* Rojas Breakfast Tacos Sumatra ([[2025-08-01]])
* Oliva Serie O ([[2024-11-20]])
* [[2025-09-03]] - Gurkha Castle Hall ([[2025-08-01]])
* [[2025-08-30]] - Gurkha Beast ([[2025-08-01]])
* tight, horrible draw on this stick
* once loosened up, not bad - medium-dark, gassy, dark wood
* [[2025-08-29]] - Gurkha Evil ([[2025-08-01]])
* Mild to medium - leather, a little pepper
* [[2025-08-24]] - Gurkha Marquesa ([[2025-08-01]])
* [[2025-08-15]] - Oliva Serie O ([[2024-11-20]])
* [[2025-08-13]] - Gurkha Chateau de Prive ([[2025-08-01]])
* [[2025-08-12]] - Kentucky Fire Cured Fat Molly ([[2025-08-01]])
* [[2025-08-11]] - Gurkha Rogue ([[2025-08-01]])
* Good medium strength. Some burn issues, esp towards the end
* ~[[2025-08-11]] - Rocky Patel Seed to Smoke Shade Toro ([[2025-08-01]])~
* Abandoned after one draw - nasty!
* [[2025-08-09]] - Rojas Street Tacos Carnitas Toro ([[2025-08-01]])
* [[2025-08-07]] - Kentucky Fire Cured Fat Molly ([[2025-08-01]])
* [[2025-08-05]] - Rojas Street Tacos Barbacoa Robusta ([[2025-08-01]])
* Easy draw, lots of smoke. Pepper, leather, medium strong
* [[2025-08-01]] - Rocky Patel Seed to Smoke Classic ([[2025-08-01]])
* Dry leaves, flat, not offensive, but not very good
* [[2025-07-31]] - Kentuky Fire Cured Muwat ([[2024-07-08]])
* [[2025-07-30]] - Oliva Master Blends 3 ([[2024-07-08]])
* [[2025-07-20]] - Inferno by Oliva ([[2024-07-08]])
* [[2025-07-18]]
* Oliva Serie O ([[2024-11-20]])
* Selection Privada No. 1 Double Claro ([[2024-01-19]])
* [[2025-07-16]] - Oliva Serie O ([[2024-11-20]])
* [[2025-07-14]] - Selection Privada No. 1 Double Claro ([[2024-01-19]])
* [[2025-07-11]] - Oliva Serie V ([[2024-12-25]])
* [[2025-07-10]] - Acid Progeny ([[2024-01-16]])
* Cedary, spicy wood
* [[2025-07-08]] - Selection Privada No. 1 Double Claro ([[2024-01-19]])
* [[2025-07-08]] - Oliva Serie O ([[2024-11-20]])
* [[2025-07-07]] - Oliva 3rd Degree ([[2024-07-08]])
* Strong, but not smoky. Tight, even burn. Took a while to get through, pretty buzzy.
* [[2025-07-06]] - Undercrown Shade ([[2024-01]])
* [[2025-07-03]] - Oliva Serie O ([[2024-11-20]])
* [[2025-07-01]] - Factory Smokes Belicoso Sweet ([[2024-01-16]])
* [[2025-06-30]] - Selection Privada No. 1 Double Claro ([[2024-01-19]])
* [[2025-06-25]] - Selection Privada No. 1 Double Claro
[//begin]: # "Autogenerated link references for markdown compatibility"
[2025-09-10]: 2025-09-10.md "2025-09-10"
[2025-09-09]: 2025-09-09.md "2025-09-09"
[2025-08-30]: 2025-08-30.md "2025-08-30"
[2025-08-29]: 2025-08-29.md "2025-08-29"
[2025-08-24]: 2025-08-24.md "2025-08-24"
[2025-08-15]: 2025-08-15.md "2025-08-15"
[2025-07-06]: 2025-07-06.md "2025-07-06"
[2025-07-03]: 2025-07-03.md "2025-07-03"
[2025-07-01]: 2025-07-01.md "2025-07-01"
[2025-06-30]: 2025-06-30.md "2025-06-30"
[//end]: # "Autogenerated link references"

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

3
dev environments.md Normal file
View File

@ -0,0 +1,3 @@
# dev environments
* https://bitwarden.com/help/ssh-agent/

View File

@ -10,13 +10,13 @@ This command creates a note.
Although it works fine on its own, it can be customized to achieve various use cases. Although it works fine on its own, it can be customized to achieve various use cases.
Here are the settings available for the command: Here are the settings available for the command:
- notePath: The path of the note to create. If relative it will be resolved against the workspace root. - `notePath`: The path of the note to create. If relative it will be resolved against the workspace root.
- templatePath: The path of the template to use. If relative it will be resolved against the workspace root. - `templatePath`: The path of the template to use. If relative it will be resolved against the workspace root.
- title: The title of the note (that is, the `FOAM_TITLE` variable) - `title`: The title of the note (that is, the `FOAM_TITLE` variable)
- text: The text to use for the note. If also a template is provided, the template has precedence - `text`: The text to use for the note. If also a template is provided, the template has precedence
- variables: Variables to use in the text or template - `variables`: Variables to use in the text or template
- date: The date used to resolve the FOAM*DATE*\* variables. in `YYYY-MM-DD` format - `date`: The date used to resolve the FOAM*DATE*\* variables. in `YYYY-MM-DD` format
- onFileExists?: 'overwrite' | 'open' | 'ask' | 'cancel': What to do in case the target file already exists - `onFileExists?: 'overwrite' | 'open' | 'ask' | 'cancel'`: What to do in case the target file already exists
To customize a command and associate a key binding to it, open the key binding settings and add the appropriate configuration, here are some examples: To customize a command and associate a key binding to it, open the key binding settings and add the appropriate configuration, here are some examples:

View File

@ -1,8 +1,8 @@
# Daily Notes # Daily Notes
Daily notes allow you to quickly create and access a new notes file for each day. This is a surpisingly effective and increasingly common strategy to organize notes and manage events. Daily notes allow you to quickly create and access a new notes file for each day. This is a surprisingly effective and increasingly common strategy to organize notes and manage events.
View today's note file by running the `Foam: Open Daily Note` command, by using the shortcut `alt+d` (note: shortcuts can be [overridden](https://code.visualstudio.com/docs/getstarted/keybindings)), or by using [#snippets](#Snippets). The name, location, and title of daily notes files is [#configurable](#Configuration). View today's note file by running the `Foam: Open Daily Note` command, by using the shortcut `alt+d` (note: shortcuts can be [overridden](https://code.visualstudio.com/docs/getstarted/keybindings)), or by using [#snippets](#Snippets). The name, location, and title of daily notes files are [#configurable](#Configuration).
## Roam-style Automatic Daily Notes ## Roam-style Automatic Daily Notes
@ -29,11 +29,11 @@ Create a link to a recent daily note using [snippets](https://code.visualstudio.
## Configuration ## Configuration
By default, Daily Notes will be created in a file called `yyyy-mm-dd.md` in the workspace's `journals` folder, with a heading `yyyy-mm-dd`. By default, Daily Notes will be created in a file called `yyyy-mm-dd.md` in the workspace's `journals` folder, with the heading `yyyy-mm-dd`.
These settings can be overridden in your workspace or global `.vscode/settings.json` file, using the [**dateformat** date masking syntax](https://github.com/felixge/node-dateformat#mask-options): These settings can be overridden in your workspace or global `.vscode/settings.json` file, using the [**dateformat** date masking syntax](https://github.com/felixge/node-dateformat#mask-options):
It's possible to customize path and heading of your daily notes, by following the [dateformat masking syntax](https://github.com/felixge/node-dateformat#mask-options). It's possible to customize the path and heading of your daily notes, by following the [dateformat masking syntax](https://github.com/felixge/node-dateformat#mask-options).
The following properties can be used: The following properties can be used:
```json ```json
@ -45,7 +45,7 @@ The following properties can be used:
The above configuration would create a file `journal/daily-note-2020-07-25.mdx`, with the heading `Journal Entry, Sunday, July 25`. The above configuration would create a file `journal/daily-note-2020-07-25.mdx`, with the heading `Journal Entry, Sunday, July 25`.
> NOTE: It is possible to set the filepath of a daily note according to the date using the special [[note-properties]] configurable for [[Note Templates]]. Specifically see [[note-templates#Example of date-based|Example of date-based filepath]]. Using the template property will override any setting configured through `.vscode/settings.json`. > NOTE: It is possible to set the filepath of a daily note according to the date using the special [[note-properties]] configurable for [[Note Templates]]. Specifically, see [[note-templates#Example of date-based|Example of date-based filepath]]. Using the template property will override any setting configured through `.vscode/settings.json`.
## Extend Functionality (Weekly, Monthly, Quarterly Notes) ## Extend Functionality (Weekly, Monthly, Quarterly Notes)

View File

@ -38,6 +38,7 @@ A sample configuration object is provided below, you can provide as many or as l
"foam.graph.style": { "foam.graph.style": {
"background": "#202020", "background": "#202020",
"fontSize": 12, "fontSize": 12,
"fontFamily": "Sans-Serif",
"lineColor": "#277da1", "lineColor": "#277da1",
"lineWidth": 0.2, "lineWidth": 0.2,
"particleWidth": 1.0, "particleWidth": 1.0,
@ -50,6 +51,7 @@ A sample configuration object is provided below, you can provide as many or as l
- `background` background color of the graph, adjust to increase contrast - `background` background color of the graph, adjust to increase contrast
- `fontSize` size of the title font for each node - `fontSize` size of the title font for each node
- `fontFamily` font of the title font for each node
- `lineColor` color of the edges between nodes in the graph - `lineColor` color of the edges between nodes in the graph
- `lineWidth` thickness of the edges between nodes - `lineWidth` thickness of the edges between nodes
- `particleWidth` size of the particle animation showing link direction when highlighting a node - `particleWidth` size of the particle animation showing link direction when highlighting a node

View File

@ -1,22 +1,22 @@
# Link Reference Definitions # Link Reference Definitions
When you use `[[wikilinks]]`, the [foam-vscode](https://github.com/foambubble/foam/tree/master/packages/foam-vscode) extension can automatically generate [Markdown Link Reference Definitions](https://spec.commonmark.org/0.29/#link-reference-definitions) at the bottom of the file. This is not needed to navigate your workspace with foam-vscode, but is useful for files to remain compatible with various Markdown tools (e.g. parsers, static site generators, VS code plugins etc), which don't support `[[wikilinks]]`. When you use `[[wikilinks]]`, the [foam-vscode](https://github.com/foambubble/foam/tree/main/packages/foam-vscode) extension can automatically generate [Markdown Link Reference Definitions](https://spec.commonmark.org/0.29/#link-reference-definitions) at the bottom of the file. This is not needed to navigate your workspace with foam-vscode, but is useful for files to remain compatible with various Markdown tools (e.g. parsers, static site generators, VS code plugins etc), which don't support `[[wikilinks]]`.
## Example ## Example
The following example: The following example:
```md ```md
- [[wikilinks]] - [[wikilinks]]
- [[github-pages]] - [[github-pages]]
``` ```
...generates the following link reference definitions to the bottom of the file: ...generates the following link reference definitions to the bottom of the file:
```md ```md
[wikilinks]: wikilinks "Wikilinks" [wikilinks]: wikilinks 'Wikilinks'
[github-pages]: github-pages "GitHub Pages" [github-pages]: github-pages 'GitHub Pages'
``` ```
You can open the [raw markdown](https://foambubble.github.io/foam/features/link-reference-definitions.md) to see them at the bottom of this file You can open the [raw markdown](https://foambubble.github.io/foam/features/link-reference-definitions.md) to see them at the bottom of this file
You can open the [raw markdown](https://foambubble.github.io/foam/user/features/link-reference-definitions.md) to see them at the bottom of this file You can open the [raw markdown](https://foambubble.github.io/foam/user/features/link-reference-definitions.md) to see them at the bottom of this file
@ -53,15 +53,15 @@ There are three options for excluding files from your Foam project:
1. `files.exclude` (from VSCode) will prevent the folder from showing in the file explorer. 1. `files.exclude` (from VSCode) will prevent the folder from showing in the file explorer.
> "Configure glob patterns for excluding files and folders. For example, the file explorer decides which files and folders to show or hide based on this setting. Refer to the Search: Exclude setting to define search-specific excludes." > "Configure glob patterns for excluding files and folders. For example, the file explorer decides which files and folders to show or hide based on this setting. Refer to the Search: Exclude setting to define search-specific excludes."
2. `files.watcherExclude` (from VSCode) prevents VSCode from constantly monitoring files for changes. 2. `files.watcherExclude` (from VSCode) prevents VSCode from constantly monitoring files for changes.
> "Configure paths or glob patterns to exclude from file watching. Paths or basic glob patterns that are relative (for example `build/output` or `*.js`) will be resolved to an absolute path using the currently opened workspace. Complex glob patterns must match on absolute paths (i.e. prefix with `**/` or the full path and suffix with `/**` to match files within a path) to match properly (for example `**/build/output/**` or `/Users/name/workspaces/project/build/output/**`). When you experience the file watcher process consuming a lot of CPU, make sure to exclude large folders that are of less interest (such as build output folders)." > "Configure paths or glob patterns to exclude from file watching. Paths or basic glob patterns that are relative (for example `build/output` or `*.js`) will be resolved to an absolute path using the currently opened workspace. Complex glob patterns must match on absolute paths (i.e. prefix with `**/` or the full path and suffix with `/**` to match files within a path) to match properly (for example `**/build/output/**` or `/Users/name/workspaces/project/build/output/**`). When you experience the file watcher process consuming a lot of CPU, make sure to exclude large folders that are of less interest (such as build output folders)."
3. `foam.files.ignore` (from Foam) ignores files from being added to the Foam graph. 3. `foam.files.ignore` (from Foam) ignores files from being added to the Foam graph.
> "Specifies the list of globs that will be ignored by Foam (e.g. they will not be considered when creating the graph). To ignore the all the content of a given folder, use `<folderName>/**/*`" (requires reloading VSCode to take effect). > "Specifies the list of globs that will be ignored by Foam (e.g. they will not be considered when creating the graph). To ignore the all the content of a given folder, use `<folderName>/**/*`" (requires reloading VSCode to take effect).
For instance, if you're using a local instance of [Jekyll](https://jekyllrb.com/), you may find that it writes copies of each `.md` file into a `_site` directory, which may lead to Foam generating references to them instead of the original source notes. For instance, if you're using a local instance of [Jekyll](https://jekyllrb.com/), you may find that it writes copies of each `.md` file into a `_site` directory, which may lead to Foam generating references to them instead of the original source notes.

View File

@ -32,6 +32,7 @@ Some properties have special meaning for Foam:
| `title` | will assign the name to the note that you will see in the graph, regardless of the filename or the first heading (also see how to [[write-notes-in-foam]]) | | `title` | will assign the name to the note that you will see in the graph, regardless of the filename or the first heading (also see how to [[write-notes-in-foam]]) |
| `type` | can be used to style notes differently in the graph (also see [[graph-visualization]]). The default type for a document is `note` unless otherwise specified with this property. | | `type` | can be used to style notes differently in the graph (also see [[graph-visualization]]). The default type for a document is `note` unless otherwise specified with this property. |
| `tags` | can be used to add tags to a note (see [[tags]]) | | `tags` | can be used to add tags to a note (see [[tags]]) |
| `alias` | can be used to add aliases to the note. an alias will show up in the link autocompletion |
For example: For example:
@ -40,7 +41,7 @@ For example:
title: "Note Title" title: "Note Title"
type: "daily-note" type: "daily-note"
tags: daily, funny, planning tags: daily, funny, planning
alias: alias1, alias2
--- ---
``` ```

View File

@ -8,8 +8,8 @@ Note templates are `.md` files located in the special `.foam/templates` director
Create a template: Create a template:
* Run the `Foam: Create New Template` command from the command palette - Run the `Foam: Create New Template` command from the command palette
* OR manually create a regular `.md` file in the `.foam/templates` directory - OR manually create a regular `.md` file in the `.foam/templates` directory
![Create new template GIF](../../assets/images/create-new-template.gif) ![Create new template GIF](../../assets/images/create-new-template.gif)
@ -17,8 +17,8 @@ _Theme: Ayu Light_
To create a note from a template: To create a note from a template:
* Run the `Foam: Create New Note From Template` command and follow the instructions. Don't worry if you've not created a template yet! You'll be prompted to create a new template if none exist. - Run the `Foam: Create New Note From Template` command and follow the instructions. Don't worry if you've not created a template yet! You'll be prompted to create a new template if none exist.
* OR run the `Foam: Create New Note` command, which uses the special default template (`.foam/templates/new-note.md`, if it exists) - OR run the `Foam: Create New Note` command, which uses the special default template (`.foam/templates/new-note.md`, if it exists)
![Create new note from template GIF](../../assets/images/create-new-note-from-template.gif) ![Create new note from template GIF](../../assets/images/create-new-note-from-template.gif)
@ -29,7 +29,7 @@ _Theme: Ayu Light_
### Default template ### Default template
The `.foam/templates/new-note.md` template is special in that it is the template that will be used by the `Foam: Create New Note` command. The `.foam/templates/new-note.md` template is special in that it is the template that will be used by the `Foam: Create New Note` command.
Customize this template to contain content that you want included every time you create a note. To begin it is *recommended* to define the YAML Front-Matter of the template similar to the following: Customize this template to contain content that you want included every time you create a note. To begin it is _recommended_ to define the YAML Front-Matter of the template similar to the following:
```markdown ```markdown
--- ---
@ -40,7 +40,7 @@ type: basic-note
### Default daily note template ### Default daily note template
The `.foam/templates/daily-note.md` template is special in that it is the template that will be used when creating daily notes (e.g. by using `Foam: Open Daily Note`). The `.foam/templates/daily-note.md` template is special in that it is the template that will be used when creating daily notes (e.g. by using `Foam: Open Daily Note`).
Customize this template to contain content that you want included every time you create a daily note. To begin it is *recommended* to define the YAML Front-Matter of the template similar to the following: Customize this template to contain content that you want included every time you create a daily note. To begin it is _recommended_ to define the YAML Front-Matter of the template similar to the following:
```markdown ```markdown
--- ---
@ -54,12 +54,12 @@ Templates can use all the variables available in [VS Code Snippets](https://code
In addition, you can also use variables provided by Foam: In addition, you can also use variables provided by Foam:
| Name | Description | | Name | Description |
| -------------------- | ------------ | | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `FOAM_SELECTED_TEXT` | Foam will fill it with selected text when creating a new note, if any text is selected. Selected text will be replaced with a wikilink to the new | | `FOAM_SELECTED_TEXT` | Foam will fill it with selected text when creating a new note, if any text is selected. Selected text will be replaced with a wikilink to the new |
| `FOAM_TITLE` | The title of the note. If used, Foam will prompt you to enter a title for the note. | | `FOAM_TITLE` | The title of the note. If used, Foam will prompt you to enter a title for the note. |
| `FOAM_TITLE_SAFE` | The title of the note in a file system safe format. If used, Foam will prompt you to enter a title for the note unless `FOAM_TITLE` has already caused the prompt. | | `FOAM_TITLE_SAFE` | The title of the note in a file system safe format. If used, Foam will prompt you to enter a title for the note unless `FOAM_TITLE` has already caused the prompt. |
| `FOAM_SLUG` | The sluggified title of the note (using the default github slug method). If used, Foam will prompt you to enter a title for the note unless `FOAM_TITLE` has already caused the prompt. | | `FOAM_SLUG` | The sluggified title of the note (using the default github slug method). If used, Foam will prompt you to enter a title for the note unless `FOAM_TITLE` has already caused the prompt. |
| `FOAM_DATE_*` | `FOAM_DATE_YEAR`, `FOAM_DATE_MONTH`, `FOAM_DATE_WEEK` etc. Foam-specific versions of [VS Code's datetime snippet variables](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables). Prefer these versions over VS Code's. | | `FOAM_DATE_*` | `FOAM_DATE_YEAR`, `FOAM_DATE_MONTH`, `FOAM_DATE_WEEK` etc. Foam-specific versions of [VS Code's datetime snippet variables](https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables). Prefer these versions over VS Code's. |
### `FOAM_DATE_*` variables ### `FOAM_DATE_*` variables
@ -70,7 +70,7 @@ For example, `FOAM_DATE_YEAR` has the same behaviour as VS Code's `CURRENT_YEAR`
By default, prefer using the `FOAM_DATE_` versions. The datetime used to compute the values will be the same for both `FOAM_DATE_` and VS Code's variables, with the exception of the creation notes using the daily note template. By default, prefer using the `FOAM_DATE_` versions. The datetime used to compute the values will be the same for both `FOAM_DATE_` and VS Code's variables, with the exception of the creation notes using the daily note template.
For more nitty-gritty details about the supported date formats, [see here](https://github.com/foambubble/foam/blob/master/packages/foam-vscode/src/services/variable-resolver.ts). For more nitty-gritty details about the supported date formats, [see here](https://github.com/foambubble/foam/blob/main/packages/foam-vscode/src/services/variable-resolver.ts).
#### Relative daily notes #### Relative daily notes
@ -84,8 +84,8 @@ For example, given this daily note template (`.foam/templates/daily-note.md`):
## Here's what I'm going to do today ## Here's what I'm going to do today
* Thing 1 - Thing 1
* Thing 2 - Thing 2
``` ```
When the `/tomorrow` snippet is used, `FOAM_DATE_` variables will be populated with tomorrow's date, as expected. When the `/tomorrow` snippet is used, `FOAM_DATE_` variables will be populated with tomorrow's date, as expected.
@ -97,11 +97,11 @@ When creating notes in any other scenario, the `FOAM_DATE_` values are computed
Templates can also contain metadata about the templates themselves. The metadata is defined in YAML "Frontmatter" blocks within the templates. Templates can also contain metadata about the templates themselves. The metadata is defined in YAML "Frontmatter" blocks within the templates.
| Name | Description | | Name | Description |
| ------------- | ---------------------- | | ------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `filepath` | The filepath to use when creating the new note. If the filepath is a relative filepath, it is relative to the current workspace. | | `filepath` | The filepath to use when creating the new note. If the filepath is a relative filepath, it is relative to the current workspace. |
| `name` | A human readable name to show in the template picker. | | `name` | A human readable name to show in the template picker. |
| `description` | A human readable description to show in the template picker. | | `description` | A human readable description to show in the template picker. |
Foam-specific variables (e.g. `$FOAM_TITLE`) can be used within template metadata. However, VS Code snippet variables are ([currently](https://github.com/foambubble/foam/pull/655)) not supported. Foam-specific variables (e.g. `$FOAM_TITLE`) can be used within template metadata. However, VS Code snippet variables are ([currently](https://github.com/foambubble/foam/pull/655)) not supported.
@ -146,9 +146,10 @@ It is possible to vary the `filepath` value based on the current date using the
--- ---
type: daily-note type: daily-note
foam_template: foam_template:
description: Daily Note for $FOAM_TITLE description: Daily Note for $FOAM_TITLE
filepath: "C:\\Users\\foam_user\\foam_notes\\journal\\$FOAM_DATE_YEAR\\$FOAM_DATE_MONTH-$FOAM_DATE_MONTH_NAME_SHORT\\$FOAM_DATE_YEAR-$FOAM_DATE_MONTH-$FOAM_DATE_DATE-daily-note.md" filepath: "C:\\Users\\foam_user\\foam_notes\\journal\\$FOAM_DATE_YEAR\\$FOAM_DATE_MONTH-$FOAM_DATE_MONTH_NAME_SHORT\\$FOAM_DATE_YEAR-$FOAM_DATE_MONTH-$FOAM_DATE_DATE-daily-note.md"
--- ---
# $FOAM_DATE_YEAR-$FOAM_DATE_MONTH-$FOAM_DATE_DATE Daily Notes # $FOAM_DATE_YEAR-$FOAM_DATE_MONTH-$FOAM_DATE_DATE Daily Notes
``` ```
@ -166,7 +167,7 @@ If your template already has a YAML Frontmatter block, you can add the Foam temp
#### Limitations #### Limitations
Foam only supports adding the template metadata to *YAML* Frontmatter blocks. If the existing Frontmatter block uses some other format (e.g. JSON), you will have to add the template metadata to its own YAML Frontmatter block. Foam only supports adding the template metadata to _YAML_ Frontmatter blocks. If the existing Frontmatter block uses some other format (e.g. JSON), you will have to add the template metadata to its own YAML Frontmatter block.
Further, the template metadata must be provided as a [YAML block mapping](https://yaml.org/spec/1.2/spec.html#id2798057), with the attributes placed on the lines immediately following the `foam_template` line: Further, the template metadata must be provided as a [YAML block mapping](https://yaml.org/spec/1.2/spec.html#id2798057), with the attributes placed on the lines immediately following the `foam_template` line:
@ -210,7 +211,7 @@ foam_template:
--- ---
--- ---
existing_frontmatter: "Existing Frontmatter block" existing_frontmatter: 'Existing Frontmatter block'
--- ---
This is the rest of the template This is the rest of the template
``` ```

View File

@ -1,9 +0,0 @@
# Spell Checking
There are many spell checking extensions for VS Code.
The most popular spell checker for VS Code is [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker).
Another one of our favorites is [LTeX](https://marketplace.visualstudio.com/items?itemName=valentjn.vscode-ltex&ssr=false#overview), which is a bit heavier but offers some extra functionality.
Another popular one is [Spellright](https://marketplace.visualstudio.com/items?itemName=ban.spellright), but be mindful that there have been reports of incompatibility with the `vscode-markdown` extension (see https://github.com/foambubble/foam/issues/1068).

View File

@ -20,7 +20,10 @@ Remember, with `CTRL/CMD+click` on a wikilink you can navigate to the note, or c
## Support for sections ## Support for sections
Foam supports autocompletion, navigation, embedding and diagnostics for note sections. Just use the standard wiki syntax of `[[resource#Section Title]]`. Foam supports autocompletion, navigation, embedding and diagnostics for note sections. Just use the standard wiki syntax of `[[resource#Section Title]]`.
- If it's an external file, `[your link will need the filename](other-file.md#that-section-I-want-to-link-to)`, but
- if it's an anchor within the same document, `[you just need an octothorpe and the section name](#that-section-above)`.
- Doesn't matter what heading-level the anchor is; whether you're linking to an `H1` like `# MEN WALK ON MOON` or an `H2` like `## Astronauts Land on Plain`, the link syntax uses a single octothorpe: `[Walk!](#men-walk-on-moon)` and `[Land!](#astronauts-land-on-plain-collect-rocks-plant-flag)`. Autocomplete is your friend here.
## Markdown compatibility ## Markdown compatibility

View File

@ -6,11 +6,11 @@ This list is subject to change.
- [Foam for VSCode](https://marketplace.visualstudio.com/items?itemName=foam.foam-vscode) (alpha) - [Foam for VSCode](https://marketplace.visualstudio.com/items?itemName=foam.foam-vscode) (alpha)
- [Markdown All In One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one) - [Markdown All In One](https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one)
- [Paste Image](https://marketplace.visualstudio.com/items?itemName=mushan.vscode-paste-image) - [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
## Extensions For Additional Features ## Extensions For Additional Features
These extensions are not (yet?) defined in `.vscode/extensions.json`, but have been used by others and shown to play nice with Foam. These extensions are not defined in `.vscode/extensions.json`, but have been used by others and shown to play nice with Foam.
- [Emojisense](https://marketplace.visualstudio.com/items?itemName=bierner.emojisense) - [Emojisense](https://marketplace.visualstudio.com/items?itemName=bierner.emojisense)
- [Markdown Emoji](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-emoji) (adds `:smile:` syntax, works with emojisense to provide autocomplete for this syntax) - [Markdown Emoji](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-emoji) (adds `:smile:` syntax, works with emojisense to provide autocomplete for this syntax)

View File

@ -1,66 +0,0 @@
# Publish to Azure DevOps Wiki
Publish your Foam workspace as an Azure DevOps wiki.
[Azure DevOps](https://azure.microsoft.com/en-us/services/devops/) is Microsoft's collaboration software for software development teams, formerly known as Team Foundation Server (TFS) and Visual Studio Team Services. It is available as an on-premise or SaaS version. The following recipe was tested with the SaaS version, but should work the same way for the on-premise.
The following recipe is written with the assumption that you already have an [Azure DevOps](https://azure.microsoft.com/en-us/services/devops/) project.
## Setup a Foam workspace
1. Generate a Foam workspace using the [foam-template project](https://github.com/foambubble/foam-template).
2. Change the remote to a git repository in Azure DevOps (Repos -> Import a Repository -> Add Clone URL with Authentication), or copy all the files into a new Azure DevOps git repository.
3. Define which document will be the wiki home page. To do that, create a file called `.order` in the Foam workspace root folder, with first line being the document filename without `.md` extension. For a project created from the Foam template, the file would look like this:
```
readme
```
4. Push the repository to remote in Azure DevOps.
## Publish repository to a wiki
1. Navigate to your Azure DevOps project in a web browser.
2. Choose **Overview** > **Wiki**. If you don't have wikis for your project, choose **Publish code as a wiki** on welcome page.
3. Choose repository with your Foam workspace, branch (usually `master` or `main`), folder (for workspace created from foam-template it is `/`), and wiki name, and press **Publish**.
A published workspace looks like this:
![Azure DevOps wiki](../../assets/images/azure-devops-wiki-demo.png)
There is default table of contents pane to the left of the wiki content. Here, you'll find a list of all directories that are present in your Foam workspace, and all wiki pages. Page names are derived from files names, and they are listed in alphabetical order. You may reorder pages by adding filenames without `.md` extension to `.order` file.
_Note that first entry in `.order` file defines wiki's home page._
## Update wiki
While you are pushing changes to GitHub, you won't see the wiki updated if you don't add Azure as a remote. You can push to multiple repositories simultaneously.
1. First open a terminal and check if Azure is added running: `git remote show origin`. If you don't see Azure add it in the output then follow these steps.
2. Rename your current remote (most likely named origin) to a different name by running: `git remote rename origin main`
3. You can then add the remote for your second remote repository, in this case, Azure. e.g `git remote add azure https://<YOUR_ID>@dev.azure.com/<YOUR_ID>/foam-notes/_git/foam-notes`. You can get it from: Repos->Files->Clone and copy the URL.
4. Now, you need to set up your origin remote to push to both of these. So run: `git config -e` and edit it.
5. Add the `remote origin` section to the bottom of the file with the URLs from each remote repository you'd like to push to. You'll see something like that:
```bash
[core]
...
(ignore this part)
...
[branch "master"]
remote = github
merge = refs/heads/master
[remote "github"]
url = git@github.com:username/repo.git
fetch = +refs/heads/*:refs/remotes/github/*
[remote "azure"]
url = https://<YOUR_ID>@dev.azure.com/<YOUR_ID>/foam-notes/_git/foam-notes
fetch = +refs/heads/*:refs/remotes/azure/*
[remote "origin"]
url = git@github.com:username/repo.git
url = https://<YOUR_ID>@dev.azure.com/<YOUR_ID>/foam-notes/_git/foam-notes
```
6. You can then push to both repositories by: `git push origin master` or a single one using: `git push github master` or `git push azure master`
For more information, read the [Azure DevOps documentation](https://docs.microsoft.com/en-us/azure/devops/project/wiki/publish-repo-to-wiki).

View File

@ -2,8 +2,12 @@
This #recipe allows you to paste images on to your notes. This #recipe allows you to paste images on to your notes.
You can directly link and paste images that are copied to the clipboard using either the [Paste VScode (since
Image](https://marketplace.visualstudio.com/items?itemName=mushan.vscode-paste-image) [1.79](https://code.visualstudio.com/updates/v1_79#_copy-external-media-files-into-workspace-on-drop-or-paste-for-markdown))
extension, or the [Markdown Image](https://marketplace.visualstudio.com/items?itemName=hancel.markdown-image) extension. now has the ability to paste images from the clipboard, or drag-and-drop image
files, directly into markdown documents. The file will be created in the
workspace, and a link generated in Markdown format.
The former does not have MDX support (yet), the latter does. VSCode settings under `Markdown > Copy Files` and `Markdown > Editor > Drop` can
be used to configure where the files get placed in your workspace, how they're
named, how conflicts with existing files are handled, and more.

View File

@ -1,20 +0,0 @@
# Automatically Sync with Git
With this #recipe you can regularly commit and push to git, to keep your repo in always synched.
You can also easily manipulate the git history to reduce clutter.
## Required Extensions
- [GitDoc](https://marketplace.visualstudio.com/items?itemName=vsls-contrib.gitdoc)
## Instructions
Click on the extension link above to see how to use it.
__For Foam specific needs, you can add a comment here by following the [[contribution-guide]]__
## Feedback and issues
- Feedback and issues with the extension should be reported to the authors themselves
- Feedback and issues with the integration of the extension in Foam can be reported in our [issue tracker](https://github.com/foambubble/foam/issues)

View File

@ -29,6 +29,9 @@ on:
jobs: jobs:
store_data: store_data:
runs-on: ubuntu-latest runs-on: ubuntu-latest
# If you encounter a 403 error from a workflow run, try uncommenting the following 2 lines (taken from: https://stackoverflow.com/questions/75880266/cant-make-push-on-a-repo-with-github-actions accepted answer)
# permissions:
# contents: write
steps: steps:
- uses: actions/checkout@master - uses: actions/checkout@master
- uses: anglinb/foam-capture-action@main - uses: anglinb/foam-capture-action@main

View File

@ -0,0 +1,53 @@
# Export to PDF
This #recipe shows how to export a note to PDF.
## Required extensions
- **[vscode-pandoc](https://marketplace.visualstudio.com/items?itemName=chrischinchilla.vscode-pandoc)**
## Required third-party tools
- [Pandoc](https://pandoc.org/installing.html)
- A [LaTeX distribution](https://www.latex-project.org/get/) such as TeXLive (Linux), MacTeX (MacOS), or MikTeX (Windows)
Check that Pandoc is installed by opening a terminal and running `pandoc --version`.
Check that Pandoc can produce PDFs with LaTeX by running the following in the terminal.
```
echo It is working > test.md
pandoc test.md -o test.pdf
```
## Instructions
1. Create a folder in your workspace named `.pandoc`. Take note of the full path to this directory. The rest of this recipe will refer to this path as `$WORKSPACE/.pandoc`.
2. Download the template file [`foam.latex`](https://raw.githubusercontent.com/Hegghammer/foam-templates/main/foam.latex) from [Hegghammer/foam-templates](https://github.com/Hegghammer/foam-templates) and place it in `$WORKSPACE/.pandoc`.
3. In VSCode, open `settings.json` for your user (or just for your workspace if you prefer), and add the following line:
```
"pandoc.pdfOptString": "--from=markdown+wikilinks_title_after_pipe --resource-path $WORKSPACE/.pandoc --template foam --listings",
```
Make sure to replace `$WORKSPACE/.pandoc` with the real full path to the `.pandoc` directory you created earlier.
4. Open a Foam note in VSCode.
5. Press `Ctrl` + `k`, `p`. Choose "pdf", and press `Enter`.
The PDF should look something like this:
![Sample PDF output](../../assets/images/pdf_output.png)
## Options
If you include a name in the `author` parameter in the YAML of the Foam note, that name will feature in the PDF header on the top left.
If you don't want syntax highlighting and frames around the codeblocks, remove `--listings` from the `pandoc.pdfOptString` parameter in `settings.json`.
## Further customization
If you know some LaTeX, you can [tweak](https://bookdown.org/yihui/rmarkdown-cookbook/latex-template.html) the `foam.latex` template to your needs. Alternatively, you can supply another ready-made template such as [Eisvogel](https://github.com/Wandmalfarbe/pandoc-latex-template); just place the `TEMPLATE_NAME.latex` file in `$WORKSPACE/.pandoc`. You can also use all of Pandoc's [other functionalities](https://learnbyexample.github.io/customizing-pandoc/) by tweaking the `pandoc.pdfOptString` parameter in `settings.json`.

View File

@ -1,3 +0,0 @@
# Real-time Collaboration
This #recipe is here to just tell you that VS Code Live Share will allow you to collaborate live on your notes.

View File

@ -1,19 +1,21 @@
<!-- omit in toc --> <!-- omit in toc -->
# Recipes # Recipes
A #recipe is a guide, tip or strategy for getting the most out of your Foam workspace! A #recipe is a guide, tip or strategy for getting the most out of your Foam workspace!
- [Contribute](#contribute) - [Recipes](#recipes)
- [Take smart notes](#take-smart-notes) - [Contribute](#contribute)
- [Discover](#discover) - [Take smart notes](#take-smart-notes)
- [Organise](#organise) - [Discover](#discover)
- [Write](#write) - [Organise](#organise)
- [Version control](#version-control) - [Write](#write)
- [Publish](#publish) - [Version control](#version-control)
- [Collaborate](#collaborate) - [Publish](#publish)
- [Workflow](#workflow) - [Collaborate](#collaborate)
- [Creative ideas](#creative-ideas) - [Workflow](#workflow)
- [Other](#other) - [Creative ideas](#creative-ideas)
- [Other](#other)
## Contribute ## Contribute
@ -75,11 +77,11 @@ A #recipe is a guide, tip or strategy for getting the most out of your Foam work
- Publish using community templates - Publish using community templates
- [[publish-to-netlify-with-eleventy]] by [@juanfrank77](https://github.com/juanfrank77) - [[publish-to-netlify-with-eleventy]] by [@juanfrank77](https://github.com/juanfrank77)
- [[generate-gatsby-site]] by [@mathieudutour](https://github.com/mathieudutour) and [@hikerpig](https://github.com/hikerpig) - [[generate-gatsby-site]] by [@mathieudutour](https://github.com/mathieudutour) and [@hikerpig](https://github.com/hikerpig)
- [foamy-nextjs](https://github.com/yenly/foamy-nextjs) by [@yenly](https://github.com/yenly)
- Make the site your own by [[publish-to-github]]. - Make the site your own by [[publish-to-github]].
- Render math symbols, by either - Render math symbols, by either
- adding client-side [[math-support-with-mathjax]] to the default [[publish-to-github-pages]] site - adding client-side [[math-support-with-mathjax]] to the default [[publish-to-github-pages]] site
- adding a custom Jekyll plugin to support [[math-support-with-katex]] - adding a custom Jekyll plugin to support [[math-support-with-katex]]
- Export note to PDF [[export-to-pdf]]
## Collaborate ## Collaborate

View File

@ -1,60 +0,0 @@
# Take notes on mobile phones
This #recipe offers solutions to taking Foam notes on the go.
For the time being we have decided to not build a mobile app, but rely on third parties (see [[build-vs-assemble]]).
The most promising options are:
### [GitJournal](https://gitjournal.io/)
Pros
- Open source
- Already a usable solution.
- Provides functionality to edit, create, and browser markdown files.
- Support journal mode, todo lists, and free writing
- Syncs to GitHub repo
- Supports Wikilinks
- Supports Backlinks
- Developer is happy to prioritize Foam compatibility
Cons
- Doesn't generate link reference lists (but this is ok, since [[workspace-janitor]] as a GitHub action can solve this)
- Not as sleek as Apple/Google notes, some keyboard state glitching on Android, etc.
- Lack of control over roadmap. Established product with a paid plan, so may not be open to Foam-supportive changes and additions that don't benefit most users.
Verdict: Good. By far best effort/outcome ratio would be to help improve GitJournal rather than building a [bespoke mobile app](#bespoke-mobile-app-for-foam).
### GitHub Codespaces
Pros
- Works out of the box just like the desktop app
Cons
- not generally available quite yet
- [Pricing](https://docs.github.com/en/free-pro-team@latest/github/developing-online-with-codespaces/about-billing-for-codespaces)
For a quick demo, see <https://www.youtube.com/watch?v=KI5m4Uy8_4I>.
Verdict: Good. Pricing should be reasonable for taking notes on the fly. Harder to assess for people who would constantly use Foam from mobile phone.
## Bespoke mobile app for Foam
Given we already have a solution, why would we spend time and effort building a bespoke mobile app?
- Taking notes on the go is a key part of a good note taking process, and the process should feel effortless
- Having a custom app could help us support key user workflows in a more Foam-specific manner
If such an app was worth building, it would have to have the following features:
- Instant loading and syncing for quick notes
- Sleek, simple, beautifully designed user experience.
- Ability to search and navigate forward links and back links (only in paid GitJournal version)
- Killer feature that makes it the best note taking tool for Foam (?)
Given the effort vs reward ratio, it's a low priority for core team, but if someone wants to work on this, we can provide support! Talk to us on the #mobile-apps channel on [Foam Discord](https://foambubble.github.io/join-discord/w).

6
finance.md Normal file
View File

@ -0,0 +1,6 @@
# finance
## purchases
* https://www.etsy.com/your/purchases
* https://www.ebay.com/mye/myebay/purchase?page=1&q=wizard&mp=purchase-search-module-v2&type=v2&pg=purchase

259
foam_sync.ps1 Normal file
View File

@ -0,0 +1,259 @@
#Requires -Version 5.1
[CmdletBinding()]
param ()
Set-StrictMode -Version 3.0
$scriptPath = $MyInvocation.MyCommand.Path
$scriptDir = Split-Path -Path $scriptPath -Parent
$logDir = Join-Path -Path $scriptDir -ChildPath ".logs"
$logName = "foam_sync.log"
$logFilePath = Join-Path -Path $logDir -ChildPath $logName
$scriptName = (Get-Item $scriptPath).Name
# --- Task Setup ---
$taskName = 'FoamGitSync'
$taskDescription = "Periodically synchronizes the Git repository at $scriptDir using $scriptName."
$taskExecute = 'c:\windows\system32\conhost.exe'
$taskArguments = "--headless powershell.exe -WindowStyle Hidden -NoProfile -NonInteractive -ExecutionPolicy Bypass -File $scriptPath -Verbose"
$frequencyMinutes = 2
$timeLimitSeconds = 30
if (-not (Test-Path -Path $logDir)) {
New-Item -ItemType Directory -Path $logDir -Force | Out-Null
}
Start-Transcript -Path $logFilePath -IncludeInvocationHeader -Force
try {
Write-Verbose "Script: $scriptName at $scriptPath"
Write-Verbose "Repository directory: $scriptDir"
Write-Verbose "Sync frequency: Every $frequencyMinutes minutes"
Write-Verbose "Log file: $logFilePath"
# Run as the user who executes this script.
$taskPrincipal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive
$repetitionInterval = New-TimeSpan -Minutes $frequencyMinutes
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval $repetitionInterval
$action = New-ScheduledTaskAction -Execute $taskExecute -Argument $taskArguments
$settings = New-ScheduledTaskSettingsSet -ExecutionTimeLimit $(New-TimeSpan -Seconds $timeLimitSeconds)
Write-Verbose "Task name: $taskName"
Write-Verbose "Description: $taskDescription"
Write-Verbose "Execute: $taskExecute"
Write-Verbose "Arguments: $taskArguments"
Write-Verbose "Frequency: $frequencyMinutes minutes"
Write-Verbose "Time limit: $timeLimitSeconds seconds"
Write-Verbose "Trigger: $trigger"
Write-Verbose "Action: $action"
Write-Verbose "Principal: $taskPrincipal"
Write-Verbose "Settings: $settings"
# Check and configure the scheduled task
try {
$existingTask = Get-ScheduledTask -TaskName $taskName -ErrorAction SilentlyContinue
if ($existingTask) {
Write-Verbose "Scheduled task '$taskName' already exists. Checking configuration..."
$currentTrigger = $existingTask.Triggers[0]
$currentAction = $existingTask.Actions[0]
# Check Trigger
Write-Verbose "Checking trigger..."
$triggerMatches = $false
if ($currentTrigger -is [Microsoft.Management.Infrastructure.CimInstance] `
-and $currentTrigger.Repetition.Interval -eq $trigger.Repetition.Interval) {
$triggerMatches = $true
}
else {
Write-Warning "trigger does not match:`n $(Compare-Object -IncludeEqual -ReferenceObject $currentTrigger -DifferenceObject $trigger)"
}
# Check Action
Write-Verbose "Checking action..."
$actionMatches = $false
if ($currentAction -is [Microsoft.Management.Infrastructure.CimInstance] `
-and $currentAction.Execute -eq $taskExecute `
-and $currentAction.Arguments -eq $taskArguments) {
$actionMatches = $true
}
else {
Write-Warning "action does not match:"
Write-Warning " Current action: $($currentAction.Execute) $($currentAction.Arguments)"
Write-Warning " Expected action: $taskExecute $taskArguments"
}
# Check Principal
Write-Verbose "Checking principal..."
$principalMatches = ($existingTask.Principal.UserId -eq $taskPrincipal.UserId)
# Check Settings (specifically ExecutionTimeLimit for this change)
$settingsMatch = $false
if ($existingTask.Settings.ExecutionTimeLimit -eq $settings.ExecutionTimeLimit) {
$settingsMatch = $true
}
else {
Write-Warning "settings do not match: want $($settings.ExecutionTimeLimit), got $($existingTask.Settings.ExecutionTimeLimit)"
}
if ($triggerMatches -and $actionMatches -and $principalMatches -and $settingsMatch) {
Write-Verbose "Scheduled task '$taskName' is already correctly configured."
}
else {
Write-Verbose "Scheduled task '$taskName' configuration differs."
Write-Verbose "`$triggerMatches: $triggerMatches, `$actionMatches: $actionMatches, `$principalMatches: $principalMatches, `$settingsMatch: $settingsMatch"
Write-Verbose "Attempting to update in-place..."
try {
Set-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -Settings $settings -Principal $taskPrincipal -ErrorAction Stop
Write-Verbose "Scheduled task '$taskName' updated successfully."
}
catch {
Write-Warning "Failed to update scheduled task '$taskName' in-place. Error: $($_.Exception.Message)"
Write-Warning "The task remains in its previous state. Manual intervention may be required or re-run with Administrator privileges."
}
}
}
else {
Write-Verbose "Creating scheduled task '$taskName'..."
try {
Register-ScheduledTask -TaskName $taskName -Description $taskDescription -Principal $taskPrincipal -Trigger $trigger -Action $action -Settings $settings -ErrorAction Stop
Write-Verbose "Scheduled task '$taskName' created successfully."
}
catch {
Write-Warning "Failed to create scheduled task '$taskName'. Error: $($_.Exception.Message)"
Write-Warning "You may need to run this script as Administrator."
}
}
}
catch {
# This outer catch is for unexpected errors, e.g., if Get-ScheduledTask had -ErrorAction Stop
Write-Warning "An unexpected error occurred during scheduled task setup for '$taskName'. Error: $($_.Exception.Message)"
}
# --- Git Operations ---
Write-Information "Navigating to repository: $scriptDir"
try {
Set-Location -Path $scriptDir -ErrorAction Stop
}
catch {
Write-Error "Unable to find repository at $scriptDir. Exiting script."
exit 1
}
Write-Information "Staging all changes with 'git add .'"
git add .
if ($LASTEXITCODE -ne 0) {
Write-Warning "'git add .' command failed with exit code $LASTEXITCODE."
}
Write-Information "Checking for staged changes with 'git diff --staged --quiet'..."
git diff --staged --quiet
$changesStaged = ($LASTEXITCODE -ne 0)
if ($changesStaged) {
Write-Information "Staged changes detected. Creating commit..."
$commitMessage = "$scriptName ($($env:COMPUTERNAME)) $(Get-Date -Format 'yyyy-MM-ddTHH:mm:ssZ')"
Write-Information "Commit message: $commitMessage"
git commit -m $commitMessage
if ($LASTEXITCODE -ne 0) {
Write-Warning "'git commit' command failed with exit code $LASTEXITCODE."
}
else {
Write-Information "Commit created successfully."
}
}
else {
Write-Information "No relevant changes detected to commit."
Write-Information "Resetting staging area with 'git reset HEAD --quiet'."
git reset HEAD --quiet
}
Write-Information "Updating remote 'origin' with 'git remote update origin --prune'..."
git remote update origin --prune
if ($LASTEXITCODE -ne 0) {
Write-Error "Unable to update remote 'origin'. Exiting script."
exit 1
}
$localCommit = (git rev-parse HEAD 2>$null).Trim()
if ($LASTEXITCODE -ne 0 -or -not $localCommit) { Write-Error "Failed to get local HEAD commit. Exiting script."; exit 1 }
$remoteBranch = "origin/main"
$remoteCommit = (git rev-parse $remoteBranch 2>$null).Trim()
if ($LASTEXITCODE -ne 0 -or -not $remoteCommit) { Write-Error "Failed to get remote '$remoteBranch' commit. Exiting script."; exit 1 }
Write-Information "Local HEAD commit: $localCommit"
Write-Information "Remote '$remoteBranch' commit: $remoteCommit"
if ($localCommit -eq $remoteCommit) {
Write-Information "Local and remote are already in sync."
exit 0
}
$sleepyTime = Get-Random -Minimum 1 -Maximum 15
Write-Information "Local and remote differ. Sleeping for $sleepyTime seconds..."
Start-Sleep -Seconds $sleepyTime
$localCommitAfterSleep = (git rev-parse HEAD 2>$null).Trim()
if ($LASTEXITCODE -ne 0 -or -not $localCommitAfterSleep) { Write-Error "Failed to re-get local HEAD commit. Exiting script."; exit 1 }
$remoteCommitAfterSleep = (git rev-parse $remoteBranch 2>$null).Trim()
if ($LASTEXITCODE -ne 0 -or -not $remoteCommitAfterSleep) { Write-Error "Failed to re-get remote '$remoteBranch' commit. Exiting script."; exit 1 }
if ($localCommitAfterSleep -eq $remoteCommitAfterSleep) {
Write-Information "Local and remote became synchronized during sleep."
exit 0
}
$localCommit = $localCommitAfterSleep
$remoteCommit = $remoteCommitAfterSleep
Write-Information "Proceeding with sync logic..."
git merge-base --is-ancestor $localCommit $remoteCommit
$localIsAncestorOfRemote = ($LASTEXITCODE -eq 0)
git merge-base --is-ancestor $remoteCommit $localCommit
$remoteIsAncestorOfLocal = ($LASTEXITCODE -eq 0)
if ($localIsAncestorOfRemote) {
Write-Information "Remote '$remoteBranch' is ahead. Pulling with rebase..."
git pull --rebase origin main
if ($LASTEXITCODE -ne 0) { Write-Error "'git pull --rebase' failed. Manual intervention may be required."; exit 1 }
}
elseif ($remoteIsAncestorOfLocal) {
Write-Information "Local HEAD is ahead. Pushing..."
git push origin main
if ($LASTEXITCODE -ne 0) { Write-Error "'git push' failed. Manual intervention may be required."; exit 1 }
}
else {
Write-Information "Local HEAD and remote '$remoteBranch' have diverged."
$remoteTimestampStr = (git log --pretty=format:"%at" -n 1 $remoteBranch 2>$null).Trim()
if ($LASTEXITCODE -ne 0 -or -not $remoteTimestampStr) { Write-Error "Failed to get remote commit timestamp for '$remoteBranch'. Exiting script."; exit 1 }
$remoteTimestamp = [long]$remoteTimestampStr
$localTimestampStr = (git log --pretty=format:"%at" -n 1 HEAD 2>$null).Trim()
if ($LASTEXITCODE -ne 0 -or -not $localTimestampStr) { Write-Error "Failed to get local commit timestamp for HEAD. Exiting script."; exit 1 }
$localTimestamp = [long]$localTimestampStr
Write-Verbose "Local timestamp: $localTimestamp, Remote timestamp: $remoteTimestamp"
if ($remoteTimestamp -gt $localTimestamp) {
Write-Information "Remote is newer. Pulling with rebase, strategy 'theirs'..."
git pull --rebase --strategy recursive --strategy-option theirs origin main
}
else {
Write-Information "Local is newer or same age. Pulling with rebase, strategy 'ours'..."
git pull --rebase --strategy recursive --strategy-option ours origin main
}
if ($LASTEXITCODE -ne 0) { Write-Error "Rebase during divergence failed. Manual intervention may be required."; exit 1 }
Write-Information "Pushing changes after rebase..."
git push origin main
if ($LASTEXITCODE -ne 0) { Write-Error "'git push' after rebase failed. Manual intervention may be required."; exit 1 }
}
Write-Information "Synchronization process completed successfully."
exit 0
}
finally {
Stop-Transcript
}

110
foam_sync.sh Normal file
View File

@ -0,0 +1,110 @@
#!/bin/bash
# debug script
set -x
# These are the only lines that should require updating
frequency_mins=2
# These values are automatically determined based on the scipt path
sync_script=$(readlink -f "${BASH_SOURCE[0]}")
script_dir=$(dirname "$sync_script")
cronjob="*/${frequency_mins} * * * * ${sync_script}"
script_name=$(basename "$sync_script")
# Get current crontab content, suppress error if crontab is empty
current_crontab=$(crontab -l 2>/dev/null)
# Check if the exact cron job already exists using fixed string (-F) and whole line (-x) match
if echo "$current_crontab" | grep -Fxq "$cronjob"; then
echo "${script_name} cron job is already correctly configured."
else
echo "${script_name} cron job needs update or addition."
# Use command grouping to construct the new crontab content:
# 1. List current crontab (or nothing if empty), suppressing errors.
# 2. Filter out any existing lines related to this specific script.
# 3. Echo the desired cron job line.
{ crontab -l 2>/dev/null | grep -v "$sync_script"; echo "$cronjob"; } | crontab -
update_result=$?
if [[ $update_result -eq 0 ]]; then
echo "cron job updated/added successfully."
else
echo "Warning: Failed to update crontab." >&2
fi
fi
# navigate to the repo
cd "${script_dir}" || (echo 'unable to find repo' && exit 1)
# if this is macos, make sure '/usr/local/git/git-google/bin' is in $PATH
if [[ "$OSTYPE" == "darwin"* ]]; then
if ! echo "$PATH" | grep -q "/usr/local/git/git-google/bin"; then
export PATH="/usr/local/git/git-google/bin:$PATH"
fi
fi
# Stage ALL changes, including new files and modifications
git add .
# Check if there are any *meaningful* staged changes (respecting diff filters)
# git diff --staged --quiet exits with 0 if NO differences, 1 if differences exist.
# The '!' negates the exit status, so the 'if' block runs if there ARE differences.
if ! git diff --staged --quiet; then
# Only commit if there are staged changes visible after filtering
echo "Staged changes detected, creating commit..."
# Use -m because we already staged everything with 'git add .'
git commit -m "${script_name} ($(hostname -s)) $(date +"%Y-%m-%dT%H:%M:%SZ")"
else
echo "No relevant changes detected to commit (changes might be filtered)."
# Optional but recommended: Reset the index if the only staged changes were filtered out.
# This prevents the file from showing as "changes staged for commit" on a later 'git status'
# if only the filtered line was changed and staged by 'git add .'.
git reset HEAD --quiet
fi
# make sure we are authenticated with git origin
if ! git remote update origin --prune; then
echo 'unable to authenticate to remote'
exit 1
fi
local_commit=$(git rev-parse HEAD)
remote_commit=$(git rev-parse origin/main)
if [[ "$local_commit" != "$remote_commit" ]]; then
# sleep for a random time between 1-45 seconds to avoid collisions
sleepy_time=$(( ( RANDOM % 45 ) + 1 ))
echo "sleeping for $sleepy_time seconds..."
sleep $sleepy_time
else
echo 'no pending changes to sync, exiting...'
exit 0
fi
# which is newer, our code or the origin?
local_commit=$(git rev-parse HEAD)
remote_commit=$(git rev-parse origin/main)
if [[ "$local_commit" == "$remote_commit" ]]; then
echo "local and remote are in sync"
elif git merge-base --is-ancestor "$local_commit" "$remote_commit"; then
echo "remote is ahead of local"
git pull --rebase origin main
elif git merge-base --is-ancestor "$remote_commit" "$local_commit"; then
echo "local is ahead of remote"
git push origin main
else
echo "local and remote have diverged"
# if remote is newer, use a 'theirs' strategy
if [[ $(git log --pretty=format:"%at" -n 1 origin/main) -gt $(git log --pretty=format:"%at" -n 1 HEAD) ]]; then
echo "remote is newer"
git pull --rebase --strategy recursive --strategy-option theirs origin main
else
echo "local is newer"
git pull --rebase --strategy recursive --strategy-option ours origin main
fi
git push origin main
fi

5
gitea.md Normal file
View File

@ -0,0 +1,5 @@
# gitea
user:pass is `compose:compose` for now, used docker compose template
external access for SSH is `ssh://git@git.hobbithole.org:4222`

16
home improvement.md Normal file
View File

@ -0,0 +1,16 @@
# home improvement
## trailer
* [Trailers - Boulder County](https://bouldercounty.gov/records/motor-vehicle/trailers/)
* https://csp.colorado.gov/services-we-provide/get-a-vin-inspection
*
## hvac
* Fresh air
* [Heat recovery ventilation - Wikipedia](https://en.wikipedia.org/wiki/Heat_recovery_ventilation)
* [Reddit - The heart of the internet](https://www.reddit.com/r/buildingscience/comments/18z9q0w/window_energy_recovery_ventilator_diy/)
* Zones
* [Amazon.com: AC Infinity 8” Backdraft Damper, One-Way Airflow Ducting Insert with Spring-Loaded Folding Blades for 8” Ducting in Range Hoods and Bathrooms Fans : Tools & Home Improvement](https://www.amazon.com/AC-Infinity-Backdraft-Spring-Loaded-Bathrooms/dp/B0842Y637Z/ref=sr_1_8?crid=1PPHHLXZ8LID4&keywords=8%2Bin%2Bspring%2Bloaded%2Bbackdraft%2Bdamper&qid=1640711102&s=hi&sprefix=8in%2Bspring%2Bloaded%2Bbackdraft%2Bdamper%2Ctools%2C76&sr=1-8&th=1)
* [Tamarack TTi-cbd8 8 In. Backdraft Damper - Ceiling Fans - Amazon.com](https://www.amazon.com/Tamarack-TTi-CBD8-Cape-Backdraft-Damper/dp/B008D7L8H6?th=1)

11
homefoam.code-workspace Normal file
View File

@ -0,0 +1,11 @@
{
"folders": [
{
"path": "."
}
],
"settings": {
"foam.edit.linkReferenceDefinitions": "withExtensions",
"gitdoc.enabled": false
}
}

175
homelab.md Normal file
View File

@ -0,0 +1,175 @@
# homelab
* OPNsense firewall: https://opnsense.hh.lan:8443
* 192.168.86.45
* Proxmox virtualization cluster: https://proxmox1.hh.lan
## services
* HomeAssistant home automation
* http://homeassistant.local:8123/
* https://ha.hh.lan
* Frigate NVR (security cameras): https://frigate.local:8971
* Paperless document repository
* https://paperless.hobbithole.org
* https://paperless.hh.lan
### Gitea
* https://git.hobbithole.org
* http://gitea.hh.lan:3000
* SSH key stored in bitwarden
* used `docker-compose-template` VM template
* Moved host `sshd` to `tcp:2222` so gitea container can use `tcp:22`
## things to set up
* Network UPS Tool? (NUT)
* Monitor reservoir levels
* https://dwr.state.co.us/Tools/StationsLite/UNIRESCO?params=STORAGE
* Caddy
* Authentik
* Proxmox backup
* CrashPlan (or other backup service)
* [Proxmox Crashplan](https://nguvu.org/proxmox/proxmox-crashplan-install/)
* https://github.com/nix-community/terraform-nixos/blob/master/examples/hermetic_config/default.tf
* https://spacelift.io/blog/terraform-proxmox-provider#5-run-terraform-to-create-the-vm
* Home auth
* Windows auth
* SSO access to services
* Bitwarden self-hosted org
* [Self-host an Organization](https://bitwarden.com/help/self-host-an-organization/)
* OpenBao (Vault fork) - https://openbao.org/docs/install/
## things to research
* Pangolin
* Suricata
* [Wiki.js](https://js.wiki/)
* Komodo
* https://github.com/moghtech/komodo
* 🦎 a tool to build and deploy software on many servers 🦎
* headscale / tailscale
* [GitHub - juanfont/headscale: An open source, self-hosted implementation of the Tailscale control server](https://github.com/juanfont/headscale)
* [Tailscale · Best VPN Service for Secure Networks](https://tailscale.com/)
### Home auth
## Hardware
* unnamed switch (TODO)
* [Mikrotik CSS318-16G-2S+IN](https://mikrotik.com/product/css318_16g_2s_in#fndtn-downloads)
* SwOS management interface: http://192.168.86.54
* [manual](https://help.mikrotik.com/docs/spaces/SWOS/pages/76415036/CRS3xx+and+CSS326-24G-2S+series+Manual#CRS3xxandCSS32624G2S+seriesManual-LAG)
* proxmox1
* Beelink Mini PC EQi12, Intel Core 1220P(Max 4.4GHz 10C/12T), 16GB DDR4 500GB PCle4.0 SSD Mini Computers,Dual LAN/Wifi6/BT5.2,Dual 4K Display,Built-in Power Supply Office PC
* proxmox2
* Beelink Mini PC EQi12, Intel Core 1220P(Max 4.4GHz 10C/12T), 16GB DDR4 500GB PCle4.0 SSD Mini Computers,Dual LAN/Wifi6/BT5.2,Dual 4K Display,Built-in Power Supply Office PC
* proxmox3
* Beelink Mini PC EQi12, Intel Core 1220P(Max 4.4GHz 10C/12T), 16GB DDR4 500GB PCle4.0 SSD Mini Computers,Dual LAN/Wifi6/BT5.2,Dual 4K Display,Built-in Power Supply Office PC
* frigate
* Beelink EQ14 Mini PC, Intel Twin Lake N150(Up to 3.6GHz) 16GB DDR4 500GB NVMe SSD, 2.5G Dual LAN Mini Computer Supports WiFi6, BT5.2, USB3.2, 4K@60Hz Dual HDMI Display, Home-Server/Network Firewall
## Network
```mermaid
graph TD;
internet((Internet))<-->nest_wifi_pro(Nest Wifi Pro);
nest_wifi_pro<-->mikrotik;
mikrotik<==>LACP(LACP/VLAN trunk);
vlan42("vlan42 (home)");
vlan86("vlan86 (wifi)");
vlan60("vlan60 (work)");
vlan200("vlan200 (services)");
LACP<-->vlan42;
LACP<-->vlan60;
LACP<-->vlan86;
LACP<-->vlan200;
vlan42<-->proxmox_eth0[eth0]<-->proxmox;
vlan42<-->proxmox_eth1[eth1]<-->proxmox;
vlan60<-->proxmox_eth0[eth0]<-->proxmox;
vlan60<-->proxmox_eth1[eth1]<-->proxmox;
vlan86<-->proxmox_eth0[eth0]<-->proxmox;
vlan86<-->proxmox_eth1[eth1]<-->proxmox;
vlan200<-->proxmox_eth0[eth0]<-->proxmox;
vlan200<-->proxmox_eth1[eth1]<-->proxmox;
proxmox<-->bond0<-->vmbr0<-->VMs;
vlan200<-->vault_eth3[eth3]<-->vault;
vlan200<-->vault_eth4[eth4]<-->vault;
```
### DNS
```mermaid
graph LR;
internet((Internet))<-->porkbun;
porkbun<-->hobbithole_org(hobbithole.org);
hobbithole_org<-->opnsense;
opnsense<-->caddy;
caddy<-->vault;
caddy<-->proxmox;
opnsense<-->hh_lan(hh.lan)<-->bind<-->unbound;
unbound<-->vault;
unbound<-->proxmox;
proxmox[proxmox + VMs];
```
* External domain: `hobbithole.org`
* Hosted on SquareSpace, about to move over to PorkBun
* Transfer requested [[2025-06-15]]
* Email forwarding
* gandalf@hobbithole.org --> gibsta@gmail.com
* treasury@hobbithole.org --> hobbitholetreasury@googlegroups.com
* Records
| Host | Type | Priority | TTL | Data |
| -------------- | ----- | -------- | ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| @ | A | N/A | 4 hrs | 66.186.208.83 |
| backup | CNAME | N/A | 4 hrs | hobbithole.org |
| frigate | CNAME | N/A | 4 hrs | hobbithole.org |
| home | CNAME | N/A | 4 hrs | hobbithole.org |
| nestmtx | CNAME | N/A | 4 hrs | hobbithole.org |
| radarr | CNAME | N/A | 4 hrs | hobbithole.org |
| sab | CNAME | N/A | 4 hrs | hobbithole.org |
| sonarr | CNAME | N/A | 4 hrs | hobbithole.org |
| tv | CNAME | N/A | 4 hrs | hobbithole.org |
| vault | CNAME | N/A | 4 hrs | hobbithole.org |
| y3t4fz4ttvom | CNAME | N/A | 4 hrs | gv-3ccjjbudvp5ki7.dv.googlehosted.com |
| @ | MX | N/A | 4 hrs | mxa.mailgun.org |
| @ | MX | N/A | 4 hrs | mxb.mailgun.org |
| @ | TXT | N/A | 4 hrs | v=spf1 include:mailgun.org ~all |
| krs._domainkey | TXT | N/A | 4 hrs | k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDjzUREnJNjiTg2oKAUdaFixMkblPmbiQTW2kinGFIFji16qN50L02DyBxanRz9Z2IK/uhLJ0I4angMTuSr338/ZE6xfjuJIqNMIOw0kgPnxo4qj5HxDiygUSbLHuxMnWzlOddzGgHpytPgpk9gYlw3b2Tt0K5Ym20ie7GaAXv+QIDAQAB |
* Internal domain: `hh.lan`
* Unbound transparent domain --> BIND authoritative domain
* Hosted on OPNsense
*
* hobby domains
* Transferring to Porkbun
* b3n.ooo
* benmiller.xyz
* beepmill.com
### IPAM
* wifi: `192.168.86.0/24`
* home: `192.168.42.0/24`
* services: `192.168.200.0/24`
* work: `172.16.60.0/24`
## Proxmox
### Hosts
* `proxmox1.hh.lan`
* 192.168.200.101
* `proxmox2.hh.lan`
* 192.168.200.102
* `proxmox3.hh.lan`
* 192.168.200.103
[//begin]: # "Autogenerated link references for markdown compatibility"
[2025-06-15]: 2025-06-15.md "2025-06-15"
[//end]: # "Autogenerated link references"

BIN
image-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

31
keyboards.md Normal file
View File

@ -0,0 +1,31 @@
# keyboards
* [Cosmos Keyboard](https://ryanis.cool/cosmos/) - keyboard customizer
* [First attempt](https://ryanis.cool/cosmos/beta#cm:Cp8BChUSBRCAbyAnEgASABIAOB5AgIaKwAcKGRIFEIBjICcSABIAEgMQsDsSAxCwazgKQAAKHBIFEIBXICcSABIAEgMQsC8SAxCwXzgJQIDwvAIKERIFEIBLICcSABIAEgA4HUAAChESBRCAPyAnEgASABIAODFAAAoYEgIgJxIAEgQQoIAKEgIQMDgyQICGisAHGABA6IWgrvBVSNyMq9ABCmcKChIFEEBQ8gI4wAwKCxIGEMCAAiAoOKgUCgkSBBBAICg4kBwKCxIGEEAgKEAAOPgjChgSEhBAIAAwyAFAgICADUiAgLCsATAWOAAYCiIKCMgBEMgBGAAgAEDbkaSc8DdIhI+U1qB4CpUBCnYSFgiAMBDAgAIgAECMhdiWEEiNhYC43Q0SEwiAMBBAIABAmcSWCEiNhYC43Q0SDyAAQK6F3ANImYmIntDcEBIQIABA4YPY0AFI6ZOgl5DwERIPIABA0OKPOEiDj6CXkL0SEhEgAEDvhbyXsAFI4Z3QjbDYEjgAGAMiCgjIARDIARgAIABAno3MrPAzSKap3MaAtAgYhCCCAQIEAmAD)
* Svalboard
* https://svalboard.com/
* Characorder
* Control panel: https://charachorder.io/
* Practice: https://www.iq-eq.io/#/
*
## Custom Build 1
* Dactyl Manuform style built with Cosmos Keyboard Configurator
* https://ryanis.cool/cosmos/beta#cm:Cn4KDxIFEJBBIBMSABIAODFAAAoPEgUQkE0gExIAEgA4HUAAChsSBRCQWSATEgASAxCwLxIDELBfOAlAgPCG+AEKGRIFEJBlIBMSABIDELA7EgMQsGs4CkCAgAwKExIFEJBxIBMSABIAOB5AgJqL0AIYAEDqhaCu8FVI3Iyr0AEKaAoXEhMQwIACQICAmAJIwpmglZC8AVBDOAgKFRIQEEBAgIAgSNCVgN2Q9QNQC1CeAgoUEhAQQECAgPgBSOaZ/KeQC1BXUH8KA1CCAhgCIgoIyAEQyAEYACAAQMuL/J/QMUitkdyNwZMGCngKDxIFEJA1IBMSABIAODJAAAoPEgUQkCkgExIAEgA4HkAAChgSBRCQHSATEgASABIDELBfOApAgISK2AIKFhIFEJARIBMSABIAEgMQsGs4CUCA6DQKExIFEJAFIBMSABIAOB1AgJqOsAMYAUDphaCu8FVI3IqryAEKaQoXEhMQwIACQICAmAJIwpmclaC8AVBDOAcKFRIQEEBAgIAgSNCV/Nyg9QNQC1CdAgoVEhAQQECAgPgBSOaZgKygC1BXUIABCgNQgQIYAyIKCMgBEMgBGAAgAEDMi/yf0DFIrZHgjbGTBiIDIK4NggEKAJ4FyAFllwEBAlhCYANoAPoBCRCIDhg8KGQoMg==
* https://www.printables.com/model/158559-handwire-hot-swap-socket-for-mechanical-keyboard-s
* `G:\My Drive\making\files\cosmotyl`
### Wiring
![Alt text](image.png)
![Alt text](image-1.png)
* https://ryanis.cool/cosmos/docs/qmk-rp2040/#wire-the-keyboard
*
## Training
* https://typecelerate.com/

View File

@ -0,0 +1,29 @@
{
"folders": [
{
"path": "../local-ai-beepmill"
}
],
"settings": {
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#982a11",
"activityBar.background": "#982a11",
"activityBar.foreground": "#e7e7e7",
"activityBar.inactiveForeground": "#e7e7e799",
"activityBarBadge.background": "#031d08",
"activityBarBadge.foreground": "#e7e7e7",
"commandCenter.border": "#e7e7e799",
"sash.hoverBorder": "#982a11",
"statusBar.background": "#6a1d0c",
"statusBar.foreground": "#e7e7e7",
"statusBarItem.hoverBackground": "#982a11",
"statusBarItem.remoteBackground": "#6a1d0c",
"statusBarItem.remoteForeground": "#e7e7e7",
"titleBar.activeBackground": "#6a1d0c",
"titleBar.activeForeground": "#e7e7e7",
"titleBar.inactiveBackground": "#6a1d0c99",
"titleBar.inactiveForeground": "#e7e7e799"
},
"peacock.color": "#6a1d0c"
}
}

81
making.md Normal file
View File

@ -0,0 +1,81 @@
# making
## Collections
* https://makerworld.com/en/@beepmill/collections
* https://www.printables.com/@beepmill_1805142/collections
* [Gumroad](https://gumroad.com/library)
* https://cults3d.com/en/design-collections
* https://www.thingiverse.com/beepmill/collections
## Systems
* [Multiboard](https://multiboard.io)
* [NODE DOJO](https://www.node-dojo.com/)
* [Rebox Supporter](https://gumroad.com/d/2138fb54a49e2207e4f43c89d7e64d60)
* [Underware 2.0 Infinite Cable Management Hands on Katie](https://handsonkatie.com/underware-2-0-the-made-to-measure-collection/)
* [Underware 2.0 - Infinite Cable Management!](https://makerworld.com/en/models/783010-underware-2-0-infinite-cable-management#profileId-808979)
*
## Things to design
* Frit tray ![Image](./dd75f62871a045217d36e3156fa2fc7e.jpg)
* ![Image](./a35a74314775063c5d51232552b5cd8c.jpg)
* 5gal water bottle opal extension
* https://a.co/d/blahX4M
## Things to print
* https://thangs.com/designer/ForgeCore
* Desk plants
* Resin teeth #booloumud
* [Modern Gridifinity Case](https://www.printables.com/model/894202-modern-gridfinity-case)
* [Space Efficient Socket Holders - Gridfinity](https://www.printables.com/model/1101988-space-efficient-socket-holders-gridfinity/files)
* Printing metric [[2025-06-15]]
* Printing imperial [[2025-06-17]]
* [AMS Driven Rear Roller replacement](https://makerworld.com/en/models/80150-ams-driven-rear-roller-replacement#profileId-85113)
* Zip bag holder for spare parts etc
* Multiboard ziplog bag dispensers
* "Yours and Theirs" phone holder for RAV4
* Cupholder for RAV4
## Things that I've printed
* [[2025-07-01]] - [Rubber Duck straw cap for Stanley tumbler](https://makerworld.com/en/models/495619-rubber-duck-straw-cap-for-stanley-tumbler#profileId-409800)
* [[2025-06-30]] - https://www.printables.com/model/836037-earring-holder-earring-display-stand-t-shape
* [[2025-06-19]] - [Anti-Stress Spikeroll by Paul_Drosser - Thingiverse](https://www.thingiverse.com/thing:4575204)
* [[2025-06-18]] - [Lid Riser for Bambu Lab AMS](https://www.printables.com/model/602705-ams-lid-riser-for-bambu-lab-ams/comments)
* [[2025-06-18]] - [Bambu Lab AMS Ultimate Front Rollers](https://makerworld.com/en/models/452104-bambu-lab-ams-ultimate-front-rollers#profileId-359257)
* [[2025-06-15]] - https://makerworld.com/en/models/192760-multiboard-pliers-holder#profileId-213102
## Calibration guides
* [Ellis Print Tuning Guide](https://ellis3dp.com/Print-Tuning-Guide/)
* [J3DTech Guide to Resin 3D Printing - Google Docs](https://docs.google.com/document/d/1aoMSE6GBGMcoYXNGfPP9s_Jg8vr1wQmmZuvqP3suago/edit?tab=t.0#heading=h.gjdgxs)
* [Printer Calibration Lychee Documentation](https://doc.mango3d.io/doc/printer-calibration/)
## Profiles
### Anycubic Photon M3 Plus
* Manual: https://paperless.hobbithole.org/share/fyqLOQ64q0UQBWwwI1RXRUvalNPpzrehYPkKax0ihZkErAmQwu
#### Build plate leveling
1. With resin tub and resin in, loosen build plate
2. Press Home
3. Press down with medium pressure, tighten in X pattern
4. Set `Z=0`
#### Standard Resin + White 50um
* Layer thickness
[//begin]: # "Autogenerated link references for markdown compatibility"
[2025-06-15]: 2025-06-15.md "2025-06-15"
[2025-06-17]: 2025-06-17.md "2025-06-17"
[2025-07-01]: 2025-07-01.md "2025-07-01"
[2025-06-30]: 2025-06-30.md "2025-06-30"
[2025-06-19]: 2025-06-19.md "2025-06-19"
[2025-06-18]: 2025-06-18.md "2025-06-18"
[//end]: # "Autogenerated link references"

5
opentofu.md Normal file
View File

@ -0,0 +1,5 @@
# opentofu
* https://search.opentofu.org/provider/bpg/proxmox/latest
* http://gitea.hh.lan:3000/ben/homelab_tofu
* GCS backend: [`gs://deskbound-mournful-synthetic4`](https://console.cloud.google.com/storage/browser/deskbound-mournful-synthetic4)

11
pool.md Normal file
View File

@ -0,0 +1,11 @@
---
created: 2025-06-28T14:27:34-06:00
modified: 2025-06-28T14:30:15-06:00
---
# pool
# upgrades TODO
* valve upgrade, pvc
* https://youtu.be/4gmdtYiSq9g?si=aD4ZbZJyZU8ngQHE

View File

@ -0,0 +1,29 @@
{
"folders": [
{
"path": "../shopify_theme"
}
],
"settings": {
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#accc6e",
"activityBar.background": "#accc6e",
"activityBar.foreground": "#15202b",
"activityBar.inactiveForeground": "#15202b99",
"activityBarBadge.background": "#3a81a5",
"activityBarBadge.foreground": "#e7e7e7",
"commandCenter.border": "#15202b99",
"sash.hoverBorder": "#accc6e",
"statusBar.background": "#96bf48",
"statusBar.foreground": "#15202b",
"statusBarItem.hoverBackground": "#7a9d37",
"statusBarItem.remoteBackground": "#96bf48",
"statusBarItem.remoteForeground": "#15202b",
"titleBar.activeBackground": "#96bf48",
"titleBar.activeForeground": "#15202b",
"titleBar.inactiveBackground": "#96bf4899",
"titleBar.inactiveForeground": "#15202b99"
},
"peacock.color": "#96bf48"
}
}

22
to watch.md Normal file
View File

@ -0,0 +1,22 @@
---
created: 2025-08-20T11:26:28-06:00
modified: 2025-09-25T21:29:44-06:00
---
# to watch
- [x] Department Q
- [ ] Superman
- [ ] Thunderbolts
- [ ] Alien Earth
- [ ] Honey Don't
- [ ] Loki season 2
- [ ] The Naked Gun
- [ ] Decameron
- [ ] The Death of Stalin
- [ ] Love Lies Bleeding
- [ ] Fleabag
- [ ] The Midnight Hour
- [ ] Paprika
- [ ] What We Do In The Shadows
- [ ] Bugonia