Давайте, что ли, откроем локальный филиал башорга и твиттера на тему разработки. Можно рассказывать занимательные и не очень истории из жизни, байки, мемы и просто «как я провел день».
Начну.
История первая.
У меня кусок админки управляет кучкой фоновых процессов. Не напрямую, а через прослойку-супервизора. Прослойку я написал на 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
Но что-то сомнительно. Ход очевидный, но почему-то сами они его не делали.






