精通編輯器!Sublime Text 2 – 更改 theme 顏色、字型、Icon

偶偶改改程式碼配色可能是寫程式時的一種小浪漫,Sublime Text 一樣是用 Package Control 就可以安裝不同的 theme,這邊列出幾種常見,我有下載的配色:

Soda

Soda – Dark

soda-dark

Soda – Light

soda-light

Spacegray

Spacegray – Ocean Dark
spacegray

Spacegray – Ocean Light

spacegray-light

Spacegray – Eighties Dark

spacegray-eighties

Piatto

Piatto – Dark

piatto_dark

Piatto – Light

piatto_light

Flatland

screenshots

Colour schemes

有一整包各式各樣的 theme,這是其中之一的 Github 樣式
github

PlasticCodeWrap

如果對這些都不滿意,或是想自己試試,還有這個可以設計自己配色的 Theme 產生器
http://tmtheme-editor.herokuapp.com/

字型 – Source Code Pro

Source Code Pro 是 Adobe 開發的一套專名適用呈現程式碼的字型

JavaScript: 正規表達式 RegExp 應用(String, RegExp Method)

JavaScript 的正規表達式可以運用在 字串物件 和 正規表達式物件本身 的方法上:
(還不知道正規表達式怎麼寫可以參考前一篇:JavaScript: 正規表達式 RegExp 寫法

字串方法 String Method

.search(RegExp)-

找到匹配的字串回傳第一個字元的位置 index,沒找到則回傳 -1。 如果參數不是正規表達式會丟進去建構式產生一個,另位 .search() 會忽視 g 旗標,永遠只能搜尋第一個。

"abc".search(/c/); // 2
"abc".search(/d/); // -1 

.replace(RegExp)-

.replace() 有三種用法:
1. 一般用法可以把匹配的字串換成另一個字串
2. 用 $n 可以去到前面正規表達式第 n 個括號的參考
3. 傳入函式來動態決定取代成什麼值

"aaa".replace(/a/, '1');  // "1aa"
"ababab".replace(/([ab])/g, '$1$1');  // "aabbaabbaabb"
function a() { return '1'; }
"aaa".replace(/a/, a);  // "1aa"

.match(RegExp)-

最常用的方法,把匹配的字串變成陣列,如果正規表達式沒有加上旗標 g,會在找到第一個匹配字串就結束,但回傳的是只有一個元素的陣列。

" aba abc abb ".match(/ab\w/);   // ["aba"]
" aba abc abb ".match(/ab\w/g);  // ["aba","abc","abb"]

.split(RegExp)-

用正規表達式匹配的字元來分隔。

"a, b,   c,d".split(/\s*,\s*/); 
// 可以匹配左右不定數目的空白,回傳["a","b","c","d"] 

正規表達式方法 RegExp Method

.exec(String)-

正規表達式主要的方法,跟字串的 .match() 有點類似,不過就算有 g  旗標一樣會回傳單一結果陣列。
不過在有 旗標的狀況下,會把匹配字串的下一個字元設成 lastIndex,第二次 .exec() 就會從後面開始找。


var regexp = /\w/g;
regexp.exec('abcabab');  // ["a"]
regexp.exec('abcabab');  // ["b"]
regexp.exec('abcabab');  // ["c"]
regexp.exec('abcabab');  // ["a"]

.test(String)-

有檢驗沒有符合的項目有 – 回傳 true 或是沒有 – 回傳 false,這個用法跟 .exec() 一樣在有 旗標的狀況下,會把匹配字串的下一個字元設成 lastIndex。

/c/.test('abc'); // true
/d/.test('abc'); // false 

JavaScript: 正規表達式 RegExp 寫法

JavaScript 中的正規表達式 Regular Expression (RegExp) 是 Perl 5 正規表達式的子集,除了少數的功能沒有支援外非常接近。

跟 JavaScript 的物件、陣列等一樣,比起用建構式的法來說

var pattern = new RegExp('JavaScript');

一般狀況用字面值來建立更好

var pattern = /JavaScript/;

使用上數字與字母皆匹配自己字元,其他標點符號有些有特殊意義如果要匹配自己必須加上 反斜線  \,包括: ^ & . * + ? ! : | \ / ( ) [ ] { }

字元類別 Character Classes

字元類別匹配任何包含於內的字元,可以用中括號來表示

/[java]/       // 匹配 j、a、v、a 字元
/[a-z]/        // 加一個連字號 - 表示匹配之間所有的字元,所以匹配 a 到 z
/[a-zA-Z0-9]/  // 匹配 a 到 z、A 到 Z、 0 到 9
/[^java]/      // ^ 表示否定,所以匹配 j、a、v、a 以外的字元

還有一些特定的字元類別

.     // 除了 newline 跟行終止以外的所有字元
\w    // 所有 ASCII 文字字元,等於 [a-zA-Z0-9]
\W    // 所有非 ASCII 文字字元,等於 [^a-zA-Z0-9]
\s    // 任何 Unicode 空白字元
\S    // 任何非 Unicode 空白字元
\d    // 任何 ASCII 數字,等於 [0-9]
\D    // 任何非 ASCII 數字,等於 [^0-9]
[\b]  // 匹配倒退

重複次數 repetition

在特定重複次數或是一定範圍的次數時,例如:要匹配 100 個數字時,重複 100次的 \d 看起來不是個好辦法,這時用重複次數表示的語法都非常有用。

{n}    // 匹配前一個東西 n 個
{n, }  // 匹配前一個東西 n 個以上
{n, m} // 匹配前一個東西 n 到 m 個之間
+      // 匹配前一個東西 1 個以上,等於{1, }
*      // 匹配前一個東西 0 個以上,{0, }
?      // 匹配前一個東西 0 或 1 個,{0, 1}

非貪進重複 nongreedy repetition

對重複次數加一個問號表示非貪進重複,從前面比對過來,達到重複條件就直接停止繼續比對重複項目,例如:對 aabb/ab+/ 比對會得到 ab 而不是 abb

??
+?
*?
{5, 10}? // 重複字元或字元組合加上 ?

擇一匹配 alternatives

其中有一個條件符合就匹配,例如 /ab|cd/,有 abcd 的都符合

|  // or 運算子,匹配左邊或右邊

分組 grouping

就像是加減乘除時使用的括號,括起來就是同一個單位要一起算,
例如 /(ab|cd){3}/,匹配有三個 abcd
(?:) 則是有點特殊的括號,不會建立編號給後面介紹的參考使用

()    // 分組並記住字元留作後面參考
(?:)  // 只分組但不記住字元

參考 referring to

可以參考前面分組的字元,以左括號的出現順序來編號(可能會有巢狀的狀況),例如:/(['"])[^'"]\1/\1就會匹配第一個括號裡面的東西/(['"])

\n  // 參考左邊數來第 n 個 不為 (?:) 的 括號

正規運算式錨點 regular-expression anchors

下面這些錨點符號可以決定匹配必須在特定的位置。

^     // 在字串開頭,或m旗標狀態下每行開頭
$     // 在字串結尾,或m旗標狀態下每行結尾
\b    // 在非空白跟空白字元的邊界
\B    // 不在非空白跟空白字元的邊界
(?=p) // 後面必須是p,但p不會回傳
(?!p) // 後面不能是p

旗標 flags

指定比對規則,寫在第二個  /  外,例如: /java/gi,就是要找出全部不分大小寫的 java

i  // 不區分大小寫
g  // 找出所有的,否則只找一個
m  // 多行比對, ^ 比對每行開頭,$ 比對每行結尾

應用

知道如何撰寫正規表達式後,接下來就必須使用字串方法 String Method 或是正規表達式方法 RegExp Method 來做應用
(可以參考下一篇:JavaScript: 正規表達式 RegExp 應用

TED 筆摘 – 2014.01

(加 * 的是我覺得特別值得看的)

Apollo Robbins : The art of misdirection*

1. Michael Posner 提出三種注意力模式。

大腦第一個系統叫做「警覺或警惕系統」,監控感覺環境,看有沒有任何不尋常的地方;警鈴響後啟動第二個「導向系統」,讓我們的注意力立刻轉移到需要注意的刺激上;第三個「執行系統」控制著「我的天,現在我該怎麼辦?」的反應行為。

2. 誤導,讓正在處理外部感知的注意力,處理一下裡面的事情。人不能一邊回憶一邊處理新的訊息。

Derek Divers : How to start a movement*

1. 第一個追隨者把瘋子變成了領袖,後來加入的人模仿的是追隨者而不是領導者。
2. 記得重視你的追隨者,並一視同仁。
3. 當你發現一個瘋子在做很棒的事,拿起勇氣第一個跟上。

Stacey Kramer : The best gift I ever survived

1. 萬一你必須面對出乎意料的事,是你不要或者是不確定的,你可以把它想成是一個禮物。

Derek Divers : 「夠好」的人生選擇


1. 意義全是你灌輸、賦予的產物,就像一張白紙,「人生就是人生」,沒有任何意義,你要能拋棄、剔除那些阻礙、扯住你後腿的意義。
2. 等你領悟到「人生其實不具意義」後,你便所向無敵。

Louie Schwartzberg : Nature beauty gratitude

1. 如同這是你生命中第一天,也是最後一天,你就會好好的度過這一天,從睜開你的雙眼,能睜開眼睛是多們令人高興的事。
2. 所有與你相遇的人們,歷經數個世代、從地球上各個角落,聚集在一起然後在此地與你相遇的人們,就像生命的泉水。

Amy Cuddy : Your body language shapes who you are*

1. 你要假裝,即使你怕死了、腳癱了、魂不附體了,直到你發現你在說:「噢,我的天哪,我正在做這件事」。
2. 就兩分鐘,在你進行下一場令人緊張的評估情境前,嘗試高權勢姿勢,身體影響心理。

Matt Cutts : Try something new for 30 days*

1. 用三十天的時間嘗試新事物,事實證明,三十天剛好是一段適合的時間,在你的生活中去養成一個新的習慣。
2. 當我做一些小的持續性改變,這些事比較能有始有終。你們還在等什麼?我保證你們在未來三十天會經歷一些喜歡或不喜歡的事,找一直想做的事,給自己一個機會。

Richard St. John : 8 Secrets of success

– Passion :
1. 做事絕非出於利,而是出於愛
2. 我願意付錢讓別人做我的工作 (城市設計師 Carol Coletta)
3. 出自熱愛做的事,一定會獲利

– Work
1. 從工作中得到樂趣,而且非常努力
2. 不是工作狂而是工作玩家

– Good
1. 立下目標,成為高手
2. 一切沒有捷徑,只有練習、練習再練習

– Focus
1. 一切都跟能多專注在一件事情上

– Push
1. 對自己狠一點,體能、心智都必須不斷突破

– Serve
1. 你不能只服務自己,必須為別人提供有價值的服務

– Ideas
1. 創意靈感的產生沒有捷徑

– Persist
1. 有毅力才會成功
2. 失敗也必須撐過去
3. 要能頂住CRAP ,批評(Criticism) 、拒絕(Rejection)、爛人(Assholes)、壓力(Pressure)

NAS 雲端儲存空間 與 RAID 概念

Network-attached storage

Network-attached storage 簡稱 NAS ,顧名思義就是雲端儲存空間,雲端儲存空間總是讓人想到 Dropbox,不過 Dropbox 少少的空間還是很難好好的用。

今天去買了台 6 TB 的 NAS 全家用,它其實是台超小型電腦,也是放置在自己家的雲端儲存空間(其實這樣講不太精確,因為他其實也是能當小型伺服器)。

好處

作為一個儲存空間他有蠻多好處:(大致上跟 Dropbox 差不多)

  1. 方便共享
  2. 各裝置或資料夾同步
  3. 資料可同時備份
  4. 耗電量大概只有一般電腦十分之一
  5. 依帳號設定權限
  6. 不易中毒的 Linux 系統
  7. 容易擴充、替換硬碟

… 好像蠻多的,先寫到這裡好了。

Dropbox 比較

其實想到可以用網路存取那麼大的空間又有備份不怕硬碟壞掉就覺得很棒,相較之下:

  • Dropbox   – 500GB     一年會費大約          $15000
  • 低階 NAS  –  8TB      硬體現在價格大約   $14000

Dropbox 實在貴太多倍了(雖然很好用),而且硬碟價格越來越低,
現在內接硬碟價格大約:(會越來越便宜)

  • 1TB: $1900
  • 2TB: $2700
  • 3TB: $3600
  • 4TB: $5500

廠牌

目前看到比較有名的是這幾家:
台灣 – (之前聽說台灣 NAS 做的很不錯)

  • Synology 群暉科技
  • QNAP 威聯通

日本 – 

  • Buffalo 巴比祿

美國 – 

  • Western Digital 威騰電子

不過考量到家庭成員的易用性,後來選擇了功能比較少,但比較不花腦筋設定的 Buffalo 同綑包,不過以後要架伺服器也不會拿家裡的東西來架吧,所以不用那麼專業也沒差。

Bay

這是 NAS 可裝載硬碟的插槽數量,最基本的 1 Bay 的就是只能裝一個硬碟,不過要體會這種儲存的有趣之處就需要 2 Bay 以上,我買的 6 TB,就是 2 Bay 各裝一個 3 TB。商用的會更多,有些有數不清的 Bay。

設定

設定對懂網路跟系統的人來說不會很難,但對一般人來說應該是地獄,所以這種東西感覺很難像隨身硬碟一樣普及?

可以每個家庭成員建一個帳號,然後設定彼此的權限就可以很好的處理隱私的問題,想共享的東西共享,其他設定只有本人可以讀寫。

要設定的東西不多,再來就到重頭戲 RAID。

RAID

RAID(Redundant Array of Independent Disks)容錯式磁碟陣列,就是說把相對便宜的硬碟組合成陣列,讓效能超過一個昂貴、容量大的硬碟。例如:

兩個 2 TB 硬碟組合起來的硬碟陣列可以有跟 4 TB 接近的效能但卻相對便宜的價格。
這個差距在容量越大時會越明顯。

我買的 6 TB 其實就是由兩個 3 TB 組成的陣列。

電腦雖然只會把硬碟陣列當作一個硬碟,不過在建構陣列的方式有幾種不同的方式。這邊拿我買的 Buffalo 2 Bay 來舉例有分成:普通模式、RAID 0 、RAID 1。

普通模式

就跟一般的硬碟的使用方式沒什麼兩樣,兩顆硬碟分開寫入,所以壞掉的話就是單顆硬碟壞掉。

RAID 0

是一開始預設的模式,硬碟組成一個大的磁碟陣列,容量最大,速度最快,2 個 3 TB 直接變 6 TB,不過沒有冗余(就是拿來容錯、備份的空間),這樣壞掉的話資料就會很危險,就等於是整個 6 TB 硬碟一起壞掉。

RAID 1

組成硬碟後,會進行鏡像備份,也就是兩個硬碟會同時寫入一樣的資料,就是做 1 比 1 的資料備份,所以資料相當安全,會一起壞掉的機會奇低,而且壞完另一半馬上補一個又是一尾活龍。但壞處就是兩個 3 TB  的陣列就只有3 TB  的空間,因為另一半被拿去做備份了。

另外常見的還有 RAID 5 跟 RAID 10 , RAID 5 是利用磁碟分割技術和奇偶校驗資訊來試圖在硬碟壞掉時恢復資訊(至少需三顆硬碟),RAID 10 則是先鏡像(RAID 1)再分割(RAID 0)的技術,安全性跟效能都介於 RAID 1 跟 RAID 0 之間,實際運作方式就不再詳述。

Request 加上參數避免快取(cache)

有時候會在 HTML 引入的 CSS、JS 檔案路徑上看到用 ? 來加上參數,例如:

<script type=”text/javascript” src="main.js?v=20120101"></script>

<link type="text/css" rel="stylesheet" href="main.css?v=20120101">

這個參數的用處在於:
有時候雖然修改了檔案,但是因為瀏覽器會依網址判斷檔案是否有快取 cache,而去取用了未修改版本的檔案快取。
但對伺服器而言,多丟一個沒用的參數並不影響,會跟沒參數一樣去抓檔案。
所以如果參數不同的話就可以避免瀏覽器 cache 導致沒有更新:

src="main.js?v=20120101"
src="main.js?v=20120102"

這兩個 src 用來表示版本的 v 參數不一樣,所以瀏覽器就不會因為下載過了

v=20120101

而不去下載

v=20120102

這樣就可以避免用戶端可能產生的快取問題。

不過如果沒有修改的話,允許快取效能會更好~

向左走向右走

23387

[向左走向右走。吉米音樂劇]

她向左走, L 是左邊,L是離開,L是愛
他向右走,R 是右邊, R是遺憾 ,R是回來

遺憾先生與離開小姐
因為相信,終於相遇

一個細緻的故事,不知不覺就讓觀眾三個半小時沉浸在裡面。
每一次的遺憾都讓人心揪了一下。

「反正大家都愛過誰也不欠」
或許離開是為了不留下遺憾,每個故事都是另一個故事的續集,也是下一個故事的開端,活在思念的當下其實也蠻美好的

因命運而相遇,因命運而離別。
「GoodBye and take care.」
簡單的一句話卻又包含了千言萬語,若要離別什麼的,或許這就是最好的一句話吧。

 

雖然一段錯過的緣分也很美,不過擁有差點錯過的緣分也不錯,彼此才能更珍惜緣分吧「人生總是有許多巧合,即使兩條平行的線,也可能出現交會的一點。」

聽到這段時,想起另一個大雨的回憶,每個故事都有一場大雨,只是意義全然不同。

上面這兩首都是青峰唱的版本,跟蔡旻佑是完全不同風格,青峰的歌真的很動人,很多插曲都蠻好聽的。
如果是青峰演的感覺應該很不同吧

不知道會不會就就此喜歡上音樂劇呢?

另外一提,魏如萱跟蔡旻佑真的好可愛。

在全場的歡呼下,蔡旻佑輕輕親了魏如萱的額頭一下,還有幕拉下時側躺在地上看到觀眾最後一面,頓時對蔡旻佑增加了不少好感。

現在我真的相信,一部讓所有觀眾都感受深刻的好劇,演員是真的活在其中的吧。