Yellow Leaf
41 subscribers
243 photos
118 links
Всякое около IT-шное.

Связь с автором: @moose_kazan
Download Telegram
Про спутниковый интернет

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

Иногда даже явно пишут что "никаких белых списков". К сожалению именно такой баннер специально поймать не удалось чтобы показать.

В любом случае было бы интересно увидеть статистику числа абонентов спутникового интернета с распределением по времени за последние пару лет. Думаю там много интересного.
Легальные VPN-сервисы в РФ

В июле отправил официальный запрос в РКН с просьбой предоставить список VPN-сервисов, которые выполняют требования российского законодательства, но при этом позволяют обращаться к зарубежным ресурсам, официально не предоставляющим услуги в РФ.

Ведь обещали не блокировать сервисы, которые соблюдают законодательство РФ и не предоставляют доступ к ресурсам, которые запрещены в РФ.

Сегодня получил ответ:


Обращение (вх. № 06-01-19-1740/16 от 15.06.2026) с просьбой предоставить список VPN-сервисов для использования ресурсов, которые не запрещены в РФ, но официально не предоставляют услуги в РФ, поступившее в Управление Роскомнадзора по Республике Татарстан (Татарстан) (далее по тексту – Управление) с Платформы обратной связи Единого портала государственных и муниципальных услуг, рассмотрено в рамках представленных полномочий.

Управление не располагает информацией об VPN-сервисах, удовлетворяющих условиям, указанным в обращении.

Рекомендуем знакомиться с новостями в области связи, информационных технологий на официальных сайтах Минцифры РФ (digital.ru) и Роскомнадзора (rkn.gov.ru).


Как-то так...
РКН и блокировки

Месяц назад потерял доступ из РФ к одному из серверов в другой стране (писал тут).

Из любопытства отправил запрос в РКН. Сегодня получил ответ.

Рассмотрели в рамках компетенции, установленной Положением о Федеральной службе по надзору в сфере связи, информационных технологий и массовых коммуникаций, утвержденным постановлением Правительства Российской Федерации от 16.03.2009 № 228, Ваше обращение по вопросу отсутствия доступа к сетевому адресу (IP-адресу) 179.43.XX.XX и сообщаем.

Доступ к упомянутому IP-адресу ограничен в связи с размещением на нём информационных ресурсов, посредством которых обеспечивается доступ к информации или информационным ресурсам в сети «Интернет», доступ к которым ограничен на территории Российской Федерации: «Amnezia», «Tlist».

Дополнительно информируем, ограничение доступа к средствам обхода блокировок осуществляется с использованием оборудования технических средства противодействия угрозам (далее – ТСПУ) в порядке, предусмотренном п. 14 Правил централизованного управления сетью связи общего пользования, утвержденными постановлением Правительства Российской Федерации от 27.10 2025 № 1667, в рамках реагирования на угрозу безопасности функционирования на территории Российской Федерации сети «Интернет» и сети связи общего пользования (пп. «в» п. 4 Правил).



Для себя вижу так: AmneziaVPN будет блокироватся независимо от целей (потому что машина использовалась для доступа к ресурсам для разработки ПО, которые вроде бы не запрещены в РФ).

Возможно я ошибаюсь.
Про алгоритмы и костыли

Когда-то давно на одном сайте была поисковая строка и появилась задача: фильтровать поисковые запросы. Чтобы если ищут что-то непотребное - не выдавать результат.

Сначала попробовали завести массив регулярных выражений и фильтровать по нему. Массив этот стал расти и тупо перебор выражений стал занимать достаточно много времени и создавать заметную нагрузку на сервер. Нужно было другое решение.

В итоге родилось решение, которое выглядит довольно спорно, но на тот момент оно нас полностью устроило. Вместо перебора регулярных выражений мы стали нормализовывать поисковый запрос и на основе нормализованной версии просто проверять наличие флага в key-value базе (использовали тогда memcachedb, сейчас бы я взял redis).

Собственно основные споры вызывал алгоритм нормализации. Он выглядел примерно так:

// Приводим всё к нижнему регистру
$query = to_lower_case($query)

// Разбиваем на слова (отбрасывая все спецсимволы)
$words = split_to_words($query)

// Сортируем слова по алфавиту
$words = sort($words)

// Отбрасываем дубли
$words = uniq($words)

// Собираем нормализованный вариант
$normalized_query = join('_', $words)


Главный минус такого подхода - он работает со словами, и при изменении формы слова он даёт промахи. Но в тот момент это было не критично, а вот скорость нас порадовала.
Альтернативные мобильные платформы

Нашёл тут у себя старенькую Nokia 6300 4G, работающую на KaiOS 2.5. Вставил симку, зарядил, включил. Работает. Зашёл в магазин приложений - работает. Даже какие-то приложения обновились.

Устройство до сих пор интересное. Есть много простых игр, клиенты социальных сетей, приложения для чтения книг и офисных документов.

Для себя увидел только два минуса: разъём MicroUSB, который в эпоху Type-C выглядит устаревшим и неудобным, и всего 512MB RAM, из-за которых устройство сильно никуда не торопится.

Однако быстрый поиск показал что на отечественных маркетплейсах есть устройства мощнее (например Blackview N1000). А недостающее ПО если уж очень захочется можно и самому попробовать дописать. SDK довольно простой.
Образование здорового человека

В Казанском университете на базе факультета журналистики работает студенческий телеканал "Универ ТВ". Не единственный, но один из немногих в России. У меня большое уважение вызывает ещё один факт: частные компании обеспечивают трансляцию этого канала сильно за пределами университета. Например Таттелеком транслирует его в составе основного пакета КТВ. Причём сразу в SD и HD.

А Радиотелеком добавил "Универ ТВ" в свой пакет эфирных каналов в DVB-T, транслируемый в крупных городах Татарстана. По-моему тут два уникальных для РФ факта: частный эфирный мультиплекс и студенческий канал в нём. Подозреваю что второе отчасти связано с тем что учредитель Радиотелекома сам начинал с факультета журналистики.

Т.е. у студенческого канала есть зрители сильно за пределами университета. Студенты не просто делают программы, они их делают для реального зрителя. По-моему всё это очень круто.

Считаю что таким и должно быть образование.
👍2
GNOME Commander 2

Некоторое время назад воскрес gnome-commander. Его переписали на rust, перенесли на GTK4, добавили плагинов. И неожиданно стало хорошо. Мне очень понравилось.

Обычно использую Krusader, но он выглядит как-то уж очень громоздко. Хотя конечно поддержка KIO и KPart это приятно. Но в GNOME Commander есть поддержка сетевых соединений в виде отдельного диалога с закладками. Мне этого достаточно. Ну и встроенный просмотрщик вполне функционален и без KPart.

Готовый пакет нашёл только в Сизифе (ребята из Базальт - молодцы), так что в Debian пришлось собирать из исходников. Но никаких проблем со сборкой не возникло и всё работает хорошо.

Вобщем рекомендую.
👀1
Midninght Commander и архивы

Я немного знаю как устроена работа с архивами в Midninght Commander. В разное время я добавлял поддержку форматов WIM и Brotli, а так же исправлял поддержку ARJ и ALZ. Так что думаю что могу рассказать про всё это.

За работу с архивами отвечают скрипты, которые на большинстве дистрибутивов расположены в /usr/lib/mc/extfs.d. Эти скрипты имеют довольно простой интерфейс:

script list $arcname

script copyout $arcname $filename $dest

script copyin $arcname $filename $src

script rm $arcname $filename

script rmdir $arcname $dirname

script run $arcname $filename

script mkdir $arcname $dirname


Если какой-то метод не поддерживается то скрипт возвращает код возврата, отличный от нуля.

Хорошая новость в том что скрипты можно писать на любом языке. И сейчас есть скрипты на shell, python, perl, awk. Отсюда такой список зависимостей у mc.

Плохая: файлы в/из архива копируются по одному. Для solid-архивов (например rar, 7zip) на большом количестве файлов это приводит к заметному замедлению операций.

Ещё одна плохая новость: если архиватор запрашивает пароль или выдаёт ещё какой-то запрос - с большой долей вероятности получается дедлок.
❤2
Хитрые планы сотовых операторов

Есть у российского МТС такая довольно удобная штука: "Группа Семья". Идея в том что связь оплачивает один человек ("глава семьи"), а остальные участники ("члены семьи") пользуются услугами из пакета основного участника и сами ничего не оплачивают.

Случайно выяснил что если участник группы подаст заявление на перенос номера к другому оператору то он автоматически исключается из группы и переводится на тариф с помегабайтной(!) оплатой трафика.

Если вспомнить что процедура MNP занимает около восьми суток и требует чтобы в момент переноса баланс абонента был положительным получаем интересную историю: возможность отказать в переносе по техническим причинам (ноль или минус на балансе).

Восхищён находчивостью того кто это придумал.
😁2
PWA это хорошо

Даже будучи тимлидом команды мобильных разработчиков я говорил что во многих случаях мобильные приложения - зло. Как минимум в тех случаях когда они являются по сути фронтендами для некоторого API: интернет-магазины, сервисы доставки и т.д. Их вполне можно заменить на PWA (Progressive Web App): по сути сайты в браузере, адаптированные к мобильным экранам.

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

И вот тут снова на сцену выходят PWA. Для доставки их пользователям не нужны каталоги и значит и удаление из каталогов не так уж страшно. А ещё такие приложения не привязаны к конкретной ОС. И наши российские сервисы к этому приходят, хотя и не совсем по своей воле. Сначала веб-версии банковских приложений были адаптированы для мобильных браузеров. А теперь вот и наш национальный мессенджер стал работать в мобильных браузерах.
👏1
Немного на злобу дня

Тут в чате родного жилого массива стали обсуждать то что 281-ФЗ запрещает рекламировать. Не удержался и высказался по этому поводу:

Самый лучший VPN будут раздавать 20-го сентября на избирательных участках. По паспорту. Называется "Бюллетень". Если в нём ручкой проставить правильные настройки и опустить в урну то возможно все необходимые сервисы со временем заработают.


К сожалению все остальные варианты так или иначе со временем перестанут работать...
👍3😁1
WebDAV-сервер на коленке

Понадобился мне WebDAV-сервер и я опять столкнулся с тем что выбор готовых решений довольно ограничен. В итоге нагуглил dufs (название меня позабавило) и он мне понравился. Для себя увидел только один недостаток: отсутствие маппинга пользователей. Т.е. вот под каким uid/gid запустил - так под ним и будет читать/писать. Но в моих сценариях это не критично.

Запустил в контейнере. Если кому вдруг надо то вот мой docker-compose.yml:

services:
dufs:
image: sigoden/dufs
restart: always
ports:
- 5000:5000
environment:
DUFS_CONFIG: "/cfg/config.yaml"
user: "1999:1999"
volumes:
- "./logs:/logs"
- "./cfg:/cfg"
- "/volume1/Films:/data/Films"



И config.yaml:

serve-path: '/data'
bind: 0.0.0.0
port: 5000
path-prefix: /
hidden:
- 'tmp'
- '*.log'
- '*.lock'
- '.*'
auth:
- 'moose:[CENSORED]@/:rw'
allow-all: false
allow-upload: true
allow-delete: true
allow-search: true
allow-symlink: true
allow-archive: false
allow-hash: false
enable-cors: false
render-index: true
render-try-index: true
render-spa: true
log-format: '$remote_addr "$request" $status $http_user_agent'
log-file: /logs/dufs.log
compress: low


Можно ещё добавить SSL, но в моём случае за это отвечает отдельный фронтенд.
👍2🔥1
htop и zswap

Обнаружил что начиная с версии 3.3 htop поддерживает zswap и отображает сжатые данные отдельным цветом (по умолчанию - серым). Интересно видеть как файл подкачки свободен, хотя до сжатия данных там почти на весь файл.
👍1
Простой мониторинг

Есть у меня потребность мониторить доступность всяких личных железок. Буквально проверять доступность по ICMP. В ряде случаев проверять TCP-порт. Долго использовал Zabbix, но для моих задач он казался слишком громоздким.

В итоге нашёл Uptime Kuma. Проект открытый. Написан преимущественно на JS. Можно скачать пакет для популярных дистрибутивов или docker-compose.yml. Я выбрал последнее.

Сам сервис умеет проверять доступность TCP-порта, отправлять HTTP/HTTPS-запросы и проверять ответы, и многое другое. Оповещения о доступности/недоступности так же может отправлять самыми разными способами. Есть даже поддержка нашего национального мессенджера. Я для себя настроил отправку сообщений в VK Messenger. Хосты можно объединять в группы, назначать им тэги.

Вобщем если требуется что-то простое то стоит попробовать.
👍1🔥1
Exclave Proxy client

Захотелось мне странного: аналог ocproxy на телефон. Морально приготовился писать своё решение, но в недрах F-Droid нашёл Exclave Proxy client. Это ровно то что нужно: умеет подключаться к различным серверам, поддерживая множество протоколов.

При этом умеет работать в режиме "Только SOCKS5-прокси", без перенаправления всего трафика устройства в туннель. Порт можно указать в настройках.

Т.е. можно подключаться к офисному серверу через какой-нибудь wireguard, указывать в настройках браузера локальный SOCKS5-прокси и ходить на внутренние ресурсы браузером, а весь остальной трафик будет ходить напрямую. При этом приложения, которые почему-то просят выключить VPN, не будут этого делать, так как он по сути не включен.
👍1
IPv6 и будущее

Прошла новость что Китай к 2030-му году планирует 38% своего трафика гнать через IPv6. Беглый поиск в интернет дал такие результаты: в целом по миру 40-60% трафика идёт через IPv6. При этом в РФ на IPv6 приходится по разным оценкам от 10 до 15%.

Насколько я знаю в РФ из крупных провайдеров "из коробки" IPv6-адреса предоставляет только МТС и только на мобильном интернете. Протокол teredo в РФ не работает: соединение устанавливается, но трафик не ходит.

Впервые с IPv6-only сервисами я столкнулся ещё лет десять назад, когда наш сервис не мог доставить письмо пользователю из-за того что его сервер работал только по IPv6. С тех пор время от времени сталкиваюсь с подобным и в последнее время всё чаще.

Это я к чему: если смотреть в будущее то возможен такой сценарий: весь мир переходит на IPv6, а отдельная страна остаётся на IPv4 и оказывается в изоляции, формально имея доступ к глобальному интернету, но не имея доступа к IPv6-only ресурсам. И даже всякие блокировки не нужны.

Очень хочется чтобы этот сценарий не случился.
Некоторые нюансы внедрения IPv6

Иногда кажется что IPv6 внедрить легко: получаем адреса, поднимаем у себя на сервере и добавляем AAAA-записи в DNS. Но это только начало.

В процессе внедрения IPv6 вылезает много всякого интересного. Например задача: рейт-лимиты в API с привязкой к IP-адресу. Для IPv4 тут проблем особых нет (ну кроме боли у тех кто сидит через провайдерский NAT). В случае IPv6 как минимум следует учитывать что:

- Teredo: не просто позволяет получить IPv6-адрес, но и на каждый IPv4-адрес предоставляет подсеть /96, которую разумно считать за один адрес.
- 6to4: так же позволяет получить IPv6-адрес, предоставляет сеть /48 на каждый IPv4. И здесь так же разумно будет при расчёте лимитов считать всю подсеть как один адрес.

Хранение в БД:

- В MySQL функция INET_ATON не поддерживает IPv6, вместо неё можно использовать INET6_ATON, которая поддерживает и IPv4 и IPv6, но возвращает уже не INT, а VARBINARY(16).
- В PostrgreSQL к счастью есть тип inet, созданный как раз для хранения сетевых адресов

Ну и отдельный привет тем кто хранит адреса как строки. У этих людей свой путь)
🤓1
Полезная утилита: zswap-cli

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

grep -r . /sys/kernel/debug/zswap


Но как минимум не хватает информации о степени сжатия.

Вобщем поиск в интернет привёл меня к zswap-cli. В репозиториях Debian и AltLinux не нашёл, но сборка из исходников не вызвала каких либо проблем. Утилита позволяет настраивать zswap и смотреть статистику. В том числе о степени сжатия, реальном размере не сжатых данных в пуле и т.д.

Ссылка на github: https://github.com/xvitaly/zswap-cli
👍1
Qt Book Reader 0.1.1

Опубликовал небольшое обновление своего пет-проекта. Это баг-фикс релиз. Из изменений могу отметить:

* Поправлены баги с оглавлением для некоторых FB2 и EPUB-файлов
* Небольшие исправления в диалоге настроек
* Корректное отображение версии приложения при сборке из пакетов
* Исправлено несколько утечек памяти
* Добавлена поддержка Qt 6.10+
* По просьбам пользователей с Ubuntu Forum изображения выравниваются по центру
* Небольшие оптимизации

Ссылки:
* github: https://github.com/moose-kazan/qbr
* PPA для LTS-версий Ubuntu: https://launchpad.net/~bulvinkl/+archive/ubuntu/ppa
👍4
Книги для взрослых

Подарили мне сертификат в один книжный магазин. В числе моих приобретений есть книга по React.JS. Я хоть и неизлечимый бэкендщик, но давно хочу попробовать себя в разработке фронтенда.

Сильно повеселила метка "18+" на книге. Что этим хочет сказать цензор? Что разработка фронтенда полна наркомании? Или что фронтенд - удел содомитов? Или что React.JS это не православно и вообще бездуховно?

Теряюсь в догадках...
😁1
451 градус по Фаренгейту

Обнаружил что если зайти из РФ на сайт каталога свободного ПО для Android F-Droid и попробовать открыть страницу приложения Outline или Tinc Mesh VPN то страница не открывается с ошибкой 451.

При желании можно найти и другие подобные страницы в этом каталоге. Но в мобильном приложении F-Droid такой цензуры нет и всё можно вполне успешно скачать и установить.

В 21-м веке книги не жгут. Пожароопасно и не экологично. Поэтому теперь просто блокируют доступ к ним.
🔥1😁1👀1