7 заметок с тегом

полезности

newprojectname.dev

https://newprojectname.dev

Есть забавная традиция называть проекты/библиотеки именами различных мифических существ и божеств. И у меня давно лежала идея хелпера по подбору таких названий, но реализовал её только сейчас.

Я напарсил самый большой список названий божеств из 43 пантеонов, что дало 4096 уникальных имён (и 9000 если считать все алиасы). Ну а чтобы избежать коллизий, проект на лету ищет эти имена в названиях репозиториев на Гитхабе и показывает топ-результаты.

Из интересной инженерии: проект на Svelte, имеются исходники. Внутри есть база на 1Мб сырого json’a, которая затаскивается в общий бандл приложения и ужимается до 150кб. И из-за этого хака всё успешно хостится как статика на Digital Ocean’e за 0.00$ в месяц. Дизайн тоже корявенько делал я. Запросы к Гитхабу — клиентские, лимиты запросов — тоже на клиенте. Легчайшая поддержка.

Rejection sampling и Reservoir sampling

Разобрался на днях с двумя интересными алгоритмами про выборки.

Rejection sampling находил в задачах вроде «с помощью функции, которая гарантирует равновероятное выпадение целого числа в интервале [1...7], создайте функцию, которая делает тоже самое, но в интервале от [1...10]». Ещё такая же задача была однажды у меня на собесе в Яндексе: дана монетка с вероятностью выпадения орла/решки ½. С помощью этой монетки нужно смоделировать вероятность ⅓. Я интуитивно дошёл до решения и доказал, что это работает, но конкретно названия группы алгоритмов не знал.

Reservoir sampling про то, как смоделировать равновероятный выбор элемента при неизвестной конечной размерности множества вариантов.

Ecto и GCP Cloud SQL

Когда запускаешь сервис через GCP Cloud Run, есть очень удобная возможность пробросить внутрь контейнера Cloud SQL через настройки сервиса при запуске.

В Ecto (data-layer для Elixir-приложений, чаще всего используется с фреймворком Phoenix) получается такой удобный конфиг для PostgreSQL:

# project_directory/config/config.exs config :project, Project.Repo, username: "username", password: "password", database: "db_name", socket: "/cloudsql/<project>:<region:><db_instance_name>/.s.PGSQL.5432"

docker-compose не умеет искать конфиги docker’a из snap’a

Исходная обстановка:

docker version 18.09.9, build 1752eb3 docker-compose version 1.25.4, build 8d51620a Ubuntu 18.04

При пуле из приватного AWS ECR после docker login и aws ecr get-login-password сам docker работает нормально, а вот docker-compose не может аутентифицироваться в ECR и отдает ошибку:

ERROR: compose.cli.errors.log_api_error: Get https://aws_id.dkr.ecr.region.amazonaws.com/image:tag: no basic auth credentials

Через verbose выяснено, что docker-compose ищет конфиг с ключами в ~/.docker/config.json или ~/.dockercfg, а если (как было и есть у меня) docker поставлен через snap, то конфиг благополучно не находится, потому что всё лежит в другом месте. Спасибо на том, что в verbose пишет.

Конфиг же лежит в ~/snap/docker/current/.docker/config.json, где current — это симлинк до текущей версии.

Выход: создать симлинк на существующий конфиг в ~/.docker/

UPD: Хотя да, тут можно и в мейнтейнеров пакета из Canonical камень кинуть, почему они симлинки конфигов в стандартные места не делают при установке. Кажется разумным так делать.

bash -> zsh

Ruby-скрипт для конвертации истории bash в zsh, Ctrl-C / Ctrl-V с просторов Гитхаба.

#################################################################
# = 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="#{ENV['HOME']}/.bash_history"
ZSH_HISTORY_FILE_PATH="#{ENV['HOME']}/.zsh_history"

# 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("\n")

# Open the zsh history file
zsh_hist_file = File.open(ZSH_HISTORY_FILE_PATH, "a")

# 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(": #{time}:0;#{command}\n")
end

# Close the file
zsh_hist_file.close

DIY курс по медицине

В ODS возникло обсуждение «Как прокачаться в медицине и понимания статей с pubmed до приличного уровня» и @statist (Андрей Огурцов) написал отличный гайд, чтобы зайдя с улицы можно было разобраться и прокачаться до нормального уровня. С его разрешения украл себе, а ещё он ведёт блог.

Биология

  1. Ботаника и зоология. С этого начинается биология. В жестком варианте с латынью и систематикой это мало кому интересно, а в нашем контексте совсем не актуально.
    Для общего развития пойдет «Аванта+. „Энциклопедия для детей. Т.2. Биология“».
  2. Цитология. Исторически тема устройства живого раскрывается снизу вверх (точнее, с середины, но объекты изучения биохимии и молекулярной биологии формально живыми не являются), то есть с цитологии. Изучается от и до по книге Molecular Biology of the Cell. Издание на английском брать как можно новее, русский перевод на мой 2006 был уже такой себе по актуальности, про более свежие переводы ничего не знаю.
  3. Гистология. Мимо меня она прошла почти полностью и ни разу не вспоминалась за годы работы, так что на мой взгляд можно пропустить. По желанию можно полистать какой-нибудь красочный гистологический атлас. Для задач такого типа все равно придется гуглить специфические вещи. А ещё и :stack-more-layers: работает лучше, чем знания в доменной области.
  4. Анатомия. В университетском варианте скучный и бесполезный предмет, чуть меньше чем полностью состоящий из названий костей и прочей требухи. Чтобы упороться, можно почитать «Синельников Р.Д. Атлас анатомии человека». С практической целью лучше почитать что-то типа «Коц Я.М. Спортивная физиология». Сам не читал, но одобряю.
  5. Физиология. «Шмидт Р. Физиология человека» — наше все. Также «Ганонг В.Ф. Физиология человека». Читал украинский перевод, должен быть и русский, ну или в оригинале. Все подряд читать не обязательно, но вообще это центровой предмет, которому на моем биофаке могли бы побольше времени уделить за счет упразднения всяких биоэтик.
  6. Биохимия. Еще один центровой предмет. Учится по «Lehninger. Principles of Biochemistry».
  7. Молекулярная биология. Тут все сложно — я учил по довольно-таки актуальной на момент написания книге от моего препода, но она только на украинском есть . Можно ограничиться книгой из пункта 2 и ситуативно гуглить отдельные тонкости.
  8. Вирусология. Если нужно — «Knipe. Fields Virology».
  9. Теория эволюции. Философская тема, можно начать с «Еськов К.Ю. История Земли и жизни на ней».
  10. Иммунология. «Paul. Fundamental Immunology».

Ещё немного о биохимии и других областях

  • Биохимия. Кроме базового учебника Ленинджера, полезно заиметь «Кольман Я., Рем К. Наглядная биохимия». Я почти не пользовался, но некоторым такой формат очень заходит.
  • Органическая химия. Перед биохимией может возникнуть потребность подучить. Можно почитать одноименную книгу под ред. Тюкавкиной. У меня основным учебником был «Ластухин Ю.О., Воронов С.А. Органічна хімія». По каждому классу соединений можно читать специализированную литературу, но на это жизни не хватит, так что лучше и не начинать.
  • Неорганическая биохимия — «Г. Эйхгорн. Неорганическая биохимия».
  • Для понимания лабораторной работы листаем «Molecular Cloning».
  • По методами нужно ориентироваться в секвенировании (это частично будет раскрыто в молекулярной биологии, но можно углубиться, загуглив Next-Generation Sequencing), спектральных методах (гуглить по потребности), ПЦР (есть годная книга «ПЦР в реальном времени» издательства Бином).
  • Биотехнология. «Глик Б., Пастернак Дж. Молекулярная биотехнология. Принципы и применение». Ну или оригинал, наверняка были новые издания.
  • Микробиологию ранее упустил, в общем виде она не нужна, как и вирусология. Чего-то лаконичного с прицелом на медицину я не нашел по этим двум предметам.
  • Биоинформатика. читаем «Buffalo V. Bioinformatics Data Skills», смотрим Coursera. На первое время хватит, далее можно искать другие курсы, в т.ч. очные от Института Биоинформатики.
  • Биостатистика. «Гланц С. Медико-биологическая статистика, Ланг Т.А., Сесик М. Как описывать статистику в медицине». Сюда же «Гринхальх Т. Основы доказательной медицины».
  • Чтобы приблизиться к медицине и фарме, читаем отраслевые стандарты — GMP, GCP и прочие GxP. Не страшно, если при первом прочтении не все будет понятно — при последующих прочтениях и при изучении новых редакций будет понятно еще меньше. Также полезным источником могут оказаться стандарты оказания медицинской помощи по разным заболеваниям. Там будет указано, чем в обязательном порядке лечить и как оценивать состояние пациента. Кроме российских, полезно брать всякие другие, например от American Diabetes Association для диабета.