• Как настроить редирект на Cloudflare?

    @Egche
    Ученье-свет.
    1. Переходишь в Pages Rules
    2. Создаешь новое правило
    3. В настройках правила указываешь Forwarding URL и выбираешь 301 редирект, если страница переехала навсегда
    4. Указываешь куда редиректить и сохраняешь

    5ff8045bbd9fa963862041.png
    Ответ написан
    Комментировать
  • Как скачать видеофайл, если он защищён от скачивания и буферизируется с подкачиванием?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    858x429.jpg

    да ты у нас настоящий умник, Брэд.... умный... @%?ть

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

    софт скачивает, есть тягомотина от китайцев метров на 150 - скачивает ЛЮБОЕ включая вебок, но ставить стремно, хз что в нее напихано, я тестил через VMWare
    есть ummy downloader
    есть ... короче не проблема
    Ответ написан
    3 комментария
  • Vue cli, как правильно настроить eslint?

    aloky
    @aloky
    js
    может надо тут менять .eslintrc?

    Пример:
    {
        "parser": "babel-eslint",
        "extends": "airbnb",
        "plugins": [
            "react",
            "jsx-a11y",
            "import"
        ],
        "rules":{
            "indent": [2, "tab"],
            "no-tabs": 0
        }
    }
    Ответ написан
    2 комментария
  • Какова стоимость и сроки создания браузера?

    @rPman
    Абсолютно все сказанное умеют современные движки, под вопросом только ваше абстрактное 'подмена отпечатка'. Например gpu подменить очень сложно.

    Писать свой браузер глупо, берете исходники уже существующего движка - webkit (chromium) или gecko (firefox), и подменяете ответы и поведение как вам необходимо.

    Кстати, вполне возможно что сделать это однократно вам не будет стоить слишком дорого, возможно хватит даже нескольких тысяч баксов (если я верно понял задачу), но вот делать это для каждого обновления уже вопрос на гораздо большие деньги.
    Ответ написан
    1 комментарий
  • Что такое end-to-end тестирование?

    Za_Dolber
    @Za_Dolber
    Middle QA
    У вас, если вы про профессиональные тесты, имеется тест - набор действий. В данном случае end-to-end будет означать, что тест начался у конечного пользователя, который инициировал сценарий и закончился у него же, либо, начался у одного пользователя, и закончился у другого (например, в начале - пользователь-абонент ( первый end), сценарий "пополнение счета", в конце - система биллинга, которая засчитывает все изменения на счету (второй end)).

    Это просто тест который проверяет что вся система работает в целом?

    Необязательно - такой тест называется sanity-тест, или дымовой тест, и для такого теста условие end-to-end необязательно.

    Или проверяет работу какого-то сценария работы пользователя (например для блога, вход в аккаунт -> добавление статьи в блоге -> предпросмотр -> публикация -> выход)?

    Больше похоже, но, строго говоря, в начале такого теста должна быть проверка, что, например, пользователь запросил страницу авторизации, и например, в конце, сервер посчитал сессию законченной, и в этом случае сервер - второй "end", а первый - пользователь.
    Ответ написан
    2 комментария
  • Как передать scss переменные во vue плагин?

    profesor08
    @profesor08 Куратор тега JavaScript
    Плохая идея. Компоненты плохо дружат с таким подходом. Так сами по себе они должны быть самодостаточными. А так выходит, что вся самодостаточность улетает в трубу. Используй темы и передавай их через пропсы, с цветами если надо, и тд.
    Ответ написан
    Комментировать
  • Нужно увеличить ячейки массива в 5 раз?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Уберите return, т.к. на первой же итерации происходит выход из функции, и цикл больше не продолжается.

    UPD: еще lenght -> length.Если нужно, чтобы что-то выводилось, перенесите return в конец функции, сразу после цикла.
    Ответ написан
    1 комментарий
  • HTML + CSS - законченный сайт?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    большой портал с информацией (в плане множество статей)

    Вот тут вы и устанете, без использования шаблонизаторов, вручную постоянно копируя участки кода.
    Вопрос такой можно ли оставить статичный сайт (не вникать в js, php и тд) и залить его?

    2020 год, масса инструментария можно решить задачу автоматизации вашего сайта, самая простая cms + админка решит ваши проблемы. Они простые, на ознакомление и посадку у вас уйдет не больше 2-4 дней, а позже съэкономит вагон времени.
    К тому же портал с статьями должен регулироваться хотя бы минимальной логикой - поиск статьи, фильтр статьи, тэги. Иначе у вас будет не проект, а огрызок из 2007 года.
    Ответ написан
    Комментировать
  • Где находится шаблон в umi cms?

    @ilyarsoftware
    В каждом случаем использования UMI.CMS могут быть по разному настроено использование шаблонов, как месторасположения так и тип шаблонизации.

    Смотрите в настройках модуля Структура, так указывается тип шаблонизатора и название файла шаблона.

    На примере стандартной поставки с использованием шаблона "Современный интернет-магазин", расположение шаблона в /templates/demodizzy/ далее в зависимости от типа шаблонизации:

    XSLT /templates/demodizzy/xslt/layouts/default.xsl
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0">
    
      <xsl:template match="/" mode="layout">
        <html>
          <head>
            ...
            <script src="/templates/demodizzy/js/script.js"></script>
            <link rel="stylesheet" href="/templates/demodizzy/css/styles.css"/>
          </head>
          ...
        </html>
      </xsl:template>
    
    </xsl:stylesheet>


    TPL /templates/demodizzy/tpls/content/inner.tpl
    <!DOCTYPE html>
    <html>
      <head>
         ...
        <script src="/templates/demodizzy/js/script.js"></script>
        <link rel="stylesheet" href="/templates/demodizzy/css/styles.css"/>
      </head>
      ...
    </html>


    PHP /templates/demodizzy/php/default.phtml
    <?php /** @var umiTemplaterPHP $this */ ?>
    <?php /** @var array $variables */ ?>
    <?php
    ...
    ?>
    <html>
      <head>
        ...
        <script src="/templates/demodizzy/js/script.js"></script>
        <link rel="stylesheet" href="/templates/demodizzy/css/styles.css"/>
      </head>
      ...
    </html>
    Ответ написан
    4 комментария
  • Не приходят письма при новом заказе в WooCommerce, что можно сделать?

    Vagrant0610
    @Vagrant0610 Автор вопроса
    PHP разработчик
    Вопрос решён. Настроил отправку писем через плагин WP Mail SMTP.
    Сделал следующим образом:
    1. Выбрал в настройках "Other SMTP".
    2. Вписал параметры (нашёл на сайте mail.ru) для почтовых программ:
    SMTP Host smtp.mail.ru
    SMTP Port 465
    Encryption None (Выбрать - SSL) TLS
    Auto TLS ON
    Authentication ON
    SMTP Username Knife@mail.ru
    SMTP Password *******************
    3. Очень важный момент! Что у mail, что у yandex и возможно у других почтовых сервисов, отправитель проверсяется на соответствие. По этому в самом верху на странице настроек плагина обязательно укажите тот же самый адрес почты что и в "SMTP Username".
    From Email Knife@mail.ru
    4. Преимущества такой настройки в том что при отправлении писем через такие сервисы, письма имеют безопасные подписи, по этому все письма которые приходят клиентам и вам, не попадают в папку "спам".

    На этом всё. После этого заработала почта в магазине.
    Ответ написан
    3 комментария
  • Как убрать часть border, как на макете?

    Sanches
    @Sanches
    Вариант с псевдоэлементами:
    https://codepen.io/abnmt/pen/yKOzOM

    Вариант с linear-gradient:
    https://codepen.io/abnmt/pen/KozXmW
    Ответ написан
    Комментировать
  • Стоит ли делать супер-навороченный персональный сайт-портфолио?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вообще сайта нет, без работы не сижу и дня, выбирать приходится. Иногда хочется сделать хотя бы одностраничник - но возникает вопрос "зачем?" на который нет ответа и сайт так и остается в планах. Все закончилось покупкой домена годы назад.

    Определитесь с целью сайта. Судя по вашему вопросу - вы сайт для себя больше делаете чем для заказчиков - для себя можно развлекаться как угодно, кто ж вам запретит.

    Если цель - больше заказов, то, мое непроверенное на себе имхо - сайт-одностраничник сделанный по делу с парой оригинальных фишек для привлечения внимания оптимален. Это дизайнерам нужен вау-эффект, фронтэндеру нужен эффект "серьезный человек, большой опыт, сделает быстро, четко и качественно".
    Ответ написан
    2 комментария
  • Быстрая среда web-разработки на основе vagrant, возможно?

    ALiSHERBE
    @ALiSHERBE
    Middle Web Developer, Android Developer
    Vagrant медленно запускается. Если у Вас Windows 10 то можете установить docker, им гораздо удобнее пользоваться.
    Ответ написан
  • Взлом или развод?

    flapflapjack
    @flapflapjack
    на треть я прав
    Может ли злоумышленник, получив данные о списках таблиц так же получить и содержимое этих таблиц?


    В зависимости от степени экранирования символов при фильтре какого-то из параметров.

    По сути, скорее всего инъекция была сделана именно на вашем сайте, следовательно запрос выполнялся от имени вашего пользователя, у которого есть все права на БД - следовательно может и удалять и читать любые записи.

    Нужно как-то отследить место SQL-инъекции.

    Я в этом не спец, но например можно посмотреть лог mysql на наличие строки SHOW DATABASES или SHOW TABLES, а так же по поиску слова UNION, коим часто пользуются при создании инъекций. Найдя в логах время исполнения данного запроса можно глянуть в access.log у апача запрошенный адрес сайта, который был запрошен в то же время, что и инъекция в SQL.

    Имея точное расположение скрипта можно поставить вставки функции для логирования $_SERVER['REQUEST_URI'] и определить что за запрос был сделан, и от этого плясать.
    Ответ написан
    1 комментарий
  • Что это за черная магия?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Давным давно (года 2-3 назад) заварилась тема рисования с помощью CSS. Я тогда даже небольшую заметку на хабр писал по этому поводу. В те времена мы делали простые картинки вроде таких:

    Это было интересно и познавательно. С одной стороны это челлендж, с другой - способ самообразования. На тот момент картинки были не очень сложными для понимания и тема людям понравилась. Время шло, народ постепенно изучал основы CSS (правда как всегда не у нас, у нас это дело в основном критиковали со словами "фигней маятесь, зачем это нужно" или "ну я же фронтенд-сеньер-реакт-помидор-разработчик, зачем мне нужно знать CSS"), но так или иначе картинки становились все более интересными, появлялись новые квесты и на данный момент можно сказать, что это своеобразный вид искусства с практически полезной составляющей. Понятное дело, что в продакшен такие картинки делать долго - проще взять SVG, но для обучения они хорошо подходят. Магии там нет.
    Ответ написан
    1 комментарий
  • Объясните что такое полиморфизм простыми словами ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Да ладно, парни. Ну хватит уже, к чему такие сложности? Берём и читаем. Вообще совсем не обязательно читать про архитектуру и абстракции именно по своему языку, хотя javascript в этом плане родился уродом.

    Ок. Полиморфизм ни в коем случае нельзя рассматривать отдельно от других фундаментальных понятий - абстракция, инкапсуляция и наследование. Объект и подобные прилагаются из аксиом (хотя это-то тоже аксиомы).

    Собственно, представим себе рядом стакан, кружку, чайник, кофемашину, велосипед и скейт. Что между ними всеми общего? Ну как минимум то, что они есть. То есть это - объекты, которые были созданы. Но как они были созданы? Скорее всего на заводе производителя по чертежам. Ок, чертежём назовём конструктор. Ну а класс? А что это такое? А его нет в нашей вселенной - эта сущность есть абстракция, что живёт лишь в наших мыслях. В реальном мире её нет и никогда не будет, такова уж физика - ей по барабану, что птицы и млекопитающие имеют дальних родственников - она лишь обеспечивает возможность естесственного отбора. А уж родственников друг другу находим мы, люди.

    С объектами и классами разобрались, а что же там с нашими стаканами и велосипедами. Мы уже поняли, что всё это объект, то есть грубо можно все объекты наследовать от какого-нибудь суперпредка, суперкласса, что и реализовано в некоторых языках. Но что другого общего между скейтом и стаканом, например? Конечно, можно углубляться и считать, что они все из молекул, и они все из твёрдых веществ. Однако это всё бред и СПГС, так что ответ прост - да ничего. То есть это совершенно разные объекты с совершенно разным функционалом. Более того - естесственно компьютерные модели и иерархии будут сильно отличатся от физик и химий. И это нормально, вопрос об адекватностях моделей ставиться лишь когда модель неадекватна, а до тех пор пилить можно что угодно, лишь бы работало.

    Вот. У нас есть супер-предок Object, от которого дефолтно наследуются все объекты. Допустим, то что объекты состоят из атомов и есть то, что наследуют все объекты. Но все дополнения и правки - полиморфизм. Так, из атомов мы слепили колёса и приделали на доску - ок, это скейт. На него можно встать и катиться, а сильно извернувшись и полетать в трёх метрах над землёй, прямо таки излучая своё яркое эго. В то время как стакан - это мы слепили из атомов плотную ёмкость, из которой вода не выливается под действием силы тяжести. И прямое применение стакана - налив воды опрокинуть его над ртом, чтобы вода вытекла прямо в желудок. Так делают настоящие пацаны, не заботясь об икоте или страхе утонуть, так что вот - полиморфизм.

    Однако что с остальным? У нас ещё абстракция, инкапсуляция и наследование. Ок, начнём с наследования, так оно наиболее близко. Вот что у нас общего между стаканом и кружкой? Ну в оба можно налить воду, но у кружки есть ручка чтобы держаться. То есть можно придумать некий общий класс - ёмкость. Однако что это за класс? Можно например за этот класс взять стакан, тогда все ёмкости по дефолту стаканы, а всё остальное - видоизменённые стаканы. Но кому-то больше нравяться кувшины, например некоторые чики насят их на голове, считая что это удобно. Ну и пусть носят, но как-то же решить надо, что главнее и идеальнее. Так вот - недостяжимый идеал и есть главный - это называется абстрактный класс. То есть ёмкость, что невозможно создать, для которого нет полного чертежа. А все чертежи, что дополнили до полного - есть наследованные классы от класса ёмкость.

    Тут мы подошли к абстракции. Вот такое иерархическое наследование приводит нас к, возможно главной, идее ООП. Вот мы взяли и выделили всё, куда можно налить воду в отдельный класс, нарисовали общий чертёж, но специально не доделали его, оставив зазор для будущих творцов, и назвали чертёж - ёмкость. Тысячи лет изобретатили всех миров создают свои ёмкости, одна лучше другой. Для разных людей - по разному, конечно. Но каждый раз группировать молекулы стекла определённым образом - непростая задача. Поэтому ремесленники пошли на хитрость, они создали тайный совет ремесленников мира и решили делиться друг с другом своими наработками. То есть создавать мелкие чертежи и объявлять классом, например, извлистой ручки в форме ленты Мёбиуса, например. Возможно такая ручка удобно только инопланетным существам, но чертёж создан и к нему можно ссылаться при создании своего чертежа. Таким образом мы абстрагируемся от низкоуровневой задачи "формирования ёмкостей посредством перемещения молекул" к "конструированию ёмкости посредством совмещения деталей, элементов". Это и есть абстракция.

    Но мы подошли к последнему пункту - инкапсуляция. Она неразрывна с абстракцией, и по сути благодаря ей она и работает. Инкапсуляция - это своеборазный клей (или синяя изолента), которым склеивают разные чертежи в один. То есть совмещение деталей для создания своей - это и есть инкапсуляция. Причём при совмещении мы можем не описывать детали этого совмещения (то есть члены класса могут быть приватными), таким образом помогая абстрагироваться тем, кто этот чертёж использует. Вот посмотрим на чайник - что это такое? Это стакан (или кружка) к которому снизу (а может внутри по середине?) приклеен нагревательный элемент. Пустив по нему ток, согласно инкапсулированному в нагревательный элемент закону Ома, будет выделяться тепло и нагреваться вода. А кофемашина? Это куда более сложное устройство, с множеством насосов, ёмкостей, шлюзов, измельчителей и чайников. И всё склееное клеем. А может синей изолентой. Это снова инкапсуляция.

    Таким образом, абстракция невозможна без инкапсуляции и наследовании, как невозможен полиморфизм без, собственно, наследования. Ну а полиморфизм невозможен ещё и без инкапсуляции, которая банально бесполезна без наследования и полиморфизма. Вот такие тут треугольники с пирогами. Жаль только про пирог наврали. И про день рожденье.
    Ответ написан
    3 комментария
  • Что такое Less и Sass?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Лень двигатель прогресса. Хороший пример - принцип DRY - Don't repeat yourself. Я весьма подозреваю что вы стараетесь соблюдать этот принцип когда делаете макеты или чем вы там занимаетесь. Так же я весьма уверен что вы хотя бы пытались чуть автоматизировать рутину своей повседневной работы. Так же у вас могли быть ситуации когда вы переиспользовали какие-то элементы. Мало ли.

    Так вот... CSS это тупая таблица стилей. Селектор и стили, ничего сверх умного тут придумать нельзя. Лет 5-10 назад было довольно модно держать один мегажирный CSS файл на 10К+ строк и радоваться жизни внося все больше изменений и т.д. Соответственно даже если вы соблюдаете всякие правила модульной верстки и все такое, у вас возникает несколько проблем:
    • организация стилей, то есть держать все в одном файле не удобно особенно когда проект длится годами
    • Дублирование стилей и селекторов. По мере развития проекта появляются какие-то снипиты которые можно реюзать. Так же у вас может появиться масса однообразных селекторов отличающихся лишь немного. При модульных подходах вложенности редко имеет место быть но все же имеет. Но не будем забывать что большинство фигачит селекторы просто так. В итоге если мы переместили блок или переименовали класс какого-то блока нужно отредактировать еще массу селекторов.
    • Привязка размеров и параметров к другим стилям, например у вас в стилях задана ширина блока, от нее зависят другие параметры, отступы для других блоков и т.д. Да, в css3 появился calc для этого но это было относительно недавно и только с недавних пор можно почти без опаски использовать эту штуку.
    • Таблицы стилей, как и HTML ориентированы на удобный разбор этого добра машиной, но не человеком. Человек же существо ленивое и как-то вот лень лишний раз скобку поставить или точку с запятой. Просто лень.


    Есть так же хорошее правило, или идея если хотите.... Если код можно сгенерить - его лучше сгенерить. То есть для решения всех выше перечисленных проблем придумали препроцессоры. Они как бы были и раньше всех этих scss/less/stylus но как-то не решали всех проблем и т.д. Что в итоге было предложено (перечисляю в том же порядке что и в списке выше).

    • У CSS есть такая штука как @ import. Но не очень круто импортировать сотню стилей в продакшене. Стоит сделать так что бы все стили были склеены при сборке проекта. Эта идея в итоге развилась и если разработчик использует это дело правильно, можно зайти в любой файл со стилями и увидеть список всего от чего зависят эти стили. Какие стили подключаются и т.д. Причем один файл с зависимостями может быть подключен в нескольких файлах а препроцессор сам разберется как и куда все вставлять сгенерив максимально оптимизированный по структуре файл. А разработчик получил четкую структуру файлов и возможность быстро найти где что и от чего зависит.
    • С селекторами проблему предложили решить наиболее логичным вариантом. Если у нас есть вложенные селекторы, то имеет смысл определять их внутри блока этого селектора. Это существенно упрощает поддержку стилей. Так же для управления снипитами и прочим добавили миксины - эдакие параметризованные или нет функции которые выплевывают шматок CSS. До появления штук вроде autoprefixer это был единственный способ писать поддерживаемые стили, использовать плюшки CSS3 и вообще новые плюшки и не сойти с ума от префиксов. Префиксы это только пример, там могут быть самые разные штуки позволяющие грамотно производить реюз стилей
    • Проблему зависимостей значений стилей друг от друга решили... собственно самым очевидным способом - переменные. Это удобно, легко поддерживать и в умелых руках это мощный инструмент. Нужно поменять базовые цвета - не нужно лазить по 100500 блоков и править значения руками, можно поправить переменные и все будет хорошо.
    • Насколько я помню SCSS/LESS не стремились решить эту проблему. Какие-то решения образовывались сами собой с течением времени. В плане минимализма и выразительности пожалуй сейчас самая крутая штука это stylus.


    Что в итоге произошло. В один прекрасный момент какие-то там рубисты придумали SCSS (они вообще не любят все что не в стиле ruby в плане минимализма и выразительности). Затем чуваки подумали и сказали, SCSS это круто но почему-то они используют синтаксис знакомый именно Ruby разработчикам а не обычные для CSS конструкции. В итоге реализовали LESS, причем его уже реализовали на javascript, что с наличием node.js позволило это все добро еще на одной платформе собирать. А так как под эту платформу и так плодили препроцессоры оно удачно вписалось.

    Далее уже шли какие-то модификации дальнейшие, вроде того же Stylus, где синтаксис упростили просто до нельзя.

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

    Stalker_RED
    @Stalker_RED
    Библиотека это инструмент или набор каких-то инструментов.
    Бибилиотека для скачивания видео с ютуба
    Бибилиотека для кропа и ресайза картинок
    Бибилиотека для определения города по IP

    Фреймворк может использовать десятки или сотни разных библиотек. Это набор не только инструментов, но и готовых компонентов, и еще и рекомендация по их использованию.

    "набор для постройки скворечника"
    В комплекте молоток, гвозди, столярный клей, 20 деревянных досточек разных форм и расцветок и инструкция с тремая вариантами скворечника на выбор.

    Или вот два фреймворка:
    Ezva9I.pngzC6ZHT.png
    Можно ли их использовать вместе? (Конечно, никто не запрещает)
    Можно ли из этих деталей построить что-то совсем другое, не такое как в инструкции? (Конечно да)
    Можно ли с этими фреймворками использовать детали еще и из этого?
    lGjE1A.png
    (конечно можно, но придется что-то придумать для совместимости деталек. Быть может придется применить клей, изоленту, пластилин или жвачку. Или шуруповерт, или сварочный аппарат. Но ни в один комплект эти дополнительные инструменты не входят, как и скиллы к ним.)

    Можете посмотреть еще сюда, этот ответ частично покрывает ваш вопрос:
    Для чего нужны фреймворки, а-ля Laravel?
    Ответ написан
    Комментировать