2025/10/01

國際綠色處理公司

 

一、國際綠色處理公司(或南投綠色國際)基本資訊與業務範圍

  • 有資料顯示「國際綠色處理股份有限公司」位於南投縣南投市,工業南七路6號。 twincn.com+2透明足跡+2

  • 該公司在公開資料中曾被稱為「專門處理廢藥品」的處理廠商,負責處理報廢藥品、過期藥品、退稅藥品等。 台灣黃頁詢價平台

  • 在南投縣政府的環保局工作報告中,南投縣列出處理許可的機構中就包含「國際綠色處理股份有限公司」作為廢棄物處理機構之一。 nantou.gov.tw+1

  • 在透明足跡平台中,該公司也因未申報部分廢棄物(例如廢玻璃)而受查核處分,顯示其確具有「廢棄物收受、貯存、清除處理」的業務。 透明足跡

因此,「南投綠色國際/國際綠色處理」在醫療廢棄物/廢藥品領域可能從事項目包括:

  • 接受、收受醫療機構或相關業者交付的廢藥品、過期藥品

  • 中間儲存(貯存)這些廢棄物

  • 處理與銷毀(焚化、化學處理或其他合法方法)這些醫療/藥品廢棄物

  • 清除與運輸(將醫療廢棄物從醫療院所運送至處理設施)

  • 合法申報與文件管理(必須按規定上網/向主管機關報告廢棄物數量/流向)

這與一般醫療廢棄物共同清除/處理機構之功能類似。根據《醫療廢棄物共同清除處理機構管理辦法》,清除與處理可以是由同一機構兼任。 Root Law+1


二、醫療廢棄物處理在台灣的法規與主管機關

為了理解該公司的業務與其監管,先要掌握台灣醫療廢棄物的法規與主管機關架構:

(一)法規母法與相關子法

  1. 《廢棄物清理法》(簡稱廢清法):是廢棄物管理的母法,規範廢棄物之定義、分類、申報、清除與處理許可等。 greenhosp.tw+2greenhosp.tw+2

  2. 事業廢棄物貯存清除處理方法及設施標準:具體規定事業廢棄物(包括醫療機構產出的有害事業廢棄物)在貯存、清除及處理設施上的技術標準。 oaout.moenv.gov.tw

  3. 醫療廢棄物共同清除處理機構管理辦法:定義什麼是共同清除機構、共同處理機構,其設立條件、主管責任等。 Root Law+2Root Law+2

  4. 醫療事業廢棄物再利用管理辦法:針對醫療機構中可能能夠再利用之廢棄物的規範(例如某些可回收材質)。 dep.mohw.gov.tw+1

  5. 其他如「感染性醫療廢棄物處理緊急應變」等法規補充規範在特殊時期的處理方式。 oaout.moenv.gov.tw

(二)主管機關與執行機關體系

機構層級主要職責相關資料/依據
中央級制定政策、法規、監督、整體指導廢棄物清理法授權給行政院環境保護署。醫療廢棄物相關業務由衛生福利部醫事司負責。 greenhosp.tw+4dep.mohw.gov.tw+4greenhosp.tw+4
行政院環境保護署(或環境部及其資源循環署體系)廢棄物管理法規的制定、監督、輔導、稽查在最近體制調整後,環境部下設資源循環署專責廢棄物業務。 enews.moenv.gov.tw+3方日法律事務所+3epb2.tnepb.gov.tw+3
衛生福利部 / 醫事司與醫療廢棄物相關的衛生面管理、醫療機構輔導、許可制度醫療廢棄物相關業務由衛福部醫事司主管。 cybsbox.cy.gov.tw+3dep.mohw.gov.tw+3dep.mohw.gov.tw+3
地方政府(縣市環保局/環保局)廢棄物處理設施的許可、稽查、執行、查核地方業者地方環保局是地方執行機關。 enews.moenv.gov.tw+3greenhosp.tw+3greenhosp.tw+3
醫療機構院內的廢棄物分類、暫存、包裝、標示、交由合法清除處理機構醫療機構必須依規定自行或委託合格機構清除處理其醫療廢棄物。 衛生福利部+2greenhosp.tw+2

地方環保局在許可、監督與稽查廢棄物處理業者方面,扮演極為關鍵的角色。

(三)技術與許可要求

  • 共同處理機構需具備一定能力,包括有具甲級廢棄物處理技術員資格的主任管理員、處理設備與資金等。 Root Law+1

  • 清除與處理應簽訂契約(受託清除、處理機構與委託人之間要有書面契約,並保存三年以供查驗) greenhosp.tw+2Root Law+2

  • 處理方法要符合技術標準,如感染性廢棄物通常以熱處理方式為主(如焚化、滅菌法)。 oaout.moenv.gov.tw+2greenhosp.tw+2

  • 必須進行每月或定期的廢棄物數量與流向申報(透過事業廢棄物申報系統) waste.moenv.gov.tw+1


三、南投綠色國際/國際綠色在醫療廢棄物處理上可對照的「業務項目」與應注意點

針對這家公司,若其確實具備合法醫療廢棄物處理角色,其業務(或應具備之能力)可能涵蓋以下:

  1. 收受與收運:從醫療院所或藥局、診所接收醫療廢棄物或廢藥品

  2. 中間貯存:設置合法的暫存設施,符合溫控、安全、防止擴散規定

  3. 處理/銷毀:透過焚化、化學處理、滅菌等方法使廢棄物無害化

  4. 清除(最終處理):完成整個處理流程並清除最終殘渣

  5. 申報與監督配合:向主管機關報送廢棄物流向、數量;接受稽查

  6. 合約簽訂與保存:與委託醫療機構簽訂清除處理合約並保存相關紀錄

  7. 符合法規與許可:必須依據法規取得必要的「處理許可」、「清除許可」等

  8. 技術與人員資格:應具備具備法定資格的技術人員與管理人員

一、主要檢舉主管機關

  1. 地方環保局(南投縣環境保護局)

    • 這是第一線最直接的主管機關。

    • 如果該公司有:未經許可收受廢棄物、偷倒、未依規定處理、廢氣廢水排放超標等,您可以直接向 南投縣政府環保局 檢舉。

    • 檢舉方式:電話(1999 或地方專線)、環保署「公害陳情專線 0800-066666」、或環保署的 公害陳情系統(線上)。

  2. 環境部(前環保署)資源循環署

    • 主管事業廢棄物、醫療廢棄物的全國政策與許可。

    • 若涉及跨縣市、重大違規、或涉及廢棄物流向申報造假,可以檢舉到中央。

  3. 衛生福利部(醫事司 / 衛生局)

    • 如果違法涉及 醫療廢棄物感染性處理(例如違規保存、處理導致感染風險),可通報 衛生福利部或地方衛生局

    • 地方衛生局(如南投縣衛生局)可配合稽查醫療廢棄物管理狀況。


二、其他可輔助檢舉的單位

  • 勞動檢查單位(勞動部/地方勞檢處)
    若違規行為涉及 員工暴露於有害廢棄物、化學品危害,可向勞檢處檢舉。

  • 檢察署或警方
    若違規涉及 刑責(例如非法傾倒、偽造文件、污染環境致人受害),可直接報案或向地檢署告發。

  • 透明足跡/環境資訊平台(民間協力監督)
    例如「透明足跡」網站有公開廢棄物處理業者紀錄,民眾檢舉也可能成為媒體或 NGO 的關注焦點。


三、常見檢舉事項

  1. 未依規定申報廢棄物數量與流向

  2. 超量收受、非法轉售或轉交未具資格單位

  3. 處理設施不合格(未妥善焚化、造成廢氣污染)

  4. 偷倒、非法棄置於非指定地點

  5. 感染性醫療廢棄物未經滅菌即拋棄

  6. 未妥善防止藥品外流(有藥物濫用疑慮)


建議做法

  • 如果是 地方性的違規(廢氣、廢水、惡臭、傾倒) → 先打 環保局公害陳情專線 0800-066666 或直接向 南投縣環保局 檢舉。

  • 如果是 廢棄物流向造假或跨縣市非法轉運 → 可向 環境部資源循環署檢調單位 反映。

  • 如果是 感染性醫療廢棄物處理不當 → 可聯繫 南投縣衛生局衛福部醫事司

「藥品(屬於醫療事業廢棄物)混入一般垃圾送去焚化」,在台灣屬於 違反《廢棄物清理法》與《醫療事業廢棄物管理規定》 的情形。
因為藥品(尤其是過期藥、廢藥)應交由具資格的醫療廢棄物清除/處理機構,不得混入一般垃圾。

這種狀況可以向下列單位檢舉:


一、主要檢舉機關

  1. 地方環保局(垃圾焚化廠所在地之縣市環保局)

    • 如果是在南投 → 南投縣政府環境保護局

    • 他們主管「垃圾分類」與「事業廢棄物清除、處理」,有權開罰與要求改善。

    • 可撥打:公害陳情專線 0800-066666(全國統一)、或南投縣政府 1999 熱線。

  2. 環境部(前環保署)資源循環署

    • 主管全國事業廢棄物、醫療廢棄物的法規與跨區管理。

    • 如果涉及業者 刻意將藥品混入一般垃圾規避處理費用,屬於重大違規,可以向環境部檢舉。

  3. 衛生福利部(地方衛生局 + 醫事司)

    • 若違規者是 醫療院所、藥局、藥廠,衛生局也有權依《藥事法》與醫療廢棄物規範開罰。

    • 在南投 → 南投縣衛生局


二、其他可配合檢舉的單位

  • 地檢署/警方

    • 如果涉及 大規模非法棄置或偽造申報,可能觸及刑法(如公共危險罪、廢棄物棄置罪),可以向檢警單位告發。

  • 勞動檢查機構

    • 若員工因為混入垃圾處理而接觸藥品危害,可檢舉至地方勞檢處。


三、檢舉管道

  • 📞 環保署公害陳情專線:0800-066666(24 小時,會轉給當地環保局處理)

  • 🌐 環保署公害陳情系統(線上檢舉)

  • 📞 南投縣環保局專線(可透過縣府 1999 轉接)

  • 📞 南投縣衛生局(若是醫療院所違規處理藥品)


簡單說

  • 藥品混入垃圾焚化 → 優先檢舉「地方環保局」

  • 若來源是醫療機構/藥局 → 加報「衛生局」

  • 若涉及惡意規避責任或跨縣市運作 → 再報「環境部資源循環署」與檢警


一、檢舉/陳情方式

環境部/資源循環署(或其所屬環境管理署)提供多種管道讓民眾針對環境污染、公害或廢棄物違規行為提出陳情或檢舉。 ema.gov.tw+2ww3.moenv.gov.tw+2

常見方式如下:

檢舉管道說明
電話公害陳情專線 0800-066666(免付費),可即時轉接地方環保局處理。 ema.gov.tw+1
公害污染陳情網路受理系統線上填寫陳情表單(污染種類、地點、時間、照片/影片等),提交後由環保機關分派案件處理。 ww3.moenv.gov.tw+2ema.gov.tw+2
手機 APP(公害報報或類似環保陳情 App)透過手機應用程式拍攝、上傳違規情形進行陳情。 ema.gov.tw
書面、電子郵件或傳真可將具體違規事證、影像資料等,以書面或電子檔寄至環保機關或環資署指定窗口。 ema.gov.tw

二、處理流程(公害陳情案件處理)

檢舉提交後的典型處理流程如下(根據《環境保護機關處理公害污染陳情案件作業程序》規定) oaout.epa.gov.tw+2ema.gov.tw+2

  1. 受理登錄

    • 環保報案中心(或資源循環署相關單位)接收您之檢舉資料,進行基本登錄、編號。 ema.gov.tw+1

    • 如果是緊急性/立即性污染,可能優先處理。 ww3.moenv.gov.tw+1

  2. 案件分派

  3. 現場稽查、調查

    • 稽查人員依您提供的資料(時間、地點、照片、影片、可能證人等)進行現場查核。

    • 若有必要,可能採樣、量測、比對監測資料等。

  4. 處理決定/處分或要求改善

    • 若查證違規屬實,相關機關會依法律對違規者處分(例如開罰、令其限期改善、訴願等)。

    • 若僅部分瑕疵或需補正,也可能以通知方式要求改善後復核。

  5. 回覆與結案

    • 檢舉人可透過系統查詢案件進度與結果。 ema.gov.tw+1

    • 若檢舉人留下聯絡方式,機關可主動通知處理結果。 ema.gov.tw+1

    • 若經改善、或處分完成,即結案。


三、檢舉時應注意與準備的事項

為使檢舉有效且可被受理,建議您準備以下資料與符合規定:

項目建議內容
具體違規事實描述必須明確指出「誰/哪個公司」、「何時」、「何地」、「做了什麼」違規行為(例如混入垃圾、未依規定處理等)
影像證據提供照片或影片,若影片可顯示拍攝日期、時間、地點更佳
車牌或業者識別若涉及運輸車輛,盡可能記錄車牌號碼、車型、外觀特徵
檢舉人資料(若願意具名)真實姓名、住址、電話、電子郵件等,部分地方法規規定檢舉人必須具名(但機關應予保密) ilepb.gov.tw+2oaout.epa.gov.tw+2
違規相關法條或規範若您已查到法規條文(如廢清法、醫療廢棄物規定等),可註明以助稽查人員理解
時間限制有些地方規定發現後應在一定期限內檢舉(例如 30 天內)否則不予受理。 ilepb.gov.tw+1

四、具體連絡與檢舉流程(以資源循環署/環保部門為中心)

  1. 進入公害污染陳情網路受理系統(環保部/資源循環署所屬系統) → 點選「我要報案/檢舉」 → 填寫檢舉表單 → 上傳證據檔案 → 提交。 ww3.moenv.gov.tw+2ww3.moenv.gov.tw+2

  2. 電話直撥 0800-066666 → 若為地方案件,電話將轉接至地方環保單位處理。 ema.gov.tw+1

  3. APP 上傳檢舉 使用「公害報報」或類似環保陳情 App 拍照上傳 → 系統轉派案件。 ema.gov.tw

  4. 書信、電子郵件、傳真方式 將檢舉內容與影像資料寄至資源循環署或相關環保單位。 ema.gov.tw

  5. 案件查詢 提交後可於網路系統查詢進度與結果。 ww3.moenv.gov.tw+1

  6. 督導或升案 若地方環保局處理不當、或案件具重大性、跨縣市,資源循環署可介入督導。 oaout.epa.gov.tw+2ema.gov.tw+2

2025/09/30

將 UniFi Controller 從 Mac Mini 遷移到 Cloud Gateway Max 的步驟

將 UniFi Controller 從 Mac Mini 遷移到 Cloud Gateway Max 的步驟

將 UniFi Network Application(控制器)從 Mac Mini(自託管軟體版本)遷移到 Cloud Gateway Max 的過程,主要依賴備份還原(Backup and Restore)。這是官方推薦的方法,能保留您的網路設定、VLAN、SSID、防火牆規則等配置,而無需重新採用所有設備(如 AP、交換器)。整個過程通常只需 30-60 分鐘,但請在非高峰期進行,以避免中斷。

前置條件與注意事項

  • 版本相容性:確保 Mac Mini 上的 UniFi Network Application 版本與 Cloud Gateway Max 上的版本相同或較舊(新版可向下相容)。遷移前,先在 Mac Mini 更新控制器至最新版(從 ui.com/download/unifi 下載 macOS 版本)。
  • 備份類型:使用「Network Application Backup」(.unf 檔案),這只包含 Network 應用設定。如果您還使用 Protect(攝像頭)或 Talk 等其他應用,請分別備份。
  • 警告
    • 遷移後,設備會自動連接到新控制器,但若有 Layer 3 採用(跨 VLAN),可能需手動調整 Inform URL。
    • Cloud Gateway Max 會取代您的路由器(如有 USG),需手動配置路由相關設定(如 DHCP、防火牆),因為軟體控制器不支援這些。
    • 備份不包含自訂腳本或第三方整合;若有,需手動重置。
    • 斷開舊控制器後,設備若未自動切換,可能需在舊控制器「Forget」設備。
  • 工具:瀏覽器、SSH(選用,用於進階調整)。

詳細步驟

以下步驟基於 Ubiquiti 官方文件與使用者經驗(如 Reddit r/Ubiquiti 討論)。

  1. 備份當前設定(在 Mac Mini 上)
    • 開啟 UniFi Network Application(透過瀏覽器登入:通常為 http://localhost:8443 或您的 Mac IP)。
    • 前往 Settings > System > Backups(或舊版介面:Settings > Maintenance > Backup)。
    • 點擊 Download Backup,選擇「Full Backup」或「Configuration Only」(推薦全備份,包含統計資料)。
    • 儲存 .unf 檔案到安全位置(如 USB 或雲端)。檔案大小約 1-10 MB,視設定複雜度而定。
    • 驗證備份:可上傳到測試環境檢查是否完整。
  2. 準備 Cloud Gateway Max
    • 開箱後,使用隨附電源與乙太網路線連接。
    • 將 WAN 埠(Port 5)連接到您的 modem 或現有網路(DHCP 取得 IP)。
    • 透過手機 App(UniFi Network App)或瀏覽器(預設 IP:192.168.1.20 或使用 App 掃描)開始初始設定。
    • 更新韌體:登入後,前往 Settings > Updates,安裝最新 UniFi OS(需 3.1+ 版本)。這可能需 10-20 分鐘重啟。
    • 重要:若要最小干擾,可將 Cloud Gateway Max 的 LAN IP 設定為與舊控制器相同(預設 192.168.1.1,若衝突則調整)。
  3. 還原備份到 Cloud Gateway Max
    • 在初始設定或登入後,前往 Settings > System > Backups(或 Control Plane > Backups)。
    • 點擊 Restore Backup,上傳從 Mac Mini 下載的 .unf 檔案。
    • 確認還原:系統會自動套用設定,重啟約 5-10 分鐘。
    • 登入新控制器,檢查 Devices 清單:您的 AP、交換器等應顯示「Connected」。
  4. 切換設備管理(Inform Host 調整)
    • 保持所有 UniFi 設備連接到現有網路(勿斷開)。
    • 在 Cloud Gateway Max 上,前往 Settings > System > Advanced > Inform Host,記下其 IP(例如 192.168.1.1)。
    • 返回 Mac Mini 舊控制器,前往 Settings > System > Advanced,將 Inform Host 改為 Cloud Gateway Max 的 IP。這會讓設備開始向新控制器報告。
    • 等待 5-10 分鐘,所有設備應自動採用(Adopt)。若未發生:
      • 在舊控制器上,選取每個設備 > Forget Device
      • 在新控制器上,手動 Adopt 設備(點擊 Adopt 按鈕)。
    • 若使用 SSH 進階調整:在設備上執行 set-inform http://<新 IP>:8080/inform(需啟用 SSH)。
  5. 移除舊控制器並驗證
    • 一旦所有設備在 Cloud Gateway Max 上線(綠燈),斷開 Mac Mini 的 UniFi 應用(停止服務或卸載)。
    • 在 Cloud Gateway Max 上,檢查 Insights > Known ClientsNetworks,確保流量正常。
    • 測試功能:連線 Wi-Fi、存取網路、檢查日誌(Settings > System > Logs)。
    • 若有 Protect 應用:分別備份並還原(.ubk 檔案),步驟類似。
  6. 後續優化
    • 配置 Cloud Gateway Max 特定功能:如 Multi-WAN、PoE(若適用)、或新增儲存(NVMe SSD)。
    • 啟用雲端備份:Settings > System > Backups > Auto Backup,設定雲端同步。
    • 若遷移失敗:工廠重置 Cloud Gateway Max(按住重置鈕 10 秒),重新還原備份。

常見問題排除

  • 設備未顯示:重啟設備或檢查防火牆(確保 UDP 10001 埠開放)。
  • 版本不符:若還原失敗,先更新新裝置至舊版,然後升級。
  • 無路由功能:Cloud Gateway Max 內建路由器,遷移後需手動設定 WAN/LAN(Settings > Networks)。

此過程 99% 情況下無需重置設備。若您的設定複雜(如多站點),建議先在測試環境試遷移。更多細節可參考 Ubiquiti 官方備份指南

2025/09/26

Microsoft Publisher Content Marketplace (PCM) 計畫

 Microsoft 正在推動一項名為 Publisher Content Marketplace (PCM) 的新計畫,目的是建立一個 AI 與內容出版者之間的雙向市場,讓出版商能夠因其內容被 AI 使用而獲得合理報酬。這項計畫目前處於美國的試點階段,未來可能擴展到全球。 [Microsoft’...ed Content], [Microsoft...publishers], [Microsoft...mpensation]

對出版商與內容版權所有者來說,這個 AI 市場具體會怎麼進行?

  1. 內容授權與交易平台

    • 出版商可以選擇將其內容授權給 AI 模型(例如 Microsoft Copilot)使用。
    • AI 開發者(目前是 Microsoft 自家的 Copilot,未來可能擴展到其他 AI 產品)會支付費用以合法使用這些內容。
  2. 透明的使用與報酬機制

    • 報酬將根據內容在 AI 回應中被引用的頻率來計算,確保出版商獲得持續性收入,而非一次性買斷。 [Microsoft...mpensation]
    • Microsoft 計畫使用 Azure 等技術來追蹤內容使用情況並處理付款。
  3. 解決的問題與改變的現狀

    • 解決內容被未經授權使用的問題:目前許多 AI 模型透過網路爬蟲擷取內容,出版商無法獲得報酬,甚至流量與廣告收入被稀釋。
    • 減少法律風險與訴訟:此舉可能緩解出版商對 AI 公司提告的趨勢,建立更具倫理與法律基礎的合作模式。
    • 創造新的商業模式:出版商不再只是依賴廣告或訂閱收入,而是能透過內容授權給 AI 獲得新收入來源。
  4. 與其他科技公司的差異

    • 相較於 Google 或 OpenAI 等公司尚未建立正式的內容交易平台,Microsoft 是第一個主動提出補償機制的大型科技公司。 [Microsoft’...ed Content]

這項計畫若成功,可能會成為 AI 與內容產業合作的新典範。

timebox for logseq

Alternatives to Roam Nautilus in Logseq

Roam Nautilus is a clever Roam Research extension that turns a daily task list into a visual spiral planner, dynamically scheduling unfinished tasks into available time slots (based on events, durations, and progress) to reduce overwhelm and improve time estimation. It's Roam-specific, but Logseq's outliner-style journals and plugin ecosystem make it easy to replicate this with a mix of plugins and queries. Logseq doesn't have an exact 1:1 port (no spiral visuals yet), but you can achieve similar time-blocking, auto-rescheduling, and visual task tracking using open-source plugins.

Based on Logseq's plugin marketplace, community discussions (e.g., Reddit, forums), and recent updates (as of September 2025), here are the top alternatives. I've prioritized those with calendar integration, task auto-arrangement, and visual elements like Gantt charts or progress bars. These are all free and installable via Logseq's built-in plugin browser (Settings > Plugins > Marketplace).

Key Recommendations

  • For closest Nautilus-like dynamic planning: Use Agenda as your core plugin—it's the most comprehensive for visual calendars and task pushing.
  • For quick setup: Combine Logseq Gantt (for timelines) with Todo Master (for progress tracking).
  • Pro Tip: In Logseq, use journal queries like {{query (and (task scheduled) (between today tomorrow))}} under a daily template to auto-pull tasks, mimicking Nautilus's push-forward. Add durations with properties like :: 15m for estimation.
PluginDescriptionKey Features (Similar to Nautilus)Pros vs. NautilusCons vs. NautilusInstall NotesGitHub/Link
AgendaA full-featured calendar and task manager that integrates Logseq tasks with visual timelines, supporting dynamic rescheduling based on deadlines and availability.- Multiple views: Day/week/month/Gantt. - Auto-overdue task highlighting and dashboard for unfinished items. - Event/task creation with durations (e.g., "Meeting 30m"). - Progress tracking, milestones, and exportable logs. - Queries for pushing tasks to today.- Native Logseq integration (no code blocks needed). - Gantt for visual "spiral-like" time flow. - Free, offline-first; handles large graphs better than Roam's cloud.- No spiral shape (uses linear/Gantt instead). - Steeper setup for custom queries.Search "Agenda" in Logseq Marketplace; docs at haydenull.github.io/logseq-plugin-agenda.GitHub
Logseq GanttGenerates interactive Gantt charts from tasks, visualizing schedules and dependencies like a timeline version of Nautilus's spiral.- Auto-generates charts from scheduled tasks. - Drag-to-reschedule unfinished items. - Supports durations, progress %, and event blocks. - Export to PDF/SVG for sharing.- Highly visual for daily energy mapping. - Real-time updates as you mark tasks DONE. - Lightweight and customizable themes.- Requires manual task scheduling (no auto-push). - Less calendar-focused than Agenda.Marketplace: "Gantt"; pair with journal templates for daily use.Marketplace (search Gantt)
Todo MasterAdds progress bars and estimation tools to tasks, helping track durations and completion like Nautilus's % markers.- Inline progress bars (e.g., click to increment 10%). - Duration estimation and overdue alerts. - Integrates with queries for daily task lists.- Simple, no-frills visual feedback. - Enhances Logseq's native TODOs without bloat. - Mobile-friendly.- No calendar/spiral; pairs best with other plugins. - Basic compared to Nautilus's auto-arrange.Marketplace: "Todo Master"; use / command to add bars.Marketplace
Tasks Check DateAutomatically timestamps completed tasks and supports rescheduling, similar to Nautilus's DONE logging and forward-pushing.- Adds completion times (e.g., "d14:30"). - Queries for unfinished tasks to "push" via templates. - Sound notifications on completion.- Great for effort estimation logs. - Scriptable for custom auto-moves (e.g., bash for archiving). - Privacy-focused, local-only.- Text-based (no visuals). - Requires custom queries for dynamics.Marketplace: "Task Check Date"; combine with Agenda for visuals.GitHub
Move BlockQuickly refactors tasks to today's journal, enabling Nautilus-style daily rearrangement without rewriting.- Copy/drag blocks to journals with refs. - Useful for prioritizing and slotting into time blocks. - Supports bulk moves for lists.- Speeds up manual reordering. - Integrates with Logseq's block refs for linking. - Free and simple.- No auto-scheduling or visuals. - More utility than planner.Marketplace: "Move Block".GitHub

Quick Setup for a Nautilus-Like Workflow in Logseq

  1. Install Plugins: Go to Logseq Settings > Plugins > Marketplace, search and install Agenda + Logseq Gantt + Todo Master.
  2. Daily Template: Create a template (Settings > Editor > Templates) with:
    text
    ## Agenda
    {{query (and (task scheduled) (between today tomorrow))}}
    {{gantt}}  ;; Renders Gantt from tasks
    - Event: 12:00-13:00 Meeting {{renderer todo-master}}  ;; Add progress
    - Task: Write report 45m d50%  ;; Duration + progress
    Insert via ;; in your journal.
  3. Dynamic Pushing: Use Agenda's dashboard to view/reorder unfinished tasks; set queries to filter by "unscheduled" for auto-fill.
  4. Visual Tweaks: Customize CSS in Settings for "spiral-ish" curves if you're adventurous (community themes exist).

These setups capture Nautilus's essence—visual, flexible, and low-overhead—while leveraging Logseq's strengths like local Markdown files and free plugins. If you need something more custom (e.g., a spiral via D3.js), the Logseq community on Discord/Reddit is active for requests. For Roam-to-Logseq migration tips, check import guides on logseq.com. Let me know if you want setup scripts or comparisons!### Alternatives to Nautilus (roam-depot-nautilus) in Logseq

Nautilus is a Roam Research extension that provides a visual spiral timeline for daily task planning, integrating events (fixed times), tasks (with durations and progress), and automatic forward-pushing of unfinished items based on the current time. It emphasizes reducing overwhelm through a dynamic, energy-aware layout (e.g., spiral shape reflecting diminishing daily focus).

Logseq, being an open-source outliner with strong query and plugin support, doesn't have an exact 1:1 replica of Nautilus's spiral visualization. However, it offers robust alternatives via built-in features (like journal queries and blocks) and plugins for timeline-based task management, calendars, and visual boards. These can approximate Nautilus's functionality: dynamic daily views, task durations/progress, priority marking, and time-based pushing (via queries or automation).

I've curated the top alternatives below, focusing on plugins and native tools that handle visual task/event planning. All are free/open-source unless noted. Installation is straightforward via Logseq's Plugins menu (Settings > Plugins > Marketplace). Search for the plugin name there.

Comparison Table

AlternativeDescriptionKey Features Mimicking NautilusPros vs. NautilusCons vs. NautilusInstallation/Setup
Logseq Timeline PluginRenders a horizontal timeline of journal entries, tasks, and events with drag-and-drop reordering.Visual timeline for daily/weekly views; supports task durations (via properties like duration: 10m); progress tracking (e.g., /todo with done::true); auto-refreshes based on current date/time. Use queries to push unfinished tasks forward.More interactive (zoom/drag); integrates natively with Logseq's bi-directional links; customizable via CSS for "spiral-like" curves if advanced.Linear timeline (not spiral); no built-in energy spiral or auto-push without queries.Install from Marketplace: Search "Timeline". Add {{timeline}} in a journal block. Set durations in block properties.
Logseq Calendar PluginEmbeddable calendar view that pulls tasks/events from journals, with color-coding and time slots.Fixed events (e.g., 12:30-14:20 Meeting parsed as blocks); task durations/progress (using properties like effort: 20min and progress: 50%); red priority via tags (e.g., #urgent); dynamic view of today's unfinished items.Full calendar integration (monthly/weekly); mobile-friendly; auto-updates on journal changes.Grid-based (not spiral); requires property setup for durations (no shorthand like "10m").Install "Calendar" from Marketplace. Insert {{calendar}} or {{renderer calendar}} in daily journal. Use advanced queries for task pushing: e.g., {{query (and (task not done) (page today))}}.
Logseq Gantt PluginGantt chart renderer for project timelines, adaptable for daily task planning.Bar-based visual for tasks/events with start/end times; durations (e.g., start: now, duration: 45min); progress bars (0-100%); dependencies to "push" tasks after events; color overrides (blue/yellow/gray/red).Great for sequential planning; exports to SVG; handles variabilities like Nautilus.More project-oriented (horizontal bars); less "daily page" focus without customization.Install "Gantt" or "Logseq Gantt Chart" from Marketplace. Use in a block: {{gantt ...}} with YAML config for tasks. Combine with journal queries for auto-population.
Logseq Kanban PluginBoard-style view for tasks, with lanes for "To Do/In Progress/Done" and timeline overlays.Drag tasks between states; add durations/progress as properties; event blocks as fixed "cards"; priority colors (red via tags); queries to filter/show only today's unfinished items.Highly visual and reorderable; supports "push forward" via automation scripts; integrates with TODOs.Card-based (not timeline/spiral); better for agile than strict time slots.Install "Kanban" from Marketplace. Create a page with {{kanban}} and link journal tasks. For time-pushing: Use {{query (task today)}} to populate dynamically.
Built-in Queries + Whiteboards (Native)Use Logseq's query language and whiteboard canvas for a custom visual planner—no plugin needed.Dynamic task lists with durations/progress (e.g., query: (and (task) (property duration) (not done))); embed on whiteboard for visual layout; current-time filtering via page: {{today}}; color via CSS (e.g., red for #urgent).Zero dependencies; fully customizable (add spiral via SVG embeds or plugins like Draw.io); privacy-focused like Logseq.Requires setup (no out-of-box visual); manual for spiral/energy aspects.No install. In journal: Add query block like {{query [[Queries]]}} where Queries page has your task filter. For visual: Create a whiteboard page, embed queries, and arrange blocks. Extend with "Logseq Draw" plugin for custom shapes.
Logseq Advanced Tables PluginTable-based renderer with timeline sorting, for structured daily agendas.Sort tasks by time/duration; columns for progress (e.g., 50%), status colors; auto-populate from journal; "push" via sorted queries showing remaining time slots.Simple for event-task mixing; exportable; lightweight.Tabular (not graphical spiral); less immersive visualization.Install "Advanced Tables" from Marketplace. Use in block: {{table ...}} with properties. Query integration for dynamic updates.

Recommendations

  • Closest to Nautilus's Visual Flow: Start with Logseq Timeline or Gantt for the time-based rendering—add custom CSS (via Settings > Appearance > Custom CSS) to curve timelines into a pseudo-spiral if you're handy with code.
  • For Quick Setup: Use the Calendar Plugin combined with Logseq's native TODO properties (e.g., set scheduled:: for events, effort:: 10m for tasks). It handles "present moment threshold" via date filters.
  • Progress and Automation: All support Logseq's built-in task states (TODO/DONE) and properties. For auto-timestamps on completion (like Nautilus + TODO Trigger), enable Logseq's "Journal auto timestamps" in Settings, or pair with the "Logseq Auto Task" plugin.
  • Customization Tips: Logseq's plugin API allows forking/extending these (e.g., GitHub repos like logseq-timeline). If none fit perfectly, check the Logseq Discord or r/logseq for community scripts—users have shared "daily spiral" experiments using D3.js embeds.
  • Migration Note: Export Roam tasks as Markdown and import to Logseq journals; properties like durations transfer easily.

2025/09/25

風雨中,找到台灣的陽光路

ChatGPT+Grok


嘿,年輕的學生朋友,還有每天起早摸黑上班的勞工兄弟姊妹,你有沒有過那種感覺?看著薪水單,總覺得怎麼努力都追不上物價;新聞裡,中國、印度像大山一樣壓過來,台灣這個小島好像永遠在掙扎。別灰心,這不是絕望的故事,而是你的機會。從事實和歷史看來,台灣不是受害者,而是有潛力的戰士。這篇文章用簡單的話,帶上真實的研究和歷史證據,告訴你現實,激勵你行動。讀完,你會想:「原來我能改變!」


一、結構像天氣:抱怨沒用,帶傘才有用


台灣的經濟現實,就像天氣一樣,沒人能全改。歷史上,從1950年代起,台灣靠出口成長,但現在面臨中國巨人。2025年上半年,台灣出口漲了25.9%,但五金機械份額只剩5.1%。 薪水呢?89%老闆說會加薪,但大多只加1-5%,實質成長才1%左右。 這些大環境問題,從1990年代高等教育擴張就開始,導致大學生太多,壓低薪資。


研究顯示,把這些當「環境」看,焦慮會少,行動會多。 就像下雨天,你不會罵天,只會拿傘衝出去。一個基層勞工在X上分享:「我從抱怨低薪,轉學線上賣貨到美國,收入多20%!」 你呢?從今天,花10分鐘看國際新聞,想想「這對我有機會嗎?」


二、政府鋪路,但要你自己跑


政府不是萬能救星,但歷史證明,它能幫忙起步。裕隆汽車從1950年代起拿政府補助幾十年,建起台灣汽車業,但到現在還依賴保護,全球競爭力弱。 台積電不一樣:政府早年投資,但成功靠自己創新,衝上世界第一,2025年推高台灣GDP。


研究說,懂政府是輔助,不是替代,就能主動用資源。 像勞動部補助轉型最高10萬,很多人學AI、外語,薪水翻倍。 一個年輕人說:「我本來等救,後來申請補助學技能,現在工作好多了!」行動:上政府網站查資源,把它當跳板,跑出你的路。


三、學歷≠護身符,技能才是真的武器


爸媽說「讀大學就有好工作」,但歷史不這麼想。1995-2005年,台灣大學從50間爆增到150間,畢業生太多,導致22K低薪現象,教育溢價掉。 研究證明,只有學歷沒用,技能才有價值。


看芬蘭:從1960年代起,他們不只念書,還學綠能、產業合作,創新排全球第7。 一個台灣勞工分享:「從工廠轉學數據,現在在家上班,生活變好!」 行動:學生,學英文、證照、交換;勞工,每週10小時練一技。你的技能,就是護身符。


四、人才出國:不是損失,是投資


「人才跑光了」?歷史說不。台灣1950-70年代腦流失嚴重,但1980年起逆轉,返回人才帶知識,建起半導體業。 以色列經驗:人才出國學,帶回AI、網路安全,經濟強。


腦循環好處大:半導體短缺71%,但經驗流回救場。 像台灣籃球員去NBA學,回來教大家。行動:把出國當磨練,短期打工、實習,學回來用。


五、學會避戰,找小天地


五金機械歷史慘:從1990年代起受中國競爭,出口降,補助只延後失敗。 但新加坡小品牌賣全球,成功。 一個勞工轉賣台灣設計到美國,找到新路。


研究說,轉高單價、多元市場,就能活。 行動:勞工,學外銷思維;學生,想小創意上網賣。避開大戰,找你的小陽光。


六、媒體心態:少謾罵,多思考


只看新聞罵,只會更氣。歷史上,台灣從依賴補助轉創新,才強。 研究顯示,懂結構,就少抱怨,多行動。 X上有人說:「從罵轉追趨勢,創業成功!」


行動:學生,看趨勢不刷八卦;勞工,加入社群討論轉型。大家深度聊,台灣會更好。


七、結語:帶傘的人,不怕風雨


台灣小國歷史,證明風雨中能出頭:政府起步,你創新;學歷開門,你技能走;人才流動,是鍛鍊。真正的力量,從你開始——努力加證據,台灣像以色列、芬蘭一樣強。 別等變天,拿你的傘衝。當我們都強,台灣陽光就來了。行動,從現在!

長壽電視劇演員修長假的方式

 你提到的情況在長壽劇(特別是十年以上的電視劇)裡面非常常見。因為演員拍攝時間長、壓力大,或者因為身體、家庭、甚至其他工作需要,確實會要求暫時休假。編劇和製作組通常會用幾種「合理的劇情手段」來解決:


1. 角色暫時離開的合理理由

  • 出國進修/出差:這種最自然,能隨時回來。

  • 探親或外地工作:讓角色離開當下的主舞台。

  • 入獄/療養/住院:醫療或法律相關情節也常被使用。


2. 更戲劇化的方式

  • 假死:角色突然「死亡」,但其實保留伏筆,未來能復活。這通常用在懸疑、古裝或狗血劇裡。

  • 逃亡/隱藏:角色因某種原因被迫消失,等回歸時可以有戲劇性的「真相揭曉」。


3. 替代方案

  • 戲份淡化:角色不消失,但台詞、鏡頭大幅減少,讓休假的演員不用天天進組。

  • 替身/側拍:偶爾會用背影替身或舊素材來維持存在感。


4. 回歸的設計


等演員回來後,編劇會藉由之前設下的理由,把角色「帶回來」。例如留學結束回國、病癒出院、冤屈洗清、死而復生等。這樣既交代了角色的空白期,又能製造戲劇效果。


✅ 總結來說:是的,長壽劇在演員請長假時,常用「出國進修」「逃亡」「假死」這類情節來解釋缺席,等到休假結束後再合理寫回來。

2025/09/24

受歡迎的 Flashcard App(抽認卡/記憶卡應用程式)

 下面是一些目前比較受歡迎的 Flashcard App(抽認卡/記憶卡應用程式) 的比較,並搭配它們的優缺點與適用情境,幫你選擇最適合自己的工具。


(註:功能與價格可能會改變,下列比較以最近公開資料為基準)


🔍 比較對象與評比維度


常被拿來比較的 App 包括:

  • Anki  

  • Quizlet  

  • Brainscape  

  • Cram  

  • Memrise  

  • 其他新興/利基型應用,比如 Retain、Flashcard Lab、IDoRecall 等  


評比維度可能包含:

維度

含義

記憶機制 / 間隔重複 (Spaced Repetition)

是否支援、靈活度如何

使用者介面與易用性

新人是否容易上手

多媒體支援

圖片、音檔、影片、LaTeX 等

雲端同步與跨平台

手機、電腦、Web 間的同步能力

社群 / 共用功能

能否使用他人題庫、分享卡組

成本 / 收費方式

免費 vs 付費功能差異


✅ 各 App 優缺點比較


下面是各個代表性 App 的優勢、限制與適合情境整理:

App

優勢

限制 / 需注意

適合誰 / 適合用途

Anki

- 強大的間隔重複演算法 & 可高度自訂    - 可支援文字、圖片、音檔、影片、LaTeX 等混合內容    - 開源、社群插件豐富  - 桌機版免費,Android 版免費  

- iOS 版需付費購買    - 初學者要設定可能有學習曲線  - 須手動管理同步 (雖然有 AnkiWeb 同步服務)  

適合需要高度自訂、重視記憶效率與深度學習(如醫學、語言、技術領域)

Quizlet

- 介面簡潔、容易上手    - 多種學習模式(抽認卡、配對遊戲、測驗等)    - 大量現成題庫可使用與共用

- 進階功能(如高級統計、更多媒體類型)多半在付費版中  - 間隔重複機制不如 Anki 那麼可調整精細

適合學生、語言學習者、需要快速做題與測驗練習的人

Brainscape

- 易於建立與匯入卡片  - 採用自家調整的間隔重複機制 (信心分級)    - 支援課程 / 班級共享功能

- 免費版在多媒體 (音檔、圖片) 支援上有些限制    - 高階功能需升級付費

適合想要在課堂 / 共同體系內共享卡組,且喜歡結構化題庫的人

Cram

- 簡單、直接,適合快速建立與練習卡片    - 支援不同測驗模式、遊戲化練習項目

- 不像 Anki 那麼強大的間隔重複功能  - 卡片自訂與高階功能相對簡單

適合一般用途、考試複習、快速練習記憶

Memrise

- 專注語言學習,內建社群課程與互動功能    - 有遊戲化元素與背單詞記憶輔助

- 在非語言領域的支援較弱  - 部分社群課程可能品質不一致

適合語言學習者、想透過有趣方式記單字或語法的人

此外,有些新興或專用型 App 在特定場景有優勢,例如:

  • Retain:在最近的免費 App 比較中被提為兼顧效率、易用與成本的選擇之一  

  • IDoRecall、Flashcard Lab:提供部分印刷、匯出功能與特定格式支援  


🧠 選擇建議:依需求選 App


選哪一款,要配合你的學習風格與用途。以下幾點可作為決策參考:

  • 如果你重視記憶效率與深入學習 → 優先考慮具備強大間隔重複演算法與高度自訂的 App,如 Anki

  • 如果你希望快速上手、有現成題庫可用 → Quizlet 是很好的入門選擇

  • 如果你在班級 / 組織內共享 /協作 → 可考慮有共享 / 課程功能的 Brainscape

  • 如果你只是想簡單做卡片、練習 → Cram 類型的輕量 App 就足夠

  • 如果你的主要目的是學語言 → Memrise 在語言學習與單字記憶上有特色支援


比較 Tableau 與 Power BI 在公司內部「雲端報表共享」上的應用差異

 這是一個很實用的問題 👍 我來幫你比較 Tableau 與 Power BI 在公司內部「雲端報表共享」上的應用差異:


🌐 部署與雲端平台

  • Tableau

    • 提供 Tableau Server(自建伺服器)與 Tableau Online(SaaS 雲端服務)。

    • 適合需要跨國、多部門協作的大型企業。

    • 能與多種雲端數據平台(AWS、Google Cloud、Azure)高度整合。

  • Power BI

    • 原生整合在 Microsoft Azure 與 Office 365 生態系統

    • 更適合已經使用 Microsoft Teams、SharePoint、Outlook 的公司。

    • 共享體驗相對平順,尤其對於已經在 Microsoft 生態系的組織。


👥 使用者共享與協作

  • Tableau

    • 透過 Tableau Server / Online 分配「Viewer、Explorer、Creator」不同角色。

    • 擅長處理跨部門、大規模共享,能提供使用者 互動式探索(下鑽、過濾)。

    • 對非技術人員可能需要額外培訓,因為報表操作相對專業化。

  • Power BI

    • 與 Microsoft 365 帳號直接綁定,授權和群組控制容易。

    • 使用者可以在 Teams、Outlook 直接嵌入報表,協作流暢。

    • 適合一般商務人員快速查看與互動,學習曲線較低


📊 報表設計與互動

  • Tableau

    • 可建立高度自訂的可視化,設計靈活度高,支援複雜的分析需求。

    • 適合數據科學、商業分析部門,做 深度視覺化探索

  • Power BI

    • 視覺化元件雖然少一些,但足以應付大多數商務情境。

    • 側重於 標準化報表、即時儀表板,適合經理層快速決策。


🔐 安全性與治理

  • Tableau

    • 提供強大的存取控制、資料治理與審計功能。

    • 適合需要嚴格合規(如金融、醫療)的大型組織。

  • Power BI

    • 繼承 Azure Active Directory (AAD) 的權限控管,與公司現有的 AD 整合容易。

    • 更適合 Microsoft 生態內的資訊安全政策。


💲 成本與授權

  • Tableau

    • 計費較高,以使用者角色(Viewer/Explorer/Creator)收費。

    • 適合預算充足、需要高彈性分析的企業。

  • Power BI

    • 價格相對便宜,Pro 訂閱每人每月約 10 美元,Premium 提供更大規模與雲端運算能力。

    • 成本效益高,特別適合中小企業或已經購買 Microsoft 365 的公司。


📌 總結

  • Tableau → 適合 數據驅動文化濃厚、跨部門合作、需要高度自訂視覺化的大型企業

  • Power BI → 適合 已使用 Microsoft 生態系(Teams、SharePoint、Office 365)的公司,追求成本效益與快速部署


2025/09/23

電力驅動的垃圾熱處理

 簡短結論:目前幾乎沒有公開的「以核反應爐的熱,直接拿來焚燒一般市政垃圾(MSW)」的實證專案。各國與國際機構評估核能多用在工業供熱、區域供暖、海水淡化、製氫等;垃圾處理則仍以「自燃焚燒/氣化(自身做燃料)」或「以電力驅動的等離子處理」為主(電力來源可含核電)。以下把「誰評估/測試過、結論如何」整理給你:

1) 「核能用於工業熱/供暖」的系統性評估(非特定於焚燒垃圾)

  • OECD-NEA(核能署):評估高溫氣冷堆(HTGR)供工業熱的可行性與限制,重點是化工、煉油、氫能、區域供熱等應用;文件把「焚燒垃圾」列為主要耦合場景。結論:在中高溫(多數 <~750 °C)工業熱需求上技術可行,但實施取決於經濟與在地條件。Nuclear Energy Agency (NEA)

  • MIT Energy Initiative(麻省理工)《限碳世界中的核能》(2018/2019):總結核能供工業熱的潛力與溫度邊界,建議優先導入低到中溫工藝與區域供熱;未提到用核熱來焚燒MSW。Main

  • EPRI(美國電力研究院):盤點核電廠對區域供熱的現況與歷史案例(東歐、北歐等地),顯示核電可穩定輸出熱能到城市熱網;但文獻中沒有核熱直接服務於垃圾焚化廠的實例。restservice.epri.com

2) 「電力驅動的垃圾熱處理」(核電可做電源)的實證與結果

  • 等離子氣化(Plasma Gasification)

    • MIT 新聞報導 InEnTec 等公司以等離子氣化把各類垃圾轉為合成氣與可用的玻璃渣,已有多處部署;技術可行但經濟性與放大規模是難點。MIT News

    • 美國俄勒岡 Columbia Ridge 的示範(S4 Energy / Waste Management 參與):展示把家戶垃圾轉成可用合成氣與玻璃渣;媒體與技術文獻指出技術能跑、商轉擴張困難WIRED

    • 學術面:高溫蒸汽氣化可把塑膠/MSW 轉為清潔氣體燃料;多篇研究驗證路線可行,但仍受原料雜質、經濟性所限。ACS Publications

    • IEA Bioenergy(任務組33)總結:垃圾氣化可產能,但落地常受政策、經濟與供料穩定度影響。IEA Bioenergy
      ⮕ 以上流程用「電」驅動,理論上核電可提供低碳、穩定電力,但現有示範並未強調「必須使用核電」。

  • 傳統焚燒—評估/設計趨勢:多國把重點放在效率與超低排放改造與監管(非核能供熱)。例如:

    • 中國大陸生態環境部的《生活垃圾焚燒發電廠現場監督檢查技術指南》(2022)與浙江省的超低排放評估監測技術指南(2025),推動焚燒廠的達標與改造評估。Ministry of Ecology and Environment+1

    • 美DOE(EERE)報告:MSW 作為能源原料含水率高、熱值低且成分異質,是經濟與技術整合的主要挑戰;當前主流仍是焚燒與厭氧消化。The Department of Energy's Energy.gov

3) 「核領域自身廢棄物」的等離子焚化/玻璃化測試

  • 放射性廢棄物(非一般垃圾):早在 1990s 就有等離子焚化+玻璃化的研究與示範,能顯著減容並把無機殘渣玻璃化以便長期穩定處置。這類測試多發生在核能/研究單位或其承包商。ScienceDirect

4) 為何「核能+燒垃圾」少見?

  • 垃圾本身就是燃料:現代焚化設計是用垃圾的熱值自給自足;額外用高品級外部熱源(如核熱)經濟誘因不強,還可能推高 NOx 生成風險(過高爐溫)。NCBI

  • 佈署與監管:把大量混合垃圾運到核電廠附近不具社會與監管可行性;核電更常被用來供熱給城市或工業,而不是反過來服務焚化爐。restservice.epri.com+1

  • 技術聚焦不同:國際路線圖把核熱優先用在區域供暖、海淡、製氫與中溫工藝熱;焚燒垃圾不是主要耦合案例。Nuclear Energy Agency (NEA)+1

  • MSW 端的優先事項:各國在排放監測/超低排放改造與熱網整合上下功夫,而非尋找外部高品級熱源來「幫忙燒」。Ministry of Ecology and Environment+1

可以落地的「折衷方案」

如果目標是「用核能幫垃圾處理降低碳排」,比較務實的是:

  • 核電(含SMR)→ 穩定低碳電力 → 等離子氣化/電鍋爐/CCS等單元:利用核電穩定性來提高等離子氣化碳捕集的可用率。MIT News+1

  • 核電供區域熱網,焚化爐與核熱共用熱網:兩者各自發熱,但在熱網層面做調度與備援(北歐與東歐已有核供熱與焚化供熱的成熟案例,但多為各自入網而非直接耦合)。restservice.epri.com

2025/09/20

Desktop Media Cleanup App — Requirements v1.0

Desktop Media Cleanup App — Requirements v1.0

1) Overview & Goals

A desktop utility that helps users quickly triage photos and videos by assigning scores and bulk‑deleting low‑scored media. The app indexes media in a chosen root folder, previews items one‑by‑one, lets users adjust a per‑file score via mouse clicks, and automates deletion of files that were marked for removal.

Primary goals

  • Fast, keyboard/mouse‑driven triage of large media libraries.

  • Clear progress feedback and a definitive “clean up completed” state.

  • Safe, reversible (optional) delete flow, per user confirmation.

Out of scope (v1): Cloud sync integrations, facial recognition, deduplication, format conversion, editing.


2) Platforms & Tech Assumptions

  • Target OS: Windows 10+, macOS 12+, (optional) Linux (Ubuntu LTS).

  • Packaging: Native installers (MSIX/EXE, DMG/PKG, AppImage/Snap optional).

  • Media preview: use OS codecs or a cross‑platform library (e.g., ffmpeg/AVFoundation/DirectShow) for thumbnails and playback.

  • Index store: single file per root (SQLite recommended; JSON allowed for MVP).


3) Core Concepts & Definitions

  • Root Folder: The folder the user chooses to clean; includes all subfolders.

  • Index: On‑disk database of discovered media and their scores/metadata.

  • Score: Integer 1..51..5, default 3 for each indexed file.

    • 1 = reject (to delete), 5 = keep (locked), 2/3/4 = undecided.

  • todelete folder: Destination subfolder under each file’s current parent for files scored 1.


4) User Stories

  1. As a user, I can pick a folder and immediately see its subfolders in a tree with file counts.

  2. As a user, I can preview photos/videos in sequence and change their score quickly with the mouse.

  3. As a user, I can skip items already at score 1 or 5 and focus only on undecided ones.

  4. As a user, I can finish triage and bulk‑delete the 1‑scored files after a clear confirmation.

  5. As a user, I see a "clean up completed" message when every file is either 1 or 5.


5) Functional Requirements

FR-1 Folder Navigation & Tree

  • FR-1.1 The app shows a collapsible folder tree rooted at the selected folder.

  • FR-1.2 Users can toggle among folders and subfolders; selecting a node filters the item list/preview scope.

  • FR-1.3 Each node displays the total media file count (photos + videos) within that folder including all nested subfolders.

FR-2 Indexing

  • FR-2.1 On selecting a root, the app creates/updates an index of photos and videos (configurable extensions: jpg/jpeg/png/heic/webp/mp4/mov/avi/mkv, etc.).

  • FR-2.2 Each discovered file is added with initial score = 3.

  • FR-2.3 The index stores: absolute path, file size, modified time, hash (optional), duration (video), orientation + EXIF date (photo), and current score.

  • FR-2.4 Index updates are incremental on subsequent launches (detect adds/removes/moves).

  • FR-2.5 Index file is stored at the root as .media_index.sqlite (or .json for MVP).

FR-3 Preview & Scoring

  • FR-3.1 The app starts previewing media from the current selection/folder.

  • FR-3.2 Right‑click on preview adds +1 to the current file’s score (max 5).

  • FR-3.3 Left‑click on preview deducts −1 from the current file’s score (min 1).

  • FR-3.4 Keyboard shortcuts (optional but recommended): = +1, = −1, Space = next, Backspace = previous.

  • FR-3.5 The preview loop auto‑skips any item with score 1 or 5.

  • FR-3.6 When the current pass ends, the app circles back to files that are still score 2/3/4 until all files are 1 or 5.

  • FR-3.7 Video preview defaults to the first 5 seconds (toggle to full playback); photo preview fits to window with zoom/pan.

FR-4 Move & Delete

  • FR-4.1 Whenever a file’s score becomes 1, the app moves it to a sibling folder named todelete under its original parent (create if missing). Preserve subfolder structure relative to the root.

  • FR-4.2 When all files within the selected scope are either 1 or 5, show “clean up completed”.

  • FR-4.3 Prompt: “Delete all files scored 1?” If the user confirms, permanently delete those files (see Safety below), then delete the index file.

  • FR-4.4 After deletion, recursively remove empty folders (folders with no files in them or any of their subfolders).

FR-5 Progress & Status

  • FR-5.1 Show counts: total, scored 1, scored 5, remaining (2/3/4).

  • FR-5.2 Status bar indicates current folder, preview position (e.g., 120/3,482), and pass number.

FR-6 Settings

  • FR-6.1 Configure included file extensions.

  • FR-6.2 Toggle confirm‑before‑move (default off) and confirm‑before‑delete (default on, cannot be disabled in v1).

  • FR-6.3 Option to send deletes to OS Trash/Recycle Bin instead of hard delete (recommended default).


6) Non‑Functional Requirements

  • Performance: Index 50k files in ≤ 5 minutes on SSD; preview latency ≤ 150 ms for images, ≤ 500 ms to start video.

  • Reliability: Crash‑safe index writes (transactional); resume last session state.

  • Security: No network access by default; operates only on local paths with explicit user selection.

  • Accessibility: All actions available via keyboard; high‑contrast option.


7) UX & Screens

  • Main layout: Left = folder tree with counts; center = preview; right = metadata + score display; bottom = controls & status.

  • Contextual HUD: Big overlay briefly shows new score after click (e.g., “Score: 4”).

  • Completion dialog: Summary of items to be deleted; irreversible‑action warning.


8) Data Model (SQLite Suggestion)

TABLE media (
  id INTEGER PRIMARY KEY,
  path TEXT UNIQUE NOT NULL,
  rel_path TEXT NOT NULL,
  folder_id INTEGER NOT NULL,
  type TEXT CHECK(type IN ('photo','video')),
  score INTEGER NOT NULL DEFAULT 3 CHECK(score BETWEEN 1 AND 5),
  size_bytes INTEGER,
  mtime_utc TEXT,
  duration_ms INTEGER,
  exif_datetime TEXT,
  hash TEXT,
  FOREIGN KEY(folder_id) REFERENCES folders(id)
);

TABLE folders (
  id INTEGER PRIMARY KEY,
  path TEXT UNIQUE NOT NULL,
  rel_path TEXT NOT NULL,
  total_count INTEGER NOT NULL DEFAULT 0
);

INDEX idx_media_folder ON media(folder_id);
INDEX idx_media_score ON media(score);

9) Scoring & Preview Algorithm (Reference)

function triageLoop(scope):
  queue = all media in scope where score IN (2,3,4)
  while queue not empty:
    item = queue.popNext()
    showPreview(item)
    action = waitForUserClick()
    if action == RIGHT_CLICK: item.score = min(5, item.score + 1)
    if action == LEFT_CLICK:  item.score = max(1, item.score - 1)
    persistScore(item)
    if item.score == 1: moveToToDelete(item)
    if item.score in (2,3,4): queue.enqueue(item) // circle back later
  if all items in scope have score in (1,5):
    showCleanupCompleted()
    if confirm("Delete all files scored 1?"):
      deleteAllScoreOne(scope)
      deleteIndex()
      pruneEmptyFolders(scope.root)

10) File Operations & Safety

  • Moves and deletes must be atomic where possible; fall back with clear error messages.

  • During delete: if setting is “send to OS Trash,” use platform APIs; otherwise perform hard delete after confirmation.

  • Skip/record failures (e.g., permission denied, locked file) and continue; show a completion report.


11) Module Breakdown (Modularization)

  • app/

    • main (bootstrap, window, routing)

    • config (settings load/save)

    • i18n (strings)

  • indexer/

    • scanner (walk filesystem)

    • metadata (EXIF/video probes)

    • store (SQLite/JSON abstraction)

  • preview/

    • image_viewer (render, zoom, pan)

    • video_player (playback, scrub)

  • scoring/

    • controller (event handling, queue policy)

    • state (session state, resume)

  • ui/

    • folder_tree (counts, toggles)

    • status_bar, hud, dialogs

  • ops/

    • mover (to todelete)

    • deleter (trash/hard delete, prune empty dirs)

    • reporter (summary & logs)

Each module ships in a separate source file (or cohesive files) with narrow interfaces to ease updates and feature additions.


12) Acceptance Criteria

  • AC‑1: Selecting a root shows a tree with accurate counts (children included).

  • AC‑2: All files are assigned score 3 on first index.

  • AC‑3: Left/Right clicks adjust score exactly by −1/+1; scores clamp to 1..51..5.

  • AC‑4: Preview loop never shows items already at 1 or 5.

  • AC‑5: Files at score 1 are moved to todelete/ under their original parents.

  • AC‑6: When no items remain at 2/3/4, “clean up completed” appears.

  • AC‑7: On confirmation, all score‑1 files are deleted, the index file is removed, and empty folders are pruned.


13) Future Enhancements (Non‑blocking)

  • Duplicate detection (perceptual hash).

  • Sorting heuristics (by similarity, face detection, blurriness).

  • Multi‑root projects; exportable CSV reports.

  • Undo/redo stack and checkpoints.


14) Technology Options for a Windows App — Comparison

The app is Windows‑first with heavy filesystem work and image/video preview. Below is a pragmatic comparison of common stacks.

14.1 Quick Matrix (higher is better)

Tech Perf. Memory Dev Speed Native Win Integration Cross‑Platform Media Preview Maturity Packaging
.NET WPF (.NET 8) 5 4 4 5 2 5 MSIX/WiX/WinGet
.NET WinUI 3 (Windows App SDK) 5 4 3 5 2 5 MSIX/WinGet
.NET MAUI (Windows target) 4 4 3 4 4 3 MSIX
Avalonia UI (.NET) 4 4 4 3 5 3 MSIX/others
Qt (C++/QML) 5 5 3 4 5 5 MSI/WiX
Flutter (Windows) 4 4 3 3 5 3 MSIX
Electron (JS/TS) 3 2 5 3 5 4 Squirrel/MSIX
Tauri (Rust + WebView) 4 5 3 3 5 3 MSI/MSIX
Python (PySide/PyQt/PyInstaller) 3 3 4 3 5 3 EXE/MSI

Legend: 1–5 relative score. Memory = smaller footprint → higher score.

14.2 Notes & Pros/Cons

.NET WPF

  • Pros: Battle‑tested on Windows, excellent filesystem APIs, stable MVVM ecosystem, great tooling (Visual Studio, Rider). Easy thumbnails via WIC; video via Media Foundation or FFmpeg wrappers. Mature SQLite + EXIF libs.

  • Cons: Windows‑only; legacy XAML patterns but still first‑class.

  • Use when: You want the most stable Windows‑native path with top‑tier performance and full access to Windows codecs.

.NET WinUI 3 (Windows App SDK)

  • Pros: Modern WinUI controls, high‑DPI, fluent styling, future‑facing Windows stack. Deep integration with Windows features.

  • Cons: Some APIs/tooling still evolving; smaller community than WPF. Edge cases with third‑party controls vs WPF.

  • Use when: You want modern Windows look/feel and can accept newer‑stack tradeoffs.

.NET MAUI (Windows)

  • Pros: Same codebase can target Mac/iOS/Android; Windows layer sits on WinUI 3. Good for shared business logic.

  • Cons: Desktop maturity below WPF/WinUI; media preview/video plugins less polished for Windows.

  • Use when: Cross‑platform is a real requirement and you’re already in .NET.

Avalonia UI (.NET)

  • Pros: Cross‑platform WPF‑like XAML; good theming; solid desktop focus.

  • Cons: Fewer off‑the‑shelf media components; you’ll likely embed FFmpeg/LibVLC for video.

  • Use when: You want .NET + cross‑platform with a desktop‑first mindset.

Qt (C++/QML/QtQuick)

  • Pros: High performance, native feel, very mature multimedia (Qt Multimedia) and EXIF/DB tooling, excellent for large libraries.

  • Cons: C++ complexity; commercial licensing for some use cases; larger dev ramp.

  • Use when: You need top performance and true cross‑platform with robust media.

Flutter (Windows)

  • Pros: Single codebase; fast UI iteration; strong 2D GPU rendering.

  • Cons: Desktop plugins for advanced media/filesystem are still catching up vs native.

  • Use when: You have Flutter expertise and want cross‑platform UIs.

Electron (JS/TS)

  • Pros: Web skills, rapid UI dev, rich ecosystem. Chromium can preview many image/video formats; Node for filesystem.

  • Cons: Larger memory footprint; packaging/signing friction; native OS feature gaps.

  • Use when: Team is web‑heavy and footprint isn’t critical.

Tauri (Rust + WebView)

  • Pros: Tiny binaries and memory; secure; Rust for native ops; modern WebView front‑end.

  • Cons: Media playback often requires native plugins/FFmpeg; fewer production examples for heavy media.

  • Use when: You want Electron‑style dev with an order‑of‑magnitude smaller footprint and can handle native media plumbing.

Python (PySide/PyQt)

  • Pros: Quick prototyping; rich libraries; Qt underneath.

  • Cons: Packaging size, startup time, and distribution quirks; perf below C#/C++.

  • Use when: You need rapid iteration and internal tooling; less ideal for mass distribution.

14.3 Media‑Specific Considerations for This App

  • Thumbnailing & EXIF: WIC + MetadataExtractor (.NET) or Qt’s QImageReader + Exiv2/QtEXIF are robust.

  • Video preview: Windows Media Foundation (native/.NET wrappers) or FFmpeg/LibVLC for broad codec coverage. Browser engines (Electron/Flutter WebView) support common codecs but may choke on edge formats.

  • Large library indexing: Prefer SQLite (system.data.sqlite/.NET; QtSql/SQLite; rusqlite for Rust). Use incremental scans and file hashing on demand.

14.4 Packaging & Updates

  • Windows‑native: MSIX (WinGet), or MSI/WiX; code‑signing cert required.

  • Web stacks: Electron → Squirrel/MSIX; Tauri → MSI/MSIX. Auto‑update channel recommended but must be code‑signed.

14.5 Recommendation

For Windows‑only and fastest path to a polished tool: .NET (WPF or WinUI 3).

  • Pick WPF if you want maximum stability and ecosystem breadth.

  • Pick WinUI 3 if you want a modern Fluent look and don’t mind a newer stack.

If small footprint and you’re comfortable binding native media: Tauri (Rust backend with FFmpeg/LibVLC + WebView UI).

If cross‑platform with strong media and you’re OK with C++: Qt (C++/QML).

14.6 Suggested Starter Kits

WPF (.NET 8)

  • Imaging: WIC via BitmapImage; EXIF: MetadataExtractor

  • Video: Media Foundation (MediaElement alternatives) or FFmpeg.AutoGen

  • DB: System.Data.SQLite

  • Packaging: MSIX + WinGet

WinUI 3

  • UI: Windows App SDK templates; MediaPlayerElement for video

  • Same EXIF/DB approach as WPF; MSIX packaging

Tauri

  • Backend: Rust (filesystem scan, SQLite, FFmpeg/LibVLC bindings)

  • Frontend: React/Svelte/Vue in WebView; invoke via Tauri commands

  • Installer: Tauri bundler → MSI/MSIX

Qt (C++/QML)

  • Media: QMediaPlayer / QVideoSink, thumbnails with QImageReader

  • EXIF: Exiv2; DB: QtSql + SQLite

  • Installer: WiX/MSI

Buy me a coffee