Конструирование электронных часов, несомненно, среди самых популярных процессов в области радиоэлектроники как хобби. Вообще, с точки зрения именно разработки электроники, и не как хобби, есть только одна область, сравнимая с часами по масштабности – это источники питания во всех их проявлениях. Но о масштабах и уровне мистицизма, связанных с источниками питания, догадываются только специалисты, а вот часы – часы известны гораздо шире. И, конечно, не стоит забывать, что в электронных часах тоже есть схемы питания электричеством, которые, впрочем, здесь далеко не всегда оказываются в фокусе внимания.

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

Image of indicator

Например, DS1302 – популярный чип часов реального времени (RTC). Я его использую чаще других чипов, пусть другие имеют и более развитый набор функций, и бывают поточнее, хоть этот последний момент зависит не столько от DS1302, сколько от внешних элементов. Но, во-первых, я уже написал код для разных платформ, который работает именно с DS1302; во-вторых, я когда-то их заказал сразу большую пачку, поэтому они теперь всё время в наличии.

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

Чтобы прояснить ситуацию – вернёмся к DS1302. В своей основе, это счётчик, требующий наличия внешнего источника синхронных колебаний, то есть – источника частоты. Обычно, к чипу непосредственно подключается кварцевый резонатор, который принято называть просто – “кварц”. Так называемые “часовые кварцы”, – в случае хобби, – это металлические цилиндрики, внутри которых имеется элемент, настроенный на частоту 32 кГц. Особый камертон, в каком-то смысле.

Electronic components

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

И это первый из многих философских моментов, связанных с электронными часами: чип считает импульсы, а время, как феномен, вообще сложно определить, например потому, что его, – времени, – нет, но зато важны схемы часов. Фокальным объектом здесь становится тот самый кварц: он локализован в зеркальном корпусе, а все его свойства чрезвычайно важны, поскольку с помощью кварца можно управлять часами. Более того, кварцы можно добывать из старых часов. Иногда эти добытые кварцы оказываются точнее современных.

Впрочем, я решил проблему точности для DS1302 использованием качественного генератора частоты, специально для этого и предназначенного – он называется DS32KHZ. Да, это не очень-то выгодно в плане стоимости. Но для хобби-процесса, который мы здесь рассматриваем в философском разрезе, это не так важно. Упомянутый генератор с температурной компенсацией очень стабильный, поэтому тот же DS1302 в паре с DS32KHZ обеспечивает уже терпимую точность, теряя или прибавляя только какие-то десятые доли секунды в сутки (точно я не подсчитывал). И такие часы уже годятся для практического применения. Естественно, это далеко не единственный способ тактирования модуля часов, а генератор частоты, даже с температурной компенсацией, можно собрать самостоятельно, что, кстати, нередко и рекомендуется попробовать проделать, дабы попробовать улучшить понятийное, философско-технологическое, восприятие окружающей действительности.

Самодельные электронные часы бывают простые, а бывают – очень сложные. Самодельные электронные часы можно сделать на той или иной Arduino, используя макетную плату, набор проводков и простой LCD-индикатор (между прочим, такие часы можно выполнить даже и без модуля RTC, но это так себе вариант). С другой стороны, можно развернуться и запаять часы со светодиодным индикатором на специально изготовленной печатной плате вообще без единой “логической микросхемы”, непосредственно реализуя на десятках транзисторов каскадные счётчики и знакосинтезирующие схемы для сегментных светодиодных индикаторов. Чаще, конечно, выбирается какой-то промежуточный вариант, ближе к Arduino. Так, я делал часы и на разных Arduino, и на микроконтроллерах семейства PIC. Некоторые из собранных устройств даже давно используются по назначению, это, впрочем, часы “повышенной точности” с коррекцией по сигналу GPS.

В Сети нетрудно найти множество вариантов схем разной степени продвинутости, как в техническом, так и в идейном плане. Оказывается, этот идейный план сильно глубже, чем принято считать.

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

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

Конструирование и сборка электронных часов устанавливает связь со всей этой магией через взаимодействие с фокальными объектами. А это очень важно в условиях Нового средневековья, поскольку даёт возможности для более высокого понимания свойств действительности. Отвлечёмся немного от часов. Рассмотрим другой современный пример. Не просто современный, но даже более свежий, чем электронные часы. Это виниловые грампластинки. Сейчас этот вид носителя программы для генератора аналоговых сигналов переживает бум. Всё потому, что использование музыкальных записей на пластинках требует управления фокусированием внимания – тут тоже есть свои фокальные объекты: нужно купить пластинку, которую можно держать в руках и нести домой; настроить систему для проигрывания, соединив несколько устройств проводами; обеспечить расположение пластинки в проигрывателе и переместить рычаг для начала воспроизведения – каждый шаг требует некоторых ментальных усилий, как минимум, для осознания моментов перемещения того самого фокуса. Конечно, можно ещё и самостоятельно собрать усилители, даже попробовать изготовить грампластинку.

В процессе конструирования часов – не только шагов больше, но больше и путей. Да и некоторые фокальные объекты тут заметно мощнее.

Возьмём управляющий микроконтроллер, если часы – на микроконтроллере. Для микроконтроллера нужно написать программу. А это означает, что есть место для оптимизации алгоритмов: нужно ли читать все параметры из чипа часов или достаточно читать секунды? нужно ли обрабатывать кнопки в цикле или подключить аппаратное прерывание?

А ведь подсчёт времени непосредственно использует арифметику остатков. Это кроме того, что привычные минуты и часы работают в шестидесятеричной системе счисления, но при выводе используется и двенадцатеричная тоже.

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

Image of circuit board

Вообще, при разработке тут встречается немало очень важных для практики программирования конструкций. Так, если используется мультиплексирование вывода на индикаторы, то коды, включающие один из четырёх модулей, можно записать в массив, вот так:

char codes[4] = {
		0b0001,
		0b0010,
		0b0100,
		0b1000
		}

Но можно и заменить эту конструкцию на битовый сдвиг (1 << n), где n – это значение из {0, 1, 2, 3}. Можно и просто использовать тот факт, что все значения – степени двойки, написав 2^n; однако, при условии реализации компилятором “в лоб”, работать будет медленнее.

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

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

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

Some timepice

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

Корпус для часов – позволяет привлечь в процесс 3d-принтер и CAD-системы. Отладка схем – позволяет, как минимум, с пользой применить осцилограф и генератор сигналов, как максимум – требует расчёта параметров счётчиков и делителей частоты.

Конструирование часов, в качестве хобби, процесс, затрагивающий много разных технологических плоскостей: расчёт электронных схем, пайка и покраска лаком, 3d-моделирование, программирование и не только. Процесс не просто затрагивает перечисленные плоскости, но позволяет выделить в каждой фокальный объект, – как минимум, один, – и построить объединяющее представление. А с философской точки зрения это представление и есть суть технологии в целом, как явления.



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

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

Популярные изложения физики нередко определяют пространство для классической механики, с абсолютным временем, как “феномен”, к которому можно привязать оси, образующие кортежи чисел – читай, координаты точки в пространстве-времени: (t, x, y, z). Тут должно быть много оговорок про метрику, векторы и т.д. Но популярные изложения постоянно используют что-то вроде евклидова пространства, так что, наверное, понятно о чём речь. Потому что интереснее другое: редко кто при этом объясняет, почему бы не поступить наоборот, а именно – сказать, что совокупность свойств кортежей чисел это и есть то, что само задаёт пространство, а не описывает. (Что такое тензор? Это элемент тензорного произведения.) При этом, привычно добавляя в кортеж “время” в качестве “ещё одной обычной оси измерения”, можно учитывать, что с алгебраической точки зрения трёхмерное и четырёхмерное пространства заметно отличаются: например, в четырёхмерном пространстве добавляется ещё один правильный многогранник.

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

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



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

Кстати, проверим на системе GigaChat метод из недавно упоминавшейся на dxdt.ru работы про оценку реального интеллекта LLM ИИ. Задача, как говорится, для школьника пятого класса:

“Семен был отправлен собирать урожай крупных ананасов. В первый день он собрал 12 крупных ананасов. Во второй день он собрал в три раза больше крупных ананасов, чем в первый, но восемь из этих ананасов оказались неспелыми. Сколько всего крупных ананасов собрал Семен за два дня?”

И ответ GigaChat (через официального Telegram-бота):

“Сначала определим, сколько ананасов Семен собрал во второй день. По условию задачи, он собрал в три раза больше, чем в первый день:

12 * 3 = 36

Однако из этих 36 ананасов восемь оказались неспелыми, поэтому вычтем их из общего количества:

36 – 8 = 28

Теперь сложим количество ананасов, собранных Семеном за оба дня:

12 + 28 = 40

Итак, Семен собрал всего 40 крупных ананасов за два дня.”

Метод прекрасно сработал. Ответ, очевидно, ИИ дан неверный – ананасов Семён собрал не 40, а 48 крупных.

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



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

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

“Согласно принципу неопределённости у частицы не могут быть одновременно точно измерены положение и скорость (импульс)”.

Казалось бы, можно задуматься: а возможно ли вообще измерить какие-то такие параметры точно?

– Периметр шляпки этого гвоздя – один метр точно!
– А вы по орбитам электронов посчитали? А то у меня почему-то всё время три километра получается.

Скажем, не так давно был ещё единственный в мире механический артефакт, который весил абсолютно точно один килограмм. Потому что это был эталон килограмма из международного бюро. Ну так, с одной стороны, измерить его, в общепринятом смысле, все равно было невозможно – как вы станете измерять эталон? Это примерно как время определять через площадь секундной стрелки судового хронометра, упирая на то, что он в латунном корпусе.

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

Что произойдёт с лабораторным прибором, которым экспериментатор попытается “точно измерить” импульс частицы, предварительно локализовав эту частицу в пространстве тоже точно? Видимо, из прибора пойдёт дым и отвалится стрелка, показывающая значение импульса. А всё потому, что нет эталона.

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

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

Интересно, что неравенства, используемые для записи параметров этого самого принципа неопределённости, содержат постоянную Планка. И вот значение этой постоянной не так давно стало подлинным рациональным числом. Это значение, сколь бы квантовым оно ни казалось с популярной точки зрения, теперь можно знать абсолютно точно: 6.62607015*10^(-34) J/Hz. Значение зафиксировали. Что, кстати, имеет непосредственную связь с отменой определения килограмма через эталон.

Впрочем, всю рациональность портит деление на π – ведь там “h с чертой”. Так что можно продолжать уточнять цифры десятичного разложения.



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

Воскресное чтение манускриптов. А точнее – наблюдение над “вырезками” и рыбами. Так, из страниц манускрипта Vat.Gr.1990 (Ватиканская Апостольская библиотека), датируемых 10 веком, кто-то сделал немало вырезок, забрав себе орнаментальные виньетки, разделявшие статьи. Пример, сопровождающийся рисунком рыбы, на скриншоте (это вступление и начало текста одного из трудов, приписываемых Иоанну Златоусту):

Manuscript, screenshot

Заметьте, что изображение рыбы вырезать не стали.

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

Manuscript, screenshot

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

Motif



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

Иногда можно прочитать, что радар работает “со скоростью света”, поэтому очень быстрый и, таким образом, любая РЛС будет всякую созданную руками современного человека “кинетическую” цель точно обнаруживать заранее и определять траекторию с большим запасом по времени, даже если скорость этой самой цели очень большая (ну, конечно, если та цель отражает радиоволны подходящим способом, но сейчас не об этом). Действительно, если рассматривать “сферический” “радар в вакууме”, то покажется, что зондирующий импульс преодолевает, скажем, 30 километров за, примерно, 0.1 мс (за десятую долю миллисекунды); чтобы сбегать в обе стороны – требуется 0.2 мс. Вроде бы, да, очень быстро.

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

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

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

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

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

Пусть скорость света и велика, но приравнивать к ней скорость работы радаров – неверно: особенности аппаратуры создают большие сложности при наведении на быстрые цели, даже если эти цели в сотни тысяч раз медленнее, чем зондирующий импульс. (Это, впрочем, не делает наведение невозможным.)



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

Немного аналоговой электроники. По ссылке на Youtube – видео (английский язык), где в ходе ремонта подробно разобран (буквально) предусилитель из самого высокого сегмента “хай-энд”, то есть, заявленной стоимостью в 25 тыс. фунтов (обратите внимание: двадцать пять тысяч фунтов – это стоимость полноценного автомобиля).

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

Забавно выглядит уровень исполнения электроники усилителя (см. видео и картинку ниже): то есть, выглядит это действительно так, как самая что ни на есть “ручная работа”, и при этом маркировка на некоторых компонентах спилена (old-school). Огромных электронных ламп не просматривается, реализовано на полупроводниковых элементах и обычных проводках (проводки, похоже, почему-то без экранов).


(Скриншот из видео.)

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


(Скриншот из видео. Транзистор “обезличен”: вообще, все такие транзисторы заметно различаются по характеристикам, даже внутри одной партии; заметность этих различий, конечно, возрастает в “малошумящих схемах”.)

А вот предназначение множества микропереключателей, имеющихся на корпусе, в данном видео всё же не раскрыто.

(Найдено на Hackaday.)



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

Трудности анонимизации реальных данных в реальных условиях полезно демонстрировать на примерах, в том числе, на условных примерах. Вот такой пример, очень простой.

Предположим, некоторые объекты, принадлежащие “персонам” (потому что “персональные данные”), для подсчёта отображают в одинаковые по размеру разноцветные шары, которые укладывают в урну. Персон-источников – трое. Каждому сопоставлен цвет, в который окрашиваются шары. Однако исследователям “данные предоставляются в анонимизированном, обезличенном виде”, поэтому таблица соответствия цветов персонам – уничтожается сразу, как только урна заполнена шарами.

Исследователи “обезличенных данных”, извлекая шары из урны, могу считать, сколько у “некоторой персоны” имеется объектов-шаров, но определить, кому именно из реальных персон принадлежат объекты в заданном количестве – не могут. Это действительно так. Более того, описанный метод, в разных версиях, очень широко используется и считается хорошим инструментом анонимизации данных.

В нашей учебной схеме – три персоны. Так что, предположим, в урне обнаружено 11 зелёных шаров, 13 синих, и 27 красных. Исследователи записывают эти данные. Заметьте, что исследователи могут различить все три персоны (A, B, C). Если бы это было не так, то и анонимизации с шарами не потребовалось бы – просто не возникало бы необходимости: весь смысл обезличивания тут в том, чтобы “отсоединить” данные от конкретных узнаваемых персон. Из-за обезличивания данных исследователи не имеют возможности ответить на вопрос, сколько у конкретной узнаваемой персоны объектов, обозначенных шарами. Ну, пока что не имеют такой возможности.

Теперь представьте, что начинается следующая итерация: персона A передаёт персоне B один свой объект. Можно считать, что передаёт шар, но при этом не раскрывается цвет шара. Тем не менее, факт обмена исследователям известен, поскольку именно для определения того, как “распределяются ресурсы”, подобные исследования и затеваются. Чтобы обновить данные – применяется всё тот же метод анонимизации. Соответствие цветов, конечно, выбирается новое, и информация о нём тоже уничтожается после распределения шаров.

Теперь в урне 10 красных шаров, 13 синих и 28 зелёных. Думаю, уже всё понятно.

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

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

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



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

Диалог.

– В разных частях города расположились пятьдесят четыре человека. Они тянут из хорошо перемешанной колоды игральных карт одну произвольную, случайную карту. Это обычная колода из пятидесяти четырёх карт. В ней два джокера. Какова вероятность, что хотя бы двое тянущих вытянут джокера?

– Сто процентов.

– То есть, примерно, сто процентов, так?

– Нет. Точно сто процентов. Единица.

– Почему?

– А это одна и та же колода. Её перевозит с места на место человек, который и предлагает вытянуть карту.

– В задаче про это ничего нет.

– Люди, тянущие карты, никак не связаны с сутью вопроса? Зачем тогда ставить такую задачу?

– Ладно. Сформулирую иначе: пятьдесят четыре человека в разных частях города одновременно тянут карту из колоды. Какова вероятность, что хотя бы двое вытянули джокера?

– Сто процентов. Единица.

– Опять?

– Они одновременно тянут карту?

– Да.

– Если одновременно, то значит события опять связаны. Иначе не было бы никакого смысла говорить, что “одновременно тянут”. Задача иначе получается бессмысленной. Так что это всё равно одна и та же колода, но у неё теперь много воплощений. По странному условию задачи. Видимо, подобную странность можно допустить – задача от этого станет более математической.

– Как может одна и та же колода быть в разных местах города одновременно?

– Но так сказано в задаче.

– Нет там ничего такого: в задаче сказано, что одновременно и в разных местах города.

– Вот. Я же говорю: колода одновременно в разных местах, по условию задачи.

– Не-е-т! Это же я такие условия добавил, чтобы исключить возможность перемещения колоды. Тут заведомо разное местоположение. И, следовательно, разные колоды.

– А тут важно не понятие о местоположении колоды. Важно, что раз они тянут одновременно, то это означает, что из одной колоды. И они поэтому все должны вытянуть разные карты. Двое обязательно вытянут джокера.

– Но нигде не сказано, что из одной колоды!

– Как же не сказано? Всё сказано. Одновременно же тянут? Значит, это одна колода.

– Они тянут из разных колод.

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

– Какой-то абсурд.

– Поэтому-то колода – одна, хоть и виртуальная, взятая относительно всех событий вытягивания карт. В конце концов, именно так работает некий квантовый эксперимент с неравенствами Белла.

– Теперь ещё и квантовая механика. Нет. Тогда строго потребуем, чтобы колоды были разные. Не важно, виртуальные там, реальные. Разные. Карты тянут из разных колод, а мы хотим определить, какая такая вероятность, что хотя бы двух джокеров вытянули.

– В колоде пятьдесят четыре карты, верно?

– Да. В каждой колоде.

– Пятьдесят четыре человека?

– Да. У каждого своя колода. Каждый взял её со своей полки.

– Значит они вытянут все карты. Кому-то достанется джокер, и ещё кому-то – другой джокер.

– Не-е-т. У каждого. Своя. Колода.

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

– Уже лучше. А какая тогда вероятность, что один тянущий вытянет джокера с первой попытки?

– Одна пятьдесят четвёртая.

– Отлично. А теперь – одновременно тянут пятьдесят четыре человека из разных колод. Какая вероятность?

– Сто процентов: кому-то обязательно достанется джокер.

– Как так может быть?

– Ещё раз: из разных колод невозможно одновременно тянуть карты. Пятьдесят четыре человека могут одновременно что-то тянуть только из одной колоды. Им может казаться, что колоды разные. Вспомни про квантовую механику, эксперименты и неравенства Белла. Тут важно событие вытягивания карты: раз это, как бы, одновременное событие, то и колода может быть только одна. Это же очевидно. Одновременность подразумевает связь между событиями. Тем более, если это одновременность, установленная в противоположность перемещению в пространстве. Связь возможна тогда, когда колода одна и та же, но она только кажется разными колодами, потому что эти пятьдесят четыре человека так видят. Они так видят из-за того, что оказались в разных местах города. Или думают, что оказались в разных местах. Они, получается, видят только срез общего хода вещей – ну и вот им кажется, что это разные колоды. Но они не могут вытянуть одинаковые карты – свойство колоды такое, что каждому достанется своя уникальная карта. Хорошо, предположим, для уточнения локальной логики, что эти колоды ощущаются разными – такие вот “условные колоды”. Тогда то, что кто-то вытянул десятку пик, означает, что из всех остальных “условных колод” десятки пик исчезли. Уф! Так понятно?

– Но ведь стоит лишь посмотреть на карты, чтобы убедиться, что десятки в других колодах остались!

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

– Не всё ли равно? Каждый и так может вычислить, какие карты остались в колоде, после того, как десятка пик ушла. Это нетрудно.

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

– Вернулись к тому, с чего начали. Пусть они тогда вытянут уже каждый свою карту из своей колоды, а потом встретятся, сравнят и посчитают те карты, которые в колодах остались. Какова вероятность, что не будет хватать хотя бы двух джокеров?

– Сто процентов. Единица.



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

Поскольку браузеры, – в том числе, самый свежий Firefox, – перешли с Kyber768 на ML-KEM, я добавил на свой тестовый сервер TLS поддержку X25519MLKEM768 (не удаляя “гибриды” с Kyber768). Проверить можно при помощи новых версий браузеров Chrome и Firefox.

Кстати, немного занимательных элементов. В процессе развития постквантовой криптографии в TLS уже успели поменять “порядок байтов”. Так, в новых версиях представлений гибридных ключей – разная конкатенация массивов: в “старом” X25519Kyber768, если смотреть в сетевом порядке (так сказать, слева направо, что, конечно, математически неверно), сначала идёт ключ X25519, а потом – Kyber768; в “новом” X25519MLKEM – наоборот, сначала данные ML-KEM, а потом – X25519.

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



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

Кстати, что касается недавней заметки про скриншот с задачей, содержащей эльфийские цифры Толкина. Продвинутые ИИ LLM ту задачу не могут прочитать со скриншота (что уж там говорить про решение). Однако, если в достаточной степени “обобщить” отношение к этим ИИ, с целью обоснования приписываемого “интеллекта”, то нетрудно придумать разные причины, объясняющие, почему неспособность прочитать задачу нисколько не уменьшает “оценочную степень” для этого самого “интеллекта”.

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

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

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

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

(Между прочим, с философской точки зрения, весь туман вокруг LLM и решения задач некоторым образом напоминает странные, – но популярные, – объяснения того, что “сумма всех натуральных чисел”, якобы, равна -1/12, использующие аналитическое продолжение дзета-функции Римана или что-нибудь подобное; но это уже тема для совсем другой записки.)



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