Forwarded from Записки MLEшника (Egor)
Хочу рассказать о горячо любомом мной инструменте - pre-commit хуках. Начну немного издалека.
Если меня спросят: "В чем сила, брат?", я отвечу: "В унификации и стандартизации". Врядли бы мы достигли текущего уровня развития техники, не стандартизируй предки болты, транзисторы и еще куча всего. Программное обеспечение - не исключение.
Рекомендации по оформлению кода содержатся в PEP8 (стайлгайд к языку). Но лень же каждый раз дотошно редактировать все строки кода. Для автоматизации форматирования кода есть соответствующие инструменты - форматеры (formatters). Например, black (форматирует классы, функции, литералы и др.), isort (сортирует импорты по алфавиту) или pycln (удаляет неиспользуемые импорты). Запустив их по очереди, вы получите отформатированный по код. Чтобы дополнительно проверить на соответствие PEP8, можем запустить flake8 (проверяет, что код соответствует PEP8). Также flake находит неиспользуемые переменные, повтореную инициализацию или просто слишком сложные функции. Красота 🌝
Возник резонный вопрос: "А не многовато всего руками на каждый коммит запускать?!". Ответ убил - pre-commit хуки.
Эти ребята будут за вас запускать весь этот паровоз кода при каждом коммите (пуше, пуле - как настроите). Я влюбился в это с первого взгляда.
Очень советую данный инструмент командам. С момента добавления хуков в репозиторий у нас не было ни одного спора в пиарах по поводу кавычек, переноса строк и тому подобного 💁♀️. Также мы добавили эту проверку в CI, чтобы наверняка.
Также в хуки можно добавить mypy или даже dvc. Например, если хотите делать dvc push на каждый git push.
Тут пример моего конфига, который без особых изменений кочует из проекта в проект. На каждый коммит:
1. Запускает набор хуков из репы pre-commit (форматирует жейсоны, ямли, иксемели, рекваерменты)
2. Запускает pycln (удаляются все неиспользуемые импорты)
3. Запускает black (форматируется код по PEP8. Тут же, например, кавычки заменяются на двойные)
4. Запускает isort (переупорядочивает и сортирует импорты)
5. Запускает flake8 (проверяет, все ли у нас по PEP8. Также покажет, если остались неиспользуемые переменные)
Пайплайн использования такой:
1. Делаете комит
2. Хуки запускаются. Видят, что есть косяки. Редактируют код. Отменяют ваш комит.
3. Добавляете изменения, которые внесли хуки в комит.
4. Делаете комит
Вся эта красота устанавливается в две команды:
Если меня спросят: "В чем сила, брат?", я отвечу: "В унификации и стандартизации". Врядли бы мы достигли текущего уровня развития техники, не стандартизируй предки болты, транзисторы и еще куча всего. Программное обеспечение - не исключение.
Рекомендации по оформлению кода содержатся в PEP8 (стайлгайд к языку). Но лень же каждый раз дотошно редактировать все строки кода. Для автоматизации форматирования кода есть соответствующие инструменты - форматеры (formatters). Например, black (форматирует классы, функции, литералы и др.), isort (сортирует импорты по алфавиту) или pycln (удаляет неиспользуемые импорты). Запустив их по очереди, вы получите отформатированный по код. Чтобы дополнительно проверить на соответствие PEP8, можем запустить flake8 (проверяет, что код соответствует PEP8). Также flake находит неиспользуемые переменные, повтореную инициализацию или просто слишком сложные функции. Красота 🌝
Возник резонный вопрос: "А не многовато всего руками на каждый коммит запускать?!". Ответ убил - pre-commit хуки.
Эти ребята будут за вас запускать весь этот паровоз кода при каждом коммите (пуше, пуле - как настроите). Я влюбился в это с первого взгляда.
Очень советую данный инструмент командам. С момента добавления хуков в репозиторий у нас не было ни одного спора в пиарах по поводу кавычек, переноса строк и тому подобного 💁♀️. Также мы добавили эту проверку в CI, чтобы наверняка.
Также в хуки можно добавить mypy или даже dvc. Например, если хотите делать dvc push на каждый git push.
Тут пример моего конфига, который без особых изменений кочует из проекта в проект. На каждый коммит:
1. Запускает набор хуков из репы pre-commit (форматирует жейсоны, ямли, иксемели, рекваерменты)
2. Запускает pycln (удаляются все неиспользуемые импорты)
3. Запускает black (форматируется код по PEP8. Тут же, например, кавычки заменяются на двойные)
4. Запускает isort (переупорядочивает и сортирует импорты)
5. Запускает flake8 (проверяет, все ли у нас по PEP8. Также покажет, если остались неиспользуемые переменные)
Пайплайн использования такой:
1. Делаете комит
2. Хуки запускаются. Видят, что есть косяки. Редактируют код. Отменяют ваш комит.
3. Добавляете изменения, которые внесли хуки в комит.
4. Делаете комит
Вся эта красота устанавливается в две команды:
pip install pre-commit
pre-commit install
Forwarded from DevFM
Kubernetes в небольших проектах
Для запуска приложения из нескольких компонент применяется docker compose. А с Kubernetes обычно сталкиваешься уже на достаточно больших проектах со сложной сервисной архитектурой.
Современному инженеру следует знать о Kubernetes. Он сейчас применяется повсеместно и позволяет сделать проект надёжным, отказоустойчивым и горизонтально масштабируемым.
Начинается статья с основ: что такое кубер, из каких компонентов состоит и как функционирует. Рассказав базу, автор переходит к инфраструктурным задачам, которые перед ними стоят и то, как кубер помогает их решать.
Среди задач выделяют:
— сбор логов
— сбор метрик
— проверка работоспособности сервисов
— автоматическое обнаружение сервисов
— масштабирование
Для любителей видео формата: доклад.
Для особо любопытных в конце приводятся ссылки на статьи по смежным областям. Нам нравится статья: Лучшие практики CI/CD с Kubernetes и GitLab.
#skills
Для запуска приложения из нескольких компонент применяется docker compose. А с Kubernetes обычно сталкиваешься уже на достаточно больших проектах со сложной сервисной архитектурой.
Современному инженеру следует знать о Kubernetes. Он сейчас применяется повсеместно и позволяет сделать проект надёжным, отказоустойчивым и горизонтально масштабируемым.
Начинается статья с основ: что такое кубер, из каких компонентов состоит и как функционирует. Рассказав базу, автор переходит к инфраструктурным задачам, которые перед ними стоят и то, как кубер помогает их решать.
Среди задач выделяют:
— сбор логов
— сбор метрик
— проверка работоспособности сервисов
— автоматическое обнаружение сервисов
— масштабирование
Для любителей видео формата: доклад.
Для особо любопытных в конце приводятся ссылки на статьи по смежным областям. Нам нравится статья: Лучшие практики CI/CD с Kubernetes и GitLab.
#skills
Хабр
Наш опыт с Kubernetes в небольших проектах (обзор и видео доклада)
6 июня на конференции RootConf 2017, проходившей в рамках фестиваля «Российские интернет-технологии» (РИТ++ 2017), в секции «Непрерывное развертывание и деплой» прозвучал доклад «Наш опыт с...
Forwarded from тревожный эйчар
Вы знаете кого-то, кто мог бы самостоятельно решить все важные вопросы в современной компании? Мы тоже нет. Время единоличных лидеров, которые стремятся к абсолютной власти, уходит. Сегодня эффективнее командные лидеры, способные сознательно ограничить свою власть.
Разницу между двумя этими подходами описал автор модели командных ролей Рэймонд Мередит Белбин. Смотрите главное в карточках ☝️
Разницу между двумя этими подходами описал автор модели командных ролей Рэймонд Мередит Белбин. Смотрите главное в карточках ☝️
Forwarded from Кодим на Коленке | Уроки по программированию
Forwarded from commit history
Как и где искать новую работу.
Собрал небольшую заметку про поиск работы (больше про зарубежные компании). Тут оговорка, что в большинстве позиций нужно, чтобы у вас было право работы на территории страны. Но есть и вакансии full-remote и с релокацией.
Во-первых, нужно актуализировать или составить CV (резюме), профиль на Linkedin и других платформах.
1. Посмотреть материалы гарварда.
2. Полистать закрепы и примеры в чате @resume_review
3. Составить резюме. Я использовал вот такой шаблон в overleaf
4. Можно закинуть CV в чат из 2 пункта для обратной связи.
Во-вторых, искать вакансии и подаваться.
1. Найти рефералов (человек из компании, который вас рекомендует) в компании через знакомых, чаты и сеть Linkedin. Самый рабочий способ, если хотите в конкретные компании.
2. Заполнить свой профиль на Linkedin. Будут прилетать вакансии от рекрутеров в личку/на почту. Откликался на вакансии через сам Linkedin, отдача маленькая, но собесы оттуда были.
3. Откликаться на вакансии в чатах. На первый этап точно попадете. Круто, что в #_jobs в слаке ods, описание вакансий сразу с вилкой зп.
4. Бот @g_jobbot. Были и предложения, и офферы, и сам откликался.
5. На hackernews каждый месяц появляется тред, где публикуют вакансии. Вот их агрегатор.
6. Есть разные ресурсы, которые матчат вас с работодателем. Вроде honeypot. Я пробовал, даже был собес. Но там были низкие вилки и мало предложений.
7. Indeed.com или angel.co Регался, даже была пара собесов оттуда.
8. Находить на crunchbase свежие стартапы, которые подняли раунд и теперь нанимают. Не пробовал такой способ, но хотел.
Еще можно подаваться напрямую в компании через сайт, но я такой способ не пробовал без рефералов.
Напишите в комменты, какие еще ресурсы вам помогали в поиске работы. Или что из этого списка cработало.
Собрал небольшую заметку про поиск работы (больше про зарубежные компании). Тут оговорка, что в большинстве позиций нужно, чтобы у вас было право работы на территории страны. Но есть и вакансии full-remote и с релокацией.
Во-первых, нужно актуализировать или составить CV (резюме), профиль на Linkedin и других платформах.
1. Посмотреть материалы гарварда.
2. Полистать закрепы и примеры в чате @resume_review
3. Составить резюме. Я использовал вот такой шаблон в overleaf
4. Можно закинуть CV в чат из 2 пункта для обратной связи.
Во-вторых, искать вакансии и подаваться.
1. Найти рефералов (человек из компании, который вас рекомендует) в компании через знакомых, чаты и сеть Linkedin. Самый рабочий способ, если хотите в конкретные компании.
2. Заполнить свой профиль на Linkedin. Будут прилетать вакансии от рекрутеров в личку/на почту. Откликался на вакансии через сам Linkedin, отдача маленькая, но собесы оттуда были.
3. Откликаться на вакансии в чатах. На первый этап точно попадете. Круто, что в #_jobs в слаке ods, описание вакансий сразу с вилкой зп.
4. Бот @g_jobbot. Были и предложения, и офферы, и сам откликался.
5. На hackernews каждый месяц появляется тред, где публикуют вакансии. Вот их агрегатор.
6. Есть разные ресурсы, которые матчат вас с работодателем. Вроде honeypot. Я пробовал, даже был собес. Но там были низкие вилки и мало предложений.
7. Indeed.com или angel.co Регался, даже была пара собесов оттуда.
8. Находить на crunchbase свежие стартапы, которые подняли раунд и теперь нанимают. Не пробовал такой способ, но хотел.
Еще можно подаваться напрямую в компании через сайт, но я такой способ не пробовал без рефералов.
Напишите в комменты, какие еще ресурсы вам помогали в поиске работы. Или что из этого списка cработало.
Forwarded from Борис опять
Разбирался в апскейле изображений, bilinear и bicubic интерполяции, aliasing.
Процесс апскейла изображений на пальцах такой:
1. Создаем новое изображение большего размера, добавляя "пустые” пиксели между пикселями изначальной сетки.
2. Применяем интерполяцию, чтобы определить значения “пустых" пикселей на основе значений соседних пикселей изначального изображения.
* Простейший вариант: nearest neighbor. Берем значение ближайшего пикселя.
* Поумнее: bilinear. Значение "пустого" пикселя расчитывается как взвешенная сумма ближайших четырех исходных пикселей. Веса зависят от расстояния: чем ближе пиксель, тем больше он влияет.
* Еще умнее: bicubic. Принцип как у billinear, но используюстя пиксели в окне 16х16 и уравнение посложнее. Соответственно результат более гладкий.
3. Применям алгоритм anti-aliasing, чтобы убрать артефакты апскейла. Например, "лесенки" на диагональных линиях, которые можно наблюдать, если повращать какой-нибудь контур в пейнте.
Unfun fact: по умолчанию torch.nn.functional.interpolate использует nearest-neighbor интерполяцию. Самую быструю и самую плохую по качеству.
Unfun fact 2: из Python библиотек для обработки изображений только Pillow делает интерполяцию нормально. По умолчанию использует bicubic.
Вывод: при ресайзе изображений для CV стоит обращать внимание на то, каким образом происходит интерполяция. Если вы по-разному ресайзите трейн и тест, это может внести в данные сдвиг распределения. Особенно опасно, если при обучении вы делаете ресайз одной библиотекой, а в продакшне другой.
Как правило можно использовать bilinear/bicubic из Pillow и не волноваться.
Хорошие статьи:
* https://zuru.tech/blog/the-dangers-behind-image-resizing
* https://www.cambridgeincolour.com/tutorials/image-interpolation.htm
Процесс апскейла изображений на пальцах такой:
1. Создаем новое изображение большего размера, добавляя "пустые” пиксели между пикселями изначальной сетки.
2. Применяем интерполяцию, чтобы определить значения “пустых" пикселей на основе значений соседних пикселей изначального изображения.
* Простейший вариант: nearest neighbor. Берем значение ближайшего пикселя.
* Поумнее: bilinear. Значение "пустого" пикселя расчитывается как взвешенная сумма ближайших четырех исходных пикселей. Веса зависят от расстояния: чем ближе пиксель, тем больше он влияет.
* Еще умнее: bicubic. Принцип как у billinear, но используюстя пиксели в окне 16х16 и уравнение посложнее. Соответственно результат более гладкий.
3. Применям алгоритм anti-aliasing, чтобы убрать артефакты апскейла. Например, "лесенки" на диагональных линиях, которые можно наблюдать, если повращать какой-нибудь контур в пейнте.
Unfun fact: по умолчанию torch.nn.functional.interpolate использует nearest-neighbor интерполяцию. Самую быструю и самую плохую по качеству.
Unfun fact 2: из Python библиотек для обработки изображений только Pillow делает интерполяцию нормально. По умолчанию использует bicubic.
Вывод: при ресайзе изображений для CV стоит обращать внимание на то, каким образом происходит интерполяция. Если вы по-разному ресайзите трейн и тест, это может внести в данные сдвиг распределения. Особенно опасно, если при обучении вы делаете ресайз одной библиотекой, а в продакшне другой.
Как правило можно использовать bilinear/bicubic из Pillow и не волноваться.
Хорошие статьи:
* https://zuru.tech/blog/the-dangers-behind-image-resizing
* https://www.cambridgeincolour.com/tutorials/image-interpolation.htm
Forwarded from Aspiring Data Science
Эрни Чан - бывший сотрудник хедж-фонда, уже много лет как частный трейдер, автор 3 хороших книг и множества лекций. Очень интересно наблюдать эволюцию его взглядов на трейдинг и применимость ML в финансах. Идея об уходе от общих таргетов заслуживает внимания и проверки, тем более что о ней же говорит и ДеПрадо (в его книге эта техника называется "метаразметкой").
https://www.youtube.com/watch?v=nAOjbL5bsjA
Книга Quantitative Trading: How to Build Your Own Algorithmic Trading Business https://www.amazon.com/gp/product/B097QGPVND/
Ещё у него есть активный блог: http://epchan.blogspot.com/
https://www.youtube.com/watch?v=nAOjbL5bsjA
Книга Quantitative Trading: How to Build Your Own Algorithmic Trading Business https://www.amazon.com/gp/product/B097QGPVND/
Ещё у него есть активный блог: http://epchan.blogspot.com/
YouTube
What is Corrective AI and how it can improve your investment decisions | Dr Ernest Chan
Dr Ernest Chan introduces us to the concept of corrective artificial intelligence and its applications in the financial markets.
-----------------------------------------
Chapters:
00:00 Introduction
02:27 What is corrective AI?
07:23 ML for risk management…
-----------------------------------------
Chapters:
00:00 Introduction
02:27 What is corrective AI?
07:23 ML for risk management…
Forwarded from Artem K
Пожалуйста, не отклоняйтесь от темы чата! Флуд и нерелвантные темы могут привести к бану!
В этом чате по-умолчанию рассматриваем американский формат резюме айтишников. Если нужно ревью для страны с местными особенностями - обязательно укажи для какой страны составлено резюме.
В данном чате нет профессиональных рекрутеров, не все рекомендации могут быть полезными.
!!! TL;DR https://news.1rj.ru/str/resume_review/38603 !!!
Полезные ссылки(предлагайте еще):
https://www.careercup.com/resume
https://news.1rj.ru/str/resume_review/4574
http://larrr.com/resume-checklist-ili-kak-delat-ne-nado
https://habr.com/ru/post/542372
https://twitter.com/slizagna/status/1356652219932626944
Как готовиться к бехейв интервью: https://www.youtube.com/c/DanCroitor
Советы для джунов: https://news.1rj.ru/str/resume_review/34487
Resume templates: https://www.overleaf.com/latex/templates/awesome-cv/dfnvtnhzhhbm
Еще один шаблон: https://github.com/posquit0/Awesome-CV
Советы по резюме от HR FB: https://news.1rj.ru/str/resume_review/2705
Форум по резюме для США: https://forum.govorimpro.us/t/покритикуйте-пожалуйста-резюме/36763
Еще одна валидация резюме: https://www.reddit.com/r/resumes
Можно сделать бесплатную проверку резюме(платить им деньги не рекомендую) - https://www.topresume.com
Здесь можно сделать бесплатный скрининг резюме: https://resumeworded.com
Еще один бесплатный скрининг резюме: https://www.vmock.com
Советы для джунов: https://news.1rj.ru/str/resume_review/34487
Проверка английского в резюме:
https://app.grammarly.com
https://hemingwayapp.com
Ссылки по странам:
Германия - https://www.thelocal.de/20130131/47649
Подготовка к собеседованиям:
@FaangInterview
@l33tcode
Флудильни:
@FloodInterview
@pogromista
Для активных участников чата разрешены ссылки на ресурсы и одна реклама того, что относится к резюме айтишников с тегом #реклама в начале сообщения(в т.ч. для личных и некомерческих проектов)
Разрешены посты о протестах против войны.
Запрещены обсуждения постов про пртесты и любые выпадки в сторону Украины.
Админы: @ArtemK_us, @julialxv и др
В этом чате по-умолчанию рассматриваем американский формат резюме айтишников. Если нужно ревью для страны с местными особенностями - обязательно укажи для какой страны составлено резюме.
В данном чате нет профессиональных рекрутеров, не все рекомендации могут быть полезными.
!!! TL;DR https://news.1rj.ru/str/resume_review/38603 !!!
Полезные ссылки(предлагайте еще):
https://www.careercup.com/resume
https://news.1rj.ru/str/resume_review/4574
http://larrr.com/resume-checklist-ili-kak-delat-ne-nado
https://habr.com/ru/post/542372
https://twitter.com/slizagna/status/1356652219932626944
Как готовиться к бехейв интервью: https://www.youtube.com/c/DanCroitor
Советы для джунов: https://news.1rj.ru/str/resume_review/34487
Resume templates: https://www.overleaf.com/latex/templates/awesome-cv/dfnvtnhzhhbm
Еще один шаблон: https://github.com/posquit0/Awesome-CV
Советы по резюме от HR FB: https://news.1rj.ru/str/resume_review/2705
Форум по резюме для США: https://forum.govorimpro.us/t/покритикуйте-пожалуйста-резюме/36763
Еще одна валидация резюме: https://www.reddit.com/r/resumes
Можно сделать бесплатную проверку резюме(платить им деньги не рекомендую) - https://www.topresume.com
Здесь можно сделать бесплатный скрининг резюме: https://resumeworded.com
Еще один бесплатный скрининг резюме: https://www.vmock.com
Советы для джунов: https://news.1rj.ru/str/resume_review/34487
Проверка английского в резюме:
https://app.grammarly.com
https://hemingwayapp.com
Ссылки по странам:
Германия - https://www.thelocal.de/20130131/47649
Подготовка к собеседованиям:
@FaangInterview
@l33tcode
Флудильни:
@FloodInterview
@pogromista
Для активных участников чата разрешены ссылки на ресурсы и одна реклама того, что относится к резюме айтишников с тегом #реклама в начале сообщения(в т.ч. для личных и некомерческих проектов)
Разрешены посты о протестах против войны.
Запрещены обсуждения постов про пртесты и любые выпадки в сторону Украины.
Админы: @ArtemK_us, @julialxv и др
Telegram
Artem K in Tech resume review
#полезное #useful
English version below
‼️ Флуд и обсуждения — в @maang_talks
📌 Коротко по резюме:
0️⃣ Используйте PDF (не .doc, не .docx)
1️⃣ Выбирайте стандартный шаблон без изысков и без колонок
2️⃣ Имя и фамилия в английском порядке (пример — Volodymyr…
English version below
‼️ Флуд и обсуждения — в @maang_talks
📌 Коротко по резюме:
0️⃣ Используйте PDF (не .doc, не .docx)
1️⃣ Выбирайте стандартный шаблон без изысков и без колонок
2️⃣ Имя и фамилия в английском порядке (пример — Volodymyr…
Forwarded from commit history
Написал статью на основе заметок по собеседованиям отсюда. В качестве доп материалов добавил:
+ скрин литкода
+ фото заката с Бали
+ фото домашнего рабочего места в Москве
+ общие советы для прохождения собеседований
https://habr.com/ru/post/704128/
+ скрин литкода
+ фото заката с Бали
+ фото домашнего рабочего места в Москве
+ общие советы для прохождения собеседований
https://habr.com/ru/post/704128/
Хабр
Как устроен процесс найма и собеседований на позицию Machine Learning Engineer
Это статья с 21-ой ссылкой о подготовке к собеседованиям на позиции Machine Learning Engineer. Статью собрал на основе заметок из своего канала в тг . Контекст Cейчас я отвечаю за ML в...