dotnetru / audit Goto Github PK
View Code? Open in Web Editor NEWCommunity activity audit log in a robot-friendly format
Community activity audit log in a robot-friendly format
Концепция универсальных ссылок оказалась слишком избыточной на уровне протокола. Её необходимо упразднить.
Вместо абстрактных ссылок в протокол следует поместить сразу URL с именем, соответствующим LinkRelation'у. Все поля, содержащие URI, должны иметь суффикс Url
.
Сейчас в структуре Встречи (Meetup
) присутствует поле Номер (Number
). Представляющее собой порядковый номер встречи.
Его использование слишком узко и может быть ошибочным.
Date
)Необходимо добавить к Встрече новое строковое поле Название (Name
). Оно должно формироваться из имени Сообщества и порядкового номера Встречи.
Необходимо найти все места использования Номера и избавится от таковых.
Некоторые имена представлены латиницей не в самом популярном виде. Нужно это исправить. Например:
Также есть много неконсистентных разночтений:
У подкаста RadioDotNet тоже есть подробный и структурированный журнал аудита. Изначально это была просто метаинформация на основе которой предполагалось строить сайт подкаста. Поэтому располагался он тоже в репозитории Site. Но собираемая информация достаточно полезная, полная и актуальная чтобы стать частью базы знаний DotNetRu.
Посему, следует перенести все сведения о подкасте в репозиторий Аудита. Дабы у сторонних сервисов был единый источник правды об активностях организации. Сейчас сами файлы перенесены, но формат всё-ещё находится в оригинальном состоянии.
Перед переносом нужно обратить внимание на некоторые аспекты, описанные ниже.
Стандартный формат для всего Аудита это XML. По историческим причинам, Radio ведёт свой журнал в Markdown с обильным использованием YAML.
Кажется нецелесообразным приводить Аудит к ситуации в которой он будет хранить документы разных форматов. Это усложнит реализацию инструментария (потребителей, генераторов, валидаторов). А так же внесёт сумятицу и разброд в глаза любого читателя.
Дабы следовать принципу наименьшего удивления, данные следует представлять в едином формате. XML является явным фаворитом, ибо в нём сейчас хранится большая часть данных, он имеет более строгую, продуманную и гибкую семантику. Посему, перед миграцией нужно будет сконвертировать все данные RadioDotNet в новый XML формат.
Информация о текущих выпусках подкаста используется для интеграции с множеством сервисов (Trello, VK, YouTube, Twitter и т.д.). В случае смены формата на XML (см. пункт Формат), весь этот инструментарий придёт в негодность.
Дабы не сломать отлаженный процесс выпуска подкастов, необходимо сначала добавить поддержку нового формата данных в инструментарий.
Сейчас структура Аудита следует определённым неформальным правилам (надо бы их записать в wiki после окончательной формализации):
В связи с выше изложенным, получаем для Radio следующую структуру:
podcasts
RadioDotNet-{Number}
Сейчас весь репозиторий Аудита целостен. Т.е. у него все документы связаны друг с другом. И если есть какой-то недостижимый документ, то это смело можно считать ошибкой. Это удобное свойство для проверки непротиворечивости всего хранилища.
С приходом Radio, это свойство нарушается. Мы получаем новую коллекцию никак не связанную с остальными. Наверное это не проблема, ибо такой цели и не ставилось. Но в инструментах валидации всё-таки хочется оставить свойство полноты, как минимум для Митапов.
На самом деле, всё немного хуже. На текущий момент в Radio есть связь с документом Speaker из Аудита. Мы используем имена людей участвующих в подкасте (ведущие, гости, режиссёры и т.д.) для поиска их социальной сети (для указания её в анонсе). Социальные сети есть у Speaker'ов. Но если весь остальной Аудит использует для подобной связи Id
сущности, Radio использует поле Name
. Причина кроется в том, что не все наши участники делали доклады в Сообществах (т.е. попали в коллекцию Speakers). И для таких людей нам нужно просто Имя. Держать оба поля (Id
для ссылки если повезло и Name
если нет) выглядит слишком избыточно. Вот эту дилемму нужно будет решить перед миграцией.
Данная задача находится в процессе осмысления и обсуждения. Как только будут найдены достойные решения на все возникшие вопросы, можно будет переходить к реализации.
На конец 2019 года в сообщество входят 13 городов. Для Spb, Sar и Oms Аудит актуален. Для Msk приближается к идеалу. Для остальных городов заброшен и не развивается. Основные причины - это отсутствие удобного инструмента для добавления новых встреч и ответственного Аудитора от каждого города.
Необходимо актуализировать базу данных для всех сообществ и предоставить лидерам удобный инструмент для ведения Аудита.
Актуальное количество встреч на конец 2019 года (с примерным средним посещением):
Встреча SpbDotNet-6 описывает один доклад Common-mistakes-in-Net-benchmarks
.
Согластно протоколу такой формат должен отписываться двумя Докладами. Необходимо разбить встречу на 2 доклада, скоректировать времена и ссылки на видео-запись.
Похоже что синтаксис текущих тестов несовместим с новым Pester'ом v5.
Нужно обновить все тесты.
Очень удобно искать докладчиков для мероприятия по месту их нахождения.
Для обратной совместимости можно предположить что докладчик проживает в городе первого своего выступления. Это даст хорошее начальное покрытие. Все неточности будем исправлять в рамках стандартной процедуры актуализации Аудита.
Сейчас дата встречи (Meetup.Date
) содержит часть времени (по-факту оно всегда сейчас равно 00:00:00
).
Необходимо выкинуть часть, отвечающую за время. Эта информация не интересна в разрезе аудита.
Так же становятся избыточными символы разделения частей T
и признак зоны Z
.
Таким образом дата проведения встречи должна выглядеть так:
<Date>2015-06-06</Date>
Сейчас иностранные спикеры имеют имена записанные как латиницей (Adam Sitnik), так и кирилицей (Саша Голдштейн).
Необходимо определиться и привести их к единообразию.
Сейчас в базе информация о группах SpbDotNet и MskDotNet.
Необходимо также добавить и начать поддерживать в актуальном состоянии активность группы SarDotNet.
Необходимо разработать и настроить автоматическую проверку (AppVeyor?) базового формата файлов Аудита на соответствие XML Scheme.
Сейчас основная база данных хранится в корне репозитория. Это плохая практика, ибо корень будут пачкать сторонние сервисы (проверяльщики, сборщики, выкладывальщики и т.д.).
Необходимо перенести базу данный в подпапку db
. А так же обновить ссылки в Документации к App
Идентификатор Докладчика Andrei-Kirpichev
записан неверно. Всех Андреев у нас кодируют как Andrey
.
Необходимо изменить идентификатор Andrei-Kirpichev
на Andrey-Kirpichev
.
Сейчас модель Докладчика поддерживает указание нескольких ресурсов для получения большей информации о личности.
Необходимо добавить к списку возможных ресурсов GitHub аккаунт.
Сейчас в документе Сообщества (Community) отсутствует ссылка на официальный сайт.
Нужно добавить сайты всем сообществам.
Сейчас выглядит так:
Number: 32 Title: Исцеление памяти, обсуждение сетей, странный GraphQL PublishDate: 2021-07-14T21:26:20Z Authors:
Анатолий Кулаков
Игорь Лабутин Mastering: Максим Шошин Music: Максим Аршинов «Pensive yeti.0.1»: https://hightech.group/ru/about Patrons:
Александр
Сергей
А наверное хочется чтобы выглядело так:
Number: 32
Title: Исцеление памяти, обсуждение сетей, странный GraphQL
PublishDate: 2021-07-14T21:26:20Z
Authors:
Mastering: Максим Шошин
Music: Максим Аршинов «Pensive yeti.0.1»: https://hightech.group/ru/about
Patrons:
После того как App перейдёт на Сессии (DotNetRu/App#81) необходимо удалить устаревший код модели:
Сейчас списки идентификаторов содержат элементы типа String
:
<TalkIds>
<String>Future-of-Net-development</String>
<String>DSL-unexpurgated</String>
</TalkIds>
Идентификаторы должны обозначаться их конкретным типом. В том числе в составе списка.
Приведённая часть протокола должна выглядеть так:
<TalkIds>
<TalkId>Future-of-Net-development</TalkId>
<TalkId>DSL-unexpurgated</TalkId>
</TalkIds>
Необходимо сформировать единый словарь тегов (Tag) и разметить все прошедшие и будущие доклады. Теги предназначены для поиска докладов по родственным темам.
Вручную разметить все существующие доклады очень трудозатратно. Поэтому нужен инструмент, который сможет проанализировать Аудит (видео, слайды, описание докладов) и на его основе сам составит актуальные теги к каждому докладу.
Лектор Стас Павлов имеет полное имя Станислав.
Необходимо переименовать его и изменить идентификатор спикера cо Stas-Pavlov
на Stanislav-Pavlov
.
Сейчас используюя приложение DotNetRu можно оперативно узнать о новом митапе. Но к сожалению, зарегистрироваться на митап прямо через приложение нельзя, т.к. нет ссылки на регистрацию в митапе. Поэтому пользователю нужно искать ссылку в других местах, что не очень удобно.
Хочется получить ссылку на регистрацию из митапа, чтобы приложение могло ее отобразить. Таким образом, пользователь сможет оперативно зарегистрироваться на встречу.
Сейчас в Audit нет хватает информации о сообществах, e.g. нет ссылок на VK группу, Twitter, Slack, Facebook и др.
Нужно собрать информацию у активистов сообществ и добавить ее в Audit.
Сейчас логотипы сообществ находятся в отдельном репозитории: https://github.com/AnatolyKulakov/SpbDotNet
Нужно перенести логотипы в Audit, чтобы информация была в одном месте.
Формат - svq, чтобы клиенты могли использовать логотипы в любом удобном формате.
Нужно добавить все логотипы (с рамкой, на белом фоне) - чтобы удовлетворить нужды разных клиентов.
Сейчас в базе информация только о группе SpbDotNet.
Необходимо также добавить и начать поддерживать в актуальном состоянии активность группы MskDotNet.
Сейчас модель Площадки включает имя города в поле Адреса.
Необходимо выделить Город в отдельное поле. Поле адреса должно быть указано без города.
Сейчас для выступления можно определить только дату по Встрече.
Необходимо добавить возможность вычислить время начала и окончания каждого выступления.
Должны покрываться следующие истории:
Вижу два доклада Ромы Неволина, похоже на дубликат:
https://github.com/DotNetRu/Audit/blob/master/db/talks/Why-your-architecture-is-functional.xml
https://github.com/DotNetRu/Audit/blob/master/db/talks/Why-is-Your-Architecture-Functional.xml
Первый правильный (на него есть ссылка из митапа)
Сейчас у площадки отсутствует понятие вместимости. Но это очень полезное свойство при планировании Встречи.
Необходимо добавить обязательное, целочисленное значение максимальной вместимости Площадки.
Необходимо осмыслить и реализовать механизм Блях (Badges). А также добавить знаки различия Спикерам за следующие заслуги:
🥇 Открытие сообщества
Выдаётся Докладчикам, которые выступали в сообществе и после этого сделали доклад на конференции DotNext.
🥇 Гордость сообщества
Выдаётся Докладчикам, которые первый свой опыт публичных выступлений приобрели в сообществе и после этого сделали доклад на конференции DotNext.
🥇 Именитый гость
Выдаётся Докладчикам, которые выступали в сообществе, после опыта на конференции DotNext.
🥇 Активист сообщества
Выдаётся докладчикам, внёсшим значительный вклад в развитие сообщества.
Владимир Кочетков (Msk-2015, 3 место)
Анатолий Кулаков (Msk-2015, 4 место)
Игорь Яковлев
Роман Неволин (Msk-2016, 5 место)
Владимир Кошелев
Игорь Лабутин
Валерий Петров
Андрей Акиньшин
Дмитрий Нестерук
Михаил Щербаков
Дмитрий Иванов
Сергей Шкредов
Александр Шведов
Sasha Goldshtein
Сергей Щегрикович
Михаил Филиппов
Андрей Терехов
Станислав Сидристый
Илья Фофанов
Елизавета Голенок
Владимир Кошелев
Юлия Ковалёва (Спб-2017)
Никита Цуканов
Андрей Акиньшин
Егор Богатов
Adam Sitnik
Юлия Цисык
Вячеслав Михайлов
Михаил Щербаков
Дмитрий Сошников
Владимир Кочетков
Николай Гусев
Кирилл Ветчинкин
В докладе Boundary-Between-Database-Logic-and-Application-Server
спикер указана как Mariya-Shekochikhina
.
При этом в списке спикеров ее папка названа Mariya-Schekochikhina
, при этом ID внутри index.xml тоже: Mariya-Schekochikhina
.
Т.е. по идее в митапе надо поправить.
Так как время Докладов записывается в UTC необходимо иметь способ сконвертировать его в локальное время Сообщества. Для этого каждое Сообщество должно давать возможность узнать локальное смещение времени относительно UTC.
Сейчас у встреч нет фотографий.
Добавлять фотографии прямо в git репозиторий не разумно. Поэтому лучше всего оформить их как сторонний ресурс. В качестве такого ресурса разумно использовать фото-альбомы VK.com, в которых по-факту сейчас и хранятся все фотографии.
Необходимо добавить автоматическую проверку правильности модели (kulakovt/Boombr#14) при фиксации изменений в ветке master.
Для всех городов необходимо добавить ссылки на реальных людей, которые делают сообщество. Возможно стоит их сгруппировать по занимаемой должности (Лидер, ПК, Активисты).
Объединённая команда DotNetRu взяла курс на путешествие по конференциям со своей шоу-программой.
Необходимо оформить её как полноценного участника активной жизни сообщества и отметить заслуги товарищей. Проведены следующие встречи:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.