<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог Антона Репушко: заметки с тегом полезности</title>
<link>https://repushko.com/tags/poleznosti/</link>
<description>Блог Антона Репушко</description>
<author>Антон Репушко</author>
<language>ru</language>
<generator>E2 (v3565; Aegea)</generator>

<itunes:owner>
<itunes:name>Антон Репушко</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Блог Антона Репушко</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Ubuntu и nvidia-container-toolkit</title>
<guid isPermaLink="false">61</guid>
<link>https://repushko.com/all/ubuntu-i-nvidia-container-toolkit/</link>
<pubDate>Sun, 30 Mar 2025 01:33:41 +0300</pubDate>
<author>Антон Репушко</author>
<comments>https://repushko.com/all/ubuntu-i-nvidia-container-toolkit/</comments>
<description>
&lt;p&gt;Из неочевидного: для того, чтобы в Docker-контейнерах заработал доступ к GPU, нужно использовать &lt;i&gt;docker-ce&lt;/i&gt;, а не &lt;i&gt;docker&lt;/i&gt; из Snap. Это связано с тем, что пакеты из snap’a работают в песочнице snap’a и не имеют прямого доступа к системе.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/docker/genai-stack/issues/95"&gt;Вот тут описание проблемы&lt;/a&gt;.&lt;/p&gt;
</description>
</item>

<item>
<title>newprojectname.dev</title>
<guid isPermaLink="false">57</guid>
<link>https://repushko.com/all/newprojectname-dev/</link>
<pubDate>Fri, 08 Jan 2021 23:47:43 +0300</pubDate>
<author>Антон Репушко</author>
<comments>https://repushko.com/all/newprojectname-dev/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://repushko.com/pictures/readme_image.jpeg" width="1280" height="729" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="newprojectname.dev"&gt;&lt;a href="https://newprojectname.dev"&gt;https://newprojectname.dev&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Есть забавная традиция называть проекты/библиотеки именами различных мифических существ и божеств. И у меня давно лежала идея хелпера по подбору таких названий, но реализовал её только сейчас.&lt;/p&gt;
&lt;p&gt;Я напарсил &lt;a href="https://github.com/repushko/mythology_names_dataset"&gt;самый большой список названий божеств&lt;/a&gt; из 43 пантеонов, что дало 4096 уникальных имён (и 9000 если считать все алиасы). Ну а чтобы избежать коллизий, проект на лету ищет эти имена в названиях репозиториев на Гитхабе и показывает топ-результаты.&lt;/p&gt;
&lt;p&gt;Из интересной инженерии: проект на &lt;a href="https://svelte.dev/"&gt;Svelte&lt;/a&gt;, имеются &lt;a href="https://github.com/repushko/newprojectname.dev"&gt;исходники&lt;/a&gt;. Внутри есть база на 1Мб сырого json’a, которая затаскивается в общий бандл приложения и ужимается до 150кб. И из-за этого хака всё успешно хостится как статика на Digital Ocean’e за 0.00$ в месяц. Дизайн тоже корявенько делал я. Запросы к Гитхабу — клиентские, лимиты запросов — тоже на клиенте. Легчайшая поддержка.&lt;/p&gt;
</description>
</item>

<item>
<title>Rejection sampling и Reservoir sampling</title>
<guid isPermaLink="false">54</guid>
<link>https://repushko.com/all/rejection-sampling-i-reservoir-sampling/</link>
<pubDate>Wed, 14 Oct 2020 21:28:27 +0300</pubDate>
<author>Антон Репушко</author>
<comments>https://repushko.com/all/rejection-sampling-i-reservoir-sampling/</comments>
<description>
&lt;p&gt;Разобрался на днях с двумя интересными алгоритмами про выборки.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Rejection_sampling"&gt;Rejection sampling&lt;/a&gt; находил в задачах вроде «с помощью функции, которая гарантирует равновероятное выпадение целого числа в интервале [1...7], создайте функцию, которая делает тоже самое, но в интервале от [1...10]».  Ещё такая же задача была однажды у меня на собесе в Яндексе: дана монетка с вероятностью выпадения орла/решки ½. С помощью этой монетки нужно смоделировать вероятность ⅓. Я интуитивно дошёл до решения и доказал, что это работает, но конкретно названия группы алгоритмов не знал.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Reservoir_sampling"&gt;Reservoir sampling&lt;/a&gt; про то, как смоделировать равновероятный выбор элемента при неизвестной конечной размерности множества вариантов.&lt;/p&gt;
</description>
</item>

<item>
<title>Ecto и GCP Cloud SQL</title>
<guid isPermaLink="false">35</guid>
<link>https://repushko.com/all/ecto-i-connect-k-gcp-cloud-sql/</link>
<pubDate>Fri, 17 Apr 2020 21:04:36 +0300</pubDate>
<author>Антон Репушко</author>
<comments>https://repushko.com/all/ecto-i-connect-k-gcp-cloud-sql/</comments>
<description>
&lt;p&gt;Когда запускаешь сервис через &lt;a href="https://cloud.google.com/run"&gt;GCP Cloud Run&lt;/a&gt;, есть очень &lt;a href="https://cloud.google.com/sql/docs/mysql/connect-run"&gt;удобная возможность&lt;/a&gt;  пробросить внутрь контейнера &lt;a href="https://cloud.google.com/sql"&gt;Cloud SQL&lt;/a&gt; через настройки сервиса при запуске.&lt;/p&gt;
&lt;p&gt;В &lt;a href="https://hexdocs.pm/ecto/Ecto.html"&gt;Ecto&lt;/a&gt; (data-layer для Elixir-приложений, чаще всего используется с фреймворком &lt;a href="https://www.phoenixframework.org/"&gt;Phoenix&lt;/a&gt;) получается такой удобный конфиг для PostgreSQL:&lt;/p&gt;
&lt;code class="elixir"&gt;
# project_directory/config/config.exs
config :project, Project.Repo,
       username: "username",
       password: "password",
       database: "db_name",
       socket: "/cloudsql/&amp;#60;project&gt;:&amp;#60;region:&gt;&amp;#60;db_instance_name&gt;/.s.PGSQL.5432"
&lt;/code&gt;
</description>
</item>

<item>
<title>docker-compose не умеет искать конфиги docker’a из snap’a</title>
<guid isPermaLink="false">34</guid>
<link>https://repushko.com/all/docker-compose-ecr-error/</link>
<pubDate>Wed, 15 Apr 2020 00:27:21 +0300</pubDate>
<author>Антон Репушко</author>
<comments>https://repushko.com/all/docker-compose-ecr-error/</comments>
<description>
&lt;p&gt;Исходная обстановка:&lt;/p&gt;
&lt;code class="accesslog"&gt;docker version 18.09.9, build 1752eb3
docker-compose version 1.25.4, build 8d51620a
Ubuntu 18.04&lt;/code&gt;
&lt;p&gt;&lt;p/&gt;&lt;/p&gt;
&lt;p&gt;При пуле из приватного AWS ECR после &lt;a href="https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login.html"&gt;&lt;i&gt;docker login&lt;/i&gt; и &lt;i&gt;aws ecr get-login-password&lt;/i&gt;&lt;/a&gt; сам &lt;i&gt;docker&lt;/i&gt; работает нормально, а вот &lt;i&gt;docker-compose&lt;/i&gt; не может аутентифицироваться в ECR и отдает ошибку:&lt;/p&gt;
&lt;code class="txt"&gt;ERROR: compose.cli.errors.log_api_error: Get https://aws_id.dkr.ecr.region.amazonaws.com/image:tag: no basic auth credentials&lt;/code&gt;
&lt;p&gt;&lt;p/&gt;&lt;/p&gt;
&lt;p&gt;Через &lt;i&gt;verbose&lt;/i&gt; выяснено, что &lt;i&gt;docker-compose&lt;/i&gt; ищет конфиг с ключами в &lt;i&gt;~/.docker/config.json&lt;/i&gt; или &lt;i&gt;~/.dockercfg&lt;/i&gt;, а если (как было и есть у меня) &lt;i&gt;docker&lt;/i&gt; поставлен через &lt;a href="https://snapcraft.io/"&gt;snap&lt;/a&gt;, то конфиг благополучно не находится, потому что всё лежит в другом месте. Спасибо на том, что в &lt;i&gt;verbose&lt;/i&gt; пишет.&lt;/p&gt;
&lt;p&gt;Конфиг же лежит в &lt;i&gt;~/snap/docker/current/.docker/config.json&lt;/i&gt;, где &lt;i&gt;current&lt;/i&gt; — это симлинк до текущей версии.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Выход&lt;/b&gt;: создать симлинк на существующий конфиг в ~/.docker/&lt;/p&gt;
&lt;p&gt;UPD: Хотя да, тут можно и в мейнтейнеров пакета из Canonical камень кинуть, почему они симлинки конфигов в стандартные места не делают при установке. Кажется разумным так делать.&lt;/p&gt;
</description>
</item>

<item>
<title>bash -&amp;gt; zsh</title>
<guid isPermaLink="false">32</guid>
<link>https://repushko.com/all/bash-zsh/</link>
<pubDate>Tue, 07 Apr 2020 23:08:13 +0300</pubDate>
<author>Антон Репушко</author>
<comments>https://repushko.com/all/bash-zsh/</comments>
<description>
&lt;p&gt;Ruby-скрипт для конвертации истории bash в zsh, Ctrl-C / Ctrl-V с просторов Гитхаба.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;#################################################################
# = This script transfers bash history to zsh history
# = Change bash and zsh history files, if you don't use defaults
#
# = Usage: ruby bash_to_zsh_history.rb
#
# = Author: Ankit Goyal
#################################################################

# change if you don't use default values
BASH_HISTORY_FILE_PATH=&amp;quot;#{ENV['HOME']}/.bash_history&amp;quot;
ZSH_HISTORY_FILE_PATH=&amp;quot;#{ENV['HOME']}/.zsh_history&amp;quot;

# Read the bash history file
bash_hist_file = File.read(BASH_HISTORY_FILE_PATH)

# Get the list of commands from bash history hile
command_list = bash_hist_file.split(&amp;quot;\n&amp;quot;)

# Open the zsh history file
zsh_hist_file = File.open(ZSH_HISTORY_FILE_PATH, &amp;quot;a&amp;quot;)

# Get timestamp required for zsh history file format and update the history file
time = Time.now.to_i
command_list.each do |command|
  time += 1
  zsh_hist_file.write(&amp;quot;: #{time}:0;#{command}\n&amp;quot;)
end

# Close the file
zsh_hist_file.close&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>DIY курс по медицине</title>
<guid isPermaLink="false">16</guid>
<link>https://repushko.com/all/diy-course-medicine/</link>
<pubDate>Mon, 22 Jul 2019 15:45:30 +0300</pubDate>
<author>Антон Репушко</author>
<comments>https://repushko.com/all/diy-course-medicine/</comments>
<description>
&lt;p&gt;В &lt;a href="https://ods.ai"&gt;ODS&lt;/a&gt; возникло обсуждение «Как прокачаться в медицине и понимания статей с pubmed до приличного уровня» и @statist (Андрей Огурцов) написал отличный гайд, чтобы зайдя с улицы можно было разобраться и прокачаться до нормального уровня. С его разрешения украл себе, а ещё он ведёт &lt;a href="http://biostat-r.blogspot.com/"&gt;блог&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Биология&lt;/h2&gt;
&lt;ol start="1"&gt;
&lt;li&gt;&lt;b&gt;Ботаника&lt;/b&gt; и &lt;b&gt;зоология&lt;/b&gt;. С этого начинается биология. В жестком варианте с латынью и систематикой это мало кому интересно, а в нашем контексте совсем не актуально.&lt;br /&gt;
Для общего развития пойдет «Аванта+. „Энциклопедия для детей. Т.2. Биология“».&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Цитология.&lt;/b&gt; Исторически тема устройства живого раскрывается снизу вверх (точнее, с середины, но объекты изучения биохимии и молекулярной биологии формально живыми не являются), то есть с цитологии. Изучается от и до по книге &lt;a href="https://en.wikipedia.org/wiki/Molecular_Biology_of_the_Cell_(textbook)"&gt;Molecular Biology of the Cell&lt;/a&gt;. Издание на английском брать как можно новее, русский перевод на мой 2006 был уже такой себе по актуальности, про более свежие переводы ничего не знаю.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Гистология&lt;/b&gt;. Мимо меня она прошла почти полностью и ни разу не вспоминалась за годы работы, так что на мой взгляд можно пропустить. По желанию можно полистать какой-нибудь красочный гистологический атлас. Для задач &lt;a href="https://iciar2018-challenge.grand-challenge.org/Dataset/"&gt;такого типа&lt;/a&gt; все равно придется гуглить специфические вещи. А ещё и :stack-more-layers: работает лучше, чем знания в доменной области.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Анатомия.&lt;/b&gt; В университетском варианте скучный и бесполезный предмет, чуть меньше чем полностью состоящий из названий костей и прочей требухи. Чтобы упороться, можно почитать «Синельников Р.Д. Атлас анатомии человека». С практической целью лучше почитать что-то типа «Коц Я.М. Спортивная физиология». Сам не читал, но одобряю.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Физиология.&lt;/b&gt; «Шмидт Р. Физиология человека» — наше все. Также «Ганонг В.Ф. Физиология человека». Читал украинский перевод, должен быть и русский, ну или в оригинале. Все подряд читать не обязательно, но вообще это центровой предмет, которому на моем биофаке могли бы побольше времени уделить за счет упразднения всяких биоэтик.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Биохимия.&lt;/b&gt; Еще один центровой предмет. Учится по «Lehninger. Principles of Biochemistry».&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Молекулярная биология.&lt;/b&gt; Тут все сложно — я учил по довольно-таки актуальной на момент написания книге от моего препода, но она &lt;a href="http://biology.org.ua/files/lib/MolBiol_sivolob.pdf"&gt;только на украинском&lt;/a&gt; есть . Можно ограничиться книгой из пункта 2 и ситуативно гуглить отдельные тонкости.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Вирусология.&lt;/b&gt; Если нужно — &lt;a href="https://www.amazon.com/Fields-Virology-Knipe-2-Set/dp/1451105630" class="nu"&gt;«&lt;u&gt;Knipe. Fields Virology&lt;/u&gt;»&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Теория эволюции.&lt;/b&gt; Философская тема, можно начать с «Еськов К.Ю. История Земли и жизни на ней».&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Иммунология.&lt;/b&gt; &lt;a href="https://www.amazon.com/Fundamental-Immunology-William-Paul/dp/1451117833" class="nu"&gt;«&lt;u&gt;Paul. Fundamental Immunology&lt;/u&gt;»&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Ещё немного о биохимии и других областях&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Биохимия&lt;/b&gt;. Кроме базового учебника Ленинджера, полезно заиметь «Кольман Я., Рем К. Наглядная биохимия». Я почти не пользовался, но некоторым такой формат очень заходит.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Органическая химия.&lt;/b&gt; Перед биохимией может возникнуть потребность подучить. Можно почитать одноименную книгу под ред. Тюкавкиной. У меня основным учебником был «Ластухин Ю.О., Воронов С.А. Органічна хімія». По каждому классу соединений можно читать специализированную литературу, но на это жизни не хватит, так что лучше и не начинать.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Неорганическая биохимия&lt;/b&gt; — «Г. Эйхгорн. Неорганическая биохимия».&lt;/li&gt;
&lt;li&gt;Для понимания &lt;b&gt;лабораторной работы&lt;/b&gt; листаем &lt;a href="http://www.molecularcloning.com/" class="nu"&gt;«&lt;u&gt;Molecular Cloning&lt;/u&gt;»&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;По методами нужно ориентироваться в &lt;b&gt;секвенировании&lt;/b&gt; (это частично будет раскрыто в молекулярной биологии, но можно углубиться, загуглив Next-Generation Sequencing), &lt;b&gt;спектральных методах&lt;/b&gt; (гуглить по потребности), &lt;b&gt;ПЦР&lt;/b&gt; (есть годная книга «ПЦР в реальном времени» издательства Бином).&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Биотехнология.&lt;/b&gt; «Глик Б., Пастернак Дж. Молекулярная биотехнология. Принципы и применение». Ну или оригинал, наверняка были новые издания.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Микробиологию&lt;/b&gt; ранее упустил, в общем виде она не нужна, как и вирусология. Чего-то лаконичного с прицелом на медицину я не нашел по этим двум предметам.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Биоинформатика.&lt;/b&gt; читаем «Buffalo V. Bioinformatics Data Skills», смотрим &lt;a href="https://www.coursera.org/learn/bioinformatika"&gt;Coursera&lt;/a&gt;. На первое время хватит, далее можно искать другие курсы, в т.ч. очные от &lt;a href="https://bioinf.me"&gt;Института Биоинформатики&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Биостатистика.&lt;/b&gt; «Гланц С. Медико-биологическая статистика, Ланг Т.А., Сесик М. Как описывать статистику в медицине». Сюда же «Гринхальх Т. Основы доказательной медицины».&lt;/li&gt;
&lt;li&gt;Чтобы приблизиться к &lt;b&gt;медицине&lt;/b&gt; и &lt;b&gt;фарме&lt;/b&gt;, читаем отраслевые стандарты — GMP, GCP и прочие GxP. Не страшно, если при первом прочтении не все будет понятно — при последующих прочтениях и при изучении новых редакций будет понятно еще меньше. Также полезным источником могут оказаться стандарты оказания медицинской помощи по разным заболеваниям. Там будет указано, чем в обязательном порядке лечить и как оценивать состояние пациента. Кроме российских, полезно брать всякие другие, например от American Diabetes Association для диабета.&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>

<item>
<title>Схема выбора кода ответа HTTP</title>
<guid isPermaLink="false">14</guid>
<link>https://repushko.com/all/shema-vybora-koda-http/</link>
<pubDate>Sun, 09 Jun 2019 01:07:14 +0300</pubDate>
<author>Антон Репушко</author>
<comments>https://repushko.com/all/shema-vybora-koda-http/</comments>
<description>
&lt;p&gt;&lt;a href="https://upload.wikimedia.org/wikipedia/commons/6/65/Http-headers-status.gif"&gt;Высокое разрешение&lt;/a&gt;&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://repushko.com/pictures/Http-headers-status.gif-1.jpg" width="2560" height="1782" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Картинка для привлечения внимания&lt;/div&gt;
&lt;/div&gt;
</description>
</item>


</channel>
</rss>