Чтиво за последние полгода

Давненько не выкладывал список литературы, которую читаю. Сын уже подрос, и читать ему не нужно. Дочь вырубается после 5 минут чтения, потому одну книгу мусолим уже полгода 😉 Потому выкладываю только свой список литературы. Не весь правда, т.к. FBReader меня немножко подвел не так давно, и список «читаемых сейчас» книг был утерян.

  • Сам себе властелин 1-5. Александр Горбов. Уже читал, но перечитал, т.к. вышла последняя часть. Оценка 4/5. Краткий сюжет: очередной попаданец волею судеб попадает в мир магии, где оказывается наследником замка Кулькуара
  • Отмороженный 1-4. Гарцевич Е.А. Оценка 3 из 5. МЧСник исследую мир в Арктике, попал в другое измерение, и был «заморожен» на 100 лет. Мосле того как это измерение было обнаружено, его спасли. И далее он помогает исследовать «Мерзлоту».
  • Адский Пекарь. Сергей Мутев, Сириус Дрейк. Оценка 1 из 5. Не дочитал, ибо бред..
  • Моё пространственное убежище 1-14. Дмитрий Дорничев. Оценка 3 из 5. Зомобиаппокалипсис с системой.

Arduino Nano: использование сдвигового регистра, пример

Сдвиговые регистры — это два вида микроскхем 74HC595 и 74HC165. первый соответственно предназначен для расширения пинов для выхода (например помигать светодиодиками, включать выключать реле и т.п.), а второй для расширения пинов для входа (чтение состояние кнопочек, датчики движения и т.п.). Наиважнейшим моментом отмечу, что считывать/посылать состояние можем только в виде 0 и 1. Соответственно подключать можем устройства которые могут принимать только два состояния: вкл и выкл. Рассмотрим схему 74HC595

Соответственно на выходы Q0-Q7 мы сможем подавать состояние включено-выключено (1/0), отослав на ногу DS маску из 8 бит. Например 01010101. Остальные ноги:

  • GND — земля
  • MR — сброс значений регистра. Сброс происходит при получении LOW
  • SH_CP (SRCLK) — линия синхроимпульса для передачи данных из DS во внутренние ячейки (вход для тактовых импульсов).
  • SH — shift, CP — clock pin ST_CP (RCLK) — линия синхроимпульса для передачи данных из внутренних ячеек, во внешние (синхронизация выходов).
  • ST — storage, CP — clock pin OE — инверсный, разрешение на вывод данных с внешних ячеек (вход для переключения состояния выходов из высокоомного в рабочее)
  • DS (SER) — линия последовательных данных (Data Serial)
  • VCC — питание, 5В

Пример подключения 8 светодиодов в виде схемы:

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

Простейший скетч для такой схемы подключения:

WordPress: Плагин для комментирования записей при помощи vk

Много лет пользовался плагином Social API. Да много лет заброшен и не поддерживается, но работало. Но тут случился переезд сайта с PHP 7.4 на PHP 8.2. И плагин отвалился., Поискал актуальные рабочие плагины — аналоги. Не нашел. Заброшены все. Пришлось закатать рукава и один из самых простых заброшенных плагинов довести до рабочего состояния. Результат выложен тут. Возможно дойдут руки и для того чтобы выложить в репозитарии WordPress.

cf7 Telegram: ошибка 400 при отправке сообщения

Симптомы: При отправке сообщения из контактной формы, сообщение не отправляется в бота, а в логах появляется ошибка вида:

Изучив чуть плагин, нашел непосредственную функцию отправки сообщения, и чуть её дополнил:

Ошибка стала чуть вняетнее:

{«ok»:false,»error_code»:400,»description»:»Bad Request: can’t parse entities: Can’t find end of the entity starting at byte offset 289″}

Но ни сколько не понятнее… Стал рыть дальше. Отправка в wordpress осуществляется функцией:

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

И оно заработало.. Ну так и оставил..

Ubuntu: устранение уязвимости OpenSSH cve-2023-48795

Вообще, если дистрибутив LTS, то просто выполнив:

Уязвимость уже будет теоретически будет устранена, НО! дополнительно можно (на будущее) отключить вообще протоколы ChaCha20-Poly1305 и Encrypt-then-MAC в ssh, которые собственно и эксплуатируются для этой уязвимости:

Теперь если выполнить:

Можно увидеть список используемых алгоритмов для соединения, и соотвественно узнать, что эти протоколы исчезли из списка доступных

1 2 3 4 5 281