вторник, 17 декабря 2019 г.

Про организацию диалога

Тут должно быть какое-то начало для последующего текста.
Для такого нужна фантазия. Она у меня есть.
Как и у любого другого человека.
Работает она, увы, не по заказу.
Потому, я начну с середины.

--------------------

Вечер. Двое разговаривали. Небезмысленно.

- ... Или вот, например, диалог. Ди-а-лог. "А" опустим. Ди-логос. Двусловие?
  Нет, разговор между двумя.
- Почему только двумя?
- Наверное, с этого должно начаться. Это минимальное количество участников.
  Вопрос-ответ, Запрос-отклик. Две роли.
- А если больше? Скажем, трое.
- И кто же третий? Он тоже участник? Или "воно слухае"?
- С участником особые правила нужны. Мол, не перебивать и ещё что-то. Они и для
  двоих тоже нужны, а тут ещё и третий. Пусть, для простоты, будет "слухавка".
- "Слухавка" - это сложнее.

Вечер продолжался. Мысли не переставали стучать как камешки в погремушке...

--------------------

Вот вы. В штанах. С карман*а*ми! А в кармане ключи. От машины! С брелком. От
сигнализации! С экра-а-анчиком!
А вот и ваша машина. В ста метрах от вас. А в ней сигнализация. С мозгами.

Вот они - двое. Брелок от сигнализации и мозги сигнализации. Для простоты:
брелок и сигнализация. Задача - научить их разговаривать. Не с вами. Так, между
собой.

Подход к снаряду.
Несложно это сделать "без обратной связи". Нажал на кнопку на брелке включить
охрану. Она включилась. Нажал "выкл" - она выключилась. Только не известно,
"включилась ли" и "выключилась ли". Добавим обратную связь. Канал обратной
связи - аудио-визуальный. Мозги сигнализации пиликиают и моргают фарами
автомобиля. Оператор (зачастую, просто прокладка между сидением и рулём, но с
ушами и глазами) реагирует повторным нажатием с неудовлетворённой физией или
просто удовлетворённой физией. Значит - таки включилась охрана или выключилась.

Случись чего, сигнализация начинает "петь". Издавать звуки, провоцируя
пробуждение окрестных городских соловьёв на подпевание ей, вида "кар-р-р!".
Хозяин в это время спит. Автомобиль - обносится.

Плохо дело. Нужно хозяину сообщить. Донести до него состояние сигнализации.
Автомобиль может быть "далеко", а вот брелок совсем рядом. Скорее всего.
Сообщим "на брелок". Добавим ещё один канал обратной связи. Прямой между
сигнализацией и брелком. Нажал "вкл". А сигнализация брелку "есть вкл!". И
клаксоном бип-боп. И фарами морг-морг.

Внимание! Вопрос! Как должен быть устроен протокол? Какая у него дожна быть
основа?

А кто у нас собеседники?
- Сигнализация. Обладает памятью. Состоянием. Состояние включает в себя режим
работы "охрана"/"не охрана" и состояние периметра на момент включения охраны.
// периметр = датчики: дверь открыта/отперта/заперта, капот поднят/опущен,
багажник открыт/закрыт/заперт, стекло опущено/поднято, двигатель
заведён/заглушен и ещё всякие каких только душа пожелает.
- Брелок. Обладает памятью (правда, зачем?). Отображает состояние сигнализации.

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

Потому, сигнализация должна всякий раз сообщать полное своё состояние. И при
отклике вида "есть вкл охрану!", и при оповещении "атас! дверь открылась!".
Отклик одноразовый. Потому как запрос всего один. Оповещение одноразовое же из
соображений безопасности. // одноразовый тут = отправляемый единожды

Казалось бы, всё. Однако нет. Канал связи между сигнализацией и брелком
нестабильный. Брелок может быть очень далеко, у брелка может сесть батарейка, у
автомобиля может сесть аккумулятор.

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

Удаление брелка от автомобиля на достаточное, для потери сигнала расстояние,
вещь довольно штатная. Что бы знать актуальное состояние сигнализации брелок
может пинговать её. В ответ на ping должно быть не состояние, а просто pong.
Этот pong переводится на сигналко-брелячий язык как "какое состояние было,
такое и осталось". Если pong не поступил, на брелке отображается уведомление
вида "out-of-range" и теперь отправляются ping-и с запросом актуального
состояния, что бы его сразу же и вывести на экран. Интервал ping-ования
выбирается исходя из мощности приёмопередатчика брелка и сигнализации. Раз
хозяин далеко отошёл, то и идти к автомобилю ему долго. Минуту, пять...

Всё? Ан, нет. У нас ещё есть "слухавка".

Её задача выделить стартовое слово протокола, присущее только этой паре брелка
и сигнализации. Такое слово должно быть и оно есть в любом протоколе. Это
способ синхронизации двух потоков. Далее можно сам протокол опустить глубже -
под TLS. Не накладно ли будет? Накладно. Можно взять числа поменьше и всё
такое. Однако, это приведёт к снижению устойчивости к прослушиванию. Уменьшим
соотношение сигнал-шум. За ним - и дальность работы. Меняем параметрию канала
связи от пары "сигнализация-брекок" к паре. Всё равно мало.

А вот теперь вопрос. Что же можно менять "в runtime" такого и так, что не
требовалось бы перегенерировать при восстановлении связи?

С сим вопросом камешки в погремушке продолжили стучать...

--------------------
Ночь. Двое разговаривали. И лишь третий с упоением слушал и кряхтел в
попытке выделить из диалога хоть что-то полезное...
--------------------

суббота, 23 марта 2013 г.

Подвалы памяти меня тревожат - опять на мысль меня наводят...

Вспомнил на досуге такую речь:
В силу коего указа
Скрыл от нашего ты глаза
Наше Царское добро -
Жаро-птицево перо?

Или вот еще:
Глубокий взор на камень уперев
Художник Нимфу в нем узрел.
Резец с Богини сокровенной
Кору срывает за корой.

И уж совсем невдомек, что это написал Пушкин:
Движенья нет, сказал мудрец брадатый.
Другой смолчал и стал пред ним ходить.
Сильнее бы не мог он возразить;
Хвалили все ответ замысловатый.
Но, господа, забавный случай сей
Другой пример на память мне приводит:
Ведь каждый день пред нами солнце ходит,
Однако ж прав упрямый Галилей.

Кстати, совсем не обязательно, что Земля вращается вокруг вокруг Солнца. Земля может также стоять на месте. Другой вопрос - относительно чего проще и удобнее рассчитывать траектории космических полетов.
Глупо звучит? Да, глупо. Всем ведь известно, что Земля вращается вокруг Солнца... Ну, пусть это продолжает все также глупо звучать. И пусть я буду балбесом (и, вообще, дурачком, каких мало), но я продолжу об этом думать. В конце концов думать - полезно! А особенно, если думать чуть чаще, чем никогда.
Можно продолжить мысль до еще большего "абсурда". Земля может находиться и не внутри Вселенной, а снаружи. И тогда все дело лишь в правильной искривленности пространства.



Ну да ладно. Пятнадцать минут размышлений на свободную тему в день - не каждый так делает.

четверг, 18 октября 2012 г.

Оценка площади.



Предположим нам задан некий плоский контур. Мы хотим оценить площадь, какую он занимает.

Во-первых, как нам задан контур? Нам удобно, что бы он был задан последовательностью его вершин в порядке его соединения. По большому счету этот порядок нас не будет интересовать, несмотря на то, что он влияет на площадь (соединив 4 вершины "восьмеркой" мы получим площадь меньшую, чем при соединении тех же вершин, но "прямоугольником").

Мы предполагаем, что наш контур - замкнут, не имеет само-пересечений и выпуклый. Да, это крайне близко к окружности, но не окружность.

Предлагается следующий способ оценки площади:
  1. Вычисление среднего арифметического по каждой координате (т.е. по x и по y).
  2. Вычисление Дисперсии по каждой координате.
  3. Вычисление Среднего квадратического отклонения по каждой координате.
  4. Оценка площади -  геометрическая сумма полученных СКО (по координатам).
Пример - Если заданный нам контур - окружность, то СКО будет равно R*sqrt(2) (R - радиус окружности).

суббота, 19 мая 2012 г.

Ну, че стоим? Поехали!

Сели в лодку, взяли весла.
Всю ночь гребли, а лодку так и не отвязали.
Умаялись, бедолаги...


пятница, 9 марта 2012 г.

Курсовой по МТИП

Завтра пойду отдавать на проверку курсовой по МТИП.
Нужно только будет, что бы типография работала. А то еще окажется, что у них пятидневка и они завтра отдыхают...

Ссылка на архив с курсаком в ЛаТеХе номер раз.

Учитывая не столь давний опыт с бакапами, ссылка номер два на тот же архив.

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

Э-эх...

Update @ 03/11/2012 - 11:18AM -
Сегодняшняя редакция курсака на DepositFiles и в ГуглДокс (так и не сдавал в пятницу на проверку, типогрфия была закрыта).

А пока в наушниках играет Shine on You Crazy Diamond можно и плакаты делать...


Update @ 03/11/2012 - 07:08PM -
Сегодняшняя редакция курсака номер два на depositfiles и в googledocs.

Плакаты так и не сделал, но сделал их кусок - монтажные схемы на оба канала.

Update @ 26/03/2012 - 20:56PM -
Теперь, будучи выписанным из больницы я, уже в третий раз, отдал на проверку курсовой.

Ссылка на депозите и в гуглодоксах. Главное, что бы не было снова замечания типа "Выполнено с нарушением ГОСТ 2.105-95".
P.S.: Здесь на ум приходит только фраза из песни - "one and one and one is three".

Update @ 28/03/2012 - 23:42PM -
Сегодня получил курсовой обратно с записью "устранить замечания к защите". Сначала я отпал и сказал об этом прямо на кафедре. Когда я вышел в коридор проходящие мимо могли наблюдать неистовый танец счастья.

А вот и ссылка на депозите и на гуглодоках на курсак с теми заветными исправлениями и плакатами, идущими завтра на показ.
P.S.: Когда, приехавший с больницы Канаев сказал Кузнецовой, что он всемогущий, видимо, он оказался прав.

Update @ 03/04/2012 - 02:32PM -
Версия курсового с плакатами, допущенная к защите. Гуглодоки. Депозит.