Проверка xml по xsd на Python через lxml

В библиотеке lxml содержаться функции для проверки xml по xsd. Пример кода:

Метод validate возвращает False если xml не проходит проверку по схеме. Свойство error_log содержит список несоответствий xml схеме из xsd.

Notepad++ XML Tools, проверка xml по xsd

Описание работы с плагином для Notepad++ XML Tools:

  • Установка
  • Автоматическая првоерка XML
  • Форматирование XML
  • Проверка XML по XSD

Установка XML Tools

Заходим в Управление плагинами:

Управление плагинами Notepad++

Выбираем XML Tools и нажимаем установить:

Установка XML Tools в Notepad++

Читать далее Notepad++ XML Tools, проверка xml по xsd

Задача Bitwise AND

В задаче Bitwise AND дано множество чисел \(S = \{1, 2, 3, ..., N\}\), нужно найти два числа \(A\) и \(B\) такие что значение \(A \& B\) (побитовый оператор И) наибольшее, но меньше заданного \(K\). Вывести наибольшее возможное \(A \& B\).

Ограничения:

  • \(2 \leq N \leq 10^3\)
  • \(2 \leq K \leq N\)

Решение

Решение с перебором рабочее, но не проходит по скорости: всего пар \(N * (N - 1)\), сложность получается \(O(n^2)\).

У этой задачи есть решение за константное время. Предположим число \(K\) нечётное. Это значит что в побитовой записи справа у него находится единица:

\(11_{10} = 1011_2\)

Рассмотрим \(K-1\), в двоичной записи все его цифры совпадают с \(K\) кроме последней в которой находится 0:

\(10_{10} = 1010_2\)

Читать далее Задача Bitwise AND

Использование Saved messages в Telegram

Saved messages Telegram

Saved messages — особый контакт Telegram. Некоторые варианты его использования:

  • Перенос файлов между устройствами
  • TODO-списки, задачи
  • Хранение ссылок, контактов

Первый пункт неинтересен, а второй и третий разберём в соответствии с Джедайскими техниками (Лабиринт).

Задачи

Полностью вести список задач в Saved messages неудобно, Telegram для этого не предназначен. Следовательно, если задачи скапливаются в Telegram то это уже второй (энный) список.

Главный принцип списка задач — список задач должен быть один. Накапливать задачи в Telegram нельзя. Остаётся рассматривать Saved messages как один из источников входящих, так же как почту.

Когда нет возможности записать задачу в основной список задач, удобно быстро отправить сообщение в Telegram. Чужие сообщения можно даже просто пересылать в Saved messages. Но отношение к ним должно быть как к входящим, а не как к задачам. Сообщения разбираются по обычным принципам и переносятся либо в список задач либо в информацию.

Информация

Ссылки и контакты относятся к кускам информации. Главный принцип её хранения — простой и быстрой поиск информации когда она нужна. Обычно, для этого информация хранится в структурированном виде. По проектам, областям, файлам или любым другим способом.

Как и для задач, Telegram не предоставляет возможностей для эффективного хранения информации. Поэтому работа с такими сообщениями такая же как с задачами: при разборе входящих куски информации из Saved messages сортируются и помещаются в наиболее подходящие места, в идеальном случае, в одну или несколько баз знаний.