Задать вопрос
  • В каком формате рендерить видео разрешением 13440*2160?

    @ewgenc
    Так вам ТЗ должен был дать заказчик этого видео, в каком формате/контейнере что и как должно быть.
    Ответ написан
    Комментировать
  • При подключении жесткого диска HDD винда бесконечно грузится, как исправить?

    @Drno
    Отключите проверку смарт в биос
    И это не винда буксует, это БИОС ругается. До загрузки винды ПК еще не дошел
    Ответ написан
    4 комментария
  • Что лучше использовать в связке с Vue - Webpack или Vite?

    @deliro
    Бери vite. Вебпак- неуклюжее, лагающее, монструозное говно мамонта
    Ответ написан
    Комментировать
  • Как завести акк на AWS из России (по состоянию на 20 июня 2022) - появились какие-то годные решения?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Cейчас мир сошел с ума. Люди пачками принимают решения в ущерб себе по причине их политической мотивированности.
    Онлайн-игры не принимают платежи от игроков.
    Производители уходят с рынков, на которых торговали тридцать лет
    Потребители вынуждены ломать бизнес, чтобы заместить производителя, на которого ориентировались годами

    Эрик Блейн, которого больше знают под псевдонимом Джордж Оруэлл, нервно курит в сторонке.

    AWS может быть и рад был бы Вам что-то продать - но ему не дают :) И еще долго давать не будут. И не факт, что когда "там" разрешат - его не забанят "тут"

    "Я знал, что будет плохо, но не знал, что так скоро" (С) В. Цой "Фильмы"
    Ответ написан
  • Где используется Map и Set в JavaScript (примеры использования)?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Set удобен, например, когда нужно оставить из набора данных только уникальные.
    пример кода
    const data = [ 1, 2, 2, 3, 3, 3 ];
    const unique = [...new Set(data)];
    unique // [ 1, 2, 3 ]

    Map хорош тем, что ключами в нём могут быть и объекты. Например, HTML-элементы, для которых захочется хранить какие-то данные. И Map запоминает порядок добавления элементов, что может быть полезно при переборе.
    Ответ написан
    Комментировать
  • Что происходит при экспорте видео?

    1. у видео кодеков ещё масса параметров, влияющих на качество и объем файла. Но самый поверхностный – битрейт. Увеличился битрейт – файл стал тяжелее.

    2. качество при каждом перекодировании — падает. Поэтому лучше избегать перекодирования там, где оно необязательно. Например, когда только лишь вырезаете часть по времени, перекодировать не нужно, т.к. картинка остаётся та же самая. Поэтому п.3:

    3. просто обрезать видео лучше без перекодирования. Это можно сделать прямо из командной строки могучим инструментом ffmpeg. Примерная команда:
    ffmpeg \
      -ss 15 \         # пропустить 15 секунд от начала
      -i Source.mp4 \  # имя исходного файла
      -t 30 \          # продолжительность 30 сек.
      -c copy \        # кодек "копия" - не перекодировать
      Result.mp4       # что получится - в этот файл
    только удалите все комментарии – после слешей должен сразу быть перенос строки. Этот вариант, пожалуй, самый быстрый из возможных.
    Ответ написан
    4 комментария
  • Как правильно работать с Promise?

    Alexandroppolus
    @Alexandroppolus
    кодир
    можно грузить параллельно, если они не зависят друг от друга и последовательность загрузки не важна

    await Promise.all([
        'https://learn.javascript.ru/article/promise-chaining/one.js',
        'https://learn.javascript.ru/article/promise-chaining/two.js',
        'https://learn.javascript.ru/article/promise-chaining/three.js',
    ].map(loadScript));
    
    one();
    two();
    three();
    Ответ написан
    Комментировать
  • Как правильно работать с Promise?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Вопрос если разница в таких записях?

    Только в передаваемом значении:
    • resolve(script) передаст дальше по цепочке этот script (который никому не нужен, похоже).
    • script.onload = resolve передаст по цепочке объект события (тоже всем по барабану)

    почему такой ее вызов дает ошибку script.onload = resolve(script);
    потому, что нужна функция, которую вызовут позже, а не мгновенный результат её выполнения.
    Ответ написан
    Комментировать
  • Зачем нужен jQuery для AJAX?

    Adamos
    @Adamos
    jQuery с AJAX - прекрасный индикатор того, насколько устарела статья ;)
    Пока не сдох Ослик и встречались всякие маргинальные мобильные браузеры, обработку запросов к серверу приходилось подпирать костылями на всякий нестандартный случай, и jQuery с этим уверенно справлялся. Сейчас стандарт устоялся, повсеместно соблюдается и актуальность этой подпорки околонулевая.
    Ответ написан
    5 комментариев
  • Почему у функции в setInterval "пишем" одни скобки а не две вызывая ее при замыкании?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Потому, что в setInterval() первым аргументом надо передать функцию (он сам вызовет её потом),
    а «без setInterval» — для получения результата надо эту же функцию ещё и вызвать самим.

    длинный ответ
    Функцию в JavaScript можно «положить в переменную», передать как аргумент при вызове другой функции или получить как результат вызова ещё одной функции. Так же как "строку" или число 42.

    В этом выражении, смотрите, есть не 1, а целых 2 стрелочки:
    (param) => () => {
      console.log("Выхлоп!" + param);
    }
    Две стрелочки, значит, тут две функции. Одна вокруг второй. Первая, та, что снаружи, принимает аргументом param, и возвращает вторую функцию () => { console.log("Выхлоп!" + param); } Причём вернувшаяся функция «запомнила» значение param внешней обёртки и будет его использовать. Это обёртывание называется «Замыкание» или "closure".

    Теперь скобки при вызове. У нас матрёшка из двух функций: function(){ return function() {}; }

    Чтобы вызвать внешнюю, нужны первые скобки: ((param) => () => console.log(param))(6) – этот вызов внешней с аргументом 6 даст результатом внутреннюю функцию, которая запомнила значение param. И мы имеем на руках внутреннюю функцию.

    Чтобы вызвать внутреннюю, нужны вторые скобки: ((param) => () => console.log(param))(6)()

    Итого, две функции — два вызова — две пары скобок.

    В setInterval() первым аргументом надо передать не конечный результат, а функцию — её вызовут через некоторое время, не сразу. Тут передают внутреннюю функцию. Поэтому скобки всего одни: с одними скобками получаем внутреннюю функцию.
    Ответ написан
    1 комментарий
  • VUE 3 как убрать эту ошибку?

    @Kostik_1993
    Web Developer
    Если компонент состоит из одного слова например Header то принято писать его TheHeader, TheFooter
    Ответ написан
    3 комментария
  • Безопастно ли использовать в laravel DB::select?

    DevMan
    @DevMan
    безопасно.
    люди, использующие фреймворки тупо для синтаксиса, а не используя их средства (query builder или модели? не, не слышал) – вообще бессмертные.
    правда, недолго.
    Ответ написан
    24 комментария
  • Как ждать выполнение функции внутри другой функции?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    async function load_page(num) {
      const response = await fetch(...);
      // редактирование html
    }
    async function go_to_post(post_id) {
      //код
      await load_page(page);
      //код
    }
    Ответ написан
    Комментировать
  • Как научиться декомпозировать задачи?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Переодически может появиться очень крупная задача вида "нужно то не знай что". Мне приходится с ней разбираться и если с первым этапом - конкретизация требований все более-менее понятно, то с дальнейшими действиями все совсем плохо.

    Ситуация - знакомая. Во первых это - не задача. Это issue типа investigation. Его результатом должен быть не финальный продукт а просто новый сет issues. Оценивать время можно как угодно. Можно писать 1 день для начала. Все равно никто не сможет оспорить вашу оценку.

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

    Это - риски и их просто надо заранее проговорить на митингах. Просто сообщайте заказчику что задача - рисковая и если что-то не так пойдет - то время надо будет сдвинуть.
    Ответ написан
    Комментировать
  • Как научиться декомпозировать задачи?

    Adamos
    @Adamos
    Дробить задачу еще на более мелкие совсем не охота

    Ну и зря. Вообще-то технологиям планирования совместной работы уже не первый век, и важнейший этап - как раз выделение тех участков работы, которые критичны для начала работы на других участках, и подтягивание их на диаграмме Ганта как можно раньше, чтобы уменьшить простой. Потом уже менее критичные задачи ложатся на свободные участки и параллелятся относительно друг друга.
    Так, например, нас учили делать генплан строительства еще 30 лет назад. До популяризации в РФ всяких там Скрамов и Канбанов.
    Ответ написан
    8 комментариев
  • Почему не работает v-for для объекта?

    @plot_pa123
    У вас данные это объект ({{...}, {...}, {...}, ...}), попробуйте преобразовать объект в массив чтобы это выглядело вот так - [{...}, {...}, {...}]
    Ответ написан
    5 комментариев
  • Почему не видно метода класса?

    Alexandroppolus
    @Alexandroppolus
    кодир
    inputElement.addEventListener("input", function() {

    Замени это на
    inputElement.addEventListener("input", () => {
    Должно попустить
    Ответ написан
    1 комментарий
  • Существуют ли какие-то устоявшиеся паттерны, если я хочу всё приложение сделать в виде Laravel-Composer-пакетов?

    neuotq
    @neuotq
    Прокрастинация
    Насчёт конкретно подхода о котором вы говорите не скажу, скорее всего это плохая идея. Видел пару примеров несколько лет назад, бОльшая часть этих модульных подходов было нечто среднее между недомикросервисного подохода, с примесью разработки composer пакетов и элементами (концептуальными) плагинов wordpress.
    Или другой подход где "модули" laravel разделялись пространством имен и особой структурой, с некоторыми костылями для поддержки разделения кода. Этот подход формально лучше, но по факту обычное не нужное усложнение проекта. Но если вам интересно, можете изучить https://github.com/nWidart/laravel-modules
    Но как по мне, если уж и заморачиваться в подобном плане, то скорее наоборот отвязкой максимальной ядра приложения от любого фреймворка framework-agnostic подход.
    А так... Главный принцип, в целом кстати во многом пересекается с принципами микро сервисной архитектуры:
    есть определенная часть/логика приложения, которая может выполнять свою функцию независимо, которую могут писать разработчики независимо, можно выделить в отдельный пакет. Например, вы придумали свой крутой прокси изображений, и он как-то явно выходит за рамки вашей бизнес-логики приложения, более того возможно он пригодится в ваших других приложениях (или вы хотите поделиться с миром) делайте отдельный пакет.
    Ну и конечно у таких пакетов, могут быть зависимости в виде других пакетов.
    А вот прям делать декомпозицию приложения на пакеты, ради декомпозиции не стоит. Только если есть конкретный смысл что-то выделить.
    Примеры вот хорошие у Spatie https://spatie.be/open-source?search=&sort=-downloads .
    Там же можно посмотреть, как пакеты зависят друг от друга, например image от image-optimizer.
    Все их, достаточно популярные, пакеты вышли из практики разработки приложений для клиентов.
    Ближе к вашему примеру это проект Nova https://nova.laravel.com/ и тоже имеет кучу пакетов https://novapackages.com/ .
    Но здесь тоже нужно учитывать, цели самой Nova и почему такая организация. Сама Nova это как бы расширяемый прототип панели управления для CRUD приложений, она универсальная by design, поэтому и нужны доп пакеты, которые закрывают конкретные цели.
    Если у вас целевое приложение, то незачем его корневую бизнес логику куда-то выводить.
    Ответ написан
    1 комментарий
  • Rust мёртв, или только развивается?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смотря для кого. Rust создавался как альтернатива C++ при разработке критичных к безопасности частей кода браузера Mozilla. По бенчмаркам он реально конкурирует с C++ но главное преимущество наверное в том что из него принципиально убрали возможность совершать тупые ошибки такие как использование null-pointers. Тоесть он - безопаснее чем С++. Но мне кажется что решение за использованием Rust - корпоративное а не частное.

    Надо просто мониторить появление соотв. вакансий.

    Ну а если вы - кодер бизнес-логики на Java/C# то вам Rust скорее всего не нужен.
    Ответ написан
    Комментировать