• Как оптимизировать простой sql запрос?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Запрос выполняется 8-10 секунд. Причем если меняю GROUP BY CEIL(`timestamp` / 864000) на просто GROUP BY `timestamp`, то запрос выполняется меньше чем за 1 секунду.

    Волне логично. Если во WHERE, GROUP BY, ON и т.п. используется функция от поля, то индекс не используется. В MySQL 5.7.6 и выше можно добавить вычислимое поле с отдельным индексом и делать группировку по нему. В младших версиях - создать отдельное поле и обновлять его триггерами AFTER INSERT/AFTER UPDATE.
    Ответ написан
    2 комментария
  • Как защитить сайты от взлома?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Поскольку, различные правила постоянно обновляются и модифицируются, актуальная версия всех правил и рекомендаций по защите веб-сервера доступна по этой ссылке.
    Ответ написан
    5 комментариев
  • Господа инженеры, вопрос о песке, молнии, стекле - на сколько трудно воплотить сюжет из комикса?

    GavriKos
    @GavriKos
    1) В городе - даже не пытайтесь. Только в поле.
    2) Воздушный шар скорее всего лопнет раньше. Используйте воздушный змей.
    3) Посмотрите вот это: https://www.youtube.com/watch?v=KJkbckiJD6Q
    4) Капсула не нужна. Подведите снятое напряжение непосредственно к песку на земле.

    По сути - вам нужен обычный громоотвод, у которого заземление воткнуто в ящик с песком, а дальше уже - в землю.
    Ответ написан
    6 комментариев
  • Где заработать портфолио?

    ManWithBear
    @ManWithBear
    Swift Adept, Prague
    Вы наверное не знаете. Но у вас уже есть один идеальный и не привередливый заказчик, которого вы к сожалению выпускаете из виду и обделяете вниманием. Это ВЫ САМ.
    Ответ написан
    4 комментария
  • Почему не работает следующий код?

    mannaro
    @mannaro Куратор тега JavaScript
    Умею профессионально гуглить
    Не работает потому, что простые объекты передаются не по ссылке, а значением. Вкратце:
    // ты инициализируешь переменную str сразу после загрузки DOM
    // на данный момент она равна пустой строке
    var str = document.getElementById("name").value;
    
    // ты инициализируешь функцию
    function NameValidate() {
      // пытаешься получить значение переменной str
      // так как она передалась значением, то сама по себе она не изменяется
      // и до сих пор равна пустой строке
      if (str == ''){
        // а это значит, что все работает правильно
        alert("Введите имя!");
      }
    }

    Если же мы хотим избежать подобной ситуации, то нам необходимо либо сделать функцию для извлечения этой переменной, либо передавать ее родительский объект.
    // input - объект, который передан по ссылке
    var input = document.getElementById("name");
    function NameValidate() {
      if (input.value == ''){
        alert("Введите имя!");
      }
    }

    или:
    // str - функция, вытаскивающая свойство из объекта
    var str = function() {
      return document.getElementById("name").value;
    };
    
    function NameValidate() {
      if (str() == ''){
        alert("Введите имя!");
      }
    }

    или:
    function NameValidate() {
      // вытаскиваем значение сразу после клика
      // минус - повторный поиск элемента в дереве DOM
      // каждый раз при клике на кнопку
      var str = document.getElementById("name").value;
      if (str == ''){
        alert("Введите имя!");
      }
    }

    Респект тебе, что изучаешь JS не вникая в jQuery. А то сейчас столько народу, что и не скажут тебе, что делает getElementById :)
    Также, совет: не пиши str == '' Достаточно писать просто if(str)
    Это работает потому, что в JS любой тип можно привести к булеву значению. Пустая строка, undefined, null и 0 - это все false. Остальное - true.
    Ответ написан
    1 комментарий
  • Подойдет ли ноутбук для программирования?

    @FoxInSox
    Толщина
    25.3 мм

    Толстоват. Не подойдет.
    Ответ написан
    1 комментарий
  • Как реализовать админ-часть?

    @annex
    Web Developer
    тут можете посмотреть
    Ответ написан
    Комментировать
  • Как вернуть мотивацию к обучению?

    При повторной потере мотивации алгоритм следующий:
    1) Идем высыпаемся. По-нормальному так, без будильников. Чтоб глаза вообще больше не закрывались.
    2) Если мотивация не вернулась (возвращается в 70% случаев) - берем велик (хотя можно и пешком) - и на улицу. Если есть приличный парк в городе - находим пару нестандартных физ. упражнений (можно боевых), пытаемся выполнить. Работа с телом и физические нагрузки - это совершенно другая часть вашего сознания, про нее нужно не забывать.
    3) Если мотивация не вернулась (уже где-то 85% случаев) - берем случайную книгу (не техническую), в идеале - из жанра который вам нравится. Читаем. Спокойно, страницы не считаем.
    4) Если не вернулась, повторить с п. 1 до пяти раз, не думая о времени и выполняя только самые важные дела (срочные задачи по учебе, работа, если есть), можно даже попросить родных/знакомых помочь по дому и бытовым делам, чтобы себя разгрузить.
    5) Если не помогло после 5 раз, задаем новый вопрос на тостере, подробно описываем что делали).

    Хотя бы один из п. 1-3 выполняем для профилактики каждый выходной.
    P.S. в принципе плохо сравнивать себя с кем-то - для "сравнения" на свете есть всякие соревнования и состязания, где есть правила и контекст. В жизни правил нет, один учится в MIT, другой учится в колледже в России - какие могут быть сравнения? Вы думаете тут большинство людей за один год все узнало и всего добилось? Вы глубоко заблуждаетесь) PHP-шники-выскочки не в счет, у них искаженное представление о реальности.
    Ответ написан
    11 комментариев
  • Зачем нужны комментарии после тега script?

    Denormalization
    @Denormalization
    Чтобы браузеры, которые не поддерживают скрипты, не выводили их код на страницу или не пытались их интерпретировать как теги, а принимали за комментарии.
    Ответ написан
    4 комментария
  • CSS в чем проблема с :hover?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Если у вас есть другие элементы между картинкой и блоком, то нужен General sibling combinator.
    el1 ~ el2 {...}
    Ответ написан
    Комментировать
  • CSS в чем проблема с :hover?

    kn1ght_t
    @kn1ght_t
    у меня все работает jsfiddle.net/4ojjb0e1

    чтобы селектор + работал, между тегами не должно быть других тегов, то есть они должны быть соседними
    Ответ написан
    Комментировать
  • Лучшие бесплатные ресурсы по каждой технологии (или стартаперы - дарю идею)?

    RGA24
    @RGA24
    Стартапер, программист, аналитик
    Попробуйте learnxinyminutes.com
    Ответ написан
    Комментировать
  • Как seo-продвинуть сайт без денег?

    XXX
    @XXX
    Решение где-то рядом
    Alexander-K
    • Проведите аудит сайта на предмет косяков (инструменты вебмастеров Вам в этом помогут)
    • Если сайт еще не добавлен в гугл и яндекс вебмастер, то добавьте.
    • Исправьте косяки, sitemap, robots.txt, meta-теги, описания страниц, заголовки, оптимизация содержимого страниц, перелинковка и т.д.
    • Скормите карту сайта поисковикам
      http://google.com/webmasters/sitemaps/ping?sitemap=ссылка на Ваш sitemap
      http://www.bing.com/webmaster/ping.aspx?siteMap=ссылка на Ваш sitemap

      Для того чтобы яндексу карту отправить, придется зайти на страницу вебмастера. И до кучи можете воспользоваться сервисом пинга в 40 поисковиков.
    • Если сайт региональный, то задайте регион.
      В яндекс вебмастере задается в настройках сайта, География сайта → Регион сайта
      В гугловских инструментах вебмастера, Поисковый трафик → Таргетинг по странам и языкам → Страна
    • Составьте семантическое ядро
    • Напишите SEO тексты заточив под ключи по которым будете двигаться
    • Если сайт не статичный, зарегайте его в соц сетях и постите туда новости со ссылками на свой сайт
    • Регайтесь на крупных форумах, с ссылками не закрытыми от индексации и напишите там про Ваш сайт
    • Оставляйте комменты в dofollow-блогах


    "Тупо регится на площадках" и спамить ссылку на Ваш сайт, не зная ключей по которым двигаетесь, бесполезно и вредно.
    Ответ написан
    2 комментария
  • Почему при сравнении двух одинаковых массивов выводит false?

    Вкратце - потому, что это - объекты, а они, в общем случае, никогда не равны.
    Объекты сравнивают по-другому, например так:
    console.log(JSON.stringify(a1)==JSON.stringify(a2));

    Или, например, переопределяют Array.prototype.equals
    Ответ написан
    1 комментарий
  • Почему при сравнении двух одинаковых массивов выводит false?

    DigitalSmile
    @DigitalSmile
    http://brainstorage.me/digitalsmile
    Вы сравниваете ссылки на объекты массива, а они разные.

    Сравните например:
    var a = "123"; 
    var b = "123"; 
    console.log(a == b);
    var c = new String("123"); 
    var d = new String("123"); 
    console.log(c == d);
    Ответ написан
    1 комментарий
  • С чего начать обучение для фриланса?

    kumaxim
    @kumaxim
    Web-программист
    И так, с чего начать обучение:
    1.Самый низкий порог вхождения у языка PHP. Начинайте именно с него
    2.Изучите популярные CMS: WP, DLE, Joomla и т.д. Очень много заказов есть типа "Создать сайт", причем экзотики в 2 из 3 проектах не нужно. Здесь минус в том, что школоты тут полно и цену они сбивают весьма сильно...
    3.Далее категория заказов "А можно ли сделать вот так". Сводится все это к разработке/переработке модулей на все тех же CMS. Нужно учить PHP + API этих самых CMS. Возьмите один движок и копайте по нему в эту область, не рвитесь сразу за всеми. Порог вхождения тут тоже не велик, но здесь больше голодные студенты обитают
    4.Когда перерастете уровень дополнений/модулей, переходите к фреймворкам. Сейчас самый популярный Yii. Фреймворк позволяет Вам делать какие-то уникальные приложения, которые достаточно тяжело реализовать на готовых системах. Здесь ценник по существеннее, чем в первых двух, т.к. школота в силу своих умственных способностей сюда влезть не может.

    Теперь расскажу как вообще этому обучаться на своем примере. Я делаю так:
    1.Открываю тоненькую книжечку по языку(листов 100, не более), смотрю на основы
    2.Делаю примеры из этой книжке в IDE/блокноте. Это дает мне определенную базу
    3.Далее у меня есть список из примерно 20 задач(любую методичку по программированию откройте), которые я всегда делаю на новом языке. Это позволяет мне "привыкнуть" к новому коду и начать изучать стандартную библиотеку языка
    4.Затем я начинаю брать низкобюджетные заказы на фрилансе по этому языку
    5.После этого начинаю учить самый популярный фреймворк языка, опять же на низкобюджетных проектах.
    6.Сделать с 12-15 проектов я могу уже браться за что-то более менее серьезное с почасовой оплатой на фултайме.

    Вот это мой путь. По срокам - базу я себе нарабатываю за 1,5-2 месяца, на это время у Вас должна быть какая-то "подушка".

    P.S. надеюсь помог. ))
    Ответ написан
    7 комментариев
  • Знаете ли вы столь же полезные сайты как Toster, Habrahabr, Lifehacker?

    vicodin
    @vicodin
    Имею некоторый опыт
    frontendfront.com
    открыл для себя недавно
    Ответ написан
    Комментировать