Забавно что в PHP 8 (а может и 7) можно нормально генерировать json. И способ даже чем-то похож на Go)
Примерно так:
Но почему-то таким путём идут далеко не все, предпочитая что-то такое:
Примерно так:
<?php
class MyClass {
public string $strVal = "";
}
$obj = new('MyClass');
$obj->strVal = "789";
print json_encode($obj);
Но почему-то таким путём идут далеко не все, предпочитая что-то такое:
<?php
print json_encode([ "strVal" => "789" ]);
В национальном мессенджере появился бот @id1658140062_bot, которому кидаешь адрес, а он возвращает ссылку на домовой чат.
Имеешь ли ты какое-то отношение к этому дому - никак не проверяется.
Представляю какие возможности для спамеров и прочих мошенников открывает этот бот.
Методом тыка обнаружил одно ограничение: с казанского IP бот выдаёт только ссылки на казанские чаты. Если у меня есть жильё в другом городе то похоже чтобы найти чат надо ехать в тот город и оттуда запускать бота)
Чатов частных домов к счастью (или к сожалению) там нет)
Имеешь ли ты какое-то отношение к этому дому - никак не проверяется.
Представляю какие возможности для спамеров и прочих мошенников открывает этот бот.
Методом тыка обнаружил одно ограничение: с казанского IP бот выдаёт только ссылки на казанские чаты. Если у меня есть жильё в другом городе то похоже чтобы найти чат надо ехать в тот город и оттуда запускать бота)
Чатов частных домов к счастью (или к сожалению) там нет)
Яндекс выпустил приложение Интернетометр для измерения скорости интернета на смартфонах с Android. В отличие от конкурентов приложение Яндекса не позволяет выбрать точку, до которой измеряется скорость. Тестирование всегда происходит до серверов Яндекса, которые входят в "белые списки" и работают даже при ограничениях интернета.
У нас в Татарстане во время ограничений сервисы не из "белого списка" продолжают работать, но скорость ограничивается до ~250kbit/s. В итоге хоть и со скрипом, но пользоваться можно.
Вчера немного проехался по Татарстану, Марий Эл и Чувашии и посмотрел как в реальности работают эти самые белые списки в других регионах. Теперь знаю что, например, приложение Ак-Барс банка не входит в "белые списки". Но зато Яндекс Интернетометр всю дорогу убеждал меня что у меня "Отличный интернет" и "Можно комфортно смотреть видео в 2K/4K".
У нас в Татарстане во время ограничений сервисы не из "белого списка" продолжают работать, но скорость ограничивается до ~250kbit/s. В итоге хоть и со скрипом, но пользоваться можно.
Вчера немного проехался по Татарстану, Марий Эл и Чувашии и посмотрел как в реальности работают эти самые белые списки в других регионах. Теперь знаю что, например, приложение Ак-Барс банка не входит в "белые списки". Но зато Яндекс Интернетометр всю дорогу убеждал меня что у меня "Отличный интернет" и "Можно комфортно смотреть видео в 2K/4K".
Немного новостей: "Qt Book Reader 0.1.0". Подробнее: https://www.ylsoftware.com/news/773
Коды подтверждения в Max: они приходят и как будто это хорошо. Но в настольном приложении при нажатии на кнопку "Просмотреть код" получаем сообщение о возможности получения кода только в мобильном приложении. Ровно такая же история в веб-версии.
Сейчас по работе начинаем работу над мини приложением для Max и подозреваю что и там мне будет о чём рассказать.
Сейчас по работе начинаем работу над мини приложением для Max и подозреваю что и там мне будет о чём рассказать.
👌1
Миниприложение в Max это по сути веб-приложение, которое открывается в webview внутри мессенджера. Это окно отличается от обычного браузера в основном наличием некоторых дополнительных JS-интерфейсов для взаимодействия с окружением.
Приложение у пользователя запускается напрямую с сервера разработчика. Таким образом:
1. Разработчик приложения видит реальный IP пользователя.
2. При ограничениях интернета миниприложения скорее всего работать не будут.
Чтобы всем было веселее нигде в документации эти два пункта не проговариваются и выясняются только методом научного тыка.
Приложение у пользователя запускается напрямую с сервера разработчика. Таким образом:
1. Разработчик приложения видит реальный IP пользователя.
2. При ограничениях интернета миниприложения скорее всего работать не будут.
Чтобы всем было веселее нигде в документации эти два пункта не проговариваются и выясняются только методом научного тыка.
Вот и я увидел как взламывают национальный мессенджер.
От соседа пришло сообщение с просьбой "проголосовать за понижение налогов" и html-файл. Файл даже не пришлось скармливать антивирусу. Оказалось достаточно открыть в редакторе чтобы увидеть что в нём кроме редиректа на непонятную страницу ничего нет.
Эту страницу открыл в чистом браузере в песочнице и посмотрел что там. Там по классике: просят ввести номер от аккаунта чтобы проголосовать. Далее механика ясна.
Аккаунт соседа в мессенджере уже заблокирован. Попробую при встрече выяснить как он его будет разблокировать) Файл на всякий случай отправил в одну из антивирусных лабораторий.
От соседа пришло сообщение с просьбой "проголосовать за понижение налогов" и html-файл. Файл даже не пришлось скармливать антивирусу. Оказалось достаточно открыть в редакторе чтобы увидеть что в нём кроме редиректа на непонятную страницу ничего нет.
Эту страницу открыл в чистом браузере в песочнице и посмотрел что там. Там по классике: просят ввести номер от аккаунта чтобы проголосовать. Далее механика ясна.
Аккаунт соседа в мессенджере уже заблокирован. Попробую при встрече выяснить как он его будет разблокировать) Файл на всякий случай отправил в одну из антивирусных лабораторий.
Что-то неожиданно спокойно я стал спать по ночам последние дни. Сегодня меня посетила мысль и быстрая проверка подтвердила догадку: сервер мониторинга не может отправить мне сообщение потому что стоит в РФ и не достукивается до Telegram.
К счастью критичных инцидентов за последние дни не было, только средние, не влияющие на общую картину. Но я всё равно немного расстроен. Ищу альтернативный канал отправки уведомлений. SMS - тупо дорого.
А кто как решает проблему уведомлений в наше не простое время?
К счастью критичных инцидентов за последние дни не было, только средние, не влияющие на общую картину. Но я всё равно немного расстроен. Ищу альтернативный канал отправки уведомлений. SMS - тупо дорого.
А кто как решает проблему уведомлений в наше не простое время?
Дошли руки почитать закон 281-ФЗ, который вносит поправки в КоАП в частности запрещающие "рекламу VPN". Так вот. "VPN" там не упоминается. А упоминаются "Программно-аппаратные средства доступа к информационным ресурсам, информационно-телекоммуникационным сетям, доступ к которым ограничен". Достаточно витиевато.
Очень хочется послушать комментарии юристов, но как будто бы здесь речь идёт не о запрете виртуальных частных сетей, а о запрете обхода блокировок, что есть немного разные вещи.
Очень хочется послушать комментарии юристов, но как будто бы здесь речь идёт не о запрете виртуальных частных сетей, а о запрете обхода блокировок, что есть немного разные вещи.
Дочь пожаловалась что не смогла оплатить проезд в автобусе банковской картой. Якобы карта в чёрном списке. "С *** ли?" подумал я и стал изучать вопрос.
Оказалось что в Казани оплата проезда работает интересным образом: в момент прикладывания карты выдаётся билет и запоминаются данные карты, а реально оплата происходит потом, когда у терминала появляется связь. И если в этот момент на карте недостаточно денег или ещё какая ошибка списания - она попадает в чёрный список.
Судя по всему попытка списания только одна. Попытаться позже - трудно. Чтобы достать карту из чёрного списка надо на сайте транспортной карты авторизоваться по номеру банковской карты(!) и оплатить задолженность.
Думаю что можно придумать множество других решений, не таких сложных и неудобных.
Оказалось что в Казани оплата проезда работает интересным образом: в момент прикладывания карты выдаётся билет и запоминаются данные карты, а реально оплата происходит потом, когда у терминала появляется связь. И если в этот момент на карте недостаточно денег или ещё какая ошибка списания - она попадает в чёрный список.
Судя по всему попытка списания только одна. Попытаться позже - трудно. Чтобы достать карту из чёрного списка надо на сайте транспортной карты авторизоваться по номеру банковской карты(!) и оплатить задолженность.
Думаю что можно придумать множество других решений, не таких сложных и неудобных.
VPS, на котором размещён сайт проекта арендован у хостера, личный кабинет которого не открывается из РФ. А форма оплаты из личного кабинета отправляет на сайт ЮМани, который открывается только из РФ. И похожая ситуация со многими сервисами. Добавлять маршруты на каждый сервис довольно тяжко и выглядит рукоблудием, хоть и неизбежным.
В какой-то момент меня посетила мысль: что общего между подростком и IT-специалистом в РФ? - Оба активно занимаются рукоблудием. А в чём разница? - Подросток хотя бы получает удовольствие.
Извините...
В какой-то момент меня посетила мысль: что общего между подростком и IT-специалистом в РФ? - Оба активно занимаются рукоблудием. А в чём разница? - Подросток хотя бы получает удовольствие.
Извините...
Продолжаем разработку под национальный мессенджер.
Возникла задача: добавить в сообщение от бота кнопку открытия мини-приложения.
Первое с чем сталкиваемся: функция keyboardRow.AddOpenApp не документирована и не все её параметры очевидны. Более того: параметр app судя по JSON-схеме опционален, но если его не указывать то API возвращает ошибку что сей параметр не может быть пустым. А если указывать что либо (урл приложения, токен бота, рэндомный набор символов) то получаем ошибку вида:
В надежде разобраться идём в issues на github и находим issue #2:
Закрытое с пометкой "not planned".
Тут было много всяких эмоциональных слов, но внутренний цензор убедил меня что пост будет лучше смотреться без них.
Возникла задача: добавить в сообщение от бота кнопку открытия мини-приложения.
Первое с чем сталкиваемся: функция keyboardRow.AddOpenApp не документирована и не все её параметры очевидны. Более того: параметр app судя по JSON-схеме опционален, но если его не указывать то API возвращает ошибку что сей параметр не может быть пустым. А если указывать что либо (урл приложения, токен бота, рэндомный набор символов) то получаем ошибку вида:
not.found (Key: common.finder, args: [link,javax.ejb.FinderException: Link not found with pk = LinkPK{name='what-i-send-as-app-value', space=TAMTAM},].)
В надежде разобраться идём в issues на github и находим issue #2:
Could you add any examples with keyboard (simple/inline)?
Закрытое с пометкой "not planned".
Тут было много всяких эмоциональных слов, но внутренний цензор убедил меня что пост будет лучше смотреться без них.
😁4
Относительно недавно наш рынок покинул бренд роутеров Keenetic. Вместо него остался Netcraze. Обещали бесшовную миграцию, полную поддержку и прочие радости.
И вот появилась возможность проверить. В реальности действительно всё прошло довольно гладко и я даже немного расслабился и тут же получил удар поддых: сервис KeenDNS теперь называется СrazeDNS и формально обслуживание доменов в зонах keentic.* продолжается, однако перенести такое имя на новый роутер нельзя. Можно только зарегистрировать новое в новых зонах.
Т.е. с бесшовной миграцией всё-таки не получилось.
Сижу перенастраиваю свои внутренние сервисы на новый домен. Нашёл себе работу.
И вот появилась возможность проверить. В реальности действительно всё прошло довольно гладко и я даже немного расслабился и тут же получил удар поддых: сервис KeenDNS теперь называется СrazeDNS и формально обслуживание доменов в зонах keentic.* продолжается, однако перенести такое имя на новый роутер нельзя. Можно только зарегистрировать новое в новых зонах.
Т.е. с бесшовной миграцией всё-таки не получилось.
Сижу перенастраиваю свои внутренние сервисы на новый домен. Нашёл себе работу.
Вышел Telegram Desktop 6.7.2. Настольный клиент месссенджера Telegram. В новой версии в основном небольшие изменения, однако есть и интересное: коммит 407bf196417b80c903f6ae65d4c3202be72286d5 модифицирует код генерации приветствия при установке TLS-сессии, добавляя случайные данные. Блокировать мессенджер станет труднее.
UPD: коммит не добавляет случайные данные, а исправляет ошибку, убирая характерную особенность трафика, по которой его и детектировали DPI-системы.
Ждём аналогичного обновления в мобильном приложении.
UPD: коммит не добавляет случайные данные, а исправляет ошибку, убирая характерную особенность трафика, по которой его и детектировали DPI-системы.
Ждём аналогичного обновления в мобильном приложении.
Обнаружил в национальном мессенджере интересное: каналы государственных учереждений в URL имеют суффикс "_gos". Например канал Дома Культуры в моём жилом массиве: id1661059485_gos.
С одной стороны фича прикольная, но с другой - похоже slug у каналов менять нам не скоро дадут. Иначе быстро появятся каналы вроде "vasya_gos". Хотя возможно slug менять разрешат, но имя не должно будет заканчиваться на "_gos".
С одной стороны фича прикольная, но с другой - похоже slug у каналов менять нам не скоро дадут. Иначе быстро появятся каналы вроде "vasya_gos". Хотя возможно slug менять разрешат, но имя не должно будет заканчиваться на "_gos".
Оказывается аккаунты разработчика в Google Play не вечные и могут быть удалены если ими не пользоваться.
Вообще Google Play штука интересная: формально в Android довольно сильная обратная совместимость, но конкретно в Google Play есть довольно жёсткие требования к версии (Target SDK). И они регулярно обновляются. Т.е. тупо чтобы твоё приложение не удалили его надо время от времени пересобирать под новые SDK. А в новых версиях иногда меняют некоторые API и приходится править код.
Так теперь этого недостаточно. Теперь надо ещё и просто так время от времени выпускать обновления, чтобы не удалили аккаунт из-за неактивности.
Так что если кому-то кажется что приложения обновляются чаще чем надо - вам не кажется. Это политика Google.
Вообще Google Play штука интересная: формально в Android довольно сильная обратная совместимость, но конкретно в Google Play есть довольно жёсткие требования к версии (Target SDK). И они регулярно обновляются. Т.е. тупо чтобы твоё приложение не удалили его надо время от времени пересобирать под новые SDK. А в новых версиях иногда меняют некоторые API и приходится править код.
Так теперь этого недостаточно. Теперь надо ещё и просто так время от времени выпускать обновления, чтобы не удалили аккаунт из-за неактивности.
Так что если кому-то кажется что приложения обновляются чаще чем надо - вам не кажется. Это политика Google.