Pull to refresh
23
0
Send message

Как [не надо] ломать систему типов Python, или Криминал в сопоставлении с образцом

Reading time5 min
Views4.7K

__subclasshook__ — один из моих любимых элементов Python. Абстрактные базовые классы (ABC — Abstract Base Class) с помощью __subclasshook__ могут указывать, что считается подклассом ABC, даже если целевой класс не знает об ABC:

Прочитать до конца
Total votes 11: ↑11 and ↓0+11
Comments1

Самодельный стратостат. Полётный план и ОрВД

Reading time8 min
Views7K

Vostok Registartion


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

Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments22

Python и Ruby под нагрузкой: высокое искусство некромантии

Reading time11 min
Views17K

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

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

Если вы предпочитаете слушать или смотреть (у меня там забавные крылья!) — видео моего выступления на конференции HighLoad++ Весна 2021.

Читать далее
Total votes 31: ↑28 and ↓3+25
Comments30

Marshmallow vs. Pydantic: две лучшие библиотеки для сериализации и валидации данных на Python

Reading time10 min
Views36K

Сериализация и десериализация данных — это преобразование между необработанной структурой данных и экземплярами классов для их хранения и передачи. Например, преобразование объектов Python в JSON-представление. Мы рассмотрим две популярные Python-библиотеки Marshmallow и Pydantic, которые помогут нам справиться как с преобразованием, так и с валидацией данных. Сначала я представлю вам каждую библиотеку, используя небольшие примеры, а потом мы сравним их и разберем различия. Я также расскажу, чего вам стоит избегать при работе с обеими библиотеками.

Читать далее
Total votes 33: ↑33 and ↓0+33
Comments3

Неотправленное письмо боссу в кровавом Enterprise

Reading time5 min
Views24K

Хоть я и интроверт, но с soft skills у меня неплохо. Поэтому я стараюсь придерживаться принципа:

True wisdom: 1. Having a lot to say. 2. Not saying it.

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

Читать далее
Total votes 89: ↑72 and ↓17+55
Comments48

Скука, чрезмерная стимуляция и ничегонеделание — разбираемся, что к чему, и отдыхаем без чувства вины

Reading time5 min
Views9.5K

Иногда и правда лучше ничего не делать, но как вычислить момент и не упустить его? Обсудим, что дает серьезное отношение к бесполезной трате времени в «режиме залипания».

Читать далее
Total votes 9: ↑7 and ↓2+5
Comments0

Наша огромная гордость: мирные советские роботы-комбайны убрали первый урожай в южных регионах

Reading time10 min
Views78K
image
А ведь в прошлом году это делали senior-разработчики.

Возможно, вы помните, что мы говорили про то, как можно сильно улучшить работу обычного сельскохозяйственного комбайна, если использовать нейросетки для распознавания культур и препятствий и робота для автопилотирования. Всё это (кроме процессоров Nvidia и ещё части железа) — наша разработка. А радость в том, что в некоторых южных регионах страны закончилась уборочная страда, и наши комбайны показали себя лучше, чем ожидалось. Слава роботам!

image

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

Более того, они справились лучше, чем мы ждали. Кроме того, в релиз вошли далеко не все фичи. В релизе осталось, по сути, ядро, но одно только это позволило получить очень заметный экономический эффект.

Конечно, обошлось не без сюрпризов. Но давайте расскажу более конкретно, с числами и примерами.
Total votes 450: ↑447 and ↓3+444
Comments525

Ультимативный гайд по поиску утечек памяти в Python

Reading time7 min
Views24K

Практика показывает, что в современном мире Docker-контейнеров и оркестраторов (Kubernetes, Nomad, etc) проблема с утечкой памяти может быть обнаружена не при локальной разработке, а в ходе нагрузочного тестирования, или даже в production-среде. В этой статье рассмотрим причины появления утечек в Python-приложениях, доступные инструменты для отладки и мониторинга работающего приложения, а также общую методику поиска утечек памяти.

Читать далее
Total votes 61: ↑61 and ↓0+61
Comments4

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

Reading time3 min
Views21K

Конечно, самая большая радость этих дней — python 3.9. Но кроме этой радости кто-то должен ворошить github в поисках мелких приятностей, которые несут добро и свет тем, кто пишет на python.


Transitions


Тем, кому приходилось писать реализацию какого-нибудь сложного информационного процесса, знает эту проблему.


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


Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments1

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

Reading time3 min
Views39K

Это я, пишу скрипт по перебору параметров для POST запроса на gov.tr, сидя перед границей в Хорватию.

Как все начиналось


Мы с моей женой путешествуем по миру и работаем удаленно. Недавно переезжали из Турции в Хорватию (самая оптимальная точка, чтобы заехать в Европу). Чтобы не сесть на карантин в Хорватии, нужно иметь справку об отрицательном анализе на ковид, сделанном не позже 48 часов до въезда.

Выяснили, что относительно выгодно (2500 рублей) и быстро (всем результаты приходят в течение 5 часов) делают тест в аэропорту Стамбула, из которого мы как раз и вылетали.
Читать дальше →
Total votes 189: ↑188 and ↓1+187
Comments23

4 года игры в танчики

Reading time9 min
Views47K

Доброго времени суток, дорогой читатель!

Сегодня я хочу поведать тебе забавную, ещё не закончившуюся историю странных совпадений, побед и поражений, радости и смуты. Если интересно как создавался, возможно, один из самых маленьких в мире "умных" (а не просто р/у) танков как на КДПВ, а так же при чём тут IoT, PHP и Angular - прошу под кат!

Узнать всё об этом
Total votes 175: ↑173 and ↓2+171
Comments76

Как мы первыми в мире роботизируем кормоуборочные комбайны

Reading time5 min
Views26K
Недавно мой коллега рассказал как мы роботизируем зерноуборочные комбайны и чему научились за этот сезон.

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

Работа на комбайне во время уборки кормовой кукурузы похожа на езду в машине в густом тумане, только вместо тумана на протяжении всего пути высокая зеленая стена из растений, из которой может выскочить кабан, столб или человек. Перемолов человека (история есть в моей прошлой статье), комбайнеры седеют и больше не могут работать. Кроме этого, в этом «зеленом тумане» надо суметь не врезаться в рядом едущий силосовоз, следить за точностью загрузки силоса с хоботом длиной до 7 метров, из которого вылетает по 50-60 кг силоса в секунду, и равномерно заполнять фургон, чтобы он не гонял полупустым туда сюда.



Фактически один комбайнёр работает за троих, следит за процессом уборки кукурузы (одно рабочее место), ведёт технику (второе рабочее место), загружает силосовоз (третье рабочее место). В итоге что-то страдает. Если плохо вести, можно сломать дорогую технику (минимальная цена кормоуборочного комбайна 16 млн рублей, есть модели и по 50 миллионов), поэтому обычно ухудшается качество уборки и загрузки.

Большую часть работы мы автоматизируем, сейчас расскажу какие сложности мы преодолеваем и что делаем.
Total votes 192: ↑191 and ↓1+190
Comments124

Ядерное наследие первенца атомной энергетики СССР

Reading time10 min
Views31K
В 1954 году в СССР, в Обнинске, построили и запустили Первую в мире атомную станцию. Ее реактор АМ (Атом мирный) был небольшой мощности, вся станция выдавала всего 5 МВт электроэнергии, но ее запуск положил начало освоению мирной атомной энергии. Через 4 года, в 1958 г., был введён в эксплуатацию первый энергоблок Сибирской атомной электростанции мощностью 100 МВт, на Сибирском химическом комбинате. Однако, эта станция была двойного назначения. Ее реактор ЭИ-2 стали использовать для производства электроэнергии и тепла, но основной его задачей было производство оружейного плутония. Первой же гражданской атомной станцией большой мощности стала Белоярская АЭС. Сейчас ее первые реакторы уже остановлены. Эта статья как раз об их истории, о сложностях обращения с накопленным отработанным ядерным топливом и путях решения связанных с ним проблем.


Белоярская АЭС. На переднем плане первая очередь станции с реакторами АМБ. Источник.
Total votes 82: ↑81 and ↓1+80
Comments65

Красиво? Очень! Как мы написали приложение для визуализации аттракторов

Reading time8 min
Views11K
Странные аттракторы — это области, которые часто возникают в различных физических системах. Можно сказать, что это область притяжения, к которой стремятся траектории из некоторой окрестности. В отличие от каких-нибудь предельных циклов или от точки равновесия в затухающих колебаниях, они не периодичны. В таких системах проявляется эффект бабочки: минимальные отклонения исходных положений экспоненциально растут со временем.

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


Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments11

Обзор системы дистанционного электронного голосования ЦИК РФ

Reading time9 min
Views18K
31 августа 2020 состоялся публичный тест системы дистанционного электронного голосования (далее ДЭГ) с применением технологии блокчейн, разрабатываемой по заказу ЦИК РФ.

Для знакомства с новой системой электронного голосования и понимания того, какую роль в ней играет технология блокчейн и какие еще компоненты используются, мы начинаем серию публикаций, посвященных основным техническим решениям, применяемым в системе. Начать предлагаем по порядку — с требований к системе и функциям участников процесса
Читать дальше →
Total votes 35: ↑20 and ↓15+5
Comments35

Обновление версий PostgreSQL, или Как не уронить базу при update?

Reading time16 min
Views40K
Мы решили поделиться памяткой (чеклистом) нашей команды по обновлению PostgreSQL. В ней мы взяли за основу фичи, представленные в релизе официальной документации PostgreSQL, провели анализ на предмет нарушения совместимости и кому стоит обратить внимание на обновленную функциональность.

Читать дальше →
Total votes 72: ↑61 and ↓11+50
Comments19

Видеоаналитика в нефтехимии

Reading time8 min
Views4.4K
Привет! Меня зовут Вадим Щемелинин, я владелец продукта по видеоаналитике в СИБУРе.

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



Отдельно здесь стоит рассказать про видеоаналитику. Она может решать разные задачи — повышать качество продукции благодаря автоматическому контролю и отбраковке, помогать исключить внезапные остановы производственных линий, своевременно предупреждая оператора о необходимости вмешаться, контролировать соблюдение правил промышленной безопасности, что для промышленного объекта является задачей номер один. Что в принципе можно анализировать, просматривая видео с объектов (и нужно ли его просматривать), как видеоаналитика помогает экономить время и средства, на чем у нас все работает — об этом под катом.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments3

Сравниваем работу open source Python — библиотек для распознавания именованных сущностей

Reading time13 min
Views22K

Введение


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

Для решения это задачи я опробовал десятки решений в области обработки естественного языка, в том числе решения с открытым кодом и хотел бы поделиться опытом работы с open source Python — библиотеками для распознавания именованных сущностей.

Распознавание именованных сущностей


Несколько слов о самой проблеме. Named Entity Recognition (NER) — это направление технологии обработки человеческого языка, программная реализация которой позволяет находить в речи и тексте опредмеченные категории слов и словосочетаний. Сначала это были географические наименования, имена людей, организаций, адреса, однако в настоящее время это понятие сильной расширилось и с помощью NER мы ищем в тексте относительные и абсолютные даты, числа, номера и т.д.
Выявление именованных сущностей — это «ворота» в человеческий язык, оно позволяет выявлять и обрабатывать намерения человека, устанавливать связи слов в его речи и реальным миром.

Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments9
1

Information

Rating
Does not participate
Location
Россия
Registered
Activity