<?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: Tommy Lalrinfela</title>
    <description>The latest articles on DEV Community by Tommy Lalrinfela (@ds02x).</description>
    <link>https://dev.to/ds02x</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4211397%2F4f19ab04-5113-4827-a164-b91e3be812c9.png</url>
      <title>DEV Community: Tommy Lalrinfela</title>
      <link>https://dev.to/ds02x</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ds02x"/>
    <language>en</language>
    <item>
      <title>The recycle bin that revives deleted files.</title>
      <dc:creator>Tommy Lalrinfela</dc:creator>
      <pubDate>Fri, 30 Oct 2026 07:55:59 +0000</pubDate>
      <link>https://dev.to/ds02x/the-recycle-bin-that-revives-deleted-files-1k0b</link>
      <guid>https://dev.to/ds02x/the-recycle-bin-that-revives-deleted-files-1k0b</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4:&lt;/p&gt;

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

&lt;p&gt;Every operating system has a graveyard: the Recycle Bin. Mine is full of half-finished drafts, broken configs and files named final_v2_REALLY_final. For the "Ghost in the Machine" theme, I took it literally: what if the things you deleted came back to haunt you?&lt;/p&gt;

&lt;p&gt;The Bin-Ghoul reads your Recycle Bin (read-only) and turns every deleted file into a tombstone in a spooky web graveyard. Click one, and the ghost of that file speaks, with a two-sentence epitaph about how it was discarded. If the file is a small text or code file, the ghost also gets a short fragment of its contents, so it can complain about something specific that you actually wrote.&lt;/p&gt;

&lt;p&gt;It's a Halloween scene made entirely of code: a harvest moon, a haunted manor with flickering windows, bats crossing the sky, swaying grass, drifting embers, the occasional flash of lightning, and tombstones that rise out of the ground when the page loads. Wake a ghost and a wisp floats up from the stone while a candle lights beside it.&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/DS02X" rel="noopener noreferrer"&gt;
        DS02X
      &lt;/a&gt; / &lt;a href="https://github.com/DS02X/bin-ghoul" rel="noopener noreferrer"&gt;
        bin-ghoul
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      My first hacktober project. Everything is built with claude sonnet 5.5
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;a rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/321787622/689843655-4f583726-59ac-4896-9515-82805e249439.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTMzNDk0MzYsIm5iZiI6MTc5MzM0OTEzNiwicGF0aCI6Ii8zMjE3ODc2MjIvNjg5ODQzNjU1LTRmNTgzNzI2LTU5YWMtNDg5Ni05NTE1LTgyODA1ZTI0OTQzOS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYxMDMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MTAzMFQwODMyMTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03NDQ4ODg3NGI5MDZjMzc2YTk0YjY4ODRlNzYyYWNlMTVjZWM0ZWE4OGY0YzMxZjUzYjc2YzdlM2ZiYTNjNWNkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.5flGgfa7x3sf6jymb4xfFz9KAf656-zKjsOSnbdI5mI"&gt;&lt;img width="1906" height="907" alt="demo2" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fprivate-user-images.githubusercontent.com%2F321787622%2F689843655-4f583726-59ac-4896-9515-82805e249439.png%3Fjwt%3DeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTMzNDk0MzYsIm5iZiI6MTc5MzM0OTEzNiwicGF0aCI6Ii8zMjE3ODc2MjIvNjg5ODQzNjU1LTRmNTgzNzI2LTU5YWMtNDg5Ni05NTE1LTgyODA1ZTI0OTQzOS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYxMDMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MTAzMFQwODMyMTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03NDQ4ODg3NGI5MDZjMzc2YTk0YjY4ODRlNzYyYWNlMTVjZWM0ZWE4OGY0YzMxZjUzYjc2YzdlM2ZiYTNjNWNkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.5flGgfa7x3sf6jymb4xfFz9KAf656-zKjsOSnbdI5mI" class="js-gh-image-fallback"&gt;&lt;/a&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;The Bin-Ghoul: Echoes from the Recycle Bin&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Your Recycle Bin is a graveyard. Bin-Ghoul reads it (read-only), and a small open-weight model running &lt;strong&gt;on your own computer&lt;/strong&gt; writes a ghostly epitaph for every file you threw away. Click a tombstone to wake the spirit.&lt;/p&gt;
&lt;p&gt;Built for the "Ghost in the Machine" challenge.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Setup (Windows 11)&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Install Python 3.9 or newer&lt;/strong&gt; from python.org. Tick "Add Python to PATH". Nothing else to install: the project uses only the standard library.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set up Ollama&lt;/strong&gt; (open a terminal, such as PowerShell)
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;ollama --version
ollama pull llama3.2:1b
ollama run llama3.2:1b "say hello like a ghost"
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
The &lt;code&gt;pull&lt;/code&gt; downloads the model once (about 1.3 GB). The &lt;code&gt;run&lt;/code&gt; test confirms it works; type &lt;code&gt;/bye&lt;/code&gt; to exit. Ollama keeps a background server running at &lt;code&gt;localhost:11434&lt;/code&gt; while its tray icon is active. If it isn't, run &lt;code&gt;ollama serve&lt;/code&gt; in a separate terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run Bin-Ghoul&lt;/strong&gt; from this folder
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;python bin_ghoul.py
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/DS02X/bin-ghoul" 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;ul&gt;
&lt;li&gt;&lt;p&gt;Model: Llama 3.2 1B, an open-weight model, running locally through Ollama. The model can be swapped with one flag (--model qwen2.5:1.5b, for example).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Backend: Python, standard library only, so there are no dependencies to install. A small local server on 127.0.0.1 serves the page and talks to Ollama's local API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reading the bin: On Windows, PowerShell's Shell interface lists each deleted file's original name, original folder, deletion date and size. On Linux and macOS it reads the Trash folder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prompting: A system prompt turns each file into a dramatic, slightly passive-aggressive spirit. For small text and code files (under 200 KB), the first 400 characters are passed along so the epitaph can reference the content. Each epitaph is generated only when you click, so the page stays instant.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Frontend: One self-contained HTML page with no external images, fonts or scripts. Stone is textured with SVG lighting filters, the fog is a WebGL fragment shader (with a CSS fallback), and the grass, trees, bats and manor are drawn procedurally. It respects reduced-motion settings and works with a keyboard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Safety: It never deletes, restores or modifies anything, and it skips binary files and large files.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A Recycle Bin holds the things you were least proud of: unfinished thoughts, private notes, broken code, mistakes. That is exactly the data you should not send to a cloud API.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Privacy by design: Because the model's weights are open, file names and contents are processed on my own machine and never leave it. A closed API would have made this project a privacy problem instead of a joke.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No cost, no account, works offline: Once the model is pulled there are no API keys, quotas or bills, and it works with the Wi-Fi off.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hackable: The ghost's whole personality is one system prompt, and the model is one flag. Gothic poets, grumpy sysadmins and cheerful motivational ghosts are a one-line change.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's only possible because small open models are now good enough to be funny on a laptop. A 1B-parameter model isn't perfect (some epitaphs repeat themselves), but it's good enough for a haunting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Note: The project is nowhere near finished or polished, everything is made with claude sonnet 5.5. If you are interested in this project or if you like it, we can work together to improve it. This is just a rough draft of my vision.
&lt;/h2&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
