February 8th, 2015

Dexter's Lab

трельяж

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

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

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

(*) "символ" - это не просто буква или байт, это специальный термин, обозначающий "точку в сигнальном созвездии" (сетке из используемых для модуляции точек в пространстве комплексной амплитуды при амплитудно-фазовой модуляции). В символе, теоретически, может быть даже нецелое число бит!

(**) "треллис", внезапно, переводится как "трельяж". А "трельяж" - это такая решётка, за которую цепляются вьющиеся растения. Кодирование назвали этим словом потому, что эти самые "пути по созвездиям" очень напоминали решётку, а Витерби - ну, просто мужик, который это придумал :-)
Dexter's Lab 2

прогресс

Куда катится этот мир.
Встраиваемая УКВ-рация (с управлением по ком-порту, 9600-n-1. Хотел написать "ну нафига оно вообще может быть нужно", потом вспомнил, что у нас уже применяется аналогичная, только самодельная и сильно упрощённая, штука).
Встраиваемый маршрутизатор Wi-Fi (вот это точно не понимаю, зачем может понадобиться).
Драйвер светодиода для фонарика. Кстати, "удешевлённый" - вместо импульсного преобразователя стоят более дешевые и менее эффективные линейные стабилизаторы тока AMC7135. Однако, если приглядеться, на плате виден микроконтроллер ATtiny13 - то есть "мигать светодиодом" (в прямом смысле - это фонарик, он больше ничего не умеет) при помощи микроконтроллера оказывается дешевле не только в штучных изделиях, но и крупносерийных удешёвлённых.

Морали не будет, кому надо - придумайте сами :-)
петросян

юмор

Вот почему так - то на работе скучно, то - сплошной юмор.

Ударными темпами монтируем "электрику" в новой установке - обжимаем на провода наконечники (такая металлическая трубочка с пластиковой юбкой, чтобы провод не махрился при зажатии в клемму), паяем разъёмы, вот это всё. Обнаруживаем наконечник, в который при изготовлении не попала трубочка, и который в результате оказался цельнопластиковым, прикалываемся, откладываем в сторону. Через какое-то время - находим отдельно трубочку, без пластмассы. Я разглядываю, говорю "не выбрасывай, это ответная часть!"
Ладно, поприкалывались, выбросили. Я отмеряю очередной провод, Сашка (коллега) обжимает очередные наконечники, и матерится "ну вот, терморезистор битый, должен звониться белый с белым, а он не звонится". Я отвлекаюсь, рассматриваю обжатые наконечники, вижу внутри одного что-то белое и пластмассовое, тыкаю тестером прямо в проволоку - звонится! "Да ты его вместе с изоляцией обжал!" - "Да ладно... ой, похоже да!". При вскрытии, впрочем, оказлось что это не Сашка так обжал, это наконечник бракованный - с затёкшей внутрь пластмассой.
Ооок. Паяю очередной разъём. На одном конце DB9F, на другом - RJ45. Поскольку в надёжности обжима я сомневаюсь, решаю прозвонить. Щуп тестера в DB9F не влазит, поэтому я цапаю со стола кусок медной проволоки (которых там от монтажа разбросано много), вставляю в DB9F, щупаю тестером... глухо. Вставляю во второе гнездо - аналогично. Мысленно матерюсь (придётся резать и переобжимать), вынимаю из разъёма кусок проволоки... проволоки... в изоляции! Светло-коричневой, при нашем освещении выглядящей в точности как оголённая медная проволока.
Ладно, вроде всё? Нет! Сижу за компьютером, ищу распайку на очередной разъём очередного дивайса. Звонок. Кто там? Серёга - "эээ, в-общем, меня тут в туалете заперли случайно, спаси!". Спас, что поделаешь :-)

И что интересно, всё это, кроме цельнопластикового наконечника - за один день.
Corvax

DVR

А может кто посоветует систему видеорегистрации (программную)?
Окинул я тут, после приобретения HD IP-камеры и безуспешной попытки её интеграции, мысленным взором ту перевязанную батничками стройную систему костылей и подпорок, которая сейчас изображает у меня систему DVR, и понял, что ещё один слой скотча и жвачки будет уже перебором, надо однажды попробовать заменить всё. Но найти навскидку то, что устроит лично меня - не получилось. Может, кто лучше разбирается и даст наводку?

Требования:
  - винда. Хотя бы потому, что меня сильно ломает ставить линукс только чтобы убедиться, что драйверов под плату видеозахвата нет или они кривые, а под винду они есть. Ну, и DVR у меня не выделен, на том же компе крутится кое-что виндовое - хотя если преимущества не-винды будут очевидны, можно и разнести DVR и всё остальное по разным физическим компам
  - поддержка как локальных источников (веб-камеры, платы захвата), так и сетевых камер (вот эта свежекупленная фигня умеет отдавать h264 поток по протоколу rtsp, но куда этот протокол дальше втыкать - я пока не понял)
  - возможность просматривать пачку "событий" слитно. Пара камер смотрят в подъезд, за день там будет больше сотни срабатываний детектора движения, чтобы найти нужное - надо смотреть всё подряд, без разбора
  - возможность непрерывной записи (пусть с низким качеством). Камера смотрит на улицу, детектор движений там бесполезен - есть ветки деревьев, которые качаются, а если их замаскировать - всё что происходит на их фоне не вызовет срабатывания
  - база в формате, понимаемом "обычными плеерами" (MPC, VLC и подобные). Или хотя бы возможность экспорта, но лучше чтобы оно и внутри было совместимо с окружающим миром
  - возможность отдачи картинки по http. При этом обязательно в максимально тупом варианте - "вот по этому URL отдаётся jpeg с текущей картинкой" - чтобы пусть медленно, с <1 fps, но смотреть на камеру можно было хоть с арифмометра "феликс". Потоковая отдача, кстати, наоборот не нужна (может и пригодится, но это неприоритетно)

Кто что посоветует? Сейчас используется Active WebCam (плюс слой батничков), но мне не нравится ни слой батничков, ни то, что в AWC не удалось воткнуть этот самый rtsp...
Dexter&#39;s Lab

и кстати о DVR

Вот раньше, когда мониторы были "стеклянными", если очень долго показывать на мониторе одну и ту же картинку, люминофор мог "выгореть", и потом на ровном фоне можно было видеть бледный "негатив" этой картинки. Правда, реально такое выгорание я видел только очень давно, в начале 90-х, на каком-то монохромном мониторе. "Выгорело" там игровое поле от "арканоида" (в смысле, от игры POPCORN) - видать, много тогда играли на этом мониторе :-) С тех пор с "выгоранием" не сталкивался - то-ли мониторы были хорошими, то-ли картинки были не статическими. А потом пришли TFT мониторы, у которых люминофора нет, и выгорать как бы нечему.

...Несколько месяцев назад я прибил на стену старый планшет - пусть показывает мне часы, а заодно картинку с пары камер. Планшет оказался глючным - видимо, сыплется флэш-память - при полностью перекрытых обновлениях (интернет физически перекрыт, гуглплей не работает, всё ставилось с .apk), через месяц начинает плеваться ошибками, а через 2-3 месяца доводит себя до почти полной неработоспособности. Сброс системы, переустановка софта - и всё работает месяц-два, после чего глюки начинаются опять. Когда мне это надоело, я снял планшет (заменив другим, ага), а этому, естественно, сделал сброс системы, ибо "глючило сильно очень".

И после перезагрузки, на ровном фоне, обнаружил бледную, но вполне различимую, картинку - впечатавшийся в матрицу логотип нерегистрированной Active WebCam, и размытые контуры цифр от часов :-) Давненько я не видел "выгоревших дисплеев" :-)
Любопытно, что картинку не видно на чёрном фоне (что логично), но и на белом фоне её видно слабо. Лучше всего - на сером фоне.
A.J.

кулинарное

1. Зафоршмачил в котлетный фарш, кроме обычного лука-соли-специй, томат-пасту. Результатом удовлетворён - вкус изменился не сильно, но лёгкий "оттенок кетчупа" появился, мне нравится :-)

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