好用的 Promise (bluebird) 與要注意的地方

背景不是說,應該都可以用 async / await 方式作為新一代 js 操作的方式嗎,那跟 Promise 有什麼關係,反正全都 async / await 就好啦。不過,故事其實不是這麼簡單的,畢竟 async / await 其實是對 Promise 的封裝。而且,也不是大家的開發環境都是完全支援 async / await 的。所以,多多了解 Promise 還是非常重要的。說到 js 的 Promise 大概就不得不提到 bluebird 吧,畢竟, bluebird 也算是 Promise 的完整整合方案了,也就是差不多都使用 bluebird 來取代原始的 Promise 所以,就來聊聊 bluebird 吧設定這部分也不多說了,反正基本上,我都會直接設定為:123co...

閱讀全文

多台 Mac 同步系統設定檔

背景通常都是這樣吧,不知何時開始,早就已經習慣使用 Mac 作為主要的開發、使用機,使用 Linux 做為 server 或是次級桌面系統,漸漸也不習慣使用 Windows 的環境了;不過這一點也沒關係,反正有 command line interface (cli) 一點也沒問題,用起來倒是很順手。唯一擔心的,就是多台電腦間,設定檔的同步問題,像是常會遇到的 browser, application setting 等問題,不過有些項目設定起來有點麻煩,所以至少,先同步一些常用的設定檔案目的這次目的也算是很簡單,至少我要先同步 .zshrc (oh-my-zsh), .vimrc (vim) 以及 .ssh (ssh - folder) 等幾個項目,當然方法有幾個,例如,使用 git...

閱讀全文

新鍵盤入手 - Logitech K380

背景哈哈,也沒什麼特別原因,就不過是逛了一下 Costco 萬惡的 costco 😄 就順手買了 logitech 的 k380 鍵盤原本只是隨意看看,沒想到觸感出奇地好,而且真的很小,但是每個按鍵大小都跟舒適,另位還支援了 Mac / Windows / ChromeOS / iOS / Android 等,幾乎所有的作業系統平台 別問我有沒有 linux 啊,那個是小事情,反正大部分都是用 ssh 進去,就算是桌面環境要支援,倒也不是件難事 ,最要命的是,竟然只要 699,透過比價網發現,外面都要 799 啊,那當然就順手買啦,又得再提一次,真的是萬惡的 Costco ,沒事真的不要隨意去逛,太危險了!!重點是,回來用起來到底如何吧,話說, logitech 就不用在這裡拍馬屁了...

閱讀全文

想要做一個簡單的書籤管理平台

起源其實早就覺得目前的書籤管理工具都不太好,然而,每次使用 evernote 或是 onenote 都覺得綁手綁腳,真的想要有個簡單的管理書籤的平台,該倒的也差不多都倒光了,好吧,那就乾脆自己動手做一個吧功能目前想到的功能應該有以下幾個:快速放入網址建立書籤項目可以自訂 title、說明、tags 等項目(選填)呈現方式回有簡單的網頁內容(類似於 evernote 的 clearly 模式)具有搜尋功能,可以搜尋: 網址、title、說明、標籤、簡單網頁內容可以分享出去(系統自動產生網址)搜尋結果,可以匯出成 html、json 格式可以完整匯出、匯入和備份基本還是要有會員概念目前想到的大概就是這些項目,未來應該要有的功能應該可以增加:appbrowser extension項目分析等...

閱讀全文

有了 git hooks 其實已經解決了大部分的工作

這幾天一直在想,其實 hexo 已經超級方便了,反正可以開心的寫作,也可以輕鬆地維護控管版本

但是,總是覺得不是這麼順手,畢竟,好像每次寫完文章後,就讓他自動 deploy 到遠端服務上,當然是件很簡單的事情。不過,大部分時候,就是因為這麼簡單,所以根本忘記要 commit 甚至 push 上去

所以就開始胡思亂想啦,是不是應該用 CI continues integration 的方式,甚至可以 CD continues delivery 當然,有沒有達成這麼完美的目的倒是未必,更重要的概念,是可以盡量畢其功於一役

所以,可以考慮執行的方式有以下幾點:

  • 寫個 script,在 deploy 之前,先 commit code
1
2
3
4
5
$ ./bin/deploy.sh
#... 要先做一大堆事情,如 git add 等等一大堆
$ git commit
  • 先 commit code,然後再 deploy 相關的 code
1
2
3
4
5
# ... 先做一大堆事情
$ git commit
$ ./bin/deploy.sh
  • 乾脆把這些事情丟到 jenkins 上面幫忙

以上幾點來看,第三點算是真的殺雞用牛刀了,不但要有一個 jenkins 的服務,還要寫一些 script,甚至想說從 A git repository 到 B (github.io ?) 這種動作,真的有違常理。所以用 jenkins 真的不太直覺方便

再來,先 commit 再 deploy,這部分來說,其實對於 hexo 來說,deploy 其實是包括了 generate -> deploy ,所以萬一 generate code 時,有發生任何錯誤,那也就是改壞了、有 bug 了。這樣的 commit 似乎也不好

所以,比較好的概念應該是類似於第一種。先 generate code,如果沒問題的話,就 commit,如果有問題,那就該啊~~

因此,應該考慮使用第一種方式,就是先 generate code,再 commit code 吧。不過(世上就是這麼多,不過…)這樣還是有點麻煩,畢竟正如同前面所提到的,如果要我打這麼多 command,那麼就一點也不符合懶的原則了

經過幾個小時偷玩 Jenkins 後,順便 Google 了一下,其實是可以考慮使用 [git hooks] 的功能

原本還以為是什麼外掛呢,原來他早就已經存在於 .git 的資料夾中,這要簡單的修改就可以使用了,而且是最簡單的 shell script 而已,只要吧 *.sample 後面的 sample 副檔名,就可以直接使用啦

先說一下我的想法和做法吧:

  • commit 前,就先讓 hexo generate html 吧,順便看看有沒有問題
  • commit code
  • commit 後,就直接把剛才 generate 出來的 html,deploy 到指定的目的地吧

既然概念這麼簡單,就直接說要怎麼做了

  • 修改一下 ./git/hooks/pre-commit.sample
1
2
3
#!/bin/sh
exec ./bin/generate.sh
  • 重新修改檔名,把後面的 .sample 拿掉,就會變成 pre-commit 這個檔名。待會 commit code 之前,就會自動執行剛才所執行的 generate.sh 這個 script 啦
  • 另一部分,也可以有 post-commit 這個檔案,就是 commit 完成後要執行的動作,如果沒有這個檔案,那就手動生一個吧
  • 其他還有不同的功能和處罰時機不同的功能

如此一來,我就可以在 commit code 完成後,不但產生了目的的 html ,又可以在 commit 完成後,直接 deploy html 頁面到目標的地方

這麼說來,除了需要在檢視是否功能有誤時,無法直接操作外,其他的部分,就可以全自動把 code commit,又可以達成 deploy 的目標。真的算是一舉數得啊!!

相關 git hooks 資料,可以看看 這裡

成長就是先遇到阻礙

這應該算是一直以來的常態了,只要專心一致想要做一件事情,就會開始有些小的阻礙,例如:

  • 活動邀約變多

    平常沒什麼人在理的,可以專心做些事情,但是一旦下定決心做些事情時,就會開始有很多人找,不見得是壞事,但是,就是會把原本規劃好的時程打亂

  • 設備開始出現問題

    這也是常見的問題與影響,概念就是,很多原本根本沒想到會出問題的軟、硬件,會出現不可期望的問題

  • 想太多、規劃太複雜、動作太慢

    這可能是強迫症的症狀吧,只要有新項目出現,就會想要規劃一個很完整的系統,反而讓整個行程時間變得難以掌控

  • 行為項目發散

    這種問題,應該與上述的問題相類似,會因為中間遇到問題,就會分神去解決,以為要完成主要的項目,必須先解決其中這些問題,然而,很多時候,其實這些問題根本沒有這麼重要,而是應該先有個折衷,為達目的先不擇手段

是的,最近準備開始的新專案,又是開始遇到這樣的問題,這些項目,幾乎都不是別人造成的問題,而是自己的問題。

因為會遇到這些項目的阻礙,所以時常就會讓項目胎死腹中,而根本還沒開始執行,或是連雛形都還沒完成就結束了。

所以,是該好好調整自己,把心靜下來,好好想清楚目標、項目、施行步驟才是,有想法就應該挽起袖子好好執行,就如同最近看到很棒的演說分享,也跟大家分享一下!!

影片連結
原文連結

項目最佳化

倒也不算是什麼了不起的調整,反正靜態網頁就是要越最佳化越好嘛,例如圖片要更小一點html 有多難讀就多難讀js 能多小就多小,code 越簡單越好這樣,才可以加快讀取速度嘛所以,這次也把我的 hexo 更小化了一點,另外把原本消失的 categories 和 tags 頁面也產出了 (ps. 我是參考 這裡 啦) 別問我 about 頁面如何,反正現在還沒想到要怎麼弄,先不管了...當然另外,為了有更好的 RWD 效果,也做了小小的修改,總之,在手機上可不能太難看啊,畢竟手機用戶才是大宗至於分享的部分,當然就簡單實用 shareaholic 囉,先求有再求好,跟何況已經夠好了,暫時不需要調整了也就是說,這個 blog 暫時功能也算是完成了!!

閱讀全文

偷看程式碼真的有很大的益處

應該大家都知道 hexo 了吧,倒也不是什麼新的、了不起的新應用技術了,總之,我也是這幾天才開始玩其中的原因不外有以下五點:是該開始寫點東西了,每次都會忘記紀錄些項目,就連 evernote 上的東西也越來越少翻出來看了使用 Markdown 語言寫東西,是感覺更像是在寫簡單的文字,純文字的寫法,跟讓人有感越來越懶得去架設一些服務,雖然一開始概念都是練習技術,但是很多時候都半途而廢,或是機器調整後,就沒有再也不想維護了MWeb 真的超好用的,又美觀、又方便、又支援各種 blog 和圖床的功能,有在寫 Markdown 的夥伴們,一定要花點錢買套正版的來玩玩喔 這也是為什麼用 linux / windows 很不舒服的原因之一總是要留點東西下來,FB / instagram 或是其他的 ...

閱讀全文

很久沒有用 windows 了

很久沒有用 windows 了

也不知道到底有多久沒有用 windows,大約是 win7 之後,就不熟悉了

最近拿到一台 NB,原本想說安裝 mint linux 來寫程式就好了,不過發現,相對於 Mac OSX 來說,其實 Linux 沒什麼質量比較高的軟件。例如,想要有個好用的 Markdown editor,就沒有像是 Mac 的 MWeb 合理與好用…另外,習慣使用的拼音輸入(繁體),也不像是 Mac 本身就已經內建了 話說,好像 windows 也沒有內建,不過至少可以使用 google 拼音輸入法

所以這兩天也就索性把 linux 重新安裝回 windows 吧,沒想到很快就出現另人懷念的畫面了

3
好啦,我也完全不想看懂這是什麼

我想最麻煩的應該會是以下幾個部分了

  • 安裝 driver 有電腦、有 windows 10 就很迷人了,其他不強求
  • windows update 無盡的等待
  • 鍵盤位置 這可能是短期之內,無論是使用任何作業系統,只要遇到鍵盤就會發生不習慣的問題
  • 其他快速鍵習慣操作與設定

anyway,祝我好運吧,真不知道要適應多久了!!

© 2017 Kimz Index All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero