Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как можно защитить проект на Java от простого копирования?

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

Худший ответ:
Всем спасибо большое за ценные советы и рекомендации! 
С юридическими моментами пока не готов сталкиваться, потому буду пытаться реализовать технически.
Увлекшись мыслями о том как защитить, даже и не подумал что в принципе то украсть это одно дело, но без технической поддержки может быть довольно неудобно далее пользоваться этим всем если что-то вдруг пойдет не так.
Решил более пристально посмотреть в сторону привязки к ID машины (либо интерфейса) в комбинации с периодическим шифрованным обменом с сервером верификации. 
Также натолкнули на мысль что можно делать уникальные сборки под каждого потребителя с уникальными идентификаторами-подписями.
Вопрос: Статический и динамический массив в С?

Лучший ответ:
Так сделать просто нельзя :)
Обьявить массив переменного размера - невозможно. Все обьявления должны быть вычислены заранее, потому что помещаются в "кучу". И они все будут присутствовать в слинкованном бинарнике. И можно спланировать эксплойт выходом за границу. 
Статические массивы - зло.
Кроме того, вместо malloc привыкайте сразу использовать calloc - это спасет от SIGSEGV, возникающих у нубов "на ровном месте" просто из-за того, что забыли проинициализировать память, полученную от системы.

Худший ответ:
Разница во времени жизни и в месте размещения в памяти такого массива.
Динамический массив размещается в куче и живёт до тех пор, пока вы его руками не удалите (вызовом free(a)).
Статический* массив живёт на стеке и удаляется при выходе переменной из области видимости. Плюс ко всему, поскольку стек обычно имеет ограниченный размер, создание очень большого статического массива приведёт к ошибке переполнения стека (stack overflow).
P. S. Только такой массив называется не статический, а Variable Length Array (массив переменной длины).
Вопрос: Будет-ли работать IP-адрес вида 10.90.1.255(будет) и как это можно устроить?

Лучший ответ:
Столкнулся с ситуацией, когда хост получал адрес 10.94.1.255 от dhcp провайдера. шлюз был 10.90.1.1. При этом всё работало нормально.
А почему оно не должно работать нормально?
В любой сети меньше /24 широковещательный адрес может быть не 255.
У сетей больше /24 тоже будет 255 широковещательный, только адресов .255 будет больше одного
Поиграйтесь для развлечения www.gestioip.net/cgi-bin/subnet_calculator.cgi

Худший ответ:
Будет если у них настроен нат. 
Хотя в общем случае полный бред провайдеры выдают обычно нормальный внешний айпишник
10.0.0.0/8 это серые адреса и они не маршрутизируюся в интернет
Вопрос: Как совместить python и С++?

Лучший ответ:
Интерфейс на C++ в подавляющем большинстве случаев - это Qt. Для Python есть библиотека PyQt, представляющая очень близкий API и всё богатство функционала.

Худший ответ:
GUI на python должно быть писать значительно проще, чем на С++. Сомнительная команда у вас с другом...

И из свежего: https://habr.com/ru/post/499152/
Вопрос: Как можно распространить веб приложение написанное на java?

Лучший ответ:
Можно собрать в jar самостоятельно web-приложение, включающее в себя web-сервер. Правда, лучше тогда использовать легковесный Jetty вместо Tomcat. Можно собрать в war только приложение с зависимостями, но тогда ему нужен предустановленный контейнер. Все контейнеры совместимы между собой.

Худший ответ:
Выложи на Github или можешь поднять свой svn-сервер. И напиши скрипт развертывания на bash или powershell. Также запулить его рядом с исходниками. И сделай короткую ссылку на этот скрипт. Например, как-то типа cutt.link/netty .
Тогда развёртку можно будет запустить командой которую ты сможешь запомнить наизусть.
Что-то вроде:
curl http://cutt.link/netty | bash
Вопрос: Интернет-магазины на Битрикс. Два VPS слабых или один мощный?

Лучший ответ:
1. приоритет частоты на ядро нежеле количетсов ядер !  лучше всего I9 сервера битрикс там дает до 400 попугайчиков.
2. mysql 1 селект делает на 1 процессоре  как следствие ваш калькулятор карманный в котором вы слушаете музыку  сделает его быстрее нежеле  128 ядерный 2.4GHz процессор.
3.Кластер на ВМ, вы уверены что реально его потяните ?
4. NVme
5. файловый работает быстрей мемкеша  при дисках ssd тем более NVme
6. ширина интернет соединения? 100 мегабит?  это 8 мегабайт ващет и то в теории !
7. тут писал  https://klondike-studio.ru/standards/trebovaniya-k...
8. При подключение к БД через IP используется стек TCP/IP в отличие от локалхост, да в дабавок еще и пинг имеется. В результате бд через сеть работает медленней, порой ощутимо медленней.

Худший ответ:
Я уже понял, что лучше взять 1 сервер мощный - чем 2 средних... 
Сейчас как раз есть несколько интернет-магазинов - если сделать  сайты на разных серверах (средних), то один скорее будет простаивать, а второй в пиковые моменты будет под огромной нагрузкой. 
А если все на одном лежит - то тогда можно не бояться за то что будет такое - обычно нагрузка то на одном, то на другом усиливаетсяя и как раз ресурсы не пропадают..
Вопрос: Возможно ли на сервере, средствами PHP проверить поддерживает ли браузер определенное API?

Лучший ответ:
все что клиент изначально знает о браузере - это то что браузер говорит ему в "User-Agent". что бы узнать больше вам надо отправить "шпиона" в браузер, который выяснит что он умеет, и уже на основании этого подтянет требуемые обработчики.

Худший ответ:
Используя библиотеку modernizr на стороне клиента можно определить поддерживаемые функции и отправлять их в заголовке HTTP или теле.
Вопрос: Зачем столько конденсаторов в smd платах?

Лучший ответ:
В основном фильтрация питания / сигналов. Компоненты потребляют питание, выводы переключаются, создают скачки напряжения. Конденсаторы их сглаживают. Устраняют наводки на линиях.

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

Лучший ответ:
По крону; в другом потоке; используя очереди...

Худший ответ:
Вводных явно недостаточно. 
Непонятно где узкое место. На уровне базы? Или серверу оперативки не хватает? Если второе, то может характеристики сервака увеличить?
Тут можно предложить только экспериментальные решения:

- Перед запуском скрипта создавать копию базы, импортировать в нее, а потом подменять копию базы обновленной копией.

- Разбивать прилетевший json на несколько json меньшего размера, скажем, если там 100 объектов, то, к примеру, на 10 файлов по 10 объектов и загружать их с некоторым временным промежутком.
Вопрос: На плоскости расположены n предметов, их нужно переместить в заданные n позиций. Как это сделать?

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

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

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

Худший ответ:
Как вам уже написали, очень просто получить матрицу нужного времени для перемещения каждого предмета в каждую точку по отдельности (расстояние по теореме Пифагора делить на скорость объекта). Теперь вам надо найти такое минимальное время, что для каждого предмета можно выбрать уникальную точку, до которой время перемещения не больше заданного.

Отсортируйте все N^2 времен. Запустите по ним бинарный поиск. В качестве проверки запускайте алгоритм Куна для поиска максимального паросочетания, если оно оказалось полным - текущая граница подходит или слишком большая. Если максимальное паросочетание не полное - граница слишком мала.
Это решение за O(N^3 log N)

Альтернативное решение - отсортируйте все времена и добавляйте соответсвующее паре точек ребро в граф. Ищите дополняющий путь (обход в глубину из алгоритма куна). Если нашли - расширяйте паросочетание. Как только паросочетание стало полным, последнее добавленное - ребро ваш ответ. Это решение за O(N^4). Для N<50 тоже подходит.

Нужно знать: Графы, обход в глубину, паросочетание в двудольных графах (алгоритм Куна, например), бинарный поиск.
Вопрос: Почему тормозит база?

Лучший ответ:
Телепат в отпуске. Сделай explain запроса и внимательно его изучи

Худший ответ:
Возможно по типу = 14 выдается очень много строк, посмотрите на такую статистику:SELECT bls.idstatus, COUNT(1)
FROM
    SS_B2POS.blank_last_status AS bls
        LEFT JOIN
    SS_B2POS.blanks AS b ON b.idblank = bls.idblank
        LEFT JOIN
    SS_B2POS.clients AS c ON b.idclient = c.idclient
GROUP BY bls.idstatus;
Вопрос: Что нужно знать пентестеру?

Лучший ответ:
Таким вещам нигде не учат. Сначала становишься профессиональным программистом с широким кругозором и глубокими знаниями, а потом учишься сам в исследовательском режиме. Чтобы взломать сайт вроде Хабра, надо сначала уметь написать сайт вроде Хабра.

Худший ответ:
Посоветуйте материалы, книги, источники, сайты, где действительно можно получить "годную" информацию, ну и актуальную--
Первое, что необходимо пентестеру -  умение САМОСТОЯТЕЛЬНО находить ответы, хотя бы на самые простейшие, базовые вопросы.  И "годную" информацию можно получить везде - от университета до Гуугла. Главное - не "Где" учиться, главное - "Уметь" учиться.
Вопрос: Какую лицензию выбрать для Qt приложения?

Лучший ответ:
LGPL, да и вообще все популярные лицензии позволяют получать доход
просто не сильно спасет от ушлых клонеров
3. одна лицензия на производителя - частное лицо или компания
4. разумеется. Если б с нуля - могли бы как вам угодно завлять, а раз заюзали QT - придется по их правилам

Худший ответ:
1. Открывать необязательно, доход получать можно. 
2. Так тоже можно.
3. На разработчика.
4. Если коммерческая, то да. 
Какие известные программы с закрытым исходным кодом используют Qt в коммерческих целях?
Вопрос: Как передать данные методом $_POST в WordPress или есть родные аналоги?

Лучший ответ:
WordPress прекрасно работает с $_POST.

Сначала разберитесь что такое роутинг и ЧПУ в целом. Потом разберитесь с тем, как WordPress работает внутри, как он обрабатывает запросы. А потом разберитесь что такое хуки и как с ними работать.

ЗЫ: В какой именно index.php вы ставите этот код? Какой к нему путь?

Худший ответ:
1) Wordpress ничего не запрещает, запрещать может вебсервер, но тут не этот случай
2) роутинг в вордпрессе это тема сложнее чем "кинул код в index.php", редактировать файлы ядра нельзя, а форму нужно размещать внутри темы. Index.php там не один, их несколько в разных папках
3) <form action="" method="post">
Почему тут нет form action? Вы уверены, что обработчик сработает на уровне любого роута?
4) попап на странице может ниочем не говорить, говорит правду вкладка networks в chrome dev tools - какие данные послали, на какой урл-роут, что ответил этот урл.
Почитайте от корки до корки пару туториалов по добавлению формы в вордпрессе, о том как он устроен и как отслеживать в нем данные
Вопрос: Что изучать сисадмину, чтобы перейти в инфобез?

Лучший ответ:
чем вообще занимаются безопасники в свободное от ловли хакеров время.
Избавляемся от стереотипов. ИБ не занимается ловлей хакеров. От слова совсем. Этим занимаются компетентные органы :)
ИБ - это:
- файрволлы, СКЗИ, шифрование, сертификаты
- прокси, NAT, контроль доступа в тырнет, статистика, отчеты
- СКУД (если контора прям большая, то конечно СКУД повесят на охрану)
- СМП (системы мониторинга пользователей), в том числе оперативное наблюдение
- документация. Много-много-много документации, положений, инструкций, регламентов
- знание законодательства, особенно его некоторых частей - по авторскому праву, по ПДн и других
- могут повесить бэкапы ("тыжспецпозащитеинформации" :) )
Это скучная, неинтересная, ответственная работа, зачастую морально тяжелая и неприятная.

Худший ответ:
У нас в России инфобезами даже кадровиков называют, потому, Ваша стеза - знание закона о персональных данных и о работе с иностранцами :)))
Вопрос: На каком я.п. пишут софт в НАСА и Роскосмос?

Лучший ответ:
Для языка C есть набор специальных правил MISRA C, соблюдая которые можно писать надежный безопасный код.
Спутники ГЛОНАСС пишут на Модула-2.
На ассемблере никто и нигде сейчас не пишет, потому что это непрактично. Максимум - ассемблерные вставки для оптимизации каких-нибудь вычислений.

Худший ответ:
Могу рассказать про язык программирования ДРАКОН. Будешь удивлен)
Вопрос: Как организовать надежную инфраструктуру для веб-проекта?

Лучший ответ:
Например, самое главное (БД) перенесу в Amazon AWS RDS
Основной мощный веб-сервер с SPA и Backend останется в текущем ДЦ в Нидерландах
Хочу сделать резервный веб-сервер в другом ДЦ
Оба веб-сервера будут работать с одной базой в AWS RDS (MultiAZ для надежности)
Нет, все компоненты должны быть у одного провайдера, иначе будут огромные задержки.

Варианты от простого к сложному (кроме нанять опытного архитектора):
- выбрать надежного  провайдера - самый дешевый и простой вариант 
- AWS (или GCP/Azure) - разбросать компоненты по разным AZ
- несколько систем в разных регионах AWS, с GeoIP loadbalancing
- несколько систем у разных провайдеров (разные датацентры), loadbalancing Cloudflare or Incapsula, ...

В случаях 3 и 4 вы сами должны обеспечивать репликацию данных.

Худший ответ:
А может быть у вас проблема не в архитектуре сети а все таки в архитектуре продукта?
Вопрос: Как моему клиенту из Австрии правильно перевести деньги на счет ИП в России?

Лучший ответ:
пусть ваш отправитель при отправке платежа указывает параметр платежа - OUR

Производя оплату услуг банковским переводом (международный платеж в системе SWIFT), можно установить, за чей счет будут оплачены банковские комиссии. Для этого необходимо в платежном поручении, в поле 71А «Детали платежа»(Details of Charges), поставить отметку: BEN, OUR или SHA.

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

OUR – оплата всех комиссий производится за счет отправителя, перевод приходит получателю в полном объеме. А средства для оплаты комиссий списываются со счета отправителя, сверх суммы перевода.

SHA – оплата комиссий производится совместно, отправитель перевода оплачивает комиссии своего банка, а комиссии остальных банков оплачиваются за счет получателя (вычитаются из суммы перевода). Сумма перевода, которая придет получателю, будет меньше отправляемой суммы, поскольку из перевода вычитаются комиссии банков.


sim-networks.com/wiki/swift-payment-instructions

Худший ответ:
при swift'e комиссия составляет порядка $20–30 за перевод, без зависимости от суммы.
вы вполне попадаете в эти рамки. 
плюс эту комиссию можно либо перекладывать на конкретного участника, либо делить.
с чего беспокойство?
Вопрос: Как сделать такой SVG эффект?

Лучший ответ:
1) Линии через path.
2) Круги на местах соединений - через svg элемент<marker>.
3) Анимацию тегом animate.snippet<svg viewBox="0 0 140 140" width=100vw height=100vh>
  <defs>
    <marker id="markerCircle" markerWidth="8" markerHeight="8" refX="5" refY="5">
        <circle cx=5 cy=5 r=3 />
    </marker>
  </defs>
  <path d="M20 20 L30 40 L70 20 L90 80" fill="none" stroke="red" marker-start=url(#markerCircle) marker-mid=url(#markerCircle) marker-end=url(#markerCircle)>
    <animate 
           attributeName="d"
           values="M20 20 L30 40 L70 20 L90 80;
               M20 40 L30 10 L70 60 L90 110;
               M10 10 L15 80 L120 70 L150 75;
               M20 20 L30 40 L70 20 L90 80"
           dur="20s"
           repeatCount="indefinite"
           />
  </path>
</svg>
UPD: круги через svg marker

Худший ответ:
Particle js библиотека готовая
Вопрос: Посадка верстки на WP?

Лучший ответ:
Elementor сейчас самый популярный вариант, что называется на подъёме. Единственный минус - большая вложенность тегов, но это неизбежно для конструктора. Приходите в группу в Телеграмм, подскажем:
https://t.me/elementor_ru

Худший ответ:
Если задача стоит именно возможности кастомизировать клиентом самостоятельно структуру страниц - ELEMENTOR.
Если клиенту просто нужно самостоятельно изменять наполнение страниц(фото, текст) - то лучше Advanced Custom Fields.
А вообще в WP есть gutenberg по умолчанию. Его вполне достаточно для изменения и структуры и наполнения. А если нужно сделать что то кастомное - можно обойтись шорткодами.
Вопрос: Как найти и заменить значение вложенного объекта?

Лучший ответ:
Рекурсивно, вестимо.

Если ещё и нужно клонировать объект не изменяя исходный(сужу по коду), то можно совместить приятное с полезным:
const newData = JSON.parse(
  JSON.stringify(data), 
  (key, value) => key === 'value' ? 'new value' : value
);
P.S. Это сработает, только если объект - преобразуемый в json(не содержит истансов каких-либо классов, функций и т.п.).

Худший ответ:
В виду того, что сериализация и парсинг JSON очень дорогая операция (см. тест производительности), было принято решение написать свою рекурсивную функцию:

function clone(obj) {
    if (obj === null || typeof(obj) !== 'object' || 'isActive' in obj) return obj;

    const temp = obj.constructor();

    for (let key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
            obj['isActive'] = null;
            temp[key] = key === 'value' ? 'new value' : clone(obj[key]);
            delete obj['isActive'];
        }
    }

    return temp;
}

clone(data);
P.s спасибо пользователю Дмитрий Беляев за совет который сподвигнул к изучению данного вопроса
Вопрос: Есть ли смысл обращаться в Полицию после взлома трех серверов одного и того же провайдера?

Лучший ответ:
Отсюда мораль 1 - никогда не ставьте один и тот же пароль на разные сервисы. Утечет один - лишитесь всего.  И мораль 2 - меняйте ВСЕ пароли  на ВСЕХ сервисах раз в короткий промежуток времени.

Худший ответ:
Есть ли смысл обращаться в Полицию Нет.
Серьезного ущерба нет - какой смысл полиции заниматься этим делом?  Они вам посоветуют дурью не маяться, а настраивать безопасность на серверах нормально.
Заявление конечно примут, если будете настаивать, но толку от этого никакого не будет.

Никогда никому пароль из ЛК Провейдера А, который хранится там в открытом виде, я не говорил и ни в каких переписках никогда не скидывалПароль не может хранится в ЛК провайдера в открытом виде!
Так делают только при регистрации сервиса - вам скидывают адреса доступа и пароль и напоминают что его нужно обязательно поменять.
Вы этот пароль должны моментально поменять на свой, который нигде не будет храниться. Если вы этого не сделали - ну ловите проблемы.
Вопрос: Стоит ли писать let, const?

Лучший ответ:
Если не нравится const, то всегда let. Потому как let используется в уникальном scope. А вообще неплохо рассказано тут (в новой редакции).
Пример var:{
	var value = 1;
}

console.log(value); // 1
Пример let (const):{
	let value = 1;
}

console.log(value); // ReferenceError: value is not defined

Худший ответ:
используй только let
этого достаточно
Вопрос: Как создать детектор чихания?

Лучший ответ:
Собираете данные обучающей выборки (сотню другую чихов, кашлей, хлопков в ладоши и просто фоновых звуков). Затем, с помощью готовых алгоритмов получаете спектр звука на интервале (2-3 длины типового чиха), и натравливаете на это дело нейронку.

Худший ответ:
Да любое, которое вытаскивает из аудиопотока определённый спектральный паттерн.
Скармливаете ему спектр человеческого чихания и вешаете действие.
Вопрос: Как поменять имя пользователя, Windows 10 Home?

Лучший ответ:
Как поменять имя пользователя, Windows 10 Home? Как то так - wmic.exe UserAccount where "Name='Старое_имя'" set FullName='Новое имя"'

Хотя вам судя по проблеме не имя пользователя надо менять а путь к профилю пользователя.
Смена имени вашей проблеме не поможет и на путь к профилю никак не повлияет.

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

Худший ответ:
Откат винды в начальную точку , запушит смену Имени ?имя папки профиля создается при первом входе. после этого переименование пользователя не изменяет имя папки

но можно уничтожить профиль полностью. допустим из под записи встроенного администратора. тогда при следующем входе, будет создан профиль с актуальным именем
Вопрос: Как делать корзины для больших интернет магазинов?

Лучший ответ:
Очень смешной топик. 
Сразу видно что почти никто из советчиков никогда с реальным интернет-магазином не работал.

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

Ну и третье, уже специально для автора вопроса, а не только для всех юных писателей крупных интернет-магазинов - сначала, перед тем как приступать к написанию крупных интернет магазинов, следует изучить букварь по веб-разработке. И открыть для себя, что у любого интернет-магазина, даже некрупного, есть back-end. В котором, в общем-то, вся логика работы с товарами, заказами и корзиной и реализуется. И которое к "SPA на реакте" не имеет ни малейшего отношения.  И чтобы написать которое, надо учить основы баз данных, SQL и какой-нибудь серверный язык программирования. Ну и ещё примерно 20 дисциплин.

Худший ответ:
Есть таблица товаров, у каждого товара есть product_id
Есть таблица заказа, у него есть order_id, user_id, дата, еще что-то там.
Есть таблица связи многие-ко-многим, типа order_has_product, например
order_id | product_id | qty

Когда нужны все товары из корзины делаешь примерно так
select id, title, description from products where product_id in (
  select product_id from order_has_product where order_id = 42
)
-- ну или с джоином, вложенный написал просто для наглядности
Отдаешь это на фронт, отрисовываешь.

Не вариант же подгружать 10к товаров одним массивомКонечно не вариант. Храните их в бд на бэке. Причем 10к, это не большой магазин, в большом магазине будут тысячи КАТЕГОРИЙ товаров.

Не получится же просто пробегаться по всему массиву товаров в поиске ...Конечно не нужно пробегаться. Почитайте про индексы.
Вопрос: Как сверстать кавычки?

Лучший ответ:
Зачем верстать? Есть такой символ. ❞. Просто увеличь его font-size до 64pt;


Худший ответ:
1) Если есть макет в фотошопе, то там написан нужный шрифт к нему. И просто как текст делаешь кавычки и к нему стиль css
2) Есть кавычки используются для заднего фона для красоты. То можно просто картинкой вставить
Вопрос: В чём отличия между js плагином и библиотекой?

Лучший ответ:
Плагин - это модуль, который расширяет функционал основного приложения.
Что такое "js плагин" я не знаю. Вы откуда вообще взяли такое сочетание слов?
В целом можно сказать, что js плагин - это синоним библиотеке, но так обычно библиотеку не называют.

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