zHz00 Untitled

среда, 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
воскресенье, 12 июля 2020
23:59 Об эталонах
Если у вас есть необычный измерительный прибор, то как простыми средствами проверить, работает он или нет? Никак. Обычно для этих целей держат эталон. Суют эталон в прибор и сравнивают -- то он показывает или не то.

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

Итак, почему эталон не может быть один?
1. Эталон может быть скомпрометирован (то есть -- уронили на пол). Если у вас эталон один, то после этого вы остаётесь без эталона.
2. Возможны ситуации, когда эталон меряется неправильно. И как понять, кто виноват, испорченный эталон или поехавшая кукушка у прибора?

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

Эталона должно быть минимум три.

При этом не имеет значения, если эталоны все кривые-косые и с очень плохими значениями. Эталон -- это просто образец с заранее известными параметрами.

@темы: Мысли

URL
суббота, 11 июля 2020
23:59 Outer Wilds (2019)
Есть игра -- Outer Worlds. И это другая игра. Не путайте их.

-- Давай, Морти, тут приключений на 20 минут! Вошли и вышли!
=== ШЕСТЬ ДНЕЙ СПУСТЯ ===

Про эту игру все пишут одно и то же. И правильно делают. Чем меньше про неё знаешь, начиная играть, тем лучше.

Игрок летает на космическом корабле, сделанном из досок, по солнечной системке с шестью планетками. На каждой планетке есть что-то интересненькое (включая его родную планетку), какая-нибудь загадка, особенность, руины древней цивилизации с записочками. Все планетки разные, собраны вручную разработчиками, а все загадки об'единяются в одну большую загадищу, которую игроку и надо раскрыть. То есть, это -- квест-детектив в космическом антураже. Если сравнивать с другими играми, в которые я играл, то она напоминает, как ни странно, Analogue: A hate story.

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

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

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

Музыка в игре тоже очень хорошая, вот пример, который вы услышите много, много раз: www.youtube.com/watch?v=yJTJlieo6gk .

Я дам два неспойлерных совета тем, кто решит играть.
1. Поставьте в опциях "ставить игру на паузу при чтении текста" и подобное. Это позволит изучать информацию в спокойной обстановке.
2. Зефир надо жарить не в центре костра, а с краю. Если дело дошло по "потушить", то вы пожарили зефир плохо.

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

Г.Ф. Лавкрафт // Безымянный город


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

(скриншоты)

@темы: Игры

URL
пятница, 10 июля 2020
23:59 Внесите чёрный ящик
Я воспользовался т.н. постаматом. До этого у меня был один случай, но он был неинтересный. А в данном случае было интересно, что один заказ был размещён в нескольких (а именно:трёх) ячейках. Почему магазин разместил товары в трёх коробках, когда они могли бы поместиться в одну -- вопрос отдельный.

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

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

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

URL