<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

 <title>toms website</title>
 <link href="/atom.xml" rel="self"/>
 <link href="https://tomlai.net/"/>
 <updated>2026-07-10T00:11:00+00:00</updated>
 <id>https://tomlai.net</id>
 <author>
   <name>Tom</name>
   <email>tomtclai@gmail.com</email>
 </author>

 
 <entry>
   <title>Saturday</title>
   <link href="https://tomlai.net/blog/2026/04/04/blogpost/"/>
   <updated>2026-04-04T23:53:00+00:00</updated>
   <id>https://tomlai.net/blog/2026/04/04/blogpost</id>
   <content type="html">&lt;p&gt;Today I hung out with a long time friend of mine, i dont get to see him often so everytime i see him it is packed with information. We went to a japanese place for lunch (it was good). I got to take the train all the way to bellevue and back. it is very nice to be able to go to the mall without a car.&lt;/p&gt;

&lt;p&gt;On my way to bellevue, I was reading a book my therapist recommended. Self Compassion by Kristen Neff. She wrote the workbook on this topic - I used it, but i didn’t know about this one which is more about the theory. This paragraph touched me and I highlighted it:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Everybody makes mistakes at one time or another, it’s a fact of life. And if you think about it, why should you expect anything different? Where is that written contract you signed before birth promising that you’d be perfect, that you’d never fail, and that your life would go absolutely the way you want it to?  &lt;em&gt;Uh, excuse me. There must be some error. I signed up for the “everything will go swimmingly until the day i die” plan. Can I speak to the management, please?&lt;/em&gt; It’s absurd, and yet most of us act as if something as gone terrible awry when we fall down or life takes an unwanted or unexpected turn.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
 </entry>
 
 <entry>
   <title>Vibe Coding</title>
   <link href="https://tomlai.net/japanese/2026/03/03/vibe-coding/"/>
   <updated>2026-03-03T19:00:00+00:00</updated>
   <id>https://tomlai.net/japanese/2026/03/03/vibe-coding</id>
   <content type="html">&lt;p&gt;i vibe coded a page to memorize japanese sounds because im trying to learn japanese, the idea came to me in a reel, someone said we need vocabs to remember those hiragana / katakana sounds… anyway &lt;a href=&quot;/japanese&quot;&gt;check it out&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Setting Up Personal Website with GitHub Pages and Jekyll</title>
   <link href="https://tomlai.net/tech/2025/05/17/github-pages-setup/"/>
   <updated>2025-05-17T19:00:00+00:00</updated>
   <id>https://tomlai.net/tech/2025/05/17/github-pages-setup</id>
   <content type="html">&lt;p&gt;This website was setup using GitHub Pages and Jekyll&lt;/p&gt;

&lt;h2 id=&quot;stack&quot;&gt;Stack&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;GitHub Pages&lt;/strong&gt; - Hosts the website directly from my GitHub repository&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Jekyll&lt;/strong&gt; - Static site generator that converts Markdown files into a website&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Dark Poole&lt;/strong&gt; - A dark Jekyll theme&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;cost&quot;&gt;Cost&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;12 dollars a year as of May 2025&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;how-it-works&quot;&gt;How it works&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;The code repo is on GitHub&lt;/li&gt;
  &lt;li&gt;When changes are pushed, GitHub runs some Actions to build the site and deploys it to github pages.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;I pay for the domain name on cloudflare now, which is only 12 dollars a year!? (For context, when I first got the custom domain it was from somewhere else, I didn’t know you don’t have to stick with the same DNS registrar forever. So later I shopped around and cloudflare is cheaper than what I was paying). I also set it up with their free CDN product:&lt;/p&gt;

    &lt;p&gt;Why do people use CDNs? They:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;Cache your content at servers around the world, reducing load times for visitors&lt;/li&gt;
      &lt;li&gt;Protect against DDoS attacks by absorbing malicious traffic&lt;/li&gt;
      &lt;li&gt;Provide SSL/TLS encryption for secure connections&lt;/li&gt;
      &lt;li&gt;Often include features like image optimization and minification&lt;/li&gt;
      &lt;li&gt;Can save bandwidth costs on your origin server&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;CDN’s Drawbacks:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;Cache invalidation can be tricky (sometimes you want to update content but the CDN keeps serving old versions)&lt;/li&gt;
      &lt;li&gt;Adding another point of failure in your infrastructure&lt;/li&gt;
      &lt;li&gt;Potential privacy concerns since CDN providers can see your traffic&lt;/li&gt;
      &lt;li&gt;Some features might require paid tiers&lt;/li&gt;
      &lt;li&gt;Complex DNS setup if not configured correctly&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;I probably didn’t need a CDN (you don’t pay for github pages hosting), but since its free, why not?&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;domain-and-dns-setup&quot;&gt;Domain and DNS Setup&lt;/h3&gt;

&lt;p&gt;The DNS configuration for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tomlai.net&lt;/code&gt; includes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Multiple A records pointing to GitHub Pages IPs:
    &lt;ul&gt;
      &lt;li&gt;185.199.108.153&lt;/li&gt;
      &lt;li&gt;185.199.109.153&lt;/li&gt;
      &lt;li&gt;185.199.110.153&lt;/li&gt;
      &lt;li&gt;185.199.111.153&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See &lt;a href=&quot;https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site?versionId=free-pro-team%40latest&amp;amp;productId=pages&amp;amp;restPage=configuring-a-custom-domain-for-your-github-pages-site%2Cabout-custom-domains-and-github-pages&quot;&gt;GitHub’s guide on configuring a custom domain&lt;/a&gt; for detailed setup instructions.&lt;/p&gt;

&lt;h2 id=&quot;development-workflow&quot;&gt;Development Workflow&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;Local development using:
    &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;bundle &lt;span class=&quot;nb&quot;&gt;exec &lt;/span&gt;jekyll serve
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Preview changes at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://localhost:4000&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Git push to deploy:
    &lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;git add &lt;span class=&quot;nb&quot;&gt;.&lt;/span&gt;
git commit &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Update site content&quot;&lt;/span&gt;
git push
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Changes propagate through:
    &lt;ul&gt;
      &lt;li&gt;GitHub Pages build system&lt;/li&gt;
      &lt;li&gt;Global CDN network&lt;/li&gt;
      &lt;li&gt;Usually takes 1-2 minutes for full deployment&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;pros-and-cons&quot;&gt;Pros and Cons&lt;/h2&gt;

&lt;h3 id=&quot;advantages&quot;&gt;Advantages&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Mostly free&lt;/strong&gt; - I pay for the custom domain name but GitHub Pages hosting is free&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Simple Deployment&lt;/strong&gt; - Push to main branch and it’s live&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Version Control&lt;/strong&gt; - Every change is tracked in Git&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Static Site Performance&lt;/strong&gt; - Fast loading times, no database needed&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Markdown Writing&lt;/strong&gt; - Focus on content without HTML complexity (not that I write that much, I should though)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Build Process&lt;/strong&gt; - Jekyll handles all asset optimization&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt; - No server-side code means minimal attack surface&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;disadvantages&quot;&gt;Disadvantages&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Static Only&lt;/strong&gt; - No server-side processing or dynamic content&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Plugin Restrictions&lt;/strong&gt; - Only approved Jekyll plugins allowed&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;No Server Features&lt;/strong&gt; - Can’t handle form submissions or user data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The source code for this website is available on &lt;a href=&quot;https://github.com/tomtclai/tomlai.net&quot;&gt;GitHub&lt;/a&gt; if you’d like to see how it’s built.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>hello there</title>
   <link href="https://tomlai.net/2023/03/31/hello-world/"/>
   <updated>2023-03-31T00:00:00+00:00</updated>
   <id>https://tomlai.net/2023/03/31/hello-world</id>
   <content type="html">&lt;p&gt;Don’t mind me, i’m just setting up a jekyll site..&lt;/p&gt;
</content>
 </entry>
 

</feed>
