Отличается высотой (118 мм) и резисторами 5.1 и 3.6, причём 3.6 при отрывании с определённой вероятностью увлечёт за собой дорожку (соединил обратно каплей припоя).
Как можно догадаться по этому обстоятельству — 5.1 я оставил, сильно занизив мощность (но почему-то глазом этого обстоятельства всё равно не видно). 5.1 там с краю — возможно, его оторвать было бы проще и безопаснее для дорожек.
Как её отличить от позапрошлой «затылочной лампы», у которой тоже 118 мм, но резисторы 4.3 параллельно с 3.0 (в камментах к посту про первую «затылочную лампу» — наука не знает. Пропорция там та же, поэтому не уверен, что это важно.
Поиск хорошего удлинителя-зарядника продолжается. Если не будет ещё вариантов — будем считать этот победителем, вероятность, что куплю, вскрою и распишу внутрянку постом — более 50%.
Вопрос в аудиторию: существуют ли, попадались ли кому-то адекватные удлинители со встроенным USB PSU? Да-да, я про эти нынешние модные «три розетки на 220 и четыре на 5 вольт».
Я в один заглянул — хтонь, как это вообще в магазины выпустили, загадка. Какие там пропилы между высоковольтной и низковольтной частью, смешно даже. Крошечная угаженная плата, покрытая пылью и грязью поверх неотмытого флюса, фонарик заряжать — и то страшно за фонарик.
Методом перебора искать, сами понимаете, даже уже и не смешно :(
Лампочка, кстати, пока идеально работает. Никаких глюков у регулятора на нестандартном токе не возникло.
2041 оттенок несерого, или Как впихнуть невпихуемое.
Легко обозначить на диаграмме четыре цвета! И 16 — не проблема. Все 256 оттенков серого, пожалуй, человеческий глаз уже не различит. А как различить тысячу и более?
На помощь приходят они! Палитры «в стиле тепловизора». Как же их получить?
Попробуем сначала тривиальное решение. Повторим один канал от 0 до 255 четыре раза подряд, а при помощи другого — различим эти повторы. Бррр, и некрасиво, и отличающиеся на единичку цвета часто похожи друг на друга меньше, чем отличающиеся на 256.
Нет, нужно что-то непрерывное! Давайте сначала перейдём от чёрного к зелёному, потом — к красному, потом — к белому, потом — к синему? Уже лучше! Но всё-таки белый светлее синего, а зелёный — красного, и хотя синие звёзды таки горяче́е — синий цвет зрение воспринимает как холодный…
Да, вот теперь лучше! Чёрный — синий, синий — зелёный, зелёный — красный, красный — жёлтый, жёлтый — белый! Прекрасные дополнительные диапазоны таились в комбинациях нескольких каналов сразу! А можно ли ещё больше?
От чёрного до серого — 128, от серого до светло-синего — 128, от него до чисто синего — 128, потом до зелёного 256 и потом до сине-зелёного, и только от него уже к красному, и потом от него сначала к пурпуру, а только от пурпура — к жёлтому и потом — к белому! Хорошо, но светло-синий светлее синего, а между сине-зелёным и красным — явный грязно-тёмный провал.
Ладно, пусть будет от чёрного — к серому, от него — к синему, от него — к светло-синему, а от него уже — к зелёному, а в переходе от сине-зелёного к красному пусть сначала быстро разгорается красный и медленно затухает сине-зелёный, а потом — наоборот! Две тысячи уникальных оттенков, плавно нарастающих по «психологической температуре»!
На самом деле даже 2041, но это я пожадничал со стартовым серым. В максимуме он слишком светлый для начала диапазона и вообще слишком похож на другие цвета из серединки. Код этого варианта я приведу целиком, можете на свои вкусы дорабатывать:
int c,x=0;
for (c=0;c<192;c++,x++)
{
Test[y][x][0]=c;
Test[y][x][1]=c;
Test[y][x][2]=c;
}
for (c=0;c<192;c++,x++)
{
Test[y][x][0]=191-c;
Test[y][x][1]=191-c;
Test[y][x][2]=192+c/3;
}
for (c=1;c<128;c++,x++)
{
Test[y][x][0]=c;
Test[y][x][1]=c;
Test[y][x][2]=255;
}
for (c=1;c<256;c++,x++)
{
Test[y][x][0]=127-c/2;
Test[y][x][1]=127+c/2;
Test[y][x][2]=255-c;
}
for (c=1;c<256;c++,x++)
{
Test[y][x][0]=0;
Test[y][x][1]=255;
Test[y][x][2]=c;
}
for (c=1;c<256;c++,x++)
{
int Br = 127-abs(c-128);
Test[y][x][0]=c +Br/4;
Test[y][x][1]=255-c +Br/4;
Test[y][x][2]=255-c +Br/2;
}
for (c=1;c<256;c++,x++)
{
Test[y][x][0]=255;
Test[y][x][1]=0;
Test[y][x][2]=c;
}
for (c=1;c<256;c++,x++)
{
Test[y][x][0]=255;
Test[y][x][1]=c;
Test[y][x][2]=255-c;
}
for (c=1;c<256;c++,x++)
{
Test[y][x][0]=255;
Test[y][x][1]=255;
Test[y][x][2]=c;
}
Тут мы, конечно, вступили на скользкую тропку первого (лобового) варианта. Некоторые цвета почти повторяются, разница только в одном канале, который их позволяет различить «как старший разряд». Но в целом вроде ничего вопиющего?
А гость нашей программы — профессиональная логарифмическая палитра, цельнотянутая из какого-то научного журнала то ли конца 80-х, то ли начала 90-х, когда тепловизоры только завоёвывали свою экологическую нишу (увы, авторство по этой причине вряд ли удастся установить, она очень долго переходила из рук в руки). Обратите внимание, как в ней идут цвета: первые несколько отличаются очень сильно, а последние — на какую-то несчастную единичку в одном разряде одного канала. Вот она — работа профессионалов!
А какие палитры для приведения одноканального HDR (с неподвластным глазу SNR) к трёхканальному обычному изображению (с подвластным глазу SNR) знаете вы?
Обнаружена плюс ещё одна лампа с удобно отрываемым «лишним резистором». На всякий случай ещё и вентиляционных отверстий наделал, ибо конденсатор. Вверху — опознавательные данные для покупки. Легко открывается плоской отвёрткой, легко закрывается обратно. Яркость, что удивительно, почти не изменилась (свойства глаза или она работает на нелинейном участке, в глубокой перегрузке?)
Может, ей в светодиодной плате и алюминиевом цоколе тоже несколько отверстий сделать, чтобы прямотоком продувало?
Мне известны два ответа на вопрос — «зачем филину перьевые уши». Первый — «для коммуникации». Второй — «для маскировки». Нисколько не сомневаясь в том, что они действительно выражают настроение, всё-таки хочется усомниться в том, что это их первичная функция, а не побочная (насчёт того, больше или меньше они позволяют сливаться с текстурой коры — тем более). А ещё — чтобы в сильный ветер иметь вид лихой и придурковатый, дабы разумением своим не смущать кипера.
Дело в том, что совы вообще и филины в частности — офигенные «сонары». Его не видно и не слышно, а он сидит и всё слышит. Даже то, что не видит (а видит он тоже на зависть всем нам, даже днём).
А среда-то движется. И скорость распространения звуковой волны «по ветру» и «против ветра» отличается на плюс-минус скорость этого самого ветра (нет, это не эффект Доплера, потому что источник и приёмник звука взаимно неподвижны. Частота не меняется, меняется только фаза за счёт «скорости доставки» волны от источника к приёмнику).
То есть без учёта скорости движения среды можно получить неточную оценку разности фаз между левым и правым ухом (настоящими, которые для слуха). 10 м/с относительно 330 м/с — вроде пустячок, но для той точности, с которой филин наводится на шуршание вкусной толстой крыски под снегом — это уже может быть критично. И, чтобы учесть эту скорость движения среды — надо иметь ещё два уха-флюгера, которые из перьев и на макушке. Шёлковые, пружинистые и умеренно парусные. И поднимать их повыше каждый раз, когда дует ветер — чтобы точно его измерить.
А вы что думаете по этому поводу? Проверить относительно нетрудно — подуйте филину на перьевые уши так, чтобы не задеть остального филина, и филин возьмёт неправильный курс на столь аппетитную для него крыску.
Поскольку сегодняшняя суббота — это снова суперпятница, снова держите суперпятничное.
Электромобили — конечно, круто. Но мы забыли старые добрые микролитражки! Да, у них ДВС. Но у них мощность такая, что если пересчитать заряд электромобиля в работу ТЭЦ и сравнить с микролитражками, то по экологичности они уделают любого илона маска и никакая эффективность сжигания топлива на ТЭЦ его не спасёт. Почему бы не посостязаться не с ним, а с «Трабантом»? Думаете, проще него сделать нельзя? Ха, подержите моё пиво.
При изготовлении этого фотошопа «Оки» ни одна нейросеть не пострадала. Кто вспомнил юмористический псевдодокументальный сайт «Ока-тюнинг» — тот молодец. Кто вспомнил СеАЗ С-3Д — тот вообще титан.
И это, заметьте, не какой-то квадрик с крышей, по сути остающийся квадриком! Это таки двухместная городская нанолитражка, с единственной дверью (разумеется, правой) и массой прикидочно под мотодвижок воздушно-масляного охлаждения кубиков на 300-400. И даже можно взять с собой пару сумок и кошку! Колёса, правда, почти царапают изнутри фары и задние огни, но разве ж это беда? Чем не идеал минимализма?
А если даже это кажется избыточным, то можно сделать вариант с мотоциклетным рулевым управлением и, соответственно, категорией «А», но это опять уже будет квадрик, разве что подвеска ближе к автомобильной. Впрочем, ничего не мешает делать сразу оба варианта, потому что разница в узле управления, собственно, не столь и велика…
Я считаю, что сейчас это вообще самый перспективный класс. Предельно бюджетно, при этом экологично, ломаться там примерно нечему, на парковке раза в 2-3 компактнее, практично, ну и реально в плане массового производства, наконец. Подушки безопасности там тоже вполне помещаются, не совсем «капсула смерти». Потенциальный массовый автомобиль для сугубо практических нужд, причём для людей с далеко не айтишными зарплатами.
А для сельской местности — вариант чуть дороже, с полным приводом, который может утащить небольшой прицеп, и люком в полу для зимней рыбалки а вот фиг, для рыбалки нужна ещё и автономная печка по типу «Запорожца», которая позволяет не окоченеть при остановленном движке, а для неё места уже нет.
Вот почему я считаю, что над «нео-Фидо» надо активнее работать. P2p как-то больше ассоциируется с политическими проблемами и всякими бриарами, а ведь произошедшее в нашем климате, в общем-то, норма жизни. «Инфобезопасных» решений — море, а «противокатастрофических» — ровно ноль. А ведь это совершенно разные задачи.
Когда сидишь по уши в снегу и не можешь на метр от печки отойти, а надо весточку подать родным — не нужны никакие тайные чаты и приватные подписки. Нужен протокол, который позволяет синхронизироваться за то время, пока машина по трассе пролетает мимо через твою зону покрытия, обменяться хотя бы парой килобайт текста (предполагается, что ключ от него есть только у адресата, иначе мы открываем огромные ворота для жуликов всех мастей) и прицепить свою геометку для обратного сообщения, чтобы остальные клиенты знали, в какую сторону приоритетно надо отправлять ответ.
Задача, не только не тождественная «политическим» p2p-мессенджерам, а во многом противоположная ей (в части гео так уж точно). И самая сложная часть в этом — это сделать это решение общепринятым, потому что без массового покрытия эта система не значит ровно ничего.
На дворе снова пятница, а у меня снова высокая температура (похоже, кто-то в электричке обчихал). Поэтому снова держите порцию пятничного малярийного бреда:
Допустим, верна гипотеза о том, что тёмная материя — это сверхлёгкие частицы (настолько лёгкие, что их дебройлевская волна размером эдак с Галактику). А такую большую долю массы составляют потому, что их не просто много, а хтонически огромное количество. То есть, будучи притянутыми гравитацией ядра той или иной галактики, они образуют пушистый ком размытой квантовой неопределённости (или как оно там называется), туннелирующий сквозь абсолютно всё и не взаимодействующий практически ни с чем. Особенно друг с другом. Так и клубятся вокруг центра масс — они везде одновременно и при этом нигде конкретно.
А теперь в порядке бреда: а если не совсем «ни с чем»? Ведь они самой «густой» частью своей волновой функции находятся под горизонтом событий ядра. Могут ли они образовать «мостик», по которому энергия ядра понемногу удирает аж из самой сингулярности? Да-да, туннельный эффект на галактических масштабах ^______^
И контрольный в голову — а что, если эта утечка и есть тёмная энергия? Может ли она как-то «расталкивать» галактики или просто ослаблять на больших дистанциях гравитацию?
Наверное, самая безумная и несбыточная моя мечта — Викикодия, хранящая не отдельные сниппеты, а хостящая суровую сетку из функционирующих проектов. Вплоть до их сборки в бинарник (придётся прикрутить онлайн-компиляцию, да).
Да, язык получается прибит гвоздями (видимо, Си). С платформами — проще, викидвижок поддерживает плашки, в которых можно перечислить совместимые платформы. Одна «статья» — одна функция и по одному .obj для каждой платформы. Название «статьи» — название функции вместе со списком аргументов. Синяя ссылка в другой статье — вызов функции (можно и не одну функцию на статью, но видеться будет только «главная»). В возможности существования глобальных переменных, правда, у меня большие сомнения — викидао в том, что для изменения одной статьи не нужно держать в голове структуру всей Википедии.
Сохранить можно только версию статьи, нормально скомпилировавшуюся. Естественно, до патрулирования она недоступна никому, кроме автора и модераторского состава, иначе количество «закладок» быстро станет астрономическим.
Кроме мощного инструмента поддержания порядка в проектах, без превращения их в классификацию животных по Борхесу, эта штука обещает (а чего б ей не обещать, всё равно ж несбыточная!) околонулевой порог вхождения в опенсорс. Связность функций множества проектов, от базовой математики до целевого функционала, и единообразная структура, в которой не надо копаться, чтобы собрать себе персональный билд со своими хотелками.
@sbflowers, пока сезон и погода позволяет, что там насчёт той моей старой идеи попробовать вырастить растение из смеси каллуса груши и черноплодки? Если повезёт и оно стабилизируется в мозаичную химеру типа биззарии (биццарии), размножаемую вегетативно — получится весьма полезный и вкусный миниатюрный удобный кустик :)
Ну, и бюджет эксперимента с точностью хотя бы до порядка (а лучше — до двоичного порядка). Чтобы я знал, потяну ли :)
Вниманию любителей воскрешать индикаторы, экраны и морские радары — два таких красавца. На хранение убирал живыми и с неплохой эмиссией. Обвязка, увы, «всё».
Сегодня на арене пятничного цирка — очередной проект, за который я уже никогда не возьмусь.
Это осциллограф на ЭЛТ от монитора. Суть несложная — поворачиваем старичка вертикально, на кадровую развёртку (у которой обмотки с большой индуктивностью и на высокую частоту их не раскачаешь) подаём от 30 до сколько уж там выдержит герц «пилы». Получается ось X.
На бывшую строчную — исследуемый сигнал, в последнем каскаде лепим дико высоковольтный транзистор (которые и производились в своё время именно затем, чтобы остановить злобную самоиндукцию строчной развёртки), токоизмерительный шунт, с шунта заводим потенциал на ООС — получаем преобразователь входных вольт в выходные амперы (которые в отклоняющей катушке). Транзистор, наверное, придётся охлаждать Ниагарским водопадом :-D Но строчная уже спокойно может разглядеть и отработать не один десяток килогерц, что делает прибор уже более чем просто сувениром :) По крайней мере, на оси Y звук мы уже разглядим.
Через мелкую ёмкость измеряем первую производную от входного сигнала и её модуль закидываем на, правильно, Z. Чтобы не прожечь люминофор при рисовании прямой, но чтобы было что-то видно при бешено мечущемся уровне. Можно ещё пушки переключать, чтобы было три входа, работающих по очереди.
Разумеется, если у вас какие-то свои идеи развлечений с этими дудками — welcome :) А я и так задолжал тут пару обещанных статей, если не больше :( На такие вещи, как это чудо-юдо — меня уже никогда, видимо, не хватит… короче, #отдамдаром.
Предлагаю на выходных гипотетически подумать, как можно быстро и легко доработать сервер Minecraft так, чтобы можно было запустить несколько штук в одном мире (допустим, 16 серверов на 8 человек). Не, никто реально ничего делать не собирается, просто задачка для ума :)
Для определённости положим, что синхронизировать происходящее между серверными процессами мы не будем. Каждый работает сам по себе.
Проблему с миром вчерне решить несложно: кто первый загрузил чанк, того и тапки. Остальные получают read-only и их игроки не могут там строить и копать (вокруг всё «запривачено»). Оптимизировать тоже не очень трудно — небольшой алгоритм группировки игроков на серверах и выбора, кому именно отдать чанк при наличии рядом нескольких серверов-кандидатов (чтобы пореже сталкивались с «чужими» чанками).
А вот как быть с сущностями? Примерно понятно, что происходить с ними могут одновременно разные вещи в одной локации, если её взяли несколько серверов. Но как быть потом с изменениями в сущностях, чтобы можно было, допустим, за лутом вернуться, выгрузив-загрузив чанк? Как мерджить это от нескольких серверов?
Есть очевидные варианты, а есть хорошие. Меня увлекла задача поискать вторые :) и я приглашаю поломать голову со мной :)
Пятничный мозголом на выходные: будут ли работать эти два DIY-холодильника?
Первый — стирлинг Белецкого с фазовым переходом, который он обещал показать почти 10 лет назад, но что-то как-то не задалось… может быть, в виде холодильника идея жизнеспособна? Будет ли хладагент сжижаться и вскипать там, где надо, или будет плескаться только на дне? Будет ли он при этом проникать в нужных количествах где нужно, или уменьшение объёма при сжижении поставит крест на прокачке его из цилиндра в цилиндр?
Второй — классический «Морозко», упрощённый (в ущерб и без того кислому КПД) до уровня школьной демонстрационной модели. Вода нагревается, растворимость аммиака падает, а сжижаться сам по себе он при такой температуре не хочет даже под давлением — в результате они прощаются и идут охлаждаться в раздельные радиаторы, после чего, может быть, и жалеют о содеянном — а назад пути уже нет :) Остывший аммиак сжижается пассивным давлением, царящим во всей системе, после чего в левой ветке остывшая вода «через водород» снова его «впитывает», образуя исходный раствор.
Основная функция водорода тут — не мешать аммиаку испаряться при условии равенства давлений слева и справа. Нам совершенно не нужно, чтобы он испарялся справа, мешая конвекции, потому что справа его «некому забрать», но справа царит более-менее равновесное состояние насыщающих паров, поэтому там он и не спешит испаряться. Слева же паров аммиака мало (сплошной водород), поэтому испаряется он охотно, но не создавая падения давления, которое могло бы «пробить колено раковины» (выражаясь сантехническим языком).
А что, если объекты с очень высоким градиентом гравитационного поля (ЧД, нейтронные звёзды…) имеют бо́льшую массу, чем видится снаружи?
Что, если на порождение излучения Хокинга жрётся не только масса, но и сами гравиволны?
Что, если притяжение может быть асимметричным из-за того, что тело имеет большую массу и сильно притягивается к другому, но не может ответить взаимностью более чем на 99,9999%, а 0,0001% теряется? И за счёт чего будет работать закон сохранения массы и закон сохранения импульса при таком раскладе?
Навеяно статьёй о портах Doom и поскрёбышем Спектрум-128, у которого доступ ко вторым 64К был постраничный (не знаю, правда, что там с обратной совместимостью…)
Идея использовать «Денди» в качестве внешнего графического ускорителя, несомненно, как раз из категории тех вещей, которые упустили свой шанс завоевать мир — хотя явно могли. Какой-никакой, а графоний с аппаратными спрайтами-с. Но если речь идёт о Doom или хотя бы о Wolf3D, нужны скалеры столбцов. Или хотя бы строк: небольшой телевизор и набок можно положить.
Это приводит нас к такой ретро-игрушке: полметра-метр оперативки, к которой доступ производится поочерёдно от «Спекки» (через окошко, как в 128-м) и от счётчика. Счётчик формирует видеосигнал «на лету», собирая строку из указанных в стартовой (служебной) области памяти данных.
А фишка в том, что счётчик (видеосигнал-то аналоговый!) берёт из служебной области не только адрес и размер, но и скорость, с которой он «ползёт» по данным. Забиваем память тайлами и спрайтами, а в служебной области обновляем указания для счётчика — откуда сколько и чего брать. Они маленькие.
Получается вполне себе «2dFX» — можно и спрайты отскейлить, задавая разные скорости и разное число повторений одной строки, и даже Wolf3D сделать — только на боку.
Если заморочиться с рефрешем DRAM, можно даже на «рассыпухе» спаять. Даже на «рассыпухе» из тех лет.
Размеры экструдера преувеличены по отношению к столику раз в 15, чтобы можно было хоть что-то разглядеть.
Я опять зашёл набросить на вентилятор — и в кусты, а кто решится это на практике проверить — тот опять не я:‑D
Итак, очень пятничная концепция 3D‑принтера. Берём длинную шпильку М12×0.5, да, такое существует, в этом‑то вся и прелесть (ну, или можно нарезать без станка — плашки выпускаются, метчики тоже). Пропускаем через две гайки, на торце делаем столик размером с хорошее велосипедное колесо (12 мм стали, если более‑менее соблюдать развесовку относительно центра, за просто так не согнёшь). Получается такая «табуретка пианиста».
Над ней по такой же (или другой похожей) шпильке бегает, разумеется, сам экструдер. С соплом в те же полмиллиметра, потому что всё равно имеем явно девайс для грубой печати крупняка (столик за один оборот отступает от экструдера на 0.5 мм, соответственно, толщина слоя всегда и неизбежно 0.5 мм).
А поскольку крупняк печатать хочется бросовым пластиком, то экструдер делаем пеллетным: «горячая» часть (показана жёлтым) состоит из точно дозирующего насоса типа «восемь‑бесконечность» и системы грубого оплавления (коническое дно, к которому некая злая сила прижимает бедные пеллеты), а «холодная» часть (показана синим) делается по вкусу, допустим, бункер с прижимным поршнем, или канализационная гофра со шнеком внизу, или ещё как‑то, лишь бы придавливала пеллеты к, так сказать, предварительной оплавлялке.
В камментах это по отдельности было, сейчас просто свёл в общую концепцию.
Износ кассеты, точное совмещение спрайта пиксел-в-пиксел с чёрт-те-каким аналоговым сигналом фона, короче, будет весело. Но не мне :) Я пас :) Хорошо хотя бы прошивка какой-нибудь «тиньки» позволяет заметную часть железа решить софтово, а за саму игру пусть отвечает интерпретатор, грузящий её код с той же кассеты. В сумме, с поправкой на тормознутость интерпретатора, будет вполне аутентично — как если бы недопроцессор той эпохи при помощи кучи плат рассыпухи делал всё это аппаратно, включая загрузку кода игры и совмещение спрайтов с фоном.
Поскольку эта суббота является суперпятницей, держите суперпятничное: представьте себе мышку с двумя хвостами, встроенным свитчем, кнопкой переключения и разъёмом под SODIMM.
Для того, чтобы сделать Ctrl+C на одном компе, а Ctrl+V — на другом. А аппаратный буфер обмена — в мышке. Сунуть старую бучную планку «сколько не жалко» и развлекаться :)
Может, можно даже как-то сделать там секьюрный Air Gap, чтобы можно было обменяться только той информацией, которой пользователь открытым текстом приказывает обменяться. Ну, чтобы это не было шизой ради шизы. Но как именно — ХЗ.
Хотя это не обязательно — суперпятница же! Сделайте хаб «Клиника дяди Финика» для ненормального, но не только программирования :)
Студентом я мечтал скрестить Doom II, Fallout II и, не смейтесь, Minecraft — но, поскольку его ещё даже в проектах не было, за него отдувался не менее квадратный Rise of the Triad, к которому я додумал более гибкую геометрию блоков (получился по сути Minecraft).
Открытый мир (сгенерированный) с квестовыми городами (созданными умелыми руками всяких Петерсенов), и шастать вслепую не хватит никакой жизни — чтобы найти новую локацию, надо искать зацепки. Зачистить старую от «футболов» с «козлами» и посмотреть документы. Найти не до конца разбитую железную или автомобильную дорогу, которая куда-то да ведёт. Логически допереть, что тут с точки зрения логистики и инфраструктуры что-то обязано быть. И бои, бои, бои — в локациях открытого мира, в путешествиях, в (разумеется) квестовых городах! В основе всего всё-таки Doom :)
И, конечно, в конце главный демон обрушивается в клубах пыли, а все его деяния откатываются.
И только ручной какодемон Сильвестр всё ещё пытается сожрать последнюю канарейку на Земле — до чего же упрямая скотина…
Ну, крафт оружия на тот момент уже напрашивался, тут я не был оригинален. Ещё не был мейнстримом, но уже напрашивался. А вот движок тогдашнее железо едва ли бы потянуло. Даже упрощённый. Хотя вот когда оно дотянуло — блажь попробовать хотя бы движок мне в голову всё-таки ударила, уже без связи со несбывшимися мечтами, конечно.
А сейчас все такое пишут, лол :) Но в сеттинге Doom II, увы, в это вряд ли получится поиграть. Порты такое не потянут.
Представьте себе такой девайс. USB-бокс для харда, на боку — переключатель аппаратной защиты от записи, сверху — несколько кнопочек, снизу — коннектор типа оптоволоконного, только плоский.
Если защита от записи выключена, хард видится обычным макаром. Если же включена — вдобавок к нему определяется последовательный порт, по которому девайс отдаёт в терминал старый добрый Нортон Коммандер (вернее, клон под тот контроллер, на котором это чудо-юдо будет крутиться).
Оперируя кнопочками на девайсе, можно в обход защиты от записи работать с отдельными файлами (если, конечно, файловая система этому контроллеру понятна). Главная там операция — это копирование чего-то на второй такой же диск, тихо-мирно сложенный в стопочку с первым так, чтобы их оптоконнекторы совпали (ну или с него). Да, файловая система при этом будет меняться втихую от компа, к которому они подключены, но в read-only это не самая большая проблема, да и можно просто «отвалиться» с первым изменением, чтобы не смущать ОС уже на самом компе.
«Вторая главная» операция — конечно же, сравнение двух деревьев директорий вместе с содержимым файлов.
Назначение девайса, как вы все уже догадались — бэкапы и синхронизация в условиях «никому нельзя верить». От утечек, конечно, не спасёт (хотя можно на переключателе сделать и третье положение «Только терминал»), но хотя бы обеспечит то, что в момент копирования данных на диске назначения не произойдут какие-то загадочные несанкционированные изменения типа шифрования…