Amo Chen

高效能 MySQL 分頁

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

Posted on  May 29, 2016  in  MySQL  by  Amo Chen  ‐ 2 min read

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 欄位的簡單統計

Posted on  May 14, 2016  in  Python 模組/套件推薦  by  Amo Chen  ‐ 3 min read

DNS prefetching

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

一般稱為:

  • DNS prefetching
  • Pre-Resolve DNS

Posted on  May 2, 2016  in  資訊技術探索  by  Amo Chen  ‐ 1 min read

Python 測試資料產生模組 - Faker

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

Posted on  May 2, 2016  in  Python 模組/套件推薦  by  Amo Chen  ‐ 1 min read

tcpdump 實用指令

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

Posted on  Apr 17, 2016  in  Unix-like 命令列教學  by  Amo Chen  ‐ 1 min read

Git 秘訣筆記

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

Posted on  Apr 14, 2016  in  Git 版本控制  by  Amo Chen  ‐ 2 min read

人生苦短,我用 shower 做投影片

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

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

範例請至 shower demo

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

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

Posted on  Mar 24, 2016  in  生產力工具  by  Amo Chen  ‐ 1 min read