Архив

Архив автора

Windows: Как определить модель устройства.

Иногда встаёт вопрос. И требуется ответ. Если вопрос – узнать под ОС Windows модель какого-либо подключенного устройства, то ответ можно получить следующим образом. Жмём правой кнопкой по «моему компьютеру» (или по Вашему, если моего рядом нет), выбираем «свойства», в новом окне вкладку «оборудование», «диспетчер устройств». Находим в списке нужное устройство (аудиоконтроллер, сетевая карточка, etc), опять жмём правой кнопкой мыши по нужному девайсу, переходим на вкладку «сведения» и ищем подпункт «код экземпляра устройства», который может выглядеть следующим образом:

PCI\VEN_XXX&DEV_XXXX&SUBSYS_XXXXXXXX

Читать далее...

Python: Проблема с подвисанием GUI на TkInter.

21 октября 2009 2 комментария

Встала задача написания небольшой графической оболочки для программы с минимальным интерфейсом (одна кнопка и одно поле вывода). Много нам не надо, поэтому решил обойтись идущей вместе с python’ом в поставке библиотекой TkInter. И тут столкнулся с небольшой проблемой – при нажатии кнопки запускаются довольно долгие и объёмные вычисления, из-за которых виснет весь интерфейс программы. Читать далее...

Python: генератор списка паролей для перебора (brute-force).

13 октября 2009 11 комментариев

При написании в очередной раз программы для подбора паролей к чему-либо (исключительно в образовательных целях и для учёбы) опять возникла необходимость в итераторе по заданному алфавиту. Т.е. необходимо написать класс, который мог бы генерировать пароли для последующей передачи их в программу, которая «примеряла» их к чему-надо. К чему – дело третье и сейчас нас (вернее вас) не волнует. В результате получился скромный класс, который приведён ниже со столь же скромными моими комментариями к нему. Читать далее...

Python: файловый интерпретатор.

Очередной бестолковый велосипед от СГУ. Требуется написать "интерпретатор", который умел бы работать с файлами. Так же умел бы исполнять сторонние скрипты. Работа с файлами заключается в следующих функциях - открыть на запись, открыть на чтение, закрыть файл, читать из файла, читать n байт, записать в файл, читать в буфер, записать из буфера в файл, сместиться на определённую позицию.
Читать далее...

Python: Генерация группы ключей.

Опять делюсь универскими наработками. Задача в общем то примитивная (или по крайней мере её реализация). Надо сгенерировать N равнозначных ключей для шифрования/дешифрования сообщения. Т.е., генерируем 10 ключей, шифруем сообщение любым из этих 10, расшифровываем так же любым из этих 10. Например, зашифровали пятым ключом, расшифровали третьим, или десятым.
Читать далее...

PHP: Пример использования ORM Doctrine.

В данном посте рассмотрим простенький пример использования ORM, а именно, Doctrine. Если кто не в курсе, то ORM (Object-Relational Mapping, объектно-реляционная проекция) - такая штука, которая обеспечивают классам прозрачный доступ к базе данных. Правда не всяким классам, а тем, которые представляют описание нашей модели данных. В общем мне бы пару лет назад узнать о такой штуке, может быть я и не забросил изучение php, и вообще, много чего полезного сделал :D. Если кто-то знаком с паттернами проектирования, то можно сказать, что Doctrine соответствует шаблону Active Record. К своему стыду, сам я не знаком с ними, поэтому ничего конкретней сказать не могу пока что.

Кстати, мы уже затрагивали мельком тему ORM, но только для python. Можете посмотреть про SQLAlchemy тут.

Далее будет рассмотрен пример написания модуля на php с использованием ORM Doctrine для отправки личных сообщений между пользователей. Читать далее...

Python: Аналог интерактивного режима у себя в программе.

Как-то лень было писать для задачки интерфейс, а в универе требовали, и тут в мою голову пришла мысль, что не плохо было бы иметь что-то вроде аналога интерактивного режима интерпретатора python'а (лицезреть который Вы можете выполнив команду python или нажав в виндовской IDLE F5).
Читать далее...

Python: Аутентификация с помощью протокола S/KEY.

25 февраля 2009 Нет комментариев

Смотрю, тут многие интересуются безопасностью, поэтому решил выложить с описанием свою реализацию протокола S/KEY. В общем то задача тривиальная, на мой взгляд, но может кому-то понадобится, если зададут в универе.

S/KEY был разработан для аутентификации на на unix-подобных ОС, в частности, на "глупых" терминалах или на публичных компьютерах с низким уровнем доверия, где использовать долгосрочные пароли нецелесообразно.
Читать далее...

Python: Масштабирование и наложение водяных знаков на изображение.

7 февраля 2009 Нет комментариев

В данной статье будут рассмотрены некоторые возможности PIL (Python Imaging Library), а именно, использование библиотеки для создания превьюшек и наложения одного изображения на другое. Всё это делается достаточно тривиально, если знать как, ну а те, кто не знает, могут читать дальше.
Читать далее...

Linux: Монтирование разделов FreeBSD с правильной кодировкой.

29 января 2009 Нет комментариев

Поставил я себе ALT Linux, решил перекинуть некоторые нужные вещи с другого винта с freebsd, но тут, как обычно бывает, оказались грабли. Первая проблема - mount при монтировании ufs не может автоматически определить тип файловой системы, т.к. существуют различные её реализации и не все являются документированными. Но это легко решается прочтением манов:

mount -r -t ufs -o ufstype=ufs2 /dev/sdb9 /mnt/freebsd_user

Где /dev/sdb9 - раздел, который монтровался во freebsd как /usr.
Читать далее...

Python: Импорт структур C++ с помощью SWIG.

22 января 2009 Нет комментариев

Начнём с того, что такое SWIG. Итак, это мега-штука, которая предоставляет интерфейс скриптовым языкам (PHP, Python, Tcl, etc) к коду на C/C++. На официальном сайте есть несколько туториалов, которые вкратце показывают как можно применить SWIG для того или иного языка и python в их числе. Вроде при попытке повторить действия никаких ошибок не происходит, однако почему-то никак не получалось получить доступ к описанной в C++ структуре и объявленной там же переменной.

Итак, данный пост содержит немного подправленые инструкции из туториала с официального сайта SWIG для python.
Читать далее...

Microsoft Outlook: Формат почтовой базы (.pst, или PFF — Personal Folder Files).

19 января 2009 Нет комментариев

Данный пост является частичным переводом найденной на просторах интернета спецификации формата PFF. Исходный текст был залицензирован под GPL.
Читать далее...