ChairfaceChippendale, да разрабатывал, команда из 6-ти человек, переписали, внедрили, поддерживали, потом это поделие (без слез не взглянешь) поддерживал один человек, в сумме почти 10 лет наверное... для it это наверное подвиг
ChairfaceChippendale, когда выбранная компания за очередной год поддержки своего продукта просит десяток лямов рублей (а глупость составляющих договор и вендорлок не позволяет уйти от них легко) а по факту в этот продукт за этот год запилят пару формочек и несколько кнопочек, ЛЮБОЕ иное решение будет дешевле
моя практика показывает, после определенного размера компании (сотни-тысяча человек),держать свою команду разработчиков в компании дешевле чем нанимать 'интеграторов готовых решений', да и с мелкими... 1-2 разработчика, пилящих задачи бизнеса. это норма (1с-ники на этом взлетели)
К сожалению, не всегда это возможно. Например если это госкомпания, с госбюджетами, целевыми тратами и нереально сложными способами вообще реализации 'все правильно' (я еще молчу про корпупцию и внутрикорпоративные конфликты, на моей практике так команда развалилась, когда ее буквально ограбили внутри компании).
Песочница
если что по ссылке инструкции по установке через powershell, на pro/enterprise ревизиях доступна как штатная компонента системы (включается в панели управления - установка удаление программ - включение компонент)
youtube-dl умеет загружать видео с кучи сайтов, в т.ч. facebook
он написан на питоне
проект очень сложный, а главное его разработчики следят за изменениями на сайтах (ютуб борется с такими качальщиками к примеру) пытаться сделать то же самое с нуля на java неподъемно сложная задача
поэтому советую, не трать время зря, а если вдруг не будет что то работать, лучше поддержи открытый проект своим кодом, чем пилить это в одиночку (это обречено будет на провал)
тогда само собой ничего не надо городить, VirtualBox в мышевозекательном виде все позволяет сделать, сеть хоть NAT хоть сетевой мост (тогда твой роутер им выдаст ip локалки)
настраивай одну машину, затем в свойствах диска выбирай тип 'с множественным подключением' и подключай его в 10 созданных машинах, на каждой машине этот диск будет использоваться с сохранением записей в этих виртуалках (т.е .оригинальный не будет перезаписан)
на всех машинах в сети перестает работать интернет? вот это сюрприз
могу предположить конфигурацию, этот nordvpn/protonvpn/... ставишь их виртуальный адаптер в бридж к сетевой карте (это можно сделать но по умолчанию никто из них так не делает) и dhcp их vpn становится виден во всей сети и машины начинают по окончанию времени жизни полученных адресов получать шлюз этого vpn (точнее туда сюда переключаться) правда речь идет о десятках минут/часах
hint000, тогда уж не так:
value_idx=m_key_idx[key];
m_value[value_idx]=value;
и это нормально будет работать, если ключи заполняют более менее нормально пространство значений от 0 до N (а то если будет 2 ключа 1 и 123123123123 то индексный массив будет занимать гигабайты)
Чтобы решить, какой из майнеров будет делать запись в блокчейн, и это нельзя заранее предугадать или предопределить (случайный процесс).
Результат решения проверяется без затрат ресурсов (т.е. видно что майнер ее действительно решил), при этом благодаря тому что хеш берется от всего блока, чужое решение нельзя использовать для подписи ни другими майнерами (в блоке первая транзакция - наградить майнера) ни для других блоков
Возможность подстраивать сложность позволяет сделать так, что время, затрачиваемое на решение примерно одно и тоже, благодаря этому, чтобы обогнать других майнеров нужны мощности сравнимые с мощностью сети (атака 50%+1), например считать параллельно блоки с набором транзакцией злоумышленника чтобы в нужный момент выпустить их все и отменить легинимные.
подробнее как именно от сложности зависит цель (нули которые надо искать)
Невозможно качая один торент, забирать куски у пиров с другим торрент, даже если там файлы совпадают (например первый файл такой же, а второй отличается, чанки первого файла будут иметь совпадающий хеш)
по крайней мере я о таком не слышал, это значит идентификация торента происходит по его главному хешу а не по его чанкам
плюс разум подсказывает что если бы dht рулила хешами чанков, нагрузку она бы генерировала кратно больше, а пользы - ноль
ты должен сделать демона, который будет при изменениях в базе вычислять, когда будет ближайшая дата события, после исполнения кода на события которые долждны были исполниться к этому моменту, вычисляешь снова следующее
бери всю подстроку с датой line[1:17]:
и не нужно никаких minutes+1, любое изменение этой подстроки = смена минуты (ведь могут быть пропуски минут, например ровно час пропусков, минута та же час другой)
да, правда он немного неудобный, когда речь идет о 'балансе на адресе', команда разработчиков bitcoin core маниакально следят за тем чтобы в проекте не было доступа даже к базе UTXO (текущий список всех адресов блокчейна на которых ненулевой баланс), притом что сам кошелек эту базу собирает (есть внешние скрипты, которые читают эту информацию, но только когда кошелек выключен), зачем почему - мне непонятно.
чтобы собрать текущий баланс на адресе нужно просканировать весь блокчейн (добавив адрес в кошелек он так и сделает, я имею в виду не сгенерровать новый пустой а добавить чужой для мониторинга), никаких индексов для ускорения этого нет, но на сколько я знаю есть неофициальные кошельки где это реализовали
можно вопрос, только серьезно, зачем нужно многоуровневое наследование шаблонов? какие задачи оно решает? я про те задачи которые собственно ставит бизнес, который платит, а не разработчик, который реализует... они экономят деньги? т.е. хотя бы время разработчика?