1. PHP / Говнокод #16681

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    <?php
    
    if($ssh->login($user_p,$pass_p,$ip_p,$port_p) ){
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(3);
            $ssh->exec_cmd('php /var/www/cron.php;');
            sleep(1);
            $ssh->exec_cmd('php /var/www/reinfo.php;');
            $ssh->disconnect();
     
    }

    Это файл /var/www/reinfo.php.
    Задача в кроне на выполнение этого файла:
    0,2,4,6,8,10,13,15,17,19,21,23,25,27,29, 31,33,35-36,38,40,42,44,46,48,50,52,54,56,58 * * * * php /var/www/reinfo.php

    Запостил: Onotole, 11 Сентября 2014

    Комментарии (29) RSS

    • Кто-то явно не знал про циклы)
      А ваще забавно...
      Ответить
    • Интересно, почему в кроне неравные интервалы (целых 3 минуты между 10 и 13 и всего 1 минута между 35 и 36)?

      Да и вообще - зачем этому скрипту крон, он и сам неплохо справится...
      Ответить
    • Напоминает "вирусы на bat" и циклы создания аж 50 папок.
      Ответить
    • http://www.youtube.com/watch?v=hGlyFc79BUE
      Ответить
      • Никогда не понимал зачем нужны 10часовые версии.
        Для тех кто не осилил loop в плеере?
        Но самое печальное что современные кодеки до сих пор не научились сжимать такие вот последовательности. То есть для них нет разницы - десяток фильмов или повторяющийся с небольшим интервалом набор кадров.
        Ответить
        • Очевидно, для этого надо пересмотреть весь поток. Найти схожести, потом как-то закодировать.
          Представляю себе, ffmpeg смотрит сериал про Хауса, и те серии, которые ему понравились, кодирует лучше.
          Ответить
          • > для этого надо пересмотреть весь поток
            2pass encoding очень популярен.
            Ответить
            • Тут уже три прохода будет. А если в сюжет вникать..
              Ответить
              • >Тут уже три прохода будет.
                Нихера. Даже Иемпель-Зив умудряется жать в один проход.
                Ответить
        • > Для тех кто не осилил loop в плеере?
          А на ютубе он есть?

          > Но самое печальное что современные кодеки до сих пор не научились сжимать такие вот последовательности.
          Ну дык lookahead на две минуты для кодека будет непосильной ношей...
          Ответить
          • подозреваю, что в данном случае то, что хочет π, это не задача кодека, а контейнера
            Ответить
          • Lookahead будет непосильной задачей для кодера, а не для декодера. Т. е. искать одинаковые сцены в имеющемся фильме, чтобы его сжать, непосильный труд. А для создания десятичасовой версии циклы расставляются вручную, а декодеру останется только сделать seek на нужный кадр.
            Ответить
            • > для кодера, а не для декодера
              Спасибо, кэп. Но где я написал про декодер?!
              Ответить
            • > декодеру останется только сделать seek на нужный кадр
              Ага. Сделать seek в http потоке. Т.е. с неплохой вероятностью скачать все это заново, если старые кадры дропались для экономии памяти/диска...
              Ответить
              • Действительно, для потокового видео не годится (если оно не влезает в кэш). Зато какой пирфоманс, если кэш большой!
                Ответить
            • >Lookahead будет непосильной задачей для кодера, а не для декодера.
              Это задача для программиста энкодера. Чтобы не получить квадратную питушню, для любителей exhaustive search.
              А для этого существует алгоритмика. Нам ведь не нужно искать все дубликаты кадров, нам нужно только найти хотя бы одно совпадение, ведь повторяющаяся последовательность не меньше пары секунд (100-200 кадров в определённом порядке).
              Ответить
              • Да, для фильмов с обилием повторяющихся флешбеков самое то.
                Ответить
                • Или сериалов с одинаковым опенингом.
                  Вообще я изначально думал почему такую фичу не сделали в аудио (припевы, тындц-тындц в электронщине).
                  Там ведь объемы данных на порядок меньше, чем в видео.
                  Ответить
                  • Делали. Была ведь трекерная музыка.

                    P.S. Ну правда ее руками составляли из модулей, а не кодек детектировал...
                    Ответить
                    • > ее руками составляли из модулей
                      Почти всю музыку составляют руками из нот и семплов (и ртом озвучивают)
                      Ответить
                  • А не слишком ли дофига получится Фурье и всяческих аудио-хешей?
                    Кроме того, это если только чистый какой-нибудь транс кодировать, а припевы могут различаться исполнением. Даже в том же трансе чуть-чуть частота изменилась - и всё, алгоритм сосёт лесом.
                    Ответить
                    • >чуть-чуть частота изменилась - и всё, алгоритм сосёт лесом.
                      Подход стандартный: мы ссылаемся на предсказание похожего семпла, а кодируем дифф. Компенсация движения кстати так и работает.
                      Вообще центральная идея всех современных кодеков - prediction+residual.
                      И если техника огрубления(квантование) остатков после DCT и энтропийного сжатия арифметическим кодером практически неизменна, то новые способы приближённого предсказания собственно и улучшают сжатие.
                      Ответить
        • > повторяющийся с небольшим интервалом набор кадров
          Вроде бы в мпег4 можно описать такую структуру, там же формат довольно навороченный, со всякими объектами, иерархиями и прочей херотой. Но придется ее генерить самому программно, а не обычной процедурой сжатия.
          Ответить
          • Самое обидное будет, что если и создать вручную такие циклы, то Ютуб их всё равно развернёт.
            Ответить
          • >> повторяющийся с небольшим интервалом набор кадров
            >Вроде бы в мпег4 можно описать такую структуру
            Вроде бы еще в формате GIF можно было описать такое.
            Ответить

    Добавить комментарий