Дурацкий баг

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

Крепление сделал, воткнул разъём и решил на всякий случай проверить, работает ли оно после перепайки разъёма.

И внезапно обнаружил, что переключение «пресетов» отлично работает при отключенном левом полукорпусе, но глючит при подключенном.

На поиск бага ушло 5 часов. Баг оказался дурацкий: я забыл, что один из членов структуры — это 2-битовое поле. И в одном месте я самым беспечным образом обращался с ним, как с обычным целым. И не мог понять, почему не срабатывает проверка на index == number_of_elements. А элементов там 4. А поле — 2-битовое. Ага.

Я про это вспомнил только тогда, когда психанул и напихал в прошивку «отладочную печать» через светодиоды панели управления. И очень удивился когда после 3 стало 0. А потом ка-а-ак понял!

Рис. 1

Прогресс, оказывается, не стоит на месте

Я уже писал, о том, что я не тормоз. И, как оказалось, сейчас я снова это напишу.

Я занимался написанием прошивки MIDI-баяна в общей сложности примерно 5 месяцев. Начал в апреле, закончил в августе. И всю работу я делал в редакторе vim; любой другой редактор кода мне некомфортен (включая Arduino IDE). Хорошо, что в той же Arduino IDE есть режим «внешний редактор», когда сама IDE используется только для компиляции и для загрузки прошивки в микроконтроллер.

Так вот. Все мои типовые настройки vim-а у меня сформировались довольно давно, во времена, когда я ещё активно программировал в рамках должностных обязанностей. Т.е. примерно с 2001 по 2005 годы. (Раньше я тоже программировал, но vim-ом начал пользоваться только в 2001.) И с тех пор я ничего не менял, и таскал за собой наработанные тогда настройки с места на место, с одной работы на другую.

И вот буквально неделю назад ютубчик мне подкинул видео про редактор NeoVim. Оказалось, что это какой-то новый форк от vim-а, переработанный, усовершенствованный и всё такое. Заинтересовало меня в том видосе то, что в neovim-е мне показали левую панель с менеджером файлов, анализатор кода c автонаписанием имён (как перевести слово «autocomplete» на русский?) основанный на LSP, и много чего ещё. Фактически, показали полноценную IDE.

Я очень этим заинтересовался и изучил вопрос.

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

Сходу не заработал только анализатор кода с autocomplete. Оно основано на LSP, для C++ используется сервер clangd, а он, как оказалось, не переваривает ардуинные расширения я зыка C++ и об них ломается и нормально не работает в результате. Пришлось его убрать. Я уже знаю, в каком направлении копать, чтобы прикрутить поддержку ардуиновского диалекта C++ к vim-у, но это хлопотно, надо будет потратить минимум полдня на эксперименты, и сейчас оно того не стоит.

И вот сейчас у меня есть ОФИГЕННЫЙ редактор кода, который мне уже не очень нужен. Потому что в следующий раз я такую большую работу (на 4800 строк кода) буду делать очень не скоро, если вообще буду.

В общем, я не тормоз.

Рис. 1

Гитхаб курильщика?

Я тут обнаружил, что в этом году появился публичный гит-репозиторий от Сбера: https://gitverse.ru.

И, из чистого интереса, зарегистрировался.

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

Функционал — базовый. Графического представления дерева репозитория я там не нашёл. «Обсуждений» (т.е. баг-трекера) тоже нет. Тот гитлаб, который я на время разработки прошивки для MIDI-баяна у себя поднимал, побогаче будет.

С другой стороны, предложенного функционала уже достаточно для того, чтобы выложить свой проект в публичный доступ, чтобы его мог скачивать кто угодно. И для одиночной разработки этого точно достаточно (для групповой разработки нужен как минимум баг-трекер, т.е. «Issues» в терминах гитхаба).

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

Рис. 1 КДПВ

Макетная версия предсказателя погоды

Очень мне интересно посмотреть, как будет работать предсказатель погоды.

И я слепил упрощенную версию на макетке (см. рис. 1).

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

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

Рис. 1

О творческих планах

В одной из первых заметок про MIDI-баян я докладывал, что для его реализации я покупаю ардуино-набор GyverKit. Этот набор оказался для меня очень полезен, потому что позволил очень быстро раробраться в том, как на базе ардуино делать всякое.

В данный момент MIDI-баян уже практически готов в плане железа и прошивки. (Осталось закончить с герметизацией корпуса и с креплением декоративной решетки.) И в наборе осталось много всякого неиспользованного.

И я задумал сделать «предсказатель погоды» (см. рис. 1). В наборе для него уже всё есть, кроме корпуса (ардуино-нано, датчик атмосферного давления, сервомотор, который крутит стрелку, полевой странзистор, который управляет подачей питания на сервомотор). Корпус я буду делать «по дешману» из сантехнической ПВХ трубы.

Вот.

Рис. 1

Недавно узнал

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

И решил сравнить с Россией. Результат лично для меня оказался неожиданным.

Воистину, никто не сделал для величия России так много, как Меркатор. 🙂

Отличный джазовый гитарист

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

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

Я скачал все доступные альбомы Артёма и второй день наслаждаюсь. Оказывается, у нас в России тоже есть прекрасные джазовые гитаристы. Немного жаль, что Артём пока не играет в составе органных трио (я считаю, что джазовая электрогитара идеально сочетается с органом Хаммонда и ударными), но и то, что можно послушать прямо сейчас, очень и очень хорошо.

Я очень рекомендую.

Рис. 1

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

Так получилось, что у меня образовался свободный винчестер 2.5″ на 1 терабайт.

И я решил его использовать в качестве внешнего HDD, который можно воткнуть в комп в USB порт, загрузиться с него и снять копию системы на этот же самый диск.

Для того, чтобы превратить «просто HDD» во «внешний HDD», был закуплен корпус для внешнего HDD (см. рис. 1).

Один раздел на этом диске я сделал на 1 Гб, и залил туда Clonezilla. На остальном пространстве диска сделал ext4 файловую систему для хранения снятых образов дисков.

Раньше я грузил Клонзиллу с флешки, и это было неудобно. А сейчас всё стало гораздо проще: нужен всего один диск; грузишься с него и на него же делаешь бэкап.

Рекомендую, если кто ещё не.

Рис. 1