Задать вопрос
  • Как найти и заменить несколько вхождений в тексте одним скриптом?

    neuotq
    @neuotq
    Прокрастинация
    Легче всего, чтобы не парится.
    Примерно так, писал без тестирования, но идея понятная надеюсь
    const replacePairs= {'было1': 'стало1', 'было2': 'стало2', 'было3': 'стало3'};
    $("body").children().each(function() {
      let currentNode = $(this);
      for (const pair in replacePairs) {
         currentNode.html(currentNode.html().replace(/`${pair}`/g, `${replacePairs[pair]}`));
      }
    });
    Ответ написан
  • Почему контекст вызова разный?

    neuotq
    @neuotq
    Прокрастинация
    Читаем документацию :
    Стрелочные функции не содержат собственный контекст this, а используют значение this окружающего контекста.
    Ответ написан
    1 комментарий
  • Почему видео работает после закрытия?

    neuotq
    @neuotq
    Прокрастинация
    Я не лез прям разбираться в ваш код на сайте, это неудобно.
    Но проблема не в плагине. Плагин делает только две штуки: ставит превьюшку видео как обычную картинку, по клику динамически загружается iframe всего плеера youtube. Всё.
    Ваша задача, реализовать новые функции по зыкрытию модельного окна.
    Алгоритм:
    1. Отслеживаете событие закрытие окна.
    2. Когда событие сработало вы либо, через youtube js api ставите плеер на паузу (не знаю насколько это возможно в вашем варианте) либо полностью сами удаляете весь плеер, и восстанавливаете вид поумолчению, те то как должен выглядит код html с самого начала тег div с параметрами, но тут вопрос насколько динамически отслеживает библиотека, поэтому наверное легче будет снести вообще всё оттуда. А инициализировтаь div и библиотеку lazyYT динамически каждый раз когда модалка открывается.
    Вообще конечно всё корявенько по совремнным меркам.

    А вообще советую использовать тогда лучше уж plyr вмеcто устаревшего lazyYT , у него хотя бы api есть для удобного управления плеером.
    Ответ написан
    1 комментарий
  • Нормально ли иметь много React компонентов в небольшом проекте?

    neuotq
    @neuotq
    Прокрастинация
    Сразу отмечу что Юрий Бура отличный профессионал своего дела, курс его не изучал, но беглый взгляд показал что поход у него хороший, системный и он старается все же доносить суть. Главная целье его курса научиться пользоваться реактом, понять суть современного подхода к фроентенду в целом.
    Далее уже по существу. Нужно погрузится в саму историю и причны появления Реакта. Инженеры в facebook в одно время сильно замучались строить интерфейсы, генерировать всё эту ерунду было сложно, еще проблемы уязвимостей (куча форм, для комментарией, постов, картинко и тп), недобный и громозкий PHP код заставил их задуматься об упрощении. Хотелось писать интерфейс как обычну функцию с параметрами, поэтому они придумали xhp, которые позволил буквально писать формы сразу в php (hack), легко, наглядно. Быстро видно что происходит, меньше ошибок, и легко использовать код формы (вместе с всей ее логикой построения, это и генерация формы на основе данных, и тп) заного много раз. Этот же подход был очень удобен и для других частей интерфейса, меня, списка постов и тп.
    И это, с развитием новых концепций, браузеров, технологий и требований к быстроте интерфейса вдохновила их перенести этот концепт на JS, так родился React. Его революционность была в том, что на выходе резко упростились любые манипуляция с интерфейсом на фронтенде, сильно упал порог входа, получили легко читаемый и понятный код для решения практических задач (понятно, что при желании можно и тут засрать, но до этого в принципе большенство интерфейсов на js писалось через большие муки, с кучей неудобного кода, компромисами и тд и тп, а теперь все это взял на себя реакт).
    Что мы имеем:
    есть какая-либо часть интерфейса, логически независимая от других, с определенной структурой внутри - делаем компонент. Компонент это не только то, что мы обязательно будем использовать повторно (например), но понятная логически обособленная часть интерфейса, у которой может быть своя логика внутри, и своя функция на сайте снаружи.
    Ничего страшного если сразу всё не продумал или на определенном этапе что-то идёт не идеально и тп.
    Конечно хорошо иметь план на проект и проектировать многие вещи сразу, но рефакторинг, пивоты, изменения - вот реальность жизни.
    Так что не волнуйся, первое что сделай измени восприятие самого интерфейса и приложения в целом. Теперь ты делаешь не сайт на html, а приложение с интерфейсом. Вот когда в таком ключе смотреть, то намного легче.
    Ответ написан
    Комментировать
  • Как грамотно реализовать мультиязычность React и Laravel?

    neuotq
    @neuotq
    Прокрастинация
    Главный спорный вопрос который вам стоит решить: где хранить статичный первод (надписи, что не меняются или меняются редко, например название кнопки - Отправить/Submit, те все то, что мы обычно не храним в БД и редко меняем).
    Варианта два:
    1. Использовать только реакт для этого, тогда берете пакет react-localization, там достаточно простые и понятные принципы, сложностей нет.
    Преимущества: фронт полностью отдельно живёт и не зависит от бэкенда, нет дополнительных прослоек, нет привязки к определенному бэекенду и тп

    2. Использовать возможности локализации Laravel. Но тут все таки все методы той или иной степени костыльности, либо как минимум добавляющий жесткую привязку фронтенд приложения к текущему стеку бэкенда
    Преимущества: можно использовать разные пакеты для интеграции средств редактивования статической локализации в бэкенде.

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

    Теперь вторая часть вопроса. Уже касаемо динамических переводов (это контент, комментарии, и тп, условно говоря всё что мы храним в бд, или храними информацию о них в бд).
    Здесь я советую положится на Laravel, берёте пакет от spatie laravel-translatable, он позволяет быстро строить удобные интерфейсы редактирования/чтения переводов в БД, пишете простое API и ри инициализации react приложения получаете данные нужные вам локализации, либо даже отправляете все сразу (они хранятся в json поле mysql/ваше БД, даже доп преобразований особо не потребуется).
    Но вариант с отправкой только нужной мне нравится больше, смена локали событие редкое, а вот экономия на размере переданных данных будет существенная.

    Ну, а далее уже вешаешь всякие кеширования тп, чтобы всё летало и готово.
    Ответ написан
    3 комментария
  • Как тут обойтись без флоата?

    neuotq
    @neuotq
    Прокрастинация
    https://jsfiddle.net/bvuco1hj/
    Дичь со
    .stars div {
    float: left;
    }

    Убираем.
    Далее, stars_inner делаем realtive, а красный фон абсолютом
    .stars__inner {
      position: relative;
    }
    .stars__progress {
      background: red;
      position: absolute;
      left: 0;
      top: 0;
      z-index: -1;
    }
    Ответ написан
    1 комментарий
  • Какие есть варианты апгрейда ПК за небольшой бюджет?

    neuotq
    @neuotq
    Прокрастинация
    Взять 2 плашки по 8 ГБ оперативной памяти подешевле DDR3 для текущей мамки поцессора. Начать работать, заработать на нормальный полноценный апгрейт на современную актуальную платформу.
    И кстати вполне можно обойтись и относительно малыми средствами, в самом простом случае тебе нужно будет начать с проц+мамка+новая озу 16GB.
    AMD Ryzen 5 3600X
    Gigabyte X570 Aorus
    16GB Corsair Vengeance LPX
    ~30 000 без доставки. Ну тут конечно можно сразу на проце сэкономить, но материнку и память я бы не трогал.
    Ах ну да, и блок питания мы вообще не писали. Нужно думать потянет ли твой текущий.

    Но вкладывать деньги в покупку материнской платы старого поколения, не очень удачный выбор. Разве что если есть прям совсем интересное и выгодное предложение от продавца.
    Ответ написан
  • Как нужно искать open source проекты для дальнейшего участия в них?

    neuotq
    @neuotq
    Прокрастинация
    Лично я советую два источника:
    https://www.codetriage.com/ - специальный сервис который позволяет удобно структурировать опенсурс проекты по issue и языкам, и выбрать для начала работы.
    https://cultofmartians.com/ - интересный проект, приглашение к участию от одной из самых крутых команд в рунете. Ставят задачи, потом есть шанс и подружится с ними ближе.
    Ответ написан
    Комментировать
  • Что все такие лучше использовать во VueJS - собственный синтаксис или JSX?

    neuotq
    @neuotq
    Прокрастинация
    Если проект для себе, либо быстрые прототипы, проверки теорий и тп, то делайте так как привыкли и удобно.
    Если проект относительно крупный, работает несколько человек, то должен быть какой-никакой а стандарт кодирования. И тут нужно уже задуматься а всем ли так будет удобно, а что потом при расширении, а какие подводные камни. В целом, при усложнении логики и куче кастомных компонентов, то почти всегда JSX как минимум легче читается.
    Я лично когда что-то простое и прозрачное, не выходящее за рамки использования стандартных шаблонов Vue, о JSX не вспоминаю. Но а если надо мудрить, то так просто удобнее читать код, это как минимум.

    Но повторюсь:
    • маленький проект, быстрый, делаете лично вы - пиши как удобно и привык.
    • что-то больше, несколько разработчиков - вы должны договорится о правилах и следовать им, использование JSX обычно будет хорошей практикой для написания и поддержки кода.

    А так, Vue с JSX дружит, поддерживается.
    Ответ написан
    2 комментария
  • Laravel - при запуске миграций выдает ошибку - Unknown database 'laravel'?

    neuotq
    @neuotq
    Прокрастинация
    Скорее всего настройки просто скешировались.
    Выполните в консоле следующую команду
    php artisan config:clear
    Ответ написан
    Комментировать
  • Стоит ли переходить с php на java?

    neuotq
    @neuotq
    Прокрастинация
    Язык это инструмент.
    Если вы начинаете работать в области где используется другой инструмент, то да стоит выучить. И это вне зависимости от самого языка. Эти бесконечные гонки за мега правильным выбором именного того языка чтобы выучить в 2020 году, бла бла бла - пустой звон. Есть спрос, вам нравится, у вас получается? Берите учите.
    PS тема выбора технологии/стека архитектором приложения конечно же совсем иной вопрос.
    Ответ написан
    Комментировать
  • Как называется это?

    neuotq
    @neuotq
    Прокрастинация
    Квизы (от англ. - quizzes - викторины), модный последние два года метод лидогенерации либо метод заставить пользователя проделать определенные шаги. Но в подавляющем числе случаев конечно же используется для сборы контактов.
    К сожалению сегодня их стали слишком часто использовать там где не нужно.
    Ну и да, один из кейсов это совмещение с чат ботом, что помогает сразу же направить человека к нужному специалисту, либо не тратить время менеджера на первичный опрос клиента, и тд и тп
    Ответ написан
  • Запрет нажатия на колесико?

    neuotq
    @neuotq
    Прокрастинация
    Почти 100% вероятность что на таких ссылках(если это реальная ссылка, тег a с заполненным href) стоит какой-либо обработчик js на событие click. Те ссылка и нажатия скорее всего эмулируются через стандартное событие click, при этом не учитывая что бывает клик средней кнопкой. Поэтому браузер не считает элемент активной ссылкой и средняя кнопка работает на своё заданной поведение по умолчанию(обычно это включение скролла мышкой).
    Ответ написан
    Комментировать
  • Как организовать авторизацию через соцсеть на мобильном, когда запрос перехватывает нативное приложение соцсети?

    neuotq
    @neuotq
    Прокрастинация
    Сервис воркер - промис .
    Работает сервис воркер, промис ждет и ловит событие с сервера.
    Ну а так как ты говоришь что пользователь видит твою служебную страницу, значит в целом все работает.
    На служебной странице показываешь сообщение "Теперь вы авторизованы и можете вернуться на сайт" и создаешь событие которые отправляешь на фронт(его там эждет запущенные промис). Ну а далее все так же как у тебя сейчас.
    Ответ написан
    Комментировать
  • Как сделать фильтры для фотографий как в приложении Prisma?

    neuotq
    @neuotq
    Прокрастинация
    Не выйдет. В данный момент на фронтенде подобное делать "дороговато"(хотя многое уже вот вот) , поэтому нужно делать на бекенде. Призма использует умные алгоритмы распознавания фото и наложения фильтров на основе этого.
    Короче говоря это не тривиальная задача, на порядки сложнее классических "инстаграммных" фильтров.
    Ответ написан
    Комментировать
  • Как настроить slug в Laravel?

    neuotq
    @neuotq
    Прокрастинация
    Самый простой способ это:
    public function page($slug) {
    $page = Page::where('slug', $slug)->firstOrFail();
    
    return view('template.pages', [
      'pages' => $page
     ]);
    }
    Ответ написан
    3 комментария
  • Не могу загрузить Laravel?

    neuotq
    @neuotq
    Прокрастинация
    При установке Laravel с нуля или при первой деплое нужно создать свой .env файл, например на основе примера что идет в поставке (команда для Linux), все команды выполнять в корне директории с проектом:
    cp .env.example .env
    После этого нужно сгенерировать ключ, который ларавел активно использует для шифрования, генерации csrf и тп
    php artisan key:generate
    Ответ написан
    Комментировать
  • После перехода на https я получаю ошибку. Почему так происходит?

    neuotq
    @neuotq
    Прокрастинация
    1. Проверить .env файл APP_URL= установи с https:// , хотя обычно это не влияет, но потенциально может использоваться где-либо и в зависимости от настроек http сервера выдавать ошибку.
    2. Очищаем кеш настроек:
    php artisan config:clear
    php artisan config:cache
    3. Очищаем общий кеш
    php artisan cache:clear
    Ответ написан
  • Как в Datatables запустить функцию при появлении определенного значения в ячейке?

    neuotq
    @neuotq
    Прокрастинация
    Есть метод columns().data() - позволяет получать данные в ячейках из выбранного(по селектору) столбца(ов). Для отдельного столба аналогичная функция
    Там же в примерах есть вот этот код:
    var table = $('#example').DataTable();
     
    var idx = table
        .columns( '.check' )
        .data()
        .eq( 0 ) // Reduce the 2D array into a 1D array of data
        .indexOf( '0' ); //Ищем нолик
     
    if ( idx === -1 ) {
        alert( 'Нолик не найден' );
    }
    else {
        alert( 'Нолик найден' );
    }
    Ответ написан
    1 комментарий
  • Как перекинуть работу сервера на пользовательскую часть?

    neuotq
    @neuotq
    Прокрастинация
    В вашем случае, чтобы не погружаться во все эти состояния приложений и новый фронтенд с реактивными компонентами, легче всего будет использовать DataTable библиотека для Jquery с крайне широким функционалом по фильтрации таблиц, в том числе с работой только на клиенте с полностью загруженными данными изначально.
    Библиотека не сложная, почитайте документацию, поиграйтесь на сайте с примерами я думаю вы быстро решите вашу задачу.
    Ответ написан