zHz00 Untitled

среда, 15 декабря 2021
04:32 Что оказалось в чёрном ящике
Разгадка вчерашней истории.

В том участке кода, который по моим предположениям вызывал исключение, я через каждые несколько строчек натыкал вывод на экранчик цифр 1, 2, 3... в одну и ту же позицию. Если всё было хорошо, я должен был видеть последнюю цифру после каждой отработки участка. Допустим, цифру 9. Если бы произошла ошибка, то она была бы после последней цифры, которую я увидел бы на экране.

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

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

Точнее, я думал, что передавался. Из-за алгоритмической ошибки при некоторых обстоятельствах повторный вызов происходил с тем же параметром, с которым происходил первый. А поскольку обстоятельства не менялись в течение пары секунд, КАЖДЫЙ следующий вызов воспринимался как первый. Рекурсия становилась бесконечной.

Я предполагал выход за границы массива. На самом же деле я имел дело с переполнением стека. Да-да, тот самый stack overflow.

@темы: Программирование, Борьба с техникой

URL
вторник, 14 декабря 2021
03:22 Как узнать, что в чёрном ящике?
Микроконтроллер стал внезапно перезагружаться. Точнее, не внезапно, а после строго определённых действий с оборудованием. Поскольку действия были связаны с включением/отключением нагрузки, я было решил, что дело в электромагнитной совместимости, но игры со схемой заземления эффекта не дали.

По совету друзей я решил посмотреть причину перезагрузки. В большинстве МК есть регистр, который показывает, в каком статусе произошла текущая загрузка. В PIC32 он называется RCON. Регистр не слишком информативен, но это уже кое-что. Особенностью отладки в этот раз было то, что МК был установлен в уже собранный шкаф, поэтому были проблемы с тем, чтобы подключить отладчик. Но посмотреть содержимое данного регистра можно было несколькими способами. Во-первых, после перезагрузки контроллер нормально работал, поэтому к нему можно было подключиться с компа через штатный интерфейс. Дописать команду выдачи регистра -- не проблема. Но у меня было кое-что получше. Разработчики электроники приделали LCD-экранчик, который выдавал текст. И я мог вывести содержимое регистра прямо на него -- это во-вторых. Так я и сделал.

Я ожидал увидеть после "внезапной" перезагрузки или "нормальный старт", или "brown-out старт", т.е. сбой по питанию. Однако вместо этого я увидел бит, сигнализирующий о том, что перезагрузка была вызвана программно. А когда у нас вызывается программная перезагрузка? Либо при срабатывании Watchdog-таймера, либо в тех случаях, когда МК сваливается в необрабатываемое исключение типа деления на ноль или микроконтролерного аналога access violation. Watchdog был, но он был настроен где-то минут на 15, поэтому я решил копать в сторону исключений.

Для этого в PIC32 есть целых два регистра -- адрес исключения и причина исключения. Адрес я и так примерно знал, а вот причина была очень интересна. Причина -- это число от 1 до 30. И мне надо было как-то вытащить из МК это число.

Я собрался вывести его на экранчик, однако обнаружил, что в состоянии исключения МК на экранчик выводить ничего не хочет (SPI). Тем более, он не смог бы вывести ничего на компьютер.

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

И вот тогда-то я вспомнил, как смеялся над разработчиками, что они мне поменяли светодиод на пищалку. Я написал цикл, который через паузу включает и выключает эту грёбаную пищалку столько раз, сколько указано в регистре причины исключения. После этого я с удовлетворением услышал пять гудков.

В переводе на виндузятский это означало "access violation, memory could not be written". Обнаружить конкретную ошибку ещё только предстоит, но уже сейчас можно сказать, что это, по-видимому, что-то вроде выхода за границы массива.

Разгадка: zhz00.diary.ru/p220990558_chto-okazalos-v-chyor...

@темы: Программирование, Борьба с техникой, Электроника

URL
понедельник, 13 декабря 2021
01:13 Untitled [0692]
Всё время в новостях читаю вместо омикрон -- оксимирон. И наоборот.

@темы: Восприятие

URL
воскресенье, 12 декабря 2021
00:52 Современные проблемы требуют современных решений
Осторожно дальше будет чёрный юмор. Или не юмор, но что-то в этом духе.

У мамы есть подруга по имени Клава. У Клавы мать умерла от коронавируса (отказывалась делать прививку). Мать Клавы жила на Украине, а Клава -- в России. Гражданство украинское.

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

И тогда Клава сначала организовала похороны по интернету, а потом по интернету побывала на них! Технические детали мне, увы, не известны.

***

А теперь "юмор". Отец Клавы умер в ещё в 2013 году. Когда его хоронили -- сделали сразу двойное надгробие -- для него и для матери. И... та-дам! На этом надгробии сразу же выгравировали ФИО матери, которой оставалось жить ещё восемь лет. Также там была дата её рождение, тире -- и пропуск вместо даты смерти. А самое главное -- на надгробии сразу же сделали её портрет!

@темы: Случай из жизни, Случай из смерти

URL
суббота, 11 декабря 2021
02:14 Левитируйте
Честно говоря, такую претензию от уборщицы я слышу впервые:

-- Не обтопывай обувь на коврике!
-- Постойте, а где тогда её обтопывать?!
-- На улице.

ААААААААААА!

@темы: Крик души, Случай из жизни

URL
пятница, 10 декабря 2021
04:05 Новинка в телеграме: постинг от лица каналов
Если у вас есть чаты, то это обновление могло вас обеспокоить. И вот почему.

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

При этом никто, даже админы чата, не будет знать, кто на самом деле постит (если, конечно, я где-нибудь на канале не спалил свой аккаунт).

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

Можно создать сотни каналов, и от лица каждого из них слать дикпики!

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

Э-эх.

UPD. На март 2023 года функция теперь доступна только владельцам премиум-аккаунтов. Когда её убрали у простых пользователей -- я не отследил. Лучше это или хуже, чем старый вариант -- не знаю.

@темы: Борьба с техникой, Telegram

URL
четверг, 09 декабря 2021
02:22 Всеволод Большое Гнездо
Когда я был в командировке в 2019 году, я там был долго, три месяца. На об'екте работало много людей. И они приходили посмотреть что к чему, пообщаться. В основном, это были различные начальники. Обычно они все представлялись. Потом надо было как-то понять, кто вообще перед тобой стоит. Самая вежливая формулировка, которую я смог придумать, звучала так: "кем вы здесь работаете?"

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

Иванов Иван. Генеральный директор. Щуплый, бородатый.

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

@темы: Случай из жизни, Восприятие

URL
среда, 08 декабря 2021
05:36 Козлёнок, который считал до десяти
Что там говорил Шерлок Холмс? Ну, например, такое:

"Отбросьте все, что не могло иметь места, и останется один-единственный факт, который и есть истина."

Конан Дойл обращается к такому понятию, как "универсальное множество". Среди всех возможных вариантов есть истинные и ложные. Если все варианты расписать, то для каждого можно оценить истинность. Мы исключаем все ложные -- и остаются истинные.

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

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

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

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

@темы: Борьба с техникой, Мысли

URL
вторник, 07 декабря 2021
04:28 Езда по неосвещённой дороге
Со мной такое случается редко.

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

Итак, первое правило -- по тёмной дороге надо ехать медленно.

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

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

Второе правило -- если есть возможность, нужно всегда ехать за кем-то и не выёбываться (как и при езде в тумане).

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

Напоследок -- про дальний свет. Водители действительно включают дальний свет на неосвещённых дорогах, при этом сильно не заботятся об ослеплении других водителей. Если у вас есть конкретные советы или наблюдения про дальний свет, которые не являются пересказом ПДД, сообщите, пожалуйста.

@темы: Мысли, Автомобили

URL
понедельник, 06 декабря 2021
05:36 Светофор включится во вторник
Хотя чел мне рассказал, что слышал это своими ушами, но мне в такое всё равно тяжело поверить.

"В настоящий момент все операторы заняты. Ожидайте ответа в течение... двух... дней".

@темы: Викторика, Звонки

URL
воскресенье, 05 декабря 2021
01:51 Untitled [0691]
Все знают чёрную загадку -- деревянный пирожок, а начинка -- мясо.

Это гроб.

Но коллега придумал альтернативную отгадку: троянский конь.

@темы: Викторика

URL
суббота, 04 декабря 2021
05:59 Хулахуп
Появились сообщения о блокировках Tor в России. Я на своём опыте увидел блокировку у провадйера NetByNet. Когда Тор перестал подключаться, я подумал -- "да ну, не может быть! неужели начали блокировать? наверное, телефон глючит"

Если вы искали знак, чтобы уехать из России, то я его вам даю. Сам я вряд ли уеду. Я лох. Но вы-то нет.

Целиком заблокировать Тор сложно, но затруднить его применение очень даже можно. Ватник с работы говорит, а вон в Германии штрафы приходят за скачивание с торрентов. Но оннепонимает, блокировка Тора -- этодругое.

В последнее время я заинтересовался Кровостоком. Предлагаю прослушать следующую композицию (осторожно, песня противная!): www.youtube.com/watch?v=c7YQnCn5NqQ

***

Напоследок -- вредные советы. Чтобы система эффективно работала, требуется:
1. Белый список протоколов, а желательно -- айпи-адресов для доступа.
2. Ответственность, желательно уголовная, за доступ к запрещённой информации.

Запомните этот твит.

@темы: Борьба с техникой, Мысли, Политика

URL
пятница, 03 декабря 2021
02:24 На грани шапочного разбора
Средство от моего хронического заболевания расходуется медленно -- примерно одна упаковка в год. И оно стало подходить к концу.

Пошёл в аптеку. Нету. В другую. Нету и давно не было. В третью. Есть, но другой модификации. Что же это такое? Было всегда и везде.

Не то чтобы средство было мне жизненно необходимо, но гораздо приятнее с ним, чем без него.

Захожу в интернет. Вроде как кое-где есть. Нахожу условно удобную аптеку около работы. Прихожу. Нашли. Но есть нюансы:

1. Мне продали в джва раза дороже, чем должны были.
2. Дата производства была такой же, как на упаковке, купленной год назад!

И вот этот последний момент сбил меня с толку. Оно что, было снято с производства? Или не поставляется в Россию? Надо, наверное, ещё упаковочку купить, на всякий случай.

@темы: Случай из жизни

URL
четверг, 02 декабря 2021
05:26 LockPickingProsecutor
Это просто невероятно, но коллега сломал ключ от машины, когда пытался её открыть. Он разломался на две части.

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

Неизвестно, примёрз ли замок, но, по словам коллеги, он не прикладывал никаких экстра-усилий. Ключ до поломки находился в тепле, в кармане. Ключ имеет толщину 2 мм! Коллеги подозревают усталость металла от нагрузок, но... всё равно, как такое возможно?

@темы: Борьба с техникой, Автомобили

URL
среда, 01 декабря 2021
03:45 Физик вкатывается в лирику
Мне "подарили" телеграм-канал на десять человек. В кавычках -- потому что я не владелец, но сейчас я основной постящий админ.

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

Каналы со схожей тематикой имеют 1000 подписчиков и более. Если вы знаете, как получить первую тысячу подписчиков, желательно не покупая рекламу, сообщите, пожалуйста.

Вот сам канал: t.me/carvedinstone . Предлагаю ознакомиться.

Осторожно, у нас могут быть:
* Могилки
* Черепа
* Сиськи-письки

@темы: Telegram

URL
вторник, 30 ноября 2021
02:01 Люди не меняются?
В одном из постов про вакцинацию со мной на связь вышел анонимный комментатор. Его история с одной стороны вполне обычная, а с другой -- очень интересная. Далее я привожу текст всех комментариев, которые он мне оставил. Орфография, пунктуация сохранены. Предлагаю ознакомиться.

30.10.2021 в 14:39
пока что приучат к необходимости ревакцинации каждые полгода.
затем неугодным при ревакцинации начнут колоть "альтернативные" вакцины.
30.10.2021 в 14:43
хотелось бы ошибаться, но вот только что все они сделали, чтобы я смог им доверять?
устроили локдауны с огромными скоплениями людей в очередях, создали пробки в метро вводя проверку-штрихкодов? ах да, точно - закрыли шиномонтажи - рассадник всей заразы...
30.10.2021 в 15:55
чиновники, объявившие локдауны, по форме делают все правильно, борются с распространением, как от их должности и требуется. но по сути - эффективность их мер под вопросом... и эти же чиновники популяризируют вакцинацию. причём очень агрессивно. то что на ковиде уже построен бизнес - это более-менее понятно, и это можно не принимать в расчёт. каждый решает сам, основываясь на своём опыте... я не силен в биологии, но для себя (дилетанта в этом вопросе) решил, что в первую очередь нужно максимально насколько возможно помогать себе самостоятельно - маски, санитайзер, не распускать руки в общественном транспорте. и та неизбежная доза, которую ты получишь, будет некритичной для иммунитета. он справится с ней и укрепится. раньше какое-то время имел дело с радиацией и там с небольшими дозами все работало похоже... научный руководитель ещё любил приводить в пример горцев-долгожителей, которые в горах живут в условиях повышенного фона

Прошёл месяц...

28.11.2021 в 10:28
Хочу добавить к своим комментариям от 30.10...
В этот же день я почувствовал недомогание, но еще пару дней надеялся, что это простуда (так как действительно за три дня до этого сильно замерз и продуло).
Так вот, 2-ого поставили диагноз ковид, спустя несколько дней первое КТ (менее 1% поражения легких), затем на 6-7 день домашнего лечения рост температуры и перестали действовать все
имеющиеся жаропонижающие, затем госпитализация в Крылатское с температурой за 40 (возможно, цитокиновый шторм), лечение всякой всячиной с побочками точно похуже, чем у вакцины...
Сейчас вроде все позади, больничный закрыт, завтра на работу, но пост-ковидный синдром присутствует (например, периодические головные боли , слабость и плохой сон) и, как говорят, скоро он не пройдет...

Это я к чему пишу.... Несмотря на то, ято я по-прежнему считаю, что производство вакцин выгодно многим с точки зрения бизнеса, я после увиденного в красной зоне свое мнение о вакцинации изменил... Что бы там ни кололи, лучше так, раз это дает шанс избежать того, что я не избежал)
Ну, учусь на _своих_ ошибках, хотя пора бы уже на чужих.... Вобщем, если сомневаетесь - не сомневайтесь, идите и вакцинируйтесь)
28.11.2021 в 10:29
А, да, первое Кт менее процента, спустя 4 дня второе Кт - уже под 50%... Так что эта зараза действительно быстро расползается....


@темы: Случай из жизни, Медицина/Коронавирус

URL
понедельник, 29 ноября 2021
00:20 Death Stranding
Несу блок из одной комнаты в другую. Блок не очень тяжёлый, но всё же тяжёлый.

Начальник смотрит на это.
-- Ты прям Геракл...
-- Не Геракл, а Сизиф.

@темы: Случай из жизни, Викторика

URL
воскресенье, 28 ноября 2021
07:31 Мицукэру-моногатари [06]
Почти всегда я ношу с собой фонарь и нож. Фонарь нужен чаще.

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

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

Дело в том, что этот нож не был моим любимым, не был каким-либо особенным. Это был, наоборот, "расходный" нож, который было бы не жалко потерять. Остальные ножи у меня более ценные. И вот оказалось, что такой нож потерять всё равно жалко. Тем более, что для меня было очевидно, что потерял я его по собственному недосмотру.

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

Обеспокоенный этими мыслями я залез в машину и обнаружил свой нож на полу салона. То есть, я его действительно выронил, но ещё до того, как вышел из машины. Как же я был счастлив, что нож я всё-таки не проебал!

У меня давно была идея, что своим ножам надо давать имена, но имена не придумывались. Теперь я понял, что гораздо легче имена придумываются, когда есть какая-нибудь зацепка, особенно настолько эмоционально заряженная. И тогда я назвал нож Лазарем.

Но не в честь самого Лазаря, а в честь эффекта Лазаря.

@темы: Случай из жизни, Восприятие, Дзякиган

URL
суббота, 27 ноября 2021
00:39 Забыли пароль?
Новые номера автобусов в Москве стали похожи на автомобильные.

Через 3 мин приедет Амирбек
на синем ЛиАЗ-5292
с212п

@темы: Общественный транспорт, Наблюдения

URL
пятница, 26 ноября 2021
03:54 Демон Максвелла
Вышел во двор. У ворот стоит грузовик Озон, пытается выехать. Из него выходит водитель.

-- Извините, а кто здесь ворота открывает?
-- Я.

Сказав это, я ощутил иллюзию своего величия.

Ворота я ему открыл.

@темы: Случай из жизни, Восприятие

URL