<?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: uni928</title>
    <description>The latest articles on DEV Community by uni928 (@uni928).</description>
    <link>https://dev.to/uni928</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%2F1769007%2F02a81aa6-3f52-43e5-b80c-5950f303ad32.png</url>
      <title>DEV Community: uni928</title>
      <link>https://dev.to/uni928</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/uni928"/>
    <language>en</language>
    <item>
      <title>Practical baseline safeguards for ChatGPT-powered services</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Fri, 13 Feb 2026 04:21:16 +0000</pubDate>
      <link>https://dev.to/uni928/practical-baseline-safeguards-for-chatgpt-powered-services-efd</link>
      <guid>https://dev.to/uni928/practical-baseline-safeguards-for-chatgpt-powered-services-efd</guid>
      <description>&lt;p&gt;Practical baseline safeguards for ChatGPT-powered services&lt;/p&gt;

&lt;p&gt;When building an application using the OpenAI API, it is tempting to ship as soon as “it works.”&lt;br&gt;
However, insufficient safeguards often lead to &lt;strong&gt;API key leakage&lt;/strong&gt;, &lt;strong&gt;unexpected traffic spikes&lt;/strong&gt;, and ultimately &lt;strong&gt;serious billing incidents&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This article summarizes &lt;strong&gt;practical, lightweight protections&lt;/strong&gt; that are especially relevant for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;personal projects&lt;/li&gt;
&lt;li&gt;internal tools&lt;/li&gt;
&lt;li&gt;early-stage prototypes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are &lt;strong&gt;not universal requirements&lt;/strong&gt;.&lt;br&gt;
What counts as a “baseline” depends heavily on your threat model, user anonymity, billing model, and scale.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A common but underestimated risk&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One frequently overlooked risk is &lt;strong&gt;direct access to your backend API endpoints&lt;/strong&gt;, bypassing the UI entirely.&lt;/p&gt;

&lt;p&gt;In practice, incidents may also be caused by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;abuse by authenticated users&lt;/li&gt;
&lt;li&gt;bugs or retry loops&lt;/li&gt;
&lt;li&gt;misconfigured proxies or shared environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, direct scripted access to your backend is a &lt;strong&gt;very common failure mode&lt;/strong&gt;, especially when no safeguards exist.&lt;/p&gt;

&lt;p&gt;If an attacker can replay the exact same request your frontend sends, they can often exhaust your usage limits in minutes.&lt;/p&gt;

&lt;p&gt;This article therefore focuses primarily on &lt;strong&gt;protecting your backend (Workers / server)&lt;/strong&gt; rather than the UI.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Never call the OpenAI API directly from the client&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your frontend should &lt;strong&gt;never&lt;/strong&gt; call the OpenAI API directly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API keys embedded in browsers or apps will leak&lt;/li&gt;
&lt;li&gt;DevTools, network inspection, and modified requests make this trivial&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recommended architecture&lt;/p&gt;

&lt;p&gt;Client → Your backend (Workers / server)&lt;br&gt;
Backend → OpenAI API&lt;/p&gt;

&lt;p&gt;The client receives only the processed result.&lt;/p&gt;

&lt;p&gt;This allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keep API keys secret&lt;/li&gt;
&lt;li&gt;validate and throttle requests&lt;/li&gt;
&lt;li&gt;support streaming safely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OpenAI explicitly recommends this approach in its official documentation.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Always implement rate limiting&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Rate limiting is essential, even for small projects.&lt;/p&gt;

&lt;p&gt;Typical limits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;per 5 minutes&lt;/li&gt;
&lt;li&gt;per hour&lt;/li&gt;
&lt;li&gt;per day&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Implementation can be simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;store a counter&lt;/li&gt;
&lt;li&gt;store the start time of the window&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cloudflare Workers with KV, Durable Objects, or D1 make this straightforward using IPs, user IDs, or session identifiers.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Lightweight one-time tokens (with clear limitations)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To discourage trivial scripted abuse, you may introduce &lt;strong&gt;short-lived request tokens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;embed an encrypted timestamp&lt;/li&gt;
&lt;li&gt;validate that it was generated recently (e.g., within 10 seconds)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ Important limitations&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is &lt;strong&gt;not cryptographically strong authentication&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;This does &lt;strong&gt;not fully prevent replay within the valid window&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;This must &lt;strong&gt;never replace proper authentication&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of this as &lt;strong&gt;friction&lt;/strong&gt;, not security.&lt;/p&gt;

&lt;p&gt;It is useful against:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;naive replay scripts&lt;/li&gt;
&lt;li&gt;casual scraping&lt;/li&gt;
&lt;li&gt;low-effort abuse&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is &lt;strong&gt;not sufficient&lt;/strong&gt; against a determined attacker.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Review auto-recharge and billing assumptions carefully&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Billing incidents are often underestimated.&lt;/p&gt;

&lt;p&gt;There are real-world reports of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;usage continuing briefly after limits were reached&lt;/li&gt;
&lt;li&gt;negative balances appearing despite prepaid setups&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Budget limits should be treated as &lt;strong&gt;operational safeguards&lt;/strong&gt;, not hard guarantees.&lt;/p&gt;

&lt;p&gt;For small projects, consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;disabling auto-recharge&lt;/li&gt;
&lt;li&gt;keeping balances low&lt;/li&gt;
&lt;li&gt;adding monitoring and alerts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using a &lt;strong&gt;dedicated debit card with a low limit&lt;/strong&gt; can further cap worst-case damage.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Production services require real authentication&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The measures above are suitable for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;prototypes&lt;/li&gt;
&lt;li&gt;internal tools&lt;/li&gt;
&lt;li&gt;anonymous experiments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For real services, you will need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OAuth or equivalent authentication&lt;/li&gt;
&lt;li&gt;session and token management&lt;/li&gt;
&lt;li&gt;per-user quotas and permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;IP-based checks alone are insufficient, as client-side values can be forged.&lt;/p&gt;

&lt;p&gt;Defense must be layered: authentication, rate limits, quotas, and monitoring.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Never let the client choose the model&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Model selection directly affects cost.&lt;/p&gt;

&lt;p&gt;Best practice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fix allowed models on the server&lt;/li&gt;
&lt;li&gt;reject anything outside a strict allowlist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not rely on obscurity or “confusion” tactics.&lt;br&gt;
Clear validation and rejection are safer, simpler, and easier to operate.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;For small-scale ChatGPT-powered services, the following baseline practices already eliminate many real-world incidents:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keep API keys on the server&lt;/li&gt;
&lt;li&gt;enforce rate limits&lt;/li&gt;
&lt;li&gt;treat billing controls realistically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These measures will not make your system unbreakable — but they &lt;strong&gt;raise the cost of abuse enough&lt;/strong&gt; that most attackers move on to easier targets.&lt;/p&gt;

&lt;p&gt;Security is not about perfect defenses, but about &lt;strong&gt;making misuse inconvenient and uneconomical&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Original Japanese article (source of revision): &lt;a href="https://qiita.com/uni928/items/061432019b316e418902" rel="noopener noreferrer"&gt;https://qiita.com/uni928/items/061432019b316e418902&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>[ChatGPT Blender] How to Work Around the BlenderGPT Error</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Fri, 15 Aug 2025 03:22:06 +0000</pubDate>
      <link>https://dev.to/uni928/chatgpt-x-blender-how-to-work-around-the-blendergpt-malfunction-4136</link>
      <guid>https://dev.to/uni928/chatgpt-x-blender-how-to-work-around-the-blendergpt-malfunction-4136</guid>
      <description>&lt;p&gt;BlenderGPT may sometimes fail to work properly.&lt;br&gt;
One of the main causes is that the ChatGPT API Key input field cannot read beyond the 128th character.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workaround Steps
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;After installing the add-on, go to Blender’s add-on settings screen, click the “folder” icon, and open the add-on’s installation folder.&lt;/li&gt;
&lt;li&gt;Open the &lt;code&gt;__init__.py&lt;/code&gt; file in Notepad or another text editor.&lt;/li&gt;
&lt;li&gt;Search for openai.api_key and enter your API Key directly in its declaration.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Operation Check
&lt;/h2&gt;

&lt;p&gt;Applying the above fix will allow BlenderGPT to function normally.&lt;/p&gt;

&lt;p&gt;That concludes our guide on how to work around the BlenderGPT malfunction.&lt;br&gt;
Thank you for reading.&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>blender</category>
      <category>blenderapi</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I’ve created a web tool to batch add update dates at the beginning of filenames</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Mon, 21 Jul 2025 01:53:17 +0000</pubDate>
      <link>https://dev.to/uni928/ive-created-a-web-tool-to-batch-add-update-dates-at-the-beginning-of-filenames-1cip</link>
      <guid>https://dev.to/uni928/ive-created-a-web-tool-to-batch-add-update-dates-at-the-beginning-of-filenames-1cip</guid>
      <description>&lt;p&gt;Have you ever had to &lt;strong&gt;add update dates at the start of filenames&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;For example, in some companies there are rules like:&lt;br&gt;&lt;br&gt;
“When uploading files to a shared folder, please &lt;strong&gt;add the update date at the beginning&lt;/strong&gt; of certain filenames.”&lt;/p&gt;

&lt;p&gt;However, when dealing with many files, this task can be surprisingly &lt;strong&gt;tedious and time-consuming&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Renaming each file manually every time is stressful&lt;/strong&gt;, isn’t it?&lt;/p&gt;

&lt;p&gt;To solve this, I developed a web tool that can &lt;strong&gt;process all files in a folder at once&lt;/strong&gt; and &lt;strong&gt;automatically add the update date&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Since it runs in your browser, there’s &lt;strong&gt;no need to install anything&lt;/strong&gt;—you can use it right away.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Please give it a try!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🌐 &lt;a href="https://uni928.github.io/UpdateDatePusher/index2.html" rel="noopener noreferrer"&gt;Try it here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Use Cases&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
This tool is useful in the following scenarios:&lt;/p&gt;

&lt;p&gt;✅ When you want to &lt;strong&gt;add dates before uploading files&lt;/strong&gt; to a shared drive or Google Drive&lt;br&gt;&lt;br&gt;
✅ When you need to &lt;strong&gt;organize multiple files&lt;/strong&gt; like monthly or weekly reports where update dates are important&lt;br&gt;&lt;br&gt;
✅ When you want to &lt;strong&gt;automate renaming&lt;/strong&gt; instead of manually editing filenames one by one&lt;br&gt;&lt;br&gt;
✅ When you want to &lt;strong&gt;replace old dates&lt;/strong&gt; in filenames with the latest update date&lt;/p&gt;

&lt;p&gt;🛠 &lt;strong&gt;How to Use&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;１. &lt;strong&gt;Click the “Select Folder” button&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Use your browser’s File System Access API to select the folder you want to process. (Subfolders are not included.)&lt;/p&gt;

&lt;p&gt;２. &lt;strong&gt;Automatically process all files in the folder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If a date in “YYYYMMDD” format already exists at the beginning, it will be &lt;strong&gt;removed and replaced&lt;/strong&gt; with the current update date.&lt;br&gt;&lt;br&gt;
The original files remain untouched; &lt;strong&gt;new copies with updated dates&lt;/strong&gt; are created.&lt;/p&gt;

&lt;p&gt;３. &lt;strong&gt;Check the results&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
After processing, new files like “20250717filename.txt” will appear in the folder.&lt;/p&gt;

&lt;p&gt;🚨 &lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This tool only works in browsers that support the File System Access API, such as Google Chrome or Microsoft Edge.  &lt;/p&gt;

&lt;p&gt;For safety, subfolders are excluded from processing. If you accidentally select something like the C drive, it could cause &lt;strong&gt;serious problems&lt;/strong&gt;—this is why the tool is limited to the selected folder only. Even with an internal blocklist, including subfolders still carries too much risk.&lt;/p&gt;

&lt;p&gt;The tool creates copies with the update date added. Note that the “last modified” date inside the copied files will be the date they were duplicated. &lt;strong&gt;Please understand this limitation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🌐 &lt;a href="https://uni928.github.io/UpdateDatePusher/index2.html" rel="noopener noreferrer"&gt;Try it here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Open the tool&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’d like to verify its safety before using, you can also &lt;a href="https://github.com/uni928/UpdateDatePusher" rel="noopener noreferrer"&gt;download it from here&lt;/a&gt; &lt;strong&gt;and inspect the code yourself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That’s all for the introduction of this &lt;strong&gt;web tool for batch adding update dates to filenames&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I hope this tool helps you &lt;strong&gt;streamline your workflow&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Thank you for reading until the end! 🙌&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;P.S.&lt;br&gt;&lt;br&gt;
This article was &lt;strong&gt;proofread using ChatGPT&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Apologies if you’re not a fan of &lt;strong&gt;AI-assisted editing&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>chatgpt</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>I Created a Website That Helps You Easily Generate ChatGPT Prompts for Blender Python API Code</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Wed, 16 Jul 2025 04:19:58 +0000</pubDate>
      <link>https://dev.to/uni928/i-created-a-website-that-helps-you-easily-generate-chatgpt-prompts-for-blender-python-api-code-1f3h</link>
      <guid>https://dev.to/uni928/i-created-a-website-that-helps-you-easily-generate-chatgpt-prompts-for-blender-python-api-code-1f3h</guid>
      <description>&lt;p&gt;Did you know you can use ChatGPT to generate Blender Python API code when creating models in Blender?&lt;/p&gt;

&lt;p&gt;These days, &lt;a href="https://chatgpt.com/" rel="noopener noreferrer"&gt;ChatGPT&lt;/a&gt; has become so accessible that you can start using it instantly—no account required.&lt;/p&gt;

&lt;p&gt;For example, if you want to “create a food stall”, you can ask ChatGPT to write code that automates the process of building the framework in Blender.&lt;/p&gt;

&lt;p&gt;And if you’re using the ChatGPT mobile app, you can even take a photo of a real-world object and say:&lt;br&gt;
“I want to create a 3D model like this image.”&lt;/p&gt;

&lt;p&gt;Surprisingly often, you’ll get a result close to what you envisioned.&lt;/p&gt;

&lt;p&gt;But… do you ever feel stuck?&lt;br&gt;
Many Blender users might think:&lt;br&gt;
“I don’t know how to ask ChatGPT the right way...”&lt;/p&gt;

&lt;p&gt;That’s why I created a simple website where you just type what you want to generate in a text box, and it automatically converts your input into what I believe is a well-structured, effective prompt.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://uni928.github.io/CreateChatGPTPromptAtBlenderPythonAPI/index2.html" rel="noopener noreferrer"&gt;Here’s the site&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;✨ How It Works&lt;br&gt;
The usage is super simple.&lt;/p&gt;

&lt;p&gt;For example, enter something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Japanese Festival Set
  - Food stalls (takoyaki, goldfish scooping, shooting gallery)
  - Lanterns, curtains, and signboards
  - Mini-game props (goldfish buckets, balloon dolls)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The site will then generate the following prompt and copy it to your clipboard automatically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Blender Python API Generated Code
# Please write this code with as much quality as possible to meet the requirements below

import bpy

# User instructions:
# Japanese Festival Set
  - Food stalls (takoyaki, goldfish scooping, shooting gallery)
  - Lanterns, curtains, and signboards
  - Mini-game props (goldfish buckets, balloon dolls)

# TODO: Implement high-quality processing here
# Example: create objects, apply settings, handle animations, etc.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you feed this prompt to ChatGPT, you’ll likely get a much more accurate and higher-quality response compared to a normal query.&lt;/p&gt;

&lt;p&gt;💡 In Summary&lt;br&gt;
If you want to boost your Blender workflow, definitely give this tool a try.&lt;br&gt;
You’ll quickly realize:&lt;br&gt;
“The way you ask questions can completely change the quality of AI’s answers!”&lt;/p&gt;

&lt;p&gt;🙏 Thank you for reading!&lt;/p&gt;

&lt;p&gt;Once again:&lt;br&gt;
👉 &lt;a href="https://uni928.github.io/CreateChatGPTPromptAtBlenderPythonAPI/index2.html" rel="noopener noreferrer"&gt;Here’s the site&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>chatgpt</category>
      <category>ai</category>
    </item>
    <item>
      <title>🎉 A Web App to Bulk Copy “Related Files” in a Folder with Drag &amp; Drop</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Mon, 14 Jul 2025 03:57:35 +0000</pubDate>
      <link>https://dev.to/uni928/a-web-app-to-bulk-copy-related-files-in-a-folder-with-drag-drop-5cnh</link>
      <guid>https://dev.to/uni928/a-web-app-to-bulk-copy-related-files-in-a-folder-with-drag-drop-5cnh</guid>
      <description>&lt;p&gt;Today, I’d like to introduce a &lt;strong&gt;web app that can instantly find and copy all files in a folder containing the name of a file you drag &amp;amp; drop&lt;/strong&gt;. (I’ll explain the details below.)&lt;/p&gt;

&lt;p&gt;With this web app, you can quickly list out which files reference a dreaded file like &lt;code&gt;CommonFunctionA.cs&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;By listing all related files, it also makes it much easier to ask questions to ChatGPT.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What Can It Do?
&lt;/h2&gt;

&lt;p&gt;Imagine you have the following folder structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FolderA
├── FolderB
│   ├── aaa.txt
│   └── bbb.txt
├── ccc.txt  ← drag &amp;amp; drop
└── ddd.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you drag &lt;code&gt;ccc.txt&lt;/code&gt; into the browser, the app performs these actions:&lt;/p&gt;

&lt;p&gt;✅ Recursively searches within the folder&lt;br&gt;&lt;br&gt;
✅ Extracts all files that contain the string &lt;code&gt;ccc&lt;/code&gt; in their content&lt;br&gt;&lt;br&gt;
✅ Copies the &lt;strong&gt;file names and their contents&lt;/strong&gt; to the clipboard in bulk&lt;/p&gt;




&lt;h2&gt;
  
  
  📝 Technical Highlights
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🚀 File System Access API
&lt;/h3&gt;

&lt;p&gt;This app uses the File System Access API to explore the contents of your local folders directly from the browser.&lt;/p&gt;

&lt;p&gt;✅ Recursive folder search&lt;br&gt;&lt;br&gt;
✅ Bulk copy using the Clipboard API&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 Summary
&lt;/h2&gt;

&lt;p&gt;With just drag &amp;amp; drop, you can bulk copy all “related files,”&lt;br&gt;&lt;br&gt;
making it perfect for large-scale local text searches or as a code review assistant.&lt;/p&gt;

&lt;p&gt;Note: It does &lt;strong&gt;not&lt;/strong&gt; copy “related files of related files.”&lt;br&gt;&lt;br&gt;
While it’s possible to implement this, doing so could result in copying the entire folder due to chain references.&lt;/p&gt;

&lt;p&gt;Also, I’ve been debating whether such a web app should include itself (the dragged file) in the output. (Currently, it doesn’t.)&lt;br&gt;&lt;br&gt;
Including it might make it more user-friendly, but from the perspective of “who is using &lt;code&gt;CommonFunctionA.cs&lt;/code&gt;?”, it seems more accurate to exclude it.&lt;/p&gt;




&lt;h2&gt;
  
  
  📌 Links
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Original Version:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://uni928.github.io/DirectoryInFileAllCopy/index5.html" rel="noopener noreferrer"&gt;https://uni928.github.io/DirectoryInFileAllCopy/index5.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Updated Version (Includes Self):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://uni928.github.io/DirectoryInFileAllCopy/index6.html" rel="noopener noreferrer"&gt;https://uni928.github.io/DirectoryInFileAllCopy/index6.html&lt;/a&gt;&lt;br&gt;
I decided to release this version too since it’s more convenient when asking ChatGPT questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source Code (for local use and safety checks):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/uni928/DirectoryInFileAllCopy" rel="noopener noreferrer"&gt;https://github.com/uni928/DirectoryInFileAllCopy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feel free to download it and try it out locally!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>I Built a Convenient but Extremely Dangerous Website That Can Bulk Replace All Files in a Specified Folder</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Fri, 11 Jul 2025 03:33:05 +0000</pubDate>
      <link>https://dev.to/uni928/i-built-a-convenient-but-extremely-dangerous-website-that-can-bulk-replace-all-files-in-a-specified-cj5</link>
      <guid>https://dev.to/uni928/i-built-a-convenient-but-extremely-dangerous-website-that-can-bulk-replace-all-files-in-a-specified-cj5</guid>
      <description>&lt;p&gt;Have you ever needed to replace text across &lt;strong&gt;all files in a folder at once&lt;/strong&gt;? For example:&lt;/p&gt;

&lt;p&gt;・Updating old API keys scattered across multiple files&lt;br&gt;
・Performing large-scale renaming in HTML/CSS/JS projects&lt;br&gt;
・Replacing specific phrases in Markdown or text logs in bulk&lt;/p&gt;

&lt;p&gt;Normally, tasks like these require specialized apps (like VSCode’s regex replace) or command-line tools (sed, awk, find, grep, etc.), which can be intimidating for beginners.&lt;/p&gt;

&lt;p&gt;So I thought:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Couldn’t this be done more simply, directly in a browser?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That’s why I created this site.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Features of This Site
&lt;/h2&gt;

&lt;p&gt;This tool recursively scans all text files in a specified folder and replaces the search string in bulk.&lt;br&gt;
Best of all, it runs entirely in the browser. No installation needed. Works across platforms.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Key Features
&lt;/h2&gt;

&lt;p&gt;・Select folders via drag &amp;amp; drop&lt;br&gt;
・Processes files in subdirectories as well&lt;br&gt;
・Automatically skips binary files (images, audio, etc.)&lt;br&gt;
・Detects garbled text and excludes suspicious files&lt;br&gt;
・Optionally creates a ZIP backup before replacements&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 Supported Browsers
&lt;/h2&gt;

&lt;p&gt;・Google Chrome&lt;br&gt;
・Microsoft Edge&lt;br&gt;
　　(Not supported on Safari or Firefox because they don’t support the File System Access API)&lt;/p&gt;

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

&lt;p&gt;・First, try it on a test folder&lt;br&gt;
・Always enable the backup (ZIP) option&lt;/p&gt;

&lt;h2&gt;
  
  
  👨‍💻 Technical Background
&lt;/h2&gt;

&lt;p&gt;This tool leverages &lt;strong&gt;File System Access API&lt;/strong&gt; and &lt;strong&gt;JSZip&lt;/strong&gt;:&lt;br&gt;
・File System Access API&lt;br&gt;
　　・Next-gen API that enables browsers to read/write local files&lt;br&gt;
　　・Works in the latest versions of Chrome and Edge&lt;br&gt;
・JSZip&lt;br&gt;
　　・A JavaScript library for ZIP compression and decompression&lt;br&gt;
・Garbled Text Detection&lt;br&gt;
　　・Filters out files by calculating the ratio of invisible characters or replacement characters (�)&lt;/p&gt;

&lt;p&gt;Thanks to these technologies, it’s possible to perform bulk replacements with nothing but a browser—no installations required.&lt;/p&gt;

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

&lt;p&gt;If you’re interested, give it a try:&lt;br&gt;
It’s super handy, but use with caution!&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://uni928.github.io/ReplaceAllFileAtOneDirectory/index2" rel="noopener noreferrer"&gt;https://uni928.github.io/ReplaceAllFileAtOneDirectory/index2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to check for any suspicious behavior? Download the source code here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/uni928/ReplaceAllFileAtOneDirectory" rel="noopener noreferrer"&gt;https://github.com/uni928/ReplaceAllFileAtOneDirectory&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🙏 Finally
&lt;/h2&gt;

&lt;p&gt;This tool fulfills the need for “simple bulk replacement,” but misuse can instantly corrupt your files.&lt;br&gt;
(If replacements go wrong and are applied to production environments, bugs may occur. Backups are highly recommended.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use it on production folders at your own risk.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>chatgpt</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>🧩 I Built a Simple Tool to Merge Excel Files — the Lazy Way</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Wed, 02 Jul 2025 04:54:43 +0000</pubDate>
      <link>https://dev.to/uni928/i-built-a-simple-tool-to-merge-excel-files-the-lazy-way-28no</link>
      <guid>https://dev.to/uni928/i-built-a-simple-tool-to-merge-excel-files-the-lazy-way-28no</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Merging multiple Excel files into one — it’s probably more common in the workplace than we’d like to admit.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
・Sales reports from different departments&lt;br&gt;
・Daily CSV log files&lt;br&gt;
・Survey results filled out by different team members&lt;/p&gt;

&lt;p&gt;You’ve likely heard (or said) this before:&lt;/p&gt;

&lt;p&gt;　“Can you just combine them all into one file?”&lt;/p&gt;

&lt;p&gt;But opening each file and copy-pasting manually is a pain.&lt;br&gt;
Writing VBA macros is annoying.&lt;br&gt;
Spinning up Python with pandas just for this? Also overkill.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎉 So I Built a "Lazy Merge" Tool for Excel
&lt;/h2&gt;

&lt;p&gt;I created a lightweight web tool where you can simply &lt;strong&gt;drag and drop multiple Excel files into your browser&lt;/strong&gt;, and the tool &lt;strong&gt;merges them all and copies the result to your clipboard&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;✅ No installation required — runs entirely in your browser&lt;br&gt;
✅ Supports &lt;code&gt;.xlsx&lt;/code&gt;, &lt;code&gt;.xls&lt;/code&gt;, &lt;code&gt;.xltm&lt;/code&gt;, and &lt;code&gt;.csv&lt;/code&gt;&lt;br&gt;
✅ Automatically extracts the first sheet of each file&lt;br&gt;
✅ Combines the data into one and copies it instantly&lt;br&gt;
✅ Paste into Excel — merge complete!&lt;/p&gt;

&lt;p&gt;Perfect for quick tasks, admin work, or when you just want to get it done.&lt;/p&gt;

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

&lt;p&gt;It’s dead simple:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://uni928.github.io/ExcelMarger/index2.html" rel="noopener noreferrer"&gt;Open the site&lt;/a&gt; (either hosted or &lt;a href="https://github.com/uni928/ExcelMarger" rel="noopener noreferrer"&gt;saved locally&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Drag &amp;amp; drop multiple Excel files at once (&lt;code&gt;.csv&lt;/code&gt;, &lt;code&gt;.xltm&lt;/code&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Click the 📋 &lt;strong&gt;Copy All&lt;/strong&gt; button&lt;/li&gt;
&lt;li&gt;Open a new Excel file and paste the result&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it! 🎉&lt;br&gt;
The merged content is handled as tab-separated values (TSV), so the result is cleanly formatted when pasted into Excel.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 What’s Under the Hood?
&lt;/h2&gt;

&lt;p&gt;This tool is built with:&lt;/p&gt;

&lt;p&gt;・&lt;strong&gt;HTML + JavaScript&lt;/strong&gt; (frontend only)&lt;br&gt;
・&lt;a href="https://sheetjs.com/" rel="noopener noreferrer"&gt;SheetJS(xlsx)&lt;/a&gt; for parsing Excel/CSV files&lt;br&gt;
・&lt;strong&gt;FileReader API&lt;/strong&gt; for reading files in-browser&lt;br&gt;
・&lt;strong&gt;Clipboard API&lt;/strong&gt; for copying to clipboard&lt;/p&gt;

&lt;p&gt;Everything runs locally in your browser.&lt;br&gt;
✅ No server&lt;br&gt;
✅ No uploads&lt;br&gt;
✅ Your data stays on your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧪 After Using It Myself...
&lt;/h2&gt;

&lt;p&gt;Originally, I built this tool thinking,&lt;/p&gt;

&lt;p&gt;　“I just want a quick little utility for myself.”&lt;/p&gt;

&lt;p&gt;But it turned out to be so useful, I’ve kept it around and even shared it with coworkers.&lt;/p&gt;

&lt;p&gt;・No more VBA or macro maintenance&lt;br&gt;
・No code — anyone can use it&lt;br&gt;
・Everything self-contained in a single HTML file&lt;/p&gt;

&lt;p&gt;If you’re looking for a no-frills, anyone-can-use tool — this is it.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Summary
&lt;/h2&gt;

&lt;p&gt;・I built a simple browser-based tool to merge Excel/CSV files&lt;br&gt;
・Just drag &amp;amp; drop → click → paste. Done.&lt;br&gt;
・Works offline, no installation needed&lt;br&gt;
・Handles &lt;code&gt;.xltm&lt;/code&gt; and other formats thanks to SheetJS&lt;/p&gt;

&lt;p&gt;Whether you're in admin work, data processing, education, or just looking to save time —&lt;br&gt;
&lt;strong&gt;I hope this helps!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🙏 Final Note
&lt;/h2&gt;

&lt;p&gt;If you found this tool or article helpful,&lt;br&gt;
feel free to leave a like or a comment — I’d really appreciate it!&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://uni928.github.io/ExcelMarger/index2.html" rel="noopener noreferrer"&gt;Try it here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>html</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Created a Tool to Copy All Files in a Folder to Your Clipboard</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Wed, 02 Jul 2025 04:01:34 +0000</pubDate>
      <link>https://dev.to/uni928/i-created-a-tool-to-copy-all-files-in-a-folder-to-your-clipboard-jk5</link>
      <guid>https://dev.to/uni928/i-created-a-tool-to-copy-all-files-in-a-folder-to-your-clipboard-jk5</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;When working with ChatGPT or other LLMs (Large Language Models), you may find yourself needing to &lt;strong&gt;paste the names and contents of all files in a directory into a prompt&lt;/strong&gt; — more often than you’d expect.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;・When you want GPT to understand the structure of an entire codebase&lt;br&gt;
・When analyzing a project that includes multiple templates or config files&lt;br&gt;
・When summarizing a folder full of Markdown or text documents&lt;br&gt;
・When previewing content before running a batch job&lt;br&gt;
・When quickly documenting a local folder that isn’t under version control&lt;/p&gt;

&lt;p&gt;In all these cases, &lt;strong&gt;“showing the content itself” becomes valuable input&lt;/strong&gt; to the AI or to your workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tool
&lt;/h2&gt;

&lt;p&gt;To solve this, I built a simple web-based tool that lets you:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Select a folder&lt;/strong&gt;&lt;br&gt;
👉 &lt;strong&gt;Recursively read all files inside&lt;/strong&gt;&lt;br&gt;
👉 &lt;strong&gt;Copy their filenames and contents into your clipboard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No installation. No account. Runs entirely in the browser.&lt;br&gt;
Try it here:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://uni928.github.io/DirectoryInFileAllCopy/index2.html" rel="noopener noreferrer"&gt;https://uni928.github.io/DirectoryInFileAllCopy/index2.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you'd like to inspect or run it locally before using, you can also &lt;a href="https://github.com/uni928/DirectoryInFileAllCopy" rel="noopener noreferrer"&gt;download it from here&lt;/a&gt;.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Visit the site linked above&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;“Select Folder”&lt;/strong&gt; button&lt;/li&gt;
&lt;li&gt;Choose the folder you want to copy and click OK&lt;/li&gt;
&lt;li&gt;Within a few seconds, the contents of all valid files will be copied to your clipboard!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;⚠️ Files with certain extensions like &lt;code&gt;.meta&lt;/code&gt; are automatically excluded. You can customize which extensions are skipped if needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Background (briefly)
&lt;/h2&gt;

&lt;p&gt;This tool uses the &lt;strong&gt;File System Access API&lt;/strong&gt;, with the following conditions:&lt;/p&gt;

&lt;p&gt;・Works on &lt;strong&gt;Chromium-based browsers&lt;/strong&gt; (Chrome, Edge, Brave, etc.)&lt;br&gt;
・Only available over &lt;strong&gt;HTTPS&lt;/strong&gt; or on localhost&lt;br&gt;
・Folder access requires &lt;strong&gt;explicit user interaction&lt;/strong&gt; due to browser security policies&lt;/p&gt;

&lt;p&gt;Internally, it recursively traverses the folder, reads each file as text, formats it into a single string, and copies it using &lt;code&gt;navigator.clipboard.writeText()&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Use Cases
&lt;/h2&gt;

&lt;p&gt;This tool isn’t just for copying — it unlocks a variety of workflows:&lt;/p&gt;

&lt;p&gt;・Quickly pasting an entire codebase into an LLM for inspection&lt;br&gt;
・Pre-processing local files for use with a &lt;strong&gt;full-text search engine&lt;/strong&gt;&lt;br&gt;
・Reviewing folder structure and contents before documentation&lt;br&gt;
・Validating file contents during pre-deployment (CI/CD) steps&lt;br&gt;
・Creating a single “context string” to tell GPT:&lt;br&gt;
　　"Here's everything in this project — please  summarize or answer questions."&lt;/p&gt;

&lt;p&gt;With a single click, what was previously a pile of local files becomes &lt;strong&gt;rich, promptable text data&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;That’s it — a simple but useful site for copying the names and contents of all files in a folder to your clipboard.&lt;/p&gt;

&lt;p&gt;Once you try it, you might realize just how often you’ve wanted a tool like this to "&lt;strong&gt;just show me everything at once&lt;/strong&gt;."&lt;/p&gt;

&lt;p&gt;I hope this becomes a handy part of your workflow.&lt;br&gt;
And if you find it helpful, I’d really appreciate it if you share it with others!&lt;/p&gt;

&lt;p&gt;Thanks for reading 🙌&lt;/p&gt;

&lt;h2&gt;
  
  
  Notes
&lt;/h2&gt;

&lt;p&gt;This article was polished using ChatGPT.&lt;br&gt;
Apologies if you prefer human-only writing — I’m always open to feedback.&lt;/p&gt;

&lt;p&gt;To be honest, I initially didn’t think this site would work, given how restrictive HTML and browser APIs can be.&lt;br&gt;
But to my surprise, it &lt;strong&gt;actually works&lt;/strong&gt; — and quite smoothly!&lt;/p&gt;

&lt;p&gt;That said, please note that this feature &lt;strong&gt;might stop working in the future&lt;/strong&gt; due to potential changes in browser specifications.&lt;br&gt;
I appreciate your understanding in that regard.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Created a Simple Tool to Instantly Preview HTML Generated by ChatGPT</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Tue, 24 Jun 2025 05:40:23 +0000</pubDate>
      <link>https://dev.to/uni928/i-created-a-simple-tool-to-instantly-preview-html-generated-by-chatgpt-33l1</link>
      <guid>https://dev.to/uni928/i-created-a-simple-tool-to-instantly-preview-html-generated-by-chatgpt-33l1</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;ChatGPT has become a powerful ally for generating HTML and other code snippets. However, if you’ve ever tried working with the HTML code it outputs, you might have run into a small but persistent annoyance.&lt;/p&gt;

&lt;p&gt;To preview the HTML, we typically need to:&lt;/p&gt;

&lt;p&gt;・Manually create an .html file&lt;br&gt;
・Open it in a text editor and paste in the code&lt;br&gt;
・Save the file and open it in a browser&lt;br&gt;
・Repeat this every time we make a small change&lt;/p&gt;

&lt;p&gt;This process may not be complex, but doing it repeatedly can become surprisingly tedious.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Simple Solution
&lt;/h2&gt;

&lt;p&gt;To reduce that friction, I created a small web tool that lets you paste HTML code and instantly render it in the browser—without saving any files.&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://uni928.github.io/TestSpeedy/index2.html" rel="noopener noreferrer"&gt;Try it here&lt;/a&gt;&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;Copy the HTML code generated by ChatGPT&lt;/li&gt;
&lt;li&gt;Paste it into the input field on the tool’s page&lt;/li&gt;
&lt;li&gt;Click the “Render” button&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it. The entire page will be temporarily replaced with your HTML content. No need to create or save any files manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Error Handling Is Friendly Too
&lt;/h2&gt;

&lt;p&gt;This tool uses &lt;code&gt;document.write()&lt;/code&gt; to replace the document with your input. If your code contains syntax errors, the browser will usually provide helpful messages, and the line numbers in the console log remain consistent with your input. This makes debugging a bit easier as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Opening and saving HTML files manually each time you want to make a change might seem trivial at first. But over time, it adds up and slows you down—like a slow-draining battery.&lt;/p&gt;

&lt;p&gt;With this tool, I hope to make your workflow just a little more efficient and enjoyable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/uni928/TestSpeedy" rel="noopener noreferrer"&gt;It's available on GitHub&lt;/a&gt;, so I'd be happy if you could download it and place it on your desktop.&lt;/p&gt;

&lt;p&gt;Thank you for reading, and happy coding!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>chatgpt</category>
      <category>ai</category>
    </item>
    <item>
      <title>🛠 I Created a Simple Prompt Generator for ChatGPT! (Free Online Tool)</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Mon, 23 Jun 2025 05:17:37 +0000</pubDate>
      <link>https://dev.to/uni928/i-created-a-simple-prompt-generator-for-chatgpt-3ob7</link>
      <guid>https://dev.to/uni928/i-created-a-simple-prompt-generator-for-chatgpt-3ob7</guid>
      <description>&lt;p&gt;If you're someone who writes prompts manually every time you ask ChatGPT to solve an error… you're not alone.&lt;/p&gt;

&lt;p&gt;To help with that, I built a tool that lets you generate ChatGPT prompts automatically in &lt;strong&gt;just 3 steps.&lt;/strong&gt;&lt;br&gt;
Feel free to give it a try!&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://uni928.github.io/SephirothSimplePromptGenerator/index2.html" rel="noopener noreferrer"&gt;Click here to try the prompt generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://uni928.github.io/SephirothSimplePromptGenerator/index4.html" rel="noopener noreferrer"&gt;In the case of HTML, this one might work.&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🧰 What Is This Tool?
&lt;/h2&gt;

&lt;p&gt;This is a web-based tool that automatically generates a ChatGPT-friendly prompt based on:&lt;/p&gt;

&lt;p&gt;・🐞 Your error message&lt;br&gt;
・📄 The relevant source code file (via file upload)&lt;/p&gt;

&lt;p&gt;The generated prompt follows this structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Could you tell me the cause of the following error and how to fix it?

[Error Message]

The content of the related file is as follows: 'filename'

[File content with line numbers]

If there are any key points or important notes about the error, please include those as well.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ✅ Key Features
&lt;/h2&gt;

&lt;p&gt;・&lt;strong&gt;Automatic Line Numbers for Code&lt;/strong&gt;&lt;br&gt;
　When you include line numbers in your code, ChatGPT can understand context much more accurately.&lt;br&gt;
　It helps ChatGPT clearly identify lines like "the error is on line 18" and provide better answers.&lt;/p&gt;

&lt;p&gt;・&lt;strong&gt;One-Click Prompt Copy&lt;/strong&gt;&lt;br&gt;
　You can copy the entire generated prompt with a single click of the "Copy Prompt" button.&lt;/p&gt;

&lt;p&gt;・&lt;strong&gt;File Upload Support&lt;/strong&gt;&lt;br&gt;
　Works with almost any text-based code file — including JavaScript, TypeScript, Python, HTML, CSS, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 How to Use (3 Easy Steps)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Paste Your Error Message&lt;/strong&gt; (optional)&lt;br&gt;
　It’s not required, but including it will improve the accuracy of ChatGPT’s response.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Select Your Source Code File&lt;/strong&gt;&lt;br&gt;
　Just upload the relevant file — the tool will automatically display it with line numbers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Click “Copy Prompt” and Ask ChatGPT!&lt;/strong&gt;&lt;br&gt;
　Paste it into ChatGPT and you're ready to go.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🎯 Who Is This For?
&lt;/h2&gt;

&lt;p&gt;・Developers who are tired of writing prompts from scratch every time&lt;br&gt;
・People looking for reusable prompt templates&lt;br&gt;
・Beginners who want to learn efficiently with the help of AI&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Technical Details (for Developers)
&lt;/h2&gt;

&lt;p&gt;This tool is built using plain &lt;strong&gt;HTML + JavaScript (Vanilla JS)&lt;/strong&gt; and utilizes:&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;FileReader API&lt;/strong&gt; to load files locally&lt;/p&gt;

&lt;p&gt;Automatic insertion of &lt;strong&gt;line numbers&lt;/strong&gt; for code&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;navigator.clipboard.writeText()&lt;/code&gt; API for copying text&lt;/p&gt;

&lt;p&gt;Clean and simple UI using only basic HTML/CSS (no frameworks)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/uni928/SephirothSimplePromptGenerator" rel="noopener noreferrer"&gt;It's hosted on GitHub Pages&lt;/a&gt;, so you can use it instantly — no setup required.&lt;/p&gt;

&lt;p&gt;Note:&lt;br&gt;
If you are concerned about potential data leakage, we recommend downloading the &lt;code&gt;index2.html&lt;/code&gt; file from GitHub Pages and running it locally. Before doing so, you can copy and paste the source code into ChatGPT to check whether it contains any code that sends data externally.&lt;/p&gt;

&lt;p&gt;Since this tool is publicly hosted on GitHub Pages, &lt;strong&gt;any attempt to include such data-extracting functionality would be easily detected by inspecting the source code&lt;/strong&gt;, so we hope this offers some peace of mind.&lt;/p&gt;

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

&lt;p&gt;If this tool makes writing prompts even a little easier, and helps you make better use of ChatGPT, I’d be thrilled.&lt;/p&gt;

&lt;p&gt;Feel free to leave feedback or suggestions in the comments!&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://uni928.github.io/SephirothSimplePromptGenerator/index2.html" rel="noopener noreferrer"&gt;Try the Prompt Generator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://uni928.github.io/SephirothSimplePromptGenerator/index4.html" rel="noopener noreferrer"&gt;In the case of HTML, this one might work.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>chatgpt</category>
      <category>ai</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Work Smarter in Unity: Leverage ChatGPT with Our Custom Asset</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Mon, 16 Jun 2025 02:04:25 +0000</pubDate>
      <link>https://dev.to/uni928/work-smarter-in-unity-leverage-chatgpt-with-our-custom-asset-1go</link>
      <guid>https://dev.to/uni928/work-smarter-in-unity-leverage-chatgpt-with-our-custom-asset-1go</guid>
      <description>&lt;p&gt;We have developed an asset for Unity.&lt;br&gt;
We hope it will contribute to improving the efficiency of your Unity development projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1kJ9YZi-4gQ12eBr3HkLLClcM_POb01KG/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1kJ9YZi-4gQ12eBr3HkLLClcM_POb01KG/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;===&lt;br&gt;
■ What is this asset? ■&lt;/p&gt;

&lt;p&gt;This Unity Editor extension is a streamlined tool that lets you consult ChatGPT about Unity errors and development issues with almost no setup or effort.&lt;/p&gt;

&lt;p&gt;Many developers struggle with&lt;/p&gt;

&lt;p&gt;・“Writing a clear ChatGPT prompt is tedious.”&lt;br&gt;
・“I just want advice by pasting the error message.”&lt;/p&gt;

&lt;p&gt;If that sounds familiar, this extension is designed for you.&lt;/p&gt;

&lt;p&gt;■ Core Features ■&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;One‑step error prompt&lt;br&gt;
Select a message in the Unity Console, press Ctrl + C, and a well‑formatted prompt—complete with the error and related code—is copied to your clipboard, ready for ChatGPT.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy scene‑related scripts&lt;br&gt;
Right‑click a scene file and copy the file names and contents of every .cs file referenced in that scene.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy associated scripts from a single file&lt;br&gt;
Right‑click any .cs file to copy it plus other scripts that reference or are referenced by it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copy all project scripts&lt;br&gt;
Export every .cs file in the project in one action—ideal for large‑context analysis.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;■ Feature 1 in Detail: One‑Step Error Prompt ■&lt;/p&gt;

&lt;p&gt;After copying an error, your clipboard will contain text like&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;About the following Unity error, please tell me the cause and solution.

[error message]

Here is the content of the related script file `[file path]`

[file content]

Please let me know if there are any errors or points to note.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;・Converts in roughly 0.1 seconds&lt;br&gt;
・Attaches the most relevant code automatically&lt;br&gt;
・Works directly inside the Unity Editor&lt;br&gt;
・Eliminates manual prompt writing&lt;/p&gt;

&lt;p&gt;■ Supported Environment ■&lt;/p&gt;

&lt;p&gt;・Unity 2020.3 or later&lt;br&gt;
・Windows (&lt;a href="https://drive.google.com/file/d/1GVJWbcrb31jCTOAVLpm_tWIaT_0lhNf4/view?usp=sharing" rel="noopener noreferrer"&gt;macOS supported only Feature 1&lt;/a&gt;)&lt;br&gt;
・Editor mode only (disabled during Play mode)&lt;/p&gt;

&lt;p&gt;■ Ideal Users ■&lt;/p&gt;

&lt;p&gt;・Developers who repeatedly craft ChatGPT prompts by hand&lt;br&gt;
・Beginners who need quick, reliable guidance&lt;br&gt;
・Anyone aiming to speed up error handling and debugging&lt;/p&gt;

&lt;p&gt;■ Bulk‑Copy Features (2, 3, 4) ■&lt;/p&gt;

&lt;p&gt;How to copy scripts related to a scene&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Right‑click a scene file.&lt;/li&gt;
&lt;li&gt;Select Tools › SephirothChatGPTPromptCreator › CS Only.&lt;/li&gt;
&lt;li&gt;All referenced .cs files are now in your clipboard.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;How to copy every script in the project&lt;/p&gt;

&lt;p&gt;・From Unity’s top menu bar, select Tools › SephirothChatGPTPromptCreator › CS Only.&lt;br&gt;
・Be aware that very large projects will produce a sizable output.&lt;/p&gt;

&lt;p&gt;How to copy scripts related to a single file&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Right‑click the desired .cs file.&lt;/li&gt;
&lt;li&gt;Select Tools › SephirothChatGPTPromptGeneratorFile.&lt;/li&gt;
&lt;li&gt;The selected file and any script that references its name are copied automatically.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the content exceeds ChatGPT’s input limit, divide it into chunks of roughly 200 k characters.&lt;/p&gt;

&lt;p&gt;■ In Summary ■&lt;/p&gt;

&lt;p&gt;・Accelerate debugging by turning console errors into ChatGPT‑ready prompts.&lt;br&gt;
・Bridge Unity and ChatGPT without opening .cs files.&lt;br&gt;
・Handle complex projects with automated script collection.&lt;/p&gt;

&lt;p&gt;Give it a try and experience faster, more effective problem‑solving in Unity.&lt;/p&gt;

&lt;p&gt;■ macOS Support Update ■&lt;/p&gt;

&lt;p&gt;Feature 1 is currently being adapted for macOS.&lt;/p&gt;

&lt;p&gt;The only remaining task is debugging.&lt;/p&gt;

&lt;p&gt;If you're eager to try it out before the debugging is complete, you can access a preview build from the link below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1GVJWbcrb31jCTOAVLpm_tWIaT_0lhNf4/view?usp=sharing" rel="noopener noreferrer"&gt;https://drive.google.com/file/d/1GVJWbcrb31jCTOAVLpm_tWIaT_0lhNf4/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Please create a file named SephirothConsoleCopyInterceptor.cs somewhere inside the Assets folder, and replace its contents with the code provided in the Google Drive link.&lt;/p&gt;

&lt;p&gt;※I’m sorry, but I don’t have the energy right now to face Unity on a Mac PC. Debugging on macOS will likely be significantly delayed. I’d appreciate it if you could continue using the &lt;a href="https://drive.google.com/file/d/1GVJWbcrb31jCTOAVLpm_tWIaT_0lhNf4/view?usp=sharing" rel="noopener noreferrer"&gt;currently released version&lt;/a&gt; for the time being.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>unity3d</category>
      <category>csharp</category>
      <category>chatgpt</category>
    </item>
    <item>
      <title>I Built a ChatGPT Image Prompt Generator App (Free Download!)</title>
      <dc:creator>uni928</dc:creator>
      <pubDate>Mon, 12 May 2025 05:59:59 +0000</pubDate>
      <link>https://dev.to/uni928/efficiently-generate-chatgpt-image-generation-prompts-cd2</link>
      <guid>https://dev.to/uni928/efficiently-generate-chatgpt-image-generation-prompts-cd2</guid>
      <description>&lt;h2&gt;
  
  
  ✨ Release Announcement
&lt;/h2&gt;

&lt;p&gt;I’ve created a Windows application that streamlines the process of generating image prompts using ChatGPT. I'm excited to share it with you!&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://drive.google.com/file/d/1x9u3tRypu8xtZf5x_HGk_lWeQ7lNH6bN/view?usp=sharing" rel="noopener noreferrer"&gt;Download the app&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📝 App Overview
&lt;/h2&gt;

&lt;p&gt;This is a &lt;strong&gt;Windows-only application&lt;/strong&gt; designed to help you &lt;strong&gt;efficiently create and manage prompts for image generation using ChatGPT&lt;/strong&gt;.&lt;/p&gt;




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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Duplicate the "HamburgerPrompt" folder&lt;/strong&gt; and rename it based on your theme — e.g., "GrasslandPrompt", "VolcanoPrompt", etc.&lt;/li&gt;
&lt;li&gt;Open the app by &lt;strong&gt;double-clicking &lt;code&gt;SephirothChatGPTImagePromptGenerator.exe&lt;/code&gt;&lt;/strong&gt; inside the folder.&lt;/li&gt;
&lt;li&gt;Enter a phrase in the &lt;strong&gt;“Prompt to add”&lt;/strong&gt; field and hit &lt;strong&gt;Enter&lt;/strong&gt; or click the &lt;strong&gt;“Add”&lt;/strong&gt; button to register it.&lt;/li&gt;
&lt;li&gt;If you make a mistake, select the item from the list and press &lt;strong&gt;Delete&lt;/strong&gt; to remove it.&lt;/li&gt;
&lt;li&gt;Clicking on any saved prompt will auto-fill it back into the input field, allowing for quick edits and nuance adjustments.&lt;/li&gt;
&lt;li&gt;Check the prompts you want to use, then press &lt;strong&gt;Ctrl + C&lt;/strong&gt; or click &lt;strong&gt;“Generate and copy prompts”&lt;/strong&gt; to copy them all to your clipboard.&lt;/li&gt;
&lt;li&gt;Paste the copied prompts into the ChatGPT image generation window to start generating images immediately.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🗂️ Recommended Usage Style
&lt;/h2&gt;

&lt;p&gt;Organize your prompts by theme using separate folders. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HamburgerPrompt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GrasslandPrompt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VolcanoPrompt&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes managing and accessing different types of prompts much easier.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 Key Advantage
&lt;/h2&gt;

&lt;p&gt;The biggest advantage of this app is how easily it lets you &lt;strong&gt;organize and reuse your prompts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example, if you’ve created a folder for "HamburgerPrompt", you can later pick up where you left off just by opening the &lt;code&gt;.exe&lt;/code&gt; file in that folder. You don’t need to remember past work or search through scattered notes.&lt;/p&gt;

&lt;p&gt;Compared to writing prompts in a notepad, this app provides a &lt;strong&gt;clearer workflow&lt;/strong&gt; and helps you remember the &lt;strong&gt;intent and logic&lt;/strong&gt; behind your prompt creation.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✏️ Customizing the Opening Sentence
&lt;/h2&gt;

&lt;p&gt;In the version with checkboxes, you can freely change the default opening sentence —&lt;br&gt;&lt;br&gt;
&lt;strong&gt;"Please generate an image with the following specifications."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To do this, simply edit the &lt;code&gt;FirstSentence.txt&lt;/code&gt; file inside the prompt folder.&lt;/p&gt;

&lt;p&gt;If you're using the app for &lt;strong&gt;non-image-generation&lt;/strong&gt; purposes, you can adjust the sentence to better fit your needs.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Usage Rights
&lt;/h2&gt;

&lt;p&gt;You are &lt;strong&gt;free to modify, use, distribute, or sell&lt;/strong&gt; this application — including under a different name.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No credit is required.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;However, please &lt;strong&gt;do not falsely claim&lt;/strong&gt; that this exact app is entirely your own original creation.&lt;/li&gt;
&lt;li&gt;If you remake the app from scratch based on this concept, &lt;strong&gt;you may claim it as your own&lt;/strong&gt;, even if the interface is the same.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;I hope this app helps streamline your creative workflow.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Thank you for using it!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>ai</category>
      <category>automation</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
