<?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: Christos Drogidis</title>
    <description>The latest articles on DEV Community by Christos Drogidis (@ascoos).</description>
    <link>https://dev.to/ascoos</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%2F3636215%2F87888087-6ab0-47ce-a5ba-43f8d1cd67d3.png</url>
      <title>DEV Community: Christos Drogidis</title>
      <link>https://dev.to/ascoos</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ascoos"/>
    <language>en</language>
    <item>
      <title>Advanced Laravel Integration in Ascoos OS: A Practical Web5 Kernel Approach</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Fri, 22 May 2026 13:03:47 +0000</pubDate>
      <link>https://dev.to/ascoos/advanced-laravel-integration-in-ascoos-os-a-practical-web5-kernel-approach-2cnc</link>
      <guid>https://dev.to/ascoos/advanced-laravel-integration-in-ascoos-os-a-practical-web5-kernel-approach-2cnc</guid>
      <description>&lt;p&gt;Integrating a framework like Laravel into an operating system that provides its own kernel, macro engine, and event pipeline is not a trivial task. Ascoos OS, built on its intelligent Web5/WebAI Kernel, treats frameworks not as “external libraries” but as components of the system itself. This allows for deeper cooperation between the framework and the OS.&lt;/p&gt;

&lt;p&gt;This article presents a practical approach to loading and initializing Laravel inside Ascoos OS through a lightweight autoload file (&lt;code&gt;laravel_autoload.php&lt;/code&gt;). The full implementation, including detailed code and examples, is available in the repository:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ascoos/aos-SEC00100-laravel-autoload" rel="noopener noreferrer"&gt;https://github.com/ascoos/aos-SEC00100-laravel-autoload&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Why Integrate Laravel into Ascoos OS&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Ascoos OS does not operate like a traditional PHP hosting environment.&lt;br&gt;&lt;br&gt;
The Web5/WebAI Kernel provides, among other things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a macro execution engine,
&lt;/li&gt;
&lt;li&gt;event‑driven monitoring,
&lt;/li&gt;
&lt;li&gt;unified reporting and logging,
&lt;/li&gt;
&lt;li&gt;global binding for shared application instances.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By integrating Laravel, the framework gains access to these subsystems, while Ascoos OS can observe and interact with Laravel’s lifecycle. The result is a hybrid environment where Laravel serves as the application layer and the OS handles orchestration and monitoring.&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;How the Integration Works&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The implementation is intentionally simple yet fully functional:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Laravel is installed via LibIn or Ascoos Store into the &lt;code&gt;/libs/laravel/&lt;/code&gt; directory.
&lt;/li&gt;
&lt;li&gt;The autoload file loads the framework and makes it available to the system.
&lt;/li&gt;
&lt;li&gt;The Web5 Kernel executes diagnostic macros to verify core services (logging, auth, db, router).
&lt;/li&gt;
&lt;li&gt;A database connection test is performed through PDO.
&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;laravel_init&lt;/code&gt; event is emitted so other modules know the framework is ready.
&lt;/li&gt;
&lt;li&gt;All logs pass through the unified logging system of Ascoos OS.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This way, Laravel remains Laravel, but it operates inside an environment that supervises and supports it at the kernel level.&lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;The Diagnostic Macro&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A key part of the integration is a small macro that checks whether Laravel’s essential services are available and whether the database layer responds correctly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$macroHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;addMacro&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$laravel_app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$eventHandler&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="nv"&gt;$utf8&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="nv"&gt;$services&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'log'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'auth'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'db'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'router'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
   &lt;span class="nv"&gt;$missing&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;array_filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$services&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nv"&gt;$laravel_app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;bound&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$s&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$missing&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nv"&gt;$eventHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Laravel diagnostic passed"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$eventHandler&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;DEBUG_LEVEL_INFO&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nv"&gt;$eventHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Missing services: "&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$utf8&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;implode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;', '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$missing&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$eventHandler&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;DEBUG_LEVEL_WARNING&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;

   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$laravel_app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;bound&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'db'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nv"&gt;$laravel_app&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;make&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'db'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;connection&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getPdo&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This macro runs during initialization, allowing the system to know whether Laravel is fully operational before other modules rely on it.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;What You Can Build on Top of This&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;With Laravel integrated into Ascoos OS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;modules can listen to Laravel events,
&lt;/li&gt;
&lt;li&gt;Laravel can emit OS‑level events,
&lt;/li&gt;
&lt;li&gt;hybrid applications can combine controllers with macros,
&lt;/li&gt;
&lt;li&gt;multiple frameworks can coexist in the same runtime.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ascoos OS becomes a flexible environment for modular PHP development.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Full Implementation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The complete code, along with a detailed README (EN/EL), is available here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/ascoos/aos-SEC00100-laravel-autoload" rel="noopener noreferrer"&gt;https://github.com/ascoos/aos-SEC00100-laravel-autoload&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>web5</category>
      <category>webdev</category>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>Social Media Authentication: The Greatest Madness Ever Invented by the Programming Community</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Fri, 22 May 2026 09:33:01 +0000</pubDate>
      <link>https://dev.to/ascoos/social-media-authentication-the-greatest-madness-ever-invented-by-the-programming-community-2d7c</link>
      <guid>https://dev.to/ascoos/social-media-authentication-the-greatest-madness-ever-invented-by-the-programming-community-2d7c</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Social media authentication - commonly known as social login - has become one of the most popular access methods for web applications. From “Sign in with Facebook” to “Continue with Google,” this technique is promoted as fast, easy, and user-friendly. However, beneath this surface-level convenience lie serious concerns regarding security, privacy, technical stability, and software philosophy.&lt;/p&gt;

&lt;p&gt;Relying on third parties for authentication is not just technically risky - it’s philosophically problematic. Applications that depend solely on social login lose control over user identity, expose personal data to external entities, and exclude a significant portion of the population who choose not to participate in social networks.&lt;/p&gt;

&lt;p&gt;The purpose of this article is to deeply analyze the technical and ethical weaknesses of social media authentication, present documented examples of its failure, and propose alternative solutions that respect the user and reinforce application autonomy.&lt;/p&gt;

&lt;p&gt;Read Article: &lt;a href="https://os.ascoos.com/docs/articles/social-media-authentication-madness.html" rel="noopener noreferrer"&gt;https://os.ascoos.com/docs/articles/social-media-authentication-madness.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>socialmedia</category>
      <category>webdev</category>
      <category>programming</category>
      <category>auth</category>
    </item>
    <item>
      <title>The Messy AI Code: Every Yesterday Was Better</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Fri, 22 May 2026 09:24:23 +0000</pubDate>
      <link>https://dev.to/ascoos/the-messy-ai-code-every-yesterday-was-better-4mie</link>
      <guid>https://dev.to/ascoos/the-messy-ai-code-every-yesterday-was-better-4mie</guid>
      <description>&lt;h2&gt;
  
  
  1. Introduction
&lt;/h2&gt;

&lt;p&gt;There is a widespread optimism surrounding artificial intelligence. A sense that every new model, every new version, every new “breakthrough” brings us closer to a world where code writes itself, productivity skyrockets, and human effort is reduced to a minimum. Yet beneath this surface lies a truth that is rarely discussed: the code produced by AI is becoming increasingly messy. Not because AI is “getting worse,” but because the world around it is being contaminated by its own mistakes.&lt;/p&gt;

&lt;p&gt;AI has no judgment, no experience, no ability to distinguish right from wrong. It has only one mechanism: feedback. Just as humans need food to survive, AI needs information to function. And just as a human can survive on contaminated food-until the body eventually collapses-AI can continue to “operate” while feeding on incorrect data, until the quality of its reasoning collapses.&lt;/p&gt;

&lt;p&gt;Read Article: &lt;a href="https://os.ascoos.com/docs/articles/the-messy-ai-code.html" rel="noopener noreferrer"&gt;https://os.ascoos.com/docs/articles/the-messy-ai-code.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>code</category>
    </item>
    <item>
      <title>OAuth2 Authentication + Secure Torrent Upload Using Ascoos OS Kernel</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Sat, 02 May 2026 20:39:39 +0000</pubDate>
      <link>https://dev.to/ascoos/oauth2-authentication-secure-torrent-upload-using-ascoos-os-kernel-249f</link>
      <guid>https://dev.to/ascoos/oauth2-authentication-secure-torrent-upload-using-ascoos-os-kernel-249f</guid>
      <description>&lt;h3&gt;
  
  
  A Fully Native, Dependency‑Free Web5 Case Study
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
This case study demonstrates how the Ascoos OS Kernel 1.0.0 performs &lt;strong&gt;OAuth2 authentication&lt;/strong&gt;, &lt;strong&gt;event‑driven processing&lt;/strong&gt;, &lt;strong&gt;torrent file creation&lt;/strong&gt;, and &lt;strong&gt;secure P2P upload&lt;/strong&gt; using raw sockets — all without frameworks, external libraries, or middleware.  &lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Full source code:&lt;/strong&gt; &lt;a href="https://github.com/ascoos/oauth2-torrent-upload" rel="noopener noreferrer"&gt;https://github.com/ascoos/oauth2-torrent-upload&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;Modern decentralized systems require:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;secure authentication
&lt;/li&gt;
&lt;li&gt;event‑driven workflows
&lt;/li&gt;
&lt;li&gt;portable file‑sharing mechanisms
&lt;/li&gt;
&lt;li&gt;zero‑dependency execution
&lt;/li&gt;
&lt;li&gt;native networking
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Ascoos OS Kernel&lt;/strong&gt; provides all of these capabilities out of the box.&lt;/p&gt;

&lt;p&gt;This case study shows how a single PHP file can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Authenticate via OAuth2
&lt;/li&gt;
&lt;li&gt;Validate credentials through a remote API
&lt;/li&gt;
&lt;li&gt;Emit events on success/failure
&lt;/li&gt;
&lt;li&gt;Generate a torrent file dynamically
&lt;/li&gt;
&lt;li&gt;Upload it to a P2P node using raw TCP sockets
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Everything is implemented using &lt;strong&gt;native kernel handlers&lt;/strong&gt;, with no external packages.&lt;/p&gt;




&lt;h2&gt;
  
  
  Kernel Components Used
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TOAuth2Handler&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;OAuth2 authentication + token generation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TCurlHandler&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remote API validation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TEventHandler&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Event emission (success/failure)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TTorrentFileHandler&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Torrent file creation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TSocketHandler&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Secure P2P upload&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  OAuth2 Authentication
&lt;/h2&gt;

&lt;p&gt;The authentication flow is fully native:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$oauth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TOAuth2Handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$properties&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$oauth&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setEventHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$eventHandler&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$oauth&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;authenticate&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;'access_token'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'xyz123'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'provider'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'x'&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"OAuth authenticated!&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;$token&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$oauth&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;generateToken&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If authentication fails, the kernel triggers an event:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$eventHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'module'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'auth.oauth.failed'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$creds&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$errors&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;error_log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"OAuth failed: "&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nb"&gt;json_encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$errors&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Event‑Driven Architecture
&lt;/h2&gt;

&lt;p&gt;The kernel supports lightweight event hooks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$eventHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'module'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'auth.oauth.success'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$creds&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;error_log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"OAuth success: "&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nb"&gt;json_encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$creds&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This enables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;logging
&lt;/li&gt;
&lt;li&gt;auditing
&lt;/li&gt;
&lt;li&gt;monitoring
&lt;/li&gt;
&lt;li&gt;custom workflows
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;without observers, middleware, or frameworks.&lt;/p&gt;




&lt;h2&gt;
  
  
  Torrent File Creation
&lt;/h2&gt;

&lt;p&gt;Torrent creation is handled natively:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$torrent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TTorrentFileHandler&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$torrentData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'secure_share.torrent'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'files'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'data.txt'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'OAuth protected content'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="nv"&gt;$torrent&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;createTorrentFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nv"&gt;$AOS_TMP_DATA_PATH&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/secure_share.torrent'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nv"&gt;$torrentData&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The generated torrent includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;metadata
&lt;/li&gt;
&lt;li&gt;embedded content
&lt;/li&gt;
&lt;li&gt;file map
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and is ready for decentralized distribution.&lt;/p&gt;




&lt;h2&gt;
  
  
  Secure P2P Upload (Socket‑Based)
&lt;/h2&gt;

&lt;p&gt;The upload uses raw TCP sockets:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$socket&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TSocketHandler&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$socket&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;createSocket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="no"&gt;AF_INET&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;SOCK_STREAM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;SOL_TCP&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$socket&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;connectSocket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'p2p.example.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;22&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$socket&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;sendData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s2"&gt;"UPLOAD_TORRENT:"&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$token&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s2"&gt;":"&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt;
    &lt;span class="nb"&gt;file_get_contents&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$AOS_TMP_DATA_PATH&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/secure_share.torrent'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$socket&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;receiveData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Torrent upload response: &lt;/span&gt;&lt;span class="nv"&gt;$response&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;direct node communication
&lt;/li&gt;
&lt;li&gt;zero‑dependency networking
&lt;/li&gt;
&lt;li&gt;Web5‑ready decentralized sharing
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ OAuth2 Client ]
       |
       v
[ TOAuth2Handler ] ---&amp;gt; emits events ---&amp;gt; [ TEventHandler ]
       |
       v
[ Token Generation ]
       |
       v
[ TTorrentFileHandler ] ---&amp;gt; creates torrent
       |
       v
[ TSocketHandler ] ---&amp;gt; uploads to P2P node
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What This Case Study Demonstrates
&lt;/h2&gt;

&lt;p&gt;✔ Native OAuth2 authentication&lt;br&gt;&lt;br&gt;
✔ Event‑driven kernel architecture&lt;br&gt;&lt;br&gt;
✔ Secure torrent creation&lt;br&gt;&lt;br&gt;
✔ Decentralized file upload&lt;br&gt;&lt;br&gt;
✔ Zero dependencies&lt;br&gt;&lt;br&gt;
✔ Web5‑ready workflow&lt;br&gt;&lt;br&gt;
✔ Fully portable PHP 8.4+ code  &lt;/p&gt;




&lt;h2&gt;
  
  
  Full Source Code
&lt;/h2&gt;

&lt;p&gt;The complete implementation is available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ascoos/oauth2-torrent-upload" rel="noopener noreferrer"&gt;https://github.com/ascoos/oauth2-torrent-upload&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find it useful, consider starring the repository.&lt;/p&gt;

</description>
      <category>ascoos</category>
      <category>oauth</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Quantum Decoherence + AI Drift Prediction + JML UI Rendering</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Sat, 02 May 2026 18:53:32 +0000</pubDate>
      <link>https://dev.to/ascoos/quantum-decoherence-ai-drift-prediction-jml-ui-rendering-4hmd</link>
      <guid>https://dev.to/ascoos/quantum-decoherence-ai-drift-prediction-jml-ui-rendering-4hmd</guid>
      <description>&lt;h3&gt;
  
  
  A Full Case Study from &lt;strong&gt;Ascoos OS Kernel 1.0.0&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
This case study demonstrates how the Ascoos OS Kernel combines &lt;strong&gt;quantum simulation&lt;/strong&gt;, &lt;strong&gt;AI prediction&lt;/strong&gt;, &lt;strong&gt;statistical analysis&lt;/strong&gt;, and &lt;strong&gt;JML-based UI rendering&lt;/strong&gt; — all &lt;strong&gt;native&lt;/strong&gt;, with &lt;strong&gt;zero dependencies&lt;/strong&gt;, &lt;strong&gt;no frameworks&lt;/strong&gt;, and &lt;strong&gt;no template engines&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why This Case Study Matters
&lt;/h2&gt;

&lt;p&gt;In Ascoos OS, the Web is not “HTML-first”.&lt;br&gt;&lt;br&gt;
It is &lt;strong&gt;JML-first&lt;/strong&gt;: a declarative markup language compiled into HTML by the kernel, without browser dependencies, without templating layers, and without middleware.&lt;/p&gt;

&lt;p&gt;In this example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We simulate a &lt;strong&gt;Bell State |Φ+&amp;gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Apply &lt;strong&gt;decoherence&lt;/strong&gt; with parameter λ
&lt;/li&gt;
&lt;li&gt;Measure &lt;strong&gt;Z-basis probabilities&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Compute &lt;strong&gt;drift variance&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Train a small &lt;strong&gt;neural network&lt;/strong&gt; for instability prediction
&lt;/li&gt;
&lt;li&gt;Render a full &lt;strong&gt;dashboard UI&lt;/strong&gt; using JML&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All inside &lt;strong&gt;one PHP file&lt;/strong&gt;, using &lt;strong&gt;native kernel classes&lt;/strong&gt;.&lt;/p&gt;


&lt;h2&gt;
  
  
  1. Quantum Simulation (Everett Branching)
&lt;/h2&gt;

&lt;p&gt;The kernel provides native quantum manipulation classes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$quantum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TQuantumEverettSimulator&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$math&lt;/span&gt;    &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TQuantumHandler&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We start with the Bell State |Φ+&amp;gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$bellState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$quantum&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;normalize&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.707&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;   &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.707&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Apply decoherence:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$lambda&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.75&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$D&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[[[&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;]],&lt;/span&gt; &lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="nv"&gt;$lambda&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;]]];&lt;/span&gt;
&lt;span class="nv"&gt;$I&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[[[&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;]],&lt;/span&gt; &lt;span class="p"&gt;[[&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;],[&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mf"&gt;0.0&lt;/span&gt;&lt;span class="p"&gt;]]];&lt;/span&gt;

&lt;span class="nv"&gt;$U&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$math&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;tensor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$I&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$D&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$noisyState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$quantum&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;normalize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nv"&gt;$quantum&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;applyUnitary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$U&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$bellState&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Measure in the Z-basis:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$branchesZ&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$quantum&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;measureQubit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$noisyState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2. Statistical Drift Analysis
&lt;/h2&gt;

&lt;p&gt;We compute the variance of the measurement probabilities:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$driftFactor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TStatisticAnalysisHandler&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="nv"&gt;$branchesZ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'probability'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="nv"&gt;$branchesZ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="s1"&gt;'probability'&lt;/span&gt;&lt;span class="p"&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="nf"&gt;variance&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This drift factor becomes the input for the AI model.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. Neural Network Instability Prediction
&lt;/h2&gt;

&lt;p&gt;The kernel includes a &lt;strong&gt;native neural network handler&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ai&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'input'&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'output'&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'activation'&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s1"&gt;'relu'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'input'&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'output'&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'activation'&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="s1"&gt;'sigmoid'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="nv"&gt;$ai&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;([[&lt;/span&gt;&lt;span class="nv"&gt;$driftFactor&lt;/span&gt;&lt;span class="p"&gt;]],&lt;/span&gt; &lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="nv"&gt;$driftFactor&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)],&lt;/span&gt; &lt;span class="n"&gt;epochs&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$prediction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$ai&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;predictNetwork&lt;/span&gt;&lt;span class="p"&gt;([[&lt;/span&gt;&lt;span class="nv"&gt;$driftFactor&lt;/span&gt;&lt;span class="p"&gt;]])[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The prediction determines the dashboard status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$statusColor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$prediction&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="s2"&gt;"#ff4d4d"&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"#4dff88"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;$statusText&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$prediction&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="s2"&gt;"DANGER: HIGH DRIFT"&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"SYSTEM STABLE"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4. JML Dashboard Rendering
&lt;/h2&gt;

&lt;p&gt;The UI is written in &lt;strong&gt;JML&lt;/strong&gt;, not HTML.&lt;/p&gt;

&lt;p&gt;The kernel compiles JML into HTML:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$html&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;fromJMLString&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$jmlString&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The dashboard includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Status bar
&lt;/li&gt;
&lt;li&gt;Metrics grid
&lt;/li&gt;
&lt;li&gt;Raw measurement data
&lt;/li&gt;
&lt;li&gt;Footer with kernel version
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example JML snippet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div:class('status-bar'),style('background:{$statusColor}') {
    `STATUS: {$statusText}`
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The result is a &lt;strong&gt;dark-mode quantum dashboard&lt;/strong&gt;, with &lt;strong&gt;zero CSS frameworks&lt;/strong&gt;, &lt;strong&gt;zero JS&lt;/strong&gt;, &lt;strong&gt;zero templates&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Full Source Code on GitHub
&lt;/h2&gt;

&lt;p&gt;The complete case study, including the full PHP file, documentation, and JML rendering logic, is available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ascoos/quantum-ai-jml-visualizer" rel="noopener noreferrer"&gt;https://github.com/ascoos/quantum-ai-jml-visualizer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This repository contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the full &lt;code&gt;quantum_ai_jml_visualizer.php&lt;/code&gt; implementation
&lt;/li&gt;
&lt;li&gt;English &amp;amp; Greek README
&lt;/li&gt;
&lt;li&gt;quantum simulation logic
&lt;/li&gt;
&lt;li&gt;AI drift prediction
&lt;/li&gt;
&lt;li&gt;JML dashboard renderer
&lt;/li&gt;
&lt;li&gt;zero-dependency Ascoos OS Kernel example
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find it useful, consider starring the repo — it helps the project grow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Credits
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; Drogidis Christos&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Project:&lt;/strong&gt; Ascoos OS Kernel 1.0.0&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Case Study:&lt;/strong&gt; &lt;code&gt;quantum-ai-jml-visualizer&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Category:&lt;/strong&gt; Quantum &amp;amp; AI  &lt;/p&gt;




</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>jml</category>
    </item>
    <item>
      <title>Drogidi Theory: A New Geometric Approach to the Universe - Without Dark Matter or Dark Energy</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Sat, 02 May 2026 17:33:27 +0000</pubDate>
      <link>https://dev.to/ascoos/drogidi-theory-a-new-geometric-approach-to-the-universe-without-dark-matter-or-dark-energy-49pf</link>
      <guid>https://dev.to/ascoos/drogidi-theory-a-new-geometric-approach-to-the-universe-without-dark-matter-or-dark-energy-49pf</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Modern cosmology relies heavily on two unknown components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;dark matter&lt;/strong&gt;,
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;dark energy&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They explain observations - but we still don’t know &lt;em&gt;what&lt;/em&gt; they are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drogidi Theory&lt;/strong&gt; proposes a completely different approach:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Dark matter and dark energy are not particles or fields.&lt;br&gt;&lt;br&gt;
They are &lt;em&gt;geometric effects&lt;/em&gt; that arise when multiple spacetime “sheets” interact.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This idea leads to a unified explanation of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;flat galaxy rotation curves,
&lt;/li&gt;
&lt;li&gt;gravitational lensing,
&lt;/li&gt;
&lt;li&gt;cosmic acceleration,
&lt;/li&gt;
&lt;li&gt;CMB uniformity,
&lt;/li&gt;
&lt;li&gt;and even local Big Bang events.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this &lt;strong&gt;without&lt;/strong&gt; introducing new particles or inflation.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Idea
&lt;/h2&gt;

&lt;p&gt;Drogidi Theory starts with a simple but powerful concept:&lt;/p&gt;

&lt;h3&gt;
  
  
  The Universe is not a single spacetime. It is a set of multiple geometric sheets (manifolds).
&lt;/h3&gt;

&lt;p&gt;Each sheet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;has its own metric,
&lt;/li&gt;
&lt;li&gt;its own curvature,
&lt;/li&gt;
&lt;li&gt;its own evolution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These sheets interact through &lt;strong&gt;mapping fields&lt;/strong&gt; - smooth geometric maps that “project” the curvature of one sheet onto another.&lt;/p&gt;

&lt;p&gt;When two sheets have different curvature, this mismatch generates &lt;strong&gt;synergy energy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This synergy energy behaves exactly like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;dark matter (on galactic scales),
&lt;/li&gt;
&lt;li&gt;dark energy (on cosmological scales).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No exotic particles.&lt;br&gt;&lt;br&gt;
No hidden sectors.&lt;br&gt;&lt;br&gt;
Just geometry.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Drogidi Explains
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✔ Flat Galaxy Rotation Curves
&lt;/h3&gt;

&lt;p&gt;The synergy density naturally produces a (1/r^2) profile - the exact shape needed for flat rotation curves.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Gravitational Lensing
&lt;/h3&gt;

&lt;p&gt;The theory predicts a lensing profile proportional to (1/R), matching observations without dark matter halos.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Cosmic Acceleration
&lt;/h3&gt;

&lt;p&gt;Negative synergy pressure drives acceleration without a cosmological constant.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ CMB Uniformity Without Inflation
&lt;/h3&gt;

&lt;p&gt;The interaction between sheets smooths curvature differences, producing a uniform CMB without an inflationary phase.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✔ Local Big Bangs
&lt;/h3&gt;

&lt;p&gt;Instead of one global Big Bang, Drogidi predicts &lt;strong&gt;multiple local Big Bang events&lt;/strong&gt; triggered by geometric instabilities.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Developers Should Care
&lt;/h2&gt;

&lt;p&gt;Drogidi Theory is not just physics - it’s a &lt;strong&gt;computational framework&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mathematically clean,
&lt;/li&gt;
&lt;li&gt;modular,
&lt;/li&gt;
&lt;li&gt;simulation‑friendly,
&lt;/li&gt;
&lt;li&gt;and ideal for implementation in modern engines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it perfect for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;numerical experiments,
&lt;/li&gt;
&lt;li&gt;geometric simulations,
&lt;/li&gt;
&lt;li&gt;visualization tools,
&lt;/li&gt;
&lt;li&gt;and integration into platforms like &lt;strong&gt;Ascoos OS&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you enjoy building engines, frameworks, or scientific tools, Drogidi gives you a &lt;strong&gt;new playground&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Coming Next
&lt;/h2&gt;

&lt;p&gt;In a follow‑up article, we’ll explore:&lt;/p&gt;

&lt;h3&gt;
  
  
  How Drogidi Theory integrates into Ascoos OS
&lt;/h3&gt;

&lt;p&gt;Including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;class architecture,
&lt;/li&gt;
&lt;li&gt;mapping modules,
&lt;/li&gt;
&lt;li&gt;synergy engines,
&lt;/li&gt;
&lt;li&gt;parameter validators,
&lt;/li&gt;
&lt;li&gt;simulation pipelines,
&lt;/li&gt;
&lt;li&gt;and real‑time visualization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will show how a modern web‑native OS can host a full geometric physics engine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;Drogidi Theory offers a fresh, geometric perspective on the Universe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no dark matter particles,
&lt;/li&gt;
&lt;li&gt;no dark energy fields,
&lt;/li&gt;
&lt;li&gt;no inflation,
&lt;/li&gt;
&lt;li&gt;no extra dimensions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just &lt;strong&gt;pure geometry&lt;/strong&gt; - and a new way to think about spacetime.&lt;/p&gt;

&lt;p&gt;If you’re a developer, mathematician, or physics enthusiast, this is a theory worth exploring.&lt;/p&gt;




</description>
      <category>theory</category>
      <category>development</category>
      <category>physics</category>
      <category>mathematics</category>
    </item>
    <item>
      <title>DoBu — Documentation Builder for the Ascoos Ecosystem</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Thu, 02 Apr 2026 07:33:57 +0000</pubDate>
      <link>https://dev.to/ascoos/dobu-documentation-builder-for-the-ascoos-ecosystem-1ip8</link>
      <guid>https://dev.to/ascoos/dobu-documentation-builder-for-the-ascoos-ecosystem-1ip8</guid>
      <description>&lt;h3&gt;
  
  
  &lt;em&gt;A JML‑inspired Documentation DSL for multilingual docblocks&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;DoBu&lt;/strong&gt; (DOcumentation BUilder) is a &lt;strong&gt;Documentation DSL&lt;/strong&gt; designed for the &lt;strong&gt;Ascoos OS&lt;/strong&gt; ecosystem.&lt;/p&gt;

&lt;p&gt;It is not PHPDoc.&lt;br&gt;&lt;br&gt;
It is not Doxygen.&lt;br&gt;&lt;br&gt;
It is not MkDocs or Docusaurus.&lt;/p&gt;

&lt;p&gt;DoBu is a &lt;strong&gt;semantic documentation layer&lt;/strong&gt; that lives inside simple docblocks such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* ... */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and transforms documentation structure into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structured metadata
&lt;/li&gt;
&lt;li&gt;multilingual documentation
&lt;/li&gt;
&lt;li&gt;AST‑friendly nodes
&lt;/li&gt;
&lt;li&gt;exportable formats (Markdown, HTML, JSON, etc.)
&lt;/li&gt;
&lt;li&gt;documentation suitable for IDEs, tools, and Ascoos OS subsystems
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;DoBu can generate documentation text for any programming language that supports block comments.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why DoBu Was Created
&lt;/h2&gt;

&lt;p&gt;Ascoos OS is a kernel containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hundreds of encrypted classes
&lt;/li&gt;
&lt;li&gt;a DSL/AST macro engine
&lt;/li&gt;
&lt;li&gt;CiC interpreters
&lt;/li&gt;
&lt;li&gt;JML markup
&lt;/li&gt;
&lt;li&gt;AI/NLP subsystems
&lt;/li&gt;
&lt;li&gt;IoT handlers
&lt;/li&gt;
&lt;li&gt;mathematical and scientific libraries
&lt;/li&gt;
&lt;li&gt;proprietary security layers
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No existing documentation tool could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;support multilingual metadata
&lt;/li&gt;
&lt;li&gt;embed mathematical formulas (LaTeX, MathML) with analysis
&lt;/li&gt;
&lt;li&gt;describe numerical behavior
&lt;/li&gt;
&lt;li&gt;include performance metrics
&lt;/li&gt;
&lt;li&gt;support cross‑references
&lt;/li&gt;
&lt;li&gt;generate documentation without exposing source code
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thus, &lt;strong&gt;DoBu&lt;/strong&gt; was created as the &lt;strong&gt;semantic documentation layer&lt;/strong&gt; of Ascoos OS.&lt;/p&gt;




&lt;h2&gt;
  
  
  What DoBu Is
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentation DSL&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic metadata language&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AST‑friendly docblock interpreter&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multilingual documentation engine&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extensible schema system&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JML‑inspired syntax&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language‑agnostic&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kernel‑level documentation layer&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Basic Syntax
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cm"&gt;/*
dobu {
    class:id(`tmyclass`),name(`TMyClass`),extends(`TObject`),namespace(`ASCOOS\OS\Kernel\MyClass`) {
        summary:langs {
            en {`Creating a new Ascoos OS class.`}
            el {`Δημιουργία μιας νέας Ascoos OS κλάσης.`}
        }
    }
}
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Class Documentation Example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cm"&gt;/*
dobu {
    class:id(`tmyclass`),name(`TMyClass`),extends(`TObject`),version(`0.0.1`) {
        summary:langs {
            en {`Creating a new Ascoos OS class.`}
            el {`Δημιουργία μιας νέας Ascoos OS κλάσης.`}
        }
    }
}
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Method Example with Math &amp;amp; Behavioral Metadata
&lt;/h2&gt;

&lt;p&gt;DoBu supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;mathematical formulas (LaTeX, MathML)
&lt;/li&gt;
&lt;li&gt;numerical behavior
&lt;/li&gt;
&lt;li&gt;performance metrics
&lt;/li&gt;
&lt;li&gt;cross‑references
&lt;/li&gt;
&lt;li&gt;verification cases
&lt;/li&gt;
&lt;li&gt;multilingual descriptions
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cm"&gt;/*
dobu {
    method:id(`blackscholesputdividend`),name(`blackScholesPutDividend`),return(`float`) {
        summary:langs {
            en {`Prices a European put option with continuous dividend yield.`}
            el {`Αποτιμά ένα ευρωπαϊκό put option με συνεχή μερισματική απόδοση.`}
        },
        formula:type(`latex`),value(`\[ P = K e^{-rT} N(-d_2) - S_0 e^{-qT} N(-d_1) \]`)
    }
}
*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Full Class Example
&lt;/h2&gt;

&lt;p&gt;See the &lt;strong&gt;&lt;a href="https://github.com/ascoos/dobu/blob/main/examples/create-dobu-class.php" rel="noopener noreferrer"&gt;create-dobu-class.php&lt;/a&gt;&lt;/strong&gt; file for a full demonstration inside a PHP class.&lt;/p&gt;




&lt;h2&gt;
  
  
  Multilingual Documentation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;langs {
    en {`English text`}
    el {`Ελληνικό κείμενο`}
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Cross‑References
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;see:langs {
    all {`
       • blackScholesCallDividend() 
       • binomialPutEuropean()`
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Export Formats
&lt;/h2&gt;

&lt;p&gt;DoBu can export documentation to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML
&lt;/li&gt;
&lt;li&gt;INI
&lt;/li&gt;
&lt;li&gt;JSON
&lt;/li&gt;
&lt;li&gt;Markdown
&lt;/li&gt;
&lt;li&gt;TOML
&lt;/li&gt;
&lt;li&gt;YAML
&lt;/li&gt;
&lt;li&gt;XML
&lt;/li&gt;
&lt;li&gt;and many more formats
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Ideal for Proprietary Kernels
&lt;/h2&gt;

&lt;p&gt;DoBu works even when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;source code is not available (stubs only)
&lt;/li&gt;
&lt;li&gt;documentation must not reveal internal logic
&lt;/li&gt;
&lt;li&gt;structured, machine‑readable documentation is required
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Relationship with Ascoos OS
&lt;/h2&gt;

&lt;p&gt;DoBu is built using Ascoos OS classes and is used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;documenting Ascoos OS itself
&lt;/li&gt;
&lt;li&gt;documenting generated code
&lt;/li&gt;
&lt;li&gt;producing documentation for other languages
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>documentation</category>
      <category>webdev</category>
      <category>php</category>
      <category>ascoos</category>
    </item>
    <item>
      <title>Why Developers Should Build Native AI Applications</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Thu, 02 Apr 2026 06:13:29 +0000</pubDate>
      <link>https://dev.to/ascoos/why-developers-should-build-native-ai-applications-1gn0</link>
      <guid>https://dev.to/ascoos/why-developers-should-build-native-ai-applications-1gn0</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;The Web5/WebAI Model of &lt;strong&gt;Ascoos OS&lt;/strong&gt;: A Self‑Sufficient, User‑First Approach to Artificial Intelligence on the Web&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;Artificial Intelligence has become a core component of the modern web. However, the way it is integrated into most applications remains dependent on external services and remote systems, creating limitations in performance, privacy, cost, and independence.&lt;/p&gt;

&lt;p&gt;Ascoos OS proposes a different philosophy: a web where AI is not a service located somewhere else, but a capability owned by the user. A web where applications do not rely on third parties to function, and where data never leaves the user’s environment. This is the &lt;strong&gt;Web5/WebAI&lt;/strong&gt; model.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The Need for Native AI Applications
&lt;/h2&gt;

&lt;p&gt;Traditional approaches to AI integration rely on external providers. While functional, these architectures have inherent limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Data is transferred outside the user’s environment.&lt;/li&gt;
&lt;li&gt;    Performance depends on latency and connectivity.&lt;/li&gt;
&lt;li&gt;    Functionality is not available offline.&lt;/li&gt;
&lt;li&gt;    Costs increase as usage increases.&lt;/li&gt;
&lt;li&gt;    AI has no access to system‑level data and mechanisms.&lt;/li&gt;
&lt;li&gt;    The user lacks true ownership and self‑sufficiency.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a world where privacy, autonomy, and independence are becoming essential values, this model is no longer adequate.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The Ascoos OS Approach: AI as Infrastructure
&lt;/h2&gt;

&lt;p&gt;Ascoos OS integrates Artificial Intelligence directly into the core of the web kernel. It does not treat AI as an add‑on, but as a foundational component of the system’s architecture.&lt;/p&gt;

&lt;p&gt;This enables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;    Local AI execution without external services.&lt;/li&gt;
&lt;li&gt;    Full ownership and control of data by the user.&lt;/li&gt;
&lt;li&gt;    Complete offline functionality.&lt;/li&gt;
&lt;li&gt;    Direct AI access to DSL, macros, events, files, and system data.&lt;/li&gt;
&lt;li&gt;    Applications that operate with true self‑sufficiency.&lt;/li&gt;
&lt;li&gt;    The ability for AI to influence system flow in real time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is a web that does not depend on third parties, but is built around the user.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Examples of Native AI in Ascoos OS
&lt;/h2&gt;

&lt;p&gt;The following examples demonstrate how AI behaves when it is part of the kernel rather than an external service. Their value lies in the fact that they form unified, locally executed pipelines.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1 Neural Workflow Composer – Learning from the System and Executing Macros
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$composer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TNeuralNetworkHandler&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$composer&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'input'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'output'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'activation'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'relu'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'input'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'output'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'activation'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'sigmoid'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="nv"&gt;$composer&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$systemData&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$actions&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;epochs&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;lr&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$composer&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;predictNetwork&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="nv"&gt;$currentState&lt;/span&gt;&lt;span class="p"&gt;])[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$score&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$macroHandler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TMacroHandler&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="nv"&gt;$macroHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;addMacro&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;fn&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Executing optimized macro"&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="nv"&gt;$macroHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;runNext&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AI operates as part of the system, learns from its data, and influences its behavior in real time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://os.ascoos.com/docs/articles/native-ai-web5-webai.html" rel="noopener noreferrer"&gt;See Full Article&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>web5</category>
      <category>webai</category>
    </item>
    <item>
      <title>What is a Content Management System (CMS)</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Thu, 02 Apr 2026 05:48:14 +0000</pubDate>
      <link>https://dev.to/ascoos/what-is-a-content-management-system-cms-1jin</link>
      <guid>https://dev.to/ascoos/what-is-a-content-management-system-cms-1jin</guid>
      <description>&lt;h2&gt;
  
  
  Theoretical Approach, Historical Evolution and Modern Architectures
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Introduction
&lt;/h3&gt;

&lt;p&gt;Digital content management is one of the most important areas of modern information technology.&lt;/p&gt;

&lt;p&gt;From the first static websites of the 1990s to today's multi-channel ecosystems, the need for organized, secure, and scalable information management has led to the development of Content Management Systems (CMS).&lt;/p&gt;

&lt;p&gt;CMS have evolved from simple website updating tools into comprehensive knowledge management platforms, now serving as critical infrastructure for businesses, organizations, and public sector entities.&lt;/p&gt;

&lt;p&gt;Their evolution is directly linked to the development of the internet, the increasing complexity of information systems, and the need for automation in content creation and delivery processes.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fn9w9svwwo1q8ve5zu386.webp" class="article-body-image-wrapper"&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%2Farticles%2Fn9w9svwwo1q8ve5zu386.webp" alt=" " width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Definition and Theoretical Framework
&lt;/h3&gt;

&lt;p&gt;A Content Management System is defined as software that enables the creation, organization, editing, storage, and publication of digital content without requiring specialized programming knowledge. Its core principle is the separation of content from presentation. Content is stored in a structured format, independent of how it will be displayed, allowing reuse across multiple environments and devices.&lt;/p&gt;

&lt;p&gt;The theoretical foundation of CMS is connected to information science, knowledge management, and database theory. The concept of “content” is not limited to text but includes multimedia, metadata, structured entities, relationships, and semantic connections. Modern literature treats content as an information asset with value that must be organized, classified, and distributed in a way that maximizes its usefulness (Dublin Core Metadata Initiative, 2020).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://os.ascoos.com/docs/articles/what-is-a-content-management-system.html" rel="noopener noreferrer"&gt;See Full Article&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cms</category>
      <category>webdev</category>
      <category>programming</category>
      <category>ascoos</category>
    </item>
    <item>
      <title>Ascoos OS: A Different Logic in Programming</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Fri, 19 Dec 2025 02:37:47 +0000</pubDate>
      <link>https://dev.to/ascoos/ascoos-os-a-different-logic-in-programming-3e9g</link>
      <guid>https://dev.to/ascoos/ascoos-os-a-different-logic-in-programming-3e9g</guid>
      <description>&lt;p&gt;In the world of software development, the “mainstream” is often presented as the only solution: PHPUnit for tests, CI/CD pipelines everywhere, frameworks that dictate your workflow. But &lt;strong&gt;Ascoos OS&lt;/strong&gt; follows a different philosophy — it integrates testing, logging, and profiling directly into the runtime.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Problem Does It Solve
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Traditional testing tools (e.g., PHPUnit) require separate setup, configuration, and integration.
&lt;/li&gt;
&lt;li&gt;Testing is often treated as something “external” to the runtime.
&lt;/li&gt;
&lt;li&gt;This leads to more complexity and overhead.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With the &lt;strong&gt;TTestHandler&lt;/strong&gt; class, Ascoos OS solves this problem: testing becomes part of the system itself, with a simple API that combines validation, logging, and execution timing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Who Is It For
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Developers&lt;/strong&gt; who want quick and easy tests without external frameworks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Teams&lt;/strong&gt; that need runtime diagnostics and profiling in real time.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-source contributors&lt;/strong&gt; who want to understand how Ascoos OS works and experiment with a different programming philosophy.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Example: &lt;code&gt;TTestHandler&lt;/code&gt; + &lt;code&gt;AscoosThrowException&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Instead of relying on PHPUnit, we use the &lt;code&gt;TTestHandler&lt;/code&gt; class to validate classes, objects, methods, and functions. At the same time, it logs results, measures execution time, and collects system statistics.  &lt;/p&gt;

&lt;p&gt;Additionally, &lt;strong&gt;Ascoos Exceptions&lt;/strong&gt; produce multilingual UTF8 exception messages via the &lt;code&gt;$AOS_ESTR&lt;/code&gt; table, ensuring error handling is localized and developer-friendly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;ASCOOS\OS\Kernel\Tests\TTestHandler&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;ASCOOS\OS\Kernel\Core\TObject&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;ASCOOS\OS\Kernel\Core\DebugLevel&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="nv"&gt;$AOS_LOGS_PATH&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Configure properties&lt;/span&gt;
&lt;span class="nv"&gt;$properties&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s1"&gt;'logs'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'useLogger'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'dir'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$AOS_LOGS_PATH&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'file'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'test_handler.log'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'level'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;DebugLevel&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nc"&gt;Info&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="s1"&gt;'lang'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'en-US'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'debug'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'precision'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'log_threshold'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;DebugLevel&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nc"&gt;Info&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="c1"&gt;// Initialize TTestHandler&lt;/span&gt;
&lt;span class="nv"&gt;$testHandler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TTestHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$properties&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Initialize TObject&lt;/span&gt;
&lt;span class="nv"&gt;$object&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;TObject&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Check class existence&lt;/span&gt;
&lt;span class="nv"&gt;$testHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;checkClass&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;TObject&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Check object validity&lt;/span&gt;
&lt;span class="nv"&gt;$testHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;checkObject&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Check method availability&lt;/span&gt;
&lt;span class="nv"&gt;$testHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;checkMethod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'getClassMetadata'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Execute AscoosThrowException with timing&lt;/span&gt;
&lt;span class="nv"&gt;$result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$testHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;executeWithTiming&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;AscoosThrowException&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;InvalidArgumentException&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nb"&gt;print_r&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="c1"&gt;// Logs exception, multilingual message, execution time, and system stats&lt;/span&gt;

&lt;span class="c1"&gt;// Free resources&lt;/span&gt;
&lt;span class="nv"&gt;$testHandler&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;Free&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$object&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;Free&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why It Matters
&lt;/h2&gt;

&lt;p&gt;This approach makes testing &lt;strong&gt;part of the system itself&lt;/strong&gt;. Instead of separating runtime and validation, Ascoos OS unifies them. The result: faster development, integrated diagnostics, and tools that reflect our philosophy of programming freedom.&lt;/p&gt;




&lt;p&gt;Learn more at the official &lt;a href="https://www.ascoos.com" rel="noopener noreferrer"&gt;Ascoos OS website&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>architecture</category>
      <category>testing</category>
      <category>tooling</category>
    </item>
    <item>
      <title>What Is a Software Version Number?</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Sun, 07 Dec 2025 16:43:55 +0000</pubDate>
      <link>https://dev.to/ascoos/what-is-a-software-version-number-3jkh</link>
      <guid>https://dev.to/ascoos/what-is-a-software-version-number-3jkh</guid>
      <description>&lt;h2&gt;
  
  
  Understand in 5 minutes how to read every version correctly
&lt;/h2&gt;

&lt;p&gt;Have you ever seen versions like 26.0.0.10301, 17.4.1, 3.13.1, 1.28.4+exp.sha.41af286, 26.2.0-beta.3 or 2.0.0-alpha.7 and wondered what they actually mean?&lt;/p&gt;

&lt;p&gt;The version number is &lt;strong&gt;not decorative&lt;/strong&gt;. It is the identity of every release and, when properly structured, tells you at a glance whether the update is safe or requires caution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you should ask your vendor or development team
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Do you strictly follow Semantic Versioning 2.0?&lt;/li&gt;
&lt;li&gt;How do you name your alpha/beta/rc versions?&lt;/li&gt;
&lt;li&gt;What build format do you use and why?&lt;/li&gt;
&lt;li&gt;Do you release patch updates at least once a month?&lt;/li&gt;
&lt;li&gt;Is there automated testing and a rollback plan?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://os.ascoos.com/docs/articles/software-version-number.html" rel="noopener noreferrer"&gt;See full article...&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>software</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>HTML is Dead, Long Live JML</title>
      <dc:creator>Christos Drogidis</dc:creator>
      <pubDate>Tue, 02 Dec 2025 12:49:15 +0000</pubDate>
      <link>https://dev.to/ascoos/html-is-dead-long-live-jml-5gi0</link>
      <guid>https://dev.to/ascoos/html-is-dead-long-live-jml-5gi0</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;HTML was the language that built the Web. But today it has become a &lt;strong&gt;burden&lt;/strong&gt;: full of legacy baggage, ambiguities, inconsistencies, and security gaps. Every browser has its own rendering engine, every framework tries to patch the problems, and developers spend countless hours debugging issues that should not exist.&lt;/p&gt;

&lt;p&gt;It’s time to say it clearly: &lt;strong&gt;HTML is dead.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The future of Web markup is &lt;strong&gt;JML (JSON Markup Language)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fvrcx1bcpnlmwp1lebqc0.webp" class="article-body-image-wrapper"&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%2Farticles%2Fvrcx1bcpnlmwp1lebqc0.webp" alt="html-to-jml" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Why HTML Can’t Continue
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Legacy baggage&lt;/strong&gt;: Decades of backward compatibility.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ambiguity&lt;/strong&gt;: Tags with unclear or context‑dependent behavior.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Inline scripts, injection, parsing quirks.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inconsistency&lt;/strong&gt;: Different results across browsers.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What is JML
&lt;/h2&gt;

&lt;p&gt;JML is a new markup language that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses &lt;strong&gt;JSON‑like syntax&lt;/strong&gt; for clarity and predictability.
&lt;/li&gt;
&lt;li&gt;Transforms into &lt;strong&gt;DSL&lt;/strong&gt; and &lt;strong&gt;AST&lt;/strong&gt; for safe parsing.
&lt;/li&gt;
&lt;li&gt;Produces HTML only when the structure is fully valid.
&lt;/li&gt;
&lt;li&gt;Provides &lt;strong&gt;warnings&lt;/strong&gt; for structural issues.
&lt;/li&gt;
&lt;li&gt;Supports &lt;strong&gt;HTML5, SVG, MathML, custom elements, ARIA&lt;/strong&gt;, and more without hacks.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  JML Example
&lt;/h2&gt;

&lt;h3&gt;
  
  
  HTML Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!doctype html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Profile&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Basic profile page"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"preload"&lt;/span&gt; &lt;span class="na"&gt;as=&lt;/span&gt;&lt;span class="s"&gt;"style"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"./assets/css/style.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"icon"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"image/x-icon"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"./favicon.ico"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"canonical"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"./"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./assets/js/app.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
      &lt;span class="nc"&gt;.card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#ccc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nc"&gt;.name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;font-weight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;600&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;header&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"top"&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"site-header"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Welcome&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"card"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Jane Doe&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;data-info=&lt;/span&gt;&lt;span class="s"&gt;"safe"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Front-end developer&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"./contact.html"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"noopener"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Contact&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./assets/img/avatar.png"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Profile photo"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"120"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"120"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  JML Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;html:lang('en') {
  head {
    meta:charset('utf-8')
    title {
      `Profile`
    }
    meta:name('description'),content('Basic profile page')
    meta:name('viewport'),content('width=device-width, initial-scale=1')
    link:rel('preload'),as('style'),href('./assets/css/style.css')
    link:rel('icon'),type('image/x-icon'),href('./favicon.ico')
    link:rel('canonical'),href('./')
    script:type('text/javascript'),src('./assets/js/app.js')
    style {
      `.card { border: 1px solid #ccc; padding: 16px; border-radius: 8px; }
      .name { font-weight: 600; }`
    }
  }
  body {
    header:id('top'),class('site-header') {
      h1 {
        `Welcome`
      }
    }
    main {
      section:class('card') {
        h2:class('name') {
          `Jane Doe`
        }
        p:data-info('safe') {
          `Front-end developer`
        }
        a:href('./contact.html'),rel('noopener') {
          `Contact`
        }
        img:src('./assets/img/avatar.png'),alt('Profile photo'),width('120'),height('120')
      }
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  DSL Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;TAG html LANG 'en'
  TAG head
    TAG meta CHARSET 'utf-8'
    TAG title
      TEXT 'Profile'
    TAG meta NAME 'description' CONTENT 'Basic profile page'
    TAG meta NAME 'viewport' CONTENT 'width=device-width, initial-scale=1'
    TAG link REL 'preload' AS 'style' HREF './assets/css/style.css'
    TAG link REL 'icon' TYPE 'image/x-icon' HREF './favicon.ico'
    TAG link REL 'canonical' HREF './'
    TAG script TYPE 'text/javascript' SRC './assets/js/app.js'
    TAG style
      TEXT '.card { border: 1px solid #ccc; padding: 16px; border-radius: 8px; }
      .name { font-weight: 600; }'
  TAG body
    TAG header ID 'top' CLASS 'site-header'
      TAG h1
        TEXT 'Welcome'
    TAG main
      TAG section CLASS 'card'
        TAG h2 CLASS 'name'
          TEXT 'Jane Doe'
        TAG p DATA-INFO 'safe'
          TEXT 'Front-end developer'
        TAG a HREF './contact.html' REL 'noopener'
          TEXT 'Contact'
        TAG img SRC './assets/img/avatar.png' ALT 'Profile photo' WIDTH '120' HEIGHT '120'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why JML is Safe
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Validator&lt;/strong&gt;: The &lt;code&gt;TJMLValidator&lt;/code&gt; class in &lt;strong&gt;Ascoos OS&lt;/strong&gt; halts transformations on syntax errors.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predictable parsing&lt;/strong&gt;: No “undefined behavior.”
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual debugging&lt;/strong&gt;: Warnings for structural issues.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Independence&lt;/strong&gt;: Not tied to browser DOM quirks.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  JML Studio
&lt;/h2&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Ftb0x49aqjisa2dwizb5u.webp" class="article-body-image-wrapper"&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%2Farticles%2Ftb0x49aqjisa2dwizb5u.webp" alt="jml-to-dsl" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JML Studio&lt;/strong&gt; is the online tool for producing JML documents.&lt;br&gt;&lt;br&gt;
Just like Microsoft Word is the editor for &lt;code&gt;.docx&lt;/code&gt;, JML Studio is the &lt;strong&gt;editor&lt;/strong&gt; for &lt;code&gt;.jml&lt;/code&gt;.  &lt;/p&gt;

&lt;p&gt;It offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tabs: &lt;strong&gt;Editor&lt;/strong&gt;, &lt;strong&gt;HTML&lt;/strong&gt;, &lt;strong&gt;DSL&lt;/strong&gt;, &lt;strong&gt;AST&lt;/strong&gt;, &lt;strong&gt;HTML → JML&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Export to &lt;code&gt;.jml&lt;/code&gt; and &lt;code&gt;.html&lt;/code&gt;.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Online preview&lt;/strong&gt;: JML → HTML conversion for instant verification.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fwnfsvx0zhev8g5o8ob0f.webp" class="article-body-image-wrapper"&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%2Farticles%2Fwnfsvx0zhev8g5o8ob0f.webp" alt="jml-to-ast" width="800" height="885"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Vision
&lt;/h2&gt;

&lt;p&gt;JML is not just another language. It is the &lt;strong&gt;next markup standard&lt;/strong&gt;:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean.
&lt;/li&gt;
&lt;li&gt;Secure.
&lt;/li&gt;
&lt;li&gt;Extensible.
&lt;/li&gt;
&lt;li&gt;Predictable.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With JML, developers won’t waste time debugging quirks. They’ll build on a language that &lt;strong&gt;doesn’t betray them&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;HTML is dead. JML is the future.&lt;br&gt;&lt;br&gt;
With JML Studio, you can start creating and testing JML documents today. But the essence lies in the &lt;strong&gt;JML language itself&lt;/strong&gt;: the new secure markup for the Web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Long live JML.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>jml</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
