• Возможно ли передать в форму то, с какой страницы на неё перешли?

    daager
    @daager
    $_SERVER['HTTP_REFERER'] - откуда пришли, для кнопки - get-параметр.
    Ответ написан
    Комментировать
  • Почему вылазит ошибка Call to undefined function message()?

    padavan
    @padavan
    В файле login_func.php нужно подключить файл, содержащий ф-ию message(), через require
    Ответ написан
    2 комментария
  • Как научиться делать клевые headerы?

    есть отличные генераторы хидеров - "веб-дизайнеры"
    Ответ написан
    Комментировать
  • Почему group by (mysql) не срабатывает?

    @mletov
    В выборке должны быть либо поля, находящиеся в GROUP BY, либо агрегирующие функции (SUM, AVG, COUNT и пр)
    Ну уж никак не *
    Ответ написан
    Комментировать
  • Расскажите о оптимизации мультиплеера на ПК?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    1. Чем статичнее предметы, тем меньше информации необходимо передавать между сервером и клиентом, тем меньше нагрузка на сервер и его пропускную способность, тем меньше "лагов" и "багов";
    2. Клиент не испытывает никаких проблем. Сервер испытывает проблемы только если к нему подключено много клиентов и у каждого нужно просчитать множество информации. Из-за этого клиент дольше ждет пакет с данными от сервера и в игре, в зависимости от алгоритма просчета интерактивности, предметы игры могут телепортироваться или долго лежать на месте;
    3. Графики на сервере нет. Там сплошные векторы и математика;
    4. Есть различные алгоритмы. Например, если на клиенте всегда ждут ответа от сервера, то движение происхожит рывками (по мере поступления пакетов-ответов от сервера). Если же на клиенте стоит экстраполяция, то клиент вычисляет несколько шагов вперед и отрисовывает их, проверяя уже отрисованное по пакетам от сервера. Однако, если есть какое-то несоответствие, то со стороны клиента начинаются "телепортики";
    5. Железо на серверах уже очень хороши и с расчетом огромных объемов данных проблем нет. Все дело в медленных каналах связи и их пропускной способности;
    6. Много чего) Есть интересные статьи на том же хабре про то, как борются с медленными каналами связи в скоростных шутерах, как просчитывают полет пули и попадания по цели. Например, в том же overwatch headshot'ом считается приличная такая сфера вокруг головы.
    Ответ написан
    Комментировать
  • Однодневкам-одновопросникам тостера запретить задавать вопросы?

    dom1n1k
    @dom1n1k
    Ну зашибись идейка!
    Необходимость что-то спросить часто (почти всегда) возникает внезапно. И ты такой идешь за помощью, а тебе херакс - сначала сам ответь на 10 вопросов! Прям сейчас ответить?.. У меня задача горит, а вы меня грузите своей дедовщиной? 9 из 10 просто уйдут, 1 нафлудит мусора в 10 вопросах, чтобы пройти фильтр.

    Вот что было бы реально полезно - так это кнопка "не нравится". Иногда очень хочется.
    Ответ написан
    Комментировать
  • Как запретить ребёнку просмотр видео на Squid3?

    DanielDemidko
    @DanielDemidko
    Программист
    А может быть нужно не запрещать, а разъяснять ребёнку, что хорошо, а что плохо, а главное почему это так (если вы сами в состоянии ответить на эти вопросы)?
    Тогда он обладая свободой воли сделает правильный выбор.
    Может быть нужно дать ребёнку нормально развиваться?
    Он личность с свободной волей и нельзя делать из него то что хочется именно вам.
    Ответ написан
  • Как добавить новую строку в базу на определенную позицию?

    Fragster
    @Fragster
    помогло? отметь решением!
    Вопрос некорректен. Вероятно стоит добавить в конец и отсортировать по нужному признаку при выводе.
    Ответ написан
    Комментировать
  • Какую выбрать CRM для управления мелкими проектами (заказами)?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Ответ написан
    Комментировать
  • Почему при регистрации и выходе из нее происходит ошибка?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Мои глаза... Где вы этот кошмар пишете? В застенках гестапо? Кто вас так мучает? И зачем вы мучаете нас?

    написано черным по английскому: не отправляются заголовки патамучта уже начат вывод данных, который начат в dy_header.php, соответственно никакие куки
    setcookie(session_name(), '', time()-2592000, '/');
    тут уже не запишутся. Учите ну хоть какие-то основы прежде чем писать фикалокод.
    Ответ написан
    4 комментария
  • Как реализовать авторизацию пользователей из двух баз данных через одну форму?

    rim89
    @rim89
    программист-велосипедист
    В форму признак добавить покупатель / продавец .. чтобы не гонять 2 базы сразу и по признаку проверять нужную базу
    Ответ написан
    Комментировать
  • Какие сертификаты ценятся у front-end специалистов?

    petermzg
    @petermzg
    Самый лучший программист
    Никакие! Нужны умение, опыт, знания, трудолюбие, а не сертификаты.
    Ответ написан
    5 комментариев
  • Как построить свой рабочий день фрилансеру?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    3 комментария
  • Вопрос про ООП, как использовать?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вот, например, надо сделать простейшую фотогалерею.
    На вашем примере, что бы было понятно на пальцах, заранее прошу прощения у присутствующих за примитивизм. В данном случае у вас будет коллекция объектов, которая тоже объект, это как массивы, если примитизировать понятия до упора, одни могут быть вложены в другие. Делаете допустим так:
    $image= new Image(); //создаем пустой объект имаж, чтобы иметь его настройки(таблица, поля...)
    $gallery = new Collection ($image); //создаем новую коллекцию объектов типа имаж, пока пустую.
    $gallery->getCollectionByField(array("galleryid"=>"64")); // инициализируем из базы, используя
    // ид галереи, теперь в гэлери одной строчкой мы загрузили все картинки в свойство (например),
    // $gallery->collection  и можем к ним обращаться как к элементам массива, и в свойстве
    // $gallery->collection[1] будет объект типа $image. Как вариант реализации.

    Куча кода остается в объекте, для вас это "черный ящик", видны только входы и выходы, все что внутри скрыто, но работает как надо, т.к. разбито на методы и отлажено по кусочкам.

    Что касается статики - как говорится в любом нормальном источнике - статики нужно избегать по максимуму, на это есть несколько причин:
    - статика загружает оперативку, т.е. статические объекты создаются всегда, не зависимо от необходимости их использования
    - статика плохо поддается тестированию, не всегда, но часто, т.к. глобальная область видимости приносит проблемы пересечения зон ответственности методов, часто это нарушает SOLID, особенно если тыкать статику везде. Почитайте, посмотрите как должен выглядеть нормальный код в объектах - вам понравится.

    ps:
    ваш код - почему бы не писать так:
    $post=BLOG::getPost($айди_поста);
    // меняем 
    $post = new Post($айди_поста);
    
    echo $post['content'];
    // меняем 
    echo $post->content; // не обязательно так, может вот так:
    echo $post->getContent(); // тогда при выводе можно будет сделать какую-то предварительную обработку, 
    //заменить тэги, еще что-то...
    
    $comments=BLOG::getComments($айди_поста);
    // меняем
    $comments = new Comments($post);
    echo $comments->getTree(); // хотя тут скорее всего от вьюшки зависит, я бы тут возвращал не 
    // строку, а массив для итератора, это правильнее для разделения на мвц, мухи отдельно - 
    // котлеты отдельно, в смысле код и хтмл.
    Ответ написан
    Комментировать
  • Какой фреймворк выбрать для подобного?

    RonKey
    @RonKey
    Ищущий
    Рекомендую Yii2. Проще в изучении и под описанное подходит.
    Ответ написан
    1 комментарий
  • Как отсортировать массив с чередованием по два знака?

    1. Отфильтровать положительные элементы в один новый std::vector, отрицательные в другой std::vector
    2. Выводить группами по 4 элемента: 2 из первого вектора, 2 из второго
    Ответ написан
    2 комментария
  • Как вы деплоите django приложение на сервер?

    @artinnok
    бекенд-программист
    Исходя из вашего вопроса - "деплой" это разворот сервера с нуля до рабочего состояния.

    Все зависит от количества деплоев:
    1. Если вам достаточно задеплоить 1 сервак и забыть про него - проще поднять руками.
    2. Если вы постоянно разворачиваете > 2 серваков - однозначно надо использовать автоматизированные инструменты.

    Рассмотрим несколько популярных инструментов:
    1. Ansible - на мой взгляд самый удобный инструмент для быстрой и удобноый работы с парком серверов, устанавливает весь софт и настройки на вашей VPS.
    2. Docker - позволяет создать на вашей VPS еще одну виртуальную машину с заранее прописанными настройками и софтом, также его иногда используют для параллельного запуска нескольких БД / веб - серверов и т.д.
    3. Также есть Puppet, Chef, Salt - ими не пользовался.

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

    Тут все зависит от размеров проекта:
    1. Если проект маленький / средний fabric вполне справляется с такими задачами, как подтянуть изменения из репозитория / собрать статику / перезагрузить nginx и т.д., но использовать его для разворота сервера - это тяжелая работа, которую проще делать с помощью других инструментов (описано выше). Сам я тоже использую fabric для обновления прода.
    2. Если проект большой и приближается к хайлоаду - то надо использовать Continuous Integration, это позволит вам сделать автоматизированную выкладку кода на боевой сервер - к примеру, пушите коммиты в репозиторий на github, срабатывает хук, начинает работать Jenkins, идет прогон тестов, при успехе тестов обновляется прод.

    Инструментов для CI много:
    1. Jenkins - простой и бесплатный, с кучей расширений и прочих плюшек.
    2. Travis-CI - бесплатный для опен сорс, платный для приватных проектов (69$ минимальный план).
    3. Buildbot, tox - не использовал.

    P.S. Я думаю, что понятие "деплой" - это выкладка изменений на боевой сервер. То, что делаете вы - создаете новый сервер, разворачиваете окружение - ближе к развороту сервера. Если так делается каждый раз, когда льются изменения на боевой сервак - надо менять workflow.
    Ответ написан
    13 комментариев