發表文章

目前顯示的是 2018的文章

為什麼我們這樣生活,那樣工作?

圖片
習慣強而有力,卻也脆弱易催; 習慣會自然而然不知不覺出現,卻也能刻意培養; 習慣常未經同意便自行而探出頭來,卻也能被拆卸、重新組裝。 想當初看到這本 < 為什麼我們這樣生活,那樣工作?> 時,還以為會是講關於人生方向的書籍,結果到手後翻一翻,才發現! 竟然是在講 習慣 的書籍,其實當初想的也沒錯,習慣確實在背後左右我們的人生,他們會侵蝕你的生活、你幾乎不會注意到這些事情對你造成的傷害,大大的阻礙你走向成功。 這本書的作者為查爾斯.杜希格,身為<紐約時報>得獎記者的他,在一次當任派駐巴格達記者時,採訪了當時靠著驅離攤販,而間接改變了群眾的暴動行為的美國陸軍少校。少校回答:「了解習慣,正是我在軍中學到最重要的事。」進而引發杜希格對習慣的好奇心,並開啟了研究習慣的大門,寫下了這本< 為什麼我們這樣生活,那樣工作?>。 知道習慣的重要後,就讓我們來了解習慣到底是怎麼運作的? 當一個習慣養成之後,它便會潛伏在我們的小腦袋裡,隨時期待著提示訊號和獎勵 ! 接下來我們的大腦便停止全心全意參與決策過程,閉始打混摸魚或轉移注意力。除非一個人刻意「對抗」某個習慣(或是意識到其他新習慣存在),否則該行為模式會自然而然啟動上路。 讓消費者不知不覺養成新習慣 二十世紀初,企業界的名人克勞德 。 霍普金斯的一位友人上門有事請託,他發現了一個了不起的新產品,他稱之 「白速得牙膏 」。在當時的美國,國民的口腔健康是一個很大的問題,美國政府在為第一次世界大戰招兵買馬時,發現很多士兵的蛀牙相當嚴重,官員因此提出了警告,稱口腔衛生好壞將危及國家的安全 ! 然而霍普金斯明白,賣牙膏其實是賠本生意,因為很少國人有刷牙的習慣,因此願意花錢購買牙膏的消費者也是少之又少,最後因可以擁有大量的股票選擇權, 霍普金斯選擇接下了這則廣告,這也是 霍普金斯這一生中最明智的投資。在接下來的五年後,白速得牙膏成為了全球最知名的產品,刷牙的風暴也以驚人的速度拓展到了全美 ! 究竟 霍普金斯做了什麼? 他創造了 「渴望 」 ! 起初霍普金斯翻了一堆牙科教科書,終於在其中一本中發現,牙齒表面會長一層黏斑,他稱之為 「 膠膜 」,這個發現讓他靈機一動,並集中火力於對付膠膜上。但事實上膠膜原本就長在牙齒表面的,長期下來並未構成人類的困擾。 不過 霍...

HTTP\HTTPS 差一字,差好多

HTTP的全名為超文本傳輸協定 ( HyperText Transfer Protocol,縮寫:HTTP)。是一種位於OSI中應用層的協定,也是如今在 Internet 中資料通訊的基礎。 設計 HTTP 最初的目的是為了提供一種發布和接收 HTML 頁面的方法。通過 HTTP 或者 HTTPS 協定請求的資源由統一資源識別元(Uniform Resource Identifiers,URI。用於標識某一網際網路資源名稱的字串)來標識。簡單來說,HTTP 就是往返"瀏覽器"與"WEB Server"的通訊協議。 HTTP缺點 明文。在 HTTP 中,Web 端與 Server 端進行通訊是使用"明文"的方式,因為其本身並不具備加密的功能,就算今天 Web 端可以對內容進行加密,再傳送至 Server 端解密,但這樣的機制因為沒有 CA 以及公鑰基礎建設的基礎,也沒有透過 SSL/TLS 來作加密的動作,仍然會有被解密的風險。 無驗證。在 HTTP 中,不管是 Web 端還是 Server 端都不會對身份來進行驗證,只會對訊息要求正確,並不會驗證這是不是真的由對應到的那端發出來的,所以內容很有可能被串改或竊聽。 有求必應。因為 Server 端因為對 request 幾乎是有求必應的,所以也無法阻擋海量的 DDoS 攻擊。 總合以上三點,其實說穿了就是兩個字,安全。已傳紙條來舉例,你可不希望在傳遞的過程中發生,紙條被偷看、串改的問題出現吧!因此 HTTPS 就出現了。 HTTPS 的全名為超文本傳輸安全協定 ( HyperText Transfer Protocol Secure,縮寫:HTTPS)。透過了 SSL/TLS (傳輸層安全性協定)去做了一道安全鎖,透過andshake (交握)、公私鑰加密、CA (第三方認證機構)等,來解決 HTTP 無法解決的問題。

JavaScript Minify 介紹

圖片
相信你一定有用過瀏覽器的一個叫“檢視網頁原始碼”的功能,而當你點開後,你會發現你看到的原始碼又髒又亂,什麼 a,b,c 的變數,而且又都寫在同一行。 ( 示意圖 ) 其實,這並不是因為開發者寫的程式碼就這麼髒,而是透過特定的 Minify 工具轉譯出來的。 而要這樣做的原因主要兩個: 把變數跟程式碼寫得越短,可以省掉不少瀏覽器解析 (Parse)的時間 雖然這些程式碼是公開的,但是如果有人想研究你程式碼的話,會比較不方便。 Minify開放原始碼-GitHub

REST/RESTful 介紹

Representational State Transfer ( 表示狀態傳送 ),簡稱REST,它是一種網路架構風格,他並不是一種標準。 而如果你符合 API 符合的話, 你可以將它稱作 RESTful API ( REST化 = RESTful )。 讓我們直接舉個例子 如果我們在寫一隻商品的 WebAPI,讓工程師隨便寫可能會有以下方式來作 Interface:  獲得商品資料 /getAllItems  獲得商品資料 /getItem/11  新增商品資料 /createItem  更新商品資料 /updateItem/  刪除商品資料 /deleteItem/ 若是以使用 RESTful API 開發的話:  獲取商品資料 /GET /items  獲取商品資料 /GET /items/1  新增商品資料 /POST /items  更新商品資料 /PATCH /items/1  刪除商品資料 /DELETE /items/1 而以上兩者的差異在於 RESTful API 充分地實現了 HTTP protocol ( GET/POST/PUT/DELETE),來達到簡潔易懂,並且可重用。

awk 簡單好用的資料處理工具!

awk 是一個可以處理資料、產生格式化報表的工具。 awk 的工作方式讀取資料源,並將每一列的資料視為一筆紀錄 (record),每筆記錄在被細分成數個欄位,預設的欄位分割字元為 '空白鍵' or 'tab' 。awk 會對每一筆記錄,都會套用一個「模式{動作}」,如果該列符合模式,就執行指定的動作。( 模式複習 ) 語法 awk '條件類型1{動作1} 條件類型2{動作2} ...' filename awk後面接兩個單引號並加上大括號 {} 來設定想要對資料進行的處理動作。 awk 可以處理後續接的檔案,也可以讀取來自前個指令的 standard output。 語法案例 顯示含 XXX 的資料列 awk '/abc/' file  從file檔案中顯示含 abc 的資料列。 顯示檔案中每一列的第 1 和第 2 個欄位。 awk '{print $1 , $2}' file  從file檔案中顯示第 1 和第 2 個欄位。 顯示含有 XXX 關鍵字的資料列的第 1 及第 2 個欄位 awk '/abc/{print $1 , $2}' file  從file檔案中顯示含 abc 的資料的第 1 和第 2 個欄位。 顯示含 XXX 的資料列,並以 , 為分割字元 awk 'BEGIN  {FS = ","}/abc/' file  從file檔案中顯示含 abc 的資料,並以 , 為分割字元。 BEGIN{} 區塊指示 awk 一開始先做初始化的動作,否則在第一行時就會以預設的字元來做分割。

正規表示式 (Regular Expression) 基礎教學

      正規表示式是使用一種模式 (pattern) 來描述、符合一系列符合某個句法規則的字串。他最強大的威力就在於只需要幾個簡單的符號,就可以代表許多字串共同的樣子。通常被用來收尋以及替換某個模式的文字。 以下介紹幾個常用的語法:  .代表一個任意字元 例: .T. ,代表三個字元,中間為T,左右兩邊為任意字元。 ^代表在列首 例: ^Apple,代表Apple需出現在列首,才能符合模式。 $代表在尾部 例: Apple$,代表Apple需出現在列的最後面,才能符合模式。 [...]代表字元集合 (character class) 例:[abc],代表符合 a 或 b 或 c 這三種字元中的其中一個即可符合模式。 例:[Aa]pple,代表 Apple、apple 皆符合此模式。 例:[^A-Z],代表除了大寫字母外的一個字元。 ^在集合中代表 '非/not' 的意思。 - 表字元範圍。 *代表左鄰字元出現一個以上 例:Ap*le,代表p這個字元可以有0個以上,Ale、Aple、Appppppple皆符合此模式。 \{...\}代表左鄰字元符合的個數 例:[A-Z]\{2,6\},代表以大寫字母組成的字串,長度為2~6,皆符合此模式。