Хочешь чего-нибудь полезненькое сделать?
Сделай, например, пиринговую систему хранения файлов.
Принцип действия:
У пользователя есть 1 гигабайт ценных данных. Чтобы вступить в пиринговую сеть, он должен выделить 10 гигабайт свободного места на своём винте для хранения ЧУЖИХ данных (назовём это место "сундук"). Ну и иногда бывать в сети.
Данные пользователя разбиваются на N частей так, чтобы ни одна из частей не могла быть использована самостоятельно. Например, при разбивке на 9 частей в первую часть входят первые биты каждого байта, во вторую - вторые и т. д. В девятую - биты контрольных сумм для каждого байта. И gzip'ом сверху. Части сохраняются в 10 экземплярах в сундуках других случайных ста членов пиринговой сети, так чтобы у каждого было не больше одной части (впрочем, это не обязательно - при количестве членов сети больше 1000 перекрытие будет некритичным для сохранности данных) .
При потере исходного файла его с некоторой вероятностью можно будет собрать снова. При этом владельцы сундуков понятия не имеют, что там у них хранится, и восстановить чужую иноформацию не могут.
Сколько копий данных должно храниться в сети определяется отношением объема данных пользователя к объему его сундука и процентом проводимого он-лайн времени.
Дерзай! Потомки скажут тебе спасибо :) Ну и мне - за идею :)
Другие языки программирования и технологии
Тема диплома по программированию
Систему для бэкапа компьютеров в сети с централизованным управлением на сервере.
Похожие вопросы
- Конец объектно-ориентированному программированию? Переходим от “черных” ящиков к ”белым” и ”прозрачным” ящикам?
- Вообщем мне дали тему диплома — "проектирование 3-х мерных объектов в программировании"
- Перспективно ли учиться программированию с целью большого заработка, если нет диплома из ВУЗа по этой специальности?
- можно ли освоить язык программирования на базовом уровне и найти работу программиста не имея диплома. и как это сделать?
- А какие языки программирования изучали в 80х и на чём вы их изучали?
- ОК. Куда, мать его, поступать-то? Или как я стал ненавидеть программирование
- Основы для программирования
- Вопрос для тех, кто уже опытный и профессиональный специалист в сфере программирования, web-программирования, дизайн!..
- Web программирование
- Какой язык программирования выбрать для изучения для начинающего ? (внутри)