• Как сделать чтобы текст рос вверх?

    neuotq
    @neuotq
    Прокрастинация
    Короче, забудь про абсолюты как про страшный сон. Очень редко, только когда другое ну никак нельзя.
    Сделать можно разными способами, например на флексах
    Ответ написан
    3 комментария
  • Как в Laravel выполнить задачу время которой указано в БД?

    neuotq
    @neuotq
    Прокрастинация
    Самый простой способ это начать с планировщика https://laravel.com/docs/9.x/scheduling, там допустим сделать задание(уже вам виднее Job или ещё как), который будет в момент запуска проверять вашу БД на текущие задачи и делать их.
    Ну те сделали, например каждую минуту
    $schedule->call(new DoCurrentJobsFromDb)->everyMinute();

    А в DoCurrentJobsFromDb запрос к базе, выборка по времени текущих заданий и отправка их на немедленное выполнение(тут снова тем или иным способом, подходящим под вашу архитектуру).
    Параметры частоты уже выбираете из ваших соображений.
    Ответ написан
    2 комментария
  • Безопасно ли хранить api ключ в .env?

    neuotq
    @neuotq
    Прокрастинация
    Смотрите. Самое главное хранить в безопасном месте.
    Если .env лежит на прод сервере в непубличной папке - то зачастую это считается достаточно безопасным местом. Ведь туда попадёт только администратор сервера или ответственный за деплой. Эти люди могут иметь доступ.
    Считается очень плохой практикой хард кодить эти ключи в код, а также добавлять .env в репозиторий.
    Поэтому, если у вас этот файл не в репозитории, а вы его настроили и создали на сервере в не публичной (с тчк зрения вбе сервера) папке - то всё ок.
    Ответ написан
    Комментировать
  • Как убрать одинаковую высоту Flex блоков div?

    neuotq
    @neuotq
    Прокрастинация
    Если именно на флексах, то можно хакать через flex-direction: column и задавать высоту этого контейнера. Тогда они складываться у вас будут по вертикалям без лишних пустот. Но это такой полукостыльный хак, хотя в некоторых ситуациях допустим и помогает.
    Ответ написан
    Комментировать
  • Как одновременно получить доступ к mysql-контейнеру в docker и со стороны других контейнеров и со стороны хостовой машины?

    neuotq
    @neuotq
    Прокрастинация
    'localhost', 'mysql' - это всего лишь указание на хост для коннекта.
    В самом простом случае, можете на своей машине прописать что , mysql -> 127.0.0.1
    Ответ написан
    1 комментарий
  • Как лучше подключать scss bem блоки?

    neuotq
    @neuotq
    Прокрастинация
    У вас немного напутанно в концепции БЭМ
    Вы либо убираете с той кнопки стиль .button
    Либо у вас для кнопки в карточке у кнопки в классах должно быть нечтно такое:
    .button .button_card, те у вас модификация элемента button, если вы уж хотите развивать от центрального button.
    Тогда в своём src/modules/card.scss (если следовать вашей структуре)
    .card {
    /* */
    }
    .button {
        &_card {
            width: 100%;
        }
    }

    Ну либо он вовсе не связан с тем бутон и тогда да, это вложенный элемент. Без родительского стиля .button и у него все стили свои в классе .card__button.
    Ответ написан
    8 комментариев
  • Как в swiper js сделать вой порядок свайпа слайдов?

    neuotq
    @neuotq
    Прокрастинация
    У swiper отличный API, просто отключаешь авто loop и пишешь свою логику, используя их методы для перехода к следующему слайду по порядку, или по какому-то другому признаку.
    Ответ написан
    Комментировать
  • Как поступить в ситуации, когда настройка rem`ов не подходит к каким-то элементам на сайте?

    neuotq
    @neuotq
    Прокрастинация
    Ответ немного не в тему, но подобная практика что вы приводите относительно плохая. Одно из ключевых удобств и причин использование rem — это уважение настроек браузера пользователя. Те мы насильно не переписываем их значения. Зная базовый стандартный размер шрифта в 16px, мы можем примерно понимать, как всё будет устроено. При этом если человек у себя изменил шрифт в настройках, то сайт будет выглядеть почти идеально.
    А в вашем случае, выходит костыльный путь, который даёт ощущение меньшего кода. Так не делают.
    Я уж молчу о том, что сами элементы почти всегда масштабируются не пропорционально на разных устройствах ключевых.
    Ну и подход нужно с mobile-first начинать, а потом, если нужно, корректировать, те условно будет
    //код общий и для мобилок
    .elem {
    //...
    }
    //код для устройств 768++
    @media (min-width: 768px) {
    // ... 
    }
    //код для устройств 768++
    @media (min-width: 768px) {
    // ... 
    }
    //код для устройств 1024++
    @media (min-width: 1024px) {
    // ... 
    }
    //и тп

    Тогда код остается контролируемым, гибким. простым и ясным. Понятно, что и где как себя ведёт.
    А с вашим подходом, будет слишком много крайних случаев, когда нужно будет делать исключения, писать доп правила нарушающие логику, просто чтобы заработало и тп.
    Теперь сам ответ на ваш вопрос, вам тогда нужно в каждое значение ваших media queries, помимо html, добавлять и элемент для которого будут свои, исключительные значения, ну условно
    @media(max-width: 991px){
        html{
            font-size: 10px;
        }
       .shapka-element {
            font-size: 12px;
        }
    }
    Ответ написан
    4 комментария
  • Почему querySelector возвращает null?

    neuotq
    @neuotq
    Прокрастинация
    Перезаписываете в цикле
    contactList.appendChild(template)
    Вынести нужно его за цикл
    for(let valueKey in contact.contact_value) {
    //***
    }
    contactList.appendChild(template)
    Ответ написан
    Комментировать
  • Как реализовать карты с мониторингом объкта?

    neuotq
    @neuotq
    Прокрастинация
    Построение маршрутов нетривальная задача и для неё нужно огрмное число данных, так здесь вам придётся использовать API от владельцев этих данных(яндекс карты и тп).
    Трекинг легче. Просто раз в какое-то время сохраняете координаты в базу данных. Расстояние считаете кусочками по формуле геверсинуса, пример с кодом www.movable-type.co.uk/scripts/latlong.html
    Насчет лимитов. Сразу говорю вам не хватит, бесплатные лимиты чисто потестить с друзьями/тестерами. Ну и бюджет зависит от количество запросов, фич что вы используюете. Здесь тоже есть место для автоматизации и кеширования(в ущерб конечно интерактивность и удобства).
    Можете начать с openStreetmaps и для интерфейса. У них даже есть краудсорсевые маршутрные сервисы https://wiki.openstreetmap.org/wiki/Routing https://wiki.openstreetmap.org/wiki/Routing/online...
    Ответ написан
    2 комментария
  • Как сделать чтобы curl срабатывал раньше?

    neuotq
    @neuotq
    Прокрастинация
    Есть функция sleep()
    //SOME CODE
    // sleep for 10 seconds
    sleep(10);
    //SOME CODE AFTER 10 seconds PAUSE

    Но это так себе подход, де факто блокирующий выполнение скрипта(условно как подвис, хотя конечно другое).
    Ответ написан
    Комментировать
  • Добавление собственных CSS элементов поверх сайта при помощи devtools, как правильно?

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

    neuotq
    @neuotq
    Прокрастинация
    У вас есть два пути, у которых есть общая часть это данные о языке оригинале (правда не без подводных камней, есть двуязычные, но пока опустим).
    Первый вариант, вы в Song храните id песни, язык оригинала(пусть сейчас условно строка, 'en' или 'ru', но возможно id языка и связь с другой таблицей), ну и другие мета данные, айди автора, группы и прочее.
    а в отдельной таблице SongTranslations вы храните уже id, id песни, язык(или его id), название, текст.
    Второй вариант, мне он немного больше нравится в самой таблице Song сделать больше текстовое/json поле где мы будем хранить переводы песни в виде json (снова таки возможно он будет сложнее)
    {
    [
    {'en': { 
    title: 'название на английском',
    lyric: 'текст на английском'
    }
    },
    {'ru': { 
    title: 'название на русском,
    lyric: 'текст на русском'
    }
    }
    ]
    }

    Ну идею вы поняли
    Ответ написан
  • Почему не выводится максимальное значение листа бинарного дерева?

    neuotq
    @neuotq
    Прокрастинация
    Здесь у вас происходит объединение строк и js преобразует возвращаемое значение bst.getMax в строку, через вызов toString. Напишите свое преобразование, тогда будет работать как вы ожидаете, либо выводите конкретные данные (.data)
    console.log('Максимум ->' + bst.getMax(bst.root))
    Ответ написан
    Комментировать
  • Как будет лучше написать проект в портфолио, на чистом php или фреймворке?

    neuotq
    @neuotq
    Прокрастинация
    Если очень кратко - фреймворк и это Laravel.
    А если чуть подробней, то важнее показать, что решаешь конкретную проблему, можно даже взять какую-либо среднею проблему из популярных с задач/запросов на фриланс биржах.
    Показать, что понимаешь построение базовой структуры проекта, основные принципы проектирования (условные SOLID) и решаешь определенную задачу приносящую понятную очевидную пользу.
    Последнее тоже важно. Иногда пишут запудренные, оверинжиниринг штуки, но что она решает и зачем нужно ещё разобраться. А тут и понятная проблема, понятное решение, относительно красивый и понятный код.
    Ответ написан
  • Нужно ли добавлять код отслеживания Google Analitics на каждую страницу?

    neuotq
    @neuotq
    Прокрастинация
    Да, код нужно чтобы загружался и срабатывал на каждой странице, которую вы хотите отслеживать и видеть статистику использования.
    Насчёт index.php - обратитесь к вашему разработчику, тут зависит слишком от многих вещей.
    Я советую вам добавить google tag manager(его так же нужно установить на каждой странице), а уже в дашборде google tag manager добавлять аналитику и другие скрипты. С google tag manager вам не нужно будет лишний раз трогать разработчика, бОльшую часть задач по добавлению аналитики, метрики и других подобных штук нужных маркетологу(и около) можно добавлять самому. В интернете полно уроков на этому инструменту, советую изучить.
    Ответ написан
    Комментировать
  • Как сделать переключение тем на js?

    neuotq
    @neuotq
    Прокрастинация
    Объедините стили в один файл. По нажатию кнопки на body вешайте доп стиль для тёмной темы, например "theme-name_dark", ну и в css советующие изменения по наследованию.
    Ответ написан
    Комментировать
  • Можно ли использовать Gulp + Lavarel?

    neuotq
    @neuotq
    Прокрастинация
    В Laravel есть отличный инструмент для сборки фронта - Laravel Mix. Это обёртка над вебпак. Когда-то кстати он строился поверх gulp (и назывался Elixir).
    Вы можете отдельно использовать Gulp чтобы сделать чистые шаблоны и ваш фронтендер просто закинет js/css в нужное место и сделает декомпозицию шаблонов в blade шаблоны в Laravel.
    В целом сегодня немного странно использовать Gulp.
    Так же, если вы будете много работать с Laravel и в будущем, то я вам советую изучить Blade шаблоны и Laravel Mix и делать сами шаблоны полностью. Так же в Laravel есть инструменты для работы с фронтендом и в других вариантах, через API, через inertia и тп.
    Конкретный подход нужно определять вместе с командой в зависимости от задачи.
    Ответ написан
    6 комментариев
  • Почему в google analitics нет валюты белорусского рубля, BYN?

    neuotq
    @neuotq
    Прокрастинация
    Вопрос конечно немного посмешил, боюсь и рубль РФ уже скоро оттуда пропадет.
    А если без шуток, то просто не вошел в ограниченный список поддерживаемых локальных валют.
    Вот он:
    https://support.google.com/analytics/answer/620590...
    Ответ написан
    4 комментария
  • Существуют ли какие-то устоявшиеся паттерны, если я хочу всё приложение сделать в виде 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 комментарий