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

Связь с автором: @moose_kazan
Download Telegram
Излишние проверки в ПО

Допустим турист из Казани (где часовой пояс MSK) приезжает в Пермь (MSK+2) и желает оплатить там парковку. Один из способов это сделать это специальное приложение. Ставим, выбираем город, вводим номер телефона и пытаемся зарегистрироваться. Получаем ошибку:

Время на устройстве не соответствует часовому поясу региона


Как это влияет на оплату парковки? Я не понимаю. И я хочу новую фичу в Android: чтобы когда приложение запрашивает информацию о часовом поясе вместо этой информации отдавать ему гифку с Богданом Лисевским. Просто потому что мой часовой пояс приложение волновать не должен.
🤯1
IPv6 и Мегафон

Про IPv6 в сетях Мегафон я слышал давно. Но в моём регионе (Татарстан) IPv6 не было. И вот вдруг случайно обнаружил что у меня теперь есть IPv6. Предположу что эта радость теперь доступна в Татарстане. Вряд ли это связано с тем что я сейчас в Пермском Крае.

Как вернусь в РТ - проверю.

А у вас есть доступ к IPv6?
Клавиатура в Екатеринбурге

Памятник клавиатуре в Екатеринбурге. Создан в 2005-м году. И как и практически у любой клавиатуры за двадцать лет надписи стерлись, а между клавиш начала расти трава.
❤1
Заблокирован ли известный мессенджер?

В новостях обсуждают блокировку Telegram. Время от времени кто-то из депутатов предлагает его разблокировать из чего можно сделать вывод что он действительно заблокирован на территории РФ (и реально есть проблемы с доступом к нему). Однако в списке заблокированных ресурсов на сайте РКН не значатся домены и IP-адреса мессенджера.

Вобщем решил поинтересоваться статусом мессенджера и отправил в РКН запрос через госуслуги. Неделю назад получи ответ:

На Ваше обращение об ограничении доступа к мессенджеру «Telegram», поступившее в Управление Роскомнадзора по Республике Татарстан (Татарстан) с Платформы обратной связи Единого портала государственных и муниципальных услуг, сообщаем следующее.

На основании Федерального закона от 27.07.2006 № 149-ФЗ «Об информации, информационных технологиях и о защите информации» и Федерального закона от 07.07.2003 № 126-ФЗ «О связи» меры принимаются в соответствии с решениями уполномоченных государственных органов.

Просмотреть актуальную информацию оснований ограничения доступа возможно по ссылкам: http://eais.rkn.gov.ru/feedback/, https://blocklist.rkn.gov.ru/.


Т.е. по существу не ответили и предлагают смотреть список, в котором Telegram не значится. Что интересно не значится там и IP-адрес, к которому я потерял доступ в июне и блокировку которого РКН подтвердил.

Т.е. получается что реестр блокировок не полный. А полного публичного нет. По-моему всё это создаёт некоторую правовую неопределённость.
💯1
Вернуть 2008-й год

В Свердловской и Курганской областях, а так же в ХМАО и ЯНАО присутствует и вполне успешно работает оператор мобильной связи МОТИВ. Такое же региональное явление как Летай в Татарстане и Вайнах-Телеком в Чечне.

Дизайн сайта и приложения возвращает нас лет на пятнадцать назад и в этом есть что-то тёплое и уютное. А ещё есть опция "Безлимит на соцсети", дающая безлимитный трафик на VK, OK, Мой Мир и Livejournal. Всё как в далёком 2008-м, только старик ICQ немного не дотянул до своего ренессанса.
🔥1
Интеграция Yakuake и Dolphin

Активно использую в качестве эмулятора термина Yakuake, а для управления файлами - Dolphin (да, я фанат KDE). И вот захотелось мне в меню действий Dolphin добавить опцию "Открыть в Yakuake", чтобы открывать новую вкладку и сразу переходить в нужную директорию.

По быстрому набросал скрипт:

#!/bin/bash

GOTO=${1:-$HOME}

# Создаём новую вкладку
qdbus6 org.kde.yakuake /yakuake/sessions addSession

# Переходим в директорию
qdbus6 org.kde.yakuake /yakuake/sessions runCommand "cd \"${GOTO}\" && clear"

# Делаем окно видимым
qdbus6 org.kde.yakuake /yakuake/window toggleWindowState


Его нужно закинуть куда удобно и сделать исполняемым. И дальше в /home/moose/.local/share/kio/servicemenus создать файлик с расширением .desktop:

[Desktop Entry]
Actions=openInYakuake
Type=Service
MimeType=inode/directory;
X-KDE-ServiceTypes=KonqPopupMenu/Plugin,inode/directory

[Desktop Action openInYakuake]
Name=Open in Yakuake
Name[ru]=Открыть в Yakuake
Icon=yakuake
Exec=/path/to/script %u


Сразу замечания: скрипт предполагает что yakuake уже запущен. И по хорошему после создания вкладки надо получать её идентификатор и выполнять команду именно в ней, а не просто в активной вкладке. Но вряд ли кто-то успеет переключить активную вкладку.

Ну и уже закончив нагуглил несколько готовых решений от других разработчиков. Так что я по сути изобрёл велосипед.
👍3
Файловый менеджер Dolphin

Многие из нас "Дети командира Нортона" и я в том числе. На Windows очень люблю Far и Total Commander, в Linux - Krusader/Far2l/Midnight Commander. Но время от времени всё равно сталкиваюсь с родным для KDE Dolphin'ом. И он всегда мне не нравился своим перегруженным интерфейсом: при всей его функциональности обилие кнопок и панелей отвлекало и запутывало.

Вобщем весной я-таки взял и скрыл вообще все панели и кнопки, оставив только меню. И начал пользоваться и анализировать свои действия. Если замечал что какое-то действие выполняется часто то вытаскивал соответствующую кнопку на видное место или добавлял/настраивал соответствующую панель.

И в итоге пришёл к тому что на скриншоте. И так же на скриншоте можно видеть очень крутую фичу: фильтрация по маске. Не выделение, а именно фильтрация. После фильтрации дальше уже можно выделять нужное.

А какой файловый менеджер используете вы? И настраивали ли вы его под себя?
👍2
Суперпозиция и парковки

В Перми для оплаты парковки используется приложение RuParking и я нашёл в нём любопытную фичу: автомобиль может одновременно находиться сразу в нескольких местах. На скрине видно что мой Жорик находится сразу в трёх местах: на одном парковочном месте у вокзала и сразу на двух - у ЦУМа.

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

Возможность продлить сессию кстати тоже есть. Т.е. как будто возможность иметь больше одной сессии задумана специально. Но не понятно зачем.
Wireguard и подключение по доменному имени

Wireguard резолвит доменное имя пира только один раз - при подключении. Если потом у пира сменится IP-адрес то подключение по сути "зависнет".

Чтобы этого избежать набросал небольшой скрипт. Он считывает конфигурацию соединения, резолвит доменное имя, и если IP сменился - перезапускает соединение. Если вдруг кому надо:

#!/bin/bash

if [ -z "$1" ]; then
echo "Usage: $0 cfgname"
exit 1
fi

CFG=$1

if [ ! -f "/etc/wireguard/$CFG.conf" ]; then
echo "Configuration for $CFG not found!"
exit 1
fi

ENDPOINT1_HOST=$(grep Endpoint /etc/wireguard/$CFG.conf | cut -d '=' -f2 | cut -d ':' -f1)
ENDPOINT1=$(host $ENDPOINT1_HOST | cut -d ' ' -f4 | sed 's/ //g')
ENDPOINT2=$(wg showconf $CFG | grep Endpoint | cut -d '=' -f2 | cut -d ':' -f1 | sed 's/ //g')

if [ -z "$ENDPOINT1" ] || [ -z "$ENDPOINT2" ]; then
echo "Something wrong"
exit 1
fi

if [ "$ENDPOINT1" != "$ENDPOINT2" ]; then
echo "Reconnecting..."
wg-quick down $CFG
wg-quick up $CFG
fi


Скрипту надо передавать имя конфигурации (так же как команде wg-quick). Вызов скрипта надо добавить в crontab. Интервал запуска - по вкусу.
👍1
И ещё про парковки

Уж извините что я опять про парковки, но я продолжаю ходить по граблям и получать новые ощущения. На этот раз я споткнулся о приложение ГорПарковки, используемое в частности в Казани и Екатеринбурге.

Начиналось всё хорошо: приехав в Екатеринбург я сначала обрадовался что смогу использовать те деньги, что держу на балансе для оплаты парковок в Казани. Но не тут-то было: сначала приложение убеждало меня что на Челюскинцев парковка бесплатная. Потом до меня дошло что надо в приложении сменить город с Казани на Екатеринбург. Далее выясниллось что при смене города в приложении надо заново регистрироваться и баланс в каждом городе свой, а не один общий.

Понимаю почему так, но всё равно считаю это неудобным. Гораздо удобнее было бы иметь общий баланс, а город определять по GPS. Хотя зоопарк приложений уже намекает что просто не будет.
Про GigaCode

Недавно у моих знакомых в админке сайта (написанного на PHP) вылезла XSS-уязвимость. Меня попросили помочь. Вобщем-то проблема простая и известно как лечить. Решил что мне лень это делать руками, потому взял VSCode с плагином GigaCode и ввёл следующий промпт:

В директории admin/pages надо все выводимые переменные обернуть в htmlspecialchars


Результат меня удовлетворил, но вся работа заняла 83 минуты, что для полусотни файлов - многовато. Списал на то что использую бесплатную версию и отправил разработчикам запрос:

Использую GigaIDE плагин для VSCode. Бесплатную версию. Качество работы в целом устраивает, но скорость не совсем) Относительно простой промпт обрабатывается сорок минут. Вопрос: если перехожу на платный тариф - это как-то повлияет на скорость обработки запросов?


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

На текущий момент платный тариф (GigaCode Business) - это облачный (SaaS) корпоративный тариф предоставляемые только для юридических лиц


Для меня это выглядит как "продолжай использовать Cursors/Claude/Gemini и не парься".

Немного разочарован.
🤔1
Проблемы с VoWiFi

VoWiFi это такая технология, позволяющая смартфону вместо мобильной сети использовать для звонков сеть WiFi. Разумеется при наличии поддержки как со стороны устройства, так и со стороны оператора.

Если кратко, то смартфон устанавливает IPSec-соединение с хостом "epdg.epc.mncXXX.mccYYY.pub.3gppnetwork.org". Например для билайн это будет "epdg.epc.mnc099.mcc250.pub.3gppnetwork.org". И дальше внутри IPSec-тоннеля уже ходит весь необходимый трафик.

В последнее время постоянно сталкиваюсь с тем что звонки через VoWiFi по качеству сильно хуже чем через VoLTE. Причём не только дома, а вообще в любых WiFi-сетях: на работе, в гостиницах, в общепите.

Попробовал у себя на роутере во время звонка посмотреть трафик с помощью tcpdump. Явного криминала не увидел. Пока даже не знаю куда дальше копать.
Web-прокси в Telegram

В Telegram появилась начальная поддержка web-прокси. Судя по коду работает довольно просто: MTProxy-трафик инкапсулируется в https.

Возможность пока доступна только в настольном приложении, как минимум с версии 7.1.1. Код web-прокси сервера открыт и опубликован на github.

Для себя поднял и посмотрел. Поднимается три компонента: Caddy, который слушает входящие соединения, tproxy-server, на который пересылается трафик с Caddy, и MTProxy-сервер, на который tproxy-server пересылает подходящий трафик.

Выглядит громоздко, но работает. Ждём поддержки на остальных платформах.
CT-логи от минцифры

Обнаружил что оказывается УЦ от минцифры ведёт публичные CT-логи (Certificate Transparency Log). По какой-то злой иронии сам сервис имеет сертификат, выданный каким-то "TCI ECDSA B1 16-280" и который даже Яндекс Браузер не считает доверенным.

Но в любом случае штука интересная. Если кому надо то вот ссылка: https://ct.tlscc.ru
🤔1
git-индекс в корне веб-сервера

Сколько раз говорили людям что оставлять git-индекс (папка .git) в корневой директории хоста на веб-сервере плохая идея. Но новости об утечках, случившихся благодаря доступу к git-индексу, продолжают появляться.

Всё понимаю. По быстрому задеплоить что-то через "git clone" / "git pull" хочется. Вобщем если подобного совсем не удаётся избежать то можно вынести git-индекс за пределы директории DocumentRoot. Примерно так:

cd /path/to/document_root
mv .git ../git-index
echo "gitdir: ../git-index" > .git


Теперь злоумышленник при попытке доступа к git-индексу узнает что он есть где-то рядом, но доступ к нему уже не получит. Ну по крайней мере не через веб.
Cadaver GUI

Около года назад искал webdav-клиент с графическим интерфейсом. В какой-то момент наткнулся на Cadaver-GUI. Написано на Lazarus и выглядит как что-то сделанное на коленке. Мою задачу оно решило и я подумал что если немного причесать код то приложение вполне может быть довольно годным.

Долгое время у меня не доходили руки и вот на днях я заслал автору первый pull-реквест. Теперь оно хотя бы не портит ~/.netrc. Код вроде бы не большой, но он оказался чуть хуже чем я думал. Так что пока не знаю что буду исправлять дальше и буду ли вообще. Посмотрим.

Ну и напоследок небольшой лайфхак (собственно его я и реализовал в своём PR): Cadaver всегда использует креды из ~/.netrc и возможности указать другой файл нет. Но если очень хочется то можно переопределить переменную окружения HOME примерно так:

env HOME=/home/user/.config/cadaver cadaver http://webdab.host


И в этом случае cadaver будет искать креды в файле /home/user/.config/cadaver/.netrc.
Планшет с клавиатурой

Имею на хозяйстве планшtт Samsung Tab A9 LTE в качестве "прикроватного" устройства: книги читать, фильмы перед сном смотреть. Так же на хозяйстве есть клавиатура A4Tech FBK26C, используемая для временного подключения ко всякому разному. В какой-то момент я сопряг второе с первым и неожиданно получилось удобно.

Экран конечно маленький, но для "по быстрому что-то сделать" подходит. Раскладка переключается и по Alt+Shift и по Ctrl+Space. Termux вполне пригоден для запуска ssh-клиента. В нём же можно использовать git и редакторы вроде tilde и micro. Кроме того можно установить GoCode IDE или что-то подобное если не удобно редактировать код в терминале.

Для планшетов с диагональю 11"+ у Samsung есть оригинальный чехлы с клавиатурой и я всерьёз подумываю когда придёт время менять планшет взять что-то подобное. Ну или вернуться в лагерь фанатов Honor, где тоже есть интересные варианты.
Свой DOH-сервер

Тут прошла информация что в нашей стране стали подменять ответы крупных DNS-сервисов (Google, Cloudflare). У некоторых пользователей есть проблемы с доступом к DOH (DNS over https) сервисам этих же провайдеров.

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

Для себя поднял свой DOH-сервер. Оказывается уже довольно давно BIND9 поддерживает всё необходимое. Достаточно добавить в начало файла /etc/bind/named.conf.options строки:

tls local-tls {
key-file "/etc/acme.sh/[CENSORED]_ecc/[CENSORED].key";
cert-file "/etc/acme.sh/[CENSORED]_ecc/fullchain.cer";
};


И в секцию "options" в том же файле:

  listen-on-v6 port 5380 tls local-tls http default { any; };
listen-on port 5380 tls local-tls http default { any; };
http-port 5380;


Ну и вопрос к тем кто добавил сертификат минцифры в основной браузер: вот эта ситуация как-то повлияет на ваше отношение к государственным сертификатам?
Ethernet-розетка

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

Решил подключить то что ясно, а дальше используя LAN-тестер разбираться с остальным. Но план быстро пошёл не туда. Даже те четыре провода оказались подключены не правильно.

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

P.S. Инструкции в комплекте с розеткой не было. Так бы я конечно ей воспользовался.
🤔1