Исправление проблемы обхода хранителя экрана в X11
В X.Org Server 1.11 обнаружена уязвимость, позволяющая через манипуляции с клавиатурой обойти режим блокировки экрана и получить доступ к заблокированному рабочему окружению пользователя.
Подробности либо по ссылке выше, либо на OpenNet. Далее »
Автор: Vladimir, опубликовано в: Linux, Безопасность, комментариев: 3Янв
2012
Автоматическое добавление ссылки на источник при копировании текста с сайта
Идея: когда пользователь выделяет часть текста и копирует её в буфер обмена (например, чтобы выложить на своём сайте), автоматически добавлять к выделению ссылку на источник. Далее »
Автор: Vladimir, опубликовано в: JavaScript, комментариев: 9Янв
2012
Qt, libfcgi и многопоточность
Для создания приложений FastCGI на C/C++ есть библиотека libfcgi. Не буду вдаваться в дискуссию, зачем нужны приложения FastCGI на C/C++/подставить нужный язык, когда Python/PHP/Perl/подставить нужное гораздо удобнее. Отмечу лишь, что по работе понадобилось написать FastCGI-приложение на Qt (в основном из-за наличия нескольких высокопроизводительных библиотек, написанных на Qt, но не суть).
Строго говоря, libfcgi, хотя и является официальной библиотекой от создателей протокола, не лучший вариант для поддержки FastCGI — API, предоставляемое библиотекой, сильно ограничено (в плане функциональности) и недостаточно гибко. Далее »
Автор: Vladimir, опубликовано в: Qt, комментариев: нетЯнв
2012
Обход плагина WP Hashcash
WP Hashcash — очередной плагин WordPress для борьбы со спамом. Принцип работы основывается на том, что спам-боты не умеют исполнять JavaScript. Идея в том, что если пользователь открыл сайт из браузера, браузер выполнит некоторый хитрый код JavaScript, и реузльтат работы этого скрипта будет передан назад на сервер в качестве доказательства «человечности» комментатора. Далее »
Автор: Vladimir, опубликовано в: Безопасность, Плагины WordPress, комментариев: 2Дек
2011
Уважаемый Дмитрий
- Идём на Google Translate
- Выбираем перевод с русского на анлийский
- Вводим фразу Уважаемый Дмитрий
- Наслаждаемся переводом
Дек
2011
SQLMon для Yii
Одной из вещей, которых мне очень не хватало при разработке сайтов на Yii — нормального отображения всех запросов к базе данных, что дало бы возможность их последующего анализа.
Ситуацию частично исправило расширение под названием Yii DB profiler. Но остались некоторые неудобства:
- Отображение запросов в порядке убывания времени выполнения — в принципе, это дело вкуса: при таком порядке сразу видны проблемные запросы. С другой стороны, лично мне более привычен хронологический порядок — так чётче прослеживается логика работы;
- Prepared statements. Это просто здорово, но если повторять запрос в phpMyAdmin (например, если интересует план выполнения запроса), бывает очень муторно заменять все связанные значения. Например, для запросов вида
[-]View Code MySQLзаменять всеSELECT 't'."object_id" AS "t0_c0", 't'."ymd" AS "t0_c1", 't'."black" AS "t0_c2", 't'."brown" AS "t0_c3", 't'."yellow" AS "t0_c4",
't'."neutral" AS "t0_c5", 't'."white" AS "t0_c6", 't'."unknown" AS "t0_c7", 't'."error" AS "t0_c8", 'object'."object" AS "t1_c2",
'object'."id" AS "t1_c0"
FROM 'dnsbl_summary' 't'
LEFT OUTER JOIN 'objects' 'object' ON ('t'."object_id"='object'."id")
WHERE (((black > 0) OR (brown > 0)) AND
(((((((((ymd=:ycp0) AND (black>:ycp1)) AND (brown=:ycp2)) AND (yellow=:ycp3)) AND
(neutral>:ycp4)) AND (white>:ycp5)) AND (unknown=:ycp6)) AND (black>:ycp7)) AND
(error=:ycp8))) AND (object.enabled = 1)
LIMIT 50:ycpXXXна их значения немного муторно. В общем случае здесь вряд ли можно что-то сделать — заполнители параметров могут быть любыми (и даже позиционными), поэтому тупое использованиеstr_replaceможет наделать делов.
Лично мне список запросов нужен обычно только для двух вещей:
- Оценка работы механизмов кэширования;
- Оценка плана выполнения запроса, составленная оптимизатором.
Первое обычно не критично (зачастую достаточно посмотреть на количество запросов), а вот второе позволяет выявить многие будущие проблемы с производительностью заранее.
В результате, взяв за основу плагин Александра, я портировал SQLMon на Yii.
Далее »
Ноя
2011
HTML Parser для Qt
XML — это, конечно, хорошо, но очень часто требуется разбирать документы HTML, которые могут и не быть валидными.
В Qt есть множество классов для работы с XML, но они не подходят для HTML, так как ошибки в HTML для них фатальны.
Ниже приведён вариант парсера для HTML, основанный на библиотеке libxml2. Далее »
Автор: Vladimir, опубликовано в: Qt, комментариев: 3Сен
2011
Linux, консоль и деванагари
Недавно отлаживал небольшой скрипт, транслитерирующий текст, записанный в системе IAST или ITRANS, на деванагари. Так как на домашней машине стоит Linux, то логично, что скрипт отлаживался в Linux — в терминале.
И тут меня ожидал огромный сюрприз… Далее »
Автор: Vladimir, опубликовано в: Linux, Всё подряд, комментариев: 2Сен
2011
Установка Skype на Ubuntu Oneiric Ocelot AMD64
Прошло два года… Единственное изменение — в текущей бете Oneiric Ocelot в репозитории partner Skype нет. Вообще.
Skype из Natty Narwhal не прижился: проблема с зависимостями: ia32-libs зависит от lib32v4l-0, который зависит от libv4l-0 версии 0.8.3-2, при том, что в репозитории есть только 0.8.5-3ubuntu1. Понятно, что проблему с зависимостями в конце концов исправят, но без Skype плохо. Далее »
Авг
2011
nspluginwrapper: no appropriate viewer found for /usr/lib/flashplugin-installer/libflashplayer.so
При обновлении Ubuntu Natty Narwhal до текущей альфы Oneiric Ocelot на архитектуре AMD64 возникает неприятная ошибка при обновлении пакета flashplugin-installer (Flash Player):
package flashplugin-installer 10.3.183.4ubuntu3 failed to install/upgrade:
nspluginwrapper: no appropriate viewer found for /usr/lib/flashplugin-installer/libflashplayer.so
Далее »
Авг
2011

Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

