Задать вопрос
  • Как создать правильный SQL-запрос с группировкой и условием?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. SELECT ... COUNT(b.lot_id) ... group by b.lot_id - всегда будет 1.
    Вряд ли вам нужна группировка по lot_id.

    2.
    WHERE NOW() BETWEEN l.created_date AND end_lot_date
    - не будет использовать индекс, лучше явно писать
    WHERE l.created_date <= NOW()  AND end_lot_date >= NOW()


    3. Когда вы пишите запрос с group by - любые выбираемые данные должны быть или явно указаны в group by, или обернуты какими-то аггрегирующими фунциями (count, avg, max, group_concat итд). Иначе SQL тупо не понимает что ему делать с этим.

    Приведу пример для наглядности:
    name  | age
    Петя  | 10
    Вася  | 10

    select age, name from ... group by age.
    В postgress/mssql/oracle это будет ошибка.
    MySQLс дефолтными настройками проглатывает такой запрос, отдавая кортеж в котором age = 10, а name = случайное значение из подходящих name.
    К счастью в MySQL есть замечательный параметр sql_mode который можно установить в only_full_group_by и все начнет работать как у взрослых. (что и произошло в вашем случае, судя по логу)
    Ответ написан
    2 комментария
  • Зачем использовать Vue вместе с Laravel?

    Добавили, чтобы вы jquery спагетти не использовали. Vue (как и другие js фреймворки) сокращает количество кода на клиенте и уменьшает его запутанность.

    Для примера вы создаете админку для магазина. У вас есть следующие варианты:
    1. Делать статическую страницу. На клиенте никакой логики, все вычисляет сервер. При новой покупке администратор должен будет обновить страницу.
    2. Писать динамический фронтэнд с использованием vue, angular и чего угодно остального. Бэкэнд шлет вам уведомления через вэбсокеты о новых заказах без перезагрузки страницы.
    2.1 Вы берете jquery и сначала все идет хорошо. Первые полчаса. Затем ваш код обрастает огромным количеством обработчиков событий. Если товар заканчивается на складе, его надо убрать из таблицы, затем если заказ отменяется, его надо вернуть в таблицу. Вы его вернули, но почему-то кнопка в строке с ним, вызывающая модальное окно перестала реагировать на события, потом еще что-то случилось и еще. Проблемы с jquery растут как снежный ком и вы проклинаете свое решение создать динамическую админку.
    2.2 Вы используете современный js фреймворк. Vue в этом плане хорош низким порогом изучения. Вы загружаете определенные обхекты и в зависимости от их свойств vue сам строит таблицы (с проданными и непроданными товарами), скрывает лишние элементы (не показывать такую-то кнопку, если товар всего 1), отправляет плагинам команды на обновление при изменении объектов и следит за тем, чтобы события, которые отваливались при jquery подходе работали.

    Я не сказать что спец в javascript, но (именно поэтому) меня vuejs на текущем проекте очень выручает.
    Ответ написан
    Комментировать
  • Как обновить composer через консоль OpenServer?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    переходите с посощью cd в папку domains/ваш сайт и запускаете
    composer self-update
    Ответ написан
    4 комментария
  • Какое расширение для файлов CSS установить в Visual Code?

    SKolt
    @SKolt
    https://www.instagram.com/seregamih/
    Тоже искал когда то подобное решение. Но всё что нашёл - Class Extractor

    Но он работает по другому принципу. Выделяешь нужный код HTML, вводишь команду Class Extractor, и в буфер копируются все имина выделенных классов сразу с точками и фигурными скобками.
    Ответ написан
    1 комментарий
  • Как уменьшить тормоза при использование Ubuntu на usb-флешке?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Если вопрос именно о браузере и у вас есть достаточно широкий канал подключения к Интернет - я бы посоветовал полностью отключить дисковый кэш в настройках браузера. Это существенно снизит нагрузку на накопитель во время работы.
    Ответ написан
    Комментировать
  • Как верстают такой фон?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    И вообще может уже что-то появилось, чтобы не ставить жирные картинки в качестве бекграунда?

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

    Как верстают такой фон?

    Можно по-разному подходить к вопросу. Как вариант три слоя:
    1. Левый контент, у него фон в виде левого круга (чтобы не париться с его размером на разных размерах экрана - ведь там по идее контент должен помещаться в круг). Тут главное все аккуратно расположить и не забывать про critical css.
    2. Коптер (поскольку он жирный, его можно подгружать асинхронно и выдвигать с помощью CSS-анимации из-за правого края экрана - будет и красиво и производительно; я бы еще какой-нибудь эффект к тексту добавил, но это уже другая история). Его размер видимо должен зависеть от ширины экрана и размера контента слева. Надо заранее сообразить, как это все должно адаптивиться.
    3. Меню, которое справа вверху, оно должно быть поверх коптера (опять вопрос про адаптивность).
    4*. Фон, который самый-самый большой фон можно просто поставить на background у хидера. Поскольку он в векторе, его можно сделать гораздо выше, чем на картинке, чтобы опять же не париться, что он вылезет из скругления внизу секции на телефоне. Само это скругление можно сделать тысячей способов, на тостере уже не раз спрашивали.

    Такой подход требует больше времени, чем просто поставить все на фон у одного элемента, но и результат будет немного другого уровня.
    Ответ написан
    1 комментарий
  • На чем писать back-end в связки с Vue + mongodb?

    @eliastro
    Если предполагается, что бэк будет сложным, в котором будет много всего, или ожидается, что в будущем бэк будет активно дописываться, изменяться, то рекомендую писать на Ruby. В этом случае можно писать код быстро, используя уже готовые проверенные временем библиотеки(гемы), при этом код будет лаконичным, ясным и легко поддерживаемым в будущем. Если rest api, то можно выбрать фреймворк Ruby on rails 5 api mode. Связка с RoR+vue+mongodb отлично стекуется.
    Если бэк будет не сложным, то можно все что угодно.
    Если реалтайм, то nodejs или go.
    Ответ написан
    Комментировать
  • Как уменьшить тормоза при использование Ubuntu на usb-флешке?

    Sly_tom_cat
    @Sly_tom_cat
    .
    1. будьте готовы что флешка при длительном использовании на ней ОС достаточно быстро умрет. Мой опыт говорит о нескольких месяцах.
    2. help.ubuntu.ru/wiki/ubuntu_%D0%BD%D0%B0_usb - там перечислены способы оптимизации.

    PS совет про hdd/ssd - очень даже разумный.....
    Ответ написан
    Комментировать
  • Как уменьшить тормоза при использование Ubuntu на usb-флешке?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Во первых usb 2.0 это тормоза. Желательно 3.0 . и флешка быстрая на запись/чтение.
    Во вторых желательно на компьютере много оперативной памяти, тогда помимо того, что не будет свопиться,
    еще часть озу можно отвести для монтирования временной файловой системы.
    Ответ написан
    3 комментария
  • Ошибка при установке selenium-webdriver "VCBuild.exe"?

    @SouLFiX
    Просто установите production windows-build-tools

    # as admin
    npm install --global --production windows-build-tools
    Ответ написан
    Комментировать
  • Как восстановить загрузку Ubuntu после сбоя?

    /dev/sdb6: ОБНАРУЖЕНА НЕКОНСИСТЕНТНОСТЬ; ЗАПУСТИТЕ fsck ВРУЧНУЮ.

    Корневая файловая система на /dev/sdb6 требует ручного запуска fsck.

    Вы же проваливаетесь в оболочку. запустите в ней fsck -fy /dev/sdb6
    Ответ написан
    1 комментарий
  • Почему может не работать функция PHP?

    AloneCoder
    @AloneCoder
    [object Object]
    Видимо должно быть так
    public static function matchRoute($url) {
          foreach(self::$routes as $pattern => $route) {
            if (preg_match($pattern, $url, $matches)) {
              self::$route = $route;
              return true;
            }
          }
          return false;
    }
    Ответ написан
    1 комментарий
  • Почему может не работать функция PHP?

    @Firik67
    Middle PHP Developer
    1. Потому что может быть передан некорректный $url
    2. Потому что self::$routes может содержать некорректные данные
    3. Потому что
    Что в вашем понимании "не работает"?
    Ответ написан
    3 комментария
  • Почему может не работать функция PHP?

    OKyJIucT
    @OKyJIucT
    Sunshine reggae
    В передаваемом $url содержится url, которого нет в массива self::$routes. Как вы ее вызываете, что передаете, какое содержимое self::$routes?
    Ответ написан
    2 комментария
  • Как правильно вывести значения многомерного массива?

    Kaspol
    @Kaspol
    echo $m, "<br>";
    замените на
    echo $m, "\t";

    echo $v, "<br>";
    замените на
    echo "<br>";

    $v возвращает тип в вашем коде. Внутренний цикл проходит по вложенному массиву и выводит значения, расположенные во вложенном массиве. Внешний цикл делает переход на следующий вложенный массив, если там делать вывод, то интерпретатор видит массив, и возвращает тип
    Ответ написан
    Комментировать
  • Как удалить директорию в Git?

    @fathom
    Если вы случайно закоммитили ненужный файл или папку в git-репозиторий и уже сделали push, то чтобы удалить все следы этого файла или папки в том числе и из истории, достаточно выполнить команду:

    git filter-branch --tree-filter "rm -rf PATH" HEAD

    где PATH - это относительный путь до файла или папки.
    После этого выполните (чтобы перезаписать историю изменений):

    git push origin master --force
    Ответ написан
    1 комментарий
  • Full stack (emberjs, nodejs, mongodb)?

    Kaer_Morchen
    @Kaer_Morchen
    Разрабатываю web-приложения.
    Привет.
    https://github.com/mgenev/nodember ? На discuss.emberjs.com время от времени появляются вопросы какой backend для Ember лучше. Чаще всего фавориты ROR || Sinatra, Django Rest Framework, Sails.js.

    PHP никто не упоминал, но думаю Laravel 4-5 хорошо подойдут. Symfony 2 точно нет.

    Все дело в том что ember-data организовывает REST API по принципам описанным в jsonapi.org и вроде как нет смысла эти принципы переопределять, там все довольно продумано и гармонично. На сайте есть раздел со списком библиотек поддерживающих jsonapi.

    Мои ИМХО что будущее крупных веб-приложений все же за websokets, а не за http, поэтому я потихоньку посматриваю в сторону GO, но про него сказать ничего не могу.

    Update: 07.03.2015

    Нашел sanestack.com, Ember.js + Sails.js
    Ответ написан
    2 комментария
  • И снова курсы веб разработки?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    В конце 2015 года я задумался о том, чтобы свалить со стека php+jquery на что-то более адекватное современным реалиям. Т.к. года с 2011 ajax/spa неумолимо все больше доминирует над старомодным рендерингом средствами php, мой выбор пал на клиентсайд с JS.

    До того времени (начало 2016 года) я к JS относился весьма скептически, т.к. еще свежи были впечатления от нездоровых приключений с js3 vs ie6 и иже. Тем не менее проштудировав материалы JavaScript Weird Parts и ролики Зоракса я, внезапно, понял, простил и полюбил JS.

    По мере же погружения в прелести ES6+ я стал фанатом JS.

    Моё стремление в сторону JS крепчало.

    Из фреймворков я сначала позарился на Ember.JS, но что-то путное на нем слепить с наскоку оказалось задачей непосильной, хотя он, безусловно, крут.

    Angular v1 мне сразу не понравился чисто интуитивно, как оказалось, это решение было верным.

    Внезапно я обратил внимание на React.JS и оно мне прям вот зашло в самую душу. Как оказалось, у этого айсберга не то чтобы двойное, а прям очень многослойное дно, я бы даже сказал днище. но было уже поздно, я уже подсел и, как снежный ком, несся на встречу своему фронтенд-счастью.

    Параллельно, впервые за 20 лет практики, я внезапно стал дистанционно "ходить" по собесам, и .... круто обламываться. Особо больно было в первые 2-3 раза. Сказались дурные привычки юности - стремление изучать только то, что конкретно приносит пользу здесь и сейчас, игнорируя "тупую", "бесполезную" теорию. Сыпался на таких мелочах, что стыдно вспомнить...

    Еще очень сильно сказывалось то, что 20 лет я работал человеком-оркестром и мастером на все руки сольно в непрофильных конторах. Не было никакой конкуренции от слова совсем и никто не направлял меня мудрой и крепкой рукой в верное русло. Поэтому я болтался как щепка в бурю куда судьба пошлет. Мог и могу везде и всё, но ничего толком и всегда требуется прилично времени, чтобы разобраться да вникнуть.

    В общем я осознал, что дальше так продолжаться не может и нужно кардинально сменить парадигму и стратегию. Записал себя в джуны и стал прилежно учить все подряд, что касается тематики фронтенда и JS в частности. Этот финт ушами почти даже не жахнул по моему самолюбию и самооценке, т.к. багаж прошлых заслуг все равно рулит и весьма существенно помогает. Какие бы новые языки не изобрели, какие бы новые навороченные фреймворки не нарожали - базовые принципы всё те же, а когда ими владеешь, то все остальное - дело времени и усилий.

    Так вот, чтобы переформатировать мозги с пыхи на JS мне нужно было попрактиковаться несколько сотен часов. Я весьма ленив, поэтому сам себе задачки придумывать бросил сразу после школы и школьных олимпиад - наигрался. Тем не менее без практики никуда, поэтому я пошел на кодварс (пруф: https://www.codewars.com/users/iCoderXXI) и стал решать там всё подряд. Поначалу код был ужасен, но работал, постепенно мозг привык и качество кода стало расти. Параллельно стало сложно писать на пыхе, ибо кода получается существенно больше при аналогичном выхлопе. Подобный инцидент у меня случился году в 2006, когда я с клиппера мигрировал на пыху, потом было сложно писать на клиппере, ибо он убог. Пока я не знал пыхи, клиппер мне казался весьма недурным языком. :)

    В общем материалов и приёмов пришлось освоить массу, на все про все у меня ушло более 1.5 лет в режиме 2-4+ часа ежедневных занятий. За это время я умудрился завалить порядка 10 собесов, пока, наконец, не выстрелило.

    Тем не менее мне еще очень многому предстоит научиться, т.к., по сути, мой потенциал - это матёрый сеньёр/архитектор, а реально я пока мидл по части фронтенда. :) Рассчитываю за следующие пару лет устранить этот досадный разрыв.

    Это я все к тому написал, что переучиться можно в любом возрасте (мне 36), было бы желание и упорство.

    В общем я настоятельно рекомендую упор делать в JS/HTML5+/CSS3+ и React/Vue (хотя тут по вкусу, но на эти два "фреймворка" приходится существенная доля вакансий и заказов).

    ВАЖНО! Если раньше не доводилось программировать, то в обязательном порядке параллельно с JS нужно освоить базовые знания/навыки в алгоритмах и структурах данных, а, так же, базовый уровень в информационных технологиях, иначе многое будет просто непонятно, будешь буксовать часами и днями на всяких глупостях.

    P.S.: На htmlacademy курс мне нравится (я там подрабатываю наставником). Однако мне очень хочется, чтобы курсанты приходили несколько более подготовленные по части алгоритмов и структур данных.
    Ответ написан
    2 комментария
  • И снова курсы веб разработки?

    e-antonov
    @e-antonov
    Сначала пройдите бесплатные курсы на https://htmlacademy.ru/
    Потом пройдите платный интенсив либо там же, либо на https://loftschool.com/
    На вашем месте я бы выбрал интенсив от https://loftschool.com/ либо попроще https://loftschool.com/course/web-beginner либо посложнее https://loftschool.com/course/web-development в зависимости от текущего уровня знаний.

    К тому моменту как вы окончите интенсив у вас будет определенное знание html, css, препроцессоров, сборщиков, jquery и javascript + как минимум один выпускной проект в портфолио на гитхабе.

    Далее вы можете брать уже готовые макеты, либо на этих ресурсах, либо где-то еще и сделать себе еще 2-3 готовых проекта для портфолио. Чтобы кто-то их проверял - вы можете договориться по сходной цене с вашим наставником на интенсиве, я думаю он не откажется.

    В результате со своими знаниями и опытом надо устраиваться на работу. Желательно не фриланс. Ибо на фрилансе вас никто не контролирует, никто не поучает, не с кого взять пример. Развитие там минимальное.

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

    Удачи и успехов.
    Ответ написан
    Комментировать