<?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: Willian Theodoro</title>
    <description>The latest articles on DEV Community by Willian Theodoro (@willianthdr).</description>
    <link>https://dev.to/willianthdr</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%2F3861254%2Fbaff97b6-8a3b-4c11-84fd-bf0a99150a13.jpeg</url>
      <title>DEV Community: Willian Theodoro</title>
      <link>https://dev.to/willianthdr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/willianthdr"/>
    <language>en</language>
    <item>
      <title>I created simple flowchart software</title>
      <dc:creator>Willian Theodoro</dc:creator>
      <pubDate>Sat, 18 Jul 2026 22:39:10 +0000</pubDate>
      <link>https://dev.to/willianthdr/i-created-simple-flowchart-software-41da</link>
      <guid>https://dev.to/willianthdr/i-created-simple-flowchart-software-41da</guid>
      <description>&lt;blockquote&gt;
&lt;h4&gt;
  
  
  Now you can organize your ideas - Visually, and without depending on bloated tools.
&lt;/h4&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The project was created based on an idea I had. I used C# language and the WPF framework to build it. Developed using Visual Studio Code, this project not only adds to my portfolio but is also designed to be genuinely useful to others. Flowcharts are saved in a custom file format I created (.flux), giving me greater flexibility in how data is handled during the save process.&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Program
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fluxogrammer&lt;/strong&gt; is a flowchart creation tool designed to help organize and structure ideas, making it easier to visualize the path toward achieving a goal. In it, we can create and organize our ideas to visualize them better&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use
&lt;/h2&gt;

&lt;p&gt;Below is a step-by-step guide on how the program works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Initial Interface: The interface is simple and intuitive. The main screen features two buttons: one to create a new project and another to load an existing one.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fscyn0peiryn8vlntxws5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fscyn0peiryn8vlntxws5.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fad62w48h1sbe4smf0oxe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fad62w48h1sbe4smf0oxe.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When you choose to create a project, a window will appear asking for the project name and description. After entering the name (and optionally the description), you can create the project.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpc76pg8g8i6o3zxmyd4q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpc76pg8g8i6o3zxmyd4q.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the project is created, you will be directed to the workspace where you can edit your ideas. Right-clicking on the screen gives you access to two options: create a new object or save the project.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fed728sfbvkjhet8ekzsw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fed728sfbvkjhet8ekzsw.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When an object is created, you can: create a connection from it (which requires two objects); rename it; expand or collapse the block (useful if the text is too long); or delete it.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftzgg2oasfta88b4t7tou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftzgg2oasfta88b4t7tou.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To create a connection, click the left mouse button on the object you wish to connect to.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcgs6lbh5j85v6gh44b0l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcgs6lbh5j85v6gh44b0l.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;You can check out the full source code, download the latest release, and read more details int the &lt;a href="https://github.com/Willian-Thdr/Fluxogrammer" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'd love to hear your opinion. What do you think of this program? What feature would you add to it? Is there anything you think I should add? Leave your ideas bellow!&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>csharp</category>
      <category>dotnet</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I'm Creating A Flowchart Software.</title>
      <dc:creator>Willian Theodoro</dc:creator>
      <pubDate>Wed, 08 Apr 2026 17:48:00 +0000</pubDate>
      <link>https://dev.to/willianthdr/im-creating-a-fluxogram-software-1e1d</link>
      <guid>https://dev.to/willianthdr/im-creating-a-fluxogram-software-1e1d</guid>
      <description>&lt;p&gt;Hi everyone, over the past few days I've been worked on a Package Manager for Linux, and I'm finish this project.&lt;br&gt;
Now, I'm working on a Flowchart, which will also be done in C# language.&lt;/p&gt;

&lt;p&gt;What you think of this project? Did you like it? Leave your comments! &lt;/p&gt;

</description>
      <category>fullstack</category>
      <category>csharp</category>
      <category>software</category>
      <category>portfolio</category>
    </item>
    <item>
      <title>I built a package manager to simplify Linux</title>
      <dc:creator>Willian Theodoro</dc:creator>
      <pubDate>Tue, 07 Apr 2026 02:07:51 +0000</pubDate>
      <link>https://dev.to/willianthdr/i-built-a-package-manager-to-simplify-linux-6pa</link>
      <guid>https://dev.to/willianthdr/i-built-a-package-manager-to-simplify-linux-6pa</guid>
      <description>&lt;p&gt;After switching to Linux, I finally understood why so many people criticize it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context
&lt;/h2&gt;

&lt;p&gt;A few days ago, I formatted my computer and installed Ubuntu because I was tired of Windows. After setting everything up, I started to understand the complaints about Linux.&lt;/p&gt;

&lt;p&gt;To install any software, you usually need to type commands like:&lt;/p&gt;

&lt;p&gt;sudo apt install package-name&lt;br&gt;
flatpak install package-id&lt;/p&gt;

&lt;p&gt;Then you have to provide the correct package name or ID/URL (in the case of Flatpak). While this might seem simple at first, it can become repetitive and exhausting over time — especially when dealing with maintenance or trying to figure out which package is causing issues in the system.&lt;/p&gt;

&lt;p&gt;Since I’ve been learning C#, I decided to turn this problem into a project.&lt;/p&gt;

&lt;p&gt;At first, I thought it would be as simple as pressing a button and letting everything happen automatically — but it wasn’t that straightforward. So after studying how Linux terminal commands work, I started building the application in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  About the software
&lt;/h2&gt;

&lt;p&gt;The application was built entirely in C# using Avalonia UI.&lt;/p&gt;

&lt;p&gt;The idea is simple: it abstracts the management of .deb and .flatpakref packages, making the process more straightforward and user-friendly.&lt;/p&gt;

&lt;p&gt;The interface is clean and minimal. It provides buttons for common actions such as installing packages, searching for packages, performing maintenance, and removing packages from the system.&lt;/p&gt;

&lt;p&gt;The user just needs to select the desired package and click to install or uninstall.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijpr6vp50r4efij8r42e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijpr6vp50r4efij8r42e.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F163b2l3u5q1l8u5581sc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F163b2l3u5q1l8u5581sc.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qwyd51r13rpxzz1jlgj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qwyd51r13rpxzz1jlgj.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forr61hznxhhtq6yg7wyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forr61hznxhhtq6yg7wyd.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Select a file&lt;/li&gt;
&lt;li&gt;Install packages (.deb or .flatpakref) with error handling&lt;/li&gt;
&lt;li&gt;Search for packages (specific or full system list)&lt;/li&gt;
&lt;li&gt;Remove packages by name&lt;/li&gt;
&lt;li&gt;Repair packages, including updates and full maintenance operations&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;The project is already functional, but I still plan to improve it further — especially by adding new features and improving the overall user experience, such as allowing maintenance directly from the package name (which is not implemented yet).&lt;/p&gt;

&lt;p&gt;If you want to check out the project, here’s the repository:&lt;br&gt;
&lt;a href="https://github.com/Willian-Thdr/Gerenciador_De_Pacotes" rel="noopener noreferrer"&gt;https://github.com/Willian-Thdr/Gerenciador_De_Pacotes&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback
&lt;/h2&gt;

&lt;p&gt;Would you use something like this in your daily workflow, or do you prefer using the terminal directly?&lt;/p&gt;

&lt;p&gt;What would you add or improve in this project?&lt;/p&gt;

&lt;p&gt;Let me know in the comments!&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>portfolio</category>
      <category>linux</category>
      <category>fullstack</category>
    </item>
    <item>
      <title>Criei um gerenciador de pacotes para simplificar o Linux.</title>
      <dc:creator>Willian Theodoro</dc:creator>
      <pubDate>Sun, 05 Apr 2026 22:16:25 +0000</pubDate>
      <link>https://dev.to/willianthdr/criei-um-gerenciador-de-pacotes-para-linux-2h6c</link>
      <guid>https://dev.to/willianthdr/criei-um-gerenciador-de-pacotes-para-linux-2h6c</guid>
      <description>&lt;p&gt;Após migrar para Linux, descobri o motivo das frequentes críticas sobre o mesmo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Contextualização
&lt;/h2&gt;

&lt;p&gt;Nos últimos dias, eu havia formatado meu computador para colocar um Linux Ubuntu, pois eu havia enjoado do Windows. Porém, após instalar e configurar o computador, eu percebi o porquê das pessoas reclamarem do Linux. &lt;/p&gt;

&lt;p&gt;Todo software que quisermos instalar nós devemos digitar um comando, um &lt;code&gt;sudo apt install&lt;/code&gt; ou &lt;code&gt;flatpak install&lt;/code&gt; por exemplo, e na frente do comando colocar o nome do pacote, ou o id/url caso usemos o flatpak. Mas mesmo que sejam fáceis a primeira vista, pode ser algo extremamente desgastante de se fazer a todo momento, principalmente para fazer reparos ou para achar qual o pacote que está dando problema no sistema.&lt;/p&gt;




&lt;p&gt;Eu aproveitei o meu interesse em aprender a programar em C# e então decidi solucionar esse problema. A princípio, eu pensava em apenas apertar um botão e deixar a mágica acontecer, mas não era bem assim que funcionava. Então após estudar um pouco sobre os códigos do terminal do Linux, eu decidi começar a criar na prática o programa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sobre o software
&lt;/h2&gt;

&lt;p&gt;O programa foi feito totalmente em C# com integração do Avalonia UI, agora falarei brevemente sobre como ele funciona:&lt;br&gt;
A ideia é simples: ele abstrai o gerenciamento de pacotes &lt;strong&gt;.deb&lt;/strong&gt; e &lt;strong&gt;.flatpakref&lt;/strong&gt;, tornando está tarefa mais simples, rápida e prática. A interface é simples e limpa. Teremos alguns botões como o de Instalar pacote, de localizar pacotes, fazer manutenção e de deletar pacotes no Linux. Basta apenas procurarmos o pacote desejado pelo próprio programa, selecionar e então pressionar para instalar ou desinstalar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgl1atiwriygcxhfw6ind.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgl1atiwriygcxhfw6ind.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fptsq9tvjx4o0iwnh08.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fptsq9tvjx4o0iwnh08.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisypibrw3pdg10qq13h7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fisypibrw3pdg10qq13h7.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqttugdcg83jwu9horis.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqttugdcg83jwu9horis.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sua funcionalidade se resume na simples lista a seguir:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Procurar um arquivo;&lt;/li&gt;
&lt;li&gt;Instalar o programa - &lt;strong&gt;.deb&lt;/strong&gt; ou &lt;strong&gt;.flatpakref&lt;/strong&gt; - e então o tratamento de erros se necessário;&lt;/li&gt;
&lt;li&gt;Localizar Pacotes. Podendo achar um pacote específico, ou a lista de pacotes do sistema;&lt;/li&gt;
&lt;li&gt;Deletar pacotes a partir do nome do pacote desejado;&lt;/li&gt;
&lt;li&gt;Reparar pacotes do formato desejado, podendo ir desde atualizações até manutenções completas.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Finalização
&lt;/h2&gt;

&lt;p&gt;O projeto já se encontra finalizado, mas ainda pretendo lançar mais atualizações para o mesmo, com intuito de melhorar sua funcionalidade e para poder deixar um ambiente cada vez mais agradável ao usuário - Como a opção de fazer manutenção a partir do nome do pacote, o que ainda não adicionei. Caso queira acessar o repositório para dar uma visitinha ao projeto, deixarei o link logo em seguida: &lt;a href="https://github.com/Willian-Thdr/Gerenciador_De_Pacotes" rel="noopener noreferrer"&gt;https://github.com/Willian-Thdr/Gerenciador_De_Pacotes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mas agora, me contem. O que acham desse projeto? Vocês usariam ele? Para vocês, tem algo a mais que eu possa fazer nele, desde uma melhoria até uma função nova? Me digam nos comentários!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>csharp</category>
      <category>linux</category>
      <category>braziliandevs</category>
    </item>
  </channel>
</rss>
