Yellow Leaf
42 subscribers
247 photos
120 links
Всякое около IT-шное.

Связь с автором: @moose_kazan
Download Telegram
В любом расследовании главное не выйти на самих себя.

Debian 13 вышел в августе. Я не обновлялся чтобы не отвлекаться от работы. И вот начались каникулы и я решил что пора. Надеялся что и разработчики стороннего ПО уже добавили Debian 13 в списки поддерживаемых платформ и ничего после обновления не отвалится.

И действительно почти ничего не отвалилось. Кроме плазмоида отображающего свободное место на Яндекс.Диске. Юмор тут в том что его я написал сам.

Вобщем ушёл готовить обновление...
❤5😁1
В продолжение предыдущего поста: плазмоид обновил. Всё работает. Если кому надо то исходники тут: https://github.com/moose-kazan/plasmoid-ydinfo

Там же ссылка на KDE Store и PPA для последней Ubuntu LTS.

Тульза довольно простая и изначально писалась в рамках изучения QML с одной стороны и получения опыта написания виджетов Plasma с другой. Но в итоге пользуюсь сам и похоже не только я)
🔥4
Ещё одна потеря при обновлении до Debian 13 - RSS-клиент QuiteRSS.

Его автор забросил развитие проекта и пакет удалили из Debian Trixie. Пакет от Bookworm не устанавливается из-за неудовлетворённых зависимостей. Собрать из исходников с ходу не получилось.

Самое неприятное в этой истории что все подписки остались в QuiteRSS. Беглое изучение исходников показало что все данные, включая подписки, хранятся в SQLite-базе (Ага! Вот почему оно иногда тупило и начинало жрать ЦПУ!).

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

Код тут: https://github.com/moose-kazan/quiterss2opml
🔥3
Полгода назад минцифры родного Татарстана опубликовал карту публичных точек WiFi в республике. Карта не самая полная (как минимум отсутствуют многие заведения общепита) но всё равно полезная.

Из минусов: карта доступна только онлайн. Т.е. надо либо планировать маршрут заранее, либо иметь интернет чтобы найти интернет.

Я немного поковырял эту карту и вытащил оттуда ссылку на базу точек. После чего за пару вечеров набросал приложение, которое:

* Уже содержит в себе базу точек
* При наличии интернета может обновить эту базу
* Показывает список точек поблизости
* Позволяет запустить навигатор (позаботьтесь о загрузке карт заранее).

Ссылки:
* Карта минцифры РТ: https://digital.tatarstan.ru/wifi-points.htm
* Исходники приложения: https://github.com/moose-kazan/tatarstan-free-wifi-android
* Само приложение в RuStore: https://www.rustore.ru/catalog/app/com.ylsoftware.tatwififree

UPD: Ссылку на RuStore поправил
🔥4
Утром проснулся и обнаружил что одна из моих VPS не отвечает по 80 и 443 порту. При изучении проблемы увидел большое количество одинаковых запросов с одной подсети. Я хотел обидеться, но обратил внимание на UserAgent:

"Mozilla/5.0 (compatible; Thinkbot/0.5.8; +In_the_test_phase,_if_the_Thinkbot_brings_you_trouble,_please_block_its_IP_address._Thank_you.)"


Поржал и забанил всю подсеть. На минуточку /12 (миллион адресов). В целом проблема решилась. Но вечером как появилось свободное время прошрестил логи и забанил ещё примерно столько же адресов в разных подсетях.

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

Чей лом тяжелее - вопрос открытый. Я вообще не сторонник банов больших подсетей, но другого простого решения не вижу.
Немного о форматах электронных книг

Думаю что все знают такие форматы как EPUB и FB2. Есть и другие форматы: например MOBI и его версия с DRM - KDW. Для кого-то и PDF и RTF тоже вполне "книжные" форматы.

На самом деле большинство книжных форматов содержат в себе "финальное" представление электронной книги. Т.е. кроме текста ещё детальное описание того как книга должна выглядеть на устройстве пользователя. Эдакий аналог типографской вёрстки. Яркий пример такого формата - EPUB. Внутри набор XHTML-документов, CSS-таблицы к ним и предусмотрено даже встраивание ширфтов.

Но любая вёрстка начинается с рукописи. И есть форматы для хранения этих самых "рукописей". Там нет таблиц стилей и шрифтов. Только минимальная разметка книги (заголовки, цитаты, сноски, иллюстрации и т.д.), из которой потом в автоматизированном режиме можно получить уже "типографское" представление: либо непосредственно на устройстве пользователя, либо при генерации того же EPUB.

В РФ наиболее распространён формат "рукописей" FB2, созданный Дмитрием Грибовым из litres. Гораздо меньше распространена эволюционная версия этого формата - FB3. Но есть и другие подобные форматы. Например SFB от создателей болгарского ресурса chitanka.info.

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

P.S. Нужна ли в Qt Book Reader поддержка SFB?
❤1
ПочтаБанк жжот. Одноразовый код для входа в онлайн банк в браузере приходит вот так. Звёздочками. И они не кликабельные)

Если ты не знаешь код ты его точно не передашь мошенникам)

Б - безопасность.
👍1
Появилась у меня странная фантазия: попробовать использовать ReactOS для сборки софта на Qt/C++. Не стал откладывать в долгий ящик и попробовал.

Первая проблема: Qt под Windows поставляется только в виде 64-битных сборок, а релизы ReactOS - 32-битные. Но есть 64-битные ночные сборки.

Берём такую сборку. Устанавливаем на VirtualBox, качаем qt-online-installer, пробуем запустить и получаем ошибку: функция GetPointerFrameTouchInfo в user32.dll - отсутствует. Быстрый поиск подсказал что эта функция появилась в Windows 8 (NT 6.2), в то время как ReactOS реализует API NT 5.2.

Была мысль просто вытащить все файлы из инсталлятора и попробовать эдакий portable, но чует моё сердце что там тоже будет не хватать функций в DLL и я пока сдался.

Такой план не удался...)

UPD: Включение режима совместимости с Windows 10 тоже не помогло. Функция всё равно отсутствует.
Про OpenWRT

Имею в наличии Traver Router от Cudy. Модель TR3000. Железка довольно мощная (Dual Core ARM64 / 512MB RAM) и официально поддерживает установку OpenWRT, хоть и с потерей гарантии. Решил этим воспользоваться и приспособить устройство для некоторых своих задач. С OpenWRT я последний раз имел дело лет восемь назад и тогда мне не очень понравилось.

В этот раз установка OpenWRT трудностей не вызвала. Инструкция у них реально классная. А вот дальше стало не скучно: в целом управление чем-то напоминает Mikrotik: интерфейс заточен не под конкретные сценарии, а под управление сетевыми функциями Linux напрямую.

С одной стороны это реально позволяет настроить всё что угодно, но с другой - то что в других роутерах настраивается в пару кликов здесь требует понимания устройства Linux. И для решения очень многих задач кроме тыкания мышкой ещё придётся писать скрипты.

Вобщем за последние восемь лет OpenWRT как будто так и не стал чем-то для массового пользователя. Скорее это по прежнему альтернатива для гиков. С другой стороны гикам тоже нужна ОСь для роутеров).

А вы пробовали открытые прошивки для устройств? Каки впечатления они у вас оставили?
Смехуёчки

Тут недавно вышла новая версия МСВС ("Мобильная Система Вооруженных Сил"). Одной из ключевых фишек стал ИИ-ассистент "Василиса" на базе локальной LLM Qwen3.

Обсуждая эту новость пришли к выводу что было бы неплохо сделать запуск ассистента голосом по аналогии с "OK, Google". Поскольку система изначально делалась для военных то активация должна быть фразой "Разрешите обратиться")
Про VPN-клиенты в роутерах

Сейчас VPN-клиентом в роутере никого не удивишь. А ведь так было не всегда. И как всегда во всём "виноваты" провайдеры. Но немного не так, как может показаться)

Когда-то давно, двадцать лет назад, я работал в телекомах. И на стороне провайдера решалась интересная задача: что делать если у абонента нет денег на счету? Ну то есть понятно что интернеты ему не давать. Но ведь его как-то надо уведомить что денег нет. СМС тогда не особо были в ходу.

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

Некоторые провайдеры пробовали авторизовывать абонентов, но пускать их только в личный кабинет. Но реализация этого дела была как правило сопряжена с некоторыми костылями. Например Эр-Телеком в те годы выдавал абоненту IP-адреса из разных подсетей в зависимости от тарифа (отсутствие денег на счету - "бесплатный" тариф) и на разные подсети накладывал разные ограничения (скорость, списки доступа).

Я не знаю кто и в какой стране первым додумался до VPN, но в РФ заметным амбассадором этого дела является Билайн (ранее Голден-Телеком). Идея проста и гениальна: при подключении кабеля абонент получает адрес по DHCP и сразу имеет доступ в некоторый "чебурнет", ограниченный личным кабинетом оператора, сайтом оператора и некоторым платёжными системами.

Теперь абонент может сразу проверить и пополнить баланс. И даже пообщаться с техподдержкой в чате, не нагружая телефонных линий. А для доступа в интернет надо поднять VPN-соединение (да, из билайна до билайна).

Когда-то мне это казалось странным и неудобным. И только сильно позже я понял всю гениальность этого решения. А там и поддержка VPN в роутерах стала массовой. Хотя сейчас её и стали использовать в том числе и для других целей.
Хозяйке Админу на заметку: при миграции с iptables на nftables немного меняется способ описания wildcard-интерфейсов: вместо "ppp+" надо писать "ppp*".

Потратил двадцать минут на поиски проблемы.

Теперь мой пытливый ум мучают два вопроса:

1. А можно ли создать интерфейс с именем "ppp+"?
2. В случае успеха как потом на него сослаться в iptables?

P.S. Интерфейс создать можно. Например так:

openconnect https://some.host -i "ppp+"


Ответ на второй вопрос пока ищу)
Про халяву

Тут недавно на @mobilereviewcom критиковали стартап, который хочет раздавать бесплатно телефоны со связью в обмен на обязательное получение рекламы.

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

И вроде бы кажется что эта модель не очень жизнеспособна. Но вот недавно Билайн начал предлагать бесплатную связь. Совсем без условий. Ну я как-то шёл мимо салона и взял СИМку. Сунул её в старенький LG Optimus 2X, подключил его к зарядке, положил на край стола и забыл.

И вот думаю можно подвести итог. С 8-го ноября 25-го года по сегодняшний день больше полусотни СМС от оператора с различными предложениями. Причём поначалу СМС шли вообще каждый день и потом интенсивность стала снижаться. Вижу что это работает так: оператор выдал мне бесплатную СИМку и получил "доступ к телу".

Подозреваю что даже если один из двадцати "халявщиков" в итоге перейдёт на платный тариф или подключит подписку на какой-нибудь он-лайн кинотеатр - аттракцион неслыханной щедрости уже окупится.

По-моему гениально)

P.S. Вспомнилась фраза про "Первая доза бесплатно". Похоже имеем адаптацию этого принципа к сотовой связи)
Автомобильный оффтоп

На фото Жорик. Он - Lada Granta Cross в комплектации Quest'24. Ему уже четырнадцать месяцев, за которые он пробежал чуть больше 20 тысяч километров и за это время каких-то особых капризов с его стороны не было. С моей стороны из заметных доработок разве что установка самоблокирующегося дифференциала в КПП.

Уже несколько дней у нас в Казани объявлен план "Буран". Школьники сидят по домам, жителей призывают никуда не выезжать, на городских дорогах застревают автобусы и буксуют фуры. И так совпало что в эти дни у меня дела, которые нельзя отложить и приходилось выезжать в эту снежную историю.

Что могу сказать: 198мм дорожного просвета и самоблок позволяют довольно уверенно ехать даже по сильно заснеженным дорогам. В плане опций машина очень простая: датчик дождя и датчик света - сам смотри глазами и работай руками, помощь при подъёме? - справляйся сам. Но в плане проходимости машина уступая Ниве заметно превосходит многие "пузотёрки". Ну и в салоне комфортнее чем в Ниве, хотя и есть куда стремиться.

Если кому-то что-то интересно - спрашивайте. Постараюсь ответить максимально подробно.
👍2
Про имена интерфейсов в Linux

Командой "sudo amneziawg-go help" можно создать сетевой интерфейс с именем "help". А вот удалить его уже не так просто)

"sudo ip link delete help" показывает справку. Но решение всё же есть: "sudo ip link delete dev help". Вот это "dev" не является обязательным, но сильно меняет дело)
😁1
Задачка для пытливых умов

Я довольно долго руководил командой DevOps и частенько соискателям предлагал одну задачку. Тот кто возглавил команду после меня тоже считает эту задачку интересной. Так что предлагаю подумать над ней читателям)

Итак: какой-то шутник на машине с Linux выполнил команду:

chmod -x /bin/chmod


Как починить не перезагружая машину?)
Yellow Leaf
Задачка для пытливых умов Я довольно долго руководил командой DevOps и частенько соискателям предлагал одну задачку. Тот кто возглавил команду после меня тоже считает эту задачку интересной. Так что предлагаю подумать над ней читателям) Итак: какой-то шутник…
Ответ на задачку для пытливых умов

Сразу оговорюсь: если соискатель не знает решения то это не критично. Тут интересно посмотреть на сам поиск решения. Оценить способность думать и искать решение.

Напомню задачу:
Какой-то шутник выполнил команду:

chmod -x /bin/chmod

Как починить не перезагружая машину?


Теперь к решениям. На Linux и FreeBSD /bin/chmod обычно elf-бинарник. Для запуска elf-бинарников есть интерпретатор. На Linux это будет так:

/lib/ld-linux.so.2 /bin/chmod +x /bin/chmod


На 64-битной системе возможно надо будет так:

/lib64/ld-linux-x86-64.so.2 /bin/chmod +x /bin/chmod


Для FreeBSD 32-бит решение такое:

/libexec/ld-elf32.so.1 /bin/chmod +x /bin/chmod


Для FreeBSD 64-бит:

/libexec/ld-elf.so.1 /bin/chmod +x /bin/chmod


Ещё на многих Linux-системах установлен busybox. При его наличии можно так:

/bin/busybox chmod +x /bin/chmod


Возможно есть и другие варианты. Если знаете - пишите. Буду рад узнать что-то новое)
👍3
Про мессенджер MAX

Последние версии для Linux перевели с Electron на Qt6/QML с использованием WebEngine и вроде бы стало лучше. В окружениях на базе wayland оно даже масштабируется на HiDPI-экранах нормально.

Но при этом при наборе текста Ctrl+Backspace не делает ничего. Хотя во многих приложениях удаляет слово слева от курсора. А ещё если ширину окна уменьшить до меньше ~960dp интерфейс переключается в мобильный режим. В целом наверное не плохо, но 960dp для мобильного режима - многовато как по мне. У Telegram порог переключения ~720dp.

А вы им пользуетесь? Как оно вам?
👍1
В силу специфики работы есть потребность в использовании на локальной машине разных версий PHP. Штатно в Debian 13 идёт PHP 8.4, но на работе есть некоторое количество кода на 7.2.

В среде PHP-разработчиков достаточно известен Ondřej Surý, поддерживающий репозитории для разных дистрибутивов с различными версиями PHP и возможностью их параллельной установки.

К сожалению Андрей ограничил доступ к своим репозиториями с IP-адресов РФ. Но эта проблема имеет решение. А вот то что я пока не смог решить: Андрей не собирает пакеты под i386, но при этом кроме PHP в своих репозиториях держит ещё обновления некоторых системных библиотек. На системах с multilib это приводит к проблеме сломанных зависимостей.

Приходится выбирать: или PHP разных версий, или Wine и поддержка старых принтеров и сканеров.

В качестве обходного манёвра использую Docker. Примерно так:

docker run --rm -v $(pwd):/app -w /app php:7.2-cli php console migrate


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