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

    v3shin
    @v3shin
    Веб-шаман
    Используйте non-greedy regexp:
    /(<p><strong>)(#)(.*?)(<\/strong><\/p>)/g
    Ответ написан
    1 комментарий
  • Как соединить форму обратной связи и AMOCRM на JS?

    094ikis09
    @094ikis09
    Medium Rare
    Делать интеграцию через js настоятельно не рекомендую так как для нее должен использоваться секретный ключ, который вы не сможете скрыть на стороне клиента — тем самым откроете всем доступ к AmoCRM. Если вы не можете подключить обработку на серверной стороне, то могу предложить отправлять все на почту, а в AmoCRM подключить эту почту как источник.
    Ответ написан
    4 комментария
  • Шаблонизатор в webpack?

    profesor08
    @profesor08
    Забей на pug, да там можно хреначить на js, и ты будешь это делать, но раз приходится хреначить на js, значит в нем есть проблемы. А они есть. Там прикольный только синтаксис написания кода в виде CSS селекторов. Но как только заходит речь о генерации кода, то печаль.

    Мое имхо, но я бы построил шаблонизатор на JSX, нормальны компоненты, полная интеграция с javascript, все на высоте, понятно, легко, нормальный синтаксист, написал, отрендерил html, сохранил в файл. И это будет быстро.

    Нашел свой пример https://codesandbox.io/s/jsx-html-template-builder...
    Ответ написан
    Комментировать
  • Как подключать шрифты и CSS Reset к приложению на Styled Components?

    freislot
    @freislot
    Frontend-разработчик
    я использовал global в вашей ситуации вот пример
    функция fontFace подключает шрифты, require их загружает из указанной папки, в итоге подключение выглядит так

    ${fontFace('HelveticaNeue', 'HelveticaNeueCyr-Bold', 600, 'normal')}


    import { createGlobalStyle } from 'styled-components';
    
    export function fontFace(name, src, fontWeight = 'normal', fontStyle = 'normal'){
        /* eslint-disable */
        return `
          @font-face{
              font-family: "${name}";
              src: url(${require('../../../../fonts/' + src + '.eot')});
              src: url(${require('../../../../fonts/' + src + '.eot')}?#iefix) format("embedded-opentype"),
                   url(${require('../../../../fonts/' + src + '.woff')}) format("woff"),
                   url(${require('../../../../fonts/' + src + '.ttf')}) format("truetype"),
                   url(${require('../../../../fonts/' + src + '.svg')}#${name}) format("svg");
    
              font-style: ${fontStyle};
              font-weight: ${fontWeight};
          }
      `;
    }
    
    export const GlobalStyle = createGlobalStyle`
      ${fontFace('HelveticaNeue', 'HelveticaNeueCyr-Thin', 100, 'normal')}
      ${fontFace('HelveticaNeue', 'HelveticaNeueCyr-Light', 300, 'normal')}
      ${fontFace('HelveticaNeue', 'HelveticaNeueCyr-Roman', 'normal', 'normal')}
      ${fontFace('HelveticaNeue', 'HelveticaNeueCyr-Medium', 500, 'normal')}
      ${fontFace('HelveticaNeue', 'HelveticaNeueCyr-Bold', 600, 'normal')}
    
      *{
        box-sizing: border-box;
      }
    
      a{
        color: #17b0e7;
        text-decoration: none;
      }
    
      body{
        font-family: 'HelveticaNeue';
      }
    `;
    Ответ написан
    1 комментарий
  • Как быть медлительному разработчику?

    Robur
    @Robur
    Знаю больше чем это необходимо
    уже больше полугода, и за это время зафейлил большую часть сроков по таскам

    Я за последние 8-10 лет зафейлил большую часть сроков по таскам. Потом понял что проблема в сроках.

    беру время с запасом, но часто и того не хватает.

    Какой запас? Есть давно выведенный эмпирический закон - оценку опытного разработчика надо умножать на pi, если вы джун и сами время определяете, то 2*pi, если вы хотите работать хардкорно, и 3*pi если более близко к реальности.

    Подскажите, как вы ведете задачи, чтобы укладываться в сроки?

    Надо ставить реальные сроки. Но оценка - одна из самых сложных задач. Если только вы не клепаете конвеером одно и то же. Ну и анализ постфактум, то что реально можно улучшить-изменить, надо исправлять.

    И не по теме, как относитесь к медлительным коллегам?

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

    Я например могу сделать что-то супербыстро, пока мне объясняют задачу, в стиле "х**к, х**к и в продакшен", но предпочитаю делать дольше но лучше. Поэтому таски закрываю позже чем мог бы, но это такой код и результат, в котором я и окружающие уверены. Он и через полгода будет хорош, и багов в нем на порядок меньше.
    Ответ написан
    1 комментарий
  • Как быть медлительному разработчику?

    @vitaly_il1
    DevOps Consulting
    А какой feedback от куратора? Может быть это вам кажется что тупите а на самом деле все ОК, начальство довольно?
    Я уже много лет как старый DevOps, но очень-очень часто бьюсь целый день над какой-нибудь ерундовой проблемой :-)
    Ответ написан
    Комментировать
  • Как быть медлительному разработчику?

    @dimoff66
    Кратко о себе: Я есть
    Это же все относительно. Кто-то работает быстрее кто-то медленнее. Это ваш темп, если вы помимо решения задач еще и будете грузиться скоростью - на пользу не пойдет. Ну зафейлили значит зафейлили, кто сказал, что сроки были корректные.
    Ответ написан
    Комментировать
  • Как работают Stateless и Stateful widget и generics в Dart?

    MiT_73
    @MiT_73
    StatelessWidget – рекомендуется для неизменяемых виджетов. Это такие виджеты которые не имеют внутреннего состояния, зависят только от конфигурационных параметров и от родительских виджетов.
    Вот некоторые виджеты которые наследуются от StatelessWidget:
    • Text()
    • FlatButton()
    • Container()
    • и др.

    Самая простая конструкция для создания виджета от суперкласса StatelessWidget:
    class MyWidget extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return new Text('my text');
      }
    }

    StatelessWidget – нужен там где внутреннее состояние одно и оно сформировано параметрами и данными которые нам известны заранее.

    StatefulWidget – рекомендуется для изменяемых виджетов, с изменяемым внутренним состоянием (State). Под изменяемым состоянием понимается изменение внутреннего состояния экземпляра класса в зависимости от какого-то события (по нажатию, времени и пр.) Для этого нужно создавать виджет котопый наследует StatefulWidget.
    Вот некоторые виджеты, которые наследуются от StatefulWidget:
    • Image()
    • Form()
    • и др.

    Самая простая конструкция для создания виджета от суперкласса StatefulWidget:
    class MyWidget extends StatefulWidget {
      @override
      createState() => new MyWidgetState();
    }
    
    class MyWidgetState extends State<MyWidget> {
    
      @override
      initState() {
        super.initState();
        // ...
      }
    
      @override
      Widget build(BuildContext context) {
        return new Text('my text');
      }
    }

    StatefulWidget – нужен когда внутренних состояний больше одного и они могут сменять друг друга.

    Создатели Flutter рекомендуют использовать StatelessWidget везде, где можно обойтись без StatefulWidget. Это связано с тем что перестроение StatefulWidget стоит намного дороже (в плане потребления ресурсов и отрисовки). Так же рекомендуется сводить к минимуму дочерних виджетов в StatefulWidget. Оказывается это было ложным утверждением, разницы никакой нет.

    Generics или обобщения позволяют добавить программе гибкости и уйти от жесткой привязки к определенным типам. Иногда возникает необходимость, определить функционал таким образом, чтобы он мог использовать данные любых типов. Вот простой пример который поможет вам понять что такое Generics:
    void main (){
        Person bob = Person("324", "Bob");
        print(bob.id.runtimeType);  // String
        Person sam = Person(123, "Sam");
        print(sam.id.runtimeType);  // int
    }
     
    // T это Generic, если его не было, 
    //нам пришлось-бы использовать несколько классов для определения идентификатора пользователя, 
    //но в данном случае он Generic и мы можем передавать в него любой тип данных.
    class Person<T>{
        T id;   // идентификатор пользователя
        String name; // имя пользователя
        Person(this.id, this.name);
    }
    Ответ написан
    Комментировать
  • Как организовать хостинг для сайта, сделанного на Gatsby и Strapi?

    IvanGanev
    @IvanGanev
    Веб разработчик
    Netlify и другие хостинги для статических генераторов специализируются на размещении SSG и упрощают работу с ними, в первую очередь за счет того что "подхватывают" изменения сделанные в проекте после пуша (на гитхабе, например), и автоматически запускают генерацию сайта. Это очень удобно. Но при этом вы не совсем храните сайт на Netlify, вы держите его на GitHub-е или GitLab-е. И на том же GitLab можно держать репо размером 10gb за бесплатно.

    У самого Netlify вообще нет лимитов на размер сайта, вот обсуждение на эту тему: https://community.netlify.com/t/free-plan-website-... - можно держать сайт любого размера за бесплатно, там правда могут возникнуть проблемы с GIT из-за больших файлов, и именно из-за этого существует услуга Netlify Large Media.

    Так что можно вообще бесплатно держать Gatsbyjs сайт на Netlify + GitLab размером до 10gb.
    Ответ написан
    Комментировать
  • Какую видеокарту посоветуете для KDE?

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

    @waytoroot
    любая из современных AMD-видеокарт прекрасно будет работать в любом дистрибутиве без шаманств с установкой проприетарных драйверов, например rx580 или младшие модели, ведь в ядре давно присутствует свободный драйвер, который, пожалуй, даже превосходит закрытый AMDGPU Pro
    Ответ написан
    Комментировать
  • Какую видеокарту посоветуете для KDE?

    Intel и AMD opensourse должны работать из коробки на многих дистрибутивах.
    Nvidia это закрытые проприетарные драйвера.
    На некоторых ноутбуках в случае с Nvidia придется осваивать bumblebee для запуска и использования драйверов.
    Ответ написан
    Комментировать
  • Какую видеокарту посоветуете для KDE?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Работает и не жужжит старенькая NVidia GTS250. Дрова nouveau. На дровах nvidia так и не поборол проблему "консоли на интеграхе" (если в компе есть и внешняя карта и интеграха то при использовании дров nvidia консоль оказывается на интеграхе и вытащить ее оттуда никак нельзя). Если будете использовать nouveau - сразу уточните поддержку Вашей карты - мне пришлось специально попросить карту постарее :)
    Ответ написан
    Комментировать
  • Какую видеокарту посоветуете для KDE?

    @neol
    Intel: работает отлично, но в процессорах AMD не встречается. Если будете брать Интел, то лучший вариант, ИМХО.

    NVIDIA: может быть тиринг (он лечится, но процесс лечения может быть разным для разных софтин), есть проблемы с Wayland и не работает WebRender в firefox. Вероятно это не полный список.

    Релевантного опыта с AMD у меня нет.

    UPD: В феврале 2020 прикупил себе Radeon RX 570 как раз для двух новых мониторов (на видеокартах попроще не встречается два DisplayPort). За 3 месяца ни малейших нареканий к работе нет. Nvidia пожалуй даже проблемнее будет.
    Ответ написан
    1 комментарий
  • Какую видеокарту посоветуете для KDE?

    Zoominger
    @Zoominger
    System Integrator
    На работе вынужден пересесть на Линукс.

    Сочувствую.

    Nvidia? Какая модель (из не очень дорогих) лучше всего совместима?

    У меня более-менее работали GeForce 610 и 630 на проприетарных драйверах.
    Ответ написан
    1 комментарий
  • Какую видеокарту посоветуете для KDE?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Если синие то зеленую, если красные то красную.
    А так загляните в HCL. По идее драйвера завозят регулярно для тех и других. Вопрос в том что под линуксом они несколько ущербные, но такова жизнь.

    ПС а почему не устраивает интегрированная карта?
    ППС если планируете какие то вычисления на видео однозначно Nvidia.
    Ответ написан
    3 комментария
  • Какую видеокарту посоветуете для KDE?

    @Tabletko
    никого не трогаю, починяю примус
    Встроенной хватит для работы.
    Ответ написан
    2 комментария
  • Стоит ли использовать pug(jade)?

    dom1n1k
    @dom1n1k
    Мой первый опыт с тогда ещё Jade - это где-то лет 6 назад. И был он, мягко говоря, спорный. Отчасти понравилось, но больше всё-таки нет. Были проблемы, которые многократно перекрывали экономию от укороченного синтаксиса. Я писал где-то на Хабре комментарий на этот счет. В общем, забросил.

    Потом несколько раз возвращался и постепенно пришел к выводу, что если наловчиться, то некоторую пользу всё-таки извлечь можно. И важно, что со временем авторы пофиксили некоторые проблемы. Это не значит, что я полюбил Pug, но хотя бы смог использовать его без постоянного раздражения.

    Какие именно плюсы? Якобы более чистый код с отступами, отсутствие закрывающих тэгов - это всё ерунда. Может и достоинства, но точно минорные. Главное функционал, полностью отсуствующий в нативном HTML: миксины, автогенерация однотипных блоков, наследование шаблонов. Этого правда не хватает.

    Но есть два но.
    1. Подобный функционал есть в любом другом шаблонизаторе? Верно. И я посмотрел несколько (нунчаки, slim, haml, дуст). И везде я сталкивался с какими-то раздражающими нюансами или чего-то не хватало. А раз святой грааль не был найден, то я не нашёл для себя аргументов для смены шила на мыло.
    2. Мне удобнее решать такие вопросы на фронте. Если вам удобнее делать всё то же самое в PHP - тогда да, выходит, что особого смысла нет.
    Ответ написан
    Комментировать
  • Почему у flex-контейнера неправильная ширина?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    3 комментария
  • Разница между useCallback и useMemo?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Вызов useCallback(fn, deps) эквивалентен useMemo(() => fn, deps)
    Вся разница в дополнительной обертке, которую не придется писать при использовании useCallback, если надо возвращать меморизированный колбек.
    Ответ написан
    Комментировать