Задать вопрос
  • Есть ли разница кто будет обрабатывать оплату на сайте - фронт или бек?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Это надо делать на бэке по разным причинам. Как минимум одну ты уже сказал - не надо палить секретный ключ.

    Можно придумать 2 причину - отвал клиента: представь, что после оплаты клиент отвалился. Что будет?
    - Токен подтверждения оплаты потерян
    - После перезагрузки кэш браузера очистился

    В итоге деньги потратились, но информации об этом ты не получил. Все потерялось - только ручками эту информацию у провайдера оплаты получать и чинить.

    Если бы это сервер обрабатывал, то можно было бы какой-нибудь trace id сохранить в БД и быть уверенным, что даже если отвалишься, то в будущем сможешь проверить статус оплаты.
    Ответ написан
    4 комментария
  • Как вложить span в textarea?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Никак.
    Textarea - зона текста, там может быть только текст.
    Если хотите большего - есть только три варианта, два - геморройные, с кучей коссбраузерных несовместимостей и особенностей, которые обязательно заставят вас рвать волосы на заднице:
    1. Отказаться от textarea и использовать contentEditable div.
    2. Подкладывать под(или поверх с pointer-events:none) div, который копирует содержимое textarea 1:1 со всеми стилями и отступами и раскрашивает его как надо.

    ...и третий, рекомендуемый лично мной:
    3. Использовать одну из долгоживущих готовых библиотек, в которых всё давно отладили и предоставили удобные интерфейсы.
    Ответ написан
    3 комментария
  • Почему нет нормальной работы с svg в css?

    @leeroyjenkins176
    Работайте с svg как со спрайтом с помощью тега <use>
    Ответ написан
    2 комментария
  • Как выбрать элементы удовлетворяющие условию выборки?

    Lynn
    @Lynn
    nginx, js, css
    Поиграть со селекторами nth-child и nth-last-child.

    Для начала попробуем выбрать первый элемент последнего неполного ряда. Селектор :nth-child(3n + 1) выберет нам первые элементы каждого ряда.

    Теперь надо ограничить этот список только последним рядом. Видно что нужный нам элемент всегда первый или второй с конца. Так и запишем :nth-last-child(-n + 2).

    В итоге получили селектор :nth-child(3n + 1):nth-last-child(-n + 2).
    Ну а дальше воспользуемся селектором ~ что бы выбрать все (в вашем случае не больше одного) элементы которые идут после уже выбранного.

    Получается вот такой код:
    li:nth-child(3n + 1):nth-last-child(-n + 2),
    li:nth-child(3n + 1):nth-last-child(-n + 2) ~ li {
      .....
    }


    UPD: если надо что бы последний ряд выбирался всегда, даже если он полный, то надо заменить -n + 2 на -n + 3.

    UPD2: можно пойти немного другим путём и выбирать все элементы после последнего элемента в полном ряду. Получится вот так:
    li:nth-child(3n):nth-last-child(-n + 3) ~ li {
      .....
    }


    Ответ написан
    Комментировать
  • Какая лучшая CMS для создания форума?

    xenforo
    Ответ написан
    Комментировать
  • Как выровнять шрифт?

    Lynn
    @Lynn
    nginx, js, css
    font-feature-settings: 'lnum' 1;

    668d448a323e8531890739.png
    Ответ написан
    3 комментария
  • Есть ли языки/нотации для записи бизнес-логики?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Диаграммы же. Смотрите в сторону с текстовой базой. Типа UML и прочее. Вот еще тоже неплохой онлайн инструмент для создания диаграмм из текстового описания: https://www.mermaidchart.com/landing (можно запустить локальный инстанс у себя).

    UPD1:
    Пример флоу-диаграммы русалки:
    flowchart TD
        A[Полльзователь] --> B(Скидка)
        B --> C{Тариф - платина?}
        C -->|Да| D[15%]
        C -->|Нет| E[5%]

    Картинка:
    spoiler
    6687d7a27a876258314167.png

    UPD2: Можно взять что-то гибридное типа ЯП Дракон.
    Ответ написан
    5 комментариев
  • Почему на ios не работает addEventListener('click')?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Емнип window это объект браузера, со своими свойствами и евентами, в которые вроде даже DOMContentLoaded не входит (вместо него есть "load"), это евент документа. Скорее странно что это работает на не айос...
    -window.addEventListener('DOMContentLoaded', () => {
    +document.addEventListener('DOMContentLoaded', () => {
    Ответ написан
    Комментировать
  • Как можно удалить одну функцию?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Элементарно. Рекурсивно вызывать getStringCount и суммировать возвращённые значения.
    function getStringCount(obj) {
      let countString = 0;
      for (let i in obj) {
        if (typeof obj[i] === "object") {
          countString += getStringCount(obj[i]);
        } else if (typeof obj[i] === "string") {
          countString += 1;
        }
      }
      return countString;
    }
    Ответ написан
    Комментировать
  • Как сбросить автопрокрутку у Swiper при переключении таба?

    DanArst
    @DanArst
    Гриффиндор в моде при любой погоде!
    Можно использовать метод slideTo, но он ломает autoplay, поэтому можно сделать следующее:
    отключить autoplay - скролл до 1-го слайда - включить autoplay


    navList[i].addEventListener("click", (evt) => {
        let currentLink = tabContainer.querySelector(
          ".slidersTab__tab-label.current"
        );
        let currentTab = tabContainer.querySelector(
          ".slidersTab__slidersItem.current"
        );
        //добавить 4 строчки -- start 
        let currentSlider = tabList[i].querySelector('.slidersTab__slider-body').swiper;
        currentSlider.autoplay.stop();
        currentSlider.slideTo(0, 0, false);
        currentSlider.autoplay.start();
        //-- end
        currentLink.classList.remove("current");
        navList[i].classList.add("current");
    
        currentTab.classList.remove("current");
        tabList[i].classList.add("current");    
    });


    Ответ написан
    1 комментарий
  • Как найти букву, которая не является частью слова?

    Lynn
    @Lynn
    nginx, js, css
    К сожалению \b в JS для русского языка не применим.
    Придётся явно указывать буквы, считая что у нас нормальные слова (состоят только из русских букв).

    const re = /(?<![а-яё])и(?![а-яё])/ig;
    console.log(re.test('Книга'));           // false
    console.log(re.test('Книга и тетрадь')); // true
    Ответ написан
    2 комментария
  • Есть ли визуальный редактор как в telegra.ph с лицензией MIT?

    victormayorov
    @victormayorov
    Frontend разработчик
    Есть dante editor. github
    под лицензией MIT и есть возможность с (+) добавлять контент
    Ответ написан
    1 комментарий
  • Как убрать полосы у скругленных углов?

    Fragster
    @Fragster
    помогло? отметь решением!
    Заменить на clip-path:
    Ответ написан
    Комментировать
  • Как лучше обратиться к кнопке через id или через class?

    Ankhena
    @Ankhena Куратор тега JavaScript
    Нежно люблю верстку
    id - уникален, т.е. по id можно обратиться только к конкретному элементу.
    class - можно обратиться ко всем элементам с таким классом. Но обычно на классы завязана стилизация, они могут быть переименованы, удалены и т.д.
    data-атрибуты - мне нравится этот вариант. Можно поставить нужным элементам сколько угодно раз, можно задать разные data-атрибуты, можно ими свободно манипулировать. Отделены от стилизации. Хотя, конечно, можно стилизовать и по ним, но меньше вероятность, что будут удалены из разметки верстальщиком.
    Ответ написан
    Комментировать
  • Почему line-clamp для обрезания строк отображает текст ниже троеточия?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Padding уберите у параграфа. Используйте отступы на внешнем элементе, если необходимо.

    Кстати, попробуйте увеличить паддинг до больших значений (~50px), увидите как работает лайн-кламп.
    Ответ написан
    4 комментария
  • Какой программой можно сделать из текста рэп?

    @Qoragar
    Сервис Suno AI
    Есть режим авто-генерации текста (например, по запросу "песня про ёжика"), и ручной режим со вставкой своих стихов. В запросе-описании указывается стиль исполнения и прочие пожелания.

    Музыку делает не ахти какую оригинальную (точнее, совершенно не оригинальную), но для ИИ весьма впечатляюще. ))

    Например:
    Рэп-коммент...
    Хэви-коммент...
    )))
    Ответ написан
    2 комментария
  • Какие нейросети имеют доступ к страницам сайте в интернете?

    @rPman
    Ни одна нейросеть на базе gpt не умеет напрямую работать со страницами в интернете.

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

    Мультимодальные сети (кстати, нормальных не существует, даже от openai слабовата, но она лучшая из универсальных) по уму должны уметь работать с веб-страницей как изображение, советую опробовать это самостоятельно на своих задачах, но не уверен что из этого можно получить что то стоящее. Такие сети могут получать изображения в качестве входа, а дальше позволяют вести текстовую беседу, учитывая их как часть контекста.

    И главная проблема - ограничения на размер контекста. Большие объемы текста тупо не помещаются 4к..8к токенов это тот объем, в пределах которого сети работают хорошо, но чем больше размер контекста (даже если заявлены 16к или 32к) начинаются борьба компромисов, качества и стоимости. Может так получиться что вместо работы со всей информацией сразу, ее делят на части (еще одна проблема по анализу исходной страницы), а затем, набирая вопросы из текущего контекста (та еще задачка) задают их последовательно для каждой, собирая ответы в итоговый контекст и ее уже используют для дальнейшей беседы. Плюс есть еще алгоритмы саморизации. Плюс еще неплохо сюда multishot пристроить, с примерами.

    На каждом этапе, возможно понадобится дообучать свои сети, а это значит собирать обучающую выборку с примерами, RLHF-ить на основе пользовательского опыта... и поддерживать это во времени, так как то что работает сегодня, завтра уже будет устаревшим.

    В общем реализуете что то стоящее первыми, может даже озолотитесь, продавая готовое решение бизнесу.
    Ответ написан
    Комментировать
  • Стоит ли дальше учиться программировать?

    Adamos
    @Adamos
    Когда я учился, нам давали Бэйсик и Паскаль.
    Языки вымерли, специалисты нужны по-прежнему.
    Тот, кто просто выучил язык - это еще не программист и уж совсем не специалист.
    И да, я тоже слышал, что С++ вот-вот вымрет... лет двадцать уже.
    РНР - лет десять, та же история, пол-интернета на нем по-прежнему работает...
    Теперь вот Питон.
    Доткомы били-били, не разбили. Блокчейн бил-бил, не разбил. Пришли нейронки, хвостиком машут! Берегись, айти!
    Ответ написан
    Комментировать