Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
heretic_man

Heretic Man

  • 3
    вклад
  • 50
    вопросов
  • 8
    ответов
  • 75%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Как вывести все остальные поля при операции GROUP BY?

    Akina @Akina
    Сетевой и системный админ, SQL-программист.
    WITH cte AS (
        SELECT *, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY score DESC) rn
        FROM source_table
    )
    SELECT *
    FROM cte
    WHERE rn = 1
    -- ORDER BY score DESC LIMIT nnn
    ;
    Ответ написан 21 сент. 2022
    Комментировать
    Комментировать
  • Как в проходе графа DFS создать массив маршурутов до нужной вершины?

    wataru
    Wataru @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Это вам полный перебор нужен.

    При выходе из функции очищайте пометку visited. При входе добавляйте вершину в массив/стек/список. Там будет храниться пройденный путь. При выходе из функции - убирайте последнюю вершину из пути. Если зашли в конечную вершину - выводите этот стек с вершинами.

    Еще проблемы - visited и массив пути должны быть одни на все рекурсивные вызовы. Или они должны быть глобальными или передавайте их по ссылке рекурсивно.
    Ответ написан 28 апр. 2022
    2 комментария
    2 комментария
  • Что такое LF, CLRF и как с этим бороться?

    saboteur_kiev
    Saboteur @saboteur_kiev Куратор тега Git
    software engineer
    Вы считаете себя программистом, и до сих пор не знаете что в Windows crlf а в Linux lf?

    Настройка в git существует изначально.
    Проблема переноса строк существует с тех пор, когда появился DOS и Windows со своей кодировкой. И чтобы сейчас не изобретали, эта проблема будет оставаться. Точнее не проблема, если есть конфиг.
    В общем ваше нытье удивляет.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Чем Laravel лучше Symfony?

    andreybold
    Андрей @andreybold
    Laravel использует пакеты symfony, делая над ними «обёртку». Пробовал и то, и то, могу сказать что это обычный холивар и никто вам ничего толкового не скажет. Пользуйтесь тем что нравится или что требует заказчик/работодатель. То что какой-то движок популярней другого, это не всегда показатель «плохой»/«хороший».
    P.S. по работе и в личных проектах использую ларку, хотя один проект был сделан на symfony.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Модификация ответов в rest api woocommerce?

    Kozack
    Alex @Kozack
    Thinking about a11y
    Как вариант, попробуйте rest_prepare_{$this->post_type}
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Как добавить php библиотеку в October CMS?

    lautsevich
    Павел Ловцевич @lautsevich
    CTO
    Для того, чтобы использовать Composer месте с October, сам October должен быть установлен через Composer. При установке иным способом ЕМНИП, не получится ничего.

    composer create-project october/october myoctober

    После этого стандартным ставишь нужный пакет:

    composer require ...
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Что указать в поле priceValidUntil при микроразметке?

    alex-1917
    alex-1917 @alex-1917
    Если ответ помог, отметь решением
    Ставь вот так, прямым кодом и пусть гугл подавится)))
    Некоторые особо умные делают расчеты на сервере, типа от даты поступления на склад плюс три года или например если продукты плюс месяц.
    Но если рассудить трезво, а попа у гугла не треснет, делать для ТОЛЬКО НЕГО ОДНОГО лишние операции на сервере??? Эти данные НИКОМУ НИКОГДА НЕ БУДУТ НУЖНЫ, кроме гугла.
    Поэту гугл идет лесом и получает необходимые цифирьки, а мы занимаемся более полезными вещами.
    <div itemprop="offers" itemscope="" itemtype="http://schema.org/Offer">
       .....
       <meta itemprop="priceValidUntil" content="2029-12-31">
       .....
    </div>
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сравнить массив с объектом?

    sergiks
    Сергей Соколов @sergiks Куратор тега JavaScript
    ♬♬
    const arr = [1,2,3,4];
    const obj = [{id:3},{id:5},{id:6}];
    
    const b = obj.map(o => o.id); // получили [3, 5, 6]
    const i = b.filter(el => !arr.includes(el));
    const o = arr.filter(el => !b.includes(el));
    console.log(`из arr удалено ${o.join(',')} и добавлено ${i.join(',')}`);
    // из arr удалено 1,2,4 и добавлено 5,6


    Или более абстрактно:
    const diff = (a,b) => ({
      i: b.filter(x => !a.includes(x)), // in
      o: a.filter(x => !b.includes(x)), // out
    });
    
    const data = diff(arr, obj.map(el => el.id));
    console.log(`из arr удалено ${data.o.join(',')} и добавлено ${data.i.join(',')}`);
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как в html5 video - получить скриншот изображения по определенному тайм коду?

    Kozack
    Alex @Kozack Куратор тега JavaScript
    Thinking about a11y
    Можно сделать так:
    function getVideoImage(path, secs, callback) {
      var me = this
      var video = document.createElement('video');
      
      video.onloadedmetadata = function() {
        if ('function' === typeof secs) {
          secs = secs(this.duration);
        }
        this.currentTime = Math.min(Math.max(0, (secs < 0 ? this.duration : 0) + secs), this.duration);
      };
      video.onseeked = function(e) {
        var canvas = document.createElement('canvas');
        canvas.height = video.videoHeight;
        canvas.width = video.videoWidth;
        var ctx = canvas.getContext('2d');
        ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
        var img = new Image();
        img.src = canvas.toDataURL();
        callback.call(me, img, this.currentTime, e);
      };
      video.onerror = function(e) {
        callback.call(me, undefined, undefined, e);
      };
      video.src = path;
    }
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как добавить и сохранить кастомный js, css на страницу в браузере?

    Kozack
    Alex @Kozack Куратор тега CSS
    Thinking about a11y
    https://developer.chrome.com/extensions/content_scripts
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как добавить и сохранить кастомный js, css на страницу в браузере?

    sotvm
    SVM @sotvm
    Умный поймёт, а дураку и так всё равно.
    Дополнения Tampermonkey Greasemonkey и др. подобные
    можно подключать как css так и javascript
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как понять што не так в куске кода php?

    DevMan
    DevMan @DevMan
    много чего не так: только в первой строке минимум две ошибки, дальше ковырять неохота.
    читайте про экранирование строк.

    """ – ошибка, должно быть "\"" или '"'
    "\" – ошибка, должно быть "\\"
    и все такое
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать чтобы товары, которых нет в наличии выводились в конце - всегда, независимо от сортировки и фильтрации?

    Евгений @atachrus
    Пишу сюда отдельно:

    Далаете кастомный макрос, который при помощи класса selector, обработает все ваши фильтрации и сортировки. Можете заглянуть в родительский класс каталога что бы взять от туда часть кода.

    После уже полученный массив вашей выдачи перибераете foreach таким образом, что бы товары с common_quantity == 0, были в конце массива и только потом передаете его в шаблона на обработку.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как перенести проект на Symfony с одного сайта на другой?

    BoShurik
    BoShurik @BoShurik
    Symfony developer
    Скорее всего на предыдущем хостинге использовался nginx, а на новом хостинге apache. Надо добавить .htaccess с соответствующими правилами
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать скрипт который следит изменениями в файле?

    makssof
    Makssof @makssof
    Web-разработчик
    Получаешь хеш файла, сравниваешь с предыдущем хешем этого же файла, если изменился -- делаешь что задумал.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать скрипт который следит изменениями в файле?

    Кирилл Горелов @Kirill-Gorelov
    С ума с IT
    Берешь исходный файл делаешь из него копию file_bac.php или file_bac.txt
    Спустя время сравниваешь исходный файл с содержимым file_bac.php или file_bac.txt и вуаля, готово.

    Можно даже взять хеш от содержимого обоих файлов и сравнить их.
    Взять содержимое из файла,вариантов куча от file_get_contents до file().

    Одним словом, дерзай)))
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Как на next js реализовать меню навигации с активными ссылками?

    Aves @Aves
    https://github.com/zeit/next.js/tree/canary/exampl...
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему при запуске функции-замыкания, переменная внутри не затирается?

    coderisimo
    coderisimo @coderisimo Куратор тега JavaScript
    Ф-ция makeCounter вызывается ОДИН раз. Соответственно ЕДИНОЖДЫ объявляется и инициализируется единицей переменная count . Данная переменная является частью области видимости созданной при вызове makeCounter. Данная функция возвращает другую функцию (назовем ее f для удобства)

    return function() {
    return count++;
    };


    которая так же имеет доступ к этой области видимости в которой была определена переменная count. Вот и все. Далее вы вызываете эту функцию (f) много раз и каждый раз она работает все с той же переменной count.

    Попробуйте сделать вот так :

    var counter = makeCounter(); //   присвоили функцию у которой своя  СОБСТВЕННАЯ область видимости 
    var counter2 = makeCounter(); //   присвоили функцию у которой своя  СОБСТВЕННАЯ отличная от предыдущей область видимости


    появится две области видимости и у каждой будет свой отдельный count.
    попробуйте повызывать

    console.log( counter());
    console.log( counter2());
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему при запуске функции-замыкания, переменная внутри не затирается?

    i1yas @i1yas
    Потому что вызов функции makeCounter сохранен в переменную counter, которая уже потом многократно вызывается.
    Перезапись переменной count была если бы функцию вызывали так
    makeCounter()()
    makeCounter()()
    makeCounter()()
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Как строку "false" перевести в булиан тип false?

    Vlad_IT
    Владимир Проскурин @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Вот так грязно
    #1
    !!['false', 'true'].indexOf('true') // true
    !!['false', 'true'].indexOf('false') // false

    (не используйте этот код).
    #2
    !!('true'.length - 5) // true
    !!('false'.length - 5) // false

    (этот тоже пожалуйста не используйте).
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • nedosekinstanislav
    Stanislav
    • 7 ответов
    • 0 вопросов
  • Drno
    • 6 ответов
    • 0 вопросов
  • alexey-m-ukolov
    Алексей Уколов
    • 6 ответов
    • 0 вопросов
  • mayton2019
    • 5 ответов
    • 0 вопросов
  • GNUBack
    • 5 ответов
    • 0 вопросов
  • Rsa97
    Rsa97
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации