Статические переменные внутри метода

В одном из проектов, которые я сопровождаю, обнаружилась одна мерзкая и трудноуловимая , связанная с использованием статических переменных внутри методов.

Рассмотрим простой пример -кода:

[-]
View Code PHP
< ?php
class A {
    public function __construct()
    {
        static $i = 0;
        ++$i;
        print $i . "\n";
    }
}

$a = new A();
$b = new A();
?>

Внимание, вопрос: что будет выведено на экран (очень хороший вопрос для собеседования)? Далее »

Автор: , опубликовано в: PHP, комментариев: нет
21
Апр
2009

Сколько будет i++ + ++i?

Вопрос для собеседования на вакансию -программиста:

int i = 5, j = i++ + ++i; – чему равно i и j?

Ответ вида «За такое нужно руки отрывать», не подходит, ибо автор вопроса считает, что знает правильный ответ — i=7, j=12. Но так ли это? Далее »

Автор: , опубликовано в: C/C++, комментариев: 5
13
Апр
2009

hotkey-setup 0.1-23ubuntu10 в Jaunty Jackalope

В очередной раз разработчики выпустили пакет, не потрудившись его протестировать (или, скажем прямо, установить).

Сегодня пришло обновление для hotkey-setup, которое завершилось следующим образом:

[-]
View Code Text
Настраивается пакет 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
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

Далее »

Автор: , опубликовано в: Linux, комментариев: 4
6
Апр
2009

WP Super Cache и высокая нагрузка

Проблема: случайным образом перестаёт реагировать на внешние запросы.

Сайт работает на ), web-сервером стоит nginx, php-fpm с 40 дочерними процессами висит в режиме FastCGI. Довольно-таки стандартная конфигурация.

Иногда (периодичность не ясна) сайт падает. В том плане, что nginx выдаёт ошибку 502 Bad Gateway. При этом в логах отображается примерно такое:

[-]
View Code Text
2009/03/23 00:50:57 [error] 29289#0: *1821923 connect() to unix:/dev/shm/php-fcgi-XXX.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 195.10.218.132, server: example.org, request: "GET /wp-login.php HTTP/1.1", upstream: "fastcgi://unix:/dev/shm/php-fcgi-XXX.sock:", host: "example.org"

Лечится только перезапуском php-fpm. Далее »

Автор: , опубликовано в: WordPress, комментариев: 12
23
Мар
2009

PHP 5.2.6 в Debian Lenny: неожиданный сюрприз

Есть сервер с Lenny на борту. На сервер стоит Apache, , 5 — одним словом, стандартный web-сервер. Плюс XCache и ionCube Loader.

С некоторого времени стали замечать, что PHP начал падать с ошибками сегментации, причем падал исключительно CLI, модуль Apache работал исправно. Далее »

Автор: , опубликовано в: Linux, PHP, Администрирование, комментариев: 5
13
Мар
2009

KernelCheck, Intrepid Ibex и AMD64

KernelCheck — проект, разработанный для облегчения процесса сборки ядра .

B на архитектуре AMD64 проявился интересный баг:

[-]
View Code Text
make[1]: Entering directory '/usr/src/linux-2.6.28'
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

Далее »

Автор: , опубликовано в: Linux, комментариев: нет
15
Фев
2009

Catalyst 9.1: Failed to gather memory of size 0Kb for PCIe

Данная проблема остаётся пока без решения.

Сегодня решил попробовать новые драйвера от ( 9.1) — любимый . К сожалению, ничего хорошего: с моей видеокартой ( RadeonHD 3200) не работают. Далее »

Автор: , опубликовано в: Linux, комментариев: 1
3
Фев
2009

Segmentation fault при запуске fglrxinfo

В очередной раз привет команде разработчиков

Решил сегодня проверить пару идей, касающихся 3D-ускорения. Запустил glxinfo | grep render:

[-]
View Code Text
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
OpenGL renderer string: ATI Radeon HD 3200 Graphics

Опа! А direct rendering-то, оказывается, не работает! Запускаем fglrxinfo:

[-]
View Code Text
display: :0.0  screen: 0
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

Ошибка сегментации — всё чудесатее и чудесатее, как говорил классик. Далее »

Автор: , опубликовано в: Linux, комментариев: нет
1
Фев
2009

Удаление родительского комментария приводит к неправильному отображению дочерних комментариев

Одна из довольно неприятных ошибок в … Дело в том, что при удалении комментария не проверяет, есть ли у удаляемого комментария дочерние . При древовидном отображениии комментариев оставшиеся сиротами выводятся неправильно — под всеми остальными, нарушая хронологический порядок. Далее »

Автор: , опубликовано в: Патчи, комментариев: 10
1
Фев
2009

Плазма не падает

Плазма не падает

Эх, пилить еще и пилить… Возможно, Торвальдс прав, что пересел на GNOME.

Вдогонку:

Kopete и потребление памяти

Автор: , опубликовано в: Linux, комментариев: нет
26
Янв
2009