Python. Генерация псевдослучайных чисел. Модуль random

Скрипты выполнялись под Python версии 2.7.9.

Генерация случайных чисел используется для:

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

В Python существует несколько основных модулей и классов, связанных с генерацией псевдослучайных чисел:

  • _random - реализует алгоритм Mersenne Twister, написан на языке C;
  • класс Random - наследует _random, написан на языке Python;
  • модуль os - предоставляет доступ к внешнему источнику случайных чисел, в случае Linux - это /dev/urandom;
  • класс SystemRandom наследует Random, но для генерации случайных чисел обращается к os.urandom;
  • класс WichmannHill наследует Random, реализует алгоритм Вихмана-Хилла для генерации псевдослучайных чисел.

В качестве основного генератора псевдослучайных чисел Python использует Mersenne Twister, доступ к которому предоставляет класс Random. Mersenne Twister имеет период 2 ** 19937-1. Это один из наиболее протестированных генераторов случайных чисел. Основная часть реализована на C. К сожалению, не подходит для криптографических задач.

Читать далее

Как вычислить хэш-сумму MD5 и SHA для файла в Debian Linux

Утилиты md5sum и shasum позволяют вычислять хэш для файлов или проводить сравнение реальных хэшей с указанными в файле.

Вычисление хэш-суммы возможно для любых типов файлов, в т.ч. физических и логических дисков.

Вычисление MD5

md5sum filename

Пример:

Вычисление SHA

shasum (-a 1/256/384/512) filename

Опция -a позволяет выбрать алгоритм для вычисления суммы: 1-, 256-, 384- или 512-битный.

Пример:

Ошибка «Cannot uninstall AnyPackageName. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall»

Ошибка возникает при попытке обновления установленного пакета:

Решение, используем опцию "--ignore-installed":

Проверяем результат, версия пакета изменилась и он находится в списке не требующих обновления:

Работа с pip для начинающих. Шпаргалка

Установка pip

pip - питоняшный менеджер пакетов. Устанавливает и удаляет пакеты, написанные с помощью python.

Проверяем, что установка прошла успешно:

Pip по умолчанию устанавливает пакеты из Python Package Index (PyPI) - крупнейшего каталога пакетов для python. Python Package Index - аналог CPAN для Perl и PEAR для PHP.

Читать далее

Ошибка «Could not find any downloads that satisfy the requirement» в pip

Исходные данные. Операционная система Debian 8. С помощью apt-get установлен pip ($ apt-get install python-pip). При просмотре списка пакетов, с опциями --uptodate и --outdated в выводе появляются строки "Could not find any downloads that satisfy the requirement".

Читать далее

Что такое Markdown

Markdown - это язык разметки, используется для форматирования простых текстов. Оформленный с помощью Markdown текст, легко конвертировать в HTML-код.

Если не хотите проблем с отображением русского текста при чтении md-документа, используйте UTF при написании.
Читать далее

Как вернуть значок «Свернуть все окна» на Windows XP?

Что делать, если случайно был удалена иконка "Свернуть все окна" на Windows XP.

В текстовом редакторе создать новый файл "Show Desktop.scf" и сохранить его на рабочем столе. В файл добавить код:

[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

Сохранить изменения. После этого можно перетащить появившуюся на рабочем столе иконку "Свернуть все окна" на панель быстрого запуска.

Как вставить видео с YouTube в запись WordPress и изменить его размеры

В современном WordPress чтобы добавить видео с YouTube достаточно просто вставить в текст ссылку на видео:

https: //www.youtube.com/watch?v=28m0uUg96bc

При формировании страницы эта ссылка будет автоматически обработана и пользователь увидит блок с видео-роликом.

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

Чтобы изменить размеры видео на страницах блога, необходимо открыть директорию вашей активной темы, найти файл functions.php и добавить в него строку:

if ( ! isset($content_width) ) $content_width= 600;

где значение "600" - ширина отображаемого видео-блока в пикселях.

Catalyst, Sphinx и realtime индекс

Как создать realtime индекс Sphinx. Использование realtime индексов в Catalyst-приложении.

Эксперименты проводились на Sphinx версий 2.2.10 и 2.0.4.

Продолжаем развивать код из первой заметки про Sphinx. Возьмем его за основу и добавим в Catalyst использование realtime индекса.

Читать далее

Sphinx и Catalyst

Как реализовать поиск помощью Sphinx в Catalyst-приложении. Как создать приложение Catalyst, конфиги для Sphinx.

Приложение создавалось на Ubuntu 14.04, perl 5.18, Sphinx версии 2.2.10, модуль Sphinx::Search 0.29. Sphinx от версии к версии меняет функциональность и принципы работы, иногда очень значительно. Модуль Sphinx::Search тоже. Поэтому, не факт, что приведенный ниже код будет работать и у вас в неизменном виде.

В общем, собираясь углубиться в Sphinx тему, надо быть готовым к проблемам совместимости, версионности и т.п.

Читать далее