diff --git a/en/game/index.html b/en/game/index.html index 8e22166..bb6020e 100644 --- a/en/game/index.html +++ b/en/game/index.html @@ -2,93 +2,29 @@
- +Remake of OGS Mahjong 1 that runs inside your web browser. Try it now!
+ +Remake of OGS Mahjong 1 under MAOH name, now right inside your web browser. Try it now!
. . .
Remake of OGS Mahjong 1 that runs inside your web browser. Try it now!
+ +Remake of OGS Mahjong 1 under MAOH name, now right inside your web browser. Try it now!
+ 2021-01-28 00:00 +
+In this article Michael shares his experience of creating durable applications.
+In 2013 Canonical tried to crowdfund Ubuntu Edge smartphone. +Its main feature could be the ability to use the smartphone as a full-fledged +PС. Unfortunatly, the crowdfunding campaign did not accumulate enough money, +so a dream of having a universal device remained to be the dream.
+I've been searching for universality, too, on the software side, +not the hardware one. Today I can confidently say I found the necessary +combination: Git and JavaScript.
+As you know, I have already described the benefits of browser applications +(nCKOB static site generator) and the benefits of using Git +instead of yet another back-end with API (GitBudget to track +personal spendings). Once GitBudget was out, I spent the remaining 2020 +to build a system allowing one to create browser applications right inside +browsers. GitJS is the name of that system.
+The system uses Git for:
+Thus, Git is not used for version control, Git is merely a +widespread technology to keep data with read (HTTP) and write permissions. This +might be somewhat counterintuitive. However, this allows everyone to decide +where and how to keep data: paid/free, locally/remotely.
+You might argue that FTP/rsync could be used instead of Git if we only +need to keep data. However, there are no widespread services like +SourceForge/GitHub/BitBucket/GitLab for FTP/rsync. Also, there are no +implementations of FTP/rsync that work inside browsers, and Git has +Isomorphic-Git.
+JS (alongside HTML/CSS) is used for:
+GitJS consists of the following three mandatory parts (in the order of execution):
+?
symbolStartup module may introduce absolutely any additional rules to GitJS ones or +even replace them, so your fantasy here is only limited by what browsers +permit: e.g., you can't erase all hard drive files of a user.
+I'd like to stress that having an HTML page and Git web service locally +lets you use GitJS without the Internet.
+Currently, the editor has very basic functionality:
+1.1. Editing of module's text files
+ +1.2. Publishing changes to Git
+ +Note: browsers keep passwords.
+1.3. Editing the structure of a module
+ +1.4. Opening previously loaded modules from LocalStorage/IndexedDB
+ +1.5. Saving changes locally into LocalStorage/IndexedDB
+Here's the editor's last version: http://gitjs.org/📦. +The first run takes some time, be patient.
+Currently, the game has the following functionality:
+2.1. Selection and removal of tiles off the field according to Mahjong solitaire rules
+ +2.2. Tile theme selection
+ +2.3. Field layout selection
+ +2.4. Victory/loss detection
+Here's the game's last version: http://gitjs.org/🀄/1.0.14.
+In the end, this game will match the original Mahjong (released several +years ago) in terms of features.
+GitJS limitations stem from browser ones.
+1. CORS
+To be able to publish changes to Git, we have to meet CORS restrictions. +Currently, major services do not allow to publish Git changes easily, +so one would have to use either a proxy, or a personal Git service.
+2. Full-screen surfing on mobile
+Nowadays, browsers collapse navigation and other controls when you scroll a +page that doesn't fit into available space. This leaves the space at the top +and the bottom of the screen free of controls but still unusable for touches +because these touches bring those controls back. Such behaviour is very +inconvenient for games.
+Mahjong solitaire works around that problem by supporting portrait mode: you +can shift the field left/right. However, such a solution has its own drawbacks: +one cannot see the field at a single glance, which makes the game harder to play.
+nCKOB mentioned earlier will be rewritten as GitJS application. This +would allow anyone to create statically generated sites without leaving a +browser. We'll see how this goes.
+PS: The first image is "Bayan" picture created by Viktor Vasnetsov in 1910.
++ 2021-01-28 00:00 +
+In this article Michael shares his experience of creating durable applications.
+In 2013 Canonical tried to crowdfund Ubuntu Edge smartphone. +Its main feature could be the ability to use the smartphone as a full-fledged. . .
+- 2018-10-02 00:00 -
-We are glad to announce the release of the second demonstration of OGS Mahjong 2. The purposes of this release were to refine our development techniques and build a solid cross-platform foundation.. . .
-Page 1 of 7
diff --git a/en/news/index.template b/en/news/index.template index 8328982..d9618dd 100644 --- a/en/news/index.template +++ b/en/news/index.template @@ -2,93 +2,29 @@
- ++ 2018-10-02 00:00 +
+We are glad to announce the release of the second demonstration of OGS Mahjong 2. The purposes of this release were to refine our development techniques and build a solid cross-platform foundation.. . .
+- 2017-09-10 00:00 -
-This article describes the birth of MJIN world in August 2017.
-mjin-player
-As you know, we spent July to research scripting. We found a solution that satisfies the following criteria. Scripts should:. . .
-Page 2 of 7
diff --git a/en/news/index3.html b/en/news/index3.html index b15e607..f866a0b 100644 --- a/en/news/index3.html +++ b/en/news/index3.html @@ -2,98 +2,51 @@
- ++ 2017-09-10 00:00 +
+This article describes the birth of MJIN world in August 2017.
+mjin-player
+As you know, we spent July to research scripting. We found a solution that satisfies the following criteria. Scripts should:. . .
+- 2016-12-15 00:00 -
-This article describes the start of MJIN library separation into modules.
-Once we built OpenSceneGraph for Android, it became obvious that some MJIN functionality is not suitable for Android. For example, UIQt provides a basis for OGS Editor UI. Since OGS Editor is a desktop application, we don't need UIQt for Android.. . .
-Page 3 of 7
diff --git a/en/news/index4.html b/en/news/index4.html index 0beb84c..928cef2 100644 --- a/en/news/index4.html +++ b/en/news/index4.html @@ -2,98 +2,50 @@
- ++ 2016-12-15 00:00 +
+This article describes the start of MJIN library separation into modules.
+Once we built OpenSceneGraph for Android, it became obvious that some MJIN functionality is not suitable for Android. For example, UIQt provides a basis for OGS Editor UI. Since OGS Editor is a desktop application, we don't need UIQt for Android.. . .
+- 2016-08-18 00:00 -
-If you follow us on Facebook, Twitter, or VK you noticed we started to use them again. That's no coincidence: we're finally ready to communicate our progress verbally after 4 years of almost silent development.. . .
-Page 4 of 7
diff --git a/en/news/index5.html b/en/news/index5.html index 4c496d7..3bd8729 100644 --- a/en/news/index5.html +++ b/en/news/index5.html @@ -2,98 +2,48 @@
- ++ 2016-08-18 00:00 +
+If you follow us on Facebook, Twitter, or VK you noticed we started to use them again. That's no coincidence: we're finally ready to communicate our progress verbally after 4 years of almost silent development.. . .
+- 2015-12-26 00:00 -
-As you know, according to the previously published roadmap, we now have sound system in place. However, we decided to go further and implement the first version of Player. We wanted to get it done by December, but, unfortunately, more work resulted in the change of dates.. . .
-Page 5 of 7
diff --git a/en/news/index6.html b/en/news/index6.html index faee279..7ab7704 100644 --- a/en/news/index6.html +++ b/en/news/index6.html @@ -2,98 +2,48 @@
- ++ 2015-12-26 00:00 +
+As you know, according to the previously published roadmap, we now have sound system in place. However, we decided to go further and implement the first version of Player. We wanted to get it done by December, but, unfortunately, more work resulted in the change of dates.. . .
+- 2015-03-07 00:00 -
-We completed Editor 0.4.0 in January. As it was planned, it only contains basic abilities to open and save a project. The major goal was to make MJIN, Python and Qt work together (we were unable to use PyQt or PySide due to technical difficulties).. . .
-Page 6 of 7
diff --git a/en/news/index7.html b/en/news/index7.html index 81db084..0f8585b 100644 --- a/en/news/index7.html +++ b/en/news/index7.html @@ -2,98 +2,48 @@
- ++ 2015-03-07 00:00 +
+We completed Editor 0.4.0 in January. As it was planned, it only contains basic abilities to open and save a project. The major goal was to make MJIN, Python and Qt work together (we were unable to use PyQt or PySide due to technical difficulties).. . .
+Support us
-If you like what we do, support us by joining our group at -VK, Twitter, or Facebook.
+Join us
+If you like what we do, join us at Discord.
Перевыпуск OGS Mahjong 1, теперь прямо в веб-браузере. Попробуйте прямо сейчас!
+ +Перевыпуск OGS Mahjong 1 под названием MAOH, теперь прямо в вашем веб-браузере. +Попробуйте прямо сейчас!
. . .
Перевыпуск OGS Mahjong 1, теперь прямо в веб-браузере. Попробуйте прямо сейчас!
+ +Перевыпуск OGS Mahjong 1 под названием MAOH, теперь прямо в вашем веб-браузере. +Попробуйте прямо сейчас!
+ 2021-01-28 00:00 +
+В этой статье Михаил поделится опытом создания доступных долговечных приложений.
+В 2013 году компания Canonical пыталась собрать средства на выпуск смартфона +Ubuntu Edge. Особенностью продукта должна была стать возможность +преобразовывать смартфон в полноценный ПК. Увы, необходимую сумму собрать не +удалось, поэтому мечта создать универсальное устройство так и осталась мечтой.
+Со своей стороны я давно искал универсальность со стороны программного +обеспечения, не железа. Сегодня с уверенностью могу сказать, что нашёл +необходимую комбинацию: Git и JavaScript.
+Ранее я уже описывал как преимущества браузерных приложений на примере +генератора статических сайтов nCKOB, так и преимущества замены +очередного сервера с АПИ на Git для общения с внешним миром на примере +приложения учёта трат ГитБюджет. После выпуска ГитБюджета +оставшуюся часть 2020 года я потратил на систему, позволяющую создавать +браузерные приложения прямо в браузере. Эту систему я назвал GitJS.
+Git в новой системе используется для:
+Таким образом, на текущий момент Git не используется в качестве контроля версий, +лишь как широко распространённая технология хранения с доступом на чтение +(HTTP) и запись. Это несколько противоречит первоначальной задумке автора, +однако позволяет каждому определить условия хранения своих данных: +платно/бесплатно, локально/дистанционно.
+Альтернативой Git могло бы стать использование FTP/rsync, но нет ни широко +известных и доступных сервисов вроде SourceForge/GitHub/BitBucket/GitLab, ни +реализаций для работы с FTP/rsync из браузера вроде Isomorphic-Git.
+JS (вместе с HTML/CSS) используется для:
+GitJS состоит из следующих трёх обязательных частей (в порядке исполнения):
+?
Пусковой модуль может ввести абсолютно любые дополнительные правила к GitJS или +же их заменить, поэтому фантазия тут ограничена лишь возможностями браузера: +в частности, не удастся удалить все файлы пользователя на диске.
+Отдельно повторю, что наличие локальных страницы HTML и веб-сервиса Git +позволяет сделать систему независимой от Интернета.
+На текущий момент редактор обладает минимальной необходимой функциональностью:
+1.1. Правка текстовых файлов модуля
+ +1.2. Публикация изменений в Git
+ +Замечание: пароли хранит браузер.
+1.3. Правка структуры модуля
+ +1.4. Открытие ранее загруженного модуля из LocalStorage/IndexedDB
+ +1.5. Сохранение изменений локально в LocalStorage/IndexedDB
+Последняя версия редактора доступна здесь: http://gitjs.org/📦. Первый пуск происходит не быстро, так что наберитесь терпения.
+Игра на текущий момент обладает следующей функциональностью:
+2.1. Выбор и удаление фишек с поля в соответствии с правилами пасьянса Маджонг
+ +2.2. Выбор темы фишек
+ +2.3. Выбор раскладки игрового поля
+ +2.4. Определение победы и поражения
+Последняя версия игры доступна здесь: http://gitjs.org/🀄/1.0.14.
+Конечной целью для игры является воспроизведение выпущенного много лет назад +Маджонга, который работал лишь на Linux и Windows.
+Ограничения GitJS проистекают из ограничений браузеров.
+1. CORS
+Для записи изменений в Git необходимо соблюсти CORS. +На текущий момент крупные сервисы не разрешают невозбранно писать в их Git, +поэтому приходится либо использовать прокси, либо поднимать свой Git.
+2. Полноэкранный режим на мобилках
+Нынче в моду вошло схлопывание элементов управления браузеров при перемотке +страниц, не помещающихся в экран. В результате выходит, что якобы +освобождённые области сверху и снизу всё равно нельзя трогать, т.к. это +приводит к возвращению элементов управления и изменению размера области +отображения.
+В пасьянсе Маджонг эту проблему я обошёл поддержкой портретного режима и +возможностью смещать игровое поле влево/вправо. К сожалению, это усложняет +игру, т.к. не видно целиком игрового поля.
+Упоминавшийся ранее nCKOB в этому году станет приложением GitJS, что +позволит создавать статические сайты, не покидая браузер. Посмотрим, что из +этого выйдет.
+ЗЫ: Первым изображением является картина "Баян", написанная Виктором Васнецовым в 1910 году.
++ 2021-01-28 00:00 +
+В этой статье Михаил поделится опытом создания доступных долговечных приложений.
+В 2013 году компания Canonical пыталась собрать средства на выпуск смартфона +Ubuntu Edge. Особенностью продукта должна была стать возможность. . .
+- 2018-10-02 00:00 -
-Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были улучшение техники разработки и создание надёжной основы кроссплатформенной разработки.. . .
-Страница 1 из 7
diff --git a/ru/news/index.template b/ru/news/index.template index aa89347..e2f6e7e 100644 --- a/ru/news/index.template +++ b/ru/news/index.template @@ -2,93 +2,29 @@
- ++ 2018-10-02 00:00 +
+Мы рады сообщить о выпуске второй демонстрации OGS Mahjong 2. Её целью были улучшение техники разработки и создание надёжной основы кроссплатформенной разработки.. . .
+- 2017-09-10 00:00 -
-Эта статья описывает рождение вселенной MJIN в августе 2017.
-mjin-player
-Как вы знаете, в июле мы изучали скриптование. Мы нашли решение, которое удовлетворяет следующим критериям. Скрипты должны:. . .
-Страница 2 из 7
diff --git a/ru/news/index3.html b/ru/news/index3.html index 53a6864..d151850 100644 --- a/ru/news/index3.html +++ b/ru/news/index3.html @@ -2,98 +2,51 @@
- ++ 2017-09-10 00:00 +
+Эта статья описывает рождение вселенной MJIN в августе 2017.
+mjin-player
+Как вы знаете, в июле мы изучали скриптование. Мы нашли решение, которое удовлетворяет следующим критериям. Скрипты должны:. . .
+- 2016-12-15 00:00 -
-Эта статья описывает начало разделения библиотеки MJIN на модули.
-Как только мы собрали OpenSceneGraph для Android, стало очевидно, что часть функционала MJIN не нужна на Android. Например, UIQt - это основа интерфейса Редактора. Раз Редактор - это приложение для ПК, то UIQt не нужен на Android.. . .
-Страница 3 из 7
diff --git a/ru/news/index4.html b/ru/news/index4.html index 649b835..8673aa6 100644 --- a/ru/news/index4.html +++ b/ru/news/index4.html @@ -2,98 +2,50 @@
- ++ 2016-12-15 00:00 +
+Эта статья описывает начало разделения библиотеки MJIN на модули.
+Как только мы собрали OpenSceneGraph для Android, стало очевидно, что часть функционала MJIN не нужна на Android. Например, UIQt - это основа интерфейса Редактора. Раз Редактор - это приложение для ПК, то UIQt не нужен на Android.. . .
+- 2016-08-18 00:00 -
-Если вы подписаны на нашу группу в Facebook, Twitter или VK, вы заметили, что мы начали использовать её снова. Это не случайно: мы наконец созрели для вербального общения после 4 лет молчаливой разработки.. . .
-Страница 4 из 7
diff --git a/ru/news/index5.html b/ru/news/index5.html index 174f148..9edf5da 100644 --- a/ru/news/index5.html +++ b/ru/news/index5.html @@ -2,98 +2,48 @@
- ++ 2016-08-18 00:00 +
+Если вы подписаны на нашу группу в Facebook, Twitter или VK, вы заметили, что мы начали использовать её снова. Это не случайно: мы наконец созрели для вербального общения после 4 лет молчаливой разработки.. . .
+- 2015-12-26 00:00 -
-Как вы знаете, согласно ранее опубликованной дорожной карте, мы добавили звуковую систему. Тем не менее, мы решили пойти дальше и создать первую версию Проигрывателя. Мы хотели завершить его в декабре, но, к сожалению, изменение планов вылилось в изменение сроков.. . .
-Страница 5 из 7
diff --git a/ru/news/index6.html b/ru/news/index6.html index b0f2e58..f7d137c 100644 --- a/ru/news/index6.html +++ b/ru/news/index6.html @@ -2,98 +2,48 @@
- ++ 2015-12-26 00:00 +
+Как вы знаете, согласно ранее опубликованной дорожной карте, мы добавили звуковую систему. Тем не менее, мы решили пойти дальше и создать первую версию Проигрывателя. Мы хотели завершить его в декабре, но, к сожалению, изменение планов вылилось в изменение сроков.. . .
+- 2015-03-07 00:00 -
-Мы завершили работу над версией 0.4.0 редактора в январе. Как было запланировано, эта версия содержит лишь базовые возможности открыть и сохранить проект. Основная цель была в том, чтобы подружить MJIN, Python и Qt (в частности, по ряду технических причин мы не смогли использовать PyQt или PySide).. . .
-Страница 6 из 7
diff --git a/ru/news/index7.html b/ru/news/index7.html index 2f210a9..38a7478 100644 --- a/ru/news/index7.html +++ b/ru/news/index7.html @@ -2,98 +2,48 @@
- ++ 2015-03-07 00:00 +
+Мы завершили работу над версией 0.4.0 редактора в январе. Как было запланировано, эта версия содержит лишь базовые возможности открыть и сохранить проект. Основная цель была в том, чтобы подружить MJIN, Python и Qt (в частности, по ряду технических причин мы не смогли использовать PyQt или PySide).. . .
+