<?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: bored duck</title>
    <description>The latest articles on DEV Community by bored duck (@bored-duck).</description>
    <link>https://dev.to/bored-duck</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3634306%2Ff15fb45c-a10c-4c5c-b8d3-75dc5844ddeb.webp</url>
      <title>DEV Community: bored duck</title>
      <link>https://dev.to/bored-duck</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bored-duck"/>
    <language>en</language>
    <item>
      <title>ducksh: Secure/pretty shell</title>
      <dc:creator>bored duck</dc:creator>
      <pubDate>Sat, 03 Oct 2026 14:20:10 +0000</pubDate>
      <link>https://dev.to/bored-duck/ducksh-securepretty-shell-pji</link>
      <guid>https://dev.to/bored-duck/ducksh-securepretty-shell-pji</guid>
      <description>&lt;h1&gt;
  
  
  🦆 Welcome to Ducksh
&lt;/h1&gt;

&lt;p&gt;A secure, friendly shell for the 21st century.&lt;/p&gt;

&lt;p&gt;Ducksh is built for beginners and professionals alike, with a focus on security, simplicity, and ease of use.&lt;/p&gt;

&lt;p&gt;A big part of that is making things discoverable. You shouldn't necessarily have to memorize a bunch of commands just to get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Familiar commands, friendlier alternatives
&lt;/h2&gt;

&lt;p&gt;Ducksh has the commands you'd expect, like &lt;code&gt;cd&lt;/code&gt;, &lt;code&gt;pwd&lt;/code&gt;, &lt;code&gt;ls&lt;/code&gt;, and &lt;code&gt;echo&lt;/code&gt;, but many of them also have more descriptive alternatives.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd projects
go projects
waddle projects
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All get you where you're going. 🦆&lt;/p&gt;

&lt;p&gt;The duck-themed aliases aren't meant to replace normal shell commands. They're just another way to interact with the shell (and make it a little more fun).&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Reference
&lt;/h2&gt;

&lt;p&gt;Here's what Ducksh currently looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NAVIGATION
  Tab                 Complete commands and paths
  Right Arrow         Accept the history suggestion
  ↑ / ↓               Browse command history
  history             Show this session's commands

FILES &amp;amp; DIRECTORIES
  cd DIR / go DIR     Change directory       (waddle / g)
  pwd / where         Show current directory (nest / here)
  ls / list           List files             (pond / l)
  mkdir / newdir      Create a directory

OUTPUT &amp;amp; TERMINAL
  echo / say          Print text              (quack / e)
  clear               Clear the screen        (flap / c)
  CMD &amp;amp; CMD           Run commands in order

CONFIGURATION
  source FILE         Load a Ducksh config file
  reset               Clear screen &amp;amp; reload ~/.quackrc
  export A=value      Set an environment variable
  path                Show PATH entries
  theme [NAME]        List or switch themes
  alias NAME=CMD      Create a simple alias

SESSION
  logout              Log out &amp;amp; authenticate another user
  exit                Leave Ducksh            (bye / q)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Tab is your friend
&lt;/h2&gt;

&lt;p&gt;One thing Ducksh encourages is exploration.&lt;/p&gt;

&lt;p&gt;If you aren't sure what command or path you're looking for, press &lt;strong&gt;Tab&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Ducksh can help complete commands and paths, so you don't have to remember everything before you can start using the shell.&lt;/p&gt;

&lt;p&gt;There's also history built into the prompt. You can use &lt;strong&gt;↑ / ↓&lt;/strong&gt; to browse previous commands, or use the &lt;strong&gt;Right Arrow&lt;/strong&gt; to accept a history suggestion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making it yours
&lt;/h2&gt;

&lt;p&gt;Ducksh has a &lt;code&gt;~/.quackrc&lt;/code&gt; configuration file.&lt;/p&gt;

&lt;p&gt;You can create aliases:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;alias NAME=CMD
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Set environment variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export A=value
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Switch themes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;theme NAME
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And &lt;code&gt;reset&lt;/code&gt; gives you a quick way to clear the terminal and reload your configuration.&lt;/p&gt;

&lt;p&gt;Configuration is kept simple so you can customize your shell without dealing with a giant configuration system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security and syntax
&lt;/h2&gt;

&lt;p&gt;Ducksh has two main goals: &lt;strong&gt;be more secure than Bash and have nice syntax.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At the same time, it keeps familiar commands like &lt;code&gt;cd&lt;/code&gt;, &lt;code&gt;pwd&lt;/code&gt;, &lt;code&gt;ls&lt;/code&gt;, and &lt;code&gt;echo&lt;/code&gt;, so using Ducksh doesn't mean throwing away commands you already know.&lt;/p&gt;

&lt;p&gt;The alternative commands give you a different syntax when you want it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;go projects
list
say "Hello!"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or, of course:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;waddle projects
pond
quack "Hello!"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Install Ducksh
&lt;/h2&gt;

&lt;p&gt;The Ducksh repository is on SourceForge:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sourceforge.net/p/ducksh" rel="noopener noreferrer"&gt;https://sourceforge.net/p/ducksh&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Download the repository and run the included installer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once it's installed, you're ready to start using Ducksh.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Press Tab whenever you're unsure — Ducksh can help complete commands and paths.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>you can screenshot your game or DM other game developers for help with your code, follow tags, and share photos and posts with other game developers! Its facebook for game developers.</title>
      <dc:creator>bored duck</dc:creator>
      <pubDate>Sun, 31 May 2026 22:10:01 +0000</pubDate>
      <link>https://dev.to/bored-duck/you-can-screenshot-your-game-or-dm-other-game-developers-for-help-with-your-code-follow-tags-and-34cb</link>
      <guid>https://dev.to/bored-duck/you-can-screenshot-your-game-or-dm-other-game-developers-for-help-with-your-code-follow-tags-and-34cb</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/bored-duck/pixelnet-the-social-network-for-game-developers-3fde" class="crayons-story__hidden-navigation-link"&gt;Pixelnet - The social network for game developers&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/bored-duck" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3634306%2Ff15fb45c-a10c-4c5c-b8d3-75dc5844ddeb.webp" alt="bored-duck profile" class="crayons-avatar__image" width="480" height="640"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/bored-duck" class="crayons-story__secondary fw-medium m:hidden"&gt;
              bored duck
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                bored duck
                
              
              &lt;div id="story-author-preview-content-3791281" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/bored-duck" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3634306%2Ff15fb45c-a10c-4c5c-b8d3-75dc5844ddeb.webp" class="crayons-avatar__image" alt="" width="480" height="640"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;bored duck&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/bored-duck/pixelnet-the-social-network-for-game-developers-3fde" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 31&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/bored-duck/pixelnet-the-social-network-for-game-developers-3fde" id="article-link-3791281"&gt;
          Pixelnet - The social network for game developers
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gamedev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gamedev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/bored-duck/pixelnet-the-social-network-for-game-developers-3fde#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            1 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Pixelnet - The social network for game developers</title>
      <dc:creator>bored duck</dc:creator>
      <pubDate>Sun, 31 May 2026 21:41:09 +0000</pubDate>
      <link>https://dev.to/bored-duck/pixelnet-the-social-network-for-game-developers-3fde</link>
      <guid>https://dev.to/bored-duck/pixelnet-the-social-network-for-game-developers-3fde</guid>
      <description>&lt;p&gt;Link: &lt;a href="https://pixelnet.flarum.cloud" rel="noopener noreferrer"&gt;https://pixelnet.flarum.cloud&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Welcome!&lt;br&gt;
Pixelnet is primarily a platform for game developers needing help, you can screenshot your game or DM other game developers for help with your code, follow tags, and share photos and posts with other game developers!&lt;/p&gt;

&lt;p&gt;For Web Developers Introducing Pixelnet Logins&lt;br&gt;
API docs: &lt;a href="https://pixelnet.flarum.cloud/p/developers" rel="noopener noreferrer"&gt;https://pixelnet.flarum.cloud/p/developers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Plans on expanding Pixelnet to more topics&lt;br&gt;
Pixelnet will get expanded to more topics as it grows, so Pixelnet won’t be centric to 1 topic in the future!&lt;/p&gt;

</description>
      <category>gamedev</category>
    </item>
    <item>
      <title>Arcable: The language that fits your coding style/grammar</title>
      <dc:creator>bored duck</dc:creator>
      <pubDate>Sun, 17 May 2026 21:16:18 +0000</pubDate>
      <link>https://dev.to/bored-duck/arcable-the-language-that-fits-your-coding-stylegrammar-4kn8</link>
      <guid>https://dev.to/bored-duck/arcable-the-language-that-fits-your-coding-stylegrammar-4kn8</guid>
      <description>&lt;h2&gt;
  
  
  Downloads:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://file.kiwi/5006205c#8HfQaB-P4wzykGnUMmZd6w" rel="noopener noreferrer"&gt;Download Arcable 1.0.0&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Arcable
&lt;/h1&gt;

&lt;p&gt;Arcable is a programming language for writing C++-targeted programs in a style&lt;br&gt;
that can feel Python-like, C-like, assembly-like, or a practical hybrid of&lt;br&gt;
those forms. Arcable source files use the &lt;code&gt;.arc&lt;/code&gt; extension.&lt;/p&gt;

&lt;p&gt;The reference implementation is a small compiler written in C. It lowers&lt;br&gt;
Arcable code into temporary C++, invokes &lt;code&gt;clang++&lt;/code&gt;, deletes the temporary&lt;br&gt;
&lt;code&gt;&amp;lt;basename&amp;gt;.arcable.cpp&lt;/code&gt; file, and leaves the compiled application behind.&lt;/p&gt;
&lt;h2&gt;
  
  
  Build
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;cmake&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-S&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-B&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;cmake&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--build&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Debug&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This builds both &lt;code&gt;arcable.exe&lt;/code&gt; and the compatibility command &lt;code&gt;acomp.exe&lt;/code&gt;.&lt;br&gt;
On Windows it also builds &lt;code&gt;install.exe&lt;/code&gt;, a GUI installer that contains the&lt;br&gt;
Arcable command binaries, LSP, source snapshot, and VS Code extension files.&lt;/p&gt;
&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;Install the command line tools, language server helper, and local VS Code&lt;br&gt;
extension:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\build\Debug\install.exe&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The GUI installer extracts &lt;code&gt;arcable.exe&lt;/code&gt; and &lt;code&gt;acomp.exe&lt;/code&gt; to&lt;br&gt;
&lt;code&gt;%LOCALAPPDATA%\Arcable\bin&lt;/code&gt;, writes the LSP and bundled source/support files&lt;br&gt;
under &lt;code&gt;%LOCALAPPDATA%\Arcable&lt;/code&gt;, installs the VS Code extension into the user's&lt;br&gt;
VS Code extension folder, and sets &lt;code&gt;ARCABLE_HOME&lt;/code&gt;, &lt;code&gt;ARCABLE_TOOLS&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;ARCABLE_LSP&lt;/code&gt;, and the user &lt;code&gt;PATH&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can also run the script installer directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;powershell&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ExecutionPolicy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Bypass&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-File&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\tools\install.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The installer builds the project, copies &lt;code&gt;acomp.exe&lt;/code&gt; and &lt;code&gt;arcable.exe&lt;/code&gt; to&lt;br&gt;
&lt;code&gt;%LOCALAPPDATA%\Arcable\bin&lt;/code&gt;, adds that directory to your user &lt;code&gt;PATH&lt;/code&gt;, copies&lt;br&gt;
&lt;code&gt;tools\arcable_lsp.py&lt;/code&gt; to &lt;code&gt;%LOCALAPPDATA%\Arcable\tools&lt;/code&gt;, and sets&lt;br&gt;
&lt;code&gt;ARCABLE_HOME&lt;/code&gt;, &lt;code&gt;ARCABLE_TOOLS&lt;/code&gt;, and &lt;code&gt;ARCABLE_LSP&lt;/code&gt; for editor integrations.&lt;/p&gt;

&lt;p&gt;Open a new terminal after installing, then run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;acomp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\examples\python_like.arc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-o&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\build\Debug\python_like.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Wall&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;-SkipVSCodeExtension&lt;/code&gt; if you only want the CLI and LSP files installed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compile A Program
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\build\Debug\arcable.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\examples\python_like.arc&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-o&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\build\Debug\python_like.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Wall&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything after &lt;code&gt;--&lt;/code&gt; is forwarded to &lt;code&gt;clang++&lt;/code&gt;. On Windows, &lt;code&gt;arcable&lt;/code&gt;&lt;br&gt;
automatically initializes the Visual Studio Build Tools environment before&lt;br&gt;
launching Clang when it can find &lt;code&gt;vcvars64.bat&lt;/code&gt;. Set &lt;code&gt;ARCABLE_VCVARS64&lt;/code&gt; to a&lt;br&gt;
custom &lt;code&gt;vcvars64.bat&lt;/code&gt; path if Visual Studio is installed somewhere unusual.&lt;/p&gt;
&lt;h2&gt;
  
  
  Language Styles
&lt;/h2&gt;

&lt;p&gt;Python-like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&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;int&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;C-like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"hello"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;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;Assembly-like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.var value int 41
add value 1
print value
ret 0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hybrid styles are allowed when they are unambiguous. For example, Python-style&lt;br&gt;
&lt;code&gt;def&lt;/code&gt; and &lt;code&gt;print&lt;/code&gt; can be mixed with C-style braces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"hello"&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;Imports:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;stdint&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;h&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="s"&gt;"my_header.hpp"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.import &amp;lt;math.h&amp;gt;
%include "my_header.hpp"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Import targets become C++ &lt;code&gt;#include&lt;/code&gt; lines in the generated file. They must use&lt;br&gt;
angle brackets for system headers or quotes for local headers.&lt;/p&gt;
&lt;h2&gt;
  
  
  Smoke Tests
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;powershell&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ExecutionPolicy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Bypass&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-File&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\tests\run_smoke.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Language Server
&lt;/h2&gt;

&lt;p&gt;Arcable includes a dependency-free Language Server Protocol server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\tools\arcable_lsp.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configure your editor's LSP client to launch that command for &lt;code&gt;.arc&lt;/code&gt; files. The&lt;br&gt;
server provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;diagnostics for malformed imports, block syntax, braces, and assembly-like
instructions&lt;/li&gt;
&lt;li&gt;completions for Arcable keywords, C++ keywords/types/standard headers,
imports, and assembly-like instructions&lt;/li&gt;
&lt;li&gt;hover text for common Arcable and C++ language forms&lt;/li&gt;
&lt;li&gt;full-document sync for unsaved editor buffers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For VS Code, use any generic LSP client extension and set the server command to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"python"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"C:/Users/devel/Downloads/adaptablecpp/tools/arcable_lsp.py"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"filetypes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"arc"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  VS Code Extension
&lt;/h2&gt;

&lt;p&gt;VS Code does not need a separate LSP client for Arcable. This repo includes&lt;br&gt;
a local extension with syntax coloring, diagnostics, quick fixes, hover, and&lt;br&gt;
dropdown completions for &lt;code&gt;.arc&lt;/code&gt; files.&lt;/p&gt;

&lt;p&gt;Install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;powershell&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ExecutionPolicy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Bypass&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-File&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\tools\install_vscode_extension.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then reload VS Code and open a &lt;code&gt;.arc&lt;/code&gt; file. The extension contributes the&lt;br&gt;
&lt;code&gt;Arcable&lt;/code&gt; language mode for &lt;code&gt;.arc&lt;/code&gt; files and runs entirely inside VS Code.&lt;/p&gt;

&lt;p&gt;The extension lives in &lt;code&gt;vscode-extension/&lt;/code&gt; if you want to inspect or edit it.&lt;/p&gt;

&lt;h2&gt;
  
  
  History
&lt;/h2&gt;

&lt;p&gt;Arcable started under the name &lt;strong&gt;AdaptableCPP&lt;/strong&gt;. That name described the first&lt;br&gt;
implementation idea: a compiler that adapted different code styles into C++.&lt;/p&gt;

&lt;p&gt;The name was dropped because the project had grown beyond being just an&lt;br&gt;
"adaptable C++ compiler." Once &lt;code&gt;.arc&lt;/code&gt; files, a syntax model, diagnostics,&lt;br&gt;
imports, editor support, and reusable language rules existed, it made more&lt;br&gt;
sense to treat it as its own programming language. &lt;strong&gt;Arcable&lt;/strong&gt; is shorter,&lt;br&gt;
works better as a language name, and leaves room for the language to evolve&lt;br&gt;
without sounding like only a C++ wrapper.&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>programming</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Essential.CDN; Get the CDN that supports you</title>
      <dc:creator>bored duck</dc:creator>
      <pubDate>Sun, 08 Feb 2026 16:44:17 +0000</pubDate>
      <link>https://dev.to/bored-duck/essentialcdn-2nb7</link>
      <guid>https://dev.to/bored-duck/essentialcdn-2nb7</guid>
      <description>&lt;h2&gt;
  
  
  About Essential.CDN
&lt;/h2&gt;

&lt;p&gt;Essential.CDN is the place to run scripts straight from the internet.&lt;br&gt;
Add packages to your website using Cloudflare’s global hosting network — less downtime, more building, more shipping.&lt;/p&gt;

&lt;p&gt;Why download scripts when that’s clearly in the past?&lt;/p&gt;

&lt;p&gt;JavaScript deserves a fast, reliable CDN that actually supports you.&lt;/p&gt;

&lt;p&gt;Pick Essential.CDN for your JS tasks.&lt;/p&gt;

&lt;p&gt;Go to &lt;a href="https://essentialcdn.fluidity.workers.dev/" rel="noopener noreferrer"&gt;https://essentialcdn.fluidity.workers.dev/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to support Essential.CDN
&lt;/h2&gt;

&lt;p&gt;Let us grow; Post about us on X or Facebook!&lt;/p&gt;

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