<?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: Paulo Henrique</title>
    <description>The latest articles on DEV Community by Paulo Henrique (@phalkmin).</description>
    <link>https://dev.to/phalkmin</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1335507%2F03ccda5f-d602-418f-bf40-c9e01a0cfa40.jpg</url>
      <title>DEV Community: Paulo Henrique</title>
      <link>https://dev.to/phalkmin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/phalkmin"/>
    <language>en</language>
    <item>
      <title>When Your UX Only Fits Two Sizes</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Thu, 09 Apr 2026 13:04:01 +0000</pubDate>
      <link>https://dev.to/phalkmin/when-your-ux-only-fits-two-sizes-3a1e</link>
      <guid>https://dev.to/phalkmin/when-your-ux-only-fits-two-sizes-3a1e</guid>
      <description>&lt;p&gt;A few years ago, right before the pandemic hit, I was trying to buy clothes online. Nothing fancy, just basic stuff, trying to get rid of my old "nerdy" t-shirts and work on different styles. "Queer Eye" got me with all those tips, you know the drill.&lt;/p&gt;

&lt;p&gt;And while I looked at the outfits, I started to notice a pattern across multiple stores: the navigation had &lt;strong&gt;"Men's Clothing"&lt;/strong&gt; with dozens of subcategories, &lt;strong&gt;"Women's Clothing"&lt;/strong&gt; with even more subcategories, and then, sitting there on the menu, separate from everything... "Plus Size."&lt;/p&gt;

&lt;p&gt;Just "Plus Size". No gender. No subcategories. As if being above a certain weight, or having a body out of the norm, erased everything else about me. According to these stores, I could be a man, a woman, or just... fat.&lt;/p&gt;

&lt;p&gt;Someone designed that. Someone coded that. Someone approved that. And probably nobody in the room thought twice about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The interface is the message
&lt;/h2&gt;

&lt;p&gt;&lt;a class="mentioned-user" href="https://dev.to/jess"&gt;@jess&lt;/a&gt; recently &lt;a href="https://dev.to/jess/a-year-of-change-and-persistence-19cf"&gt;wrote something that&lt;/a&gt; stuck with me: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;as developers, we're responsible for the interfaces the world lives in, and we have the power to build systems that refuse to force people into categories that don't fit.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And.. she's right, I love it when someone finds the exact words for an idea I've been circling around but couldn't articulate. But I think the problem goes deeper than that: Most of the time, we're not actively forcing people into bad categories. We're just &lt;em&gt;not thinking about them at all&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I wrote about this last year, where &lt;a href="https://dev.to/phalkmin/from-left-handed-to-left-behind-3d7"&gt;I talked about my own experience&lt;/a&gt; as a left-handed, neurodivergent person working in tech. How being outside the norm gave me a different lens on design and problem-solving. But that was about perspective. In this context, we are talking about something more concrete: the actual decisions we make every day when we build things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every&lt;/strong&gt; dropdown menu can be a decision about who we believe has the right to exist and who is being seen by us. &lt;strong&gt;Every&lt;/strong&gt; form field is a statement about what matters. &lt;strong&gt;Every&lt;/strong&gt; category in a navigation bar is a tiny act of world-building, whether we actively thought about it or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "default human" problem
&lt;/h2&gt;

&lt;p&gt;More than a decade ago, while working as a Tech Lead at an agency, a client reported issues with their site. It worked for us, so I did the basic investigation, and he used Internet Explore on Windows. When reporting it to the team, they complained about having to fix the issue, saying, &lt;em&gt;"Who still uses Windows these days?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It was 2012. Windows and IE still dominated the browser landscape. In an agency loaded with MacBooks, they couldn't understand anything out of their reality. &lt;/p&gt;

&lt;p&gt;I like to tell this story whenever a discussion about development and design decisions arises. Most developers don't think about it because they've never had to: when you design a system, you're designing for a default human. And that default human is usually someone who &lt;strong&gt;looks, thinks&lt;/strong&gt;, and &lt;strong&gt;lives&lt;/strong&gt; a lot like you.&lt;/p&gt;

&lt;p&gt;If your team is mostly young, able-bodied, right-handed, neurotypical people from similar backgrounds, your "default human" is going to reflect that. Not exactly out of malice, but by blindness.&lt;/p&gt;

&lt;p&gt;Color-blind users get crushed by red-green status indicators because someone on the team thought "red means bad, green means good" was universal. &lt;/p&gt;

&lt;p&gt;Screen readers choke on websites because someone decided that a div with an onClick handler was "basically the same" as a button.&lt;/p&gt;

&lt;p&gt;Neurodivergent users get overwhelmed by interfaces full of elements, or where the elements don't have clear precedence, and it isn't clear what to do next.  &lt;/p&gt;

&lt;p&gt;None of these are edge cases. Color vision deficiency alone affects roughly 8% of men worldwide. That's not a niche demographic. That's a significant chunk of your users that you're ignoring because you never tested with them.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's not about good intentions
&lt;/h2&gt;

&lt;p&gt;I've been building things for the web for over twenty years. Obviously, I've shipped code that was exclusionary without knowing it. We all have at some point in our lives. And the point of this text isn't to make you feel guilty about it.&lt;/p&gt;

&lt;p&gt;The point is to stop treating inclusion as a feature request.&lt;/p&gt;

&lt;p&gt;Accessibility isn't a sprint item you add after launch. Inclusive language in your UI isn't a "nice to have." These are architecture decisions. They belong at the start, in the planning phase, when you're sketching out user flows and database schemas. Not bolted on six months later when someone files a complaint.&lt;/p&gt;

&lt;p&gt;My first job had more women than men, so I could better understand the differences in treatment. Smart women being judged by their looks when they could run whole departments if they had the chance. Me hearing "but will she be able to lift a printer if needed?" when I decided to hire a girl as an intern. &lt;/p&gt;

&lt;p&gt;Also, I had a color-blind boss on my second job. Great developer, great guy. He couldn't tell red from green when they were next to each other. You know what happened? I started thinking about color as information design instead of decoration. &lt;/p&gt;

&lt;p&gt;Those experiences, along with others, changed how I build interfaces and how I communicate with everyone.&lt;/p&gt;

&lt;p&gt;But not everyone should need a personal connection to figure that out. And that's the part we need to start fixing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Small decisions, real consequences
&lt;/h2&gt;

&lt;p&gt;Let me go back to the clothing store for a second. That "Plus Size" category without gender isn't just lazy UX. It tells plus-size customers that they don't deserve the same browsing experience as everyone else. It tells them they're an exception, not a person.&lt;/p&gt;

&lt;p&gt;And it compounds. A form that only offers "Male" or "Female." A name field that rejects special characters (sorry, anyone with an accent, a hyphen, or an apostrophe in their name). An age dropdown that starts at 18 and ends at 65, because apparently, people over 65 don't use the internet. Each one of these is a small nuisance. But each one of these tells "this wasn't built for you" to someone that isn't you.&lt;/p&gt;

&lt;p&gt;I've seen Brazilian names rejected by international platforms because of the "ã" or "ç" in them. And sorry, this isn't a technical limitation in 2026. That's a choice someone made, or more likely, a choice someone never thought to question.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what do we actually do?
&lt;/h2&gt;

&lt;p&gt;This isn't an AI Slop article, so I'm not going to give you a five-step listicle with generic tips, sorry. But here's what I know from experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;: put different people in the room when you're making decisions. Not as a diversity exercise, but because they'll catch things you literally cannot see. My color-blind boss didn't need a diversity initiative to improve our interfaces. He just needed to be there. That's why I advocate for women in tech. That's why I advocate for teaching programming in public schools. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;: test with real humans who aren't like you. Not your coworkers. Not your friends. Actual users who interact with your product from a completely different context than the one you imagined. Believe me, the results will humble you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third&lt;/strong&gt;: question your defaults. Not just as an IT professional, but as a human being. Every time you create a dropdown, a category, a label, ask yourself: &lt;strong&gt;who am I leaving out&lt;/strong&gt;? And if the answer is "&lt;em&gt;I don't know&lt;/em&gt;," you might have a problem.&lt;/p&gt;

&lt;p&gt;We build the systems the world runs on. Not metaphorically. People apply for jobs, access healthcare, manage their money, connect with others, all through interfaces &lt;strong&gt;we&lt;/strong&gt; designed. When those interfaces exclude, they are not just creating an inconvenience, they are erasing people.&lt;/p&gt;

&lt;p&gt;That clothing store didn't mean to dehumanize anyone. But in the end, the result is the same. &lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>dei</category>
      <category>career</category>
    </item>
    <item>
      <title>Move over, Vibe-Coding: I built an AI editor for STRESS-CODING</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Mon, 06 Apr 2026 13:07:11 +0000</pubDate>
      <link>https://dev.to/phalkmin/move-over-vibe-coding-i-built-an-ai-editor-for-stress-coding-4243</link>
      <guid>https://dev.to/phalkmin/move-over-vibe-coding-i-built-an-ai-editor-for-stress-coding-4243</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/aprilfools-2026"&gt;DEV April Fools Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Quantum Collapse is a React editor that monitors your face via webcam and sabotages your code when you blink. Sadly, it works. &lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;If you are working remote in 2026, you know how some companies like to ensure that you are "being productive". Keep your camera on, keep a "productivity tracker" installed and running while you try to work. &lt;/p&gt;

&lt;p&gt;"We trust you," they say, from behind six layers of monitoring software.&lt;/p&gt;

&lt;p&gt;And, at the same time, "vibe-coding" is the new hype. Everyone is talking about how we should stop caring about code quality and hard work, and let AI do the job for us. &lt;/p&gt;

&lt;p&gt;So I built an IDE that merges those two realities.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Quantum Collapse actually does
&lt;/h3&gt;

&lt;p&gt;The premise is straightforward. If you're watching the screen, your code stays intact. The moment you blink, or look away, or even commit the biological crime of hydrating your eyeballs, the editor "collapses the wavefunction" and starts quietly sabotaging your work.&lt;/p&gt;

&lt;p&gt;Your variable names become emojis. &lt;/p&gt;

&lt;p&gt;Your semicolons silently turn into Greek question marks. &lt;/p&gt;

&lt;p&gt;Your functions rename themselves after Tokusatsu Monsters (I'm a nerd, sue me). &lt;/p&gt;

&lt;p&gt;There's a Stability Meter that drops every time you blink, and when it bottoms out, you can't save your work. And the best part?  The editor doesn't tell you what it changed.&lt;/p&gt;

&lt;p&gt;You look back at your screen, and MAYBE something is different, but you're not sure what. Was that variable always called 🌮? Did that function always return &lt;em&gt;undefined&lt;/em&gt;? Maybe you're just tired. Maybe you made a mistake. The code was fine a second ago. Wasn't it?&lt;/p&gt;

&lt;p&gt;That's the whole joke. You are not vibe-coding anymore. You are &lt;strong&gt;STRESS-CODING&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's also, in a very direct way, the experience of working under a time tracker that logs your keystrokes and then surfaces a passive-aggressive "productivity score" for your manager to review. You know you worked. The data says something else. You start questioning yourself and how you work.&lt;/p&gt;

&lt;p&gt;The only difference is that Quantum Collapse is honest about what it's doing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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%2Fyni0xuok1s2edbq36q14.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%2Fyni0xuok1s2edbq36q14.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;br&gt;
You can try Stress-Coding &lt;a href="https://quantum-editor-600155235177.us-central1.run.app/" rel="noopener noreferrer"&gt;your new project here&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Warning: extended use may cause dry eyes, Greek punctuation in production, and a sudden appreciation for jobs that don't need to see your face to trust you.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/phalkmin" rel="noopener noreferrer"&gt;
        phalkmin
      &lt;/a&gt; / &lt;a href="https://github.com/phalkmin/DevTo-April-Fool-s-Challenge" rel="noopener noreferrer"&gt;
        DevTo-April-Fool-s-Challenge
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;React + TypeScript + Vite&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.&lt;/p&gt;
&lt;p&gt;Currently, two official plugins are available:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react" rel="noopener noreferrer"&gt;@vitejs/plugin-react&lt;/a&gt; uses &lt;a href="https://oxc.rs" rel="nofollow noopener noreferrer"&gt;Oxc&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc" rel="noopener noreferrer"&gt;@vitejs/plugin-react-swc&lt;/a&gt; uses &lt;a href="https://swc.rs/" rel="nofollow noopener noreferrer"&gt;SWC&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;React Compiler&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The React Compiler is not enabled on this template because of its impact on dev &amp;amp; build performances. To add it, see &lt;a href="https://react.dev/learn/react-compiler/installation" rel="nofollow noopener noreferrer"&gt;this documentation&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Expanding the ESLint configuration&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:&lt;/p&gt;
&lt;div class="highlight highlight-source-js notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;export&lt;/span&gt; &lt;span class="pl-k"&gt;default&lt;/span&gt; &lt;span class="pl-en"&gt;defineConfig&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;[&lt;/span&gt;
  &lt;span class="pl-en"&gt;globalIgnores&lt;/span&gt;&lt;span class="pl-kos"&gt;(&lt;/span&gt;&lt;span class="pl-kos"&gt;[&lt;/span&gt;&lt;span class="pl-s"&gt;'dist'&lt;/span&gt;&lt;span class="pl-kos"&gt;]&lt;/span&gt;&lt;span class="pl-kos"&gt;)&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
  &lt;span class="pl-kos"&gt;{&lt;/span&gt;
    &lt;span class="pl-c1"&gt;files&lt;/span&gt;: &lt;span class="pl-kos"&gt;[&lt;/span&gt;&lt;span class="pl-s"&gt;'**/*.{ts,tsx}'&lt;/span&gt;&lt;span class="pl-kos"&gt;]&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
    &lt;span class="pl-c1"&gt;extends&lt;/span&gt;: &lt;span class="pl-kos"&gt;[&lt;/span&gt;
      &lt;span class="pl-c"&gt;// Other configs...&lt;/span&gt;
      &lt;span class="pl-c"&gt;// Remove tseslint.configs.recommended and replace with this&lt;/span&gt;
      &lt;span class="pl-s1"&gt;tseslint&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;configs&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;recommendedTypeChecked&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
      &lt;span class="pl-c"&gt;// Alternatively, use this for stricter rules&lt;/span&gt;
      &lt;span class="pl-s1"&gt;tseslint&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;configs&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;strictTypeChecked&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;
      &lt;span class="pl-c"&gt;// Optionally, add this for stylistic rules&lt;/span&gt;
      &lt;span class="pl-s1"&gt;tseslint&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;configs&lt;/span&gt;&lt;span class="pl-kos"&gt;.&lt;/span&gt;&lt;span class="pl-c1"&gt;stylisticTypeChecked&lt;/span&gt;&lt;span class="pl-kos"&gt;,&lt;/span&gt;

      &lt;span class="pl-c"&gt;// Other configs...&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/phalkmin/DevTo-April-Fool-s-Challenge" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;This whole project was made using AI as a tool. I used Gemini Web (that has a bunch of my latest posts and memories) to brainstorm some ideas, and as I'm a notorious advocate of remote work &lt;strong&gt;and&lt;/strong&gt; clear productivity goals when working, one of the ideas was to play with this concept. &lt;/p&gt;

&lt;p&gt;Then, I used Gemini CLI's Plan Mode to map out the mutation engine, or, more specifically, brainstorming the most creative ways to mess with code without making it obviously broken. &lt;/p&gt;

&lt;p&gt;For development, I first used Gemini CLI, but for the final steps of front-end development, I used Codex, as Gemini kept messing up some parts of the code. &lt;/p&gt;

&lt;p&gt;For deployment, the Gemini CLI handled containerization and pushed the whole thing to Google Cloud Run. The fact that a gag application about corporate surveillance is running on enterprise-grade infrastructure with automatic scaling is, genuinely, the ironic part of the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I used
&lt;/h3&gt;

&lt;p&gt;Google MediaPipe (Face Landmarker) handles the blink detection: real-time computer vision, running entirely in the browser, zero latency. If you blink for 200ms, the AI knows. The AI always knows. Which is, again, exactly the energy of the companies that sell "employee monitoring solutions" to people who manage remote teams.&lt;/p&gt;

&lt;p&gt;React 19 + TypeScript because even a deliberately broken tool should be type-safe before it breaks itself. There's something deeply funny about writing rigorous TypeScript for a chaos engine.&lt;br&gt;
Framer Motion powers the glitch aesthetic ( scanlines, neon flicker, haunted CRT vibes ).&lt;/p&gt;

&lt;p&gt;Vite 8 for the build. PrismJS for syntax highlighting, because the code deserves to look beautiful right before it gets destroyed.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>418challenge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>No, Brazil's "Felca Law" doesn't ban Linux</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Sun, 15 Mar 2026 14:22:54 +0000</pubDate>
      <link>https://dev.to/phalkmin/no-brazils-felca-law-doesnt-ban-linux-4jj0</link>
      <guid>https://dev.to/phalkmin/no-brazils-felca-law-doesnt-ban-linux-4jj0</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;(This is a translated version of my &lt;a href="https://phalkmin.medium.com/n%C3%A3o-a-lei-felca-n%C3%A3o-pro%C3%ADbe-o-linux-2f09225919ad" rel="noopener noreferrer"&gt;original text on Medium&lt;/a&gt;, where I discuss a huge fake news being spread about brazilian laws and how parental control work on Linux)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The misinformation about Brazil's Law 15.211/2025 and Linux is a textbook case of how a legitimate concern becomes panic when nobody reads the source material.&lt;/p&gt;

&lt;p&gt;On March 8, 2026, &lt;a href="https://itsfoss.com/news/midnightbsd-age-verification/" rel="noopener noreferrer"&gt;MidnightBSD&lt;/a&gt; (a niche BSD system most people have never heard of ) proactively blocked Brazilian users. The message was blunt: "Residents of Brazil are not authorized to use MidnightBSD."&lt;/p&gt;

&lt;p&gt;Right on cue, a week later, my timeline was flooded with alarmist posts about how Brazil's &lt;strong&gt;"Felca Law"&lt;/strong&gt; was going to ban Linux. Videos with all-caps titles, apocalyptic threads, people who never installed a distro in their lives sharing that "the Brazilian government is banning Linux." The full misinformation cycle, start to finish, in less than ten days, fueled by artificial panic and clickbait content.&lt;/p&gt;

&lt;p&gt;Look, I've been using Linux since the late '90s. I've contributed to open source projects, spoken at conferences about it, and even interviewed Linus Torvalds. Using Linux is second nature to me. A good chunk of my day, even for personal projects like my home server, is spent in a terminal running native Linux commands. So it's pretty obvious that when the flood of "Linux is banned" posts started showing up, I went to look for myself.&lt;/p&gt;

&lt;p&gt;Meaning, I read the law.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Law 15.211/2025 actually says
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.planalto.gov.br/ccivil_03/_ato2023-2026/2025/lei/L15211.htm" rel="noopener noreferrer"&gt;Law 15.211&lt;/a&gt;, signed in September 2025 and effective as of March 17, 2026, is officially Brazil's Digital Statute for Children and Adolescents. The nickname "Felca Law" comes from a YouTuber by the same handle, whose video about child exploitation on social media accelerated the bill's passage in Congress. The video has over 50 million views today.&lt;/p&gt;

&lt;p&gt;Article 1 defines the scope: it applies to &lt;em&gt;&lt;strong&gt;"all information technology products or services directed at children and adolescents in Brazil or likely to be accessed by them."&lt;/strong&gt;&lt;/em&gt; Article 2, item I, lists examples: internet applications, computer programs, software, &lt;em&gt;operating systems for terminals&lt;/em&gt;, app stores, and electronic games.&lt;/p&gt;

&lt;p&gt;Yes, operating systems are mentioned. And this is where most people stop reading and start panicking.&lt;/p&gt;

&lt;p&gt;But here's the thing: at least in Brazil, laws don't exist in isolation. They depend on, limit, and build upon other laws. If a law mentions "family," there needs to be a legal definition of family, or it references an existing one, to avoid ambiguity. Everything depends on context, not on isolated words in a single article.&lt;/p&gt;

&lt;p&gt;With that in mind, Article 12 is where the confusion was born. It says that providers of app stores and operating systems must take &lt;strong&gt;proportional, auditable, and technically secure&lt;/strong&gt; measures to verify user age, allow parents to configure parental supervision, and enable age signaling via a secure API.&lt;/p&gt;

&lt;p&gt;The keyword there is "proportional."&lt;/p&gt;

&lt;p&gt;It shows up again in Article 39, which reinforces that obligations must be applied according to the &lt;em&gt;&lt;strong&gt;"characteristics, functionalities, size, and degree of interference of the provider."&lt;/strong&gt;&lt;/em&gt; And Article 12, §3 explicitly states that an Executive branch regulation will define minimum requirements.&lt;/p&gt;

&lt;p&gt;In other words, the regulation isn't even finished yet. And even when it is, it still relies on other existing laws. People in Brazil are debating the worst-case scenario of a law whose practical application hasn't been defined and that doesn't exist in a vacuum.&lt;/p&gt;

&lt;h2&gt;
  
  
  It gets worse (for the panic narrative)
&lt;/h2&gt;

&lt;p&gt;When the "Linux ban" discussion started gaining traction on the few networks I follow, I noticed that virtually nobody was mentioning three provisions from the same law that dismantle the whole narrative:&lt;/p&gt;

&lt;p&gt;Article 2, §2 excludes from scope &lt;strong&gt;&lt;em&gt;"essential functionalities for the operation of the internet, such as open and common technical protocols and standards."&lt;/em&gt;&lt;/strong&gt; The Linux kernel runs on over 96% of the world's web servers. It &lt;em&gt;is&lt;/em&gt; the essential functionality for the operation of the internet. I don't know how to make this clearer.&lt;/p&gt;

&lt;p&gt;Article 14, sole paragraph, states that &lt;em&gt;&lt;strong&gt;"regardless of the measures adopted by operating systems and app stores, providers [of applications] must implement their own mechanisms to prevent improper access."&lt;/strong&gt;&lt;/em&gt; The primary responsibility lies with the applications, not the operating system. If Instagram needs to verify age, that's Instagram's job. The operating system plays a complementary role, not a central one. Pretty obvious, if you think about it for a second.&lt;/p&gt;

&lt;p&gt;And Article 37, sole paragraph, prohibits the regulation from resulting in &lt;em&gt;&lt;strong&gt;"massive, generic, or indiscriminate surveillance mechanisms"&lt;/strong&gt;&lt;/em&gt; and explicitly protects freedom of expression and privacy. Blocking access to an entire operating system fits squarely into "generic and indiscriminate."&lt;/p&gt;

&lt;p&gt;Three articles. Same law. That most people who shared the "Linux is banned" story either didn't read or cherry-picked to promote panic. And this is getting traction, even internationally.&lt;/p&gt;

&lt;h2&gt;
  
  
  How clickbait became panic
&lt;/h2&gt;

&lt;p&gt;So here we go.&lt;/p&gt;

&lt;p&gt;Between August and September 2025, when Brazil's president signed the bill, the first analyses emerged. A political columnist posted on Twitter that a "possible ramification" of the law would be "banning Linux." A tech columnist from TecMundo (a major Brazilian tech outlet) started threads analyzing Article 12 and asking what the chances were that Linux distros would implement age verification. On TabNews (a Brazilian dev community), the topic was discussed under the headline "END OF LINUX IN BRAZIL⁉️"&lt;/p&gt;

&lt;p&gt;In December 2025, Brazil's National Data Protection Authority (ANPD) published its list of companies subject to oversight, which included Canonical (Ubuntu).&lt;/p&gt;

&lt;p&gt;Now, being on an oversight list is radically different from being banned. I'm on the income tax registry. That doesn't mean paying taxes is illegal, or that I'm automatically going to jail. It means the tax authority knows I'm a minimally (emphasis on &lt;em&gt;minimally&lt;/em&gt;) functional adult and I need to comply with my obligations. Once those obligations are met, nothing happens.&lt;/p&gt;

&lt;p&gt;Finally, in March 2026, everything blew up. &lt;a href="https://x.com/midnightbsd/status/2030724645184303276" rel="noopener noreferrer"&gt;MidnightBSD blocked Brazilians preemptively&lt;/a&gt; (the project's own decision, not a legal mandate), TecMundo published an article presenting the most pessimistic scenario as plausible, and the whole thing went viral.&lt;/p&gt;

&lt;p&gt;The misinformation spread along two axes. On the political side, right-wing sectors framed the law as "censorship" and "state control," using Linux as an example of regulatory overreach. Standard playbook: when there's nothing real to present, create panic. Content like that goes viral fast, and not always organically.&lt;/p&gt;

&lt;p&gt;On the technical side, members of the tech community turned "could affect" into "will ban." Well, I &lt;em&gt;could&lt;/em&gt; walk to the bakery and get hit by a Boeing 737 that lost control and crashed specifically on my head. Something &lt;em&gt;having a chance&lt;/em&gt; of happening doesn't mean &lt;strong&gt;it will&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And since sharing an alarmist headline is easier than reading 37 articles of a law, here we are.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the law can't do (and why)
&lt;/h2&gt;

&lt;p&gt;No fluff, let's get to the legal arguments:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proportionality is the central principle.&lt;/strong&gt; Banning an entire operating system because it doesn't have native age verification would be like shutting down a highway because one of the cars on it doesn't have a seatbelt. Article 5, §3 requires the ANPD to consider "regulatory asymmetries" and "technological evolution" when issuing guidelines. Volunteer-maintained Linux distributions don't have the same implementation capacity as Microsoft or Apple. The law acknowledges this.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Applications bear the primary responsibility.&lt;/strong&gt; I already cited Article 14, but it's worth reinforcing: the law distributes responsibility across the entire digital chain. The operating system is just one layer, not the bottleneck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brazil's Internet Bill of Rights protects open technologies.&lt;/strong&gt; Remember what I said about laws not existing in isolation? Article 24, V of &lt;a href="https://www.planalto.gov.br/ccivil_03/_ato2011-2014/2014/lei/l12965.htm" rel="noopener noreferrer"&gt;Law 12.965/2014&lt;/a&gt; (Brazil's "Marco Civil da Internet," essentially our Internet Bill of Rights) establishes as a guideline the "preferential adoption of open and free technologies, standards, and formats." Any interpretation of Law 15.211 that results in banning free software directly conflicts with this guideline.&lt;/p&gt;

&lt;p&gt;The "Felca Law" itself references the concepts from the "&lt;a href="https://www.planalto.gov.br/ccivil_03/_ato2011-2014/2014/lei/l12965.htm" rel="noopener noreferrer"&gt;Marco Civil&lt;/a&gt;" law. One doesn't exist without the other, and neither exists separately from the rest of the legal framework, including the original Child and Adolescent Statute (ECA).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Constitution protects free enterprise.&lt;/strong&gt; Article 170 of the 1988 Constitution enshrines free enterprise. Banning Linux distribution, used by thousands of Brazilian companies and by the federal government itself, would violate this principle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suspension and prohibition require a court order.&lt;/strong&gt; Article 35, §5 specifies that warnings and fines are applied by the ANPD, but suspension and prohibition of activities can only be imposed by the Judiciary. There is no scenario where the ANPD simply "bans" Linux by administrative decree. A court order would be required, with full due process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The law itself prohibits mass surveillance.&lt;/strong&gt; I already mentioned Article 37, but it deserves emphasis: the law prohibits the regulation from compromising "the fundamental rights to freedom of expression" and privacy. Blocking an operating system falls under that prohibition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technological neutrality is a principle of Brazilian regulatory law.&lt;/strong&gt; The law doesn't differentiate between proprietary and free software. Interpreting it so that only Windows and macOS can operate would create an unconstitutional market monopoly that makes no sense whatsoever. You can have a Linux-based OS that's almost 100% nationally developed. You can't say the same for Windows or macOS.&lt;/p&gt;

&lt;p&gt;Law firms that have formally analyzed the law treat it as imposing compliance obligations, not technology bans. No formal legal opinion supports the thesis that Linux would be banned.&lt;/p&gt;

&lt;p&gt;I'll say it again, in bold this time: &lt;strong&gt;None.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  "But Linux doesn't have parental controls"
&lt;/h2&gt;

&lt;p&gt;For the love of sweet baby Tux, have you ever actually used Linux? This is the part that annoys me the most, because it shows that whoever pushes this argument doesn't use Linux. Or, if they do, they never looked beyond the basics.&lt;/p&gt;

&lt;p&gt;GNOME has integrated &lt;a href="https://github.com/endlessm/malcontent" rel="noopener noreferrer"&gt;Malcontent&lt;/a&gt; since version 3.38, back in 2020. It's a native parental control system that lets you restrict apps per user account, block web browsers, prevent software installation, and filter apps by age rating using the &lt;a href="https://hughsie.github.io/oars/" rel="noopener noreferrer"&gt;OARS (Open Age Ratings Service)&lt;/a&gt; standard. It's &lt;a href="https://help.gnome.org/gnome-help/parental-controls.html" rel="noopener noreferrer"&gt;part of the desktop environment&lt;/a&gt; that millions of people use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines" rel="noopener noreferrer"&gt;Flathub&lt;/a&gt;, the largest Linux app repository, &lt;strong&gt;mandates&lt;/strong&gt; OARS classification for all published apps. Classification by violence, drugs, sex, language, social interaction, mapped to age ranges. The same kind of thing you find on the App Store and Play Store.&lt;/p&gt;

&lt;p&gt;For screen time control, Timekpr-nExT offers daily, weekly, and monthly limits, time windows, per-app control, and automatic logout. Works with GNOME, KDE Plasma, XFCE, Cinnamon, Budgie, and Deepin, on both X11 and Wayland. It's been in Ubuntu's official repositories since version 20.10 — that's the year of our Lord 2020.&lt;/p&gt;

&lt;p&gt;And there's more: CTparental, a French open source solution, combines web filtering by category, forced SafeSearch, time controls, download blocking by file extension, and a web admin interface.&lt;/p&gt;

&lt;p&gt;At the system level, Linux offers controls that simply don't exist on Windows or macOS: PAM can restrict login by time of day directly at the kernel level; iptables/nftables can block internet access per user ID; AppArmor and SELinux implement mandatory access control. Every Unix-like system, no exception, has the foundations to meet these requirements by design.&lt;/p&gt;

&lt;p&gt;I'd go as far as saying that if the "Felca Law" actually forced operating systems to implement age controls, Linux would probably be &lt;em&gt;more&lt;/em&gt; suitable than Windows and macOS. If someone wants to argue that Linux can't comply with this law, they'll need better arguments. Because the facts disagree.&lt;/p&gt;

&lt;h2&gt;
  
  
  The debate that actually matters
&lt;/h2&gt;

&lt;p&gt;Look, I'm not saying the law is perfect. No law is, by definition. Society changes, technology advances, and laws rarely keep up.&lt;/p&gt;

&lt;p&gt;In the case of the "Felca Law", the wording is broad, as is typical of Brazilian legislation. And unfortunately, there are legitimate ambiguities that need to be resolved during the ANPD's regulatory process.&lt;/p&gt;

&lt;p&gt;The real question is: how do we make sure that regulation recognizes the specifics of free software? Decentralized governance models, community-driven development, the impossibility of having a single "provider" responsible in the traditional sense. There are viable technical solutions, like system-level age signaling APIs, that can be implemented without compromising the open nature of the code. Ideally, APIs that aren't tied to big tech companies or other services that could misuse this information.&lt;/p&gt;

&lt;p&gt;I'm in favor of regulation that protects children and teenagers online. I've written on LinkedIn about how platforms profit from child exploitation while treating reports as a joke. I've reported 18+ content in supposedly child-friendly videos on Instagram, and the response was always "no violations found." The Felca Law tries to solve a real problem that big tech seems to treat as a "necessary evil" for their bottom line.&lt;/p&gt;

&lt;p&gt;The path forward is participating in the public regulatory consultation with constructive contributions. Not sharing that "Linux will be banned" without having read a single article of the law or knowing how Linux works.&lt;/p&gt;

&lt;p&gt;Installing Linux in Brazil was legal in the '90s. It's legal today. And it will be legal tomorrow.&lt;/p&gt;

&lt;p&gt;Staying informed is important. The panic, as usual, is optional.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>watercooler</category>
      <category>privacy</category>
    </item>
    <item>
      <title>With Gemini CLI, I'm able to keep my pet projects alive and kicking</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Tue, 03 Mar 2026 21:54:39 +0000</pubDate>
      <link>https://dev.to/phalkmin/with-gemini-cli-im-able-to-keep-my-pet-projects-alive-and-kicking-2fll</link>
      <guid>https://dev.to/phalkmin/with-gemini-cli-im-able-to-keep-my-pet-projects-alive-and-kicking-2fll</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/mlh/built-with-google-gemini-02-25-26"&gt;Built with Google Gemini: Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built with Google Gemini
&lt;/h2&gt;

&lt;p&gt;It's 2023, and I'm trying to figure out how LLM APIs actually work. I don't like the idea of creating a "ChatGPT clone" that just talks to the OpenAI API. There are thousands out there. So I built a rough Next.js site to merge AI and SEO in a simple way. Out with the long prompts; the site would just do the work for you with minimal inputs.&lt;/p&gt;

&lt;p&gt;It's 2024, and I'm loving being part of the DEV.to community, writing for fun, coding for fun. During a Hackathon, I decided to build a text-based RPG for a DEV.to challenge using AI, so every adventure and interaction would be different. I had a dream of using AI to create infinite ideas like the old "Choose Your Own Adventure" books and games from the 80s and 90s. I love a good pun, so "Choose Your Own AIdventure" was born. Unfortunately, given some time constraints, the site was rough, and I didn't win the challenge.&lt;/p&gt;

&lt;p&gt;Both projects worked as MVPs. Both won their respective little battles. And, like most pet projects, they sat on a server and aged.&lt;/p&gt;

&lt;p&gt;Code gets outdated. APIs change. You receive some alerts from GitHub or Vercel about outdated libraries or build variables. But you still need to work, or deal with adult things. And your cool idea just sits there, unchanged, cursed to never be what you &lt;em&gt;know&lt;/em&gt; it could be.&lt;/p&gt;

&lt;p&gt;Enter the Gemini CLI. I was already using it professionally, but one day I just thought: "What if I asked Gemini to evaluate my code and minimally update it to 2026 standards?"&lt;/p&gt;

&lt;p&gt;Done.&lt;/p&gt;

&lt;p&gt;Simple as that. I just had to approve some commands, and minutes later &lt;em&gt;Choose your Own AIdventure&lt;/em&gt; was alive and kicking again.&lt;/p&gt;

&lt;p&gt;This is where I decided to take those two legacy projects and use the Gemini CLI to not only do a minor update, but to refactor them exactly as I envisioned them the first time. Here is exactly how that went.&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%2F9rh8771go3u8yf2nls2q.jpg" 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%2F9rh8771go3u8yf2nls2q.jpg" alt="The old and the new" width="800" height="749"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I'm by nature a terminal person. This is where I spend most of my day. I access remote servers, I build automations, I execute shell scripts, and I test things locally before they ever see a browser. So, using the Gemini CLI to execute code was natural for me. I keep it running on the second monitor and provide inputs when needed. On my main monitor, I focus on other things.&lt;/p&gt;

&lt;p&gt;The first project I refactored was &lt;em&gt;&lt;a href="https://choose.phalkmin.me/" rel="noopener noreferrer"&gt;Choose Your Own AIdventure&lt;/a&gt;&lt;/em&gt;. As I mentioned, originally it was supposed to be like the old solo RPG books, where you read part of a text and choose what to do based on limited options. Good choices led you to victory. Bad choices led to a bad ending.&lt;/p&gt;

&lt;p&gt;The biggest upgrade here was fixing the layout. I still wanted it to look like an old videogame, so I asked Gemini to analyze the codebase and create a mockup of a new front-end. After a few rounds of manual changes and conversations with the tool, I asked the CLI to apply the final version. Then, I started a brainstorming session with Gemini to discuss ideas and how to implement them by priority and complexity.&lt;/p&gt;

&lt;p&gt;After that, I asked it to create a markdown file with all the ideas and an execution plan. In my spare time, I could just boot the CLI and ask it to execute the plan from item X to item Y. Gemini was able to understand everything, ask questions, and even test the build to ensure that everything was in place.&lt;/p&gt;

&lt;p&gt;For the &lt;em&gt;&lt;a href="https://seo.phalkmin.me/" rel="noopener noreferrer"&gt;SEO Toolbox&lt;/a&gt;&lt;/em&gt;, the Gemini CLI basically refactored the whole codebase, making it smaller, faster, and packed with new features. Originally, I only had two features: create some blog post ideas, and write a text about X. Now, it &lt;em&gt;feels&lt;/em&gt; like a true toolbox, with half a dozen options, like Competitor Analysis, Meta Tag Generation, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Years ago, I studied to be a teacher. Going through the Brazilian Magistério program and studying Paulo Freire, you learn very quickly that you don't teach by just handing over the final answer or by assuming that everyone is on the same page as you. You need to know how to let the student learn on their own terms, and guide the interaction with the subject.&lt;/p&gt;

&lt;p&gt;Prompting an AI that has almost infinite access to your files feels exactly like that.&lt;/p&gt;

&lt;p&gt;I had to unlearn the way I prompted before. This meant giving clear instructions on when to act and when to just review everything, and also reviewing Gemini's decisions before approval. Giving a bad prompt meant that Gemini would overthink the solution or act on its own, modifying things I didn't ask for. Because I had limited time for these personal projects, I had to create almost perfect prompts and ensure my &lt;code&gt;GEMINI.md&lt;/code&gt; rules were on point.&lt;/p&gt;

&lt;p&gt;My skills evolved, too, as I learned that talking to the web version of a model is entirely different from talking to the agentic version.&lt;/p&gt;

&lt;p&gt;Also, I usually have thousands of ideas in my head, so even minor things can get lost if I'm not paying attention. One night, after forgetting to ask Gemini to save the changes we had made in the &lt;code&gt;Changelog.txt&lt;/code&gt; and update the &lt;code&gt;PLAN.md&lt;/code&gt; file, I started a new session to ask if I could create a "macro" where just one phrase would make it execute a series of steps. It automatically added the "That's all, folks!" command to the &lt;code&gt;GEMINI.md&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;Now, I just need to type that, and it does everything for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Gemini Feedback
&lt;/h2&gt;

&lt;p&gt;Building on top of a language model requires trial and error. And sometimes an error can be fatal.&lt;/p&gt;

&lt;p&gt;The Gemini CLI is fast. Testing prompts and streaming responses without a frontend is a massive productivity boost. You can type your prompt and let the AI take care of it while you work on other things, or try to give some attention to your cats.&lt;/p&gt;

&lt;p&gt;But Gemini has a distinct reasoning style. It tends to be overly helpful and act without authorization if it feels like it. So, you need to set strict boundaries.&lt;/p&gt;

&lt;p&gt;Also, as the session gets longer and the codebase grows, Gemini can hallucinate. Nothing critical, but it might add code that isn't needed or enter a loop if for some reason the build won't finish.&lt;/p&gt;

&lt;p&gt;I like to think of the Gemini CLI as a Junior Dev. He can make your life a lot easier. But he can also make your life a nightmare. That depends entirely on how you manage him.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Forward
&lt;/h2&gt;

&lt;p&gt;Having pet projects can be a problem when you still need to work, deal with adult life, and feed two cats. This can be even more problematic for neurodivergent brains like mine, where that cool idea &lt;em&gt;never&lt;/em&gt; leaves your mind.&lt;/p&gt;

&lt;p&gt;Revisiting these projects in the terminal proved to me that legacy code can be salvaged if you have the right tools to pry it open. Ideas can leave your mind and turn into real applications, even when you don't have enough time or energy.&lt;/p&gt;

&lt;p&gt;Right now, I am designing even more features for those two projects, and also using the CLI to work on my new portfolio page. I can think high-level while the CLI does the heavy lifting.&lt;/p&gt;

&lt;p&gt;Which means that, someday, my pet projects can actually be turned into real products.&lt;/p&gt;

&lt;p&gt;What about yours?&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>geminireflections</category>
      <category>gemini</category>
    </item>
    <item>
      <title>From Frustration to Feature: The Open Source Magic</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Tue, 15 Apr 2025 18:01:32 +0000</pubDate>
      <link>https://dev.to/phalkmin/from-frustration-to-feature-the-open-source-magic-1e1b</link>
      <guid>https://dev.to/phalkmin/from-frustration-to-feature-the-open-source-magic-1e1b</guid>
      <description>&lt;p&gt;When was the last time you felt that &lt;strong&gt;"How is this not a thing yet?"&lt;/strong&gt; sensation? &lt;/p&gt;

&lt;p&gt;You know, the one where you're looking for a simple solution to a simple problem, but somehow it doesn't exist. This feeling of frustration has been the genesis of countless open source projects, and recently, it reminded me why I fell in love with the open source community in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  It all started with an Install CD (and pain)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./configure
make
make install 
# *stares at cryptic error messages*
# *read the manual*
# *tries again*
# *lots of crying*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My relationship with open source software began back in 1998 with a &lt;a href="https://archive.org/details/conectiva-2.0" rel="noopener noreferrer"&gt;Conectiva Linux CD&lt;/a&gt; and more than a few headaches. Configuring anything in Linux back then was often a nightmare, and even trying to make the monitor and video card work correctly could take hours if you didn't own a more well-known brand. But despite the frustration, I was captivated by the core concept: collaborative creation of software that was open, evolving, and free from corporate control.&lt;/p&gt;

&lt;p&gt;This philosophy changed how I viewed software development. It wasn't just about the end product or making BILLIONS of revenue; it was about the collective effort of people solving problems together and ensuring that everyone could enjoy it.&lt;/p&gt;

&lt;p&gt;My early contributions were modest. I worked with the KDE team for a while, helping with translations and bug reports. I created layouts and modules for &lt;a href="https://en.wikipedia.org/wiki/PHP-Nuke" rel="noopener noreferrer"&gt;PHP-Nuke&lt;/a&gt;. All these experiences helped me in my career, which to this day revolves around WordPress and Linux-based technologies.&lt;/p&gt;

&lt;p&gt;But this story isn't about my career path. It's about a recent experience that reminded me why I'm still passionate about free and open source software.&lt;/p&gt;

&lt;h2&gt;
  
  
  When my personal needs met the community
&lt;/h2&gt;

&lt;p&gt;Earlier this year, I revisited my &lt;a href="https://dev.to/phalkmin/sometimes-your-home-server-needs-more-power-1cl8"&gt;self-hosted services setup&lt;/a&gt; and, along with the usual backups and automations, I wanted to add services that would make my daily life easier. That's when I discovered &lt;a href="https://actualbudget.org/" rel="noopener noreferrer"&gt;Actual Budget&lt;/a&gt;, a financial manager with a philosophy closely aligned with what I consider ideal for personal finance software.&lt;/p&gt;

&lt;p&gt;There was just one tiny problem: the app lacked automation for Brazilian banks. Every month, I had to manually export statements from my bank, then import them into &lt;em&gt;Actual&lt;/em&gt;, a manual process like my ancestors did 200 internet-years ago.&lt;/p&gt;

&lt;p&gt;"Hold on," &lt;em&gt;I thought&lt;/em&gt;, "Brazil has implemented &lt;a href="https://www.bcb.gov.br/en/financialstability/open_finance" rel="noopener noreferrer"&gt;Open Banking&lt;/a&gt; standards. How is there automatic integration for U.S. and European Union banks, but nothing for Brazil? Is it because we're poor?"&lt;/p&gt;

&lt;p&gt;If this had been proprietary software, my inquiry about integration with Brazilian accounts would likely have been met with a polite "We'll consider it carefully" (which can be translated as "LOL").&lt;/p&gt;

&lt;p&gt;But Actual Budget is open source. So I did what open source communities make possible: I went to GitHub, opened an issue, and explained the situation.&lt;/p&gt;

&lt;p&gt;The initial response wasn't promising, as there are some limitations to the Open Banking format if you are not a bank or a company. But then something magical happened: other developers and users joined the conversation. They discussed possibilities, explored solutions, and worked toward implementing Brazilian bank support.&lt;/p&gt;

&lt;p&gt;And now? &lt;a href="https://actualbudget.org/docs/releases" rel="noopener noreferrer"&gt;The newest version of Actual Budget supports Brazilian banking transactions&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;The most remarkable part? To make this happen, I wrote exactly &lt;strong&gt;zero&lt;/strong&gt; lines of code. I paid exactly zero dollars. All I did was raise my hand, participate in testing, and contribute to implementation discussions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The true Open Source are the friends we make along the way
&lt;/h2&gt;

&lt;p&gt;This is, to me, a perfect example of what makes open source special:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You don't need special credentials to identify problems worth solving.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;One person's need often reflects many others' needs, and the community validates what's worth implementing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;People contribute with what they can, whether that's coding, testing, documenting, or simply articulating the problem clearly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You don't need to be a developer, designer, or "expert" to make meaningful contributions. You just need to be willing to be part of a community.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Contribute to Open Source (even when you don't code)
&lt;/h2&gt;

&lt;p&gt;If this story inspires you to get involved with open source, remember: you don't need to be a coding wizard. Here are ways anyone can contribute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Report bugs clearly and constructively&lt;/li&gt;
&lt;li&gt;Suggest features based on real needs you've encountered&lt;/li&gt;
&lt;li&gt;Improve documentation to make software more accessible&lt;/li&gt;
&lt;li&gt;Participate in testing to ensure quality releases&lt;/li&gt;
&lt;li&gt;Engage in discussions on issues and pull requests&lt;/li&gt;
&lt;li&gt;Share your use case to help developers understand real-world applications&lt;/li&gt;
&lt;li&gt;Translate interfaces or documentation to make software more global&lt;/li&gt;
&lt;li&gt;Spread the word about projects you find valuable&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Even a small contribution can be important
&lt;/h2&gt;

&lt;p&gt;What I find most profound about the open source model is the impact small contributions can have. My simple feature request didn't just solve my problem: it potentially helped thousands of other Brazilian users who might have otherwise abandoned the software.&lt;/p&gt;

&lt;p&gt;This ripple effect is what sustains my belief in the power of open source. Every contribution, no matter how small, has the potential to improve someone's life or work, somewhere in the world.&lt;/p&gt;

&lt;p&gt;And the most meaningful shift that comes from participating in open source isn't technical. It's psychological. &lt;/p&gt;

&lt;p&gt;You begin to see yourself not just as a &lt;strong&gt;consumer of technology&lt;/strong&gt;, but as a potential &lt;em&gt;creator&lt;/em&gt; and &lt;em&gt;contributor&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This shift is powerful. It transforms frustration (&lt;em&gt;"Why doesn't this exist?"&lt;/em&gt;) into agency (&lt;em&gt;"I can help make this exist"&lt;/em&gt;). And ultimately, it makes technology more human, more responsive to real needs, and more accessible to everyone.&lt;/p&gt;

&lt;p&gt;So the next time you find yourself thinking "How is this not a thing yet?", remember that in the open source world, you can be the missing key that turns that frustration into a feature that benefits people around the globe.&lt;/p&gt;

&lt;p&gt;And you might not even need to write a single line of code to do it.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>From Left-Handed to Left Behind</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Sun, 06 Apr 2025 15:22:05 +0000</pubDate>
      <link>https://dev.to/phalkmin/from-left-handed-to-left-behind-3d7</link>
      <guid>https://dev.to/phalkmin/from-left-handed-to-left-behind-3d7</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/wecoded"&gt;WeCoded Challenge&lt;/a&gt;: Echoes of Experience&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I have a confession to make: &lt;strong&gt;I'm left-handed&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Not exactly a shocking revelation in 2025, right? But if I had been born just a few decades earlier, my left-handedness would have been treated as something to "fix." Teachers would have tied my left hand down to force me to write with my right. In my country, I would be BEATEN until passing out for just using my left hand. I would have been labeled as deviant, stubborn, or worse.&lt;/p&gt;

&lt;p&gt;For those who might not know, being left-handed was once considered an omen, a bad thing. This is shown even in our language: The term “&lt;em&gt;canhoto&lt;/em&gt;” in Portuguese probably comes from the vulgar Latin &lt;em&gt;cannus&lt;/em&gt;, which meant “twisted” or “crooked”. The idea is that a "canhoto" is someone “crooked”, or outside the norm. In English, "&lt;em&gt;Left&lt;/em&gt;" comes from &lt;em&gt;lyft&lt;/em&gt; ("weak" or "of no value"). In some places, even a few decades ago, using the left hand for something meant that you were using the "devil's hand". &lt;/p&gt;

&lt;p&gt;I'm also neurodivergent, though unfortunately, I didn't learn this until later in life. For decades, I just thought I was "bad" at specific things that seemed to come quickly to others. I developed coping mechanisms and workarounds to function in a world designed for neurotypical people. My late diagnosis explained so much about my life experiences, but it also meant I spent decades masking and adapting rather than being understood and accepted.&lt;/p&gt;

&lt;p&gt;I'm the son of a poor blue-collar family. My first computer was a donated MSX. It's where I developed the love for "programming", as in "solving cool problems". But I didn't have the time or money to have official IT education, as I had to come from school and help my father. I learned by trial and error, in my room, at night and on weekends. For years, even after I finished my graduation, I still heard how my "lack of official education" made me worse than others, more privileged people, even when I was able to deliver more than they were. &lt;/p&gt;

&lt;p&gt;When I first started working only as a developer instead of a "jack of all trades" in IT, my boss was color blind. It wasn't so bad, he had some problems when red and green were placed next to each other. He was a great guy, and even as I'm more focused on backend, I still remember all the tips I got from him when I'm working on a professional layout today.&lt;/p&gt;

&lt;p&gt;The interesting twist in all these histories? These differences and these struggles, the same ones society once tried to "fix" or "belittle", have given me unique perspectives and problem-solving approaches that have defined my career in tech.&lt;/p&gt;

&lt;p&gt;As a left-hander, I've always had to figure out how to use tools and systems designed for the right-handed majority. This made me understand how even simple things can be complicated if you are not part of the norm. &lt;/p&gt;

&lt;p&gt;As someone with a neurodivergent mind, I process information differently. Patterns that others miss jump out at me. Connections between seemingly unrelated systems become obvious. What some might see as overthinking, I see as thorough analysis. That helped me see opportunities and weaknesses in places no one was able to see.&lt;/p&gt;

&lt;p&gt;As a self-learner, I was able to understand technology my way, instead of having to memorize concepts. This made me more aware of the possibilities in IT, as "thinking outside the box" was a natural thing. &lt;/p&gt;

&lt;p&gt;When you're forced to adapt to a world not designed for you, you develop a superpower. You learn to see workarounds and alternative solutions that might not be obvious to someone who's never had to adapt.&lt;/p&gt;

&lt;p&gt;These aren't weaknesses—they're strengths. They're exactly the kind of diverse thinking that leads to innovation. It's crazy when you think that most of the solutions we have today are based on a white-male-rich-cis-straight-and-neurotypical vision of the world, when so much can be done by looking at the problems with another mindset.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Paper-Thin Protection
&lt;/h2&gt;

&lt;p&gt;OK, but now let's get all these personal experiences and extrapolate a little: &lt;/p&gt;

&lt;p&gt;It wasn't until the 1970s that schools widely stopped forcing left-handed children to write with their right hands. Most workplace accommodations for neurodivergent individuals are still in their infancy, and many companies still view them as optional courtesies rather than necessary accommodations. At least in Brazil, I know lots and lots of companies that do nothing to accommodate people with special needs. Or they comply and work inside the workplace standard, or they are kept unemployed. &lt;/p&gt;

&lt;p&gt;One day, in high school, a girl asked me "&lt;em&gt;Why did I choose to be left-handed&lt;/em&gt;". I always told this story as a joke, because WTF I WAS BORN THIS WAY, but now I see how it's stupid to ask the same question for an LGBT+ person. They didn't choose, as well as I didn't choose to be "different". I just got lucky that my differences are "passable" today for most of society.   &lt;/p&gt;

&lt;p&gt;But here's where things get sketchy: the rights that protect me today are &lt;strong&gt;as thin as a piece of paper&lt;/strong&gt;. One politician can just bring back the need for everyone to be right-handed. Or can pass a new law where neurodivergent people can't do some types of jobs. Or society as a whole can decide that you are only able to work in IT if you have a very specific and expensive education. &lt;/p&gt;

&lt;p&gt;Diversity of all kinds, whether it's neurological, handedness, race, gender, sexual orientation, or any other form of human variation, is at risk when we see ourselves as "better" than other people. The laws that protect diversity exist because enough people decided they should, and they can disappear just as easily if we stop advocating for them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters for Tech
&lt;/h2&gt;

&lt;p&gt;Cool, but what does all this have to do with technology?&lt;/p&gt;

&lt;p&gt;Well, &lt;strong&gt;everything&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Our industry has complex problems to solve. We need people who think differently, who see different patterns, who bring different experiences to the table. We need the person who asks, "But what if we approached it this way instead?" We need the team member who says, "This design won't work for people like me, and here's why.", or "the way we are advertising our product can be offensive for some people and we will lose this market."&lt;/p&gt;

&lt;p&gt;When we push for diversity in tech, we're building stronger teams that create better solutions for more people. It's not about just checking a box saying "OK, I have a person of color, a trans and an ethnic hire, my company is diverse now."&lt;/p&gt;

&lt;p&gt;I really want you to pause a little and think: how many times have you encountered a product or service that clearly wasn't designed with certain users in mind? The facial recognition that doesn't work for darker skin tones. The voice recognition that stumbles over accents. The websites that are impossible to navigate for people with visual impairments. The lousy sound that annoys neuroatypical people. &lt;/p&gt;

&lt;p&gt;These aren't just minor oversights, &lt;strong&gt;they're failures of imagination and inclusion&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Business Case (If You Ever Need One)
&lt;/h2&gt;

&lt;p&gt;If the moral argument doesn't convince you, consider the practical one: diverse teams make better products and generate more revenue. That is a fact. &lt;/p&gt;

&lt;p&gt;According to McKinsey, companies in the top quartile for racial and ethnic diversity &lt;a href="https://www.mckinsey.com/capabilities/people-and-organizational-performance/our-insights/why-diversity-matters" rel="noopener noreferrer"&gt;are 35% more likely to have financial returns above their respective national industry medians&lt;/a&gt;. Companies with more gender diversity are 15% more likely to outperform their peers.&lt;/p&gt;

&lt;p&gt;This isn't charity, political correctness, or "wokeness": it's good business sense. When your team reflects the diversity of your user base, you build products that work better for more people. You identify potential problems earlier. You discover opportunities others might miss. &lt;/p&gt;

&lt;p&gt;As a personal comment, with only one exception, I only hired minorities my whole life when I needed someone to help me: people of color, women, LGBT, and a white guy. Ironically, the only one who ended up being a challenge wasn’t from a marginalized group. &lt;/p&gt;

&lt;h2&gt;
  
  
  It's Personal, But It's Also Universal
&lt;/h2&gt;

&lt;p&gt;It's important to stress a fact: I'm not comparing my struggles in life with the struggles of persecuted minorities. I'm sharing my personal problems and experiences because it's one small window into a universal truth: human diversity is natural and valuable.&lt;/p&gt;

&lt;p&gt;My left-handedness and neurodivergence are just two dimensions of human diversity. There are countless others, each bringing their own perspectives and strengths to the table.&lt;/p&gt;

&lt;p&gt;When I see pushback against diversity initiatives in tech, I can't help but wonder if the people resisting understand what they're really saying. Do they understand that they can also be part of a struggling community? Do they understand they're arguing against including perspectives that could solve problems they can't even see? Do they realize they're limiting their team's potential by restricting the range of experiences and viewpoints available? &lt;/p&gt;

&lt;p&gt;I understand that I, as a "passable" white person and as a cis-straight human, have privileges that most people today can't even dream of. But I also understand that it's easy to lose some of my privileges. So it makes more sense to me to defend everyone's privilege instead of attacking people who want the minimum things I have.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moving Forward Together
&lt;/h2&gt;

&lt;p&gt;So what can we do, as individuals and as an industry?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Recognize that diversity is a strength, not a checkbox&lt;/strong&gt;: See different perspectives as valuable assets, not obligations or compliance requirements.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Create truly inclusive environments&lt;/strong&gt;: It's not enough to hire diverse teams if those team members don't feel safe sharing their unique perspectives.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Listen to learn, not to respond&lt;/strong&gt;: When someone offers a different perspective, listen with the goal of understanding, not defending the status quo.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Advocate for stronger protections&lt;/strong&gt;: Remember that the rights protecting diversity are recent and fragile. They need active defenders.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Share your own story&lt;/strong&gt;: Your experiences matter. They shape how you see the world and solve problems. Don't hide what makes you different—celebrate it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As for me, I'll keep seeing the world in my slightly different way. I'll keep offering solutions that might not be obvious to others. I'll keep reminding people that what was once considered a deficit—my left-handedness, my neurodivergent mind—has actually been one of my greatest professional assets.&lt;/p&gt;

&lt;p&gt;And I'll keep pushing for a tech environment that doesn't just tolerate diversity but actively seeks it out, nurtures it, and recognizes its immense value.&lt;/p&gt;

&lt;p&gt;Because, in the end, it doesn't make sense to me that we are just a cog in the capitalist machine. We're on the road to building a better world. One where no one has to hide or "fix" what makes them unique.&lt;/p&gt;

&lt;p&gt;What's your story? How has your unique perspective shaped your work in tech? I'd love to hear about it in the comments.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>wecoded</category>
      <category>dei</category>
      <category>career</category>
    </item>
    <item>
      <title>It's so cool to live in the future. I hope we can go back to it</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Sat, 08 Mar 2025 20:13:31 +0000</pubDate>
      <link>https://dev.to/phalkmin/its-so-cool-to-live-in-the-future-i-hope-we-can-go-back-to-it-56b0</link>
      <guid>https://dev.to/phalkmin/its-so-cool-to-live-in-the-future-i-hope-we-can-go-back-to-it-56b0</guid>
      <description>&lt;p&gt;Dear friends, we are old. But we are also special. We from the 80s are the first and only generation to have lived in the past and in the future. We know how the world was before the internet and smartphones. And we know how cool all these innovations really are. Well, I stand corrected: maybe &lt;em&gt;some of us&lt;/em&gt; know how cool living in the future is. &lt;/p&gt;

&lt;p&gt;I remember having to spend hours in the bank to pay some bills. We would have no idea what would happen in the world if we hadn't been watching the news at 8 pm. I remember losing an episode of X-Files and having no way to watch it again. Heck, I remember WATCHING an episode of X-Files and having absolutely no one to discuss how cool the episode was. Before the internet, being "different" - even if by different I'm talking about being nerd - meant that we were lonely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But then, things changed.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;I was able to connect with the world. I could spend hours discussing new episodes of my favorite series, comics, and cartoons. Some of my best friends didn't even live in my city. The first girl that I talked to without feeling anxious wasn't from &lt;strong&gt;my country&lt;/strong&gt;. The first time I heard from someone that I wasn't a nuisance was from people on the internet.  I felt welcomed in a place that didn't exist in the "real" world. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's important to note, as I'm writing to old friends and family, that... It's not your fault that I felt alone, even when I was surrounded by people.  Believe me, even today, it's hard for some teenagers to feel that they are part of society. You all did what you could with the pieces you received. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And it gets crazier. I perfectly remember the feeling that I had when I was able to pay my first bill by just accessing a website and typing a code. I screamed "OH MY GAWD, THE FUTURE IS NOW 🤯🤯🤯🤯🤯" the first time I pointed a cellphone camera to a barcode, the bank app recognized it. It was mind-blowing to keep a device in my pocket and with that device talk to anyone, anywhere. Before the iPhone, my motto was "I just need a cellphone that makes calls and receive texts, anything else is useless" - and, just five years later, I was talking to different people in different apps, sharing photos of where I was, what I was doing, and how I felt by doing that. Small talk, cheap talk, &lt;em&gt;dirty&lt;/em&gt; talk, you name it, technology made it simple and easy. &lt;/p&gt;

&lt;p&gt;A friend of mine summarized it in an interview around 2010: The reporter asked how many hours he spent on the internet, and my friend answered, "lady, I have a smartphone. If I'm awake, I'm on the internet".&lt;/p&gt;

&lt;p&gt;It was the best of times. And then, &lt;strong&gt;something crazy happened&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I won't discuss politics here. Well, at least on this post. But around 2015, I was starting to notice some weird trends: People stopped caring about real connections and valued more opinions and ideologies. At first, the internet was about connecting with shared interests. Over time, it became more about proving a point, being right, or standing with a group.&lt;/p&gt;

&lt;p&gt;I mean, how can I care about your "Happy Birthday" message on Facebook if Facebook itself reminds you that it's my birthday and you &lt;em&gt;have to&lt;/em&gt; send me congrats? Does your message have any value? And how can I truly discuss with you if the facts don't matter, what matters is that someone with millions of followers said something that you think is ok? &lt;/p&gt;

&lt;p&gt;The same technology that made me a citizen of the world without even leaving my country tore society into groups. It was easy to connect, and so it was easy to hate for no reason at all. It was incredibly easy to RSVP to a dinner or a party, but, well, there's ANOTHER party on the same day and hour, and I don't want to miss that, and I also don't want to make you sad by saying that I won't go. So good luck explaining to the restaurant how a reserved table of 20 had 4 people 👍&lt;/p&gt;

&lt;p&gt;And it doesn't stop here: around 2017, I went into the rabbit hole of deep fakes and how the technology was being used to create fake people. We didn't have AI yet - or at least, not so powerful as we have today - but there was a lot of academic discussion around how it could mean bad news. Some friends thought that all that was cool. Then I asked, "How would you feel if you discovered that someone got your photos and your voice and created a fake intimate video of you? Or even worse, created a sex doll with your look and feel and that reacted with your voice? There's no law to this". No one knew how to answer that. Some even argued that it was impossible. &lt;/p&gt;

&lt;p&gt;Incredibly enough, almost 10 years later, creating a fake someone is so easy that it feels criminal. And in most of the civilized world, there are no specific laws around it. I can do anything, create anything, emulate even how someone writes and talks, and that's... OK?&lt;/p&gt;

&lt;p&gt;I may be repeating myself, but it's crazy to think, as I write this, that the same tech that made me feel part of something now makes me feel alone and in danger.&lt;/p&gt;

&lt;p&gt;We don't know if we are talking to a real person. We don't know if we are reading something created by a human. We don't know if a video is real or not. Even worse, it's public and notorious that &lt;a href="https://www.bbc.com/news/world-us-canada-65735769" rel="noopener noreferrer"&gt;AI can create out of the blue&lt;/a&gt; laws, citations, people, or events that didn't happen at all, just to please the user. &lt;/p&gt;

&lt;p&gt;It's a bad episode of X-Files, but in real time. No one has time to discuss these problems because tech bomb us with content tailored to make us feel outraged &lt;strong&gt;every&lt;/strong&gt;. &lt;strong&gt;single&lt;/strong&gt;. &lt;strong&gt;minute&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Being online 24 hours a day isn't cool anymore; it's dangerous.&lt;/p&gt;

&lt;p&gt;So, as the great philosopher John Oliver always says: "What do we do about this?" Do we throw our phones into the ocean and start sending letters like it’s the 1800s? Tempting, but that would make sexting a little inconvenient. &lt;/p&gt;

&lt;p&gt;Tech is something that happens TO us, and WE are the ones who choose how to use it; we just need to... reclaim it. The internet made us feel connected once, and it still can. What if we stopped doomscrolling for a second and actually used tech to strengthen friendships instead of just reacting to whatever nonsense algorithm decides should make us angry today? In 2020, I deleted most of my social accounts, and honestly, I feel fine. A little overweight, but psychologically? Better than ever. &lt;/p&gt;

&lt;p&gt;In the 80's the world acted together trying to fix the ozone layer. Society listened to scientits and forced politicians to do something. Media reported what was happening and the dangers of it. Laws where passed and forced upont the industry. Maybe it's time we have the actual tech be "ozonelayered". &lt;/p&gt;

&lt;p&gt;Maybe we start small. I'm starting to discuss with some people how to actively act to solve this, be it advocating for better tech regulations or offering free digital literacy for underprivileged people. I also deleted my social media presence on platforms that I don't feel align with my beliefs. &lt;/p&gt;

&lt;p&gt;Maybe we don’t need to be online 24/7, but instead, use tech to truly connect with someone — like we did in the early days of the internet, when finding a new friend across the world felt like magic. &lt;/p&gt;

&lt;p&gt;I still believe in that "OH MY GAWD, WE ARE LIVING IN THE FUTURE 🤩" feeling. I believe in humanity and in the strength that we have to push things in a better way. The future is still ours to shape, assuming that we can stop asking ChatGPT how to shape our future. &lt;/p&gt;

</description>
      <category>futurechallenge</category>
    </item>
    <item>
      <title>How learning about the art of sushi made me a better dev</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Tue, 25 Feb 2025 18:32:03 +0000</pubDate>
      <link>https://dev.to/phalkmin/how-learning-about-the-art-of-sushi-made-me-a-better-dev-700</link>
      <guid>https://dev.to/phalkmin/how-learning-about-the-art-of-sushi-made-me-a-better-dev-700</guid>
      <description>&lt;p&gt;Alright, let's talk about something that's been bothering me for years. But first, let me "tedlassoing" a little, where I tell you a personal history that makes you relate to what will be discussed in the text:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A few years ago, I was hired to develop an ecommerce site for an agency, as a 3rd party developer. Being just someone who had to be physically there for REASONS, I couldn't exactly interact with the existing developers, but I could listen to some of the conversations between them and their manager. One of the devs had to create a huge project for a museum, but instead of focusing on what he needed to do, we spent most of the time searching for the perfect PHP framework: this is 0.1 seconds faster, this is easier to maintain, this has more functions, etc. &lt;br&gt;
Turns out, the delivery day came and the code had nearly started: No responsiveness, no admin panel, code had more bugs than features, etc. I had to stop what I was doing and help, and at a certain point, we just decided to move everything to WordPress instead of reinventing the wheel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The tech industry has a serious problem with chasing shiny objects. Most of the time, we're like toddlers in a toy store, grabbing at every new framework, language, or tool that appears, then tossing it aside for the next cool thing. And frankly, it's exhausting. Just check the dev homepage, everyone is &lt;em&gt;crafting&lt;/em&gt; AI content trying to sell the "next big thing" that will make developing easier, faster, stronger.&lt;/p&gt;

&lt;p&gt;But... think about it: how many JavaScript frameworks have been declared "the future" in the past decade? How many times have you heard "This will replace traditional programming" only to see that technology fade into obscurity? How many npm/python libraries have been widely used in the past and right now are abandoned (but still being used in production, without a way to maintain it)? &lt;/p&gt;

&lt;p&gt;And, crazily enough, we keep falling for this behaviour, over and over again.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cult of New vs. The Art of Mastery
&lt;/h2&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%2F843ir7xthzzi2haoiuxv.jpeg" 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%2F843ir7xthzzi2haoiuxv.jpeg" alt="Image description" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few years ago, I watched a documentary called "Jiro Dreams of Sushi."  If you haven't seen it, stop reading this right now, go watch it, and come back. Seriously, I'll wait. I believe it's available on Netflix.&lt;/p&gt;




&lt;p&gt;Back? Good. So, &lt;em&gt;Jiro Ono&lt;/em&gt;, this 85-year-old sushi master, has spent over 70 YEARS making sushi. Not exploring different cuisine types, not branching out into ramen or tempura or whatever else was trending in Tokyo's food scene. &lt;/p&gt;

&lt;p&gt;Just &lt;strong&gt;sushi&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Every. &lt;/p&gt;

&lt;p&gt;Single.&lt;/p&gt;

&lt;p&gt;Day.&lt;/p&gt;

&lt;p&gt;And you know what? His tiny restaurant in a subway station earned three Michelin stars. That's the cooking world's equivalent of creating the new Facebook or Tik Tok.&lt;/p&gt;

&lt;p&gt;The Japanese have a word for this: &lt;strong&gt;&lt;em&gt;shokunin&lt;/em&gt;&lt;/strong&gt;. It's often translated as "craftsman" or "artisan," but it goes deeper than that. A shokunin isn't just someone with technical skills; it's someone with an attitude and social consciousness about their craft. They have a spiritual and material obligation to work at their absolute best for the welfare of others. It's the belief that if you devote yourself to what you do best, you will reach perfection someday. Or not. It doesn't matter, really.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Industry's Anti-Shokunin Problem
&lt;/h2&gt;

&lt;p&gt;The tech industry is practically built on the opposite philosophy. We celebrate those who jump from one technology to the next. We worship at the altar of disruption. Our Linkedin profiles are stuffed with every buzzword and technology we've dabbled in, trying to cast the widest possible net.&lt;/p&gt;

&lt;p&gt;But... what if we're doing it all wrong?&lt;/p&gt;

&lt;p&gt;Let's look at some of the true giants in our field:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linus Torvalds has been working on the Linux kernel for over 30 years.&lt;/li&gt;
&lt;li&gt;Grace Hopper spent decades on the same programming languages and compilers.&lt;/li&gt;
&lt;li&gt;Guido van Rossum - The creator and "Benevolent Dictator for Life" of Python for over 30 years&lt;/li&gt;
&lt;li&gt;Brendan Eich - Created JavaScript in 10 days in 1995, but then spent decades refining it and working on browser technologies&lt;/li&gt;
&lt;li&gt;Larry Wall - Maintained and evolved Perl for over 30 years, staying committed to his creation&lt;/li&gt;
&lt;li&gt;Richard Stallman - Devoted his entire adult life to the GNU project and free software movement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't people who chase every new trend. They're people who went deep instead of wide. They mastered their craft with the patience and dedication of a shokunin. To them, there's no "do better with a new tool every week", there's "do better".&lt;/p&gt;

&lt;h2&gt;
  
  
  The Very Real Cost of Tech FOMO
&lt;/h2&gt;

&lt;p&gt;Coding is like cooking. As an amateur in the kitchen, I can confirm this. You need to understand what you doing and for what purpose. You need to prepare ingredients in advance. You need to think about the user restrictions when preparing the meal. Is your user allergic to something? Avoid this ingredient. Is your user disabled or colorblind? Avoid using some elements or colors while creating the front end. &lt;/p&gt;

&lt;p&gt;And here is where things get even more complex. Imagine that every week you, instead of learning how to use the knife, &lt;strong&gt;buy a new knife&lt;/strong&gt;.  Instead of learning how to use salt and pepper, buy a different brand of spices. This constant jumping between technologies and tools isn't just exhausting—it has very real costs for you:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Perpetual Beginner Syndrome&lt;/strong&gt; — You don't progress beyond the basics in anything&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shallow Solutions&lt;/strong&gt; — You solve problems with surface-level understanding&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Technical Debt&lt;/strong&gt; — Your projects become a patchwork of half-understood technologies that &lt;strong&gt;will&lt;/strong&gt; bite you in the ass sooner or later&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Burnout&lt;/strong&gt; — Constantly learning new things is mentally draining&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Imposter Syndrome&lt;/strong&gt; — You feel like you're always behind, always catching up&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And for what, exactly? So you can say you've "worked with" the latest framework that will be obsolete in 18 months?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Path of the Tech Shokunin
&lt;/h2&gt;

&lt;p&gt;I'm not saying you should never learn anything new. That would be ridiculous. But what if, and hear me out, because this may sound crazy, but trust me: what if, instead of trying to learn every new technology, you focused on mastering a core set of skills?&lt;/p&gt;

&lt;p&gt;Here's what that might look like:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Choose Your Craft&lt;/strong&gt; — Pick an area that genuinely excites you. Backend systems? Frontend experiences? Data science? Security?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Master the Fundamentals&lt;/strong&gt; — Go deep on the underlying principles. If it's web development, truly understand HTTP, browser rendering, and JavaScript engines. Don't just rely on buzzwords, understand what is being created.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Embrace the Plateau&lt;/strong&gt; — There will be times when you feel like you're not making progress. This is where most people jump to something new. Don't. Push through. The plateau is the place where you understand how much you need to prepare before reaching the top&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Share Your Knowledge&lt;/strong&gt; — Teaching forces you to solidify your understanding and exposes gaps.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For me, it was backend development and WordPress. I dove deep into PHP, databases, performance optimization, and system architecture. And you know what? Despite PHP being "uncool" for most of my career, the depth of knowledge has been more valuable than if I'd chased every trending language. WordPress is my breadwinner tool. Not because I think this is the best tool available, but because I &lt;strong&gt;understand&lt;/strong&gt; how to use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where being a Shokunin really shines
&lt;/h2&gt;

&lt;p&gt;The beautiful thing about the shokunin approach is that true mastery gives you superpowers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can solve problems others can't even identify&lt;/li&gt;
&lt;li&gt;You develop an intuition for your domain&lt;/li&gt;
&lt;li&gt;Your solutions are elegant, not just functional&lt;/li&gt;
&lt;li&gt;You understand the "why" behind the "how"&lt;/li&gt;
&lt;li&gt;You make fewer mistakes and recover from them faster&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And perhaps most importantly: &lt;strong&gt;you build a reputation in your domain&lt;/strong&gt;. Not a Linkedin reputation, that accepts anything without proof. &lt;strong&gt;Real&lt;/strong&gt; reputation.  &lt;/p&gt;

&lt;p&gt;In a world of jacks-of-all-trades, the master of one becomes indispensable.&lt;/p&gt;

&lt;h2&gt;
  
  
  "But What About Staying Relevant?"
&lt;/h2&gt;

&lt;p&gt;I can hear you now: "Bro, if I don't learn the latest technologies, I'll become obsolete. AI is coming and all I can hear and read is how it's going to be better than me 🥺"&lt;/p&gt;

&lt;p&gt;Will you really become obsolete, though? Let's think about it. &lt;/p&gt;

&lt;p&gt;The fundamentals of our field change much more slowly than the tools and frameworks. The principles of good software design, efficient algorithms, clean code, and user experience have remained relatively stable.&lt;/p&gt;

&lt;p&gt;Someone who deeply understands these fundamentals can pick up new tools when needed because they understand the problems these tools are trying to solve. They don't learn React just to learn React; they learn it because they understand the problems it addresses in UI development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding Your Shokunin Path
&lt;/h2&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%2Fgymtb2o31qq4lnh98plv.jpg" 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%2Fgymtb2o31qq4lnh98plv.jpg" alt="Image description" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So how do you apply this to your career? Some ideas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Identify what truly interests you&lt;/strong&gt; — What technical problems make you lose track of time?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Go deep, not wide&lt;/strong&gt; — Focus on becoming exceptional at one thing before branching out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Be patient&lt;/strong&gt; — Mastery takes time. Jiro has been making sushi for 70 years and still doesn't think he's achieved perfection.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Develop your own standards&lt;/strong&gt; — Don't be satisfied with "good enough." Push yourself to improve bit by bit every day.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Find your community&lt;/strong&gt; — Connect with others who share your passion for depth over breadth.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Time to Choose is Now
&lt;/h2&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%2Fb8zn61zbaufy1lguhqpx.jpg" 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%2Fb8zn61zbaufy1lguhqpx.jpg" alt="Just a japanese elder making sushi" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Look, I get it. It's scary to commit to one path when there are so many options. It feels like you're closing doors.&lt;/p&gt;

&lt;p&gt;But here's the truth: mastery opens more doors than it closes. The depth of your knowledge becomes your superpower, your unique value proposition in an industry full of surface-level expertise.&lt;/p&gt;

&lt;p&gt;So, what's it going to be? Will you continue jumping from one technology to the next, forever chasing the newest shiny object? Or will you choose the path of the shokunin, committing to the patient, dedicated pursuit of mastery?&lt;/p&gt;

&lt;p&gt;As for me, I'm with Jiro: "I'll continue to climb, trying to reach the top, but no one knows where the top is." &lt;/p&gt;

&lt;p&gt;Now, what about we aim to leave a legacy of skill and a life of worth? What will you do today to inch closer to being the best in the world at what you do?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>watercooler</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Sometimes Your Home Server Needs More Power</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Mon, 17 Feb 2025 18:28:28 +0000</pubDate>
      <link>https://dev.to/phalkmin/sometimes-your-home-server-needs-more-power-1cl8</link>
      <guid>https://dev.to/phalkmin/sometimes-your-home-server-needs-more-power-1cl8</guid>
      <description>&lt;p&gt;Almost a year ago, I wrote about &lt;a href="https://dev.to/phalkmin/why-you-should-have-a-home-server-34i4"&gt;why you should have a Home Server to call your own&lt;/a&gt;. Well, funny story - my wife laughed a lot seeing the credit card bills - turns out I may have underestimated how addictive and freeing self-hosting can be. &lt;/p&gt;

&lt;p&gt;That Raspberry Pi 4 setup I mentioned? It was great... until it wasn't. There were a lot of problems with it from the beginning, problems that I decided to ignore until it started biting my beautiful and molded by the god's ass. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Path to Po-po-powah!!!! - or "Why I Needed More"
&lt;/h2&gt;

&lt;p&gt;My journey with the Raspberry Pi started simple enough - some file sharing here and there, a few Docker containers, and maybe a Plex server for my &lt;em&gt;totally legitimate&lt;/em&gt; media collection. But like any good tech project, things escalated quickly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The RPi4 doesn't have native Sata connections. So, I had to use a USB connection to plug into an external storage that was able to hold 5 HDDs of high capacity. It worked, until I noticed that simple things like moving large files took ages. Watching 4k movies stored in external HDDs requires lots of patience. Create and access dockerized apps on external disks? It's a gamble. Also, in case of a blackout, even for a few minutes, could mean hours trying to make the RPi recognize the disks correctly, or even not recognizing them at all. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PhotoPrism started choking while trying to index my 2 decades' worth of memes and photos. At some point, I just decided to stop PhotoPrism container from even initializing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Docker containers began fighting for that precious 8 GB of RAM, and decoding even some 1080p videos with more "unorthodox" codex proved a challenge. I could hear the Pi begging for mercy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;My "just one more container" addiction may have gotten seriously out of hand.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And let's not even talk about that time I tried to run an AI environment alongside everything else. The poor Pi was doing its best, but even with the simplest LLM model, it was like asking a bicycle to compete in an F1 race.&lt;/p&gt;

&lt;h2&gt;
  
  
  More Power to the People (Well, Just Me Actually)
&lt;/h2&gt;

&lt;p&gt;Here's a little trivia about me: I'm totally against the concept of "the pricier, the better". I want things that solve problems for me, at the best price possible, and with the minimum workaround possible. You can say "just buy a rack, a lot of high-end mini pcs, a router, and stuff everything in there", but that doesn't work for me. Buying a huge and heavy "gaming" case won't work either. I wanted something that could be powerful enough, and easier to apply upgrades compared to RPi, but I wanted a small server, something that I could leave in small places. After &lt;strong&gt;much&lt;/strong&gt; research and maybe a little too much time on Reddit, I built my new server with a Jonsbo N4 case and a relatively powerful motherboard/processor. The N4 case would allow me to use 6 HDDs and 2 SSDs, and I'm not even counting the two NVME slots in the motherboard. With this, I could have: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A proper CPU that doesn't scream like a maniac when I try to decode a 4k movie at the same time my wife uploads some documents. &lt;/li&gt;
&lt;li&gt;Enough RAM to handle my growing collection of Docker containers&lt;/li&gt;
&lt;li&gt;Fast storage that doesn't make me wait ages for my files&lt;/li&gt;
&lt;li&gt;The ability to run an AI assistant without everything grinding to a halt&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Real Benefits are the friends we make along the way
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Development Environment Heaven
&lt;/h3&gt;

&lt;p&gt;Remember when I said you could use a home server for development? Well, now I can run multiple environments simultaneously without breaking a sweat. Node.js here, PHP there, and maybe a Python project just for fun - all running at the same time without fighting for resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  Media Management That Actually Works
&lt;/h3&gt;

&lt;p&gt;PhotoPrism now indexes my photos in minutes instead of days. &lt;br&gt;
Plex and Jellyfing transcoding happens in real-time, and the processor doesn't even reach 50% of usage. Running *arr (you know what I'm talking about 😉) alongside everything else is smooth as butter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Docker Dreams
&lt;/h3&gt;

&lt;p&gt;As my uncle Benjamin once said: With more power comes more... containers. I can now run all the services I want without constantly checking resource usage. My Docker Compose file has grown from a few essential services to a small novel, and the new server handles it like a champ.&lt;/p&gt;

&lt;h3&gt;
  
  
  Virtual Machine Versatility
&lt;/h3&gt;

&lt;p&gt;Let's say I want to test some new app, at the same time I don't want it to have access to my production environment. I can just run a VM. Do I need to run Windows for a very specific scenario? Another VM. The power to run multiple virtual machines alongside everything else is game-changing.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Real Network
&lt;/h3&gt;

&lt;p&gt;Obviously, I didn't throw away my old RPi. It's still running, but this time with only critical and lesser power-consuming apps. Nginx Proxy Manager, Pi-Hole, etc. are contained there, so I can better distribute things between the servers. And, if for some reason I need to turn off the new server, those services will still work. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Unexpected Benefits
&lt;/h2&gt;

&lt;p&gt;Here's something I didn't anticipate - having a more powerful server actually changed how I work. Now I have a not-so-powerful-but-at-least-workable AI assistant to deal with some minor tasks (the new server doesn't have a video card - yet - but DeepSeek runs fine on it). The initial setup was tough, but the maintenance is easier than trying to extract maximum power and handle external resources from an RPi.&lt;/p&gt;

&lt;p&gt;Also, a new and more powerful server made me rethink how much I'm willing to keep online. In a world where you can't be entirely sure that your files won't be used to train some corporate AI without your knowledge, it's good to start moving things in-house. My media and documents are secure. &lt;/p&gt;

&lt;h2&gt;
  
  
  But What About Power Consumption?
&lt;/h2&gt;

&lt;p&gt;I know what you're thinking - "But Paulo, what about that part in your previous article about energy efficiency?" Yes, the new server uses more power than the Pi. But here's the thing: the efficiency per task is actually better. Instead of running multiple devices (like separate NAS, development machine, etc.), everything is consolidated into one system that's properly optimized. Plus, modern CPUs are surprisingly efficient at idle, and with proper power management, the system only uses what it needs. I've been using the new server for a few weeks and my bills didn't even felt it. &lt;/p&gt;

&lt;h2&gt;
  
  
  Should You Upgrade Too?
&lt;/h2&gt;

&lt;p&gt;Well, that depends. Are you: Constantly running into resource limitations? Finding yourself wanting to run more services? Needing more processing power for specific tasks? Tired of managing multiple devices for different purposes?&lt;/p&gt;

&lt;p&gt;If you answered yes to any of these, then maybe it's time to consider having a Home Server. But remember - start small (like I did), understand your needs, and scale up accordingly. Don't go building a data center in your closet just because you can.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remember: it's yours, and it should be fun to maintain
&lt;/h2&gt;

&lt;p&gt;Having two servers in my network brought me an unexpected challenge. I was OK naming the RPi as just "RaspPaulo", but I didn't feel like naming the new server as "NASPaulo". It seemed wrong and dumb. I wanted cool and funny names to use when trying to connect to them, or explaining to my wife where she should save things. So I did what every sane person would do after setting up a new server for hours on a weekend: asked ChatGPT, Claude, and Gemini for cool names.&lt;/p&gt;

&lt;p&gt;And let me be honest: I don't know who's the guy behind the Gemini pun generation, but he deserves a HUGE raise. After laughing for hours with my wife at the ideas, we came up with really cool names for the servers. Enter NASumaki, the powerful ninja of the hidden village server, and PikaPi, the small but powerful server!&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%2Fg71wtwvfmax6516sj3a8.jpg" 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%2Fg71wtwvfmax6516sj3a8.jpg" alt="AI can be cool" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Upgrading from a single Raspberry Pi to NASumaki wasn't just about getting more power - it was about enabling new possibilities. It's made me more productive, allowed me to learn new things, and yes, maybe slightly obsessed with monitoring system resources (but we don't talk about that - never).&lt;/p&gt;

&lt;p&gt;Remember what I said in my previous article about home servers being your personal Jarvis? Well, NASumaki is like getting the Mark 85 suit instead of the Mark 1. Same concept, just way more powerful and versatile.&lt;/p&gt;

&lt;p&gt;Have you upgraded your home server setup? Or are you thinking about it? Let me know in the comments - I'd love to hear about your homelab journey!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>linux</category>
    </item>
    <item>
      <title>Retro’ing and Debugging 2024</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Sun, 02 Feb 2025 20:16:45 +0000</pubDate>
      <link>https://dev.to/phalkmin/retroing-and-debugging-2024-4a7l</link>
      <guid>https://dev.to/phalkmin/retroing-and-debugging-2024-4a7l</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/newyear"&gt;2025 New Year Writing challenge&lt;/a&gt;: Retro’ing and Debugging 2024.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By Arceus, what a year!&lt;/p&gt;

&lt;p&gt;At the beginning of 2024, I was at a crossroads: what do I do with my professional life? After 20 years of IT work, I didn't know exactly where to go or what to do, which was piling up my anxieties. I already knew the DEV site and one day &lt;a href="https://dev.to/phalkmin/what-to-do-in-tech-after-20-years-dbb"&gt;I decided to write about it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's not one of my best posts, nor is a great content, but what I thought would be received with aggressivity and bad opinions was actually well received. For the first time in years, the passion for writing that I had woke up inside of me.&lt;/p&gt;

&lt;p&gt;Then, I wrote about the &lt;a href="https://dev.to/phalkmin/why-you-should-have-a-home-server-34i4"&gt;pros and cons of having a home server&lt;/a&gt;, which got really nice reviews and comments! I was on fire, writing here, writing on Medium, creating posts on Linkedin, and even creating a &lt;a href="https://wordpress.org/plugins/automated-blog-content-creator/#description" rel="noopener noreferrer"&gt;WordPress plugin that automatically creates AI content-generated posts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Heck, I was on fire, joining a lot of different DEV challenges, and even &lt;a href="https://dev.to/phalkmin/meet-auty-a-bot-designed-to-support-and-guide-autistic-individuals-on-coze-l5f"&gt;winning one in April&lt;/a&gt;! I even joined the mentor program of DEV to help some juniors in May! It was a crazy start to the year! &lt;/p&gt;

&lt;p&gt;But then, LIFE happened. &lt;/p&gt;

&lt;p&gt;I won't enter into details, but in the same way that DEV had to cut some personal staff mid-year, I also lost a bunch of revenue and clients in June, &lt;strong&gt;and&lt;/strong&gt; had to deal with one of my cat's disease, which led to her passing away in November. So, again, a lot of professional and personal challenges got in the way of what I like to do: write and create things.&lt;/p&gt;

&lt;p&gt;This doesn't mean that I stopped working with what I like. I still do a lot of AI-related work that is different from what I did in the past, and WAY more challenging. I just... stopped making things for fun. Which is OK. &lt;/p&gt;

&lt;p&gt;For my achievements, I got almost 15k followers on DEV. Won a contest. Got to know a bunch of cool people in this community, as colleagues, as a mentor, and as a student. Also, learned how to cook different things, but I don't know if it matters 🤔 &lt;/p&gt;

&lt;p&gt;For the lessons learned: it's never too late to do what you love or to make what you do more for a living in sync with what you love. After my burnout in 2019, I believed I was finished. Now I know that I was just tired.&lt;/p&gt;

&lt;p&gt;For what I want in 2025... Well, that's another history, for another post. &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>newyearchallenge</category>
      <category>career</category>
    </item>
    <item>
      <title>Do you have a "Wait, that can't be right..." moment?</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Fri, 03 May 2024 13:42:57 +0000</pubDate>
      <link>https://dev.to/phalkmin/do-you-have-a-wait-that-cant-be-right-moment-49k8</link>
      <guid>https://dev.to/phalkmin/do-you-have-a-wait-that-cant-be-right-moment-49k8</guid>
      <description>&lt;p&gt;Recently, we had the &lt;a href="https://dev.to/sebastianccc/the-xz-attack-and-timeline-35ch"&gt;XZ backdoor&lt;/a&gt;, discovered by sheer luck and nerdiness determination, as a dev started noticing an unexpected delay on SSH connections.&lt;/p&gt;

&lt;p&gt;Yesterday, a new bug was discovered, again by the fact that someone simply noticed an odd behavior and decided to test further. In specific SQLite versions, if you tried to CREATE TABLE where the table name started with a number, the operation &lt;a href="https://sqlite.org/forum/forumpost/837fcd8489"&gt;would take &lt;strong&gt;at least&lt;/strong&gt; 1000x times longer than expected&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, everyone who works in IT has a similar story. I have lots of these, like the time I discovered an unhappy colleague was stealing confidential documents from the company, as I  noticed the download/upload rate was strangely low and then stayed the whole morning looking at the network output of the proxy server via SSH.&lt;/p&gt;

&lt;p&gt;Those stories where someone couldn't let an odd situation slip and then discovered a huge problem always amazed me. What's yours?&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>discuss</category>
    </item>
    <item>
      <title>InfogrAIphify - a Coze workflow</title>
      <dc:creator>Paulo Henrique</dc:creator>
      <pubDate>Fri, 26 Apr 2024 19:04:36 +0000</pubDate>
      <link>https://dev.to/phalkmin/infograiphify-a-coze-workflow-1k39</link>
      <guid>https://dev.to/phalkmin/infograiphify-a-coze-workflow-1k39</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/devteam/join-us-for-the-coze-ai-bot-challenge-3000-in-prizes-4dp"&gt;Coze AI Bot Challenge&lt;/a&gt;: Trailblazer.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;So, InfogrAIphify is a minor side-project I'm working on, intending to turn any article available on the internet into an infographic or a "tl:dr;" image. This is the third version, as the first is a &lt;a href="https://github.com/phalkmin/InfogrAIphify"&gt;single Python script&lt;/a&gt;, the second one is on &lt;a href="https://dev.to/phalkmin/infograiphify-create-infographics-from-articles-5hhb"&gt;Cloudflare Pages&lt;/a&gt;, and this one is on Coze, but ALSO Telegram and Discord!&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;You can &lt;a href="https://www.coze.com/store/bot/7362215659595481094?panel=1&amp;amp;bid=6cavkmvrc7g05"&gt;check on Coze&lt;/a&gt;, but if you really want to use it, add the bot to &lt;a href="https://t.me/InfogrAIphifybot"&gt;Telegram&lt;/a&gt; or &lt;a href="https://discord.com/api/oauth2/authorize?client_id=1233484765517316230&amp;amp;permissions=8797166831616&amp;amp;scope=bot"&gt;Discord&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnl5vhd73ygm84towr83a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnl5vhd73ygm84towr83a.png" alt="prompt" width="800" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fukz8c1stzcp9wyz00e05.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fukz8c1stzcp9wyz00e05.png" alt="workflow" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm2l71xjxyljl0wz9l6qy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm2l71xjxyljl0wz9l6qy.png" alt="telegram1" width="800" height="764"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frt4e6jd1r1v15j8ib2ig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frt4e6jd1r1v15j8ib2ig.png" alt="telegram2" width="800" height="1012"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;Creating a full plugin seemed overcomplicated because of how much Coze allows me to do, (documentation is kinda simplified for plugins, and the discord channel had some people with the same questions I had, so I knew it would be too much work :P ) so instead I made it using a &lt;strong&gt;Workflow&lt;/strong&gt; that crawls a page, scans for the content, and from it creates a prompt for DallE, and then returns the image.&lt;/p&gt;

&lt;p&gt;Creating a workflow is simple: select the plugins/components you want to use, connect everything, and fill out the forms. Then test until it works as you intended 🥷🏽 &lt;/p&gt;

&lt;p&gt;Can I make it better? Yeah, add style choices, better prompts, etc. &lt;/p&gt;

</description>
      <category>cozechallenge</category>
      <category>devechallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
