Удивительно, но забывают, что самым прямым прообразом современного Интернета, как сети связи, является телеграф (электрический), который придумали в начале 19 века. Посудите сами: для телеграфной связи использовалась сеть, в которой применялась развитая система адресации узлов; узлы телеграфной сети могут и принимать, и передавать сообщения; впервые именно телеграфная сеть стала глобальной (межконтинентальной). Но это далеко не всё.
В телеграфной связи с 19 века тексты кодируются/декодируются в автоматическом режиме. Уже в первых применявшихся телеграфных аппаратах использовался “протокол обмена данными” (если это решение так можно назвать), включавший отправку запроса на установление сенса связи (электрический звонок) и ответ на запрос, а также порядок завершения сеанса. Сравните с TCP. (Были и аналоги UDP, конечно.) Впервые именно в телеграфной связи применили технологию передачи нескольких сообщений по одному каналу и использовали перфокарты в качестве носителя передаваемого сообщения. Ну а уж про то, что именно на телеграфных линиях связи выросла вся современная теория кодирования – и напоминать-то, наверное, не нужно (а, в том числе, и двоичное кодирование символов использовали ведь).
Так что ультрасовременное “кибрепространство” выросло из “древнего” телеграфа. Который, впрочем, с появлением Интернета приказал долго жить. Жалко.
Комментарии (4) »
Сейчас самый популярный хеш – 9ec4c12949a4f31474f299058ce2b22a. Это число, размещённое на официальной нашивке штатовского киберкомандования. С подачи Wired многие кинулись “расшифровывать” – что значит сей хеш? Быстро выяснилось, что это как бы всего лишь MD5 от официального “бюрократического” описания миссии киберкомандования (текст не привожу, его легко найти; уже сутки как вошло в “Википедию”). Вроде бы, уже официальные лица подтвердили, что, да, так и есть – использовался текст описания миссии, несекретный. Пресса пошумела в англоязычном секторе. Сейчас российская подхватит. Очень много блогеры пишут. В общем, грамотный PR, без дураков.
Но что упускают из виду: в MD5 по определению есть коллизии. То есть, в одно значение функции отображается сколь угодно много текстов (не все осмысленные, да). Поэтому вовсе не факт, что именно опубликованный текст нужно принимать за реальную задумку. Ну, подумаешь, сказали: “да, вот этот самый текст!” А может, там совсем другой текст-то был заложен, ага. Шутка оказалась с намёком, с двойным дном.
Ну и учитывайте ещё, что в MD5 заданные пары текстов, порождающих коллизии, находить много проще, чем подбирать коллизию к заданному хешу (на этом эффекте три года назад сломали SSL).
Вот.
Комментарии (11) »
Общедоступный технологический фундамент крепнет – энтузиасты теперь могут строить хитрые системы, ранее принципиально им недоступные.
Два важнейших фактора: сети связи и вычислительные мощности “в компактном размере”. Ну и GPS, конечно, помогает. Одно из известных достижений: любительские “беспилотники” – небольшие авиамодели, на борту которых установлен автопилот с поддержкой GPS. Такие летательные аппараты уже сейчас могут летать по длинному заданному маршруту с довольно высокой точностью, лишь бы погода не подкачала.
Но GPS – штука более мощная, потому что даёт дешёвый механизм синхронизации времени. Если сюда приплюсовать Интернет, то перед энтузиастами открывается очень интересное поле для деятельности: можно строить хорошо распределённые в пространстве (десятки километров) системы сенсоров, с синхронным временем. Что такие системы могут делать? Они могут определять координаты разных источников сигналов. Схема тут ясна: основу для вычисления координат источника даёт разница во времени прихода отслеживаемого сигнала в разные точки сети (координаты точек известны). Есть проблемы, конечно. Но есть и интересное развитие: по точно такой схеме работают пассивные системы локации, использующие “побочный” электромагнитный фон.
Суть такая (я как-то писал об этом): в результате технологической деятельности в эфире работает куча передатчиков, излучающих самые разнообразные сигналы. Пассивная система, во-первых, принимает основной сигнал от того или иного существующего передатчика; во-вторых, принимает отражённые разными целями сигналы этого же передатчика. Непосредственно, основной передатчик может слушать один приёмник, который формирует опорный сигнал. Такой приёмник снабжаем, например, узконаправленной антенной. Другие приёмники сети принимают отражённые сигналы. (Впрочем, понятно, что в реальности все приёмники могут принять не только исходный сигнал, но и какие-нибудь отражения. “Лишние” данные фильтруются на основе информации о свойствах опроного сигнала.)
Собранные сетью сигналы с точными временными и “географическими” метками передаются через Интернет в некий центр. Центр – это достаточно мощный компьютер, который вычисляет возможную конфигурацию источников отражений и строит искомую картину наблюдений. Получаем “систему мониторинга”. (Тут нужно учитывать, что там возникает вычислительно сложная комбинаторная задача; но и центр можно сделать не “центром”, а распределённой вычислительной системой, увеличив доступную мощность.) В качестве источников опорных сигналов годятся телевизионные передатчики, базовые станции GSM и т.п.
(Надо заметить, что мне уже пару раз присылали описания проектов похожих систем. Наверное, что такое уже может быть сделано.)
Комментарии (14) »
В одной из прошлых заметок я писал (правда, больше в шутку) о скрытых (навязанных) вычислениях, которые могут проводить распространённые ОС в рамках процедуры получения обновлений. Результаты этих вычислений, понятно, могут использоваться производителями ОС: грех же не воспользоваться миллионами бесплатных часов машинного времени.
Интересно, что навязать пользовательскому компьютеру такие вычисления можно и без доступа к системе обновлений. Логичное решение – посещаемый веб-сайт. Конечно, можно что угодно запрограммировать на JavaScript и отправлять результаты подсчётов на сервер после загрузки страницы, или даже считать всё время, пока страница загружена, а результаты отправлять асинхронно, с помощью AJAX. Но JavaScript – медленный, да и решение получается слишком банальное.
Изящное решение могло бы быть вот каким: навязанная вычислительная задача “зашивается” в рендеринг веб-страниц. Например, когда браузер размещает в окне визуальные блоки, определяемые специально подготовленным CSS-ом (таблицами разметки страниц), он решает задачи, близкие к комбинаторным (ведь позиционирование блоков может быть относительным и абсолютным, с разной глубиной, с разным выравниванием и т.п.).
CSS-ы можно генерить разные при каждом обращении браузера. В каждый экземпляр CSS-ов транслируется кусочек задачи, кусочек навязанных вычислений. Получить информацию об итоговом расположении блоков сложнее, нужно привязывать всё к каким-нибудь фоновым картинкам. Возникают вопросы: кто-то уже такое делал? Выгодно ли это в вычислительном плане, относительно затрат на формирование CSS-ов?
Комментарии (8) »
В развитие темы активных систем защиты техники (противоракетных перехватчиков): прикинем требуемое быстродействие и масштаб временной шкалы, на которой происходит срабатывание всей системы (сперва посмотрим на малые скорости, а потом на гиперзвуковые снаряды).
Понятно, что время нужно измерять от момента обнаружения угрозы сенсорами до момента, в который защищаемый объект (танк там, или самолёт) будет поражён. Предположим, что сенсоры обнаруживают подлетающий снаряд (гранату, ракету) на расстоянии в 1000 метров. Тогда, при средней скорости подлёта в 500 м/с, остаётся аж две секунды на всё про всё, можно хорошо прицелиться и так далее.
Вообще, 1000 метров – это очень далеко. В городе просто нет таких практических дистанций в прямой видимости (разве что с верхней полусферы). В поле – посвободнее, но будет много заведомо лишних целей. С другой стороны, и две секунды – это очень долго, считать не пересчитать.
Более практичное расстояние – 100 метров. Получаем 0.2 сек. = 200 мс при средней скорости подлёта 500 м/с. 200 миллисекунд – это 200 тыс. тактов процессора, работающего на частоте 1 Мгц. 200 тыс. операций – как оценка, выглядит достаточной для вычисления параметров перехвата. При этом, 1 Мгц – по нынешним меркам очень медленно даже для военной специальной ЭВМ. Нужно, впрочем, скинуть время, необходимое для актививрования бортового перехватчика (поджиг ускорителей и т.п.) и передачи в этот перехватчик данных целеуказания.
Тут интересно взглянуть, как же может быть устроен перехватчик: например, противоракета выкидывается пороховым зарядом из стартового “стакана”, выдаёт несколько реактивных импульсов корректирующими двигателями (эти двигатели придают разворачивающий момент; т.е., смотрят, так сказать, вбок) и после этого, включив основной ускоритель, отправляется на встречу с целью. Собственно, именно так работает одна из штатовских систем, насколько можно судить по видео. Думаю, понятно, в чём суть схемы. Противоракета всегда выкидывается из пускового устройства в одном направлении. Скажем, вертикально вверх. Это конструктивно удобнее. Уже в воздухе противоракета очень быстро разворачивается в сторону точки перехвата, обеспечивая прикрытие по полусфере.
Ускорители со специальным топливом – они срабатывают очень быстро, хватит 5-10 мс плюс ещё 10 мс накинем на выполнение разворота. Тут, впрочем, кроется весьма хитрое “ноу-хау”: нужно так устроить корректирующие двигатели, чтобы они точно дозировали создаваемый момент, иначе противоракета будет разворачиваться с ошибкой, что сделает всю систему бесполезной. В используемом нами масштабе, заметным становится время, за которое противоракета достигнет точки перехвата. Предположим, что противоракета также показала среднюю скорость 500 м/с (очень такой прикидочный расчёт). Получается, что через 20 мс (10% от общего интервала в 200 мс) противоракета пролетела 10 метров. С запасом хватает для наземной бронированной техники (с точки зрения защиты пехоты перехват должен осуществляться как можно ближе к танку; у самолётов – там ситуация иная, но это для другой записки).
Время на передачу данных по проводам: похоже, им можно пренебречь (примем, что около 4 нс на метр, при использовании оптоволокна в качестве среды распространения). Также не рассматриваем задержки на распространние сигнала радара. Загрузка данных в противоракету: несколько байтов, несколько десятков тактов, получается – в пределах миллисекунды, при условии, что данные передаются по интерфейсу с основной частотой в 1 Мгц.
Промежуточный итог: для медленных целей (500 м/с) времени на вычисление параметров и на сам перехват – целый вагон (у нас специально занижена потенциальная производительность ЭВМ). Выглядит всё реально.
Теперь предположим, что появились упомянутые в комментах гиперзвуковые кинетические снаряды. Скорость такого боеприпаса – 1500 – 2000 м/с. То есть, времени меньше в четыре раза (скорость в четыре раза выше). Но, собственно, для вычислительной части времени всё равно достаточно (мы же взяли самую медленную ЭВМ) и даже задержки на передачу данных опять не заметны. Если противоракета продолжает тратить 40 мс на прибытие в точку встречи, то гиперзвуковой снаряд за это время пролетает всего 80 метров, что укладывается в предложенную схему (дистанция 100 метров). Так что, в теории, не так всё плохо. А ведь есть ещё лазеры. Для перехвата.
Комментарии (28) »
Современные биотехнологии продвинулись очень далеко. Похоже, через несколько лет реализуют давнишние планы по выращиванию в лабораториях “с нуля” “монстров” с нужными характеристиками. Доступность вычислительных мощностей и неплохо уже проработанный математический аппарат для моделирования – всё это позволит вычислить нужные биологические “ключи”, и конструирование организмов заработает на полную катушку. (Сейчас ещё не на полную работает, как видно.)
Биологические системы только на первый взгляд могут показаться непрочными и уязвимыми. На практике есть и очень живучие, и очень прочные организмы. Конструкторы смогут собрать воедино нужные особенности. Биохимия позволяет выращивать самые разные живые ткани, которые могут быть и броней, и какими-нибудь антеннами, и усилителями электромагнитных сигналов, да и всякими другими агрегатами тоже. Правда, процесс выращивания очень сложно выстроить. Но компьютеры помогают.
Сейчас умеют конструировать метаматериалы с заданными свойствами, которые не встречаются в природе. Можно предположить, что опыт проектирования и изготовления метаматериалов соединят с биологией. Таким образом, искусственные организмы получат в свой состав ткани с уникальными свойствами. Скажем, на базе таких тканей можно вырастить сверхчувствительные глаза с широким воспринимаемым диапазоном частот. Отлично подошли бы глаза, которые видят в терагерцевом участке спектра – получилось бы “проникающее” зрение. (Хорошо отработанная фантастами идея со “стелс-кожей”, делающей носителя невидимым, из этой же области.) Очевидно, что биологический организм может сам восстанавливаться, наращивать способности и так далее.
Разработку технологий выращивания таких организмов до сих пор затрудняло то, что всю научную изощрённость процесса чрезвычайно сложно охватить единым взором. В своё время, по этой же причине, например, тормозилось создание сверхзвуковых самолётов. Да и много чего ещё тормозилось. Нынче математика и компьютеры довольно глубоко проникли в передовую биологию. Так что вычислительный инструмент, который позволит сформировать “единый взор”, вот-вот появится.
Если сравнивать с классическими электронно-механическими роботами, то, вроде бы, у искусственных организмов не так уж много преимуществ. В ближайшей перспективе, роботы тоже смогут иметь функцию самовосстановления после повреждений. Смогут менять форму и подпитываться всякой захваченной биомассой (или мусором). А уж оснастить робота сенсорами и разнообразным оружием – даже проще. Всё отлично.
Есть только одна важная особенность.
Для выпуска роботов нужна хорошо отлаженная высокотехнологичная цепочка, базирующаяся на весьма глубокой и многоступенчатой переработке имеющихся на нашей планете исходных полезных ископаемых. Вспомните: там и хитрые полупроводники с присадками, и высоколегированные стали, и редкоземельные металлы, и непростые полимеры, и сложные текучие масла, и ещё всякое разное. Нужны химические заводы, промышленные комбинаты, сборочные цеха. И высококвалифицированный персонал.
Добротно сконструированный биологический механизм – сам себе и химический завод, и промкомбинат, и сборочный цех. Перспективный военный монстр может вылупляться из яйца и прибавлять в росте, поедая отходы из столовой. Требуется лишь некоторый уход, как, например, за коровой. Это что касается персонала.
Проблема в том, что обычные организмы – всем нам привычные животные, – растут крайне медленно. Армия механических роботов успеет отстроится за долгие месяцы. Но ведь именно поэтому в списке перспективных направлений исследовательских агентств (например, DARPA) значатся проекты по ускорению метаболизма в целом и отдельных “синтезирующих” биологических процессов. Биологию искусственных организмов наверняка можно ускорить.
Комментарии (5) »
С автомобилями связано не меньше всяких занимательных заблуждений, чем с самолётами. Например, кто-то полагает, что современное автомобильное двигателестроение недалеко ушло от первых “продвинутых” серийных моторов 60-х годов прошлого века (“ну вот только обвешали их электроникой”).
Или вот такое мнение: чем больше автомобиль, тем лучше его пассивная безопасность (так сказать, по определению). Речь о легковых автомобилях. Грузовики тут играют в своём классе. А ведь в двигателях, скажем, разобраться будет посложнее, чем с отношением линейных размеров к пассивной безопасности.
Да, при прочих равных, большой автомобиль проще сконструировать более безопасным. Это понятно. Но сами по себе размеры ничего не гарантируют. Например, ошибки в конструкции большого автомобиля могут приводить к тому, что при столкновении в салон проникнут какие-нибудь “лишние элементы” кузова. Очевидно, что большие линейные размеры позволяют запроектировать “деформируемые части” большей длины, а это позволит “растянуть” замедление при ударе, снизить перегрузки. Но ведь всю эту деформацию нужно правильно рассчитать. Просто “растянув” жёсткие детали, эффекта добиться не удастся. А если уж хорошо считать современными методами, то хорошие характеристики “по деформации” можно уместить и в размеры автомобиля с небольшим кузовом, потому что не настолько велики традиционные скорости передвижения автотранспорта.
Важный момент: обзорность. Здесь часто можно услышать про высокие автомобили (кроссоверы и внедорожники), что раз посадка выше, то обзорность гарантированно лучше, если сравнивать с небольшим “низким” авто (“высоко сижу, далеко гляжу”, как говорилось в сказке). Но это так, если только обозревать окрестности со “сферического коня в вакууме”. На практике, да, автомобили-соседи по пробке, загораживающие обзор, участвуют в формировании “поля зрения”, понятно. Но также это поле формируется из расположения и размеров стёкол, зеркал, стоек крыши, “рамок” дверей и так далее. На небольшом автомобиле невысокого роста расположение этих элементов тоже может быть хорошим, обеспечивая прекрасный обзор, размеры кузова тут не имеют первоочередного значения. При этом вряд ли возможность рассматривать крыши соседей по транспортному потоку компенсирует то, что важный сектор поля зрения постоянно закрыт передней левой стойкой крыши (например).
В общем, вовсе не факт, что большой автомобиль обязательно превосходит небольшой по пассивной безопасности. Нужно ещё смотреть на уровень проектирования, чтобы действительно сравнивать при прочих равных (тогда большой не проиграет, но не обязательно – выиграет).
Комментарии (9) »
В комментариях к недавней заметке про механические замки в будущем выдвинули очень интересные идеи. Например, про то, что можно использовать в качестве основной “отпирающей характеристики” ключа не форму, а свойства материала или использовать другие “физические поля” для переноса характеристик ключа внутрь замка. Попробуем развить тему дальше.
(Наверное, нужно напомнить, что в исходной заметке речь о том, какое будущее ждёт механические замки – ведь скоро появятся дешёвые, доступные сенсоры, способные в автоматическом режиме “просканировать” замок неразрушающими методами и реконструировать подходящий ключ, основываясь на компьютерном анализе внутренней структуры конкретного механизма.)
Идея про придание механике новых свойств, используя достижения технологий, она, наверное, самая интересная. Ведь научились делать не только изощрённые сканеры, но и, вот-вот, смогут изготавливать хитрые метаматериалы, с заданными необычными свойствами. А устройство “секрета” всякого механического замка можно свести к одному запирающему элементу – такой элемент всегда есть внутри; это, вообще говоря, не засов, конечно, а какая-нибудь шпилька, которая препятствует повороту личинки, до тех пор, пока не провалится в открывшийся в результате перемещения деталей механизма зазор.
Соответственно, в продвинутом замке будущего такой запирающий элемент не меняет свое положение, а например, при определённых условиях становится из жёсткого гибким и позволяет замку “сработать”, убрать засов. В самом же механизме при этом никаких свойственных только конфигурации “открыто” “зазоров” и “дырок” – не образуется. Понятно, что этот “хайтковый” запирающий элемент сделан из метаматериала, с заданными свойствами, главное из которых – изменить параметры упругости.
Возникает вопрос, как передавать на запирающий конструкцию элемент управляющие воздействия, если замок чисто механический? Ответ может быть, например, таким: а передаются воздействия с помощью создания различных механических напряжений в разных частях этого элемента. Где-то потянули “на три ньютона” (условно), а здесь, в другом месте, одновременно, – надавили с другой силой. Комбинацию сил, приложенных к разным участкам, создаёт механизм замка, но при этом механизм можно так устроить, что верная комбинация никак не следует из его структуры (потому что комбинация “хранится” не в механизме замка, а в структуре того самого метаматериального элемента). В общем, да, остаётся возможность исследования ключевого элемента такого замка, но его уже можно так запрятать, что сканеру будет не дотянуться.
Схема, кстати, “с теоретической точки зрения” аналогична, например, оптоэлектронным развязкам, применяемым в системах специальной связи.
Комментарии (4) »
В воскресенье – очередная конспирологическая заметка с шутками и сказками.
Вот сейчас под “социальными сетями” обычно понимают интернет-сервисы типа “Живого журнала”, Facebook, “Одноклассников” и других похожих. Основная особенность тут – построение и постоянное использование участниками сети связей типа “друзья”, “выборок” навроде “что пишут мои друзья” и так далее (думаю, все читатели этой заметки понимают, о чём речь, поэтому не будем вдаваться в подробности).
Все сколь-нибудь популярные сервисы этого рода – “центральные”, то есть работают на группе вполне конкретных серверов, и эти серверы принадлежат той или иной компании, которая имеет полный (технический и административный) контроль над действиями пользователей сети, над контентом, который они генерируют и, соответственно, над связями, которые они строят. Это важный, таки просто ключевой момент, ведь именно это обстоятельство отличает интернетовские социальные сети от аналогичных сетей в офлайне: понятно ведь, что в офлайне никто не может одним рубильником “отключить” всех членов сети в произвольный момент времени. (В офлайне социальные сети – это, например, сообщества фанатов какой-нибудь футбольной команды или, ещё лучше, тайные политические общества.)
Именно штука с центральным управлением переводит интернетовские социальные сети на принципиально новый уровень, если сравнивать с офлайном. Иной уровень – это, конечно, не возможность “отрубить серверы”. Нет. Всё хитрее.
Представим, что над контентом, генерируемым пользователями, ведёт наблюдение группа аналитиков, вооружённых специальными программами-автоматами (лингвистическими и анализирующими связи внутри сообщества). Эта группа строит некоторое новое представление для сети: выделяет связи пользователей “по авторитетности”, определяет стили “онлайн-поведения” и так далее. Результаты наблюдений накапливаются в особой базе данных.
Когда наступает некий “нуль-день”, поведение программного обеспечения серверов социальной сети резко изменяется. Теперь для каждого из пользователей генерируется некоторая “отдельная виртуальность”: сообщения от “друзей” этого пользователя генерируются уже не другими пользователями, а имитирующими их программами-роботами (ботами), которые действуют по алгоритмам, разработанным аналитиками из предыдущего абзаца. Имея полный контроль над контентом и над онлайн-активностью пользователей, не так уж и нереально завалить “френдоленты” потоками сгенерированных сообщений. Можно также подменять сообщения в архивах, оставленные ранее.
Так как на основе автоматизированного анализа предшествовавшей “нуль-дню” сетевой активности построена очень точная модель, то боты смогут генерировать сообщения, очень похожие на те, которые писали реальные пользователи. Смысл акции в том, что деятельность центрально управляемых ботов создаёт нужный информационный фон. Социальные сети в Интернете – традиционный инструмент создания всяких флешмобов. То есть, подходят для “стимулирования” массовых акций.
Понятно, что боты, работающие на центральном сервере, строят нужную отдельную виртуальность для каждого пользователя, учитывая связи этого пользователя, поведение внутри некой “референтной группы”. Вовсе не обязательно, чтобы “тупо подменялись” все сообщения: боты могут лишь иногда вмешиваться, задавая канву, которой следует ведомое сообщество. Ну, правда, не секрет же, что в “жежешечках” и подобных сетях существует вполне предсказуемое по реакции на заявления “гуру” сообщество последователей.
Первый вопрос, который возникает: как же научить ботов писать длинные осмысленные тексты, с заданным смысловым содержанием, да ещё и имитируя при этом живого биологического автора, так, чтобы подозрений не возникло? Такая задача не решена. (Ну разве что за исключением многих и многих дневниковых записок типа “сходил в магазин, купил колбасы, сейчас бутербродов наделаю” – да.) Внимание, фокус: а вовсе не обязательно решать задачу для длинных “авторских текстов”. Поступим проще: уменьшим допустимую длину сообщений в социальной сети.
Что получается?
Правильно – “Твиттер”, самая модная новинка среди социальных сервисов. Обученный на большой выборке “твитов” данного пользователя бот вполне себе справится со 140 символами, используя лишь частотные фразеологические словари и давно известные алгоритмы генерации коротких текстов. При этом “Твиттер” специально позиционируется как среда, где все “следуют” за потоками “изречений” друг друга. Очень удобно. И, вспомните, что сервис уже не раз упоминался в качестве инструмента для быстрой координации офлайновой деятельности социальных сетей.
Подмена информационной реальности с помощью перевода социальных сервисов в режим интеллектуальной эмуляции сообщества – отличный инструмент. Пользователь утром читает, что многие из его друзей просто возмущены каким-нибудь событием в офлайне (события-то может и не было, да), осуждают и намереваются “принять меры”. И вот уже этот пользователь транслирует “информационную тенденцию” дальше.
Ага, есть второй вопрос: а вот как, если этот пользователь начнёт проверять достоверность сообщения по другим каналам, типа, перезвонит по телефону автору “твита”? Ответ: а что, многие обычно проверяют сообщения? Нет, как показывает успешное распространение программ-зловредов с помощью разных ICQ, мало кто проверяет даже совсем неожиданные сообщения. А ведь автоматическая деятельность социальной сети в “нуль-день” будет учитывать “порог неожиданности”, максимально приближая фальшивые сообщения к типичным по стилю (в том числе можно и серии сообщений генерировать, начиная заранее).
Так что подмену реальности не все заметят. А те, кто заметят – их деятельность можно эффективно компенсировать, ведь именно им придётся искать дополнительные каналы оповещения других пользователей о случившемся подлоге. А это проблема.
Вот такая история.
Комментарии (4) »
Кратко этот сайт характеризуется так: здесь можно узнать про технологический прогресс, Интернет, математику, авиацию, компьютеры, авиационные компьютеры, вооружения, роботов, вооружение роботов, армии мира, астрономию, космические исследования. И иногда о чём-то ещё (
.