diff --git a/Changes.log b/Changes.log new file mode 100644 index 0000000..99087e5 --- /dev/null +++ b/Changes.log @@ -0,0 +1,5 @@ +Grammar must joy: changes log + +Version 1.0: +• A stand-alone app (from uNot) has been made; +• Publication on GitHub diff --git a/LICENSE b/LICENSE index f452599..b32fe76 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 RD AAOW Free development lab +Copyright (c) 5.07.2024 Barkhatov N. aka RD_AAOW Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 0163008..5c965cf 100644 --- a/README.md +++ b/README.md @@ -1 +1,52 @@ -# GrammarMustJoy \ No newline at end of file +# GrammarMustJoy + +## Description + +uNot (UniNotifier), the web resources supervisor service. +This app provides the ability to be notified when the content of user-specified websites changes. +In other words, about updates on them, which will be presented in the form of a text log. Only what the user +has specified is loaded – all other objects (including ads) are ignored. + +A detailed description of the app is available on [its own page](https://adslbarxatov.github.io/GrammarMustJoy) + + + + + +## Описание + +Служба наблюдения за состоянием веб-ресурсов. +Это приложение предоставляет возможность получать уведомления об изменении состояния указанных пользователем +веб-сайтов. Другими словами, об обновлениях, происходящих на них, которые представляются в виде текстового журнала. +Загружается только то, что указал пользователь – все остальные объекты (включая рекламу) игнорируются. + +Подробное описание приложения доступно на [отдельной странице](https://adslbarxatov.github.io/GrammarMustJoy/ru) + + + + + +## Requirements / Требования + +- Windows 7 or newer; +- Microsoft .NET Framework 4.8.1; +- Android version requires OS 5.0 or newer. + +Interface languages / языки интерфейса: ru_ru. + + + + + +## [Development policy and EULA](https://adslbarxatov.github.io/ADP) / [Политика разработки и EULA](https://adslbarxatov.github.io/ADP/ru) + +This Policy (ADP), its positions, conclusion, EULA and application methods +describes general rules that we follow in all of our development processes, released applications and implemented ideas. +***It must be acquainted by participants and users before using any of laboratory’s products. +By downloading them, you agree and accept this Policy!*** + +Данная Политика (ADP), её положения, заключение, EULA и способы применения +описывают общие правила, которым мы следуем во всех наших процессах разработки, вышедших в релиз приложениях +и реализованных идеях. +***Обязательна к ознакомлению для всех участников и пользователей перед использованием любого из продуктов лаборатории. +Загружая их, вы соглашаетесь и принимаете эту Политику!*** diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..cf03ef4 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,13 @@ +markdown: GFM +#theme: slate +remote_theme: pages-themes/slate@v0.2.0 +plugins: + - jekyll-remote-theme + - jemoji + - jekyll-seo-tag + +defaults: + - scope: + path: "" + values: + image: /img/UN.png diff --git a/docs/_includes/head-custom.html b/docs/_includes/head-custom.html new file mode 100644 index 0000000..ccb11da --- /dev/null +++ b/docs/_includes/head-custom.html @@ -0,0 +1,5 @@ + +
+ + + diff --git a/docs/en.md b/docs/en.md new file mode 100644 index 0000000..58584eb --- /dev/null +++ b/docs/en.md @@ -0,0 +1,51 @@ +# Grammar Must Joy project: the concept +> **ƒ** RD AAOW FDL; 6.07.2024; 0:03 + + + + + +### Содержание страницы: + +- [The project concept](#the-project-concept) +- [The mother project](https://adslbarxatov.github.io/UniNotifier) + + + + + +### The project concept + +We’ve been accompanying the Grammar must joy community for quite some time. And at this point, +the conclusion suggests itself that the result of its existence wasn’t only the opportunity +to collect some conclusions about what the ideal joke or anecdote could be. The fact is that +in the process of filling the community, we successfully created and tested a mechanism that +still exists as a button in the uNot application. How does it work? + +- First, the VK community was created, which was filled manually from various sources. *Text entries*, +usually *not exceeding a thousand characters in length*, were used as content. They were published either +immediately or delayed (but this is not particularly important). During active seeding, participating +in this community made sense; nowadays, publications in it occur much less frequently, which is why +it is more of an auxiliary nature. + +- Then a channel appeared on Telegram, since relaying directly from VK was greatly complicated by its developers. +In addition, this “distillation” made it possible to *carry out high-quality filtration of the content*. +In the process, a *template file appeared with the serial numbers of all “live” records*, which is +used in the application to speed up work (it excludes requests for non-existing records). + +- Finally, the *GMJ query function* has been added to the application. It allows you to *periodically update +the range of available entries, randomly select one of them* and display it in the news log. In this case, +the *selected entry is crossed out from the list of available ones*, which eliminates repetitions. The list +is reset when the end of the range is reached. Therefore, *the entire archive of posts +rotates continuously, remaining fully accessible to the user*. + +In this form, this mechanism has been working properly for more than three years. It can potentially +be applied to any content with certain ***critical characteristics***: +- Text entries must be *discrete*, that is, not connected to each other logically or chronologically; +- Text entries must be *autonomous*: each of them must have independent meaning and practical value; +- Text entries *must not exceed a thousand characters*: This is a technical limitation of the mechanism in its current form. +- At least *80% of records should not completely lose relevance* over time (i.e., they shouldn’t become useless). + +As you understand, jokes easily fit these characteristics – in general, the concept was developed for them. +But it is inapplicable to weather forecasts or quotes. We [have already tried](https://vk.com/upsilon_one) +to implement this method for content of a different kind. But these attempts haven’t yet been successful diff --git a/docs/favicon.png b/docs/favicon.png new file mode 100644 index 0000000..70e4353 Binary files /dev/null and b/docs/favicon.png differ diff --git a/docs/img/UN.png b/docs/img/UN.png new file mode 100644 index 0000000..345c1f7 Binary files /dev/null and b/docs/img/UN.png differ diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..e3ee1c6 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,170 @@ +# Проект Grammar must joy: общие сведения +> **ƒ** RD AAOW FDL; 6.07.2024; 0:02 + + + + + +### Содержание страницы: + +- [Описание проекта](#section-1) +- [Концепция сообщества](#section-2) +- [Начало работы](#section-3) +- [Материнский проект](https://adslbarxatov.github.io/UniNotifier/ru) +- [Ссылки для загрузки](https://adslbarxatov.github.io/DPArray/ru#grammar-must-joy) + + + + + +### Описание проекта + +Существует огромное количество групп и сообществ, коллекционирующих юмор во всех его формах. Но вряд ли многие +из них могут похвастаться грамотностью текстов и подписей. И речь не о случаях, когда именно её отсутствие есть +основа для шутки. Это может быть даже не их вина – при огромном количестве скриншотов вместо обычных постов +этого в принципе сложно добиться. + +Что ж, попробуем это исправить. Долгое время мы собирали понравившиеся записи, преобразуя их в приятную глазу +форму и выкладывая на своей стене. Просто так, чтобы отвлечься от текучки. Теперь огромный, образовавшийся почти +за семь лет запас доступен на этом канале вместе с новыми отечественными и зарубежными текстами. + +Казалось бы, зачем это нужно? И всё-таки результат того сто́ит. Контент от этих манипуляций становится только +лучше. Но при этом возвращаются возможность текстового поиска по знакомым словам и скорость загрузки на особо +медленных девайсах. К тому же, благодаря долгому отбору в коллекции остались лишь самые «стойкие» экспонаты. + +Вещание сообщества уже давно ведётся в Telegram, используя менее удобную платформу ВК в качестве +зеркала. Контент тот же, но, благодаря возможностям мессенджера во многих записях исправлены старые ошибки +и огрехи форматирования. + +Кроме того, мы создали простой клиент для сообщества, позволяющий извлекать записи в случайном порядке из всего +архива сообщества, исключая повторения, а также быстро и просто ими делиться. + +***Итак, добро пожаловать в Grammar must joy!*** + +Пара моментов: + +1. Да, контент не всегда будет (читайте: почти никогда не будет) оригинальным. И если он вдруг окажется на пути +чьего-нибудь копирайта, прошу нас об этом извещать. Такой контент нам... будет изыматься из ленты. +2. Записи могут быть разными. Конечно, без шока, браззерс и прочей неразрешёнки. Но всё-таки `18+`! +3. Если мы всё же где-то ошибёмся (что вероятно), просим также нам об этом сообщать. При таком названии группы +не хочется ударять в грязь лицом. +4. Мы следуем [Политике социальных сообществ](https://adslbarxatov.github.io/SCP/ru). Поэтому рекламы в обозримом +будущем здесь не будет. Да и комментарии тут ни к чему. Но советы, пожелания и конструктивная критика приветствуются +(в комментариях [головного сообщества](https://t.me/rd_aaow_fdl)). + +Очень надеемся, что Вам понравится юмор, который почти не подчёркивается Word’ом! + +--- + + + +### Концепция сообщества + +Мы уже достаточно давно сопровождаем сообщество Grammar must joy. И на данный момент результатом +его существования стала не только возможность собрать некоторые выводы о том, какими могли бы быть идеальная шутка или анекдот. +Дело в том, что в процессе наполнения сообщества мы успешно создали и испытали механизм, который и поныне существует в качестве +кнопки в приложении uNot. Как же он работает? + +- Сначала было создано сообщество ВКонтакте, которое наполнялось вручную из различных источников. В качестве наполнения +использовались *текстовые записи*, как правило, *не превышающие тысячи символов в длину*. Публиковались они либо сразу, +либо с отсрочкой (но это не особо важно). Во время активного наполнения участие в этом сообществе имело смысл; сейчас +же публикации в нём случаются значительно реже, из-за чего оно носит больше вспомогательный характер. + +- Затем появился канал в Telegram, поскольку ретрансляция напрямую из ВК была сильно осложнена его разработчиками. Кроме +того, такая «перегонка» позволила провести *качественную фильтрацию наполнения*. В процессе появился *файл-шаблон +с порядковыми номерами всех «живых» записей*, который и сейчас используется в приложении для ускорения работы, т.к. исключает +обращение к несуществующим записям. + +- Наконец, в приложение была добавлена функция *запроса к GMJ*. Она позволяет, *периодически обновляя диапазон доступных записей, +случайным образом выбирать одну из них* и отображать в журнале новостей. При этом выбранная запись *вычёркивается из списка +доступных*, что исключает повторы. Список сбрасывается, когда достигается конец диапазона. Следовательно, *весь архив постов +непрерывно ротируется, оставаясь полностью доступным для пользователя*. + +В таком виде данный механизм исправно работает уже более трёх лет. Он потенциально может быть применён к любому контенту +с определёнными ***критичными характеристиками***: +- Текстовые записи должны быть *дискретными*, то есть, не связанными друг с другом логически или хронологически; +- Текстовые записи должны быть *автономными*: каждая из них должна иметь самостоятельный смысл и практическую ценность; +- Текстовые записи *не должны превышать тысячи символов*: таково техническое ограничение механизма в его текущей форме. +- По крайней мере, *80% записей не должны полностью терять актуальность* с течением времени (становиться бесполезными). + +Как Вы понимаете, анекдоты под эти характеристики попадают легко – в общем-то, концепция под них и разрабатывалась. +Но какие-либо прогнозы погоды или котировки – уже нет. Мы [уже пробовали](https://vk.com/upsilon_one) реализовать данный +метод для контента иного рода. Но эти попытки пока не увенчались успехом + +--- + + + +### Начало работы + +Канал Grammar must joy, как Вы знаете, изначально был реализован на базе соцсети ВКонтакте, и весь его контент содержится +на «стене» сообщества. Это удобно для просмотра новых записей. Однако с этим же связаны некоторые недостатки, а именно: + +- Реклама. +- Снова реклама (напомним, что GMJ, согласно Политике социальных сообществ, – полностью +бесплатное сообщество, поэтому реклама в данном случае поддерживает... непонятно, кого; возможно, саму платформу, но это не точно). +- Записи возрастом больше недели почти с гарантией навсегда исчезают из виду. Что печально, ведь среди них есть множество +годных вещей, которые кто-то мог просто пропустить. +- Делиться записями со стен можно. Но мы не уверены, что это будет удобным, если нужно поделиться ею в другой соцсети +или по другому каналу. + +Что ж, это можно исправить. Ведь нам удалось правильно настроить наш супервизор веб-ресурсов, а также перенести контент +сообщества на другую платформу. Последнее потребовалось из-за требования ВК использовать совершенно лишние методы опознавания +пользователей при обычном, казалось бы, просмотре стены публичного канала. + +Вышеназванный супервизор – это, конечно же, ***uNot*** и встроенная в него функция GMJ. Это – мощный инструмент для создания +управляемых новостей и оповещений. Но его же можно использовать как обычный клиент для нашего паблика. Если у Вас возникнет +интерес к полной функциональности, Вы сможете найти всё необходимое на домашней странице этого руководства. Мы же сейчас +рассмотрим самый простой вариант его применения. + +Один момент. Если нижеизложенная инструкция покажется Вам слишком сложной, Вы можете воспользоваться отдельным клиентом +[Grammar must joy](https://adslbarxatov.github.io/DPArray/ru#grammar-must-joy). Он работает аналогичным образом, +но содержит только те функции, которые нужны для контакта с сообществом GMJ. + +Итак, чтобы получить вышеописанные возможности, делаем следующее: + +- Загружаем приложение из [Google play](https://adslbarxatov.github.io/DPArray/ru#unot-uninotifier) или в виде APK. +В соответствии с [Политикой разработки приложений](https://adslbarxatov.github.io/ADP/ru), uNot не требует платежей, не содержит рекламы +и скрытых функций и полностью безопасен в использовании. + +- Запускаем. При первом старте служба предложит ознакомиться с Политикой, а также даст краткую инструкцию по использованию. +Жмём `Принять` и `Далее`. + +- В первый раз приложение запустится на странице настроек оповещений. **Для взаимодействия с GMJ здесь ничего делать не нужно**. +Смахиваем экран влево. + +