А что вас смущает в том чтобы иметь data retention policy для хранения ПД? Ну и хз под чьей там Хабр юрисдикцией сейчас, но аудиторы по GDPR например очень долго бы спрашивали а зачем вам данные «навсегда». Хз на сколько вам конечно это близко, но если у вас в архитектуре есть место где данные «пылятся до востребования на удаление», то вы либо архив всего-и-всех или у вас, извините, архитектура попахивает чемто не архитектурным
Не хотелось бы быть человеком, который на дне рождения критикует торт, но «Срок обработки персональных данных является неограниченным.» это чота както не по мне. Да и извините международная доставка в режиме «вы там заполните какойнить адрес в Москве и оплатите, а мы вам еще в догонку ссылку пришелем» — ну не уровень хабра же. Ну и телефон вам непонятно зачем вообще.
IP (которых кстати два IPv4 и IPv6) — это только один из протоколов сетевого уровня, который обеспечивает адресацию в сети Интернет. Он конечно важен, но существует еще куча протоколов, которые обеспечивают маршрутизацию, доставку пакетов без повреждений, управление ресурсами и сопоставлением логических адресов с физическими. Мир протоколов сети Интернет огромен.
Ниже\выше уже привели примеры, но могу отметить что в high-load зачастую используют кастомные оптимизации- у меня был опыт написания очень простенького сериализатора «на коленке» для выплевывания geoJSON в мир. Ни одна general purpose библиотека не сможет это поделку обогнать, т.к. сериализатор по сути заточен на один тип входных данных и способен заранее оптимизировать потребление памяти.
Не в обиду Newtonsoft все это сказано — я сам даже контрибутал в него, но уж больно он «зарос» фичами за свою историю, в ущерб производительности.
Уже в который раз вижу как Newtonsoft.Json является причиной просадки производительности. Жаль конечно что сейчас от него отказаться не так просто- много библиотек от Microsoft его используют. Надеюсь что выпилят его, как и обещали.
без nuget пакета вы предлагаете каждому подключать какуюто непонятную dll, таскать ее по репозиториям, да еще делать это не имея ее исходников и механизмов контроля вредоносности хотябы минимальной? Интересный маркетинговый ход по закапыванию своего проекта, даже не родившегося толком.
Крайне интересное начало, но под конец както стало не очень интересно. Нету ссылок ни на исходные коды, да и никаких Nuget-ов не завезли: надо както руками добавлть референсы, да еще и бинарники в репозиторий тащить (как самой библиотеки, так и зависимостей). Печаль.
Во первых пустые кетчи это не красиво. Во вторых, в общих чертах вы пытаетесь сгенерировать хеш оборудования, и то что вы просто пропускаете ошибки не обрабатывая увеличивет количество коллизий. По управлению потоком — вы стартуете поток в Registration(). А где возможность его остановить? А где обработка ThreadAbortException?
И кстати по самой теме статьи — NetworkInterface.GetAllNetworkInterfaces() .Where(_ => _.OperationalStatus == OperationalStatus.Up).Select( _ => _.GetPhysicalAddress().ToString())
Можете назвать меня привередой, но если уж пишете реальный код в примерах, то соблюдайте хотябы минимальную гигиену- у вас в C# коде нету ни одного вызова Dispose или использования using, причем вы открываете кучу unmanaged дескрипторов. Я уже не говорю про пустые catch и ваш весьма сомнительный подход к управлению потоками.
Вся прелестность GitLab заканчивается тогда, когда с ним надо работать в корпоративной среде, с необходимостью интеграции issue tracker и все это сдобрено толикой SSO. В моем случае в качестве issue tracker`а была JIRA. Даже Enterprise предлагает только «создание специального пользователя» в JIRA с доступом к JIRA Core. И коменты оно пишет из разряда «mentioned» а не то, что было в коммите.
золотаконтроля».Не в обиду Newtonsoft все это сказано — я сам даже контрибутал в него, но уж больно он «зарос» фичами за свою историю, в ущерб производительности.
И кстати по самой теме статьи — NetworkInterface.GetAllNetworkInterfaces() .Where(_ => _.OperationalStatus == OperationalStatus.Up).Select( _ => _.GetPhysicalAddress().ToString())