Чтиво за последнее время

Взрослое:

Маска Конструктора. Захар Зарипов. Краткий сюжет: выживание горстки людей закинутых для колонизации Марса. Оценка 3/5. Начало хорошее, а дальше скучно. Не дочитал.

Цикл Низший. Михайлов Р.А. Краткий сюжет и идея: после экологической катастрофы люди переселились в искусственно созданные убежища под управлением «Системы». Большая часть людей там находится в «замороженном» виде и со стертой памятью. Во время «естественной» убыли населения, «замороженные» размораживаются, и подселяются к текущему населению. Так было последние лет 300, пока не разморозили ОДИ. Оценка 5/5. P.S. Перечитываю этот цикл уже раз третий наверное..

Цикл Инфер. Михайлов Р.А. Продолжение цикла «Низший». ОДИ удалось сбежать. Теперь он «наверху». Оценка 3/5. Дочитал, но уже с трудом. Или приелось или автор таки поисписался на эту тему..

Голова на колесиках. Шенгельц Игорь Александрович. Сюжет: богатенький буратино после того как попал в аварию, в надежде на то что в будущем его смогут вылечить, замораживает себя. Однако после разморозки «всё пошло не так». Будущее..выглядит совсем по другому. Голову приделывают на платформу с колесиками, дают в манипуляторы швабру и веник и вперед — ты теперь уборщик помещений, выживай. Оценка 5/5

Цикл «Идеальный мир социопата». Очередное пришествие системы и зомби. Путешествие между мирами. В целом интересно. Оценка 4/5

Цикл «Звезды,пламя и сталь». Сюжет: в далеком будущем в мире осталось всё так-же: войны, и дети в детдомах. Один из воспитанников этого детдома смог заполучить себе нейросеть Джоре. В обем мир из «вселенной EVE». В целом читабельно 4/5

Детское:

Увы, детского читаю всё меньше и меньше. Старшему уже ничего не нужно на ночь читать давно. Младшая тоже уже без энтузизазма воспринимает чтение. Жаль, очень жаль..

  • Всё о медвежонке Паддингтоне: оценка 3/5, как по мне скучновато. Не дочитали
  • Заячьи Лапки. К. Паустовский. Оценка 3/5. Слог уже подустарел, ребенку не очень многое понятно. Приходится объяснять
  • Фома — белый медвежонок. Вера Чаплина. Оценка 3/5.

ZigBee на Raspberry, часть 1, прошивка CC2531

Задача: научится принимать пакеты по протоколу Zigbee на устройстве Raspberry PI 3. Сама по себе, без внешних дополнительных устройств, Raspberry этого не умеет. Нужен модем, который может принимать сигналы на этой частоте. Для этого было куплено на Aliexpress устройство Zigbee CC2531. Покупателю оно приходит пустое, без прошивки, поэтому перед работой с ним, его необходимо прошить. Есть несколько вариантов, самый простой сделать это при помощи самой же RaspberryPI. Одно Но! (и даже их несколько):

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

Общая схема подключения для прошивки следующая:

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

Если всё ок, двигаемся к следующему шагу: скачиваем утилиту для прошивки:

git clone https://github.com/jmichault/flash_cc2531.git
cd flash_cc2531
./cc_chipid

И скорее всего получим фигу вида:

root@raspberrypi:/home/donpadlo/flash_cc2531# ./cc_chipid
bash: ./cc_chipid: cannot execute: required file not found

Я подозреваю, что этой утилите не хватает библиотеки wiringPi. Установить её можно так:

git clone https://github.com/WiringPi/WiringPi.git
cd WiringPi
 ./build

И далее снова попробовать выполнить :

./cc_chipid

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

cd flash_cc2531
make

После чего, команда уже выполнится корректно:

./cc_read
ID = b534

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

wget https://github.com/Koenkk/Z-Stack-firmware/raw/refs/heads/master/coordinator/Z-Stack_3.0.x/bin/CC2531_20190425.zip
unzip CC2531_20190425.zip
./cc_erase 
./cc_write CC2531ZNP-with-SBL.hex

И собственно всё. Теперь стик рабочий. Осталось научится получать с него данные. А это уже в следующих частях..

Присоеденяясь к хайпу про Долину

По мотивам статьи. Постить фоточку нельзя, могут привлечь. Потому только словами 🙂 Отвратительна ситуация, что в общем то не бедная госпожа Долина, просто так вот отжала обратно проданную квартиру (пусть и проданную под воздействием мошенников), и не хочет возвращать обратно деньги добросовестной покупательнице. Редко пишу в бложике на темы отличные от ИТ, но тут пригорело..

Чистый код<>Понятный код

По мотивам время от времени попадающихся мануалов «как писать чистый код». Ну не об этом все авторы думают в большинстве своём. Не поддерживали они легаси 20-ти летней давности, не разбирали код который написал условный Вася, который уже 15 лет как покинул эту компанию. Код в первую очередь должен быть понятным. А читаемым? Да пофиг. Любой код должен разобрать понять и исправить любой выпускник ПТУ. Вот к чему нужно стремиться. А как этого достичь? Да достаточно просто:

  1. Каждая процедура-функция должна быть прокомментирована «зачем она и что делает». Что принимает на вход, и то выдает на выходе. Длинных функций следует избегать.
  2. Переменные, имена функций и процедур должны говорить сами за себя
  3. Не используйте «сахар» в коде (легализованные языком сокращения кода). Пусть будет больше конструкций, зато человек не погруженный в язык, и не знающий его особенности быстро его поймёт.
  4. Если нет борьбы за производительность, то лучше написать медленный но понятный код, используя простые алгоритмы а не сложные.
  5. Используйте систему хранения версий на подобии GIT. Так можно будет потом отследить кто чего менял, а если будут прокомментированные коммиты, то и зачем.
  6. Если используете фремворки — то используйте их без фанатизма, чтобы однажды не оказалось что какой то его компонент (а то и сам фремворк) вдруг не стал тыквой. Это для долгосрочных проектов.

1С: Сброс пароля администратора в файловой БД

Рассматриваю вариант под ОС Linux. В некотором смысле это получается даже проще чем под Windows — не нужно искать никаких дополнительных утилит типа редактора HEX- всё уже есть «базе»

1) Открываем на просмотр в mc файл 1Cv8.1CD

2) Переходим в режим просмотра HEX — F4.

3) Ищем в режиме поиска в шестнадцатеричном формате сочетание 00 09 00 75 00 73

4) Заменяем 00 09 на 01 09, сохраняем изменения

5) Ищем 56 38 55 53 45 52 53 4D , заменяем 56 на 48

6) Открываем утилиту chdbfl из папки /opt/1cv8/x86_64/8.3.25.1445 (у вас папка другая конечно), и восстанавливаем базу.

После чего запускаем конфигуратор и входим без пароля

1 2 3 71