Рубрика «python3» - 11

image

Предыстория

Так произошло, что сервере был атакован вирусом шифровальщиком, который по "счастливой случайности", частично отставил не тронутыми файлы .ibd (файлы сырых данных innodb таблиц), но при этом полностью зашифровал файлы .fpm (файлы структур). При этом .idb можно было поделить на:

  • подлежащие восстановлению через стандартные средства и гайды. Для таких случаев, есть отличная статься;
  • частично зашифрованные таблицы. Преимущественно это большие таблицы, на которые (как я понял), злоумышленниками не хватило оперативной памяти на полное шифрование;
  • ну и полностью зашифрованные таблицы, не подлежащие восстановлению. Читать полностью »

в 12:14, , рубрики: asyncio, python, python3

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

Читать полностью »

Материал, описанный ниже, является результатом совместной работы с преподавателями ТУ Ильменау в рамках местного курсового проекта (Advanced Research Project). Опыт интересный, но и не лишенный определенных сложностей. Делали мы этот проект (и ещё один) вместе с моей тогда ещё невестой — да, так вот нам повезло и учиться вместе, и поехать на стажировку в Германию. По правде сказать, эту часть работы делала в большей степени именно она, но популяризировать эту тему хочется мне.

Итак, однажды мы назначили встречу, чтобы выбрать тему научной работы...

А не замахнуться ли нам на оптическую связь? Лазеры, космос, CubeSat - 1

Читать полностью »

Предисловие

В качестве дополнения к моей недавней статье хотелось бы также поговорить о теме MU (Multi User) MIMO. Есть у мною уже упомянутого профессора Хаардта одна очень известная статья, где он вместе со своими коллегами предлагает алгоритм разделения пользователей по нисходящему каналу (Down Link) на основе линейных методов, а именно блоковой диагонализации (Block Diagonalization) канала. Статья имеет внушающее количество цитирований, а также является краеугольной публикацией для одного из заданий экзамена. Поэтому почему бы и не разобрать основы предлагаемого алгоритма?

MU-MIMO: один из алгоритмов реализации - 1
(ссылка на источник иллюстрации)

Читать полностью »

Вступление

Привет!
Недавно хотел установить себе приложение для управления мышью на компьютере, но у меня возникли проблемы при подключении телефона и у меня появилась идея сделать что-то подобное самому, но как? Перебрав несколько вариантов я вспомнил о телеграм ботах которые могут вполне подойти для того чтобы сделать что подобное в текстовом варианте, например ты пишешь боту "/open chrome" и у тебя на компьютере открывается Chrome.
Читать полностью »

Мы в компании создаем сервис, который извлекает юридические факты из переписки клиента и заказчика. Сервис вырос из одной простой идеи — мои постоянные клиенты из решили упросить работу менеджерам и создать “генератор договоров”. Первую задачу — подтягивать в договор реквизиты клиента и заказчика мы решили легко.

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

Однако, люди редко пишут в чатах и мессенджерах даты так, чтобы их легко мог распознать алгоритм.
Читать полностью »

Предисловие

Думаю, нужно коротко пояснить, почему вдруг такая, казалось бы, тривиальная тема с подсчетом энергобюджета и почему именно спутники CubeSat? Ну, здесь всё достаточно просто: моя короткая педагогическая практика показала (мне), что тема эта хоть и базисная, но далеко не всеми с первого раза понимаемая, а более того имеющая несколько неочевидных в первом прочтении вопросов. Тем более, что, казалось бы, по таким базовым вещам до сих пор публикуют статьи в IEEE и делают это далеко не студенты. Почему именно CubeSat? Здесь всё ещё проще: формат спутника интересный (сам факт существования микро- и наноспутников, как выяснилось, повергает многих в состояние короткого шока), а потому как нельзя кстати подходящий для учебных целей.

Подсчитываем энергобюджет радиолинии для спутника формата CubeSat - 1

Читать полностью »

Вместо вступления

Unittest — наверное самый известный фреймворк для написания тестов в Python. Он очень прост в освоении и его легко начать использовать в вашем проекте. Но ничто не бывает идеальным. В этом посте я хочу рассказать об одной возможности, которой лично мне (думаю, не одному) не хватает в unittest.
Читать полностью »

aaspcats

Предисловие

Начну своё вступление издалека. Давным-давно, в далеких 2016-2017 годах вашему покорному слуге удалось съездить на полугодовое обучение в далекий город Ильменау (Германия), где он успешно (в общем и целом) закончил магистерскую программу Communications and Signal processing. Программа оказалась не из простых, однако сейчас о ней вспоминать даже приятно. Иногда...

Читать полностью »

Что такое исключения? Из названия понятно — они возникают, когда в программе происходит исключительная ситуация. Вы спросите, почему исключения — анти-паттерн, и как они вообще относятся к типизации? Я попробовал разобраться, и теперь хочу обсудить это с вами, читатели.

Проблемы исключений

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

Исключения трудно заметить

Существует два типа исключений: «явные» создаются при помощи вызова raise прямо в коде, который вы читаете; «скрытые» запрятаны в используемых функциях, классах, методах.

Проблема в том, что «скрытые» исключения и правда трудно заметить. Покажу на примере чистой функции:

def divide(first: float, second: float) -> float:
    return first / second

Функция просто делит одно число на другое, возвращая float. Типы проверены и можно запустить что-то такое:  

result = divide(1, 0)
print('x / y = ', result)

Заметили? На самом деле до print исполнение программы никогда не дойдет, потому что деление 1 на 0 – невозможная операция, она вызовет ZeroDivisionError. Да, такой код безопасен с точки зрения типов, но его все равно нельзя использовать.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js