<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Brainstorms on Artur Rios Lab</title><link>https://lab.artur-rios.tech/brainstorms/</link><description>Recent content in Brainstorms on Artur Rios Lab</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 22 Oct 2026 12:30:00 +0000</lastBuildDate><atom:link href="https://lab.artur-rios.tech/brainstorms/index.xml" rel="self" type="application/rss+xml"/><item><title>Netbank: A Banking System to Learn From</title><link>https://lab.artur-rios.tech/brainstorms/netbank/</link><pubDate>Thu, 22 Oct 2026 12:30:00 +0000</pubDate><guid>https://lab.artur-rios.tech/brainstorms/netbank/</guid><description>&lt;p&gt;A complete banking system, built for learning purposes.&lt;/p&gt;&#10;&lt;h2 id="technology"&gt;Technology&lt;a class="heading-anchor" href="#technology" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;.NET on the back end&lt;/li&gt;&#10;&lt;li&gt;Flutter on the front end&lt;/li&gt;&#10;&lt;li&gt;Heimdall for authentication and authorization&lt;/li&gt;&#10;&lt;li&gt;PostgreSQL database&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="platforms"&gt;Platforms&lt;a class="heading-anchor" href="#platforms" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Android&lt;/li&gt;&#10;&lt;li&gt;Linux&lt;/li&gt;&#10;&lt;li&gt;Windows&lt;/li&gt;&#10;&lt;li&gt;Web&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="what-a-complete-bank-covers"&gt;What a complete bank covers&lt;a class="heading-anchor" href="#what-a-complete-bank-covers" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;&amp;ldquo;Complete&amp;rdquo; is the part of the idea that needs a boundary. A real bank is&#10;hundreds of systems, so this is a suggestion of what Netbank should cover, chosen&#10;because each part teaches something a CRUD app does not. It moves no real money&#10;and connects to no real bank: every institution outside Netbank is simulated.&lt;/p&gt;</description></item><item><title>Merlin: A Reading Tracker</title><link>https://lab.artur-rios.tech/brainstorms/merlin/</link><pubDate>Thu, 22 Oct 2026 12:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/brainstorms/merlin/</guid><description>&lt;p&gt;Merlin is an app to keep your readings.&lt;/p&gt;&#10;&lt;h2 id="features"&gt;Features&lt;a class="heading-anchor" href="#features" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Search books from a public database&lt;/li&gt;&#10;&lt;li&gt;Track the books you are reading now, and read on the past&lt;/li&gt;&#10;&lt;li&gt;Write reviews on books&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="platforms"&gt;Platforms&lt;a class="heading-anchor" href="#platforms" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Android&lt;/li&gt;&#10;&lt;li&gt;Web&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="technology-stack"&gt;Technology stack&lt;a class="heading-anchor" href="#technology-stack" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;One choice is already made: the app is built with Flutter, which builds the&#10;Android app and the web app from one Dart code base. How Flutter works, and&#10;what it is good and bad at, is covered in&#10;&lt;a href="https://lab.artur-rios.tech/front-end/flutter/"&gt;What Is Flutter?&lt;/a&gt;. What is left to decide is&#10;everything around it: where the books come from, where the readings and&#10;reviews are stored, and how the two platforms see the same library.&lt;/p&gt;</description></item><item><title>Craft: A Programming Language</title><link>https://lab.artur-rios.tech/brainstorms/craft/</link><pubDate>Wed, 21 Oct 2026 17:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/brainstorms/craft/</guid><description>&lt;p&gt;A modern programming language that supports the most used paradigms, and has all the features you need to write elegant solutions.&lt;/p&gt;&#10;&lt;h2 id="features"&gt;Features&lt;a class="heading-anchor" href="#features" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Multiplatform&lt;/li&gt;&#10;&lt;li&gt;Syntax inspired by C#&lt;/li&gt;&#10;&lt;li&gt;Proof, parallelism and speed inspired by &lt;a href="https://bend-lang.com/"&gt;Bend&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="roadmap"&gt;Roadmap&lt;a class="heading-anchor" href="#roadmap" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Develop a minimal version&lt;/li&gt;&#10;&lt;li&gt;Develop and test more features on top of the minimal version&lt;/li&gt;&#10;&lt;li&gt;Once we have a first stable version, start to develop simple programs in it&lt;/li&gt;&#10;&lt;li&gt;Develop more features, as we test and identify requirements&lt;/li&gt;&#10;&lt;li&gt;Build more complex programs and develop the language as we go&lt;/li&gt;&#10;&lt;li&gt;After having a stable programming language, with complex projects written on it, create a compiler written in Craft itself&lt;/li&gt;&#10;&lt;li&gt;Build an Operating System using the language&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="technology-stack"&gt;Technology stack&lt;a class="heading-anchor" href="#technology-stack" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;A language is two things: the design people write in, and the compiler and&#10;runtime that make it run. The stack is mostly the second, but three design&#10;choices shape it so much that they come first: how parallelism works, how&#10;memory is managed, and what &amp;ldquo;proof&amp;rdquo; means. The background on how a compiler is&#10;structured is in &lt;a href="https://lab.artur-rios.tech/fundamentals/compilers/"&gt;Compilers&lt;/a&gt;, and the&#10;way C# itself runs is in &lt;a href="https://lab.artur-rios.tech/dotnet/compilation-and-execution/"&gt;How C# Runs&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Anvil OS: An Operating System From Scratch</title><link>https://lab.artur-rios.tech/brainstorms/anvil-os/</link><pubDate>Wed, 21 Oct 2026 15:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/brainstorms/anvil-os/</guid><description>&lt;p&gt;An open source operating system built from scratch.&lt;/p&gt;&#10;&lt;h2 id="overview"&gt;Overview&lt;a class="heading-anchor" href="#overview" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;The idea is to build a fully functional operating system, to learn about how an operating system works, and from the simpler version of a kernel, improve it until something really usable.&lt;/p&gt;&#10;&lt;h2 id="roadmap"&gt;Roadmap&lt;a class="heading-anchor" href="#roadmap" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Start with the simpler version of a kernel&lt;/li&gt;&#10;&lt;li&gt;Build functionalities on top of the kernel&lt;/li&gt;&#10;&lt;li&gt;Improve as we test&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="technology-stack"&gt;Technology stack&lt;a class="heading-anchor" href="#technology-stack" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;An operating system has almost no stack in the usual sense: there is no&#10;runtime, no standard library and no framework beneath it, because it is the&#10;thing those normally run on. The choices that matter are the language, the&#10;processor architecture, how the kernel gets loaded, and the tools for running&#10;and debugging a kernel that cannot print an error when it crashes. The&#10;background for all of it is in &lt;a href="https://lab.artur-rios.tech/fundamentals/operating-systems/"&gt;Operating Systems&lt;/a&gt;&#10;and &lt;a href="https://lab.artur-rios.tech/fundamentals/processors/"&gt;Processors&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Thoth: An IDE That Grows With You</title><link>https://lab.artur-rios.tech/brainstorms/thoth/</link><pubDate>Wed, 21 Oct 2026 12:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/brainstorms/thoth/</guid><description>&lt;p&gt;An IDE that adapts to your exact needs, nothing more, nothing less.&lt;/p&gt;&#10;&lt;h2 id="features"&gt;Features&lt;a class="heading-anchor" href="#features" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Starts like a simple and lightweight code editor and the user can activate modules to add functionalities to fill their needs. For example a .NET module, an Angular module etc&lt;/li&gt;&#10;&lt;li&gt;Experience must be similar to Visual Studio Code on Linux and Windows and similar to LunarVim on terminal&lt;/li&gt;&#10;&lt;li&gt;Do not support extensions, the idea is to use the modules to extend the application on-demand&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="platforms"&gt;Platforms&lt;a class="heading-anchor" href="#platforms" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Linux&lt;/li&gt;&#10;&lt;li&gt;Windows&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="first-release-modules"&gt;First release modules&lt;a class="heading-anchor" href="#first-release-modules" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;.NET&lt;/li&gt;&#10;&lt;li&gt;Angular&lt;/li&gt;&#10;&lt;li&gt;React&lt;/li&gt;&#10;&lt;li&gt;Flutter&lt;/li&gt;&#10;&lt;li&gt;Python&lt;/li&gt;&#10;&lt;li&gt;Rust&lt;/li&gt;&#10;&lt;li&gt;HTML/CSS&lt;/li&gt;&#10;&lt;li&gt;JavaScript/TypeScript&lt;/li&gt;&#10;&lt;li&gt;Java&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="technology-stack"&gt;Technology stack&lt;a class="heading-anchor" href="#technology-stack" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;The feature that shapes the stack most is the second one: the same IDE in a&#10;window and in a terminal. If the window and the terminal are two programs, every&#10;feature is built twice. So the design starts from one &lt;strong&gt;core&lt;/strong&gt; that owns&#10;everything an editor does, such as buffers, cursors, syntax trees, language&#10;servers, commands, keymaps and modules, and two thin &lt;strong&gt;front ends&lt;/strong&gt; that only&#10;draw what the core describes and send it the user&amp;rsquo;s input. The core and the&#10;front ends talk only through typed messages: input events go in, view updates&#10;come out. Neither side calls into the other, so a front end can be replaced,&#10;and the core could later run in a separate process, for example on a remote&#10;machine over SSH.&lt;/p&gt;</description></item><item><title>Mosaic: A Second Brain App</title><link>https://lab.artur-rios.tech/brainstorms/mosaic/</link><pubDate>Wed, 21 Oct 2026 09:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/brainstorms/mosaic/</guid><description>&lt;p&gt;An app that wants to be your second brain.&lt;/p&gt;&#10;&lt;h2 id="features"&gt;Features&lt;a class="heading-anchor" href="#features" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Create and organize notes in Markdown&lt;/li&gt;&#10;&lt;li&gt;Calendar&lt;/li&gt;&#10;&lt;li&gt;To do list&lt;/li&gt;&#10;&lt;li&gt;Kanban board&lt;/li&gt;&#10;&lt;li&gt;Pomodoro sessions&lt;/li&gt;&#10;&lt;li&gt;Mermaid diagrams&lt;/li&gt;&#10;&lt;li&gt;Draw diagrams&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="inspiration"&gt;Inspiration&lt;a class="heading-anchor" href="#inspiration" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;This app wants to combine features from these apps:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://obsidian.md/"&gt;Obsidian&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://super-productivity.com/"&gt;Super Productivity&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://excalidraw.com/"&gt;Excalidraw&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="platforms"&gt;Platforms&lt;a class="heading-anchor" href="#platforms" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Android&lt;/li&gt;&#10;&lt;li&gt;Linux&lt;/li&gt;&#10;&lt;li&gt;Web&lt;/li&gt;&#10;&lt;li&gt;Windows&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="technology-stack"&gt;Technology stack&lt;a class="heading-anchor" href="#technology-stack" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Two of the features decide most of the stack before anything else is weighed.&#10;Excalidraw is published as a React component, and Mermaid is a JavaScript&#10;library. Any stack that does not run JavaScript in a web view has to embed one&#10;to get them, so the cheapest path is to make the whole app a web app and wrap&#10;it for each platform. The suggestion below follows that path.&lt;/p&gt;</description></item></channel></rss>