diff options
| author | 2026-02-02 00:35:54 +0300 | |
|---|---|---|
| committer | 2026-02-02 00:35:54 +0300 | |
| commit | bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9 (patch) | |
| tree | 27fff9c802dcdd22960bb2e776e58278000d0364 /content/posts | |
| parent | Поправил шаблон (diff) | |
| download | blog-bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9.tar.gz blog-bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9.tar.bz2 blog-bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9.tar.xz blog-bfdd73d7324a4f66a16f55d4fb064b0ff08d40e9.zip | |
Большая чистка блога
Diffstat (limited to '')
| -rw-r--r-- | content/posts/2021-02-13-jsonnet/index.md (renamed from content/posts/2021-02-13-jsonnet.md) | 14 | ||||
| -rw-r--r-- | content/posts/2021-02-13-jsonnet/jsonnet_logo.webp (renamed from content/posts/files/2021-02-13-jsonnet_logo.webp) | bin | 47006 -> 47006 bytes | |||
| -rw-r--r-- | content/posts/2021-05-13-цифровая-гигиена/index.md (renamed from content/posts/2021-05-13-цифровая-гигиена.md) | 16 | ||||
| -rw-r--r-- | content/posts/2022-05-30-возрождение/index.md (renamed from content/posts/2022-05-30-возрождение.md) | 0 | ||||
| -rw-r--r-- | content/posts/2022-05-31-golang-1/index.md (renamed from content/posts/2022-05-31-golang-1.md) | 20 | ||||
| -rw-r--r-- | content/posts/2023-01-12-gitrepo.md | 167 | ||||
| -rw-r--r-- | content/posts/2023-01-12-gitrepo/index.md | 166 | ||||
| -rw-r--r-- | content/posts/2023-05-26-gist/index.md (renamed from content/posts/2023-05-26-gist.md) | 11 | ||||
| -rw-r--r-- | content/posts/2023-07-24-tls/index.md (renamed from content/posts/2023-07-24-tls.md) | 20 | ||||
| -rw-r--r-- | content/posts/2023-12-29-переезд/index.md (renamed from content/posts/2023-12-29-переезд.md) | 12 | ||||
| -rw-r--r-- | content/posts/2024-01-03-архив/index.md (renamed from content/posts/2024-01-03-архив.md) | 8 | ||||
| -rw-r--r-- | content/posts/2024-02-21-tls/index.md (renamed from content/posts/2024-02-21-tls.md) | 58 | ||||
| -rw-r--r-- | content/posts/2024-06-01-вам-не-нужны-пуши/index.md (renamed from content/posts/2024-06-01-вам-не-нужны-пуши.md) | 2 | ||||
| -rw-r--r-- | content/posts/2024-06-02-книги-1/index.md (renamed from content/posts/2024-06-02-книги-1.md) | 0 | ||||
| -rw-r--r-- | content/posts/2024-07-13-joplin/index.md (renamed from content/posts/2024-07-13-joplin.md) | 14 | ||||
| -rw-r--r-- | content/posts/2024-07-13-joplin/joplin.webp (renamed from content/posts/files/2024-07-13-joplin_joplin.webp) | bin | 111506 -> 111506 bytes | |||
| -rw-r--r-- | content/posts/2024-07-21-bbs/index.md (renamed from content/posts/2024-07-21-bbs.md) | 0 | ||||
| -rw-r--r-- | content/posts/2024-09-26-hugo-wordpress/index.md (renamed from content/posts/2024-09-26-hugo-wordpress.md) | 0 | ||||
| -rw-r--r-- | content/posts/2024-10-06-цитатник-рунета/index.md (renamed from content/posts/2024-10-06-цитатник-рунета.md) | 14 | ||||
| -rw-r--r-- | content/posts/2024-10-06-цитатник-рунета/цитатник-рунета_bash_org.webp (renamed from content/posts/files/2024-10-06-цитатник-рунета_bash_org.webp) | bin | 20774 -> 20774 bytes | |||
| -rw-r--r-- | content/posts/2024-10-17-книги-2/Rama16wiki.webp (renamed from content/posts/files/2024-10-17-книги-2_Rama16wiki.webp) | bin | 44726 -> 44726 bytes | |||
| -rw-r--r-- | content/posts/2024-10-17-книги-2/index.md (renamed from content/posts/2024-10-17-книги-2.md) | 10 | ||||
| -rw-r--r-- | content/posts/2024-11-15-hugo/index.md (renamed from content/posts/2024-11-15-hugo.md) | 0 | ||||
| -rw-r--r-- | content/posts/2024-11-17-obsidian/index.md (renamed from content/posts/2024-11-17-obsidian.md) | 80 | ||||
| -rw-r--r-- | content/posts/2024-11-17-obsidian/logo.webp (renamed from content/posts/files/2024-11-17-obsidian_img/logo.webp) | bin | 9244 -> 9244 bytes | |||
| -rw-r--r-- | content/posts/2024-11-17-obsidian/publish.webp (renamed from content/posts/files/2024-11-17-obsidian_img/publish.webp) | bin | 23110 -> 23110 bytes | |||
| -rw-r--r-- | content/posts/2024-11-17-obsidian/templater.webp (renamed from content/posts/files/2024-11-17-obsidian_img/templater.webp) | bin | 17140 -> 17140 bytes | |||
| -rw-r--r-- | content/posts/2024-11-27-hyperlocality/90e.webp (renamed from content/posts/files/2024-11-27-hyperlocality_img/90e.webp) | bin | 71910 -> 71910 bytes | |||
| -rw-r--r-- | content/posts/2024-11-27-hyperlocality/braindance.webp (renamed from content/posts/files/2024-11-27-hyperlocality_img/braindance.webp) | bin | 92740 -> 92740 bytes | |||
| -rw-r--r-- | content/posts/2024-11-27-hyperlocality/camp.webp (renamed from content/posts/files/2024-11-27-hyperlocality_img/camp.webp) | bin | 115704 -> 115704 bytes | |||
| -rw-r--r-- | content/posts/2024-11-27-hyperlocality/in-internet.webp (renamed from content/posts/files/2024-11-27-hyperlocality_img/in-internet.webp) | bin | 136578 -> 136578 bytes | |||
| -rw-r--r-- | content/posts/2024-11-27-hyperlocality/index.md (renamed from content/posts/2024-11-27-hyperlocality.md) | 46 | ||||
| -rw-r--r-- | content/posts/2024-11-29-hobbies/hobbies_dozor.webp (renamed from content/posts/files/2024-11-29-hobbies_dozor.webp) | bin | 101246 -> 101246 bytes | |||
| -rw-r--r-- | content/posts/2024-11-29-hobbies/index.md (renamed from content/posts/2024-11-29-hobbies.md) | 2 | ||||
| -rw-r--r-- | content/posts/2024-12-12-guessr/guessr_logo.webp (renamed from content/posts/files/2024-12-12-guessr_logo.webp) | bin | 112508 -> 112508 bytes | |||
| -rw-r--r-- | content/posts/2024-12-12-guessr/index.md (renamed from content/posts/2024-12-12-guessr.md) | 88 | ||||
| -rw-r--r-- | content/posts/2024-12-15-conditional-operator-go/conditional-operator-go_ternary.webp (renamed from content/posts/files/2024-12-15-conditional-operator-go_ternary.webp) | bin | 7408 -> 7408 bytes | |||
| -rw-r--r-- | content/posts/2024-12-15-conditional-operator-go/index.md (renamed from content/posts/2024-12-15-conditional-operator-go.md) | 12 | ||||
| -rw-r--r-- | content/posts/2024-12-15-posse/index.md (renamed from content/posts/2024-12-15-posse.md) | 20 | ||||
| -rw-r--r-- | content/posts/2024-12-15-posse/posse_posse.webp (renamed from content/posts/files/2024-12-15-posse_posse.webp) | bin | 60800 -> 60800 bytes | |||
| -rw-r--r-- | content/posts/2024-12-17-infra/index.md (renamed from content/posts/2024-12-17-infra.md) | 65 | ||||
| -rw-r--r-- | content/posts/2024-12-17-infra/infra_cover.webp (renamed from content/posts/files/2024-12-17-infra_cover.webp) | bin | 532556 -> 532556 bytes | |||
| -rw-r--r-- | content/posts/2024-12-30-irc/index.md (renamed from content/posts/2024-12-30-irc.md) | 20 | ||||
| -rw-r--r-- | content/posts/2024-12-30-irc/irc_logo.webp (renamed from content/posts/files/2024-12-30-irc_logo.webp) | bin | 10130 -> 10130 bytes | |||
| -rw-r--r-- | content/posts/2024-12-31-new-year/img/1.webp (renamed from content/posts/files/2024-12-31-new-year_img/1.webp) | bin | 141164 -> 141164 bytes | |||
| -rw-r--r-- | content/posts/2024-12-31-new-year/img/2.webp (renamed from content/posts/files/2024-12-31-new-year_img/2.webp) | bin | 212740 -> 212740 bytes | |||
| -rw-r--r-- | content/posts/2024-12-31-new-year/img/2025.webp (renamed from content/posts/files/2024-12-31-new-year_img/2025.webp) | bin | 163920 -> 163920 bytes | |||
| -rw-r--r-- | content/posts/2024-12-31-new-year/img/3.webp (renamed from content/posts/files/2024-12-31-new-year_img/3.webp) | bin | 446502 -> 446502 bytes | |||
| -rw-r--r-- | content/posts/2024-12-31-new-year/img/4.webp (renamed from content/posts/files/2024-12-31-new-year_img/4.webp) | bin | 146032 -> 146032 bytes | |||
| -rw-r--r-- | content/posts/2024-12-31-new-year/img/5.webp (renamed from content/posts/files/2024-12-31-new-year_img/5.webp) | bin | 190524 -> 190524 bytes | |||
| -rw-r--r-- | content/posts/2024-12-31-new-year/index.md (renamed from content/posts/2024-12-31-new-year.md) | 30 | ||||
| -rw-r--r-- | content/posts/2025-04-05-tabs-or-spaces/index.md (renamed from content/posts/2025-04-05-tabs-or-spaces.md) | 56 | ||||
| -rw-r--r-- | content/posts/2025-05-19-nxpcms-2/index.md (renamed from content/posts/2025-05-19-nxpcms-2.md) | 2 | ||||
| -rw-r--r-- | content/posts/2025-05-19-nxpcms/index.md (renamed from content/posts/2025-05-19-nxpcms.md) | 31 | ||||
| -rw-r--r-- | content/posts/2025-06-08-my-setup/index.md | 20 | ||||
| -rw-r--r-- | content/posts/2025-08-02-meshtastic/index.md (renamed from content/posts/2025-08-02-meshtastic.md) | 10 | ||||
| -rw-r--r-- | content/posts/2025-08-02-meshtastic/tbeam.jpg (renamed from content/posts/files/meshtastic_img/tbeam.jpg) | bin | 269445 -> 269445 bytes | |||
| -rw-r--r-- | content/posts/2025-08-02-meshtastic/tbeam.webp (renamed from content/posts/files/meshtastic_img/tbeam.webp) | bin | 116662 -> 116662 bytes | |||
| -rw-r--r-- | content/posts/2025-08-05-lets-code-3d/1.jpg (renamed from content/posts/files/lets-code-3d_img/1.jpg) | bin | 86020 -> 86020 bytes | |||
| -rw-r--r-- | content/posts/2025-08-05-lets-code-3d/2.jpg (renamed from content/posts/files/lets-code-3d_img/2.jpg) | bin | 58451 -> 58451 bytes | |||
| -rw-r--r-- | content/posts/2025-08-05-lets-code-3d/3.png (renamed from content/posts/files/lets-code-3d_img/3.png) | bin | 108360 -> 108360 bytes | |||
| -rw-r--r-- | content/posts/2025-08-05-lets-code-3d/4.jpg (renamed from content/posts/files/lets-code-3d_img/4.jpg) | bin | 75461 -> 75461 bytes | |||
| -rw-r--r-- | content/posts/2025-08-05-lets-code-3d/index.md (renamed from content/posts/2025-08-05-lets-code-3d.md) | 56 | ||||
| -rw-r--r-- | content/posts/2025-08-05-lets-code-3d/lets-code-3d_result.stl (renamed from content/posts/files/lets-code-3d_result.stl) | bin | 3684 -> 3684 bytes | |||
| -rw-r--r-- | content/posts/2025-08-05-lets-code-3d/lets-code-3d_source.scad (renamed from content/posts/files/lets-code-3d_source.scad) | 0 | ||||
| -rw-r--r-- | content/posts/2025-08-09-makeup-organizer/1.png (renamed from content/posts/files/makeup-organizer_img/1.png) | bin | 180919 -> 180919 bytes | |||
| -rw-r--r-- | content/posts/2025-08-09-makeup-organizer/2.png (renamed from content/posts/files/makeup-organizer_img/2.png) | bin | 354046 -> 354046 bytes | |||
| -rw-r--r-- | content/posts/2025-08-09-makeup-organizer/3.png (renamed from content/posts/files/makeup-organizer_img/3.png) | bin | 115406 -> 115406 bytes | |||
| -rw-r--r-- | content/posts/2025-08-09-makeup-organizer/index.md (renamed from content/posts/2025-08-09-makeup-organizer.md) | 16 | ||||
| -rw-r--r-- | content/posts/2025-08-09-makeup-organizer/makeup-organizer_organizer.tar.zst (renamed from content/posts/files/makeup-organizer_organizer.tar.zst) | bin | 660078 -> 660078 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/1.webp (renamed from content/posts/files/2025-travel-1_img/1.webp) | bin | 1307382 -> 1307382 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/10.webp (renamed from content/posts/files/2025-travel-1_img/10.webp) | bin | 1024096 -> 1024096 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/11.webp (renamed from content/posts/files/2025-travel-1_img/11.webp) | bin | 1031876 -> 1031876 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/12.webp (renamed from content/posts/files/2025-travel-1_img/12.webp) | bin | 373748 -> 373748 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/13.webp (renamed from content/posts/files/2025-travel-1_img/13.webp) | bin | 574476 -> 574476 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/14.webp (renamed from content/posts/files/2025-travel-1_img/14.webp) | bin | 385098 -> 385098 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/15.webp (renamed from content/posts/files/2025-travel-1_img/15.webp) | bin | 381654 -> 381654 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/16.webp (renamed from content/posts/files/2025-travel-1_img/16.webp) | bin | 2601414 -> 2601414 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/17.webp (renamed from content/posts/files/2025-travel-1_img/17.webp) | bin | 3254752 -> 3254752 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/18.webp (renamed from content/posts/files/2025-travel-1_img/18.webp) | bin | 1640240 -> 1640240 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/19.webp (renamed from content/posts/files/2025-travel-1_img/19.webp) | bin | 2578076 -> 2578076 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/2.webp (renamed from content/posts/files/2025-travel-1_img/2.webp) | bin | 1660606 -> 1660606 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/20.webp (renamed from content/posts/files/2025-travel-1_img/20.webp) | bin | 3858586 -> 3858586 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/21.webp (renamed from content/posts/files/2025-travel-1_img/21.webp) | bin | 4400828 -> 4400828 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/22.webp (renamed from content/posts/files/2025-travel-1_img/22.webp) | bin | 2109710 -> 2109710 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/23.webp (renamed from content/posts/files/2025-travel-1_img/23.webp) | bin | 988944 -> 988944 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/3.webp (renamed from content/posts/files/2025-travel-1_img/3.webp) | bin | 5237948 -> 5237948 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/4.webp (renamed from content/posts/files/2025-travel-1_img/4.webp) | bin | 1403370 -> 1403370 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/5.webp (renamed from content/posts/files/2025-travel-1_img/5.webp) | bin | 1424414 -> 1424414 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/6.webp (renamed from content/posts/files/2025-travel-1_img/6.webp) | bin | 1129282 -> 1129282 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/7.webp (renamed from content/posts/files/2025-travel-1_img/7.webp) | bin | 1178630 -> 1178630 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/8.webp (renamed from content/posts/files/2025-travel-1_img/8.webp) | bin | 4411964 -> 4411964 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/9.webp (renamed from content/posts/files/2025-travel-1_img/9.webp) | bin | 755094 -> 755094 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/index.md (renamed from content/posts/2025-09-01-travel-1.md) | 56 | ||||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_1.webp (renamed from content/posts/files/2025-travel-1_img/preview_1.webp) | bin | 68140 -> 68140 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_10.webp (renamed from content/posts/files/2025-travel-1_img/preview_10.webp) | bin | 119806 -> 119806 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_11.webp (renamed from content/posts/files/2025-travel-1_img/preview_11.webp) | bin | 114776 -> 114776 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_12.webp (renamed from content/posts/files/2025-travel-1_img/preview_12.webp) | bin | 27904 -> 27904 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_13.webp (renamed from content/posts/files/2025-travel-1_img/preview_13.webp) | bin | 36594 -> 36594 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_14.webp (renamed from content/posts/files/2025-travel-1_img/preview_14.webp) | bin | 29198 -> 29198 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_15.webp (renamed from content/posts/files/2025-travel-1_img/preview_15.webp) | bin | 30840 -> 30840 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_16.webp (renamed from content/posts/files/2025-travel-1_img/preview_16.webp) | bin | 83166 -> 83166 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_17.webp (renamed from content/posts/files/2025-travel-1_img/preview_17.webp) | bin | 154656 -> 154656 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_18.webp (renamed from content/posts/files/2025-travel-1_img/preview_18.webp) | bin | 99452 -> 99452 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_19.webp (renamed from content/posts/files/2025-travel-1_img/preview_19.webp) | bin | 94816 -> 94816 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_2.webp (renamed from content/posts/files/2025-travel-1_img/preview_2.webp) | bin | 49558 -> 49558 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_20.webp (renamed from content/posts/files/2025-travel-1_img/preview_20.webp) | bin | 144248 -> 144248 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_21.webp (renamed from content/posts/files/2025-travel-1_img/preview_21.webp) | bin | 179974 -> 179974 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_22.webp (renamed from content/posts/files/2025-travel-1_img/preview_22.webp) | bin | 56148 -> 56148 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_23.webp (renamed from content/posts/files/2025-travel-1_img/preview_23.webp) | bin | 64300 -> 64300 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_3.webp (renamed from content/posts/files/2025-travel-1_img/preview_3.webp) | bin | 162906 -> 162906 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_4.webp (renamed from content/posts/files/2025-travel-1_img/preview_4.webp) | bin | 45526 -> 45526 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_5.webp (renamed from content/posts/files/2025-travel-1_img/preview_5.webp) | bin | 48660 -> 48660 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_6.webp (renamed from content/posts/files/2025-travel-1_img/preview_6.webp) | bin | 52192 -> 52192 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_7.webp (renamed from content/posts/files/2025-travel-1_img/preview_7.webp) | bin | 44236 -> 44236 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_8.webp (renamed from content/posts/files/2025-travel-1_img/preview_8.webp) | bin | 110076 -> 110076 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/preview_9.webp (renamed from content/posts/files/2025-travel-1_img/preview_9.webp) | bin | 83176 -> 83176 bytes | |||
| -rw-r--r-- | content/posts/2025-09-01-travel-1/saologo.png (renamed from content/posts/files/2025-travel-1_img/saologo.png) | bin | 20791 -> 20791 bytes | |||
| -rw-r--r-- | content/posts/2025-10-06-ai/hype_curve.png (renamed from content/posts/files/hype_curve.png) | bin | 130810 -> 130810 bytes | |||
| -rw-r--r-- | content/posts/2025-10-06-ai/index.md (renamed from content/posts/2025-10-06-ai.md) | 12 | ||||
| -rw-r--r-- | content/posts/2025-10-11-blog/index.md (renamed from content/posts/2025-10-11-blog.md) | 4 | ||||
| -rw-r--r-- | content/posts/2025-10-18-the-ghost-in-the-machine/index.md (renamed from content/posts/2025-10-18-the-ghost-in-the-machine.md) | 14 | ||||
| -rw-r--r-- | content/posts/2025-10-18-the-ghost-in-the-machine/laughing-man.jpeg (renamed from content/posts/files/laughing-man.jpeg) | bin | 234679 -> 234679 bytes | |||
| -rw-r--r-- | content/posts/2025-11-03-blog-deploy/index.md (renamed from content/posts/2025-11-03-blog-deploy.md) | 4 | ||||
| -rw-r--r-- | content/posts/2025-11-03-my-setup.md | 21 | ||||
| -rw-r--r-- | content/posts/2025-11-03-my-setup/index.md (renamed from content/posts/2025-06-08-my-setup.md) | 0 | ||||
| -rw-r--r-- | content/posts/2025-11-04-blog-deploy-2/index.md (renamed from content/posts/2025-11-04-blog-deploy-2.md) | 8 | ||||
| -rw-r--r-- | content/posts/2025-11-09-migration/index.md (renamed from content/posts/2025-11-09-migration.md) | 0 | ||||
| -rw-r--r-- | content/posts/2025-11-23-org/index.md (renamed from content/posts/2025-11-23-org.md) | 6 | ||||
| -rw-r--r-- | content/posts/2025-12-02-httpsocalypse/index.md (renamed from content/posts/2025-12-02-httpsocalypse.md) | 4 | ||||
| -rw-r--r-- | content/posts/2025-12-21-sicktech/files/img1.jpg (renamed from content/posts/files/2025-12-21-img1.jpg) | bin | 162511 -> 162511 bytes | |||
| -rw-r--r-- | content/posts/2025-12-21-sicktech/files/img2.jpg (renamed from content/posts/files/2025-12-21-img2.jpg) | bin | 88801 -> 88801 bytes | |||
| -rw-r--r-- | content/posts/2025-12-21-sicktech/files/img3.png (renamed from content/posts/files/2025-12-21-img3.png) | bin | 340974 -> 340974 bytes | |||
| -rw-r--r-- | content/posts/2025-12-21-sicktech/files/sicktech.png (renamed from content/posts/files/2025-12-21-sicktech.png) | bin | 263578 -> 263578 bytes | |||
| -rw-r--r-- | content/posts/2025-12-21-sicktech/index.md (renamed from content/posts/2025-12-21-sicktech.md) | 20 | ||||
| -rw-r--r-- | content/posts/2025-12-23-comments/index.md (renamed from content/posts/2025-12-23-comments.md) | 0 | ||||
| -rw-r--r-- | content/posts/2025-12-24-email/index.md (renamed from content/posts/2025-12-24-email.md) | 8 | ||||
| -rw-r--r-- | content/posts/2025-12-27-osm.md | 40 | ||||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo.jpg) | bin | 11353 -> 11353 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_1.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_1.jpg) | bin | 14146 -> 14146 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_10.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_10.jpg) | bin | 9230 -> 9230 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_11.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_11.jpg) | bin | 10581 -> 10581 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_12.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_12.jpg) | bin | 13124 -> 13124 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_13.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_13.jpg) | bin | 14557 -> 14557 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_14.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_14.jpg) | bin | 15019 -> 15019 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_2.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_2.jpg) | bin | 15041 -> 15041 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_3.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_3.jpg) | bin | 15339 -> 15339 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_4.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_4.jpg) | bin | 14214 -> 14214 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_5.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_5.jpg) | bin | 12279 -> 12279 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_6.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_6.jpg) | bin | 10936 -> 10936 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_7.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_7.jpg) | bin | 15840 -> 15840 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_8.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_8.jpg) | bin | 11695 -> 11695 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/files/photo_9.jpg (renamed from content/posts/files/2025-12-27-osm_img/thumbs/photo_9.jpg) | bin | 15837 -> 15837 bytes | |||
| -rw-r--r-- | content/posts/2025-12-27-osm/index.md | 40 | ||||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park.md | 32 | ||||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_19_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_19_2025-12-28_21-35-40.jpg) | bin | 18056 -> 18056 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_1_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_1_2025-12-28_21-35-40.jpg) | bin | 12003 -> 12003 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_20_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_20_2025-12-28_21-35-40.jpg) | bin | 17032 -> 17032 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_25_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_25_2025-12-28_21-35-40.jpg) | bin | 17446 -> 17446 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_27_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_27_2025-12-28_21-35-40.jpg) | bin | 16794 -> 16794 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_2_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_2_2025-12-28_21-35-40.jpg) | bin | 29912 -> 29912 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_2_2025-12-28_21-35-40.png (renamed from content/posts/files/2025-12-28-philharmonic-park_img/photo_2_2025-12-28_21-35-40.png) | bin | 1966164 -> 1966164 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_30_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_30_2025-12-28_21-35-40.jpg) | bin | 21623 -> 21623 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_31_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_31_2025-12-28_21-35-40.jpg) | bin | 10522 -> 10522 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_32_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_32_2025-12-28_21-35-40.jpg) | bin | 14036 -> 14036 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_32_2025-12-28_21-35-40.png (renamed from content/posts/files/2025-12-28-philharmonic-park_img/photo_32_2025-12-28_21-35-40.png) | bin | 1423681 -> 1423681 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_3_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_3_2025-12-28_21-35-40.jpg) | bin | 25867 -> 25867 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_3_2025-12-28_21-35-40.png (renamed from content/posts/files/2025-12-28-philharmonic-park_img/photo_3_2025-12-28_21-35-40.png) | bin | 1487705 -> 1487705 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_5_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_5_2025-12-28_21-35-40.jpg) | bin | 18394 -> 18394 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/files/photo_9_2025-12-28_21-35-40.jpg (renamed from content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_9_2025-12-28_21-35-40.jpg) | bin | 15546 -> 15546 bytes | |||
| -rw-r--r-- | content/posts/2025-12-28-philharmonic-park/index.md | 32 | ||||
| -rw-r--r-- | content/posts/2025-12-29-newyear-excel/files/cover.png (renamed from content/posts/files/2025-12-29-newyear-excel_img/cover.png) | bin | 46582 -> 46582 bytes | |||
| -rw-r--r-- | content/posts/2025-12-29-newyear-excel/files/cover1.png (renamed from content/posts/files/2025-12-29-newyear-excel_img/cover1.png) | bin | 14651 -> 14651 bytes | |||
| -rw-r--r-- | content/posts/2025-12-29-newyear-excel/files/new_year.ods (renamed from content/posts/files/2025-12-29-newyear-excel_img/new_year.ods) | bin | 28669 -> 28669 bytes | |||
| -rw-r--r-- | content/posts/2025-12-29-newyear-excel/files/new_year.xlsx (renamed from content/posts/files/2025-12-29-newyear-excel_img/new_year.xlsx) | bin | 7859 -> 7859 bytes | |||
| -rw-r--r-- | content/posts/2025-12-29-newyear-excel/index.md (renamed from content/posts/2025-12-29-newyear-excel.md) | 12 | ||||
| -rw-r--r-- | content/posts/2025-12-31-new-year/index.md (renamed from content/posts/2025-12-31-new-year.md) | 10 | ||||
| -rw-r--r-- | content/posts/2025-12-31-qchat/index.md (renamed from content/posts/2025-12-31-qchat.md) | 9 | ||||
| -rw-r--r-- | content/posts/2026-02-01-grouper/grouper.png | bin | 0 -> 234092 bytes | |||
| -rw-r--r-- | content/posts/2026-02-01-grouper/index.md | 44 | ||||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo.jpg | bin | 227501 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_1.jpg | bin | 221795 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_10.jpg | bin | 127547 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_11.jpg | bin | 151264 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_12.jpg | bin | 121963 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_13.jpg | bin | 126052 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_14.jpg | bin | 225031 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_2.jpg | bin | 226528 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_3.jpg | bin | 234383 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_4.jpg | bin | 214772 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_5.jpg | bin | 179943 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_6.jpg | bin | 168080 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_7.jpg | bin | 161387 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_8.jpg | bin | 127482 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-27-osm_img/photo_9.jpg | bin | 213571 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_19_2025-12-28_21-35-40.jpg | bin | 307509 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_1_2025-12-28_21-35-40.jpg | bin | 284188 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_20_2025-12-28_21-35-40.jpg | bin | 253734 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_25_2025-12-28_21-35-40.jpg | bin | 242625 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_27_2025-12-28_21-35-40.jpg | bin | 331494 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_30_2025-12-28_21-35-40.jpg | bin | 352290 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_31_2025-12-28_21-35-40.jpg | bin | 216175 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_5_2025-12-28_21-35-40.jpg | bin | 294826 -> 0 bytes | |||
| -rw-r--r-- | content/posts/files/2025-12-28-philharmonic-park_img/photo_9_2025-12-28_21-35-40.jpg | bin | 183104 -> 0 bytes |
204 files changed, 756 insertions, 706 deletions
diff --git a/content/posts/2021-02-13-jsonnet.md b/content/posts/2021-02-13-jsonnet/index.md index 9b03e5d..4018d46 100644 --- a/content/posts/2021-02-13-jsonnet.md +++ b/content/posts/2021-02-13-jsonnet/index.md @@ -1,6 +1,6 @@ --- date: "2021-02-13T22:08:19Z" -image: files/2021-02-13-jsonnet_logo.webp +image: /posts/2021-02-13-jsonnet/jsonnet_logo.webp tags: - go - it @@ -14,6 +14,8 @@ title: Jsonnet вызывает вау-эффект и буквально переворачивает всё верх дном. На днях для меня такой технологией стал [Jsonnet](https://jsonnet.org/) от Google. + + В кратце, это надмножество JSON являющееся языком описания шаблонов. Пока звучит не очень круто, да? На деле это офигенный Тьюринг полный функциональный язык, результатом выполнения которого будет сформированый JSON (и не только) @@ -41,17 +43,17 @@ https://jsonnet.org/learning/tutorial.html. гипотетической CI системы: ```jsonnet -local map(arr, predicate) = // определяем функцию map +local map(arr, predicate) = / определяем функцию map if std.length(arr) == 0 then [] else [ predicate(arr[0]) - ] + map(arr[1:], predicate); // функциональненько! + ] + map(arr[1:], predicate); / функциональненько! local tasks = [['go1.14', '1.14-alpine'],['go1.15', '1.15-alpine'],['go1.16-RC', '1.16-rc-alpine']]; -local commands = ['go build', 'go test']; // Общая часть -{ // Результирующий JSON - pipeline: map(tasks, function (task) { // Вызов map от tasks +local commands = ['go build', 'go test']; / Общая часть +{ / Результирующий JSON + pipeline: map(tasks, function (task) { / Вызов map от tasks name: task[0], image: "golang:"+task[1], commands: commands, diff --git a/content/posts/files/2021-02-13-jsonnet_logo.webp b/content/posts/2021-02-13-jsonnet/jsonnet_logo.webp Binary files differindex 45c63a6..45c63a6 100644 --- a/content/posts/files/2021-02-13-jsonnet_logo.webp +++ b/content/posts/2021-02-13-jsonnet/jsonnet_logo.webp diff --git a/content/posts/2021-05-13-цифровая-гигиена.md b/content/posts/2021-05-13-цифровая-гигиена/index.md index d9fcede..4130b8b 100644 --- a/content/posts/2021-05-13-цифровая-гигиена.md +++ b/content/posts/2021-05-13-цифровая-гигиена/index.md @@ -1,11 +1,11 @@ --- categories: -- Без рубрики -date: '2021-05-13T15:37:01Z' + - Без рубрики +date: "2021-05-13T15:37:01Z" tags: -- it -- паранойя -- разное + - it + - паранойя + - разное title: Немного о цифровой гигиене --- @@ -47,7 +47,7 @@ title: Немного о цифровой гигиене ## Наброски плана 1. Перейти максимально на собственные ресурсы, которые я контролирую и которые - *точно* не сливают ничего налево.Примерно так: социалки => + _точно_ не сливают ничего налево.Примерно так: социалки => <https://soc.neonxp.ru/> , GitHub => <https://gitrepo.ru/> , Облачные диски => локальный NAS Synology и т.д. 2. Мне надо сократить мессенджеры в идеале до одного, не считая корпоративного @@ -86,6 +86,6 @@ title: Немного о цифровой гигиене <a.kiryukhin@mail.ru> (кстати, стоит наверное и почту перевести к себе? Но пока уровень сервиса врядли смогу адекватный обеспечить) -*UPD:* Да, я знаю что уже данные так и останутся в чужих руках, но со временем +_UPD:_ Да, я знаю что уже данные так и останутся в чужих руках, но со временем они будут всё больше и больше протухать, а мой “цифровой профиль” терять -актуальность. Ведь я не скала, я тоже меняюсь и ухожу от этого профиля.
\ No newline at end of file +актуальность. Ведь я не скала, я тоже меняюсь и ухожу от этого профиля. diff --git a/content/posts/2022-05-30-возрождение.md b/content/posts/2022-05-30-возрождение/index.md index c6721c8..c6721c8 100644 --- a/content/posts/2022-05-30-возрождение.md +++ b/content/posts/2022-05-30-возрождение/index.md diff --git a/content/posts/2022-05-31-golang-1.md b/content/posts/2022-05-31-golang-1/index.md index 75e1b64..51e511c 100644 --- a/content/posts/2022-05-31-golang-1.md +++ b/content/posts/2022-05-31-golang-1/index.md @@ -1,10 +1,10 @@ --- categories: -- Без рубрики -date: '2022-05-31T01:00:00Z' + - Без рубрики +date: "2022-05-31T01:00:00Z" tags: -- go -- it + - go + - it title: Golang подборка 1 --- @@ -24,11 +24,11 @@ title: Golang подборка 1 import "math" ... // https://en.wikipedia.org/wiki/Haversine_formula -func GetDistance(lat1, lon1, lat2, lon2 float64) float64 { - lat1 *= math.Pi / 180 - lon1 *= math.Pi / 180 - lat2 *= math.Pi / 180 - lon2 *= math.Pi / 180 +func GetDistance(lat1, lon1, lat2, lon2 float64) float64 { + lat1 *= math.Pi / 180 + lon1 *= math.Pi / 180 + lat2 *= math.Pi / 180 + lon2 *= math.Pi / 180 return 12742 * math.Asin( math.Sqrt( math.Pow(math.Sin((lat2-lat1)/2), 2) + @@ -41,4 +41,4 @@ func GetDistance(lat1, lon1, lat2, lon2 float64) float64 { ``` - [god](https://github.com/pioz/god) — Утилита подгатавливающая демоны из go - программы. Для меня ценное — что генерит systemd конфиги.
\ No newline at end of file + программы. Для меня ценное — что генерит systemd конфиги. diff --git a/content/posts/2023-01-12-gitrepo.md b/content/posts/2023-01-12-gitrepo.md deleted file mode 100644 index 7e521c3..0000000 --- a/content/posts/2023-01-12-gitrepo.md +++ /dev/null @@ -1,167 +0,0 @@ ---- -categories: -- Мои проекты -date: '2023-01-12T20:22:00Z' -tags: -- it -- моё -title: GitRepo.ru ---- - -Сегодня серьезно переделал свой хостинг [репозиториев -кода](https://gitrepo.ru/): - -- Переехал на большой арендованный сервак -- Привел в порядок оркестрацию вокруг сервака с использованием Docker Compose -- Gitea заменил на её форк [Forgejo](https://forgejo.org/) -- Впилил CI/CD на основе [Woodpecker CI](https://woodpecker-ci.org/) - -Приглашаю пользоваться заместо бездуховного западного github: -<https://gitrepo.ru/> - -Сервер физически находится в датацентре в Москве у весьма годного провайдера -Selectel. - -Тем более, время сейчас неспокойное и неизвестно когда github станет недоступен -для РФ, а GitRepo — он вот тут, в нашей стране. - -# Немного про устройство - -Расскажу немного как я организовал себе Ops сервиса. - -У меня на руках `docker-compose.yml` который полностью описывает всю -конфигурацию сервака, примерно так: - -```yml -version: "3" -services: - caddy: - image: caddy:2.6.2-alpine - container_name: gateway - restart: unless-stopped - ports: - - "80:80" - - "443:443" - - "443:443/udp" - volumes: - - ./Caddyfile:/etc/caddy/Caddyfile - - caddy_data:/data - - caddy_config:/config - networks: - - gateway - git: - image: codeberg.org/forgejo/forgejo:1.18.0-1 - container_name: git - environment: - - USER_UID=1000 - - USER_GID=1000 - - TZ=Europe/Moscow - - USER=git - - GITEA__database__DB_TYPE=postgres - - GITEA__database__HOST=db:5432 - - GITEA__database__NAME=${PG_NAME} - - GITEA__database__USER=${PG_USER} - - GITEA__database__PASSWD=${PG_PASS} - restart: always - networks: - - gitea - - gateway - volumes: - - /home/git/.ssh/:/data/git/.ssh - - forgejo:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - ports: - - "127.0.0.1:2222:22" - depends_on: - db: - condition: service_healthy - db: - image: postgres:13 - restart: always - environment: - - POSTGRES_USER=${PG_USER} - - POSTGRES_PASSWORD=${PG_PASS} - - POSTGRES_DB=${PG_NAME} - healthcheck: - test: /usr/bin/pg_isready - interval: 5s - timeout: 10s - retries: 120 - networks: - - gitea - volumes: - - postgres:/var/lib/postgresql/data - woodpecker-server: - image: woodpeckerci/woodpecker-server:latest - volumes: - - woodpecker-server-data:/var/lib/woodpecker/ - environment: - - WOODPECKER_OPEN=true - - WOODPECKER_GITEA=true - - WOODPECKER_GITEA_URL=https://gitrepo.ru - - WOODPECKER_GITEA_CLIENT=${GITEA_CLIENT} - - WOODPECKER_GITEA_SECRET=${GITEA_SECRET} - - WOODPECKER_HOST=https://ci.gitrepo.ru - - WOODPECKER_ADMIN=neonxp - - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} - networks: - - gitea - - gateway - depends_on: - - git - woodpecker-agent: - image: woodpeckerci/woodpecker-agent:latest - command: agent - restart: always - depends_on: - - woodpecker-server - volumes: - - /var/run/docker.sock:/var/run/docker.sock - environment: - - WOODPECKER_SERVER=woodpecker-server:9000 - - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} - networks: - - gitea -volumes: - woodpecker-server-data: - caddy_data: - caddy_config: - forgejo: - postgres: -networks: - gateway: - gitea: - external: false - -``` - -а рядом лежит `.env` файлик с значениями переменных `${...}`. - -Запускаю деплой я с локального компьютера, предварительно добавив удаленный -сервер в [контекст -докера](https://docs.docker.com/engine/context/working-with-contexts/): - -``` -# Создаю новый контекст для удаленного сервера -docker context create gitrepo --docker "host=ssh://gitrepo.ru" -# Все последующие docker команды выполняются на удаленном сервере -docker use gitrepo -# Возвращаюсь в локальный контекст -docker use default -``` - -# Оставшиеся проблемы - -Сейчас так получается, что Caddyfile должен лежать на удаленном сервере, т.к. -часть конфига - -```yml - volumes: - - ./Caddyfile:/etc/caddy/Caddyfile -``` - -выполняется в контексте именно удаленного сервера, а значит при его апдейте на -локальном серваке приходится делать SCP этого файла на сервак. Такое себе. - -Как это решить — есть интересная идея, но это уже в другой раз.
\ No newline at end of file diff --git a/content/posts/2023-01-12-gitrepo/index.md b/content/posts/2023-01-12-gitrepo/index.md new file mode 100644 index 0000000..c10dd9d --- /dev/null +++ b/content/posts/2023-01-12-gitrepo/index.md @@ -0,0 +1,166 @@ +--- +categories: + - Мои проекты +date: "2023-01-12T20:22:00Z" +tags: + - it + - моё +title: GitRepo.ru +--- + +Сегодня серьезно переделал свой хостинг [репозиториев +кода](https://gitrepo.ru/): + +- Переехал на большой арендованный сервак +- Привел в порядок оркестрацию вокруг сервака с использованием Docker Compose +- Gitea заменил на её форк [Forgejo](https://forgejo.org/) +- Впилил CI/CD на основе [Woodpecker CI](https://woodpecker-ci.org/) + +Приглашаю пользоваться заместо бездуховного западного github: +<https://gitrepo.ru/> + +Сервер физически находится в датацентре в Москве у весьма годного провайдера +Selectel. + +Тем более, время сейчас неспокойное и неизвестно когда github станет недоступен +для РФ, а GitRepo — он вот тут, в нашей стране. + +# Немного про устройство + +Расскажу немного как я организовал себе Ops сервиса. + +У меня на руках `docker-compose.yml` который полностью описывает всю +конфигурацию сервака, примерно так: + +```yml +version: "3" +services: + caddy: + image: caddy:2.6.2-alpine + container_name: gateway + restart: unless-stopped + ports: + - "80:80" + - "443:443" + - "443:443/udp" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - caddy_data:/data + - caddy_config:/config + networks: + - gateway + git: + image: codeberg.org/forgejo/forgejo:1.18.0-1 + container_name: git + environment: + - USER_UID=1000 + - USER_GID=1000 + - TZ=Europe/Moscow + - USER=git + - GITEA__database__DB_TYPE=postgres + - GITEA__database__HOST=db:5432 + - GITEA__database__NAME=${PG_NAME} + - GITEA__database__USER=${PG_USER} + - GITEA__database__PASSWD=${PG_PASS} + restart: always + networks: + - gitea + - gateway + volumes: + - /home/git/.ssh/:/data/git/.ssh + - forgejo:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "127.0.0.1:2222:22" + depends_on: + db: + condition: service_healthy + db: + image: postgres:13 + restart: always + environment: + - POSTGRES_USER=${PG_USER} + - POSTGRES_PASSWORD=${PG_PASS} + - POSTGRES_DB=${PG_NAME} + healthcheck: + test: /usr/bin/pg_isready + interval: 5s + timeout: 10s + retries: 120 + networks: + - gitea + volumes: + - postgres:/var/lib/postgresql/data + woodpecker-server: + image: woodpeckerci/woodpecker-server:latest + volumes: + - woodpecker-server-data:/var/lib/woodpecker/ + environment: + - WOODPECKER_OPEN=true + - WOODPECKER_GITEA=true + - WOODPECKER_GITEA_URL=https://gitrepo.ru + - WOODPECKER_GITEA_CLIENT=${GITEA_CLIENT} + - WOODPECKER_GITEA_SECRET=${GITEA_SECRET} + - WOODPECKER_HOST=https://ci.gitrepo.ru + - WOODPECKER_ADMIN=neonxp + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + networks: + - gitea + - gateway + depends_on: + - git + woodpecker-agent: + image: woodpeckerci/woodpecker-agent:latest + command: agent + restart: always + depends_on: + - woodpecker-server + volumes: + - /var/run/docker.sock:/var/run/docker.sock + environment: + - WOODPECKER_SERVER=woodpecker-server:9000 + - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET} + networks: + - gitea +volumes: + woodpecker-server-data: + caddy_data: + caddy_config: + forgejo: + postgres: +networks: + gateway: + gitea: + external: false +``` + +а рядом лежит `.env` файлик с значениями переменных `${...}`. + +Запускаю деплой я с локального компьютера, предварительно добавив удаленный +сервер в [контекст +докера](https://docs.docker.com/engine/context/working-with-contexts/): + +``` +# Создаю новый контекст для удаленного сервера +docker context create gitrepo --docker "host=ssh:/gitrepo.ru" +# Все последующие docker команды выполняются на удаленном сервере +docker use gitrepo +# Возвращаюсь в локальный контекст +docker use default +``` + +# Оставшиеся проблемы + +Сейчас так получается, что Caddyfile должен лежать на удаленном сервере, т.к. +часть конфига + +```yml +volumes: + - ./Caddyfile:/etc/caddy/Caddyfile +``` + +выполняется в контексте именно удаленного сервера, а значит при его апдейте на +локальном серваке приходится делать SCP этого файла на сервак. Такое себе. + +Как это решить — есть интересная идея, но это уже в другой раз. diff --git a/content/posts/2023-05-26-gist.md b/content/posts/2023-05-26-gist/index.md index 25b362f..d05e322 100644 --- a/content/posts/2023-05-26-gist.md +++ b/content/posts/2023-05-26-gist/index.md @@ -1,14 +1,13 @@ --- categories: -- Мои проекты -date: '2023-05-26T17:40:21Z' + - Мои проекты +date: "2023-05-26T17:40:21Z" tags: -- it -- моё + - it + - моё title: Импортозамещение Gist --- - И в догонку к комментариям, запустил на своём серваке свой аналог Gist’ов от GitHub. @@ -16,4 +15,4 @@ GitHub. Пользуйтесь 🙂 -[Другие мои проекты](/projects)
\ No newline at end of file +[Другие мои проекты](/projects) diff --git a/content/posts/2023-07-24-tls.md b/content/posts/2023-07-24-tls/index.md index 43ee345..edcf4c3 100644 --- a/content/posts/2023-07-24-tls.md +++ b/content/posts/2023-07-24-tls/index.md @@ -1,11 +1,11 @@ --- categories: -- Без рубрики -date: '2023-07-24T20:04:17Z' + - Без рубрики +date: "2023-07-24T20:04:17Z" tags: -- it -- Россия -- TLS + - it + - Россия + - TLS title: Немного мыслей о TLS (HTTPS) в России --- @@ -48,9 +48,6 @@ title: Немного мыслей о TLS (HTTPS) в России собственного удостоверяющего центра 🙂 А доверять ему или не доверять — дело посетителей сайта. -Если доверяете мне то [вот сертификат моего УЦ](/files/root_ca.crt), а установка -такая же как сертификата Минцифры 🙂 - Ну и совсем краткая инструкция как выпустить сертификат для себя: 1. `openssl genrsa -out root_ca.key 4096` — создание секретного ключа УЦ (должен @@ -62,7 +59,7 @@ title: Немного мыслей о TLS (HTTPS) в России 3. `openssl genrsa -out server.key 4096` — создаем секретный ключ уже для конкретного сайта (и поддоменов) 4. `openssl req -new -key server.key -subj "/CN=neonxp.ru/CN=*.neonxp.ru" -out - server.csr` — генерируем файл запроса для конкретного сайта +server.csr` — генерируем файл запроса для конкретного сайта 5. Создаем файл `openssl.cnf` с примерно таким содержимым: ``` [SAN] @@ -72,7 +69,7 @@ title: Немного мыслей о TLS (HTTPS) в России DNS.2 = *.neonxp.ru ``` 6. И, наконец, создаем сертификат для сайта, который будет подписан ключами - server.key и root\_ca.key (то есть и своим удостоверяющим центром тоже): + server.key и root_ca.key (то есть и своим удостоверяющим центром тоже): ``` openssl x509 -req -in server.csr -CA root_ca.crt -CAkey root_ca.key -CAcreateserial -out server.crt -days 365 -extensions SAN -extfile openssl.cnf ``` @@ -80,6 +77,3 @@ title: Немного мыслей о TLS (HTTPS) в России В общем, всё. Полученные root_ca.crt (но не root_ca.key!), server.key и server.crt можно вносить в конфигурацию используемого вебсервера. А так же внести root_ca.crt в доверенные для себя. - -Так у меня выглядят [сертификат на сайт](/img/posts/20230724_204209.webp) и -[сертификат УЦ](/img/posts/20230724_204325.webp).
\ No newline at end of file diff --git a/content/posts/2023-12-29-переезд.md b/content/posts/2023-12-29-переезд/index.md index c4a17bf..176052f 100644 --- a/content/posts/2023-12-29-переезд.md +++ b/content/posts/2023-12-29-переезд/index.md @@ -1,10 +1,10 @@ --- categories: -- Без рубрики -date: '2023-12-29T00:15:44Z' + - Без рубрики +date: "2023-12-29T00:15:44Z" tags: -- блог -- разное + - блог + - разное title: Переезд и проблемы обновления --- @@ -23,6 +23,6 @@ title: Переезд и проблемы обновления ставку именно на национальный домен, а не на международный. К тому же у .dev домена есть неприятная особенность, что он требует обязательно валидного (то есть одобренного западными “партнерами”) сертификата. А это не дело, как я уже -[писал в заметке](https://neonxp.ru/posts/2023-07-24-tls/). +[писал в заметке](https://neonxp.ru/posts/tls/). -Пока что как-то так 🤷🏻♂️
\ No newline at end of file +Пока что как-то так 🤷🏻♂️ diff --git a/content/posts/2024-01-03-архив.md b/content/posts/2024-01-03-архив/index.md index 65a5be8..7b240a3 100644 --- a/content/posts/2024-01-03-архив.md +++ b/content/posts/2024-01-03-архив/index.md @@ -1,9 +1,9 @@ --- categories: -- Без рубрики -date: '2024-01-03T17:28:40Z' + - Без рубрики +date: "2024-01-03T17:28:40Z" tags: -- блог + - блог title: Архив --- @@ -11,4 +11,4 @@ title: Архив блогов. В основном, кринжовые, конечно, но это моя жизнь, как она была в то время. Так что пусть будут. -[Архив блога](https://neonxp.ru/archive/)
\ No newline at end of file +[Архив блога](https://neonxp.ru/archive/) diff --git a/content/posts/2024-02-21-tls.md b/content/posts/2024-02-21-tls/index.md index 65f8dfa..4529bd9 100644 --- a/content/posts/2024-02-21-tls.md +++ b/content/posts/2024-02-21-tls/index.md @@ -1,11 +1,11 @@ --- categories: -- Без рубрики -date: '2024-02-21T21:51:29Z' + - Без рубрики +date: "2024-02-21T21:51:29Z" tags: -- it -- Россия -- TLS + - it + - Россия + - TLS title: Конфигурация HTTPS с сертификатом от Минцифры --- @@ -22,33 +22,33 @@ title: Конфигурация HTTPS с сертификатом от Минц 1. Идём сюда: https://www.gosuslugi.ru/627603/1/form 2. По приведенной инструкции генерируем файл запроса сертификата. Вкратце так (только вместо neonxp.ru указываем свой домен): - ``` - openssl req -out neonxp.ru.csr -new -subj "/C=RU/CN=neonxp.ru" -addext "keyUsage = digitalSignature, keyEncipherment" -addext "subjectAltName=DNS: neonxp.ru" -addext "extendedKeyUsage = serverAuth" -newkey rsa:2048 -nodes -keyout neonxp.ru.key - ``` - Важно! Нужно сохранить файл ключа neonxp.ru.key в надежном месте. Если он попадет в чужие руки — нужно будет отзывать сертификат и начинать всё заново! SAN и Wildcard пока не поддерживается, но что имеем — то и имеем. Но по слухам таки будут, как минимум SAN. + ``` + openssl req -out neonxp.ru.csr -new -subj "/C=RU/CN=neonxp.ru" -addext "keyUsage = digitalSignature, keyEncipherment" -addext "subjectAltName=DNS: neonxp.ru" -addext "extendedKeyUsage = serverAuth" -newkey rsa:2048 -nodes -keyout neonxp.ru.key + ``` + Важно! Нужно сохранить файл ключа neonxp.ru.key в надежном месте. Если он попадет в чужие руки — нужно будет отзывать сертификат и начинать всё заново! SAN и Wildcard пока не поддерживается, но что имеем — то и имеем. Но по слухам таки будут, как минимум SAN. 3. Полученный файл csr загружаем там же на госуслуги 4. Ждём не долго (реально недолго, у меня прислали сертификат буквально через несколько минут!) 5. В ответ придёт файл с рандомным названием. Сохраняем его туда, где лежат другие файлы под названием “домен.crt” -6. Скачиваем корневой и промежуточные сертификаты: - ``` - wget https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer - wget https://gu-st.ru/content/Other/doc/russian_trusted_sub_ca.cer - ``` -7. Преобразуем скачанный сертификат в формат PEM: - ``` - openssl x509 -in neonxp.ru.crt -out neonxp.cer -outform PEM - ``` -8. Соединяем свой сертификат и минцифровские в один бандл: - ``` - cat neonxp.cer russian_trusted_sub_ca_pem.cer russian_trusted_root_ca_pem.cer > chain.cer - ``` -9. Используем полученный бандл и сгенерированный в пункте 2 файл ключа в конфигурации вебсервера. У меня используется Caddy, поэтому мой конфиг выглядит так: - ``` - neonxp.ru:443 { - tls /data/ssl/chain.cer /data/ssl/neonxp.ru.key - ... - } - ``` +6. Скачиваем корневой и промежуточные сертификаты: + ``` + wget https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer + wget https://gu-st.ru/content/Other/doc/russian_trusted_sub_ca.cer + ``` +7. Преобразуем скачанный сертификат в формат PEM: + ``` + openssl x509 -in neonxp.ru.crt -out neonxp.cer -outform PEM + ``` +8. Соединяем свой сертификат и минцифровские в один бандл: + ``` + cat neonxp.cer russian_trusted_sub_ca_pem.cer russian_trusted_root_ca_pem.cer > chain.cer + ``` +9. Используем полученный бандл и сгенерированный в пункте 2 файл ключа в конфигурации вебсервера. У меня используется Caddy, поэтому мой конфиг выглядит так: + ``` + neonxp.ru:443 { + tls /data/ssl/chain.cer /data/ssl/neonxp.ru.key + ... + } + ``` В общем-то, всё. Как настанет время продлевать — я дополню заметку деталями именно продления. Если будут вопросы — пишите, попробуем решить. diff --git a/content/posts/2024-06-01-вам-не-нужны-пуши.md b/content/posts/2024-06-01-вам-не-нужны-пуши/index.md index 4d5960f..1801364 100644 --- a/content/posts/2024-06-01-вам-не-нужны-пуши.md +++ b/content/posts/2024-06-01-вам-не-нужны-пуши/index.md @@ -95,7 +95,7 @@ _себя_, а не других время? Моё внутреннее состояние ощущается как очень спокойное и, главное, комфортное. Я чувствую полный контроль над тем, чтои когда я потребляю и нет никакого информационного насилия, как его называет -[Столяров](http://stolyarov.info/)(хоть мне этот персонаж и кажется чрезвычайно +[Столяров](http:/stolyarov.info/)(хоть мне этот персонаж и кажется чрезвычайно радикальным и оттого отталкивающим, но что-то в его словах таки есть). Считаю, что эксперимент оказался удачным, и я его продолжу! diff --git a/content/posts/2024-06-02-книги-1.md b/content/posts/2024-06-02-книги-1/index.md index 0173245..0173245 100644 --- a/content/posts/2024-06-02-книги-1.md +++ b/content/posts/2024-06-02-книги-1/index.md diff --git a/content/posts/2024-07-13-joplin.md b/content/posts/2024-07-13-joplin/index.md index f23bcc7..9457c48 100644 --- a/content/posts/2024-07-13-joplin.md +++ b/content/posts/2024-07-13-joplin/index.md @@ -1,11 +1,11 @@ --- categories: -- Без рубрики -date: '2024-07-13T20:49:12Z' -image: files/2024-07-13-joplin_joplin.webp + - Без рубрики +date: "2024-07-13T20:49:12Z" +image: /posts/2024-07-13-joplin/joplin.webp tags: -- it -- joplin + - it + - joplin title: Заметочник Joplin --- @@ -16,6 +16,8 @@ Notion и менее популярного Obsidian. [Joplin](https://joplinapp.org/). Но, не смотря на такое название, самоприложение очень даже серьёзное. + + В общем и целом, это достаточно продвинутый опенсорсный заметочник. В качестве формата текста он использует Markdown[^1]. [^1]:https://skillbox.ru/media/code/yazyk-razmetki-markdown-shpargalka-po-sintaksisu-s-primerami/ @@ -40,4 +42,4 @@ Mail.Ru](https://help.mail.ru/cloud_web/app/webdav/) или Яндекс Дис ~~P.S. Если нужен аккаунт на моем сервере синхронизации Joplin — пишите на почту, самостоятельной регистрации на сервере синхронизации не предусмотренно. Вот только не забудьте при синхронизации включить в настройках шифрование -заметок. Я не хочу потом получать подозрения в нарушение приватности.~~
\ No newline at end of file +заметок. Я не хочу потом получать подозрения в нарушение приватности.~~ diff --git a/content/posts/files/2024-07-13-joplin_joplin.webp b/content/posts/2024-07-13-joplin/joplin.webp Binary files differindex 33326b7..33326b7 100644 --- a/content/posts/files/2024-07-13-joplin_joplin.webp +++ b/content/posts/2024-07-13-joplin/joplin.webp diff --git a/content/posts/2024-07-21-bbs.md b/content/posts/2024-07-21-bbs/index.md index c304c84..c304c84 100644 --- a/content/posts/2024-07-21-bbs.md +++ b/content/posts/2024-07-21-bbs/index.md diff --git a/content/posts/2024-09-26-hugo-wordpress.md b/content/posts/2024-09-26-hugo-wordpress/index.md index aa862ef..aa862ef 100644 --- a/content/posts/2024-09-26-hugo-wordpress.md +++ b/content/posts/2024-09-26-hugo-wordpress/index.md diff --git a/content/posts/2024-10-06-цитатник-рунета.md b/content/posts/2024-10-06-цитатник-рунета/index.md index cc9ba60..60d46e0 100644 --- a/content/posts/2024-10-06-цитатник-рунета.md +++ b/content/posts/2024-10-06-цитатник-рунета/index.md @@ -1,13 +1,13 @@ --- categories: -- Мои проекты -date: '2024-10-06T12:00:11Z' -image: files/2024-10-06-цитатник-рунета_bash_org.webp + - Мои проекты +date: "2024-10-06T12:00:11Z" +image: цитатник-рунета_bash_org.webp location: Казань tags: -- go -- it -- моё + - go + - it + - моё title: Цитатник Рунета --- @@ -61,4 +61,4 @@ title: Цитатник Рунета вам такая идея? Вообще, я бы хотел это как-то, наверное, обсудить, относительно того как это -развивать и стоит ли?
\ No newline at end of file +развивать и стоит ли? diff --git a/content/posts/files/2024-10-06-цитатник-рунета_bash_org.webp b/content/posts/2024-10-06-цитатник-рунета/цитатник-рунета_bash_org.webp Binary files differindex e142633..e142633 100644 --- a/content/posts/files/2024-10-06-цитатник-рунета_bash_org.webp +++ b/content/posts/2024-10-06-цитатник-рунета/цитатник-рунета_bash_org.webp diff --git a/content/posts/files/2024-10-17-книги-2_Rama16wiki.webp b/content/posts/2024-10-17-книги-2/Rama16wiki.webp Binary files differindex b4d9ce9..b4d9ce9 100644 --- a/content/posts/files/2024-10-17-книги-2_Rama16wiki.webp +++ b/content/posts/2024-10-17-книги-2/Rama16wiki.webp diff --git a/content/posts/2024-10-17-книги-2.md b/content/posts/2024-10-17-книги-2/index.md index 96cafc7..2b476bc 100644 --- a/content/posts/2024-10-17-книги-2.md +++ b/content/posts/2024-10-17-книги-2/index.md @@ -1,11 +1,11 @@ --- categories: -- Без рубрики -date: '2024-10-17T19:26:00Z' -image: files/2024-10-17-книги-2_Rama16wiki.webp + - Без рубрики +date: "2024-10-17T19:26:00Z" +image: /posts/2024-10-17-книги-2/Rama16wiki.webp location: Казань tags: -- книги + - книги title: Книжные рекомендации №2 --- @@ -36,4 +36,4 @@ title: Книжные рекомендации №2 Книга является частью цикла, и я прикладываю цикл целиком: -[Цикл «КенгХо» скачать](КенгХо.zip)
\ No newline at end of file +[Цикл «КенгХо» скачать](/posts/2024-10-17-книги-2/КенгХо.zip) diff --git a/content/posts/2024-11-15-hugo.md b/content/posts/2024-11-15-hugo/index.md index 7a677a4..7a677a4 100644 --- a/content/posts/2024-11-15-hugo.md +++ b/content/posts/2024-11-15-hugo/index.md diff --git a/content/posts/2024-11-17-obsidian.md b/content/posts/2024-11-17-obsidian/index.md index 9ecf5f4..6feba39 100644 --- a/content/posts/2024-11-17-obsidian.md +++ b/content/posts/2024-11-17-obsidian/index.md @@ -1,18 +1,18 @@ --- categories: -- Без рубрики -date: '2024-11-17T22:30:37+03:00' -description: '' -image: files/2024-11-17-obsidian_img/logo.webp + - Без рубрики +date: "2024-11-17T22:30:37+03:00" +description: "" +image: 2024-11-17-obsidian_img/logo.webp location: Казань tags: -- it -- joplin -- obsidian + - it + - joplin + - obsidian title: Obsidian --- -Некоторое время назад я [писал](/posts/2024-07-13-joplin/) про заметочник +Некоторое время назад я [писал](/posts/joplin/) про заметочник Joplin. С тех пор мои вкусы несколько поменялись и я открыл для себя его величество @@ -39,29 +39,29 @@ Android. 1. **Граф связей** — да, он есть уже много где, но нельзя его не упомянуть. 2. **Markdown** — очень приятно, что все заметки хранятся в Markdown, что - обеспечивает максимальную интероперабельность и переносимость + обеспечивает максимальную интероперабельность и переносимость 3. **Плагины** — плагины пишутся на JS/TS и их много. Даже не так, их **МНОГО**. - Что приятно, они скачиваются и лежат в той же директории что и основное - хранилище, а это важно для следующего пункта + Что приятно, они скачиваются и лежат в той же директории что и основное + хранилище, а это важно для следующего пункта 4. **Синхронизация** — она есть. Но вроде как платная. Но мне это и не - интересно, я использую Syncthing. Просто шарю через него директорию - хранилища по схеме оба ноутбука <-> NAS <-> Android. При этом синкаются все - плагины и настройки. + интересно, я использую Syncthing. Просто шарю через него директорию + хранилища по схеме оба ноутбука <-> NAS <-> Android. При этом синкаются все + плагины и настройки. 5. **Скорость** — не смотря на то, что он написан на проклятом электроне, работает достаточно шустро, претензий нет. 6. **Доска для рисования** — мелочь, конечно, но удобно, когда надо на скорую - руку накидать небольшую схемку. В конце этого поста как раз есть пример - такой схемки. + руку накидать небольшую схемку. В конце этого поста как раз есть пример + такой схемки. ## Минусы 1. **Проприетарность** — Obsidian хоть и в целом бесплатный, но он не свободный - и даже не opensource. Да, это серьёзный минус, но он компенсируется тем, что - хотябы вся база данных не в проприетарном формате. И в случае чего можно - будет с наименьшими проблемами свалить куда-нибудь. + и даже не opensource. Да, это серьёзный минус, но он компенсируется тем, что + хотябы вся база данных не в проприетарном формате. И в случае чего можно + будет с наименьшими проблемами свалить куда-нибудь. 2. **Electron** — ну это скорей мой личный пунктик. Но при этом приходиться - смиряться с электроном что на Obsidian что на VSCode (VSCodium, конечно же), - потому что лучше-то и нет. + смиряться с электроном что на Obsidian что на VSCode (VSCodium, конечно же), + потому что лучше-то и нет. Это только то, что сейчас пришло в голову. @@ -80,22 +80,22 @@ https://blacksmithgu.github.io/obsidian-dataview/ Например, можно создать новый документ, написать в него -``` +```` ```dataview TASK WHERE status = " " ``` -``` +```` и волшебным образом вместо этого блока появятся все невыполненные задачи, а вот -так +так -``` +```` ```dataview TASK WHERE status = "x" ``` -``` +```` мы получим все выполненные. @@ -120,20 +120,20 @@ https://silentvoid13.github.io/Templater/ ``` <%* try { - // Получаем имя текущей ежедневной заметки + / Получаем имя текущей ежедневной заметки const noteName = tp.file.title; - - // Разбиваем полученное имя на компоненты даты + + / Разбиваем полученное имя на компоненты даты const [year, month, day] = noteName.split('.').map(Number); - // Создаём объект Date на основе поученных компонентов + / Создаём объект Date на основе поученных компонентов const currentNoteDate = new Date(year, month - 1, day); - // Вычисляем предыдущий и следующий день + / Вычисляем предыдущий и следующий день let previousDayDate = new Date(currentNoteDate.setDate(currentNoteDate.getDate() - 1)); let nextDayDate = new Date(currentNoteDate.setDate(currentNoteDate.getDate() + 2)); - // Форматируем дату обратно в "DD-MM-YYYY" + / Форматируем дату обратно в "DD-MM-YYYY" const formatDate = (date) => { const dd = String(date.getDate()).padStart(2, '0'); const mm = String(date.getMonth() + 1).padStart(2, '0'); @@ -144,12 +144,12 @@ try { const previousDay = formatDate(previousDayDate); const nextDay = formatDate(nextDayDate); - // Формируем ссылки + / Формируем ссылки const baseFolder = tp.file.folder(true); const previousNotePath = `${baseFolder}/${previousDay}.md`; const nextNotePath = `${baseFolder}/${nextDay}.md`; - // Выводим даты в виде ссылок + / Выводим даты в виде ссылок tR += `← [[${previousNotePath}|${previousDay}]] | [[${nextNotePath}|${nextDay}]] →`; } catch (error) { console.error("Templater Error:", error); @@ -169,15 +169,15 @@ ___ и переходя к сегодняшней заметке я сразу получаю такую заготовку: - + ### Остальные плагины Остальные тоже крутые, но я их приведу просто списком: - [tasks](https://publish.obsidian.md/tasks/Introduction) — помогает более - богато управлять задачами. В частности, у меня проставляет дату завершения - задачи, и проставляет даты дедлайна и прочее. + богато управлять задачами. В частности, у меня проставляет дату завершения + задачи, и проставляет даты дедлайна и прочее. - [reminder](https://uphy.github.io/obsidian-reminder/) — трекает и напоминает про задачи - [calendar](https://github.com/liamcain/obsidian-calendar-plugin) — просто @@ -185,8 +185,8 @@ ___ - [homepage](https://github.com/mirnovov/obsidian-homepage) — позволяет задать произвольную заметку "домашней" - [icon-folder](https://github.com/timolins/obsidian-icon-folder) — позволяет - задавать директориям и заметкам произвольные иконки. Пример есть как раз на - скриншоте выше. + задавать директориям и заметкам произвольные иконки. Пример есть как раз на + скриншоте выше. - [pomodoro-timer](https://github.com/eatgrass/obsidian-pomodoro-timer) — думаю, из названия и так понятно - [kanban](https://publish.obsidian.md/kanban/) — шикарнейший канбан плагин @@ -197,7 +197,7 @@ ___ блог по протоколу [Micropub](https://indieweb.org/Micropub). Только из-за Obsidian и того, что он использует Markdown я опять [вернулся на -Hugo](/posts/2024-11-15-hugo/), который так же рендерится из Markdown. +Hugo](/posts/hugo/), который так же рендерится из Markdown. «Но Hugo это же генератор статичных сайтов, куда ты ему будешь отправлять заметку для публикации?» — можешь спросить меня ты. А я отвечу что у меня вот diff --git a/content/posts/files/2024-11-17-obsidian_img/logo.webp b/content/posts/2024-11-17-obsidian/logo.webp Binary files differindex d5c747a..d5c747a 100644 --- a/content/posts/files/2024-11-17-obsidian_img/logo.webp +++ b/content/posts/2024-11-17-obsidian/logo.webp diff --git a/content/posts/files/2024-11-17-obsidian_img/publish.webp b/content/posts/2024-11-17-obsidian/publish.webp Binary files differindex f8add88..f8add88 100644 --- a/content/posts/files/2024-11-17-obsidian_img/publish.webp +++ b/content/posts/2024-11-17-obsidian/publish.webp diff --git a/content/posts/files/2024-11-17-obsidian_img/templater.webp b/content/posts/2024-11-17-obsidian/templater.webp Binary files differindex facdd86..facdd86 100644 --- a/content/posts/files/2024-11-17-obsidian_img/templater.webp +++ b/content/posts/2024-11-17-obsidian/templater.webp diff --git a/content/posts/files/2024-11-27-hyperlocality_img/90e.webp b/content/posts/2024-11-27-hyperlocality/90e.webp Binary files differindex 948d808..948d808 100644 --- a/content/posts/files/2024-11-27-hyperlocality_img/90e.webp +++ b/content/posts/2024-11-27-hyperlocality/90e.webp diff --git a/content/posts/files/2024-11-27-hyperlocality_img/braindance.webp b/content/posts/2024-11-27-hyperlocality/braindance.webp Binary files differindex 965e145..965e145 100644 --- a/content/posts/files/2024-11-27-hyperlocality_img/braindance.webp +++ b/content/posts/2024-11-27-hyperlocality/braindance.webp diff --git a/content/posts/files/2024-11-27-hyperlocality_img/camp.webp b/content/posts/2024-11-27-hyperlocality/camp.webp Binary files differindex a07d8ed..a07d8ed 100644 --- a/content/posts/files/2024-11-27-hyperlocality_img/camp.webp +++ b/content/posts/2024-11-27-hyperlocality/camp.webp diff --git a/content/posts/files/2024-11-27-hyperlocality_img/in-internet.webp b/content/posts/2024-11-27-hyperlocality/in-internet.webp Binary files differindex 56d8c50..56d8c50 100644 --- a/content/posts/files/2024-11-27-hyperlocality_img/in-internet.webp +++ b/content/posts/2024-11-27-hyperlocality/in-internet.webp diff --git a/content/posts/2024-11-27-hyperlocality.md b/content/posts/2024-11-27-hyperlocality/index.md index eb8ff84..858c1d6 100644 --- a/content/posts/2024-11-27-hyperlocality.md +++ b/content/posts/2024-11-27-hyperlocality/index.md @@ -1,14 +1,14 @@ --- categories: -- гиперлокальность -date: '2024-11-27T17:50:18+03:00' -description: '' + - гиперлокальность +date: "2024-11-27T17:50:18+03:00" +description: "" location: Казань tags: -- разное -- IT -- размышления -- гиперлокальность + - разное + - IT + - размышления + - гиперлокальность title: Гиперлокальность --- @@ -20,7 +20,9 @@ title: Гиперлокальность Сначала, пожалуй, расскажу про посылки, а потом уже о том, куда они ведут, и какие из этого можно сделать выводы. + <!--more--> + ## Посылка Думаю, все мы заметили как много вокруг стало ИИ инструментов. Сейчас ИИ на @@ -37,16 +39,16 @@ title: Гиперлокальность > Вселенная — кое-какая информация, облегчающая существование в ней. > > <...> -> +> > 4. Население: Отсутствует. Известно, что существует бесконечное множество -> планет. Это объясняется той простой причиной, что пространство, в котором они -> могут существовать, также бесконечно. Однако не всякая из этих планет -> обитаема. Отсюда следует, что число обитаемых планет конечно. Частное от -> деления любого конечного числа на бесконечность стремится к нулю и не дает -> остатка, следовательно, можно заключить, что средняя численность населения -> планет Вселенной равна нулю. Отсюда следует, что численность населения во всей -> Вселенной также равна нулю, и потому все люди, которые порой попадаются на -> вашем пути, являются продуктом вашего воспаленного воображения. +> планет. Это объясняется той простой причиной, что пространство, в котором они +> могут существовать, также бесконечно. Однако не всякая из этих планет +> обитаема. Отсюда следует, что число обитаемых планет конечно. Частное от +> деления любого конечного числа на бесконечность стремится к нулю и не дает +> остатка, следовательно, можно заключить, что средняя численность населения +> планет Вселенной равна нулю. Отсюда следует, что численность населения во всей +> Вселенной также равна нулю, и потому все люди, которые порой попадаются на +> вашем пути, являются продуктом вашего воспаленного воображения. > > Д. Адамс — Ресторан «У края Вселенной», 19 глава @@ -70,8 +72,8 @@ title: Гиперлокальность фальшивок и симуляций.  +заслужили](/posts/2024-11-27-hyperlocality/braindance.webp "Киберпанк +который мы заслужили") ## Гиперлокальность @@ -88,7 +90,7 @@ title: Гиперлокальность многообещающе, и в каком-то смысле, оно так и было.  Но что происходит сейчас? Интернет, вместо того чтобы соединять людей по всему @@ -139,8 +141,8 @@ title: Гиперлокальность нравится. Это как-то... уютно чтоли.  +сообщество](/posts/2024-11-27-hyperlocality/camp.webp "Примерно так я +визуализирую гиперлокальное сообщество") ## Перспективы @@ -162,7 +164,7 @@ title: Гиперлокальность будет ощущаться, как выход из своей зоны комфорта в дикую и опасную пустошь.  ## Окончание? diff --git a/content/posts/files/2024-11-29-hobbies_dozor.webp b/content/posts/2024-11-29-hobbies/hobbies_dozor.webp Binary files differindex eab9913..eab9913 100644 --- a/content/posts/files/2024-11-29-hobbies_dozor.webp +++ b/content/posts/2024-11-29-hobbies/hobbies_dozor.webp diff --git a/content/posts/2024-11-29-hobbies.md b/content/posts/2024-11-29-hobbies/index.md index 50fc928..b0763a7 100644 --- a/content/posts/2024-11-29-hobbies.md +++ b/content/posts/2024-11-29-hobbies/index.md @@ -3,7 +3,7 @@ categories: - Мысли вслух date: '2024-11-29T18:00:36+03:00' description: '' -image: files/2024-11-29-hobbies_dozor.webp +image: hobbies_dozor.webp location: Казань tags: - размышления diff --git a/content/posts/files/2024-12-12-guessr_logo.webp b/content/posts/2024-12-12-guessr/guessr_logo.webp Binary files differindex 3a414cd..3a414cd 100644 --- a/content/posts/files/2024-12-12-guessr_logo.webp +++ b/content/posts/2024-12-12-guessr/guessr_logo.webp diff --git a/content/posts/2024-12-12-guessr.md b/content/posts/2024-12-12-guessr/index.md index 235901c..39c5c54 100644 --- a/content/posts/2024-12-12-guessr.md +++ b/content/posts/2024-12-12-guessr/index.md @@ -1,13 +1,13 @@ --- categories: -- Мои проекты -date: '2024-12-12T22:27:49+03:00' -description: '' -image: files/2024-12-12-guessr_logo.webp + - Мои проекты +date: "2024-12-12T22:27:49+03:00" +description: "" +image: guessr_logo.webp location: Казань tags: -- IT -- Проект выходного дня + - IT + - Проект выходного дня title: Guessr --- @@ -38,46 +38,50 @@ https://git.neonxp.ru/guessr.git/ - Создание новой игровой сессии, в ответ ставится кука внутри которой зашифровано текущее состояние — ник, количество очков, ID текущего угадываемого объекта (в начале пустое). - ```http - POST /api/state - Content-Type: application/json - - { - "username": "NeonXP" - } - ``` + + ```http + POST /api/state + Content-Type: application/json + + { + "username": "NeonXP" + } + ``` - Получение состояния. Просто возвращает вышеуказанные параметры - ```http - GET /api/state - ``` + + ```http + GET /api/state + ``` - Выдача нового объекта для угадывания. При этом возвращается ссылка на фото и обновляется состояние, тем что в него вписывается ID объекта - ```http - POST /api/next - ``` + + ```http + POST /api/next + ``` - Угадывание. Собственно, на вход передаются координаты куда на карте указал игрок. А в ответ возвращается: - - Название объекта - - Расстояние от переданной точки до реального размещения объекта - - Geojson строка в которой зашифрована линия соединяющая точку и объект (нужна - для отрисовки красной линии на карте) - - При этом высчитываются очки которые получает игрок за попытку по формуле - max(1000-d, 0), где d - расстояние между выбранной точкой и объектом в метрах. - То есть, если разница меньше 1000м, то чем ближе - тем больше очков (максимум - 1000 очков за 1 очень точное угадывание). - ```http - POST /api/guess - Content-Type: application/json - - { - "lat": 55.123, - "lon": 49.123 - } - ``` + - Название объекта + - Расстояние от переданной точки до реального размещения объекта + - Geojson строка в которой зашифрована линия соединяющая точку и объект (нужна + для отрисовки красной линии на карте) + + При этом высчитываются очки которые получает игрок за попытку по формуле + max(1000-d, 0), где d - расстояние между выбранной точкой и объектом в метрах. + То есть, если разница меньше 1000м, то чем ближе - тем больше очков (максимум + 1000 очков за 1 очень точное угадывание). + + ```http + POST /api/guess + Content-Type: application/json + + { + "lat": 55.123, + "lon": 49.123 + } + ``` Вот в общем-то и всё API! @@ -122,9 +126,9 @@ err := p.db.NewSelect(). - [ ] Авторизация и общая доска лидерства - [ ] После угадывания спрашивать у игрока «сложность», чтобы потом можно было, - например, настраивать чтобы попадались только простые объекты. И, например, - разное количество очков за простые и сложные объекты + например, настраивать чтобы попадались только простые объекты. И, например, + разное количество очков за простые и сложные объекты - [ ] Подумать как вынести игру в оффлайн, по типу того же ингресса. Это сложно - и предстоит хорошо это обдумать + и предстоит хорошо это обдумать -Как-то так :) А впереди новые выходные и новые «проекты выходного дня»!
\ No newline at end of file +Как-то так :) А впереди новые выходные и новые «проекты выходного дня»! diff --git a/content/posts/files/2024-12-15-conditional-operator-go_ternary.webp b/content/posts/2024-12-15-conditional-operator-go/conditional-operator-go_ternary.webp Binary files differindex 5eeea58..5eeea58 100644 --- a/content/posts/files/2024-12-15-conditional-operator-go_ternary.webp +++ b/content/posts/2024-12-15-conditional-operator-go/conditional-operator-go_ternary.webp diff --git a/content/posts/2024-12-15-conditional-operator-go.md b/content/posts/2024-12-15-conditional-operator-go/index.md index 480ba42..edbd1ef 100644 --- a/content/posts/2024-12-15-conditional-operator-go.md +++ b/content/posts/2024-12-15-conditional-operator-go/index.md @@ -1,13 +1,13 @@ --- categories: -- Без рубрики -date: '2024-12-15T23:47:08+03:00' -description: '' -image: files/2024-12-15-conditional-operator-go_ternary.webp + - Без рубрики +date: "2024-12-15T23:47:08+03:00" +description: "" +image: conditional-operator-go_ternary.webp location: Казань tags: -- IT -- Go + - IT + - Go title: Тернарник в Go --- diff --git a/content/posts/2024-12-15-posse.md b/content/posts/2024-12-15-posse/index.md index 023e1e2..34cc240 100644 --- a/content/posts/2024-12-15-posse.md +++ b/content/posts/2024-12-15-posse/index.md @@ -1,13 +1,13 @@ --- categories: -- Блог -date: '2024-12-15T22:10:46+03:00' -description: '' -image: files/2024-12-15-posse_posse.webp + - Блог +date: "2024-12-15T22:10:46+03:00" +description: "" +image: posse_posse.webp location: Казань tags: -- блог -- разное + - блог + - разное title: POSSE --- @@ -25,9 +25,9 @@ title: POSSE ## Почему это важно? -* Во-первых, **платформы ненадежны**. Любая платформа в любой момент может +- Во-первых, **платформы ненадежны**. Любая платформа в любой момент может сделать что угодно с вашим контентом, или закрыться. -* Во-вторых, **право собственности**. Не секрет, что у платформ весьма вольное +- Во-вторых, **право собственности**. Не секрет, что у платформ весьма вольное представление об авторском праве на материалы размещаемые пользователями. С одной стороны, у них неограниченное право распоряжения контентом для любых целей, а с другой никакой ответственности за содержание контента. Не слишком @@ -35,11 +35,11 @@ title: POSSE первоисточник под своим контролем, отдавая платформам лишь небольшой огрызок от контента. Да, у меня не больно какой-то великий контент, за который стоит трястись, но я всё равно предпочту сохранить за собой все права на него. -* В-третьих, **за пользователем остаётся право** выбирать где ему удобнее +- В-третьих, **за пользователем остаётся право** выбирать где ему удобнее следить за контентом. Либо на первоисточнике, с помощью божественного RSS (к чему я бы хотел призывать), либо на удобной платформе куда происходит синдикация. -* В-четвёртых, ... А давайте, я не буду пересказывать вот эту статью[1]? 😉 В +- В-четвёртых, ... А давайте, я не буду пересказывать вот эту статью[1]? 😉 В общем, это правильная и нужная практика. Как минимум, на долгосрок. Платформы приходят и уходят, а файлы (в виде markdown моего блога) останутся на всегда. diff --git a/content/posts/files/2024-12-15-posse_posse.webp b/content/posts/2024-12-15-posse/posse_posse.webp Binary files differindex aad6230..aad6230 100644 --- a/content/posts/files/2024-12-15-posse_posse.webp +++ b/content/posts/2024-12-15-posse/posse_posse.webp diff --git a/content/posts/2024-12-17-infra.md b/content/posts/2024-12-17-infra/index.md index 8998c27..64b702c 100644 --- a/content/posts/2024-12-17-infra.md +++ b/content/posts/2024-12-17-infra/index.md @@ -1,14 +1,14 @@ --- categories: -- Мета -date: '2024-12-17T21:07:53+03:00' -description: '' + - Мета +date: "2024-12-17T21:07:53+03:00" +description: "" draft: true -image: files/2024-12-17-infra_cover.webp +image: infra_cover.webp location: Казань tags: -- блог -- IT + - блог + - IT title: Инфраструктура блога --- @@ -24,10 +24,10 @@ title: Инфраструктура блога Конкретно, железо: -* **OrangePi 3B 8Gb** — выбран в первую очередь за свою дешевизну и, самое +- **OrangePi 3B 8Gb** — выбран в первую очередь за свою дешевизну и, самое главное, M.2 разъём -* **NVME SSD 1Tb** — собственно, жесткий диск моего микросервера -* **Корпус с активным охлаждением** — не самое необходимое, но хотелось, чтобы +- **NVME SSD 1Tb** — собственно, жесткий диск моего микросервера +- **Корпус с активным охлаждением** — не самое необходимое, но хотелось, чтобы выглядело красиво <!-- more --> @@ -38,7 +38,6 @@ title: Инфраструктура блога (https://www.armbian.com/orangepi3b/), веб—сервер Caddy (https://caddyserver.com/), да Docker. Всё остальное уже внутри Docker'а. - ## Caddy Caddy у меня работает в основном как reverse-proxy для Docker'а. Без лишних @@ -81,40 +80,40 @@ comments.neonxp.ru { ```yaml services: - remark42: - image: umputun/remark42:latest - restart: unless-stopped - container_name: "remark42" - ports: - - 8008:8080 - env_file: remark42.env - volumes: - - remark42:/srv/var - posse: - image: registry.neonxp.ru/posse - restart: unless-stopped - container_name: posse - env_file: posse.env - volumes: - - ./seq.txt:/store/seq.txt + remark42: + image: umputun/remark42:latest + restart: unless-stopped + container_name: "remark42" + ports: + - 8008:8080 + env_file: remark42.env + volumes: + - remark42:/srv/var + posse: + image: registry.neonxp.ru/posse + restart: unless-stopped + container_name: posse + env_file: posse.env + volumes: + - ./seq.txt:/store/seq.txt volumes: - remark42: + remark42: ``` Как понятно из этого docker-compose.yml — дополнительно поднимаются два контейнера: -* remark42 — система комментариев -* posse — моя программка, которая чекает RSS блога и репостит его в Telegram +- remark42 — система комментариев +- posse — моя программка, которая чекает RSS блога и репостит его в Telegram ## Остальное Конечно же, на этой железке крутится не только блог, но и несколько других сервисов для личного использования -* Nextcloud — личное облако -* Vaultwarden — хранилище паролей -* SOPDS — личная библиотека Либрусека -* Git хостинг и Container registry — для разработки и хранения кода +- Nextcloud — личное облако +- Vaultwarden — хранилище паролей +- SOPDS — личная библиотека Либрусека +- Git хостинг и Container registry — для разработки и хранения кода Но об этом я расскажу в другой раз 😉 diff --git a/content/posts/files/2024-12-17-infra_cover.webp b/content/posts/2024-12-17-infra/infra_cover.webp Binary files differindex c02c8be..c02c8be 100644 --- a/content/posts/files/2024-12-17-infra_cover.webp +++ b/content/posts/2024-12-17-infra/infra_cover.webp diff --git a/content/posts/2024-12-30-irc.md b/content/posts/2024-12-30-irc/index.md index d58ecf6..4e6086a 100644 --- a/content/posts/2024-12-30-irc.md +++ b/content/posts/2024-12-30-irc/index.md @@ -1,14 +1,14 @@ --- categories: -- Заметка -date: '2024-12-30T14:54:08+03:00' -description: '' + - Заметка +date: "2024-12-30T14:54:08+03:00" +description: "" draft: true -image: files/2024-12-30-irc_logo.webp +image: irc_logo.webp location: Казань tags: -- IRC -- IT + - IRC + - IT title: IRC --- @@ -24,7 +24,7 @@ title: IRC любого электрочайника. Например, даже на таких устройствах[^1], я вполне себе могу представить клиент к -ИРКе, но не представлю клиента телеграма. +ИРКе, но не представлю клиента телеграма. [^1]: https://club.hugeping.ru/blog/IYMX9ZdAnn0dA1RBO5JH#IYMX9ZdAnn0dA1RBO5JH И недавно я обнаружил, что IRC не только не умер, но и развивается, @@ -39,9 +39,9 @@ title: IRC В любом современном IRC клиенте: -* Сервер: `irc.neonxp.ru` -* Порт: `6667` текстовый, `6697` TLS -* Кодировка: `utf8` +- Сервер: `irc.neonxp.ru` +- Порт: `6667` текстовый, `6697` TLS +- Кодировка: `utf8` Регистрация есть через NickServ но опциональная. diff --git a/content/posts/files/2024-12-30-irc_logo.webp b/content/posts/2024-12-30-irc/irc_logo.webp Binary files differindex 26c4182..26c4182 100644 --- a/content/posts/files/2024-12-30-irc_logo.webp +++ b/content/posts/2024-12-30-irc/irc_logo.webp diff --git a/content/posts/files/2024-12-31-new-year_img/1.webp b/content/posts/2024-12-31-new-year/img/1.webp Binary files differindex f320b83..f320b83 100644 --- a/content/posts/files/2024-12-31-new-year_img/1.webp +++ b/content/posts/2024-12-31-new-year/img/1.webp diff --git a/content/posts/files/2024-12-31-new-year_img/2.webp b/content/posts/2024-12-31-new-year/img/2.webp Binary files differindex 49a1ed1..49a1ed1 100644 --- a/content/posts/files/2024-12-31-new-year_img/2.webp +++ b/content/posts/2024-12-31-new-year/img/2.webp diff --git a/content/posts/files/2024-12-31-new-year_img/2025.webp b/content/posts/2024-12-31-new-year/img/2025.webp Binary files differindex 9cc3c0b..9cc3c0b 100644 --- a/content/posts/files/2024-12-31-new-year_img/2025.webp +++ b/content/posts/2024-12-31-new-year/img/2025.webp diff --git a/content/posts/files/2024-12-31-new-year_img/3.webp b/content/posts/2024-12-31-new-year/img/3.webp Binary files differindex 64dedc8..64dedc8 100644 --- a/content/posts/files/2024-12-31-new-year_img/3.webp +++ b/content/posts/2024-12-31-new-year/img/3.webp diff --git a/content/posts/files/2024-12-31-new-year_img/4.webp b/content/posts/2024-12-31-new-year/img/4.webp Binary files differindex b5af0b5..b5af0b5 100644 --- a/content/posts/files/2024-12-31-new-year_img/4.webp +++ b/content/posts/2024-12-31-new-year/img/4.webp diff --git a/content/posts/files/2024-12-31-new-year_img/5.webp b/content/posts/2024-12-31-new-year/img/5.webp Binary files differindex 86a8c2d..86a8c2d 100644 --- a/content/posts/files/2024-12-31-new-year_img/5.webp +++ b/content/posts/2024-12-31-new-year/img/5.webp diff --git a/content/posts/2024-12-31-new-year.md b/content/posts/2024-12-31-new-year/index.md index 56e2891..17d08e0 100644 --- a/content/posts/2024-12-31-new-year.md +++ b/content/posts/2024-12-31-new-year/index.md @@ -1,17 +1,19 @@ --- categories: -- Без рубрики -date: '2024-12-31T15:48:25+03:00' -description: '' + - Без рубрики +date: "2024-12-31T15:48:25+03:00" +description: "" image: 2025.webp location: Казань tags: -- разное + - разное title: С Новым Годом! --- Ну что же, друзья, с наступающим! + + В этот день принято подводить итоги года. Ну и я подведу немного: - Поступил в институт брака. Раз уж нет классического высшего, что ещё остаётся то ;) @@ -31,16 +33,16 @@ title: С Новым Годом! <!--more--> -* Институт брака -  -* Выхожу с работы -  -* Собаньки на Кавказе -  -* Своя личная обсерватория -  -* Домик в деревне -  +- Институт брака +  +- Выхожу с работы +  +- Собаньки на Кавказе +  +- Своя личная обсерватория +  +- Домик в деревне +  Вот как-то так :) diff --git a/content/posts/2025-04-05-tabs-or-spaces.md b/content/posts/2025-04-05-tabs-or-spaces/index.md index a44e052..8122e06 100644 --- a/content/posts/2025-04-05-tabs-or-spaces.md +++ b/content/posts/2025-04-05-tabs-or-spaces/index.md @@ -1,12 +1,12 @@ --- categories: -- Размышления -date: '2025-04-05T16:53:27+03:00' + - Размышления +date: "2025-04-05T16:53:27+03:00" description: null image: null location: Казань tags: -- размышления + - размышления title: Табы или пробелы? --- @@ -31,22 +31,22 @@ title: Табы или пробелы? выбора то нет. Конечно же, только табы! Отступ пробелами просто не имеет права на жизнь, и вот почему: -* Во-первых, это просто какой-то костыль, использовать пробел не по назначению. +- Во-первых, это просто какой-то костыль, использовать пробел не по назначению. Наверное, не очень очевидно, но назначение пробела — это именно разделение слов. Невероятно! А наначение таба — как раз таки форматирование отступа. Давайте использовать инструменты по назначению! -* Во-вторых, и самое главное, как по мне, это гибкость табуляции. Я, как +- Во-вторых, и самое главное, как по мне, это гибкость табуляции. Я, как читающий код, волен сам выбирать размер отступа. Например, если у меня узкий - экран (смартфон, например) — я выберу отступ в 2 *визуальных* пробела. + экран (смартфон, например) — я выберу отступ в 2 _визуальных_ пробела. Наоборот, если бы у меня было слабое зрение — я бы выбрал отступ в бо́льшее - число *визуальных* пробелов. -* В-третьих, исходя из предыдущего пункта, я считаю, что использование именно + число _визуальных_ пробелов. +- В-третьих, исходя из предыдущего пункта, я считаю, что использование именно пробелов — это диктование автором исходника мне своей воли в виде своих предпочтений (например, только 4 пробела, и никак иначе!). А какого чёрта? Это буквально насилие! Зачем? Я считаю, это не допустимо. Пусть у каждого будет - возможность выбирать себе настройки отображения на *своей* машине под *свои* + возможность выбирать себе настройки отображения на _своей_ машине под _свои_ вкусы, а не вкусы автора! -* В-четвёртых, самое малозначительное — это то, что таб это 1 байт, а пробелов +- В-четвёртых, самое малозначительное — это то, что таб это 1 байт, а пробелов обычно больше чем 1 байт (от 2 до 8). Я считаю этот аргумент малозначительным, т.к. уж что что, а места на носителях информации нынче в достатке. Но тем не менее, это один из аргументов! @@ -56,7 +56,7 @@ title: Табы или пробелы? почему, вроде как, умные люди которые эти стандарты придумывали так сделали. Возможно, привычка. Но является ли привычка каких-то людей аргументом? Наверное, нет. И самое грустное, что эти стандарты уже не поменять, ибо с их -использованием *уже* написаны мегатонны кодов. +использованием _уже_ написаны мегатонны кодов. Единственное, меня радует, что хотя бы в стандарте форматирования моего любимого языка Go этой откровенной чуши нет. В Go отступы приняты табами и только ими. @@ -103,7 +103,7 @@ soft-wraps. Если коротко, при hard-wraps в текст в точк > e.g. "dot point" lists or poems with deliberately short lines will be > displayed correctly without the author having to do any extra work or the > client having to be any smarter in order to recognise and handle that kind of -> content correctly. +> content correctly. Сначала, я подумал, да это же нифига не удобно, что используются длинные строки, а не склеиваются разделённые одним переносом как в Markdown! Более того, это моё @@ -122,7 +122,7 @@ hard-wraps и форматировал что код, что markdown для б преформатированный текст, при парсинге которого надо помнить состояние. Но и это очень просто, достаточно держать единственный флаг который говорит, мы сейчас в нормальном состоянии или в состоянии преформатированного текста. И переключать -этот флаг когда очередная строка начинается с *```*. Вообще, Gemtext кажется +этот флаг когда очередная строка начинается с _```_. Вообще, Gemtext кажется наиболее правильным и приятным для меня языком разметки. Наверное, я на него перейду. Но потом, сейчас нет времени. @@ -133,10 +133,10 @@ hard-wraps и форматировал что код, что markdown для б И вот аргументы: -* Во-первых, все редакторы кода поддерживают soft-wrap и каждый волен выставить +- Во-первых, все редакторы кода поддерживают soft-wrap и каждый волен выставить для своего личного редактора удобную ему длину строки, а не подчиняться привычкам автора кода. -* Во-вторых, за длину в 80 символов топят в основном старпёры что-то там +- Во-вторых, за длину в 80 символов топят в основном старпёры что-то там говорящие про терминалы шириной в 80 символов. Только и этот аргумент не понятен. Когда вы в последнее время видели терминал в 80 символов? Не эмулятор терминала, а именно сам терминал? Ну даже, хорошо, пусть будет этот терминал в @@ -145,10 +145,10 @@ hard-wraps и форматировал что код, что markdown для б современное в 120) выглядит как высосанное из пальца, потому что под ним нет реальной основы кроме каких-то там исторических причин на доисторическом железе. -* В-третьих, см. пункт про насилие автора кода над читателем кода. Например, +- В-третьих, см. пункт про насилие автора кода над читателем кода. Например, опять таки, узкий монитор например. И на нём не soft-wrapped текст может вызывать горизонтальную прокрутку. И это убого. -* В-четвёртых, да, это усложняет парсинг. Это слабый аргумент, я знаю. Как +- В-четвёртых, да, это усложняет парсинг. Это слабый аргумент, я знаю. Как пример, правильный парсер Markdown (не буду тут бомбить про количество разных стандартов Markdown) пишется не то чтобы очень просто. В это же время, написать парсер Gemtext который полностью покроет спецификацию — дело максимум @@ -168,7 +168,7 @@ hard-wraps и форматировал что код, что markdown для б > Мне есть что сказать про ширину таба и 80 символов. > Аргумент про разную ширину таба работает слабо: многие стили предполагают его -> фиксированную длину. Если ставить другой, то форматирование ломается. +> фиксированную длину. Если ставить другой, то форматирование ломается. > Пример: ядро Linux, где ширина таба 8, и аргументы функций "плывут" при другой > ширине. @@ -177,7 +177,7 @@ hard-wraps и форматировал что код, что markdown для б ли разница для читающего код, как именно он его видит: ``` -// tabsize=2 +/ tabsize=2 func someFunc( one, two, @@ -194,7 +194,7 @@ hard-wraps и форматировал что код, что markdown для б или так ``` -// tabsize=4 +/ tabsize=4 func someFunc( one, two, @@ -211,7 +211,7 @@ hard-wraps и форматировал что код, что markdown для б или даже так ``` -// tabsize=8 +/ tabsize=8 func someFunc( one, two, @@ -228,10 +228,9 @@ hard-wraps и форматировал что код, что markdown для б Кажется, что для 8 пробелов на таб всё сильно уезжает, но раз человек себе так настроил — то как будто его право и наверное были основания? - > Про 80 символов. Дело вообще не в размере терминала или ширине перфокарты. > Некоторые программисты разделяют редактор на две вкладки, чтобы смотреть два -> файла. +> файла. И тогда soft-wrap как раз и вместит весь код в каждую из половинок без горизонтальной прокрутки, о чём я и говорю. @@ -239,7 +238,7 @@ hard-wraps и форматировал что код, что markdown для б > Некоторые используют большой шрифт. С шириной в 120 символов мы лишаем из > возможности удобно читать код. К тому же, я считаю этот аргумент важным, 120 > символов - это способ замаскировать плохой код. Чувак сделал 5 уровней -> вложенности в коде? Отлично! Главное чтобы в 120 символов влезло. +> вложенности в коде? Отлично! Главное чтобы в 120 символов влезло. Всё так! Возможно, я не очень подробно расписал, но основная моя мысль в том, что такое жесткое ограничение мне кажется просто надуманным и взятым с потолка. @@ -328,7 +327,6 @@ P.S.: Из забавного => https://tonsky.me/blog/disenchantment/ru/ [2] - ## Update 06.04.25 - 2 Со вчерашнего дня я решил дополнить немного ещё. @@ -344,7 +342,7 @@ P.S.: Из забавного → → Const3 = 3 ``` -для меня вполне нормально кажется. Даже более того, табы *внутри* строки кажутся +для меня вполне нормально кажется. Даже более того, табы _внутри_ строки кажутся плохим решением. Я говорю только про отступы в начале строки. Во-вторых, насчёт длинных строк. Я расписал немного сумбурно и в одну кашу @@ -352,17 +350,17 @@ P.S.: Из забавного но я всё равно считаю жесткое ограничение необоснованным ни там ни там. Но по разным причинам: -* Для обычного текста ограничение в N символов выглядит таким же не обоснованым, +- Для обычного текста ограничение в N символов выглядит таким же не обоснованым, как, например, требование автора «Читайте мои тексты только шрифтом Arial 12pt». Глупость? Глупость. -* Так же встречал, что люди используют это ограничение при написании электронных +- Так же встречал, что люди используют это ограничение при написании электронных писем. Это выглядит как минимум странно. Письмо пишется для кого? Для получателя, т.е. читателя. Почему отправитель за читателя решает то, как у него будет отображаться письмо? Я часто читаю почту со смартфона с узким экраном, но средним шрифтом (чтобы меньше напрягать глаза). И горизонтальная прокрутка выглядит не очень. Горизонтальная прокрутка вообще почти всегда выглядит не очень и её стоит избегать всеми силами. -* Для кода же история другая. Я не настолько поехал чтобы требовать всё писать в +- Для кода же история другая. Я не настолько поехал чтобы требовать всё писать в одну строку. Если у функции в сигнатуре много (больше одного - двух) аргументов — то это отличная идея написать их в столбик, а не в длинную линию, которая ещё неизвестно как перенесётся. Я против именно переноса только из-за diff --git a/content/posts/2025-05-19-nxpcms-2.md b/content/posts/2025-05-19-nxpcms-2/index.md index b92a308..cc44c59 100644 --- a/content/posts/2025-05-19-nxpcms-2.md +++ b/content/posts/2025-05-19-nxpcms-2/index.md @@ -1,5 +1,5 @@ --- -date: '2025-05-19T01:00:00+03:00' +date: "2025-05-19T01:00:00+03:00" title: NXPCMS — моя CMS'ка (ч.2) --- diff --git a/content/posts/2025-05-19-nxpcms.md b/content/posts/2025-05-19-nxpcms/index.md index d1d30e6..11b8d53 100644 --- a/content/posts/2025-05-19-nxpcms.md +++ b/content/posts/2025-05-19-nxpcms/index.md @@ -1,5 +1,5 @@ --- -date: '2025-05-19T00:00:00+03:00' +date: "2025-05-19T00:00:00+03:00" title: NXPCMS — моя CMS'ка (ч.1) --- @@ -8,7 +8,7 @@ title: NXPCMS — моя CMS'ка (ч.1) воспылал интересом к треккерной музыке. При этом я немного полазал по сети, поспрашивал знакомых и собрал достаточно большую (>80Гб!) коллекцию. Но просто хранить на диске было скучно и я решил её выложить во внешку. Так появился -shelter.neonxp.ru (сейчас не работает, почему - объясню ниже). +shelter.neonxp.ru (сейчас не работает, почему - объясню ниже). Сначала список файлов сервил в веб просто Caddy, но у него был недостаток: он не мог дать послушать треккерный файл без скачивания. Тогда я накидал простенькую @@ -22,15 +22,17 @@ shelter.neonxp.ru (сейчас не работает, почему - объяс Но пишу только сейчас, потому что вчера после переезда уже ничего не хотел писать, ибо переезд был непрост. И как я уже выше говорил, пока отключил shelter в пользу этого сайта. Позже заведу и shelter. Особенности моей CMS: -* минимум конфигурации: один бинарник, который при запуске сервит сайт из + +- минимум конфигурации: один бинарник, который при запуске сервит сайт из текущей рабочей директории. -* структура сайта ~= файловая структура, отсюда и листинг файлов на каждой +- структура сайта ~= файловая структура, отсюда и листинг файлов на каждой странице -* нет какого-то общего файла конфигурации (аля /etc/...), вместо этого для +- нет какого-то общего файла конфигурации (аля /etc/...), вместо этого для каждой директории можно создать свой файл .config.json (формат hjson, на самом деле), который распространяет своё действие на текущую директорию, и на все вложенные. Вложенные директории могут иметь свои конфиги, которые могут или частично или полностью переопределять родительский конфиг. Например: + ``` /var/www/neonxp.ru/.config.json @@ -41,8 +43,10 @@ shelter.neonxp.ru (сейчас не работает, почему - объяс "url": "https://neonxp.ru/", } ``` + а для директории постов важно, чтобы сортировка была в обратном порядке, поэтому её конфиг выглядит следующим образом: + ``` /var/www/neonxp.ru/posts/.config.json @@ -51,9 +55,11 @@ shelter.neonxp.ru (сейчас не работает, почему - объяс "desc": true, } ``` + Немного напоминает дедушку Apache2 с его .htaccess :) Но мне это кажется весьма удачной идеей. -* Основной формат разметки — gemtext. Просто потому что мне он нравится своим + +- Основной формат разметки — gemtext. Просто потому что мне он нравится своим радикальным минимализмом. Минималистично настолько, что его парсер в html для этой CMS я написал примерно за час с нуля. @@ -66,12 +72,13 @@ shelter.neonxp.ru (сейчас не работает, почему - объяс ## Что дальше? А дальше я буду развивать её в сторону тех фич, что нужны лично мне: -* Доделать миграцию постов и материалов из старого блога. Сейчас всё + +- Доделать миграцию постов и материалов из старого блога. Сейчас всё импортировано в автоматическом режиме и выглядит откровенно плохо -* Поддержка предпросмотра большего числа форматов файлов -* Хотелось бы сделать Basic авторизацию + загрузку файлов по http -* Раз уж используется gemtext — сделать и поддержку gemini протокола -* Прикрутить cgi или скрипты на lua? А почему-бы и нет? :) Хотя бы сделаю +- Поддержка предпросмотра большего числа форматов файлов +- Хотелось бы сделать Basic авторизацию + загрузку файлов по http +- Раз уж используется gemtext — сделать и поддержку gemini протокола +- Прикрутить cgi или скрипты на lua? А почему-бы и нет? :) Хотя бы сделаю какую-нибудь олдскульную гостевуху -* Прикрутить все эти клёвые indieweb штуки, которые было весьма проблемно +- Прикрутить все эти клёвые indieweb штуки, которые было весьма проблемно прикрутить к Hugo блогу в силу его статичности diff --git a/content/posts/2025-06-08-my-setup/index.md b/content/posts/2025-06-08-my-setup/index.md new file mode 100644 index 0000000..6d99346 --- /dev/null +++ b/content/posts/2025-06-08-my-setup/index.md @@ -0,0 +1,20 @@ +--- +date: "2025-06-08T00:00:00+03:00" +tags: + - сетап + - гиковское +title: Мой сетап 2025 +--- + +Давно ничего не писал, да и не было особо о чём. Немного играюсь с нейросетями и +LLM в последнее время. Если выйдет что интересное - напишу об этом. + +А пока хотел написать вот о чём. + +Не помню, чтобы я когда-либо писал о том, какой у меня основной сетап, хотя сам +с удовольствием читал о том, как он организован у других людей. Пожалуй, пришло +время и мне его описать. + +<!--more--> + +[Пост переехал в постоянный раздел](/pages/setup/) diff --git a/content/posts/2025-08-02-meshtastic.md b/content/posts/2025-08-02-meshtastic/index.md index fad4394..40ef5a6 100644 --- a/content/posts/2025-08-02-meshtastic.md +++ b/content/posts/2025-08-02-meshtastic/index.md @@ -1,9 +1,9 @@ --- -cover: /posts/files/meshtastic_img/tbeam.webp -date: '2025-08-02T18:00:00+03:00' +cover: /posts/2025-08-02-meshtastic/tbeam.webp +date: "2025-08-02T18:00:00+03:00" tags: -- meshatastic -- гиковское + - meshatastic + - гиковское title: Meshtastic --- @@ -41,7 +41,7 @@ title: Meshtastic единовременно у меня, по сути, только один аплинк до остальной сети. Ну ничего, я уже заказал антенну получше ;). - + Чехол всратоватый потому что я его печатал в наихудшем качестве, на неотрегулированном принтере. Главное - свою задачу защиты выполняет. diff --git a/content/posts/files/meshtastic_img/tbeam.jpg b/content/posts/2025-08-02-meshtastic/tbeam.jpg Binary files differindex 214dc21..214dc21 100644 --- a/content/posts/files/meshtastic_img/tbeam.jpg +++ b/content/posts/2025-08-02-meshtastic/tbeam.jpg diff --git a/content/posts/files/meshtastic_img/tbeam.webp b/content/posts/2025-08-02-meshtastic/tbeam.webp Binary files differindex 7e89d94..7e89d94 100644 --- a/content/posts/files/meshtastic_img/tbeam.webp +++ b/content/posts/2025-08-02-meshtastic/tbeam.webp diff --git a/content/posts/files/lets-code-3d_img/1.jpg b/content/posts/2025-08-05-lets-code-3d/1.jpg Binary files differindex 87f41e7..87f41e7 100644 --- a/content/posts/files/lets-code-3d_img/1.jpg +++ b/content/posts/2025-08-05-lets-code-3d/1.jpg diff --git a/content/posts/files/lets-code-3d_img/2.jpg b/content/posts/2025-08-05-lets-code-3d/2.jpg Binary files differindex db14947..db14947 100644 --- a/content/posts/files/lets-code-3d_img/2.jpg +++ b/content/posts/2025-08-05-lets-code-3d/2.jpg diff --git a/content/posts/files/lets-code-3d_img/3.png b/content/posts/2025-08-05-lets-code-3d/3.png Binary files differindex 9887043..9887043 100644 --- a/content/posts/files/lets-code-3d_img/3.png +++ b/content/posts/2025-08-05-lets-code-3d/3.png diff --git a/content/posts/files/lets-code-3d_img/4.jpg b/content/posts/2025-08-05-lets-code-3d/4.jpg Binary files differindex 4e7ebc7..4e7ebc7 100644 --- a/content/posts/files/lets-code-3d_img/4.jpg +++ b/content/posts/2025-08-05-lets-code-3d/4.jpg diff --git a/content/posts/2025-08-05-lets-code-3d.md b/content/posts/2025-08-05-lets-code-3d/index.md index 3809861..700c666 100644 --- a/content/posts/2025-08-05-lets-code-3d.md +++ b/content/posts/2025-08-05-lets-code-3d/index.md @@ -1,9 +1,9 @@ --- -cover: /posts/files/lets-code-3d_img/4.jpg -date: '2025-08-05T20:00:00+03:00' +cover: /posts/2025-08-05-lets-code-3d/4.jpg +date: "2025-08-05T20:00:00+03:00" tags: -- 3D печать -- гиковское + - 3D печать + - гиковское title: Давай запрограммируем деталь? --- @@ -20,7 +20,7 @@ title: Давай запрограммируем деталь? <!--more--> - Бокорезы и + Бокорезы и колпачок ## Проектирование @@ -36,7 +36,7 @@ title: Давай запрограммируем деталь? пример: ```openscad -cube([25,35,55]); // Нарисовать куб размерами 25мм х 25мм х 55мм +cube([25,35,55]); / Нарисовать куб размерами 25мм х 25мм х 55мм ``` Просто? Очень! А учитывая что язык полноценный, с циклами и условиями @@ -50,7 +50,7 @@ cube([25,35,55]); // Нарисовать куб размерами 25мм х 25 про всё у меня ушло где-то с полчаса. И у меня получилась первая версия колпачка. Максимально простая и дубовая. Первая куцая версия: - + ## Вторая версия @@ -61,73 +61,73 @@ cube([25,35,55]); // Нарисовать куб размерами 25мм х 25 модель, чтобы было легко менять её размеры, а не хардкодить их. И вот получилась вторая, и на текущий момент окончательная версия: - + И результат «в железе», то есть в пластике :) - + -А сам код, думаю, он достаточно понятен ([исходники](/posts/files/source.scad) и -[STL модель](/posts/files/result.stl) я прикладываю к этому посту): +А сам код, думаю, он достаточно понятен ([исходники](/posts/2025-08-05-lets-code-3d/source.scad) и +[STL модель](/posts/2025-08-05-lets-code-3d/result.stl) я прикладываю к этому посту): ```openscad -// Толщина стенки +/ Толщина стенки wall = 2; -// Высота внешняя +/ Высота внешняя height = 12; -// Длина основной части (внутренняя) +/ Длина основной части (внутренняя) l1 = 15; -// Длина носика (внутренняя) +/ Длина носика (внутренняя) l2 = 20; -// Ширина у основания (внутренняя) +/ Ширина у основания (внутренняя) w = 15; -// Толщина метала бокорезов +/ Толщина метала бокорезов toolWidth = 2.1; -// Нижняя крышка +/ Нижняя крышка cover(0); -// Верхняя крышка +/ Верхняя крышка cover(height - wall); -// Корпус +/ Корпус difference() { linear_extrude(height) polygon( - [ // Полигон идёт против часовой стрелки + [ / Полигон идёт против часовой стрелки [0, 0], [wall, 0], [wall, l1], - [w / 2 + wall, l1 + l2], // Внутренний кончик носика + [w / 2 + wall, l1 + l2], / Внутренний кончик носика [w + wall, l1], [w + wall, 0], [w + wall * 2, 0], [w + wall * 2, l1], - [w / 2 + wall / 2 + wall, l1 + l2 + wall], // Внешний кончик носика + [w / 2 + wall / 2 + wall, l1 + l2 + wall], / Внешний кончик носика [w / 2 - wall / 2 + wall, l1 + l2 + wall], [0, l1], ] ); - // Вырезы - translate([w + wall, 0, height / 2 - toolWidth]) // Правый вырез чуть ниже середины + / Вырезы + translate([w + wall, 0, height / 2 - toolWidth]) / Правый вырез чуть ниже середины cube([wall, l1 / 2, toolWidth]); - translate([0, 0, height / 2]) // Левый вырез чуть выше середины + translate([0, 0, height / 2]) / Левый вырез чуть выше середины cube([wall, l1 / 2, toolWidth]); } -// Крышка +/ Крышка module cover(z) { translate([0, 0, z]) linear_extrude(wall) polygon( - [ // Полигон идёт против часовой стрелки + [ / Полигон идёт против часовой стрелки [0, 0], [w + wall * 2, 0], [w + wall * 2, l1], diff --git a/content/posts/files/lets-code-3d_result.stl b/content/posts/2025-08-05-lets-code-3d/lets-code-3d_result.stl Binary files differindex fdd4d19..fdd4d19 100644 --- a/content/posts/files/lets-code-3d_result.stl +++ b/content/posts/2025-08-05-lets-code-3d/lets-code-3d_result.stl diff --git a/content/posts/files/lets-code-3d_source.scad b/content/posts/2025-08-05-lets-code-3d/lets-code-3d_source.scad index b651cb3..b651cb3 100644 --- a/content/posts/files/lets-code-3d_source.scad +++ b/content/posts/2025-08-05-lets-code-3d/lets-code-3d_source.scad diff --git a/content/posts/files/makeup-organizer_img/1.png b/content/posts/2025-08-09-makeup-organizer/1.png Binary files differindex 8f26704..8f26704 100644 --- a/content/posts/files/makeup-organizer_img/1.png +++ b/content/posts/2025-08-09-makeup-organizer/1.png diff --git a/content/posts/files/makeup-organizer_img/2.png b/content/posts/2025-08-09-makeup-organizer/2.png Binary files differindex 6613744..6613744 100644 --- a/content/posts/files/makeup-organizer_img/2.png +++ b/content/posts/2025-08-09-makeup-organizer/2.png diff --git a/content/posts/files/makeup-organizer_img/3.png b/content/posts/2025-08-09-makeup-organizer/3.png Binary files differindex 993135e..993135e 100644 --- a/content/posts/files/makeup-organizer_img/3.png +++ b/content/posts/2025-08-09-makeup-organizer/3.png diff --git a/content/posts/2025-08-09-makeup-organizer.md b/content/posts/2025-08-09-makeup-organizer/index.md index b6a3feb..271b37d 100644 --- a/content/posts/2025-08-09-makeup-organizer.md +++ b/content/posts/2025-08-09-makeup-organizer/index.md @@ -1,9 +1,9 @@ --- -cover: /posts/files/makeup-organizer_img/2.png -date: '2025-08-09T16:00:00+03:00' +cover: /posts/2025-08-09-makeup-organizer/2.png +date: "2025-08-09T16:00:00+03:00" tags: -- 3D печать -- гиковское + - 3D печать + - гиковское title: Ещё немного печати --- @@ -20,19 +20,19 @@ title: Ещё немного печати Вот так результат в редакторе: - + А вот так в слайсере: - + Ну и впервые решил добавить «клеймо мастера» со своим логотипом. Впредь, буду добавлять его на все свои изделия, которые запроектированы именно мной. - + Фотографий готового изделия пока нет, ибо печататься ему ещё минимум 10 часов. Фото я приложу позже отдельным постом ;) **P.S.** [архив с исходниками и готовым для печати STL -прилагаю](/posts/files/organizer.tar.zst) +прилагаю](/posts/2025-08-09-makeup-organizer/organizer.tar.zst) diff --git a/content/posts/files/makeup-organizer_organizer.tar.zst b/content/posts/2025-08-09-makeup-organizer/makeup-organizer_organizer.tar.zst Binary files differindex 7e2e2bb..7e2e2bb 100644 --- a/content/posts/files/makeup-organizer_organizer.tar.zst +++ b/content/posts/2025-08-09-makeup-organizer/makeup-organizer_organizer.tar.zst diff --git a/content/posts/files/2025-travel-1_img/1.webp b/content/posts/2025-09-01-travel-1/1.webp Binary files differindex bc037f2..bc037f2 100644 --- a/content/posts/files/2025-travel-1_img/1.webp +++ b/content/posts/2025-09-01-travel-1/1.webp diff --git a/content/posts/files/2025-travel-1_img/10.webp b/content/posts/2025-09-01-travel-1/10.webp Binary files differindex 32bb46f..32bb46f 100644 --- a/content/posts/files/2025-travel-1_img/10.webp +++ b/content/posts/2025-09-01-travel-1/10.webp diff --git a/content/posts/files/2025-travel-1_img/11.webp b/content/posts/2025-09-01-travel-1/11.webp Binary files differindex 12f0933..12f0933 100644 --- a/content/posts/files/2025-travel-1_img/11.webp +++ b/content/posts/2025-09-01-travel-1/11.webp diff --git a/content/posts/files/2025-travel-1_img/12.webp b/content/posts/2025-09-01-travel-1/12.webp Binary files differindex c797bf3..c797bf3 100644 --- a/content/posts/files/2025-travel-1_img/12.webp +++ b/content/posts/2025-09-01-travel-1/12.webp diff --git a/content/posts/files/2025-travel-1_img/13.webp b/content/posts/2025-09-01-travel-1/13.webp Binary files differindex 96db2e5..96db2e5 100644 --- a/content/posts/files/2025-travel-1_img/13.webp +++ b/content/posts/2025-09-01-travel-1/13.webp diff --git a/content/posts/files/2025-travel-1_img/14.webp b/content/posts/2025-09-01-travel-1/14.webp Binary files differindex 66a53d8..66a53d8 100644 --- a/content/posts/files/2025-travel-1_img/14.webp +++ b/content/posts/2025-09-01-travel-1/14.webp diff --git a/content/posts/files/2025-travel-1_img/15.webp b/content/posts/2025-09-01-travel-1/15.webp Binary files differindex a71672b..a71672b 100644 --- a/content/posts/files/2025-travel-1_img/15.webp +++ b/content/posts/2025-09-01-travel-1/15.webp diff --git a/content/posts/files/2025-travel-1_img/16.webp b/content/posts/2025-09-01-travel-1/16.webp Binary files differindex e690ba3..e690ba3 100644 --- a/content/posts/files/2025-travel-1_img/16.webp +++ b/content/posts/2025-09-01-travel-1/16.webp diff --git a/content/posts/files/2025-travel-1_img/17.webp b/content/posts/2025-09-01-travel-1/17.webp Binary files differindex 81fa05b..81fa05b 100644 --- a/content/posts/files/2025-travel-1_img/17.webp +++ b/content/posts/2025-09-01-travel-1/17.webp diff --git a/content/posts/files/2025-travel-1_img/18.webp b/content/posts/2025-09-01-travel-1/18.webp Binary files differindex 5905999..5905999 100644 --- a/content/posts/files/2025-travel-1_img/18.webp +++ b/content/posts/2025-09-01-travel-1/18.webp diff --git a/content/posts/files/2025-travel-1_img/19.webp b/content/posts/2025-09-01-travel-1/19.webp Binary files differindex ab80bd9..ab80bd9 100644 --- a/content/posts/files/2025-travel-1_img/19.webp +++ b/content/posts/2025-09-01-travel-1/19.webp diff --git a/content/posts/files/2025-travel-1_img/2.webp b/content/posts/2025-09-01-travel-1/2.webp Binary files differindex b9ecc86..b9ecc86 100644 --- a/content/posts/files/2025-travel-1_img/2.webp +++ b/content/posts/2025-09-01-travel-1/2.webp diff --git a/content/posts/files/2025-travel-1_img/20.webp b/content/posts/2025-09-01-travel-1/20.webp Binary files differindex 1cc4e35..1cc4e35 100644 --- a/content/posts/files/2025-travel-1_img/20.webp +++ b/content/posts/2025-09-01-travel-1/20.webp diff --git a/content/posts/files/2025-travel-1_img/21.webp b/content/posts/2025-09-01-travel-1/21.webp Binary files differindex 0f3cc2c..0f3cc2c 100644 --- a/content/posts/files/2025-travel-1_img/21.webp +++ b/content/posts/2025-09-01-travel-1/21.webp diff --git a/content/posts/files/2025-travel-1_img/22.webp b/content/posts/2025-09-01-travel-1/22.webp Binary files differindex b2d032d..b2d032d 100644 --- a/content/posts/files/2025-travel-1_img/22.webp +++ b/content/posts/2025-09-01-travel-1/22.webp diff --git a/content/posts/files/2025-travel-1_img/23.webp b/content/posts/2025-09-01-travel-1/23.webp Binary files differindex 00ad3f9..00ad3f9 100644 --- a/content/posts/files/2025-travel-1_img/23.webp +++ b/content/posts/2025-09-01-travel-1/23.webp diff --git a/content/posts/files/2025-travel-1_img/3.webp b/content/posts/2025-09-01-travel-1/3.webp Binary files differindex 37ec362..37ec362 100644 --- a/content/posts/files/2025-travel-1_img/3.webp +++ b/content/posts/2025-09-01-travel-1/3.webp diff --git a/content/posts/files/2025-travel-1_img/4.webp b/content/posts/2025-09-01-travel-1/4.webp Binary files differindex dfb29bd..dfb29bd 100644 --- a/content/posts/files/2025-travel-1_img/4.webp +++ b/content/posts/2025-09-01-travel-1/4.webp diff --git a/content/posts/files/2025-travel-1_img/5.webp b/content/posts/2025-09-01-travel-1/5.webp Binary files differindex b5e1a8f..b5e1a8f 100644 --- a/content/posts/files/2025-travel-1_img/5.webp +++ b/content/posts/2025-09-01-travel-1/5.webp diff --git a/content/posts/files/2025-travel-1_img/6.webp b/content/posts/2025-09-01-travel-1/6.webp Binary files differindex 6b6bbca..6b6bbca 100644 --- a/content/posts/files/2025-travel-1_img/6.webp +++ b/content/posts/2025-09-01-travel-1/6.webp diff --git a/content/posts/files/2025-travel-1_img/7.webp b/content/posts/2025-09-01-travel-1/7.webp Binary files differindex fcce61f..fcce61f 100644 --- a/content/posts/files/2025-travel-1_img/7.webp +++ b/content/posts/2025-09-01-travel-1/7.webp diff --git a/content/posts/files/2025-travel-1_img/8.webp b/content/posts/2025-09-01-travel-1/8.webp Binary files differindex b777d4c..b777d4c 100644 --- a/content/posts/files/2025-travel-1_img/8.webp +++ b/content/posts/2025-09-01-travel-1/8.webp diff --git a/content/posts/files/2025-travel-1_img/9.webp b/content/posts/2025-09-01-travel-1/9.webp Binary files differindex f40de11..f40de11 100644 --- a/content/posts/files/2025-travel-1_img/9.webp +++ b/content/posts/2025-09-01-travel-1/9.webp diff --git a/content/posts/2025-09-01-travel-1.md b/content/posts/2025-09-01-travel-1/index.md index 7d86c1f..0c5e499 100644 --- a/content/posts/2025-09-01-travel-1.md +++ b/content/posts/2025-09-01-travel-1/index.md @@ -1,13 +1,13 @@ --- -cover: /posts/files/2025-travel-1_img/preview_1.webp -date: '2025-09-01T20:00:00+03:00' +cover: /posts/2025-09-01-travel-1/preview_1.webp +date: "2025-09-01T20:00:00+03:00" tags: -- тревелблог -title: 'Поездка по Кавказу. Часть 1: САО РАН и Аланское городище в Нижнем Архызе' + - тревелблог +title: "Поездка по Кавказу. Часть 1: САО РАН и Аланское городище в Нижнем Архызе" --- [](/posts/files/2025-travel-1_img/1.webp) +САО](/posts/2025-09-01-travel-1/preview_1.webp)](/posts/2025-09-01-travel-1/1.webp) ## САО РАН @@ -22,7 +22,7 @@ title: 'Поездка по Кавказу. Часть 1: САО РАН и Ал тонны! Высота купола — 53 метра, а высота самого телескопа в вертикальном положении (как на фото) — более 40 метров! - + <!--more--> @@ -32,31 +32,31 @@ title: 'Поездка по Кавказу. Часть 1: САО РАН и Ал Дальше — небольшой фотоотчёт и расскажу о втором месте, где побывал. [](/posts/files/2025-travel-1_img/2.webp) +встреча](/posts/2025-09-01-travel-1/preview_2.webp)](/posts/2025-09-01-travel-1/2.webp) Внезапная встреча [](/posts/files/2025-travel-1_img/3.webp) +барашков](/posts/2025-09-01-travel-1/preview_3.webp)](/posts/2025-09-01-travel-1/3.webp) Стадо козочек и барашков [](/posts/files/2025-travel-1_img/4.webp) +САО](/posts/2025-09-01-travel-1/preview_4.webp)](/posts/2025-09-01-travel-1/4.webp) Купол САО [](/posts/files/2025-travel-1_img/5.webp) +поменьше](/posts/2025-09-01-travel-1/preview_5.webp)](/posts/2025-09-01-travel-1/5.webp) Обсерватория поменьше [](/posts/files/2025-travel-1_img/6.webp) +кран](/posts/2025-09-01-travel-1/preview_6.webp)](/posts/2025-09-01-travel-1/6.webp) Огромный кран, с помощью которого устанавливается зеркало -[](/posts/files/2025-travel-1_img/7.webp) +[](/posts/2025-09-01-travel-1/7.webp) И вот он сам! Его величество — [БТА (Большой Телескоп Азимутальный)](<https://ru.ruwiki.ru/wiki/БТА_(телескоп)>)! @@ -86,57 +86,57 @@ title: 'Поездка по Кавказу. Часть 1: САО РАН и Ал ### Средний храм [](/posts/files/2025-travel-1_img/8.webp) +8](/posts/2025-09-01-travel-1/preview_8.webp)](/posts/2025-09-01-travel-1/8.webp) [](/posts/files/2025-travel-1_img/9.webp) +9](/posts/2025-09-01-travel-1/preview_9.webp)](/posts/2025-09-01-travel-1/9.webp) [](/posts/files/2025-travel-1_img/10.webp) +10](/posts/2025-09-01-travel-1/preview_10.webp)](/posts/2025-09-01-travel-1/10.webp) [](/posts/files/2025-travel-1_img/11.webp) +11](/posts/2025-09-01-travel-1/preview_11.webp)](/posts/2025-09-01-travel-1/11.webp) [](/posts/files/2025-travel-1_img/20.webp) +20](/posts/2025-09-01-travel-1/preview_20.webp)](/posts/2025-09-01-travel-1/20.webp) ### Северный храм [](/posts/files/2025-travel-1_img/17.webp) +17](/posts/2025-09-01-travel-1/preview_17.webp)](/posts/2025-09-01-travel-1/17.webp) [](/posts/files/2025-travel-1_img/12.webp) +12](/posts/2025-09-01-travel-1/preview_12.webp)](/posts/2025-09-01-travel-1/12.webp) [](/posts/files/2025-travel-1_img/13.webp) +13](/posts/2025-09-01-travel-1/preview_13.webp)](/posts/2025-09-01-travel-1/13.webp) [](/posts/files/2025-travel-1_img/14.webp) +14](/posts/2025-09-01-travel-1/preview_14.webp)](/posts/2025-09-01-travel-1/14.webp) [](/posts/files/2025-travel-1_img/15.webp) +15](/posts/2025-09-01-travel-1/preview_15.webp)](/posts/2025-09-01-travel-1/15.webp) [](/posts/files/2025-travel-1_img/16.webp) +16](/posts/2025-09-01-travel-1/preview_16.webp)](/posts/2025-09-01-travel-1/16.webp) ### Солярный круг [](/posts/files/2025-travel-1_img/18.webp) +18](/posts/2025-09-01-travel-1/preview_18.webp)](/posts/2025-09-01-travel-1/18.webp) [](/posts/files/2025-travel-1_img/19.webp) +19](/posts/2025-09-01-travel-1/preview_19.webp)](/posts/2025-09-01-travel-1/19.webp) ### Половецкая баба [](/posts/files/2025-travel-1_img/21.webp) +21](/posts/2025-09-01-travel-1/preview_21.webp)](/posts/2025-09-01-travel-1/21.webp) [](/posts/files/2025-travel-1_img/22.webp) +22](/posts/2025-09-01-travel-1/preview_22.webp)](/posts/2025-09-01-travel-1/22.webp) [](/posts/files/2025-travel-1_img/23.webp) +23](/posts/2025-09-01-travel-1/preview_23.webp)](/posts/2025-09-01-travel-1/23.webp) Продолжение поездки следует... diff --git a/content/posts/files/2025-travel-1_img/preview_1.webp b/content/posts/2025-09-01-travel-1/preview_1.webp Binary files differindex c18dc0c..c18dc0c 100644 --- a/content/posts/files/2025-travel-1_img/preview_1.webp +++ b/content/posts/2025-09-01-travel-1/preview_1.webp diff --git a/content/posts/files/2025-travel-1_img/preview_10.webp b/content/posts/2025-09-01-travel-1/preview_10.webp Binary files differindex 4d23293..4d23293 100644 --- a/content/posts/files/2025-travel-1_img/preview_10.webp +++ b/content/posts/2025-09-01-travel-1/preview_10.webp diff --git a/content/posts/files/2025-travel-1_img/preview_11.webp b/content/posts/2025-09-01-travel-1/preview_11.webp Binary files differindex 07e38b6..07e38b6 100644 --- a/content/posts/files/2025-travel-1_img/preview_11.webp +++ b/content/posts/2025-09-01-travel-1/preview_11.webp diff --git a/content/posts/files/2025-travel-1_img/preview_12.webp b/content/posts/2025-09-01-travel-1/preview_12.webp Binary files differindex 7a23c41..7a23c41 100644 --- a/content/posts/files/2025-travel-1_img/preview_12.webp +++ b/content/posts/2025-09-01-travel-1/preview_12.webp diff --git a/content/posts/files/2025-travel-1_img/preview_13.webp b/content/posts/2025-09-01-travel-1/preview_13.webp Binary files differindex 953fac9..953fac9 100644 --- a/content/posts/files/2025-travel-1_img/preview_13.webp +++ b/content/posts/2025-09-01-travel-1/preview_13.webp diff --git a/content/posts/files/2025-travel-1_img/preview_14.webp b/content/posts/2025-09-01-travel-1/preview_14.webp Binary files differindex 08cb032..08cb032 100644 --- a/content/posts/files/2025-travel-1_img/preview_14.webp +++ b/content/posts/2025-09-01-travel-1/preview_14.webp diff --git a/content/posts/files/2025-travel-1_img/preview_15.webp b/content/posts/2025-09-01-travel-1/preview_15.webp Binary files differindex 627702d..627702d 100644 --- a/content/posts/files/2025-travel-1_img/preview_15.webp +++ b/content/posts/2025-09-01-travel-1/preview_15.webp diff --git a/content/posts/files/2025-travel-1_img/preview_16.webp b/content/posts/2025-09-01-travel-1/preview_16.webp Binary files differindex 2bfa651..2bfa651 100644 --- a/content/posts/files/2025-travel-1_img/preview_16.webp +++ b/content/posts/2025-09-01-travel-1/preview_16.webp diff --git a/content/posts/files/2025-travel-1_img/preview_17.webp b/content/posts/2025-09-01-travel-1/preview_17.webp Binary files differindex 814ace2..814ace2 100644 --- a/content/posts/files/2025-travel-1_img/preview_17.webp +++ b/content/posts/2025-09-01-travel-1/preview_17.webp diff --git a/content/posts/files/2025-travel-1_img/preview_18.webp b/content/posts/2025-09-01-travel-1/preview_18.webp Binary files differindex 82422a8..82422a8 100644 --- a/content/posts/files/2025-travel-1_img/preview_18.webp +++ b/content/posts/2025-09-01-travel-1/preview_18.webp diff --git a/content/posts/files/2025-travel-1_img/preview_19.webp b/content/posts/2025-09-01-travel-1/preview_19.webp Binary files differindex b234b0c..b234b0c 100644 --- a/content/posts/files/2025-travel-1_img/preview_19.webp +++ b/content/posts/2025-09-01-travel-1/preview_19.webp diff --git a/content/posts/files/2025-travel-1_img/preview_2.webp b/content/posts/2025-09-01-travel-1/preview_2.webp Binary files differindex c730b03..c730b03 100644 --- a/content/posts/files/2025-travel-1_img/preview_2.webp +++ b/content/posts/2025-09-01-travel-1/preview_2.webp diff --git a/content/posts/files/2025-travel-1_img/preview_20.webp b/content/posts/2025-09-01-travel-1/preview_20.webp Binary files differindex 266a83e..266a83e 100644 --- a/content/posts/files/2025-travel-1_img/preview_20.webp +++ b/content/posts/2025-09-01-travel-1/preview_20.webp diff --git a/content/posts/files/2025-travel-1_img/preview_21.webp b/content/posts/2025-09-01-travel-1/preview_21.webp Binary files differindex 3cab02c..3cab02c 100644 --- a/content/posts/files/2025-travel-1_img/preview_21.webp +++ b/content/posts/2025-09-01-travel-1/preview_21.webp diff --git a/content/posts/files/2025-travel-1_img/preview_22.webp b/content/posts/2025-09-01-travel-1/preview_22.webp Binary files differindex 5530efa..5530efa 100644 --- a/content/posts/files/2025-travel-1_img/preview_22.webp +++ b/content/posts/2025-09-01-travel-1/preview_22.webp diff --git a/content/posts/files/2025-travel-1_img/preview_23.webp b/content/posts/2025-09-01-travel-1/preview_23.webp Binary files differindex aca8d32..aca8d32 100644 --- a/content/posts/files/2025-travel-1_img/preview_23.webp +++ b/content/posts/2025-09-01-travel-1/preview_23.webp diff --git a/content/posts/files/2025-travel-1_img/preview_3.webp b/content/posts/2025-09-01-travel-1/preview_3.webp Binary files differindex 511e4c4..511e4c4 100644 --- a/content/posts/files/2025-travel-1_img/preview_3.webp +++ b/content/posts/2025-09-01-travel-1/preview_3.webp diff --git a/content/posts/files/2025-travel-1_img/preview_4.webp b/content/posts/2025-09-01-travel-1/preview_4.webp Binary files differindex bfbe20e..bfbe20e 100644 --- a/content/posts/files/2025-travel-1_img/preview_4.webp +++ b/content/posts/2025-09-01-travel-1/preview_4.webp diff --git a/content/posts/files/2025-travel-1_img/preview_5.webp b/content/posts/2025-09-01-travel-1/preview_5.webp Binary files differindex 5d5811d..5d5811d 100644 --- a/content/posts/files/2025-travel-1_img/preview_5.webp +++ b/content/posts/2025-09-01-travel-1/preview_5.webp diff --git a/content/posts/files/2025-travel-1_img/preview_6.webp b/content/posts/2025-09-01-travel-1/preview_6.webp Binary files differindex 076e35b..076e35b 100644 --- a/content/posts/files/2025-travel-1_img/preview_6.webp +++ b/content/posts/2025-09-01-travel-1/preview_6.webp diff --git a/content/posts/files/2025-travel-1_img/preview_7.webp b/content/posts/2025-09-01-travel-1/preview_7.webp Binary files differindex 02cd89a..02cd89a 100644 --- a/content/posts/files/2025-travel-1_img/preview_7.webp +++ b/content/posts/2025-09-01-travel-1/preview_7.webp diff --git a/content/posts/files/2025-travel-1_img/preview_8.webp b/content/posts/2025-09-01-travel-1/preview_8.webp Binary files differindex 4c87281..4c87281 100644 --- a/content/posts/files/2025-travel-1_img/preview_8.webp +++ b/content/posts/2025-09-01-travel-1/preview_8.webp diff --git a/content/posts/files/2025-travel-1_img/preview_9.webp b/content/posts/2025-09-01-travel-1/preview_9.webp Binary files differindex 3791fbb..3791fbb 100644 --- a/content/posts/files/2025-travel-1_img/preview_9.webp +++ b/content/posts/2025-09-01-travel-1/preview_9.webp diff --git a/content/posts/files/2025-travel-1_img/saologo.png b/content/posts/2025-09-01-travel-1/saologo.png Binary files differindex 3fceeeb..3fceeeb 100644 --- a/content/posts/files/2025-travel-1_img/saologo.png +++ b/content/posts/2025-09-01-travel-1/saologo.png diff --git a/content/posts/files/hype_curve.png b/content/posts/2025-10-06-ai/hype_curve.png Binary files differindex 9147d5e..9147d5e 100644 --- a/content/posts/files/hype_curve.png +++ b/content/posts/2025-10-06-ai/hype_curve.png diff --git a/content/posts/2025-10-06-ai.md b/content/posts/2025-10-06-ai/index.md index d6b30e0..fe9f933 100644 --- a/content/posts/2025-10-06-ai.md +++ b/content/posts/2025-10-06-ai/index.md @@ -1,10 +1,10 @@ --- -cover: /posts/files/hype_curve.png -date: '2025-10-06T22:00:00Z' +cover: /posts/2025-10-06-ai/hype_curve.png +date: "2025-10-06T22:00:00Z" tags: -- размышления -- разное -- ИИ + - размышления + - разное + - ИИ title: Размышления о будущем ИИ --- @@ -65,7 +65,7 @@ title: Размышления о будущем ИИ Нейронки, однозначно, вошли в нашу жизнь уже на долго. - + Мы сейчас, по моей оценке, где-то между пиком и дном, причём ближе именно к пику. Затем, неизбежно будет дно разочарований. Но это не столь важно сейчас. diff --git a/content/posts/2025-10-11-blog.md b/content/posts/2025-10-11-blog/index.md index 2a67127..5c59713 100644 --- a/content/posts/2025-10-11-blog.md +++ b/content/posts/2025-10-11-blog/index.md @@ -1,8 +1,8 @@ --- -date: '2025-10-11' +date: "2025-10-11" draft: true tags: -- блог + - блог title: Очередная смена движка блога --- diff --git a/content/posts/2025-10-18-the-ghost-in-the-machine.md b/content/posts/2025-10-18-the-ghost-in-the-machine/index.md index b8dff9f..01da22e 100644 --- a/content/posts/2025-10-18-the-ghost-in-the-machine.md +++ b/content/posts/2025-10-18-the-ghost-in-the-machine/index.md @@ -1,17 +1,17 @@ --- -cover: /posts/files/laughing-man.jpeg -date: '2025-10-18' +cover: /posts/2025-10-18-the-ghost-in-the-machine/laughing-man.jpeg +date: "2025-10-18" tags: -- книги -- размышления -- не_моё -- ИИ + - книги + - размышления + - не_моё + - ИИ title: Душа в машине --- Станислав Лем - + <!--more--> diff --git a/content/posts/files/laughing-man.jpeg b/content/posts/2025-10-18-the-ghost-in-the-machine/laughing-man.jpeg Binary files differindex 652603c..652603c 100644 --- a/content/posts/files/laughing-man.jpeg +++ b/content/posts/2025-10-18-the-ghost-in-the-machine/laughing-man.jpeg diff --git a/content/posts/2025-11-03-blog-deploy.md b/content/posts/2025-11-03-blog-deploy/index.md index 2b394d6..a23ba91 100644 --- a/content/posts/2025-11-03-blog-deploy.md +++ b/content/posts/2025-11-03-blog-deploy/index.md @@ -27,7 +27,7 @@ new-post: echo "---" >> "$$file"; \ echo "" >> "$$file"; \ echo "---" >> "$$file"; \ - echo "Комментариев в блоге не предусмотрено, но вы всегда можете написать мне на e-mail [i@neonxp.ru](mailto:i@neonxp.ru) или в джаббер [i@neonxp.ru](xmpp://i@neonxp.ru)" >> "$$file"; \ + echo "Комментариев в блоге не предусмотрено, но вы всегда можете написать мне на e-mail [i@neonxp.ru](mailto:i@neonxp.ru) или в джаббер [i@neonxp.ru](xmpp:/i@neonxp.ru)" >> "$$file"; \ nvim "$$file" publish-post: @@ -40,7 +40,7 @@ publish-post: я уже и пишу сам текст поста. Затем я вызываю `make publish-post` и сначала мой генератор статических сайтов -[YASSG](http://gitverse.ru/neonxp/yassg/) собирает сайт в статический HTML, а +[YASSG](http:/gitverse.ru/neonxp/yassg/) собирает сайт в статический HTML, а потом отправляет всё на сервер в директорию, из которой сайт раздаётся. Очень просто! diff --git a/content/posts/2025-11-03-my-setup.md b/content/posts/2025-11-03-my-setup.md deleted file mode 100644 index a375155..0000000 --- a/content/posts/2025-11-03-my-setup.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -date: '2025-11-03' -tags: -- гиковское -- сетап -title: Обновления по сетапу ---- - -Со времени [последнего поста](/posts/2025-06-08-my-setup/) про мой -[сетап](/pages/setup/laptop/) произошли достаточно серьезные изменения. - -<!--more--> - -Я перешёл таки с KDE сначала на Hyprland, а затем окончательно осел на Gnome (48 -на текущий момент). ОС осталась та же — AltLinux P11. Что что, а Alt меня -всецело устраивает. - -Первое время с Гнома прям отплёвывался после KDE то, но потом то ли привык, то -ли просто как-то проникся внутренней эстетикой, но, в общем, мне стало заходить. - -По железу обновлений, к сожалению, нет. diff --git a/content/posts/2025-06-08-my-setup.md b/content/posts/2025-11-03-my-setup/index.md index a4b6dc7..a4b6dc7 100644 --- a/content/posts/2025-06-08-my-setup.md +++ b/content/posts/2025-11-03-my-setup/index.md diff --git a/content/posts/2025-11-04-blog-deploy-2.md b/content/posts/2025-11-04-blog-deploy-2/index.md index b692d94..f64e905 100644 --- a/content/posts/2025-11-04-blog-deploy-2.md +++ b/content/posts/2025-11-04-blog-deploy-2/index.md @@ -1,12 +1,12 @@ --- -date: '2025-11-04' +date: "2025-11-04" tags: -- блог + - блог title: Деплой блога — пересмотр --- -После [вчерашнего поста](2025-11-03-blog-deploy) мне написал один [хороший -человек](http://www.stargrave.org) с дельным замечанием, что не стоит для этих +После [вчерашнего поста](/posts/2025-11-03-blog-deploy/) мне написал один [хороший +человек](http:/www.stargrave.org) с дельным замечанием, что не стоит для этих целей использовать make. Действительно так. И предложил хорошее решение, что это стоило сделать просто sh скриптами. diff --git a/content/posts/2025-11-09-migration.md b/content/posts/2025-11-09-migration/index.md index aec1df0..aec1df0 100644 --- a/content/posts/2025-11-09-migration.md +++ b/content/posts/2025-11-09-migration/index.md diff --git a/content/posts/2025-11-23-org.md b/content/posts/2025-11-23-org/index.md index 95b54ee..481b9f6 100644 --- a/content/posts/2025-11-23-org.md +++ b/content/posts/2025-11-23-org/index.md @@ -1,9 +1,9 @@ --- comments: true -date: '2025-11-23' +date: "2025-11-23" tags: -- гиковское -- моё + - гиковское + - моё title: Личный органайзер --- diff --git a/content/posts/2025-12-02-httpsocalypse.md b/content/posts/2025-12-02-httpsocalypse/index.md index f38fa36..c90a16c 100644 --- a/content/posts/2025-12-02-httpsocalypse.md +++ b/content/posts/2025-12-02-httpsocalypse/index.md @@ -1,8 +1,8 @@ --- comments: true -date: '2025-12-02' +date: "2025-12-02" tags: -- размышления + - размышления title: HTTPS и конец интернетов --- diff --git a/content/posts/files/2025-12-21-img1.jpg b/content/posts/2025-12-21-sicktech/files/img1.jpg Binary files differindex 2dd29f9..2dd29f9 100644 --- a/content/posts/files/2025-12-21-img1.jpg +++ b/content/posts/2025-12-21-sicktech/files/img1.jpg diff --git a/content/posts/files/2025-12-21-img2.jpg b/content/posts/2025-12-21-sicktech/files/img2.jpg Binary files differindex 0ea8467..0ea8467 100644 --- a/content/posts/files/2025-12-21-img2.jpg +++ b/content/posts/2025-12-21-sicktech/files/img2.jpg diff --git a/content/posts/files/2025-12-21-img3.png b/content/posts/2025-12-21-sicktech/files/img3.png Binary files differindex 3e41caf..3e41caf 100644 --- a/content/posts/files/2025-12-21-img3.png +++ b/content/posts/2025-12-21-sicktech/files/img3.png diff --git a/content/posts/files/2025-12-21-sicktech.png b/content/posts/2025-12-21-sicktech/files/sicktech.png Binary files differindex 32c7b9f..32c7b9f 100644 --- a/content/posts/files/2025-12-21-sicktech.png +++ b/content/posts/2025-12-21-sicktech/files/sicktech.png diff --git a/content/posts/2025-12-21-sicktech.md b/content/posts/2025-12-21-sicktech/index.md index 6a7428c..78ee618 100644 --- a/content/posts/2025-12-21-sicktech.md +++ b/content/posts/2025-12-21-sicktech/index.md @@ -1,12 +1,12 @@ --- comments: true -cover: /posts/files/2025-12-21-sicktech.png -date: '2025-12-21T18:40:26+03:00' +cover: /posts/2025-12-21-sicktech/files/sicktech.png +date: "2025-12-21T18:40:26+03:00" tags: -- it -- размышления -- sicktech -- лонгрид + - it + - размышления + - sicktech + - лонгрид title: Про здоровые и нездоровые технологии --- @@ -39,7 +39,7 @@ title: Про здоровые и нездоровые технологии ## Трактора John Deere - + Это достаточно известная история, про то, как производитель напрямую влияет на то, как пользователь пользуется своей собственностью. А именно, запрещал @@ -57,7 +57,7 @@ title: Про здоровые и нездоровые технологии ## Машины для мороженного в McDonalds - + Здесь примерно та же история, только чуть больше налёта монополии. Краткая суть в том, что владелец франшизы McDonalds принуждал своих франчайзи закупать @@ -76,7 +76,7 @@ title: Про здоровые и нездоровые технологии ## BMW и некоторые другие автоконцерны - + Здесь немного другая история. Думаю, все и так слышали про эту историю, которая бы могла быть шуткой, но оказалась реальностью. Я говорю про _подписку_ на, мать @@ -215,7 +215,7 @@ title: Про здоровые и нездоровые технологии А напоследок я хочу дать несколько ссылок в тему: - [Очень хороший набор примеров «вредных» и «менее вредных» вещей от Сергея - Матвеева](http://www.stargrave.org/Harmful.html). В принципе, это примерно те + Матвеева](http:/www.stargrave.org/Harmful.html). В принципе, это примерно те же «нездоровые» и «здоровые» технологии. В целом, почти со всем я согласен, а поэтому могу рекомендовать список как даже некоторое руководство по выбору «здоровых» технологий. diff --git a/content/posts/2025-12-23-comments.md b/content/posts/2025-12-23-comments/index.md index 9a82612..9a82612 100644 --- a/content/posts/2025-12-23-comments.md +++ b/content/posts/2025-12-23-comments/index.md diff --git a/content/posts/2025-12-24-email.md b/content/posts/2025-12-24-email/index.md index a4011d3..174c268 100644 --- a/content/posts/2025-12-24-email.md +++ b/content/posts/2025-12-24-email/index.md @@ -1,9 +1,9 @@ --- comments: true -date: '2025-12-24T21:00:22+03:00' +date: "2025-12-24T21:00:22+03:00" tags: -- разное -- sicktech + - разное + - sicktech title: Почему я люблю e-mail? --- @@ -61,7 +61,7 @@ title: Почему я люблю e-mail? # Немного про другие коммуникации -И да, в контексте, [предпредыдущего поста](/posts/2025-12-21-sicktech/), e-mail +И да, в контексте, [предпредыдущего поста](/posts/sicktech/), e-mail — это однозначно «здоровая технология». Но не единственная. Раз уж немного отклонился в сторону, приведу из этой же области ещё немного «здоровых» из области коммуникаций: diff --git a/content/posts/2025-12-27-osm.md b/content/posts/2025-12-27-osm.md deleted file mode 100644 index 1c9881c..0000000 --- a/content/posts/2025-12-27-osm.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -comments: true -cover: /posts/files/2025-12-27-osm_img/photo.jpg -date: '2025-12-27T19:42:04+03:00' -tags: -- прогулки -title: Сходили на ярмарку OSM ---- - -Сегодня с супругой съездили для интереса на ярмарку -[OSM](https://kzngo.ru/event/market-osm-14307) (нет, это не OpenStreetMaps, а -OpenSpaceMarket :) ) в гастрокомплексе «Кайт». Ярмарка не скажу что была сильно -большой, но нам понравилось. Купили всякого не сильно много, поднос да пару -ароматных свечек с зимними ароматами. Фотографии покупок да и самой прогулки -прилагаю. Всё таки у нас очень красивый город! - -P.S. на фотку можно кликнуть, тогда она откроется в большем размере. - -<!--more--> - -## Покупочки - -[](/posts/files/2025-12-27-osm_img/photo.jpg) - -## Прогулка - -[](/posts/files/2025-12-27-osm_img/photo_1.jpg) -[](/posts/files/2025-12-27-osm_img/photo_2.jpg) -[](/posts/files/2025-12-27-osm_img/photo_3.jpg) -[](/posts/files/2025-12-27-osm_img/photo_4.jpg) -[](/posts/files/2025-12-27-osm_img/photo_5.jpg) -[](/posts/files/2025-12-27-osm_img/photo_6.jpg) -[](/posts/files/2025-12-27-osm_img/photo_7.jpg) -[](/posts/files/2025-12-27-osm_img/photo_8.jpg) -[](/posts/files/2025-12-27-osm_img/photo_9.jpg) -[](/posts/files/2025-12-27-osm_img/photo_10.jpg) -[](/posts/files/2025-12-27-osm_img/photo_11.jpg) -[](/posts/files/2025-12-27-osm_img/photo_12.jpg) -[](/posts/files/2025-12-27-osm_img/photo_13.jpg) -[](/posts/files/2025-12-27-osm_img/photo_14.jpg) diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo.jpg b/content/posts/2025-12-27-osm/files/photo.jpg Binary files differindex ae1a7eb..ae1a7eb 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo.jpg +++ b/content/posts/2025-12-27-osm/files/photo.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_1.jpg b/content/posts/2025-12-27-osm/files/photo_1.jpg Binary files differindex 7d3df90..7d3df90 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_1.jpg +++ b/content/posts/2025-12-27-osm/files/photo_1.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_10.jpg b/content/posts/2025-12-27-osm/files/photo_10.jpg Binary files differindex ee69188..ee69188 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_10.jpg +++ b/content/posts/2025-12-27-osm/files/photo_10.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_11.jpg b/content/posts/2025-12-27-osm/files/photo_11.jpg Binary files differindex 72c288f..72c288f 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_11.jpg +++ b/content/posts/2025-12-27-osm/files/photo_11.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_12.jpg b/content/posts/2025-12-27-osm/files/photo_12.jpg Binary files differindex 8bbd32c..8bbd32c 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_12.jpg +++ b/content/posts/2025-12-27-osm/files/photo_12.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_13.jpg b/content/posts/2025-12-27-osm/files/photo_13.jpg Binary files differindex 1608d5b..1608d5b 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_13.jpg +++ b/content/posts/2025-12-27-osm/files/photo_13.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_14.jpg b/content/posts/2025-12-27-osm/files/photo_14.jpg Binary files differindex 5cab91a..5cab91a 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_14.jpg +++ b/content/posts/2025-12-27-osm/files/photo_14.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_2.jpg b/content/posts/2025-12-27-osm/files/photo_2.jpg Binary files differindex 870578b..870578b 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_2.jpg +++ b/content/posts/2025-12-27-osm/files/photo_2.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_3.jpg b/content/posts/2025-12-27-osm/files/photo_3.jpg Binary files differindex 44b2637..44b2637 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_3.jpg +++ b/content/posts/2025-12-27-osm/files/photo_3.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_4.jpg b/content/posts/2025-12-27-osm/files/photo_4.jpg Binary files differindex 462b1bc..462b1bc 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_4.jpg +++ b/content/posts/2025-12-27-osm/files/photo_4.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_5.jpg b/content/posts/2025-12-27-osm/files/photo_5.jpg Binary files differindex 4c9d1d6..4c9d1d6 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_5.jpg +++ b/content/posts/2025-12-27-osm/files/photo_5.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_6.jpg b/content/posts/2025-12-27-osm/files/photo_6.jpg Binary files differindex 9ad1280..9ad1280 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_6.jpg +++ b/content/posts/2025-12-27-osm/files/photo_6.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_7.jpg b/content/posts/2025-12-27-osm/files/photo_7.jpg Binary files differindex 7054792..7054792 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_7.jpg +++ b/content/posts/2025-12-27-osm/files/photo_7.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_8.jpg b/content/posts/2025-12-27-osm/files/photo_8.jpg Binary files differindex edd7f59..edd7f59 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_8.jpg +++ b/content/posts/2025-12-27-osm/files/photo_8.jpg diff --git a/content/posts/files/2025-12-27-osm_img/thumbs/photo_9.jpg b/content/posts/2025-12-27-osm/files/photo_9.jpg Binary files differindex 859bade..859bade 100644 --- a/content/posts/files/2025-12-27-osm_img/thumbs/photo_9.jpg +++ b/content/posts/2025-12-27-osm/files/photo_9.jpg diff --git a/content/posts/2025-12-27-osm/index.md b/content/posts/2025-12-27-osm/index.md new file mode 100644 index 0000000..48955a8 --- /dev/null +++ b/content/posts/2025-12-27-osm/index.md @@ -0,0 +1,40 @@ +--- +comments: true +cover: /posts/2025-12-27-osm/files/photo.jpg +date: "2025-12-27T19:42:04+03:00" +tags: + - прогулки +title: Сходили на ярмарку OSM +--- + +Сегодня с супругой съездили для интереса на ярмарку +[OSM](https://kzngo.ru/event/market-osm-14307) (нет, это не OpenStreetMaps, а +OpenSpaceMarket :) ) в гастрокомплексе «Кайт». Ярмарка не скажу что была сильно +большой, но нам понравилось. Купили всякого не сильно много, поднос да пару +ароматных свечек с зимними ароматами. Фотографии покупок да и самой прогулки +прилагаю. Всё таки у нас очень красивый город! + +P.S. на фотку можно кликнуть, тогда она откроется в большем размере. + +<!--more--> + +## Покупочки + +[](/posts/2025-12-27-osm/files/photo.jpg) + +## Прогулка + +[](/posts/2025-12-27-osm/files/photo_1.jpg) +[](/posts/2025-12-27-osm/files/photo_2.jpg) +[](/posts/2025-12-27-osm/files/photo_3.jpg) +[](/posts/2025-12-27-osm/files/photo_4.jpg) +[](/posts/2025-12-27-osm/files/photo_5.jpg) +[](/posts/2025-12-27-osm/files/photo_6.jpg) +[](/posts/2025-12-27-osm/files/photo_7.jpg) +[](/posts/2025-12-27-osm/files/photo_8.jpg) +[](/posts/2025-12-27-osm/files/photo_9.jpg) +[](/posts/2025-12-27-osm/files/photo_10.jpg) +[](/posts/2025-12-27-osm/files/photo_11.jpg) +[](/posts/2025-12-27-osm/files/photo_12.jpg) +[](/posts/2025-12-27-osm/files/photo_13.jpg) +[](/posts/2025-12-27-osm/files/photo_14.jpg) diff --git a/content/posts/2025-12-28-philharmonic-park.md b/content/posts/2025-12-28-philharmonic-park.md deleted file mode 100644 index c692ecc..0000000 --- a/content/posts/2025-12-28-philharmonic-park.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -comments: true -cover: /posts/files/2025-12-28-philharmonic-park_img/photo_1_2025-12-28_21-35-40.jpg -date: '2025-12-28T21:37:44+03:00' -tags: -- прогулки -title: Прогулка в сквере филармонии ---- - -Вчера [гуляли с супругой на -набережной](https://neonxp.ru/posts/2025-12-27-osm/), а сегодня чисто случайно -решили прогуляться в сквере филармонии им.Тукая. Людей было немного, что только -создавало больше уюта и ламповости этому хорошо украшенному скверику. К -сожалению, гулять прям долго-долго особо не вышло, т.к. хоть и всего -7°, но -продрогли сильно, т.к. гулять изначально не планировали и не были одеты -соответственно. Сейчас дописываю этот пост и пытаюсь отогреться :) - -Как водится, дальше будет немного фотографий :) - -<!--more--> - -[](/posts/files/2025-12-28-philharmonic-park_img/photo_2_2025-12-28_21-35-40.png) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_3_2025-12-28_21-35-40.png) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_5_2025-12-28_21-35-40.jpg) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_9_2025-12-28_21-35-40.jpg) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_19_2025-12-28_21-35-40.jpg) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_20_2025-12-28_21-35-40.jpg) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_25_2025-12-28_21-35-40.jpg) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_27_2025-12-28_21-35-40.jpg) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_30_2025-12-28_21-35-40.jpg) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_31_2025-12-28_21-35-40.jpg) -[](/posts/files/2025-12-28-philharmonic-park_img/photo_32_2025-12-28_21-35-40.png) diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_19_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_19_2025-12-28_21-35-40.jpg Binary files differindex 7768b6e..7768b6e 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_19_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_19_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_1_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_1_2025-12-28_21-35-40.jpg Binary files differindex 369d229..369d229 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_1_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_1_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_20_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_20_2025-12-28_21-35-40.jpg Binary files differindex 35e1cd5..35e1cd5 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_20_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_20_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_25_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_25_2025-12-28_21-35-40.jpg Binary files differindex ccb1005..ccb1005 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_25_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_25_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_27_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_27_2025-12-28_21-35-40.jpg Binary files differindex 066be5c..066be5c 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_27_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_27_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_2_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_2_2025-12-28_21-35-40.jpg Binary files differindex ccab7b5..ccab7b5 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_2_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_2_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_2_2025-12-28_21-35-40.png b/content/posts/2025-12-28-philharmonic-park/files/photo_2_2025-12-28_21-35-40.png Binary files differindex de29bfb..de29bfb 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_2_2025-12-28_21-35-40.png +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_2_2025-12-28_21-35-40.png diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_30_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_30_2025-12-28_21-35-40.jpg Binary files differindex 71aebf0..71aebf0 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_30_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_30_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_31_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_31_2025-12-28_21-35-40.jpg Binary files differindex f9ef2da..f9ef2da 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_31_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_31_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_32_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_32_2025-12-28_21-35-40.jpg Binary files differindex 381faff..381faff 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_32_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_32_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_32_2025-12-28_21-35-40.png b/content/posts/2025-12-28-philharmonic-park/files/photo_32_2025-12-28_21-35-40.png Binary files differindex 00eddcc..00eddcc 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_32_2025-12-28_21-35-40.png +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_32_2025-12-28_21-35-40.png diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_3_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_3_2025-12-28_21-35-40.jpg Binary files differindex f9e8a43..f9e8a43 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_3_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_3_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_3_2025-12-28_21-35-40.png b/content/posts/2025-12-28-philharmonic-park/files/photo_3_2025-12-28_21-35-40.png Binary files differindex a01eae9..a01eae9 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_3_2025-12-28_21-35-40.png +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_3_2025-12-28_21-35-40.png diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_5_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_5_2025-12-28_21-35-40.jpg Binary files differindex 302bb88..302bb88 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_5_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_5_2025-12-28_21-35-40.jpg diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_9_2025-12-28_21-35-40.jpg b/content/posts/2025-12-28-philharmonic-park/files/photo_9_2025-12-28_21-35-40.jpg Binary files differindex 3c6b8f1..3c6b8f1 100644 --- a/content/posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_9_2025-12-28_21-35-40.jpg +++ b/content/posts/2025-12-28-philharmonic-park/files/photo_9_2025-12-28_21-35-40.jpg diff --git a/content/posts/2025-12-28-philharmonic-park/index.md b/content/posts/2025-12-28-philharmonic-park/index.md new file mode 100644 index 0000000..03b397d --- /dev/null +++ b/content/posts/2025-12-28-philharmonic-park/index.md @@ -0,0 +1,32 @@ +--- +comments: true +cover: /posts/2025-12-28-philharmonic-park/photo_1_2025-12-28_21-35-40.jpg +date: "2025-12-28T21:37:44+03:00" +tags: + - прогулки +title: Прогулка в сквере филармонии +--- + +Вчера [гуляли с супругой на +набережной](https://neonxp.ru/posts/osm/), а сегодня чисто случайно +решили прогуляться в сквере филармонии им.Тукая. Людей было немного, что только +создавало больше уюта и ламповости этому хорошо украшенному скверику. К +сожалению, гулять прям долго-долго особо не вышло, т.к. хоть и всего -7°, но +продрогли сильно, т.к. гулять изначально не планировали и не были одеты +соответственно. Сейчас дописываю этот пост и пытаюсь отогреться :) + +Как водится, дальше будет немного фотографий :) + +<!--more--> + +[](/posts/2025-12-28-philharmonic-park/files/photo_2_2025-12-28_21-35-40.png) +[](/posts/2025-12-28-philharmonic-park/files/photo_3_2025-12-28_21-35-40.png) +[](/posts/2025-12-28-philharmonic-park/files/photo_5_2025-12-28_21-35-40.jpg) +[](/posts/2025-12-28-philharmonic-park/files/photo_9_2025-12-28_21-35-40.jpg) +[](/posts/2025-12-28-philharmonic-park/files/photo_19_2025-12-28_21-35-40.jpg) +[](/posts/2025-12-28-philharmonic-park/files/photo_20_2025-12-28_21-35-40.jpg) +[](/posts/2025-12-28-philharmonic-park/files/photo_25_2025-12-28_21-35-40.jpg) +[](/posts/2025-12-28-philharmonic-park/files/photo_27_2025-12-28_21-35-40.jpg) +[](/posts/2025-12-28-philharmonic-park/files/photo_30_2025-12-28_21-35-40.jpg) +[](/posts/2025-12-28-philharmonic-park/files/photo_31_2025-12-28_21-35-40.jpg) +[](/posts/2025-12-28-philharmonic-park/files/photo_32_2025-12-28_21-35-40.png) diff --git a/content/posts/files/2025-12-29-newyear-excel_img/cover.png b/content/posts/2025-12-29-newyear-excel/files/cover.png Binary files differindex ae331d5..ae331d5 100644 --- a/content/posts/files/2025-12-29-newyear-excel_img/cover.png +++ b/content/posts/2025-12-29-newyear-excel/files/cover.png diff --git a/content/posts/files/2025-12-29-newyear-excel_img/cover1.png b/content/posts/2025-12-29-newyear-excel/files/cover1.png Binary files differindex b252f6e..b252f6e 100644 --- a/content/posts/files/2025-12-29-newyear-excel_img/cover1.png +++ b/content/posts/2025-12-29-newyear-excel/files/cover1.png diff --git a/content/posts/files/2025-12-29-newyear-excel_img/new_year.ods b/content/posts/2025-12-29-newyear-excel/files/new_year.ods Binary files differindex 2d8aad2..2d8aad2 100644 --- a/content/posts/files/2025-12-29-newyear-excel_img/new_year.ods +++ b/content/posts/2025-12-29-newyear-excel/files/new_year.ods diff --git a/content/posts/files/2025-12-29-newyear-excel_img/new_year.xlsx b/content/posts/2025-12-29-newyear-excel/files/new_year.xlsx Binary files differindex ca4469c..ca4469c 100644 --- a/content/posts/files/2025-12-29-newyear-excel_img/new_year.xlsx +++ b/content/posts/2025-12-29-newyear-excel/files/new_year.xlsx diff --git a/content/posts/2025-12-29-newyear-excel.md b/content/posts/2025-12-29-newyear-excel/index.md index 76916b2..31a9240 100644 --- a/content/posts/2025-12-29-newyear-excel.md +++ b/content/posts/2025-12-29-newyear-excel/index.md @@ -1,9 +1,9 @@ --- comments: true -cover: /posts/files/2025-12-29-newyear-excel_img/cover1.png -date: '2025-12-29T11:47:14+03:00' +cover: /posts/2025-12-29-newyear-excel/cover1.png +date: "2025-12-29T11:47:14+03:00" tags: -- разное + - разное title: Новогодний Excel --- @@ -13,10 +13,10 @@ title: Новогодний Excel Делал я именно в LibreOffice, поэтому только там я точно уверен что работает как задуманно. -- [Версия для MS Excel](/posts/files/2025-12-29-newyear-excel_img/new_year.xlsx) +- [Версия для MS Excel](/posts/2025-12-29-newyear-excel/files/new_year.xlsx) - [Версия для LibreOffice - Calc](/posts/files/2025-12-29-newyear-excel_img/new_year.ods) + Calc](/posts/2025-12-29-newyear-excel/files/new_year.ods) - [Онлайн версия в Документах Mail.Ru](https://cloud.mail.ru/public/SF1M/ob3EeqtNF) - + diff --git a/content/posts/2025-12-31-new-year.md b/content/posts/2025-12-31-new-year/index.md index 7a3c3b0..c1554a7 100644 --- a/content/posts/2025-12-31-new-year.md +++ b/content/posts/2025-12-31-new-year/index.md @@ -1,18 +1,18 @@ --- comments: true -cover: /posts/files/2025-12-28-philharmonic-park_img/thumbs/photo_31_2025-12-28_21-35-40.jpg -date: '2025-12-31T15:27:17+03:00' +cover: /posts/2025-12-31-new-year/photo_31_2025-12-28_21-35-40.jpg +date: "2025-12-31T15:27:17+03:00" tags: -- разное + - разное title: С Новым Годом! --- С наступающим Новым Годом! - + Предыдущий год был весьма и весьма разным. Было и хорошее и плохое. Отчёт по -году как в [прошлом году](/posts/2024-12-31-new-year/) делать не буду. Честно +году как в [прошлом году](/posts/new-year/) делать не буду. Честно говоря, нет особо моральных сил на это. <!--more--> diff --git a/content/posts/2025-12-31-qchat.md b/content/posts/2025-12-31-qchat/index.md index 8344933..54486ac 100644 --- a/content/posts/2025-12-31-qchat.md +++ b/content/posts/2025-12-31-qchat/index.md @@ -1,10 +1,9 @@ --- -comments: true -date: '2025-12-31T14:55:45+03:00' -tags: -- гиковское -- IT +date: "2025-12-31T14:55:45+03:00" title: qChat — чатик поверх SSH +tags: + - гиковское + - IT --- Для собственного интереса написал на Go реализацию IRC-подобного чата, который diff --git a/content/posts/2026-02-01-grouper/grouper.png b/content/posts/2026-02-01-grouper/grouper.png Binary files differnew file mode 100644 index 0000000..6f5053d --- /dev/null +++ b/content/posts/2026-02-01-grouper/grouper.png diff --git a/content/posts/2026-02-01-grouper/index.md b/content/posts/2026-02-01-grouper/index.md new file mode 100644 index 0000000..519277f --- /dev/null +++ b/content/posts/2026-02-01-grouper/index.md @@ -0,0 +1,44 @@ +--- +date: "2026-02-01T22:26:32+03:00" +title: Моё первое дополнение для Firefox +tags: + - гиковское + - IT +--- + +Буквально только что пришло письмо, что наконец-то опубликовано публично моё +первое расширение для Firefox! + +Без долгих разгонов, вот ссылка: +https://addons.mozilla.org/ru/firefox/addon/groupper/ + +И, конечно же, исходники: https://gitrepo.ru/NeonXP/Grouper + +А теперь немного про то, что это за расширение: это расширение для Firefox для +автоматической группировки вкладок по группам на базе доменного имени сайта. При +этом домен преобразуется в имя вкладки по следующим правилам: + +1. Домен делится по точкам +2. Отсекается домен 1 уровня (.ru, .com, .net и т.п.) +3. Если самый верхний уровень домена — www, то он так же отсекается, как не + информативная часть +4. Оставшееся преобразуется в Title Case (то есть первая буква каждого слова + становится заглавной) + +Таким образом, например, все страницы домена `www.some.site.ru` сгруппируются +автоматически в группу `Some Site`. + +И вот так это выглядит у меня: + + + +Да, подобных расширений более одного, но мне хотелось именно эти правила по +формированию имен групп. В других расширениях или использовался только домен +второго уровня, или были другие неудобности. Например, все группы были одного +цвета, а хотелось бы автоматически разного, чтобы визуально различались, или ещё +какие шороховатости. Я не говорю, что у меня идеально, но оно идеально для _меня_! + +Отдельно, хотел бы отметить его простоту. Оно делает только то что написано +выше, никаких треккингов, реклам или прочего мусора! Более того, js код никак не +обфусцирован, соответственно, любой может убедиться в этом сам. Да да, в +современном мире, это скорее особенность, чем само собой разумеющееся. diff --git a/content/posts/files/2025-12-27-osm_img/photo.jpg b/content/posts/files/2025-12-27-osm_img/photo.jpg Binary files differdeleted file mode 100644 index 4ea3f89..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_1.jpg b/content/posts/files/2025-12-27-osm_img/photo_1.jpg Binary files differdeleted file mode 100644 index d14ed56..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_1.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_10.jpg b/content/posts/files/2025-12-27-osm_img/photo_10.jpg Binary files differdeleted file mode 100644 index 66a5727..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_10.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_11.jpg b/content/posts/files/2025-12-27-osm_img/photo_11.jpg Binary files differdeleted file mode 100644 index aed7c5b..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_11.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_12.jpg b/content/posts/files/2025-12-27-osm_img/photo_12.jpg Binary files differdeleted file mode 100644 index b78b33b..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_12.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_13.jpg b/content/posts/files/2025-12-27-osm_img/photo_13.jpg Binary files differdeleted file mode 100644 index 6bb6bd0..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_13.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_14.jpg b/content/posts/files/2025-12-27-osm_img/photo_14.jpg Binary files differdeleted file mode 100644 index 806471f..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_14.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_2.jpg b/content/posts/files/2025-12-27-osm_img/photo_2.jpg Binary files differdeleted file mode 100644 index d4f788a..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_2.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_3.jpg b/content/posts/files/2025-12-27-osm_img/photo_3.jpg Binary files differdeleted file mode 100644 index 74ef585..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_3.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_4.jpg b/content/posts/files/2025-12-27-osm_img/photo_4.jpg Binary files differdeleted file mode 100644 index ea5a5d0..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_4.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_5.jpg b/content/posts/files/2025-12-27-osm_img/photo_5.jpg Binary files differdeleted file mode 100644 index 462b570..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_5.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_6.jpg b/content/posts/files/2025-12-27-osm_img/photo_6.jpg Binary files differdeleted file mode 100644 index 253af73..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_6.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_7.jpg b/content/posts/files/2025-12-27-osm_img/photo_7.jpg Binary files differdeleted file mode 100644 index cd92319..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_7.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_8.jpg b/content/posts/files/2025-12-27-osm_img/photo_8.jpg Binary files differdeleted file mode 100644 index bebc4b3..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_8.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-27-osm_img/photo_9.jpg b/content/posts/files/2025-12-27-osm_img/photo_9.jpg Binary files differdeleted file mode 100644 index 8e4358b..0000000 --- a/content/posts/files/2025-12-27-osm_img/photo_9.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_19_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_19_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index a7602ed..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_19_2025-12-28_21-35-40.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_1_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_1_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index d0ff6f2..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_1_2025-12-28_21-35-40.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_20_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_20_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index 7007409..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_20_2025-12-28_21-35-40.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_25_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_25_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index 17d8e06..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_25_2025-12-28_21-35-40.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_27_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_27_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index 87658fc..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_27_2025-12-28_21-35-40.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_30_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_30_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index e028728..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_30_2025-12-28_21-35-40.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_31_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_31_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index 0c83ba7..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_31_2025-12-28_21-35-40.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_5_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_5_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index 615da4b..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_5_2025-12-28_21-35-40.jpg +++ /dev/null diff --git a/content/posts/files/2025-12-28-philharmonic-park_img/photo_9_2025-12-28_21-35-40.jpg b/content/posts/files/2025-12-28-philharmonic-park_img/photo_9_2025-12-28_21-35-40.jpg Binary files differdeleted file mode 100644 index 69ad012..0000000 --- a/content/posts/files/2025-12-28-philharmonic-park_img/photo_9_2025-12-28_21-35-40.jpg +++ /dev/null |
