зеркало из
				https://github.com/iharh/notes.git
				synced 2025-10-30 21:26:09 +02:00 
			
		
		
		
	m
Этот коммит содержится в:
		
							родитель
							
								
									7a02bbcfa0
								
							
						
					
					
						Коммит
						e71cf9aaa2
					
				| @ -3,3 +3,7 @@ http://queue.acm.org/detail.cfm?id=1961297 | |||||||
| 
 | 
 | ||||||
| rollback | rollback | ||||||
| https://www.vedu.ru/programming/index.asp?cont=articles&articles_id=511 | 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/ | ||||||
|  | |||||||
| @ -7,6 +7,10 @@ http://www.radcortez.com/get-into-docker/ | |||||||
| executable | executable | ||||||
| https://www.infoq.com/articles/docker-executable-images | 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 | 2018 | ||||||
| https://habr.com/company/itsumma/blog/345976/ | https://habr.com/company/itsumma/blog/345976/ | ||||||
| 2015 | 2015 | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ docker run -e DISPLAY -v /home/root/.Xauthority:/root/.Xauthority — -net=host | |||||||
| 
 | 
 | ||||||
| 2023 | 2023 | ||||||
| https://habr.com/ru/articles/780322/ | https://habr.com/ru/articles/780322/ | ||||||
|     ! super-cool !!! |     ! super-cool !!! about matlab inside | ||||||
| 2022 | 2022 | ||||||
| https://sivanaikk0903.medium.com/run-gui-applications-in-docker-container-ba3f6ebcfc91 | https://sivanaikk0903.medium.com/run-gui-applications-in-docker-container-ba3f6ebcfc91 | ||||||
|     -net=host |     -net=host | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								devops/container/docker/features/ui/docker-firefox.txt
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						
									
										1
									
								
								devops/container/docker/features/ui/docker-firefox.txt
									
									
									
									
									
										Обычный файл
									
								
							| @ -0,0 +1 @@ | |||||||
|  | https://docs.linuxserver.io/images/docker-firefox | ||||||
							
								
								
									
										1
									
								
								devops/container/docker/features/ui/hyperbeam.txt
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						
									
										1
									
								
								devops/container/docker/features/ui/hyperbeam.txt
									
									
									
									
									
										Обычный файл
									
								
							| @ -0,0 +1 @@ | |||||||
|  | https://watch.hyperbeam.com/ | ||||||
							
								
								
									
										73
									
								
								devops/container/docker/features/ui/neko.txt
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						
									
										73
									
								
								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). | ||||||
| @ -1 +1,2 @@ | |||||||
| https://www.youtube.com/@military_movies/videos | https://www.youtube.com/@military_movies/videos | ||||||
|  | https://www.youtube.com/@swellfilm | ||||||
|  | |||||||
| @ -22,6 +22,8 @@ people | |||||||
|     ! his students - S.S Averintsev, V Bibihin |     ! his students - S.S Averintsev, V Bibihin | ||||||
| 
 | 
 | ||||||
| 2024 | 2024 | ||||||
|  | Pravblog - Mazhuko - Interview - Digitalization of 18:00 | ||||||
|  |     https://www.youtube.com/watch?v=mqEkfTc3Av0 | ||||||
| Mazhuko - Favorite Icons of 7:23 | Mazhuko - Favorite Icons of 7:23 | ||||||
|     https://www.youtube.com/watch?v=14JFexNSzJ4 |     https://www.youtube.com/watch?v=14JFexNSzJ4 | ||||||
| Mazhuko - About Peace and Commonality of 14:25 | Mazhuko - About Peace and Commonality of 14:25 | ||||||
|  | |||||||
| @ -5,6 +5,8 @@ https://vk.com/public210614080 | |||||||
| https://www.youtube.com/c/Metametrica/videos | https://www.youtube.com/c/Metametrica/videos | ||||||
| 
 | 
 | ||||||
| 2024 | 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 | 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=-DbtI5Pl0pQ | ||||||
|     https://www.youtube.com/watch?v=-Fzn35Ahu-o |     https://www.youtube.com/watch?v=-Fzn35Ahu-o | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| 2024 | 2024 | ||||||
| AntonovSoAntonov - Myths about Belousov 21:00 of 59:43 | AntonovSoAntonov - Myths about Belousov of 59:43 | ||||||
|     https://www.youtube.com/watch?v=suTtKjJsErQ |     https://www.youtube.com/watch?v=suTtKjJsErQ | ||||||
| 2020 | 2020 | ||||||
| TASSConferences - Kudryavtseva - Belousov - Dev Model Change of 57:59 | TASSConferences - Kudryavtseva - Belousov - Dev Model Change of 57:59 | ||||||
|  | |||||||
| @ -1 +1,3 @@ | |||||||
|  | https://www.josean.com/posts/vim-essentials-cheatsheet | ||||||
|  |     https://www.youtube.com/watch?v=80mWp6H4zEw | ||||||
| https://devhints.io/vim | https://devhints.io/vim | ||||||
|  | |||||||
| @ -42,3 +42,43 @@ https://bookflow.ru/10-primerov-komand-lsof-v-linux/ | |||||||
| # lsof -iUDP | # 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 | ||||||
|  | 
 | ||||||
|  | То есть сначала смотрим, что будет прибито, а потом только делаем.  | ||||||
|  | 
 | ||||||
|  | Такая штука обычно нужна для каких-то костылей и велосипедов, когда что-то зависает, не перезапускается, а надо освободить порт, чтобы запустить новый экземпляр. | ||||||
|  | |||||||
| @ -2,6 +2,6 @@ https://habr.com/ru/articles/265061/ | |||||||
| 
 | 
 | ||||||
| 2024 | 2024 | ||||||
| https://habr.com/ru/companies/magnit/articles/814573/ | https://habr.com/ru/companies/magnit/articles/814573/ | ||||||
|     ! other models adaptation |     ! getting rid of SQL in Java Code | ||||||
|     @OneToMany  |     @OneToMany  | ||||||
| 	  @Fetch(FetchMode.SUBSELECT) // but does now work with pagination, hbm-bug | 	  @Fetch(FetchMode.SUBSELECT) // but does now work with pagination, hbm-bug | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| 2023 | 2023 | ||||||
| Spilca - Spring Security in Action 2nd ed v07 | Spilca - Spring Security in Action 2nd ed | ||||||
|     EE48E14DEB46F360725DF513EF0D765E |     92D0CE1BCDE9D39E5036351366EAE683 | ||||||
| 2020 | 2020 | ||||||
| Spilca - Spring Security in Action | Spilca - Spring Security in Action | ||||||
|     0774C860C43474D328096BDE5DD6233E |     0774C860C43474D328096BDE5DD6233E | ||||||
|  | |||||||
| @ -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 |         jfr 23544 JFR.start +backend.io.BytesRead#enabled=true | ||||||
| 
 | 
 | ||||||
| 2023 | 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 |     https://www.youtube.com/watch?v=Gx_JGVborJ0 | ||||||
|     ! import jdk.jfr.Event; |     ! import jdk.jfr.Event; | ||||||
|     ! extend ... |     ! extend ... | ||||||
|     ! @StackTrace(... depth ...) |     ! @StackTrace(... depth ...) | ||||||
|  |     ! cfg-files $JAVA_HOME/lib/jfr/{default,profile}.jfc | ||||||
| 2022 | 2022 | ||||||
| Java - Programmer's Guide to JDK Flight Recorder of 24:08 | Java - Programmer's Guide to JDK Flight Recorder of 24:08 | ||||||
|     https://www.youtube.com/watch?v=K1ApBZGiT-Y |     https://www.youtube.com/watch?v=K1ApBZGiT-Y | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								pl/java/tools/quality/profiling/jfr/docs/resources.txt
									
									
									
									
									
										Обычный файл
									
								
							
							
						
						
									
										1
									
								
								pl/java/tools/quality/profiling/jfr/docs/resources.txt
									
									
									
									
									
										Обычный файл
									
								
							| @ -0,0 +1 @@ | |||||||
|  | https://inside.java/tag/jfr | ||||||
| @ -17,6 +17,8 @@ Moscvitin - Data Structures and Algorithms ru 145p | |||||||
| Petrov - Database Internals | Petrov - Database Internals | ||||||
|     B4C0E9966DCAF74A08B5498DC632E5D5 |     B4C0E9966DCAF74A08B5498DC632E5D5 | ||||||
|     902BA0835E8E3E0262C236E3198E1EF5 |     902BA0835E8E3E0262C236E3198E1EF5 | ||||||
|  |     05EF18AA9887E93CD3BABF136E65001B | ||||||
|  |     !!! | ||||||
| 2008 | 2008 | ||||||
| Brass - Advanced Data Structures | Brass - Advanced Data Structures | ||||||
|     9ADB50FA694FE82036A7F38D9BEDFC98 |     9ADB50FA694FE82036A7F38D9BEDFC98 | ||||||
|  | |||||||
		Загрузка…
	
	
			
			x
			
			
		
	
		Ссылка в новой задаче
	
	Block a user
	 Ihar Hancharenka
						Ihar Hancharenka