Pull to refresh
8
0

Пользователь

Send message

Руководство по программированию сокетов на Python. Протокол и сообщения

Reading time 23 min
Views 7.8K



К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях. Материалом делимся к старту курса по Fullstack-разработке на Python.

Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Comments 1

Ещё раз про умный дом

Reading time 11 min
Views 10K

Представляю программно-аппаратный проект: локальную сеть умный дом с акцентом на режим охраны. В качестве управляющего устройства используется сотовый телефон с ОС Android версией не ниже 5.0. Через кабель USB телефон подключен к устройству USB/RS485. Для питания всей системы используется блок бесперебойного питания . Узлы управления сбором информации от датчиков и управления исполнительными устройствами реализованы на микросхемах ESP 32. Обмен информацией и питание внешних устройств производится через сетевой кабель. Управляющее устройство (телефон) периодически опрашивает узлы сети и если есть информация от датчиков, в зависимости от настроек, передает сообщения либо в виде SMS, либо в TELEGRAM. А если получена SMS – команда она передается для исполнения на ВУ. Также возможна автономная работа по заложенным сценариям.

Читать далее
Total votes 14: ↑13 and ↓1 +12
Comments 14

Учимся создавать пакеты Python

Reading time 8 min
Views 38K
imageПочему важно уметь создавать пакеты Python?
• Пакеты легко устанавливаются (pip install demo).
• Пакеты упрощают разработку (Команда pip install -e устанавливает ваш пакет и следит за тем, чтобы он сам обновлялся в ходе всего процесса разработки).
• Пакеты легко запускать и тестировать (from demo.main import say_hello, а затем тестируем функцию).
• Пакеты легко версионировать, при этом вы не рискуете нарушить работу кода, зависящего от этого пакета (pip install demo==1.0.3).
Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Comments 14

Как Postgres хранит строки

Reading time 6 min
Views 17K

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

Мы будем рассматривать только файлы кучи (heap). Heap-файл — это просто файл записей. Не путайте heap-файл с heap-памятью. Хотя их использование очень похоже: хранение динамических данных.

Читать далее
Total votes 23: ↑20 and ↓3 +17
Comments 5

NULL-значения в PostgreSQL: правила и исключения

Reading time 8 min
Views 39K

Навскидку многим кажется, что они знакомы с поведением NULL-значений в PostgreSQL, однако иногда неопределённые значения преподносят сюрпризы. Предлагаем вашему вниманию расшифровку доклада Алексея Борщева с PGConf.Russia 2022 — он был полностью посвящён особенностям NULL-значений в Postgres.

NULL простыми словами

Что такое SQL база данных? Согласно одному из определений, это просто набор взаимосвязанных таблиц. А что такое NULL? Обратимся к простому бытовому примеру: все мы задаём друг другу дежурный вопрос: «Как дела?». Часто мы получаем в ответ: «Да ничего...» Вот это «ничего» нам и нужно положить в базу данных — NULL, неопределённое, некорректное или неизвестное значение.

Читать далее
Total votes 35: ↑34 and ↓1 +33
Comments 22

Действительно ли генераторы помогают экономить память?

Reading time 6 min
Views 8.2K


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


Сначала я удивился — откуда взялись такие идеи? Ведь мы много лет работали с большими объемами данных без всяких генераторов. Лучшая статья про генераторы в РНР, опубликованная ещё десять лет назад, Что генераторы могут для вас сделать Антонио Феррары тоже практически не упоминает экономию памяти. У меня и у самого всегда было чёткое ощущение, что хотя генераторы — это совершенно отличное изобретение, у которого есть множество разнообразных применений, но вот только экономии памяти среди них нет.


В итоге у меня разыгралось любопытство и я решил разобраться с этим вопросом.

Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 11

Применение расстояния Левенштейна с целью оптимизации работы склада

Reading time 14 min
Views 9.3K

Активно изучаем различные алгоритмы? Читаем про поиск k-ближайших соседей, задачу о рюкзаке, всякие алгоритмы сортировки, поиска и т. п.? А часто читаем примеры их практического внедрения на каком-нибудь предприятии? Такие истории встречаются реже, чем даже обзоры книг по этим же алгоритмам.

Предлагаю всем вместе начать исправлять эту ситуацию и приглашаю почитать о том, как на промышленном складе применяли — внезапно! — алгоритм Левенштейна (способ нечёткого сравнения строк).

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

Для понимания статьи читателю хватит самого поверхностного умения чуть-чуть читать код си-подобного синтаксиса. Познания в области работы склада не обязательны. Почитать про расстояние Левенштейна по ссылке выше желательно.

Читать далее
Total votes 23: ↑22 and ↓1 +21
Comments 35

Тоссим руду: очень неочевидная ИТ-задача

Reading time 10 min
Views 19K

Дробилка с выдвигаемым конусом

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

Это чистая оптимизационная задача: надо дробить в заданном коридоре и всем будет счастье. Проблема в том, что мы не знаем, слишком мелко мы дробим или слишком крупно. Конвейер огромный, едет со скоростью 3,15 метра в секунду, глазами люди там ничего отличить не могут. А нужно знать фракционный состав руды.

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

И тут такие приходим мы из ИТ и говорим производству: а хотите в реальном времени? Производство сначала крутит пальцем у виска, а потом говорит, что хочет. Потому что цена эффекта — 115 миллионов рублей в год.
Читать дальше →
Total votes 129: ↑129 and ↓0 +129
Comments 79

Реализация Интернета вещей для промышленного оборудования простыми методами

Reading time 8 min
Views 5.5K

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

Эту идею реализовал в работе, связанной с "умными" очистителями воздуха для помещений.

Читать далее
Total votes 11: ↑10 and ↓1 +9
Comments 11

CloudFlare отказывается от Nginx в пользу in-house HTTP-прокси на Rust

Reading time 9 min
Views 9.5K

Введение

Сегодня мы поговорим о Pingora, новом HTTP-прокси, который мы создали у себя внутри с помощью Rust. Прокси обслуживает более 1 триллиона запросов в день, форсирует производительность и предоставляет множество новых функций для клиентов Cloudflare, при этом требуя всего лишь треть ресурсов CPU и памяти нашей предыдущей прокси-инфраструктуры.

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

Многие клиенты и пользователи Cloudflare используют нашу глобальную сеть в качестве прокси-сервера между HTTP-клиентами (такими как веб-браузеры, приложения, устройства IoT и т. д.) и серверами. В прошлом мы много говорили о том, как браузеры и другие пользовательские агенты подключаются к нашей сети, мы разработали множество технологий и внедрили новые протоколы (см. QUIC и оптимизация для http2), чтобы сделать эту часть соединения более эффективной.

Сегодня мы сосредоточимся на другой части уравнения: службе, которая проксирует трафик между нашей сетью и серверами в Интернете. Этот прокси-сервис поддерживает наши CDN, Workers fetch, Tunnel, Stream, R2 и многие, многие другие функции и продукты.

Give me more
Total votes 25: ↑25 and ↓0 +25
Comments 24

Имплементируем WebSocket протокол на Go

Reading time 9 min
Views 22K

Статья для тех, кто хочет познакомиться с устройством технологии WebSocket или языком программирования Go.

Или узнать с какой простотой Go стал одним из самых популярных языков программирования для написания сетевых приложений.

Читать далее
Total votes 39: ↑38 and ↓1 +37
Comments 9

Я каждый день рискую запустить восстание машин, но всё ещё жив

Reading time 13 min
Views 19K

Я создал чудовище.  

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

Как я дошёл до жизни такой
Total votes 26: ↑22 and ↓4 +18
Comments 55

Как открыть ИП в Грузии, в том числе удаленно?

Reading time 5 min
Views 88K

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

Наиболее популярной формой легализации бизнеса и работы на территории Грузии является регистрация иностранного гражданина в организационно-правовой форме индивидуального предпринимателя.

Благоприятные факторы для ведения бизнеса в Грузии:

Читать далее
Total votes 16: ↑11 and ↓5 +6
Comments 23

Как россиянину получить ВНЖ в Армении?

Reading time 5 min
Views 115K

Продолжение рассказов из Армении. Для начала какой смысл вообще получать ВНЖ в Армении, ведь гражданин РФ может находиться там в течение 180 дней без необходимости пересечения границы? Однако все не так просто, смысл есть. Начиная с 24 февраля 2022 года, довольно внушительное количество западных банков перестали открывать счета россиянам или приостановили сотрудничество по текущем счетам. К санкциям против граждан РФ также присоединились всевозможные платежные системы, брокеры, крипто-биржи, фриланс площадки и так далее. В большинстве случаев от россиянина требуют сменить место жительства, и в качестве подтверждения требуют вид на жительства иностранного государства.

Если в истории с банками Армении из предыдущего поста, возникают все большие сложности при открытии счета, то процесс получения ВНЖ в Армении и его варианты можно смело назвать доступными. Это, конечно же не история, когда можно сделать ВНЖ дистанционно, не вылезая из дома, но в сравнении с той-же Грузией, Сербией, Турцией и Кипром, мне показалось проще и по процедуре и по шансам на одобрение.

В Армении существует два вида ВНЖ: на основании открытия ИП в Армении и дополнительная форма временного ВНЖ на основании трудоустройства в армянской фирме. Эта форма обладает почти теми же возможностями, что и условный бизнес-ВНЖ

Читать далее
Total votes 51: ↑48 and ↓3 +45
Comments 25

Еще раз о KISS и трендах

Reading time 4 min
Views 12K

Последние несколько лет async вообще и asyncio в частности в питоне все больше набирают популярность и их все чаще используют. При этом иногда забывают о принципе KISS (Keep it simple, stupid) и о том, какие вообще проблемы решает асинхронный код и зачем он нужен. В этой статье я бы хотел описать пример, когда задачу можно и, на мой взгляд, нужно решать без использования async. И вообще, практически без всего.

Читать далее
Total votes 13: ↑10 and ↓3 +7
Comments 17

Экспортируем модули из Go-сервиса: сотворение директории pkg

Reading time 6 min
Views 7.6K

Чтобы поделиться кодом, нужно создать библиотеку и разместить её в самостоятельном репозитории. Но иногда возникает необходимость хранить библиотеку вместе с сервисом, который её использует, — это может быть полезно при разработке в open source, в процессе дробления монолита на микросервисы и при шеринге своим API. Среди Go-разработчиков существует мнение, что экспортируемые библиотеки стоит хранить в директории pkg.

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

Читать далее
Total votes 18: ↑16 and ↓2 +14
Comments 12

Gatling. Тестирование Kafka

Reading time 6 min
Views 8K

Привет! Меня зовут Александра, я работаю в отделе тестирования производительности Тинькофф. Мы продолжаем наш цикл статей, посвященных работе Gatling с различными протоколами. Ранее мы уже рассмотрели работу с HTTP, JDBC и gRPC. В этой статье поговорим о работе Gatling с Kafka.

Читать далее
Total votes 16: ↑15 and ↓1 +14
Comments 4

PHDays 11 завершен: взрыв интереса к ИБ, расследование атаки на Rutube, демонстрация остановки нефтепровода

Reading time 12 min
Views 4.8K

Информационная безопасность напрямую связана с безопасностью граждан и всего государства. Об этом не раз говорилось на международном форуме по практической безопасности Positive Hack Days 11. Живая демонстрация происходила одновременно — в ходе самой масштабной открытой кибербитвы в мире The Standoff. Мероприятия стали самыми посещаемыми в своей истории: за ними наблюдали свыше 127 тысяч зрителей онлайн, а 8700 человек посетили площадку в Москве.

В программу PHDays 11 вошло около 100 докладов, секций и круглых столов, различные конкурсы с денежными призами (например, по взлому банкомата, кассовой системы или POS-терминала), творческие фестивали Positive Wave и HackerToon, финал первого Всероссийского конкурса проектов open source для школьников и студентов, состязание по похищению произведений кибер-арта и многое другое.

Узнать больше
Total votes 14: ↑8 and ↓6 +2
Comments 5

Information

Rating
Does not participate
Location
Нижегородская обл., Россия
Date of birth
Registered
Activity