Saturday, March 19, 2022

Киберпреступление

Вступления

24 февраля 2022 года начались известные всему миру события. Вот статья в русскоязычном сегменте Википедии:

https://ru.wikipedia.org/wiki/%D0%92%D1%82%D0%BE%D1%80%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8_%D0%BD%D0%B0_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D1%83_(2022)

Эти события вызвали мировой резонанс. Очень много людей стали употреблять в интернете язык вражды, разжигать межнациональную рознь, а некоторые программисты - создавать вредоносный код.

Этот пост содержит хороший поучительный пример того, как делать не надо.
Спойлер: не нарушайте законодательство вашей страны.



Инцидент

Программист Брендон Миллер сознательно создал вредоносный код. Вот фото из фейсбука Брендона:

И еще фото из инстаграм:

Вот его страница в Facebook:
https://www.facebook.com/RIAEvangelist

В Instagram:
https://www.instagram.com/p/CbOnVNfLrVF/

В Youtube:
https://www.youtube.com/c/BrandonNozakiMiller

В Twitter:
https://twitter.com/electricCowboyR

Чтобы не возникло сомнений. В своем аккаунте Twitter он сам указывает на то, что создал вредоносное по:



Вредоносное ПО

node-ipc — «строительный блок» для многих программных продуктов

Брендон Миллер, автор пакета node-ipc (больше миллиона загрузок в неделю) опубликовал код, который удаляет все файлы с устройства, если этот код был запущен с российского или белорусского IP. Дополнительно:

  • этот код был специально спрятан
  • автор лгал в комментариях
  • автор удалял другие комментарии о проблеме в своем репозитории

Технические детали и ложь:
https://github.com/vuejs/vue-cli/issues/7054



Реакция сообщества разработчиков

«Удалите свою учетную запись на GitHub и, возможно, подумайте о смене профессии.

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

Надеюсь, оно того стоило.

Искренне ваш,
еще один взбешенный разработчик NodeJS.»

Оригинал тут:
https://github.com/RIAEvangelist/node-ipc/issues/395



Последствия

«Мы американская неправительственная организация, базирующаяся в Вашингтоне, округ Колумбия, которая отслеживает нарушения прав человека авторитарными режимами в Беларуси, России и других постсоветских государствах. С момента основания в 2014 году мы связались с более чем 2500 осведомителей, которые предоставили нам подробные отчеты о различных видах нарушений, происходящих там.

Из-за интернет-цензуры один из веб-сервисов, используемых для безопасного контакта с нами, был размещен на серверах, расположенных в Беларуси. Обычно мы копируем полученный контент на внешний сервер 20-го числа каждого месяца, поскольку это разумно, учитывая объем, который мы обычно получаем, но с начала вторжения 24 февраля трафик на наш веб-сервис увеличился более чем в пятьдесят раз. Наши сотрудники работали круглосуточно, чтобы справиться с потоком, и во время одной из их задач пакет, содержащий модуль node-ipc, был обновлен на рабочем сервере, что привело к выполнению вашего кода и удалению более 30 000 сообщений и файлов с подробным описанием военных преступлений, совершенных в Украине российской армией и правительственными чиновниками. Из-за того, что файлы хранились на сервере, мы не можем восстановить какие-либо данные, и, скорее всего, они утеряны навсегда. Для некоторых отправителей это могло быть последним контактом с внешним миром, так как многие из них были фронтовиками, которые могли погибнуть в бою во время наступления.

Лично я и мои коллеги абсолютно опустошены. Все, что я могу сказать, это то, что ваша маленькая шалость нанесла нам больше вреда, чем Путин или Лукашенко. С профессиональной точки зрения наш адвокат предложил возбудить уголовное дело на федеральном уровне, и, скорее всего, мы так и будем действовать.»

Оригинал тут:



Полиция

Фото из инстаграм:

И комментарий:
«Так классно! Только что состоялся лучший диалог с офицером полиции о поддержании безопасности в нашем районе 🤣»

Вот пост:

С учетом того, что Брендон лгал в других комментариях, допускаю, что и это — ложь!



Выводы

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

Friday, March 4, 2022

Исследование Баку через интернет

Идея поста заключается в том, чтобы исследовать город посредством интернет, а затем сравнить ожидания с реальностью


Подготовка к поездке

Погода в Баку в период с 5 марта до 12 марта будет от +10 до +15

Денежная единица Азербайджана -- манат (равна 100 гяпикам).

Коворкинг, который ответил: https://www.facebook.com/colab.az/

Жилье можно посмотреть тут: https://ru.bina.az/


Статьи про Баку

Прикладываю только те, которые понравились:

Реализация нового дизайна

Вступление

В 2021 году Давид нарисовал новый дизайн, а Алиса его сверстала.

Вот дизайн:
https://www.figma.com/file/UnqmzPf8WxFQHkXLGIfiuD
Вот верстка:
https://github.com/alisabox/events4friends-markup
Вот демо:
https://alisabox.github.io/events4friends-markup/source/index.html

Теперь надо это перенести на основной сайт. Поэтапно.


1. Фильтр сообществ

По умолчанию фильтр выключен (как бы он не выглядел). Для выключенного фильтра следует отображать данные всех сообществ.

Фильтр не является исключающим. Например, пользователь может выбрать два сообщества из пяти представленных в списке.

Пользователь в фильтре сообществ может выбрать все представленные сообщества. 


2. Шапка сайта

Наконец-то у сайта появилась шапка. Она будет содержать информацию о навигации и фильтр. 


3. Главная страница

Будет соответствовать этой странице:

https://alisabox.github.io/events4friends-markup/source/index.html


4. Список мероприятий

Будет соответствовать этой странице:

https://alisabox.github.io/events4friends-markup/source/events.html


5. Список услуг

Будет соответствовать этой странице:

https://alisabox.github.io/events4friends-markup/source/communities.html


6. Фотокарточки мероприятий

Это будет реализовано отдельно, на бэке, так и на фронте.

Tuesday, November 23, 2021

Ускорить загрузку данных

Вступление

В качестве backend используется firebase. Ранее было принято решение хранить изображение логотипа сообщества в базе в формате base64. Решение не очень хорошее: объем передаваемых данных по сети большой - более 60 КБ.

Необходимо хранить в базе ссылку на изображение, а не данные целиком.

Как работает сейчас?

Сайт и мобильное приложение используют поле "logo" из коллекции "communities"

Что надо сделать?

  1. Разместить логотипы на внешнем ресурсе и подготовить url;
  2. Создать поле "logo_url" коллекции "communities" и заполнить его значениями из п.1;
  3. На сайте реализовать использование "logo_url" для отображения лого сообщества;
  4. В мобильном приложении реализовать использование "logo_url" для отображения лого сообщества;
  5. Обновить сайт;
  6. Выпустить обновление мобильного приложения;
  7. Удалить поле "logo" коллекции "communities";
  8. Протестировать скорость загрузки.

У пользователей со старой версией приложения логотип не будет отображаться. Остается только надеятся что все пользователи регулярно и автоматически обновляют свои приложения.

Результат

Вместо результата приведен опрос:

Время загрузки сократилось на 50-75% и теперь составляет примерно 0,5-2 секунды. Когда софт не заметен для глаза — это хорошо.

Wednesday, September 22, 2021

Осенняя критика events4friends

Вступление

Спустя лето 2021 была реализована функциональность мультисообществ. Теперь в двух чатах Telegram функционирует бот, на сайте и в мобильном приложении размещены два сообщества с информацией об анонсах и услугах, а также интернет-ресурсах. Организаторы и пользователи достойно оценивают работу софта. Софт работает без сбоев и регулярно помогает людям собираться вместе.

В этом посте оставлю открытые вопросы.


Как быть с онлайн мероприятиями?

Обычно мероприятия сообщества размещается в одном городе. Но онлайн-мероприятие не ограничивается географией: могут принять участие пользователь со всего мира. Поэтому:

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

Сейчас работает второй вариант.


Как быть с географией сообщества?

Сейчас на доске два сообщества, которые находятся в разных городах:

  • «events4friends» располагается в Калиниграде;
  • «Trava education» располагается в Санкт-Петербурге.

Например, организатор «events4friends» проводит выездное мероприятие в Санкт-Петербурге? Нужно ли как-то оповещать дружественные сообщества о том, что в их городе пройдет выездное мероприятие? Если да, то как?


Что делать с названиями сообществ?

«Велосреда» - это калининградское сообщество любителей покататься на велосипедах за городом. Анонсы еженедельного мероприятия размещены на доске сообщества «events4friends», но, строго говоря, «Велосреда» - это не «events4friends». 

«Trava education» и «events4friends» не только проводят свои мероприятия, но  и агрегируют мероприятия других сообществ (волейболистов, любителей английского языка и другие). В общем, вопрос принадлежности мероприятия сообществу открыт.

Как предусмотреть интересы всех сообществ?


Что показывать на карте?

Технически карта готова. А практически ТЗ не проработано. Есть масса параметров отображения и вопросов:

  • к какому времени привязать отображение на карте? В течении часа, дня, недели?
  • к какому месту привязать отображение на карте? Рядом в радиусе 1 км, 5 км, в черте города (какого?), вообще все?
  • к какому сообществу привязать отображение на карте? 
  • в одной точке могут проходить одновременно несколько мероприятий, как их отобразить?
  • как отобразить онлайн мероприятие? 🙂

Реализация карты начнется с отображения на карте в описании конкретного мероприятия, дальше станет понятнее.

И главное, выяснить, нужна ли пользователям карта в принципе?


Куда развивать идею и софт?

Принципиальная позиция в заключается в том, что разработка софта для сообществ является строго социальной деятельностью. Об этом написан пост «Где деньги?».

Отсутствие инвестиций и грантов освобождают разработчиков от каких-либо обязательств. Предварительно есть два хороших варианта:

  • развивать софт в стороны образовательного примера программного продукта;
  • не развивать софт и пока что делать ничего.
Есть еще идеи?


Итого

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

Thursday, August 19, 2021

Где деньги/монетизация в events4friends?

Вступление

Часто, когда люди узнают про events4friends, возникает вопрос «Где деньги?» или «Почему бы не монетизировать?». В данном посте дам ответ на этот вопрос.


Почему нет?

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

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

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

Пользователи продукта имеют уникальную возможность попробовать на вкус интернет без рекламы.

Цена ошибки разработки никогда не была такой низкой - всего 0 рублей.

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


Объяснение взрослым языком

За последние несколько десятилетий социальное устройство общества сменилось капитализмом. Запрос на извлечение коммерческой прибыли из любых видов отношений очень высок. Не удивительно появление таких моральных уродов, как инклюзивная бизнес-модель.

Организаторы и многие участники сообщества events4friends - образованные люди и что-то знают о трансформациях в современном обществе. Идея events4friends развивалась с мыслью о том, что не все можно купить за деньги. Соответственно, events4friends купить нельзя. 


Бесплатно

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

Исходники тут:
https://github.com/VadimCpp



Sunday, May 23, 2021

Земский съезд

Перед началом

На Youtube канале Екатерины Михайловны состоялся Земский собор: фандрайзинговый стрим. Идея зажгла ум и мы с организаторами обсудили вопрос: стоит ли представить нашу идею на съезде или нет? Организаторы дали утвердительный ответ и началась работа. 

Каждый раз я тщательно подбирал слова, коротко и ясно формулировал идею. Каждый раз необходимо было говорить, кем я являюсь (Вадим Канинский, программист) и почему вообще пишу. Трудно объяснить, что «я увидел стрим и решил написать». А что, так можно было?

На первом этапе я написал в инстаграм Юлии Галяминой и вконтакте Екатерине Дунцовой. Меня отправили презентовать к Илье. Важно было установить доверие. Это было непросто, ведь я написал из интернета. Мы лично встретились в Москве и я рассказал ему о нашем сообществе и идее.

Я сообщил, что не претендую на финансирование, самостоятельно приеду в Великий Новгород и полностью автономно организую свое пребывание. 

Договорились.


Подготовка

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

За это время со мной связалась Александра Поливанова и сообщила: «у вас будет 5-7 минут на презу и 3 на вопросы». Принял. 


Срыв съезда

Перед началом съезда я написал Юлии Галяминой и Александре Поливановой с предложением провести съезд онлайн. Я размышлял о том, что делегатам необходимо выполнить задачи съезда, поэтому уместно собраться онлайн и выполнить задачи. Александра ответила: «спасибо, подумаем!)»

Пока я наслаждался красотами Великого Новгорода и готовился к презентации, произошел срыв съезда. Об этом написано во всех новостях 22 мая 2021 года.


Продолжаем

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

Ни в этот день, ни в следующий Александра Поливанова на связь не вышла и не предоставила никакой информации.

Ночью было объявлено что земский съезд продолжит свою работу.


Онлайн

В воскресенье утром мне стало ясно, что мое выступление не состоится. Я занимался своими обычными делами, изучал город и наблюдал онлайн трансляцию в Youtube.

После земского съезда я лично пригласил всех делегатов на вечернюю прогулку, которым вчера разослал информацию. Так же я пригласил Александру Поливанову и она отказалась. Моим личным героем вечера стал делегат, который согласился и не пришел: после ожидания в 50 минут я отменил встречу.


Рефлексия

Внимательный читатель сам увидит, что «первый блин комом». Я же в этом разделе оставлю свои мысли программиста.

Большинство людей недооценивают важность онлайна и ИТ-грамотности. Не понимаю, как можно быть депутатом и жить в интернете с никнеймом «whats the hell» (что в переводе означает «какого черта»). Не понимаю, как можно «ставить котиков на аватарки» и не следить за своим цифровым контентом, когда ты — официальное лицо и представляешь народ.

Я рад, что от начала земского съезда и до конца у меня максимально ничего не получилось! В конце-концов, моя идея не имеет отношения к политике, а имеет отношение к трансформации общества в целом. Я рад, что никому ничего не обещал и мне не нужно будет выполнять никаких обязательств перед участниками съезда.


Благодарности

Благодарю организаторов съезда за то, что усердно работал над проработкой идеи и далеко продвинулся. Спасибо вам большое за то, что мы не вместе 🤗

Также благодарю всех родных и близких, кто меня поддерживал в этом деле.


Транспарентность

Этот пост будет проиндексирован поисковыми системами и со временем поднимется в поисковой выдаче. Через N лет будет интересно его перечитывать и вспоминать, как это было и что с тех пор изменилось.

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


Комментарии

Делегаты не изъявили желание оставить какой-либо комментарий, поэтому завершу свой пост видео-комментарием Екатерины Михайловны об этом событии: S04E37 Земский съезд в Великом Новгороде



Tuesday, May 11, 2021

Реализация мультисообществ

В мае 2021 года требуется реализовать возможность сосуществования нескольких сообществ на сайте, в мобильном приложении и в боте Telegram. Этот пост будет содержать план работ и результат.


Таблица сообществ

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

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


Выбор сообщества

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

Выбор пользователя сохраняется в куках или в локальном хранилище мобильного устройства. Во время второго визита пользователя открывается страница выбранного сообщества. 

Необходимо реализовать экран выбора сообществ. На сайте есть экран "Сообщества" — его необходимо доработать. В мобильном приложении необходимо реализовать новый экран.


Изменения в анонсах

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


Изменения в услугах

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


Отображение анонсов и услуг

В пути URL необходимо указывать название сообщества для правильной навигации. Продумать и описать в документации все варианты роутов (ссылок). Для старых роутов по умолчанию показывать данные первого сообщества.


Обновление закрепа

Закреп — это закрепленное сообщение в чате Telegram. Когда организатор вносит изменения на сайте, бот по необходимости обновляет в чате закрепленное сообщение.

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


Замечания

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


upd 28.08.2021

Результат

Мультисообщества реализованы. Планировалось сделать за 20 дней, сделано за 3 месяца и 20 дней. 

Далее -- новый дизайн и карта мероприятий.

 

Wednesday, April 28, 2021

Нативная интеграция (отключена)

После реализации поиска ключевых фраз настало время реализовать нативную интеграцию. Есть несколько нюансов.


Исключения

Нативную интеграцию не нужно показывать в чатах HTML Академии и GDG Kaliningrad. Так же нативную интеграцию не нужно показывать при интеграции с мобильным приложением Мафия и с персональным сайтом.

Соответсвенно во всех случаях выше отключить поиск ключевых фраз.


Первая нативная интеграция

Для таких фраз:

  • я жирная
  • я жирный
  • я толстая
  • я толстый
  • надо похудеть
  • хочу похудеть

Необходимо выдавать такую фразу ответом на сообщение:

«Приглашаем стать стройнее с проектом преображение39.рф»


Открытые вопросы

Бот обрабатывает от 50 до 100 тысяч сообщений в сутки. Для каждого сообщения происходит:

  • разбор сообщений на наличие нецензурных слов;
  • поиск ключевых фраз;
  • поиск фраз для нативной интеграции.
Пока что нет никакой оптимизации алгоритмов, но потом этот вопрос станет актуальным.


Upd

Нативная интеграция отключена 30 июня 2023.
30.06.2023

Thursday, April 15, 2021

Закрытие проекта hrchatv2

Введение

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

Что предстоит сделать:

  • удалить сайт с хостинга;
  • удалить сайт из Cloudflare;
  • удалить домен;
  • архивировать исходники на github;
  • удалить функционал из телеграм-бота gdgCensorBot;
  • передать чат HR специалистам;
  • удалить ссылки на сайт из всех постов блога;
  • перенести проект в список завершенных.


Как удалить?

Прежде всего во всех постах данного блога удалены ссылки на чат и на сайт. «Битые» ссылки — это нехорошо.

Удалить сайт с Cloudflare. Удалить сайт с HTS: попросить службу поддержки удалить перенесенный домен, удалить файлы с хостинга, удалить FTP логин. Удалить документацию сайта с Google Disk. 

Удалить исходники локально. В репозитории указать информации о том, что проект закрыт и убрать ссылки. Отключить github actions и удалить из репозитория secrets. Заархивировать исходники на github.

Попросить службу поддержки active.domains удалить домен. 

Удалить функционал из телеграм-бота gdgCensorBot;


Пысы

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

Thursday, April 8, 2021

Поиск ключевых фраз

Для добавления нативной интеграции необходимо реализовать алгоритм фильтрации сообщений.

Пример фраз, которые годятся для нативной интеграции:


Поиск ключевых фраз

Требования к алгоритму:

  1. Необходимо игнорировать регистр. Фразы идентичны:
    • «я жирная»;
    • «Я жирная»;
    • «Я ЖИРНАЯ».
  2. Между ключевыми словами могут быть разные разделители и разное их количество.  Необходимо учитывать разные разделители. Пример:
    • «я жирная»;
    • «я - жирная»;
    • «я — жирная»;
    • «я      жирная».
  3. Между ключевыми словами могут быть разные усиливающие слова. Алгоритм должен это понимать:
    • «я очень жирная»
    • «я нереально жирная»
    • «я в последнее время конкретно разжирела». 
  4. Нет смысла обрабатывать сообщения, размер которых меньше пяти символов:
    • «ок»;
    • «неа»;
    • «норм».
  5. Возможна ситуация, когда ключевые слова присутствуют в сообщении, но сообщение не является целевым. Пример:
    • «я держусь, а вот подруга — жирная»;
    • «я не хочу ходить в офис, но мне очень нравится работать».
  6. В объемном тексте с большей вероятностью встретится несколько ключевых слов. Искать необходимо только первое совпадение, остальные ключевые — игнорировать. В современности люди пишут короткие сообщения, а объемный текст скорее всего является копией и не представляет интереса. Подразумевается, что сознательное игнорирование дополнительных ключевых слов не является проблемой и не ведет к потере ключевых фраз.

Исходя из пунктов выше видно, что невозможно написать идеальный алгоритм. В пунктах 3 и 5 всегда будет противоречие. 

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


Отображение результата

Вторая задача — отобразить найденное сообщение в удобном для пользователя виде. Предусмотреть минимальное количество текста.

Требования к алгоритму:

  1. Предварить каждую фразу строкой:
    • «🤖 Cовпадение:»
  2. Выделить ключевое слово жирным. Пример: 
    • «🤖 Cовпадение:
      Нам худеть надо к лету😂»
    • «🤖 Cовпадение:
      Да какая гайка, мне нужно пожрать))»
  3. Обрезать длинное сообщение. Иногда текст сообщения очень большой. Ограничить текст сообщения пятьюдесятью символами справа и слева. Пример:
    • «🤖 Cовпадение:
      ...олго молча в трубку. Потом резко выпалила.
      – Я сейчас приеду. И сбросила вызов.
      Через несколько минут, девушка уже стояла в палате и утешала...»
    • «🤖 Cовпадение:
      ...ты покорила меня своим позитивом, добротней, бескорыстной помощью и мудростью💝 спасибо тебе за тебя  😘😘😘 желаю всего прекрасного и что б все твои мечты обязательно сбывались...»
  4. Отключить предпросмотр ссылок.

Tuesday, March 30, 2021

Исследование Махачкалы через интернет

Идея поста заключается в том, чтобы исследовать город посредством интернет, а затем сравнить ожидания с реальностью.


Перед поездкой

В специализированном списке каналов и чатов Telegram для я нашел чат дагестанского IT-сообщества. 

Где работать?

  • Коворкинг, ТЦ Вегас, 6 этаж, каб. 610

Как отдыхать? В городе есть выход к морю, парки, музеи.

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


Подготовка к поездке

Погода в Махачкале в период с 21 марта до 28 марта будет от +5 до +12.

Купил на aviasales: билеты на самолет и аероэкспресс, включена еда и дополнительное место багажа.
Стоимость: 10367 рублей

Забронировал проживание на booking.
Стоимость: 13300 рублей

Посмотрел материалы известных блоггеров про город Махачкала. Расстояние от Махачкалы до Дербента составляет менее 150 километров.


Посетить

  • городскую набережную +
  • город Каспийск -
  • город Дербент +
  • Сулакский каньон +
  • редукторный поселок +
  • философская встреча -
  • литературная встреча -
  • смотровая площадка горы Тарки-Тау +

Пребывание

Поездка в Махачкалу прошла отлично. Республика Дагестан превзошла ожидания. Ниже изложены личные мысли, которые не претендуют на истину. 

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

Дорожное движение - опасно. Отсутствие освещения в ночное время и отсутствие полос разметки делает свое дело. Дорожные знаки расставлены хорошо. Ямы на дорогах присутствуют. Автомобили паркуются почти везде. Так как провел за рулем два дня, то в полном объеме ощутить все прелести вождения.

Махачкала очень активно строится. Стройка - везде. Часто инфраструктурные объекты ака трубы выведены наружу. В некоторых местах выхлопы автомобилей смешиваются дорожной пылью и запахом газа. Очень популярно расширение жилой площади путем пристроек и балконов. Элитный двор - это там, где есть освещение.

Вкусная еда. Мясо, овощи, тесто, сухофрукты, чай. Чуду, курзе, ботишал. Личное открытие - сушеная хурма. 

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

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

Намаз - каноническая молитва - совершается пять раз в день. Это ведет к очень осознанному бытию верующего человека. Каждый день необходимо планировать свою жизнедеятельность так, чтобы иметь возможность совершить молитву в определенное время. Очень мудро.

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


Полезные ссылки

Коворкинг: http://codecan.space/
Афиша мероприятий: https://www.interdag.ru/

Букинг и Яндекс такси также работают прекрасно.

Saturday, March 20, 2021

Показать текущее мероприятие

Проблема

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

Отсутствует информация о том, какое мероприятие идет сейчас и какое мероприятие вскоре начнется.

При реализации необходимо учитывать, что мероприятия проходят в разных часовых поясах.

Первая реализация на сайте выглядит так:



Формирование списка предстоящих мероприятий

При создании мероприятия организатор указывает время начала и время окончания. Время окончания является необязательным - в таком случае следует принимать длительность мероприятия - 1 час.

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


Формирование списка прошедших мероприятий

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

  • время окончания меньше текущего времени;
  • время окончания больше текущего времени, но время начала меньше текущего времени.

При сортировке текущие мероприятия необходимо отображать строго выше, чем прошедшие. 


Отображение меток

Если мероприятие идет сейчас отображать метку «идет сейчас»: время окончания больше текущего времени, время начала меньше текущего времени.

Если мероприятие начнется в течении часа, отображать метку «Начнется в течение часа»: время начала больше текущего времени и время начала меньше текущего времени + 1 час


Локализация времени

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


Результат

Список предстоящих мероприятий:

Список прошедших мероприятий (сначала отображаем текущие):

Карточка текущего мероприятия:

Карточка мероприятия, которое начнется в течение часа:

Мероприятие, для которого указан другой часовой пояс:


После выпуска новой версии, покажем решение аналитику.





Monday, March 1, 2021

Сменить графику

 Сменить графику:

  1. Графика для Play Market (Feature graphic) - 1024 на 500 пикселей
  2. Обложка сообщества ВКонтакте - 1590 на 400 пикселей
  3. Обложка клуба Strava - 815 на 400 пикселя
  4. Предпросмотр сайта (Open Graph) - 968 на 504 пикселя


Результат


Графика для Play Market выглядит так:


Обложка группы ВКонтакте выглядит так:


Обложка клуба в мобильном приложении Strava выглядит так:


Предпросмотр сайта выглядит так:



Sunday, February 7, 2021

Сменить иконку

Сменить иконку:

  1. В группе ВК установить квадратную иконку;
  2. В чате Телеграм установить квадратную иконку;
  3. В чате Whatsapp установить квадратную иконку;
  4. В чате Viber установить квадратную иконку;
  5. В аккаунте Instagram установить квадратную иконку;
  6. В аккаунте Strava установить квадратную иконку;
  7. На сайте events4friends.ru установить иконку в нескольких местах:
    1. В шапке сайта установить круглую иконку размером 128 на 128; 
    2. Обновить favicon с помощью сайта https://realfavicongenerator.net/;
    3. В базе данных изменить ссылку на лого сообщества;
  8. Работы с мобильным приложением:
    1. В мобильном приложении events4friends установить иконку
    2. В мобильном приложении events4friends обновить splash screen
    3. В магазине PlayMarket установить квадратную иконку размером 128 на 128 и обновить feature graphic размером 1024 на 500;
    4. Выпустить обновление приложения в PlayMarket и AppleStore.
  9. В телеграм боте events4friendsbot установить круглую иконку.
Теперь, когда вся информация собрана в одном месте, обновлять иконку станет проще.

Saturday, December 26, 2020

Прекращение работы над IQITO и Prodexy

IQITO и Prodexy относятся к коммерческой разработке. Работая над этими проектами был подписан договор о неразглашении. Не имея возможности установить, что можно рассказывать о проекте, а что - нельзя, принято решение не рассказывать ничего.

Скачать приложения можно тут: https://apps.apple.com/ru/developer/roscomputing/id977864307

Tuesday, December 15, 2020

Результаты опросов

Результаты

Результаты голосований переехали на персональный сайт:

Ниже размещены примеры голосований.


Слово «Заткнись»

18 апреля 2021 года добрались до этого слова.




Слово «Епта»

Несколько раз «епта» привлекало внимание и 25 марта 2021 года решили его добавить.


Граждане решили.


Слово «Передок»

Кто добавил «Передок»? Неизвестно. Но 24 марта 2021 года решили его убрать. 

Граждане решили единогласно.


Слово «Бл@ть»

Удалить слово бл@ть (именно с @ вместо я)? 20 марта 2021 года прошло голосование.


Граждане решили удалить все слова с символами @ 0 * и другими для замены букв.

 

Слово «Мразь»

Мразь - (бранное) ничтожные, презренные люди. 7 марта 2021 года состоялось голосование. 

Граждане решили цензурировать слово.


Слово «Чмошник»

Чмошник - (грубое, уничижительное) никчёмный, презренный, морально и физически опустившийся человек. 13 февраля 2021 года состоялось голосование


Бот больше не удаляет слово «чмошник». 


Слово «Калик»

Калик - одно из сокращённых названий Калининграда, которое не нравится некоторым жителям.
1 ферваля 2021 года состоялось голосование


Бот не реагирует на слово «Калик». 

Слово «Сука»

22 января 2021 года состоялось голосование


Бот продолжает удалять слово «сука» и все его производные. 


Слово «Шлюха»

13 декабря 2020 года состоялось голосование


Теперь бот не удаляет слово «шлюха» и все его производные. 


Friday, October 23, 2020

Инструкция. Как создать анонс мероприятия?

Вступление

Этот пост содержит информацию о том, как создать анонс мероприятия на сайте events4friends.ru

Для создания потребуется логин и пароль. 

Инструкция

На главной странице сайта нажать ссылку "Войти":






Сайт покажет страницу входа:


Ввести логин и пароль. Затем нажать кнопку "Войти":


Сайт покажет результат входа:


Если не указано имя пользователя, сайт попросит ввести имя:

Ввести имя и нажать кнопку "Сохранить и продолжить".

Нажать кнопку "Вернуться на экран приветствия". Теперь видно имя текущего пользователя на сайте:



Нажать кнопку "Все мероприятия". 
На экране мероприятий для авторизованного пользователя видна кнопка "Сделать анонс:


Нажать кнопку "Сделать анонс".

Появится форма анонса. Необходимо заполнить все поля.




Для того, чтобы создать ссылку необходимо выделить текст:



Нажать сочетание кнопок Ctrl + K. Появится окно:



Вставить ссылку и нажать "Save".

Далее заполнить остальные поля.



Заполнить все поля и нажать кнопку "Создать".

Сайт покажет страницу нового мероприятия:



Готово!

Проверить правильность введенной информации. В случае ошибки анонс можно "Изменить" или даже "Удалить".




Saturday, September 19, 2020

Закрытие украинского цензор бота

История

В декабре 2018 года ко мне обратился известный украинский телеведущий и просто замечательный человек Сергей Степанюк:


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


Бот набрал популярность и возросли нагрузки на сервера. Всплыл финансовый вопрос: кто будет оплачивать сервер. Цена вопроса - 7 USD в месяц. К сожалению, у Сергея финансирования не нашлось.

Тогда я передал украинского бота кіту для монетизации. Кіт просил денег в украинских чатах, но никто не готов был заплатить даже за сервер. Кстати, раньше с чатом hrchatv2.ru думали, что кіт - девочка, но в последствии выяснилось, что мальчик:


Монетизация закончилась ничем, а украинский цензор бот был удален кітом. 🤷‍♂️

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

Интересный факт: в конкретном случае бесплатность победила национальное сознание. Украинские чаты, в том числе националистически настроенные, спокойно пользуются бесплатным русским цензор ботом. Ради бесплатности участники готовы терпеть цензурирование таких украинских слов, как "роблять" и "поробляєш".


Словник україньських матюків

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

Ссылка на бесплатные исходники:

Украинские маты: 

  1. [
  2. "блядистість",
  3. "блядовитий",
  4. "блядський",
  5. "блядувати",
  6. "блядіада",
  7. "блядіна",
  8. "в'єбався",
  9. "в'єбати",
  10. "в'єбе",
  11. "в'єбу",
  12. "в'єбуть",
  13. "в'їбати",
  14. "в'їбе",
  15. "в'їбу",
  16. "в'їбуть",
  17. "виблядок",
  18. "виблядував",
  19. "вийобуватись",
  20. "вийобуватися",
  21. "вийобуйся",
  22. "вийобуються",
  23. "вийобується",
  24. "вийобуєця",
  25. "виябуватися",
  26. "виябуйся",
  27. "виєбнувся",
  28. "виєбнулася",
  29. "виєбнулися",
  30. "виєбнутися",
  31. "виєбон",
  32. "виїбала",
  33. "виїбали",
  34. "виїбало",
  35. "виїбати",
  36. "виїбнувся",
  37. "виїбнулася",
  38. "виїбнулися",
  39. "виїбнулося",
  40. "виїбон",
  41. "впиздячив",
  42. "від'єбатися",
  43. "від'єбись",
  44. "від'їбатися",
  45. "від'їбись",
  46. "відпиздив",
  47. "відпиздила",
  48. "відпиздили",
  49. "відпиздило",
  50. "відпиздити",
  51. "віиїбнутися",
  52. "віїбав",
  53. "голойобиця",
  54. "довбойоб",
  55. "довбойобка",
  56. "дойобувати",
  57. "дойобує",
  58. "долбойоб",
  59. "доєбався",
  60. "доєбалася",
  61. "доєбалися",
  62. "доєбалося",
  63. "доїбався",
  64. "доїбалася",
  65. "доїбалися",
  66. "дрочив",
  67. "дрочити",
  68. "жидойоб",
  69. "жидойобка",
  70. "жидойобський",
  71. "з'єбався",
  72. "з'єбалася",
  73. "з'єбалися",
  74. "з'єбалося",
  75. "з'єбатися",
  76. "з'їбався",
  77. "з'їбалася",
  78. "з'їбалися",
  79. "з'їбалося",
  80. "з'їбатися",
  81. "зайоб",
  82. "зайобана",
  83. "зайобане",
  84. "зайобаний",
  85. "зайобані",
  86. "зайобиста",
  87. "зайобисте",
  88. "зайобистий",
  89. "зайобисті",
  90. "зайобував",
  91. "зайобувала",
  92. "зайобували",
  93. "зайобувало",
  94. "зайобувати",
  95. "зайобує",
  96. "запиздив",
  97. "запиздила",
  98. "запиздили",
  99. "запиздило",
  100. "запиздити",
  101. "запиздячив",
  102. "запиздячила",
  103. "запиздячили",
  104. "запиздячило",
  105. "запиздячити",
  106. "запиздячить",
  107. "заєбав",
  108. "заєбала",
  109. "заєбали",
  110. "заєбати",
  111. "заєбашив",
  112. "заєбашила",
  113. "заєбашили",
  114. "заєбашило",
  115. "заєбашити",
  116. "заєбе",
  117. "заєбись",
  118. "заєбцовий",
  119. "заєбісь",
  120. "заїбав",
  121. "заїбала",
  122. "заїбали",
  123. "заїбало",
  124. "заїбати",
  125. "заїбе",
  126. "заїбись",
  127. "заїбісь",
  128. "злоєбуча",
  129. "злоєбуче",
  130. "злоєбучий",
  131. "злоєбучка",
  132. "злоєбучі",
  133. "злоїбуча",
  134. "злоїбуче",
  135. "злоїбучий",
  136. "злоїбучка",
  137. "злоїбучі",
  138. "йоб",
  139. "йобана",
  140. "йобаний",
  141. "йобар",
  142. "йобкість",
  143. "йобнув",
  144. "йобнувся",
  145. "йобнула",
  146. "йобнулася",
  147. "йобнули",
  148. "йобнулися",
  149. "йобнулося",
  150. "йобнута",
  151. "йобнуте",
  152. "йобнути",
  153. "йобнутий",
  154. "йобнутися",
  155. "йобнуть",
  156. "йобнуті",
  157. "козлойоб",
  158. "набладували",
  159. "наблядував",
  160. "наблядувала",
  161. "найобка",
  162. "найобує",
  163. "наєбав",
  164. "наєбала",
  165. "наєбати",
  166. "наєбашила",
  167. "наєбашити",
  168. "наєбашитися",
  169. "наєбашить",
  170. "наєбнувся",
  171. "наєбнулася",
  172. "наєбнулися",
  173. "наєбнулося",
  174. "наєбнутися",
  175. "наїбав",
  176. "наїбала",
  177. "наїбали",
  178. "наїбало",
  179. "наїбати",
  180. "наїбашила",
  181. "наїбашили",
  182. "наїбашило",
  183. "наїбашити",
  184. "наїбашить",
  185. "об'єбав",
  186. "об'єбала",
  187. "об'єбали",
  188. "остопиздів",
  189. "остопизділа",
  190. "остопизділи",
  191. "остопизділо",
  192. "остопиздіти",
  193. "охуєвати",
  194. "охуєває",
  195. "охуєнна",
  196. "охуєнне",
  197. "охуєнний",
  198. "охуєнно",
  199. "охуєнні",
  200. "охуїв",
  201. "охуївати",
  202. "охуїла",
  203. "охуїле",
  204. "охуїли",
  205. "охуїлий",
  206. "охуїло",
  207. "охуїлі",
  208. "охуїти",
  209. "переїбав",
  210. "переїбала",
  211. "переїбали",
  212. "переїбало",
  213. "переїбати",
  214. "переїбе",
  215. "пизданута",
  216. "пиздануте",
  217. "пизданути",
  218. "пизданутий",
  219. "пиздануті",
  220. "пиздата",
  221. "пиздате",
  222. "пиздатий",
  223. "пиздаті",
  224. "пиздель",
  225. "пиздець",
  226. "пизди",
  227. "пиздити",
  228. "пиздитись",
  229. "пиздитися",
  230. "пиздить",
  231. "пиздиш",
  232. "пиздлива",
  233. "пиздливе",
  234. "пиздливий",
  235. "пиздливо",
  236. "пиздливі",
  237. "пиздовата",
  238. "пиздовате",
  239. "пиздоватий",
  240. "пиздовато",
  241. "пиздоваті",
  242. "пиздограй",
  243. "пиздойоб",
  244. "пиздолом",
  245. "пиздонути",
  246. "пиздувати",
  247. "пиздують",
  248. "пиздує",
  249. "пиздьож",
  250. "пиздять",
  251. "пиздяч",
  252. "пиздячать",
  253. "пиздячив",
  254. "пиздячила",
  255. "пиздячили",
  256. "пиздячити",
  257. "пиздячить",
  258. "пиздів",
  259. "пизділа",
  260. "пизділи",
  261. "пизділо",
  262. "пиздіти",
  263. "пиздіть",
  264. "пойобана",
  265. "пойобане",
  266. "пойобаний",
  267. "пойобані",
  268. "похуїзм",
  269. "похуїст",
  270. "похуїсти",
  271. "похуїстичний",
  272. "похуїстка",
  273. "поєбень",
  274. "поєбеньки",
  275. "поїбеньки",
  276. "приєбав",
  277. "приєбався",
  278. "приєбала",
  279. "приєбалася",
  280. "приєбали",
  281. "приєбалися",
  282. "приєбати",
  283. "приїбався",
  284. "приїбалася",
  285. "приїбалися",
  286. "приїбалося",
  287. "під'єбав",
  288. "під'єбала",
  289. "під'єбали",
  290. "під'єбати",
  291. "підар",
  292. "підарас",
  293. "підарка",
  294. "підарська",
  295. "підарське",
  296. "підарський",
  297. "підарські",
  298. "підйоб",
  299. "підйобка",
  300. "підйобки",
  301. "підйобувати",
  302. "підйобуватиме",
  303. "підйобує",
  304. "піздабол",
  305. "піздаболи",
  306. "піздаболка",
  307. "піздата",
  308. "піздате",
  309. "піздатий",
  310. "піздаті",
  311. "піздец",
  312. "піздецький",
  313. "піздойоб",
  314. "піздьож",
  315. "піздєц",
  316. "роз'єбав",
  317. "роз'єбала",
  318. "роз'єбали",
  319. "роз'єбало",
  320. "роз'єбати",
  321. "роз'єбе",
  322. "роз'єбуть",
  323. "роз'їбай",
  324. "розйобана",
  325. "розйобане",
  326. "розйобаний",
  327. "розйобані",
  328. "розпиздяй",
  329. "розпиздяйство",
  330. "розпиздівся",
  331. "розпизділася",
  332. "розпизділися",
  333. "розпизділося",
  334. "розпиздітися",
  335. "розпіздяй",
  336. "розхуячив",
  337. "розхуячила",
  338. "розхуячили",
  339. "розхуячило",
  340. "розхуячити",
  341. "скотойоб",
  342. "спиздив",
  343. "спиздила",
  344. "спиздили",
  345. "спиздівся",
  346. "спизділася",
  347. "спизділися",
  348. "спизділо",
  349. "спизділося",
  350. "срака",
  351. "страхойобище",
  352. "тиць-пиздиць",
  353. "уйобина",
  354. "уйобище",
  355. "уйобок",
  356. "уйобувати",
  357. "уйобуй",
  358. "уйобуйте",
  359. "хитровиєбаний",
  360. "хуй",
  361. "хуйова",
  362. "хуйове",
  363. "хуйовий",
  364. "хуйовина",
  365. "хуйово",
  366. "хуйові",
  367. "хуйок",
  368. "хуякнув",
  369. "хуякнула",
  370. "хуякнули",
  371. "хуякнуло",
  372. "хуякнути",
  373. "хуярити",
  374. "хуярить",
  375. "хуярять",
  376. "хуячив",
  377. "хуячила",
  378. "хуячили",
  379. "хуячило",
  380. "хуячити",
  381. "хуячить",
  382. "хуєв",
  383. "хуєман",
  384. "хуємотина",
  385. "хуєнько",
  386. "хуєсос",
  387. "хуєта",
  388. "хуєть",
  389. "хуєю",
  390. "хуї",
  391. "хуїв",
  392. "хуїти",
  393. "хуїю",
  394. "єбався",
  395. "єбак",
  396. "єбалася",
  397. "єбалися",
  398. "єбалка",
  399. "єбало",
  400. "єбалося",
  401. "єбальник",
  402. "єбальня",
  403. "єбана",
  404. "єбанат",
  405. "єбанеся",
  406. "єбанеться",
  407. "єбанешся",
  408. "єбання",
  409. "єбанув",
  410. "єбанувся",
  411. "єбанула",
  412. "єбанулася",
  413. "єбанули",
  414. "єбанулися",
  415. "єбанулося",
  416. "єбанута",
  417. "єбануте",
  418. "єбанутий",
  419. "єбанутися",
  420. "єбануть",
  421. "єбануті",
  422. "єбатися",
  423. "єбать",
  424. "єбашать",
  425. "єбашив",
  426. "єбашила",
  427. "єбашити",
  428. "єбашить",
  429. "єбаються",
  430. "єбе",
  431. "єбеться",
  432. "єбись",
  433. "єбливий",
  434. "єбля",
  435. "єблі",
  436. "єбошити",
  437. "єбошитися",
  438. "єбошить",
  439. "єбун",
  440. "єбуться",
  441. "єбуча",
  442. "єбучий",
  443. "єбучка",
  444. "їбалка",
  445. "їбало",
  446. "їбальня",
  447. "їбанат",
  448. "їбанеться",
  449. "їбанешся",
  450. "їбання",
  451. "їбанувся",
  452. "їбанулася",
  453. "їбанулися",
  454. "їбанулося",
  455. "їбанута",
  456. "їбануте",
  457. "їбанутий",
  458. "їбанутися",
  459. "їбануті",
  460. "їбати",
  461. "їбатися",
  462. "їбать",
  463. "їбашать",
  464. "їбашити",
  465. "їбашить",
  466. "їбеться",
  467. "їбись",
  468. "їбошити",
  469. "їбошитися",
  470. "їбошить",
  471. "їбуться",
  472. "їбучка"
  473. ]

Удаление бота

Чтобы удалить бота, необходимо сделать несколько шагов: 
  • Удалить приложение с сайта heroku.com;
  • Удалить словарь из базы данных RedisLabs;
  • Удалить бот @UkranianCensorBot с помощью BotFather;
  • Удалить чат @ukrainiancensorchat;
  • В исходниках бота указать ссылку на этот пост.
RIP ua censor bot