Category Archives: Mac

Nginx + SSL + HTTP/2 + Rails 在 Mac 本機開發設定

有一陣子 Rails 在本機開發流行 Pow,但是因為缺少維護問題多多,我個人是不太愛用。平常我也沒有需要一直開新專案,所以偏好自己在 Mac 上安裝 Nginx 做 reverse-proxy 導流,而且還可以把 HTTP/2 打開加快靜態檔案下載速度。

以下示範如何將 https://ihower.localhost 導流進 localhost:3001

1. 編輯 /etc/hosts

sudo vi /etc/hosts 加上

127.0.0.1       ihower.localhost

2. 產生自簽的 SSL key

以下指令參考自 https://localhost 這篇文章

cd; mkdir .ssl

openssl req -newkey rsa:2048 -x509 -nodes -keyout .ssl/ihower.key -new -out .ssl/ihower.crt -subj /CN=ihower.localhost -reqexts SAN -extensions SAN -config <(cat /System/Library/OpenSSL/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:ihower.localhost')) -sha256 -days 3650

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain .ssl/ihower.crt

這樣會產生 ihower.localhost 的 SSL key 放在 ~/.ssl/ 下,並且把這個 key 加入信任名單

3. 安裝和設定 Nginx

brew install nginx

編輯 /usr/local/etc/nginx/nginx.conf,新增一段:

server {
  listen 80;
  server_name ihower.localhost;
  root /Users/ihower/projects/ihower/public; # 你的 Rails 項目的 public 目錄

  listen 443 ssl http2; 
  ssl_certificate /Users/ihower/.ssl/ihower.crt;
  ssl_certificate_key /Users/ihower/.ssl/ihower.key;

  location / {
    proxy_pass http://localhost:3001;
    proxy_set_header  Host $host;
  }
}

重啟 Nginx

sudo brew services stop nginx
sudo brew services start nginx

4. 啟動 Rails 在 Port 3001

rails s -p 3001

打開瀏覽器就前往 https://ihower.localhost 就有 SSL 又有 HTTP/2 啦。

MacBook Pro 2017 安裝軟體

用 Mac 十年啦,本來在用的 MBP Late 2012 本想再戰的,無奈硬體故障 Wi-Fi: No hardware installed + Bluetooth not available + 右邊整排 SD卡插槽、HDMI + USB 沒反應,有點慘啊,先買了一個外接 USB 網卡繼續用,但最杯具的是 App Store 無法登入更新,然後有些從 App Store 安裝的軟體就無法使用了,試了各種黑金塔招數(據說是要求 en0 必須是內建網卡)仍無法突破…. orz

於是只好認命入手新 MacBook Pro 2017 Touch Bar 了,拿到機器時還是預裝 Sierra,先升級 High Sierra。使用兩天的心得:

  • Touch Bar 有趣但沒用。本來有考慮買沒有 touch bar 的版本,但是看了比較 之後發現差別不只 Touch Bar 啊
  • 鍵盤是蠻不習慣,比 Apple 自己新出的藍芽外接鍵盤鍵程還短
  • 外殼的 Apple 沒燈了,讓我不確定蓋起來成功休眠了沒
  • 原本擔心的 USB-C 轉接器,買了 小米 USB-C 至 Mini DisplayPort
    多功能转接器
    小米 USB-C至HDMI多功能转接器 就解決了,聽說千萬不要買 Apple 自己出的 HDMI 轉接器超貴der
  • USB-C 真的會影響 Wi-fi 2.4GHz 啊,幾乎完全不能用會掉封包,一定要接有線網路…
  • 我算是淺度 Vim 使用者,這個 ESC 觸感很慘啊…… 如果深度用戶應該會想死…
  • 插頭沒有 MagSafe 接頭了…. 充電器的捲線設計也沒有了…. 可惜…

真的是很多小缺點,但是要升級 CPU、RAM、硬碟是硬需求啊,還是只能買新 MBP。

回到主題,這一篇趁重裝紀錄一下安裝了哪些 Apps:

Continue reading MacBook Pro 2017 安裝軟體

講個秘訣:技術簡報的好用工具

過去幾年經常作一些技術演講,尤其最近加入 ALPHACamp 擔任起全職的技術講師,上課和 Live demo/coding 變成家常便飯,自然得跟投影機和簡報軟體做好朋友。

要不要做 Live demo/coding 很大一部分決定了簡報的手法。如果不需要的話,那麼建議螢幕使用 Extended Mode,因為 Apple Keynote 會有 Presenter mode (設定在 Keynote -> Preferenses -> Slideshow -> Enable Presenter Display) 在你的筆電畫面上。在這個 Presenter 畫面有很多不錯的功能:

Continue reading 講個秘訣:技術簡報的好用工具

Mac 推薦軟體 (2012)

好像每年都整理一次的推薦清單,最近趁換了一台 MBA + Lion 就全部重灌了。跟去年的推薦軟體相比又拿掉了一些 App,有一些功能 Mac 10.8 內建了(可以跟 iPhone 同步的Notes, 訊息中心…etc)。

  • Yahoo! KeyKey: 必備的中文輸入法,最近還有看到小麥輸入法,但是我不知道差在哪裡 XD
  • Chrome: 慣用的預設瀏覽器
  • Firefox: 有許多好用的網頁設計 Plugins,例如 Firebug、YSlow、Web Developer 等。
  • Sparrow*: 取代內建的 Mail 軟體。可惜公司被 Google 併購了,可能不太會更新了 :(
  • SubEthaEdit * 協同編輯器,若同事也都用 Mac 超級推薦,可以多人同時(即時)編輯一份文件。我用來當做一般文字編輯非常順手。
  • Mou: Markdown 所見即所得編輯器,寫長篇文章用。
  • iWork* : 包含投影片 Keynote、試算表 Numbers、文件編輯 Pages 三套軟體,也可以拿來開 Microsoft Excel、Word 也大多都可以順利開出來。
  • LittlleSnapper*: 抓網頁或螢幕的 screenshot 並加以管理、加註。
  • Skitch: 螢幕抓圖工具,更棒的這可以直接網路分享,非常方便可以當做溝通工具。
  • VMware Fusion*: 可以在 Mac 上跑其他作業系統,最常見的被迫需求情境是 Windows + IE 瀏覽器。
  • LaunchBar* : 鍵盤快速啟動應用程式的好物。不想花錢的話可以試試 QuickSilver
  • VLC 放影片
  • Pixelmator*: 影像編輯軟體,功能類似 Photoshop,但不用這麼貴… XD
  • Adobe Reader
  • KKBOX*: 聽正版音樂,有出 Mac 版就甘心。
  • Moom : 透過快速鍵切割視窗畫面,可以很方便地安排左右視窗,適合大螢幕
  • Flux: 根據時間自動調整螢幕亮度
  • OmniDiskSweeper: 磁碟清理工具,可以很方便地找出到底哪個檔案跟目錄是最佔空間
  • OmniGraffle*: 畫 Wireframe 超棒,可以搭配 YUI Stencil KitWireframe PaletteUX TemplateMore
  • Snapz Pro X* screencast 錄影

網路相關

  • Nally: Mac 上超棒的 BBS 軟體
  • Panic Transmit*: Mac 上超棒的FTP軟體,好操作介面佳,還支援 Amazon S3。
  • Twitter: Twitter 的桌面軟體,我會特別需要桌面版的 Twitter 軟體是因為我有多個帳號需求。
  • Skype: 喂喂,工作用。搭配 without the whitespace 服用
  • Colloquy: 要上 IRC 的時候用
  • Dropbox
  • WiFi Explorer: 可以觀察無線網路的訊號強度跟使用頻段,你可以將你的基地台設到干擾較小的頻段唷

程式開發

  • iTerm2: 支援多 Tab 的 Terminal,我主要拿來做 SSH 登入
  • XCode: 開發 iOS 用
  • Eclipse: 開發 Android 用
  • Homebrew: 套件管理工具,詳見這篇文章,我拿來裝 git, wget, mysql, redis, postgresql, rabbitmq, imagemagick, apple-gcc42 等等
  • Sublime Text 2*: 拿來取代 Textmate 了,寫程式用的編輯器。最近也想試試 MacVIM 啦。
  • GitX: Git GUI (有個 Fork 版有 sidebar 不錯)
  • Sequel Pro: MySQL 的 GUI
  • Navicat* : 比較專業的 MySQL+PostgreSQL+SQLite GUI,覺得最方便的是支援 SSH 登入遠端操作資料庫(畢竟很少情況會開 3306 Port 可以遠端連線),另外處理編碼也很聰明,印象中很少看到出現亂碼。如果你有舊版本MySQL的編碼問題無法順利dump出來,可以試試。

Dashboard

(加 * 的是付費軟體)

Mac 推薦軟體 (2010~2011)

Update(2012/9): 有 2012 年版的 Mac 推薦軟體了
Update(2011/5): 新增 Sparrow、Twitter、iTerm2、Divvy、Flux。

好像每年都整理一次的推薦清單。最近趁換了顆 Intel SSD 硬碟,第一次重灌雪豹,跟去年的推薦軟體相比拿掉了不少 App (越來越清心寡欲了?),新進榜則有四位。(加 * 的是付費軟體)

  • Yahoo! KeyKey: 必備的中文輸入法
  • (2010新進榜) Chrome: 最近幾個月愛用的瀏覽器
  • SubEthaEdit * 協同編輯器,若同事也都用 Mac 超級推薦,可以多人同時(即時)編輯一份文件。當做一般文字編輯也非常順手。
  • iWork* : 包含投影片 Keynote、試算表 Numbers、文件編輯 Pages 三套軟體,也可以拿來開 Microsoft Excel、Word 也大多都可以順利開出來。
  • (2010新進榜) NOTATIONAL VELOCITY: 超級簡單的雲端記事本,最大的好處是可以跟 iPhone 的 Simplenote 同步
  • LittlleSnapper*: 抓網頁或螢幕的 screenshot 並加以管理、加註。
  • Skitch: 螢幕抓圖工具,更棒的這可以直接網路分享,非常方便可以當做溝通工具。
  • VMware Fusion*: 可以在 Mac 上跑其他作業系統,最常見的被迫需求情境是 Windows + IE 瀏覽器。
  • LaunchBar* : 鍵盤快速啟動應用程式的好物。不想花錢的話可以試試 QuickSilver
  • VLC 放影片
  • Pixelmator*: 影像編輯軟體,功能類似 Photoshop,但不用這麼貴… XD
  • Burn: 燒錄軟體
  • chicken of the VNC: VNC client
  • Adobe Reader
  • KKBOX*: 聽正版音樂,有出 Mac 版就甘心。
  • (2011新進榜)Sparrow*: Email 桌面軟體
  • (2011新進榜) DivvySizeUp* :
    透過快速鍵切割視窗畫面,可以很方便地安排左右視窗,適合大螢幕
  • (2011新進榜)Flux: 根據時間自動調整螢幕亮度

網路相關

  • (2010新進榜) Google Reader: 捨之前用的 NetNewsWire 主要的理由是我現在都用 iPhone 做第一次的 RSS 瀏覽(如果有興趣再加到 Instapaper),而大部分的 iPhone RSS reader 都支援跟 Google Reader 同步,例如我用 NewsRack
  • Nally: Mac 上最棒的 BBS 軟體
  • Panic Transmit*: Mac 上超棒的FTP軟體,好操作介面佳,還支援 Amazon S3。
  • Tweetie Twitter: Twitter 的桌面軟體,我會特別需要桌面版的 Twitter 軟體是因為我有多個帳號需求。
  • Adium: 整合msn/gtalk等的IM
  • Skype: 喂喂

系統管理

  • AppZapper*: 反安裝軟體,可以清比較乾淨
  • Growl 好玩的自動提示,可以吃其他應用軟體的訊息。
  • smcFanControl 手動控制風扇
  • OmniDiskSweeper: 磁碟清理工具,可以很方便地找出到底哪個檔案跟目錄是最佔空間
  • coconutBattery: 電池狀態查詢跟紀錄

程式開發

  • iTerm iTerm2: 支援多 Tab 的 Terminal,我主要拿來做 SSH 登入
  • Visor: 把 Mac 內建的 Terminal 改成透過熱鍵即可呼叫出來,我主要拿來下程式開發中的各種 script 指令
  • (2010新進榜) Homebrew: 套件管理工具,詳見這篇文章
  • Textmate * Rails Developer 都會有的一套編輯器,請進一步參考推薦安裝Plugins
  • GitX: Git GUI (有個 Fork 版有 sidebar 不錯)
  • Sequel Pro: MySQL 的 GUI
  • Navicat* : 比較專業的 MySQL GUI,覺得最方便的是支援 SSH 登入遠端操作資料庫(畢竟很少情況會開 3306 Port 可以遠端連線),另外處理編碼也很聰明,印象中很少看到出現亂碼。如果你有舊版本MySQL的編碼問題無法順利dump出來,可以試試。

網頁設計

Dashboard

Homebrew: 新一代 OSX 套件管理工具

身為一個 programmer,總是需要在 Mac 上裝一些開放源碼程式,除了自己下載、編譯( ./configure && make && make install) 之外,通常最方便的選項就是用套件管理工具來處理安裝、升級跟移除。

Homebrew 之前,最常見的就是 MacPortsFink 了,我自己本來是用 MacPorts,它有個討厭的特點就是它不依賴系統內已經安裝好的套件,完全自成一局 (當然,這也算是一種 isolation 優點,如果你不爽的時候只要砍掉 /opt 就移掉了)。所以常常為了裝個小套件,就還要安裝一堆它依賴的套件(例如:重複裝一套你系統裡已經有的 Perl,crazy!),十分耗費時間跟空間,而且到最後我也搞不清楚它裝了一大堆我不知道拿來幹什麼用的套件。

Homebrew 則盡量依賴系統內已經有的套件、它的套件 formula 是用簡單的 Ruby 寫的,所以你可以 fork Homebrew repository 自行修改維護、它自己用 Git 管理自己,升級十分方便。

安裝及使用方式

1. 要先安裝有 Xcode,你才能編譯東西。
2. 下載執行 gist.github.com/323731

安裝好之後,就有以下指令可以使用

brew search 搜尋套件
brew info 查詢套件資訊
brew list 已經裝了哪些套件
brew update 更新 homebrew 自己
brew install 安裝套件

例如,我馬上就安裝了 wgetgit 這兩個是我最基本要用的工具,一下就搞定了,cool!

brew install wget
brew install git

參考資料

homebrew — Mac OS X 下新的软件包管理工具
Homebrew: OS X’s Missing Package Manager