2017年8月21日 星期一

[iOS] 取得附近 Wi-Fi SSID 清單

在 stackoverflow 上大部分都是很久以前發問的,大家的回應都是
  1. 只能拿到當前連線 Wi-Fi 資訊
  2. 使用 private API

最後終於找到在 iOS 9 可以使用 NEHotspotHelper,但有一些限制:
  1. iOS 9+ 支援
  2. 需要向 Apple 申請 com.apple.developer.networking.HotspotHelper entitlement 才可使用
  3. 只能被動由系統通知 Wi-Fi 清單,無法主動取得

大概寫一下流程,希望有空的時候可以補齊
前置步驟比較瑣碎
  1. 首先到 https://developer.apple.com/contact/network-extension 填寫申請書
  2. 在開發者網頁中,將 App ID 啟用 Network Extensions
  3. 更新 Provisioning Profiles,並且選擇使用 Network Extension iOS Entilements
  4. XCode 更新 Provisioning Profiles
  5. Info.plist 檔案中在 UIBackgroundModes 加入 network-authentication
  6. entitlements 檔案中加入 com.apple.developer.networking.HotspotHelper 為 YES
程式碼:

NSMutableDictionary *options = [[NSMutableDictionary alloc] init];
[options setObject:@"xxx" forKey:kNEHotspotHelperOptionDisplayName];
dispatch_queue_t queue = dispatch_queue_create("xxx", 0);

BOOL ret = [NEHotspotHelper registerWithOptions:options queue:queue handler:^(NEHotspotHelperCommand *cmd) {
    NEHotspotNetwork *network;
    if (cmd.commandType == kNEHotspotHelperCommandTypeFilterScanList) {
        for (network in cmd.networkList) {
            NSString *wifiInfo = [[NSString alloc] initWithFormat:@"SSID: [%@] MAC: [%@] strength: [%f]", network.SSID, network.BSSID, network.signalStrength];
            NSLog(@"%@", wifiInfo);
        }
    }
}];
NSLog(@"return value %d", ret);

確認 ret 為 True 表示有註冊成功,可到設定 -> Wi-Fi,觸發 Wi-Fi 清單更新後就會印 Log 到 console 上了。

參考資料


2017年3月25日 星期六

2017 信用卡整理

整理一下平常有在使用的信用卡以及相關優惠

元大鑽金一卡通聯名卡 JCB precious 晶緻卡
用途
每日搭台北捷運通勤
日本旅遊使用,JCB 優惠
全聯採購
年費
電子帳單申請期間免年費
優惠
1.2%現金回饋 (活動至 2017/06/30,回饋紅利有效期限 6 個月)
捷運 5% 現金回饋

台新@GoGo icash聯名卡 VISA signature 御璽卡
用途
網路購物
手機 app 購買高鐵票
繳水、電、瓦斯費(* 支付平台繳費回饋 https://www.ptt.cc/bbs/creditcard/M.1461169732.A.D8A.html)
年費
申辦電子帳單免年費
優惠
一般消費 1.5% 現金回饋,數位通路消費 3.5% 現金回饋
(* 綁定 Richart  數位活儲帳戶扣款)

國泰世華 COSTCO 聯名卡 VISA signature 御璽卡
用途
COSTCO 購物
年費
具 COSTCO 會員資格免年費
優惠
台灣 COSTCO 賣場內刷卡消費滿 NT$100 累積 1 元 COSTCO 多利金
(* 每年 8/1~9/30 至全台 COSTCO 實體賣場直接折抵刷卡金)

富邦數位生活卡
用途
自動扣繳中華電信帳單
年費
申請電子帳單免年費
優惠
2% 現金回饋

2014年4月8日 星期二

OpenSSL Heart Bleed Bug Fixed

OpenSSL 近日 fix 了一個很嚴重的 bug (HeartBleed),所以如果可以的話趕快更新 OpenSSL package吧!
bug 的相關訊息:http://heartbleed.com
真的是會讓人痛到心裡流血的 bug

如果是 debian 的話可以到以下查看版本資訊:
http://www.debian.org/security/2014/dsa-2896

升級 openssl:
sudo apt-get upgrade openssl


接下來要重新產生 server ssh key,其中 rsa 我採用 4096 bit:
sudo ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -q -N "" -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -q -N "" -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

如果有架 apache 的話也要重新產生 apache 的 key

4/10 Update:
http://devco.re/blog/2014/04/09/openssl-heartbleed-CVE-2014-0160/
這篇網誌提供了測試 HeartBleed 漏洞的程式,如果更新完了建議檢測看看!


參考資料:
https://www.ibm.com/developerworks/community/blogs/brian/entry/ssh_host_keys_know_when_to_keep_em_and_when_to_change_them4?lang=en
http://serverfault.com/questions/471327/how-to-change-a-ssh-host-key
https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04

2014年3月11日 星期二

-bash: warning: setlocale: LC_ALL: cannot change locale (zh_TW.UTF-8)

使用 locale -a 檢查後發現沒有 zh_TW.UTF-8 的語言包,參考
這兩篇的做法,解決方法滿快速的:
  • “sudo locale-gen zh_TW.UTF-8” 安裝語言包
  • “dpkg-reconfigure locales” 重新設定 locales
  • 接著會進入一個畫面,選擇本來就有的英文,以及跳到最下面選擇”zh_TW.UTF-8”
  • 按下 enter 後,選擇預設語言爲英文就可以了

重新輸入 locale -a 應該就可以看到 zh_TW.UTF-8了


2014年3月4日 星期二

臺灣大學碩士論文 LaTeX template

感謝 chia chia 提供的 template
我自己稍加修改後的版本:

在 CSIEtitlepage_utf8.tex 內修改封面資訊,如:姓名及指導教授等
在 thesis.tex 內已經引入各論文其他部分,可視情況修改。

基本上我是在 sublime text 上直接編譯,安裝完 sublime text 跟 tex 之後,在 sublime text 內安裝套件:LaTeXTools 接著按下 cmd + b 即可編譯,接著再去看 thesis.pdf 就可以看到精美的論文了!

2014年2月25日 星期二

Sublime Text Setup

剛好要把 Sublime Text2 升級成 Sublime Text3,順手把設定記錄下來。

Download:
http://www.sublimetext.com

Preferences:
"font_size": 15.0,


Packages:
Package Control
https://sublime.wbond.net/installation

Git
SFTP

HexViewer
Indent XML
LaTeXtools

AndroidImport
SublimeLinter-javac

Synology DS412+ 網路設定

網路設定感覺對於 NAS 來說滿重要的,如果無法連上 NAS 的話什麼事情都做不了,也很難去更改新的網路設定。

登入 DS Manager之後,開啓 control panel -> System -> Network:

在 General 頁面上可以設定 gateway 以及 dns,Network Interface 頁面可以設定 ip 以及 subnet mask,我在 Lan 1 上接的網路線是使用固定 ip,而在 Lan 2 上接的是由另外一個 AP 所派的 DHCP,這樣當固定 ip 出現問題的時候我至少還可以透過 Lan 2 連上 DS。