Статические переменные внутри метода
В одном из проектов, которые я сопровождаю, обнаружилась одна мерзкая и трудноуловимая ошибка, связанная с использованием статических переменных внутри методов.
Рассмотрим простой пример PHP-кода:
class A {
public function __construct()
{
static $i = 0;
++$i;
print $i . "\n";
}
}
$a = new A();
$b = new A();
?>
Внимание, вопрос: что будет выведено на экран (очень хороший вопрос для собеседования)? Далее »
Автор: Vladimir, опубликовано в: PHP, комментариев: нетАпр
2009
Сколько будет i++ + ++i?
Вопрос для собеседования на вакансию C/C++-программиста:
int i = 5, j = i++ + ++i; – чему равно i и j?
Ответ вида «За такое нужно руки отрывать», не подходит, ибо автор вопроса считает, что знает правильный ответ — i=7, j=12. Но так ли это? Далее »
Автор: Vladimir, опубликовано в: C/C++, комментариев: 5Апр
2009
hotkey-setup 0.1-23ubuntu10 в Jaunty Jackalope
В очередной раз разработчики выпустили пакет, не потрудившись его протестировать (или, скажем прямо, установить).
Сегодня пришло обновление для hotkey-setup, которое завершилось следующим образом:
/etc/init.d/hotkey-setup: 47: Syntax error: ";;" unexpected (expecting "fi")
invoke-rc.d: initscript hotkey-setup, action "start" failed.
dpkg: не удалось обработать параметр hotkey-setup (--configure):
подпроцесс post-installation script возвратил код ошибки 2
При обработке следующих пакетов произошли ошибки:
hotkey-setup
E: Sub-process /usr/bin/dpkg returned an error code (1)
Не удалось установить пакет. Попытка восстановить:
Настраивается пакет hotkey-setup (0.1-23ubuntu10) ...
/etc/init.d/hotkey-setup: 47: Syntax error: ";;" unexpected (expecting "fi")
invoke-rc.d: initscript hotkey-setup, action "start" failed.
dpkg: не удалось обработать параметр hotkey-setup (--configure):
подпроцесс post-installation script возвратил код ошибки 2
При обработке следующих пакетов произошли ошибки:
hotkey-setup
Апр
2009
WP Super Cache и высокая нагрузка
Проблема: PHP случайным образом перестаёт реагировать на внешние запросы.
Сайт работает на WordPress (с WP Super Cache), web-сервером стоит nginx, php-fpm с 40 дочерними процессами висит в режиме FastCGI. Довольно-таки стандартная конфигурация.
Иногда (периодичность не ясна) сайт падает. В том плане, что nginx выдаёт ошибку 502 Bad Gateway. При этом в логах отображается примерно такое:
Лечится только перезапуском php-fpm. Далее »
Мар
2009
PHP 5.2.6 в Debian Lenny: неожиданный сюрприз
Есть сервер с Debian Lenny на борту. На сервер стоит Apache, MySQL, PHP5 — одним словом, стандартный web-сервер. Плюс XCache и ionCube Loader.
С некоторого времени стали замечать, что PHP начал падать с ошибками сегментации, причем падал исключительно CLI, модуль Apache работал исправно. Далее »
Автор: Vladimir, опубликовано в: Linux, PHP, Администрирование, комментариев: 5Мар
2009
KernelCheck, Intrepid Ibex и AMD64
KernelCheck — проект, разработанный для облегчения процесса сборки ядра Linux.
B Ubuntu Intrepid Ibex на архитектуре AMD64 проявился интересный баг:
Makefil:518: /usr/src/linux-2.6.28/arch/xen/Makefile: No such file or directory
make[1]: *** No rule to make target '/usr/src/linux-2.6.28/arch/xen/Makefile'. Stop.
make[1]: Leaving directory 'usr/src/linux-2.6.28/
make: *** [minimul_clean] Error 2
ABORT: stage5 returned exit status 2
Фев
2009
Catalyst 9.1: Failed to gather memory of size 0Kb for PCIe
Данная проблема остаётся пока без решения.
Сегодня решил попробовать новые драйвера от ATI (Catalyst 9.1) — любимый fglrx. К сожалению, ничего хорошего: с моей видеокартой (ATI RadeonHD 3200) не работают. Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: 1Фев
2009
Segmentation fault при запуске fglrxinfo
В очередной раз привет команде разработчиков fglrx…
Решил сегодня проверить пару идей, касающихся 3D-ускорения. Запустил glxinfo | grep render:
OpenGL renderer string: ATI Radeon HD 3200 Graphics
Опа! А direct rendering-то, оказывается, не работает! Запускаем fglrxinfo:
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI Radeon HD 3200 Graphics
OpenGL version string: 1.4 (2.1.8201 Release)
Segmentation fault
Ошибка сегментации — всё чудесатее и чудесатее, как говорил классик. Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: нетФев
2009
Плазма не падает
Эх, пилить еще KDE и пилить… Возможно, Торвальдс прав, что пересел на GNOME.
Вдогонку:
Автор: Vladimir, опубликовано в: Linux, комментариев: нетЯнв
2009



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


Удаление родительского комментария приводит к неправильному отображению дочерних комментариев
Одна из довольно неприятных ошибок в WordPress… Дело в том, что при удалении комментария WordPress не проверяет, есть ли у удаляемого комментария дочерние комментарии. При древовидном отображениии комментариев оставшиеся сиротами комментарии выводятся неправильно — под всеми остальными, нарушая хронологический порядок. Далее »
Автор: Vladimir, опубликовано в: Патчи, комментариев: 10Фев
2009