Задать вопрос
  • Как отрисовать 1000 графиков на Chart.js?

    Fragster
    @Fragster
    помогло? отметь решением!
    Выкинуть все анимации, нарисовать все графики на канвасе который не видно один раз и сохранить в dataurl или objecturl png (можно с помощью chartjs) и выводить картинками, убрать у них реактивность (это уже опционально)

    добавить virtualscroll для таблицы
    Ответ написан
    Комментировать
  • Нарушает ли открытое ПО composer`а проприетарную лицензию?

    Мы создадим обработчик для использования этой библиотеки, можем ли мы взять деньги за такую услугу? И нарушит ли эта библиотека лицензию CMS?

    Скорее наоборот вы можете лицензию на эту открытую библиотеку случайно нарушить.
    В случае apache - не страшно, она разрешает линковку с проприетарным кодом и не обязывает раскрывать исходники.
    В случае GPL - нужно будет покупателю CMS-ки предоставить возможность получить исходники прилинкованной библиотеки (а в некоторых случаях - и самой CMS-ки. Лучше посоветоваться с юристом, тк GPL очень сложная лицензия)

    Может ли компания продавать такую cms?

    Может. Но CMS же должна будет знать о существовании этой библиотеки? Я бы попробовал тогда добавить систему плагинов для CMS-ки. Тогда в худшем случае придётся только исходники этого плагина опубликовать.

    ситуации 1 и 2, только с модификацией библиотеки (наследование классов и их правки)

    Всё определяется конкретной лицензией. Повторюсь что gpl, apache, bsd, и mit - это совершенно разные лицензии.
    Ответ написан
    Комментировать
  • Насколько хорошо задавать стиль в html без создания класса и т.д?

    miraage
    @miraage
    Старый прогер
    Слишком мало информации, чтобы дать вменяемый ответ.
    В целом, лучше использовать CSS классы.
    Если это пару мест в разметке таких - ничего смертельного. Если огромный макет так сверстан - это катастрофа.
    Ответ написан
    Комментировать
  • Программы для импортозамещения?

    Alex_Geer
    @Alex_Geer
    System Engineer
    Вот реестр. Вбиваешь наименование ПО и смотришь отечественные аналоги

    https://reestr.digital.gov.ru/import-substitution/
    Ответ написан
    2 комментария
  • Где оправдано применение Node Js?

    Q2W
    @Q2W
    По моим ощущениям ноду используют фронтендеры, которые хотят простой бекенд и не хотят заморачиваться.

    Ну и server side rendering для фронта, написанного на каком-нибудь реакте, ангуляре, вью, свелте не просто организовать без ноды на сервере.
    Ответ написан
    5 комментариев
  • На что опереться при проектировании API (паттерны, концепции)?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Ну я вроде и рассказал, что это противоречит тому же SOLID

    Проектировать API надо по требованиям предметной области.

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

    а почему я не могу в API сделать метод DELETE и в него передавать и тип объекта, и его id


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

    Есть где кратко изложенная теория по этому поводу?


    Вряд-ли. Все зависит от проблемы/предметной области.
    Могу посоветовать алгоритм:
    1. Выявить функциональные требования к системе
    2. Представить их в виде условных функций
    3. Переписать их в виде вызовов API (за основу можно взять готовые паттерны проектирования: REST, SOAP и т.д.)

    Посмотрите на API VK или Telegram. Это не REST, но тоже удобно
    Ответ написан
    3 комментария
  • Как составить запросы postman?

    liaFcipE
    @liaFcipE
    Ну и дела, как же вас так учат? Неужели тебе просто дали задание и ранее не показывали как работать с Postman? Там же интерфейс, что справится даже моя бабуля.

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

    Давай откроем инструменты разработчика и зайдем во вкладку сеть, готово?
    Теперь нажмем на кнопку добавления товара и о чудо! В инструментах разрабочтика виден запрос add, его параметры и ответ:

    65064be46c94f492329084.png

    Теперь мы можем создать новый запрос в ранее созданой коллекции и понять следующее:

    - Запрос идет на адрес https://shop.mts.ru/api/v1/cart/add
    Можно сразу вынести https://shop.mts.ru - в переменные окружения (та самая environment), назовем ее base_url, теперь эндроинт запроса для нас - {{ base_url }}/api/v1/cart/add

    Что мы еще увидели в панели разработчика?
    - Тип запроса - POST
    - Тело запроса: {id: "677070"}, где 677070 - идентификатор добавляемого товара, его тоже можно вынести в переменные среды.

    На данный момент все, уже рабочий запрос на добавление товара в корзину, далее можно сделать тоже самое с удалением и изменением товара в корзине.

    Уловил примерно как это работает? Удачи.
    Ответ написан
    3 комментария
  • Как борются с взломом нейросетей?

    @rPman
    Бояться нужно не левой разметки, это не взлом.

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

    Гуглить adversarial attacks или атаки с использованием искажающих примеров.

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

    Кстати если это невозможно (т.е. веса сети должны быть на конечном устройстве, т.е. почти всегда), попробуй каждому клиенту предоставлять свою уникальную сеть, пусть и обученную на тех же данных (или нет) но с другими весами, такие сети будут по разному реагировать на искажения входных данных, т.е. атака будет возможна только адресной или сделает ее создание значительно дороже). Да, это дороже, с точки зрения обучения сети (это вопрос, на сколько далеко должен быть чекпоинт от результата, начиная с которого нужно вести переобучение, возможно и не очень далеко).

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

    Так же гуглятся предложения по Регуляризации функции потерь.

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

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    То что вы пытаетесь сделать в MySQL можно сделать при помощи типа ENUM

    CREATE TABLE species ( 
        species_id       INTEGER PRIMARY KEY,
        type_id          INTEGER,
        species_name     VARCHAR(255) NOT NULL,
        species_amount   INTEGER,
        date_start       DATE,
        species_status   ENUM ('active', 'absent', 'fairy') NOT NULL DEFAULT 'active'
    );

    https://sqlize.online/sql/mariadb/38af7f7fa3c528d5...

    Но лучше использовать таблицу-справочник
    CREATE TABLE species_statuses ( 
        id       INTEGER PRIMARY KEY,
        name     VARCHAR(255) NOT NULL
    );
    INSERT INTO species_statuses VALUES (1, 'active'), (2, 'absent'), (3, 'fairy');
    
    CREATE TABLE species ( 
        id          INTEGER PRIMARY KEY,
        type_id     INTEGER,
        name        VARCHAR(255) NOT NULL,
        amount      INTEGER,
        date_start  DATE,
        status_id   INTEGER DEFAULT 1,
        FOREIGN KEY (status_id) REFERENCES species_statuses(id)
    );

    https://sqlize.online/sql/mariadb/1121e0d679fb1aae...
    Ответ написан
    Комментировать
  • Можно ли задавать вопросы об оптимизации и/или улучшение качества базы данных?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Можно в принципе любые вопросы, связанные с тегом. Вопросы, а не задания (и не опросы!)

    Примеры:

    Опрос: "Как вы думаете, вот эта БД лучше вон той БД или хуже и почему?"
    Задание: "Сделайте мне структуру БД, чтобы вот так, вот растак и вот расэдак"
    Вопрос: "Хочу сделать вот такую структуру чтобы вот так, вот растак и расэдак, сделал то-то и то-то, получил вот такую и такую хрень, ЧЯДНТ?"
    Ответ написан
  • Как реализовать поиск по всем полям всех моделей и связанных сущностей?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Нужно использовать поисковые движки — ElasticSearch, Manticore, Sphinx и т.д. Ну или FTS в MySQL и Постгрес, но это от бедности.
    Ответ написан
    3 комментария
  • Как борются с взломом нейросетей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существует только один способ улучшать работу нейросетей - продолжить обучение на новых данных.

    Сам термин взлом здесь не применим. НС оперируют нечеткой логикой поэтому никакого взлома
    нет. Есть просто детерминированное поведение выхода в зависимости от входа.
    Ответ написан
    Комментировать
  • Как ускорить запрос Select живом поиске?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если поисковый запрос начинается с символа %, то индекс толком не используется.
    Вам нужен либо fulltext index и соответствующий запрос, либо сторонний поисковый движок типа эластика или мантикоры

    Или хотя бы перенести сайт с того утюга, на котором он хостится сейчас, на нормальный сервер. Потому что 10 секунд на перебор трех сотен тысяч строк - это запредельные какие-то цифры.
    Ответ написан
    Комментировать
  • Как заставить gulp.watch реагировать только на сохранение, а не любое изменение файлов?

    rqdkmndh
    @rqdkmndh
    Web-разработчик
    Никак он не может отслеживать изменения в файле, пока его не сохранят. В каком редакторе вы пишите? Отключите опцию автосохранение редактора. В самом ватчере, можно использовать параметр задержки
    function watcher() {
      gulp.watch('./src/style.css', { delay: 500 }, styles);
    }
    // в данном случае будет задержка в полсекунды после сохранения файла.
    Ответ написан
    1 комментарий
  • Какие вещи нужно изучить чтобы подготовить себя к работе с Highload проектами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Хайлоад это не какой-то особенный тип проекта, это все обычные проекты, но с объемом "туда-сюдирования" данных выше, чем тянул "прошлый сервер", когда проект был еще не хайлоад. В 90% случаев это выражается в росте количества запросов к бд, которая либо становится слаба по железу, либо вылазят косяки в запросах, написаных абы как, включая отсутствие индексов и кривую архитектуру.

    Что делается для "хайлоадинга"?
    1) Меняются сервера на помощнее, но это больше к админам обычно.
    2) Выявляются узкие места, в подавляющем большинстве случаев это либо обращения к бд, либо работа со сторонними сервисами, а-ля АПИ фейсбука и все такое.

    Как разгонять именно такие затыки 2 варианта - есть 3 пути:
    1) Оптимизация. Все что возможно ускорить - ускоряется, находятся самые тормознутые запросы, прогоняются через explain, переписываются, тюнятся, индексируются до состояния максимальной производительности.
    2) Кэширование. Обычно используют кей-валуе инмемори хранилища а-ля мемкеш и редис, и результаты запросов часто используемых, но не часто обновляемых данных пишутся в кэш. Время жизни настраивается в зависимости от необходимой актуализации. По идее на высоких нагрузках даже кэш с времением жизни 5-10 секунд может в разы снизить нагрузку на сервера.
    3) Иногда стандартных средств и инструментов не достаточно, и нужно искать какие-то новые инструменты, например переходить на сфинкс, так как фултекстсерч не вывозит. Или большие объемы данных идут на запись, и стандартной пропускной способности бд уже не хватает и нужно что-то типа систем хранения логов, или наоборот, аналитические бд по типу кликхауса...

    Короче - все то же самое что и в стандарте, только оттюнено и обмазано кэшами и инструментами чуть сложнее мускуля...
    Ответ написан
    Комментировать
  • Как повысить уровень создания проектов на чистом php?

    kawabanga
    @kawabanga
    Тем не менее сейчас я столкнулся с тем, что на собеседованиях начинают спрашивать что серьезного доводилось делать на чистом php - без фреймворков и мои ответы на их вопросы касательно парсеров, скиптов для обмена данными остаются неубедительными. Даже дальше кадровиков иногда дело не уходит.


    Вы неубедительны. Парировать надо. Ну найдите разраба, который в угоду своему ЭГО, будет писать проект на чистом php, который в будущем сможет поддерживать только он.

    Еще спрашивюат какие патерные проектирования используешь, придерживаешься ли принципов Solid?

    Вы недостаточно сильны в этом вопросе, SOLID опять же не про фреймворки.

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

    Зачем вам это? Изучать как работает PHP и смежные вещи - одно. Писать пет проекты чтобы закинуть их в ящик - другое.

    Может начать с изучения PSR

    Нужно, сразу после того, как вы начнете понимать php.

    от него начать писат простой psr фреймворк как это делал Дмитрий Елисеев?

    А что это вам даст?

    Или просто взять симфони и начать писать на ней чтоб понять суть вещей глубже и потом козырять своими скиллами на собеседованиях, что, мол, ,я тут на Симфони пишу, а вы мне тут вопросы для школьников задаёте?

    А при чем тут симфони и вопросы школьников?

    Короче расскажите мне про роудмеп погружения в php. Теорию я и так знаю - книги по php читал.

    Сначала начните с того, как искать в гугле. Полезный навык, помогает.
    https://github.com/thecodeholic/php-developer-roadmap
    Ответ написан
    3 комментария
  • Надежны ли показания контрольных хеш сумм?


    Можно ли на 100% доверять хеш суммам при сравненит двух одинаковых файлов на целостность ?

    Коллизии теоретически возможны.


    Есть ли вероятность что если два одинаковых файла имеют отличия то контрольные хеш суммы будут одинаковые или иметь отличие в 1 символ ?

    Так одинаковые файлы или имеют различия?
    Если одинаковые файлы, то у них будут одинаковые хэши.
    Если разные, то хэши будут различаться, если не произошла коллизия.
    Если в файлах изменён только один чимвол, то шанс коллизии исчезающе мал.


    Ести ли вирусы способные нарушать целостность файлов таким образом чтобы это нельзя было отличить по контрольным хеш суммам ?

    Задача по поиску коллизии является вычислиткльно сложной, а по тому, скорее всего, таких вирусов нет.


    Может ли вирус во время вычисления хеш сумм подменять значения хеша ?

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

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

    thewind
    @thewind
    php программист, front / backend developer
    Уберите фиксированные ip адреса из докер компоуз файла. А также добавьте networks для контейнера postgres с той же сетью, что и ваш backend
    Ответ написан
    3 комментария
  • Что означает запись?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В контроллере COM-порта несколько регистров. Запись в них определённых значений меняет режим работы порта. Эти регистры адресуются от базового адреса контроллера.
    _outp(COMBase+3,0x80); - Line Control Register (LCR). Установка старшего бита разрешает доступ к делителю.
    _outp(COMBase,0x01); - установка младшего байта делителя (0x01 => 115200 tick/s).
    _outp(COMBase+3,0x03); - отключение доступа к делителю и установка размера символа 8 бит, 1 стоп-бит, без контроля чётности.
    _outp(COMBase+1,0x00); - Inerrupt Enable Register (IER), запрет всех прерываний.
    _outp(COMBase+2,0xC7); - FIFO Control Register (FCR), разрешить буферы FIFO размером 14 байт и очистить их.
    _inp(COMBase); - прочитать байт из буфера.
    www.osdever.net/documents/CP_serial.pdf
    Ответ написан
    Комментировать
  • Как достучаться до докер контейнера из браузера?

    @Kostik_1993
    Web Developer
    Для того чтобы из браузера или другой программы попасть в контейнер нужно пробросить порт.
    postgres:
        ports:
          - 5432:5432
        networks:
          - app-network

    Но в вашем случае вам нужно из одного обратиться к другому. Судя по всему вы хотите сделать коннект к БД из вашего приложения, но у вас указан localhost. Нужно прописать postgres вместо него
    Ответ написан
    Комментировать