<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Rich's Blog</title><link>https://richlin-blog.pages.dev/posts/</link><description>Recent content in Posts on Rich's Blog</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Thu, 30 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://richlin-blog.pages.dev/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Stop Shipping Vibes</title><link>https://richlin-blog.pages.dev/posts/260430_magic_wand_test_v10/</link><pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate><guid>https://richlin-blog.pages.dev/posts/260430_magic_wand_test_v10/</guid><description>&lt;p&gt;You open Claude Code. You type: &amp;ldquo;make this UI pretty.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It picks new colors. It tweaks the spacing. It swaps the font. It runs the build. Thirty minutes pass.&lt;/p&gt;
&lt;p&gt;You open the page.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s not what you were thinking. It&amp;rsquo;s not pretty. It&amp;rsquo;s still ugly.&lt;/p&gt;
&lt;p&gt;You blame Claude Code for &amp;ldquo;not understanding what you wanted.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It understood the words. The problem was: you didn&amp;rsquo;t.&lt;/p&gt;
&lt;p&gt;Claude Code is fast enough to ship code in minutes. The bottleneck is no longer typing. It&amp;rsquo;s the prompt you typed in.&lt;/p&gt;</description><content:encoded><![CDATA[<p>You open Claude Code. You type: &ldquo;make this UI pretty.&rdquo;</p>
<p>It picks new colors. It tweaks the spacing. It swaps the font. It runs the build. Thirty minutes pass.</p>
<p>You open the page.</p>
<p>It&rsquo;s not what you were thinking. It&rsquo;s not pretty. It&rsquo;s still ugly.</p>
<p>You blame Claude Code for &ldquo;not understanding what you wanted.&rdquo;</p>
<p>It understood the words. The problem was: you didn&rsquo;t.</p>
<p>Claude Code is fast enough to ship code in minutes. The bottleneck is no longer typing. It&rsquo;s the prompt you typed in.</p>
<p>If your prompt is fuzzy, your diff is fuzzy. The skill that fixes this is called <strong>clarify</strong>.</p>
<hr>
<p><strong>clarify</strong> is a Claude Code skill that enforces one rule: <em>no plan, no scaffold, no code, until the ask is observable, named, and unambiguous.</em></p>
<p>It runs before any other skill. If your prompt fails its three-question test, clarify refuses to hand off to a planner. It writes a Dissolution Note and stops.</p>
<p>The point isn&rsquo;t the skill. The point is the gate.</p>
<hr>
<p>clarify converts fuzzy engineering asks into asks Claude Code can act on. Six examples from my actual queue:</p>
<ul>
<li>&ldquo;Refactor the auth middleware&rdquo; becomes &ldquo;extract auth from <code>routes.go</code> so the existing 4 routes can each be unit-tested without a real session.&rdquo;</li>
<li>&ldquo;Make the build faster&rdquo; becomes &ldquo;CI on <code>main</code> finishes in under 8 minutes for the next 10 consecutive runs.&rdquo;</li>
<li>&ldquo;Clean up the database layer&rdquo; becomes &ldquo;the 23 raw SQL strings in <code>repo/</code> move to typed query builders, no test regressions.&rdquo;</li>
<li>&ldquo;Add caching&rdquo; becomes &ldquo;GET /products/:id returns from Redis when warm; p95 of the endpoint drops from 240ms to under 50ms in load tests.&rdquo;</li>
<li>&ldquo;Modernize the frontend&rdquo; becomes &ldquo;the 14 class components in <code>src/views/</code> become hooks-based functional components, no failing tests, bundle stays under 200kb.&rdquo;</li>
<li>&ldquo;Improve error handling&rdquo; becomes &ldquo;every catch in <code>api/</code> either rethrows with context or returns a typed error — no naked <code>catch (e) {}</code> blocks remain.&rdquo;</li>
</ul>
<p>Each rewrite turns a feeling into a diff Claude Code can produce and you can verify.</p>
<p>If your ask cannot be rewritten this way, do not run any planning skill. Do not type any prompt. Go back to your editor and rewrite the ask. Or back to whoever asked you, and rewrite together.</p>
<hr>
<p>clarify works because it cuts the path between vague intent and shipped code.</p>
<p>The default Claude Code workflow looks like: prompt → plan → scaffold → diff → PR. Each step compounds the input. A fuzzy prompt becomes a fuzzy plan, which becomes a confidently-typed scaffold, which becomes a 400-line diff that <em>looks</em> like progress but isn&rsquo;t tied to any verifiable outcome.</p>
<p>clarify breaks the chain at step zero.</p>
<p>When you invoke it, it scans your prompt for three things. Undefined words (&ldquo;better&rdquo;, &ldquo;cleaner&rdquo;, &ldquo;modern&rdquo;). Unverified assumptions (&ldquo;it&rsquo;s slow because of the DB&rdquo;). Missing names (&ldquo;the team wants this&rdquo;). If it finds any, it stops the chain and asks you to fix the prompt before any other skill runs.</p>
<p>Claude Code never spends compute on a question you can&rsquo;t answer. You stop accumulating diffs that you can&rsquo;t verify. The PRs you ship correspond to specific things you actually wanted.</p>
<p>The mechanism is structural, not intelligent. clarify isn&rsquo;t smart. It&rsquo;s just a gate. The gate is the IP.</p>
<p>If you&rsquo;ve ever shipped a refactor you couldn&rsquo;t explain a week later, you didn&rsquo;t have a Claude Code problem. You had a question problem. clarify makes the question expensive enough that you do the work upstream — when it costs you 5 minutes, not 3 days.</p>
<hr>
<p>Hat tip to Elon Musk&rsquo;s Algorithm, where step one is <em>&ldquo;question every requirement — and every requirement must come from a name, not a department.&rdquo;</em> And to Jesse Vincent&rsquo;s brainstorming skill, which pioneered the hard-gate pattern (refusing to plan until alignment is reached). clarify combines the two specifically for the moment Claude Code is about to write code.</p>
<hr>
<p>Once clarify is automatic, three extensions emerge.</p>
<ul>
<li><strong>Run it on your own commits before review.</strong> Take any PR description from your last week. If it doesn&rsquo;t pass clarify&rsquo;s three-question test, the PR did something you couldn&rsquo;t define. Worth noticing.</li>
<li><strong>Run it on tickets before estimation.</strong> Sprint planning gets wildly more accurate when you refuse to estimate any ticket whose acceptance criteria don&rsquo;t survive the gate. The team protests for one sprint. Then they don&rsquo;t.</li>
<li><strong>Run it in your head before the first prompt.</strong> The fastest version of clarify is a 90-second pause before the first prompt of a coding session, asking what specifically you&rsquo;d see if the session went well.</li>
</ul>
<p>The skill is here: <strong><a href="https://github.com/richlin/clarify">github.com/richlin/clarify</a></strong>.</p>
<p>It doesn&rsquo;t write your code. It refuses to write your code until the ask is shaped enough for code to be the right next move.</p>
<hr>
<p>When you let Claude Code run on vibes, you ship vibes. When you make it run on observables, you ship something a third party can verify.</p>
<p>Reminder to self: <em>if you can&rsquo;t say what done looks like, Claude Code can&rsquo;t either.</em></p>
<p>What&rsquo;s a prompt sitting in your draft pane right now that wouldn&rsquo;t survive clarify?</p>
]]></content:encoded></item><item><title>2023 August quotes and thoughts</title><link>https://richlin-blog.pages.dev/posts/2308_thoughts/</link><pubDate>Thu, 31 Aug 2023 00:00:00 +0000</pubDate><guid>https://richlin-blog.pages.dev/posts/2308_thoughts/</guid><description>&lt;p&gt;test test&lt;/p&gt;</description><content:encoded>&lt;p>test test&lt;/p>
</content:encoded></item><item><title>Things I will do before I die</title><link>https://richlin-blog.pages.dev/posts/bucket_list/</link><pubDate>Wed, 30 Aug 2023 00:00:00 +0000</pubDate><guid>https://richlin-blog.pages.dev/posts/bucket_list/</guid><description>&lt;h1 id="because-i-will-die-some-day"&gt;Because I will die some day&lt;/h1&gt;
&lt;p&gt;No evidence shows that I will live forever.&lt;/p&gt;
&lt;h1 id="things-i-will-do-before-i-die"&gt;Things I will do before I die&lt;/h1&gt;
&lt;p&gt;Update: 2023-08-13&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Watch a Man City soccer game at Etihad Stadium&lt;/li&gt;
&lt;li&gt;Watch a haka dance in New Zealand&lt;/li&gt;
&lt;li&gt;Walk the Camino de Santiago&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;</description><content:encoded><![CDATA[<h1 id="because-i-will-die-some-day">Because I will die some day</h1>
<p>No evidence shows that I will live forever.</p>
<h1 id="things-i-will-do-before-i-die">Things I will do before I die</h1>
<p>Update: 2023-08-13</p>
<ul>
<li>Watch a Man City soccer game at Etihad Stadium</li>
<li>Watch a haka dance in New Zealand</li>
<li>Walk the Camino de Santiago</li>
<li></li>
</ul>
]]></content:encoded></item><item><title>Book notes: The Comfort Crisis</title><link>https://richlin-blog.pages.dev/posts/230813_comfort_crisis/</link><pubDate>Sun, 13 Aug 2023 00:00:00 +0000</pubDate><guid>https://richlin-blog.pages.dev/posts/230813_comfort_crisis/</guid><description>&lt;h1 id="takeaways"&gt;Takeaways&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Pilot test Misogi in things I am doing&lt;/li&gt;
&lt;li&gt;Start logging the carolies of food I eat&lt;/li&gt;
&lt;li&gt;Start writing my bucket list&lt;/li&gt;
&lt;li&gt;Get comfortable with doing nothing&lt;/li&gt;
&lt;li&gt;Limit my screentime&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="notes"&gt;Notes&lt;/h1&gt;
&lt;h3 id="misogi---do-the-hard-thing"&gt;Misogi - do the hard thing&lt;/h3&gt;
&lt;p&gt;In our model of &lt;strong&gt;misogi&lt;/strong&gt;, there are only two rules. Rule number one is that it has to be really hard. Rule number two is that you can&amp;rsquo;t die. How to determine if something is hard enough? We generally guided by the idea that you should have &lt;strong&gt;fifty percent chance of success&lt;/strong&gt; &amp;ndash; if you do everything right. If you never run more than 10 miles, think you could probably run 15, but are iffy on whether you could run 20, then 25 miles is probably a misogi.&lt;/p&gt;</description><content:encoded><![CDATA[<h1 id="takeaways">Takeaways</h1>
<ul>
<li>Pilot test Misogi in things I am doing</li>
<li>Start logging the carolies of food I eat</li>
<li>Start writing my bucket list</li>
<li>Get comfortable with doing nothing</li>
<li>Limit my screentime</li>
</ul>
<h1 id="notes">Notes</h1>
<h3 id="misogi---do-the-hard-thing">Misogi - do the hard thing</h3>
<p>In our model of <strong>misogi</strong>, there are only two rules. Rule number one is that it has to be really hard. Rule number two is that you can&rsquo;t die. How to determine if something is hard enough? We generally guided by the idea that you should have <strong>fifty percent chance of success</strong> &ndash; if you do everything right. If you never run more than 10 miles, think you could probably run 15, but are iffy on whether you could run 20, then 25 miles is probably a misogi.</p>
<p>This morning could have been bad. But moments like that&hellip; you might find that they make everything else more colorful and more manageable.</p>
<p>The harder you work for something, the happier you&rsquo;ll be about it.</p>
<h3 id="boredom">Boredom</h3>
<p>Tolstroy had this great quote in <em>Anna Karenina</em> that says boredom is a <code>desire for desires</code>, so boredom is a motivational state.</p>
<p>Unfocused mode occurs when we&rsquo;re not paying attention. It&rsquo;s inward mind-wandering, a rest state that restores and rebuilds the reources needed to work better and more efficiently in the focused state. Time in unfocused mode is critical to get shit done, tap into creativity, process complicated information, and more.</p>
<p>Five stages of receptionless greif. Denial, anger, bargining, depression, and acceptance.</p>
<p>Time in nature is a hell of a way to calm the turbulent sea inside our minds.</p>
<h3 id="hunger">Hunger</h3>
<p>Get comfortable with discomfortable.</p>
<p>Processed food is not always junk, but junk is usually processed.</p>
<p>People should be doing less and elimininating limiters to progress.</p>
<p>I quickly &lsquo;solved&rsquo; hundreds of problems just by virtue of improving a person&rsquo;s aweareness of their own behavior.</p>
<p>People are aweful at estimating portion sizes.</p>
<p>Deal with stress by going for a walk instead of eating. It relieves more stress and is health promoting.</p>
<p>The least filling food was croissants, while the most filling was plain white potatoes. A small croissant and a medium potato both have about 170 calories. You&rsquo;d have to eat about <strong>7</strong> croissants, <strong>1190</strong> carolies, to experience the same fullness you&rsquo;d get from a single potato. The key quality that make a food filling: how heavy its 240 calorie serving size was.</p>
<p>At the extreme opposite end of the spectrum there are oils, like olive oil or canola oil. A pound of oil has <strong>4000</strong> calories, when you are making a direct comparison of these foods, there &rsquo;s about a <strong>6500%</strong> difference in how many calories a pound of these foods have.</p>
<p>Junk food such as chips, candy bars, desserts, and even energy bars, for example, have about <strong>2000</strong> calories per pound.
Processed grains like breads and crackers have about <strong>1500</strong>, while unprocessed grains like cooked rice and oats have <strong>500</strong>.
Tubers, fruits, and vegetables have about <strong>400</strong>, <strong>300</strong>, and <strong>120</strong>, respectively.</p>
<p>A person should mostly be eating unprocessed whole grains and tubers, fruits and vegetables, and lowish-fat animal protein.</p>
<p>An average plate could be a quarter animal protein, a quarter whole grains or tubers, and half vegetables or fruit.</p>
<p>Acceptance is the answer to all my problems today.</p>
<h3 id="death">Death</h3>
<p>The country of Bhutan has made it part of their national curriculum to think about death anywhere from 1 to 3 times daily.</p>
<p>Death is part of everyday life.</p>
<p>Don&rsquo;t you want to know that there is a cliff? Because only then can we change our course. We could take a more scenic route, notice the beauty of the trail before it ends, says the things we truly want to say to the people we are talking it with.</p>
<p>All things change. All individual things pass away.</p>
<p>Gratitude has been shown to reduce anxiety and even ailments like heart disease.</p>
<p>thik of mitakpa (death) three times each day.</p>
<p>Remember, death can come at any time. Any time.</p>
<h3 id="health">Health</h3>
<p>In misogi you will reach this edge where you are convinced you have nothing left, but you will keep going anyway. And then you will look back and you will be way out beyond what you were certain was your edge. You won&rsquo;t forget that.</p>
<p>The truth is, every human body can achieve amazing physical feats when it is forced to.</p>
<p>A figure that shows just how predisposed humans are to default to comfort: 2. That is the percent of people who take the stairs when they also have the option to take an escalator.</p>
<p>Our lack of either exercise in general or cognitive demands during exercise may lead to capacity reductions or suboptimal capacity maintenance in the brain similar to those seen in otehr organ systems. Our brains adaptively reduce capacity as part of an energy-saving strategy, leding to age-related brain atrophy.</p>
<p>The increased challenge of walking or running on untamed, uneven ground forces people to burn an average of 28 percent more energy per step compared to paved ground.</p>
<p>Doing physical hard things is an enormous life hack. Do hard things and the rest of life gets easier and you apprecaite it all the more.</p>
<p>Swedish research found that the strongest among a massive group of men of all ages were the least likely to die over two decades.</p>
<p>People just need to be more active generally.</p>
<p>Without conscious discomfort and porposeful exercise - a forceful push against comfort creep - we will only continue to become weaker and sicker.</p>
<p>A daily shower with antibacterial soap &ldquo;upsets the balance of microorganisms on the ski and encourages the emergence of hardier, less friendly organisms that are more resistant to antibiotics. Frequent baths or showers throughout a lifetime may reduce the ability of the immune system to do its job.</p>
]]></content:encoded></item><item><title>How to create a blog using Github Pages and Hugo in 10 minutes</title><link>https://richlin-blog.pages.dev/posts/230811_create_new_blog/</link><pubDate>Fri, 11 Aug 2023 00:00:00 +0000</pubDate><guid>https://richlin-blog.pages.dev/posts/230811_create_new_blog/</guid><description>&lt;p&gt;Ah, the age-old tradition of starting a blog. Whether you&amp;rsquo;re doing it to share your favorite cat photos, write about your ever-so-exciting daily life, or discuss something actually serious, you&amp;rsquo;re in luck!&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s dive into the realm of Hugo and GitHub to create a blog that even your grandma would be proud to share on Facebook.&lt;/p&gt;
&lt;h1 id="initial-setup"&gt;Initial setup&lt;/h1&gt;
&lt;h3 id="step-1-set-up-2-github-repos-like-a-pro"&gt;Step 1: Set up 2 Github repos like a Pro&lt;/h3&gt;
&lt;p&gt;Why one when you can have two? That&amp;rsquo;s right, folks!&lt;/p&gt;</description><content:encoded><![CDATA[<p>Ah, the age-old tradition of starting a blog. Whether you&rsquo;re doing it to share your favorite cat photos, write about your ever-so-exciting daily life, or discuss something actually serious, you&rsquo;re in luck!</p>
<p>Let&rsquo;s dive into the realm of Hugo and GitHub to create a blog that even your grandma would be proud to share on Facebook.</p>
<h1 id="initial-setup">Initial setup</h1>
<h3 id="step-1-set-up-2-github-repos-like-a-pro">Step 1: Set up 2 Github repos like a Pro</h3>
<p>Why one when you can have two? That&rsquo;s right, folks!</p>
<ul>
<li><strong>test_blog</strong>: Where blogs and dreams live.</li>
<li><strong>test_site.github.io</strong>: Sounds techy, right? It&rsquo;s the repo for showing off! One trhing to remember, it has to come with the suffix <code>github.io</code> in order to be published in Github properly.</li>
</ul>
<p>And clone both repos to your local, because we will need to edit.</p>
<h3 id="step-2-install-hugo-not-the-boss">Step 2: Install Hugo (Not the Boss)</h3>
<p>Sorry, not the fashion brand.</p>
<p>Hugo is a static site generator that simplifies the creation of websites. Installing it on your system is the first step in creating your new site.</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">brew install hugo</span></span></code></pre></div><h3 id="step-3-create-a-hugo-site-no-nnot-a-dating-profile">Step 3: Create a Hugo site (No, Nnot a dating profile)</h3>
<p>Time to initialize our blog love child. Naming it <code>blog</code> (Because we&rsquo;re creative like THAT) inside the first repo.</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl"><span class="nb">cd</span> test_blog
</span></span><span class="line"><span class="cl">hugo new site blog </span></span></code></pre></div><h4 id="step-4-add-themes-or-how-to-dress-your-blog">Step 4: Add themes (Or how to dress your blog)</h4>
<p>Let&rsquo;s beautify your blog with the <strong>PaperMod</strong> theme, one of the many themes Hugo offers.<br>
<strong>Note</strong>: you can find detailed installation guide here: <a href="https://github.com/adityatelange/hugo-PaperMod/wiki/Installation">https://github.com/adityatelange/hugo-PaperMod/wiki/Installation</a></p>
<ul>
<li><strong>Install</strong>: Because copying others&rsquo; fashion sense is fine online!</li>
</ul>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">git clone https://github.com/adityatelange/hugo-PaperMod themes/PaperMod --depth<span class="o">=</span><span class="m">1</span></span></span></code></pre></div><ul>
<li><strong>Edit</strong>: Here&rsquo;s where you make it your own without breaking anything (hopefully). All the themes are configured in <code>hugo.yaml</code> or <code>hugo.toml</code>file. There are a lot of things you can config, below are the most important ones. You can add copy all other configs from theme page: <a href="https://github.com/adityatelange/hugo-PaperMod/wiki/Installation#sample-configyml">https://github.com/adityatelange/hugo-PaperMod/wiki/Installation#sample-configyml</a></li>
</ul>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">baseURL</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;https://test_site.github.io/&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">languageCode</span><span class="p">:</span><span class="w"> </span><span class="s1">&#39;en-us&#39;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="nt">theme</span><span class="p">:</span><span class="w"> </span><span class="s2">&#34;PaperMod&#34;</span></span></span></code></pre></div><h3 id="step-5-create-the-first-blog-the-hello-world-of-your-social-life">Step 5: Create the first blog (The &ldquo;Hello, World!&rdquo; of your social life)</h3>
<p>This will create the first blog post in the folder</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo new posts/test.md </span></span></code></pre></div><h3 id="step-6-test-website-yes-you-have-to-test-it">Step 6: Test website (Yes, you have to test it)</h3>
<p>Preview your masterpiece:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo server</span></span></code></pre></div><h3 id="step-7-connect-2-repos-because-they-should-talk">Step 7: Connect 2 repos (because they should talk)</h3>
<p>Get these repos connected. It&rsquo;s like setting up a playdate, but for code.</p>
<ul>
<li>Move to the test_site.github.io repo, edit readme file, and push to Github. You will need to have 1 commit for this to work properly.</li>
</ul>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> test_site.github.io
</span></span><span class="line"><span class="cl">git add .
</span></span><span class="line"><span class="cl">git commit -m <span class="s1">&#39;inital commit&#39;</span>
</span></span><span class="line"><span class="cl">git push</span></span></code></pre></div><ul>
<li>Then move back to the location where you</li>
</ul>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> ..
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> test_blog<span class="se">\b</span>log
</span></span><span class="line"><span class="cl">git submodule add -b main https://github.com/xxxxx/test_site.github.io.git public </span></span></code></pre></div><h3 id="step-8-final-testing-because-once-wasnt-enough">Step 8: Final Testing (Because Once Wasn&rsquo;t Enough)</h3>
<p>Double-check, triple-check, and then generate!</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo server</span></span></code></pre></div><p>Generate static files. This command will automatically generate a lot of files inside <code>public</code> folder.</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo -t PaperMod
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> public 
</span></span><span class="line"><span class="cl">git add .
</span></span><span class="line"><span class="cl">git commit -m <span class="s1">&#39;generate static files&#39;</span>
</span></span><span class="line"><span class="cl">git push origin main</span></span></code></pre></div><p><strong>Now, all local work are done.</strong></p>
<h3 id="step-9-publish-the-website-in-github">Step 9: Publish the website in Github</h3>
<p>Now go to the repo within Github, find <code>settings &gt; pages</code>, and voila! Your webpage is now hanging out at <strong>test_site.github.io</strong>.</p>
<h3 id="step-10-you-did-it-probably">Step 10: You Did It! (Probably)</h3>
<p>Congrats on your new blog! Now go out there and blog like no one&rsquo;s reading (because let&rsquo;s be honest, it might take a while before they do).</p>
<p>Happy blogging, you absolute legend!</p>
<h1 id="publish-a-new-post">Publish a new post</h1>
<h3 id="step-1-write-a-blog-post-or-a-novel-whos-judging">Step 1: Write a blog post (Or a novel, who&rsquo;s judging?)</h3>
<p>Look at you, the next Shakespeare of the blogging world!</p>
<ul>
<li><strong>Create the Post</strong>: There are 2 ways to do this, you can choose either one
<ul>
<li>
<ol>
<li>Simply create an MD file under the <code>/content/posts/</code> folder.</li>
</ol>
</li>
<li>
<ol start="2">
<li>Use Hugo to create. It&rsquo;s like magic, but geekier.</li>
</ol>
</li>
</ul>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo new --kind post posts/test.md </span></span></code></pre></div></li>
<li><strong>Push Draft Versions</strong>: Feel like saving your progress? Do it just like you&rsquo;re writing code because, well, you are.</li>
</ul>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git add .
</span></span><span class="line"><span class="cl">git commit 
</span></span><span class="line"><span class="cl">git push</span></span></code></pre></div><p>&ldquo;<em>Commit early, commit often,</em>&rdquo; they say. Who are &ldquo;they&rdquo;? No idea, but they seem to know their stuff.</p>
<h3 id="step-2-publish-the-blog-cue-fanfare-">Step 2: Publish the Blog (Cue fanfare 🎺)</h3>
<p>Finished your magnum opus? Excellent! Let&rsquo;s turn those words into webpages.</p>
<ul>
<li><strong>Generate Static Files</strong>: The public folder isn&rsquo;t going to update itself (if only, right?). Time to give it some fresh content.</li>
</ul>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo -t PaperMod</span></span></code></pre></div><ul>
<li><strong>Publish with Hugo</strong>: Feel that? That&rsquo;s the rush of publishing! Let&rsquo;s wrap this up with a snazzy sequence of commands.</li>
</ul>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> public 
</span></span><span class="line"><span class="cl">git add .
</span></span><span class="line"><span class="cl">git commit -m <span class="s1">&#39;add blog&#39;</span>
</span></span><span class="line"><span class="cl">git push origin main</span></span></code></pre></div><h3 id="conclusion-you-did-it-again">Conclusion: You Did It (Again)!</h3>
<p>Behold your blog post, live and in pixels! You&rsquo;ve written, you&rsquo;ve coded, you&rsquo;ve conquered. Go on, share it with the world, or at least with your cat. Either way, congrats on being absolutely blog-tastic!</p>
<p>Fin. No, really, you can stop reading now.</p>
<h1 id="reference">Reference</h1>
<ul>
<li><a href="https://www.youtube.com/watch?v=LIFvgrRxdt4">A great step by step Youtube guide by Ryan Schachte</a></li>
<li><a href="https://themes.gohugo.io/">Hugo themes</a></li>
<li><a href="https://adityatelange.github.io/hugo-PaperMod/posts/papermod/papermod-installation/">Hugo set up</a></li>
<li><a href="https://www.markdownguide.org/basic-syntax/">Markdown basics</a></li>
<li><a href="https://pages.github.com/">Github Pages</a></li>
<li><a href="https://www.youtube.com/watch?v=sm3IuE7zkYQ&amp;list=PLeiDFxcsdhUrzkK5Jg9IZyiTsIMvXxKZP&amp;index=3">Another Youtube guide to build website with Hugo</a></li>
<li><a href="https://ashish.one/blogs/build-developer-profile/">Some other useful inforation about setting up Hugo website</a></li>
</ul>
]]></content:encoded></item></channel></rss>