developer

A collection of 16 posts

homebrew

使用 homebrew 快速建立環境

使用 homebrew 至少也有四五年,真的是 mac 上套件管理的好工具,現在連應用程式都可以幫你裝,大幅減少因為換機而需要建立環境的時間。 現在學到一個新招是使用 Brewfile 一次大量安裝自己需要的套件,概念就跟 npm install 一樣。 這是我自己的 Brewfile,只要安裝好 homebrew,再輸入brew bundle install就會依序安裝。 其中我也使用了 mas-cli,用來安裝 Mac App store上的程式。

mozilla

search.json.mozlz4

Firefox 從 FF45 開始,不再使用 searchplugins folder,改用 search.json.mozlz4 這個檔案。讀取這個檔案是有點麻煩的,原因是這個檔案並不是一般的 LZ4 壓縮檔,它是 Mozilla 客製化的版本。 Mozilla 客製化的方法就是在header加入幾個 Magic Number, 這個 Magic Number 就是 mozLz4a\0,去掉這些字元之後才是正常的 LZ4 格式。 估計這樣的設計,是不要讓其他程式可以讀取 Firefox的設定,而這個非標準格式,也有 ticket 在討論。 reference: LZ4.js

remote

Mount remote FS over SSH

工作的場合中常常會需要編輯的檔案,如果是老派的程式猿,會告訴你用 VIM,我以前也是這麼想,不過現在越來越喜歡用單純的編輯器編輯本地端的檔案。 本地端的檔案和遠端伺服器之間就一定需要有同步的機制。 SFTP 有一種做法是直接使用 FTP 軟體瀏覽遠端檔案結構,設定對應的編輯軟體,讓 FTP 軟體幫你傳送到遠端,例如 cyberduck的功能介紹裡所說的 Edit any file with your preferred editor Mount SSHFS 還有一種做法是將遠端伺服器 mount 到自己本地目錄下。付費軟體有 mountainduck,免費軟體有 macfusion2。 如果是 CMD 控可能會想要打打指令,安裝 sshfs是一定要的。Mac上則是用 osxfuse,安裝完後還要自己下 mount 指令。 sudo

developer

bash_profile and bashrc

bash_profile 和 bashrc 的差別 對很多程式人員來說,剛接觸到 Linux (or Mac),打開 commandline,第一個學的就是 bash(shell),也往往會 copy 別人的 bashrc來使用。 但不多人知道 bashrc and bash_profile 的差別。 GNU 上的 Bash manual 倒是說得很清楚,差別就在於 interactive shells。 interactive shells 最簡單的判別方式就是,你敲入一個指令,然後終端機回給你結果,這個時候你就是處在一個 interactive shells。這時候輸入 echo $-,

developer

Visual Studio Code 1.0 release

Visual Studio Code 1.0 release Visual Studio Code 是微軟近年來改變策略之後放出的免費編輯器,不同於傳統的 Visual Studio,Visual Studio Code 是基於 Electron上所寫成的應用程式,使用了 Javscript and Nodejs 等等的 Web 技術,最一開始,是為了方便寫 javascript and typescript 而生。 如果要簡單一點想,和 Atom 相差無幾,而且也有廣大的 extensions 可以安裝。

developer

rbenv on mac

gem install xxxyyy 大概是要在mac安裝些軟體時候會需要做的動作,安裝相依性套件,但是!! 升級到 10.10 mac很容易跑出這樣的錯誤給你看。 ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory. 意思是/Library/Ruby/Gems/2.0.0無權限寫入,當然啦!這是root所有的目錄,通常一般人也就用sudo gem install xxxyyy來解決,但這並不是一個很好的方法。

developer

Edit remote files on another UNIX-like server

做開發工作,處理的系統一旦龐大,往往會蓋自己的開發機器,而不是用本機(不論是Mac, linux or Windows)建立伺服器,原因往往跟套件管理,機器權限管理有關。 大公司都有自己 inhouse 的套件管理,登入機器的權限管理與使用者管理也自有一套系統。想要用原生的 Mac建成類似的系統並且接上各個後端,是吃力不討好。 有些硬派開發者會標榜使用 Vim 無敵,當然這也是一個選項,但是我自己會儘量嘗試各種 IDE或 editor。 想要在本機編輯完程式檔案之後,直接使用開發機器驗證,有幾種方式。 Aptana 免費版本的就可以直接設定SFTP存取,即時把檔案拉下來編輯的做法。 sublime with sftp plugin sublime 也是很方便的編輯器,但是只能編輯本地端檔案,折衷的方式安裝sftp plugin,設定local folder 和 remote

developer

Google Developer Day

又是一個慢消息。 Google Developer Day 08年的預計舉辦的地點,台灣已經確定在 6/14 台北舉行,至於規模,未知。 以現在公布的訊息來看,技術主題都圍繞在 google 主打的題目上,cloud computing, google gears, Maps, Androids, Gadgets, OpenSocial 都是很熱門的主題。講者也都很強的樣子 (廢話,只有強者才能進去吧)。 目前還不知道人數限制,而且以去年秋冬時後辦的 developer days 的報名情況來看,應該也是狂多人報名的,只是篩選機制就不知道了。報名的時候有選項可以填入自己開發過的專案,也許有經驗能和分享是一項優勢,尤其現在國內也不乏有人開發出不錯的網站。

SSH

SSH tunnels

同事 Kcc教了我從家中電腦遠端連進辦公室電腦的方法,不是用VPN,是用SSH進入院內一台主機,在forward到我使用的電腦,然後用windows內建的遠端桌面連線。 SSH Tunnel我之前沒接觸過,一直想了解三台機器的關係,似乎是本機的 Source port經由和 Host的 SSH連線連到 destination,以遠端桌面為例 destination的 port是3189,Source port是自訂,在開啟遠端桌面連線時候鍵入 127.0.0.1:source port就可。 如果我早一點知道這一招就好了,之前在環保局都是用 port 443連線,不過前提是要有一台 SSH Server可以連線。 由http暗藏通道看網路安全、FreeBSD GIF Tunnel講的是不是同一件事情呢? Msn: 1080 dynamic勾選,destination空白 IE: 8080