Давайте, что ли, откроем локальный филиал башорга и твиттера на тему разработки. Можно рассказывать занимательные и не очень истории из жизни, байки, мемы и просто «как я провел день».
Начну.
История первая.
У меня кусок админки управляет кучкой фоновых процессов. Не напрямую, а через прослойку-супервизора. Прослойку я написал на PHP, чтобы задействовать уже готовые функции админки. А чтобы управлять фоновыми процессами, потребовалось на php из подручных средств соорудить аналог pidfile_open (3)
. Вот такой:
function readPidfile($pidfile) {
/* XXX: Race conditions are everywhere. But who cares? */
if (!file_exists($pidfile)) {
/* No such file - daemon not running */
return false;
}
$f = fopen($pidfile, "r");
if (!$f) {
/* Failed to open file - daemon probably not running */
return false;
}
if (flock($f, LOCK_EX | LOCK_NB)) {
/* Able to acuire lock - daemon not running */
fclose($f);
return false;
}
/* Return PID */
$pid = fgets($f);
return $pid;
}
Вот смотрю и думаю: какое-то нецелевое использование «макропроцессора для HTML-страниц». Ну а почему бы и нет. Работает же.
История вторая.
Сегодня пришлось повоевать с кодировками в icecast. icecast к кодировкам оказался не очень приспособлен. Вот написал им, может замерджат мой патч: https://gitlab.xiph.org/xiph/icecast-server/-/issues/2423
Но что-то сомнительно. Ход очевидный, но почему-то сами они его не делали.