Leetcode 解題紀錄 SQL 50 - 550. Game Play Analysis IV
Leetcode 解題紀錄 SQL 50 - 550. Game Play Analysis IV 題目背景這題的目標是計算 玩家首次登入後第二天是否再次登入的比例,並將結果四捨五入至小數點後兩位。 資料表結構123456789Table: Activity+--------------+---------+| Column Name | Type |+--------------+---------+| player_id | int || device_id | int || event_date | date || games_played | int |+--------------+---------+ 解釋: Primary Key: (player_id, event_date),代表每位玩家在某天的唯一活動記錄。 數據描述:player_id 是玩家的 ID,event_date 是登入日期,games_played 是當天玩的遊戲數量。 題目要求計算...
Auth.js 功能介紹與安裝流程
日常工作上有遇到一個需求: 開發登入驗證功能,這邊在討論的時候發現到需求是要可以SSO登入多個平台,加上目前公司主要前端使用的是Next.js ,所以我在網路上找到了 Auth.js 這個工具。 https://authjs.dev/ 接下來我們點擊 Getting Started 開始進入Auth.js 的Introduction 介紹頁面 什麼是 Auth.js?Auth.js 是一個與執行環境無關的函式庫(runtime agnostic library),基於標準的 Web API 開發,與多種現代 JavaScript 框架深度整合。 提供的身份驗證體驗具有以下特點: 簡單開始:對於初學者來說,設置和使用非常直觀。 易於擴展:可根據需求自定義和擴充功能。 隱私與安全:高度注重用戶數據的隱私和安全性。 https://authjs.dev/getting-started 目前可以看到 Auth.js 支援多個前端框架像是Next.js、Qwik、SvelteKit、Express,我目前主要是以Next.js...
TFT聯盟戰棋S13追尋奧術賽季陣容分享 - 黑玫瑰征服者
大家好我是Nalson,這次跟大家分享聯盟戰棋第13賽季的追尋奧術主題陣容 - 黑玫瑰征服者。 英雄陣容組成有弗拉迪米爾、銳兒、斯溫、卡莎碧雅、努努和威朗普、伊莉絲、安比薩、魔鬥凱薩、勒布朗。 羈絆羈絆組合有4黑玫瑰、4征服者、2巫師、2先知、2蠻勇打手、2變形大師、2霸主、1使者 這個陣容坦度高,後期有魔豆跟勒布朗可以開高陣容上限,是升8等D排營運陣容 完整陣容圖與分享碼 陣容分享碼 : 011d382930022209102600TFTSet13 目前這個賽季在手機板可以直接貼上陣容,非常方便 陣容思路完這陣容前棋利用4征服過度並且盡早連勝疊加層數換取裝備,後期升上8等D出安比薩跟魔豆凱薩這兩張主C鬥士,並且本身這兩隻角色技能可以達成combo效果: 魔豆開大放出範圍技 - 金屬亡靈之握 -> 安比薩使出無情獵手單體爆發收割戰場 -> 觸發使者羈絆:擊殺敵軍,隊友增加物防/魔防 裝備推薦物攻主C: 安比薩拿物攻裝備 魔攻主C: 魔豆凱薩拿摩攻裝備 主坦裝備可以選擇養斯溫或是伊莉絲 前期優勢連勝條件:一、物攻裝開局二、胡征服者體系牌...
PM2:提升 Node.js 應用程式管理與性能的利器
在開發和部署 Node.js 應用程式時,如何高效地管理應用程式的啟動、監控、記錄以及處理高可用性等問題,一直是開發者面對的重要挑戰。 PM2 是一個功能強大且廣泛使用的 Node.js 應用程式管理工具,它能夠讓我們輕鬆解決這些問題,並提高應用程式的穩定性和性能。 https://pm2.keymetrics.io/ 什麼是 PM2?PM2 是一個進程管理器,專門設計用來管理 Node.js 應用程式。它支持多進程運行、應用程式監控、記錄管理,並且提供了自動重啟、性能優化等功能。PM2 能夠幫助開發者更高效地運行和維護 Node.js 應用,特別是在生產環境中。 以下是加入你部落格文章的內容,已經整理過,並以條列方式呈現: PM2 解決的問題PM2 是一個 Node.js 進程管理器,能夠解決許多在開發與部署過程中常見的問題,特別是針對生產環境的需求。以下是 PM2 解決的一些問題與功能: 自動重啟服務當 Node.js 服務崩潰時,PM2 能自動重啟服務,確保應用程序的高可用性。 服務重啟後自動重啟 PM2 進程當伺服器重啟時,PM2 會自動幫助我們重新啟動...
使用 SSH Key 與 GitHub 連線教學
前言對於每位軟體工程師來說,Git 是日常工作中不可或缺的工具之一。無論是軟體開發中的團隊協作,還是程式碼的維護與更新,Git 都能有效地幫助我們管理版本並保持團隊同步。 然而,經常使用 Git 的你是否遇過這樣的情況:每次執行 git push 或 git pull 時,總是需要輸入帳號密碼,既耗時又不方便。其實,這些問題都可以透過 SSH Key 來解決。不僅能讓操作更高效,也能提升安全性。 除此之外,當我們在團隊合作中,需要快速抓取程式碼進行開發時,使用 SSH Key 更是非常實用且推薦的做法!如下圖所示,設定好 SSH 後,團隊開發的效率將更進一步: 接下來,就讓我們一起學習如何設定 SSH Key 並與 GitHub 建立安全連線吧! SSH Key 是什麼?SSH Key 是一組用於身份驗證的加密金鑰對,常用於安全地連接伺服器、版本控制系統(如 GitHub)或其他需要安全性驗證的服務。它是實現 SSH(Secure Shell)協議的重要部分,能夠在不使用密碼的情況下實現高安全性的加密連線。 SSH Key 的結構SSH Key...
使用 Docker-Compose 部署 Next.js 應用程式
將 Next.js 應用程式容器化是一種高效的開發方式,因為它提供了更具隔離性和可重現的環境。在部屬的時候可以省下一些重複的工作。在本篇文章中,我將介紹如何使用 Docker 和 Docker-Compose 快速建立與執行 Next.js 應用程式。讓我們一步步實作,從建立專案到成功啟動。 1. 建立 Next.js 專案首先,我們需要建立一個 Next.js 應用程式。執行以下指令: 1npx create-next-app docker-next 執行完畢後,將會建立一個名為 docker-next 的資料夾。 進入該資料夾: 1cd docker-next 2. 建立 Dockerfile在 docker-next 資料夾中,新增一個名為 Dockerfile 的檔案,並填入以下內容: 1234567891011FROM node:20WORKDIR /appCOPY package.json ./RUN npm installCOPY . .CMD ["npm", "run",...
命名這檔事:snake_case、camelCase 與 kebab-case 的選擇之道
https://juniortoexpert.com/en/naming-convention/ 在程式開發中,清晰、一致的命名風格對於程式碼的可讀性與維護性至關重要。本文將介紹三種常見的命名規則:snake_case、camelCase 和 kebab-case,並說明它們的使用場合及特性。 命名規則簡介snake_case定義:單詞之間以底線(_)分隔,所有字母均小寫。範例: user_name sell_power_request start_date常見應用: Python 和 Ruby 中的變數和函式名稱。 資料庫欄位名稱(如 SQL)。 用於增加可讀性,特別適合需要簡潔和規則分明的環境。 camelCase 定義:第一個單詞小寫,後續每個單詞首字母大寫,單詞之間不使用任何分隔符,看起來像是駝峰一樣,可以進一步細分為 upper camel case,與lower camel case 差別在於開頭第一個字是否為大寫 範例: userName sellPowerRequest startDate 常見應用: JavaScript、Java、C#...
資料庫:Ubuntu 使用 PostgreSql,搭配 pgAdmin4 圖形化介面操作
我在之前專案都是習慣使用 MySQL 做開發,在新專案中,我們選擇 PostgreSQL 作為主要資料庫管理系統,它具有強大的 ACID 特性和可擴展性。為了便於管理資料庫,我使用 pgAdmin4 作為圖形化界面操作,本文將分享如何在 Ubuntu 上安裝 PostgreSQL 以及 pgAdmin4 的基本設定方法。 什麼是 PostgreSQL? https://www.postgresql.org/ PostgreSQL(常縮寫為 Postgres)是一個功能強大的開源關聯式資料庫管理系統(RDBMS)。它由加州大學柏克萊分校於 1986 年開發而來,並且自 1996 年正式以 PostgreSQL 名稱發布。PostgreSQL 以其高穩定性、豐富的功能和開放的社群支持而聞名,成為眾多企業和開發者在建構資料密集型應用時的首選。 PostgreSQL 的核心功能 完全的 ACID 支援PostgreSQL 遵循...
GCP - 儲存選擇 Block Storage 與 File Storage 的應用與比較
在 Google Cloud Platform (GCP) 上,雲端儲存解決方案分為多種類型,以滿足不同的工作負載需求。其中,Block Storage 和 File Storage 是兩種非常常見的儲存類型,分別適用於不同的應用場景。本文將簡單介紹它們的特點、適用場景,以及在 GCP 中的具體服務。 以下是Google Cloud Storage Options 官方指南 https://cloud.google.com/products/storage/?hl=zh-TW 什麼是 Block Storage?以下是Google cloud 區塊儲存空間官方說明文件 https://cloud.google.com/products/block-storage?hl=zh-TW Block Storage(區塊存儲) 是將數據分割成固定大小的區塊,並將每個區塊單獨儲存和管理的一種存儲方式。這種存儲方法類似於傳統的硬碟驅動器,因為每個區塊都可以被單獨存取,並且不需要依賴整個文件結構來讀取數據。這使得 Block Storage...
GCP - 深入解讀 GKE Kubernetes 中的 Service 概念與應用
今天要來跟大家分享Kubernetes的 Service設定,這篇是我在學習Kubernetes的時候看到官方文件的資料整理。 在 Kubernetes 中,Service 是一個重要的資源,它提供了一個抽象層,將動態變化的 Pod 集合與外部或內部網路的請求進行連接。 在 Google Kubernetes Engine (GKE) 上使用 Service,可以讓我們更靈活地管理和分配應用的流量,並提升應用的可用性和擴展性。 本文將帶你深入了解 Kubernetes Service 的類型、其如何運作,以及在 GKE 上如何使用這些 Service。 以下是官方Kubernetes 的服務介紹文件 https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/#type-clusterip 什麼是 Kubernetes Service?Kubernetes 中的 Pod 是應用程序的基本運行單元,但 Pod 的生命週期短暫,IP...