Найти в Дзене
HumanBuilding

Прототип web-приложения MySkillsOrganizer для работы с графическими деревьями HB-целей и достижений

К настоящему моменту разработано колоссальное количество программных
продуктов, при помощи которых автоматизируется денежный учет - от домашней бухгалтерии до корпораций, государств и международных организаций. Балансы на счетах, доходы и расходы выражаются чисто количественным образом - в денежных единицах. В HB-культуре вместо одномерности денежных сумм на первый план выходит
многообразие взаимосвязанных HB-целей и достижений каждой личности,
коллективов и человечества в целом. Парой энтузиастов - Gina Husebø и Leif Andreas Rudlang - был разработан и развивается до сих пор программный продукт Emberly, основанный на принципе визуализации "Mind Map". Он активно используется основателем SkillUp Academy - Danny Forest. Mind Map визуализирует древовидную классификацию и детализацию направлений развития. Например, в дереве на странице https://www.dannyforest.com/ среди прочих мы видим отходящую от корня ветвь
волонтёрства (Volunteer work), от которой, в свою очередь, отходят ветви с назван

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

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

Парой энтузиастов - Gina Husebø и Leif Andreas Rudlang - был разработан и развивается до сих пор программный продукт Emberly, основанный на принципе визуализации "Mind Map". Он активно используется основателем SkillUp Academy - Danny Forest.

-2

Mind Map визуализирует древовидную классификацию и детализацию направлений развития. Например, в дереве на странице https://www.dannyforest.com/ среди прочих мы видим отходящую от корня ветвь
волонтёрства (Volunteer work), от которой, в свою очередь, отходят ветви с названиями организаций, в рамках которых выполнялась работа: коворкинг АнгкорХаб (AngkorHub), медицинская гуманитарная организация "Врачи без границ" (Doctors Without Borders) и другие. От каждой из ветвей организаций отходит по две конечные ветви, одна из которых содержит наименование работы, другая - название местности, где выполнялась или будет выполняться работа. Так мы узнаем, что Danny Forest, сотрудничая с АнгкорХаб, занимался волонтерством в Сием Рип, Камбоджа (Siem Reap, Cambodia), в качестве программиста (Programmer), а сотрудничая с организацией "Врачи без границ" - в Монреале, Канада (Montreal, Canada), в качестве фотографа на мероприятиях (Photographer (Events)), и так далее.

В подобном древовидном формате можно было бы представлять зависимости между узлами HB-целей и достижений и последовательность их прохождения.

Например, мы планируем перевести на русский язык книгу “Marx's Ecology:
Materialism and Nature” профессора John Bellamy Foster, совершенствуя при этом свое владение английским языком и навыки перевода. Можно изобразить эту цель в виде круга с соответствующей текстовой надписью. Из него будут исходить стрелки зависимостей, указывающие на узлы, которые должны быть предварительно пройдены: а) базовые навыки пользователя ПК, в том числе - умение пользоваться текстовым редактором, б) владение русским и английским языками на продвинутом уровне. От этих вторичных узлов могут исходить стрелки их собственных зависимостей. И так вплоть
до конечных узлов, в том числе, возможно, самых базовых, которые осваиваются абсолютно всеми людьми в детском возрасте. Это навыки прямохождения, элементарного самообслуживания, пользования бытовыми предметами, разговорной речи и письма на родном языке, счета и тому подобные.

Дерево могут начинать выстраивать взрослые для своих детей с первых месяцев их жизни. Затем каждый начинает заниматься своим деревом самостоятельно.

Для реализации описанной выше функциональности 2019-2020 гг. нами был
разработан действующий прототип веб-приложения под названием MySkillsOrganizer с фронтендом на основе Vue2, с использованием языков JavaScript, Pug, Stylus, CSS-каркаса uimini, библиотеки 2D рисования fabric, и развернут на платформе Firebase, входящей в состав Google Cloud. Основное его назначение - визуализация личного графа ранее достигнутых и планируемых HB-целей.

В MySkillsOrganizer были реализованы следующие разделы:


-
Главная - содержит основное дерево личного развития, которое можно
выстраивать на протяжении всей жизни;

-3


-
Шаблоны - содержит каталог шаблонов поддеревьев развития по
определенным направлениям, которые можно разрабатывать, копировать в основное дерево, открывать для общего доступа по ссылке, импортировать из таких же разделов других пользователей по предоставляемым ими ссылкам. При помощи таких шаблонов все пользователи Интернет могли бы
обмениваться успешными технологиями саморазвития в самых разнообразных направлениях - освоение различных специальностей, изучение иностранных языков, подготовка к спортивным соревнованиям, разработка и защита научных работ, овладение техниками разных искусств, обретение целостных гуманитарных знаний и так далее. Учебные заведения могли бы при помощи шаблонов знакомить абитуриентов с наборами взаимозависимых курсов, помогать им выстраивать личные деревья их прохождения. Например, для того, чтобы записаться на курс “Разработка серверных служб при помощи Spring”, нужно сначала пройти, как минимум, курсы “СУБД” и “Основы программирования на Java”. Или сначала несколько студентов обучались на курсах “HTML и CSS”, “Основы JavaScript”, затем - на зависимом от них курсе “Разработка фронтенда с использованием HTML, CSS и JavaScript”, после чего часть из них добавили в свои деревья узел “Angular”, другие - “React”, третьи - “Vue”, и приступили к прохождению соответствующих курсов. Последние три курса - это альтернативные варианты завершения обучения разработке современного фронтенда веб-приложений. В общем, учащимся предоставляется возможность скомпоновать для
себя из отдельных небольших узкоспециализированных курсов наиболее подходящую программу обучения, и поскорее приступить к работе вместо траты нескольких лет на изучение избыточного “джентльменского набора” предметов, связанных с избранной специальностью.
Точно так же шаблоны деревьев планов развития могли бы получать постоянные посетители спортивных комплексов, бассейнов, туристических клубов и прочих организаций физического совершенствования, и затем корректировать их со своими тренерами, в том числе - в рамках подготовки к спортивным соревнованиям. Тем более, MySkillsOrganizer стал бы важнейшим программным инструментом в работе потенциальных осознанно HB-ориентированных организаций, в том числе, упоминавшихся выше в данном контексте перерождающихся предприятий, фаблабов, кружков коллективного освоения общественных знаний и выработки целостного диалектико-материалистического, историко-материалистического мировоззрения;

-4


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


Навигация по разделам организована в стиле Single Page Application (SPA) на
основе стандартной библиотеки vue-router. В разделах Главная и Шаблоны есть плавающая кнопка главного действия - добавления узла дерева, область отображения всего дерева, скрывающаяся панель настроек выбранного узла. Каждый узел выглядит как цветной диск, цвет зависит от состояния:


1. достижение запланировано и все зависимости выполнены;
2. достижение запланировано, но не все зависимости выполнены;
3. узел в процессе освоения;
4. освоение приостановлено;
5. цель отменена;
6. цель достигнута

Порядок работы с основной функциональностью:
- аутентификация при помощи учетной записи пользователя Google;
- поочередное добавление узлов в поле построения дерева с вводом их
заголовков, описаний, возможно - со ссылками на связанные web-ресурсы и
планируемыми сроками, с выбором типа цели и текущего состояния узла;
- задание зависимостей (например, знание разговорного английского есть,
знание некоторого языка программирования есть, но знания некоторого фреймворка нет, и от этих трех узлов зависит узел "принять участие в международном IT-проекте");
- редактирование ранее добавленных узлов и связей.

Более подробно с возможностями разделов Главная и Шаблоны можно
ознакомиться, просматривая видео из плейлиста, посвященного MySkillsOrganizer и некоторым другим приложениям HB-культуры и доступного по адресу:
https://www.youtube.com/playlist?list=PLXm8o13i6jJqYx_OCosw4cO9gaoVECrsI.

Данные деревьев размещаются на сервере в нереляционном хранилище Firebase Realtime Database. Туда же вынесены данные для локализации пользовательского интерфейса (возможно переключение между русским и английскими языками, влияющее на текстовое содержимое и на ссылки на видео-руководства).


Одна из двух серверных функций обеспечивает интеграцию с CTFinder, уже
упоминавшуюся в Приложении Б: MySkillsOrganizer принимает и отображает
уведомления о заявке данного пользователя Google на выполнение развивающего задания в CTFinder, при этом формируя в главном дереве новый узел с соответствующими данными.


Другая серверная функция предоставляет демонстрационную реализацию REST API для сторонних клиентов. С ее помощью можно получать данные в формате JSON о тех планируемых целях пользователей, узлы которых они отметили как общедоступные. Получение данных таким образом, с согласия пользователей на общедоступность каждой отдельной их порции, могло бы стать лучшей заменой трудоемкому сбору сырых данных в маркетинговых целях. Заинтересованные организации снизили бы свои расходы и повысили бы точность нацеливания рекламы, а пользователи Интернет стали бы получать рекламные объявления о тех товарах, которые действительно с большой вероятностью вскоре могут им понадобиться на пути к достижению намеченных HB-целей.

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

Допустим, в учебное заведение стали поступать вопросы о возможности
индивидуального или группового обучения определенным технологиям. Сканирование деревьев развития преподавателей показывает отсутствие или недостаточность у последних соответствующих компетенций. Это сигнал о необходимости как можно скорее предложить преподавателям получить такие компетенции. Также можно поискать кандидатов на должности преподавателей новых курсов за пределами наличного штата сотрудников.
По количеству и направленности появляющихся узлов HB-целей, по скорости
достижения ранее намеченных, и по ряду других характеристик, которые можно извлечь путем анализа личных деревьев, делались бы выводы о благополучии людей в плане HB. На место заботы о валовом продукте, выраженном в денежных суммах, пришла бы забота о HB-здоровье каждого, о нормальном развитии человечности. При этом важно обращать внимание на то, как каждый из людей на деле относится к другим. Одним из индикаторов нормы этого отношения мог бы послужить коэффициент успешного содействия свободному развитию других. Математические аппараты для работы с подобными характеристиками узлов графов уже давно
разработаны и принесли колоссальную пользу при реализации алгоритмов
автоматического вычисления и использования индексов цитирования научных работ и коэффициента PageRank (PR) в поисковой системе Google.

Краткая история развития проекта

Реализация простой системы обучающих подсказок для пользовательского
веб-интерфейса была выполнена совместно со студентами в качестве их реальной практики. На завершающих этапах разработки первой черновой версии действующего прототипа MySkillsOrganizer к проекту присоединился участник, пообещавший заняться дизайном пользовательского интерфейса и начальным продвижением. Макеты полноэкранной и мобильной версий пользовательского интерфейса веб-приложения, а также презентационные слайды были им разработаны, но затем связь с ним была утрачена. Других заинтересованных в развитии проекта так и не нашлось. Чистовое оформление фронтенда так и не было применено из-за отсутствия времени и других участников проекта.

-5

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

-6

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


Осенью 2022 года веб-приложение, бывшее доступным по адресу
https://my-skills-organizer.firebaseapp.com/, было автоматически заблокировано из-за обнаружения зависимостей от сторонних библиотек с уязвимостями, а возможности это исправить уже не было, так как некому было заниматься поддержкой. Исходные коды доступны по ссылке.

Весной 2024 года управление проектом на платформе Google Firebase было окончательно утрачено по тем же причинам, что и управление проектом CTFinder, о чём было достаточно подробно рассказано в предыдущем выпуске данной серии статей.

Известные дефекты:


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


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

Необходимые доработки:


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


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


- добавление дополнительных способов аутентификации, например, при
помощи учетной записи пользователя ВКонтакте (требуется предварительный опрос потенциальных пользователей);


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


- добавление возможности указывать набор тэгов для узла при его создании или редактировании;


- улучшить систему обучающих подсказок;


- добавить меню настроек с пунктом “создавать новую цель после
присоединения к проекту на CTFinder” (сейчас, во время, когда прототип
веб-приложения CTFinder запущен, при клике в нем по кнопке “Присоединиться” (к проекту) в основном дереве MySkillsOrganizer присоединившегося пользователя безусловно появляется узел соответствующей цели и приходит уведомление);


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


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


Предложения для обсуждения:


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


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


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


- основать проект дополнительного приложения “3D-сфера достижений
человечества” для упрощения выбора направлений личного развития и координации этого выбора с другими. Отображать в окне приложения ограниченное сферой масштабируемое трехмерное древо всего наличного HB-богатства человечества, которое в той или иной мере осваивает каждый современный человек. Непосредственно из центра сферы будут исходить ветви к узлам, которые достигаются всеми в первые месяцы и годы жизни. Узлы основ человечности, навыков минимального самообслуживания и грамотности будут располагаться на поверхности малой сферы. От них наружу будут тянуться ветви к узлам всех возможных направлений распредмечивания, то есть к тем узлам, которые являются необязательными для всех. Самые крайние из этих узлов будут лежать на поверхности
большей, внешней сферы и означать текущие пределы достигнутого. От них будут прокладываться ветви еще дальше наружу, к узлам только намечающихся достижений.


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