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

Связь с автором: @moose_kazan
Download Telegram
Про 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 и надо будет собирать свой.
Если Telegram в РФ окончательно заблокируют то что вы будете делать? Уйдёте на другую площадку (какую?) или будете искать способы обхода блокировки? Используете ли вы какие-то сервисы туннелирования трафика и если да то какие?

Я постараюсь оставаться тут как можно дольше. К сожалению очень много завязано на эту площадку.
👍1
И снова про "chmod -x /bin/chmod":

Накидали ещё решений. Если установлена утилита install:

install -m 755 /bin/chmod /tmp/chmod
mv /tmp/chmod /bin/chmod


Ну и немного сомнительный путь, но имеющий право на жизнь:

Выбираем существующий бинарник, который нам не очень нужен прямо сейчас. Например "/usr/bin/telnet". И далее так:

cat /bin/chmod > /usr/bin/telnet
/usr/bin/telnet +x /bin/chmod


И дальше чиним уже /usr/bin/telnet
👍2
Оффтоп про политику и математику

Я устал. Очень хочется какой-то предсказуемости. Наше родное государство постоянно находит нарушения законов в тех или иных сервисах и почему-то вместо (или в дополнение?) к ловле нарушителей борется ещё и с самими сервисами. И нельзя быть уверенным что работающий сегодня полезный сервис вдруг не окажется завтра пристанищем мошенников и не будет заблокирован.

А теперь немного математики. Допустим что (по официальным данным) на выборы пришло 87 миллионов человек и 87.28% проголосовали за кандидата X. Это означает что 11 миллионов человек голосовали за кого угодно, но только не за кандидата X.

11 миллионов это суммарное население Татарстана, Чувашии, Нижегородской и Самарской областей. Ну или два Санкт-Петербурга. Это примерно каждый четырнадцатый человек в стране. Или каждый девятый из числа проголосовавших. И это тоже граждане страны и с их интересами тоже нужно считаться.

Даже если победитель выборов известен заранее на выборы всё равно стоит идти. Если вам нравится этот кандидат - ничего страшного если вы отдадите за него свой голос. А если нет - то вы сможете показать что вы есть и что с вами тоже нужно считаться.

Это я всё к чему: осенью будут выборы в государственную думу РФ. Это легальная возможность высказать своё отношение к тому что происходит в стране. Я не призываю голосовать за или против кого-то конкретного. Я считаю что все мы взрослые люди и каждый способен сам принять решение. Я просто хочу заниматься любимым делом. Надеюсь что такая вот математика мне поможет)
👍3👎1🔥1
Чего мне не хватает в спецификации desktop-файлов так это возможности указывать переменные окружения. Конечно их можно подставлять прямо в строку запуска, но это не очень удобно. Хочется прямо в desktop-файле иметь возможность писать что-то такое:

[Environments]
GDK_SCALE=2
LANG=en_US


А в диалоге редактирования свойств desktop-файла предусмотреть отдельную вкладку для переменных окружения и при запуске такого файла эти самые переменные передавать приложению.

Начинал писать патч для KDE, но задача оказалась слишком глобальной. Может быть я бы её и вывез, но эта история "out of spec" и даже если патч будет готов - не факт что его примут. Понимаю что для начала нужна доработка стандартов XDG, но тут я не уверен что смогу такое продвинуть, да и не факт что оно кому-то нужно кроме меня.
Полезная утилита для Debian/Ubuntu

Недавно открыл для себя утилиту управлениям репозиториями extrepo. С её помощью можно легко находить и подключать дополнительные репозитории. Что-то вроде add-apt-repository из Ubuntu, но больше ориентирована на встроенный список репозиториев.

Использованием очень простое. Найти репозиторий:

extrepo search wine


Вывод будет примерно таким:

Found winehq:
---
description: WineHQ packages
gpg-key-checksum:
sha256: 012326dba01e3853f262af95b840d8e3539a23ede80be2e82f30a721d4678e26
gpg-key-file: winehq.asc
policy: main
source:
Architectures: amd64 i386
Components: main
Suites: trixie
Types: deb deb-src
URIs: https://dl.winehq.org/wine-builds/debian


Далее подключаем репозиторий:

extrepo enable winehq


Ну и далее всё как обычно)

Настройки утилиты расположены в /etc/extrepo/config.yaml. Из ценного там есть возможность включить поддержку репозиториев с non-DFSG лицензиями.
👍1
Про нейросети

Многие мои коллеги используют Cursor IDE или подключают Copilot, DeepSeek или что-то ещё. Я вобщем-то тоже не остался в стороне. У меня есть и зарубежные карты и зарубежные сервера, но мне немного лениво постоянно с этим заморачиваться, поэтому я в итоге начал использовать отечественные продукты, хотя они и не такие мощные как "зарубежные аналоги".

Я попробовал sourcecraft-ассистента от Яндекс, но он там существует как дополнение к платформе sourcecraft.dev и я так и не нашёл способа докупить токены без покупки других ресурсов на платформе.

В итоге я использую VSCode с плагином GigaChat от Сбера. Интересно что PHP-код он подсказывает гораздо лучше sourcecraft. Для борьбы с галлюцинациями хорошо помогают нормальные LSP: для PHP использую intelephense, для Perl - Perl::LanguageServer, для Go - gopls (а есть альтернативы?)).

Всё жду когда за Gigachat начнут брать деньги, но платить скорее всего буду. Собственный мозг не заменяет, но работу упрощает и ускоряет. А ещё многие картинки в этом канале сгенерированы ботом @gigachat_bot.

А вы пользуетесь нейросетями в своей работе? Какими и для каких сценариев?
Копировал файл на сервер по scp и получил сообщение:

** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html


Это что-то новое)
TamTam попрощался со своими пользователями.

Сообщения пока ещё отправляются и доставляются, но вроде бы сегодня последний день его работы. Специально не закрываю приложение. Хочу посмотреть что будет с активными сессиями)

Ещё один убийца всех других мессенджеров никого не убил и сам тихонько умер)
Несколько лет назад довелось заполнять декларацию 3-НДФЛ. Пришлось использовать специальное приложение "Декларация 2023", которое было только под Windows. К счастью оно нормально запускалось под Wine.

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

Беглое изучения содержимого deb-пакета показало что:
1. Используется фреймворк SkiaSharp и значит скорее всего приложение написано на .NET.
2. При установке пакета запускается скрипт, который перебирая директории в /home пытается всем пользователям создать по ярлыку на рабочем столе, проворачивая при этом на детородном органе и спецификации XDG и возможность иметь домашний каталог не в /home.
3. В окружении wayland на HiDPI-мониторе интерфейс не масштабируется и выглядит очень мелким.
4. RPM-пакета нет. Кому надо - alien вам в руки.

Ну и исходники по традиции нам не положили. Так же нет и описания схемы XML-документа, который эта штука генерирует. Так что написать своё такое же но другое приложение будет затруднительно.

Но в любом случае это огромный шаг вперёд, который можно только приветствовать.

P.S. Ссылку не даю чтобы не обвинили в ангажированности. Кому надо найдёт сам легко и быстро.