Леонид Каганов
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
Леонид Каганов's LiveJournal:
[ << Previous 20 ]
Sunday, August 24th, 2025 | 6:30 am |
Тестируем онлайновку взято отсюда: https://lleo.me/dnevnik/2025/08/24UPD: Добавил еще индикатор «набирает новый комментарий». UPD: Ну и статистику: Так получилось, что я участвую в разработке серверной утилиты для хранения короткоживущих переменных и подписки на их шевеление: https://github.com/hcengineering/hulypulse Такой старый добрый memcache, только с подписками и предназначенный для больших распределенных серверов на Redis. Но также я вкомпилил туда также отдельную опцию для более скромного режима, когда нет нужды ставить Redis, а используется просто родная память. И в этом виде я ее поставил себе на сервер и тестирую в дневнике. Ничего особенного не происходит, просто внизу в левой колонке (ну еще и прямо в этой заметке) вы видите всех, кто в данный момент читает какие-то страницы моего скромного дневника, и список страниц. Расскажите, если заметите какие-то глюки. ( Read more... ) | Wednesday, July 30th, 2025 | 11:57 pm |
Приложение Радио без башни для Андроида взято отсюда: https://lleo.me/dnevnik/2025/07/30Чего-то меня переклинило сегодня, отвлекся от работы на несколько часов и повысил квалификацию: разобрался с React, разобрался, как писать мобильные приложения на React под Андроид и [написал](https://github.com/lleokaganov/radio-rj) приложение, играющее [радио Рыбий жир оно же Радио без башни](https://lleo.me/radio). Раньше когда-то на Cordova писал, но это было десять лет назад. В Гуглплее apk не появится, потому что Гугль мой аккаунт удалил за бездействие, насилие над котятами и всякое там отсутствие подписанной рекламной политики для несовершеннолетних геев Эритреи. И больше я аккаунтов у Гугля создавать не желаю. Но приложение вот, можно ставить: https://lleo.me/radio/rj.apk Что там звучит на радио — я без понятия, оно живёт под столом своей рандомной жизнью. Единственное что — если выключить экран или уйти на другой, то при смене песни оно уснет и играть перестанет. Но это уже какие-то глубинные глюки React, которые за один день я решать не готов. ( Read more... ) | Friday, July 4th, 2025 | 11:25 pm |
Туннели CloudFlare.com: делаем вебсервер дома без публичного IP взято отсюда: https://lleo.me/dnevnik/2025/07/04Жизнь постоянно меняется. Вот я, например, остался без работы. А еще переехал на другую квартиру. Нет уже того милого домика у провинциального озера с комнаткой под лестницей, грущу. Зато теперь мне 7 минут до метро. Но рассказ не об этом. Заодно сменился интернет-провайдер, и нынешний наотрез отказывается давать публичный IP, даже за деньги. Это для меня неожиданность, я привык жить с внешним IP. Но, оказалось, сегодня и это настраиваемо. И сейчас расскажу, как я настраивал. Кому техническая тема не интересна, может дальше не читать.  ( Read more... ) | Tuesday, April 29th, 2025 | 6:40 pm |
Сканеры RFID и NFC взято отсюда: https://lleo.me/dnevnik/2025/04/29С детства увлекаюсь электронными замками. Первый электронный замок — кодовый, с клавиатурой — собрал на своем шкафу в детской комнате еще в 8 классе. Потом были самые разные замки — от сканера отпечатка пальца до вживленного в руку чипа. Соответственно, набралось немножко опыта в плане современных считывателей. О них и расскажу. Считыватели электронных ключей бывают в основном двух типов: RFID 125кГц и NFC 13МГц, первый старый, но еще много где использующийся, второй — новый, умеет всякое хранение и криптографию. Криптографию я так и не использую — просто лень об этом думать, все равно чип у меня в руке старый RFID. Но сканер NFC тоже ставлю на дверь, потому что это расширяет число возможных ключей. Например старые красные карточки от поездок московского метро — отличный уникальный ключ NFC. Сперва про NFC-считыватели. MFRC522  ( Read more... ) | Wednesday, April 2nd, 2025 | 3:26 pm |
Сисадминам вопрос: /var/log/mysql root root взято отсюда: https://lleo.me/dnevnik/2025/04/02_1Слушайте, а что это за прикол, когда на исправно работавшем долгие месяцы сервере вдруг напрочь падает MySQL Mariadb по причине того, что папка логов /var/log/mysql имеет права root:root и внезапно туда ей не удается писать свои логи, пока не сделаешь sudo chmod 777 /var/log/mysql? Я сперва подумал думал, что ко мне на сервер ворвался какой-то хакер, а уходя пытался зачистить следы своего пребывания и не разобрался с правами на папки. Потом подумал, может коллеги по работе что-то мудрили со своим питоном на том же общем сервере. Но сегодня та же самая история повторилась с абсолютно другим сервером, на который тоже не ступала нога человека много месяцев. Что бы это могло быть? ( Read more... ) | Saturday, March 29th, 2025 | 7:22 pm |
Тридцать лет и три года: формат текстов БК-0010 взято отсюда: https://lleo.me/dnevnik/2025/03/30Тридцать лет и три года пролежал на печи... Хорошее начало, да? Тридцать лет и три года пролежал на даче архив 5-дюймовых дисков от моего первого компьютера БК-0010 — бережно завернутые в фольгу от шальных магнитных полей и уложенные в погреб. Точнее, в подвале дачи пролежало это хозяйство всего 25 лет, и десять лет назад было найдено и перевезено в Чертаново. Правда, система не включилась — скорее всего, размагнитились сапописные ПЗУ: | Tuesday, February 18th, 2025 | 6:42 pm |
Тестируем базы данных своего браузера взято отсюда: https://lleo.me/dnevnik/2025/02/18
<input ... > <input ... > На борту вашего браузера есть некие долгие Хранилища — место, где любой сайт может сохранить какую-то свою информацию для ваших следующих заходов. Сначала у браузеров были куки, которые позволяли хранить строчку. Затем localStorage — уже до 5-10 мегабайт (у Сафари 2-5 мегабайт) на каждый сайт, я его тоже использую чтобы хранить мелкие настройки и авторизацию. Однако во всех современных браузерах есть еще настоящая база данных. У нее куда шире возможности, а заодно — объемы. Формат работы с ней довольно безумный, и мне понадобилось пару суток с ChatGPG самой последней версии, чтобы сделать свою библиотечку ( Read more... ) | Monday, January 13th, 2025 | 1:22 am |
Для скучных программистов: немного о шифровании на фронтендах взято отсюда: https://lleo.me/dnevnik/2025/01/12
Некоторые вещи мне удобно записывать для себя в дневник как в блокнот. Но вдруг кому-то тоже будет интересно? Современные криптографические методы (из легкодоступных в браузерных приложениях) — это эллиптические кривые семейства 25519 и хороший AES с длинными ключами. Обычно по надежности (а иногда и скорости) они уделывают все эти старинные RSA, который используется до сих пор, например, в PGP. А если завтра квантовый компьютер, а мы невыспавшиеся и не одеты? AES позволяет надежно шифровать данные и расшифровывать обратно симметрично (одним тем же паролем, плюс еще придется к шифрованным данным запомнить пару коротких констант). AES давно уже встроен аппаратно в любой браузер, и доступен для JS-разработчика как метод crypto. Ниже я накидал две простые функции, как его использовать: [ ТЕКСТ ПОД КАТОМ: Доступен только в оригинальной заметке на сайте ] ( Read more... ) | Saturday, December 28th, 2024 | 10:23 pm |
Долой китайские VPN взято отсюда: https://lleo.me/dnevnik/2024/12/28Крепчает охват интернета, грядёт орбитальный сигнал. Россия в порядке ответа желает, чтоб враг понимал: его технологии жалки, в России растут как грибы глушилки, давилки, сбивалки, лучи электронной борьбы. Мы в плане вредительства — боги! Мы в сфере помех — короли! И нету таких технологий, чтоб мы их сломать не могли!
2018 Несознательные граждане, пользующиеся VPN, уже заметили, что некоторые VPN перестали работать вообще, а некоторые перестали работать с мобильных операторов. Вызвано это тем, что Россия успешно импортирует китайскую модель и оборудование. Если раньше VPN класса shadowsocks (например, Outline) работал, потому что шифровал трафик неизвестным Китаю способом, то теперь проводятся эксперименты по отключению любых непонятных способов шифрования путем потери выборочных пакетов. А этого shadowsocks не переносит. ( Read more... ) | Saturday, December 14th, 2024 | 6:30 am |
Сука Tuya взято отсюда: https://lleo.me/dnevnik/2024/12/14UPD: Всем спасибо за советы и комментарии! Вкратце выяснилось следующее: 1) Не существует простого способа зарегистрироваться на каком-либо сайтике и отныне бесперебойно получать автоматическим запросом телеметрию с «умной розетки» Туйо. Те, кому удалось наладить волынку с ключами API через родной сайт Tuya, пишут, что вскоре ключи отваливаются (в руководствах указывают время отвала 1-3 месяца), видимо, специально. 2) Большинство розеток Tuya, продающихся на данный момент (нет гарантий, что в будущем тоже) можно перепрошить неофициальной прошивкой и дальше уже ее настроить на MQTT. Это требует усердия, наличия специально прошитой Raspberry с фейковой точкой доступа (и подходящим для этих целей чипом WiFi). Не факт, что прошивка подойдет именно к вашей модели розетки — их огромное количество разновидностей от разных производителей. И тем более не факт, что неофициальная прошивка сумеет измерять мощность измерителем данной розетки (обычно разработчики делают упор на сам выключатель розетки, а не побочные сервисы), и тем более не факт, что будет это измерять правильно — в руководствах рекомендуют проводить с розеткой некую почти лабораторную процедуру калибровки на эталонных нагрузках. ( Read more... ) | Monday, October 21st, 2024 | 10:57 pm |
Фейковый NTP-сервер взято отсюда: https://lleo.me/dnevnik/2024/10/21UPD: Дружище Андрей Нигматуллин предложил нормальное решение через DynDNS и даже помог разобраться и настроить, спасибо ему! Итак, задача: у вас есть говнороутер и провайдер, который выдает ему внешний (это важно) IP, но постоянно его меняет. А вы хотите, чтобы этот IP всегда отзывался по адресу в вашем родном домене, скажем oops.lleo.me (все имена здесь и ниже условные). У вашего роутера есть раздел динамического обновления адреса DDNS, но там только 4 варианта. Но среди них есть afraid.org! Решение: Допустим, у вас домен lleo.me на CloudFlare.com (можно и без него, но с ним лучше) Выбираем поддоменное имя для своего lleo.me, например: govnorouter.lleo.me На CloudFlare.com в разделе DNS сайта lleo.me создаем новую запись типа NS:
Type: NS Name: govnorouter Nameserver: ns1.afraid.org Идем на https://afraid.org и создаем бесплатную запись «Sign up Free». Поле «userID» — пишите любое латинское слово, надеюсь там такоего юзера нет. Подтвердите email, и вы залогинены. Теперь на afraid.org (дизайн там даже не 90-е, а 80-е, под браузер lynx) идем в «Domains», «Add domain» — и там прописываем свой govnorouter.lleo.me (Shared:Public я выбрал на всякий случай). ( Read more... ) | Wednesday, August 21st, 2024 | 11:18 pm |
Горячие финские шрифты взято отсюда: https://lleo.me/dnevnik/2024/08/21Товарищ Анто из Хельсинки прислал дивное: https://t.me/htmlshit/3049 Финские программисты создали шрифт для подсветки синтаксиса, который подсвечивает синтаксис сам — обрабатывает всякие там css, JS и прочие языки на уровне самого шрифта (!). Как это делается технологически — я пока разбираться не стал, видимо, какие-то таблицы взаимозависимости соседних символов. Но достаточно написать такой CSS и взять нужный код в тэг CODE: | Saturday, June 8th, 2024 | 8:59 pm |
PWA или "аккаунт разработчика Google" взято отсюда: https://lleo.me/dnevnik/2024/06/08_cordovaUPD: Внезапный и неожиданный вывод: да нахер больше не нужны магазины приложений, все эти GooglePlay да AppStore с их ебучей премодерацией и заполнением бесконечных анкет и манифестов с обязательствами не собирать личные данные детей-инвалидов в регионах Парагвая. Институт разработки приложений на специальных языках (отдельно для Android, отдельно для iOS, отдельно для Android на процессорах x86) должен быть уничтожен как явление. По сути, мобильным приложением является любой сайт сети. Сайты открываются на любом устройстве, с владельцев сайта никто не требует заполнять бюрократические анкеты, сайт никто не ставит в трехнедельную очередь на премодерацию для опубликования. Так с какого хера всё это требуют от приложений? До некоторого времени любой сайт можно было «добавить ярлык на главный экран», и это уже было немного похоже на приложение. Но года с 2018 стал внедряться формат PWA, когда сайт можно не только «добавить как ярлык», но и полноценно «установить как приложение». Да пофиг, как расшифровывается аббревиатура PWA, однако весьма любопытно, что она перекликается с WAP. Надеюсь никто уже не помнит, что такое WAP. Потому что WAP — самая уёбищная поделка той ушедшей эпохи, когда в некоторых мобильных телефонах уже кое-как стал появляться интернет. Телефоны тех времен были полным говном: с цифрами-кнопками и экранчиком на 3 строчки текста. Чтобы на этих сраных строчках можно было рассмотреть сайты новостей или афишу кинотеатра, был придуман WAP — особый сокращенный формат сайта, специально адаптированный для телефонов-инвалидов. Всем владельцам сайтов предписывалось идти в ногу со временем, делая сразу два варианта своих страниц: для нормальных компьютеров и «WAP-версия». Нахера это было нужно, никто не понимал даже тогда. Лично у меня в те годы вполне себе была Нокия-коммуникатор с нормальным экраном и нормальной клавиатурой, она отображала любые сайты не хуже десктопа, никакой WAP ей был не нужен. Владельцам дешевых звонилок WAP был тем более не нужен — эти дикие люди пока ничего не знали про интернет. В те годы они очень гордились, что их звонилки маленькие, моя Нокия их очень пугала «такой же убить можно!», хотя размерами была куда меньше современных смартфонов. Короче, WAP-версию я сделал только для сайта НАХУЙ — единственный сайт планеты, где она была реально уместна. ( Read more... ) | Thursday, February 29th, 2024 | 3:17 am |
Друзья-программисты, а кто-то писал плагины под WooCommerce? взято отсюда: https://lleo.me/dnevnik/2024/02/29UPD: Друзья, спасибо всем за советы, вопрос решен. Правильный ответ (с вашими подсказками) нашел мудрый Кирилл. Итак, вопрос был, как в магазине WooCommerce фронтенд JS может обратиться к бэкенду по Ajax и получить доступ к сессии, пользователю, его корзине и номеру заказа. Правильный ответ: 1. В магазине WooCommerce (в отличие от прочих магазинов типа OpenCart и PrestaShop) нельзя узнать номер заказа до нажатия кнопки Checkout: заказа не существует, хоть корзина уже зарегистрирована в сессии. Заказ будет создан и получит номер только в момент выполнения Checkout. 2. Даже если вы зарегистрировали отдельный rest-эндпоинт и гоняете туда запросы аяксом, WooCommerce не сможет опознать сессию и проигнорирует авторизационные куки WooCommerce и WordPress. Чтобы сессия была опознана, необходимо при запросе делать специальные манипуляции: в дополнение к авторизационным кукам разместить в хедерах некие загадочные ключи Nonce и X-WP-Nonce. Искать их надо столь же неочевидным способом: X-WP-Nonce доступен в объекте wp.apiFetch.nonceMiddleware, а Nonce передается при загрузке страницы и затем обновляется по React, так что его актуальная версия лежит в LocalStorage 'storeApiNonce'. ( Read more... ) | Wednesday, January 10th, 2024 | 4:12 pm |
Требуется совет: как интегрировать Алису с самодельными устройствами? взято отсюда: https://lleo.me/dnevnik/2024/01/10Видит бог, долго я избегал Алиса-прослушки, но в итоге добрый Паша подарил мне на новый год Яндекс-колонку :) Приходится управлять одинокой умной лампочкой в коридоре и слушать только ту музыку и те радиостанции, что нынче дозволены для прослушивания официальными стримминговыми сервисами.  И всё бы хорошо, но тогда уж хочется как-то интегрировать Алису к своей домашней электронике. Прежде — лет 5 назад — я это делал при помощи собственного «навыка», у меня где-то есть на этот счет весьма развесистые скрипты по разнообразным ответам и управлению, и в принципе они до сих пор работают. Но неудобно каждый раз произносить голосом «алиса, запусти навык Дом Лео... активировать полив в библиотеке... стоп навык...» Я так понял, Алиса шагнула сильно вперед и уже давно это можно делать напрямую. Но вот как? ( Read more... ) | Thursday, November 30th, 2023 | 9:52 am |
Пакетный менеджер Линукс взято отсюда: https://lleo.me/dnevnik/2023/11/30 Линукс такой разный. Собирал одну софтинку строго по инструкции для пользователей Линукс. После установки кучи загадочных приблуд с именами типа Ninja и LSD2 дошёл до строки, где предлагалось запустить с длинными ключами какой-то пакетный менеджер pacman. Такого в системе тоже не обнаружилось, пришлось установить. Теперь у меня на компьютере есть pacman v1.0. Это вы серьезно сейчас? ( Read more... ) | Friday, October 6th, 2023 | 7:21 am |
identicon взято отсюда: https://lleo.me/dnevnik/2023/10/05 Идентикон — уникальное изображение, соответствующее только своему произвольному коду (это может быть номер аккаунта, платежный счет и т.п.). Ведь коды человеку различать неудобно, а разноцветная иконка наверняка запомнится. Идея родилась в начале века, была здравая, и первые модельки в виде простых треугольничков и точек принцип иллюстрировали неплохо. | Tuesday, October 3rd, 2023 | 3:33 am |
USB-руль Microsoft к ESP-32-s3 взято отсюда: https://lleo.me/dnevnik/2023/10/02Я всё ещё хочу ездить на шестисотом BMW. И поэтому товарищ Макс как-то принес мне с барахолки USB-руль:  Затем к рулю дошла неспешно заказанная из Китая ESP32s3 (это которая со слотом OTG-USB), а сегодня наконец дошли и руки разобраться со всем этим и заардуинить драйвер. Что удивительно — получилось за вечер, спасибо Чуку за советы по протоколам USB. Демку выложил на Гитхаб, кому интересно: ( Read more... ) | Saturday, September 23rd, 2023 | 9:08 pm |
Простейший Чипльдуктор взято отсюда: https://lleo.me/dnevnik/2023/09/23Почти сутки не мог взять себя в руки и приступить к чистке ведер грибов, что принес из леса. А всё потому, что у меня не было спокойного радио. Пришлось сперва его снова настроить. Снова — потому что чипльдуктор у меня был, но убилась флешка. Вы спросите: чего я не делал бэкап? Отвечу: она и убилась, когда я ее вынул и пытался сделать бэкап — не все кардридеры одинаково полезны. Как сделать простейший Чипльдуктор? Чипльдуктором называется простой онлайн-радиоприемник, который торчит в розетке и позволяет включать-выключать радио Чипльдук или любую другую онлайн-радиостанцию, а также регулировать громкость. В качестве управления мы будем использовать кнопки на звуковой карте. Вам понадобится: 1. Дешевый одноплатный чип с Линуксом — Raspberry PI, Orange, Banana или что-то похожее. 2. Звуковая карта USB c кнопками. 3. USB-колонки.  ( Read more... ) | Friday, April 7th, 2023 | 2:30 am |
WASM-JS взято отсюда: https://lleo.me/dnevnik/2023/04/07Ещё немного про WASM и язык Rust. Современный браузер имеет в целом два языка программирования: классический JavaScript, а также браузерный ассемблер WASM. Который собственно языком программирования не является, а является сущностью, в которую можно скомпилировать код с любого другого языка. Для чего это может пригодиться? — Если у вас есть библиотеки на других языках — какая-нибудь обработка звука на С или блокчейн-парсеры на Rust — Если у вас очень дорогие вычисления, и повышение производительности от 30% вам критично. Чего WASM не даст? Компактного объема не даст — все процедуры компилятор туда потащит с нуля, и код раздуется на сотни кб по сравнению с JS. Бешеной производительности тоже не ждём: от 30% можно повысить производительность, ну и время старта страницы теоретически должно повыситься (хотя на практике ощущения такого нет). Никаких интересных возможностей, которых не было в JS, WASM точно не даст. Он вообще никаких возможностей не даст, более того — по всем вопросам, связанным с браузером, он будет всё равно бегать в JS. И запускать его придется тоже из JS, там специальный костыль script type='module' и еще придется отдельно объявлять все его функции. ( Read more... ) |
[ << Previous 20 ]
|