<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
    <channel>
      <title>🚀 Jin&#039;s Notes</title>
      <link>https://onlystp.github.io/notes_sites</link>
      <description>Last 10 notes on 🚀 Jin&#039;s Notes</description>
      <generator>Quartz -- quartz.jzhao.xyz</generator>
      <item>
    <title>CI／CD 自動化</title>
    <link>https://onlystp.github.io/notes_sites/DevOps/CI%EF%BC%8FCD-%E8%87%AA%E5%8B%95%E5%8C%96</link>
    <guid>https://onlystp.github.io/notes_sites/DevOps/CI%EF%BC%8FCD-%E8%87%AA%E5%8B%95%E5%8C%96</guid>
    <description><![CDATA[ 什麼是 CI/CD CI（Continuous Integration）持續整合：開發→ 編譯 → 跑測試 CD（Continuous Delivery）持續交付：發佈 → 部署至測試環境、產品 以上流程少不了重複的動作，而 CI/CD 自動化，就是寫 pipeline，透過工具（比方 Github Actions、Gitlab CI/CD）自動執行這些流程。 建立 workflow 創建 CI workflow 在專案資料夾下的 .github/ 檔案夾建 workflow/，新建一個 workflow 叫 test.yml repo/ - .github/ - workflow/ - te... ]]></description>
    <pubDate>Fri, 06 Feb 2026 03:44:52 GMT</pubDate>
  </item><item>
    <title>Date &amp; Time</title>
    <link>https://onlystp.github.io/notes_sites/Rails/Date--and--Time</link>
    <guid>https://onlystp.github.io/notes_sites/Rails/Date--and--Time</guid>
    <description><![CDATA[ Rails 中 Time 與 Date 可以用來處理日期與時間，甚至還有時區的功能。時間操作很直覺，像是在讀英文。 取得當前時間 在 Rails 中，應優先使用 Time.zone 系列，因為它會自動處理你在 application.rb 設定的時區（例如台北 +0800）。 功能指令說明當下時間 (含時區)Time.zone.now最推薦寫法，包含日期、時間與時區。今天 (不含時間)Date.current回傳當下時區的「今天」。昨天 / 明天Date.yesterday / Date.tomorrow取得相對日期。原生 Ruby (不推薦)Time.now取得系統（伺服器）本地時間，易造成... ]]></description>
    <pubDate>Fri, 06 Feb 2026 03:44:52 GMT</pubDate>
  </item><item>
    <title>Ruby &amp; Ruby on Rails</title>
    <link>https://onlystp.github.io/notes_sites/Rails/Ruby--and--Ruby-on-Rails</link>
    <guid>https://onlystp.github.io/notes_sites/Rails/Ruby--and--Ruby-on-Rails</guid>
    <description><![CDATA[ Ruby 特點 OOP 動態型別：不需要宣告變數的型別，且變數可以隨時改變型別 豐富的 library 型別 Integer 整數與整數運算，結果必為整數（無條件捨去小數點）。 puts 10 / 3 # =&gt; 3 (不是 3.333) puts 10 % 3 # =&gt; 1 (取餘數) puts 2 ** 3 # =&gt; 8 (次方的運算子是 **) Float 只要運算中有任何一個數字是 Float，結果就會轉為 Float puts 10 / 3.0 # =&gt; 3.3333333333333335 puts 1.2 + 2 # =&gt; 3.2 String + 用... ]]></description>
    <pubDate>Fri, 06 Feb 2026 03:44:52 GMT</pubDate>
  </item><item>
    <title>VM 環境</title>
    <link>https://onlystp.github.io/notes_sites/VM-%E7%92%B0%E5%A2%83</link>
    <guid>https://onlystp.github.io/notes_sites/VM-%E7%92%B0%E5%A2%83</guid>
    <description><![CDATA[ 脈絡簡介 為了資安考量，以及同步開發環境，公司有以 ubantu 作為虛擬環境開發。 RD 跟資安工程團隊會幫開發組員成立虛擬帳號，對應的就是個人開發虛擬環境，比方我的就是 home/jin，jin 為帳號名稱，需要密碼才可以登入。 切換成虛擬環境 切換環境指令 $ ssh jin@92.168.26.124 輸入密碼 $ enter password: &lt;password&gt; 就會成功進入虛擬環境 jin@124rorGen3:~ 可以在這個虛擬目錄下，clone 任何待開發或練習的專案： $ git clone xxxx@github.com/xxxxx :::info 可以把這... ]]></description>
    <pubDate>Fri, 06 Feb 2026 03:44:52 GMT</pubDate>
  </item><item>
    <title>E2E Test</title>
    <link>https://onlystp.github.io/notes_sites/E2E-Test</link>
    <guid>https://onlystp.github.io/notes_sites/E2E-Test</guid>
    <description><![CDATA[ 概念 單元測試：以 function 為單位做測試 整合測試：以 module 為單位做測試 端對端 E2E：模擬使用者場景做測試 要測什麼 重要、影響使用的功能，比方金流、登入等影響公司產品運作的功能。 前置作業 環境的搭建 因為是很尾端的測試，所以環境能否一致、資料能否一致是會面臨到的困難，這時候，使用 docker container 來管理測試環境，確保一致跟穩定就非常重要。 定位問題 因為涉及多個系統與模組，難以定位失敗因素。使用 OpenTelemetry 如 Metric、Traing、Logging 的監控機制，就可以提升觀測性。 執行時間冗長 使用 PaaS 或 SaaS 服... ]]></description>
    <pubDate>Fri, 30 Jan 2026 04:00:55 GMT</pubDate>
  </item><item>
    <title>Empty Project</title>
    <link>https://onlystp.github.io/notes_sites/Empty-Project</link>
    <guid>https://onlystp.github.io/notes_sites/Empty-Project</guid>
    <description><![CDATA[ Vue in Rails 公司 empty_project 透過 vite_rails gem 將 Vite（作為前端打包工具）與 Vue.js（作為前端框架）整合起來。以下是詳細的整合方式說明： Vite_rails Gem 在 Gemfile 中加入 gem &quot;vite_rails&quot;，這是官方的 Rails-Vite 整合 gem。 config/vite.json{ &quot;all&quot;： { &quot;sourceCodeDir&quot;： &quot;app/packs&quot;, &quot;watchAdditionalPaths&quot;：... ]]></description>
    <pubDate>Fri, 30 Jan 2026 04:00:55 GMT</pubDate>
  </item><item>
    <title>Cherry Pick</title>
    <link>https://onlystp.github.io/notes_sites/Git/Cherry-Pick</link>
    <guid>https://onlystp.github.io/notes_sites/Git/Cherry-Pick</guid>
    <description><![CDATA[ 介紹 git cherry-pick 的用途是：從其他分支挑選特定的 Commit，並應用到當前分支。這在修復緊急 Bug 或從開發分支提取特定功能時非常有用。 指令 動作指令挑選單一 commitgit cherry-pick &lt;commit-hash&gt;挑選多個連續 commitsgit cherry-pick &lt;A&gt;..&lt;B&gt; (不包含 A)挑選包含 A 到 Bgit cherry-pick &lt;A&gt;^..&lt;B&gt; (包含 A)挑選不連續的多個 commitsgit cherry-pick &lt;hash1&gt; &lt;hash... ]]></description>
    <pubDate>Fri, 30 Jan 2026 04:00:55 GMT</pubDate>
  </item><item>
    <title>Tablesorter</title>
    <link>https://onlystp.github.io/notes_sites/JS-plugins/Tablesorter</link>
    <guid>https://onlystp.github.io/notes_sites/JS-plugins/Tablesorter</guid>
    <description><![CDATA[ 快速上手 tablesorter 是一個 jQuery 插件，能將標準的 HTML 表格（帶有 thead 和 tbody）轉化為可排序的表格。 安裝 使用 tablesorter ，jquery 也是必要安裝的套件 npm install jquery tablesorter # 或者 yarn add jquery tablesorter 引入 JS 檔 import jquery from &#039;jquery&#039; import &#039;tablesorter&#039; 綁定 HTML 要讓一個表格擁有排序功能，最基本的要求是 HTML 結構必須包含 &lt;thead... ]]></description>
    <pubDate>Fri, 30 Jan 2026 04:00:55 GMT</pubDate>
  </item><item>
    <title>ResizeObserve</title>
    <link>https://onlystp.github.io/notes_sites/JavaScript/ResizeObserve</link>
    <guid>https://onlystp.github.io/notes_sites/JavaScript/ResizeObserve</guid>
    <description><![CDATA[ ResizeObserver API 是 JS 提供可以根據元素的大小來調整 layout 或觸發特定功能。 語法 傳入Callback Function，當目標元素大小改變時，瀏覽器會執行這個函數。 const observer = new ResizeObserver((entries) =&gt; { for (let entry of entries) { // entry.contentRect 包含元素的尺寸資訊 const { width, height } = entry.contentRect; console.log(`目前寬度：${width}px，高度：${height... ]]></description>
    <pubDate>Fri, 30 Jan 2026 04:00:55 GMT</pubDate>
  </item><item>
    <title>Ruby &amp; Ruby on Rails</title>
    <link>https://onlystp.github.io/notes_sites/Ruby--and--Ruby-on-Rails</link>
    <guid>https://onlystp.github.io/notes_sites/Ruby--and--Ruby-on-Rails</guid>
    <description><![CDATA[ Ruby 特點 OOP 動態型別：不需要宣告變數的型別，且變數可以隨時改變型別 豐富的 library 型別 Integer 整數與整數運算，結果必為整數（無條件捨去小數點）。 puts 10 / 3 # =&gt; 3 (不是 3.333) puts 10 % 3 # =&gt; 1 (取餘數) puts 2 ** 3 # =&gt; 8 (次方的運算子是 **) Float 只要運算中有任何一個數字是 Float，結果就會轉為 Float puts 10 / 3.0 # =&gt; 3.3333333333333335 puts 1.2 + 2 # =&gt; 3.2 String + 用... ]]></description>
    <pubDate>Fri, 30 Jan 2026 04:00:55 GMT</pubDate>
  </item>
    </channel>
  </rss>