

Wordpress 搬家到 Hexo 心得
對,我又搬家了從最早期把 WordPress 架在 GCP到搬家至 Cloudways再到現在改成用 Hexo 直接放在 Github Pages稍微紀錄一下心得這樣
更多

使用 Firebase Import 備份檔並 Export 成 csv 檔
前題有人給了一包 firebase export 出來的東西 而我們的目的是把它轉成 MySQO 可以吃的資料
更多

實作 二階段驗證/雙重驗證 2FA — 以 Laravel 為例
前言或許大家已經對 二階段驗證 (Two-factor authentication) 不陌生 主要就是為了防止有心人士在獲得你的帳號密碼後,就得以登入並進行犯罪 二階段驗利用手機、或任何只有你才知道的資訊來進行第二層驗證 因此提高了安全性
更多

創世區塊是什麼?
前言區塊 #0 又被稱為是創世區塊 但要了解創世區塊前,勢必得先了解什麼是區塊鏈 那什麼是區塊鏈呢? 區塊鏈技術可以把它想像成是一個去中心化的帳本 那什麼又是去中心化的帳本呢? 要回答這個問題,首先就得理解 中心化 vs. 去中心化 帳本是什麼 和區塊鏈之間的關係是什麼 中心化 vs. 去中心化中心化就是我們目前大部份的社會運作方式 舉例來說 A 若要透過銀行轉帳 $NT100 給 B A 就要跟銀行說 “欸我要轉 NT$100 給 B 喔” 此時銀行就會在它的 “中心化帳本” 記下這筆 “A 轉帳 NT$100 給 B”的紀錄 在銀行紀錄下來之後 B 就會在他的銀行紀錄內看到自己的戶多多了 NT$100 塊了 在這個情境下 因為交易紀錄是記在銀行內 其他人都沒有 任何人想要知道這個交易紀錄的話 都必..
更多

[編譯 vs. 直譯] / [靜態 vs. 動態] / [強型別 vs. 弱型別]
[編譯 vs. 直譯] / [靜態 vs. 動態] / [強型別 vs. 弱型別]前言最近因為 [編譯 vs. 直譯] / [靜態 vs. 動態] / [強型別 vs. 弱型別] 有各種理解上的困難 索性寫一篇文章下來當作筆記 提醒自己的同時也希望對讀者有幫助! 編譯 vs. 直譯首先我們要理解到 為了讓我們人類寫的程式碼能讓機器讀懂 中間就一定會有一個轉譯的過程 透過這個過程 將我們人看的懂的語言轉換成機器看的懂的語言 也就是 0 和 1 圖解如下: 而這個轉換的的方式則分成兩種 → 編譯 與 直譯 對應到的工具就是 編譯器 與 直譯器 差別如下: 編譯器:一次性把所有的程式碼轉成機器看的懂的 0 和 1 他的文件就是在Windows裏叫的.exe檔 或者Unix中的可執行檔 優點:..
更多

MYSQL:使用臨時表一次性大量UPDATE
前言最近遇到須要更新一堆 DB 欄位的需求 實作後發現不同的寫法對效能的影響滿大的 這就來紀錄分享一下 問題情境假設我們有2張表 分別是 order、orderDetail 其中 order 是訂單的總表 而 orderDetail 則是訂單的細節 兩者關係以下圖示之 order orderDetail 原始 table在 order裡的第一筆 (id=1) 就叫他 apple 訂單吧! 對應到 orderDetail 可以發現 apple 訂單裡面有兩個 item 分別是 雞排 和腿排 (兩者的 fk 為 fk_orderID = 1) 但為了閱讀方便 我們想要在 order 裡多新增一個 items 欄位 把這張訂單裡保括了了哪些品項給列出來 並用逗號隔開 成果如下 修改後 ta..
更多

串接 Google OAuth 2.0 實現第三方登入
前言為了使用者方便 在目前的各大網站的註冊流程中 通常除了最基礎的註冊新帳號以外 也會提供第三方登入 比如說 google 登入、facebook 登入,甚至 github 登入等等 這樣的好處是可以讓使用者不須要額外註冊一個新帳號 而是可以直接使用現有的第三方帳號 即可達到註冊登入 達到快速轉換、降低門檻的效果 本文就是要來介紹如何使用 Google OAauth 來實現第三方登入 流程簡介 (來源: Google) 自 Google API Console 取得 Google OAuth 2.0 憑證 自 Google Authorization Server 取得 access token (圖中 Request token + User login & consent + Authori..
更多

UML: 循序圖簡介
前言: 什麼是 UMLUML == ‘Unified Modeling Language’ == ‘統一塑模語言’ 它是一種標準化的標記語言 使開發者在對其他部門說明軟體系統時能更具體 並以視覺化的方式來建構流程 同時將這個流程給文件化 相較於常見的流程圖 UML 可能會會更有助於工程師與其他部門協助 (如 UI/UX) 不過 還是得視情況決定什麼圖表最適合 以我的經驗來說 如果某一個功能牽涉的範圍或部門較廣 使用 UML 可能就是一個比較合適的方式 另外 UML 又有很多種不一樣的類型 以下將以循序圖 (Sequence Diagrams) 做說明 流程圖 vs 循序圖流程圖 這是個很常見流程圖 若沒有發生跨部門、跨類別處理的話還滿簡明的 但若遇到的狀況是..
更多

使用 PHP 安插固定排序 & 隨機排序卡片
前言在特定情境下,我們想要把 array 裡的東西同時照特定的方式做排序 其中有幾個是固定的,有幾個是隨機的 比如說我們有 itemA ~ itemF 總共六個 item 我們想要把排序第一、第三的給固定下來 同時讓排序第二、第四個從 itemA ~ itemF 給取出但不重複 所以結果可能是這樣 也可能是這樣 那要怎麼做呢? 以下就架構,分兩個部份討論 架構一、存 db 格式為簡化討論 我們假設 itemTable 裡只有三個欄位 分別是 id、name、sort 在存資料時 我們把要固定欄位的紀錄之 sort 設為正數 (下圖例為 1、3) 而隨機排序的資料 sort 設為 -1 這樣的好處是我們一眼就可以知道 哪些紀錄是要固定欄位、哪些又是要隨機排序的 二、排序方式這邊先理理頭緒 用自然語言..
更多PHP 排序 usort 範例教學
前言最近工作上剛好碰到排序的麻煩問題 這邊就寫下來記錄一下 首先會簡介一下各種排序 最後會針對重點 usort 自訂排序做說明教學 php 官方排序 function第一類: 用”值 (value)” 排序 由小到大排序值、且刪除 key => sort 由小到大排序值、且保留 key => asort 由大到小排序值、且刪除 key => rsort 由大到小排序值、且保留 key => arsort 第二類: 用”索引 (key)” 排序 由小到大排key => ksort 由大到小排key => krsort 第三類: 自訂排序加一個前綴 u 在相對應 sort 的前面就好了 以下以 usort 為例 ..
更多