Задать вопрос
  • Существует ли способ получить список классов, которые используют тот или иной аттрибут?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Includ'ите все файлы, содержащие ваши классы, получаете список имён всех классов (get_declared_classes), для каждого делаете рефлексию (new ReflectionClass), и проверяете список атрибутов (getAttributes).
    Ответ написан
    Комментировать
  • Как удалять теги из массива, которые уже не используются?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Зайдите с другой стороны - вместо удаления того, чего больше нет, получите то, что есть, и замените массив:

    tags = Array.from(new Set(data.flatMap(n => n.tags)));

    Если массив по какой-то причине заменять нельзя, тогда удалите все элементы из существующего и запишите новые:

    tags.splice(0, tags.length, ...new Set(data.flatMap(n => n.tags)));
    Ответ написан
    Комментировать
  • Почему нельзя клонировать события?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Ну потому что не берёт: The structured clone algorithm > Supported types

    Cloning DOM nodes likewise throws a DataCloneError exception.
    Как минимум нельзя клонировать DOM, а в Event есть на него ссылки.
    Ответ написан
    1 комментарий
  • В чём деловая польза нейросетей?

    vpetrov
    @vpetrov
    частный SEO-специалист
    Странный вопрос.
    Нейросеть способна обработать такой объём данных, который никакой человек обработать физически не в состоянии. Если вам нужны найти скрытые связи, из монолита вычленить скульптуру, вообще работать с данными - тут нейросеть незаменима.
    То, о чём вы говорите - это крайне попсовое и глупое применение мощнейшего инструмента. И этот инструмент в доступе уже лет примерно 20. Просто кожаным показали самые примитивные возможности - и этого хватило, чтобы массы забились в оргазме и ужасе.
    Ответ написан
    Комментировать
  • Есть ли статьи, которые приводят наглядные примеры того, как код на rust превосходит код на других языках?

    vabka
    @vabka Куратор тега Rust

    Особенно там, где был использован язык Си или С++

    (если исключить memory safety и fearless concurrency)
    1. Хороших плюсовиков найти всё сложнее, ибо молодые разработчики часто хотят что-то более современное/простое/приятное.
    2. Переход с какого-нибудь более высокоуровнего языка на Rust гораздо легче, чем на C++
    3. DX у Rust на порядо лучше.
    4. Код на Rust на порядок более выразительный, чем код на Си

    За счёт этого поддержка кодовой базы на Rust заметно дешевле выходит

    Например вот что Тинькофф пишет:

    Наш Процессинговый Центр занимается разработкой финансовых систем, критичных к даунтайму и времени обработки. Изначально мы делали все свои продукты либо на чистом Си, либо на плюсах (C++14), однако пару лет назад мы переписали большой кусок нашего бэкенда на Rust, и нам настолько понравилось, что теперь все наши новые процессинговые сервисы пишутся на нём.



    Мне бы хотелось видеть какое-то сравнение, что вот так стало сильно лучше и безопаснее, а вот было так написано изначально на оригинальном языке

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


    ну тут все-равно unsafe

    В проектах на Rust он явный и от него можно избавиться, завернув в безопасную обёртку, которая будет гарантировать корректную работу с памятью и ffi.
    В проектах на C++ у тебя по факту всё является unsafe.

    ну, нам еще нужен подсчет ссылок

    В плюсах тоже активно пользуются подсчётом ссылок и всякими умными указателями, если по коду не очевидно, когда можно будет освободить память
    Ответ написан
    6 комментариев
  • Зачем перед str ставить +?

    axifive
    @axifive
    Software Engineer
    Чтобы преобразовать строку в число

    +"76" == Number("76")
    Ответ написан
    3 комментария
  • Как с помощью input открыть нужный элемент массива?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    1. Код стоит оформлять соответствующим образом - с помощью тэга <code> который доступен в редакторе с помощью кнопки </>.
    2. Нужно иметь знания обработки событий. Например обработка клика по кнопке.
    3. Знания вывода на экран (Вы не указываете как именно должно выводиться, поэтому в элементарном примере это alert)
    4. Знания работы с полями ввода и поиском элементов в dom. То есть нужно будет найти инпут в DOM дереве и считать его свойство value.
    5. Знания по работе с массивами. А именно .filter - для отсеивания не соответствующих элементов.
    6. Ну и скорее всего метод .includes тоже пригодится для проверки вхождения введённого текста в genre элементов массива.
    7. Ну и само собой понимание что такое объект и как считывать его свойства.

    итого на псевдокоде:
    по нажатию на кнопку --> взять значение из инпута --> прогнать исходный массив через фильтр по значению инпута и свойству genre --> вывести результат на экран
    Ответ написан
    Комментировать
  • Как работать внутри двух контейнерах через vscode?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Открыть 2 окна vscode?
    Ответ написан
    2 комментария
  • Разделить платный доступ к Wi-Fi на несколько человек?

    Sanes
    @Sanes
    Не связывайтесь с интернетами. Тем более с непонятными людьми. Время неспокойное, будете крайним.
    Этим должен заниматься провайдер.
    Если всё же решили поиграть в рулетку, то смотрите решения на базе Captive portal.
    Можно и вручную выдавать пароль.
    Ответ написан
    1 комментарий
  • Как сделать что-бы при клике на кнопку блоки добавлялись по очереди?

    0xD34F
    @0xD34F Куратор тега JavaScript
    О каких кнопках и блоках идёт речь; по сколько блоков надо показывать при клике на кнопку; как показать блоки, если известна кликнутая кнопка:

    const buttonSelector = '.added';
    const itemSelector = '.added-block';
    const activeClass = '_active';
    const notActiveSelector = `${itemSelector}:not(.${activeClass})`;
    const newActiveCount = 2;
    
    function onButtonClick(button) {
      const items = [...button.parentNode.querySelectorAll(notActiveSelector)];
      items.slice(0, newActiveCount).forEach(n => n.classList.add(activeClass));
      button.disabled = items.length <= newActiveCount;
    }

    Назначаем обработчик клика каждой кнопке индивидуально:

    document.querySelectorAll(buttonSelector).forEach(function(n) {
      n.addEventListener('click', this);
    }, e => onButtonClick(e.currentTarget));

    Или, применяем делегирование:

    document.addEventListener('click', ({ target: t }) =>
      (t = t.closest(buttonSelector)) &&  onButtonClick(t)
    );
    Ответ написан
    Комментировать
  • Дан массив с числами. Как найти сумму элементов, расположенных от начала массива до первого отрицательного числа?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    let sum = 0;
    for (let i = 0; i < arr.length && arr[i] >= 0; i += 1) {
      sum += arr[i];
    }
    Ответ написан
    Комментировать
  • Как найти фрагмент кода который меняет тег при загрузке страницы?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Через брейкпойнт не реально найти, скриптов слишком много, к тому же я думаю что меняет какой то внешний скрипт.
    642712badd85e953685607.png
    Ответ написан
    3 комментария
  • Как вывести любую часть древовидного списка?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Для реализации этой задачи хорошо подходит хранение в виде Nested Set. Хранение в виде Adjacency List подразумевает рекурсию и полную выборку.

    Но самое простое решение в данном случае - просто закешировать отсортированную выборку, не меняя хранение, и резать для пагинации уже её.
    Ответ написан
    Комментировать
  • Лучше выбрать Symfony или Laravel для новичка и виртуального хостинга?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Изи вэй - Laravel. Это сахарная прослойка между тобой и симфони.
    Ответ написан
    Комментировать
  • Как в javascript перехватывать вызов методов объекта?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Хук get не позволяет получить параметры вызова метода

    Позволяет. Возвращайте функцию, которая будет содержать вызов метода плюс нужные вам действия с параметрами:

    function sequence(functions) {
      return new Proxy(functions, {
        get(target, key) {
          const val = target[key];
          return val instanceof Function
            ? (...args) => {
                console.log(`method "${key}" called with arguments: `, args);
                return val.apply(target, args);
              }
            : val;
        },
      });
    }
    Ответ написан
    Комментировать
  • Как переместить 1 символ в конец строки?

    Alexandroppolus
    @Alexandroppolus
    кодир
    function scrollingText(str) {
        const upper = str.toUpperCase().repeat(2);
        return [...str].map((c, i) => upper.substr(i, str.length));
    }
    
    scrollingText('robot');
    Ответ написан
    Комментировать
  • Почему for игнорирует if?

    Dr_Elvis
    @Dr_Elvis
    В гугле забанен
    Почувствуйте разницу
    console.log(10+5);
    console.log("10+5");
    Ответ написан
    Комментировать
  • Как отловить баг на продакшене?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    боюсь, такое логирование уложит спать боевой проект. Хотя ненадолго можно попробовать.
    Я про логирование запросов к Mongo..
    Во первых все логировать не нужно. Можно тупо в коде доктрины апдейты только ловить и логировать, можно иначе извернуться, но вам нужны, очевидно, только апдейты. Которых сомневаюсь что мильён в секунду. Ну и во вторых - просто малореально что-то другое придумать...
    Ответ написан
    Комментировать
  • Могу я задать вопрос по коду, как мегаджун JS?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    1) Плохой код, который выполняет задачу, лучше чем отсутствие кода
    2) Перед работой составьте примерный план, например: "сначала получаем данные, потом с ними делаем это или это, потом выводим..." Это помогает не лепить откровенную фигню по ходу дела и не переписывать все по 10 раз.
    3) Смысл рассматривать простыню из кода новичка отсутствует, так как это похоже на оценку походки будущей фотомодели по первым шагам в ходунках. Никто не пишет хороший код сразу, учиться и писать много - лучший путь обучения.
    4) Смотрите на чужие готовые решения, думайте как использовать интересные приемы, именно свои выводы и ошибки делают вас программистом+, а не гов*окодером. Задатки и желание у вас есть, значит все получится.
    Ответ написан
    Комментировать