[Linux] 壓縮/解壓縮指令集 – Compress/Uncompress

.tar (無壓縮) 打包 tar cvf OutputFile.tar.gz InputFile tar cvf OutputFile.tar.gz InputFile InputFile2 InputFile3 解包 tar xvf FileName.tar 查看tar內文件不解壓縮 tar -tvf FileName.tar 進入目標資料夾 (打包不含路徑) tar cvf OutputFile.tar.gz -C InputFileWithPath . tar cvf OutputFile.tar.gz -C InputPath InputFile .tar.gz 基本用法同上tar應用。 壓縮 tar zcvf […]

[Nginx] HTTP to HTTPS – 80 to 443 – 自動轉導

設定檔 這裡拿一個非Default的Site Host作範例。 添加80port的設定檔範例: server { listen 80; listen [::]:80; server_name code.yidas.com; return 301 https://$server_name$request_uri; } 至於原來的設定檔則由80改至443: #listen 80; #listen [::]:80; # SSL configuration # listen 443 ssl; listen [::]:443 ssl;

[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

[GoogleAPI][v2][PHP] Google_Client OAuth Token Refresh (getrefreshtoken return null) – 更新Token

情境 PHP SDK文件與範例Code目前版本就是有坑:例如Calendar PHP Google Client OAuth Token就是無法Refresh,調用Method出來就是NULL。 $client->getRefreshToken(); // Output = NULL 解決方法 設定Google_Client時ApprovalPrompt要設為Froce… $client->setApprovalPrompt(‘force’); 修正後的PHP SDK範例: $client = new Google_Client(); $client->setApplicationName(APPLICATION_NAME); $client->setScopes(SCOPES); $client->setAuthConfig(CLIENT_SECRET_PATH); $client->setAccessType(‘offline’); $client->setApprovalPrompt(‘force’); 可以參考2011年文章:Upcoming changes to OAuth 2.0 endpoint

[GoogleAPI][Calendar][PHP] Events: Update DateTime – 日曆更新時間範例 (Google_Service_Calendar_EventDateTime)

緣由 Google Calendar API 目前文件版本在Events Update上竟然沒說明DateTime的相關set方法。 基本文件 Google Calendar API Events: update 以上目前版本並無提及如何Update Start & End DateTime,僅提到使用nested object型態。 PHP範例CODE // First retrieve the event from the API. $event = $service->events->get(‘primary’, ‘eventId’); $event->setSummary(‘Appointment at Somewhere’); // DateTime nested object method $start […]