2025-10 List of project files

This commit is contained in:
2025-10-02 22:26:21 +03:00
parent 795a646d60
commit 63b3d7eb54
25 changed files with 546 additions and 307 deletions

View File

@@ -18,7 +18,7 @@ too large`.
требует от меня настройки и поддержки собственного сервера. На это
у меня сейчас нет ни средств, ни времени, к сожалению.
Поэтому, столкнувшися в очередной раз со стеной действительности, приходится
Поэтому, столкнувшись в очередной раз со стеной действительности, приходится
отойти на следующую позицию: ПСКОВ теперь будет приложением Node.js,
генерирующим сайт локально. Гитом пусть сам пользователь
занимается.

View File

@@ -0,0 +1,28 @@
Title: Список файлов проекта
Date: 2025-10-02
Category: News
Slug: display-files
Lang: ru
<video controls width="700">
<source src="../../images/2025-10_display-files.mp4" type="video/mp4"/>
</video>
# Отображение файлов проекта
В сентябре сделал заготовку ПСКОВ 2 из двух частей: веб-клиент + веб-сервер:
* веб-сервер предоставляет доступ веб-клиенту к файлам на диске в формате [Local Host Access][lha]
* веб-клиент предоставляет интерфейс человеку для работы с содержимым сайта
Логику написал на Kotlin. Из Kotlin получаю для Node.js и браузера код на
JavaScript. Работа с Kotlin в качестве [якорного языка][year24]
наконец приобрела прикладной характер.
# Октябре
В октябре планирую сделать возможность просматривать файлы Markdown.
[lha]: lha-jvm-macos.html
[year24]: year24.html

View File

@@ -0,0 +1,70 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<link rel="stylesheet" href="../../style.css">
</head>
<body>
<script data-goatcounter="https://services.opengamestudio.org:443/count" async src="//services.opengamestudio.org:443/count.js"></script>
<div id="header">
<div class="header2">
<div class="menu">
<a href="../../ru/news/index.html">Новости</a>
<a href="../../ru/game/index.html">Игры</a>
<a href="../../ru/tool/index.html">Инструменты</a>
<a href="../../ru/page/about.html">О нас</a>
</div>
<div id="lang">
<a href="../../en/news/display-files.html">EN</a>
<a href="../../ru/news/display-files.html">RU</a>
</div>
<div class="clear"></div>
</div>
</div>
<h3 class="left_item_title">В новостях...</h3>
<center>
<div class="news_item">
<h2 class="news_item_title">
<a href="display-files.html">Список файлов проекта</a>
</h2>
<p class="news_item_date">
2025-10-02
</p>
<div class="news_item_contents">
<video controls width="700">
<source src="../../images/2025-10_display-files.mp4" type="video/mp4"/>
</video>
<h1 id="">Отображение файлов проекта</h1>
<p>В сентябре сделал заготовку ПСКОВ 2 из двух частей: веб-клиент + веб-сервер:</p>
<ul>
<li>веб-сервер предоставляет доступ веб-клиенту к файлам на диске в формате <a href="lha-jvm-macos.html">Local Host Access</a></li>
<li>веб-клиент предоставляет интерфейс человеку для работы с содержимым сайта</li>
</ul>
<p>Логику написал на Kotlin. Из Kotlin получаю для Node.js и браузера код на
JavaScript. Работа с Kotlin в качестве <a href="year24.html">якорного языка</a>
наконец приобрела прикладной характер.</p>
<h1 id="-1">Октябре</h1>
<p>В октябре планирую сделать возможность просматривать файлы Markdown.</p>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://opengamestudio.org/ru/news/display-files.html";
this.page.identifier = "display-files.html";
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://opengamestudio.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Пожалуйста, включите JavaScript для просмотра <a href="https://disqus.com/?ref_noscript">комментариев на платформе Disqus.</a></noscript>
<div id="footer">
Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
</div>
</center>
</body>
</html>

View File

@@ -25,6 +25,29 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="display-files.html">Список файлов проекта</a>
</h2>
<p class="news_item_date">
2025-10-02
</p>
<div class="news_item_contents">
<video controls width="700">
<source src="../../images/2025-10_display-files.mp4" type="video/mp4"/>
</video>
<h1 id="">Отображение файлов проекта</h1>
<p>В сентябре сделал заготовку ПСКОВ 2 из двух частей: веб-клиент + веб-сервер:</p>
<ul>
<li>веб-сервер предоставляет доступ веб-клиенту к файлам на диске в формате <a href="lha-jvm-macos.html">Local Host Access</a></li>
<li>веб-клиент предоставляет интерфейс человеку для работы с содержимым сайта</li>
</ul>
<p>Логику написал на Kotlin. Из Kotlin получаю для Node.js и браузера код на
JavaScript. Работа с Kotlin в качестве <a href="year24.html">якорного языка</a>. . .</p>
</div>
<div class="news_item_more">
<a href="display-files.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="kotlin-cross.html">Возврат к межплатформенным решениям</a>
</h2>
@@ -236,28 +259,6 @@ Local Host Access для доступа к его локальной файло
<div class="news_item_more">
<a href="psk-jvm-item.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="year24.html">Итоги 2024-го года</a>
</h2>
<p class="news_item_date">
2025-01-15 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2025_year24-ru.jpg" alt="year24" /></p>
<h1 id="">Итоги</h1>
<p>Рассмотрим результаты года квартал за кварталом:</p>
<ul>
<li><strong>Первый квартал</strong> (январь - март):<ul>
<li>(Swift) Реализована шина обмена данными для iOS с целью создания общего пространства для взаимодействия разрозненного кода</li>
<li>Введено понятие «Модель ограниченного языка» (Limited language model) для описания правил портируемости кода</li>
<li>Python выбран якорным языком программирования, из которого генерируются функциональные копии на других языках</li></ul></li>
<li><strong>Второй квартал</strong> (апрель - июнь):. . .</li>
</ul>
</div>
<div class="news_item_more">
<a href="year24.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 1 из 9</p>
<p>

View File

@@ -25,6 +25,28 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="year24.html">Итоги 2024-го года</a>
</h2>
<p class="news_item_date">
2025-01-15 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2025_year24-ru.jpg" alt="year24" /></p>
<h1 id="">Итоги</h1>
<p>Рассмотрим результаты года квартал за кварталом:</p>
<ul>
<li><strong>Первый квартал</strong> (январь - март):<ul>
<li>(Swift) Реализована шина обмена данными для iOS с целью создания общего пространства для взаимодействия разрозненного кода</li>
<li>Введено понятие «Модель ограниченного языка» (Limited language model) для описания правил портируемости кода</li>
<li>Python выбран якорным языком программирования, из которого генерируются функциональные копии на других языках</li></ul></li>
<li><strong>Второй квартал</strong> (апрель - июнь):. . .</li>
</ul>
</div>
<div class="news_item_more">
<a href="year24.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="lha-jvm-macos.html">Первая рабочая версия Local Host Access</a>
</h2>
@@ -205,29 +227,6 @@ class memory_Context:
<div class="news_item_more">
<a href="memory-logic.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="llm-first-py-cxx.html">Первый пример портируемого кода</a>
</h2>
<p class="news_item_date">
2024-04-11 00:00
</p>
<div class="news_item_contents">
<h1 id="">Выбор платформ для портирования</h1>
<p>Для подтверждения портируемости кода я выбрал следующие платформы и языки:</p>
<ul>
<li>C++: Linux, macOS, OpenWrt, Windows</li>
<li>JavaScript: Chrome, Firefox, Safari</li>
<li>Kotlin: Android</li>
<li>Python: Linux, macOS, Windows</li>
<li>Swift: iOS, macOS</li>
</ul>
<p>На указанных языках я сделал простейший аналог «Hello World», тем самым изучив требования каждой из платформ.</p>
<p>Отдельно отмечу, что самой сложной для обуздания платформой оказалась OpenWrt, т.к. поддержка моего маршрутизатора TP-Link TL-MR3020 r1 закончилась в 2018-м году. Пришлось ставить старую версию OpenWrt, что заняло три недели.. . .</p>
</div>
<div class="news_item_more">
<a href="llm-first-py-cxx.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 2 из 9</p>
<p>

View File

@@ -25,6 +25,29 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="llm-first-py-cxx.html">Первый пример портируемого кода</a>
</h2>
<p class="news_item_date">
2024-04-11 00:00
</p>
<div class="news_item_contents">
<h1 id="">Выбор платформ для портирования</h1>
<p>Для подтверждения портируемости кода я выбрал следующие платформы и языки:</p>
<ul>
<li>C++: Linux, macOS, OpenWrt, Windows</li>
<li>JavaScript: Chrome, Firefox, Safari</li>
<li>Kotlin: Android</li>
<li>Python: Linux, macOS, Windows</li>
<li>Swift: iOS, macOS</li>
</ul>
<p>На указанных языках я сделал простейший аналог «Hello World», тем самым изучив требования каждой из платформ.</p>
<p>Отдельно отмечу, что самой сложной для обуздания платформой оказалась OpenWrt, т.к. поддержка моего маршрутизатора TP-Link TL-MR3020 r1 закончилась в 2018-м году. Пришлось ставить старую версию OpenWrt, что заняло три недели.. . .</p>
</div>
<div class="news_item_more">
<a href="llm-first-py-cxx.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="bus-iOS.html">Шина-iOS</a>
</h2>
@@ -182,21 +205,6 @@ Ubuntu Edge</a>. Особенностью продукта должна была
<div class="news_item_more">
<a href="on-the-way-to-durable-applications.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="defending-availability.html">Защита доступности</a>
</h2>
<p class="news_item_date">
2019-04-16 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2019-04-16_defending-availability.jpg" alt="Алтайская река Катунь" /></p>
<p>В этой статье мы расскажем о начале усилий по защите себя от решений третьих сторон.</p>
<p>С первого дня существования проекта Opensource Game Studio мы используем решения третьих сторон для достижения своей цели по созданию лучших средств разработки игр. Мы использовали форумы, системы отслеживания задач, списки рассылок, социальные сети, системы контроля версий кода, хостинги, компиляторы, библиотеки и т.д.. Каждое решение третьих сторон имеет свой жизненный цикл.. . .</p>
</div>
<div class="news_item_more">
<a href="defending-availability.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 3 из 9</p>
<p>

View File

@@ -25,6 +25,21 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="defending-availability.html">Защита доступности</a>
</h2>
<p class="news_item_date">
2019-04-16 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2019-04-16_defending-availability.jpg" alt="Алтайская река Катунь" /></p>
<p>В этой статье мы расскажем о начале усилий по защите себя от решений третьих сторон.</p>
<p>С первого дня существования проекта Opensource Game Studio мы используем решения третьих сторон для достижения своей цели по созданию лучших средств разработки игр. Мы использовали форумы, системы отслеживания задач, списки рассылок, социальные сети, системы контроля версий кода, хостинги, компиляторы, библиотеки и т.д.. Каждое решение третьих сторон имеет свой жизненный цикл.. . .</p>
</div>
<div class="news_item_more">
<a href="defending-availability.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="teaching-kids-to-program.html">Обучение детей программированию</a>
</h2>
@@ -178,30 +193,6 @@
<div class="news_item_more">
<a href="mahjong-techdemo1-gameplay.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-recreation-start.html">Начало воссоздания Маджонга</a>
</h2>
<p class="news_item_date">
2018-01-26 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-01-26-mahjong-recreation-start.png" alt="Сферические фишки в раскладке Маджонг" /></p>
<p>Эта статья описывает начало воссоздания игры Маджонг.</p>
<p><strong>План</strong></p>
<p>Мы начали воссоздание Маджонга с составления краткого плана реализации игровой механики с минимальной графикой:</p>
<ul>
<li>Загрузить раскладку</li>
<li>Поместить фишки в позиции раскладки</li>
<li>Различить фишки</li>
<li>Реализовать выбор фишек</li>
<li>Реализовать сравнение фишек</li>
</ul>
<p>Как и любой другой план, этот выглядел вполне адекватно на первый взгляд. Тем не менее стоит начать разработку, как появляются новые детали. Этот план не был исключением. Ниже представлена пара проблем, вскрывшихся во время разработки.. . .</p>
</div>
<div class="news_item_more">
<a href="mahjong-recreation-start.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 4 из 9</p>
<p>

View File

@@ -25,6 +25,30 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="mahjong-recreation-start.html">Начало воссоздания Маджонга</a>
</h2>
<p class="news_item_date">
2018-01-26 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2018-01-26-mahjong-recreation-start.png" alt="Сферические фишки в раскладке Маджонг" /></p>
<p>Эта статья описывает начало воссоздания игры Маджонг.</p>
<p><strong>План</strong></p>
<p>Мы начали воссоздание Маджонга с составления краткого плана реализации игровой механики с минимальной графикой:</p>
<ul>
<li>Загрузить раскладку</li>
<li>Поместить фишки в позиции раскладки</li>
<li>Различить фишки</li>
<li>Реализовать выбор фишек</li>
<li>Реализовать сравнение фишек</li>
</ul>
<p>Как и любой другой план, этот выглядел вполне адекватно на первый взгляд. Тем не менее стоит начать разработку, как появляются новые детали. Этот план не был исключением. Ниже представлена пара проблем, вскрывшихся во время разработки.. . .</p>
</div>
<div class="news_item_more">
<a href="mahjong-recreation-start.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="the-year-of-lessons.html">Год новых уроков</a>
</h2>
@@ -154,25 +178,6 @@
<div class="news_item_more">
<a href="osg-sample.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="its-all-fine.html">Всё проходит хорошо</a>
</h2>
<p class="news_item_date">
2017-04-07 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-04_its-all-fine.png" alt="Полёт ракеты" /></p>
<p>Эта статья рассказывает о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.</p>
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">Первые четыре самоучителя OpenSceneGraph</a> объясняют, как создать модель куба в Blender и затем отобразить её на Linux, macOS или Windows с помощью osgviewer, стандартного инструмента OpenSceneGraph.</p>
<p>Процесс создания одного самоучителя оказался довольно утомительным, т.к. он состоит из следующих задач:</p>
<ol>
<li>Записать видео с одним или более шагами. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="its-all-fine.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 5 из 9</p>
<p>

View File

@@ -25,6 +25,25 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="its-all-fine.html">Всё проходит хорошо</a>
</h2>
<p class="news_item_date">
2017-04-07 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-04_its-all-fine.png" alt="Полёт ракеты" /></p>
<p>Эта статья рассказывает о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.</p>
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">Первые четыре самоучителя OpenSceneGraph</a> объясняют, как создать модель куба в Blender и затем отобразить её на Linux, macOS или Windows с помощью osgviewer, стандартного инструмента OpenSceneGraph.</p>
<p>Процесс создания одного самоучителя оказался довольно утомительным, т.к. он состоит из следующих задач:</p>
<ol>
<li>Записать видео с одним или более шагами. . .</li>
</ol>
</div>
<div class="news_item_more">
<a href="its-all-fine.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="lets-go.html">Поехали</a>
</h2>
@@ -168,23 +187,6 @@
<div class="news_item_more">
<a href="ogs-editor-0.10.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="yesterdays-live-session-short-overview.html">Пара слов о вчерашнем прямом эфире</a>
</h2>
<p class="news_item_date">
2016-09-26 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen></iframe>
<p>Создание пасьянса Маджонг прошло успешно, и заняло менее 4 часов.</p>
<p>Мы опубликуем материалы прямого эфира чуть позже на этой неделе.</p>
<p>Спасибо за участие.
. . .</p>
</div>
<div class="news_item_more">
<a href="yesterdays-live-session-short-overview.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 6 из 9</p>
<p>

View File

@@ -25,6 +25,23 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="yesterdays-live-session-short-overview.html">Пара слов о вчерашнем прямом эфире</a>
</h2>
<p class="news_item_date">
2016-09-26 00:00
</p>
<div class="news_item_contents">
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen></iframe>
<p>Создание пасьянса Маджонг прошло успешно, и заняло менее 4 часов.</p>
<p>Мы опубликуем материалы прямого эфира чуть позже на этой неделе.</p>
<p>Спасибо за участие.
. . .</p>
</div>
<div class="news_item_more">
<a href="yesterdays-live-session-short-overview.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="september-live-session-announcement-tomorrow.html">Прямой эфир через 24 часа</a>
</h2>
@@ -154,22 +171,6 @@
<div class="news_item_more">
<a href="may-live-session-decision.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="rolling-ball.html">Запись прямого эфира "Катящийся мяч" и материалы</a>
</h2>
<p class="news_item_date">
2016-02-10 00:00
</p>
<div class="news_item_contents">
<p>Т.к. мы провели 2 прямые трансляции для создания игры "Катящийся мяч", ниже вы можете увидеть 2 записи этого процесса на YouTube:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen></iframe>
<iframe width="560" height="315" src="http://www.youtube.com/embed/851IlFT7y18" frameborder="0" allowfullscreen></iframe>
<p>Игра "Катящийся мяч" для Linux (на основе Debian), OS X (10.9+), Windows <a title="SourceForge" href="http://sourceforge.net/projects/osrpgcreation/files/Games/RollingBall/">доступна на SourceForge</a>.. . .</p>
</div>
<div class="news_item_more">
<a href="rolling-ball.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 7 из 9</p>
<p>

View File

@@ -25,6 +25,22 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="rolling-ball.html">Запись прямого эфира "Катящийся мяч" и материалы</a>
</h2>
<p class="news_item_date">
2016-02-10 00:00
</p>
<div class="news_item_contents">
<p>Т.к. мы провели 2 прямые трансляции для создания игры "Катящийся мяч", ниже вы можете увидеть 2 записи этого процесса на YouTube:</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen></iframe>
<iframe width="560" height="315" src="http://www.youtube.com/embed/851IlFT7y18" frameborder="0" allowfullscreen></iframe>
<p>Игра "Катящийся мяч" для Linux (на основе Debian), OS X (10.9+), Windows <a title="SourceForge" href="http://sourceforge.net/projects/osrpgcreation/files/Games/RollingBall/">доступна на SourceForge</a>.. . .</p>
</div>
<div class="news_item_more">
<a href="rolling-ball.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="rolling-ball-live-session-pt2.html">Создание игры в прямом эфире (часть 2): 7 февраля 2016</a>
</h2>
@@ -151,21 +167,6 @@
<div class="news_item_more">
<a href="bye-desura-hello-humblebundle.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="test-chamber-for-everyone.html">Тестовый цех каждому (Редактор 0.7.0)</a>
</h2>
<p class="news_item_date">
2015-07-22 00:00
</p>
<div class="news_item_contents">
<p>Как вы знаете, основная цель Редактора 0.7.0 - это возможность создать <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a> с помощью него. Редактору не хватает системы Действий и исправления некоторых ошибок для этого. Помимо выпуска Редактора мы опубликуем подробную статью, описывающую создание тестового цеха, чтобы каждый мог создать себе свой тестовый цех!</p>
<p>Мы планируем завершить его в Октябре.
. . .</p>
</div>
<div class="news_item_more">
<a href="test-chamber-for-everyone.html">Читать далее</a>
</div>
</div>
<p class="pagination_title">Страница 8 из 9</p>
<p>

View File

@@ -25,6 +25,21 @@
<h1>Новости</h1>
<div class="news_item">
<h2 class="news_item_title">
<a href="test-chamber-for-everyone.html">Тестовый цех каждому (Редактор 0.7.0)</a>
</h2>
<p class="news_item_date">
2015-07-22 00:00
</p>
<div class="news_item_contents">
<p>Как вы знаете, основная цель Редактора 0.7.0 - это возможность создать <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a> с помощью него. Редактору не хватает системы Действий и исправления некоторых ошибок для этого. Помимо выпуска Редактора мы опубликуем подробную статью, описывающую создание тестового цеха, чтобы каждый мог создать себе свой тестовый цех!</p>
<p>Мы планируем завершить его в Октябре.
. . .</p>
</div>
<div class="news_item_more">
<a href="test-chamber-for-everyone.html">Читать далее</a>
</div>
</div><div class="news_item">
<h2 class="news_item_title">
<a href="2015-roadmap.html">Дорожная карта 2015-2016</a>
</h2>

View File

@@ -41,7 +41,7 @@ too large</code>.</p>
<p>Таким образом, поддержка <code>git push</code> для репозиториев нормального размера
требует от меня настройки и поддержки собственного сервера. На это
у меня сейчас нет ни средств, ни времени, к сожалению.</p>
<p>Поэтому, столкнувшися в очередной раз со стеной действительности, приходится
<p>Поэтому, столкнувшись в очередной раз со стеной действительности, приходится
отойти на следующую позицию: ПСКОВ теперь будет приложением Node.js,
генерирующим сайт локально. Гитом пусть сам пользователь
занимается.</p>