<?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: Stepan Dyatkovskiy</title>
    <description>The latest articles on DEV Community by Stepan Dyatkovskiy (@kaomoneus).</description>
    <link>https://dev.to/kaomoneus</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%2F354516%2Fe43cfdc9-5a62-4ab9-a31e-ac8f2a649a7a.png</url>
      <title>DEV Community: Stepan Dyatkovskiy</title>
      <link>https://dev.to/kaomoneus</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kaomoneus"/>
    <language>en</language>
    <item>
      <title>Rapid fatigue recognition</title>
      <dc:creator>Stepan Dyatkovskiy</dc:creator>
      <pubDate>Sat, 19 Mar 2022 11:13:01 +0000</pubDate>
      <link>https://dev.to/kaomoneus/rapid-fatigue-recognition-5ehm</link>
      <guid>https://dev.to/kaomoneus/rapid-fatigue-recognition-5ehm</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Wssov_eYZtg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>fatigue</category>
      <category>fatiguedetectio</category>
      <category>perclos</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>C++ Levitation: Looking for contributors</title>
      <dc:creator>Stepan Dyatkovskiy</dc:creator>
      <pubDate>Thu, 12 Nov 2020 23:41:04 +0000</pubDate>
      <link>https://dev.to/kaomoneus/looking-for-contributors-3if0</link>
      <guid>https://dev.to/kaomoneus/looking-for-contributors-3if0</guid>
      <description>&lt;p&gt;Hi guys! I'm working on kind of alternative C++. Namely I developed alternative modularity for C++.&lt;/p&gt;

&lt;p&gt;YouTube demo:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ru5P6ivVLqE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h1&gt;
  
  
  About project
&lt;/h1&gt;

&lt;p&gt;Main idea is to extend existing namespaces (instead of inventing alternative namespace concept, like in C++20 modules).&lt;/p&gt;

&lt;p&gt;Another idea is to combine file system scope and module path, just like in Python, and very similar to Java.&lt;/p&gt;

&lt;p&gt;There is a well detailed &lt;a href="https://github.com/kaomoneus/cppl/blob/levitation-master/README.md"&gt;Readme.md&lt;/a&gt;, so you can learn details there.&lt;/p&gt;

&lt;p&gt;Currently I have implemented the compiler (customized clang + own meta driver). I have covered it with tests, and even tried some small apps with STL, and it works! I have tested it on Linux and on Mac OS.&lt;/p&gt;

&lt;p&gt;I understand that it's kind of crazy to go against mainstream, I also understand, that even though I have tried to do my best and complete compiler itself, it is still merely a toy, just a pet project.&lt;/p&gt;

&lt;p&gt;And yet sometimes I can't stand and return to it again and again.&lt;/p&gt;

&lt;p&gt;Surprisingly, I found that indeed, it's easy to implement some small projects with my extension.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why and how it was started?
&lt;/h1&gt;

&lt;p&gt;When you develop on C++ it's always about some bicycle invention, we create some harness, some sort of dynamic cast and so on.&lt;/p&gt;

&lt;p&gt;One day it struck me: dude, you have some experience in compiler development, why can't you bring all that "harness" into compiler AST level? Why not to make own syntax extension?&lt;/p&gt;

&lt;p&gt;That was started for fun, and for fun it is. Though, there were periods, when I was working full time, full of ambitions! So I started to love that thing after all, haha!&lt;/p&gt;

&lt;p&gt;Perhaps some of you guys would be interested to review or contribute, may be just for fun ;-)&lt;/p&gt;

&lt;p&gt;Feel free to ask questions!&lt;/p&gt;

&lt;p&gt;P.S.: Now it's good to create plugins for popular IDEs (CLion, Eclispe, etc). So this is my next step.&lt;/p&gt;

&lt;p&gt;Github:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/kaomoneus"&gt;
        kaomoneus
      &lt;/a&gt; / &lt;a href="https://github.com/kaomoneus/cppl"&gt;
        cppl
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      C++ Levitation (based on LLVM)
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;[toc]&lt;/p&gt;
&lt;h1&gt;
C++ Levitation Units&lt;/h1&gt;
&lt;p&gt;This is an extension to C++17, and it introduces original
&lt;a href="https://en.wikipedia.org/wiki/Modular_programming" rel="nofollow"&gt;modularity&lt;/a&gt;
support for C++.&lt;/p&gt;
&lt;h2&gt;
Basic concepts&lt;/h2&gt;
&lt;p&gt;Levitation Packages is a replacement for &lt;em&gt;C/C++&lt;/em&gt; &lt;code&gt;#include&lt;/code&gt; directives
In &lt;em&gt;C++ Levitation&lt;/em&gt; mode the latter is still supported, but only as landing pad for legacy C++ code.&lt;/p&gt;
&lt;h2&gt;
Simplest things&lt;/h2&gt;
&lt;h3&gt;
Example 1&lt;/h3&gt;
&lt;p&gt;Let's consider simple example program with one package
and two classes.&lt;/p&gt;
&lt;h4&gt;
Defining units&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;MyPackage/UnitA.cppl&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-c++ position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;class&lt;/span&gt; &lt;span class="pl-en"&gt;A&lt;/span&gt; {
&lt;span class="pl-k"&gt;public:&lt;/span&gt;
  &lt;span class="pl-k"&gt;static&lt;/span&gt; &lt;span class="pl-k"&gt;void&lt;/span&gt; &lt;span class="pl-en"&gt;sayHello&lt;/span&gt;() {
    &lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;//&lt;/span&gt; send hello messge here&lt;/span&gt;
  }
};&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;It looks pretty much like a regular C++ class. But instead it is
defined as a Levitation Unit
Implicitly this class is sorrounded by a namespace &lt;code&gt;MyPackage::UnitA&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To demonstrate that, let's take look at another class which uses the first one.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;MyPackage/UnitB.cppl&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-c++ position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;#&lt;span class="pl-k"&gt;import&lt;/span&gt; MyPackage::UnitA
&lt;span class="pl-k"&gt;class&lt;/span&gt; &lt;span class="pl-en"&gt;B&lt;/span&gt; {
&lt;span class="pl-k"&gt;public:&lt;/span&gt;
  &lt;span class="pl-k"&gt;static&lt;/span&gt; &lt;span class="pl-k"&gt;void&lt;/span&gt; &lt;span class="pl-en"&gt;useA&lt;/span&gt;() {
    &lt;span class="pl-c1"&gt;MyPackage::UnitA::A::sayHello&lt;/span&gt;();
  }
};&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Here we import &lt;code&gt;MyPackage::UnitA&lt;/code&gt; and, it allows to use its…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/kaomoneus/cppl"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Thanks!&lt;/p&gt;

</description>
      <category>clang</category>
      <category>modules</category>
      <category>llvm</category>
      <category>cpp</category>
    </item>
    <item>
      <title>Could C++ be as light in use as Python3 or Java</title>
      <dc:creator>Stepan Dyatkovskiy</dc:creator>
      <pubDate>Sat, 11 Jul 2020 19:16:07 +0000</pubDate>
      <link>https://dev.to/kaomoneus/could-c-be-as-light-in-use-as-python3-or-java-3bhf</link>
      <guid>https://dev.to/kaomoneus/could-c-be-as-light-in-use-as-python3-or-java-3bhf</guid>
      <description>&lt;p&gt;Hi guys! Just your thoughts on this point.&lt;/p&gt;

&lt;p&gt;I'm working on something to make this goal closer, and would like to share it with you. But first I'd like you to ask about it.&lt;/p&gt;

&lt;p&gt;What do you think? As for me, main concerns are modularity and reflection.&lt;/p&gt;

&lt;p&gt;P.S.: Sorry if it's a bit out of format. I'm still not sure what it should be like here. More like an article or some "instagram"-styled story.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
