269 lines
9.7 KiB
HTML
269 lines
9.7 KiB
HTML
<!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="../../en/news/index.html">News</a>
|
|
<a href="../../en/game/index.html">Games</a>
|
|
<a href="../../en/tool/index.html">Tools</a>
|
|
<a href="../../en/page/about.html">About</a>
|
|
</div>
|
|
<div id="lang">
|
|
<a href="../../en/news/index.html">EN</a>
|
|
<a href="../../ru/news/index.html">RU</a>
|
|
</div>
|
|
<div class="clear"></div>
|
|
</div>
|
|
</div>
|
|
<center>
|
|
<h1>News</h1>
|
|
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="gb-git-android.html">Git Budget on Android uses Git</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2026-05-31
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<video controls width="700">
|
|
<source src="../../vid/2026-06_gb-git-android.mp4" type="video/mp4"/>
|
|
</video>
|
|
<h1 id="may">May</h1>
|
|
<p>Initially I wanted to display the history of spendings in Git Budget. However, the
|
|
history depends on data, and that should have been done in Git. That's why
|
|
in May I implemented pulling/pushing of a fixed repository.</p>
|
|
<h1 id="june">June</h1>
|
|
<p>In June I plan to implement pulling/pushing on Desktop.
|
|
. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="gb-git-android.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="git-budget-qt.html">Git Budget is now finally a Qt application, too</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2026-05-01
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<video controls width="700">
|
|
<source src="../../vid/2026-04_git-budget-qt.mp4" type="video/mp4"/>
|
|
</video>
|
|
<h1 id="april">April</h1>
|
|
<p>In April I have finally updated Klin tool to generate C++ bindings. This allowed
|
|
me to have Git Budget as a Qt application for macOS using Kotlin Dialect.</p>
|
|
<p>The most interesting part is how many lines of code were saved when supporting
|
|
several platforms:</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Platform</th>
|
|
<th>Saved lines of code</th>
|
|
<th>Saved %</th>
|
|
<th>Total lines of code</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>Android</td>
|
|
<td>0 (Original code)</td>
|
|
<td>0%</td>
|
|
<td>652</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="git-budget-qt.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="kd-cpp-is-close.html">Kotlin Dialect came closer to C++</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2026-04-03
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<p><img src="../../images/2026-03_kd-cpp-is-close.jpg" alt="" /></p>
|
|
<h1 id="march">March</h1>
|
|
<p>In March (as in February) I planned to run GitBudget on Desktop,
|
|
however, the updates of Klin tool to generate C++ bindings are still
|
|
in development. There's just a little bit left.</p>
|
|
<h1 id="april">April</h1>
|
|
<p>This should finally happen in April.</p>
|
|
<p>. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="kd-cpp-is-close.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="cld-to-kd.html">Kotlin dialect</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2026-03-04
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<p><img src="../../images/2026-02_cld-to-kd.jpg" alt="" /></p>
|
|
<h1 id="february">February</h1>
|
|
<p>I planned to run GitBudget on Desktop with the help of Qt, however,
|
|
the rabbit's hole of Kotlin Multiplatform + C++ turned out to be way
|
|
deeper than I initially anticipated. Thus, I only managed to confirm the
|
|
technical feasibility of the idea and turn Cross-language dialect project
|
|
into Kotlin dialect one to have a clear focus on Kotlin.</p>
|
|
<h1 id="march">March</h1>
|
|
<p>My plan is to continue working on Kotlin dialect up to the point when I'll be
|
|
able to run GitBudget on Desktop with the help of Qt.. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="cld-to-kd.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="git-budget-draft-for-android-ios.html">GitBudget draft for Android and iOS</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2026-02-01
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<p><img src="../../images/2026-01_git-budget-android-ios.jpg" alt="" /></p>
|
|
<h1 id="january">January</h1>
|
|
<p>In January I've resurrected GitBudget project for two reasons:</p>
|
|
<ol>
|
|
<li>Combine job goals and hobby ones because they overlap through Kotlin Multiplatform</li>
|
|
<li>Evaluate Kotlin Multiplatform in decreasing code duplication among platforms (the positive results are described in <a href="https://www.reddit.com/r/KotlinMultiplatform/comments/1rgtn1z/is_kotlin_multiplatform_able_to_cut_development/">Reddit article</a>).</li>
|
|
</ol>
|
|
<p><a href="git-budget.html">In the distant 2020</a> when I approached GitBudget the first time my
|
|
main idea was to track history of spendings, not analysis. This time my
|
|
priority was to calculate the available balance left to be spent a day, i.e.,. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="git-budget-draft-for-android-ios.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="manage-files.html">Manage files</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2026-01-01
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<video controls width="700">
|
|
<source src="../../vid/pskov_0.9.0_en.mp4" type="video/mp4"/>
|
|
</video>
|
|
<h1 id="december">December</h1>
|
|
<p>In December I reworked file management: now it's an accordion with tables
|
|
instead of cards used before. Also, I added the ability to preview a page
|
|
in a separate browser tab.</p>
|
|
<p>The video shows how this functionality works and highlights the following:</p>
|
|
<ol>
|
|
<li>(00:55) Launching PSKOV with <code>npx</code></li>
|
|
<li>(01:30) Copying a file</li>
|
|
<li>(02:03) Renaming a file</li>
|
|
<li>(02:52) Previewing in a separate browser tab. . .</li>
|
|
</ol>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="manage-files.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="preview-single-page.html">Preview an edited page</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2025-12-04
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<video controls width="700">
|
|
<source src="../../vid/pskov_0.8.0_en.mp4" type="video/mp4"/>
|
|
</video>
|
|
<h1 id="november">November</h1>
|
|
<p>In November I implemented the ability to preview a single edited page.</p>
|
|
<p>The video shows how this functionality works and highlights the following:</p>
|
|
<ol>
|
|
<li>(01:37) Manual creation of a new Markdown file</li>
|
|
<li>(02:03) Launching PSKOV with <code>npx</code></li>
|
|
<li>(02:28) Markdown file structure</li>
|
|
<li>(03:31) Edited site navigation when previewing</li>
|
|
<li>(04:15) The state of the site repository after preview generation. . .</li>
|
|
</ol>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="preview-single-page.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="edit-files.html">Editing of files</a>
|
|
</h2>
|
|
<p class="news_item_date">
|
|
2025-11-01
|
|
</p>
|
|
<div class="news_item_contents">
|
|
<video controls width="700">
|
|
<source src="../../images/2025-11_edit-files.mp4" type="video/mp4"/>
|
|
</video>
|
|
<h1 id="october">October</h1>
|
|
<h3 id="1npm">1. NPM</h3>
|
|
<p>PSKOV is now available via npm. The easiest way to launch PSKOV is with the help of <code>npx</code>:</p>
|
|
<p><code>npx pskov --projectDir=/path/to/project</code></p>
|
|
<p>where <code>/path/to/project</code> should be replaced with an actual path to a project</p>
|
|
<h3 id="2fileseditrendertabs">2. <code>Files</code>, <code>Edit</code>, <code>Render</code> tabs</h3>
|
|
<p>PSKOV now has tabs which allow you to select a file, edit it or preview the result of Markdown conversion (previewing is not implemented yet). . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="edit-files.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
<div class="news_item">
|
|
<h2 class="news_item_title">
|
|
<a href="display-files.html">List of project files</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="displayingprojectfiles">Displaying project files</h1>
|
|
<p>In September I created the new draft version of PSKOV 2, which now consists of two parts: web client + web server:</p>
|
|
<ul>
|
|
<li>the web server provides access to files on disk using <a href="lha-jvm-macos.html">Local Host Access</a> format to the web client</li>
|
|
<li>the web client provides UI for a human to manage site's contents</li>
|
|
</ul>
|
|
<p>Logic is in Kotlin. Then Kotlin code is translated to JavaScript for. . .</p>
|
|
</div>
|
|
<div class="news_item_more">
|
|
<a href="display-files.html">Continue reading</a>
|
|
</div>
|
|
</div>
|
|
|
|
<p class="pagination_title">Page 1 of 10</p>
|
|
<p>
|
|
<a href="index2.html">Older »</a>
|
|
</p>
|
|
|
|
|
|
<div id="footer">
|
|
The site has been generated by <a href="http://opengamestudio.org/pskov">PSKOV</a>
|
|
from <a href="http://github.com/ogstudio/site-opengamestudio">this source code</a>.
|
|
</div>
|
|
</center>
|
|
</body>
|
|
</html>
|