• Нужна помощь с методологией БЭМ. Не могу разобраться как правильно оформить футер. На скрине правильно?

    delphinpro
    @delphinpro Куратор тега HTML
    frontend developer
    .footer
      .footer__columns
        .footer__column .footer-info
          .footer-info__logo .logo
          .footer-info__author
        .footer__column .footer-nav
          .footer-nav__heading
          .footer-nav__list
            .footer-nav__link
        .footer__column .footer-nav
          .footer-nav__heading
          .footer-nav__list
            .footer-nav__link
    Ответ написан
    Комментировать
  • Nginx некорректно проксирует x-real-ip?

    @zubovd
    nginx.org/ru/docs/http/ngx_http_realip_module.html в помощь
    я добавил на бэкенде:
    set_real_ip_from 10.0.3.1; // адрес проксирующего хоста
    real_ip_header X-Real-IP;
    real_ip_recursive on;
    Ответ написан
    Комментировать
  • Как обрабатывать 404 ошибку на динамических путях Nuxt.js?

    @Kostik_1993
    Web Developer
    asyncData ({ params, error }) {
            return axios.get(`https://my-api/posts/${params.id}`)
            .then((res) => {
              return { title: res.data.title }
            })
            .catch((e) => {
              error({ statusCode: 404, message: 'Post not found' })
            })
          }
    
    // Еще вариант
    this.$nuxt.error({ statusCode: 404, message: err.message })
    Ответ написан
    Комментировать
  • Как спроектировать таблицы и построить отношения в Laravel Eloquent для такого типа данных?

    @jazzus
    Добавляем отношение в User
    public function booksWhereHasMyComments()
    {
         return $this->hasManyThrough(Book::class, Comment::class);
    }

    Запрашиваем
    $user->booksWhereHasMyComments()
        ->with(['comments' => function ($query) use ($user) {
            $query->where('user_id', $user->id);
        }])
        ->get();
    Ответ написан
    9 комментариев
  • Почему Event Loop пропускает первый task и сразу переходит к микротаскам?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Как будто начальное выполнение всего этого кода уже и есть таск.
    Вы таки не поверите, но код, запускающийся при загрузке скрипта - это отдельный таск. Он помещается в стек тасков и выполняется, пока стек не опустеет. Затем выполняются все накопившиеся микротаски, затем из очереди тасков в стек перемещается следующий таск.
    Ответ написан
    8 комментариев
  • Как лучше организовать передачу данных во Vue?

    0xD34F
    @0xD34F Куратор тега Vue.js
    промежуточных компонентов может быть много

    provide / inject
    Ответ написан
    3 комментария
  • Что лучше Phpstorm vs VS code?

    sim3x
    @sim3x
    Phpstorm
    Ответ написан
    Комментировать
  • AWS (Amazon-хостинг облако) в чем --практическое отличие от обычного Ubuntu-VPS?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    AWS (и другие подобные провайдеры) предоставляют вам не просто "виртуалку". Это возможность полностью управлять виртуальной инфраструктурой проекта - IAAS (ну и пачку SAAS конечно тоже)
    Если ваш проект - одна виртуальная машина то для вас AWS это слишком много
    Если у вас сложный по инфраструктуре проект, например:
    • отдельный лоадбалансер(который вам нравится, Linux) в публичной сети
    • приложение на IIS в непубличной сети
    • несколько микросервисов
    • очереди для связки всего этого
    • хочется тестировать в одном месте а прод чтобы не падал при этом
    • ...
    Вот тогда вылезают плюсы AWS по управлению инфраструктурой проекта, а до того момента - и на VPS и в AWS: у вас есть виртуалка под убунту, вы подключаетесь по ssh и заверте...
    Ответ написан
    Комментировать
  • Какие бесплатные сервисы для отправки email есть для Laravel?

    @haveacess
    Объемы вроде не большие. Пробовали использовать обычную почту? Если да, то почему отказались?

    Сейчас имею ввиду следующее -
    выпускаем одноразовый пароль в гугле, и через него шлем майлы через обычный smtp
    https://medium.com/graymatrix/using-gmail-smtp-ser...
    Ответ написан
    2 комментария
  • Как взламывают бд крупных компаний?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Взламывают точно так же как и мелкие.
    В статье описана обычная SQL инъекция, когда данные подставляются прямо в SQL запрос.

    Я просто сомневаюсь, что valve может нанять таких людей в backend

    Не надо сомневаться.
    Нету никаких "особенных способов взлома".
    А есть такое явление как "эффективные менеджеры". У которых размер премии зависит от того, сколько денег они сэкономили акционерам.

    Если бы там были подготовленные выражения, то и взлома бы не было.
    Но вместо подготовленных выражений в больших компаниях есть эффективные менеджеры. Которые экономят на нормальных программистах, и заказывают разработку в Индии, в штате Бангалор. Где живет какой-нибудь Хамишь Кумар, который родился в касте вычерпывателей говна из сортиров. И вот у него только один шанс не черпать говно всю жизнь - всеми правдами и неправдами научиться программировать, путь даже за еду. Сравниваем с силиконовым программером с запросами $250k в месяц. Экономия налицо!

    На всякий случай напомню, для стопроцентной защиты от инъекций необходимо всегда следовать двум простым правилам:

    1. данные подставляем в запрос только через плейсхолдеры
    2. идентификаторы и ключевые слова подставляем только из белого списка, прописанного в нашем коде.


    Ключевое слово здесь - "всегда". Как только начинаются рассуждения вида "ну эти данные и так безопасные, их защищать не надо", то в этот момент мы добавляем инъекцию к себе на сайт. Следует понимать, что защищаем мы не данные, а запрос. Данные нас вообще не интересуют - какие они, откуда пришли, являются "безопасными" или нет. Важно не то откуда они пришли, а то, куда они идут. В SQL запрос? Используем подготовленные выражения, точка.
    Ответ написан
    1 комментарий
  • Библиотека для гибкой формы?

    @inFureal Автор вопроса
    Кароч спустя год я нашел то, что искал
    EditorJS
    Крутая либа для создания чего-то похожего, на pikabu или behance, как я и писал
    Ответ написан
    Комментировать
  • Почему в Laravel Dependency Injections реализован через параметры функций?

    @inFureal
    Ничего тебе не мешает сделать через helper app. Внутри в ServiceContainer вызывается make
    $service = app(YourCoolService::class);
    Ответ написан
    Комментировать
  • Как деплоить fullstack проект?

    @jazzus
    Что за адок не особо понятно. У меня также vue blade laravel bootstrap. Юзаю команды npm run watch - вношу изменения, npm run prod - продакшн. Далее гит + форге для деплоя. Вообще никаких проблем/неудобств.
    Ответ написан
    Комментировать
  • Как деплоить fullstack проект?

    У Laravel есть Laravel Mix в комплекте, который спокойно позволяет оптимизировать все ваши махинации.
    Запускаете команду npm run watch и спокойно пишете код, если нужно обновление страницы при изменениях - подключаете browserify.

    Смотрите в сторону Laravel Envoy, настраиваете все данные для деплоя на сервер. Все это деплоится с git-репозитория вашего проекта.

    В итоге весь маршрут от выполнения правок до деплоя проекта состоит по сути из следующих этапов:
    1. Выполняете правки, просматриваете через npm run watch
    2. Комитите все в свой репозиторий.
    3. Выполняете команду envoy run deploy и все изменения с репозитория подтягиваются на сервер.

    На этом все.
    Ответ написан
    6 комментариев
  • Как объявлять использовать файлы d.ts в PHPStorm?

    Kozack
    @Kozack
    Thinking about a11y
    как сделать, чтобы PHPStorm подхватывал файлы d.ts на автомате?

    Ваш d.ts файл должен быть подключен в tsconfig.json

    где хранить эти d.ts файлы?

    Где вам удобно

    как сделать, чтобы PHPStorm понимал, из какого файла применять описание типов для текущего файла

    Тут два варианта.
    Ваши типы зарегистрированы глобально. Указывать из какого файла нет нужны.
    Типы не глобальные или есть конфликт имён. Обычный import type { ... } from ...
    Ответ написан
    2 комментария
  • Как стилизовать группу в SVG из внешнего CSS?

    LenovoId
    @LenovoId Куратор тега SVG
    svg, css,js
    В общем получить к тегу object можно только после загрузки то есть

    object.addEventListener("load", function (){ здесь обработчик })

    В моём случае я сделал так как написал ..
    1) Получил object через id
    2) Получил содержимое contentDocument
    3) По одному сменил fill для каждого

    Содержимое index.html


    <object data="file.svg" type="image/svg+xml" id="for_svg" width="400px" height="300px"></object>
        <script>
          document.querySelector("#for_svg").addEventListener("load", function (){
             let html = document.querySelector("#for_svg").contentDocument;
             let rects = html.querySelectorAll("rect");
    
           rects[0].style.fill = "#222";
           rects[1].style.fill = "#fff";
           rects[2].style.fill = "#fff";
           rects[3].style.fill = "#999";
           rects[4].style.fill = "#999";
        })
        </script>


    Содержимое файла svg

    <svg viewBox="0 0 460 300" xmlns="http://www.w3.org/2000/svg" width="460" height="300">
        <rect width="460px" height="300px" x="0" y="0" />
        <g>
          <rect width="100px" height="80px" x="0"    y="220" />
          <rect width="100px" height="120px" x="120" y="180" />
          <rect width="100px" height="200px" x="240" y="100" />
          <rect width="100px" height="300px" x="360" y="0" />
        </g>
      </svg>


    В итоге получил вот это

    6040c4ebb2f25634899369.png
    Ответ написан
    Комментировать