zHz00 Untitled

суббота, 01 августа 2020
23:59 chroot
У микроконтроллеров туго с энергонезависимой памятью. Если надо хранить настройки, то приходится это делать обычно в основной флешке микроконтроллера. Встаёт вопрос -- где и как в этой флешке их хранить. Но это тема для отдельной статьи. Часто советуют просто писать куда-нибудь в конец флешки, где почти наверняка никаких данных не будет. Это методически неправильно, конечно, но работает.

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

Вы сделали прошивку с настройками по умолчанию. Прошиваете -- а они не применяются. Несколько раз меняете настройки, а они всё равно не применяются. В чём дело?

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

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

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

URL
пятница, 31 июля 2020
23:59 О подделках
Если подделывают какие-то цельные предметы, то имеет смысл подделывать дорогое.
Чтобы подделывать дешёвое, нужно брать количеством. Например, деньги везде возьмут в неограниченном количестве. Если мы будем подделывать, к примеру, спички или туалетную бумагу, нам придётся "конкурировать" с дешёвыми оригиналами. Это ещё возможно. Подделывать же что-то дешёвое и мало кому нужное смысла не имеет. И тем не менее.

Папа купил на какой-то барахолке карты памяти. Об'ёмом 1 гигабайт. Купил 4 штуки, потому что по дешёвке. По 50 рублей. Стал на них писать -- а данные-то особо не пишутся.

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

Эта программа очень простая. Она забивает флешку файлами размером не более 1 Гб, а потом считывает их и смотрит, сколько считалось. Предназначена она для принудительного забивания флеш-носителей и как раз-таки определения их реального размера. На папины карты памяти она показала размер 122 мегабайта. Остальное не считывалось. Карта действительно была фальшивкой с помеченным об'ёмом 1 Гб, а фактическим 128 Мб.

И это вызывает у меня непонимание. Если бы подделывали 32 Гб флешку или даже хотя бы 4 Гб -- это ладно (и про такие случаи я читал давно). Но зачем это делать с 1 Гб флешкой, которая особо никому не нужна? Разве что от жадности, как в случае с папой.

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

URL
четверг, 30 июля 2020
23:59 Эхо войны
Стали заметны непрямые последствия коронавируса:

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

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

@темы: Медицина/Коронавирус, Наблюдения

URL
среда, 29 июля 2020
23:59 Две мысли про системы контроля версий
1. Когда СКВ у вас привязана к среде разработки, она обычно сама отслеживает добавление в проект новых файлов -- и автоматически добавляет их в коммит. Но так происходит не всегда. А если у вас СКВ не привязана к среде разработки, то дела ещё хуже. Я о том, что у вас могут случаться неполные коммиты, когда вы создали файл, но он не добавился под контроль версий. Это очень обидно, обнаружить, что вы не можете откатить версию файла, потому что он оказался не под контролем версий. Поэтому за такими вещами надо следить специально. Мне удобно держать программу из серии Tortoise*, которая изменяет значки файлов в папке, которая под контролем версий. Если у файла нет значка (или значок особенный), то файл не под контролем версий, и его надо добавить.

2. Коммит-мессидж это очень важно. Поэтому если у вас коммиты большие и редкие, как у меня, то коммит-мессидж может быть довольно об'ёмным. Пока вы его набиваете, не забывайте иногда копировать его в буфер обмена. Случается всякое -- и набивать всё это вручную по второму разу весьма неприятно.

@темы: Программирование, Фейлы

URL
вторник, 28 июля 2020
23:59 Untitled [614]
-- Гирьки есть?
-- Есть. (выкладывает гирьку 50 грамм) Я ими качаюсь.

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

URL
понедельник, 27 июля 2020
23:59 Дифференциальная диагностика
Повредил у наушников раз'ём. Припаял новый.

Вставляю -- один канал тише, чем другой. Ну, думаю, плохо припаял. Но прежде, чем перепаивать -- проверю на других наушниках.

Вставляю другие -- результат тот же. Ну, думаю, значит я ещё и раз'ём в компьютере (на передней панели) повредил! Для проверки воткну в заднюю.

Вставляю первые наушники в задний раз'ём -- результат тот же.

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

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

URL
воскресенье, 26 июля 2020
23:59 Невидимый суслик
В условно старом ноутбуке было 4 гигабайта памяти. Умники-студенты туда поставили десятку. После этого решили увеличить память в ноутбуке до 8 ГБ. Я открутил нижнюю служебную крышку (т.е. не всё дно) и обнаружил только один слот для памяти. Где же тогда расположены первые 4 ГБ? Я открыл cpu-z и решил посмотреть SPD информацию по модулям. Программа сообщала, что модуля может быть целых четыре. Но на все четыре она показывала отсутствие информации. Я такого никогда не видел.

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

Хорошо, что основные свойства памяти отображаются в cpu-z в другом окне. Там был тип памяти и частота. По этим параметрам я нашёл подходящие модули в продаже (попутно вспомнив, что частота модуля должна быть в 2 раза больше, чем отображаемая, т.е. если cpu-z показывает частоту 800 МГц, то надо брать модули на 1600 МГц). Модуль взяли один, потому что был один слот. И всё получилось, заработал даже двухканальный режим.

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

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

URL
суббота, 25 июля 2020
23:59 Стадное чувство
Поток машин изнутри устроен удивительным образом. Все участники дорожного движения вместе делают одно общее дело -- едут. Среди водителей случаются девиации, но в среднем все едут примерно одинаково.

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

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

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

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

@темы: Автомобили, Наблюдения, Очевидное-невероятное

URL
пятница, 24 июля 2020
23:59 Untitled [613]
Самым удивительным местом, где я обнаружил (строительную) пыль, оставшуюся после ремонта, оказалась духовка. Нет, она не герметична, конечно, но там вообще-то специальная уплотнительная прокладка стоит. При этом слой пыли оказался тонким и равномерным.

@темы: Наблюдения

URL
четверг, 23 июля 2020
23:59 О мощности
Коллега говорит -- дай я твоей паяльной станцией кое-что припаяю. Я говорю -- бери.

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

-- Что-то не паяет. Сделай температуру побольше.
Я делаю.
-- Что-то всё равно не паяет.

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

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

URL
среда, 22 июля 2020
23:59 ICFPC 2020
himself позвал меня в команду на соревнования по программированию.

В команде было 7 человек, из них четверо молчали, двое что-то делали, а один только лез со своими советами. Это был я.

Ничего особенного мы так и не сделали. Даже не подняли протокол galaxy, а потом оказалось, что после поднятия появляется следующая задача.

Что я понял:
1. Надо учить Питон, потому что все знают, а я не знаю.
2. Надо знания по функциональному программированию поддерживать в актуальном виде. Я хотя и читал книжку с голубым слоном в очках, но это было много лет назад. Что-то с тех пор в голове осталось, поэтому я хотя бы примерно понимал, как устроена задача.
3. В рамках соревнований надо много работать, как-то распределять время и обязанности. Тогда будет результат.

В следующем году получше подготовлюсь и поплотнее поучаствую.

@темы: Программирование

URL
вторник, 21 июля 2020
23:59 Braid (2009)
А вторая паззл-игра, которую мне посоветовали -- это Braid.

Тут все паззлы построены на отматывании назад времени (помните Максину Колфилд?). Причём в разных главах это отматывание дополняется разными перками. Загадки не очень сложные, но всё же для моей головы достаточно ощутимые. Хотя игра достаточно короткая, каждый вариант способности отматывания времени успевает раскрыться.

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

Игра хорошая, всем советую.

Скриншотов не делал.

@темы: Игры

URL
понедельник, 20 июля 2020
23:59 Untitled [612]
В Ашане уже мало кто в масках ходит. Может у меня восприятие смещено, но складывается впечатление, что большинство тех, кто носит маску как положено, закрывая и рот, и нос -- это молодые девицы.

@темы: Наблюдения

URL
воскресенье, 19 июля 2020
23:59 Superliminal (2019)
После Outer Wilds мне посоветовали две другие игры головоломки. И они действительно другие.

Superliminal явно делался любителями Портала. И то, что взято от портала, мне понравилось. Ещё мне понравилась фишка с изменением перспективы. На этом построена вся игра.

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

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

Игру настоятельно рекомендую как "трибьют" к Порталу. Если вас такое не интересует, то могу предложить чем-то похожую штуку, но поинтереснее -- Half Quake Amen.

Несколько скриншотов:
(скриншоты)

@темы: Игры

URL
суббота, 18 июля 2020
23:59 Дай дураку дорогу
Была простенькая схема, состоящая из микроконтроллера STM32 и ЦАПа с параллельной загрузкой. Она должна была выдавать сигнал определённой формы. Но не выдавала. Выдавал другой формы!

Нюансы были следующие:
1. Схему делал не я.
2. Прошивку писал не я.
3. Те исходники, которые нам выдали, не соответствовали фактически зашитой прошивке. Их пришлось допиливать.
4. Оригинальная схема с оригинальной прошивкой работала хорошо, но по необходимости микроконтроллер был заменён другими разработчиками на другой, более компактный. А схема вместо отдельной платы была включена в другую плату, где было ещё много всего.

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

Параллельная загрузка была выполнена при помощи GPIO, порт A. 16 бит. Как известно, ножки GPIO могут быть сконфигурированы на ввод, на вывод и на альтернативную функцию. При чтении исходников я обнаружил, что половина сконфигурирована на ввод, половина на вывод. И ещё парочка ножек на альтернативную функцию. Я думаю, не надо об'яснять, что поскольку я выдаю на ЦАП код в параллельном представлении, то ничего не будет работать, если режим всех шестнадцати ножек будет иным, чем "на вывод". Потому что если ножка сконфигурирована на ввод, то даже если я в её регистр запишу единичку, на выходе единички я не получу.

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

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

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

@темы: Программирование, Говнокод, Электроника

URL
пятница, 17 июля 2020
23:59 Внезапно настала зима
Если долго находиться в одном месте в каком-нибудь дворе или даже в около-промзоне, но где ещё есть общественные тротуары и проезжие дорожки, то можно с удивлением обнаружить, что в таких местах постоянно проезжает уборочная техника. Чуть ли не каждый час в подворотню заезжает трактор или поливалка, всё там об'езжает и уезжает обратно.

@темы: Наблюдения

URL
четверг, 16 июля 2020
23:59 Дошла на лыжах
В Перекрёстке открыли кассы самообслуживания. Я такой -- опа! Можно теперь не отвечать на вопросы кассира о пакете и карте!

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

Я говорю, что нет. Кассир -- тогда нажмите сюда.

Следующий экран -- выбор способа оплаты. И там есть кнопка "карта Перекрёстка". Кассир тут же -- "У вас есть карта нашего магазина?"

Ээээ! Я специально сюда пошёл, чтобы не слышать эти вопросы!

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

URL
среда, 15 июля 2020
23:59 Хм
Маме врач прописал специальные чулки для поддержания вен. Эти чулки белые и заканчиваются несколько выше колен. Мамина домашняя одежда, как правило -- это короткий халатик. Теперь она постоянно ходит по квартире с Zettai Ryouiki.

@темы: Наблюдения

URL
вторник, 14 июля 2020
23:59 Наши юные смешные голоса
В командировке мы жили на с'ёмной квартире с коллегой. Ночью я услышал храп. Я ему утром говорю -- а ты знаешь, что ты храпишь?

А он говорит -- не может быть! Не храплю я!

Что я мог ему сказать? На следующую ночь я подкрался с нему с диктофоном.

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

URL
понедельник, 13 июля 2020
23:59 О температуре
На работе не было штатного паяльщика на рабочем месте, пришлось припаивать проводок самому. Обычно я этим не занимаюсь. Моя квалификация по пайке достаточно низкая.

Включил паяльную станцию, она показывает 450 градусов (максимум). Пытаюсь паять -- проводочек не залуживается! Догадался снизить температуру до 300. Всё стал прекрасно лудиться и паяться. Но тот кусок, который я пытался залудить до этого, больше не лудился.

Потом паяльщик вернулся, и я его спросил. Он сказал, что всё понятно -- 450 градусов много , провод обгорает.

@темы: Случай из жизни, Электроника, Очевидное-невероятное

URL