Под катом комментарии об очередном плакате, Поле Саймоне и Арте Гарфанкле, песнях Demon Woman и Oh, Dance, Baby, а также о двойнике Элтона Джона и дьяволице Керэн.
Благодаря бдительным пользователям в qTwister обнаружился баг. Оказывается, для отображения векторных svg-картинок, необходимо в составе приложения поставлять еще и соответствующий плагин, а без него ничего не показывается. В общем, разобрался, все исправил, кто следит - может скачать обновленные архивы со страницы программы (если надо - обновите кэш браузера).
На случай если забуду, или случайный гость заинтересуется: плагин qsvg4.dll (.so для Linux) лежит в qt/plugins/imageformats. В приложении плагин должен поставляться в директории imageformats/.
В общем, сделал я для Друпала 6.x модуль под названием notabene. Модуль предназначается для организации системы кратких заметок «на полях» с помощью специальной кнопки. При наведении мыши на кнопку, появляется всплывающий блок, показывающий уже созданные по данной кнопке заметки. Нажатие на кнопку влечет появление фрейма с уже созданными заметками и формой добавления новых. Фрейм создается с помощью Modal Frame API.
Специальная кнопка может быть вставлена разработчиком сайта куда угодно с помощью функции
theme('notabene_button', $rel_id, $nid = 0);
где $rel_id — задаваемый разработчиком идентификатор, используемый для группировки заметок, а $nid — необязательный ID ноды, к которой будут прикреплены заметки. Вставлять можно сколько угодно кнопок, при разных $rel_id у разных кнопок будут независимые потоки заметок.
То есть по сути модуль представляет собой API из одной theme-функции, возвращающей HTML-код кнопки, и нескольких страниц настроек модуля в админке. Более подробное описание разных аспектов модуля содержится в файле README_RU.txt в архиве. Здесь кратко перечислю основные особенности:
если кнопка привязана к ноде через указание $nid, заметки будут автоматически удаляться при удалении ноды;
заметки можно помечать как «важные» и «личные». Личные заметки видны только их автору (и админу);
можно включить ограничение длины заметок с отображением количества оставшихся символов примерно как в Твиттере;
количество заметок, выводимых во всплывающем блоке, и порядок их сортировки тоже можно настраивать;
администратор может задать формат ввода, автоматически применяемый ко всем заметкам;
есть возможность подключить к форме Друпала (по form_id) автоматическую фильтрацию, с помощью которой модуль найдет в текстовых полях формы куски текста, выделенные определенными тэгами, и сохранит их как заметки, убрав из текстового поля. Тэги настраиваются в админке;
администратору доступна система фильтрации и удаления заметок наподобие админки нод;
при добавлении/удалении заметок счетчик на кнопке обновляется без перезагрузки страницы.
Также в состав модуля notabene входит подмодуль notabene_node. Он позволяет встраивать кнопку заметок в тело ноды без необходимости использовать функцию theme() и вообще писать какой-либо код. Для этого имеются настройки отображения кнопки как для типов содержимого, так и для каждой ноды в отдельности. Пример настроек и результат отображения кнопки в ноде — на рисунках ниже:
Это первая версия модуля, естественно, еще достаточно сырая, многое можно улучшить, что-то переделать. Делалось, как водится, для собственных нужд, но с оглядкой на реюзабельность. Поэтому если есть идеи, ценные советы или замечания по работе модуля и его апгрейду — прошу высказываться. А пока в дальнейших планах:
Время от времени всем нам приходится регистрировать учетные записи, для которых неплохо бы иметь «сильный» пароль. Для доступа на ФТП, для админки на сайте, в общем — известно, зачем. Лично я для этих целей обычно ставлю пароли вида NCpg*fmO_08uLh. Придумывать такие самому, однако, лениво. Поэтому уже несколько лет пользуюсь самопальной утилиткой на Qt, которая придумывает их за меня. Ну и пришло как-то в голову привести ее в божеский вид и выложить сюда — а ну как кому пригодится. Знакомьтесь, qPassGen:
Программа генерирует пароли заданной длины из букв латинского алфавита нижнего и верхнего регистра, пробелов, подчеркиваний, цифр и звездочек, а также дополнительных, введенных от руки символов. Краткое описание прилагается в архивах.
Как-то раз притащили домой заморскую игру Твистер. Если кто не знает, это такая напольная потеха, в которой игроки должны по команде ставить руки и ноги на разноцветные круги, извиваясь как ужи, и кто гибше гнется — тот молодец. Игра была немедленно испытана на гостях, специально приглашенных под надуманным предлогом (см. спиртное). Радость стояла неописуемая — пьяные гости (и мы с ними) яростно изгибались и дружно валились в кучу. Поутру не привыкшие еще к позициям из цикла «Йога для самых гуттаперчевых» конечности адски болели, но сейчас не об этом.
В процессе игры оказалось, что один из присутствующих вынужден воздержаться от всеобщего твистера и быть ведущим, то есть крутить пластмассовую стрелку на диске и называть выпадающие ходы (цвета и конечности). И это в XXI веке, когда очевидно, что в комплект с игрой должны входить специально обученные роботы, самостоятельно крутящие стрелку, пока человеки полным составом валяются по полу.
А я как раз тогда дочитывал книжку Макса Шлее про Qt, ну и решил устранить технологическую несправедливость и заодно закрепить некоторые аспекты фреймворка на практике. Так родилась программка qTwister.
Программа умеет:
генерировать ходы для Твистера в ручном режиме (нажатием на красную кнопку);
генерировать ходы автоматически с заданным интервалом;
отображать каждый ход графически (изображением конечности и цвета, как на картинке выше);
озвучивать каждый ход мужским или женским голосом (русскую озвучку сами наговаривали, английская — сгенерирована через espeak);
работать на русском и английском языках.
В общем, делюсь разработкой с общественностью. Краткое руководство по использованию прилагается в архиве.
qTwister для Windows (надо просто распаковать): qTwister.win.zip (~8.7 Мб).
Исходные коды с небольшой инструкцией по сборке под Linux: qTwister.src.zip (~3.6 Мб).
Всякие deb и rpm-пакетики наверное тоже вскоре сделаю. Заодно научусь, как.
Если есть какие вопросы, сообщения, уточнения или пожелания по поводу — пишите в комментарии или в почту.
А если вам хочется поставить генератор ходов для Твистера на мобильный телефон, воспользуйтесь программой Twisdial. Она умеет работать в телефонах на базе Android и других телефонах с поддержкой J2ME.
Перевел пятую серию второго сезона "Полета Конкордов" под названием "Противоестественная любовь". Серия получилась очень хорошая и смешная. Кстати, будьте осторожны, в субтитрах есть нецензурное слово.
На нашем сайте используются куки-файлы, потому что без них всё плохо работает. А с ними — хорошо. Нажмите на кнопку «Согласен», если согласны с условиями обработки куки и данных на сайте. Если не согласны, можете отключить куки в настройках браузера.