Pull to refresh
3
0.5

WEB-программист, сетевой администратор

Send message

Рецензия на книгу «Elasticsearch в действии, 2-е издание»

Level of difficultyEasy
Reading time8 min
Views2.8K

Книга Elasticsearch в действии. Второе издание — это подробный (~650 страниц в русском переводе) путеводитель по созданию масштабируемых поисковых систем на базе Elasticsearch. Второе обновленное издание знакомит с архитектурой, API и реальными сценариями применения Elasticsearch — от полнотекстового поиска до визуализации данных и машинного обучения. Книга — отличный выбор для начинающих разработчиков, но наверняка может быть полезна и для практикующих специалистов. 

Читать далее

Полное руководство по модулю asyncio в Python. Часть 1

Reading time11 min
Views167K

Python-модуль asyncio позволяет заниматься асинхронным программированием с применением конкурентного выполнения кода, основанного на корутинах. Хотя этот модуль имеется в Python уже много лет, он остаётся одним из самых интересных механизмов языка. Но asyncio, при этом, можно назвать ещё и одним из модулей, которые вызывают больше всего недоразумений. Дело в том, что начинающим разработчикам бывает трудно приступить к использованию asyncio.

Перед вами — подробное и всестороннее руководство по использованию модуля asyncio в Python. В частности, здесь будут рассмотрены следующие основные вопросы:

Читать далее

Что такое конвейер данных? И почему вы должны это знать

Reading time4 min
Views9.1K

Конвейер данных (Data Pipeline) - это последовательность шагов для обработки данных. Если данные еще не присутствуют в платформе данных, они поступают в начале конвейера. Затем конвейер обрабатывает данные через ряд этапов, где выход каждого этапа становится входом следующего. Этот процесс продолжается до тех пор, пока конвейер не будет завершен. В некоторых случаях независимые этапы могут выполняться одновременно.

Читать далее

Python для преподавателя: как я использую код, чтобы автоматизировать работу

Reading time6 min
Views5K

Уже много лет я преподаю машинное обучение, программирование и анализ данных. Подготовка материалов лекций и общение со студентами доставляют огромное удовольствие, а вот рассылки, оформление ведомостей занимают большое количество времени и вызывают лишь скуку. Поэтому я решила автоматизировать эту часть работы с помощью Python. Также наши сотрудники из учебного офиса тратят значительное количество времени, вручную создавая документы и рассылки. Приведенные ниже скрипты могут быть полезны не только преподавательской, но и в разнообразной менеджерской работе.

Читать далее

Исследуем игру «5 букв» от Т-Банка и разные алгоритмы решения

Level of difficultyEasy
Reading time24 min
Views19K

Многие знакомы с играми "Wordle" или с российским аналогом "5 букв" от Т-Банка, суть которых в том, чтобы отгадывать пятибуквенные слова. Словарного запаса среднестатистического человека вполне хватает для успешного прохождения этих игр, но иногда человеку тяжело подобрать загаданное слово, хотя он точно его знает.

Кажется, что компьютер справлялся бы с этой игрой очень хорошо, но насколько именно хорошо?

В рамках этой статьи мы подробно исследуем российскую версию игры "5 букв":
• Придумаем различные алгоритмы прохождения игры
• Посмотрим, как различные алгоритмы проходят игру на разных словарях
• Сравним результаты и сделаем выводы

В статье будут рассмотрены как теоретические расчеты, так и вполне применимые для человека на практике советы и подходы.

Читать далее

Простой способ управления IoT-устройствами через телеграм-бот, используя esp32

Level of difficultyMedium
Reading time10 min
Views10K
Картинка Benzoix, Freepik

Многие знают и даже пробовали, что микроконтроллер esp32 позволяет управлять собой удалённо через интернет, используя протокол mqtt — что позволяет избавиться от необходимости выяснять IP адрес у esp32 и не заботиться о его постоянных изменениях, например, в случае перезагрузки микроконтроллера.

Однако в наше время было бы обидно пройти мимо гораздо более удобного способа, который, на мой взгляд, частенько многократно более удобен, и к тому же находится всегда под рукой — управление с помощью телеграм-бота…
Читать дальше →

Тонкости работы с логгированием в Python: краткий гайд для разработчиков

Level of difficultyEasy
Reading time13 min
Views8.1K

Логирование является одним из ключевых и важнейших элементов разработки и эксплуатации приложений. Умение правильно вести журнал логов — ключ к эффективной отладке и мониторингу приложений. Оно дает ценную информацию всей цепочке заинтересованных лиц: от разработчиков и системных администраторов до руководителей бизнеса.

В статье рассмотрен де-факто стандарт логирования — модуль logging в Python. Я дам общие рекомендации по его настройке и опишу практики применения модуля, подходящие для большинства случаев.

Читать далее

SSTI в Python под микроскопом: разбираем Python-шаблонизаторы

Level of difficultyEasy
Reading time15 min
Views2.9K

В статье разберем, какой импакт атакующие могут получить, используя SSTI (server-side template injection) в пяти самых популярных шаблонизаторах для Python: Jinja2, Django Templates, Mako, Chameleon, Tornado Templates. Отметим, что это не новый ресерч с rocket-science-векторами, а анализ работы уже известных PoC и разбор улучшений части из них, которая может быть полезна при тестировании. Приятного прочтения!

Читать

Мои 7 правил при собеседовании разработчиков

Level of difficultyMedium
Reading time14 min
Views40K

За последние несколько лет я перестроил свой процесс найма разработчиков, начал по-другому готовиться к собеседованиям и проверять нужные навыки. Как мне кажется, у меня получилось повысить свою продуктивность и научиться нанимать подходящих разработчиков в проекты, где я работаю.

Пару недель назад меня попросили помочь на техническом собеседовании для Senior/Lead backend-разработчика и поделиться опытом. В процессе я формализовал несколько правил, которых придерживаюсь при проверке кандидатов. Чем я и хочу поделиться.

Ниже — мои советы по проведению интервью с конкретными примерами. Уточню, что это не подробное руководство по найму на конкретную должность, а универсальные рекомендации для всех интервью с разработчиками.

Читать далее

13 законов разработки ПО

Level of difficultyMedium
Reading time8 min
Views26K

Некоторые из них хорошо известны, другие — достаточно нишевые. Но все они очень полезны разработчикам и менеджерам. Любопытно, какие из них вам известны:

  1. Закон Паркинсона.
  2. Закон Хофштадтера.
  3. Закон Брукса.
  4. Закон Конвея (и обратный закон Конвея).
  5. Закон Каннингема.
  6. Закон Старджона.
  7. Закон Завински.
  8. Закон Хайрама.
  9. Закон Прайса.
  10. Эффект Рингельмана.
  11. Закон Гудхарта.
  12. Закон Гилба.
  13. Закон Мёрфи.

Поехали.
Читать дальше →

Kubernetes для всех: поймет даже гуманитарий

Level of difficultyEasy
Reading time14 min
Views39K

Привет новичкам в Kubernetes и тем, кто не знаком с этой технологией!

Давайте представим себе крупную компанию, которая состоит из нескольких бизнес-юнитов. В ней каждый юнит занимается своим направлением деятельности, и у него есть офис и департаменты, поделенные на отделы, в которых работают сотрудники с конкретными функциями.

Еженедельно бизнес-юнит ставит задачи и распределяет их между департаментами, а также делает отчеты для дирекции компании. Таким образом, у всех получается достигать поставленных бизнес-целей. Перед каждым юнитом стоят одинаковые задачи — распределение обязанностей, наем или увольнение сотрудников. Дирекция контролирует все происходящие процессы в бизнес-юнитах, распределяет затраты и отвечает за принятие финальных решений. Также в крупных компаниях нужны различные менеджеры, сейлы и еще множество других сотрудников.

Мы решили сравнить платформу оркестрации кластеров Kubernetes с любой крупной компанией, взяв за пример «Штурвал». Что из этого вышло — читайте под катом.

Читать далее

Что скрывает тупой пульт в вашем умном доме

Level of difficultyEasy
Reading time4 min
Views28K

В свободное от работы время занимаюсь хобби — экспериментирую с умным домом на базе Home Assistant (HA) и окружающей его программно‑аппаратной инфраструктурой в виде различных медиасервисов, сервисов мониторинга и прочего.

Задумывались ли вы о том, что могут скрывать в себе протоколы передачи данных между обычными бытовыми устройствами? Вне зависимости от ответа, я сейчас расскажу об одном занятном кейсе.

Читать далее

Почему 80% middle-разработчиков застревают на этом уровне и как пробиться в senior?

Level of difficultyEasy
Reading time5 min
Views11K

Итак, вы — middle-разработчик. За это время вы набрались опыта, научились автономно решать нестандартные задачи, овладели несколькими языками и фреймворками. Вы точно знаете, как пройти путь от Junior-специалиста, но теперь, когда для перехода на следующий уровень недостаточно просто улучшать технические навыки, вы не понимаете, как двигаться дальше.

Если вам тоже это знакомо, читайте в этой статье о том, как преодолеть «переходный возраст» карьеры middle-специалиста.

Читать далее

Отказоустойчивость в MinIO

Level of difficultyEasy
Reading time14 min
Views6.4K

Simple Storage Service или S3 — сервис (и одновременно протокол) для хранения данных большого объёма. Для работы использует API поверх HTTP, который позволяет загружать или получать объекты из хранилища.

В проектах с приватной инфраструктурой часто возникает потребность в организации on-premise S3-хранилища. Популярное решение в таком случае это MinIO — удобная и довольно простая в использовании реализация сервиса S3.  Когда нам в RUTUBE потребовалось S3, мы не стали долго думать и взяли MinIO, потому что он стильный, модный, молодежный хорошо себя зарекомендовал на рынке, хорошо документирован и прост в первоначальной настройке и эксплуатации. 

В этой статье поделюсь своим опытом использования MinIO, сделав акцент на отказоустойчивости и сохранности данных в случае инцидентов разной степени — от выпадения диска до пожара в цоде.

Читать далее

Домашнее облако: как я построил цифровой «бункер» для важных данных

Reading time30 min
Views34K

Фото важных семейных событий и видео из путешествий, копии важных документов, музыка, фильмы, которых не найти на стримингах — многие задумывались, как сохранить все самое важное так, чтобы ситуация с не вовремя сломавшейся флешкой не обернулась потерей ценных данных навсегда. Кому-то для спокойствия достаточно Google Drive или Яндекс.Диска, но я решил пойти чуть дальше и построить собственное домашнее облако с приложениями Immich и Nextcloud.

Кстати, привет, Хабр! Я Денис Петухов, Python-разработчик в Cloud.ru и сегодня я расскажу, как построил облако в шкафу. По ходу дела дам практические рекомендации по архитектуре, выбору оборудования, приложений, настройке сети и даже приведу расчеты того, что выгоднее, и сколько электричества «съедает» домашняя хранилка в месяц.

Читать дальше

Используем несколько баз данных в Laravel

Level of difficultyEasy
Reading time4 min
Views2.8K

Когда одного хранилища данных уже недостаточно, а миграция на новую систему кажется слишком сложной, на помощь приходит работа с несколькими базами данных одновременно.

В этой статье мы разберём:

Практические кейсы, когда действительно нужно использовать несколько СУБД

Пошаговую настройку подключений к разным базам в Laravel

Реализацию моделей и отношений между ними

Плюсы и минусы такого подхода

Вы узнаете, как грамотно организовать работу с несколькими источниками данных без ущерба для производительности и читаемости кода.

Читать далее

Как создать первую модель машинного обучения на Python: гид для начинающих

Level of difficultyEasy
Reading time6 min
Views9.5K

Инструкция для новичков в Machine Learning с примерами кода и популярными библиотеками

Умение создать собственную модель машинного обучения — это обязательно для дата-сайентистов и хороший дополнительный навык для программистов. Разбираемся на практике, как это сделать. 

Читать далее

Пользовательская документация: как мы применили к ней лучшие мировые практики

Level of difficultyEasy
Reading time12 min
Views5.6K

Привет, Хабр! Я Костя Макушев, работаю техническим писателем в подразделении ИТ-Инфраструктуры Т-Банка. В этой статье расскажу, какие проблемы возникли с пользовательской документацией наших продуктов и какие подходы мы начали применять, чтобы эти проблемы решить.

Статья будет полезна всем, кто занимается и интересуется документацией: техническим писателям, владельцам продуктов, менеджерам, тимлидам.

Читать далее

Каждый бэкенд-инженер должен знать, как обрабатывать платежи. Краткое руководство по повторным попыткам платежа

Reading time4 min
Views37K
Любая система, работающая с платежами, должна быть надежной и отказоустойчивой.

Сбои при оплате возможны — это может быть проблема с сетью, временный сбой банка или просроченная карта. Грамотная стратегия повторных попыток помогает корректно обрабатывать такие ошибки, избегая дублирования списаний.

Сейчас покажу, как это сделать.
Читать дальше →

Information

Rating
3,538-th
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity