<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: JA Proger</title>
    <description>The latest articles on DEV Community by JA Proger (@japroger).</description>
    <link>https://dev.to/japroger</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3624738%2F8d6b464f-8e37-4c23-9b6c-801950db0eac.jpeg</url>
      <title>DEV Community: JA Proger</title>
      <link>https://dev.to/japroger</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/japroger"/>
    <language>en</language>
    <item>
      <title>Low coding or How programmers kill themselves</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Tue, 02 Dec 2025 11:08:00 +0000</pubDate>
      <link>https://dev.to/japroger/low-coding-or-how-programmers-kill-themselves-2imi</link>
      <guid>https://dev.to/japroger/low-coding-or-how-programmers-kill-themselves-2imi</guid>
      <description>&lt;p&gt;Low code.&lt;/p&gt;

&lt;p&gt;Congrats, guys!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;We created a monster which will kill us in the nearest future.&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;JA Proger, 2025&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not all, but still this will be disappointing. &lt;br&gt;
How it was?  &lt;/p&gt;

&lt;h2&gt;
  
  
  Prolog
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Henceforth, we are free...&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
JA Proger, 2025&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Low coding&lt;/strong&gt; appeared with the first automations. Consider the IntelliJ IDE or the Xcode. Autocompletions is one the most simplest low coding experiences for user. Autofilling forms in &lt;a href="https://apple.com" rel="noopener noreferrer"&gt;macOS&lt;/a&gt; or &lt;a href="https://apple.com" rel="noopener noreferrer"&gt;iPhone&lt;/a&gt; is also a low-coding. &lt;br&gt;
Low-coding handles routine tasks,  freeing up the user. So low-coding is any automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  New milestone in Low-coding
&lt;/h2&gt;

&lt;p&gt;New milestone in low-coding is an AI now. AI...&lt;br&gt;
The AI turbocharged this concept. &lt;br&gt;
AI creates code from text, AI creates code from code, AI creates code from image! Damn! &lt;br&gt;
&lt;em&gt;****ing stupid "big beautiful" neural nets&lt;/em&gt; better then us! &lt;br&gt;
People don't need us, already??&lt;br&gt;
I'm done. Sorry.&lt;/p&gt;

&lt;p&gt;What's the power of AI? &lt;strong&gt;Tokens&lt;/strong&gt;. We all love tokens. I'm creating the &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;StaLang&lt;/a&gt;&lt;/strong&gt;. &lt;br&gt;
I know what tokens are: keywords, numbers, strings, etc. Tokens in NLP are words. In blockchain a single block is a token also. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Token — single entity, which we cannot split, that can be anything.&lt;/strong&gt;&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;NNs digest tokens and returns the desired result. That's the power. That's the future. &lt;/p&gt;

&lt;h2&gt;
  
  
  Usage &amp;amp; Evolution
&lt;/h2&gt;

&lt;p&gt;It's time for more formal description.&lt;/p&gt;

&lt;p&gt;Low coding is a concept. The idea is simple — automate as many tasks as possible. Are you too lazy to write a code of an app which will covers your technology? Great news! SwiftUI + Xcode + Ollama or OpenAI know how to deal with your lack of enthusiasm. &lt;/p&gt;

&lt;h2&gt;
  
  
  Final
&lt;/h2&gt;

&lt;p&gt;Well, fellows. We can't bit AI. Companies will fire most of coders and programmers. &lt;br&gt;
&lt;strong&gt;Bad news&lt;/strong&gt; for those, whose work was to change the keyword "class" to the keyword "protocol" in the Swift code. &lt;br&gt;
But....&lt;/p&gt;

&lt;p&gt;Any fired programmer can become a developer of his/her project. You can hire a single programmer to your project — AI. Your infrastructure is JetBrains with their AI, VSCode with an AI plugin, Xcode with GPT or local ollama free model. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Henceforth, we are free...&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>lowcode</category>
      <category>nocode</category>
      <category>tokens</category>
    </item>
    <item>
      <title>NoMarkdown Tool Release</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Tue, 25 Nov 2025 20:23:38 +0000</pubDate>
      <link>https://dev.to/japroger/nomarkdown-tool-release-5hb0</link>
      <guid>https://dev.to/japroger/nomarkdown-tool-release-5hb0</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Sorry, bro... U'll be save&lt;/em&gt; &lt;br&gt;
JA Proger, 2025&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How it was appeared?
&lt;/h2&gt;

&lt;p&gt;Since appearing of chatbots, many people started to use them. Developers of AI apps wanted to help their users. They decided to simplify AI responses with visualization, thus they implemented Markdown syntax into AI responses. &lt;br&gt;
Nice and beautiful Markdown syntax, which is a standart in programmers' world, was discredited by &lt;strong&gt;HUMANITARIANES&lt;/strong&gt;. &lt;br&gt;
Unfortunately, since that times Markdown becames a trigger of &lt;strong&gt;"bad AI"&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;I believe we have to &lt;strong&gt;hide our creature&lt;/strong&gt;, hence I created a CLI tool — &lt;strong&gt;NoMarkdown&lt;/strong&gt;. All texts created by AI have to be &lt;strong&gt;UNMARKDOWNED&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docs &amp;amp; Installation
&lt;/h2&gt;

&lt;p&gt;Install from GitHub: &lt;br&gt;
&lt;strong&gt;&lt;a href="https://github.com/ja-proger/NoMarkdown" rel="noopener noreferrer"&gt;NoMarkdown&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>swift</category>
      <category>tooling</category>
    </item>
    <item>
      <title>StaLang Lesson No 2.1. Operators</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Tue, 25 Nov 2025 14:09:04 +0000</pubDate>
      <link>https://dev.to/japroger/stalang-lesson-no-21-operators-4l90</link>
      <guid>https://dev.to/japroger/stalang-lesson-no-21-operators-4l90</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;THIS LESSON IS ACTIVELY  BEING WRITTEN&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Intro&lt;/li&gt;
&lt;li&gt;Operators&lt;/li&gt;
&lt;li&gt;Links&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Operators
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Basic
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Arithmetic
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;StaLang&lt;/strong&gt;, as you know, is a DSL programming language designed for statistics, economics, AI learning, and other staff like that. Therefore I added operators, which can handles calculations related with this.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;th&gt;Oper&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Addition&lt;/td&gt;
&lt;td&gt;&lt;code&gt;+&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subtraction&lt;/td&gt;
&lt;td&gt;&lt;code&gt;-&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiplication&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Division&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Power&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Integer division&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rest of division&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modular inverse&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Percentage&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Derivative&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gradient&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Binary
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Basic Logic
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;th&gt;Oper&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;And&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Or&lt;/td&gt;
&lt;td&gt;`&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Not&lt;/td&gt;
&lt;td&gt;{% raw %}&lt;code&gt;!&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Xor&lt;/td&gt;
&lt;td&gt;`&amp;amp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bigger&lt;/td&gt;
&lt;td&gt;{% raw %}&lt;code&gt;&amp;gt;&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Less&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Equal&lt;/td&gt;
&lt;td&gt;&lt;code&gt;==&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Not equal&lt;/td&gt;
&lt;td&gt;&lt;code&gt;!=&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bigger or equal&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;gt;=&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Less of equal&lt;/td&gt;
&lt;td&gt;&lt;code&gt;&amp;lt;=&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Fuzzy Logic
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Nil
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Random
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Type cast
&lt;/h3&gt;

&lt;h3&gt;
  
  
  String
&lt;/h3&gt;

&lt;h3&gt;
  
  
  List and Matrixes
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Operation&lt;/th&gt;
&lt;th&gt;Operator&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Append&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remove&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Add&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subtraction&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multiplication&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Abstract
&lt;/h3&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

</description>
      <category>stalang</category>
      <category>learning</category>
      <category>programming</category>
      <category>operations</category>
    </item>
    <item>
      <title>StaLang Lesson No 3 Functions</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Mon, 24 Nov 2025 06:50:10 +0000</pubDate>
      <link>https://dev.to/japroger/stalang-lesson-no-3-functions-1ido</link>
      <guid>https://dev.to/japroger/stalang-lesson-no-3-functions-1ido</guid>
      <description>&lt;p&gt;COMMING SOON&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub source code: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;StaLang&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GutHub IDE &lt;strong&gt;&lt;em&gt;for macOS&lt;/em&gt;&lt;/strong&gt;: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLangIDE" rel="noopener noreferrer"&gt;StaLang IDE&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub Docs: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang/wiki/StaLang-Documentation" rel="noopener noreferrer"&gt;StaLang Docs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ask any questions in the comments below! &lt;/p&gt;

</description>
      <category>stalang</category>
      <category>learning</category>
      <category>programming</category>
      <category>functional</category>
    </item>
    <item>
      <title>StaLang Lesson No 2 Storages</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Mon, 24 Nov 2025 06:44:25 +0000</pubDate>
      <link>https://dev.to/japroger/stalang-lessons-lesson-no-2-storages-bka</link>
      <guid>https://dev.to/japroger/stalang-lessons-lesson-no-2-storages-bka</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;THIS LESSON IS ACTIVELY  BEING WRITTEN&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Intro&lt;/li&gt;
&lt;li&gt;Storage definition&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;The quote for all concepts in StaLang, especially for this lesson&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;My language — My rules&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
JA Proger, 2025&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Storage definition
&lt;/h2&gt;

&lt;p&gt;Storage? What's the hell &lt;strong&gt;STORAGE&lt;/strong&gt; concept in programming? &lt;br&gt;
Frankly speaking, it's my idea 😈 to unify many keywords which are wonderfully can be included to this definition — &lt;code&gt;Storage&lt;/code&gt;. &lt;/p&gt;
&lt;h2&gt;
  
  
  Basic storages
&lt;/h2&gt;

&lt;p&gt;Basic storages in &lt;strong&gt;StaLang&lt;/strong&gt; are &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data &lt;code&gt;data&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Constant &lt;code&gt;const&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;List &lt;code&gt;list&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Matrix &lt;code&gt;matrix&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Alias &lt;code&gt;alias&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why so? &lt;br&gt;
I just like this. Recall the quote in the &lt;strong&gt;Intro&lt;/strong&gt; section 😈. Well, all of them designed for the &lt;strong&gt;purpose&lt;/strong&gt; of the StaLang.&lt;br&gt;
Let's dive into details.&lt;/p&gt;
&lt;h3&gt;
  
  
  Data
&lt;/h3&gt;

&lt;p&gt;What is &lt;code&gt;data&lt;/code&gt;?&lt;br&gt;
Data is a storage which can brings anything: values, structures instances, functions. &lt;/p&gt;

&lt;p&gt;Consider the following example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="k"&gt;type&lt;/span&gt; &lt;span class="n"&gt;Bulb&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="n"&gt;ON&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
   &lt;span class="n"&gt;OFF&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;five&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;bulb&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Bulb&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;ON&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Comparison with other languages:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Language&lt;/th&gt;
&lt;th&gt;Variable keyword&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;StaLang&lt;/td&gt;
&lt;td&gt;data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Swift&lt;/td&gt;
&lt;td&gt;var&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;let mut&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Go&lt;/td&gt;
&lt;td&gt;var&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;td&gt;nothing 😂&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;const&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lua&lt;/td&gt;
&lt;td&gt;local&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Const
&lt;/h3&gt;

&lt;h3&gt;
  
  
  List
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Alias
&lt;/h3&gt;

&lt;p&gt;Alias is a &lt;strong&gt;storage&lt;/strong&gt; which stores your custom alias for existed keyword. &lt;br&gt;
There are several requirements to aliases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Alias must be a valid &lt;strong&gt;ID&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="n"&gt;alias&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// You cannot do this. It will raise an error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Alias cannot be an existed keyword.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="n"&gt;alias&lt;/span&gt; &lt;span class="k"&gt;type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// You cannot do this. It will raise an error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Valid example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="n"&gt;alias&lt;/span&gt; &lt;span class="n"&gt;sexwith&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;out&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;sexwith&lt;/span&gt; &lt;span class="s"&gt;"girl"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// prints "girl"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ID
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub source code: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;StaLang&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GutHub IDE &lt;strong&gt;&lt;em&gt;for macOS&lt;/em&gt;&lt;/strong&gt;: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLangIDE" rel="noopener noreferrer"&gt;StaLang IDE&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub Docs: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang/wiki/StaLang-Documentation" rel="noopener noreferrer"&gt;StaLang Docs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ask any questions in the comments below! &lt;/p&gt;

</description>
      <category>stalang</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>StaLang Lesson No 1 Values &amp; Types</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Mon, 24 Nov 2025 05:14:07 +0000</pubDate>
      <link>https://dev.to/japroger/stalang-lesson-no-1-data-types-4ofp</link>
      <guid>https://dev.to/japroger/stalang-lesson-no-1-data-types-4ofp</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;THIS LESSON IS ACTIVELY  BEING WRITTEN&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Intro&lt;/li&gt;
&lt;li&gt;Builtin Values&lt;/li&gt;
&lt;li&gt;Values' Types&lt;/li&gt;
&lt;li&gt;Data types&lt;/li&gt;
&lt;li&gt;Final thoughts&lt;/li&gt;
&lt;li&gt;Links&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;Let's deal with it! It's not complicated if you ever have been programming something.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;StaLang&lt;/a&gt;&lt;/strong&gt; is in development&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang/wiki/StaLang-Documentation" rel="noopener noreferrer"&gt;StaLang Docs&lt;/a&gt;&lt;/strong&gt; is in drvelopment&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Builtin Values
&lt;/h2&gt;

&lt;p&gt;In StaLang there are 4 builtin values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;True &lt;code&gt;true&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;False &lt;code&gt;false&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Nil &lt;code&gt;nil&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
None &lt;code&gt;none&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
Later &lt;code&gt;later&lt;/code&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  True &amp;amp; False
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Nil
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Nil value&lt;/strong&gt; is an absence of any value. Funny 😆.&lt;br&gt;
In StaLang &lt;code&gt;nil&lt;/code&gt; is highly similar to Nil concept in other languages like Go, Swift, and etc.&lt;br&gt;
Nil is handled with a bench of operators &lt;em&gt;&lt;strong&gt;(more info on operators is &lt;a href="https://dev.to/japroger/stalang-lesson-no-21-operators-4l90"&gt;here&lt;/a&gt;)&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Let's consider the following example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* 
we define a value `email` which can be a string or nil.  
*/&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;later&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  

&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nn"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;email&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fetch&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="s"&gt;"no email"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;fetch&lt;/code&gt; is a labeled function. More info on functions is &lt;em&gt;&lt;strong&gt;&lt;a href=""&gt;here&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  None
&lt;/h3&gt;

&lt;p&gt;None is an absence of any value. What's the difference between &lt;code&gt;none&lt;/code&gt; and &lt;code&gt;nil&lt;/code&gt;?&lt;br&gt;
None will not raise an error because any value in StaLang can be &lt;code&gt;none&lt;/code&gt;. &lt;br&gt;
When you define a new &lt;code&gt;data&lt;/code&gt; without assigning to it a value, the StaLang interpreter automatically assigns to it a &lt;code&gt;none&lt;/code&gt; value, not &lt;code&gt;nil&lt;/code&gt;.&lt;br&gt;
Imagine you fetch user data from a server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="n"&gt;core&lt;/span&gt; &lt;span class="n"&gt;Net&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"https://localhost:8000"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;userName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;userAge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;userGender&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;userModel&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;Net&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;Server&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="py"&gt;.fetch&lt;/span&gt; &lt;span class="n"&gt;userId&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="s"&gt;"UserId is not valid"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;userName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;userModel&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;userName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;userAge&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;userModel&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;userAge&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;userGender&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nn"&gt;userModel&lt;/span&gt;&lt;span class="p"&gt;::&lt;/span&gt;&lt;span class="n"&gt;userGender&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The example is hypothetical, nevertheless good for understanding difference between &lt;code&gt;nil&lt;/code&gt; and &lt;code&gt;none&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The data &lt;code&gt;userName&lt;/code&gt; will has a  string value &lt;code&gt;"user"&lt;/code&gt;, because in the database the user has an assigned name.&lt;/li&gt;
&lt;li&gt;The data &lt;code&gt;userEmail&lt;/code&gt; will have a &lt;code&gt;none&lt;/code&gt; value, because the user 
has no assigned &lt;code&gt;userEmail&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The data &lt;code&gt;userGender&lt;/code&gt; will have a value nil and the NilError will be raised, because the &lt;code&gt;userModel&lt;/code&gt; has not the property &lt;code&gt;userGender&lt;/code&gt;, therefore we can't get a value, assigned to it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Later
&lt;/h3&gt;

&lt;p&gt;Later is a value, &lt;strong&gt;not a keyword&lt;/strong&gt;, which means that you are a lazy programmer and don't want to assign a value right now. When you will run your code, the interpreter will execute a &lt;code&gt;Lazy Warning&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Values' Types
&lt;/h2&gt;

&lt;p&gt;Value types are basic types of data, such as string, numbers, etc.&lt;/p&gt;

&lt;p&gt;In StaLang there are following value types.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;String &lt;code&gt;str&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Integer &lt;code&gt;int&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Float &lt;code&gt;float&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Bool &lt;code&gt;bool&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Number &lt;code&gt;num&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Binary &lt;code&gt;bin&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Hexadecimal &lt;code&gt;hex&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Any &lt;code&gt;any&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Comparison with other languages:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;StaLang&lt;/th&gt;
&lt;th&gt;Swift&lt;/th&gt;
&lt;th&gt;Rust&lt;/th&gt;
&lt;th&gt;TypeScript&lt;/th&gt;
&lt;th&gt;Go&lt;/th&gt;
&lt;th&gt;Python&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Integer&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;Int&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Number&lt;/td&gt;
&lt;td&gt;num&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;td&gt;str&lt;/td&gt;
&lt;td&gt;String&lt;/td&gt;
&lt;td&gt;str&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Character&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Character&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Binary&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hexadecimal&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Float&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Double&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dynamic / Auto&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Any&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;In StaLang there is no character type. Character methods are implicated to the &lt;strong&gt;string type&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Example code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight rust"&gt;&lt;code&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;x1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;x2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;5.4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;x3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"5"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;x4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;5.4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// false&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;x5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;bin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;x6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;hex&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;x7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Data types
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;COMMING SOON&lt;/strong&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;COMMING SOON&lt;/strong&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub source code: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;StaLang&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GutHub IDE &lt;strong&gt;&lt;em&gt;for macOS&lt;/em&gt;&lt;/strong&gt;: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLangIDE" rel="noopener noreferrer"&gt;StaLang IDE&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub Docs: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang/wiki/StaLang-Documentation" rel="noopener noreferrer"&gt;StaLang Docs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ask any questions in the comments below! &lt;/p&gt;

</description>
      <category>stalang</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>StaLang Lessons</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Mon, 24 Nov 2025 05:07:04 +0000</pubDate>
      <link>https://dev.to/japroger/stalang-lessons-2lo7</link>
      <guid>https://dev.to/japroger/stalang-lessons-2lo7</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;Welcome to the &lt;strong&gt;StaLang Lessons&lt;/strong&gt; series!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;StaLang and Lessons are CURRENTLY IN DEVELOPMENT&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The quote for all concepts in StaLang&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;My language — My rules&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
JA Proger, 2025&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here you will learn all StaLang features following &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang/wiki/StaLang-Documentation" rel="noopener noreferrer"&gt;StaLang Docs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub source code: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;StaLang&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GutHub IDE &lt;strong&gt;&lt;em&gt;for macOS&lt;/em&gt;&lt;/strong&gt;: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLangIDE" rel="noopener noreferrer"&gt;StaLang IDE&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub Docs: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang/wiki/StaLang-Documentation" rel="noopener noreferrer"&gt;StaLang Docs&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ask any questions in the comments below! &lt;/p&gt;

</description>
      <category>stalang</category>
      <category>programming</category>
      <category>learning</category>
    </item>
    <item>
      <title>StaLang IDE Announcement</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Mon, 24 Nov 2025 05:00:24 +0000</pubDate>
      <link>https://dev.to/japroger/stalang-ide-announcement-49i7</link>
      <guid>https://dev.to/japroger/stalang-ide-announcement-49i7</guid>
      <description>&lt;h2&gt;
  
  
  Early Announcement
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;StaLang IDE&lt;/strong&gt; is designed for &lt;strong&gt;StaLang&lt;/strong&gt; and will be available in macOS. It will be written in Swift with SwiftUI, SwiftData, and AppKit.&lt;/p&gt;

&lt;p&gt;It will support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code highlighting&lt;/li&gt;
&lt;li&gt;Code completions&lt;/li&gt;
&lt;li&gt;Terminal Emulator &lt;/li&gt;
&lt;li&gt;Full StaLang documentation&lt;/li&gt;
&lt;li&gt;Writing custom docs in Markdown&lt;/li&gt;
&lt;li&gt;StaLang Cores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLangIDE" rel="noopener noreferrer"&gt;IDE&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
GitHub: &lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;StaLang&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ide</category>
      <category>stalang</category>
      <category>swift</category>
      <category>news</category>
    </item>
    <item>
      <title>StaLang Announce
Read the post: https://dev.to/japroger/stalang-announce-3m0f
GitHub: https://github.com/ja-proger/StaLang</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Sun, 23 Nov 2025 11:18:29 +0000</pubDate>
      <link>https://dev.to/japroger/stalang-announce-read-the-post-httpsdevtojaprogerstalang-announce-3m0f-github-3db8</link>
      <guid>https://dev.to/japroger/stalang-announce-read-the-post-httpsdevtojaprogerstalang-announce-3m0f-github-3db8</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/japroger" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3624738%2F8d6b464f-8e37-4c23-9b6c-801950db0eac.jpeg" alt="japroger"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/japroger/stalang-announce-3m0f" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;StaLang Announce&lt;/h2&gt;
      &lt;h3&gt;JA Proger ・ Nov 23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#dsl&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#news&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#swift&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#stalang&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://github.com/ja-proger/StaLang" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fopengraph.githubassets.com%2F73ba35ed326fc20b75a8fc5b11625b2bb51fa14a199dd8de22b0b9a1c86ff4cf%2Fja-proger%2FStaLang" height="600" class="m-0" width="1200"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer" class="c-link"&gt;
            GitHub - ja-proger/StaLang: StaLang is an interpreted DSL programming language designed for statistics, economics, analytics, AI training.
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            StaLang is an interpreted DSL programming language designed for statistics, economics, analytics, AI training. - ja-proger/StaLang
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.githubassets.com%2Ffavicons%2Ffavicon.svg" width="32" height="32"&gt;
          github.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>StaLang Announce</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Sun, 23 Nov 2025 10:37:32 +0000</pubDate>
      <link>https://dev.to/japroger/stalang-announce-3m0f</link>
      <guid>https://dev.to/japroger/stalang-announce-3m0f</guid>
      <description>&lt;h2&gt;
  
  
  Announce
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;StaLang&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;(Statistics Language)&lt;/em&gt; is a interpreted &lt;a href="https://en.wikipedia.org/wiki/Domain-specific_language" rel="noopener noreferrer"&gt;DSL&lt;/a&gt; programming language designed for economics, statistics, analytics, AI training.&lt;br&gt;
It supports OOP, FP, MP. Also it has unusual grammar &lt;em&gt;(keywords, structures, logic)&lt;/em&gt;.&lt;br&gt;
Source code originally will be written in Swift.&lt;/p&gt;

&lt;p&gt;Although it is currently &lt;strong&gt;in development&lt;/strong&gt;, I made this announcement.&lt;br&gt;
If you have any ideas what functionality it should include, feel free to write down your ideas! &lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/ja-proger/StaLang" rel="noopener noreferrer"&gt;https://github.com/ja-proger/StaLang&lt;/a&gt; &lt;/p&gt;

</description>
      <category>dsl</category>
      <category>news</category>
      <category>swift</category>
      <category>stalang</category>
    </item>
    <item>
      <title>VolBack: Backup tool</title>
      <dc:creator>JA Proger</dc:creator>
      <pubDate>Sat, 22 Nov 2025 19:03:35 +0000</pubDate>
      <link>https://dev.to/japroger/backup-tool-4132</link>
      <guid>https://dev.to/japroger/backup-tool-4132</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ja-proger/VolBack" rel="noopener noreferrer"&gt;VolBack&lt;/a&gt;?&lt;/strong&gt;&lt;br&gt;
What's it? &lt;br&gt;
I started to think about potential sum of volumes of everyday backups. &lt;br&gt;
Backup is a full copy of the system for a unit of time (&lt;em&gt;UT&lt;/em&gt;). &lt;br&gt;
We know that &lt;strong&gt;backups&lt;/strong&gt; is one of the most important part in backend of any computer system. &lt;br&gt;
Nevertheless, we know backups have weaknesses... There's only one — duplication. Funny thing is that duplication in the case of backups is essential.  &lt;/p&gt;
&lt;h2&gt;
  
  
  Math section
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Basic case
&lt;/h3&gt;

&lt;p&gt;Imagine we have a CRM, which has a lifetime of 3 days. &lt;br&gt;
We need to backup it each day. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Day 1.&lt;/strong&gt; We added 100 mb&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 2.&lt;/strong&gt; We added 50 mb&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 3.&lt;/strong&gt; We added 30 mb&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What does it mean? &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backup for day 1:&lt;/strong&gt; 100 mb&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backup for day 2:&lt;/strong&gt; 100 mb + 50 mb =150 MB &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backup for day 3:&lt;/strong&gt; 150 mb + 30 mb =180 MB &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nice!&lt;/p&gt;

&lt;p&gt;So the total backup volume will be: 100 mb + 150 mb + 180 mb =430 MB.&lt;/p&gt;

&lt;p&gt;To handle this calculations I find a mathematical formula for this process. &lt;/p&gt;

&lt;p&gt;

&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;Sn=n⋅x1+∑i=1n−1(n−i)∗ai
S_n = n \cdot x_1 + \sum_{i=1}^{n-1} (n - i) * a_i
&lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;⋅&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;x&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mop"&gt;&lt;span class="mop op-symbol small-op"&gt;∑&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;i&lt;/span&gt;&lt;span class="mrel mtight"&gt;=&lt;/span&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;n&lt;/span&gt;&lt;span class="mbin mtight"&gt;−&lt;/span&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;−&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;i&lt;/span&gt;&lt;span class="mclose"&gt;)&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;∗&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;a&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/p&gt;

&lt;p&gt;If: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;n&amp;gt;1n &amp;gt; 1 &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;∣a∣=n−1|a| = n - 1 &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mord mathnormal"&gt;a&lt;/span&gt;&lt;span class="mord"&gt;∣&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;−&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;x1&amp;gt;0x_1 &amp;gt; 0 &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;x&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;Sn&amp;gt;0S_n &amp;gt; 0 &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;&amp;gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;n: quantity of UT &lt;em&gt;(second, hour, day, etc)&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;x1x_1 &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;x&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
: initial value of volume at first UT&lt;/li&gt;
&lt;li&gt;a: array of a values &lt;em&gt;(additions in volume at each IT)&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Special cases
&lt;/h3&gt;

&lt;p&gt;There are special cases of backup volume calculations. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If n = 1, we don't need a at all. Therefore 
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;S1=x1S_1 = x_1 &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;x&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;If a is absent, so 
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;Sn=n⋅x1S_n = n \cdot x_1 &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;⋅&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;x&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;If a is static, so 
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;Sn=n⋅x1+∑i=1n−1(n−i)⋅aS_n = n \cdot x_1 + \sum_{i=1}^{n-1} (n-i) \cdot a &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;S&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;n&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;⋅&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;x&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mop"&gt;&lt;span class="mop op-symbol small-op"&gt;∑&lt;/span&gt;&lt;span class="msupsub"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;i&lt;/span&gt;&lt;span class="mrel mtight"&gt;=&lt;/span&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mathnormal mtight"&gt;n&lt;/span&gt;&lt;span class="mbin mtight"&gt;−&lt;/span&gt;&lt;span class="mord mtight"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mopen"&gt;(&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;−&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;i&lt;/span&gt;&lt;span class="mclose"&gt;)&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;⋅&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Development
&lt;/h1&gt;

&lt;p&gt;I will expand this method in case when we don't know additions' values. &lt;/p&gt;

&lt;p&gt;Watch the repository &lt;a href="https://github.com/ja-proger/VolBack" rel="noopener noreferrer"&gt;https://github.com/ja-proger/VolBack&lt;/a&gt;. Now available on Swift&lt;br&gt;
Write down any ideas in the comments below!&lt;/p&gt;

</description>
      <category>swift</category>
      <category>backup</category>
      <category>backend</category>
      <category>math</category>
    </item>
  </channel>
</rss>
