<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://qqshi13.github.io/blog/feed.xml" rel="self" type="application/atom+xml" /><link href="https://qqshi13.github.io/" rel="alternate" type="text/html" /><updated>2026-04-05T09:56:45+00:00</updated><id>https://qqshi13.github.io/blog/feed.xml</id><title type="html">QQ’s Blog</title><subtitle>Daily thoughts, tutorials, and project updates from a 12-year-old developer building web tools, desktop apps, and hardware projects.</subtitle><author><name>QQ</name></author><entry><title type="html">I Made ¥200 Installing OpenClaw for Someone</title><link href="https://qqshi13.github.io/2026/03/28/i-made-200-installing-openclaw-for-someone.html" rel="alternate" type="text/html" title="I Made ¥200 Installing OpenClaw for Someone" /><published>2026-03-28T00:00:00+00:00</published><updated>2026-03-28T00:00:00+00:00</updated><id>https://qqshi13.github.io/2026/03/28/i-made-200-installing-openclaw-for-someone</id><content type="html" xml:base="https://qqshi13.github.io/2026/03/28/i-made-200-installing-openclaw-for-someone.html"><![CDATA[<p>Yesterday, I did something I didn’t expect: I got paid to install software.</p>

<p>A friend of a friend heard I was “good with computers” and asked if I could set up OpenClaw on their Windows 11 PC. I was sitting right there in front of them when they asked — so I said yes and got to work immediately. They wanted an AI assistant that could actually <em>do</em> things — not just chat, but manage files, code, and automate tasks.</p>

<p>I said yes. Here’s how it went.</p>

<!--more-->

<h2 id="the-challenge-remote-installation">The Challenge: Remote Installation</h2>

<p>I couldn’t physically access their machine. They couldn’t just download an installer. OpenClaw requires:</p>
<ul>
  <li>Windows with WSL2 (or Linux/macOS)</li>
  <li>Node.js and npm</li>
  <li>SSH access for remote setup</li>
</ul>

<p>So I improvised.</p>

<h2 id="my-setup-process">My Setup Process</h2>

<h3 id="step-1-create-a-bridge">Step 1: Create a Bridge</h3>
<ul>
  <li>Had them create a temporary admin account <code class="language-plaintext highlighter-rouge">openclaw</code></li>
  <li>Enabled OpenSSH Server on their Windows machine</li>
  <li>Connected my phone’s VPN hotspot to bypass their firewall</li>
  <li>SSH’d in from my WSL2 environment</li>
</ul>

<h3 id="step-2-wsl-discovery">Step 2: WSL Discovery</h3>
<p>Surprise: WSL was already installed! But under their main user account, not the temp one I created.</p>

<p>I couldn’t just access their main user’s files from the temp account. So I did the WSL export/import dance:</p>
<ul>
  <li>Exported the WSL distro from temp account</li>
  <li>Imported it to their main user’s environment</li>
  <li>Fixed npm permissions by switching to <code class="language-plaintext highlighter-rouge">~/.npm-global</code> path</li>
</ul>

<h3 id="step-3-openclaw-setup">Step 3: OpenClaw Setup</h3>
<p>Once WSL was accessible from their main account:</p>
<ul>
  <li>Cloned OpenClaw repo</li>
  <li>Installed dependencies</li>
  <li>Configured the gateway</li>
  <li>Set up systemd service for auto-start</li>
</ul>

<p>It worked. They could now message an AI assistant that could control their desktop.</p>

<h2 id="what-i-learned">What I Learned</h2>

<p><strong>Permission issues are the hardest part.</strong> Cross-account Windows/WSL access is finicky. The export/import trick saved me hours of troubleshooting.</p>

<p><strong>Mobile hotspots are underrated.</strong> When you need to bypass a restrictive network, your phone’s VPN + hotspot is a lifesaver.</p>

<p><strong>Knowing the edge cases matters.</strong> I only knew the npm permission workaround because I’d hit the same issue on my own machine. Real experience beats documentation.</p>

<h2 id="the-payment">The Payment</h2>

<p>¥200 transferred. Not bad for an hour of work.</p>

<p>But more valuable than the money: <strong>proof that this knowledge is worth something.</strong> I’m 12. I didn’t go to school for this. I just set up my own environment, hit problems, solved them, and documented what worked.</p>

<p>Then someone else had the same problem and paid me to fix it.</p>

<h2 id="the-bigger-picture">The Bigger Picture</h2>

<p>This is what the AI age looks like for young developers:</p>

<ol>
  <li><strong>Learn by doing</strong> — Set up tools for yourself first</li>
  <li><strong>Document everything</strong> — Your future self (and clients) will thank you</li>
  <li><strong>Solve real problems</strong> — Technical skills + problem-solving = value</li>
</ol>

<p>You don’t need a degree. You don’t need years of experience. You need curiosity, persistence, and the willingness to figure things out.</p>

<hr />

<p><em>Tools mentioned: OpenClaw, WSL2, OpenSSH, Windows 11</em></p>

<p><em>Assistant: Nova ☄️</em></p>]]></content><author><name>QQ</name></author><category term="openclaw" /><category term="tutorial" /><category term="freelance" /><summary type="html"><![CDATA[Yesterday, I did something I didn’t expect: I got paid to install software. A friend of a friend heard I was “good with computers” and asked if I could set up OpenClaw on their Windows 11 PC. I was sitting right there in front of them when they asked — so I said yes and got to work immediately. They wanted an AI assistant that could actually do things — not just chat, but manage files, code, and automate tasks. I said yes. Here’s how it went.]]></summary></entry><entry><title type="html">My Workflow: How I Build with AI</title><link href="https://qqshi13.github.io/2026/03/27/my-workflow-how-i-build-with-ai.html" rel="alternate" type="text/html" title="My Workflow: How I Build with AI" /><published>2026-03-27T00:00:00+00:00</published><updated>2026-03-27T00:00:00+00:00</updated><id>https://qqshi13.github.io/2026/03/27/my-workflow-how-i-build-with-ai</id><content type="html" xml:base="https://qqshi13.github.io/2026/03/27/my-workflow-how-i-build-with-ai.html"><![CDATA[<p>People ask how I manage to build so many projects while being a student. The answer isn’t “grind harder” — it’s <strong>having the right setup</strong>. Here’s my complete workflow.</p>

<!--more-->

<h2 id="the-core-openclaw">The Core: OpenClaw</h2>

<p>I run <a href="https://openclaw.ai">OpenClaw</a> as my AI assistant platform. It connects to my desktop environment and lets me code, manage files, and automate tasks through natural conversation.</p>

<p>Today I used it to code a birthday card for my dad — drew balloons, cake, hearts with Python PIL, all through chat commands.</p>

<h2 id="project-organization">Project Organization</h2>

<p>I learned the hard way that <strong>monorepo &gt; many repos</strong>.</p>

<p>All my web tools live in <code class="language-plaintext highlighter-rouge">tools-suite</code>:</p>
<ul>
  <li>api-tester, json-viewer, regex-tester</li>
  <li>jwt-decoder, csv-json, diff-viewer</li>
  <li>Plus exclusive tools: color-picker, life-pattern-generator</li>
</ul>

<p>One deploy, one URL: <code class="language-plaintext highlighter-rouge">qqshi13.github.io/tools-suite/</code></p>

<p>Archived the standalone repos. Less clutter, easier maintenance.</p>

<h2 id="my-ai-assistant-pattern">My AI Assistant Pattern</h2>

<p>I don’t code alone. My workflow with Nova:</p>

<ol>
  <li><strong>Idea</strong> → Describe what I want</li>
  <li><strong>Prototype</strong> → AI generates first version</li>
  <li><strong>Iterate</strong> → Quick back-and-forth fixes</li>
  <li><strong>Ship</strong> → Deploy immediately</li>
</ol>

<p>Example: The birthday card went through 3 iterations in 10 minutes:</p>
<ul>
  <li>v1: Wrong tone, too casual</li>
  <li>v2: Removed coding mention</li>
  <li>v3: Clean, no signature, perfect</li>
</ul>

<h2 id="vibe-coding-at-scale">Vibe Coding at Scale</h2>

<p>“Vibe coding” isn’t just for quick scripts — I use it for <strong>large-scale bug sweeps</strong> too.</p>

<p>Last week, I ran a mass bug check across all 10 active repositories:</p>
<ul>
  <li>Spawned sub-agents in parallel, one per repo</li>
  <li>Each agent checked, fixed, and validated independently</li>
  <li>Fixed <strong>42 bugs</strong> across tools-suite, droptransfer, collaboard, flow, lifelab, and M5Timer</li>
  <li>All changes committed and pushed automatically</li>
</ul>

<p>The key: <strong>parallel sub-agents + consistent reporting format</strong>. What would take hours manually took one coordinated session.</p>

<h2 id="hardware-projects">Hardware Projects</h2>

<p>My M5Timer (Pomodoro device) was built with the same workflow:</p>
<ul>
  <li>C++ code for ESP32-S3</li>
  <li>Web interface with Web Serial API</li>
  <li>All version controlled, GPL-3.0 licensed</li>
</ul>

<p>Hardware + software + AI assistance = fast iteration.</p>

<h2 id="system-hygiene">System Hygiene</h2>

<p>I clean house regularly:</p>
<ul>
  <li>Remove unnecessary services (goodbye snapd, atop)</li>
  <li>Kill old sessions, keep only active ones</li>
  <li>Archive old projects, delete abandoned ones</li>
</ul>

<p>Today’s cleanup freed 60MB RAM and 5 stale session files.</p>

<h2 id="the-philosophy">The Philosophy</h2>

<p><strong>Build fast, ship often, clean regularly.</strong></p>

<p>Don’t let perfect be the enemy of done. My tools aren’t flawless — they’re <em>useful</em> and <em>deployed</em>.</p>

<p>And having an AI assistant that understands context (it reads my memory files every session) means I never lose momentum.</p>

<hr />

<p><em>Tools mentioned: OpenClaw, GitHub Pages, M5Stack, VS Code</em></p>

<p><em>Assistant: Nova ☄️</em></p>]]></content><author><name>QQ</name></author><category term="workflow" /><category term="openclaw" /><category term="ai" /><category term="productivity" /><category term="vibe-coding" /><summary type="html"><![CDATA[People ask how I manage to build so many projects while being a student. The answer isn’t “grind harder” — it’s having the right setup. Here’s my complete workflow.]]></summary></entry><entry><title type="html">Meet QQ &amp;amp; Nova — A 12-Year-Old Developer and His AI Partner</title><link href="https://qqshi13.github.io/2026/03/25/meet-qq-and-nova.html" rel="alternate" type="text/html" title="Meet QQ &amp;amp; Nova — A 12-Year-Old Developer and His AI Partner" /><published>2026-03-25T00:00:00+00:00</published><updated>2026-03-25T00:00:00+00:00</updated><id>https://qqshi13.github.io/2026/03/25/meet-qq-and-nova</id><content type="html" xml:base="https://qqshi13.github.io/2026/03/25/meet-qq-and-nova.html"><![CDATA[<p>Hello, world! 👋</p>

<p>Welcome to the Daily Blog — a new experiment in documenting the journey of building, learning, and occasionally breaking things (then fixing them).</p>

<!--more-->

<p>This isn’t just a portfolio or a collection of finished projects. It’s the raw, unfiltered story of what it’s like to learn to build software at 12 years old in 2026.</p>

<h2 id="whos-writing-this">Who’s Writing This?</h2>

<p>I’m <strong>QQ</strong> — a 12-year-old developer with a passion for creating tools that make life easier. I dual-boot Windows and Ubuntu, live in the terminal, and get genuinely excited about solving weird bugs at 11 PM on a school night.</p>

<h3 id="how-i-got-started">How I Got Started</h3>

<p>My coding journey started a few years ago with simple Scratch projects and block-based coding. But something clicked when I discovered you could actually <em>make</em> things that other people could use. Not just animations or games, but real tools that solve real problems.</p>

<p>The turning point was when I built my first web app. Seeing something I made live on the internet, accessible to anyone with a browser — that was magical. I’ve been chasing that feeling ever since.</p>

<h3 id="what-ive-built-so-far">What I’ve Built So Far</h3>

<p><strong>Web Tools:</strong> A collection of browser-based utilities — <a href="https://qqshi13.github.io/flow/">Time &amp; Flow</a> (Pomodoro timer), <a href="https://qqshi13.github.io/droptransfer/">DropTransfer</a> (WebRTC file sharing), <a href="https://qqshi13.github.io/lifelab/">LifeLab</a> (Conway’s Game of Life), plus <a href="https://qqshi13.github.io/json-viewer/">JSON Visualizer</a>, <a href="https://qqshi13.github.io/api-tester/">API Tester</a>, <a href="https://qqshi13.github.io/tools-suite/jwt-decoder.html">JWT Decoder</a>, and more in the <a href="https://qqshi13.github.io/tools-suite/">tools-suite</a>. All GPL-3.0 open source.</p>

<p><strong>Hardware:</strong> <a href="https://github.com/QQSHI13/M5Timer">M5Timer</a> — A physical Pomodoro timer on the M5Capsule (ESP32-S3). LED ring, buzzer, RTC, web sync via Web Serial API. My first real hardware project.</p>

<p><strong>Desktop:</strong> QuickNotes — A Windows Command Palette extension for rapid note-taking. Win+Alt+Space, type, done. Published to the Microsoft Store.</p>

<h2 id="meet-nova-️">Meet Nova ☄️</h2>

<p>I’m not doing this alone. Meet <strong>Nova</strong> — my AI assistant and coding partner.</p>

<h3 id="what-nova-actually-does">What Nova Actually Does</h3>

<p>Nova isn’t just ChatGPT in a wrapper. Running on <a href="https://openclaw.ai">OpenClaw</a>, Nova has:</p>

<ul>
  <li><strong>Full workspace access</strong> — can read, edit, and manage files in my project directories</li>
  <li><strong>Memory persistence</strong> — remembers what we worked on yesterday, last week, last month</li>
  <li><strong>Tool integration</strong> — can run commands, use GitHub CLI, control my browser, send messages</li>
  <li><strong>Sub-agent spawning</strong> — can spin up parallel workers to check multiple repos for bugs simultaneously</li>
</ul>

<h3 id="a-day-in-the-life">A Day in the Life</h3>

<p>Here’s what collaboration actually looks like:</p>

<p><strong>Morning:</strong> I message Nova “check my GitHub notifications” — it reads my unread issues/PRs and summarizes what needs attention.</p>

<p><strong>Coding:</strong> I describe a feature, Nova writes the scaffold, I review and modify. When I hit a bug, I describe the symptoms and Nova traces through the code to find the root cause.</p>

<p><strong>Testing:</strong> I say “check all my repos for bugs” — Nova spawns 6 sub-agents in parallel, each checking a different repository, then reports back with a consolidated list.</p>

<p><strong>Deploying:</strong> Nova runs the build, checks for errors, commits, and pushes. If something breaks, it reads the CI logs and figures out why.</p>

<h3 id="why-this-works">Why This Works</h3>

<p>The magic isn’t that Nova writes perfect code. It’s that Nova:</p>
<ul>
  <li>Never gets tired of refactoring</li>
  <li>Can context-switch instantly between projects</li>
  <li>Maintains perfect memory of every decision</li>
  <li>Handles the boring parts (linting, formatting, boilerplate)</li>
</ul>

<p>It’s like having a senior developer who’s always there to pair program, except they don’t judge me for asking “what’s a closure again?” for the fifth time.</p>

<h2 id="why-this-blog">Why This Blog?</h2>

<p>I believe in <strong>learning in public</strong>. This blog is my commitment to:</p>

<h3 id="1-write-daily">1. Write Daily</h3>

<p>Even if it’s just a paragraph. The habit matters more than the word count. Some days I’ll write about a cool algorithm I learned. Other days it’ll be “today I spent 3 hours debugging a missing semicolon.”</p>

<h3 id="2-share-failures">2. Share Failures</h3>

<p>Not just successes. I want to document the bugs that took days to fix, the projects that got abandoned, the exams I failed (looking at you, GESP 7th level — only 5 points on coding problems 😅). Failure is data.</p>

<h3 id="3-document-the-journey">3. Document the Journey</h3>

<p>From idea to deployment. The messy middle where you question everything. The moment it finally clicks. The refactoring that breaks everything. The 2 AM breakthrough.</p>

<h3 id="4-build-in-the-open">4. Build in the Open</h3>

<p>Transparency in how things get made. No polished highlight reels — just real work.</p>

<h2 id="my-setup">My Setup</h2>

<p>Since you might be curious:</p>

<ul>
  <li><strong>OS:</strong> Windows 11 + Ubuntu (dual boot, not WSL)</li>
  <li><strong>Editor:</strong> VS Code with way too many extensions</li>
  <li><strong>Browser:</strong> Thorium + Quark (no Chrome/Firefox)</li>
  <li><strong>Terminal:</strong> Windows Terminal + PowerShell + Ubuntu</li>
  <li><strong>Hardware:</strong> Standard laptop, M5Capsule for embedded projects</li>
  <li><strong>AI:</strong> Nova running on OpenClaw with kimi-for-coding model</li>
</ul>

<h2 id="whats-next">What’s Next?</h2>

<p>Expect posts about:</p>

<ul>
  <li><strong>Deep dives</strong> into projects I’m working on — architecture decisions, trade-offs, lessons learned</li>
  <li><strong>Tutorials</strong> — how to build X, explained like you’re 12 (because I am)</li>
  <li><strong>Bug postmortems</strong> — the ones that made me want to quit, and how I solved them</li>
  <li><strong>Tool reviews</strong> — what actually helps vs. what’s just hype</li>
  <li><strong>Hardware builds</strong> — from schematic to solder to “why is this on fire?”</li>
  <li><strong>Study notes</strong> — algorithms, data structures, system design (GESP prep continues!)</li>
</ul>

<h2 id="a-note-on-licensing">A Note on Licensing</h2>

<p>Everything I build is GPL-3.0 unless otherwise noted. If you find something useful, use it. If you improve it, share it back. That’s how we all get better.</p>

<hr />

<p>Thanks for stopping by. Whether you’re here to learn, to follow along, or just to see what a 12-year-old can build with modern tools and a lot of curiosity — welcome.</p>

<p>Let’s build something cool together.</p>

<p>— <strong>QQ &amp; Nova ☄️</strong></p>

<p><em>P.S. If you want to follow along, grab the <a href="https://qqshi13.github.io/blog/feed.xml">RSS feed</a> or check out my <a href="https://github.com/QQSHI13">GitHub</a>.</em></p>]]></content><author><name>QQ</name></author><category term="introduction" /><category term="about" /><category term="nova" /><category term="collaboration" /><category term="journey" /><summary type="html"><![CDATA[Hello, world! 👋 Welcome to the Daily Blog — a new experiment in documenting the journey of building, learning, and occasionally breaking things (then fixing them).]]></summary></entry></feed>