From e71cf9aaa2ebeb119d0856bc3ed731578b7d4f09 Mon Sep 17 00:00:00 2001 From: Ihar Hancharenka Date: Fri, 28 Jun 2024 15:12:04 +0300 Subject: [PATCH] m --- db/sql/docs/articles.txt | 4 + devops/container/docker/docs/articles.txt | 4 + .../container/docker/features/ui/articles.txt | 2 +- .../docker/features/ui/docker-firefox.txt | 1 + .../docker/features/ui/hyperbeam.txt | 1 + devops/container/docker/features/ui/neko.txt | 73 +++++++++++++++++++ nontech/movies/ru/channels.txt | 1 + nontech/ortho/people/mazhuko.txt | 2 + nontech/politics/channels/metametrica.txt | 2 + nontech/politics/people/belousov.txt | 2 +- os/editors/vim/docs/cheatsheets.txt | 2 + os/unix/monitoring/lsof.txt | 40 ++++++++++ pl/java/libfws/spring/data/jpa/docs/tips.txt | 2 +- pl/java/libfws/spring/security/docs/books.txt | 4 +- .../profiling/jfr/docs/presentations.txt | 3 +- .../quality/profiling/jfr/docs/resources.txt | 1 + science/ds/docs/books.txt | 2 + 17 files changed, 140 insertions(+), 6 deletions(-) create mode 100644 devops/container/docker/features/ui/docker-firefox.txt create mode 100644 devops/container/docker/features/ui/hyperbeam.txt create mode 100644 devops/container/docker/features/ui/neko.txt create mode 100644 pl/java/tools/quality/profiling/jfr/docs/resources.txt diff --git a/db/sql/docs/articles.txt b/db/sql/docs/articles.txt index 5f58da207..17d0261b8 100644 --- a/db/sql/docs/articles.txt +++ b/db/sql/docs/articles.txt @@ -3,3 +3,7 @@ http://queue.acm.org/detail.cfm?id=1961297 rollback https://www.vedu.ru/programming/index.asp?cont=articles&articles_id=511 + +2021 +https://betterprogramming.pub/6-sql-queries-every-data-engineer-should-be-aware-of-2d0a2cc5986e + https://nuancesprog.ru/p/14447/ diff --git a/devops/container/docker/docs/articles.txt b/devops/container/docker/docs/articles.txt index 06561d754..51b7ce604 100644 --- a/devops/container/docker/docs/articles.txt +++ b/devops/container/docker/docs/articles.txt @@ -7,6 +7,10 @@ http://www.radcortez.com/get-into-docker/ executable https://www.infoq.com/articles/docker-executable-images +2024 +https://overcast.blog/13-docker-tricks-you-didnt-know-47775a4f678f + https://nuancesprog.ru/p/21069/ + ! docker contexts 2018 https://habr.com/company/itsumma/blog/345976/ 2015 diff --git a/devops/container/docker/features/ui/articles.txt b/devops/container/docker/features/ui/articles.txt index cdba29096..5ff1814bd 100644 --- a/devops/container/docker/features/ui/articles.txt +++ b/devops/container/docker/features/ui/articles.txt @@ -2,7 +2,7 @@ docker run -e DISPLAY -v /home/root/.Xauthority:/root/.Xauthority — -net=host 2023 https://habr.com/ru/articles/780322/ - ! super-cool !!! + ! super-cool !!! about matlab inside 2022 https://sivanaikk0903.medium.com/run-gui-applications-in-docker-container-ba3f6ebcfc91 -net=host diff --git a/devops/container/docker/features/ui/docker-firefox.txt b/devops/container/docker/features/ui/docker-firefox.txt new file mode 100644 index 000000000..94bf34648 --- /dev/null +++ b/devops/container/docker/features/ui/docker-firefox.txt @@ -0,0 +1 @@ +https://docs.linuxserver.io/images/docker-firefox diff --git a/devops/container/docker/features/ui/hyperbeam.txt b/devops/container/docker/features/ui/hyperbeam.txt new file mode 100644 index 000000000..d98d99a08 --- /dev/null +++ b/devops/container/docker/features/ui/hyperbeam.txt @@ -0,0 +1 @@ +https://watch.hyperbeam.com/ diff --git a/devops/container/docker/features/ui/neko.txt b/devops/container/docker/features/ui/neko.txt new file mode 100644 index 000000000..376bb3df5 --- /dev/null +++ b/devops/container/docker/features/ui/neko.txt @@ -0,0 +1,73 @@ +https://neko.m1k1o.net + +https://github.com/m1k1o/neko/ +https://github.com/m1k1o/neko/tree/master/.docker +https://github.com/m1k1o/neko/tree/master/.docker/remmina +https://github.com/m1k1o/neko/blob/master/.docker/remmina/Dockerfile +https://github.com/m1k1o/neko/tree/master/.docker/firefox +https://github.com/m1k1o/neko/blob/master/.docker/firefox/Dockerfile +https://github.com/m1k1o/neko/blob/master/.docker/firefox/supervisord.conf +https://github.com/m1k1o/neko/blob/master/.docker/firefox/profiles.ini +https://github.com/m1k1o/neko/blob/master/.docker/firefox/policies.json +https://github.com/m1k1o/neko/blob/master/.docker/firefox/neko.js + +https://github.com/m1k1o/neko-rooms +https://github.com/m1k1o/neko-rooms/tree/master/docs +https://github.com/m1k1o/neko-rooms/blob/master/docs/storage.md + +https://neko.m1k1o.net/#/getting-started/quick-start +https://neko.m1k1o.net/#/getting-started/examples +https://neko.m1k1o.net/#/changelog + +http://supervisord.org +http://supervisord.org/introduction.html +http://supervisord.org/configuration.html + +**************************************************************************** +В продолжение утренней темы про удалённые рабочие места. Есть интересный проект n.eko (https://github.com/m1k1o/neko) по запуску различных браузеров в Docker контейнере с доступом к нему по протоколу WebRTC. + +На практике это может выглядеть так. Вы арендуете где-то VPS, ставите туда Docker и запускаете необходимый вам браузер из готового образа neko. Далее со своего рабочего места в браузере открываете этот браузер. Благодаря возможностям WebRTC всё работает быстро в том числе с передачей звука и видео. Спокойно можно смотреть ютуб или любое другое видео. + +В дополнение к такому использованию, вы можете подключать к своему браузеру зрителей с возможностью смотреть, что вы там делаете. В таком режиме можно даже фильмы совместно просматривать. Есть отдельный образ с VLC плеером. + +Работает это максимально просто и быстро. Создаём compose.yaml с нужным браузером: + +services: + neko: + image: m1k1o/neko:google-chrome + restart: unless-stopped + shm_size: 3gb + ports: + - 8080:8080 + - 52000-52100:52000-52100/udp + cap_add: + - SYS_ADMIN + environment: + NEKO_SCREEN: 1920x1080@30 + NEKO_PASSWORD: neko + NEKO_PASSWORD_ADMIN: admin + NEKO_EPR: 52000-52100 + NEKO_NAT1TO1: 10.20.1.36 + +И запускаем: + +# docker compose up -d + +В данном примере NEKO_NAT1TO1: 10.20.1.36 - адрес сервера в локальной сети, где я запускаю neko. Если это будет VPS с внешним ip адресом, ничего указывать не надо. Адрес будет определён автоматически. + +После того, как загрузится и запустится образ, можно идти по ip адресу сервера на порт 8080 и логиниться в neko. + +NEKO_PASSWORD: neko - пароль для пользователей, которые смогут только смотреть. +NEKO_PASSWORD_ADMIN: admin - пароль для пользователя admin. То есть заходить админом вам надо будет с учёткой admin / admin. + +Когда залогинитесь, снизу будет иконка клавиатуры и ползунок. Иконку надо нажать, ползунок подвинуть, чтобы заработало управление внутри контейнера. Справа вверху будут настройки разрешения экрана и некоторые другие. Рекомендую сразу снизить чувствительность скрола мышки. У меня он по умолчанию был очень чувствительный. Было некомфортно пользоваться, пока не нашёл эту настройку. + +Neko можно запустить по HTTPS или через обратный прокси. В документации есть примеры настроек для этого. Для прокси удобно использовать упомянутый ранее Traefik (https://t.me/srv_admin/3775). Для него тоже пример конфигурации представлен. + +Вот, в общем-то, и всё. Можно пользоваться. С переключением раскладки проблем нет, русский ввод работает. Список готовых образов с браузерами и не только представлен в документации (https://neko.m1k1o.net/#/getting-started/). Можно и обычную систему запустить с xfce, или собрать собственный образ. Есть образы под arm, отдельно с поддержкой видеокарт. + +Образы регулярно автоматически обновляются, так что браузеры там свежих версий. Получается хорошее решение для гарантированной изоляции, если хочется запустить в браузере что-то сомнительное. Или просто использовать отдельный браузер с необходимыми настройками и локацией. + +Подключаться к такому браузеру можно с мобильных клиентов. Интерфейс адаптирован под разрешения экранов смартфонов. + +Отдельно есть проект по управлению виртуальными комнатами с запущенными браeзерами neko - neko-rooms (https://github.com/m1k1o/neko-rooms). diff --git a/nontech/movies/ru/channels.txt b/nontech/movies/ru/channels.txt index 7959fa510..8b7f77f84 100644 --- a/nontech/movies/ru/channels.txt +++ b/nontech/movies/ru/channels.txt @@ -1 +1,2 @@ https://www.youtube.com/@military_movies/videos +https://www.youtube.com/@swellfilm diff --git a/nontech/ortho/people/mazhuko.txt b/nontech/ortho/people/mazhuko.txt index 14f4c3608..41017c646 100644 --- a/nontech/ortho/people/mazhuko.txt +++ b/nontech/ortho/people/mazhuko.txt @@ -22,6 +22,8 @@ people ! his students - S.S Averintsev, V Bibihin 2024 +Pravblog - Mazhuko - Interview - Digitalization of 18:00 + https://www.youtube.com/watch?v=mqEkfTc3Av0 Mazhuko - Favorite Icons of 7:23 https://www.youtube.com/watch?v=14JFexNSzJ4 Mazhuko - About Peace and Commonality of 14:25 diff --git a/nontech/politics/channels/metametrica.txt b/nontech/politics/channels/metametrica.txt index 268f63271..70c42a44c 100644 --- a/nontech/politics/channels/metametrica.txt +++ b/nontech/politics/channels/metametrica.txt @@ -5,6 +5,8 @@ https://vk.com/public210614080 https://www.youtube.com/c/Metametrica/videos 2024 +Metametrica - Ritter 15:00 of 1:05:45 + https://www.youtube.com/watch?v=XAjdpJQ0d98 Metametrica - Artamonov - Gasparyan - Kazakov - Shevchenko - Who in Dagestan 1:42:00 of 2:22:08 https://www.youtube.com/watch?v=-DbtI5Pl0pQ https://www.youtube.com/watch?v=-Fzn35Ahu-o diff --git a/nontech/politics/people/belousov.txt b/nontech/politics/people/belousov.txt index 1279e6e00..833ca4175 100644 --- a/nontech/politics/people/belousov.txt +++ b/nontech/politics/people/belousov.txt @@ -1,5 +1,5 @@ 2024 -AntonovSoAntonov - Myths about Belousov 21:00 of 59:43 +AntonovSoAntonov - Myths about Belousov of 59:43 https://www.youtube.com/watch?v=suTtKjJsErQ 2020 TASSConferences - Kudryavtseva - Belousov - Dev Model Change of 57:59 diff --git a/os/editors/vim/docs/cheatsheets.txt b/os/editors/vim/docs/cheatsheets.txt index 0bb44e25c..1e20b1ff5 100644 --- a/os/editors/vim/docs/cheatsheets.txt +++ b/os/editors/vim/docs/cheatsheets.txt @@ -1 +1,3 @@ +https://www.josean.com/posts/vim-essentials-cheatsheet + https://www.youtube.com/watch?v=80mWp6H4zEw https://devhints.io/vim diff --git a/os/unix/monitoring/lsof.txt b/os/unix/monitoring/lsof.txt index e94674799..d699733f1 100644 --- a/os/unix/monitoring/lsof.txt +++ b/os/unix/monitoring/lsof.txt @@ -42,3 +42,43 @@ https://bookflow.ru/10-primerov-komand-lsof-v-linux/ # lsof -iUDP Публикацию имеет смысл сохранить в закладки. + +*************************************************************************************************************************************************************************** + +Как быстро прибить приложение, которое слушает определённый порт? + +Вариантов решения этой задачи может быть много. Первое, что приходит в голову - посмотреть список открытых портов в ss, узнать pid процесса и завершить его: + +# ss -tulnp | grep 8080 +tcp LISTEN 0 5 0.0.0.0:8080 0.0.0.0:* users:(("python3",pid=5152,fd=3)) +# kill 5152 + +Но быстрее и проще воспользоваться lsof: + +# lsof -i:8080 +COMMAND PID USER  FD  TYPE DEVICE SIZE/OFF NODE NAME +python3 5156 root  3u IPv4 41738   0t0 TCP *:http-alt (LISTEN) +# kill 5152 + +Или вообще в одно действие: + +# lsof -i:8080 -t | xargs kill + +Lsof могучая утилита. Я как-то особо не пользовался ей, кроме как для файлов, пока не подготовил заметку год назад с примерами использования (https://t.me/srv_admin/2856). С тех порт и для сетевых соединений стал активно применять. Особенно вот в таком виде: + +# lsof -i +# lsof -i TCP:25 +# lsof -i TCP@1.2.3.4 + +Возвращаюсь к открытым портам. Есть утилита killport (https://github.com/jkfran/killport), которая делает то же самое, что я делал выше, только в одну команду: + +# killport 8080 + +В стандартных репах её нет, придётся качать бинарник из репозитория. Если для Linux это не сильно надо, так как там много инструментов для подобных действий, что я продемонстрировал выше, то для Windows это будет более актуально. Killport есть и под винду (❗️) Использовать можно примерно так: + +> killport 445 --dry-run +Would kill process 'System' listening on port 445 + +То есть сначала смотрим, что будет прибито, а потом только делаем. + +Такая штука обычно нужна для каких-то костылей и велосипедов, когда что-то зависает, не перезапускается, а надо освободить порт, чтобы запустить новый экземпляр. diff --git a/pl/java/libfws/spring/data/jpa/docs/tips.txt b/pl/java/libfws/spring/data/jpa/docs/tips.txt index cf4c27770..b7684e6a1 100644 --- a/pl/java/libfws/spring/data/jpa/docs/tips.txt +++ b/pl/java/libfws/spring/data/jpa/docs/tips.txt @@ -2,6 +2,6 @@ https://habr.com/ru/articles/265061/ 2024 https://habr.com/ru/companies/magnit/articles/814573/ - ! other models adaptation + ! getting rid of SQL in Java Code @OneToMany @Fetch(FetchMode.SUBSELECT) // but does now work with pagination, hbm-bug diff --git a/pl/java/libfws/spring/security/docs/books.txt b/pl/java/libfws/spring/security/docs/books.txt index 1e3c884b0..258a3cc68 100644 --- a/pl/java/libfws/spring/security/docs/books.txt +++ b/pl/java/libfws/spring/security/docs/books.txt @@ -1,6 +1,6 @@ 2023 -Spilca - Spring Security in Action 2nd ed v07 - EE48E14DEB46F360725DF513EF0D765E +Spilca - Spring Security in Action 2nd ed + 92D0CE1BCDE9D39E5036351366EAE683 2020 Spilca - Spring Security in Action 0774C860C43474D328096BDE5DD6233E diff --git a/pl/java/tools/quality/profiling/jfr/docs/presentations.txt b/pl/java/tools/quality/profiling/jfr/docs/presentations.txt index cd9417a7d..aa40c7d8b 100644 --- a/pl/java/tools/quality/profiling/jfr/docs/presentations.txt +++ b/pl/java/tools/quality/profiling/jfr/docs/presentations.txt @@ -68,11 +68,12 @@ Java - Joakim Nordstrom - Programmer's Guide to JDK Flight Recorder of 36:55 jfr 23544 JFR.start +backend.io.BytesRead#enabled=true 2023 -Java - Continuous Monitoring with JDK Flight Recorder 18:00 of 45:55 +Java - Continuous Monitoring with JDK Flight Recorder of 45:55 https://www.youtube.com/watch?v=Gx_JGVborJ0 ! import jdk.jfr.Event; ! extend ... ! @StackTrace(... depth ...) + ! cfg-files $JAVA_HOME/lib/jfr/{default,profile}.jfc 2022 Java - Programmer's Guide to JDK Flight Recorder of 24:08 https://www.youtube.com/watch?v=K1ApBZGiT-Y diff --git a/pl/java/tools/quality/profiling/jfr/docs/resources.txt b/pl/java/tools/quality/profiling/jfr/docs/resources.txt new file mode 100644 index 000000000..dbaae0634 --- /dev/null +++ b/pl/java/tools/quality/profiling/jfr/docs/resources.txt @@ -0,0 +1 @@ +https://inside.java/tag/jfr diff --git a/science/ds/docs/books.txt b/science/ds/docs/books.txt index 3525927b6..c85161a7e 100644 --- a/science/ds/docs/books.txt +++ b/science/ds/docs/books.txt @@ -17,6 +17,8 @@ Moscvitin - Data Structures and Algorithms ru 145p Petrov - Database Internals B4C0E9966DCAF74A08B5498DC632E5D5 902BA0835E8E3E0262C236E3198E1EF5 + 05EF18AA9887E93CD3BABF136E65001B + !!! 2008 Brass - Advanced Data Structures 9ADB50FA694FE82036A7F38D9BEDFC98