[11/18 - 11/24] GitHub Weekly Digest

November 24, 2024

📌 DataExpert-io/data-engineer-handbook

Description: This is a repo with links to everything you'd ever want to learn about data engineering
🌐 Makefile|⭐️ 20,559 | 7060 stars this week

簡介

這份資料工程手冊 (The Data Engineering Handbook) 提供所有成為優秀資料工程師所需的資源,包含學習路線圖、線上課程、書籍、社群連結、以及業界公司和工具的清單。 內容涵蓋資料工程的各個面向,從基礎知識到進階應用,並提供豐富的學習資源和職業發展建議。 適合資料工程新手以及想提升技能的專業人士。

主要功能

  • 提供 2024 年資料工程領域的學習路線圖 (Roadmap)。
  • 收錄超過 25 本資料工程相關書籍,並推薦 3 本必讀書籍 (Fundamentals of Data Engineering, Designing Data-Intensive Applications, Designing Machine Learning Systems)。
  • 列出超過 10 個值得加入的資料工程和機器學習社群。
  • 彙整資料工程相關公司,按其功能分類 (Orchestration, Data Lake/Cloud, Data Warehouse, Data Quality, Education Companies 等)。
  • 提供資料分析與視覺化工具清單 (Preset, Starburst, Metabase 等)。
  • 收錄資料整合工具 (Cube, Fivetran, Airbyte 等) 和現代 OLAP 工具 (Apache Druid, ClickHouse 等)。
  • 列出大型語言模型 (LLM) 應用程式庫 (AdalFlow, LangChain, LlamaIndex)。
  • 收錄即時資料處理工具 (Aggregations.io, Responsive 等)。
  • 整理資料工程公司部落格和白皮書連結。
  • 提供資料工程相關社群媒體創作者清單,包含其社群媒體帳號連結。
  • 收錄優質的資料工程相關 Podcast 清單。

如何使用

  • 針對資料工程新手,建議從 2024 年資料工程學習路線圖開始。
  • 透過提供的書籍、社群連結和線上課程等資源進行學習。
  • 參考公司清單,瞭解業界常用的工具和技術。
  • 利用提供的社群媒體帳號和 Podcast 連結,與其他資料工程師交流學習。
  • 針對特定領域 (例如:資料整合、資料倉庫),可直接參考相關章節資源。
  • 可以根據自身需求,選擇適合的學習途徑和資源。
  • 善用提供的書籍和白皮書,深入瞭解資料工程的相關理論和實務。
  • 積極參與線上社群,與其他學習者互動交流。

📌 twentyhq/twenty

Description: Building a modern alternative to Salesforce, powered by the community.
🌐 TypeScript|⭐️ 23,310 | 2978 stars this week

簡介

  • Twenty 是一個開源的客戶關係管理 (CRM) 系統,旨在提供使用者完整的控制權和彈性,擺脫傳統 CRM 系統的限制。
  • 不同於 Pipedrive 和 Salesforce 等傳統 CRM,Twenty 著重於開放性和客製化,讓使用者能根據自身需求調整系統。
  • Twenty 的設計理念是賦能而非約束,並相信開放原始碼社群將創造出下一代優秀的 CRM 平臺。
  • 目前 Twenty 仍處於 Alpha 版本的開發階段,歡迎使用者回饋意見並參與開發。
  • Twenty 的使用者介面設計靈感來自 Notion,力求直覺易用。
  • Twenty 強調資料掌控權,使用者可以根據自身資料建構資料模型。

主要功能

  • 新增、篩選、排序、編輯和追蹤客戶 (Add, filter, sort, edit, and track customers)
  • 為每個公司建立一個或多個商機 (Create one or several opportunities for each company)
  • 以時間軸顯示豐富的筆記和任務 (See rich notes tasks displayed in a timeline)
  • 在記錄上建立任務 (Create tasks on records)
  • 使用鍵盤快捷鍵和搜尋功能快速導覽應用程式 (Navigate quickly through the app using keyboard shortcuts and search)
  • 支援郵件整合,輕鬆追蹤交易 (Track deals effortlessly with the email integration)
  • 客製化資料模型以符合業務需求 (Tailor your data model to meet business needs)

如何使用

  • 可以前往 demo.twenty.com 使用試用帳號登入體驗:email: tim@apple.dev, password: Applecar2025。
  • 目前 Twenty 處於 Alpha 階段,功能持續開發中,可透過提交 issue 反映需求。
  • 支援自託管和本地設定 (Self-hosting and Local Setup),詳情請參考檔案。
  • Twenty 鼓勵使用者貢獻、自託管和 fork 程式碼,以參與塑造 CRM 的未來。

📌 payloadcms/payload

Description: Payload is the open-source, fullstack Next.js framework, giving you instant backend superpowers. Get a full TypeScript backend and admin panel instantly. Use Payload as a headless CMS or for building powerful applications.
🌐 TypeScript|⭐️ 27,994 | 2340 stars this week

簡介

Payload 是一個全新的、原生支援 Next.js 的 CMS,可以直接安裝在您現有的 /app 資料夾中。它標誌著無頭 CMS 新時代的開始。相較於傳統 CMS,Payload 提供以下優勢:

  • 部署於任何環境,包含免費的 Vercel serverless 服務。
  • 可選擇將前端和後端程式碼整合至相同的 /app 資料夾中。
  • 開放原始碼,無需註冊額外 SaaS 服務。
  • 可在 React Server Components 中直接查詢資料庫。
  • 管理介面和後端皆 100% 可擴充套件。
  • 無廠商鎖定。
  • 免除接觸過時的 WordPress 程式碼。
  • 加速開發流程,避免遭遇瓶頸。

主要功能

Payload 提供多項強大的功能,包含:

  • 完全免費且開放原始碼。
  • 原生支援 Next.js,建構於 /app 資料夾內。
  • 使用伺服器元件擴充套件 Payload 使用者介面。
  • 直接在伺服器元件中查詢資料庫,無需 REST/GraphQL。
  • 完全使用 TypeScript,自動產生資料型別。
  • 內建驗證機制。
  • 版本控制和草稿功能。
  • 多語言支援。
  • 基於區塊的版面配置建構器。
  • 可自訂的 React 管理介面。
  • Lexical 富文字編輯器。
  • 條件欄位邏輯。
  • 極其細緻的存取控制。
  • 針對 Payload 提供的每個動作,皆提供檔案和欄位層級的掛勾 (hooks)。
  • 極速 API。
  • 透過 HTTP-only cookies、CSRF 防護等機制確保高度安全性。

如何使用

Payload 的使用方式簡潔易懂:

  • 快速入門: 使用 pnpx create-payload-app@latest 命令建立 Payload 專案。 建議新手使用網站範本 (pnpx create-payload-app@latest -t website) 開始,它包含了自訂富文字區塊、按需重新驗證、即時預覽等功能,並使用 Tailwind CSS 建立前端介面,所有程式碼都位於同一個 /app 資料夾中。
  • 範本: Payload 提供多種預建範本,例如網站範本 (適用於建立各種網站、部落格或作品集),能快速啟動專案。
  • 官方和社群範本: Payload 提供官方和社群提供的範本,方便使用者快速上手。 更多範本可參考範本目錄。
  • 檔案: 詳盡的檔案說明可在 Payload 官網上找到。 版本升級指南也提供 v2 到 v3 的遷移步驟。
  • 範例: 範例目錄提供多種 Payload 設定方式的範例,可在 Payload 部落格和社群媒體上找到更多範例。 執行範例時,可使用 pnpm --ignore-workspace install 等指令。

📌 freqtrade/freqtrade

Description: Free, open source crypto trading bot
🌐 Python|⭐️ 31,098 | 2214 stars this week

簡介

Freqtrade 是一個免費且開放原始碼的 Python 編寫加密貨幣交易機器人。它旨在支援所有主要的交易所,並可透過 Telegram 或 WebUI 控制。它包含回測、繪圖和資金管理工具,以及透過機器學習進行策略最佳化。 Freqtrade 使用 Python 3.10+ 開發,可在 Windows、macOS 和 Linux 等作業系統上執行。 免責宣告:此軟體僅供教育用途,使用風險自負。

主要功能

  • 支援多個交易所:Binance、Bitmart、BingX、Bybit、Gate.io、HTX (前 Huobi)、Hyperliquid (去中心化交易所)、Kraken、OKX (前 OKEX) 等。也支援期貨交易所 (實驗性)。
  • 永續性儲存:使用 sqlite 進行永續性儲存。
  • 模擬交易 (Dry-run):可在不實際交易的情況下測試策略。
  • 回測功能 (Backtesting):模擬你的買賣策略。
  • 機器學習策略最佳化:使用機器學習最佳化你的買賣策略引數。
  • 自適應預測模型 (Adaptive prediction modeling):透過 FreqAI 建立自學習的智慧策略。
  • 邊際倉位調整 (Edge position sizing):計算勝率、風險回報比率、最佳止損點並調整倉位大小。
  • 白名單/黑名單加密貨幣:選擇要交易或避免的加密貨幣。
  • 內建 WebUI:內建 Web UI 用於管理機器人。
  • Telegram 控制:透過 Telegram 管理機器人。
  • 法幣顯示盈虧:以法幣顯示盈虧。
  • 效能狀態報告:提供目前交易的效能狀態。

如何使用

  • 快速入門:參考 Docker 快速入門檔案。 也可參考安裝檔案進行原生安裝。
  • 基本用法:使用命令列介面執行各種功能,例如 freqtrade trade 啟動交易,freqtrade backtesting 進行回測等等。 完整的命令列引數請參考檔案。
  • Telegram RPC 命令:透過 Telegram 命令控制機器人,例如 /start 啟動交易,/stop 停止交易,/status 檢視交易狀態等等。 詳細命令清單請參考檔案。
  • 其他功能:包含資料下載、轉換、策略建立、超引數最佳化 (Hyperopt)、圖表繪製等功能。 需參考檔案瞭解詳細使用方法。

📌 opendatalab/MinerU

Description: A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具,将PDF转换成Markdown和JSON格式。
🌐 Python|⭐️ 18,234 | 1584 stars this week

簡介

MinerU 是一個將 PDF 轉換為機器可讀格式(例如 Markdown、JSON)的工具,方便將資訊提取到任何格式。MinerU 誕生於 InternLM 預訓練的過程中,專注於解決科學文獻中的符號轉換問題,希望為大模型時代的技術發展貢獻力量。相較於知名的商業產品,MinerU 仍在發展階段。

主要功能

  • 移除頁首、頁尾、腳註、頁碼等,確保語義連貫性。
  • 以人類可讀的順序輸出文字,適用於單欄、多欄和複雜版面。
  • 保留原始檔案的結構,包括標題、段落、列表等。
  • 提取圖片、圖片描述、表格、表格標題和腳註。
  • 自動識別並將檔案中的公式轉換為 LaTeX 格式。
  • 自動識別並將檔案中的表格轉換為 HTML 格式。
  • 自動偵測掃描版 PDF 和亂碼 PDF 並啟用 OCR 功能。
  • OCR 支援 84 種語言的偵測和識別。
  • 支援多種輸出格式,例如多模態和 NLP Markdown、按閱讀順序排序的 JSON 以及豐富的中間格式。
  • 支援各種視覺化結果,包括版面視覺化和跨度視覺化,以有效確認輸出品質。
  • 支援 CPU 和 GPU 環境。
  • 相容 Windows、Linux 和 Mac 平臺。

如何使用

MinerU 提供線上演示、快速 CPU 演示和 GPU 加速三種使用方式:

  • 線上演示: 無需安裝,直接使用線上服務。
  • 快速 CPU 演示:
    1. 使用 conda 安裝 magic-pdf[full]
    2. 下載模型權重檔案。
    3. 修改 magic-pdf.json 配置檔案,例如啟用或禁用表格識別功能(table-config.enable)。 範例:
    {
        "table-config": {
            "enable": true
        }
    }
  • GPU 加速: 需符合硬體需求並安裝 CUDA 環境,根據作業系統選擇不同的指南。 Docker 部署亦支援 GPU 加速,但需至少 8GB VRAM。

命令列工具使用 magic-pdf 命令,支援多種選項,例如指定 PDF 路徑、輸出目錄、解析方法(ocrtxtauto)、語言等。 API 則提供更彈性的程式碼介接,支援本地磁碟和物件儲存。