2017年12月29日 星期五

SQLAlchemy: Python SQL toolkit and Object Relational Mapper

在使用了Python之後,最先採用的資料庫是SQLite,Python標準庫的sqlite3提供了SQLite資料庫界面,使用上算相當方便,效率也不差。但為了方便將來轉換到PostgreSQL,漸採用SQLAlchemy,它是Python用的SQL工具與ORM (Object Relational Mapper)[1] 。

採用ORM連結資料庫有個好處是,所做的程式在往後若採用不同的資料庫軟體時,資料庫的連結方式無需做大幅度調整。SQLAlchemy支援了多種主流的關聯式資料庫。

雖然SQLAlchemy有相當好處,這裡還是要提醒一點,當資料量很大時,透過ORM存取資料的效率通常不像使用專用資料庫API來的好,譬如前述的SQLite資料庫為例,從sqlite3換成SQLAlchemy後在一次處理大量資料時就會感覺到效率上有點差異。 一般前端應用上的作法通常也不會寫成讓使用者一次調用大量資料, 這類一次調用大量資料的情景,通常像在後端做轉換或匯出/匯入資料,而此時可能會想用其他較合適的方式了。

以下用簡單的例子粗淺的介紹SQLAlchemy的入門使用方式。

2017年12月23日 星期六

GhostBSD 11.1

之前在〈FreeBSD 11.1安裝MATE桌面環境〉提到GhostBSD,那篇之後沒幾天,GhostBSD 11.1正式版就釋出,它是以FreeBSD 11.1為基礎,加上了一些圖形應用,提供Live CD環境與圖形的系統安裝程式。目前它有MATE與XFCE的版本,我慣用MATE,以下就談MATE的版本。

2017年12月20日 星期三

Ubuntu Firefox ESR

如果在Ubuntu上使用的Firefox舊元件尚不支援57版,或是基於其他原因尚不想用57版,而暫時用較舊的版本,那麼可以使用Firefox ESR (Extended Support Release),是長期支援的版本,目前是52.x版,可到明年6月。

雖然在Ubuntu上也可用pinning的方式維持使用指定的舊版,像以前就以這方式使用PHP 5.2,但有些設置的工作要做,且要有backports。但Firefox有ESR這另一種選擇,換成ESR的工作也容易些。

以下以Ubuntu 16.04中文版為例,說明移除firefox後改裝firefox-esr的工作。

2017年12月17日 星期日

Web Based RSS Readers

自從2013年7月1日Google Reader終止服務,就不得不另找線上RSS Reader。這類線上版的reader有個好處,就是它可以隨時在線,不致漏收訊息,如果用單機版的RSS reader來收24小時發送的新聞,除非把機器與reader程式24小時開著連線,不然若照正常人的工作時間運作,假設是固定在一早開機器與Reader看新聞,下班把機器關掉,就會發現可能有段時間的新聞是收不到的;或是連續幾日沒空連線查看訊息,也會有這種情況。這類單機版的Reader用來接收發送不很頻繁的訊息,像一日幾則,還算適合,而且還要對漏接的訊息不感到在意。

有人也許偏好以訂閱電子報的方式,也就是電子郵件的方式來接收訊息,但一旦訊息量很大時,就會發現信箱會被塞滿郵件,更討厭的是有些發電子報的機構只管發送,才不管退訂。在本世紀初本人親身經歷這種不愉快經驗,留在本文最後談如何解決,這裡先談正題。另一個缺點則是這類電子報郵件通常是大量放送,收信的郵件主機若有偵測與過濾廣告信之類的功能,可能把電子報當成廣告郵件處理掉或者甚至把送信的主機列入黑名單。

若改用RSS,則是由訂閱方自行決定要訂閱什麼類別的內容,不必把自己的郵件信箱給人家,也減少了收到廣告/垃圾郵件的風險。

2017年12月16日 星期六

資料夾同步軟體FreeFileSync

由於過去工作上的需要,很早之前就常在Windows桌面環境使用資料夾同步軟體讓不同位置的檔案保持一致。早期前後用過多種不同的軟體,當時用的一些免費軟體,多數沒再繼續更新,有的對中文或是Unicode檔名的支援不佳。直到FreeFileSync出現沒多久,就改用它直到現在,大約也有9年之久了。

2017年12月9日 星期六

調整FreeBSD使用本地時間

剛裝好FreeBSD 11.1時是把硬體的CMOS時間當成UTC時間使用的,如果要改為當成本地時間使用,別再像以前用tzsetup。

增加個空白檔案即可:

# touch /etc/wall_cmos_clock

詳情可見man adjkerntz

2017年12月2日 星期六

螢幕擷圖軟體ShareX

之前介紹過〈螢幕擷圖軟體PicPick與7capture〉,而ShareX則是開放源碼的軟體,有包含正體中文在內的多語界面。功能上除了擷圖之外,還支援許多個網路空間的檔案上傳、文字擷取(OCR)、螢幕錄製……。

2017年12月1日 星期五

常用Markdown語法

記錄自己慣用的Markdown語法。有些語法有多種寫法,這裡只記錄較主要的寫法。較詳盡的可見〈Markdown簡介與資源列表〉中所列的連結。