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

    +2

    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
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    class/View.php
    
    <?php
    
    class View {
    
    ...
    
      public function compile() {
        $view_src = file_get_contents(VIEW_SRC_PATH . $this->full_name . EXT);
        // echo
        $view_src = preg_replace("/\{\{(\w+)\}\}/", "<?php echo \$$1; ?>", $view_src);
        $view_src = preg_replace("/\{\{(\w+)\|(\w+)\}\}/", "<?php echo \$$1['$2']; ?>", $view_src);
        $view_src = preg_replace("/\{\{(\w+)\.(\w+)\}\}/", "<?php echo \$$1->$2; ?>", $view_src);
        // foreach
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)-->/", "<?php foreach(\$$2 as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)\|(\w+)-->/", "<?php foreach(\$$2['$3'] as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+in\s+(\w+)\.(\w+)-->/", "<?php foreach(\$$2->$3 as \$$1): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+(\w+)\s+in\s+(\w+)\.(\w+)-->/", "<?php foreach(\$$3->$4 as \$$1 => \$$2): ?>", $view_src);
        $view_src = preg_replace("/<!--each\s+(\w+)\s+(\w+)\s+in\s+(\w+)-->/", "<?php foreach(\$$3 as \$$1 => \$$2): ?>", $view_src);
        $view_src = preg_replace("/<!--each-->/", "<?php endforeach; ?>", $view_src);
        // switch
        $view_src = preg_replace("/<!--select\s+(\w+)\.(\w+)-->\s*<!--when\s+(.+)-->/", "<?php switch(\$$1->$2): case $3: ?>", $view_src);
        $view_src = preg_replace("/<!--when\s+(.+)-->/", "<?php break; ?><?php case $1: ?>", $view_src);
        $view_src = preg_replace("/<!--otherwise-->/", "<?php break; ?><?php default: ?>", $view_src);
        $view_src = preg_replace("/<!--select-->/", "<?php endswitch; ?>", $view_src);
        if (!file_exists(VIEW_PATH . $this->path)) mkdir(VIEW_PATH . $this->path, 0777, true);
        $fp = fopen(VIEW_PATH . $this->full_name . EXT, 'w');
        fwrite($fp, $view_src);
        fclose($fp);
      }
    
    ...
    
    ?>
    
    view-src/ShadeType.php
    
    {{type.name}}
    <!--each k d in type.diameters-->
    <h1>{{k}}</h1>
      <!--each s in d-->
      <div>
        {{s.bottom}} × {{s.top}} × {{s.height}}
        <div>
          <!--select s.mode-->
          <!--when 'u'-->(на ушках)
          <!--when 'p'-->(только подвес)
          <!--otherwise--> 
          <!--select-->
        </div>
      </div>
      <!--each-->
    <!--each-->
    
    view/ShadeType.php
    
    <?php echo $type->name; ?>
    <?php foreach($type->diameters as $k => $d): ?>
    <h1><?php echo $k; ?></h1>
      <?php foreach($d as $s): ?>
      <div>
        <?php echo $s->bottom; ?> × <?php echo $s->top; ?> × <?php echo $s->height; ?>
        <div>
          <?php switch($s->mode): case 'u': ?>(на ушках)
          <?php break; ?><?php case 'p': ?>(только подвес)
          <?php break; ?><?php default: ?> 
          <?php endswitch; ?>
        </div>
      </div>
      <?php endforeach; ?>
    <?php endforeach; ?>

    На хостинге PHP 5.2, а старые версии фреймворков не хочется. Решил запилить свой.

    Запостил: kgm-rj, 13 Ноября 2015

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

    • Каждый пепепешник должен сделать
      1. фреймворк
      2. CMS
      3. социальную сеть.
      Ответить
      • 4. язык разметки с парсингом регулярками
        Ответить
        • Это уже опционально.
          Ответить
        • >с парсингом регулярками
          Ну в основе регулярок, как и нормальных парсеров, лежит конечный автомат, так что это еще не преступление. Тот же pyparsing на них работает. Другое дело что там парсинг будет примитивный.
          Ответить
          • на недетерменированном конечном автомате легко налететь на экспоненциальную сложность ;)
            Ответить
      • Не, универсальную CMS я делать не хочу. Веб - не мое. Для производства, на котором работаю, сделаю что-то подобное. А соцсетей и так дофига. Переболел этим еще лет 7 назад. Осями тоже переболел. ММОРПГ "с уникальной системой классов и крафта" тоже перестали интересовать, но простенькую многопользовательскую игрушку руки чешутся написать.

        А вообще, хочу комиксы рисовать и запилить для них сайтик с бложиком на N2O (эрланг-фреймворк). Уж очень я эрланг люблю. Паттерн-матчинг с хвостовой рекурсией за выходные довели меня до того, что в понедельник мне пришлось заново привыкать к си-подобному синтаксису в функциях и циклах.
        Ответить
      • Так я еще и CSS-фреймворк пишу ^^. В бутстрапе не было такой штуки, какая имеется в foundation (block-grid). У самого foundation всего три ширины экрана (small, medium, large), тогда как у бутстрапа четыре, поэтому и его не использую. А formstone я просто глазами пробежал. Тоже не понравился.
        Ответить
        • block-grid
          Я очень похоже на
          http://bootstrap-3.ru/components.php#thumbnails
          Ответить
          • Не, в бустрапе нужно явно указывать ширину каждого элемента, как будто это колонка:
            <div class="row">
            <div class="col-xs-6 col-md-3"></div>
            <div class="col-xs-6 col-md-3"></div>
            <div class="col-xs-6 col-md-3"></div>
            <div class="col-xs-6 col-md-3"></div>
            </div>
            В foundation достаточно просто указать количество элементов в строке:
            <ul class="small-block-grid-2 medium-block-grid-4">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            </ul>
            А thumbnail это лишь способ красиво оформить какой-то блок с картинкой. Типа, карточки получается.
            Ответить
            • Верстуны 10 лет бегали и рассказывали всем о семантичности. А потом пришел бутстрап и вставил в семантичность жырный страпон. И все утерлись.

              Вот если я сверстаю табличку из 6 ячеек и колспанов, то меня заклюют. А если я напишу "col-xs-6 col-md-3" это норма
              Ответить
    • на ушках;)
      Ответить
    • шаблонизатор для шаблонизатора? да ещё самописный? уже смешно.
      <!--select s.mode--><!-- comment -->
            <!--when 'u'-->(на ушках)

      и прег уже не работает.
      строить вьюху на комментах - паранойя?
      Ответить
      • Я редко комментирую html. Я вообще редко комментирую. А на комментах для того чтобы редактор подсвечивал.
        Ответить
        • >> Я вообще редко комментирую

          Ну тогда тебе тут самое место, друг
          Ответить
          • Может, он редко и по делу. Скажем, комментирует сложный интерфейс (чтоб пользователи кода не растерялись) да особенности мудрёных алгоритмов.
            Ответить
            • Может. А может и нет
              Ответить
            • Опыта командной разработки у меня нет, поэтому комментирую для себя. Но да, по делу.
              Привычки писать

              int x; // целое число

              нет )
              Ответить
              • int x; // определяем на стеке переменную "x"типа "знаковое целое"
                Ответить
            • >сложный интерфейс
              >PHP
              Ответить
              • А то!
                1. Неявная динамическая типизация: function f($a, $b) вместо int f(const std::string&a, const std::list<std::map<std::string, int>>& b)
                2. Низкий порог вхождения: среднестатистический ПХП-программист с меньшей вероятностью продумает интерфейс, чтобы он был простым и достаточным.
                Ответить
                • требованию к интерфейсу в пхп меньше. Не нужно думать, что тебе нужно возвращать строку или цифру.
                  null или false.
                  Даже инстанс объекта или массив не особо критично.
                  Ответить
                  • Не без этого. Но я был бы рад, если бы пхп был больше похож на си. Я не любитель динамической типизации - мой первый язык паскаль (с кубейсиком общался недолго и я его не считаю)
                    Ответить
                    • Писал бы на чем-то другом, но хостинг такой.
                      Ответить
                      • А себе я нормальный хостинг возьму
                        Ответить
                        • Зачем ты разговариваешь сам с собой, няша?
                          Ответить
                          • Главное что бы трогать сам себя не начал
                            Ответить
                            • Чем бы дитя не тешилось, лишь бы PHP не изучало.
                              Ответить
                              • Если бы каждое дитя, которое тешится на пхп его изучал...
                                Ответить
                          • Пыхоаутотренинг: "Я не пыхомакака, я всегда смогу начать писать нормально на нормальном языке, просто хостинг/проект/начальник/атмосферный_фронт плохой, времени/денег/документации/настроения нет, но вот уже скоро..."
                            Ответить
                      • за 15 баксов можно взять виртуалку на амазоне и писать на рубях или питоне. Но это слишком дорого, если весь проект стоит как кружка Магги. Ведь это же пхп
                        Ответить
                        • За один бакс можно взять виртуалку и писать на питоне. Только настраивать все заебешься.
                          Ответить
                          • Смог написать — сумеешь и настроить.
                            Ответить
                            • ХУЙ! ХУЙ, СУКА! Написать сервак отдающий json на каком-нибудь flask с помощью примеров и матери - хуйня, если есть базовые знания питона. А вот http сервер я так до сих пор и не настроил, все разруливает дев сервер питона.
                              Ответить
                              • апаче правда сложно настроить. Во-первых книжка про него страниц на триста: я так много страниц за всю жизнь не прочитал. Во-вторых там же все по английски! А разве программисты знают английский? Мы же не филологи.
                                Ответить
                          • да, апаче поставить и мускуль это пара человеколет, нужно доктора наук вызывать, не всякий справится
                            Ответить
                            • Я про питон.
                              Ответить
                              • А питон вообще никто не умеет ставить. Я слышал что в Беркли учат людей, способных помощью "apt-get" установить пайтон, потом с помощью "pip" поставить нужные пакеты, и наконец настроить WSGI на апаче по двухстраничному мануалу, но в России наверное таких специалистов нет.
                                Ответить
                                • Так в мануале же написано о том, как конфиги писать, а ему нужен гуй, в котором Питон подключается кликами мышки.
                                  Ответить
                                  • Вот именно! ПХП программисты не умеют писать конфиги! Они же не админы!
                                    Ответить
                                    • Как не умеют? У них же половина логики в ини-файле описана.
                                      Ответить
                                      • Вы про зендовые роутинги и про модреврайт?)
                                        Ответить
                                        • И про пресловутый пхп.ини
                                          Ответить
                                          • К слову,
                                            ~ $ cat /etc/php/cli-php5.6/php.ini | grep -E '^;*[a-z_0-9]+(\.[a-z_0-9]+)*\s*=' | wc -l
                                            340

                                            340 опций! У шаблонизатора! Это почти в 7 раз больше, чем известных видов геев.
                                            Ответить
                                            • да ладно, 339 из них ПХПшники никогда не трогают
                                              Ответить
                                            • Наверное даже в 1С ключевых слов и стандартных функций меньше!
                                              Ответить
                                • Слушай, но реально в 100 раз проще написать небольшую прогу чем настроить под нее сервер.
                                  Ответить
                                  • Слушай, но реально в 100 раз проще установить небольшую прогу чем написать её.
                                    Ответить
                                    • Если установить = скопировать файлы на сервер по ftp то да.
                                      Ответить
                                      • Я наверное сноб и зануда, но мне кажется что если программист выбрал для себя сферу деятельности, то не плохо бы ему научиться настраивать окружение.
                                        Ответить
                                        • Я не выбирал себе написание для веба на питоне сферой деятельности, я игрался с питоном а потом задумался - а чего бы путного можно с ним сделать? Вот так и получается,что написать прогу проще чем деплоить.
                                          Ответить
                                          • >> я игрался с питоном а потом задумался

                                            Наверное это свойственно всем мужчинам
                                            Ответить
                                            • Душил одноглазого питона? Кег, а тебе откуда знать?
                                              Ответить
                                        • Любишь вкусно поесть - учись на повара? Пусть администратор и настраивает.
                                          Ответить
                                          • Хуёвое сравнение.
                                            Или у вас в экмамирке нормально, когда погромист пишет хуйню, которую сам не в состоянии запустить?
                                            Ответить
                                            • Нормальное сравнение. И без мата, пожалуйста, мы на приличном сайте находимся.

                                              В экмамирке (по крайней мере, в мире JScript/JavaScript) всё сделано для людей.
                                              В браузерах всё работает сразу. Node.js и пакеты устанавливаются без проблем (Да и Node.js даже компилируется без проблем, стоит лишь распаковать исходники да кликнуть мышью по одному файлику); скрипты легко запускаются. Под WSH тоже всё сразу работает. Вроде бы Node даже легко и просто со Студией работает, но я не пробовал.

                                              Но задача программиста - написать код, который решает поставленную задачу. Разрабатывать процессоры, собирать компьютеры, мыть полы, поддерживать электростанции и готовить еду должны другие специалисты.

                                              Тыжпрограммист, иди принтер мне запаяй!
                                              Ответить
                                              • Просто кликнуть мышкой и написать кусок кода, который где-то как-то вызвался и худо-бедно выполнился - это задача джуниора, в простонародье, говнокодера. А если мы имеем ввиду конкретно Инженера-Программиста, то тут уже как минимум необходимо знать как продукт его деятельности можно развернуть в условиях сурового продакшона, а лучше и уметь. А на вопрос ты так и не ответил:
                                                >нормально, когда погромист пишет хуйню, которую сам не в состоянии запустить?
                                                И не надо пытаться тянуть за яйца кривые аналогии, у тебя это стабильно хуёво получается.
                                                Ты хуй.
                                                Ответить
                                                • За дополнительную плату - пожалуйста. А за ставку программиста никаких развертываний не будет
                                                  Ответить
                                                  • Я написал сайт, но даже на стейджинге его не разверну. Я могу, но вы мне не платите за установку апаче.

                                                    А еще моему приложению нужна база данных, так что наймите пожалуйста DBA.

                                                    И кстати наймите мне админа, чтобы он поставил операционку мне на комп, и IDE тоже пускай поставит
                                                    Ответить
                                                    • > И кстати наймите мне админа, чтобы он поставил операционку мне на комп, и IDE тоже пускай поставит
                                                      Где лопата? Уж подготовить рабочее место сотрудника должен администратор, если это не контора "Мы пишем всё за 3 пачки роллтона".
                                                      Ответить
                                                      • Ну то есть IDE Вам тоже админ ставит и настраивает?
                                                        Ответить
                                                  • > А за ставку программиста никаких развертываний не будет
                                                    Пока будешь такой неженкой - "ставка программиста" выше джуниорской не поднимется.
                                                    Ответить
                                                    • Вообще это звучит как отмазка)

                                                      "Я не буду делать foo, потому что мне за это не платят" следует читать как "я не умею делать foo и не собираюсь учиться"
                                                      Ответить
                                                      • >"я не умею делать foo и не собираюсь учиться"
                                                        потому что мне за это не платят
                                                        Ответить
                                                      • > "Я не буду делать foo, потому что мне за это не платят" следует читать как "я не умею делать foo и не собираюсь учиться"
                                                        Плохо слышно? Нет надобности искажать смысл только потому, что хочется.
                                                        "Я не буду делать foo, потому что мне за это не платят" следует читать как "Я не буду делать foo, потому что мне за это не платят"
                                                        При этом совершенно не важно, умеет ли человек делать foo. Он может уметь, а может и не уметь, но foo - не его работа.
                                                        Ответить
                                                        • >"Я не буду делать foo, потому что мне за это не платят" следует читать как "Я не буду делать foo, потому что мне за это не платят"
                                                          Вопрос в том как ты научишься делать foo так хорошо что бы тебе за это платили?
                                                          Ведь что бы научится, что делать надо это сделать несколько раз в различных условиях.
                                                          Ответить
                                                          • Вопрос в том окупится ли эти инвестиции и хочет ли человек вообще этим заниматься. Точка.
                                                            Ответить
                                                            • у вас три точки подряд
                                                              Троеточие - подумал Штирлиц
                                                              Ответить
                                                    • Неженкой? По моему сказать "нет" требует решимости, которой у неженки просто нет.

                                                      Хотя все это просто словесная эквилибристика
                                                      Ответить
                                                      • > Неженкой?
                                                        Ну ок, принцессой на горошине, которая по каждой мелочи, с которой можно справиться минут за 5, будет дрочить админа, верстальщика, тестировщика и т.п. и тратить их время.
                                                        Ответить
                                                        • Все зависит от мелочи. Что то я сделаю и даже не замечу. Но если задача выходит из сферы моих интересов и для того, что бы ее решить мне нужно будет читать и изучать то, что мне не интересно - скорее всего я тактично откажусь

                                                          Тем более если это работа админа, верстальщика, тестировщика и т.п., то он перекидывает ее на меня и тратит мое время.
                                                          Ответить
                                                        • Настройка боевого веб сервера с учетом безопасности и производительности - нихуя не мелочи.
                                                          Ответить
                                                • Я ответил на вопрос. Советую научиться читать.
                                                  Лечиться надо, Stallman, может тогда мысли о х..ях отпустят.
                                                  Ответить
                                                  • Слив защитан.
                                                    Ответить
                                                    • Ещё один не умеет читать?

                                                      >> Или у вас в экмамирке нормально, когда программист пишет фигню, которую сам не в состоянии запустить?
                                                      > В экмамирке (по крайней мере, в мире JScript/JavaScript) всё сделано для людей.
                                                      В браузерах всё работает сразу. Node.js и пакеты устанавливаются без проблем (Да и Node.js даже компилируется без проблем, стоит лишь распаковать исходники да кликнуть мышью по одному файлику); скрипты легко запускаются. Под WSH тоже всё сразу работает. Вроде бы Node даже легко и просто со Студией работает, но я не пробовал.
                                                      Ответить
                                                      • Ну можно подумать, что какой-нибудь uwsgi для питона намного сложнее ставится и настраивается...

                                                        Просто, если программист не может продемонстрировать, как будет работать его прога/сайт и вообще ничерта не смыслит в её деплойменте - это хуёвый программист. Максимум на джуниора тянет.
                                                        Ответить
                                                        • >Просто, если программист не может продемонстрировать, как будет работать его прога/сайт
                                                          Дев сервер есть прямо изкоробки. У пыхомакак для тестов есть XAMPP, у питонистов нету нихуя.
                                                          Ответить
                                                      • Ладно, спросим по-другому - лично ты сам свои высеры как дистрибьютишь?
                                                        Ответить
                                                        • Как студент: "Откройте проект в среде Борманд Делфи и нажмите F9, чтобы запустить его."
                                                          Ответить
                                                        • Для высеров есть ГК: http://govnokod.ru/add
                                                          Как-то так.
                                                          Ответить
                                                • Блядь. У меня одногрупник писал на GWT, отбивал нормальные деньги. Так там разворачивание загрузкой war файла, а при любых проблемах он не перезапускал службу а ребутил сервак через web.

                                                  Запустить на локалхосте - конечно должен, как-то же проверить работу надо. Остальное - пусть одмины настраивают.
                                                  Ответить
                                              • >В экмамирке (по крайней мере, в мире JScript/JavaScript) всё сделано для людей.
                                                Вот плюсану, по крайней мере с порогом вхождения в запуск там все в порядке, да и инструменты очень нуб-френдли, в отличие от фитона - коншоль под шиндой говно, остальное - наколеночное.
                                                Ответить
                                          • Сравнение правда глупое.

                                            Я бы сказал так: любишь поесть? Научить мыть посуду и разогревать еду. Ты можешь конечно есть в ресторане, но это дорого.

                                            Повар это автор компилятора. Никто не говорит тебе "хочешь писать на пайтоне? Напиши сипайтон!". Но разогреть еду (поставить пайтон) и выложить её на тарелку (настроить веб сервер) ты должен.

                                            Еще раз: не обязательно уметь высоконагруженные сервера, не обязательно делать тонкую подстройку файловой системы или io шедулера или знать что такое tickless kernel, но для веб разработчика жизненно важно уметь хотя бы настроить свой веб сервер.

                                            Вы на своем JS когда пишите Вы npm как-то ставите?
                                            Ответить
                                            • > Вы на своем JS когда пишите Вы npm как-то ставите?
                                              Да. Пара кликов мышью - и node с npm уже установлены.

                                              > Но разогреть еду (поставить пайтон) и выложить её на тарелку (настроить веб сервер) ты должен.
                                              Должен, если это - пара кликов мышью. Поставить node/python - действительно можно. Остальное - дело специалиста.
                                              Т.е. если возвращаться к аналогии с поваром, настройка apache - это не "разогрейте и положите в тарелку", а "храните при температуре 8 градусов в винном погребе 4 месяца, откупорите, снимите пенку, положите 40 граммов соли, закупорите, оставьте на год при температуре 9 градусов, откупорите, выложите на тарелку, держите при температуре 150 градусов и давлении в 1/2 атмосферы час и три минуты". Соответственно, делать это должен отдельный специалист.
                                              Ответить
                                              • В жизни бывают разные повороты. Лучше на учится настраивать апач самому. А то может ты решишь "Заебали меня эти начальники. Сам буду начальством." Бюджета хватает что бы не помереть с голоду пару месяцев на офис, сервер и рекламу на местном тв. И ты тут такой о бля я могу и сам сервер настроить и по телефону клиентов обзванивать мне не проблема и отчеты в налоговую я в принципе сам могу.
                                                Сразу чувствуешь себя человеком.
                                                Ответить
                                                • Достойно. Уважаю. Знания и умения лишними не бывают.
                                                  Ответить
                                              • Если человек знаком с работой веб сервера и протокола HTTP (а хочется думать что писатели веб приложений с этим знакомы) то изучение и настройка апаче у него займет не более пары дней.

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

                                                Если веб программист не в состоянии настроить себе примитивный веб сервер то яб поостерегся ему что либо вообще доверять.

                                                А что он еще не умеет? Может он не умеет профилировать свои запросы в БД? Это же работа DBA, как никак.

                                                Не умеет никакой HTML, он же не фронт эндер.

                                                Не умеет комментарии на английском, он же не переводчик.
                                                Ответить
                                                • > он же не
                                                  А проверять свой сайт он тоже не умеет, он же не тестер.

                                                  Проектировать - тоже. Он же архитектор.

                                                  И даже пользоваться своим сайтом он не умеет - он же не пользователь.
                                                  Ответить
                                                  • /s/архитектор/не архитектор/

                                                    P.S. Писать тексты он тоже не умеет, он же не машинистка.
                                                    Ответить
                                                    • Кстати, /s/ это для чего? Если для sed - то корректнее s|||, т.к. не надо экранировать.
                                                      Ответить
                                                  • > И даже пользоваться своим сайтом он не умеет - он же не пользователь.
                                                    А вот тут есть крайне большая доля правды. Программист, который (а) обладает знаниями программиста и (б) постоянно работает над сайтом т.е. знает его возможности - очень хреновый пользователь.
                                                    Ответить
                                                    • Короче это сложный вопрос, если без конкретики.

                                                      Я конечно против того чтобы тыжпрограммист айфоны чинил, но я и против веб программиста который "я не буду даже пытаться изучить как работает апаче, потому что мне за это не платят".

                                                      Человек должен вокруг своей специальности очертить круг, и в нем боль-мень разбираться. Админ дешевого вебхостинга должен хотябы уметь читать код на пхп и написать хеллоу ворлд чтоб проверить что всё работает, а пхпшник должен хотябы уметь читать httpd.conf и запустить апаче хотябы с дефалтными настройками.
                                                      Ответить
                                                    • И в) воспринимает критику в его адрес лично
                                                      Ответить
                                                • Ну, для разработки wampserver.exe запустить или по туториалу lamp поставить и настроить mod_rewrite не проблема. Собственно, для небольшого и специализированного интернет-магазина моих знаний хватает.
                                                  Ответить
                                                  • Ну так ведь никто и не говорит о хайлоаде)

                                                    Блин! Если кто-то заставит программиста настраивать сетевое оборудование, которое должно перебрасывать запросы на разные сервера, или тянуть оптику или настраивать автономную систему я первый будут против!

                                                    Ну уж веб сервер-то поставить не должно быть проблемой
                                                    Ответить
                                                    • А вообще, хочу n2o попробовать. Я его щупал, даже с разрабами общался в гиттере. Но так и не понял, как работать с kvs. Хотя, без него обойдусь
                                                      Ответить
                                                      • Правда, на 32хразрядных линуксах проявляется проблема 2038. В винде такого нет.
                                                        Ответить
                                                        • Ой, 2036
                                                          Ответить
                                                          • Я надеюсь что к 2036му году Вы купите себе 64х битный процессор
                                                            Ответить
                                                            • А программное обеспечение на 64-битных процессорах будет по-прежнему использовать 32-битные даты для обратной совместимости.
                                                              Ответить
                                                              • Ну, не знаю. Эрланг у меня падает только, если указать в качестве даты сколько-то там миллионов лет (64 бита).
                                                                Ответить
                                                              • Конечно. А С++ обратно совместим с С
                                                                Ответить
                                                                • Аналогия плохая. Протоколы обмена данными от процессора не зависят.

                                                                  IPv4, например, до сих пор используют. А IPv6 вообще 128-битный.

                                                                  Ты же не хочешь сказать, что IPv6 распространяется медленно, потому что 128-битные процессоры непопулярны?
                                                                  Ответить
                                                                  • Ну у меня такого процессора нет и IPv4.
                                                                    Ответить
                                                                    • --А Ваш процессор поддерживает ipv4?

                                                                      Да что Вы! Он и ipv3-то с т рудом тянет
                                                                      Ответить
                                                                      • --А Ваш процессор поддерживает ipv4?

                                                                        --Ну Крузис на максималках идет...
                                                                        Ответить
                                                                        • Между прочим я регулярно слышу от людей:
                                                                          --какой у тебя процессор?
                                                                          --core i5.
                                                                          а раньше было "пентиум"
                                                                          Ответить
                                                                          • О, о, у меня такой
                                                                            Интел Инсиде тм
                                                                            Ответить
                                                                          • И что? У них на самом деле не core i5?
                                                                            Ответить
                                                                            • > не core i5
                                                                              Ну core i5 - понятие растяжимое. Даже если забить на частоты, core i5 позапрошлого поколения != core i5 текущего.
                                                                              Ответить
                                                                              • У них даже нанометраж разный
                                                                                Sandy Bridge - 32
                                                                                Skylake - 16 или даже 14
                                                                                Там еще были между ними Ivy Bridge и Haswell но цифры не помню а гуглить лень
                                                                                Ответить
                                                                                • конечно разный.

                                                                                  Капитан Очевидность говорил мне что Интел использует политику тик-так. Сначала меняется арихитектура, затем -- нанометраж.

                                                                                  например сенджи и айви это одна архитектура, но разный метраж.
                                                                                  Ответить
                                                                                  • А хасвелл и айви - один нанометраж но разные архитектуры
                                                                                    Там еще бродвелл был или типа того - уменьшенный хасвелл
                                                                                    Ответить
                                                                                • Дык в том и соль. i5 это "уже не печатная машинка (i3) но ещё не хай перфоманс (i7)". Причём в одном поколении i3, i5 и i7 сделаны считай по одной технологии.
                                                                                  Ответить
                                                                                  • Мне хватает в ХотС рубиться
                                                                                    Ответить
                                                                                  • почему-то все забыли что целы и пни еще остались
                                                                                    в каждой архитектуре бывает
                                                                                    цел
                                                                                    пень
                                                                                    i3
                                                                                    i5
                                                                                    i7
                                                                                    иногда еще i7 K (для разгона)
                                                                                    и всякие EE (типа для экстремалов)

                                                                                    еще есть xeonы, но это уже другая песня для серверов
                                                                                    Ответить
                                                                                    • > целы
                                                                                      Нахуй нужны эти тормозные обрезки?
                                                                                      Ответить
                                                                                      • Например чтобы быть тонким клиентом.

                                                                                        Впринципе, хватило бы и компа 15ти летней давности, но к нему не найти ни памяти, ни чипсетов
                                                                                        Ответить
                                                                              • вот на частоты-то в наше время точно можно забить кмк)
                                                                                Ответить
                                                                            • corei5 это маркетинговая шелупонь и относится она может к совершенно разными семействам: от Nehalem до Skylake-U.

                                                                              Это все равно что сказать "у меня пентиум" и не объяснить какой: первый на 75Mhz или тот же самый Skylake.

                                                                              Но программистам такие вещи знать не нужно, им же за это не платят. Пускай железячники разбираются.
                                                                              Ответить
                                                                              • Гость: У тебя какой процессор?
                                                                                Я: Core i5.
                                                                                Гость: да ты ламер, ты ещё скажи, что у тебя пентиум, мне это ничего не говорит!!!!11111 Ща в спортлото напишу о том, какой ты лаааамер!!!111
                                                                                Я: На рабочей машине у меня Core i5-MCG345LU8, в ноутбуке - Core i5-U2800D, на домашнем десктопе - Core i5-Z835ペニスС!
                                                                                Гость тянется в карман за смартфоном. Мы входим в лифт. Сеть пропадает.
                                                                                Гость: Хм... Ну... То есть у тебя Core i5 (записывает в блокнотик). Эм... Понял.
                                                                                Гость: А параметры-то какие? Понимаешь, тут Интел подсуетился... Тут буквы... Я по этим буквам ни черта не понимаю, логичной системы нет... Надо гуглить.
                                                                                Ответить
                                                                                • Я, как и твой гость, конечно же не запоминаю наизусть такие вещи. Тем более что есть ark.intel.com.

                                                                                  Но я хотя бы знаю что нужно указывать архитектуру и где можно найти всю инфу по конкретному номеру модели. Хорошо что теперь и ты это знаешь. Ты каждый день узнаешь что-то новое. Это здорово.
                                                                                  Ответить
                                                                                  • > Но я хотя бы знаю что нужно указывать архитектуру
                                                                                    А кроме архитектуры - ещё несколько параметров, да. Либо опускаться до загадочных буковок, либо быть готовым назвать десяток циферок и запустить десяток тестов.
                                                                                    В итоге надо говорить "у меня Core i5" и не выпендриваться.
                                                                                    Ответить
                                                                                    • Архитектуры вполне достаточно, потому что в рамках одной архитектуры и одного маркетингого семейства (i5 haswell) ралзичия минимальны: чуть может различаться кеш, а вот ядер будет примерно одинаково и видяха встроенная тоже.

                                                                                      Говорить "i5" все равно что говорить "у меня интел" или "у меня PC".

                                                                                      Если ты этого не понял, то можешь почитать сообщения выше.
                                                                                      Ответить
                                                                                    • У меня i5-3570K так сложно сказать?)
                                                                                      Ответить
                                                                                      • Может быть, лучше говорить, что у меня Атом или Целерон, чтобы сразу отстали?
                                                                                        Ответить
                                                                                        • > чтобы сразу отстали?
                                                                                          Чтобы точно сразу отстали, нужно говорить, что процессор обычный, серый/белый/чёрный, и вообще он под столом.
                                                                                          Ответить
                                                                                          • А если процессора вообще нету, а все провода воткнуты сразу в монитор? :)
                                                                                            Ответить
                                                                                            • Тогда так и говори - у меня ноутбук, не морочьте мне голову
                                                                                              Ответить
                                                            • Да у меня уже есть )
                                                              Ответить
                                            • Скорее если ты производишь двигатели - ты должен уметь их устанавливать. Нахуй.
                                              Ответить
                            • Апаче не нужен, ведь есть Лайти и Нгинкс.
                              Ответить
                              • ит депендс) пистон хорошо дружит с модвизги, а в случае nginx его нужно крутить под гуникорном.

                                Что лучше -- вопрос.

                                Вообще если отдавать статику нгинксом то апач не так уж страшен.
                                Ответить
                                • >пистон хорошо дружит с модвизги
                                  Иксперт. Ты что из этого настраивал?
                                  Ответить
                                  • не поверишь: все из вышеперечисленного, плюс джангу поверх.

                                    Ну вообще о чем я говорю? Конечно ты мне не поверишь
                                    Ответить
                                    • Действительно, хуле мне анониму верить.

                                      Ну ладно: чем mod_wsgi лучше гуникорна? И что из этого можно попробовать под видной?
                                      Ответить
                                      • Гуникорн это сервер на пайтоне, и ему нужен приличиный фронтенд типа nginx, а apache умеет запускать пайтон прямо через modwsgi: либо как часть себя, либо как отдельный процесс (Daemon process).

                                        На винде точно не работает daemon process, точно не работает гуникорт, и точно работает обычный Modwsgi+apache.

                                        Так что на винде можно поставить apache, modwsgi и python и все должно завестись. Есть так же модвизги под iis, но он какой-то в глубокой бете, и ну его в жопу (апаче достаточно стабильно работает под виндой, хотя для высоконагруженных проектов конечно не подходит).

                                        Важно только убедиться что у тебя верная версия питона, апача и модвизги (собранная верным компилятором), но туториалов дохрена с указанием конкретных бираников для скачки: самому можно ничего не компилировать.

                                        https://github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/README.rst
                                        Ответить
                                        • А что скажете про FastCGI?
                                          Ответить
                                          • По скорости должно быть похоже на daemon mode, потому что тоже крутится отдельный процесс. Но проблема в том что FastCGI должно уметь само приложение, а оно обычно умеет только wsgi (собственно его и придумали для унификации). например джанга умеет fastcgi, но это deprecated, и скоро она перестанет его уметь.

                                            Flask, кажется, умеет.
                                            Ответить
                                        • Да нет, мне на видне настроить а потом на линупс перенести. Или ну его нахуй когда есть WinSCP.

                                          Дык в чем разница между апач+мод и nginx+gunicorn? nginx вроде шустрее.
                                          Ответить
                                          • nginx+гуникорн может быть шустрее, да.

                                            Просто апаче во-первых везде работает, во-вторых под него дофигища модулей (хотя под нгинкс тоже очень много).

                                            Можешь погуглить на тему gunicorn vs modwsgi, боюсь есть сторонники у обоих подходов.
                                            Ответить
                                            • я бы сказал так: для 99% сайтов скорее всего разницы не будет.

                                              Можно ставить то, что больше нравится / проще изучить.

                                              Наверное nginx + gunicorn проще (тем более что nginx все равно нужен -- не отдавать же статику жырным апачем??).
                                              А гуникорн достаточно прост.

                                              ну вот только плохо что под винду не работает
                                              Ответить
                                              • Ну про винду я уже сказал - мне чисто конфиг обкатать.
                                                Ответить
                                            • Мне пока что чисто для питона + статики
                                              Ответить

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