Hexo blog 想加 iOS 風炫過場?跑半天 morph 沒成,反而發現自己藏了 84MB 圖片巨石
昨天晚上看了 Coding2GO 一條 5 分 46 秒的影片,講 CSS View Transition API 終於支援跨文件了——純 CSS 兩頁各加幾行(同源 + 兩頁都 @view-transition { navigation: auto; })、靜態網站也能做出 SPA 風的換頁過場。我當下就想到自己那個 Hexo blog:能不能加上 iOS 相簿那種「點縮圖、圖飛進去變大圖」的 morph 效果? 今天動手,跑半天 morph 沒成。但 debug 過程裡順手 PowerShell 抓了一下封面圖檔大小——35 張總共 84.3MB,平均 2.4MB 一張。 結果 morph 收手,反而把整站圖片壓掉 93%(84MB → 6MB)。本來想搞炫的,沒成;結果抓到真正拖慢網站的東西。記錄一下這次的過程。 原本的目標清單下班前的 2 小時 budget,我想要的兩個東西: 整頁 cross-fade 換頁過場(基本款) list 縮圖 → 詳情頁大圖的 hero morph(進階款) 我以為大半是 CSS 的事,看起來很簡單。估了 2 小...
告別Python套件地獄:為何資深工程師都在改用uv取代venv和conda?
前言作為 Python 開發者,你大概都踩過同一批坑:requirements.txt 在本機跑得好好的,換一台機器就版本衝突;conda 解析依賴跑了二十分鐘;新人入職第一天光搭環境就花掉半天。 這篇文章比較 venv、conda 和 uv 三種工具,重點放在實際使用差異,以及 uv 為什麼不只是「更快的 pip」——它其實已經是一套完整的專案管理工具鏈。 venv:Python 內建的解決方案venv 從 Python 3.3 起內建,不需要額外安裝是它最大的優點。 1234python -m venv myenvsource myenv/bin/activate # Linux / macOSmyenv\Scripts\activate # Windowspip install -r requirements.txt 適合的場景: 快速開一個臨時環境驗證想法 CI 環境裡只需要標準工具鏈 維護老專案,不想引入額外依賴 限制: pip 的依賴解析速度慢,套件數量一多就有感 不管理 Python 版本本身,需要另外用 pyenv 或系統 P...
圖解 C# yield - 5分鐘讓你輕鬆掌握迭代器
C# yield 執行流程(caller ↔ iterator) <!-- Caller 欄 --> <rect x="30" y="60" width="180" height="360" rx="8" fill="none" stroke="#9E9E9E" stroke-width="1.5" stroke-dasharray="4,3"/> <text x="120" y="82" text-anchor="middle" font-size="13" fill="#555">呼叫端(foreach)</text> <!-- Iterator 欄 --> <rect x="350" y=&...
SQL Server CSV 匯出實戰:SQLCMD、BCP、SSIS 怎麼選怎麼調
老闆丟一句「這個報表,越快越好」,你打開資料表一看——好幾千萬筆。這時候用對工具跟用錯工具,差的不是幾分鐘,是幾個小時。 SQL Server 匯出 CSV 最常用的三個工具是 SQLCMD、BCP、SSIS。網路上很多範例其實是把它們的角色搞混的:最典型的就是把 bcp 命令當成 T-SQL 字串丟進 sp_executesql,抄回去一跑就語法錯誤。這篇把每個工具的定位講清楚,範例全部以可實際執行為前提,並附上分批匯出大型資料的正確寫法。 三個工具,三種角色先把定位搞對,後面才不會誤用。 BCP(Bulk Copy Program)是獨立的命令列工具,走大量複製 API,匯出大表速度最快、記憶體佔用低。它不是 T-SQL,是在作業系統的命令提示字元(或透過 xp_cmdshell)執行的 .exe。 SQLCMD 也是命令列工具,主要拿來跑 .sql 指令稿、做自動化排程。它本身不是高效能匯出引擎——真要快速匯出大量資料,多半還是在 SQLCMD 指令稿裡呼叫 BCP。 SSIS(SQL Server Integration Services)是視覺化 ETL 平台,強在「匯...
SQL Server管理員必學:SQLCMD實戰指南
前言大型 SQL Server 環境裡,資料匯入匯出緩慢、維護作業得人工拖到半夜、備份還原偶爾出包、跨伺服器操作一多就容易漏步驟,這些幾乎是每個 DBA 遲早會遇到的問題。 sqlcmd 是 SQL Server 內建的命令列工具,把這些操作腳本化、掛上排程,能省下大量重複的手動工作。這篇整理我實際用過的幾種場景,並且特別把網路教學裡常見的幾個錯誤參數說明糾正過來——尤其是 -m 和 -k,被講錯的機率高得驚人。 SQLCMD 功能與效能概觀 SQLCMD 資料匯入匯出 批次處理優化 執行SQL指令 效能監控 資料庫備份 壓縮優化 自動化排程 錯誤處理 大型資料庫匯入耗時比較(示意,單位:分鐘) 逐筆 INSERT 批次處理 最小記錄載入 先搞清楚:命令列參數 vs T-SQL 腳本很多人把 s...
【SQL Server密技】一次精通SELECT INTO批次建表,效能優化的絕佳解決方案!
為什麼要把大表拆成小表一張上千萬筆的資料表,查詢愈跑愈慢、維護視窗愈拉愈長,這幾乎是每個後端工程師遲早會碰到的場景。把它依某種規則拆成多張較小的表,是其中一種權宜手段:查詢範圍縮小、維護單位變細、歸檔也比較好搬。 SQL Server 的 SELECT INTO 很適合做這件事——它能根據查詢結果直接生出一張新表,省去你先寫一段 CREATE TABLE 再 INSERT 的功夫。但它「省」掉的東西比你以為的多,這篇就把運作原理講清楚,順便把幾個照抄會直接報錯的地雷標出來。 SELECT INTO 到底複製了什麼先把最容易誤會的觀念釘死。執行這一句: 1SELECT * INTO 新資料表 FROM 來源資料表; SQL Server 會做的事是: 建立一張新表 複製來源欄位的「名稱、資料型別、可空性」,以及 IDENTITY 屬性 把符合條件的資料列寫進去 它不會複製的,才是重點:索引、主鍵、外鍵、DEFAULT、CHECK 等任何約束,全部都不跟過來。微軟官方文件對 INTO 子句的描述很直接:「來源表上定義的索引、約束與觸發程序不會轉移到新表,你也無法在 SELECT...
資料庫連線池爆掉救火秘笈!如何優雅地處理 SQL Server 連線危機
前言身為後端工程師,你是否遇過這樣的情況: 系統突然變得超級慢 網頁一直轉圈圈 收到「已超過連線逾時的設定」錯誤訊息 如果有,很可能就是連線池爆掉了。以下分享一個真實案例,從診斷、緊急處理到根治。 問題診斷當你遇到以下錯誤訊息時,很可能是連線池出問題了: 1System.InvalidOperationException: '已超過連線逾時的設定。在取得集區連線之前超過逾時等待的時間,可能的原因為所有的共用連線已在使用中,並已達共用集區大小的最大值。' 快速診斷方法首先,用以下 SQL 查看目前的連線狀況。sys.sysprocesses 是 SQL Server 2000 相容性視圖,SQL Server 2005 起已標記 deprecated,這裡改用官方建議的 DMV: 123456789101112-- 各資料庫連線數摘要(依登入帳號、狀態分組)SELECT DB_NAME(s.database_id) AS DatabaseName, COUNT(*) AS NumberOfConnections...
Mojo 號稱比 Python 快幾萬倍:拆解這個數字,認識這個語言真正的樣子
Mojo 常被說成「Python 的寫法、C 等級的速度」,但這句話少講了很多條件。它最常見的兩個賣點——比 Python 快幾萬倍、完全相容 Python——前者是真的但前提很窄,後者其實是早期說法、Modular 後來自己已經修正。 先把 Mojo 是什麼講清楚,再一條一條看這些數字和說法的前提。 Mojo 是什麼Mojo 由 Chris Lattner 主導開發。他做的東西你大概天天間接在用——LLVM 是一票現代編譯器和語言共用的底層基礎設施,而 Lattner 正是 LLVM 的作者,也是 Swift 語言的設計者。他的公司 Modular 想解決的問題是:AI 和高效能運算長年卡在「Python 好寫但慢、C++ 快但難寫」的二選一,Mojo 想兩邊都要。 做法是語法走 Python 風格,讓熟悉 Python 的人快速上手;底層接 MLIR,能編譯成接近原生的機器碼,還內建型別系統和向量化支援。 「快幾萬倍」的前提先說那個最聳動的數字。Modular 官方拿來宣傳的招牌是 Mandelbrot 計算,Mojo 比 Python 快約 35000 倍。 這數字是真的,...





