"PHP" / Говнокод #3903 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
for ($i = 1, $i++; $i < 10; )
{
   do_some();
}

Запостил: mad_max mad_max, (Updated )

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

    • Не против если я вас переспорю?
      eval(str_repeat("do_some();", 10));
      Ответить
      • (2<10) - для наглядности, чтобы в голове промелькнула мысля:
        "а где 2 ? а почему именно 2 ?"

        с условием (true) - такой наглядности не получилось бы, и просто отобразилась бы суть происходящего...
        к тому же, у некоторых(к примеру у реальных пОцанов), это вызвало бы временный ступор - а это нехорошее явление...
        Ответить
            • Может бы и к счастью что в ПХП нет goto. Зато есть eval, который спосбен запутать код по-хлеще любого goto. Ну раз пошла такая пьянка про бесконечные циклы, то от себя добавлю:
              a: jmp a

              1 такт на каждую иттерацию (без учёта UV-конвееров - по этому поводу к красноглазым по азму обращайтесь, а к тем, кто ПХП выбрал).
              Ответить
  • Простите меня за мою непросвещённость, но сколько раз выполнится этот код? Если бы это был Си, я бы сказал, что бесконечно много, так как счётчик нигде не увеличивается, кроме самого начала.
    Ответить
    • в пхп есть настройки, которые обрывают выполнение скрипта, через определённое время (вроде как 1 минута на выполнение по умолчанию)

      т.е. в пхп скрипт автоматически оборвётся, через определённое время, в то время как в Си - этот код будет выполнятся, пока программа не будет завершена принудительно;
      Ответить
    • ErmineMD: Проверял кодом:
      for ($i = 1, $i++; $i < 10; )
      {
         echo $i;
      }

      Выполняется до Runtime Error в FF с последующим падением браузера (если кто хочет протестить на себе — будьте бдительны, так как при релоаде браузер загружает вкладку с Этим говнокодом и поэтому можете получить приступ негодования).
      Ответить
      • А у меня этот код в Хроме (в fx не стал запускать, так как много вкладок, которые боюсь потерять таким образом), выдал после полуминутного раздумья:

        Fatal error: Maximum execution time of 30 seconds exceeded in Z:\home\.......\www\q\index.php on line 6
        Ответить
        • камень в сторону фф, плюс в сторону хрома;
          - как и было сказано: скрипт прерван сервером (у вас в настройках 30 сек на выполнение)
          Ответить
        • Я всю з.п. на топовый проц потратил и поэтому он успел засрать 6-ГБ буфер приёмки браузера быстрее чем за 30 сек. А если про вкладки, то у меня было открыто 4 штуки с Ютуба, которые дружно заверещали при старте браузера и поэтому пришлось забыть про злосчастный скрипт. Кстати, а что на этот скрипт скажут другие браузеры...
          Ответить
          • А у меня в Файрфоксе вывелось много двоек, но в конце концов получил то же сообщение. В Хроме перед получением сообщения страница была полностью чёрной.

            В IE8 сначала появляются двойки, потом они пропадают, хотя полоса прокрутки не исчезает, и сообщение с ошибкой не появляется. Зато курсор, будучи над страницей, ведёт себя странно. И процессор при этом грузится.
            Ответить
          • Opera 9. 5 МБ чистейших двоек... 13,5 МБ... 16 МБ... Прекратило скачивание. Ага. Внизу:
            "Maximum execution time of 60 seconds exceeded in..."
            Opera 10... 9 МБ в первую секунду — действительно, "самый быстрый браузер". 200 МБ накрутил и ПХП лимит в 60 выдержал.
            Safari. Так, на стартовой iPod 4. В адресную стрку тот скрипт и... Прошло уже 7 секунд и до сих пор вижу iPod. Вах! "Искключение unknown software exception (0x000000005) в ..." (обновлял ж 3 дня назад).
            Гхм, Chrome на движке Safari дожил до PHP-шных 60-сек. Кстати, он чуть позже даже произнёс "Опаньки..." (цитата).
            Сладенькое... IE8. Вопрос как улучшить его. "Ask me later..." Пошли двойки... Винда тупит... Пока писал последнее предложение к этому посту он стал показывать белое полотно с песочными часами... (терпел 2 минуты, а потом снял задачу).
            Ответить
            • Живо писать багрепорты на все эти браузеры! 🙂

              Кстати говоря, смотрите, как хорошо иметь относительно медленный компьютер: браузеры работают без ошибок.
              Ответить
            • читаю и радуюсь. "хром на движке сафари". это ж надо!
              Ответить
              • Эээ. Я понимаю у нас в Москве смог некислый от чего все тупят поголовно, но я точно помню что Сафари там лежит в его нутре. Да, судя по известной всем энциклопедии Сергей Брин и сотоварищи рукоблудничали на Firefox, но история и практика разработки веб-приложений показала что там эппловский WebKit никак иначе. Если я не прав, то могу подать аппиляцию к сообществу говнокод.ру! Точка. Nuff said!
                Ответить
              • da4ever: Ну ответь хоть, ато я сомневаюсь. Я сёня JSON с JQuery в разговоре с коллегой перепутал. Мож опять чего не так воспринимаю.
                Ответить
                • вепкит, вепкит, успокойся. Только у них по сто билдов за день, хз как это коррелирует с сафари теперь
                  Ответить
                  • Ага, год назад тест на Сафари был идентичен тесту в Хром, а терь у них даже визуальные отличия появились.
                    Ответить
                    • Судя по всему это движок охрененно сложный - и просто связать его с юзерским окружением уже непростая задача (кстати у хрома более новая версия). Вон на ютубе есть ролик порта Quake 2 под хром. Со звуком. HTML5, javascript и я не разбираюсь что еще. Учитывая как криво раньше выглядели всякие актив-иксы, там кипит титаническая работа.
                      Ответить
                      • Титаническая работа у всего человечества кипит. HTML5 команда под руководством основателя веба Тима-Бёрнса Ли клепает. 3D в веб несёт сообщество разработчиков OpenML. Вот звуком я хз кто занимается. А что сделал Google? Ээээ. У меня штатный браузер — FF, у всех друзей — Opera и там вся эта 3D-канитель пашет. Гугл титанически идею с Wave просрал. Это да!
                        Ответить
                        • Одно дело спецификация - другое дело работающая, стабильно и быстро еще до массового применения версия. Звук - это тоже HTML5, который вполне мог существовать еще только на бумаге. Будь у тебя сто чужих наработок, но увязать язык разметки, скрипты, отсутсвие привычного ускорения, игровую логику, анимированные модельки, свет и черт знает что из далеких сишных времен - и чтобы это работало быстрее чем у родственника-сафари, до такого мозилле еще догонять и догонять.
                          Ответить
                          • "Звук - это тоже HTML5, который вполне мог существовать еще только на бумаге."
                            беспощадно реквистирую атрибут bgsound, который ещё и в HTML4 юзали.

                            А если по делу, то мы с вами по-моему ща бессмысленно холиварить начнём. Всё-равно самые высокие FPS я в Опере видел, а не Хроме.
                            Ответить
                            • О нет, и в мыслях холиварить не было. ФПС насрать, бг саунд насрать, поскольгу показывая какую-нибудь фигню типа одного масштабируемого спрайта можно для любого браузера оптимизировать так, что на нем будет быстрее всего, на второе - потому что с технологичностью это не имеет ничего общего. В игре же нужно кэшировать дофига звуковых файлов и при первой необходимости выводить параллельно большое их число.
                              Все началось с того, что назревал холивар по поводу обработки исключительного случая с похапэ скриптом, а я лишь хотел сказать что при разработке браузеров занимаются куда более сложными и важными вещами (как будет выглядеть веб завтра)
                              Ответить
                        • не safari у него внутри, а webkit.

                          а еще webkit внутри у Chrome, Epiphany, Midori, Shiira, Uzbl, Maxthon 3, OmniWeb, iCab, не считая того, что на нем работают все мобильные брузеры кроме опреры: айфон, андройд, новый симбиан и палм пре.

                          лицензия у движка LGPL и BSD.

                          разрабатывают его Apple, KDE, Nokia, Google, RIM, Palm и прочие милые компании.

                          "у него-ж, блядь, сафари от эпл внутри!" - не то же самое.
                          Ответить
                          • Господи, Дафевер, ты к чему это вообще? Я когда сдаю сайт сдаю кидаю заказчику ссылку на статистику по Рунету с ЛивИнтернет.ру. Радостно ему сообщаю что в ФФ, Опера, Сафари/Хром, IE8, IE7 и IE6 увидет он одно и тоже (и это 90 % посетителей). Остальные 9 % ходят с КПК. Остальной процент - это дрочеры-верстальщики с IE6 и IE5 шаряться по-приколу. И где-то там Епифани, Мидори, Шиира, Юзбл (бл*), Макстон и ОмниВеб. Ну не интересно.
                            Ответить
                            • на самом деле,
                              WebKit - Chrome, Safari..
                              Gecko - Firefox, Konqueror...
                              Trident - Internet Explorer и все его надстройки
                              Ответить
                            • к тому, что твое мнение по поводу популярности маркетинговых оболчек технологий не есть самая важная, интересная и несовместимая ни с чем истина в мире
                              Ответить
                            • а к тому, димочка, что ты не внимателен к деталям. вот и в комменте выше у тебя шестой осел и в 90% и в 1% дрочеров-верстальщиков входит.

                              1. сафари и вебкит - это не одно и то же.
                              2. вебкит - не эпловский.
                              3. брузеры на одном и том же движке используют разные его сборки.

                              пока просто запомни - потом может понадобиться.
                              Ответить
                                • по приведенной выше ссылке, в рамке справа написано "Разработчик Apple Inc., Google Inc., команда разработчиков KDE и другие.", а если почитать английскую версию этой же статьи - там подробнее. webkit - open source, а не эпл.
                                  Ответить
                                  • http://opensource.apple.com/

                                    WebKit — свободный движок для отображения веб-страниц, разработанный компанией Apple Inc. на основе кода библиотек ...

                                    Теперь же, видимо, разрабатывается и этими разработчиками (как правильно было замечено, это opensource).
                                    Ответить
                                    • вы еще раз вику почитайте. там написао, что именно фрокнули яблоки для создания вебкита. и ведь тоже LGPL же.

                                      что вы хотели сказать написав "WebKit — Apple."? он принадлежит эпл? нет. он разработан эпл? да, но это было давно и неправда. теперь его разрабатывают все кому не лень.

                                      ядро линукс - не принадлежит торвальдсу.

                                      как-то так.
                                      Ответить
                                        • стоит ли говорить, что он кому-то принадлежит?

                                          вопрос в том, кто дает деньги, и кто вносит наибольший вклад в развитие.

                                          жду вашего комментария в соседнем ГК.
                                          Ответить
                                      • Не в таком уж и далеком году 😉
                                        Я не хочу спорить, WebKit был разработан Apple и я об этом говорил, торговая марка WebKit принадлежит Apple, там же в вики написано, только там написано, что заявка была направлена, но это считай факт.
                                        Взять Chrome, в его Useragent написано, Chrome blabla Safari blabla.
                                        Но, хочу заметить, действительно, у каждого из них свои сборки ВебКита и не факт, что Apple использует код, который для себя пишет Google. Этого я просто не знаю. А вот наоборот, совершенно очевидно.
                                        Ответить
                                        • 1. ТМ != Движок
                                          2. такой юзерагент придуман для тех, кто про хром не знал
                                          3. и как вы представляете "код для себя" в опенсорсе?
                                          Ответить
                                          • Вам уже нечем отвечать.
                                            "Код для себя" — они сами пишут свой код и используют его для себя, Google берет код Apple и использует его для себя в Chrome со своими доработками. Обмениваются ли они чем-либо — я лично, не знаю.
                                            Ответить
                                            • скорее негде.
                                              и
                                              не совсем понятно, что именно мы теперь обсуждаем.
                                              если вы поняли, что создать - не значит владеть то это уже неплохо. если нет - тут уж ничего не поделаешь.
                                              Ответить
                                              • Ну снова начали 🙁
                                                А для кого лицензия то? Для самого Apple или для пользователей? Им не нужно придерживаться лицензии, потому что они кто?
                                                Ответить
                                                • что такое лицензии GPL, LGPL, BSD? для кого они нужны, что в них написано?
                                                  нет, ну прямо как первый раз в интернетах, честное слово!
                                                  Ответить
                                                  • Chromium — opensource, взяли и вхерачили туда функционал, который отправляет данные в Google. Там же на Хабре спор был о том, что Chromium вообще не относится к Гугл, мол это opensource.
                                                    Ответить
                                                    • и что?
                                                      вхерачили и выложили все это кодом. не нравится - удаляй, но не забудь предоставить получившийся код в паблик.

                                                      хочешь - нахерачь туда того-же, но для яндекса.

                                                      хочешь - пизди пароли, воруй-убивай, грабь корованы. вот только исходный код должен быть в паблике, ибо опенсорс.

                                                      прочитай уже упомянутые выше лицензии и закроем тред.
                                                      Ответить
                                                      • > но не забудь предоставить получившийся код в паблик.

                                                        Закоммитишь изменения в Chromium?
                                                        Ответить
                                                          • > хочешь - нахерачь туда того-же, но для яндекса.

                                                            Вот эти, для того, чтобы ты убедился, что это не получится сделать. Для себя ты можешь это сделать, для всех остальных нет.

                                                            Я выше об этом говорил как раз, но о WebKit. Ты можешь взять код от Apple, но твои изменения они не будут использовать, потому что ты не сможешь их им отправить 🙂

                                                            От того и получилось, что разработчиков там несколько, каждый прет свою ветку, но свежий функционал берут от Apple.
                                                            Это как взять любой source код и сделать на него свой patch.

                                                            Что тут спорить... Я больше не хочу.
                                                            Ответить
                                                            • да, но если патч хорош его могут включить в основную ветку. и когда пишут, что гугл и нокия разрабатывают вебкит - имеется в виду основная ветка.

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

                                                              все что ты можешь или не можешь сделать написано в лицензии.
                                                              Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8