<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Balzabu | Blog</title>
    <link>https://blog.balzabu.io/tags/ai/</link>
    <description>Recent content on Balzabu | Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Wed, 29 Jan 2025 21:02:13 +0200</lastBuildDate>
    <atom:link href="https://blog.balzabu.io/tags/ai/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Ollama &#43; Continue: Open-Source is Always Better!</title>
      <link>https://blog.balzabu.io/posts/deepseek-ollama-continue/</link>
      <pubDate>Wed, 29 Jan 2025 21:02:13 +0200</pubDate>
      <guid>https://blog.balzabu.io/posts/deepseek-ollama-continue/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;In a previous post, I discussed setting up a local environment to run language models on your own machine (&lt;a href=&#34;https://blog.balzabu.io/posts/lmstudio_continue/&#34;&gt;Read the original post&lt;/a&gt;).
&lt;br&gt;Well, I have to admit today that I’ve concluded that while LMStudio has its merits, it doesn’t fully align with my principles. Consequently, I’ve decided to transition to &lt;strong&gt;Ollama&lt;/strong&gt; and refresh my setup to embrace the recent hype surrounding the Chinese model trained with synthetic data based on ChatGPT responses. &lt;em&gt;(FTW: Work smarter, not harder! :D)&lt;/em&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<hr>
<p>In a previous post, I discussed setting up a local environment to run language models on your own machine (<a href="https://blog.balzabu.io/posts/lmstudio_continue/">Read the original post</a>).
<br>Well, I have to admit today that I’ve concluded that while LMStudio has its merits, it doesn’t fully align with my principles. Consequently, I’ve decided to transition to <strong>Ollama</strong> and refresh my setup to embrace the recent hype surrounding the Chinese model trained with synthetic data based on ChatGPT responses. <em>(FTW: Work smarter, not harder! :D)</em></p>
<img src="../../images/ollama_continue_deepseekr1/sad_realization.jpg" title="ollama_pull" alt="sad_realization">
<hr>
<h2 id="installing-ollama">Installing Ollama</h2>
<p>Installing Ollama is straightforward. While compiling the project locally might be challenging for some, pre-built release builds are available on the official website: <a href="https://ollama.com">ollama.com</a>. Once downloaded and installed, you can use the command-line interface (CLI) to download and run models easily.</p>
<h2 id="available-deepseek-r1-models">Available DeepSeek R1 Models</h2>
<p>Here is a table summarizing the currently available <strong>DeepSeek R1</strong> models:</p>
<table>
  <thead>
      <tr>
          <th>Name</th>
          <th>Size</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>deepseek-r1:1.5b</strong></td>
          <td>1.1 GB</td>
      </tr>
      <tr>
          <td><strong>deepseek-r1:7b</strong></td>
          <td>4.7 GB</td>
      </tr>
      <tr>
          <td><strong>deepseek-r1:8b</strong></td>
          <td>4.9 GB</td>
      </tr>
      <tr>
          <td><strong>deepseek-r1:14b</strong></td>
          <td>~ 9 GB</td>
      </tr>
      <tr>
          <td><strong>deepseek-r1:32b</strong></td>
          <td>~ 20 GB</td>
      </tr>
      <tr>
          <td><strong>deepseek-r1:70b</strong></td>
          <td>~ 43 GB</td>
      </tr>
      <tr>
          <td><strong>deepseek-r1:671b</strong></td>
          <td>~ 404 GB</td>
      </tr>
  </tbody>
</table>
<h2 id="selecting-the-right-model">Selecting the Right Model</h2>
<p>Selecting the appropriate model depends on your hardware. Here’s a table to help you decide:</p>
<table>
  <thead>
      <tr>
          <th>Parameters</th>
          <th>RAM</th>
          <th>VRAM</th>
          <th>Use Case</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>1.5B</strong></td>
          <td>~4 GB</td>
          <td>~3.5 GB</td>
          <td>Simple tasks on modest PCs</td>
      </tr>
      <tr>
          <td><strong>7B</strong></td>
          <td>~8–10 GB</td>
          <td>~8 GB</td>
          <td>Intermediate tasks</td>
      </tr>
      <tr>
          <td><strong>14B</strong></td>
          <td>~16 GB</td>
          <td>~12 GB</td>
          <td>Advanced tasks</td>
      </tr>
      <tr>
          <td><strong>70B</strong></td>
          <td>~40 GB</td>
          <td>~40 GB</td>
          <td>Complex tasks on powerful PCs</td>
      </tr>
      <tr>
          <td><strong>671B</strong></td>
          <td>~1,342 GB</td>
          <td>~1,342 GB</td>
          <td>Highly specialized tasks requiring extensive computational resources</td>
      </tr>
  </tbody>
</table>
<p><strong>Notes:</strong></p>
<ul>
<li>
<p>The VRAM requirements are approximate and can vary based on specific configurations and quantization techniques.</p>
</li>
<li>
<p>Quantization methods can reduce VRAM usage. For instance, a 1.58-bit quantized version of the DeepSeek-R1 model can fit into 160 GB of VRAM, allowing it to run on two NVIDIA H100 80GB GPUs. (<a href="https://unsloth.ai/blog/deepseekr1-dynamic">unsloth.ai</a>)</p>
</li>
<li>
<p>For CPU-based inference without a GPU, it&rsquo;s possible to run certain quantized versions of the model with as little as 20 GB of RAM, though performance may be slower. (<a href="https://unsloth.ai/blog/deepseekr1-dynamic">unsloth.ai</a>)</p>
</li>
</ul>
<p>When selecting a model, ensure that your hardware meets the necessary requirements to achieve optimal performance.</p>
<h2 id="downloading-and-running-the-model">Downloading and Running the Model</h2>
<p>To download and run a model using <strong>Ollama</strong>, follow these steps:</p>
<ol>
<li>
<p><strong>Start Ollama</strong>: After installation, Ollama will run in the background without displaying any visible interface.</p>
</li>
<li>
<p><strong>Download the Model</strong>: Open a terminal and execute the following command to download the desired model:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ollama pull deepseek-r1:7b</span></span></code></pre></div>
<p>This command will download the latest version of the <code>deepseek-r1:7b</code> model.</p>
<img src="../../images/ollama_continue_deepseekr1/ollama_pull.png" title="ollama_pull" alt="ollama_pull">
</li>
<li>
<p><strong>Serve the Model</strong>: Once downloaded, run the following command to expose the model on your local machine:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ollama serve</span></span></code></pre></div>
<p>By default, the model will be accessible at <code>http://localhost:11434</code>.
Additionally, after pulling a new model,the server will automatically restart to apply the changes, meaning that it will start automatically the first time we pull!</p>
</li>
</ol>
<hr>
<h2 id="models-i-downloaded">Models I Downloaded</h2>
<p>I also downloaded a few additional models to expand my local setup. Here’s the list of models I have installed on Ollama:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ollama ls</span></span></code></pre></div>
<table>
  <thead>
      <tr>
          <th>Model Name</th>
          <th>ID</th>
          <th>Size</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>llama3.2:3b</strong></td>
          <td>a80c4f17acd5</td>
          <td>2.0 GB</td>
      </tr>
      <tr>
          <td><strong>nomic-embed-text:latest</strong></td>
          <td>0a109f422b47</td>
          <td>274 MB</td>
      </tr>
      <tr>
          <td><strong>qwen2.5-coder:3b</strong></td>
          <td>e7149271c296</td>
          <td>1.9 GB</td>
      </tr>
      <tr>
          <td><strong>deepseek-r1:7b</strong></td>
          <td>0a8c26691023</td>
          <td>4.7 GB</td>
      </tr>
  </tbody>
</table>
<img src="../../images/ollama_continue_deepseekr1/ollama_ls.png" title="ollama_ls" alt="ollama_ls">
<hr>
<h2 id="integrating-with-continue-extension">Integrating with Continue Extension</h2>
<p>To integrate the model with your development environment, you can use the <a href="https://marketplace.visualstudio.com/items?itemName=Continue.continue">Continue</a> extension. After installation, update the <code>config.json</code> file to include the models you’ve downloaded.</p>
<h3 id="path-to-configjson">Path to <code>config.json</code></h3>
<ul>
<li><strong>macOS and Linux</strong>: <code>~/.continue/config.json</code></li>
<li><strong>Windows</strong>: <code>%USERPROFILE%\.continue\config.json</code></li>
</ul>
<h3 id="sample-configjson">Sample <code>config.json</code></h3>
<p>Here’s an example of what the configuration file might look like:</p>






<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;allowAnonymousTelemetry&#34;</span>: <span style="color:#66d9ef">false</span>,
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;models&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;title&#34;</span>: <span style="color:#e6db74">&#34;DeepSeek-R1 7B&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;provider&#34;</span>: <span style="color:#e6db74">&#34;ollama&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;model&#34;</span>: <span style="color:#e6db74">&#34;deepseek-r1:7b&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;title&#34;</span>: <span style="color:#e6db74">&#34;LLAMA 3.2B&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;provider&#34;</span>: <span style="color:#e6db74">&#34;ollama&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;model&#34;</span>: <span style="color:#e6db74">&#34;llama3.2:3b&#34;</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  ],
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;tabAutocompleteModel&#34;</span>: {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;title&#34;</span>: <span style="color:#e6db74">&#34;Qwen2.5-Coder 3B&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;provider&#34;</span>: <span style="color:#e6db74">&#34;ollama&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;model&#34;</span>: <span style="color:#e6db74">&#34;qwen2.5-coder:3b&#34;</span>
</span></span><span style="display:flex;"><span>  },
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;embeddingsProvider&#34;</span>: {
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;provider&#34;</span>: <span style="color:#e6db74">&#34;ollama&#34;</span>,
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&#34;model&#34;</span>: <span style="color:#e6db74">&#34;nomic-embed-text&#34;</span>
</span></span><span style="display:flex;"><span>  },
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;contextProviders&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;code&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;params&#34;</span>: {}
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;docs&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;params&#34;</span>: {}
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;diff&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;params&#34;</span>: {}
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;terminal&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;params&#34;</span>: {}
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;problems&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;params&#34;</span>: {}
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;folder&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;params&#34;</span>: {}
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;codebase&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;params&#34;</span>: {}
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  ],
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&#34;slashCommands&#34;</span>: [
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;share&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;description&#34;</span>: <span style="color:#e6db74">&#34;Export the current chat session to markdown&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;cmd&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;description&#34;</span>: <span style="color:#e6db74">&#34;Generate a shell command&#34;</span>
</span></span><span style="display:flex;"><span>    },
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;name&#34;</span>: <span style="color:#e6db74">&#34;commit&#34;</span>,
</span></span><span style="display:flex;"><span>      <span style="color:#f92672">&#34;description&#34;</span>: <span style="color:#e6db74">&#34;Generate a git commit message&#34;</span>
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>  ]
</span></span><span style="display:flex;"><span>}</span></span></code></pre></div>
<p>Save the file, and you’re ready to generate code!</p>
<img src="../../images/ollama_continue_deepseekr1/ollama_vscode.png" title="ollama_vscode" alt="ollama_vscode">
<p><strong>Note</strong>: If you really care like me, don&rsquo;t forget to disable the Anonymous Telemetry (For additional details: <a href="https://docs.continue.dev/telemetry">docs.continue.dev</a>); also it&rsquo;s worth nothing that Ollama adds itself to the startup processes by default&hellip; if you prefer to prevent this behaviour, <strong>make sure to disable it</strong>.</p>
<p>Happy hacking!</p>
<hr>
<h2 id="contacts">Contacts</h2>
<p>For questions or suggestions, contact: <a href="mailto:noc@balzabu.io">noc@balzabu.io</a>.</p>
]]></content:encoded>
    </item>
    <item>
      <title>LM Studio &#43; Continue: A Free Alternative to GitHub Copilot</title>
      <link>https://blog.balzabu.io/posts/lmstudio_continue/</link>
      <pubDate>Thu, 01 Feb 2024 16:03:53 +0100</pubDate>
      <guid>https://blog.balzabu.io/posts/lmstudio_continue/</guid>
      <description>&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;Updated on 2025-01-29&lt;/p&gt;
&lt;p&gt;I stopped using LM Studio and switched over Ollama.
You can read the shiny and brand new post here: &lt;a href=&#34;https://blog.balzabu.io/posts/deepseek-ollama-continue/&#34;&gt;&lt;em&gt;Ollama + Continue: Open-Source is Always Better!&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The realm of technology is constantly in the pursuit of innovation. Among the latest advancements, LM (Language Model) tools have revolutionized programming, making tasks seemingly effortless. But why shell out for them when these capabilities can be accessed for free? Discover LM Studio and Continue, which offer a local solution with unparalleled advantages.&lt;/p&gt;</description>
      <content:encoded><![CDATA[<hr>
<blockquote>
<p>Updated on 2025-01-29</p>
<p>I stopped using LM Studio and switched over Ollama.
You can read the shiny and brand new post here: <a href="https://blog.balzabu.io/posts/deepseek-ollama-continue/"><em>Ollama + Continue: Open-Source is Always Better!</em></a></p>
</blockquote>
<p>The realm of technology is constantly in the pursuit of innovation. Among the latest advancements, LM (Language Model) tools have revolutionized programming, making tasks seemingly effortless. But why shell out for them when these capabilities can be accessed for free? Discover LM Studio and Continue, which offer a local solution with unparalleled advantages.</p>
<h3 id="the-advantages-of-local-lm-models">The Advantages of Local LM Models</h3>
<p>Embracing a local LM model comes with a host of benefits:</p>
<ul>
<li><strong>Cost-free</strong>: No subscription fees; use it at no extra cost.</li>
<li><strong>Complete Offline Access</strong>: Work seamlessly even without an internet connection.</li>
<li><strong>Full Prompt Control</strong>: Customize prompts to tailor results to your exact needs.</li>
</ul>
<p>Of course, it&rsquo;s essential to weigh the drawbacks alongside the perks:</p>
<ul>
<li><strong>Hardware Requirements</strong>: Consider the computing power needed to run these models effectively.</li>
<li><strong>Model Variability</strong>: Not all models are created in the same way; some may lack the sophistication of their proprietary counterparts.</li>
</ul>
<h3 id="lm-studio-configuration">LM Studio Configuration</h3>
<p>Configuring LM Studio is a breeze.
<br>Begin by downloading a preferred build from the official LM Studio website <a href="https://lmstudio.ai/">lmstudio.ai</a>.
<br>
After installation, launch the application manually to access the Home screen.</p>
<p><img src="../../images/lmstudio_continue/home_lmstudio.png" alt="LM Home"></p>
<p>Utilize the search bar at the center of the Home screen to locate desired models.
<br>
To make it all easier, Meta&rsquo;s Code LLama model is <strong>recommended</strong>.</p>
<p>Searching for <code>Code LLama</code> will yield various results, as LM Studio can search and download available models from platforms like Hugging Face.</p>
<p><img src="../../images/lmstudio_continue/code_llama_lmstudio.png" alt="Code LLama Search"></p>
<p>Each model offers different quantizations to compress its size.
<br>
<strong>Always verify model details on Hugging Face before selecting based on your hardware</strong>.
<br>In this case, we&rsquo;ll use the <a href="https://huggingface.co/TheBloke/CodeLlama-13B-Instruct-GGUF">Code LLama 13B</a> model.</p>
<p>Once downloaded, navigate to the <code>AI Chat</code> section of LM Studio to load the model. Additionally, LM Studio can be configured to use it as a server.</p>
<p>Choosing the right model is crucial, considering hardware capabilities. Opt for a model that runs smoothly on your system to avoid performance issues.</p>
<p><img src="../../images/lmstudio_continue/chat_ai_lmstudio.png" alt="AI Chat"></p>
<p>As you can see from my screenshot, it&rsquo;s possible to configure LM Studio to offload operations to the GPU, though optimal settings may vary.
Experiment with different configurations to find the most efficient setup for your hardware.
<strong>Remember that LM Studio will run on 4 CPU cores by default.</strong></p>
<p>After configuring parameters, start the Local Server via the &ldquo;Local Server&rdquo; section of LM Studio. Specify a port and other parameters, <strong>but note</strong> that <strong>changing the default port</strong> may cause issues with the Visual Studio Code extension we&rsquo;ll use later.</p>
<p><img src="../../images/lmstudio_continue/local_server_lmstudio.png" alt="Local Server"></p>
<h3 id="visual-studio-code-configuration">Visual Studio Code Configuration</h3>
<p>With a local model ready and waiting, it&rsquo;s time to connect using the open-source <code>Continue</code> extension in Visual Studio Code.</p>
<p><img src="../../images/lmstudio_continue/continue_vs_extension.png" alt="Continue Extension"></p>
<p>After installation, configure the extension to use your LM Studio server by editing the <code>config.json</code> file. This file is typically found at:</p>
<ul>
<li>Windows: <code>C:/Users/{user}/.continue/config.json</code></li>
<li>Linux/Mac: <code>~/.continue/config.json</code></li>
</ul>
<p><img src="../../images/lmstudio_continue/continue_original_config.png" alt="Original config.json"></p>
<p>Add your local model to the <code>models</code> array, ensuring to include <code>title</code>, <code>provider</code>, and <code>model</code> parameters.
<br>
<strong>Set <code>allowAnonymousTelemetry</code> to <code>false</code></strong>.</p>
<p><img src="../../images/lmstudio_continue/continue_custom_config.png" alt="Original config.json"></p>
<p>Save the file, and you&rsquo;re ready to generate code locally in Visual Studio Code using your LM Studio model!</p>
<p><img src="../../images/lmstudio_continue/continue_test.png" alt="Extension test"></p>
<p>For a comprehensive understanding of the extension&rsquo;s features, refer to the official project wiki <a href="https://continue.dev/docs/how-to-use-continue">here</a>.</p>
<h3 id="conclusion">Conclusion</h3>
<p>Wrapping up our dive into LM Studio and Continue, we&rsquo;ve found a whole new way to rock coding without breaking the bank. These local models give you all the power without any subscription fees. And with easy setup in Visual Studio Code, you&rsquo;re ready to roll.</p>
<p>So, let&rsquo;s get coding!</p>
<h3 id="contacts">Contacts</h3>
<p>For questions or suggestions, contact: <a href="mailto:noc@balzabu.io">noc@balzabu.io</a>.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
