В этой статье я предлагаю читателю совершить со мной в меру увлекательное путешествие в недра asyncio, чтобы разобраться, как в ней реализовано асинхронное выполнение кода. Мы оседлаем коллбэки и промчимся по циклу событий сквозь пару ключевых абстракций прямо в корутину. Если на вашей карте питона еще нет этих достопримечательностей, добро пожаловать под кат.
Рубрика «python3» - 8
А не замахнуться ли нам на оптическую связь? Лазеры, космос, CubeSat
2019-05-14 в 18:11, admin, рубрики: CubeSat, optics, python, python3, квантовые технологии, космонавтикаМатериал, описанный ниже, является результатом совместной работы с преподавателями ТУ Ильменау в рамках местного курсового проекта (Advanced Research Project). Опыт интересный, но и не лишенный определенных сложностей. Делали мы этот проект (и ещё один) вместе с моей тогда ещё невестой — да, так вот нам повезло и учиться вместе, и поехать на стажировку в Германию. По правде сказать, эту часть работы делала в большей степени именно она, но популяризировать эту тему хочется мне.
Итак, однажды мы назначили встречу, чтобы выбрать тему научной работы...
MU-MIMO: один из алгоритмов реализации
2019-05-10 в 6:13, admin, рубрики: MIMO, python, python3, Алгоритмы, математика, сотовая связьПредисловие
В качестве дополнения к моей недавней статье хотелось бы также поговорить о теме MU (Multi User) MIMO. Есть у мною уже упомянутого профессора Хаардта одна очень известная статья, где он вместе со своими коллегами предлагает алгоритм разделения пользователей по нисходящему каналу (Down Link) на основе линейных методов, а именно блоковой диагонализации (Block Diagonalization) канала. Статья имеет внушающее количество цитирований, а также является краеугольной публикацией для одного из заданий экзамена. Поэтому почему бы и не разобрать основы предлагаемого алгоритма?
Управление компьютером через Telegram
2019-05-05 в 8:07, admin, рубрики: flask, ngrok, PC, python, python3, telegram, telegram api, telegram bots, удаленное управление, удаленное управление компьютеромВступление
Привет!
Недавно хотел установить себе приложение для управления мышью на компьютере, но у меня возникли проблемы при подключении телефона и у меня появилась идея сделать что-то подобное самому, но как? Перебрав несколько вариантов я вспомнил о телеграм ботах которые могут вполне подойти для того чтобы сделать что подобное в текстовом варианте, например ты пишешь боту "/open chrome" и у тебя на компьютере открывается Chrome.
Читать полностью »
Распознавание дат, написанных естественным языком, средствами Python3
2019-04-23 в 14:06, admin, рубрики: legaltech, ner, nlp (natural language processing), python, python3Мы в компании создаем сервис, который извлекает юридические факты из переписки клиента и заказчика. Сервис вырос из одной простой идеи — мои постоянные клиенты из решили упросить работу менеджерам и создать “генератор договоров”. Первую задачу — подтягивать в договор реквизиты клиента и заказчика мы решили легко.
Появилась вторая идея — искать в переписке даты и вставлять их в техническое задание, документы, автоматически.
Однако, люди редко пишут в чатах и мессенджерах даты так, чтобы их легко мог распознать алгоритм.
Читать полностью »
Подсчитываем энергобюджет радиолинии для спутника формата CubeSat
2019-04-12 в 8:05, admin, рубрики: python, python3, космонавтика, космосПредисловие
Думаю, нужно коротко пояснить, почему вдруг такая, казалось бы, тривиальная тема с подсчетом энергобюджета и почему именно спутники CubeSat? Ну, здесь всё достаточно просто: моя короткая педагогическая практика показала (мне), что тема эта хоть и базисная, но далеко не всеми с первого раза понимаемая, а более того имеющая несколько неочевидных в первом прочтении вопросов. Тем более, что, казалось бы, по таким базовым вещам до сих пор публикуют статьи в IEEE и делают это далеко не студенты. Почему именно CubeSat? Здесь всё ещё проще: формат спутника интересный (сам факт существования микро- и наноспутников, как выяснилось, повергает многих в состояние короткого шока), а потому как нельзя кстати подходящий для учебных целей.
Unittest и абстрактные тесты
2019-04-09 в 14:49, admin, рубрики: django, python, python3, unittest, Тестирование веб-сервисовВместо вступления
Unittest — наверное самый известный фреймворк для написания тестов в Python. Он очень прост в освоении и его легко начать использовать в вашем проекте. Но ничто не бывает идеальным. В этом посте я хочу рассказать об одной возможности, которой лично мне (думаю, не одному) не хватает в unittest.
Читать полностью »
Моделируем алгоритм MUSIC для задач определения направления прихода электромагнитной волны
2019-04-03 в 18:53, admin, рубрики: arrays, Matlab, python, python3, signal processingПредисловие
Начну своё вступление издалека. Давным-давно, в далеких 2016-2017 годах вашему покорному слуге удалось съездить на полугодовое обучение в далекий город Ильменау (Германия), где он успешно (в общем и целом) закончил магистерскую программу Communications and Signal processing. Программа оказалась не из простых, однако сейчас о ней вспоминать даже приятно. Иногда...
Исключения в Python теперь считаются анти-паттерном
2019-03-26 в 10:14, admin, рубрики: Moscow Python Conf++, python, python3, Блог компании Конференции Олега Бунина (Онтико), Программирование, Разработка веб-сайтов, Совершенный кодЧто такое исключения? Из названия понятно — они возникают, когда в программе происходит исключительная ситуация. Вы спросите, почему исключения — анти-паттерн, и как они вообще относятся к типизации? Я попробовал разобраться, и теперь хочу обсудить это с вами, читатели.
Проблемы исключений
Трудно найти недостатки в том, с чем сталкиваешься каждый день. Привычка и зашоренность превращает баги в фичи, но давайте попробуем взглянуть на исключения непредвзято.
Исключения трудно заметить
Существует два типа исключений: «явные» создаются при помощи вызова raise
прямо в коде, который вы читаете; «скрытые» запрятаны в используемых функциях, классах, методах.
Проблема в том, что «скрытые» исключения и правда трудно заметить. Покажу на примере чистой функции:
def divide(first: float, second: float) -> float:
return first / second
Функция просто делит одно число на другое, возвращая float
. Типы проверены и можно запустить что-то такое:
result = divide(1, 0)
print('x / y = ', result)
Заметили? На самом деле до print
исполнение программы никогда не дойдет, потому что деление 1 на 0 – невозможная операция, она вызовет ZeroDivisionError
. Да, такой код безопасен с точки зрения типов, но его все равно нельзя использовать.
Читать полностью »
DHCP+Mysql сервер на Python
2019-03-26 в 8:16, admin, рубрики: DHCP Server, mysql, python, python3, Серверное администрированиеЦелью данного проекта было:
- Изучение протокола DHCP при работе в сети IPv4
- Изучение Python (немножко более чем с нуля ;) )
- замена серверу DB2DHCP (мой форк), оригинал здесь, который собирать под новую ОС всё труднее и труднее. Да и не нравится, что бинарник, который нет возможности «поменять прям щас»
- получение работоспособного сервера DHCP с возможностью выборки IP адреса абонента по mac абонента или связке mac свича+порт (Option 82)
- написание очередного велосипеда (О! это моё любимое занятие)
- получение люлей про свою косорукость на Хабрахабр (а лучше инвайта) ;)
Результат: работает ;) Опробовано на ОС FreeBSD и Ubuntu. Теоретически код можно попросить работать под любой ОС, т.к. специфических привязок в коде как будто нет.
Осторожно! Дальше много.
Читать полностью »