Как стать автором
Обновить
4
0
Dmitriy Bulygin @romeof

Администратор БД, учусь программировать на Python

Отправить сообщение

Продвинутое конфигурирование Docker Compose (перевод)

Время на прочтение5 мин
Количество просмотров150K
Docker Compose обладает целым рядом нетривиальных способов применения, которые мы рассмотрим в этой заметке. Это очередной перевод статьи, которую мы разбирали при подготовке материалов нашего курса Python для Web-разработки.



Контроль порядка запуска


Docker Compose запускает контейнеры в порядке зависимостей, используя опцию depends_on, чтобы указывать, когда запускается сервис. Для определения порядка запуска Compose применяет depends_on, links, volumes_from и network_mode: «service: ...».

Если контейнер должен дождаться состояния “ready” другого контейнера, можно использовать инструменты wait-for-it или dockerize. Они будут проверять хосты и порты до тех пор, пока TCP соединение не будет подтверждено. Для включения принудительного ожидания в композицию необходимо добавить entrypoint:

version: '2'

services:
    web:
        build: .
        ports:
            - "80:8000"
        depends_on:
            - db
        entrypoint: "./wait-for-it.sh db:5432"
    db:
        image: postgres

Вы всегда можете самостоятельно написать скрипт-обёртку, если возникнет необходимость в усилении контроля.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии8

Основы Docker за Х часов и Y дней

Время на прочтение8 мин
Количество просмотров162K

0. Вступление


Цель данной статьи собрать в небольшую кучку основную информацию, минимально достаточную для того, чтобы начать работать с докер на ежедневной основе и удалить с рабочей машины локально установленные apache, mysql, virtualenv, python3, mongodb, memchaced, redis, php5, php7 и весь остальной зоопарк, который мы используем при разработке, и который зачастую еще и конфликтует между собой от версии к версии.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии16

Практические рекомендации по работе с Docker для Python-разработчиков

Время на прочтение28 мин
Количество просмотров103K

Прим. Wunder Fund: в этой длииинной статье вы найдете ряд полезных советов по работе с Docker, как общего характера, так и Python-специфичных. Хоть мы и давно используем Docker в работе, про некоторые советы мы подумали "а что, так можно было?". Советуем вначале пролистать статью, и отметить штуки, которые покажутся актуальными для вашей текущей ситуации.

Читать далее
Всего голосов 53: ↑52 и ↓1+65
Комментарии8

Дефицит есть, а денег не дают. Почему?

Время на прочтение27 мин
Количество просмотров296K

Мы уже выяснили, что у нас есть дефицит рабочих рук во всех отраслях. На примере СССР увидели, что дефицит легко закрывается деньгами и плюшками, что сейчас и происходит в IT. Однако при дефиците рабочих рук в остальных отраслях зарплаты остаются на уровне Румынии и никак не подтягиваются. Почему?

Читать далее
Всего голосов 512: ↑497 и ↓15+588
Комментарии1205

Мелкая питонячая радость #8: мелкие удовольствия для работы с БД

Время на прочтение3 мин
Количество просмотров16K

Беглый опрос коллег на моем текущем проекте показал, что при словах "ORM и работа с БД" в подавляющем большинстве случаев звучат слова "Алхимия" и "Django ORM". Знания этих двух слов, в общем, достаточно, чтобы писать чистый, аккуратный и рабочий код. Но расширение инженерного кругозора пока еще никому не вредило, поэтому сегодня мы добавим в нашу картину мира несколько (возможно, до этого дня незнакомых) классных штук для работы с БД.


Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии16

Мелкая питонячая радость #5: Dynaconf — управление настройками в проекте

Время на прочтение2 мин
Количество просмотров7.2K

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


К популярным темам относятся вопросы:


  • Надо ли вообще этот проект писать на Python?
  • Какой фреймворк взять для разработки?
  • Кто быстрее, библиотека X или библиотека Y?

Сегодня я попробую аккуратно подковырнуть как раз одну из таких магических тем — вопрос "Как управлять конфигами в проекте?".


Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии6

Мелкая питонячая радость #3: Poetry

Время на прочтение2 мин
Количество просмотров35K


Управление зависимостями? Шо, опять?


Экосистема Python породила целую пачку способов управления зависимостями в проектах.
Прямо сейчас можно выбирать между setup.py, requirements.txt, setup.cfg, MANIFEST.in и Pipfile.
Но французского питониста Sébastien Eustace все эти способы не устроили, и он написал свою штуку для менеджмента питонячих пакетов — Poetry. Зачем он это сделал? Чтобы заменить все эти setup.py, requirements.txt, setup.cfg, MANIFEST.in и Pipfile чем-то простым и понятным. Плюс добавить кое-что полезное сверху.

Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии12

Мой топ книг о Python

Время на прочтение8 мин
Количество просмотров136K
Привет, Хабр! Я Слава, руководитель команды «Профессиональные инструменты» в Циане, член ПК Moscow Python Conf и член core-команды авторов в Яндекс.Практикуме.

Вместе с ребятами мы развиваем курс «Мидл python-разработчик», и сегодня я хочу поделиться моим личным списком книг, которые помогут вам структурировать и углубить свои знания о разработке на языке Python.


Читать дальше →
Всего голосов 24: ↑23 и ↓1+30
Комментарии3

По-прежнему ли актуальны контейнеры?

Время на прочтение5 мин
Количество просмотров12K


При обсуждении создания нового проекта или разработке «дорожной карты» уже существующего варианты способов запуска рабочих нагрузок никогда не были столь обширными. Мы живём в эпоху, избалованную выбором платформ — можно выбирать между open-source-инструментами, платными сервисами, enterprise-продуктами и кучей всего ещё. Из-за этого принять решение о выборе стало сложнее — шансы получить «паралич выбора» растут с увеличением вариантов. В таких условиях справедливо будет задаться вопросом: по-прежнему ли контейнеры являются разумным выбором на текущий момент и на будущее, или мы уже их переросли? Чтобы ответить на этот вопрос, нужно рассмотреть альтернативы и сравнить их с контейнерами.
Читать дальше →
Всего голосов 26: ↑19 и ↓7+19
Комментарии7

CSS: работа с текстом на изображениях

Время на прочтение7 мин
Количество просмотров24K

Вы можете встретить компонент пользовательского интерфейса, у которого есть текст над изображением. В некоторых случаях в зависимости от используемого изображения текст будет трудно прочитать. У этой проблемы есть несколько различных решений, таких как добавление градиента или затемнение изображения, наложение тени на текст и другие. Этот прием будет полезен не только frontend и веб-разработчикам, но и ui/ux-дизайнерам. Написать эту статью меня вдохновил твит от Эдди Османи, работающего над Google Chrome.

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

Приятного чтения
Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Визуализируйте многопоточные программы Python с open source инструментом – VizTracer

Время на прочтение5 мин
Количество просмотров4.8K

Специально к старту нового потока курса Fullstack-разработчик на Python, представляем небольшой авторский обзор кроссплатформенного инструмента визуализации многопоточных программ – VizTracer. У VizTracer 57 форков и 841 звезд на Github. Настраиваемые события, отчёты в HTML, детальная информация о функциях с их исходным кодом, простота применения, отсутствие зависимостей и малый оверхед превращают VizTracer в мастхэв Python-разработчика.

Приятного чтения!
Всего голосов 8: ↑7 и ↓1+8
Комментарии0

Что не так с вашей консольной программой?

Время на прочтение9 мин
Количество просмотров11K

Мы еще в школе научились вызывать функцию print. Что может пойти не так в консольной разработке? Да, и если бы не растущая сложность программ, проблем бы у нас не было до сих пор. А в реальности — то в тексте трудно найти нужную информацию, то он не влезает в экран по ширине и по длине, а от многочисленности цветов рябит в глазах.

Но как часто мы обсуждаем наши повседневные инструменты с точки зрения читабельности, хотя пишем под web и каждый день используем консольные утилиты? Сегодня Андрей Светлов расскажет, что со всем этим делать, и чем он пользуется для консолей. Помимо того, что Андрей  CPython Core developer и понемногу развивает Python, в свободное от работы время он эксперт по asyncio, со-автор aiohttp, yarl, multidict и прочим популярным библиотекам.

Читать далее
Всего голосов 39: ↑34 и ↓5+39
Комментарии18

Поточная конвертация баз Firebird 2.5 в формат ODS12 (Firebird 3.0)

Время на прочтение5 мин
Количество просмотров7.4K
У каждой версии Firebird есть собственная версия формата дисковых структур базы данных – O(n)D(isk)S(tructure). До версии 2.5 включительно, движок Firebird мог работать с ODS предыдущих версий, то есть базы от старых версий открывались новой версией и работали в режиме совместимости, но движок Firebird 3.0 работает только с БД в собственной ODS версии 12.0.

Чтобы перейти на 3.0, базу данных от 2.5 необходимо преобразовывать в новый формат через backup/restore. Разумеется, мы предполагаем, что БД была предварительно подготовлена для конвертации — т.е. метаданные и запросы были проверены на совместимость с Firebird 3.0.

Если следовать стандартному подходу, это означает, что нужно произвести бэкап на версии 2.5, затем установить 3.0 и сделать рестор. Такая процедура приемлема, если есть достаточно времени, но при миграции больших баз данных, или при одновременной миграции нескольких десятков БД, когда время поджимает, можно воспользоваться поточной конвертацией, которая на 30-40% быстрее. Как именно это сделать (под Windows и под Linux), читайте под катом.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии3

Что такое фильтр Блума?

Время на прочтение9 мин
Количество просмотров41K

Всем привет! В этой статье я постараюсь описать, что такое фильтр Блума, рассказать о его назначении и показать сценарии, в которых его можно использовать. Я также реализую фильтр Блума на Python с нуля в целях облегчения понимания его внутреннего устройства.

Фильтр Блума. Что это?
Всего голосов 17: ↑16 и ↓1+22
Комментарии22

Как я готовился к собеседованию в Google

Время на прочтение9 мин
Количество просмотров49K
Каждый инженер-программист стремится впечатлить людей своим техническим мастерством. Технологические гиганты этого мира — прекрасное место для работы технарей, которые могут предоставить услуги миллиардам пользователей. На моём недавнем собеседовании было несколько раундов, я получил предложения от Google и Amazon. В последние несколько лет онлайн-сообщество очень помогло мне в подготовке к собеседованиям. В этом посте я поделюсь всем о моём пути к собеседованию и верну вклад общества в моё обучение.


Приятного чтения!
Всего голосов 40: ↑35 и ↓5+45
Комментарии77

Как привести выписку ЕГРН в читаемый вид, используя python

Время на прочтение2 мин
Количество просмотров7.5K

Тернист и труден путь человека, столкнувшегося с ФГИС ЕГРН Росреестра. Его ждут бесконечные ожидания загрузки браузера, ключи, капчи, интервалы между запросами в 5 минут. За что ему такие страдания? Он же уже внес свои кровные, когда решился работать с данной системой и заказывать свои выписки. Но нет — получение выписки из ЕГРН, это как раздевание репчатого лука. Последний шаг, который поджидает страдальца — скачанная, вожделенная выписка представлена zip архивом, в котором, гм, еще один архив и файл sig. А уже внутри лежит сам файл выписки. Но прочитать его тоже непросто — он в xml. И чтобы все срослось, необходимо, оказывается загружать этот xml вместе с sig на специальную страницу Росреестра. А там, там еще капча ждет. И так с каждой выпиской! Вот эту последнюю боль будем сегодня побеждать, используя python.

Задача:

  • распаковать все zip в папке,
  • загрузить по спец. ссылке в Росреестр,
  • скачать, наконец!, человекочитаемый вид выписки.
Читать дальше →
Всего голосов 3: ↑2 и ↓1+3
Комментарии13

Реальное будущее виртуальных миров

Время на прочтение4 мин
Количество просмотров2.2K
Наверняка многие интернет-пользователи ассоциируют виртуальные миры с популярным сейчас Second Life. Но в действительности виртуальных миров существует большое множество — и они далеко не всегда выглядят как интерактивное 3D-пространство с полигональными объектами и персонажами.

У компьютерных виртуальных миров довольно большая и интересная история. Самые первые из них были текстовыми, использовали минимум графики, и действия в них часто осуществлялись пользователем при помощи командной консоли. На заре интернета виртуальными мирами называли даже простые чат-комнаты (в них присутствовали главные атрибуты — виртуальные персонажи и место для их взаимодействия). Первым же трехмерным онлайновым пространством считается проект компании Helsinki Telephone Company, которая в 1996 году запустила виртуальный Хельсинки — компьютерную копию столицы Финляндии.



Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии27

26 способов показать загрузку

Время на прочтение1 мин
Количество просмотров1.1K
Ajaxload — это генератор gif'ов, показывающих загрузку. Есть 26 типов загрузки, а цвет и фон можно выставить любой.
Читать дальше →
Всего голосов 79: ↑72 и ↓7+65
Комментарии13
2

Информация

В рейтинге
Не участвует
Откуда
Краснодар, Краснодарский край, Россия
Дата рождения
Зарегистрирован
Активность