<?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: Naing Oo</title>
    <description>The latest articles on DEV Community by Naing Oo (@n92).</description>
    <link>https://dev.to/n92</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%2F3733995%2Fcfd75438-af84-4b87-8849-9512e808fb6e.png</url>
      <title>DEV Community: Naing Oo</title>
      <link>https://dev.to/n92</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/n92"/>
    <language>en</language>
    <item>
      <title>How many of you agree with this?</title>
      <dc:creator>Naing Oo</dc:creator>
      <pubDate>Fri, 10 Apr 2026 05:38:53 +0000</pubDate>
      <link>https://dev.to/n92/how-many-of-you-agree-with-this-218c</link>
      <guid>https://dev.to/n92/how-many-of-you-agree-with-this-218c</guid>
      <description>&lt;p&gt;7 days ago, Garrett Rose posted a video of his struggles in getting hired as a SWE. It is a really sincere video where he clearly articulated what many in the industry are facing currently. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The threat of being replaced by AI&lt;/li&gt;
&lt;li&gt;Scam job posts&lt;/li&gt;
&lt;li&gt;Companies bullying the candidate with at least 4 rounds of interviews followed by a ridiculous technical test. &lt;/li&gt;
&lt;li&gt;Ghosting
and much more. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check it out and let us kick off this discussion because sooner or later, it is going to affect you and me. &lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Silent Flames</title>
      <dc:creator>Naing Oo</dc:creator>
      <pubDate>Wed, 25 Mar 2026 00:44:12 +0000</pubDate>
      <link>https://dev.to/n92/silent-flames-48k2</link>
      <guid>https://dev.to/n92/silent-flames-48k2</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/wecoded-2026"&gt;2026 WeCoded Challenge&lt;/a&gt;: Frontend Art&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Art
&lt;/h2&gt;

&lt;p&gt;&lt;a href="http://uniktek.me/silent-flames/" rel="noopener noreferrer"&gt;Silent Flames - For the voices behind the shadows&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inspiration
&lt;/h2&gt;

&lt;p&gt;Silent Flames was inspired by the millions of women — mothers, wives, caregivers — whose daily sacrifices form the invisible foundation of the world around them. They iron the shirts behind the promotions, stay awake so others can rest, and choose silence over applause — not because they are lesser, but because they are the architecture of someone else's sky.&lt;/p&gt;

&lt;p&gt;The meaning I hope to convey is simple: recognition. Not with grand gestures, but with the same quiet sincerity these women bring to everything they do. You are the silent flame — and the world is warm because of you.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/n-92/silent-flames" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wecoded</category>
      <category>devchallenge</category>
      <category>frontend</category>
      <category>css</category>
    </item>
    <item>
      <title>AnimateLI5: Animation Software for a 5 year old</title>
      <dc:creator>Naing Oo</dc:creator>
      <pubDate>Tue, 24 Mar 2026 20:02:04 +0000</pubDate>
      <link>https://dev.to/n92/animateli5-animation-software-for-a-5-year-old-280o</link>
      <guid>https://dev.to/n92/animateli5-animation-software-for-a-5-year-old-280o</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;My niece wanted to make animations. I tried a dozen apps — they all had tiny buttons, complex menus, text-heavy interfaces, and features designed for adults. A 5-year-old shouldn't need to read a tooltip to draw a star.&lt;/p&gt;

&lt;p&gt;So I built one from scratch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meet AnimateLI5
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AnimateLI5&lt;/strong&gt; (Animate Like I'm 5) is a free, open-source Windows desktop app that lets very young children create frame-by-frame animations.&lt;/p&gt;

&lt;p&gt;The design philosophy is simple: &lt;strong&gt;if a child can't figure it out in 5 seconds, it's too complicated.&lt;/strong&gt;&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%2F90yrfu5dlbxbzfuo93x4.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%2F90yrfu5dlbxbzfuo93x4.png" alt="AnimateLI5 Interface" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  No Reading Required
&lt;/h3&gt;

&lt;p&gt;Every single feature works through icons, colors, and spatial cues. There are no menus to navigate, no dialogs to read, no settings to configure. Just big colorful buttons that do obvious things.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Can Kids Do With It?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Draw shapes&lt;/strong&gt; — tap a shape button, tap the canvas. 10+ shapes including stars, triangles, and hexagons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freehand drawing&lt;/strong&gt; — brush tool with adjustable size and 9 color choices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Move, resize, rotate&lt;/strong&gt; — drag handles on any element&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Erase mistakes&lt;/strong&gt; — circle eraser removes elements under the cursor&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build animations&lt;/strong&gt; — add frames, duplicate frames, reorder them in a visual timeline strip&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch it play&lt;/strong&gt; — hit the big green play button, adjust speed from 1–30 FPS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Import stickers&lt;/strong&gt; — drag &amp;amp; drop any image as a stamp&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Undo everything&lt;/strong&gt; — every action is undoable, because kids experiment fearlessly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export to video&lt;/strong&gt; — render to MP4 with a progress bar&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Framework&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;WPF on .NET 8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Language&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;C# 12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MVVM with CommunityToolkit.Mvvm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Microsoft.Extensions.DependencyInjection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Video Export&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ffmpeg (external)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tests&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;xUnit&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Architecture Decisions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why WPF in 2026?
&lt;/h3&gt;

&lt;p&gt;I know, I know. But for a Windows-only kids tool:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hardware-accelerated vector rendering out of the box&lt;/li&gt;
&lt;li&gt;Mature data binding (MVVM just works)&lt;/li&gt;
&lt;li&gt;Rich input handling (mouse, touch, stylus)&lt;/li&gt;
&lt;li&gt;Single self-contained EXE — no browser, no Electron, no 200MB runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why MVVM with Source Generators?
&lt;/h3&gt;

&lt;p&gt;CommunityToolkit.Mvvm's source generators eliminate boilerplate. Instead of 15 lines of &lt;code&gt;INotifyPropertyChanged&lt;/code&gt; plumbing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ObservableProperty&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;_selectedColor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"#FF4081"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;RelayCommand&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;SelectColor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;SelectedColor&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two attributes. Done. The generator handles the rest.&lt;/p&gt;

&lt;h3&gt;
  
  
  Plugin System
&lt;/h3&gt;

&lt;p&gt;The solution is split into 3 projects:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SimpleAnimate.Core    → Models, interfaces, services (zero WPF refs)
SimpleAnimate.Plugins → IPlugin contract + loader
SimpleAnimate         → Thin WPF shell
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Plugins reference only Core and implement &lt;code&gt;IPlugin.Configure(IServiceCollection)&lt;/code&gt;. Drop a DLL in the &lt;code&gt;plugins/&lt;/code&gt; folder and it's loaded at startup. This keeps the door open for community extensions without touching the main app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Undo Everything
&lt;/h3&gt;

&lt;p&gt;Every canvas mutation creates an &lt;code&gt;IUndoableAction&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;MoveAction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;element&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;oldX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;oldY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newX&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;newY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="n"&gt;_undoService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// Ctrl+Z → action.Undo() restores the old position&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Classic dual-stack (undo/redo). Kids mash buttons — undo must always be there.&lt;/p&gt;

&lt;h2&gt;
  
  
  UX Decisions Worth Noting
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Color, not text&lt;/strong&gt; — the toolbar uses colored backgrounds to group tools. Shapes are on colored buttons matching the app's palette. No labels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frame timeline is visual&lt;/strong&gt; — frame thumbnails at the bottom, not a number list. Tap to edit, big + button to add.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FPS control is just ➖ and ➕&lt;/strong&gt; — no slider, no textbox. Minus and plus buttons with a number between them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Video Export
&lt;/h2&gt;

&lt;p&gt;Export renders each frame to PNG via WPF's &lt;code&gt;RenderTargetBitmap&lt;/code&gt;, then pipes them through ffmpeg to produce an MP4. A progress window shows real-time status by parsing ffmpeg's &lt;code&gt;frame=N&lt;/code&gt; output with regex.&lt;/p&gt;

&lt;p&gt;The app auto-discovers ffmpeg from PATH or common install locations. No ffmpeg? Everything else still works — you just can't export video.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Download:&lt;/strong&gt; &lt;a href="https://github.com/n-92/AnimateLI5/releases/tag/v1.0.0" rel="noopener noreferrer"&gt;AnimateLI5 v1.0.0&lt;/a&gt; (Windows, 64-bit, self-contained — no .NET install needed)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; &lt;a href="https://github.com/n-92/AnimateLI5" rel="noopener noreferrer"&gt;github.com/n-92/AnimateLI5&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo Video:&lt;/strong&gt; &lt;a href="https://youtu.be/fbgR41_aDBQ" rel="noopener noreferrer"&gt;Watch on YouTube&lt;/a&gt;&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Designing for kids is harder than designing for developers.&lt;/strong&gt; You can't fall back on text, tooltips, or documentation. Every affordance must be visual and immediate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Undo isn't optional — it's the most important feature.&lt;/strong&gt; Kids explore by clicking everything. Without undo, one wrong click means tears.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;WPF is still perfectly fine for desktop tools.&lt;/strong&gt; The ecosystem is mature, the tooling works, and a self-contained single-file publish produces a clean distributable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Source generators changed C# MVVM.&lt;/strong&gt; CommunityToolkit.Mvvm eliminates the tedium that made MVVM feel heavy. Two attributes replace dozens of boilerplate lines.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;AnimateLI5 is MIT licensed. Contributions welcome — especially if you have ideas for making it even simpler.&lt;/p&gt;

&lt;p&gt;If you've got a young kid who likes to draw and animate, give it a try and let me know how it goes. 🎨&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>dotnet</category>
      <category>animation</category>
    </item>
    <item>
      <title>Nanoshot has officially replaced Greenshot on my PC</title>
      <dc:creator>Naing Oo</dc:creator>
      <pubDate>Thu, 19 Mar 2026 02:22:50 +0000</pubDate>
      <link>https://dev.to/n92/nanoshot-has-officially-replaced-greenshot-on-my-pc-5a49</link>
      <guid>https://dev.to/n92/nanoshot-has-officially-replaced-greenshot-on-my-pc-5a49</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/wecoded-2026"&gt;2026 WeCoded Challenge&lt;/a&gt;: Echoes of Experience&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Why I Finally Ditched Greenshot for a Tool I Built Myself: Meet NanoShot!
&lt;/h2&gt;

&lt;p&gt;For years, Picpick and Greenshot were my go-to screenshot tools. They were reliable, familiar, and got the job done. But as developers, we constantly crave tools that are faster, leaner, and perfectly tailored to our specific workflows. I wanted something that felt invisible until the exact moment I needed it—without the bloat.&lt;/p&gt;

&lt;p&gt;So, I decided to stop searching and start coding.&lt;/p&gt;

&lt;p&gt;Today, I’m thrilled to announce that my own creation, &lt;strong&gt;&lt;a href="https://github.com/n-92/NanoShot" rel="noopener noreferrer"&gt;NanoShot&lt;/a&gt;&lt;/strong&gt;, has officially replaced Greenshot as my primary daily driver! 🎉&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ What is NanoShot?
&lt;/h2&gt;

&lt;p&gt;NanoShot is a blazing-fast, system-tray-resident screenshot and editor tool for Windows. I wrote it in &lt;strong&gt;pure C (C99)&lt;/strong&gt; utilizing the &lt;strong&gt;Win32 API&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;The result? An incredibly lightweight executable that clocks in at &lt;strong&gt;~50 KB&lt;/strong&gt; with &lt;em&gt;zero&lt;/em&gt; heavy external dependencies. It’s lightning fast, brutally efficient, and permanently ready.&lt;/p&gt;

&lt;p&gt;Samples&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%2F2d7vyxpb4p0shjchoix3.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%2F2d7vyxpb4p0shjchoix3.png" alt=" " width="239" height="345"&gt;&lt;/a&gt;&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%2Fod75we82291vljpf2xei.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%2Fod75we82291vljpf2xei.png" alt=" " width="255" height="363"&gt;&lt;/a&gt;&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%2Fbzqyjwp2a9o9qz5bnzq6.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%2Fbzqyjwp2a9o9qz5bnzq6.png" alt=" " width="493" height="444"&gt;&lt;/a&gt;&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%2F2qrw1do38r5u34yckjsg.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%2F2qrw1do38r5u34yckjsg.png" alt=" " width="483" height="441"&gt;&lt;/a&gt;&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%2F9hytwa5pqy6w2mrozc1d.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%2F9hytwa5pqy6w2mrozc1d.png" alt=" " width="475" height="248"&gt;&lt;/a&gt;&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%2Fghslblvloxjmfflud8gy.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%2Fghslblvloxjmfflud8gy.png" alt=" " width="465" height="232"&gt;&lt;/a&gt;&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%2F52e5utlwd5ddl6xitrw1.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%2F52e5utlwd5ddl6xitrw1.png" alt=" " width="461" height="241"&gt;&lt;/a&gt;&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%2Fdvaqfhhns8504tk09bpk.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%2Fdvaqfhhns8504tk09bpk.png" alt=" " width="460" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Why It Won Me Over (The Unique Features)
&lt;/h2&gt;

&lt;p&gt;I didn't just want to clone existing tools; I wanted to optimize my specific workflow and add a few superpowers along the way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;🪶 Unbelievably Lightweight:&lt;/strong&gt; At roughly 50 KB, it uses practically zero system resources while running silently in your system tray. &lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;🕵️ Built-in Privacy Protection:&lt;/strong&gt; Capturing screenshots often means accidentally grabbing sensitive data. NanoShot features a built-in Editor Canvas that instantly lets you draw rectangles to &lt;strong&gt;pixelate/blur&lt;/strong&gt; credentials, faces, or sensitive text before copying.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;🖼️ Sobel Edge Detection:&lt;/strong&gt; This is my favorite unique feature! By hitting &lt;code&gt;Ctrl + Shift + PrintScreen&lt;/code&gt;, you can capture a screen region with real-time &lt;strong&gt;Sobel edge detection&lt;/strong&gt; applied. Perfect for extracting UI layouts, highlighting borders, or just getting a creative, stylized structural view of your screen.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;⚡ Frictionless Workflow:&lt;/strong&gt; Hitting &lt;code&gt;Ctrl + PrintScreen&lt;/code&gt; freezes the screen for capture. Once you're done editing/blurring, hitting &lt;code&gt;Enter&lt;/code&gt;, &lt;code&gt;Space&lt;/code&gt;, or simply &lt;strong&gt;double-clicking&lt;/strong&gt; the image instantly sends it to your clipboard.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;⚙️ Zero-Config Auto-Start:&lt;/strong&gt; Run it once, and it automatically registers itself in the Windows startup registry. It’s always there, always ready, and requires absolutely zero maintenance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💡 The Takeaway
&lt;/h2&gt;

&lt;p&gt;Building NanoShot reminded me of why I love software engineering. Sometimes the best way to solve a minor daily annoyance is to engineer a bespoke solution from the ground up. It’s an incredibly rewarding feeling to use a tool hundreds of times a day and know exactly how every single byte of it works under the hood.&lt;/p&gt;

&lt;p&gt;If you love minimalist, high-performance utilities and want an insanely fast screenshot tool for Windows, I invite you to give it a spin!&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/n-92/NanoShot" rel="noopener noreferrer"&gt;Check out the NanoShot Repository on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Have you ever replaced a daily-driver application with something you built yourself? Let me know in the comments!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>wecoded</category>
      <category>dei</category>
      <category>career</category>
    </item>
    <item>
      <title>Meet NanoPdf Editor</title>
      <dc:creator>Naing Oo</dc:creator>
      <pubDate>Thu, 19 Mar 2026 02:04:01 +0000</pubDate>
      <link>https://dev.to/n92/meet-nanopdf-editor-213a</link>
      <guid>https://dev.to/n92/meet-nanopdf-editor-213a</guid>
      <description>&lt;p&gt;Do you still remember the good old days around the year 2007 when you didn't have to worry about subscription and cloud mess for desktop based applications? Those good old days where desktop based applications just acted like they were meant to work without the internet. I still remember being able to edit PDF files directly using the free version of Adobe. Since then, things have changed and it is all about subscriptions and dependencies towards the ecosystems of the giants. &lt;/p&gt;

&lt;p&gt;I had been sitting down writing my own little pdf editor for Windows which I humbly call NanoPDF editor. It does one thing only and it does it really well -to edit PDFs. It has worked well for me so far with a wide range of PDF files that I have tested and I would humbly like to sell this software for just 10 USD for a life time license. You make the payment and I will send you the download link within 24hrs. It is that simple. &lt;/p&gt;

&lt;p&gt;A demo can be found on youtube of how it works. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=r2GJ-g69mqs" rel="noopener noreferrer"&gt;NanoPdf Editor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://uniktek.tech/nanopdf-purchase.html" rel="noopener noreferrer"&gt;Purchase Link &lt;/a&gt;&lt;/p&gt;

</description>
      <category>news</category>
      <category>pdf</category>
      <category>microsoft</category>
      <category>productivity</category>
    </item>
    <item>
      <title>NanoShot</title>
      <dc:creator>Naing Oo</dc:creator>
      <pubDate>Sat, 07 Mar 2026 14:55:17 +0000</pubDate>
      <link>https://dev.to/n92/nanoshot-1db5</link>
      <guid>https://dev.to/n92/nanoshot-1db5</guid>
      <description>&lt;p&gt;A lightweight, system-tray-resident screenshot &amp;amp; editor tool for Windows, written in pure C with the Win32 API.&lt;/p&gt;

&lt;p&gt;Samples&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%2F2d7vyxpb4p0shjchoix3.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%2F2d7vyxpb4p0shjchoix3.png" alt=" " width="239" height="345"&gt;&lt;/a&gt;&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%2Fod75we82291vljpf2xei.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%2Fod75we82291vljpf2xei.png" alt=" " width="255" height="363"&gt;&lt;/a&gt;&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%2Fbzqyjwp2a9o9qz5bnzq6.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%2Fbzqyjwp2a9o9qz5bnzq6.png" alt=" " width="493" height="444"&gt;&lt;/a&gt;&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%2F2qrw1do38r5u34yckjsg.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%2F2qrw1do38r5u34yckjsg.png" alt=" " width="483" height="441"&gt;&lt;/a&gt;&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%2F9hytwa5pqy6w2mrozc1d.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%2F9hytwa5pqy6w2mrozc1d.png" alt=" " width="475" height="248"&gt;&lt;/a&gt;&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%2Fghslblvloxjmfflud8gy.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%2Fghslblvloxjmfflud8gy.png" alt=" " width="465" height="232"&gt;&lt;/a&gt;&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%2F52e5utlwd5ddl6xitrw1.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%2F52e5utlwd5ddl6xitrw1.png" alt=" " width="461" height="241"&gt;&lt;/a&gt;&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%2Fdvaqfhhns8504tk09bpk.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%2Fdvaqfhhns8504tk09bpk.png" alt=" " width="460" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/n-92/NanoShot/releases/download/v1.0.0/nanoshot.exe" rel="noopener noreferrer"&gt;v1.0.0 Download&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/n-92/NanoShot/releases/download/v1.0.0/nanoshot.exe" rel="noopener noreferrer"&gt;v1.0.0 Download&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>programming</category>
      <category>showdev</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Disk Octopus: AI-Powered Terminal Storage Analytics Built with GitHub Copilot CLI</title>
      <dc:creator>Naing Oo</dc:creator>
      <pubDate>Tue, 03 Feb 2026 19:03:30 +0000</pubDate>
      <link>https://dev.to/n92/disk-octopus-ai-powered-terminal-storage-analytics-built-with-github-copilot-cli-4fe</link>
      <guid>https://dev.to/n92/disk-octopus-ai-powered-terminal-storage-analytics-built-with-github-copilot-cli-4fe</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Disk Octopus&lt;/strong&gt; - Intelligent Storage Analytics powered by AI&lt;/p&gt;

&lt;p&gt;I built a professional-grade terminal application that transforms how users analyze and understand their disk storage. Disk Octopus combines sophisticated file system visualization with AI-powered analysis to provide deep insights into storage usage patterns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Features Built:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;🖥️ Interactive Terminal UI&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Split-panel interface with resizable sections using Textual framework&lt;/li&gt;
&lt;li&gt;Beautiful braille octopus ASCII art for visual appeal&lt;/li&gt;
&lt;li&gt;Real-time file tree with intelligent lazy-loading&lt;/li&gt;
&lt;li&gt;Status bar with progress tracking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📊 Advanced File Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recognition and categorization of 40+ file types (code, documents, media, config, specialized formats)&lt;/li&gt;
&lt;li&gt;Real-time file type statistics and storage distribution analysis&lt;/li&gt;
&lt;li&gt;File path indexing and searchable results&lt;/li&gt;
&lt;li&gt;Intelligent file complexity classification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🤖 AI-Powered Deep Analysis&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integration with GitHub Copilot CLI for enhanced file analysis&lt;/li&gt;
&lt;li&gt;Intelligent fallback analyzer using pattern-based analysis when Copilot unavailable&lt;/li&gt;
&lt;li&gt;Analysis of file purpose, usage context, creator information, and practical assessments&lt;/li&gt;
&lt;li&gt;Support for files up to 5MB with streaming analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;⚡ Performance Optimizations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lazy-loading of directory trees for instant responsiveness&lt;/li&gt;
&lt;li&gt;Intelligent caching of analysis results&lt;/li&gt;
&lt;li&gt;Efficient terminal rendering with minimal CPU usage&lt;/li&gt;
&lt;li&gt;Async file scanning with real-time progress&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Technical Architecture:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Core&lt;/strong&gt;: Python 3.10+ with Textual TUI framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI&lt;/strong&gt;: Rich terminal formatting with CSS-based styling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analysis&lt;/strong&gt;: Pattern-based intelligent analyzer + Copilot CLI integration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File System&lt;/strong&gt;: Recursive directory scanning with size tracking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Processing&lt;/strong&gt;: Real-time statistics aggregation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why I Built This:
&lt;/h3&gt;

&lt;p&gt;Traditional disk analysis tools like WizTree are GUI-only and resource-intensive. Disk Octopus brings powerful storage analytics directly to the terminal - where developers work. The AI integration transforms generic file analysis into actionable insights about file purposes, storage patterns, and disk organization opportunities.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Live Repository:&lt;/strong&gt; &lt;a href="https://github.com/n-92/Disk-Octopus" rel="noopener noreferrer"&gt;https://github.com/n-92/Disk-Octopus&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Splash Screen&lt;/strong&gt; - Welcoming interface with octopus branding&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fskc6u3rydr2ew0jh828u.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%2Fskc6u3rydr2ew0jh828u.png" alt="Splash Screen" width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Analysis Interface&lt;/strong&gt; - Comprehensive disk visualization&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7tt5o666smi1lnxmxxq.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%2Fl7tt5o666smi1lnxmxxq.png" alt="Main UI" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File Statistics&lt;/strong&gt; - Real-time storage distribution analysis&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm5v8xuotfty6j8h26o8r.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%2Fm5v8xuotfty6j8h26o8r.png" alt="Statistics" width="375" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copilot-Powered Analysis&lt;/strong&gt; - AI-generated file insights&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6nm0rzli02hd9pui1fli.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%2F6nm0rzli02hd9pui1fli.png" alt="Copilot Analysis" width="389" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deep Analysis Results&lt;/strong&gt; - Intelligent file categorization and assessment&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe8xsk04qlfphmztbdma5.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%2Fe8xsk04qlfphmztbdma5.png" alt="Deep Analysis" width="388" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File Paths Display&lt;/strong&gt; - Complete file indexing and organization&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ro7r6rv1at9tit9dwv3.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%2F4ro7r6rv1at9tit9dwv3.png" alt="File Paths" width="380" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Start:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Clone and setup&lt;/span&gt;
git clone https://github.com/n-92/Disk-Octopus.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Disk-Octopus
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="c"&gt;# Run&lt;/span&gt;
python main.py

&lt;span class="c"&gt;# Navigate with arrow keys, press 'd' for deep analysis, 'q' to quit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Key Keyboard Shortcuts:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;q&lt;/code&gt; - Quit&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;h&lt;/code&gt; - Help menu&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;d&lt;/code&gt; - Deep file analysis with Copilot&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;a&lt;/code&gt; - Quick file type analysis&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;s&lt;/code&gt; - Show statistics&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;↑/↓&lt;/code&gt; - Navigate&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How I Used Copilot CLI:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Deep File Analysis Integration&lt;/strong&gt;&lt;br&gt;
I integrated GitHub Copilot CLI to analyze file contents and generate intelligent commentary. The challenge was that subprocess calls with complex prompts would hang on Windows. I solved this by implementing an intelligent fallback analyzer that uses pattern-based analysis, while still leveraging Copilot when available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Problem-Solving for Complex Issues&lt;/strong&gt;&lt;br&gt;
When deep analysis wasn't working (files showing "Uploading... Please Wait" indefinitely), I used Copilot to help debug the subprocess hanging issue. This led me to discover PowerShell argument parsing limitations and implement a robust fallback mechanism.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Development Acceleration&lt;/strong&gt;&lt;br&gt;
Copilot CLI helped me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate analysis frameworks for file categorization&lt;/li&gt;
&lt;li&gt;Create intelligent fallback logic for when Copilot is unavailable&lt;/li&gt;
&lt;li&gt;Develop comprehensive file type recognition across 40+ formats&lt;/li&gt;
&lt;li&gt;Debug threading and async issues with terminal UI updates&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Impact on Development Experience:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Positive Impacts:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Reduced debugging time for complex subprocess issues&lt;/li&gt;
&lt;li&gt;✅ Accelerated implementation of file type detection system&lt;/li&gt;
&lt;li&gt;✅ Helped design the intelligent fallback analyzer architecture&lt;/li&gt;
&lt;li&gt;✅ Provided pattern suggestions for file analysis frameworks&lt;/li&gt;
&lt;li&gt;✅ Enhanced code quality through intelligent suggestions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technical Achievements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built a production-ready terminal application with advanced features&lt;/li&gt;
&lt;li&gt;Implemented robust error handling and fallback mechanisms&lt;/li&gt;
&lt;li&gt;Created 40+ file type recognition system&lt;/li&gt;
&lt;li&gt;Achieved seamless Copilot integration with graceful degradation&lt;/li&gt;
&lt;li&gt;Delivered comprehensive documentation and user guides&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Learning:&lt;/strong&gt;&lt;br&gt;
The biggest insight was designing systems that gracefully degrade when external services (like Copilot CLI) are unavailable. This approach made the application more robust and user-friendly, as it works perfectly even without Copilot while providing enhanced features when available.&lt;/p&gt;

&lt;h3&gt;
  
  
  Copilot CLI Integration Details:
&lt;/h3&gt;

&lt;p&gt;The application automatically:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Detects if Copilot CLI is installed&lt;/li&gt;
&lt;li&gt;Attempts analysis via Copilot when available&lt;/li&gt;
&lt;li&gt;Falls back to intelligent pattern-based analysis if not&lt;/li&gt;
&lt;li&gt;Shows users which analysis method was used&lt;/li&gt;
&lt;li&gt;Provides meaningful insights either way&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This design philosophy made Disk Octopus inclusive for all users, regardless of their GitHub Copilot subscription status.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Highlights
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Professional Quality&lt;/strong&gt;: Production-ready code with clean architecture&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Platform&lt;/strong&gt;: Works on Windows, macOS, and Linux&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Well-Documented&lt;/strong&gt;: Comprehensive README with screenshots and setup guides&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User-Friendly&lt;/strong&gt;: Intuitive keyboard navigation and clear help system&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Source&lt;/strong&gt;: MIT licensed, ready for community contributions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robust&lt;/strong&gt;: Handles large directories and files gracefully&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Version:&lt;/strong&gt; 1.0.0&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Author:&lt;/strong&gt; N-92&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Technologies:&lt;/strong&gt; Python 3.10+, Textual, Rich, GitHub Copilot CLI&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/n-92/Disk-Octopus" rel="noopener noreferrer"&gt;https://github.com/n-92/Disk-Octopus&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Special Thanks:&lt;/strong&gt; GitHub Copilot CLI for intelligent code assistance and analysis acceleration.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
