27 нояб. 2011 г.

Семинар 28 ноября

Завтра, 28 ноября, в группе 8321 всё по расписанию. Будем изучать файловые операции. Закончим, я надеюсь, не в шесть, а чуть пораньше.

20 нояб. 2011 г.

Семинар 21-го ноября

В связи с приближением очередной отчётной точки по защите моей диссертации, завтра, 21-го ноября, семинар по питону отменяется. Вместо этого я готов провести консультацию по домашним заданиям с 13:30 до 15:00. Если к 13:45 никто не придёт, значит считаем, что никому и не надо.

Добавлены домашние задания для редко посещающих наши семинары студентов: раз, два.

15 нояб. 2011 г.

Занятия у Н.Я. Александровой

В связи с болезнью преподавателя все ближайшие занятия у Нины Яковлевны Александровой отменяются. Предположительно до конца недели. О дальнейших изменениях в расписании надёжнее всего узнавать на кафедре (ауд. 43б).

12 нояб. 2011 г.

Примеры генераторов кэпчи

Вот пара примеров программ, написанных студентами в прошлом году: разрезанные буквы и матан.
Матановая кэпча требует усиления алгоритма.
Программы работают. Кодировка исходных кодов — utf8.

Репетиторство

Нужен репетитор по математике для мальчика 13-ти лет. Ученик может приезжать сам, можно заниматься у него (живёт, вроде, где-то на Фрегате). Оплата — 300 рублей в час. Подробности оговариваются по телефону. Писать мне на почту, я дам телефон. Мопед не мой, попросили найти репетитора. Ещё нужен репетитор по физике для мальчика 11 класса. Мальчик со школьной академии, можно встретиться с ним в ближайший вторник и обсудить подробности. Предварительно подойти ко мне на кафедру в понедельник (до 13:30).

8 нояб. 2011 г.

Второе задание в группе 8321

CAPTCHA своими руками
Второе задание направлено на проверку следующих навыков:
• получение растровых изображений и работа с ними;
• создание GUI.
В принципе, GUI мне не так важен, как сама кэпча. Но всё же без графического интерфейса задание не будет засчитано. Чуть позже я выложу пару работающих примеров с прошлого года.

Описание GUI (библиотека Tkinter):
1. Графический интерфейс пользователя представляет собою окошко, в верхней части которого показывается картинка, под ней поле (ENTRY) для ввода ответа, а под ним две кнопки: «check» и «generate».
2. При запуске программы генерируется картинка согласно заданию (см. ниже), поле для ввода ответа пусто.
3. Пользователь вводит в поле предполагаемый ответ.
4. По нажатию кнопки «check» происходит проверка ответа. После этого должно появляться сообщение (WARNING) о том, правильный ли ответ или нет.
5. По нажатию кнопки «generate» генерируется новая картинка, а поле с версией ответа очищается.

Это минимальный требуемый интерфейс. Если вы как-то разнообразите его — вам только в плюс.

Требования к генерируемой картинке:
1. Картиночная кэпча (Морозова). Берём короткое существительное из любого словаря. Ищем это слово в яндекс-картинках или google images (т.е. сделать запрос вида http://images.yandex.ru/yandsearch?text=слово или воспользоваться API гугла, у них есть даже специальная библиотека на питоне, которая, например, умеет искать картинки и менять их размер). Берём одну или несколько первых картинок из списка выдачи и вставляем в наш GUI. И нужно как-то обеспечить простоту отгадывания: если картинка одна, то можно подписывать на ней несколько слов, из которых одно — правильное. Если картинок много, то, возможно, и так получится отгадывать.
2. Химическая кэпча (Лисовой). Генерируем название химического соединения и просим ввести формулу. Вариантов соединений должно быть не меньше 100. Предполагается, что отгадывающиий знает химию.
3. (Ананьев) Восемь случайных букв или цифр, деформированных случайным образом (механизм деформации любой).
4. Электротехническая кэпча (Толстоногов) Случайная электрическая схема из трёх резисторов, сопротивление каждого из которых задаётся небольшим целым случайным числом в омах. Схема должна быть односвязной и иметь ровно два внешних контакта. Ответом будет являться суммарное сопротивление такой схемы (при необходимости округлённое до одного знака после запятой).
5. Матановая кэпча (Есжанов). Показывать квадратное уравнение и просить ввести его больший или меньший (выбирать случайно) корень. При необходимости ответ округлять до одного знака после запятой.
6. Филологическая кэпча по роману А.С. Пушкина «Евгений Онегин» (Стрюк). Из первой главы (в идеале — из любой) случайным образом выбираем одну строфу. Из строфы берём первые три строки. Из одной из строк (случайно выбранной) вырезаем последнее слово и предлагаем его восстановить. Картинка выглядит следующим образом: угадывающему предлагаются четыре строки, в одной из которых находятся последние слова из других строк плюс правильный ответ, разделённые пробелами. Желательно, чтобы среди вариантов ответа было слово, рифмованное с правильным ответом. Число слов в строке с вариантами ответа не должно превышать число слов в строке-вопросе. Дополнительную степень защиты можно ввести, записывая всё это шрифтом «Пушкин».
7. (Кириллова) Из словаря антонимов загадываем любое слово и предлагаем подобрать к нему антоним. Давать несколько подсказок (не менее 5), причём записывать их на картинке так, чтобы автоматическое распознавание было затруднительным (например, можно повернуть каждое слово на некоторый угол и проч.).
8. Геометрическая кэпча (Мнякин) На картинке рисуем случайное количество (но в пределах разумного) кругов, треугольников, квадратов, желательно с персечениями, и просим посчитать суммарное число углов.
9. (Семукова) Произвольные слова из словаря записывать по границе окружности некоторого радиуса. Слово должно быть более или менее равномерно расположено вдоль этой окружности и буквы не должны наезжать друг на друга. Начало слова должно чётко определяться.
10. (Вернигорова) Реализовать на питоне алгоритм MultiWave. 11. (Степанович) Стандартная шахматная кэпча: 5 случайно взятых толстых букв разрезаны на 10 кусков. Куски раскрашены в шахматном порядке: в соседних по горизонтали или вертикали кусках цвета буквы и фона инвертированы. Типа такого:

6 нояб. 2011 г.

Семинар 7 ноября

Завтра, 7-го ноября, занятия в группе 8321 пройдут по расписанию. В программе раздача вторых заданий и гуёвая материализация случайной фигни.