Леонид Каганов
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Леонид Каганов's LiveJournal:

    [ << Previous 20 ]
    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/14

    UPD: Всем спасибо за советы и комментарии! Вкратце выяснилось следующее:

    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/21

    UPD: Дружище Андрей Нигматуллин предложил нормальное решение через 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:


    @font-face {
    font-family: 'Monaspace';
    src: url('https://assets.codepen.io/2585/MonaspaceKrypton-SyntaxHighlighter-Regular.woff2') format('woff2');
    }

    code {
    font-family: 'Monaspace', monospace;
    font-palette: --kung-fury;
    }

    /* а еще цвета можно настроить */
    @font-palette-values --kung-fury {
    Read more... )

    Saturday, June 8th, 2024
    8:59 pm
    PWA или "аккаунт разработчика Google"
    взято отсюда: https://lleo.me/dnevnik/2024/06/08_cordova

    UPD:

    Внезапный и неожиданный вывод: да нахер больше не нужны магазины приложений, все эти 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/29

    UPD: Друзья, спасибо всем за советы, вопрос решен. Правильный ответ (с вашими подсказками) нашел мудрый Кирилл. Итак, вопрос был, как в магазине 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... )

    Friday, March 10th, 2023
    5:35 am
    Подбор номиналов резисторов
    взято отсюда: https://lleo.me/dnevnik/2023/03/10



    Во чего вспомнил: как-то товарищ Юра попросил сделать ему софтинку для простой задачки: точного подбора номиналов резисторов при проектировании. Сама формула общеизвестна, а онлайн-сервисов по расчету резисторов тоже выше крыши. Но фишка именно в подборе табличных номиналов. В реальной жизни номиналы резисторов ограничены значениями таблиц E24 или E96, и если калькулятор рекомендует 234 Ома, то промышленность выпускает только 232 или 237. А здесь можно максимально наглядно выбрать пару резисторов из тех, что существуют и даже имеются в ящике стола. А можно подобрать наиболее эффективную пару — вполне вероятно, в ней уже не будет номинала, на который вы опирались, приступая к расчету.

    — Находясь в окошке сопротивлений, можно листать номиналы стрелками вверх и вниз.

    — Картинки smd-резисторов — тоже поле ввода: набрав там непонятную маркировку резистора, можно увидеть номинал.

    Read more... )

    Thursday, March 9th, 2023
    5:23 am
    Веб-разработка: wasm, rust и yew
    взято отсюда: https://lleo.me/dnevnik/2023/03/09

    Сугубо технический пост, совсем для упоротых программистов. Остальным читать не советую.

    Оказывается, в современных браузерах есть две возможности написать исполняемый код: это язык JavaScript и бинарный кроссплатформенный ассемблер WASM. Который по сути не язык, а результат компиляции с другого языка, например C++, GO или Rust.

    Поначалу я воодушевился и даже думал, не переписать ли мне движок блога на wasm. Но оказалось, что практического смысла у wasm немного: он обычно не быстрее JS, не надежнее, не экономичнее, и уж точно не компактнее. Никаких новых фич и лазеек программисту он не открывает: как и для JS, тут действуют ровно те же политики безопасности, те же ограничения на соединения и доступ к в файловой системе. Однако есть два типа задач, где WASM будет полезен. Во-первых, это могучие вычисления, которые надо производить в браузере у пользователя. Ну, не знаю, обрабатывать мегатаблицы. Или сложными алгоритмами найти на фотке лицо и подрисовать усы и рога. Во-вторых — это использование готовых библиотек, которые почему-то (почему?) были написаны не на JS, а на C или Rust. Например, какие-то обработки изображений или процедуры блокчейна.
    Read more... )

    Wednesday, December 7th, 2022
    4:19 am
    Логин на сайте по ключу NFC, банковской или транспортной карте
    взято отсюда: https://lleo.me/dnevnik/2022/12/07


    Мои читатели постоянно жалуются на проблемы с логином на сайте. Там действительно постоянные проблемы, часть из которых связана с глючащими сторонними сервисами, через которые можно логиниться Гуглем, Фейсбуком и прочей ерундой. Родная часть авторизации сайта, которую писал я сам (логин-пароль), она второе десятилетие работает без проблем, вот только мало кто использует логин-пароль. И потом не могут вспомнить. И емайл давно сменили. Тем не менее, я что-то время от времени дорабатываю и чиню. А сегодня сделал логин по банковской карточке. Шучу. В смысле — не шучу. В смысле, не по банковской карточке. Вообще по любой метке NFC. И банковская не исключение.

    Расскажу по порядку. Cовременные телефоны умеют читать поднесенные к ним метки NFC. А некоторые браузеры — в частности, Android Chrome — позволяют делать это скриптом прямо со страниц сайта. Сразу скажу, что твой браузер — хрен знает, что за зверь. Скорее всего, ты читаешь пост не на моем сайте, а в какой-нибудь соцсети, RSS или иной помойке, куда копию текста занес робот. Тогда можно дальше не читать, речь про мой сайт.
    Read more... )

    Friday, September 9th, 2022
    10:17 pm
    Назло Илону Маску: радиолюбитель из Чертаново запустил собственную спутниковую группировку
    [НЕ ПОДДЕРЖАЛ СПЕЦОПЕРАЦИЮ]

    это перепост заметки, оригинал находится на моем сайте: https://lleo.me/dnevnik/2022/09/10

    Меня зовут Лёня, я учёный из Чертаново. Работаю в области частной космонавтики, занимаюсь исследованием микрокосмоса и развитием концепции сверхмалых геостационарных космических спутников на сверхнизких и сверхстабильных орбитах.

    Уверен, что освоение микрокосмоса — важный и своевременный рывок российской космонавтики, наш ответ международным санкциям и мировой русофобии, наиболее перспективное сегодня направление.
    Read more... )

[ << Previous 20 ]
авторский сайт Леонида Каганова   About LJ.Rossia.org