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 Земский съезд в Великом Новгороде