Наука (говорит) о любви

Отказывается у известного телеведущего Александра Гордона есть вполне симпатичный сайт, а на этом сайте есть очень познавательная статья «Этология любви» — стенограмма одной из передач Гордона [ >>> ] Рекомендую к прочтению.

2 комментария

Кобра-киллер

Стихи гениального поэта Ильясова Николая Валериевича (Кобры-киллера) [ >>> ] . Особенно вот это хорошо: [ >>> ] Я просто плакал. Истекал слезами. Весь.

Вот оно:

ВОТ ПОГИБ ОН НА СЛУЖБЕ
И ОСТАЛАСЬ ЖЕНА ВДОВОЙ.
ЭТО БЫЛ МОЛОДОЙ ПАРНИШКА,
ОН ВЧЕРА НЕ ВЕРНУЛСЯ ДОМОЙ.

ХОРОНИЛИ ЕГО ВСЕМ ОТДЕЛОМ,
ЭТО БЫЛИ КРИК, ВОЙ И ПЛАЧ.
И ПРОЩАЛЬНЫМ САЛЮТОМ В ДОРОГУ,
ПРОВОДИЛИ НА ВЕКИ ЕГО.

НЕУЖЕЛИ НА ЭТОМ СВЕТЕ,
БУДУТ ВОЙНЫ, КРОВЬ И СМЕРТЬ.
НЕУЖЕЛИ НА ЭТОМ СВЕТЕ,
НЕ НАСТУПИТ ЕДИНЫЙ МИР.

2 комментария

Патент на изобретение велосипеда

Новоизобретённые велосипеды встречаю, если не каждый день, то раз в неделю — точно. Но этот случай меня поразил. Давно я ничего не проверял на прочность.

Доделывал старому по просьбе старого клиента скрипт. Год эта доделка ему была не нужна, а теперь понадобилась. Дело всё происходит на заграничном хостинге. Германском, кажется.

Всё написал, закачиваю скрипт. Запрашиваю браузером — работает, но не всё. Скрипт простой. Очень. Ошибок нет, но чувство, что данные не читаются. У меня читаются, а там — нет. Обычная история.

Обвешиваю всё var_dump’ами и смотрю что у меня в переменных. Так и есть — на переменной $fp (результат функции fopen, язык — PHP), мне сообщают, что переменной такой нет. С сожалением сообщаю клиенту, что у него safe_mode, так что прочитать файл я просто не смогу.

«Сейчас свяжусь со службой поддержки» — на плохом английском заявляет клиент. Ок. Жду. От того, что он мне сообщил мне стало как-то невесело. Safe_mode, да? Парни из поддержки, видимо, не даже не знали что это такое. Зато я теперь знаю какими навороченными могут быть изобретённые велосипеды.

Дальнейшее добыто из рук самой технической поддержки и моих попыток заставить это всё работать, много-много раз гоняя файлы по FTP. Оказывается, у них там стоит супер навороченная система защиты. Она синтегрирована с FTP. Как только я лью туда файл (Perl, PHP, Python), она его обрабатывает и заменяет (sic!) «небезопасные» функции на пустышки!

Оооо!!! В частности пострадали мои fopen, flock, fgets и fclose. Запрещены вызовы целой кучи функций, в том числе call_user_func и функций-переменных.

Клиент в расстройстве и спрашивает как ему быть. Техподдержка и слышать не хочет о том, чтобы это чудо выключить, кроме того, функция описана в договоре (в самых выгодных цветах, естественно). Я, от безысходности, решил поиграть с разными способами вызова функций и закачки файла.

Испробовал call_user_func, $func(), include, require файлов с другими расширениями, закачка в Z/gzip/bzip2 с распаковкой — ничего не получается. Кругом стена. Всё предусмотрели. Тут я вспоминаю, что в PHP существуют особые функции, которые умеют вызывать разные другие функции в качестве callback. После проверки оказалось, что система такие функции считает джентльменами — в смысле она им доверяет.

Вот тут мне карта и попёрла! Для начала я написал небольшую функцию, которая, пользуясь новообретённой дыркой, запускает нужные мне функции. Привожу её здесь с небольшим куском кода — вдруг пригодится, если упомянутый велосипед, не дай бог, найдёт широкое применение.


function Xec ()
{
$comm = func_get_arg(0);
$args = array_slice(func_get_args(), 1);

if (func_num_args() == 3)
return array_reduce($args, $comm); else
if (func_num_args() == 2)
{
array_map($comm, $args);
return $args[0];
}

return NULL;
}

$fp = Xec ('fopen', 'c:\\autoexec.bat', 'r');
echo Xec ('fgets', $fp, 1024);
Xec ('fclose', $fp);

А потом просто подставил туда нужные мне значения.

Вопрос к присутствующим: кто-нибудь знает этого монстра? От службы поддержки я не добился ни названия, ни ссылки на какую-нибудь статью. Мне уже начинает казаться, что этого монстрика они в муках родили сами, чем ужасно гордятся. Но моё указание на наличие safe_mode в PHP породило в них комплекс неполноценности и теперь они боятся признаться в том, являются авторами этого творения.

26 комментариев