[JavaScript] 類別物件寫法 (建構&靜態物件) – Class Object Coding Style (constructor & static class)

情境 JavaScript如何達到靜態類別設計? https://github.com/yidas/js-design-patterns/blob/master/class/ Constructor Class var Class = function (options) { this.render = function () {} }; var object1 = new Class(); object1.render(); Literals Object JavaScript靜態物件的第一個想法, var Class = { render : function () {} }; Class.render(); 架構不錯,缺點為在物件內無法宣告區域變數(亦即達不到private變數或方法)。 若在物件方法中再次用到function,且須使用this指到物件本身就會有瓶頸,得每次帶入物件‵this‵本身,而無法從物件那層定義個物件區域變數代表this。 Static […]

[Windows] 視窗水平分割教學 – 水平視窗排列 – 使用AutoHotKey

使用情境 Windows要水平分割視窗竟然會如此困難即便到了Windows 10。 原生半調子解法 以Win10來說,工作列使用水平排列(Show windows stacked),可將現有視窗做水平排列,但相信我絕對不會是你要的。 使用AutoHotKey解法 首先認識AutoHotKey這套Open Source軟體,可以開啟.ahk檔案執行script。 軟體的基本使用可以參考:The Beginner’s Guide to Using an AutoHotkey Script 再來引用水平視窗切割(Vertical Windows Snapping)的Script,優化自:Snapping Windows Vertically on Portrait Display ; dir 0 = top part ; dir 1 = bottom part ; size […]

[Linux] Crontab 排程使用教學 – 參數速查

在linux系統中,如 freebsd,cron 排程的資料是存在/etc/crontab中,我們可以直接輸入 vi /etc/crontab進行編輯。 Linux Cron 指令 crontab -e 編輯排程 (edit cron) crontab -r  移除排程 (remove cron) crontab -l  顯示目前排程 (list cron)crontab -u 改變排程的執行身分: crontab -u user filename Cron 語法介紹 分鐘 小時 日 月 星期 執行身份 指令 0~59 0~23 1~31 (29,30) […]

[Javascript] HTML to CSV – Charset UTF-8 BOM – 完美匯出CSV

使用情境 Javascript在匯出EXCEL有ASCII Code瓶頸不能完美支援,所以匯出CSV是較佳的選擇。 CSV匯出的亮點會在於Charset,例如支援中文而使用BOM。 技術亮點 var csvContent = “欄位A,欄位B\n值A,值B”; var link = window.document.createElement(“a”); link.setAttribute(“href”, “data:text/csv;charset=utf-8,%EF%BB%BF” + encodeURI(csvContent)); link.setAttribute(“download”, “upload_data.csv”); link.click(); 其中Link格式,使用UTF-8 with BOM: “data:text/csv;charset=utf-8,%EF%BB%BF” + encodeURI(csvContent) JSFiddle