Mac 把檔案轉成 Base64


#base64#mac

Encode


輸出到另一個檔案

base64 -i input.key -o base64_output.txt

轉完複製到剪貼簿

base64 -i input.key | pbcopy

Decode


解碼回檔案

base64 -d -i base64_output.txt -o input.key

解碼到剪貼簿

base64 -d -i base64_output.txt | pbcopy


#Github Action#Github#Flutter#APK#AAB#Android

使用原因


因為個人 Mac 是 M1 記憶體也只有 8G,空間又不足,每次 Build 都會跑到電腦很 Lag,所以轉用 Github Action 來 Build,避免電腦一堆垃圾與佔用記憶體。

Guthub 免費提供每月 2000 分鐘的額度,可以從 Actions Usage Metrics 觀看使用量。

Plan Artifact storage Minutes (per month) Cache storage
GitHub Free 500 MB 2,000 10 GB
GitHub Pro 1 GB 3,000 10 GB
GitHub Free for organizations 500 MB 2,000 10 GB
GitHub Team 2 GB 3,000 10 GB
GitHub Enterprise Cloud 50 GB 50,000 10 GB

Workflow


路徑

.github/workflows/xxx.yml ,一個 xxx.yml 檔,就是一個工作流程,一個專案可以一次設定多個 workflow。


GitHub Personal Access Token 設定

要使用 Action 上傳到 Github Release 就必須先設定一組 Token,產生方式為 右上角點你的頭像 > Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token (classic),勾選 repowrite:packages 產生。


Secrets 設定

Secrets 是用來將 .jks、Token、等機敏資料加密存在 Github,使用到時再讀出來使用,避免把機敏資料上到 Git Commit。
一個 Secret 可從 GitHub Repository > Settings > Secrets and variables > Actions > New repository secret 新增即可在 .yml 內使用 ${{ secrets.KEY }} 替代。

Secret 名稱 用途說明
ID_RSA SFTP SSH Key
KEYSTORE_BASE64 Android keystore 的 Base64
KEY_ALIAS Keystore 的 Alias
KEY_PASSWORD Key 的密碼
STORE_PASSWORD Keystore 的密碼
PERSONAL_ACCESS_TOKEN GitHub Personal Access Token

Kiro Chat Cache 移除


#Kiro
最近 Mac 硬碟空間不足,使用 OmniDiskSweeper 查看有哪些東西可以刪除,發現 Kiro 的某個資料夾已經有 5G 

mtsung@MTsung-Toby-MacBook-3 ~ % du -sh /Users/mtsung/Library/Application\ Support/Kiro/User/globalStorage/kiro.kiroagent
5.1G /Users/mtsung/Library/Application Support/Kiro/User/globalStorage/kiro.kiroagent
稍微研究裡面檔案是 Kiro 的聊天記錄,移除後不影響功能,直接砍了。


#Flutter#Widget#RepaintBoundary

在開發專案的過程中,常常會需要將畫面轉換成圖片,例如:在問題回報時附上 APP 截圖、分享邀請小卡、需包含各種資訊加簽名的螢幕截圖。
這時候就可以使用 RepaintBoundary ,原本他是將 Widget 獨立渲染防止不必要的重繪的,利用 RenderRepaintBoundarytoImage 可以轉換成 ui.Image ,再轉換成 Uint8List 就可以做很多事情了。

Preview


Widget 顯示

儲存到相簿

分享



#MySQL#GREATEST#LEAST

規則


  • 如果有任一參數是 NULL,結果為 NULL。
  • 如果所有參數都是整數,則以整數方式比較。
  • 如果至少有一個參數是 Double,則以 Double 比較;否則,如果至少有一個是 DECIMAL,則以 DECIMAL 比較。
  • 如果參數是數字與字串混合,則以字串方式比較。
  • 如果有任何參數是非二進位(nonbinary)字串,則以非二進位字串方式比較。
  • 其他情況,則以二進位字串方式比較。

Example


GREATEST(value1,value2,…)

mysql> SELECT GREATEST(2,0);
        -> 2
mysql> SELECT GREATEST(34.0,3.0,5.0,767.0);
        -> 767.0
mysql> SELECT GREATEST('B','A','C');
        -> 'C'

LEAST(value1,value2,…)

mysql> SELECT LEAST(2,0);
        -> 0
mysql> SELECT LEAST(34.0,3.0,5.0,767.0);
        -> 3.0
mysql> SELECT LEAST('B','A','C');
        -> 'A'

    前往