<?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: Rodolfo Mendes</title>
    <description>The latest articles on DEV Community by Rodolfo Mendes (@rodolfomendes).</description>
    <link>https://dev.to/rodolfomendes</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F76860%2F2b36b06c-4118-4002-98cc-13f9095fa955.jpg</url>
      <title>DEV Community: Rodolfo Mendes</title>
      <link>https://dev.to/rodolfomendes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rodolfomendes"/>
    <language>en</language>
    <item>
      <title>How to Run Local AI Models with Ollama and Save Money</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Tue, 15 Sep 2026 12:08:52 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/how-to-run-local-ai-models-with-ollama-and-save-money-2pjf</link>
      <guid>https://dev.to/rodolfomendes/how-to-run-local-ai-models-with-ollama-and-save-money-2pjf</guid>
      <description>&lt;p&gt;A few days ago, I posted a tutorial in the Spring AI Dev community on how to use Anthropic Claude’s models with Spring AI and received a curious comment from a user:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Why does it make it sound like you can only use Amazon or Anthropic?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In my reply, I explained that, for most companies, trusting proprietary solutions makes sense. Usually, you do not have time to build your own solution, especially if AI is not the focus of your business. On the other hand, you have the money and such strong demand that you can negotiate better prices. Sounds fair, right?&lt;/p&gt;

&lt;p&gt;However, I still could not get that question out of my head. Weren’t there any more options? And why should I spend money just to experiment with a tutorial?&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Well, this article is a response to that question!&lt;/p&gt;

&lt;p&gt;Fortunately, running models locally offers a practical way to bypass these costs and take full control of your data. Enter Ollama.&lt;/p&gt;

&lt;p&gt;It does not mean you can just get rid of proprietary AI. Your business will likely integrate with a proprietary AI provider such as OpenAI, Anthropic, or AWS Bedrock.&lt;/p&gt;

&lt;p&gt;But in fact, it does not make sense to spend money if you are still learning AI, and Ollama is an excellent option to fill that gap.&lt;/p&gt;

&lt;h1&gt;
  
  
  What is Ollama?
&lt;/h1&gt;

&lt;p&gt;Ollama is an AI server that you can install in your computer and then run different AI models locally. Then you can connect harnesses and agents such as Open Code or Open Claw, or build your AI solution with a framework like Spring AI. Everything runs on your hardware, and no data leaves your computer.&lt;/p&gt;

&lt;p&gt;With proprietary AI providers like OpenAI and Anthropic, you need to register for a subscription or buy credits in advance so you can connect to their API’s. And in many cases, if you want to use a more advanced model, you have to buy extra credits or upgrade to a premium subscription.&lt;/p&gt;

&lt;p&gt;Also, proprietary AI providers host their models in their dedicated infrastructure. Their models do not leave their servers, so you need to transmit your data for processing.&lt;/p&gt;

&lt;p&gt;With Ollama, you do not need to spend money to use an AI, and your prompts never leave your computer; everything runs locally. Thus, besides saving money, Ollama is a solution to be considered in production if your company or organization has severe privacy requirements and no data could be sent to third-party services.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Trade-Off
&lt;/h2&gt;

&lt;p&gt;Obviously, running AI models locally does not come for free. Because you are running these models locally, your choices are limited by your hardware. Cutting-edge models like deepseek-r1:671b have more than 600 billion parameters and require 400 GB of VRAM to run, which is not feasible for most people.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;But don’t worry. Smaller models with 8 billion parameters are also available and run in a common graphics card, providing decent results.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Keeping these hardware boundaries in mind, let’s look at how to check your system specs and select the right model for your setup.&lt;/p&gt;

&lt;p&gt;So, now that we understand what Ollama is and its tradeoffs, let’s jump to the practical part of this article. In the next section, we will learn how to install Ollama and run local models.&amp;nbsp;&lt;/p&gt;

&lt;h1&gt;
  
  
  How to Install Ollama and Run Local Models
&lt;/h1&gt;

&lt;p&gt;In this example, I installed Ollama on in Ubuntu 24.04.3 LTS instance running on a WSL2 system. The official documentation provides additional instructions for other operating systems such as Windows and macOS. The Linux installation does not rely on dependency managers like apt, so these instructions are also portable to other distributions.&amp;nbsp;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Installing Ollama
&lt;/h2&gt;

&lt;p&gt;Ollama installation is quite simple. As long as you have the curl command installed, all you have to do is download and run the installation script. First, make sure that curl is installed. Run the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-V&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And observe the result. You should receive a positive message listing the version, libraries, and protocols. If you do not have curl installed, just run the following command to install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;curl &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After curl is installed, run the command below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will download the installation script and install it in your system. Then you can confirm the installation with the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama &lt;span class="nb"&gt;help&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will print instructions for using the Ollama runner, including a list of available commands for administering and running models.&lt;/p&gt;

&lt;p&gt;If the script executed correctly, it must have configured Ollama as a Linux service, and you can administer it with the systemctl command. For example, you can check the status of the ollama service with the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;systemctl status ollama
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then the systemctl command will print whether the service is active, along with additional information such as the process ID, memory usage, and CPU usage.&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;If you received the usage instructions from the ollama help command and verified that the service is active with systemctl, this means the installation was successful. We can proceed to run local models.&lt;/p&gt;

&lt;p&gt;Now that the background service is up and running, we can verify everything works by communicating directly with its local API.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Running Local Models
&lt;/h2&gt;

&lt;p&gt;If you installed Ollama correctly, you can now run commands in your terminal and call the HTTP API Ollama provides on port 11434 by default. You can test the API by running the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost:11434
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And receive the message “Ollama is running”.&lt;/p&gt;

&lt;p&gt;But that does not mean you can generate text from prompts. For example, try to run the following command:&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="err"&gt;curl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;http://localhost:&lt;/span&gt;&lt;span class="mi"&gt;11434&lt;/span&gt;&lt;span class="err"&gt;/api/generate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gemma3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Why is the sky blue?"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you’ll get a 404 error: “model gemma3 not found”&amp;nbsp;&lt;/p&gt;

&lt;p&gt;And that’s because Ollama is just a vessel, like the Infinity Gauntlet. The true power of the Infinity Gauntlet comes from the Infinity Stones that you attach to the gauntlet. Ollama is the same thing; its true power comes from the multiple models that you can download and install.&lt;/p&gt;

&lt;p&gt;There are two ways you can verify the models installed on your Ollama instance. The first one is the list command. In your terminal, type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The command will print a table with the models available for use in your local installation. If you run the command immediately after installing Ollama, you will only see the table headers. That means you have no model locally available yet.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Another way to check the available models is via the /tags/endpoint. Run the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost:11434/api/tags
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you will receive a JSON object with an empty “models” array. Confirming that no model is available yet.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;Now that we have Ollama installed and running, let’s learn how to install a model locally in our environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Choosing a Model
&lt;/h2&gt;

&lt;p&gt;Ollama provides an extensive library of models available at &lt;a href=""&gt;https://ollama.com/library&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When visiting the Ollama library, you’ll notice many models available in different sizes and capabilities, and choosing the best one can be a hard task. Model benchmarks are way beyond the scope of this humble article, but here are some tips.&lt;/p&gt;

&lt;p&gt;First, think about the application you are building and what capabilities you need. For example, if your application needs to integrate with external API’s, then you need tooling. If you need to interpret images, then you need a multi-modal model, and so on.&lt;/p&gt;

&lt;p&gt;As said before, you are limited by your hardware. If you are not sure, you can run the following command to discover how much memory you have, and therefore, the largest model your hardware supports:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nvidia-smi &lt;span class="nt"&gt;--query-gpu&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;name,memory.total,memory.used,memory.free,driver_version &lt;span class="nt"&gt;--format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In my case, I got the following output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csvs"&gt;&lt;code&gt;&lt;span class="k"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;memory&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="k"&gt;total&lt;/span&gt; &lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="k"&gt;MiB&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;memory&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="k"&gt;used&lt;/span&gt; &lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="k"&gt;MiB&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;memory&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="k"&gt;free&lt;/span&gt; &lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="k"&gt;MiB&lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;driver&lt;/span&gt;&lt;span class="err"&gt;_&lt;/span&gt;&lt;span class="k"&gt;version&lt;/span&gt;
&lt;span class="k"&gt;NVIDIA&lt;/span&gt; &lt;span class="k"&gt;GeForce&lt;/span&gt; &lt;span class="k"&gt;RTX&lt;/span&gt; &lt;span class="mf"&gt;5070&lt;/span&gt; &lt;span class="k"&gt;Laptop&lt;/span&gt; &lt;span class="k"&gt;GPU&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;8151&lt;/span&gt; &lt;span class="k"&gt;MiB&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;3052&lt;/span&gt; &lt;span class="k"&gt;MiB&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;4840&lt;/span&gt; &lt;span class="k"&gt;MiB&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;610.88&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Which means I have a hard limit of 8GB of VRAM, which is the maximum size of a model I can run locally.&lt;/p&gt;

&lt;p&gt;For this example, I’m choosing a multimodal model - capable of processing image and text - which fits entirely in my VRAM. Given these requirements, gemma3 seems a reasonable choice. Let’s see how to pull and run the model locally.&lt;/p&gt;

&lt;p&gt;For this example, I’m choosing a multimodal model - capable of processing image and text - which fits entirely in my VRAM. Given these requirements, gemma3 seems a reasonable choice. Let’s see how to pull and run the model locally.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Pulling a Model from the Registry
&lt;/h2&gt;

&lt;p&gt;Fortunately, the analogy to Infinite Stones ends here, and you don’t have to throw someone you love off a cliff to get a model. Instead, all you have to do is run a simple command:&lt;br&gt;
ollama pull gemma3&lt;/p&gt;

&lt;p&gt;The pull command will download and install the model in your local environment. If Ollama downloaded the model correctly, then you will see the model listed if you run the Ollama list command or if you access the tags endpoint through the HTTP API. Run the following commands and check that the gemma3 model is now available in your local environment&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost:11434/api/tags
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And they should return the gemma3 model.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Running a Model Locally
&lt;/h2&gt;

&lt;p&gt;After downloading the model, you can test it in an interactive session in the terminal with the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run gemma3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this command, you can chat with the model right from the terminal, or even use it in a command pipeline. Also, you can now submit prompts via the Web API at either the /api/chat or /api/generate endpoint. Run the command:&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="err"&gt;curl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;http://localhost:&lt;/span&gt;&lt;span class="mi"&gt;11434&lt;/span&gt;&lt;span class="err"&gt;/api/generate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;-d&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gemma3"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nl"&gt;"stream"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Why is the sky blue?"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="err"&gt;'&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And have a nice conversation about our atmosphere.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Integrating with Spring AI (Optional)
&lt;/h2&gt;

&lt;p&gt;Finally, if you are a Spring AI developer like me, connect your Spring AI application to your local Ollama instance. Configure the base URL in your application.yml file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;spring&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;ai&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;ollama&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;base-url&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;http://localhost:11434&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Congratulations! Now you can run AI models in your local environment and save on API credits or subscriptions.&lt;/p&gt;

&lt;p&gt;Now it is up to you to explore the possibilities. You can test different models and see which one provides the best answers for your tasks, or connect your preferred harness to use local models. &amp;nbsp; Also, you can use these local models to develop your own AI solutions with Spring AI, and this is the possibility that excites me the most.&lt;/p&gt;

&lt;h1&gt;
  
  
  References
&lt;/h1&gt;

&lt;p&gt;The discussion that motivated the article: &lt;a href="https://www.reddit.com/r/SpringAIDev/comments/1vyt41n/comment/p5zfdzm/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/SpringAIDev/comments/1vyt41n/comment/p5zfdzm/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ollama documentation: &lt;a href="https://docs.ollama.com/" rel="noopener noreferrer"&gt;https://docs.ollama.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ollama library: &lt;a href="https://docs.ollama.com/library" rel="noopener noreferrer"&gt;https://docs.ollama.com/library&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>ollama</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Craig Walls’ Spring AI in Action is out: 5-book giveaway + Spring AI discussion</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Tue, 09 Jun 2026 23:19:03 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/craig-walls-spring-ai-in-action-is-out-5-book-giveaway-spring-ai-discussion-4cf9</link>
      <guid>https://dev.to/rodolfomendes/craig-walls-spring-ai-in-action-is-out-5-book-giveaway-spring-ai-discussion-4cf9</guid>
      <description>&lt;p&gt;Spring AI is the Spring project's response to the gap in solutions for integrating enterprise Java with generative artificial intelligence models like GPT, Claude, Gemini, and others.&lt;/p&gt;

&lt;p&gt;As I decide to invest time in learning and contributing to the project, I missed something that helped me grow in the past as a Java developer: an online community where people could ask questions, participate in discussions, and promote their content.&lt;/p&gt;

&lt;p&gt;To fill that gap, I created a dedicated subreddit for the Spring AI project. Then, a few days ago, I invited the Manning Publications profile to promote books related to Spring AI in our community.&lt;/p&gt;

&lt;p&gt;And today they brought us this promotion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5 giveaway ebook copies of &lt;strong&gt;Spring AI in Action&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;50% discount coupons to buy the book&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To win one of the giveaway books, all you have to do is leave a comment in the book publication in our community at r/SpringAIDev. The most upvoted comments will receive a free ebook copy.&lt;/p&gt;

&lt;p&gt;To earn the 50% discount, just copy the promotion code in the post.&lt;/p&gt;

&lt;p&gt;Click the link below to visit the promotion page, and take some time to join and participate in our community:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/SpringAIDev/comments/1u07c68/craig_walls_spring_ai_in_action_is_out_5book/" rel="noopener noreferrer"&gt;Craig Walls’ Spring AI in Action is out: 5-book giveaway + Spring AI discussion&lt;/a&gt;&lt;/p&gt;

</description>
      <category>springai</category>
      <category>springboot</category>
      <category>spring</category>
      <category>java</category>
    </item>
    <item>
      <title>3 CLI Tools Every Java Developer Must Learn</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Fri, 09 Sep 2022 11:54:53 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/3-cli-tools-every-java-developer-must-learn-pdk</link>
      <guid>https://dev.to/rodolfomendes/3-cli-tools-every-java-developer-must-learn-pdk</guid>
      <description>&lt;h2&gt;
  
  
  1 - java
&lt;/h2&gt;

&lt;p&gt;This is the essential tool that every serious Java developer must master. The java command is part of the Java SDK and invokes the JVM (Java Virtual Machine). This command is responsible for running Java programs compiled into Java bytecode. The java command is the heart of the Java platform. By practicing the java command, you can learn how to invoke a java program through a .class file or .jar file, how to setup the classpath for the JVM, how to setup the size of the heap space, how can you set different modes of execution of the garbage collector or even how can you configure the JVM to dump the memory to a file in the moment when it crashes. These skills make an enormous difference when running systems in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  2 - javac
&lt;/h2&gt;

&lt;p&gt;The javac command is also part of the Java SDK and it invokes the Java compiler, used to compile a set of Java source code files into a set of Java bytecode files.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 - Maven
&lt;/h2&gt;

&lt;p&gt;Building and compiling simple application using the javac command is quite simple. However, for bigger application the process of building and packaging an application is much more complex. For this task you can use Maven. Although Maven is not part of Java specification, the Java community has widely adopted Maven for dependency management, build and package Java applications.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>java</category>
      <category>productivity</category>
    </item>
    <item>
      <title>5 CLI Tools Every Developer Must Learn</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Fri, 09 Sep 2022 11:51:26 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/5-cli-tools-every-developer-must-learn-5b4l</link>
      <guid>https://dev.to/rodolfomendes/5-cli-tools-every-developer-must-learn-5b4l</guid>
      <description>&lt;p&gt;If you are a beginner developer, this is a good starting point for your studies. If you are a senior already and you are not familiar with these tools, would be a good moment to step back a while and improve some fundamentals.&lt;/p&gt;

&lt;h2&gt;
  
  
  1 - Linux terminal
&lt;/h2&gt;

&lt;p&gt;You don't necessarily need to create a dual boot on your computer to learn Linux terminal. MacOS and Linux have similar terminal commands and for Windows users there are alternatives like Git bash or WLS. But as developer, you need to be familiar with Linux terminal commands, at least, the basic ones like navigating the file system, listing processes, creating links, creating and listing environment variables, setting permissions and executing files. Standard input and output redirection and processes pipelining would be a good catch too.&lt;/p&gt;

&lt;h2&gt;
  
  
  2 - man pages
&lt;/h2&gt;

&lt;p&gt;Linux man (man stands for MANual) pages could be part of the topic 1 but deserves a special place. Back to 1970s, when UNIX was created, computer operators needed a way to check how a command worked. And because they could not memorize everything and there was no Google nor Stackoverflow, the command man was created. So, it's a quite simple command that returns the documentation of the referenced command on the terminal. Creating the habit of reading the man pages leads you to quickly master using the Linux terminal&lt;/p&gt;

&lt;h2&gt;
  
  
  3 - ssh
&lt;/h2&gt;

&lt;p&gt;Most of time we develop in network environments, and we need to do it securely. So, you need to know how to create an encrypted connection to another computer over a network so you can operate it via terminal.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 - git
&lt;/h2&gt;

&lt;p&gt;Although most of IDEs have Git tooling integrated, I believe that going through CLI at least during your learning process can get you deeper on how the Git versioning process works. Also, code checkout is the first step during CI/CD pipelines, so you will need to understand how the CLI works to build that automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  5 - bash/ksh/powershell
&lt;/h2&gt;

&lt;p&gt;Finally, some basic knowledge of the scripting language of your favorite OS can help put all this together and then you'll be able to automate some daily tasks and be more productive.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>devops</category>
      <category>sre</category>
    </item>
    <item>
      <title>Why Developers Should Learn CLI Tools</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Fri, 09 Sep 2022 11:42:21 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/why-developers-should-learn-cli-tools-4fp6</link>
      <guid>https://dev.to/rodolfomendes/why-developers-should-learn-cli-tools-4fp6</guid>
      <description>&lt;p&gt;Nowadays, using CLI (Command Line Interfaces) to perform programing tasks may look antiquated, and although modern graphical IDEs can represent a gain of productivity in our daily routines, I honestly believe that developers should master using CLI tools. Specially those who are initiating in the profession or when we are learning a new language or tool. And these are few of my reasons to do so:&lt;/p&gt;

&lt;p&gt;1 - By using a CLI allows you to get into details. For example, using mvn or dotnet commands to build your Java or C# application requires from you to go deep on the cycle build-test-run of an application. It also forces you to explore error messages and parameters when things go wrong. This kind of effort during your learning process increases your problem-solving capacity.&lt;/p&gt;

&lt;p&gt;2 - CLIs are well-suited for automation. If you are familiar with CLIs and do a lot of repetitive and tedious tasks using commands, then you can easily automate them with the help of some scripting language like Bash or PowerShell.&lt;/p&gt;

&lt;p&gt;Finally, my idea is not to tell you to just abandon IDEs or GUIs. They are great for visualization and for quick and ad-hoc tasks. But for our developer and SREs world, CLIs still play a crucial role and they mandatory in our toolboxes.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
      <category>learning</category>
    </item>
    <item>
      <title>Building a Machine Learning Model: Collecting Data</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Fri, 20 Aug 2021 18:35:12 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/building-a-machine-learning-model-collecting-data-171g</link>
      <guid>https://dev.to/rodolfomendes/building-a-machine-learning-model-collecting-data-171g</guid>
      <description>&lt;p&gt;Data is the main ingredient of Machine Learning models.&lt;/p&gt;

&lt;p&gt;An actual Machine Learning project starts with the team assessing if the necessary data is available. If not (which would be no surprise), the team needs to develop a strategy to collect and store the necessary data before modeling Machine Learning Algorithms.&lt;/p&gt;

&lt;p&gt;Common sources of data … &lt;a href="https://reinforcement-learning4.fun/2021/08/20/building-a-machine-learning-model-collecting-data/" rel="noopener noreferrer"&gt;Continue reading Building a Machine Learning Model: Collecting Data →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>article</category>
    </item>
    <item>
      <title>Types of Machine Learning: Deep Learning</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Fri, 06 Aug 2021 22:12:56 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/types-of-machine-learning-deep-learning-11bl</link>
      <guid>https://dev.to/rodolfomendes/types-of-machine-learning-deep-learning-11bl</guid>
      <description>&lt;p&gt;Deep Learning is a branch of Machine Learning specialized in Artificial Neural Networks with multiple intermediary layers.&lt;/p&gt;

&lt;p&gt;Neural Networks with multiple layers can approximate very complex non-linear functions.&lt;/p&gt;

&lt;p&gt;That’s why Deep Learning has been very successful in Computer Vision (CV), Natural Language Processing (NLP), and Reinforcement Learning.&lt;/p&gt;

&lt;p&gt;Deep Learning architectures include: Convolutional Neural Networks Recurrent … &lt;a href="https://rodolfomendes.ai/types-of-machine-learning-deep-learning/" rel="noopener noreferrer"&gt;Continue reading Types of Machine Learning: Deep Learning →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>article</category>
    </item>
    <item>
      <title>Types of Machine Learning: Time Series Analysis</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Tue, 03 Aug 2021 14:10:54 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/types-of-machine-learning-time-series-analysis-49fa</link>
      <guid>https://dev.to/rodolfomendes/types-of-machine-learning-time-series-analysis-49fa</guid>
      <description>&lt;p&gt;The typical regression task predicts the value of a target variable based on the values of one or more feature variables.&lt;/p&gt;

&lt;p&gt;For example, to predict the price of a house based on its characteristics like size, number of rooms, etc. But in some cases, we want to predict the value of a variable based on … &lt;a href="https://reinforcement-learning4.fun/2021/08/03/types-of-machine-learning-time-series-analysis/" rel="noopener noreferrer"&gt;Continue reading Types of Machine Learning: Time Series Analysis →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>article</category>
    </item>
    <item>
      <title>Types of Machine Learning: Recommender Systems</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Sun, 25 Jul 2021 09:51:48 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/types-of-machine-learning-recommender-systems-1fop</link>
      <guid>https://dev.to/rodolfomendes/types-of-machine-learning-recommender-systems-1fop</guid>
      <description>&lt;p&gt;Recommender systems are a category of Machine Learning algorithms that predict a user’s rating or preferences over a collection of items.&lt;/p&gt;

&lt;p&gt;Recommender systems algorithms include: Collaborative filtering Content-based filtering Session-based Session-based recommender systems  Reinforcement learning for recommender systems include: Multi-criteria recommender systems Risk-aware recommender systems Mobile recommender systems&lt;/p&gt;

</description>
      <category>article</category>
    </item>
    <item>
      <title>Types of Machine Learning: Reinforcement Learning</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Fri, 16 Jul 2021 10:40:06 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/types-of-machine-learning-reinforcement-learning-n51</link>
      <guid>https://dev.to/rodolfomendes/types-of-machine-learning-reinforcement-learning-n51</guid>
      <description>&lt;p&gt;In the reinforcement learning paradigm, the learning process is a loop in which the agent reads the state of the environment and then executes an action.&lt;/p&gt;

&lt;p&gt;Then the environment returns its new state and a reward signal, indicating if the action was correct or not.&lt;/p&gt;

&lt;p&gt;The process continues until the environment reaches a terminal condition … &lt;a href="https://reinforcement-learning4.fun/2021/07/16/types-of-machine-learning-reinforcement-learning/" rel="noopener noreferrer"&gt;Continue reading Types of Machine Learning: Reinforcement Learning →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>article</category>
    </item>
    <item>
      <title>Machine Learning Applications: Topic Discovery with Clustering</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Fri, 09 Jul 2021 11:07:34 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/machine-learning-applications-topic-discovery-with-clustering-12cd</link>
      <guid>https://dev.to/rodolfomendes/machine-learning-applications-topic-discovery-with-clustering-12cd</guid>
      <description>&lt;p&gt;Given a set of documents, a common task is to group them accordingly to topics or subjects.&lt;/p&gt;

&lt;p&gt;A human agent can create a hierarchy of subjects and assign each document to its related issue. However, a clustering algorithm can create this structure automatically and more precisely.&lt;/p&gt;

&lt;p&gt;We can apply hierarchical clustering algorithms to group documents … &lt;a href="https://reinforcement-learning4.fun/2021/07/09/machine-learning-applications-topic-discovery-with-clustering/" rel="noopener noreferrer"&gt;Continue reading Machine Learning Applications: Topic Discovery with Clustering →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>article</category>
    </item>
    <item>
      <title>Exploratory Data Analysis for Machine Learning</title>
      <dc:creator>Rodolfo Mendes</dc:creator>
      <pubDate>Fri, 02 Jul 2021 11:12:53 +0000</pubDate>
      <link>https://dev.to/rodolfomendes/exploratory-data-analysis-for-machine-learning-1f37</link>
      <guid>https://dev.to/rodolfomendes/exploratory-data-analysis-for-machine-learning-1f37</guid>
      <description>&lt;p&gt;Exploratory data analysis is the most challenging task when building a machine learning model, especially for beginners.&lt;/p&gt;

&lt;p&gt;A result of the No-Free-Lunch-Theorem is that there’s no single model that will perform well for every dataset.&lt;/p&gt;

&lt;p&gt;In other words, there’s no silver bullet Machine Learning Algorithm.&lt;/p&gt;

&lt;p&gt;The practical consequence is that we need to make a … &lt;a href="https://reinforcement-learning4.fun/2021/07/02/exploratory-data-analysis-for-machine-learning/" rel="noopener noreferrer"&gt;Continue reading Exploratory Data Analysis for Machine Learning →&lt;/a&gt;&lt;/p&gt;

</description>
      <category>article</category>
    </item>
  </channel>
</rss>
