Образование здорового человека
В Казанском университете на базе факультета журналистики работает студенческий телеканал "Универ ТВ". Не единственный, но один из немногих в России. У меня большое уважение вызывает ещё один факт: частные компании обеспечивают трансляцию этого канала сильно за пределами университета. Например Таттелеком транслирует его в составе основного пакета КТВ. Причём сразу в SD и HD.
А Радиотелеком добавил "Универ ТВ" в свой пакет эфирных каналов в DVB-T, транслируемый в крупных городах Татарстана. По-моему тут два уникальных для РФ факта: частный эфирный мультиплекс и студенческий канал в нём. Подозреваю что второе отчасти связано с тем что учредитель Радиотелекома сам начинал с факультета журналистики.
Т.е. у студенческого канала есть зрители сильно за пределами университета. Студенты не просто делают программы, они их делают для реального зрителя. По-моему всё это очень круто.
Считаю что таким и должно быть образование.
В Казанском университете на базе факультета журналистики работает студенческий телеканал "Универ ТВ". Не единственный, но один из немногих в России. У меня большое уважение вызывает ещё один факт: частные компании обеспечивают трансляцию этого канала сильно за пределами университета. Например Таттелеком транслирует его в составе основного пакета КТВ. Причём сразу в SD и HD.
А Радиотелеком добавил "Универ ТВ" в свой пакет эфирных каналов в DVB-T, транслируемый в крупных городах Татарстана. По-моему тут два уникальных для РФ факта: частный эфирный мультиплекс и студенческий канал в нём. Подозреваю что второе отчасти связано с тем что учредитель Радиотелекома сам начинал с факультета журналистики.
Т.е. у студенческого канала есть зрители сильно за пределами университета. Студенты не просто делают программы, они их делают для реального зрителя. По-моему всё это очень круто.
Считаю что таким и должно быть образование.
👍2
GNOME Commander 2
Некоторое время назад воскрес gnome-commander. Его переписали на rust, перенесли на GTK4, добавили плагинов. И неожиданно стало хорошо. Мне очень понравилось.
Обычно использую Krusader, но он выглядит как-то уж очень громоздко. Хотя конечно поддержка KIO и KPart это приятно. Но в GNOME Commander есть поддержка сетевых соединений в виде отдельного диалога с закладками. Мне этого достаточно. Ну и встроенный просмотрщик вполне функционален и без KPart.
Готовый пакет нашёл только в Сизифе (ребята из Базальт - молодцы), так что в Debian пришлось собирать из исходников. Но никаких проблем со сборкой не возникло и всё работает хорошо.
Вобщем рекомендую.
Некоторое время назад воскрес 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. Эти скрипты имеют довольно простой интерфейс:
Если какой-то метод не поддерживается то скрипт возвращает код возврата, отличный от нуля.
Хорошая новость в том что скрипты можно писать на любом языке. И сейчас есть скрипты на shell, python, perl, awk. Отсюда такой список зависимостей у mc.
Плохая: файлы в/из архива копируются по одному. Для solid-архивов (например rar, 7zip) на большом количестве файлов это приводит к заметному замедлению операций.
Ещё одна плохая новость: если архиватор запрашивает пароль или выдаёт ещё какой-то запрос - с большой долей вероятности получается дедлок.
Я немного знаю как устроена работа с архивами в 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 занимает около восьми суток и требует чтобы в момент переноса баланс абонента был положительным получаем интересную историю: возможность отказать в переносе по техническим причинам (ноль или минус на балансе).
Восхищён находчивостью того кто это придумал.
Есть у российского МТС такая довольно удобная штука: "Группа Семья". Идея в том что связь оплачивает один человек ("глава семьи"), а остальные участники ("члены семьи") пользуются услугами из пакета основного участника и сами ничего не оплачивают.
Случайно выяснил что если участник группы подаст заявление на перенос номера к другому оператору то он автоматически исключается из группы и переводится на тариф с помегабайтной(!) оплатой трафика.
Если вспомнить что процедура MNP занимает около восьми суток и требует чтобы в момент переноса баланс абонента был положительным получаем интересную историю: возможность отказать в переносе по техническим причинам (ноль или минус на балансе).
Восхищён находчивостью того кто это придумал.
😁2
PWA это хорошо
Даже будучи тимлидом команды мобильных разработчиков я говорил что во многих случаях мобильные приложения - зло. Как минимум в тех случаях когда они являются по сути фронтендами для некоторого API: интернет-магазины, сервисы доставки и т.д. Их вполне можно заменить на PWA (Progressive Web App): по сути сайты в браузере, адаптированные к мобильным экранам.
При этом я считаю что удалять какие-либо приложения (ну кроме зловредных) из каких либо каталогов по политическим причинам - как минимум не правильно. И вот то что сейчас происходит - очень плохо. Даже не по тому что удалили какие-то приложения, а потому что создали прецедент и фактически признали приемлемость такой цензуры.
И вот тут снова на сцену выходят PWA. Для доставки их пользователям не нужны каталоги и значит и удаление из каталогов не так уж страшно. А ещё такие приложения не привязаны к конкретной ОС. И наши российские сервисы к этому приходят, хотя и не совсем по своей воле. Сначала веб-версии банковских приложений были адаптированы для мобильных браузеров. А теперь вот и наш национальный мессенджер стал работать в мобильных браузерах.
Даже будучи тимлидом команды мобильных разработчиков я говорил что во многих случаях мобильные приложения - зло. Как минимум в тех случаях когда они являются по сути фронтендами для некоторого API: интернет-магазины, сервисы доставки и т.д. Их вполне можно заменить на PWA (Progressive Web App): по сути сайты в браузере, адаптированные к мобильным экранам.
При этом я считаю что удалять какие-либо приложения (ну кроме зловредных) из каких либо каталогов по политическим причинам - как минимум не правильно. И вот то что сейчас происходит - очень плохо. Даже не по тому что удалили какие-то приложения, а потому что создали прецедент и фактически признали приемлемость такой цензуры.
И вот тут снова на сцену выходят PWA. Для доставки их пользователям не нужны каталоги и значит и удаление из каталогов не так уж страшно. А ещё такие приложения не привязаны к конкретной ОС. И наши российские сервисы к этому приходят, хотя и не совсем по своей воле. Сначала веб-версии банковских приложений были адаптированы для мобильных браузеров. А теперь вот и наш национальный мессенджер стал работать в мобильных браузерах.
👏1
Немного на злобу дня
Тут в чате родного жилого массива стали обсуждать то что 281-ФЗ запрещает рекламировать. Не удержался и высказался по этому поводу:
К сожалению все остальные варианты так или иначе со временем перестанут работать...
Тут в чате родного жилого массива стали обсуждать то что 281-ФЗ запрещает рекламировать. Не удержался и высказался по этому поводу:
Самый лучший VPN будут раздавать 20-го сентября на избирательных участках. По паспорту. Называется "Бюллетень". Если в нём ручкой проставить правильные настройки и опустить в урну то возможно все необходимые сервисы со временем заработают.
К сожалению все остальные варианты так или иначе со временем перестанут работать...
👍3😁1
WebDAV-сервер на коленке
Понадобился мне WebDAV-сервер и я опять столкнулся с тем что выбор готовых решений довольно ограничен. В итоге нагуглил dufs (название меня позабавило) и он мне понравился. Для себя увидел только один недостаток: отсутствие маппинга пользователей. Т.е. вот под каким uid/gid запустил - так под ним и будет читать/писать. Но в моих сценариях это не критично.
Запустил в контейнере. Если кому вдруг надо то вот мой docker-compose.yml:
И config.yaml:
Можно ещё добавить SSL, но в моём случае за это отвечает отдельный фронтенд.
Понадобился мне 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
Простой мониторинг
Есть у меня потребность мониторить доступность всяких личных железок. Буквально проверять доступность по ICMP. В ряде случаев проверять TCP-порт. Долго использовал Zabbix, но для моих задач он казался слишком громоздким.
В итоге нашёл Uptime Kuma. Проект открытый. Написан преимущественно на JS. Можно скачать пакет для популярных дистрибутивов или docker-compose.yml. Я выбрал последнее.
Сам сервис умеет проверять доступность TCP-порта, отправлять HTTP/HTTPS-запросы и проверять ответы, и многое другое. Оповещения о доступности/недоступности так же может отправлять самыми разными способами. Есть даже поддержка нашего национального мессенджера. Я для себя настроил отправку сообщений в VK Messenger. Хосты можно объединять в группы, назначать им тэги.
Вобщем если требуется что-то простое то стоит попробовать.
Есть у меня потребность мониторить доступность всяких личных железок. Буквально проверять доступность по 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, не будут этого делать, так как он по сути не включен.
Захотелось мне странного: аналог 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 ресурсам. И даже всякие блокировки не нужны.
Очень хочется чтобы этот сценарий не случился.
Прошла новость что Китай к 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, созданный как раз для хранения сетевых адресов
Ну и отдельный привет тем кто хранит адреса как строки. У этих людей свой путь)
Иногда кажется что 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 какую-то информацию можно получить командой:
Но как минимум не хватает информации о степени сжатия.
Вобщем поиск в интернет привёл меня к zswap-cli. В репозиториях Debian и AltLinux не нашёл, но сборка из исходников не вызвала каких либо проблем. Утилита позволяет настраивать zswap и смотреть статистику. В том числе о степени сжатия, реальном размере не сжатых данных в пуле и т.д.
Ссылка на github: https://github.com/xvitaly/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
Опубликовал небольшое обновление своего пет-проекта. Это баг-фикс релиз. Из изменений могу отметить:
* Поправлены баги с оглавлением для некоторых 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 это не православно и вообще бездуховно?
Теряюсь в догадках...
Подарили мне сертификат в один книжный магазин. В числе моих приобретений есть книга по React.JS. Я хоть и неизлечимый бэкендщик, но давно хочу попробовать себя в разработке фронтенда.
Сильно повеселила метка "18+" на книге. Что этим хочет сказать цензор? Что разработка фронтенда полна наркомании? Или что фронтенд - удел содомитов? Или что React.JS это не православно и вообще бездуховно?
Теряюсь в догадках...
😁1
451 градус по Фаренгейту
Обнаружил что если зайти из РФ на сайт каталога свободного ПО для Android F-Droid и попробовать открыть страницу приложения Outline или Tinc Mesh VPN то страница не открывается с ошибкой 451.
При желании можно найти и другие подобные страницы в этом каталоге. Но в мобильном приложении F-Droid такой цензуры нет и всё можно вполне успешно скачать и установить.
В 21-м веке книги не жгут. Пожароопасно и не экологично. Поэтому теперь просто блокируют доступ к ним.
Обнаружил что если зайти из РФ на сайт каталога свободного ПО для Android F-Droid и попробовать открыть страницу приложения Outline или Tinc Mesh VPN то страница не открывается с ошибкой 451.
При желании можно найти и другие подобные страницы в этом каталоге. Но в мобильном приложении F-Droid такой цензуры нет и всё можно вполне успешно скачать и установить.
В 21-м веке книги не жгут. Пожароопасно и не экологично. Поэтому теперь просто блокируют доступ к ним.
🔥1😁1👀1
Интересная идея
Понадобилось мне тут для себя написать небольшую утилиту. Надо было запустить демона с правами суперпользователя и время от времени посылать ему команды от простого пользователя.
Сначала стал думать над разделением инструмента на два бинарника: собственно демон и клиент, и организовывать взаимодействие между ними через D-Bus. Но моя лень очень настаивала что я не хочу разбираться с D-Bus и вообще делать его зависимостью.
В итоге переспав с задачей я пришёл к очень хорошему на мой взгляд решению: прикрутить веб-интерфейс к демону и слать команды через него. Не надо тянуть D-Bus, не надо писать отдельный UI. Сначала я подумал "чего ж никто раньше так не делал?", а потом вспомнил CUPS, который управляется через веб-интерфейс.
Вобщем на мой взгляд хорошая идея. Запомню и буду использовать.
Понадобилось мне тут для себя написать небольшую утилиту. Надо было запустить демона с правами суперпользователя и время от времени посылать ему команды от простого пользователя.
Сначала стал думать над разделением инструмента на два бинарника: собственно демон и клиент, и организовывать взаимодействие между ними через D-Bus. Но моя лень очень настаивала что я не хочу разбираться с D-Bus и вообще делать его зависимостью.
В итоге переспав с задачей я пришёл к очень хорошему на мой взгляд решению: прикрутить веб-интерфейс к демону и слать команды через него. Не надо тянуть D-Bus, не надо писать отдельный UI. Сначала я подумал "чего ж никто раньше так не делал?", а потом вспомнил CUPS, который управляется через веб-интерфейс.
Вобщем на мой взгляд хорошая идея. Запомню и буду использовать.
👍2🔥1
Ещё один облом с ReactOS
Попробовал использовать ReactOS для сборки кода на Go. Формально Go поддерживает кросс-компиляцию, но только чистый Go. А при использовании CGO возникают проблемы. Решения есть, но самое простое это не использовать кросс-компиляцию и сразу собирать на целевой платформе.
Попробовал вместо Windows использовать ReactOS для сборки и споткнулся на том что go.exe не запускается из-за отсутствия функции WerSetFlags в kernel32.dll. Что не удивительно, так как эта функция появилась в Windows Vista, а ReactOS всё-таки пока нацелена на совместимость с XP/2003.
Но я не отчаиваюсь и надеюсь что смогу найти практическое применение для ReactOS.
Попробовал использовать ReactOS для сборки кода на Go. Формально Go поддерживает кросс-компиляцию, но только чистый Go. А при использовании CGO возникают проблемы. Решения есть, но самое простое это не использовать кросс-компиляцию и сразу собирать на целевой платформе.
Попробовал вместо Windows использовать ReactOS для сборки и споткнулся на том что go.exe не запускается из-за отсутствия функции WerSetFlags в kernel32.dll. Что не удивительно, так как эта функция появилась в Windows Vista, а ReactOS всё-таки пока нацелена на совместимость с XP/2003.
Но я не отчаиваюсь и надеюсь что смогу найти практическое применение для ReactOS.
😭1👀1
Простой почтовый сервер
Уже год использую бесплатную версию Axigen Mail Server. Бесплатная лицензия даётся на год и её можно так же бесплатно продлевать каждый год. Из ограничений бесплатной версии:
* До десяти доменов (но можно добавлять алиасы)
* До десяти аккаунтов (алиасы - без ограничений)
* Ограничена интеграция с внешними сервисами (LDAP, Outlook)
Запустил на NAS в докере. Для фильтрации спама добавил spamassassin, которого в купе со встроенным в Axigen грейлистингом вполне хватает. Есть ещё и мобильное приложение. По итогам почти года использования могу сказать что для персонального использования очень хорошо. Рекомендую.
Уже год использую бесплатную версию Axigen Mail Server. Бесплатная лицензия даётся на год и её можно так же бесплатно продлевать каждый год. Из ограничений бесплатной версии:
* До десяти доменов (но можно добавлять алиасы)
* До десяти аккаунтов (алиасы - без ограничений)
* Ограничена интеграция с внешними сервисами (LDAP, Outlook)
Запустил на NAS в докере. Для фильтрации спама добавил spamassassin, которого в купе со встроенным в Axigen грейлистингом вполне хватает. Есть ещё и мобильное приложение. По итогам почти года использования могу сказать что для персонального использования очень хорошо. Рекомендую.
❤🔥2
Снова отпуск
Приехал в Пермь. Ближайшие две недели буду тут. Ехал из Казани через Елабугу, Можгу, Агрыз, Воткинск, Очёр и Нытву. Интересно было посмотреть как работает связь вдоль дороги. Тест довольно простой: в дороге слушаем музыку через стриминговый сервис.
В Татарстане всё было идеально. В Удмуртии до Воткинска тоже. А после Воткинска связь кончилась. Совсем. И сразу у всех операторов. И дальше время от времени появлялась, но до самого Краснокамска ехал практически в тишине. В Краснокамске связь снова появилась и в Перми работает нормально.
Ну и не могу обойти стороной вопрос топлива: чем дальше от Казани - тем хуже. Но в целом ДТ и 92-й найти проблемы нет. 95-й пришлось поискать. Под Очёром заправился по 92.29р/л. И в целом в Пермском крае цена где-то на этом уровне. Понял что 75р/л в Казани это очень хорошая цена)
Приехал в Пермь. Ближайшие две недели буду тут. Ехал из Казани через Елабугу, Можгу, Агрыз, Воткинск, Очёр и Нытву. Интересно было посмотреть как работает связь вдоль дороги. Тест довольно простой: в дороге слушаем музыку через стриминговый сервис.
В Татарстане всё было идеально. В Удмуртии до Воткинска тоже. А после Воткинска связь кончилась. Совсем. И сразу у всех операторов. И дальше время от времени появлялась, но до самого Краснокамска ехал практически в тишине. В Краснокамске связь снова появилась и в Перми работает нормально.
Ну и не могу обойти стороной вопрос топлива: чем дальше от Казани - тем хуже. Но в целом ДТ и 92-й найти проблемы нет. 95-й пришлось поискать. Под Очёром заправился по 92.29р/л. И в целом в Пермском крае цена где-то на этом уровне. Понял что 75р/л в Казани это очень хорошая цена)
💯1
Linux и WiFi Captive Portal
Есть RFC 8910 описывающий механизм Captive Portal. Идея довольно простая: при получении адреса по DHCP в ответе прилетает дополнительный параметр с типом 114 (DHCP Option 114), содержащий URL страницы авторизации. Пользователь должен открыть этот URL в браузере и авторизоваться (способ авторизации в спецификации не описан, так что всё ограничивается полётом фантазии владельца точки доступа и локальным законодательством).
И вот в Linux до сих пор это дело не работает как надо. Казалось бы чего проще: в том же Network Manager при виде 114-й опции пихни этот URL куда-нибудь в D-Bus, а на другом конце поставь обработчик, который при получении URL запустит x-www-browser, передав ему этот URL. Но похоже что не просто.
На Arch Linux Wiki есть целый раздел с костылями для Captive Portal. Я уже подумываю для себя написать свой ещё один. ИМХО вот такие мелочи как раз и стоят на пути Linux к десктопам.
Есть RFC 8910 описывающий механизм Captive Portal. Идея довольно простая: при получении адреса по DHCP в ответе прилетает дополнительный параметр с типом 114 (DHCP Option 114), содержащий URL страницы авторизации. Пользователь должен открыть этот URL в браузере и авторизоваться (способ авторизации в спецификации не описан, так что всё ограничивается полётом фантазии владельца точки доступа и локальным законодательством).
И вот в Linux до сих пор это дело не работает как надо. Казалось бы чего проще: в том же Network Manager при виде 114-й опции пихни этот URL куда-нибудь в D-Bus, а на другом конце поставь обработчик, который при получении URL запустит x-www-browser, передав ему этот URL. Но похоже что не просто.
На Arch Linux Wiki есть целый раздел с костылями для Captive Portal. Я уже подумываю для себя написать свой ещё один. ИМХО вот такие мелочи как раз и стоят на пути Linux к десктопам.
😭1