Задать вопрос
  • В чем суть serverless подхода?

    neuotq
    @neuotq
    Прокрастинация
    Начну с того, что если вы таки активный разработчик и не очень можете понять этот принцип, возможно он вам просто не нужен. И это не значит что вы плохой разработчик, просто не пересекались с таким видом проблем.
    Что касается serverless, название больше отражает не факт отсутствия сервера и работы с ним как таковым, а скорее еще меньше возни с настройкой и поддержкой серверного окружения (даже меньше чем с докером после того как все настроено и поднято). Те это следующие шаг после условных микросервисов.
    Его часто удобнее называть функция как услуга, так как де факто часто реализуется запуск именно функции по запросу.
    Если кратко описать для чего это нужно, то представим себе что у нас есть микросервис у которого затраты на содержания его постоянного аптайма как то слишком велики относительно времени работы/потребления ресурсов в живую. Да и в целом сервис выходит как то слишком микро даже для микросервиса.
    Вот тут мы и придумываем такую штуку, которая будет ОЧЕНЬ быстро(относительно старта минимальной виртуалки/образа и чего другого) запускаться, быстро делает свою маленькую работу и выключается.
    Из ключевых особенностей отмечу что функции должно быть в целом пофиг на своего состояние, она не знает изначально о предыдущем запуске и тп(те быть stateless). Все что нужно приходит в запросе.
    Ври значит если у вас есть задача, которая удовлетворяет этим условиям, можно использовать этот удобный сервис и для масштабируемости, и для экономии и для кучи других фич.
    Примеры:
    ресайз изображений.
    Генератор статистических сайтов(через админку производим обновление статистических файлов, это бывает не часто).
    Чат боты
    Разные спец информеры с определенной логикой.
    И тд и тп, что хорошо ложится в определенную относительно простую функцию с простым входом данных(или без) и простым результатом работы.
    В целом это решение не панацея, более того нужно четко понимать насколько выгодно/невыгодно переделывать на серверлесс платформы свою функцию, ведь мы точно жертвуем той же производительностью(помним что сервис не висит и не ждет нас постоянно, а пусть и очень быстро, но запускается), понижается прозрачность исполнения и усложняется отладка и прочее.
    Но в любом случае, достаточно часто плюсы перебивают минусы, популярность у этого принципа есть. люди активно пользуются, так что много шишок уже набито, в целом зрелая штука.
    А и да, насчет конкретного вашего вопроса.
    PHP AWS Lambda нативно не поддерживает, все через костыли, впрочем с почти вменяемой производительностью.
    И так как все таки AWS Lambda все же ближе к самому популярному нынче принципу serverless - функция как сервис, я не уверен что это правильная идея будет запускать атм Ларавел.
    Те мы имеем минусы: отсутствие нативной поддержки PHP и такие заточенность под что-то простое, в итоге .. ну не знаю.
    Я думаю плюшки serverless в виде нет мороки с настройкой сервера/облака можно решить многими другими сервисами. Впрочем может быть это будет не так выгодно в вашем случае, нужно исходить и рассчитывать по вашему сценарию работы вашего приложения. А потом решать, что лучше подходит.
    Ответ написан
    1 комментарий
  • Адаптивное горизонтальное меню?

    neuotq
    @neuotq
    Прокрастинация
    Открывай смотри.
    Для этого удобно использовать Flex, при этом используя media query можно менять направление на колонку, вместо строки.
    Ну а дальше дело техники. Добавляй вспомогательные элементы, которые видны только на маленьком экране, а на большом не видно. Это может быть как раз символ меню(ну допустим тот же "бургер"), далее с помощью js можно сделать по клику добавлять "показать"/ "скрыть" для нового уже вертикального меню (на самом деле можно и чисто на css, чуть больше мороки и ограничений)

    Ответ написан
    4 комментария
  • Как подключить Яндекс Ямб?

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

    neuotq
    @neuotq
    Прокрастинация
    Система реагирует на события, в данном случае на ситуацию на дороге.
    Вот ситуация:
    Автомобиль едет, внезапно на дороге оказывается человек, перебегает, автомобиль совершает маневр для того чтобы объехать человека. А теперь представим, что в случае маневра пострадают допустим 10 человек. Вот здесь и начинается выбор. Давить того кто внезапно появился или рисковать другими 10.
    Вот если этих других нет, то вопросов нет. объехали и все, но в реальной жизни бывают варианты.
    При этом помимо чистой логики в человеческом обществе есть моральный и этический момент.
    Ответ написан
  • Нужен ли репозиторий для Eloquent??

    neuotq
    @neuotq
    Прокрастинация
    Чет вы сумбурно написали и смешали разные вещи.
    В ларавел есть отдельно удобные инструменты/обертки для работы с базой данных, и отдельная вещь это Eloquent ORM по строенная по принципам (анти или нет) патерна ActiveRecord.
    Так вот, значит обертки над базой данных ты используешь и реализуешь/используешь удобный тебе подход/патерн к организации моделей. В целом, я советую уходить от Eloquent если проект будет развиваться в перспективе и/или если его будут вести несколько человек, так как начинается брожения моделей-свойств и и методов Eloquent по проекту, что в конце концов приводит к усложнению отладки, развития изменения/добавления редактирования свойств и тд и тп. Конечно если проект простенький, без супер логики и ты знаешь что дальше будет все просто, то можно не парится.
    Ну и советую изучить и прочитать этот коммент на тостере напрямую на эту тему:
    https://toster.ru/answer?answer_id=1127442#answers...
    Ответ написан
  • Как получить строку с ближайшей датой MySQL?

    neuotq
    @neuotq
    Прокрастинация
    Группируйте по уникальному свойству, например по id , таким образом в конце добавляется GROUP BY bolshoy_theatre_events.id
    Ответ написан
  • Какой процессор лучше и рацциональнее для компиляции кода в Xcode?

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

    neuotq
    @neuotq
    Прокрастинация
    Привет. Смотри есть такая волшебный метод: getDay(), он возвращает порядковый номер дня недели.
    Ну те вот сегодня среда, а значит:
    const today = new Date();
    today.getDay();
    //3


    Воот, значит дальше думаю все понятно, воскресенье это 0, значит определяешь день недели требуемой даты,
    путем определения остатка
    //разница между текущим днем и воскресеньем на этой неделе
    today.getDay() % 7

    PS на ошибку указал Metalofon
    Ответ написан
    3 комментария
  • Почему когда используют Docker для поднятия окружения, создают по контейнеру на каждый сервис а не всё в одном контейнере?

    neuotq
    @neuotq
    Прокрастинация
    Вы совсем не понимаете Докер. У него основная концепция - один сервис/приложение - независимое окружение.
    Для чего это сделано? Прежде всего безопасность и облегчение развертывания приложения.
    Любой администратор линукс (ну и других) систем знает, какого это поддерживать сервер одновременно в актуальном состоянии и нужные версии ПО, библиотеки которых часто между собой конфликтуют, нужно проводить танцы в бубном для того чтобы нужные библиотеки были там те, в другом месте другие. Далее возня с правами, кто под кем запускается, что может, дыры в самом ПО, когда из-за этого будет угроза другим частям системы. Ну и простота настройки, одним одни параметры, другим другие.
    Докер позволяет решить эти и кучу других проблем, каждый докер образ это грубо говоря максимально минимизированный образ ОС с установкой только необходим библиотек для конкретного сервиса (например mysql), запускается независимо. Таким образом у себя на сервисе вы имеете возможно спокойно, без затрат умственных ресурсов поднять кучу версий например mysql или php. Да и просто разные программы/сервисы которые могут с друг другом конфликтовать, теперь не будут мешать.
    У вас есть свои заготовки образов, либо вы берете готовый рецепт и работаете.
    Далее тестирование/разработка значительно упрощается, так как организовать условия максимально приближенные к боевым теперь легче.
    Далее можно создавать проверенные системы развертывания, снова таки каждый образ под свои задачи и тд и тп.
    Короче говоря да, у докера есть свои минусы, но одновременно это значительный прогресс и облегчения прежде всего работы которая касается улосноый Devops части в разработки ПО, значительно автоматизируются и упрощаются многие штуки.
    Так же советую потратить время и посмотреть запись введение в Докер от Хекслет Кирилла Мокевнина. Там небольшие проблемы бывают со звуком, сам вебинар 2 часа, но советую потратить время, он именно рассказывает проблематику, которая привела людей к изобретению Докера и этой концепции.
    Ответ написан
    2 комментария
  • Как обойти anti-adblock на qaru.site?

    neuotq
    @neuotq
    Прокрастинация
    Как временное решение можешь в консоли разработчика (Ctrl - Shift - J в хроме) в браузере написать:
    $('.desc').parent().removeClass();
    Это удалит класс, который они добавляют для того чтобы перевернуть вид всех элементов.
    Ответ написан
    Комментировать
  • Почему передаётся пустой объект после изменения адреса роута?

    neuotq
    @neuotq
    Прокрастинация
    Все просто, ресурсный контроллеры создают роуты с переда автоматически на основе базового имени роута, таким образом у вас теперь:
    Route::resource('/blog', 'NewsController'); и таким образом ваш ресурсный контроллер ожидает переменную одну, а получает другую. Вообще у тебя должны быть написано Route::resource('blogs', 'NewsController'); и таким образом в параметры уйдет переменная blog с объектом. Но так как метод у тебя уже написан $news (да не удачно, как же единственное число, хех. Впрочем сам я такое попадался).
    Так, короче говоря в web :
    Route::resource('blog', 'NewsController')->parameters([
        'blog' => 'news'
    ]);

    Ну и в параметрах методов контроллера замени везде "$id" на "News $news", хотя в целом у тебя уже не ресурсный контроллер, например метод store. Так что возможно тебе лучше расписать все в ручную. В целом изначально ресурсные контроллеры подходя либо под api логику работы, когда ты имеешь дело с Моделью/Сущностью как с ресурсом и тебе нужны стандартные методы, либо многие используют в своих CRUD логиках, но опят таки только если логика без дополнительных усложнений и переплетений как у тебя. Де факто у тебя не ресурсный контроллер и я настоятельно рекомендую расписать его в ручную.
    PS еще для отладки роутов отлично подходит команда php artisan route:list будет видны все роуты которые ларавел генерирует, с соответствующими параметрами переменными.
    Ответ написан
    1 комментарий
  • Как из ларавел выкидывать логи например на почту, телеграмм?

    neuotq
    @neuotq
    Прокрастинация
    На самом деле все просто, если почитать документацию, можно узнать про клевый класс App\Exceptions\Handler , который обрабатывает исключения, тебе нужен его метод report, который ты можешь переопределить и написать свою логику.
    Вот даже легко гуглится пример с отправкой имейла (человек даже свой пакет сделал https://github.com/squareboat/sneaker ).
    Короче говоря сюда, и вперед творить волшебство:
    5b7bb11abd163261551026.png
    Ответ написан
  • Что делают? и: в php и js?

    neuotq
    @neuotq
    Прокрастинация
    'Если это правда' ? 'Вернуть это' : 'Иначе вернуть это'
    Ответ написан
    Комментировать
  • Некорректный выбор языковой версии результатов поиска?

    neuotq
    @neuotq
    Прокрастинация
    У вас в форме поиска жестко прописан адрес для запроса, action="https://oliver-posud.com.ua/" поэтому и выходит что поисковый запрос идет на украинскую версию.
    Короче говоря нужно исправить шаблон формы чтобы она учитывая выбранный язык.
    Ответ написан
    5 комментариев
  • Редирект на мобильную версию сайта?

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

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

    neuotq
    @neuotq
    Прокрастинация
    Так не выйдет.
    У вас варианты либо используя события модели (creating) и писать всю логику в php, либо реализовать это в триггере в PostgreSQL который будет срабатывать при создании новой записи.
    Ответ написан
  • Какой плагин для Lazyload вы используете?

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

    neuotq
    @neuotq
    Прокрастинация
    Не морочьте себе голову берите из проверенных решений, например у Bootstrap так :
    // Extra small devices (portrait phones, less than 576px)
    // No media query for `xs` since this is the default in Bootstrap
    
    // Small devices (landscape phones, 576px and up)
    @media (min-width: 576px) { ... }
    
    // Medium devices (tablets, 768px and up)
    @media (min-width: 768px) { ... }
    
    // Large devices (desktops, 992px and up)
    @media (min-width: 992px) { ... }
    
    // Extra large devices (large desktops, 1200px and up)
    @media (min-width: 1200px) { ... }

    Или в обратном порядке (указанный размер либо меньше):
    // Extra small devices (portrait phones, less than 576px)
    @media (max-width: 575.98px) { ... }
    
    // Small devices (landscape phones, less than 768px)
    @media (max-width: 767.98px) { ... }
    
    // Medium devices (tablets, less than 992px)
    @media (max-width: 991.98px) { ... }
    
    // Large devices (desktops, less than 1200px)
    @media (max-width: 1199.98px) { ... }
    
    // Extra large devices (large desktops)
    // No media query since the extra-large breakpoint has no upper bound on its width
    Ответ написан
    Комментировать