Задать вопрос
  • Как установить временную зону javascript?

    Stalker_RED
    @Stalker_RED
    Вы не можете поменять таймзону в браузере. Предполагается, что вы будете использовать UTC даты, и только при выводе конвертировать их в местное время.

    Следующее выражение создаёт объект Date, используя всемирное время вместо местного:
    var utcDate = new Date(Date.UTC(96, 11, 1, 0, 0, 0));

    © https://developer.mozilla.org/ru/docs/Web/JavaScri...

    upd есть такая чудесная штука как moment.js, которая решает большинство проблем с датами.
    Там и таймзоны есть: momentjs.com/timezone
    Ответ написан
    Комментировать
  • Как правильно менять тип переменной?

    Stalker_RED
    @Stalker_RED
    Да, так делают, и довольно часто. Конструкция !! для приведения к boolean вообще чуть ли не стандарт. В jQuery встречается, например.

    Вторая чуток пореже, и как правило, сперва ставят пустые кавычки, а потом уже переменную. Так:
    var num = 12345;
    var x = ("" + x)[3];
    console.log(typeof x, x); // string 4


    Третья еще реже, обычно просто ставится плюс перед переменной:
    var y = +x * 10;
    console.log(typeof x, typeof y, y); // string number 40


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

    И да, это делают не для оптимизации, а потому что
    Краткость - сестра
    Ответ написан
    Комментировать
  • Что означает 't' в запросе?

    petermzg
    @petermzg
    Самый лучший программист
    Это псевдоним таблицы.
    SELECT t.* FROM eps_gallery t WHERE t.type = 1 ORDER BY t.id DESC
    Ответ написан
    2 комментария
  • В чем различие между?

    petermzg
    @petermzg
    Самый лучший программист
    function Person(){} - Вы обьявляете функцию с именем Person.
    var person = Person() - Вы вызываете функцию Person и результат сохраняете в переменную person
    var person = new Person()- Вы создаете новый обьект использую функцию-конструктор Person
    Ответ написан
    Комментировать
  • Не оплатил домен, на следующий день его сразу купили - что за бред?

    Quber
    @Quber
    PHP Team lead
    Существуют специальные сервисы скупающие домены. Заходите на сервис, видите все высвобождающиеся домены по датам, ставите на него ставку если имя вам приглянулось. Сервис сам выкупает домен в течение нескольких секунд как это становится возможным. Скупают таким образом только киберсквоттеры. Ждите домен в продаже.
    Ответ написан
    Комментировать
  • Как поддерживать две версии приложения (платная и бесплатная)?

    onqu
    @onqu
    weasy
    Конечно, можно использовать 2 ветки, конечно, можно делать все в одной ветке и понатыкать везде #ifdef FOR_NISCHEBROD, FOR_REGULAR_CLIENT, FOR_RICH_ONE, конечно, можно расставить тэги, чтобы было проще искать эти места в будущем.

    Но, при увеличении объема логики придется прибегнуть к использованию шаманского бубна, ритуалу выстрела в свою ногу и мольбы праотцам. Добавлять/править логику в этих кусках будет очень непросто.

    Другой вариант.
    Делать приложение модульным, где основное приложение является лишь каркасом с базовой функциональностью, лежит в отдельной репе, тестируется отдельно от всего, и где модули это подключаемые расширения (Компоненты, DLC, LIB, Whatever), у которых есть API интерфейс для расширения функциональности основного приложения, и каждый лежит в своей репе.
    Более того, их можно будет тестировать, как вкупе, так и отдельно от основного приложения. При сборке указываем только требуемые расширения. Нэкст лэвэл - подключать расширения динамически, то есть без сборки с приложением.
    Ответ написан
    2 комментария
  • Как обновить composer через консоль OpenServer?

    DJZT
    @DJZT
    Laravel - code for you
    composer.phar это файл скрипта. Его надо запускать php интерпретатором.
    php composer.phar
    Если хотите работать с обычной командой composer, то скачайте с сайта установочную версию. Она работает чуть чуть быстрее. Чем портативная.
    Ответ написан
    Комментировать
  • Как позиционировать свои услуги: мы или я?

    sim3x
    @sim3x
    Развиваешь "бренд" %company_name% - мы
    развиваешь бренд имени себя - я
    Ответ написан
    Комментировать
  • Объясните код из Java?

    @zelan
    Кратко обо мне не получится.
    Если в классе A не объявлен ни один конструктор, то он по умолчанию содержит конструктор без параметров - A(), однако, если объявлен хотя бы один конструктор с параметрами, то конструктор A() исчезает. Но исчезает он только тогда, когда явно не объявлен.

    Примеры
    //содержит неявно 1 конструктор A()
    class A{
    }
    
    //тоже содержит  конструктор A() но явно
    class A{
        A(){
        }
    }
    
    //cодержит СОДЕРЖИТ ТОЛЬКО 1 конструктор, конструктора A() уже нет
    class A{
        A(int x){
        }
    }
    
    //есть оба конструктора
    class A{
        A(int x){
        }
    
        A(){}
    }


    В примере класс A содержит один конструктор с параметром - A(int x), это значит, что он не имеет конструктора A(), и его нужно (при необходимости) определить самому.

    Механизм наследования таков:
    - мы хотим создать объект B, вызвав конструктор B(int b)
    - первой строкой конструктора должна быть строка super(...) - с параметрами или без, это нужно для того чтобы сначала сконструировался родитель, ведь B унаследован от A
    - если первая строка другая, то компилятор подставляет конструктор родителя без параметров - super(), в этом случае будет вызвано создание объекта A с помощью конструктора A().
    - но так как в объекте A не определен этот конструктор - вылетает ошибка

    Можно исправить так
    Либо добавить в объект A конструктор A(), либо в конструктор объекта B, добавить явный вызов конструктор родителя super(int x) ( в данном случае у родителя есть только 1 конструктор - A(int x)
    Ответ написан
    1 комментарий
  • 3 else или 2 if?

    kompi
    @kompi
    nullstack devoops
    Чтобы избежать мучений: завернуть, например, получение группы в функцию или метод, а потом более лаконично перебрать через switch:
    function getUserGroup() {
    //..
    }
    switch(getUserGroup()) {
      case 'admin': 
        break;
      case 'user': 
        break;
      case 'guest':
      default: 
        break;
    }
    Ответ написан
    Комментировать
  • 3 else или 2 if?

    miraage
    @miraage
    Старый прогер
    Можно еще вынести получение группы юзера.
    switch (true):
        case ($_SESSION['user_group'] ?? null) === 1:
            // admin
            break;
        case ($_SESSION['user_group'] ?? null) === 5:
            // user
            break;
        default:
            // guest
            break;
    endswitch;
    Ответ написан
    Комментировать
  • Кто несет ответственность на разных этапах при создании сайта?

    @Elizavetta
    Matroid: gamedev/js-разработка
    Ответственный ли следующий подрядчик за приемку исходников от предыдущего?

    Нет, конечно.
    Кто отвечает ? - владелец продукта, продакт-менеджер отвечает. Он все сверяет и тестирует.
    То, что требуется доработка верстки - ситуация более, чем рядовая. Считать, что кто-то ее должен был принять в окончательном виде, когда не готов бекенд, - странно.

    Как на практике можно решить подобную ситуацию?

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

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Есть договор, где прописаны ответственность сторон, согласно ему и определяется кто прав, а кто нет.
    Но исходя из общепринятых норм, верстка- верстальщику, программирование - программерам. Вообще эти процессы не должны быть разорваны во времени. Это вполне ожидаемо, что на этапе разработки понадобились доработки верстки.
    Ответственным за такие не состыковки, должен быть менеджер проекта. Который ставил задачи верстальщикам и писал Т.З. Судя по всему это Вы.

    Единственно не понятно почему нет верстальщика на подхвате. С ним договор должен был быть, что он обязан до сдачи проекта быть на подхвате. Но опять таки это проблема плохой организации. Если Вы заказчик, надо было такой крупный проект отдать компании, которая взяла бы все геморы на себя. Но Вы видимо решили сэкономить. Так если сэкономили, почему бы не подкинуть денег стороннему верстальщику, который оперативно решит все проблемы?
    Ответ написан
    Комментировать
  • Какой тип подключения и какой канал связи используют такие монстры как yandex, vkontakte, mail.ru?

    Существует такое понятие, как точка обмена интернет-трафиком (IX), например MSK-IX, SPB-IX, AMS-IX и т.п. Это точка, в которую приходит много каналов от разных провайдеров, и в которой провайдеры обмениваются трафиком между собой. Каждый из провайдеров, участвующих в обмене трафиком самостоятельно организует или арендует канал до IX. Обмен трафиком идет через оборудование и по стандартам поддерживаемым IX. Крупные сервисы не пользуются услугами провайдеров а присутствуют в IX самостоятельно, т.е. сами оперируют так же, как и провайдеры услуг. На этих же точках может вестись обмен трафика с крупными магистральными операторами, которые предоставляют в т.ч. зарубежный трафик, либо может арендоваться канал до одной из зарубежных IX.
    P.S. через traceroute часто можно видеть, через какие точки обмена трафиком прошел пакет к тому или иному ресурсу.
    Ответ написан
    1 комментарий
  • Почему не может прочитать свойство?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Что-то мне подсказывает, что функция compare написана неверно, надо так:
    function createCompare(field) {
      return function (a, b){
        if(a[field] > b[field]) return 1;
        if(a[field] < b[field]) return -1;
        return 0;
      }
    }
    
    users.sort(createCompare('name'));


    И изучите замыкания в js
    Ответ написан
    1 комментарий
  • Алгоритм проверки актуальности объявлений?

    @alexxandr
    you'll see in memory only 0xDEADFACE
    в коде, который отображает объявления сделайте проверку по дате, чтобы не показывал неактуальные
    а чистить от них базу можно и раз в месяц.
    Ответ написан
    Комментировать
  • Как сделать редирект на страницу каталога после авторизации пользователя?

    deMone
    @deMone
    Техдиректор — tech-director.ru
    В init.php поместите код:
    AddEventHandler("main", "OnAfterUserAuthorize", 'openCatalogAfterAuth');
    function openCatalogAfterAuth($arUser) {
         LocalRedirect('/katalog.php');
    }
    Ответ написан
    3 комментария
  • Как перенести данные из одной БД в другую с другой структурой?

    А как Вы себе это представляете вообще? Что должен делать такой инструмент? Анализировать старую структуру, потом новую, потом залезть к Вам в голову и узнать, что именно вы отразили в этих изменениях и что к чему относится и подготовить Вам SQL-файлик на основе анализа Вашего мозга?)
    Самый простой способ - написать скрипт самому)
    Ответ написан
    2 комментария
  • Как задать пользователя для cron?

    @Nc_Soft
    Юзера можно задать в глобальном кроне /etc/crontab
    * * * * * root /usr/bin/php /usr/local/www/db_request/misc/test.php
    Либо сделать для юзера системы свой крон через crontab -e
    Ответ написан
    Комментировать
  • Качественный перевод книг по программированию, где взять?

    kumaxim
    @kumaxim
    Web-программист
    Есть всего два способа выучить иностранный язык:
    1. читать на нем
    2. писать на нем


    Переводы, особенно технической литературы, лично я, советую Вам не читать. Не, перевели может быть ребята нормально, но в теме переводчик, скорей всего, вообще не разбирается, поэтому часть контекста, который хотел донести до читателя автор оригинала, теряется.
    Пройдите любой интенсив по английскому и читайте книжки в оригинале с google translate. Намного больше поймете, чем из перевода.
    Ответ написан
    2 комментария