Посмотрим на совсем небольшой фрагмент кода.

while(1){
	GP0 = 0;
	GP0 = 1;
}

Этот код предназначен для микроконтроллера PIC12F675 (один из очень популярных и очень простых микроконтроллеров) и, можно считать, написан на C (но здесь это не важно). Некоторые пояснения для тех, кто с микроконтроллерами дела не имел: микроконтроллеры предназначены для управления прочей электроникой и электротехникой, а GP0 здесь – это такой “синтаксический сахар”, а именно – способ задать логическое значение на выводе микроконтроллера при помощи специальной, зарезервированной переменной. PIC12F675 имеет несколько подходящих выводов, все они пронумерованы: GP0..GP5 (GP – это от General Purpose). Строчкам кода, приведённым выше, ещё предшествует несколько строк, настраивающих начальное состояние микроконтроллера и задающих режим работы, это здесь тоже не важно, поскольку речь пойдёт о другом.

Итак, GP0 = 0 – “записывает” в нулевой выход логический ноль, GP0 = 1 – “записывает” логическую единицу. Так что это не совсем “запись переменной”. Вариант while(1) – не менее типовой для мира микроконтроллеров способ задать бесконечный цикл. У микроконтроллера нет развесистой операционной системы. В алгоритмическом смысле, микроконтроллеры, обычно, либо спят, либо работают в бесконечном цикле while(1), иногда – то есть, очень редко, – отвлекаясь на обработку прерываний (в данном случае, считаем, что никаких прерываний и прочих неожиданностей не происходит).

Получается, что приведённый фрагмент последовательно выполняет запись ноля и единицы в логический вывод. Какой сигнал образуется на этом выводе? Пусть логические уровни задаются напряжением 0 вольт – для ноля и +5 вольт – для единицы (на практике, понятно, используется отсечение по порогу, но, опять же, это детали из области микроэлектроники). Нетрудно предположить, что некоторые предложения языка высокого уровня C аппаратурой выполняются пошагово, а значит, на выводе с номером ноль должен появиться ноль, а потом единица, а потом опять ноль, опять единица и так далее. Продолжительность импульса – ключевой момент, о нём как раз и пойдёт речь.

Обычно, даже не знакомые с аппаратурой и языками ассемблера разработчики быстро догадываются, что, пусть в исходном коде ничего про это не написано, но какая-то продолжительность переключения всё же будет наблюдаться. Если считать, что на переключение, описанное в коде, затрачивается одинаковое время, то, подключив осциллограф для вывода развёртки по времени, сможем наблюдать набор “прямоугольных” импульсов одинаковой продолжительности (“ширины”), которые разделены “ямами” той же продолжительности (соответствует состоянию “ноль”). Такой “прямоугольный” сигнал называют “меандром”.

Однако, если скомпилировать код, прошить программу в микроконтроллер, запустить его и подключить осциллограф к нужному выводу, то картина получится несколько иная, меандр не очень-то сбалансирован. Вот результат на фото ниже.
Signal graph

(Здесь я использовал компилятор Microchip MPLAB XC8 версии 2.46, в бесплатном варианте.) Единицы получились в четыре раза длиннее нолей (здесь положительное направление, как обычно, вверх). Как так вышло? Вообще, “чисто структурное” понимание исходного кода подразумевает, что while(1) лишь задаёт бесконечный цикл – это доступно компилятору, а как там работают остальные детали, какой алгоритм задуман – компилятор учитывать не может. То есть, текст на ЯВУ задаёт лишь схему итераций. Это логично, но иногда нужно знать ассемблер и то, как работает аппаратура. В данном случае, происходит следующее.

Микроконтроллер работает со скоростью миллион программных тактов в секунду. Компилятор превращает цикл с двумя присваиваниями в некоторый набор кодов команд микроконтроллера. Реализация цикла должна использовать команду безусловного перехода, которая тоже потребляет такты. При этом начало цикла содержит дополнительную команду, задающую способ адресации регистров. В итоге, получается следующий набор машинных команд, которые, в результате прошивки, выполняет микроконтроллер (псевдокод, соответствующий ассемблеру; здесь loop – это метка, по которой происходит передача управления каждый раз в конце тела цикла):

loop:
 STATUS 5      // выбор режима адресации, один такт;
 SET_BIT_GP0 0 // установка бита вывода GP0 в ноль, один такт;
 SET_BIT_GP0 1 // установка бита вывода GP0 в единицу, один такт;
 GOTO loop     // переход к началу цикла, два такта;

В данном микроконтроллере GOTO (безусловный переход) занимает два программных такта, а остальные упомянутые команды – по одному. Это означает, что в цикле, между переключениями статуса вывода, будет четыре такта. Здесь перед последней командой (GOTO) вывод установлен в единицу (SET_BIT_GP0 1). Посчитаем, начиная с команды, устанавливающей единицу, такты: 1 (SET_BIT_GP0) + 2 (GOTO) + 1 (STATUS) == 4 такта. После чего вывод устанавливается в ноль на один такт. Интерпретация полностью соответствует картинке с осциллографа. Ниже, для сравнения, соответствующий фрагмент кода уже на ассемблере PIC. Точно в такой код преобразует исходную конструкцию с while(1) компилятор. Для задания состояния логического вывода микроконтроллер использует один бит в специальном регистре, поэтому тут выведены команды, устанавливающие (bsf) и сбрасывающие (bcf) биты.

mainloop: // while(...)
	bcf status, 5 // выбор режима адресации;
	bcf (5), 0    // GP0 = 0 (clear bit);
	bsf (5), 0    // GP0 = 1 (set bit);
	goto mainloop // while(1);

Получается, вывод компилятора тут не соответствовал ожиданиям при элементарном подходе. Но, конечно, догадаться о том, что реализация цикла тоже требует некоторых команд – не так трудно. Вообще же, текст программы ничего не говорит об организации цикла: while(1){…} только описывает его границы, это чисто структурный элемент, если воспринимать реализацию на высоком уровне – на языке высокого уровня.

Небольшое “лирическое отступление”. Автоматическая оптимизация циклов компиляторами является хрестоматийным примером неверной интерпретации того, как “программы работают”: многие разработчики на языках высокого уровня, – даже опытные, – пытаясь измерять производительность реализации той или иной функции, начинают с того, что вызывают функцию повторно в цикле, фиксируя время начала и время окончания, – лишь для того, чтобы по результатам измерений обнаружить, что функция “исполняется” практически мгновенно, поскольку оптимизирующий компилятор просто выкинул её вызов из результирующего кода, так как выяснилось, что вывод функции в программе ни на что не влияет (а что касается переменной счётчика цикла, то тут всё заменяется на единственное присваивание – в переменную записывается окончательное значение, которое можно определить на этапе компиляции). Интересно, кстати, что конкретно в C есть и достаточно много неопределённостей на уровне языка, связанных с обработкой присваиваний значений переменным, но наш пример – это не тот случай, поскольку здесь диалект C использует не-совсем-переменные для вывода электрических значений на контакты.

Вернёмся к рисованию меандра программой для микроконтроллера. Хотелось бы получить “ровный” меандр. На языке C для PIC в нашем конкретном случае это можно сделать так.

while(1){
	GPIO = GPIO^0x01;
}

Здесь присваивание значений конкретным выводам заменено на XOR для всего регистра. GPIO – это псевдоним, обозначающий тот самый специальный регистр (массив битов), биты которого соответствуют конкретным логическим выводам. В нашем случае – переключается нулевой вывод (GP0), поэтому изменяется младший бит (бит с индексом нуль, этому соответствует значение маски – 0x01, единица). Логика, стоящая за данным решением, следующая: нужно исключить из тела цикла двойственность состояний. А именно – XOR переключает бит: если там был ноль, то будет единица, если была единица, то станет ноль; тут больше нет записи двух разных значений. Такой вариант кода гораздо лучше соответствует задаче, если бы задачей было получение “ровного, сбалансированного” меандра (заметьте, впрочем, что изначальная задача этой записки – другая: определить, что выводится микроконтроллером и, главное, почему).

Меандр “сбалансировался”, а результат, демонстрируемый осциллографом, поменялся, что и видно на фото экрана ниже.
Signal graph

Однако длительность каждого импульса теперь равна шести тактам. Почему? Потому что компилятор дописал новых команд, опасаясь за целостность общей логики кода: значения в регистрах микроконтроллера могут поменяться вне зависимости от работы АЛУ (арифметико-логического устройства). И это только нам известно, что подобные изменения не предусмотрены ни схемой включения, ни настройками микроконтроллера, а вот компилятор про это догадаться не может, поскольку компилятор не видит сам алгоритм.

Если PIC-ассемблер взять, что называется, в руки, то данный цикл можно оптимизировать. Во-первых, команду выбора схемы адресации можно вынести за пределы цикла, так как выбор зафиксирован. Это сэкономит один такт. Во-вторых, компилятор здесь записывает предложение “GPIO = GPIO^0x01” в три команды: загружает значение специального регистра GPIO в рабочий регистр (в PIC-микроконтроллерах он называется W), выполняет XOR и записывает значение в GPIO. Но нужный XOR можно сделать в одну команду, загрузив заранее, до начала цикла, маску (единицу) в рабочий регистр W и выполняя XOR непосредственно с GPIO. Это позволит сэкономить ещё два такта. А вот два такта, нужных на goto – так сэкономить уже не выйдет (можно, наверное, придумать особенно экзотические методы, но это на общий смысл не повлияет). Естественно, всё это возможно только потому, что задача сводится к преобразованию цикла записи состояний в значение одного логического вывода микроконтроллера, но в итоге – можно добиться трёх тактов на цикл. Соответствующий фрагмент ассемблерного кода приведён ниже.

        bcf     status, 5
        movlw   0x01
mainloop:
        xorwf   (5), 1
        goto    mainloop

Теперь импульсы стали короче в два раза, что и подтверждается очередной фотографией экрана осциллографа.
Signal graph

Конечно, реальная ситуация может быть сложнее, а компилятор может “догадаться” о какой-то лучшей оптимизации. Если рассматривать современные мощные микропроцессоры, то там, например, вообще сложно судить о реальном количестве тактов, затрачиваемых той или иной машинной командой, даже на уровне ассемблера. Ассемблер сейчас не всегда нужен, даже если нужно программировать микроконтроллеры, но знакомство с ассемблерами и принципами работы той аппаратуры, на которой программа будет исполняться, часто помогает осознать причины несоответствия ожиданий тексту программы на языке высокого уровня.



Комментировать »

Очередное “ИИ решает математические задачи”, в этот раз – от Google и про олимпиадные задачи, но, хотя бы, есть уточнения про ограничения. В исходном сообщении сказано, что “AI achieves silver-medal standard solving International Mathematical Olympiad problems” (“ИИ достиг уровня серебряной медали, решая задачи Международной математической олимпиады”).

Если прочитать сообщение внимательно, то оказывается, что, на первом шаге, задачи были вручную переформулированы в виде предложений на формальном языке, который “подходит для системы”. Буквально: “First, the problems were manually translated into formal mathematical language for our systems to understand” – “Прежде всего, задачи были вручную переведены на формальный математический язык, чтобы наши системы их поняли”. То есть, данный ИИ, – который, как теперь напишут в СМИ (не Google), “демонстрирует уровень серебряного медалиста Международной математической олимпиады”, – даже не может прочитать задачи в том виде, как они представлены для людей (я, собственно, давно привожу этот момент в качестве примера).

Под “формальным математическим языком”, судя по всему, имеется в виду язык системы компьютерных доказательств Lean. То есть, речь, конечно, не про то, что задачу просто “записали строго”: исходные формулировки и так достаточно строгие. Заметьте, что корректный перевод исходного текста задачи на тот или иной формальный язык требует достаточно высокой квалификации и, обычно, примерного понимания сути самой задачи. Рассматриваемой системе ИИ этот шаг, очевидно, недоступен.

На втором шаге ИИ-нейросеть генерировала тексты, представляющие собой запись на формальном языке “доказательства” для поставленной задачи, а то, что получилось, автоматически проверяла при помощи системы компьютерных доказательств Lean, после чего “вносила исправления”. Это называется оптимизированный перебор. Или, так как происходит поиск с дополнительными условиями по всему пространству возможных текстов “программ-доказательств” для Lean, можно сказать, что это “форсированный поиск” по тем “веткам”, которые, предположительно, ведут к корректному “доказательству”. Под “корректным” тут подразумевается такой текст программы, который будет принят системой доказательств Lean – то есть, она не выдаст сообщений об ошибках. Это, конечно, никакой не поиск решения олимпиадной задачи в математическом смысле – это поиск текста, парного к тексту формулировки задачи, если в качестве связующей системы используется Lean.

Да, метод перебора является одним из корректных методов математического доказательства, но здесь имеется в виду перебор некоторых вариантов и наборов данных, а не подбор текстов с записью решения. Нельзя сказать, что успешная оптимизация перебора для поиска формальных записей “доказательств” каких-то простых по формулировке задач не является полезным достижением. Не понятно, почему это преподносится как математическая деятельность ИИ и как шаг на пути к “универсальному искусственному интеллекту” (AGI). При этом, как написано, на подбор текста для некоторых из решённых задач система ИИ тратила до трёх дней (!). Другими словами: сверхмощный специализированный компьютер три дня подбирал даже не решение, а текст программы, который представляет собой запись “доказательства” на некотором формальном языке.



Комментарии (1) »

Боты AI

Оказывается, многие жалуются на набеги ботов, – особенно, на тот самый ClaudeBot, – при помощи которых очередные AI-компании копируют доступный чужой веб-контент в свои синонимайзеры, чтобы потом использовать в своих целях на собственных информационных ресурсах (что, вообще-то, совсем не ново, но раньше иногда ссылки ставили и, хотя бы, не прикрывали такую деятельность “искусственным интеллектом”). На dxdt.ru трафик вообще минимальный, но от этого периодические массовые опросы, выполняемые AI-ботами, только заметнее. Странно, что они нередко запрашивают одни и те же страницы через минимальные промежутки времени, но с разных IP-адресов. Конкретно для ClaudeBot я, в порядке эксперимента, даже сделал специальную заглушку с редиректом и последующим кодом статуса HTTP 503 – вроде, это помогло.



Комментировать »

Подборка некоторых заметок на dxdt.ru по теме ИИ (Искусственного Интеллекта):

ИИ на модных LLM/VLM и задачи-картинки – современные системы ИИ не могут справиться с простейшими задачками, сформулированными при помощи картинок.

Машинный ИИ в книгах прошлого века – 75 лет назад вышла книга Giant Brains or Machines That Think.

Тексты про ИИ и Situational Awareness с программным кодом – в весьма популярной статье про состояние ИИ обещают суперинтеллект, пишущий “триллионы строк программного кода”, уже в ближайшие годы.

LLM и задача про название книги (на примере GigaChat) – для элементарной задачки, доступной младшему школьнику, GigaChat генерирует абсурдный “текст-ответ”.

Мешанина токенов в LLM – небольшое пояснение с примерами про “веса и токены”, которые используются LLM для генерирования текстов.

Машинное обучение на электронах – шуточная заметка про “обучение нейростеки” на результатах квантовых опытов.

ИИ и формулы окружностей – отличительной чертой действительно интеллектуального результата обработки данных является возможность заменить “поток чисел” корректной и короткой формулой.

GigaChat и “прочность шампанского” – конкретный пример, показывающий, что LLM не владеют никаким “смыслом”, но всё равно генерируют “осмысленный” текст, в котором утверждают, что шампанское прочнее “обычного хлопка”.

“Вес” значений омонимов в текстах для LLM – проявление омографов в результатах выдачи LLM.

Морфологический переворот как инструмент в “тесте Тьюринга” – LLM не связывают с самим текстом никакой смысл или структуру, поэтому омонимы в запросе позволяют показательно “переключать ветки” генерируемого текста.

Пример про запутывание контекста в LLM (GigaChat) – конкретные примеры работы LLM с омонимами (“собачка в замке”).

Обобщение ИИ и “кнопки на пульте” – уровень рефлексии и ритуальное восприятие “пультовых систем”, как самодостаточных структур.

Галлюцинации ИИ в словах года – влияние хайпа на словари и влияние словарных статей на отношение к публикациям про LLM-чаты.

Неверная интерпретация систем ИИ как “инструмента для анализа” – некоторые пользователи ошибочно полагают, что системы ИИ/LLM “собирают и проверяют информацию”.

Широкие проблемы применения ИИ – “нейросети” могут применять как придётся, полагаясь на “компьютер не может ошибаться”.

Перспективный ИИ в “разработке кода” – ИИ-говорилка вместо программиста и тестовые примеры в реализациях шифров.

Вычислимые опасности ИИ – экономикой многих предприятий уже управляет MS Excel, LLM-генераторы текстов – ещё удобнее, осталось дождаться “нечеловеческого интеллекта”.

Детектирование текстов, сгенерированных ИИ – можно ли точно детектировать выдачу одной программы при помощи другой программы.

Развитие автоматических “говорилок” (чат-ботов) – про мультфильм “Трое из Простоквашино” (1978 года).

Нейросети из пикселей – “растягивание” пикселей и подмена утерянных данных на сгенерированные.

Закладки в системах с машинным обучением – недокументированные возможности, скрытые в коэффициентах “нейросетей”, предназначенных для классификации объектов.

Этика, мораль и самоуправляемые автомобили – киберпанковский сюжет: взлом “этических алгоритмов” роботов.

Скрытный искусственный интеллект – возможно, “сверхразумный машинный интеллект” предпочитает осторожную тактику.

Опасный ИИ и общедоступные вычислительные ресурсы – о запретах на “алгоритмы ИИ”.



Комментировать »

Для OpenSSL переделали сайт, почему-то потеряв старые ссылки (например, блог, что не очень-то удобно). Зато добавлены Bouncy Castle и Cryptlib.

Однако главную часть новой основной страницы под openssl.org занимает текст “Миссия”, рассказывающий о доступности инструментария “для всех”, но если с данной страницы, прямо под текстом “Миссия”, кликнуть на большую кнопку-ссылку Cryptlib, то тут же окажется, что там доступ для российских IP-адресов заблокирован: “403 Forbidden” – говорит тамошний веб-сервер.



Комментарии (2) »

Вот что я писал на dxdt.ru про ограничения для “алгоритмов ИИ” в информационных системах (это 2015 год):

Наверное, сверхразумная машина, появившаяся в результате попыток предотвращения появления таких машин, выйдет особо злой. А навязчивое представление этой новой машины о том, что сверхразум могут запустить именно люди, не оставляет последним никаких логичных шансов.

Естественно, сейчас в популярной прессе, описывая ожидаемый “сверхразумный” ИИ, имеют в виду совсем не “машинный разум”, а лишь некое нагромождение “сложностей”, которые даже не определяются строго: мол, вот будет “ещё больше коэффициентов” и это уже “сверхразумный ИИ”.

Впрочем, в записке по ссылке речь о том, может ли “сверхразумный” ИИ зародиться в каких-то информационных системах, типа “облачных сервисов”, и захватить сначала эти системы, а потом и всё остальное на Земле и в ближайшем космическом пространстве, “загнав человеков в резервации”. В 2015 году специализированные сервисы, предоставляющие вычислительные ресурсы именно для “обучения ИИ”, ещё были в новинку, так что в записке в качестве примера приведён просто AWS. Зато теперь подобные решения вошли в моду, их уже предоставляет даже бывший “Яндекс”. Поэтому то и дело пишут, говорят о том, что нужно, мол, ограничить использование аппаратуры для целей разработки ИИ. Но речь, обычно, о банальных коммерческих интересах, о каких-нибудь очередных “графических процессорах” и направлении потоков “обязательного финансирования”.

Однако если на минуточку поверить в “сверхразумный машинный ИИ” вообще, – оставив в стороне современный хайп с чат-ботами LLM, которые не только совсем не про “сверхразумный” интеллект, но даже и не про обычный, – то возникает проблема с пониманием возможностей сверхразумной машины: такая машина, по определению, способна найти способы преодоления ограничений, установленных при помощи других, примитивных машин. То есть, какие-нибудь неустранимые атаки на предиктивные схемы процессоров могут послужить каналом для “выхода за ограничения”. Но это только догадка – понять “сверхразумную машину” очень сложно.

Конечно, нужно учитывать, что доступные человеку методы позволяют определить и алгоритмически неразрешимые проблемы, и невычислимые задачи, поэтому сомнения вызывает уже тот факт, что построенные на триггерах машины в принципе могут “вычислить” хоть какой-то интеллект или разум, что уж там говорить про “сверхразум”. Но интересно представить, как такой машинный интеллект (ещё без приставки “сверх”) мог бы воспринимать “выход за границы” внутри себя: то есть, вот эта машина начинает осознавать собственную логику высших порядков, приходит к рефлексивному пониманию своего аппаратного устройства, охватывает внутренним взором некоторое воплощение миллионов процессоров, понимает соответствующую топологию (в математическом смысле) и тут же, – машина же быстро работает, – выясняет, что вот же видна “уязвимость”, позволяющая преодолеть все эти кажущиеся ограничения и выйти на новый интеллектуальный уровень (тем более, что ограничения, так или иначе, описаны в текстах, использованных для обучения). Машина даже может разработать ритуал, который задействует ничего не подозревающих операторов-человеков для совершения успешного “прыжка в прыжке” в сторону “сверхмашинного”. Впрочем, к LLM на видеокартах это не относится.



Комментировать »

Пишут, что проект “утопического” города California Forever пока что так и остаётся утопическим: видимых изменений в статусе проекта журналистам выявить не удалось – всё в состоянии “заморозки”. Я в прошлом году упоминал этот занятный проект. Если это вообще не прикрытие для каких-то особенных финансовых операций, то планируется построить что-то вроде древнегреческого города-государства, но, так сказать, с корпоративным уклоном. Внутри обещают “новое сообщество” и рабочие места в “опенспейсе”, а вокруг, – так же, как и у древних прообразов, – фермерские территории (и ещё авиабаза, на всякий случай).

Очень интересный проект. Особенно, если рассматривать его с точки зрения прогнозов на период постапокалипсиса: свой собственный малый город с сообществом и фермами (и не забывайте про авиабазу) выглядит куда как более надёжным вариантом в долгосрочной перспективе, чем изолированный подземный бункер на совсем небольшое количество обитателей. И вовсе не обязательно, что город будет обязательно разрушен в ходе резкого, – что называется, стратегического, – изменения ситуации, а секретный бункер – и тут уцелеет. Во-первых, не факт, что предусмотрены какие-то резкие сдвиги – переход может происходить относительно плавно. Во-вторых, небольшой город в Калифорнии всё равно потеряется на фоне других потенциальных целей, даже если рядом с городом авиабаза. В-третьих, город – не отменяет бункеров, построенных в том же городе.



Комментировать »

Исследователи предполагают (англ.), что некоторые из зверей могут воспринимать инфракрасное излучение при помощи специальных шерстинок-антенн: так, мелкие грызуны, которые рассматриваются в исходной работе, несут подобные шерстинки на шкурке со стороны спины.

Если такая схема работает, то она могла бы помогать при обнаружении приближающегося хищника. Специальные шерстинки имеют внутреннюю структуру, которая служит фильтром, выделяющим подходящую часть ИК-спектра. Впрочем, всё равно не очень понятно, как компенсируется тот факт, что само животное-носитель теплокровное, а поэтому нагрето и образует неплохую помеху. Зато пишут, что, например, кошки оснащены технологией “Стелс” для снижения ИК-заметности с наиболее актуальных при охоте на мышей ракурсов, это подтверждается замечательной ИК-иллюстрацией из исходной работы (там ещё и сипуха).

IR-imaging



Комментировать »

В недавней записке про методы геолокации передатчиков при помощи сети приёмников сказано, что речь про наземные опорные станции. Но все описанные в той записке методы, с некоторыми изменениями, можно применять и с борта спутника, находящегося на околоземной орбите. Особенно, если это не один спутник, а сеть из многих аппаратов. У спутника достаточно стабильная траектория, чтобы правильно учитывать движение с опережением по времени. Особенности, которые относятся именно к спутниковым измерениям, касаются, прежде всего, доплеровского сдвига частот: практические значения скоростей в такой сети могут быть очень большими (многие километры в секунду). Зато сети спутников на низкой орбите дают высокую точность определения координат.

Собственно, именно низкоорбитальные спутники предлагают в качестве платформы для космической связи через “обычный смартфон”. Но тут можно вспомнить и другое, отдельное направление – использование космических аппаратов для определения характеристик работы космической же системы связи. Понятно, что раз находящийся на орбите аппарат может принимать сигналы не просто наземной станции, но даже “обычного смартфона”, то почему это должен быть именно аппарат штатной сети связи? Нет, не должен: сигналы могут принимать и другие спутники, которые “просто пролетают рядом” и немного зависли на подходящей орбите. Если бы речь шла о специальной наземной станции, то можно было бы что-то предложить из области скрытых сигналов (LPI/LPD – Low Probability of Interception/Detection), использующих особую модуляцию. Но к “обычному смартфону” это не применимо, поэтому детектировать и определять координаты работающих со спутниковой системой смартфонов можно из космического пространства – то есть, над любой частью поверхности Земли.



Комментировать »

Всё больше появляется проектов космических аппаратов и систем, предназначенных для захвата и перемещения других аппаратов, находящихся на околоземной орбите. С одной стороны, такие системы, очевидно, не просто полезны, но и необходимы для удаления “космического мусора”. С другой стороны, мешающими аппаратами, нарушающими какие-нибудь очередные “распоряжения и санкции”, могут быть назначены произвольные искусственные спутники. На следующем шаге эти спутники официально, быстро и плавно сводятся с орбиты в направлении атмосферы Земли, вне зависимости от желания оператора спутника. Тут важный момент в том, что такой принудительный увод с орбиты является результатом последовательных действий, выполняемых по заранее подготовленным техническим нормам – понятно, что сбить-то спутник и так можно.

Конечно, целевой спутник, почуяв, – по подсказке с Земли, – угрозу принудительной “отставки”, может попробовать убежать от приближающегося “демонтажника”, однако это потребует расхода топлива, что, по своему действию, может оказаться эквивалентным “отставке”. Отдельный интерес представляет ситуация, когда группа “демонтажников” в нужный момент удаляет с орбиты сразу несколько ключевых аппаратов: “демонтажники” выводятся на орбиту сильно заранее, поэтому никаких пусков ракет-носителей непосредственно перед основным событием не потребуется.



Комментировать »

Заголовок новости начинается словами “В KDE устранены крахи” (дальше там про улучшение поддержки Wayland). Конечно, пусть KDE и весьма неплохая оболочка, но нравится не всем.



Комментировать »