среда, ноября 29, 2006

`make test` - полный вывод сообщений каждого теста

Допустим что вы написали один или несколько модулей на perl и много-много тестов для них. В каждом тесте вы подробно выводили сообщения типа "Первая ступень отстыковалась","Корректировка траектории","Отстыковка второй ступени" и т.д.

Наиболее вероятно, что Makefile.PL у вас состоит из вызова WriteMakefile модуля ExtUtils::MakeMaker. Но вот незадача, при `make test` у вас просто напротив каждого тестового файла ставится ok или пишется, что дело труба. И никаких ваших подробных сообщений для каждого теста не выводится, а иногда они существенно сокращают время поиска граблей, если составлены грамотно и в правильном порядке и хотелось бы их видеть(образно выражаясь если первая ступень уже отделилась - там грабли уже вряд ли есть, а если и есть, то нас они не особо интересуют :) ).

Так вот решение существует. Достаточно написать `make test TEST_VERBOSE=1` и вуаля - ваши сообщения посыпяться как жёлуди. Ещё говорят нужно установить переменную окружения HARNESS_VERBOSE: `export HARNESS_VERBOSE=1`. Но лично у меня сейчас работает и без неё. А раньше вроде не работало, вобщем это видимо зависит уже от каждого конкретного случая (ОС/версия софта/настройки).

понедельник, ноября 27, 2006

Антиспам для форума phpBB

Я недавно писал о том что со спамботами вполне можно бороться. Так вот разработчики похоже наконец разродились более менее эффективными модами.

Textual Confirmation - при регистрации задаёт один из указанных админом вопросов, потом сравнивает с корректными вариантами ответов(тоже заданных админом). В принципе если проявить немного фантазии в вопросах, то автоматически его не обойти.

Anti Bot Question MOD - задаёт вопросы при регистрации и/или постинге гостей. В качестве вопросов можно использовать текст, картинки, html. Но устанавливать его гораздо сложнее чем предыдущий мод.

Да, Textual Confirmation в бесплатном варианте отсылает репорт о спаме куда-то там, но не думаю, что стоит волноваться, автор особо не скрывается и не вызывает подозрений. Вот кстати его любопытная статейка о Google Summer Code: http://offline.computerra.ru/2005/611/235848/

воскресенье, ноября 26, 2006

True or False в perl, небольшой логический тупичок

По прочтении статьи указанной ниже придумал задачку. Даны A и B. Про них известно только следующее:
(A==0) -> true
(B==0) -> false
A && B -> B
B && A -> A

Правильный ответ (выдели мышкой чтобы прочитать):
A = <непустая строка>
B = 1

По мотивам True or False? на perlmonks.

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

вторник, ноября 14, 2006

Баги в GWT

Да, не всё безоблачно оказалось в GWT. Сначала обнаружился баг в Опере при попытке вывести PopupPanel немного смещённой относительно нажатой кнопки. В опере getAbsoluteTop() почему-то возвращает 0, причём в google groups сообщения об этом были ещё в августе и ранее.

Далее для борьбы с ложным множественным кликом я написал примерно следующий обработчик клика:
if (addForm==null || !addForm.isVisible())
addForm = new AddForm(id);
Где AddForm - наследник PopupPanel. Но это не работало. Потому что оказывается метод hide() класса PopupPanel не устанавливает Visible в false - пришлось перекрыть hide() в наследнике и вызвать в нём SetVisible(false).