<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Hypervisor: Data and AI/ML]]></title><description><![CDATA[A series of posts on the topic of Data and Artificial Intelligence
]]></description><link>https://www.thehypervisor.blog/s/data</link><image><url>https://substackcdn.com/image/fetch/$s_!eCSK!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf7f1646-9248-40c8-a717-6f1ed8bb8d61_800x800.png</url><title>The Hypervisor: Data and AI/ML</title><link>https://www.thehypervisor.blog/s/data</link></image><generator>Substack</generator><lastBuildDate>Thu, 21 May 2026 01:09:55 GMT</lastBuildDate><atom:link href="https://www.thehypervisor.blog/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Matthew Leone]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thehypervisor@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thehypervisor@substack.com]]></itunes:email><itunes:name><![CDATA[Matthew Leon]]></itunes:name></itunes:owner><itunes:author><![CDATA[Matthew Leon]]></itunes:author><googleplay:owner><![CDATA[thehypervisor@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thehypervisor@substack.com]]></googleplay:email><googleplay:author><![CDATA[Matthew Leon]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[When to use jupyter/colab notebooks vs dedicated python or other language projects]]></title><description><![CDATA[Finding the correct balance between pragmatic data exploration and data engineering efforts]]></description><link>https://www.thehypervisor.blog/p/when-to-use-jupytercolab-notebooks</link><guid isPermaLink="false">https://www.thehypervisor.blog/p/when-to-use-jupytercolab-notebooks</guid><dc:creator><![CDATA[Matthew Leon]]></dc:creator><pubDate>Fri, 21 Mar 2025 07:37:25 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/56f00e1b-a119-49a1-b9ec-f4ee8a617913_754x393.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As companies and products utilize data more extensively as time progresses, it is becoming evermore important to understand which data processing tools are the best fit for any given work item.<br><br>This post explains the benefit and consequence tradeoffs of using tools that give a machine-learning or data engineer easy access to runnable scripts/outputs versus tools that allow an engineer to build complex systems. It also explains which tools you might use more extensively for certain engineering roles. First let&#8217;s dive into jupyter and colab notebooks:<br><br>A Jupyter/Colab notebook enables a developer to easily run python code in a web browser. The way this works is for a jupyter notebook, you can run a server that will host the notebook middleware on said server, you can go to the server&#8217;s host and develop python code/scripts from there in an easy-to-run format. Google&#8217;s colab simplifies this further by allowing you to go to your Google drive and merely create and open a new colaboratory file. These are the tradeoffs of developing in this manner:<br></p><h2><strong>Strengths of notebooks</strong></h2><p></p><h4><strong>Simplified Development Environment:</strong> </h4><p>The notebooks allow you to develop and execute python code in a simplified manner making it easy to hit the ground running. Here is an example of a hello world cell:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YIIM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YIIM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png 424w, https://substackcdn.com/image/fetch/$s_!YIIM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png 848w, https://substackcdn.com/image/fetch/$s_!YIIM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png 1272w, https://substackcdn.com/image/fetch/$s_!YIIM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YIIM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png" width="286" height="96" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:96,&quot;width&quot;:286,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4343,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.thehypervisor.blog/i/159529783?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YIIM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png 424w, https://substackcdn.com/image/fetch/$s_!YIIM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png 848w, https://substackcdn.com/image/fetch/$s_!YIIM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png 1272w, https://substackcdn.com/image/fetch/$s_!YIIM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6d2ca7-8b3d-43a5-b396-be80dc296130_286x96.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><br>With this example, we have a code cell, a place where we write code, and can press shift+enter to run it, and we see the output. All I needed to do was create a colab notebook file in my Google drive and was up-and-running quickly.<br><br>This is the main benefit of running these notebooks. You can easily create them, open them, and code immediately with them and get results quickly.<br></p><h4><strong>Smooth Output And Visualizations:</strong> </h4><p>In addition to showing the text output of the cell, we can easily visualize data:<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tteT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tteT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png 424w, https://substackcdn.com/image/fetch/$s_!tteT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png 848w, https://substackcdn.com/image/fetch/$s_!tteT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png 1272w, https://substackcdn.com/image/fetch/$s_!tteT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tteT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png" width="781" height="667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:667,&quot;width&quot;:781,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42904,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.thehypervisor.blog/i/159529783?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tteT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png 424w, https://substackcdn.com/image/fetch/$s_!tteT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png 848w, https://substackcdn.com/image/fetch/$s_!tteT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png 1272w, https://substackcdn.com/image/fetch/$s_!tteT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8330330-ac3d-4545-b326-32d91b05c6d3_781x667.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br>This data visualization is very powerful, because we immediately see it from running the code. We don&#8217;t have to run a python script from the command line that saves a plot to an image file and then open the image file to see the data. It is all just there in the notebook UI.</p><h4><strong><br>Reproducibility:</strong></h4><p>If we want to easily get results from the notebook, but we close it or cleared it, we can just restart the runtime and rerun the cells in order to set up the environment. Clearing the runtime means we restart the python backend process so that we no longer have variables that were created and modified in the previous runtime.</p><p></p><h2><strong>Weakness of notebooks</strong></h2><p></p><h4><strong>Low Version Control:</strong> </h4><p>While the notebooks allow you to get up and running quickly, it can be quite difficult to be able to share the results with other engineers. This means the engineer needs to find a way to bring the notebook to other engineers. If you run your own server, you need to commit it to a Git repo or FTP it to another engineer if they need to run it, which complicates the development process. Colab is easier because you can just share the drive and your peers can copy the notebook and run it themselves, but any changes will require manual merge conflict resolution which can be quite painful.<br></p><h4><strong><br>Code Execution Order:</strong></h4><p>Code execution order refers to the process of running the individual cells for a notebook. When we are exploring and working with variables and data, if we don&#8217;t run the notebook cells from top to bottom, we can get conflicts in the variables for a runtime. This means that at the end of development, users need to clear the runtime and run the entire notebook from beginning to end to make sure everything is correct. It gets easy to screw up the runtime, so care needs to be given for that.</p><p></p><h4><strong>Not Suitable for Production:</strong></h4><p>When developing code and scripts in the notebook, it becomes quite difficult to push that code to a production environment that needs to provide services to users. The reason why is because the format of the notebook is meant for ease of use, not power and functionality. You could theoretically run a production environment from a notebook, but it would be quite fragile and painful.</p><p></p><p>We have just explored the tradeoffs of developing in a notebook. Now let&#8217;s explore the dedicated strengths and weaknesses of the dedicated project:<br></p><h2><strong>Strengths of dedicated projects</strong></h2><p></p><h4><strong>Reliable and Scalable Execution:</strong> </h4><p>With a dedicated python, c++, or other language project, we can write compile and run scripts to launch a project properly in a more-scalable manner. This is incredibly important when building systems that people need to access frequently.<br></p><h4><strong>High Version Control:</strong> </h4><p>Version control is a cornerstone of any mature software product. By using a project-based data application, it eases the ability for teams and engineers to check in their project&#8217;s progress. This becomes incredibly important as projects involve more engineers that need to work together as seamlessly as possible.</p><p></p><h4><strong>Increased Modularity:</strong> </h4><p>With a project, it can be built in a way such that other projects or services can import and integrate easily with a project. This is great for a development system where a lot of services are being developed at the same time and they use one another.</p><p></p><h2><strong>Weakness of dedicated projects</strong></h2><h4></h4><h4><strong>More Complex Management:</strong></h4><p>With a dedicated project, it takes quite a bit of effort to build out the qualities we would expect from a well-designed and developed project such as reliability, scalability, and elasticity. It is possible to run a python script or the runtime from the command-line, but as engineers build features into the project, it increases the complexity of the project, and eventually it will become necessary to spend time to build out the building, running, and deployment systems for the project.<br></p><h4><strong>Less Interactive:</strong></h4><p>We saw before with the notebook that it is quite easy to work with a notebook. Just type the code and run a given cell. With the dedicated project, there is more friction to execute the program. We might have build/run scripts and output directories. We won&#8217;t be able to see easy visualizations without writing to a file on disk and opening the file.<br></p><h4><strong><br>More Complicated To Develop:</strong></h4><p>One issue with projects is that in order to code for them, you need to know enough about the project&#8217;s source code to know what changes should be made to achieve a desirable result. With the notebook, you just follow the code in the file until you need to make a change, but with the project, you need to dig through the source code references to find what you are looking for.<br><br><br>Now that we have explored the tradeoffs for both approaches to development, I would like to describe the ideal users and roles that would naturally gravitate towards each tool:</p><h4><strong><br><br>Notebook Developers: The Data Explorers<br></strong></h4><p><strong>Data Scientist:</strong> This role is the major user of notebooks. Data scientists perform analysis on data for the purposes of fulfilling feature-engineering and model development/validation/optimization.</p><p><strong>Data Analyst: </strong>This role is another major user of notebooks. Data analysts take existing data to derive insights about business metrics in order to understand optimal business strategies and to visualize these details.</p><p><strong>Educator and Student: </strong>These roles make effective use of notebooks in order to better teach and learn course material. Notebooks allow people to learn and teach in a more interactive manner.</p><p></p><h4><strong><br>Project Developers: The Data System Builders</strong></h4><p></p><p><strong>Software Engineer: </strong>This role primarily develops using projects. The reason why is that they need to build systems that scale properly with a standardized development flow. These systems could be data-processing systems, but they could also be general purpose systems outside of data.</p><p><strong>Data Engineer: </strong>This role uses projects to develop data-processing pipelines. They primarily use projects because they are essentially software engineers with a focus on data processing. They focus more on the ETL pipelines and infrastructure.</p><p><strong>DevOps and MLOps Engineer: </strong>This role is essentially a combination between the software/data engineer and operations engineer. This role also works on data-processing systems, but they also work on making sure systems fulfill their SLOs and SLAs and also maintaining the pipelines that run.</p><p><strong>Educator and Student: </strong>These roles along with the notebook user also use projects for learning and growth as well. They might implement highly-technical assignments using projects that are not conducive to being developed in a not<strong>ebook.<br></strong></p><p><br>This concludes the more specific users for both notebooks and projects, but there are a couple roles that I want to mention that I think will use both notebooks and projects:<br><br><strong>Machine Learning Engineer: </strong>This role is primarily focused on building data-intensive systems. This engineer should be prepared to bridge the role of data scientists and software/MLOps engineers. </p><p><strong>Tech Lead: </strong>This role serves the purpose of leading teams and organizations. Usually this contributor starts with one of the previously mentioned roles, but has gained enough competency, influence, and trust to be able to lead the building of entire services and products.<br></p><p><br>In conclusion, both notebooks and development projects have their roles and purposes. If you need fast and prototype development, then notebooks are your best bet. If you need systems, a project will be your goto.</p>]]></content:encoded></item><item><title><![CDATA[How to run deepseek-r1 locally]]></title><description><![CDATA[A basic guide for setting up and running deepseek's r1 model]]></description><link>https://www.thehypervisor.blog/p/how-to-run-deepseek-r1</link><guid isPermaLink="false">https://www.thehypervisor.blog/p/how-to-run-deepseek-r1</guid><dc:creator><![CDATA[Matthew Leon]]></dc:creator><pubDate>Mon, 27 Jan 2025 21:31:39 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/973d3bee-cad6-4014-a8af-5f45c13ee4cc_500x365.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Recently, High-Flyer - a Chinese hedge fund published an LLM model that delivers similar performance to OpenAI&#8217;s ChatGPT-o1 and Anthropic&#8217;s Claude-Sonnet3.5 model. This model is unique because it can be run locally on your own consumer graphics hardware, making AI accessible to anyone with a decent GPU.</p><p></p><p>This is a guide for getting deepseek-r1 up and running on your system. Make sure that you have a system with a GPU(s) that have a total of around 16 GB of VRAM to make it feasible to run the model.<br></p><p>Before starting, make sure you have the relevant drivers for your GPUs. I am running Nvidia currently, so I have the drivers and CUDA toolkit installed.</p><p></p><p>1: You must first install a platform like ollama in order to pull the model and start inferencing on it. Follow these steps to install ollama:<br><br>For Mac and Ubuntu and Windows Subsystem For Linux, do the following:</p><pre><code><code>curl -fsSL https://ollama.com/install.sh | sh</code></code></pre><p>This will install ollama.</p><p><br>2: Next, you need to run ollama&#8217;s backend in order to inference on it:<br><br>On the various platforms, you can run:</p><pre><code>ollama serve</code></pre><p>and that should allow you to create another terminal to run deepseek.</p><p>On Linux systems running systemd, you can run:</p><pre><code>sudo systemctl start ollama</code></pre><p>After doing this you should see something like the following:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W_AJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W_AJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png 424w, https://substackcdn.com/image/fetch/$s_!W_AJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png 848w, https://substackcdn.com/image/fetch/$s_!W_AJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png 1272w, https://substackcdn.com/image/fetch/$s_!W_AJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W_AJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png" width="1456" height="792" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:792,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:689907,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W_AJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png 424w, https://substackcdn.com/image/fetch/$s_!W_AJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png 848w, https://substackcdn.com/image/fetch/$s_!W_AJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png 1272w, https://substackcdn.com/image/fetch/$s_!W_AJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7db1f7c-558e-463b-a321-a444730eb6ea_3840x2088.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br>when you do ollama serve, or<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9gTg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9gTg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png 424w, https://substackcdn.com/image/fetch/$s_!9gTg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png 848w, https://substackcdn.com/image/fetch/$s_!9gTg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png 1272w, https://substackcdn.com/image/fetch/$s_!9gTg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9gTg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png" width="1456" height="792" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/efc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:792,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:348774,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9gTg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png 424w, https://substackcdn.com/image/fetch/$s_!9gTg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png 848w, https://substackcdn.com/image/fetch/$s_!9gTg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png 1272w, https://substackcdn.com/image/fetch/$s_!9gTg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fefc336c5-5845-45d7-9d43-ce41fa4104b4_3840x2088.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br>when running systemctl to launch ollama service.</p><p><br>Once you have these, we can finally start inferencing!</p><p></p><p>3: Pull and run the deepseek model<br><br>For this step we are going to run the model locally. There are several models with varying amounts of parameters. The goal is the pick the best bang-for-the-buck model to run on your hardware. Here is a ranking of the models and their sizes:<br><br>1.5b version (smallest)</p><p>8b version</p><p>14b version</p><p>32b version</p><p>70b version</p><p>671b version (biggest)<br><br>There are a lot of different variations of r1, so here is a general breakdown to the best of my knowledge:<br><br>Use 1.5b, 8b, or 14b if you have around 16 GB of VRAM on your system. These are the economy models that will get the job done, but they are not the smartest.</p><p>Use 32b if you have around 32 GB of VRAM. You might actually need more VRAM, so running a 32GB GPU will probably cut it close.</p><p>Use 70b if you have something like an A100, and you probably need to run several state-of-the-art cards to run the 671b parameter model.</p><p>These are just guesstimates based off my experience using the 14b and smaller models on my GTX 1080s. I will show you how to determine which model is best for your system now.<br><br>4: Running the model<br><br>For actually running the model, open a terminal and run the following:</p><pre><code>ollama run deepseek-r1:8b</code></pre><p>This will kick off the process for ollama to pull the model and run it locally. To determine if your hardware is capable, run the folllowing in another terminal assuming you have Nvidia GPUs:</p><pre><code>nvidia-smi</code></pre><p>You will get an output like the following:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wn9M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wn9M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png 424w, https://substackcdn.com/image/fetch/$s_!wn9M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png 848w, https://substackcdn.com/image/fetch/$s_!wn9M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png 1272w, https://substackcdn.com/image/fetch/$s_!wn9M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wn9M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png" width="1280" height="688" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:688,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:82166,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wn9M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png 424w, https://substackcdn.com/image/fetch/$s_!wn9M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png 848w, https://substackcdn.com/image/fetch/$s_!wn9M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png 1272w, https://substackcdn.com/image/fetch/$s_!wn9M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a24806-1c0d-4ae4-8aad-4d1b43f1b2bd_1280x688.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br>Notice that in my case I have dual GTX 1080s running, and they currently have the 14b model loaded. This model is the highest I can run with without overloading my GPUs.</p><p></p><p>If you have multiple GPUs, run the following command to use both in parallel for inferencing:</p><pre><code>CUDA_VISIBLE_DEVICES=0,1 ollama run deepseek-r1:14b</code></pre><p><br>Once you have completed these steps, you should be able to send a message and now you have the best AI running locally!<br><br>For an example, I gave it the following prompt: &#8220;Write a simple C++ hello world program&#8221; and it gave me the following output:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7o6Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7o6Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png 424w, https://substackcdn.com/image/fetch/$s_!7o6Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png 848w, https://substackcdn.com/image/fetch/$s_!7o6Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!7o6Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7o6Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png" width="1456" height="783" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:783,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155237,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7o6Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png 424w, https://substackcdn.com/image/fetch/$s_!7o6Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png 848w, https://substackcdn.com/image/fetch/$s_!7o6Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png 1272w, https://substackcdn.com/image/fetch/$s_!7o6Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F39612276-91d7-4f43-8355-24aa30c78242_1920x1032.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br>Enjoy!</p>]]></content:encoded></item></channel></rss>