2017年7月21日 星期五

Swift 3 學習心得

最近開始學swift,發現有些google到的指令是1.0 或 2.0 的,
自己紀錄一下swift 3的心得給自己看...
  • 變數用 var 宣告 常數 用let宣告
var a=5
let b=4
  • int轉string的最簡單方法 \(int)
print("Number is \(int)")
  • Array 宣告
var array = [String]()
  • function 要宣告回傳,傳入參數要宣告型別,例如
func hello( name: String) -> String {
    return "Hello " + name + "!"
}
  • 傳入參數要改內容要宣告
func hello( name: String) -> String {
    var name = Tom
    return "Hello " + name + "!"
}
  • 使用function時,也要宣告變數名稱
hello(name: "Lee")
  • 字串切割
string.components(separatedBy: " ")
  • array 長度
array.count
  • 想到再加...

2017年7月19日 星期三

在MacOS Terminal 模式 停用 BTT(BetterTouchTool)

身為一個被Windows荼毒10幾年的資深玩家(?),轉換到MacOS之後最不習慣的幾件事是
某些熱鍵完全不同!
例如:最常用到的CTRL+C CTRL+V CTRL+X CTRL+A CTRL+Z
這幾個熱鍵 ctrl 要換成 command 也就是 windows 的 alt 按鍵的位置,但我又會開 mac 遠端 windows,所以常常搞混這幾個按鈕,最後決定花錢買 BTT 搞定,我用 BTT 把這幾個指令換成按 ctrl 也可以使用實在非常方便!

但是某天在用 terminal 的時候,發現我不能停止 ping,原來是因為中斷指令 CTRL+C 被我改成複製了,要停止 ping 必須要先把 BTT 停用或者是把整個 terminal 關掉,實在非常麻煩,後來乾脆直接設定 BTT 在 terminal 自動停用熱鍵切換功能

設定圖如下





2017年7月18日 星期二

家用AP 改刷 DD-WRT 自動登入 CHT Wi-Fi

硬體配備

  1. 有USB port 又可刷 DD-WRT 的 AP 一台
  2. 一支USB 隨身碟(不用太大 128MB以下即可)
  3. 我測試過的機器 TP-LINK TL-WDR3600, TP-LINK TL-WDR1043ND V2
  4. 有些機器官網上找不到韌體的,可以試試看 ftp://ftp.dd-wrt.com/betas/
修改步驟
  1. 先把AP 刷成 DD-WRT
  2. 把隨身碟格式成EXT4格式,然後插上AP
  3. Web管理介面,選 伺服器 > USB
  4. 在Mount this Partition to /opt 填上UUID(該頁下方找的到),讓系統自動幫忙掛載USB
  5. 另外在伺服器頁面把ssh管理打開,就可以用ssh連線,沒開的話也是可以用telnet連線
  6. ssh 或 telnet 連線的話,帳號都是root,密碼跟admin的一樣
  7. 儲存後,關閉AP電源再打開,不然你會卡關30分鐘(不會自動掛載到opt),哭哭
  8. 我之前改過一台安裝crul的時候一直錯誤,頭髮都白了好幾根,最後不知道怎麼安裝的就成功了,改第二台的時候為了不要再有白頭髮,就直接把第一台的curl copy過來用就好了XD,所以直接下載 curl 的執行檔 放入 /opt/usr/bin
  9. 到 github 下載我寫好的script https://github.com/jikker/dd-wrt-auto-login-CHT-Wi-Fi
  10. 把程式 放入 /opt/script/
  11. 修改 login-cht-wifi.sh 裡面的帳號密碼
  12. 新增資料夾 /opt/log/
  13. 新增 cht-wifi.log, cron.log 兩個檔案
  14. 在基本設定頁面 ip取得方式設 dhcp,最下面的ntp server填 time.google.com
  15. WiFi設定頁面 ath0 介面 設為 clinet 模式可以選 NG mixed 比較快
  16. SSID 填 CHT Wi-Fi(HiNet)
  17. SSID 填 CHT Wi-Fi(HiNet)
  18. SSID 填 CHT Wi-Fi(HiNet)
  19. 該有的空格跟大小寫都要有 一個字都不能填錯 !!!
  20. 該有的空格跟大小寫都要有 一個字都不能填錯 !!!
  21. 該有的空格跟大小寫都要有 一個字都不能填錯 !!!
  22. 很重要所以講三次! 
  23. 很重要所以講三次!
  24. 很重要所以講三次!
  25. 好一點的機種會有 virtual 介面可以新增,意思就是在增加一個wifi訊號,可以用無線連到這個基地台,不然只能走有線了
  26. 無線安全的部份 ath0 選關閉,有新增virtual介面的話就看你的需求了
  27. 到系統管理 > 指令 把 sh /opt/script/start.sh >> /opt/log/cron.log 填入框框內,按下 儲存啟動指令 表示機器一啟動會執行該指令
  28. 重新開機
  29. 如果一切設定正常,開機後機器就會自動連上 CHT Wi-Fi 了
RT-N18U設定方法
  1. 最近又用RT-N18U改了一台,有點小地方不一樣,記錄一下
  2. wifi模式不能選clinet要用repeater,不然無法新增另外一個wifi
  3. 使用copy進去的curl居然顯示permission denied,權限都開到777了也是一樣,後來使用原始檔重新安裝,發現1043ND用的curl只有73KB,RT-N18U的居然有135KB,換過去就ok了

設定圖片如下





































常見問題
  • 怎麼監看程式運作是否正常?
    • /opt/log/cron.log 會有log
  • 為什麼設定完全沒錯,還是無法連接?
    • 中華的機器有時候會怪怪的,看web介面,機器狀態,無線環境 ath0 的介面接收速率是否等於0,如果是的話就重開吧或者等5分鐘,因為接收速率等於0,curl會無法解析dns,就無法正常連線,程式碼有寫入5分鐘沒上線就自動重開的功能
  • 網路會穩定嗎?
    • 根據我的實際使用經驗,在距離約20-30公尺的狀態下沒有很穩,10-20公尺算穩定,但速度不會太快,約3~5Mbps而已,免錢的就湊合著用囉
    • 無線狀態介面可以觀察 ath0 的信號強度20-30公尺大概在60-70%左右
參考資料