高效能 MySQL 分頁


剛開始學寫程式時,是照著書本上的範例利用 LIMIT offset, row_count 來達到分頁的功能,但是隨著資料量越來越大,這種分頁方式會造成越後面的頁數 query 時間越長。因為在 MySQL 中有指定 offset 的情況下,並不會直接從該 offset 開始進行資料查詢,而是依照 where 條件取得所有資料之後,再從 offset 開始取出所需要的資料筆數。

Data Scientist 不可不知的 csvkit


CSV 大概是目前最直覺方便的資料格式,除了可以用 Excel, OpenOffice , LibreOffice 等文書處理軟體編輯之外,也可以用程式語言進行處理與分析。不過有時候還是會需要在終端機(Terminal)上進行 CSV 的簡單操作,這時候就需要方便的工具來幫我們節省時間,在此推薦 csvkit 給大家!

以下節錄幾個 csvkit 支援的好用功能:

  • csv, dbf, fixed, geojson, json, ndjson, xls, xlsx 等資料格式的轉換(轉成 CSV)
  • CSV 檔案的 grep, sort, join 等
  • CSV 欄位的簡單統計

DNS prefetching


對網路程式比較熟悉的人都會知道,當我們在 Browser 輸入網址(或在頁面點一個連結)後,同時也可能發出 DNS 的域名解析請求,將網址的域名轉成 IP 位址後,再向遠端伺服器發出要資料的請求。對於追求高效能網頁系統的人來說,十分可能會想把這段時間也一併省去,以提升整體網頁速度。現在 Browser 也有一種機制能預先將域名先解析好,節省域名解析時間。

一般稱為:

  • DNS prefetching
  • Pre-Resolve DNS

Python module - Faker


Faker 是一個有趣的 Python 模組,蠻適合用來產生測試資料集的,包含常見的姓名、地址以及隨機文章段落都能夠產生,甚至還支援各種不同語系。若能夠掌握的話,對於測試資料集的產生可以說是相當方便。

tcpdump 實用指令


遠端作業時不見得每次都能夠有 GUI 環境能夠使用,如果要針對監聽網路封包就得使用 tcpdump ,本篇將記錄一些實用的 tcpdump 指令。

Git 秘訣筆記


我是 Git, GitHub 的重度使用者,可以說是吃飯用的工具。就在這邊整理一些 Git 的筆記。

人生苦短,我用 shower


年紀開始大了,越來越覺得時間寶貴XD

做起簡報來就特別討厭浪費太多時間在 PowerPoint 上,只想要像寫 Markdown 一樣用輕鬆的方式做簡報,雖然 Pandocreveal.js 已經十分夠用,但跟 shower 比起來,個人還是覺得 shower 賞心悅目許多(大推)。

範例請至 shower demo

不過 shower 只是個 template ,真正要用 Markdown 編寫簡報的話得使用 shower/jekyller 才行。

這個 repository 其實是利用 jekyll 這個靜態網站產生器(static site generator) 來產生 Shower 主題的投影片。

pytest 教學


建議本文的閱讀者可以先看過 Python unittest 了解基本觀念之後再閱讀本文。

俗話說的好:「不學測試,無以立。」想寫得一手好程式就從測試著手。

雖然 Python 內建 unittest,但畢竟還是有些許不便之處。基於不重新造輪的哲學,就來學一套坊間人人稱頌的pytest 吧!

119202122