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

Связь с автором: @moose_kazan
Download Telegram
Про Макс и Сферум

Прямо в национальном мессенджере в разделе "Сферум", куда очень активно убеждают зарегистрироваться в школах, начали продвигать услуги связи специально для регистрации в этом самом Сферуме.

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

Вчера пока я был в дороге прилетел баг-репорт по одному веб-приложению, которое сейчас в активной разработке и как раз проходит первые тесты на "живых людях".

Для начала надо было понять: проблема на бэкенде (т.е. моя) или на фронтенде? Ноутбука под рукой не было и пришлось выкручиваться. Вобщем теперь я знаю что в Firefox на Android можно поставить расширение MobiDevTools и получить полноценный веб-инспектор, прямо как в десктопных браузерах.

Если кому надо - пользуйтесь)

Ссылка на расширение: https://addons.mozilla.org/en-US/firefox/addon/mobidevtools/

P.S. Бага в итоге была на фронтенде, а я - молодец)
👍2
Про webdav-клиенты для командной строки

Время от времени пишу скрипты для резервного копирования. Часто копировать приходится на webdav-ресурс. В разное время пробовал в скриптах использовать cadaver, davfs2. Первый разочаровал отсутствием автоматического повтора неудачной операции. Второй... Тут долго писать.

Вобщем в итоге я пришёл к rclone. Подкупает возможность синхронизации локальной директории с удалённой. Т.е. можно за один проход залить новый бэкап и удалить старый. Поддерживает повтор операции в случае каких либо проблем. Вобщем сильно упрощает жизнь.

При использовании есть нюансы, но в целом штука крутая. Если кому-то интересно то могу со временем рассказать подробнее.
Docker и отечественные дистрибутивы

В порыве патриотизма решил пересобрать некоторые свои Docker-образы с использованием отечественных дистрибутивов. Смысла в этом мало, ибо итак всё работает. Но вот стало интересно попробовать.

Оказалось что свои образы собирают многие, но публиковать их в Docker Hub руки дошли только у ребят из Базальт (ALT Linux). Остальные предпочитают свои реестры, которые надо подключать. Не стал заморачиваться и выбрал Альт.

Дальше в целом без проблем, но размеры образов будоржат воображение: там где образ на базе alpine занимает 50 мегабайт, образ на базе Альт - в 10-15 раз больше и сильно сократить его размер похоже нельзя.

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

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

У Астры есть версия CE, которая для широкой публики, но она давно не обновлялась. Год назад, в феврале 2025 я пытался купить лицензию для себя. Была идея подготовиться и сдать экзамен на сертифицированного администратора. Оказалось что это не так уж и просто.

В итоге после запроса в техподдержку получил ответ: для дома - никак. Можно только купить VPS с астрой, или если ты студент - получить лицензию на 1-3 месяца для обучения.

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

Ссылка на портал: https://dev.astra.ru/
Жизнь без интернета и GPS

В выходные ездил в Тольятти. В прошлый раз был там два года назад. Впечатлений много, но в основном они не для этого канала.

Из того о чём хочется рассказать здесь: уже два года назад в Тольятти были проблемы с GPS, что в целом объяснимо: как минимум три крупных и важных производства и по сути весь город работает на них. Но в этот раз ещё были проблемы с мобильным интернетом. Почти по всему городу доступны только "белые списки". А на иностранной сим-карте интернет просто недоступен.

В итоге если иностранец не озаботится заранее оффлайн-картой в телефоне то он обречён. Бумажную карту Тольятти купить если и можно, то точно не на каждом углу.

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

Отвыкли мы жить без технологий...
Веб-браузер для терминала с поддержкой javascript

Обнаружил любопытный проект: веб-браузер для терминала с поддержкой css и javascript. Называется Chawan. Управляется vim-подобными хоткеями.

После установки доступно две команды: cha и mancha. Первая собственно веб-браузер, а вторая - просмотрщик man-страниц. Последний позволяет переходить по ссылкам между man-страницами что очень удобно. Запускается командой:

mancha bash


Ну а собственно браузер запускается командой:

cha https://proverka.ru


Качать отсюда: https://chawan.net/
👍2
Нашёл недоработку на госуслугах

Недоработка некритичная но на самом виду. В разделе профиля "сим-карты" есть две вкладки: "Личные номера" и "Корпоративные номера". Если сделать активной вкладку "Корпоративные номера" и нажать "Обновить данные" то после обновления информации содержимое вкладок будет перепутано.

Нашёл случайно. Куда репортить - не знаю. Есть целая "Платформа обратной связи". Но туда не пускают без подтверждённой записи госуслуг и обращение привязывается к региону. Возможно это и оно, но интересно что делать если не можешь авторизоваться или бага не имеет привязки к региону)
Живой Журнал

Кто-нибудь помнит эпоху ЖЖ? Мне тут ЖЖ прислал поздравление: оказывается моему аккаунту там аж двадцать лет. Т.е. я там зарегистрировался реально полжизни назад. А ведь по ощущениям не так давно это и было.

А какие сервисы из той эпохи помните вы? По каким скучаете?
Продолжаем разработку бота и миниприложения для национального мессенджера

На платформе "Макс для бизнеса" в настройках бота есть галочка: "Добавление в групповые чаты". При виде этой галочки сразу появляются различные идеи: от ведения логов чата, до всяких викторин. Что же на практике?

А на практике вот что: если галочку включить то бота можно добавить в групповой чат. Сразу после добавления боту на вебхук прилетает уведомление с типом BotAddedToChatUpdate и всё. Сообщения из чата боту на вебхук не приходят! Даже если явно упоминать бота в чате.

А ещё отправка сообщений. если вы отправляете сообщение конкретному пользователю то пишете так:

message := maxbot.NewMessage().
SetFormat(schemes.Markdown).
SetUser(userId).
SetText(someText)
err := r.apiClient.Messages.Send(ctx, message)


Но если вам надо отправить сообщение в групповой чат то писать надо уже так:
message := maxbot.NewMessage().
SetFormat(schemes.Markdown).
SetChat(charId).
SetText(someText)
err := r.apiClient.Messages.Send(ctx, message)


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


P.S. А при удалении бота из группового чата ему прилетает сообщение с типом BotRemovedFromChatUpdate. И на этом всё.
Особенности одной техподдержки

Приложение одной российской соцсети не работает в соседней стране. Оставляем на эту тему отзыв в Google Play и получаем от разработчика ответ с предложением описать проблему в сообщениях в этой самой соцсети.

Не знаю что тут ещё можно добавить....
А мы продолжаем изучать отечественные платформы

Чуть ранее я писал что настроил трансляцию из TG-канала в "Дзен" используя дзеновский "Синхробот".

Вчера этот "Синхробот" порадовал меня сообщением:

Ваш пост https://t.me/ylsoftware/181 содержит рекламную метку и не будет опубликован.


Общение с техподдержкой Дзена привело к следующему:

Чтобы переносить подобные материалы, вы можете удалить фрагмент «userId» из поста или отредактировать (например, «user Id»). Затем в Дзене откройте перенесенный пост и поменяйте текст на корректный. В Telegram тоже можно вернуть изначальный текст.


Как говорил Карлсон: "Спокойствие, только спокойствие..."

UPD: Этот пост тоже не прошёл проверку синхробота. По той же причине.
Firefox здорового человека

Есть такой браузер - Midori. Несколько лет назад он был перезапущен и практически полностью переписан. Результат мне очень нравится: Интерфейс напоминает Google Chrome, но со множеством своих довольно полезных и удобных фишек.

При этом под капотом движок Gecko (как в Firefox), работает Firefox Sync, есть поддержка Web Extensions (предлагается ставить расширения из каталога Mozilla Addons) и тем оформления.

Есть сборки под Windows и различные дистрибутивы Linux. Имеется версия для Android и обещают версию для iOS. Исходные тексты так же доступны. Вобщем как минимум стоит попробовать.

Брать тут: https://astian.org/midori-browser/
👍2
Почему я практически перестал писать про администрирование

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

В итоге в 2018-м году очень удачно сложились обстоятельства и я передал руководство devops молодому, но очень достойному парню, на руководство мобильной разработкой нашли хорошего человека, и я полностью сосредоточился на деятельности R&D-отдела.

Сейчас я пишу код на Go/PHP/Perl для задач R&D. С devops дружу, но в их работу стараюсь не лезть. Теперь уже администрирование из профессии превратилось в хобби.

Хочу писать про программирование, но солидная часть работы покрыта NDA. А то, про что можно писать, в большинстве своём не интересно.
На работе стали использовать термин "навайбкодил" вместо "наговнякал". Параллельно придумали термин "наGOвнякал". Это если навайбкодил на Go)
😁3
Про не совсем очевидное

Была у нас задача: где-то в Европе стоит сервер, который обрабатывает запросы. Вплоть до 500 rps. И результат обработки каждого запроса (около 1000 байт) надо писать в БД, но БД в США. Связь между континентами хоть и редко, но всё же теряется.

Первым делом придумали писать результаты в RabbitMQ, и потом их вычитывать. Если потерялась связь то данные не потеряются, а просто подгрузятся с задержкой.

Канал между локациями гигабитный и пинг около 40мс. Что могло пойти не так? Данные в очереди копились быстрее чем мы их вычитывали. Да, 1000 байт на скорости в 1 гигабит/с действительно передаётся "со свистом", но тут начинает влиять задержка. При 40мс по вполне очевидным причинам не получится вычитывать данные со скоростью больше 25rps.

В качестве решения написали сервис, который крутился на том же сервере в Европе, вычитывал данные из очереди, группировал их в пачки до 1000 штук и эти пачки складывал в соседнюю очередь. А сервер в США уже вычитывал и обрабатывал эти пачки.

Решение работает уже более десяти лет. А пакетный режим в RabbitMQ так и не появился.
Кросплатформенная разработка

По работе понадобился небольшой инструмент чтобы дёргать кое-какое внутреннее API, пока не завезли нормальную интеграцию со всей остальной системой. Навайбкодил на Go с использованием Fyne.io. Получилось лучше чем ожидал.

Писал вобщем-то под десктоп, но раз у Fyne есть поддержка сборки под мобилки, то почему бы и нет? Собрал под Android. Из особенностей: для сборки используется NDK, и значит результат не на всякой аппаратной платформе будет работать. Но собирается сразу под armeabi-v7a, arm64-v8a, x86 и x86_64. Т.е. основные аппаратные платформы поддерживаются.

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

Если кому-то интересно то могу рассказать подробнее про разработку с Go/Fyne.
👍1
goKeeperViewer

Когда-то давно у меня появился ноутбук с Windows и процессором Qualcomm. До сих пор это довольно интересная штука: длительная работа от батареи, встроенный модем и недостаток нативного софта. Последний факт побудил меня набросать просмотрищик файлов keepass (хранилище паролей). Писал на Go + Fyne.io.

Инструмент свою функцию выполняет: файлы открывает, в том числе с поддержкой ключевых файлов. Код немного жутковат, но это был мой первый опыт с Fyne. Т.е. проект одновременно выполнял ещё и учебную функцию. Из минусов: нет поддержки аттачей. Хотя возможно и это когда-нибудь реализую если будет потребность.

Если кому-то вдруг надо то исходники тут: https://github.com/moose-kazan/goKeeperViewer
❤1
OpenGL: стандарт, но есть нюансы

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

Microsoft продвигает DirectX. И всем кому нужна графика на Windows предлагается использовать именно этот API. Однако поставщики драйверов видеокарт поставляют вместе с драйверами свою реализацию OpenGL. Как минимум это касается Intel, AMD и NVIDIA. Ну т.е. фактически на большинстве современных компьютеров с Windows поддержка OpenGL всё же есть, но благодаря вендорам видеокарт.

Интереснее стало когда начали появляться ноутбуки с arm64-процессорами: оказалось что Qualcomm для своих графических ускорителей предоставляет драйвера без поддержки OpenGL. Подозреваю что проблема может так же присутствовать на устройствах с процессорами Zhaoxin, но проверить у меня нет возможности.

Учитывая что многие открытые проект используют именно API OpenGL вырисовывается проблема. В качестве решения Microsoft предоставляет "OpenCL and OpenGL Compatibility pack", который можно найти тут: https://apps.microsoft.com/detail/9nqpsl29bfff