Blackbing Playground

我的日常工作環境

今天來聊聊我的工作環境,其實之前就想寫一篇來記錄了,
只是一直都很懶。

OK,準確一點的說是我使用電腦的「工作環境」。
最近覺得自己的配置明顯加速了我的開發時間,
因此也順便做個記錄。

###虛擬機器
一開始是申請AWS的服務,instance放在最便宜的美西,AWS真的很便宜,
但AWS設定多,操作相對複雜,而且美西的速度實在太慢。
比起來Linode就直覺多了,而且可以申請在東京的instance,速度很快。

所有的開發者都需要有電腦,這台電腦最好是能夠跟著你到處跑,
你想在廚房coding,廁所都可以,那首選當然是Notebook,
可是Notebook螢幕太小,對我而言Notebook不適合長時間工作,
因此有一臺在外面的server,你就算用你老媽的電腦,你都可以連進去工作,
不會被任何電腦侷限住。這對我來講真是太方便了。

Linode最小的instance一個月600元,算一算一年7200,你買一臺電腦,
隨便配一配,再加電費,網路費,其實還算划得來。

###SSH Login
每次打帳號密碼很煩,而且在開放式網路打帳號密碼也是有危險,
因此請一定要做ssh auto login,詳細請參考
How to setup automatic login with ssh without a password

###tmux
tmux就是更強大的screen,
簡單講tmux就是可以讓你隨時回到之前的連線狀態,
因此你可以用你老媽電腦做事做到一半換到你自己的電腦再繼續做事。
中間完全不會有任何間斷。

參考來源

另外很重要的是在登入之後自動恢復tmux的執行狀態,我用的是這段設定,
設定append在.bashrc(or .zshrc)。

1
2
3
4
5
6
7
if [ "$PS1" != "" -a "${STARTED_TMUX:-x}" = x -a "${SSH_TTY:-x}" != x ]
then
STARTED_TMUX=1; export STARTED_TMUX
sleep 1
( (tmux has-session -t remote && tmux attach-session -t remote) || (tmux new-session -s remote) ) && exit 0
echo "tmux failed to start"
fi

參考來源

###保護你的site
由於是拿來做開發,因此服務不宜直接暴露在網路上,最起碼要做帳號密碼的檢查,
我是用nginx的auth_basic來處理。

First add the following to your Nginx configuration file:

1
2
3
4
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
}


Then create the htpasswd file:

this be passwords

thisbetheusername:thisbeencryptedpass:yercomment
To generate a htpasswd password without installing Apache you can use the following Perl or Ruby code:

1
perl -le 'print crypt("password", "salt")'

1
"password".crypt("salt")

The crypt() method uses 56-bit DES encryption, which is used in /etc/passwd and htpasswd.

參考來源:Password protecting a folder/resource with Nginx

###NAS
我選了Synology 211+做為家用NAS,
並且將我爸媽所使用的儲存空間都搬到NAS 的storage上,
如此一來也不用每次要換電腦,重灌時要重做備份,省去我很多麻煩,
而多了NAS的儲存空間,也讓我不用在nb與工作電腦裡頭放一堆重復或不同步的檔案。
而且有photo stream啦,music stream啦,video stream啦,
在電腦裡頭不用存一堆檔案,這真的很好。

###碎碎念
大概就是這樣了,雖然需要花點錢,但我覺得是值得的,
而且有了一個遠端的工作環境,就不會被機器侷限住了,
現在人幾乎公司一臺電腦,家中一臺電腦,還有筆電,
如果每次環境都要重新安裝,那真的很麻煩。
不過當然還是要看主要的工作環境是否適合,如果工作需要在內部網路的話,
那就不適合這種方式了。