GUID по крайней мере проектировался для обеспечения некоей гарантии уникальности. Свой велосипед - не факт что обеспечит оное. Разве что тупо разместить генератор i++, но у него будет проблема предсказуемости...
p/s/ идея велосипеда со слегка квадратными колесами:
храним некий массив (list, dictionary и т.п.) сгенерированных строк желаемой длины - по каждому обращению за следующим уникальным значением - генерируем guid, от него откусываем кусок нужной длины, проверяем его отсутствие в массиве, добавляем в него и возвращаем эту уникальную строку.
Георгий Кузнецов, получится
просто надо общаться с диспетчером и просить его кой-чего в UI потоке выполнять ну или попросить commandmanager попинать контролы на предмет RequerySuggested
Зачем такие сложности?
Windows Sandbox и у них же на сайте готовый пример с инсталляцией vs при старте (можно оптимизировать и использовать автономный установщик) а рабочие каталоги - маппить на хостовоую машину.
Такая или подобная инфраструктура с установкой net runtime, vc++ redist и прочего занимает в пределах минуты после клика на .wsb
И собственно все - закрыл - следов не осталось, стартанул - получил девственно чистое окружение.
Ну и да, для паранойки можно и сети в песочнице отключить.
Более-менее тихие серверы - это что-нибудь типа HP ProLiant MicroServer
И да - сервер - это берндовая железка исходно предназначенная для непрерывной работы 24*7, имеющая средства дистанционной диагностики и управления, резервирования узлов, включая горячую замену и имеющая работающие механизмы гарантии/поддержки on site в короткие сроки (NBD например)
Все остальное - не серверы, а "серверы"/"типа серверы" и т.п.
ну тогда останутся только костыли разного рода в json, либо-таки в сторону xml смотреть - там чуть строже, но совсем не факт что сериализация/десереализация не взглюкнет в рамках какого-нибудь из языков...
а чего-то другого и чтобы было на слуху и нет... экзотика окажется со своими выпендронами и не факт что одна и та же экзотика будет для всех языков..
cicatrix, ну относительно... перезагрузка какого-нить hp dl 120 отчетливо слышна через кирпичную стенку со слоем штукатурки. В рабочем офисе со звонящими телефонами - это пониже уровня общего фона (звонки, разговоры). В жилой зоне - ну можно в рамках натурного эксперимента попросить домочадцев пропылесосить в соседней комнате пока спишь)))
Боты думаю тоже учатся не стучаться туда, где их блочат.
они даже не знают о том что их блочат, просто не получают никакого ответа. То бишь с точки зрения бота - компьютера не существует или он выключен.
Редкий везучий бот может конечно начать сканирование ровно с нужного порта - вероятность ненулевая, но очень маленькая.
Bohdan Zadorozhniy, я для исследовательских целей делал по отдельному правилу на каждый порт - тупо для оценки куда чаще лезут, а утилитарно - одно правило со списком портов для занесения в блэклист и одно перед ним для дропа по блэклисту.
Мне симатичен MS SQL, возможно потому что я с ним много работал. Ну и как мне кажется наиболее комфортная IDE - это MSSMS. Максимум - довесить к ней форматтеры от redgate.
Полмиллиона записей для "взрослых" субд - семечки. И даже очень корявые запросы планировщиками запросов вполне себе оптимально выполняются. MySQL не очень комфортен на мой вкус своей средой в виде phpmyadmin, да и пока еще среди отстающих в плане планировщиков для субд общего применения.
Про всякие специальные субд (в том числе нереляционные) - думаю пока рано.
В дальнейшем такое может выползти бочком, если сильно разовьются различные рюшки касательно вопросов и комментов. В общем скорее будет вред чем польза.
Вопрос самозапутанный, а человек говорит дело. Надо хотя бы одним глазком взглянуть на фиас/кладр. И потом оценить посилен ли будет такой велосипед.
В конечном итоге дело и придет к взятию готового фиаса. Ну или при соответствующем упорстве порождая свое - подстелить соломки в виде таблицы прослойки "адрес", которая одним концом будет смотреть на ваши кишки, а другим - ну на велосипед или куда - более мене безболезненно ее можно будет потом повернуть на фиас)
p/s/ идея велосипеда со слегка квадратными колесами:
храним некий массив (list, dictionary и т.п.) сгенерированных строк желаемой длины - по каждому обращению за следующим уникальным значением - генерируем guid, от него откусываем кусок нужной длины, проверяем его отсутствие в массиве, добавляем в него и возвращаем эту уникальную строку.