Algorithm

OCW

  1. Hello 演算法
  2. csdiy.wiki
  3. RePublic of CS
  4. The Missing Semester of Your CS Education
  5. Learn Git Branching

Software

縮寫

  • SDLC(Software Development Life Cycle,軟體開發生命週期)

名詞用法

State Status
定義 表示具備明確轉換流程的狀態 表示單一、靜態的狀態或屬性
轉換關係 狀態之間有明確的遷移關係 狀態之間沒有明確的轉換流程
範例 TCP 狀態(SYN_SENT、ESTABLISHED 等) HTTP 狀態碼(200、404 等)、啟用/停用標記

Project Management

  1. Quire

Meaning of Abbreviations

Shortcut Description
PR Pull Request
PTAL Please Take A Look
TBR To Be Reviewed
TL;DR Too Long; Didn’t Read
LGTM Looks Good To Me
SGTM Sounds Good To Me
TBD To Be Done

Environment

Linux

  1. FOSS Linux
  2. Linux Journey

Docker

Installation
  1. 適用於Ubuntu與WSL的Nvidia Docker安裝方式
  2. Tensorflow with GPU on Windows WSL using Docker
  3. 【技術分享】重灌後,安裝 GPU 驅動以及 Docker
  4. Manage Docker as a non-root user
Setup
  1. How to Use a .dockerignore File: A Comprehensive Guide with Examples
  2. How to use Docker Build Args and Environment Variables
docker network-alias
  1. 談談 docker network-alias
docker stopsignal
Book or Video
  1. 不可不知的 Docker 開發部署實戰筆記:網站工程師一定要會的 8大核心能力
  2. Virtual Machine (VM) vs Docker
Error
  1. Docker Desktop WSL ext4.vhdx too large
  2. 設定 super user - nvidia-docker :权限被拒绝
  3. Docker image platform compatibility issue with MAC Silicon processors(M1/M2)
  4. Solution for docker: invalid reference format: repository name must be lowercase
  5. when using docker compose 3.8 getting 'version is unsupported' error

Python

Design Pattern

基本
State Design Pattern
  1. The State Design Pattern in Python Explained
Class
  1. Python dataclass 教學:輕鬆定義資料類別
  2. Python Property 教學:保護變數資料的 Getter 與 Setter
  3. Python Type Hints 教學:我犯過的 3 個菜鳥錯誤
  4. Pydantic: Simplifying Data Validation in Python
Enum
  1. Python Enum 枚舉教學:有條理管理常數集合的好工具
Documentation
  1. mkdocstrings/griffe
  2. Mintlify

Meet the next generation of documentation. AI-native, beautiful out-of-the-box, and built for developers

  1. Top 6 Tools to Turn Code into Beautiful Diagrams
  2. Diagrams as Code
Project
  1. astral-sh/uv

An extremely fast Python package installer and resolver, written in Rust.

  1. astral-sh/rye

a Hassle-Free Python Experience

  1. cookiecutter

A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.

  1. pypa/hatch

Modern, extensible Python project management

Flow Chart
  1. cdfmlr/pyflowchart
  2. PYTHON 自動產生 FLOWCHART !
Pipeline
  1. Data PIPELINE - Orchest
  2. airflow使用指南-机器学习工程自动化

Database

NoSQL

  1. SQL & MongoDB Query Comparison

Julia

SRE Site Reliability Engineering

Termindology

  1. Chaos Engineering - 混沌工程

Article

  1. ✨️什麼是混沌工程(Chaos Engineering)

CI/CD

Termindology

  1. Infrastructure as Code IaC
  2. GitOps

Version Control

Distributed Version Control System,DVCS
Center Version Control System
Team Foundation Version Control, TFVC
git
DVC

ML Experiments Management with Git

  1. Data Version Control | Git for Data & Models | ML Experiments Management
  2. Data Version Control With Python and DVC
elementary

Open-source data observability for analytics engineers

  1. https://github.com/elementary-data/elementaryelementary

Workflow/Pipeline/MLops

Crontab
Jenkins
Github action
Airflow
mage-ai

The modern replacement for Airflow. Build, run, and manage data pipelines for integrating and transforming data.

  1. https://github.com/mage-ai/mage-ai
wandb

A tool for visualizing and tracking your machine learning experiments.

  1. https://github.com/wandb/wandb
Drone CI
Flyte
  1. An open-source orchestrator that facilitates building production-grade data and ML pipelines
datachecks

Datachecks is an open-source data monitoring tool that helps to monitor the data quality of databases and data pipelines. It identifies potential issues, including in the databases and data pipelines. It helps to identify the root cause of the data quality issues and helps to improve the data quality.

  1. https://github.com/waterdipai/datachecks

Logs

hydra

A framework for elegantly configuring complex applications

  1. https://github.com/facebookresearch/hydra
whylogs

The open standard for data logging

  1. https://github.com/whylabs/whylogs

git

Articles

  1. 菜雞新訓記 (1): 使用 Git 來進行版本控制吧
  2. What is Git? Our beginner’s guide to version control
  3. Git Commit Message 這樣寫會更好,替專案引入規範與範例
  4. How to write a good commit message | git tutorial
  5. Conventional Commits 1.0.0
  6. requarks/changelog-action
  7. 🔄 全面掌握 Git 撤銷:詳細解析在 4 種不同層級下的操作方式
  8. Igouist/hello-git
  9. 開發 Git 的人所推薦的 .gitconfig 設定
  10. 偉大的 Git commit message rules

Commit message

  1. pre-commit
  2. Husky
  3. I Do this for every commit and why you should too!
  4. MichaelCurrin/auto-commit-msg
  5. Git Squash: How to Condense Your Commit History
  6. Smoother rebases with auto-squashing Git commits
  7. Git Squash Simplified
  8. gitmoji
  9. di-sukharev/opencommit

Command

# 列出所有曾經有 commit 過的文件
git log --pretty=format: --name-only --diff-filter=A | sort -u
# 刪除所有跟 a.txt 相關的紀錄
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch a.txt' --prune-empty --tag-name-filter cat -- --all

Commit message Convention

Type Description
feat Add new features
chore Build process or auxiliary tool changes
fix Fix some bugs
refactor A code change that neither fixes a bug or adds a feature
style Change coding style
docs Write new documentation

Branch Naming Convention

Type Description
wip Works in progress
feat Feature
bug Bug fix or experiment
junk Throwaway branch created to experiment

Rebase

Commands Description
pick 保留該提交,不進行任何更改
reword 修改該提交的提交訊息
edit 挑選該提交,並在應用該提交時停止,以便你可以進行修改
squash 將該提交與前一個提交合併成一個提交
fixup 與 squash 類似,但用於合併提交而無需保留該提交的提交訊息
exec 執行一個 shell 命令。這允許你在 rebase 過程中執行自定義的命令

Web

API

Open Source

Alternative

  1. OpenAlternative
  2. Collecting the Best Free AI APIs for You
  3. Githunt

Mentorship

  1. 給薪的遠端開源實習大比拼:GSoC vs Outreachy
Select a repo