<?xml version="1.0" encoding="UTF-8" ?>
  <rss version="2.0">
    <channel>
        <title>Yes Danny Blogs</title>
        <link>https://chenghsuan.me</link>
        <description>Danny's blog RSS feed</description>
        <item>
          <title>Type-safe Versioned GraphQL made easy - gql.tada and urql</title>
          <link>https://chenghsuan.me/posts/type-safe-versioned-graphql-query</link>
          <description>Use committed GraphQL schema of different versions, to make GraphQL type-safe easily</description>
          <pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Implement Auditable Soft Delete in PayloadCMS</title>
          <link>https://chenghsuan.me/posts/payloadcms-soft-delete</link>
          <description>A simple yet effective way to implement soft delete in PayloadCMS, ensuring data integrity and auditability.</description>
          <pubDate>Wed, 24 Sep 2025 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Get Direct Download Link for Google Drive Files</title>
          <link>https://chenghsuan.me/posts/google-drive-direct-dowload-link</link>
          <description>The way to get the direct download link of public files from Google Drive.</description>
          <pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Git Hooks and Makefile for My Go Projects</title>
          <link>https://chenghsuan.me/posts/go-project-setup</link>
          <description>My current setup for Go projects for things I do not want to do twice.</description>
          <pubDate>Sun, 09 Feb 2025 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Upsert Multiple Rows in SQLite, PostgreSQL, and MySQL</title>
          <link>https://chenghsuan.me/posts/sql-upsert-syntax</link>
          <description>Upsert (insert or update) syntax that references rows being inserted for SQLite, PostgreSQL, and MySQL.</description>
          <pubDate>Thu, 30 Jan 2025 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>TIL - Google Sheets Regex Does not Work Like Excel's</title>
          <link>https://chenghsuan.me/posts/til-googlesheets-regex</link>
          <description>Google products use their own regex libray, RE2. It has no `\n` linebreak matcher support.</description>
          <pubDate>Thu, 09 Jan 2025 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Build an AI App with Ease on TypeScript</title>
          <link>https://chenghsuan.me/posts/vercel-ai-sdk</link>
          <description>Use Vercel AI SDK with zod schema to super-charge your front-end app.</description>
          <pubDate>Sat, 07 Dec 2024 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>TIL - Link to Specific Content on a Page without An Anchor</title>
          <link>https://chenghsuan.me/posts/link-to-page-content-without-anchor</link>
          <description>Add `#:~:text=<target%20text>` at the end of URL to link to specific content on a page.</description>
          <pubDate>Fri, 08 Nov 2024 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>TIL - Remove (rm) Filename Starting by Dash</title>
          <link>https://chenghsuan.me/posts/til-rm-dash-files</link>
          <description>Use option `--` to stop processing flags beyond that point, for example, `rm -- -some-file`.</description>
          <pubDate>Mon, 14 Oct 2024 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Create a Reusable GitHub Workflow</title>
          <link>https://chenghsuan.me/posts/reusable-github-workflow</link>
          <description>GitHub workflow template that can be called from other workflows.</description>
          <pubDate>Mon, 30 Sep 2024 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Five Years as Software Developer</title>
          <link>https://chenghsuan.me/posts/five-years-as-developer</link>
          <description>Fifth annual software developer summary.</description>
          <pubDate>Mon, 29 Jul 2024 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Set up a Local LLM for Neovim on Mac</title>
          <link>https://chenghsuan.me/posts/local-llm-nvim</link>
          <description>Steps to plug Ollama into Neovim.</description>
          <pubDate>Mon, 26 Feb 2024 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Side-To-Side Comparisons between Erlang and TypeScript Programs</title>
          <link>https://chenghsuan.me/posts/erlang-ts-impl-comparisons</link>
          <description>Demonstrate syntax for Erlang and TypeScript programs.</description>
          <pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>TIL - Fix PC Bluetooth with a Cold Reboot</title>
          <link>https://chenghsuan.me/posts/fix-pc-bluetooth</link>
          <description>Use cold reboot to fix bluetooth issue from Gigabyte AORUS motherboard.</description>
          <pubDate>Wed, 23 Aug 2023 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Publish PNPM Project to Cloudflare Pages</title>
          <link>https://chenghsuan.me/posts/publish-pnpm-project-to-cloudflare-pages</link>
          <description>Instrucdtions to publish a PNPM project to Cloudflare Pages.</description>
          <pubDate>Fri, 18 Aug 2023 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Four Years as Software Developer</title>
          <link>https://chenghsuan.me/posts/four-years-as-developer</link>
          <description>Fourth annual software developer summary.</description>
          <pubDate>Sat, 29 Jul 2023 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>TIL - Partitioning, Formatting, Mounting, and Generating fstab on Linux</title>
          <link>https://chenghsuan.me/posts/til-partition-format-mount-fstab-linux</link>
          <description>Walk through usage of linux fstab command (fstab stands for filesystem table).</description>
          <pubDate>Sun, 05 Jun 2022 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>TIL - Debug GitHub Actions Locally</title>
          <link>https://chenghsuan.me/posts/til-debug-github-actions-locally</link>
          <description>Use nektos/act to debug GitHub Actions without pushing code to GitHub.</description>
          <pubDate>Wed, 15 Dec 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Updates - 20211127</title>
          <link>https://chenghsuan.me/posts/updates-20211127</link>
          <description>My dev life update on 2021/11/27.</description>
          <pubDate>Sat, 27 Nov 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Troubleshooting MySQL 5.7 on Arch Linux</title>
          <link>https://chenghsuan.me/posts/arch-troubleshoot-mysql57</link>
          <description>My debugging journey for MySQL issues on Arch Linux.</description>
          <pubDate>Sun, 07 Nov 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Reinstall GRUB for Arch Linux after Windows 10</title>
          <link>https://chenghsuan.me/posts/reinstall-grub-after-windows</link>
          <description>Steps to reinstall GRUB for another OS resides in a Windows machine.</description>
          <pubDate>Fri, 29 Oct 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>TIL - Where to Look up Filesystem Hierachy</title>
          <link>https://chenghsuan.me/posts/til-man-hier</link>
          <description>Command to check what directory is for what in Unix-like OSs</description>
          <pubDate>Tue, 07 Sep 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>轉職二週年</title>
          <link>https://chenghsuan.me/posts/two-years-as-developer</link>
          <description>轉職二週年心得。</description>
          <pubDate>Fri, 30 Jul 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Enforcing MFA/2FA on AWS Users</title>
          <link>https://chenghsuan.me/posts/aws-iam-mfa</link>
          <description>AWS IAM Policy template for enforcing MFA on users.</description>
          <pubDate>Thu, 27 May 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Configure Git Commit Signing with GPG after Changing Email</title>
          <link>https://chenghsuan.me/posts/git-commit-signing</link>
          <description>Steps to configure git commit signing with a new email.</description>
          <pubDate>Mon, 17 May 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Track iPhone Restoration Progress on MacOS</title>
          <link>https://chenghsuan.me/posts/track-iphone-restoration</link>
          <description>Visualize iPhone restoration progress on MacOS v10.15 (Catalina).</description>
          <pubDate>Tue, 27 Apr 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Set up Logrotate with Ansible</title>
          <link>https://chenghsuan.me/posts/logrotate-with-ansible</link>
          <description>Ansible template for logrotate, a tool to rotate server log automatically.</description>
          <pubDate>Sat, 13 Feb 2021 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Swarm Your Site with Locust</title>
          <link>https://chenghsuan.me/posts/locust-load-test</link>
          <description>Use python load test framework, locust, to test web app.</description>
          <pubDate>Mon, 07 Dec 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Migrate with AWS - AWS Application Migration Workshop</title>
          <link>https://chenghsuan.me/posts/workshop-migrate-with-aws</link>
          <description>Note for how to leverage AWS to migrate on-prem data center to cloud.</description>
          <pubDate>Thu, 08 Oct 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Build React Native App on iOS</title>
          <link>https://chenghsuan.me/posts/build-react-native-ios-app</link>
          <description>Showcase how to build a React Native app for iOS on MacOS.</description>
          <pubDate>Sat, 26 Sep 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>轉職一週年</title>
          <link>https://chenghsuan.me/posts/one-year-as-developer</link>
          <description>轉職一週年心得。</description>
          <pubDate>Wed, 29 Jul 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>My First P.C. Build - Ghost S1</title>
          <link>https://chenghsuan.me/posts/first-pc-build</link>
          <description>Walk through how I built my P.C., from 0 to 1.</description>
          <pubDate>Sun, 26 Jul 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>原來 Rails Console 可以這樣用</title>
          <link>https://chenghsuan.me/posts/rails-console-tricks</link>
          <description>Rails Console 設定及使用上的技巧。</description>
          <pubDate>Sat, 30 May 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Build Twitter clone in 15 minutes with Phoenix LiveView</title>
          <link>https://chenghsuan.me/posts/phoenix-liveview-twitter</link>
          <description>Use Elixir Phoenix to build a Twitter clone.</description>
          <pubDate>Fri, 01 May 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>How to Write Resilient CSS</title>
          <link>https://chenghsuan.me/posts/resilient-css</link>
          <description>Tips to write CSS that is resilient to spec changes.</description>
          <pubDate>Sat, 11 Apr 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>(Archived) Launch Free Oracle VMs Automatically</title>
          <link>https://chenghsuan.me/posts/auto-launch-oracle-vm</link>
          <description>Tutorial for launching Oracle VMs programatically.</description>
          <pubDate>Thu, 02 Apr 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Difference between "{}" & "do...end" in Ruby</title>
          <link>https://chenghsuan.me/posts/ruby-precedence-in-block</link>
          <description>Showcase how different Ruby code block styles, "{}" and "do...end", behave.</description>
          <pubDate>Fri, 27 Mar 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Terminal-in-Vim Makes You More Productive</title>
          <link>https://chenghsuan.me/posts/vim8-terminal</link>
          <description>Showcase how Vim terminal works, and its use cases.</description>
          <pubDate>Sun, 22 Mar 2020 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>componentDidMount() Equivalent in React Hook</title>
          <link>https://chenghsuan.me/posts/react-class-vs-hook</link>
          <description>React.useEffect() snippet that runs when a component mounts.</description>
          <pubDate>Sun, 29 Dec 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>總覺得自己在工作上不夠稱職？論冒名頂替者症候群所帶來的影響</title>
          <link>https://chenghsuan.me/posts/imposter-syndrome</link>
          <description>冒名頂替者症候群的介紹及我應對之的方式。</description>
          <pubDate>Wed, 27 Nov 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>From VS Code to Vim</title>
          <link>https://chenghsuan.me/posts/vscode-to-vim</link>
          <description>How I transioned to Vim from VS Code.</description>
          <pubDate>Tue, 29 Oct 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Ruby Conf Taiwan 2019 (23-25 Jul) 會後感</title>
          <link>https://chenghsuan.me/posts/ruby-conf-2019</link>
          <description>2019 Ruby Conf Taiwan 筆記。</description>
          <pubDate>Mon, 05 Aug 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Three Ways to Make Database Queries in Rails</title>
          <link>https://chenghsuan.me/posts/db-query-in-rails</link>
          <description>Introduction of Rails find(), find_by(), and where(), and their behaviors.</description>
          <pubDate>Wed, 24 Jul 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Difference between Include/Extend Modules in Ruby</title>
          <link>https://chenghsuan.me/posts/ruby-module-include-extend</link>
          <description>Usage of Ruby keyword, extend and include.</description>
          <pubDate>Sun, 23 Jun 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>美商凱德諾藍股份有限公司參訪小記</title>
          <link>https://chenghsuan.me/posts/visit-cardinal-blue</link>
          <description>2020/05/31 美商凱德諾藍股份有限公司參訪記錄。</description>
          <pubDate>Mon, 10 Jun 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>How Does Rails Pass Data from Controller to View?</title>
          <link>https://chenghsuan.me/posts/rails-controller-to-view</link>
          <description>Illustrate how Rails data flows from controller to view.</description>
          <pubDate>Thu, 30 May 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Make Your Own ".select()" Method in Ruby</title>
          <link>https://chenghsuan.me/posts/make-ruby-select</link>
          <description>Use Ruby yield syntax to run arbitray code upon method call.</description>
          <pubDate>Thu, 23 May 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Super, or Super()?</title>
          <link>https://chenghsuan.me/posts/ruby-super-super</link>
          <description>Illustrate how Ruby "super", "super()", and "super(*args)" behave differently.</description>
          <pubDate>Tue, 14 May 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Proc & Lambda in Ruby</title>
          <link>https://chenghsuan.me/posts/ruby-proc-lambda</link>
          <description>Introduction to Ruby's proc and lambda, with side-to-side comparisons.</description>
          <pubDate>Sun, 12 May 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>How to Use .reduce() in JavaScript (2/2)</title>
          <link>https://chenghsuan.me/posts/reduce-in-js2</link>
          <description>Deep dive into JavaScript's Array.prototype.reduce().</description>
          <pubDate>Mon, 29 Apr 2019 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>How to Use .reduce() in JavaScript (1/2)</title>
          <link>https://chenghsuan.me/posts/reduce-in-js1</link>
          <description>Introduction to JavaScript's Array.prototype.reduce().</description>
          <pubDate>Wed, 24 Apr 2019 00:00:00 GMT</pubDate>
        </item>
    </channel>
  </rss>