無線中繼 AC1200 超世代迷你路由器 A3


我家是樓中樓格局,一樓客廳的電腦最近一直斷網,客廳的電腦是使用 USB 延長線接 USB 無線網卡,連接二樓的無線基地台。起先以為是 USB 延長線老化,更換後沒有實際效果,判斷可能是 USB 無線網卡老化,就到 momo 買了兩個東西:

無線中繼 AC1200 超世代迷你路由器 A3
momo 網址官方網址

無線網卡 A650UA
momo 網址官方網址

到貨後,首先拆了 A3 來玩,將 A3 透過網路線接到電腦,設定無線中繼,設定完後,把原先無線網卡停用,非常不錯,A3 除了無線中繼外,還可以透過 LAN1/LAN2 接電腦上網,可以把 A3 當成無線網卡。因為家裡本來就有 5GHz 的無線頻段,透過 5GHz 的無線中繼,使用電腦跑測速網頁,可以跑到 89Mb/39.9Mb ,家裡是用光世代 100Mb/40Mb ,跑到這樣的速率算是不錯了。不過使用 HiNet 的測速軟體 HiNet.Dr.Speed.1.1.0.exe 倒是無法正常跑測速,上傳測測的沒問題,下傳測不出來。開工作管理員看,下傳速度亂跳,瞬間破 100 Mb … 測了幾次測不出來,放棄不管了,反正 speednet 可以正常測。

有 LAN 網孔的無線中繼

由於二樓的基地台不是 TotoLink 的,無線中繼無法正確設定兩台彼此的 WDS ,所以放棄 WDS 設定,把 A3 另外設定兩個隱藏的不同名稱的無線網路 (2.4GHz/5GHz) ,用手機連線後跑手機 App Speed Net ,手機稍微慢一點,大概是 79Mb/40Mb ,分別用 ZenFone 3 跟 iPhone X 測試速度良好,這樣大量改善 1F 的無線網路的效能,無線中繼的效果發揮出來了。

不過 A3 不能同時把 2.4GHz / 5GHz 都設定無線中繼到同一台基地台,可能是兩邊無線都取得相同 Class C 網段內的 IP ,形成路徑衝突,無線網路反而全死,只能用網孔進去改設定,5 GHz 有 433 Mb 的速度,我就只保留 5 GHz 的無線中繼。

買了 USB 無線網卡後,當然沒打算用 A3 接電腦。拆下來拿到電視那,把電視盒 Miier B2 跟東元電視的網路線接到這台,改善電視看 Youtube 的效能,大概是因為接網路線,比先前跑無線網路快很多,跑測速軟體跟電腦速率一樣,跑到 89Mb/40Mb ,再測試電視看 Youtube 都很順,A3 算是設定完畢。

先到 TotoLink 下載好 A650UA 無線網卡驅動程式後,把電腦換上 A650UA 後,發現 A650UA 是我討厭的模式,A650UA 在沒裝驅動程式前,是 USB 隨身碟,內含 driver ,不過買都買了,忍著不爽的感覺安裝驅動程式上去。

這支有點麻煩,重新開機後不會自動連上基地台,連續無法識別會卡在系統內,導致無法關機或移除硬體,應該是被鎖定了,要移除驅動程式重灌。

後來發現電腦內會掛上兩個服務,一個是 TotoLink 的,一個是 RealTek 的。由於每次重新開機,都無法自動識別基地台,先試過移除 TotoLink 驅動程式,改裝 RealTek 原廠驅動程式,但因為 A650UA 有隨身碟模式,RealTek 驅動程式無法跳過隨身碟直接變成網卡,只好先裝回原先無線網卡後,再上網買新的卡,這次想選小牌的,可以確保一定用晶片商的驅動程式。

露天找了一張 AC600 無線網卡。

這張一開始也會發生重新開機無法識別基地台,後來發現,是安裝 TotoLink 驅動程式時,兩個服務其中一個 RealTek 的有問題,而且移除驅動程式時被保留下來,服務名稱是 RunSwUSB ,執行檔放在 C:\Windows\runSW.exe ,可以 google 一下,也是有人在這撞牆。

這支服務找不到地方移除,只能手動停用,停用後比較正常,但偶爾還是會怪怪的。

先前發現電腦被 A650UA 強制鎖死時,只能按電腦 Reset 重新開機,重新開機時發現需要重新設定 BIOS ,也看到 CPU 溫度衝到 74 度,在這麼冷的冬天 CPU 溫度這麼高,回想起大概兩年沒清潔電腦跟換水銀電池了,拆機後發現有個 8 cm 的系統散熱風扇掛了,轉不動,衝去順發3C 買了新的風扇裝上去,舊風扇在拆的時候,聽到卡一聲,忽然就能轉得很順利,算了新風扇都買了,舊風扇就不要了,舊的水銀電池用電表量,還有 3.2Vdc ,算了,用兩年也換掉好了。

重新開機後,根本抓不到新網卡,到裝置管理員開啟顯示隱藏裝置,把 TotoLink 驅動程式移除、RealTek AC 的驅動程式都移除,重新插入網卡,就能正常偵測,這次學乖了,不把整個 RealTek 完整驅動程式含工具裝上去,只讓網卡掃描驅動程式安裝,這次裝完後,電腦就正常了,不過還得觀察個幾天。

A3 我覺得很讚很好用,一樓的無線網路跟電視都順了起來,就是電腦查問題很麻煩。A650UA 很難用,不推薦大家使用,還不如用小牌無線網卡。

廣告
Categories: 技術分享 | 標籤: | 發表留言

[Android] Android SDK Tools 25.2.5 無法移除 – Xamarin for VS2017


我 2017 開發的 Android 要小改重新上線,這中間經過 VS2017 多次升級,甚至因為 Win10 1803 導致我重新安裝 VS2017 。

App 可以正常編譯成 .apk ,並經過封存、散發的步驟製成有簽署的 .apk ,但是不論如何,拿到虛擬機或實機跑 App 安裝完成後,都會顯示:

App not installed

一直解決不了,上網搜尋有提到 Android SDK 要整個更新到新版。

但 Android SDK Tools 這部分就是更新不上去,最後是跑完整 uninstall 後,到 Android 官方網站下載新版的 Android SDK Tools

下載完後,解壓縮至:

C:\Program Files (x86)\Android\android-sdk\tools

再從 VS2017 內呼叫 Android SDK 管理員,即可發現 Android SDK Tools 已經升級到最新版,我下載時的版本是 26.1.1 。

不過手動安裝會清除已安裝清單內容,所以所有 SDK 跟 Image 等都需要重新下載安裝,目前我的電腦正在跑,希望這部分搞定後,我的 Android 程式就可以跑了~

結果還是一樣阿~~~

App not installed
Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[Office] 註冊零售版的 Office 2019


在先前 Office 2016 介紹的註冊畫面:[Office] 2016 家用及中小企業版

在 Office 2019 略有變動。一般來說,你拿到一張卡片的,那個是兌換金鑰,而不是產品金鑰。兌換金鑰只能使用一次。

首先,登入:office.com/setup

大部分情況會要求重新登入,持續輸入的話,或剛登入過,可能會自動登入,這時務必要確認再確認,步驟1 的帳號一定是要打算掛入 Office 資產的帳號,例如個人帳號,這邊沒處理好,接下來兌換的 Office 就變別人的了。

注意 Office 兌換後會掛入 步驟1 的帳號

輸入完兌換金鑰後,會出現被綁訂的地區,語言則可選擇。這邊注意一下,軟體有出口管制,所以若是台灣買的軟體,請務必在台灣兌換金鑰後安裝再出國,出國後只能靠台灣公司或家裡提供 VPN Server 跳轉才能啟用。

選擇完地區、語言後按下一步

會自動辨識輸入序號是哪套軟體,然後執行步驟三取得你的 Office 才會真的把軟體掛入你的帳號。

其中,Office / Visio / Project 的 2013/2016/2019 及 Mac 版本的 2016/2019 都可以掛入這個帳號,按下下一步後會自動導向:

https://account.microsoft.com/services/

點選畫面上的檢視產品金鑰就是要輸入軟體的真正金鑰,不要輸入兌換金鑰,那無法啟動 Office。

選擇安裝後,可點選 其他選項 ,就可以選擇 Office x86/x64 或下載離線檔案,離線檔案是 iso 檔,Win8/8.1/10 可掛載成為 DVD 光碟後安裝,舊版本的 Windows 可考慮燒成光碟安裝。(參考文末圖說)

掛入微軟帳號的資產

如果輸入兌換金鑰後,出現下面畫面,就表示這個金鑰已經被兌換過,不能再用,如果有疑問,只能問微軟客服。

金鑰已被兌換

若輸入的金鑰無法辨識,會出現下面畫面。

無法辨識金鑰

如果你輸入成產品金鑰,而非兌換金鑰,可直接下載產品,但不會重新掛入帳號。

點選立即下載安裝,序號內含於安裝檔,只能輸入相同序號

其中:

商務板金鑰兌換:office.com/setupkey

舊版本 Office 金鑰下載 Office :https://www.microsoft.com/zh-tw/software-download/office

贈品兌換:microsoft.com/redeem

從上面提到服務與訂閱網頁點選安裝時,預設是下載簡體中文版,所以一定要改:

點選其他選項變更下載內容

新版本 Office 預設下載 x64 ,若無使用其他 OLE/COM/Automation 軟體,例如 AutoCAD/Acrobat 等,建議直接使用 x64 版本,習慣新版本差異,減少未來升級再來熟悉。但若需使用其他 OLE/COM/Automation 軟體時,則必須該軟體也為 x64 才能相容,例如使用 Acrobat x64 就可以插入 PDF 到 PowerPoint,反之可能要配合降版本到 x86 ,例如若只有 x86 版本的 MathType ,則只能在 x86 版本去搭配使用。

選擇語系與位元版本

若選擇下載離線檔案,就可以把 x86/x64 光碟下載到電腦,我個人偏好下載離線安裝版本。

下載兩種位元版本

開始下載光碟檔案

光碟格式為 img

光碟預設安裝是 x86 版本,若要安裝 x64 版本,記得手動到子目錄安裝。

Categories: Office, 技術分享 | 標籤: | 發表留言

[遊記] 密克羅尼西亞聯邦


12 月初接獲緊急任務,偕同其他同仁前往密克羅尼西亞場勘,好久沒寫遊記了,就來寫篇遊記吧。

接獲任務後不到兩天就要飛,當天沒帶護照到公司,好在我先前的掃瞄有放在手機裡,在已排定行程同事的引導下,趕快透過 hotels.com 網站預定了兩間旅館,並因為馬上要出發了,不能現場付款,必須線上付款。

台灣到密克羅尼西亞的班機沒有直飛,可以選擇桃園飛關島再飛密克羅尼西亞,或是飛香港再轉關島跳密克羅尼西亞,我是跟班,所以直接依照先前同事飛關島再飛密克羅尼西亞。

飛機是台灣時間 08:00 桃園飛關島的華航 CI-26 ,所以前天晚上先搭高鐵到桃園夜宿

桃禧航空城酒店-新館

關島跟帶領我們前往的委託方住在同一間,據說是台灣人經營的

杜夢灣首都飯店

訂完旅館後,因為關島屬於美國,馬上繼續辦理電子旅行簽證 ESTA (Electronic System for Travel Authorization) ,把護照相關資料填完後,線上刷 USD$ 14 ,就等待 eMail 回復結果了,回復的還滿快的,大概不到 2 小時就回復通過。記得一定要點選 eMail 連結,把通過的內容印出來,可以的話,建議英文最好印一份。另外關島預定住宿的旅館也印一份英文的訂單出來。我一開始沒想到,只印了中文版給我自己看,最好印英文版給航空公司及海關查驗官看。


ESTA 中文版

我的行李箱在去澎湖時破損,就趕快去家樂福買新的,另外買個大的 NB 背袋比較方便,買 NB 背袋要考慮出關時, NB 是要拿出來獨立通過 X 光掃描機的,所以 NB 一定要很方便拿出來,不要選很複雜的,買行李箱時,碰上買一送一,就變成這樣了。行李箱最好貼貼紙好辨認,我新的行李箱無其他標記,在等行李時,都看不出來是不是我的。

家樂福買行李箱

出發時,台南高鐵站各自刷卡買票到桃園站,我有先用手機上網預購同事指定的班次,到了桃園站計程車出口和另一位同事等半天,居然有一位同事坐過站了,由於到桃園都 22:30 了,我們就先去旅館,坐過站的就自己慢慢來吧。確認旅館機場接駁巴士時間 05:00 的車後,就趕快洗洗睡了。

當時還不知道是這次出差最好的旅館

08:00 起飛的班機,07:53 才停靠空橋下機,好在我們關島時間還算充裕,影響不大,大概拖到 08:30 登機,09:10 起飛。

華航 CI-26

在機上會發給你入境要填的單子。去關島事先沒辦 ESTA 也沒關係,可以填落地簽,一開始沒搞懂,在機上華航空姐給我我就填了。入境報關資料有正反兩面,華航提供中文版,不過要填英文,我一開始傻傻的填中文。可以看到裡面有要求填旅館資料,所以建議 ESTA/旅館/離開的電子機票都印出來跟護照放一起,盡量不要只用手機存放。

落地簽 有ESTA不用填
填的時候不知道有兩面

落地後,有 ESTA 的有快速通道,ESTA 電子認證部分機器上可選擇繁體中文,依指示辦理即可,入境官會問你來幹嘛,住哪裡,甚麼時候走,所以有印出來相關資料的話,直接給他看即可。我口語說的很差,基本上沒人聽懂,所以我都拿出來給入境官看。

關島時區是 +1000 ,比台灣快兩小時,到旅館時已經是當地時間 17:40,為了方便,直接跟委託方住同一間旅館,旅館有點破舊,不過海景不錯。

旅館的被子很有台灣味
陽台看出去就是海邊

同事說這邊的沙灘很有名,行李一放,花了15分鐘衝到海灘,打算看落日夕陽,沒想到太陽已經下去了~ 雖然當地還很熱,但是比基尼沒幾個,還是有啦,大概是 5% 穿泳衣吧~

杜夢海灘旁的 Sails BBQ 網路上很有名,同事就帶我去吃吃看~

Sails BBQ

關島全島免稅,到處都是豪奢大牌,日本人、韓國人挺多的,相對台灣與中國人比較少。壓馬路逛好久,我居然走到鐵腿,只好坐在那邊休息了~

關島飛密克羅尼西亞也是 08:00 飛,也只能摸黑起床坐旅館接駁巴士去機場。聯合航空的 UA-133 就像巴士一樣,同一班機從 關島 > 楚克 > 波納佩 > 科斯雷州 > 馬久羅 > 檀香山,頭尾是美國的領土,楚克、波納佩、科斯雷州則是密克羅尼西亞,馬久羅則是馬紹爾群島,每個機場落地停 30 ~ 60 分鐘,因為總飛行時數很長,所以到波納佩要全部下機換機長繼續飛行,就跟巴士一樣,一站一站停靠下車上車,我則是去波納佩,密克羅尼西亞的時區是 +1100 ,首都在波納佩,密克羅尼西亞二戰以前是日本統治,但因為鞭長莫及,所以採取放養,美國跳島戰役時,被美軍轟炸後佔領,長時間接受美國統治,1986年後自治,所以經濟上是美式經濟,全島使用美金交易,美式交通習慣,但因為並沒有被日本虐待過,所以島上很多日本人在經商開店。台灣則有很多遠洋漁業在附近補給,之前做氣象局船舶氣象系統,FB 的朋友有些是貨櫃輪的,也去過那邊補給。波納佩是環礁地形,整個島外面有一圈環礁,所以浪多數在環礁就被消耗掉了,從環礁到島之間就是一個很好的海洋活動區,最有名的是浮潛,至於衝浪… 浪都沒了當然衝不起來~

聯合航空 UA-133

一樣,機上會發入境報關資料填。

正面,FSM 原文參閱最上方密克羅尼西亞
背面

到了後先在密克羅尼西亞出境大廳找來接機的旅館人員。在關島、密克羅尼西亞都會讓我忘記我是胖子。

出境大廳,接機人 Kenny 在左邊被擋住了

密克羅尼西亞接收中古車,所以左駕右駕都有,租車一天 USD$ 65左右,憑台灣駕照就可以借車,但最好還是先申請國際駕照,因為租車公司未必看得懂台灣駕照。

右駕的日本車

密克羅尼西亞南方公園飯店 – 澎貝島

是同事在 hotels.com 幫我訂的,訂房時只剩沒熱水的,所以四天只要 USD$ 144,但到旅館時,有其他空房,所以開一般房間給我,還是收一樣的錢,我的旅館費是同事的 40% 而已。比在關島住的好。

南方公園旅館

有前陽台後陽台,後陽台往右看是出海口、港口跟機場。

後陽台眺望

關島跟密克羅尼西亞都是走美規,所以電器基本上是 120 Vac 三向插座,跟台灣一樣,只是比較奇怪的是電力開關都很傳統,以前我小時候開關就長這樣,台灣現在的開關應該算是走日規吧。

老舊的電燈開關
跟台灣一樣的插座

東西有點小貴,這碗雞湯泡麵要 USD$ 5.75,雪碧要 USD$ 2.0。

雞湯泡麵 USD$ 5.75
雪碧 USD$ 2.0

之後利用空檔做市場調查。密克羅尼西亞週日大部分不上班,包含超市或餐廳,所以東西盡量在周六前買好,波納佩因為是首都所在,所以周日還有少數商店有開。

生活品來說,吐司一條 USD$ 2.0 ,餐包一袋 USD$ 1.0,白米估計 2 kg 是 USD$ 3.75,蚊香 10 片 USD$ 1.0,這邊很多蟲阿~ 日本袋裝泡麵 USD$ 0.75,碗裝泡麵 USD$ 1.25,礦泉水 500cc x15 USD$ 6.75。

至於場勘部分屬於業務機密,就跳過不提了。

密克羅尼西亞多雨,我們在的每一天都下雨,大概是每小時下 10 分鐘急雨,當然不見得每小時下,平均來說大概是這樣,所以到處的地都是濕的,戶外很少有完全乾的,從美國下載 2017 降雨資料,波納佩幾乎每天都下雨,依據波納佩地理資料介紹,全年降雨量是 4,000 ~ 7,000 mm ,大概是台灣的 2 ~ 3.5 倍,台灣大概是日本的兩倍,高的離譜。

很多人推薦 Joy Hotel 的海鮮大餐,不過我當時不知道,知道我也不能吃,我對甲殼素過敏,蝦貝類都不能碰。

我吃 Hamburger USD$ 6.50
可樂缺貨,中午喝過雪碧了,晚上就喝綠茶 USD$ 2.50

這裡的 4G 卡據說2018/10才開通,機場沒得辦,所以得臨櫃辦理 (Federated States of Micronesia Telecommunications Corporation )。電話卡 SIM 卡 USD$ 10,充值 USD$ 10,選 USD$ 5 = 5 天 5 GB資料傳輸方案,剩下的 USD$ 5 可以拿來講電話,當然,有網路直接語音通訊即可,所以沒用到電話功能,180 天沒用會停卡,直到再使用為止。我們三人一起充值,另外有折 10% ,所以每人實際花費 USD$ 19 。換完 SIM 卡後,需要手動設定通訊網路為 fsmtc ,可讓其搜尋再選用,但無法自動登入通訊網路。

這邊基本上出國線路超慢, Youtube 幾乎連不上,Google 地圖會自動轉成 google.fm 的網址,所以 google 時間軸自動被停用,開時間軸檢視,我都不知道我跑哪了,只能將照片座標抽出來對照地圖。難得找到一家稍微便宜的快餐店:

Angie’s Fast Food

漢堡 USD$ 5.5,綠茶 USD$ 1.5

露天不到 10 元一支的剝線鉗,居然要 USD$ 6.99 …

跟露天差價 20 倍

我們住的南方公園旅館對面是 Cliff Hotel & Restaurant ,據說是總統開的,還算物美價廉,又接近旅館,所以大多數都在這家店用餐。

菜單 p1
菜單 p2
菜單 p3
啤酒 USD$ 4.0
招牌餐 沒在菜單上 估計 USD$ 26.0
熟悉的味道 龜甲萬醬油
熱綠茶 USD$ 2.5
蜜汁雞丁飯(Honey Sesame Chicken) USD$ 14.0

沒錯,衛生筷來自台灣…

另外其他時間吃同一家餐廳的菜色供參考。

冰綠茶 USD$ 2.5
加起司的漢堡 USD$ 6.75
酸甜雞肉飯 (Sweet-n-Sour) USD$ 10.25
總匯三明治 USD$ 10.5
魚堡 (Fish Burger) 外帶到機場 USD$ 6.25

委託人帶我們到海景餐廳 (Ocean View Plaza Hotel) 吃飯,左邊山頭剛好是南方公園旅館對面,這邊看港口跟機場比較清楚。

海景餐廳眺望港口
菜單 p1
菜單 p2
菜單 p3
菜單 p4
菜單 p5
菜單 p6
菜單 p7
烤金槍魚 (Grilled Tuna in Lemon butter sauce) USD$ 10.75 可樂 USD$ 2.00

密克羅尼西亞這邊接受很多國家的經濟援助,所以到處都可以看到哪個建設是哪國捐助的,總統府辦公室整區則是由韓國捐贈。

只有總統府辦公室有裝太陽能

另外也去看了 Ken 的年租型的房子 (Snow Land Guest House),月租 USD$ 300 ,看起來還不錯。Ken 主要經營浮潛,有上過電視。

臥室與衛浴
客廳與電視
客廳與廚房

離開密克羅尼西亞要繳出境稅 USD$ 20,我在機場買了張耶誕卡寄給老婆,到 12/30 還沒收到,只好跟老婆說,不知道此生會不會收到了。

我是臨時追加要去的,回程沒機位,所以只能坐商務艙。

商務艙的飛機餐

一樣,機上有填關島入境報關資料,不過因為回程是坐美國聯合航空,所以只有英文版。

正面
背面

回到關島又是透過 hotels.com 訂房,這次選擇 關島海景飯店 – 塔穆寧 ,房間還不錯,可是我不懂,為啥關島、密克羅尼西亞的旅館都不提供牙刷、牙膏、拖鞋、漱口杯… 從機場坐計程車到旅館約 USD$ 28 ,加計四件行李 USD$ 4 ,菲律賓的司機收我們 USD$ 30。

回來的旅館比較好,不過聽說還有更好更便宜的

晚餐同事帶我去密克羅尼西亞商城吃… ??? 我不是回到關島了嗎?

密克羅尼西亞商城

我們在一家韓國餐廳 (Korea Place) 吃晚餐。

菜單 封面
菜單 p1
菜單 p2
菜單 p3
9 號餐石鍋拌飯 (Beef) USD$ 14 結果熱綠茶太晚來又辣的噴火沒喝 USD$ 2.5

在密克羅尼西亞商城買了 GODIVA 巧克力回去孝敬老婆女兒,算是對出差有交代。回到旅館就趴了。

跟從密克羅尼西亞飛回來一樣,回程的飛機都是下午三點。同事利用早上空檔去沙灘走走,我這老腿就在旅館休息。

海景餐廳望出去的關島杜夢灣

12:00 退房後,在旅館附設的餐廳 (Chamoru Tei Restaurant) 吃午餐,再搭 13:00 旅館的接駁巴士去機場。我的豬肋排到 12:38 才上,時間上來不及,就不用刀叉吃,直接空手就上,吃了再洗手。

菜單
烤豬肋排(CT Grilled Pork Ribs BBQ) USD$ 17.5 小費直接收 USD$ 2.0

委託方說,雖然密克羅尼西亞還在發展中,但是一天要用 USD$ 40 來估算生活費,所以我特別把菜單都貼出來,價位就是這麼高阿。

回到台灣,第一次搭機場捷運,剛好坐到直達車,直接去桃園高鐵站。

到了桃園高鐵站居然兩個鐘頭內對號座與商務艙都沒位了,只好買自由座,打算站到台中就有位置,我們擠在 11/12 車廂間的車門區,大概太悶熱了,隔兩個人旁有位小哥哥在新竹左右忽然昏倒趴下去,我前面兩個人把他扶起來拍醒,要他先坐在行李箱上,再請12車廂的人協助按下緊急鈴通報車長,車掌跟隨車服務員帶著急救包擠到我們這大概都到苗栗了,詢問完原因是心臟壓迫,量完血壓沒事,到了台中站護理師上車來確認健康狀況,乘客不想下車,剛好有有位空出來了,就先讓這位小哥哥坐,我們則是到了彰化後有位置坐。

終於回到家了。

Categories: 工作點滴, 旅行 | 標籤: | 發表留言

[Win10] 希望硬體商出空機阿~~~


以前 Windows 每 3 ~ 4 年出一套新版 OS ,接近換代的那半年就會提供免費升級服務,所以用隨機版是很 OK 的~

Win10 起不換代了,只有無窮無盡的更新。所以最適合 Win10 的採購方案是買空機 + Win10 彩盒版,這樣換電腦就可以直接移機,反而比以前搭隨機版划算,所以在新的 Win10 架構下,理想的採購方案是空機 + 彩盒版,不再是搭隨機版了。

Categories: 工作點滴 | 1 則迴響

[Spam] 比特幣詐騙郵件不斷,eMail 密碼切記不要與外面註冊密碼一致


事情大概是 10 月初開始發生。

最早是一位先前信箱被入侵過的同事身上出現。

收到一封信內容大概是說:


電腦已經被入侵,掌握所有資料,在 48 小時內不付 8xx 元的話,將會加密電腦內所有資料,試圖改密碼也無用,電腦內有木馬,這封信就是透過入侵電腦而發送的。

信件內容說是透過入侵發送,檢查 Mail Server 該封信件的紀錄,是正常透過 SMTP 協定,從外面信箱寄進來,另外清查該位使用者改過密碼後,從公司外的連線至 Mail Server 的紀錄,都是該位同事手機連線,並無其他不正常紀錄。

之後清查該位同事電腦,整體看起來沒有獨立木馬存在的跡象,考慮該位同事先前信箱有過被他人入侵後才改密碼的狀況在,假定該位同事資安觀念不夠,還是決定將該位同事資料備份後,重新安裝作業系統。

隔幾日,該位同事又收到同樣信件,只是金額不同,仍然是八百多,決定不理他。

再隔幾日又多了幾個人收到,其中包含離職的稽核,前稽核離職後,信箱被設為別名,別名只能接收寄給前稽核的郵件,該帳號因為不實際存在於 Mail Server ,所以不能登入、不能寄信,所有 Mail Server 提供的服務都不支援,只有將信件轉給現任稽核會生效。如此一來,很明顯的是詐騙郵件。而一開始收到郵件的同事,開始收到日文版…

到了 10 月底,我也收到類似郵件了,這就跟廣告郵件一樣,所以我在 Mail Server 上依據郵件特徵直接在 Server 擋掉,只把阻擋紀錄通知給 IT 追蹤。11月初起,我收到的郵件開始說我的帳號密碼是 xxxx 了,例如下面擷圖郵件,是最新的內容 (註:文件內容一直更新,例如加入思科網通設備漏洞是新版的才有):

詐騙比特幣的郵件
詐騙比特幣的郵件

有密碼就搞笑了。

我自己密碼習慣分級處理,eMail 密碼與外面註冊密碼不會一致,避免註冊資訊外洩,或是網站管理者本身別有用心下,eMail 被登入資訊外洩。另外我在註冊習慣會登記到自己的 Excel 檔內,畢竟年紀大了,帳密又多,背不下來。

經過比對,同一組帳密我只用在三個網站登入用,考慮到對方可能會測試,我說明就不完全揭露網站細節:

  1. 一個國產 IC 晶片網站,大概2011註冊,2013以後沒在用
  2. 一個國內網址帶有 cpu 的網站,大概2011註冊,2013以後沒在用
  3. SMA一個分公司的論壇,大概2012註冊,2013以後沒在用

但是跟其他收到郵件的同事,網站1/2 雖然我沒再去了,IC 部分改由研發部門處理,但是收到郵件的同事都沒在用。而網站3 雖然其他幾個同事有可能用,不過問了一下,基本上是都沒在用,因為同事都去 SMA 官方主站,而我是因為在分公司論壇看到有人討論到未公開的通訊協定細節,才在該網站註冊後續詢問,分公司論壇我們公司只有我去看過。

算起來應該是沒交集,所以也無法鎖定是哪個網站外洩註冊資料。

由於都是註冊很久的資料,所以我想應該是對方購買的帳密資料庫包含了這三個網站其中之一的外洩資料。我個人偏向網站3 ,因為現在會收到詐騙郵件的同事,都是會處理到國外事務的相關人員,純粹國內事務的還沒收到詐騙郵件的案例。

從這個案例來提醒大家:

  1. 近期透過 eMail 詐騙比特幣案例橫行,自己要慎重閱讀考慮。
  2. eMail 的帳密絕對不要與外面網站註冊的一致。
  3. 重要會綁裝置或著資產的帳號,例如 Microsoft/Google/Apple 的帳號,不要拿來註冊其他網站使用,若有必要,密碼絕對要分開。
  4. 帳密最好在自己電腦用加密檔案紀錄,不要上傳到雲端空間,最多可放在行動裝置內,但關閉該目錄的自動雲端備份。

希望大家都別被騙去繳比特幣阿~~~

[2018/12/25 09:50 新增]

今天收到簡體中文版了,大概是看英文版我都不理他,怕我英文程度不好~~~

簡體中文版的比特幣詐騙信件

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[iOS] 環境升級後,無法正常編譯 App


話說七月底完成 iOS 程式後,我就沒開過 MacBook Pro 。

老闆忽然嫌棄起 App 在 iPhone 上的顏色,所以由形象設計師不斷改版,直到老闆終於 OK 選定 Icon 後,昨天我把 MacBook Pro 打開。

太久沒開機了,昨天就是一直更新,XCode 從 11.x 更新到 12.0 ,再更新到 12.1。

今天早上開 Visual Studio for Mac 也觸發更新,等到更新完都快中午了。

把新的 Icon 置換進去,變更版號後,重新編譯居然發生錯誤。我一開始以為是我操作有問題,直到後來編譯沒改過的測試專案後也發現相同的問題。

主要錯誤是 ibtoold 引起,錯誤訊息為:

unrecognized selector sent to class

unrecognized selector sent to class

unrecognized selector sent to class

開了多個專案都在畫面出錯 (.storyboard) ,可能是啟動畫面或主畫面,似乎都是軟體啟動的第一個畫面。

眾裡尋她千百遍,終於找到,是 XCode 尚未更新完造成。當然不是的話可以試試 google 找到的其他方案。

先把 Visual Studio for Mac 關閉。

打開 XCode ,可以看到,雖然 App Store 那邊說更新完畢了,但是實際上尚未更新:

XCodeUpdate_02

完成 XCode 更新

按下 [Install] 讓它跑一下:

XCodeUpdate_03

更新 XCode 中

更新完成後版本為 10.1 。

XCodeUpdate_04

完成 XCode 更新

再開啟 Visual Studio for Mac 重新編譯就正常通過了。

 

 

Categories: 工作點滴, 技術分享 | 標籤: | 1 則迴響

[WU] 升級 Windows 10 1809 雜記


今天到 MSDN Subscription 下載 Win10 1809 ,發現 Win10 / WinServer / Office 2019 都有新增序號… 依往例,每天只能拉 10 組序號…

Win10 1809 跟 1803 一樣,分成 商用版 跟 客戶版,商用版有企業版沒有家用版,客戶版則有家用版沒有企業版,兩個版本都有專業版跟教育版,不過 1809 要用 DVD R DL 燒,1803 還可以用 DVD R 燒,就差個 300 MB 而已~

Windows 1809

Windows 1809

 

1809 x64 企業版我安裝近 3 小時,跟 1803 一樣,安裝完會複寫註冊資訊,所以一些圖檔軟體也會被改回預設值,會觸發部分軟體自動重新安裝,例如我的 Office 365 升級前是 Office 2016 Pro+ ,升完 1809 後,開 Outlook 發現工具列畫面變了,依據羅杯杯說法就是 Office 365 升級到 Office 2019 Pro+ 。

Office 365

Office 365

安裝好後,感覺比 1803 順,1803 剛開機完 svchost.exe 大概要跑 20 分鐘才會閒下來,1809 很快就正常了,不過還得觀察幾天。

第一次安裝好自動重開時,不要急著用吃硬碟資源的軟體,比如說我重開完急著做事,就開 Outlook ,被通知 Outlook 資料檔發生錯誤的訊息,但實際上是因為硬碟滿載,造成未正常載入相關檔案,等到硬碟存取量降下來後開 Outlook 就正常開啟了,其它就是很多設定被改回預設值,目前還沒碰上像 1803 那樣搞死人的地步。

這幾天若是有碰到問題再來更新這篇。

[10/06 23:27 更新]

微軟已暫停 1809 更新:

https://support.microsoft.com/en-us/help/4464619/windows-10-update-history

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[RouterOS] 沒注意資安新聞就被攻陷的經驗


話說,案場因考慮工業路由器,大量使用 RouterOS ,在 2018/08 月初發布了相關資安新聞,沒注意,到了 09/12 先發現某案場展示網頁會發生 Timeout ,才發現被攻陷變肉雞了。

展示系統大量使用 HTML5 + SVG 來處理畫面,09/12 廠商訪談完,在大廳展示電視發現展示網頁顯示 script 逾時了,開始追蹤這問題,現場是一個雙向 512k 的 ADSL 專線,使用 RouterOS 的基地台,用 Winbox 登入檢查後,從 log 發現不對勁:

防火牆規則異動

防火牆規則異動

防火牆規則被改了?問過同事,沒人連過去。確定被入侵異動,一時之間不確定問題,先升級韌體,改回被異動的參數。

09/13 開始進行更進一步 log 檢視,原先 RouterOS 服務基本上都關閉,只保留 api-ssl / winbox ,原先想說 api-ssl 可能是原廠軟體的通道,但是從 log 看起來不是透過 winbox 軟體登入,查原廠說明:

https://wiki.mikrotik.com/wiki/Manual:API-SSL

靠腰,api-ssl 只有加密,但不認證,嚇了一跳,趕緊連線到各案場普查,由於不同 IT 設定,有些有開,有些沒開,發現有四成案件有被入侵的痕跡,但有些是沒開的,不見得是 api-ssl 問題而已,甚至有些案場被打開服務,使用其他服務登入。

趕緊 google 新聞,原來是 08/03 就有新聞發出,是透過原廠軟體漏洞入侵:

超過17萬台MikroTik路由器淪為駭客挖礦攻擊的跳板 https://www.ithome.com.tw/news/124977

所以展示網頁發生 script 逾時,是因為展示電腦在幫忙挖礦阿…

再找了幾篇文章

Mikrotik的Winbox的任意文檔訪問漏洞的PoC流出,漏洞公佈以後仍舊沒有引起網絡管理者足夠的重視 https://hk.saowen.com/a/8c1dd31786b20e8da4d39cd378ffd85552d89a8e7235b570e16aaace7e923090

近期RouterOS的几个漏洞说明 http://www.irouteros.com/?p=338

大概看出來,漏洞有很多,從 winbox 漏洞備份設定檔後,還可以透過公開金鑰反解出密碼,讓 RouterOS 可以被遠端登入… 解決的方案無他,就是升級韌體,已被入侵的連管理帳號都得改…

下面來看一些慘況吧~

這隻肉雞很慘,多方在上面交戰互相阻擋別人入侵,甚至時間伺服器都被改掉,偽裝舊的時間寫入的規則:

三方互相設定對方 IP 為阻擋清單

三方互相設定對方 IP 為阻擋清單

 

這就是幫人挖礦的嵌入網頁:

挖礦嵌入網頁

挖礦嵌入網頁

防火牆規則區除了 DNS 防禦被關閉 (紅框),也淪為駭客間互相阻擋的方案 (藍框)

DNS 防禦被關閉

DNS 防禦被關閉

IP Pool 也被改:

IP Pool 被新增

IP Pool 被新增

對應 IP Pool 的撥入規則也新增近來:

PPP 也被新增規則

PPP 也被新增規則

對應被加入的 VPN 帳號:

VPN 被新增帳號

VPN 被新增帳號

被加入的排程:

被加入排程

被加入排程

被加入 Script:

被加入 script

被加入 script

被加入 Layer 7 Protocol 規則:

被加入 Layer 7 Protocol

被加入 Layer 7 Protocol

還有 SOCKS 也被設定、加入 IP 等,甚至有些是底層被修改,在介面上完全找不到哪裡被改,當我改完規則後,居然被駭客改掉 admin 帳密,登不進去,只好換機,拿回來洗機重新設定。

看樣子 google 還要訂閱 RouterOS 資安相關訊息了…

對了,我們這幾台最早被入侵大概是在九月初,所以要是有看到新聞,其實還有救…

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[H5] 偵測不同裝置的解析度


在 DHTML4 的年代,我常常用 VML 來處理未知螢幕解析度的縮放,到了 HTML5 的年代,當然就是改用 SVG 。

使用 SVG 處理縮放通常希望開啟網頁時,能自動縮放到最佳解析度,Windows 下還好除錯,行動裝置就很麻煩了。

Windows 裝置 IE/Edge 支援縮放,Chrome 則不支援。

原先寫的程式碼多半參考網路上的,各有出處,說法也不同,所以就發生 Android 正常時,iOS 就不正常,iOS 正常時,Android 就不正常。

所以乾脆用個除錯網頁分別讓不同瀏覽器去跑,下表是三個裝置 javascript 抓到的值,其中 IE11 的螢幕解析度 1920×1080 ,螢幕字型 125% (120 DPI) 。

IE11 Android 8.0 iOS 11.4
window.innerWidth 1536 1440 980
window.innerHeight 807 2240 1472
window.outerWidth 1550 360 0
window.outerHeight 878 560 0
window.screenX -7 0 0
window.screenY -7 0 0
window.scrollX undefined 0 0
window.scrollY undefined 0 0
window.pageXOffset 0 0 0
window.pageYOffset 0 0 0
window.devicePixelRatio 1.25 3 3
window.screen.width 1536 360 414
window.screen.height 864 640 736
window.screen.availWidth 1536 360 414
window.screen.availHeight 864 640 736
window.screen.deviceXDPI 120 undefined undefined
window.screen.deviceYDPI 120 undefined undefined
window.screen.logicalXDPI 96 undefined undefined
window.screen.logicalYDPI 96 undefined undefined
window.screen.systemXDPI 120 undefined undefined
window.screen.systemYDPI 120 undefined undefined
window.screen.pixelDepth 24 24 32
window.screen.msOrientation landscape-primary undefined undefined
document.body.clientWidth 1503 964 964
document.body.clientHeight 2555 5674 3201
document.body.scrollWidth 1848 4900 987
document.body.scrollHeight 2555 5695 3243

果然實作才是硬道理,可以得到:

實際解析度寬:window.screen.width * window.devicePixelRatio

實際解析度高:window.screen.height * window.devicePixelRatio

針對 Android 8.0 的分割視窗會發現 window.screen.height 變小,仍可使用 (分割時為 247)

至於最適化 (Auto fitting) 螢幕大小部分,我原先是先在 HTML5 的 HEAD 預埋:

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=0.1″ id="metaViewport" />

再透過 javascript 依 svg 圖面大小變更 metaViewport.setAttribute(“content", sViewportContent);

從網頁搜尋到的結果,一般是將 width=設定寬度, height=設定高度

自己整理表格後發現,用 sViewportContent = “initial-scale=" + scaleWidth; 即可。

使用 svg.width / window.screen.width 或 svg.height / window.screen.height 就看設計者要以寬度或高度為目標來調整。

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[iOS] 上傳 App 到 App Store 供散佈


終於到這陣子最後一篇,上傳第一個 iOS App 真的很麻煩,開發還沒這麼多狀況,有些圖是完成後再補的,所以圖片的時間可能會有點錯亂。

這篇主要是依據微軟官方文件操作,再做點圖片心得分享,請務必參考官方文件。

將 Xamarin.iOS 應用程式發佈到 App Store https://docs.microsoft.com/zh-tw/xamarin/ios/deploy-test/app-distribution/app-store-distribution/publishing-to-the-app-store

上傳 App 之前,須先建立 App 密碼,可參考這篇建立:

使用 App 專用密碼 https://support.apple.com/zh-tw/HT204397

建立 App 密碼

建立 App 密碼

完成建立密碼後,會收到通知信,那個藍色的圈圈是寄來就這樣,我也是醉了,收件人帳號就在信頭,信中馬賽克好像沒啥作用。

收到建立密碼通知信

收到建立密碼通知信

從「將 Xamarin.iOS 應用程式發佈到 App Store 」步驟 11 開始,選擇手動佈建 [Manual Provision] ,再點選 [iOS Bundle Signing…] ,會跳出 [專案選項] ,這邊設定 [組態]、[平台]、[簽署識別]、[佈建設定檔] ,其中 [簽署識別]、[佈建設定檔] 參考前一篇 [iOS] 建立 App Store 簽名用的憑證給 Visual Studio for Mac 使用 完成。

設定編譯選項

設定編譯選項

從選單 [組建] > [封存以供發行]

選單封存與發行

選單封存與發行

點選 [簽署並散發]

簽署並散發

簽署並散發

點選 [App Store] ,並點選 [下一步]

儲存至磁碟並開啟應用程式產生器

儲存至磁碟並開啟應用程式產生器

依照編譯選項選擇 [簽署識別]、[佈建設定檔],並點選 [下一步]

佈建設定檔

佈建設定檔

點選 [發行]

存檔並發行

存檔並發行

點選 [發行] 後,會讓你選擇儲存位置,MacBook Pro 我不太會選位置,最後放棄讓它存在預設位置,我再用 Finder 管理它,其中圖上的 [標記] 建議不要點,因為可能會造成死當,我變成要把整個 [Visual Studio for Mac] 強制中止後重來。

存檔對話盒

存檔對話盒

如果沒有死當的話,你可以得到下面那個畫面讓你回到 [上一步] 重來。

發行失敗

發行失敗

如果你沒亂按 [標記] 讓它存檔在預設位置,就可以正常發行成功。

發行成功

發行成功

看到發行成功很容易誤會已經完成,其實只是把要上傳的 App 準備好而已,接著點選上圖的 [開啟應用程式載入器] 準備上傳。

樣板選擇器

樣板選擇器

點選上圖的 [遞送應用程式] ,從先前存檔的位置找出編譯封存好的 App。

開啟檔案對話盒

開啟檔案對話盒

選擇上圖[打開] 準備上傳檔案。

準備傳送檔案

準備傳送檔案

點選上圖 [下一步] ,點選 [傳送] 開始上傳檔案。

上傳檔案中

上傳檔案中

完成上傳。

AppUpload_15.1_UploadOk

上傳完成

告知上傳完成。

AppUpload_15.2_SendOk

表示已經上傳到 App Store

上傳完成後,不代表就完成了,還必須去 [App Store Connect] 網站,選擇 [我的 App] ,確認發行,這部分 [Visual Studio for Mac] 沒辦法代勞。

之後網頁會顯示等待審核,並會收到一封信表示完成建造過程。

完成上傳通知信

完成上傳通知信

沒事的時候會收到一堆狀態顯示 ReView 審核中的信件,很多,所以就懶得再貼了。我因為 App 一開始要輸入帳密,所以審核人員懷疑我是企業內部軟體,系統發信通知我要我上 [App Store Connect] 回應審核意見。

審核意見通知信

審核意見通知信

審核意見說依據 Guideline 2.1 要確認我的 App 是不是只給公司員工使用,我看半天,Guideline 2.1 並沒談到這件事,不過還是回說要給客戶用,員工只是其中之一。回完半天後就收到上架通知信了。

上架通知信

上架通知信

看起來上架審核應該是美國上班時間,因為除了系統自動郵件外,每次 eMail 通知信來,都是台灣凌晨在發。

總算,終於完成上架,步驟繁雜,只好自己留步驟圖,下次自救用。

 

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[iOS] 建立 App Store 簽名用的憑證給 Visual Studio for Mac 使用


這篇圖多。主要是因為很繁瑣,不記錄下來,自己以後還要再找一遍資料,還是留下紀錄給自己看比較保險。

建立簽名用的憑證可以給公司所有 App 簽名,但是本篇後半段產生佈建檔設定部分會跟 App 產生關聯,所以先完成 App 開設會比較順,當然也可以先處理憑證建立後,再來進行 App 開設,再建立佈建檔,我自己第一次就是屬於後半部的方法,但是我覺得先建 App 設定會比較順。

App 開設要在 Apple 網站 iTunes Connect 網站填寫,此外,Visual Studio for Mac 的專案屬性也要一致,這部分微軟文件已經寫得很清楚了參考:

在 iTunes Connect 中設定應用程式 https://docs.microsoft.com/zh-tw/xamarin/ios/deploy-test/app-distribution/app-store-distribution/itunesconnect

在上面這篇連接中會看到需要將 App 的畫面擷圖上傳,所以我前一篇先放:[iOS] App Store Connect 上傳螢幕擷圖

在設定提交 App 審核前,這資料隨時可以修改,所以記得沒事就按下網頁內的儲存,避免設定時間過長,可能觸發網頁軟體的其他問題,導致一切從頭來。

這篇後續部分跟微軟文件這篇關聯很大,建議同步閱讀:

Apple 帳戶管理 https://docs.microsoft.com/zh-tw/xamarin/cross-platform/macios/apple-account-management

我推估這步驟通常一個公司一年大概要重複一次,接下來就開始吧。

在本機產生一個私密金鑰,在 Finder 搜尋 [鑰匙圈存取]。

鑰匙圈存取

鑰匙圈存取

從選單選擇 [鑰匙圈存取] > [憑證輔助程式] > [製作憑證]

選取製作憑證

選取製作憑證

替憑證取個好記的名字

憑證取名

憑證取名

確認製作憑證。

確認製作憑證

確認製作憑證

輸入憑證有效日期,預設為365天。這部份很奇怪,我輸入了3650天,過程中也是顯示10年,上傳 Apple 網站後顯示 1 年,重新製作也是一樣,就先使用預設值了。

輸入憑證有效日期

輸入憑證有效日期

輸入個人與公司資訊。

個人與公司資訊

個人與公司資訊

以下視窗基本上我都是按下繼續,所以就連續貼圖,不做文字說明。

憑證配對資訊

憑證配對資訊

密鑰用法擴充欄位

密鑰用法擴充欄位

延伸密鑰用法擴充欄位

延伸密鑰用法擴充欄位

基本限制擴充欄位

基本限制擴充欄位

主題替用名稱擴充欄位

主題替用名稱擴充欄位

這個類似IE匯入憑證時,選擇 [個人] 的意思,這就是說這個憑證有效範圍是使用這個登入 MacBook Pro 帳號為限。

指定憑證存放的位置

指定憑證存放的位置

完成憑證製作

完成憑證製作

到此本機憑證製作完成,若隨時要檢視憑證,可以在 [鑰匙圈存取] 中檢視。

檢視憑證

檢視憑證

接下來要將憑證匯出成為檔案,以便上傳Apple網站換成真正可替程式碼簽名的檔案,從選單選擇 [鑰匙圈存取] > [憑證輔助程式] > [從憑證授權要求憑證]

從憑證授權要求憑證

從憑證授權要求憑證

輸入憑證資訊

憑證資訊

憑證資訊

選擇存檔位置,不得不說,我在 MacBook Pro 每次要換路徑都有障礙,最後乾脆還是存在預設位置,我處理完成後再搬移到我計畫的位置方便管理。

選擇存檔位置

選擇存檔位置

完成存檔

完成存檔

接下來準備上傳到Apple,由於 IE11 在蘋果網站有的時候會出問題,為求保險起見,可以考慮用 Chrome ,我作圖是用 Chrome ,但第一次上傳時是用 IE11 。首先連線到開發者網站:http://developer.apple.com/

開發者網站首頁

開發者網站首頁

點選右上角的 [Account]

帳號中心

帳號中心

點選 [Certifates, IDs & Profiles] ,從左側選單或右側圖形連結都可以按,我習慣從左側選單連結。

從下面畫面左側選單選到 [Certificates] > [All] ,第一次使用時應該是空的,所以點選右上角的 [Add] 加入新的憑證。

憑證管理中心

憑證管理中心

由於是為了申請上傳 App Store 用的憑證,就直接選擇 [App Store and Ad Hoc] 。

選產品發布用

選產品發布用

憑證簽名要求的說明

憑證簽名要求的說明

上面只是一個告知網頁,直接按下 [Continue] 進入上傳憑證畫面。

選擇憑證檔案

選擇憑證檔案

上傳完憑證後,就會產生可下載的 .cer 檔案,如果沒在此時下載,也可以在憑證清單點選憑證後,在點選 [Download] 下載。

下載或移除憑證

下載或移除憑證

憑證到此完全申請完成,如果沒有需要考慮替App簽名,可以暫時擺一邊,但正常都是要簽名才會申請憑證,所以繼續往下走。

另外也會透過 eMail 提醒你完成憑證申請。

eMail 通知

eMail 通知

由於只是要上傳 App Store ,其他功能可以忽略不管,從左側選單選到 [Provisioning Profiles] > [All] ,第一次使用時應該是空的,所以點選右上角的 [Add] 加入新的佈建設定檔。

新增佈建設定檔

新增佈建設定檔

選擇 App ID,這邊要從 iTunes Connect 內已建立的應用程式才會出現在下拉式選單,所以前面才會建議先去 iTunes Connect 進行應用程式新增與設定再來進行。

選擇 App ID

選擇佈建檔的用途,一個憑證可以有多個佈建檔,所以自己要分清楚,當然忘了也可以從佈建檔清單看設定的內容。一樣,只管要上傳軟體用,所以選擇 [App Store] 。

選擇散佈到 App Store

選擇散佈到 App Store

選擇對應的憑證,憑證Apple限制只能申請兩個,我猜是考慮一年過期要續用時可以選,所以一年後應該是可以從佈建檔清單中編輯去改憑證。

選擇憑證

選擇憑證

完成後可下載佈建檔,不過在 Visual Studio for Mac 可以下載,這邊下載下來也不知道要扔哪,就直接完成即可。

開啟 Visual Studio for Mac ,並開啟目標專案。從選單選擇 [喜好設定]

選單選擇喜好設定

選單選擇喜好設定

從左側選單選擇 [Apple 開發人員帳號] ,並輸入帳密。

輸入 Apple 開發人員帳號

輸入 Apple 開發人員帳號

點選右側 [檢視詳細資料] 按鈕。

開發人員帳號

開發人員帳號

登入後會自動下載憑證與佈建設定檔,若網站上有更新,可以點選 [下載所有設定] 檔按鈕。

完成後的佈建設定檔

完成後的佈建設定檔

到此基本上是完成App簽名前,跟憑證相關的設定,下面另外補充我自己的錯誤狀況。

我在  iTunes Connect 內建立的應用程式資訊與 Visual Studio for Mac 專案屬性有大小寫不一致情形,所以一開始狀態顯示不在 Keychain 中,當我改完專案屬性後,狀態才變成有效。

狀態錯誤

狀態錯誤

測試過程中,發現在此點選建立憑證,可以直接完成佈建檔前所有程序,包含從 [鑰匙圈存取] 到網站上傳憑證與下載匯入,忽然覺得前面一堆步驟做的沒啥意義… 不過他會自己取的名字,如前面圖上後面有括號 (Supportde-MacBook-Pro.local) ,對於名字有點潔癖的我稍感安慰…

快速建立憑證

快速建立憑證

特別放最後一張圖的用意就是…

#不能只有我看到 #不能只有我嘔到

 

Categories: 工作點滴, 技術分享 | 標籤: | 1 則迴響

[iOS] App Store Connect 上傳螢幕擷圖


在微軟線上文件:在 iTunes Connect 中設定應用程式

https://docs.microsoft.com/zh-tw/xamarin/ios/deploy-test/app-distribution/app-store-distribution/itunesconnect

有提到,「盡可能使用真實、高解析度的 Retina iOS 硬體 (而不是在 iOS 模擬器中) 拍攝螢幕擷取畫面。」,但大多數人都不可能買實機去測試,因此只能用虛擬機擷圖。

上傳圖片的位置

上傳圖片的位置

App Store Connect 中,點選到耀上傳的應用程式,其中,iPhone 5.8 是可留空,必須上傳的是:

  1. iPhone 5.5″ : 可選用 iPhone 8 Plus,1242×2208 pixel
  2. iPad 12.9″ : 可選用 iPad Pro,2048×2732 pixel

選用 iPhone 8 Plus 虛擬機擷圖時,務必要變更解析度為 [High Quality] ,預設為 [Device Default] ,會依據虛擬機在螢幕上的大小自動調整解析度,因此只有選擇 [High Quality] 時,才會使用實體解析度。

iPhone 8 Plus 解析度

iPhone 8 Plus 解析度

調整好後,就使用 [New Screen Shot] 或是熱鍵 [Command+S] 擷圖,擷圖會自動產生在桌面上。

iPhone 8 Plus 擷圖

iPhone 8 Plus 擷圖

同樣,選用 iPad Pro 虛擬機擷圖時,變更解析度為 [High Quality] 。

iPad Pro 解析度

iPad Pro 解析度

同樣使用 [New Screen Shot] 或是熱鍵 [Command+S] 擷圖。

iPad Pro 擷圖

iPad Pro 擷圖

檢查螢幕擷圖是否符合 Apple 的要求,當然不符合的話,上傳就會被踢。

一開始不知道要調 High Quality ,就被 App Store Connect 踢,就紀錄一下提醒自己。

 

Categories: 工作點滴, 技術分享 | 標籤: | 1 則迴響

[iOS]補充:在 MacBook Pro 上安裝 fastline 給 Visual Studio for Mac 使用


在使用 Visual Studio for Mac 開發 iOS App 時,需要安裝 XCode 及 fastline 一起運作。

XCode 比較簡單,在 App Store 下搜尋安裝就結束了。

fastline 則須自行下載安裝,步驟請參考:適用於 iOS 的 fastline 簡介

https://docs.microsoft.com/zh-tw/xamarin/ios/deploy-test/provisioning/fastlane/index

這篇名為補充,就是補充文件上不清楚的。圖中馬賽克的部分,是在 MacBook Pro 裡的登入帳號。

參考「適用於 iOS 的 fastline 簡介」步驟 3,裡面提到按 [Control] 鍵,這步驟是按 [Control] 鍵不放,滑鼠右鍵選單選擇 [打開] 即可,安裝畫面如下。

安裝 fastlane

安裝 fastlane

參考「適用於 iOS 的 fastline 簡介」步驟 4,要執行 [which fastlane] 是要透過終端機來執行,可使用 Finder 輸入 [終端機] 來開啟使用。

找到終端機

找到終端機

第一次安裝,是找不到 fastlane 的,如果電腦夠新,也沒有 [.bash_profile] 這個檔案,因此針對第一次安裝的,可改用下面操作:

a. 使用 [ls ~.bash_profile] 檢查設定檔案是否存在。ls 類似 Windows 中的 dir 。

檢查設定檔案是否存在

檢查設定檔案是否存在

如圖,[No such file or directory] 表示沒有這個檔案或目錄,因此輸入 [cd ~/] 改變目錄位置。

b. 然後使用 [vim .bash_profile] 來編輯產生一個新的檔案。

輸入路徑

輸入路徑

輸入 [i] 下方會出現 [– INSERT –] 進入插入模式,參考「適用於 iOS 的 fastline 簡介」步驟 6,輸入 [export PATH="$HOME/.fastlane/bin:$PATH"],如上圖。

c. 按下 [esc] 鍵,離開插入模式,輸入 [:wq] 如下圖,即可存檔離開。

存檔離開

存檔離開

 

d. 輸入 [source .bash_profile] 重新載入,輸入 [echo $PATH] 檢查路徑。

路徑已加入

路徑已加入

可以看到在步驟 c 中輸入的路徑出現在紅色框框處。參考「適用於 iOS 的 fastline 簡介」步驟 7,輸入 [which fastlane] 就會出現 fastlane 的路徑。

若只是更新 fastlane ,基本上就不用在執行上面步驟了。


在已經申請好簽署程式碼的憑證或是有變更時,還要透過 fastlane 更新憑證。這部分可參考:適用於 iOS 的 fastlane – cert

https://docs.microsoft.com/zh-tw/xamarin/ios/deploy-test/provisioning/fastlane/cert

如果只要上傳 App Store ,不需要管上面文件的其他部分,只要執行 [fastlane cert] 即可,如下圖。

讀入認證資料

讀入認證資料

中間會要求輸入開發者帳號的 Apple ID,需與蘋果網站一致。

iOS 上傳軟體步驟很繁瑣,為了自己下次能順利重做,自己寫 blog 是最容易記住跟反覆查閱的方案。

 

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[iOS] 註冊一個開發者帳號


在使用 Visual Studio for Mac 開發完成後,要把上傳第一個公司的 App 之前,大概要以下幾個步驟:

  1. 創建一個蘋果帳號 (AppleID)
  2. 將此帳號註冊為開發者
  3. 申請 D-U-N-S Number
  4. 註冊公司資料
  5. 完成付費

到此開發者帳號完成。

接下來要註冊公司資料、建立憑證後,才能建立第一個程式的代號 (AppID) ,填寫 App 資料、上傳截圖、App 進入審核,這篇主要分享是註冊開發者帳號為止。

如果有 Apple 的裝置,基本上一定會有蘋果帳號,這樣才能在 App Store 下載軟體,通常這個帳號是個人的,如果是要處理公司的,我建議用公司 eMail 來建帳號。

我個人建議建帳號在 https://appleid.apple.com/ 進行,因為這個網頁有完整的繁體中文支援。

登入畫面,點選右上角可建帳號

登入畫面,點選右上角可建帳號

建帳號時,一般來說可能會輸入中文姓名,但開發者帳號請務必使用英文姓名,也可以用羅馬拼音或萬國拼音,或是直接使用護照姓名。

新建帳號

新建帳號

建帳號需要完成認證才能登入,如果是透過裝置建帳號,會使用簡訊發送認證號碼,如果是採用公司信箱建帳號,會透過 eMail 發送認證號碼,eMail 發送認證號碼若因為 Spam 規則導致過久未收到信,在 AppleID 網站逾時後,先前輸入的帳號資料會被拋棄,必須重新建帳號,不能由原先新建帳號繼續輸入認證碼。所以如果超過 5 分鐘沒收到 eMail 發送的認證信,就趕快從介面上選取重新發送,一般 Spam 規則在第二封信發送時,就會允許兩封信一起進來,輸入最後一封信的認證碼即可,輸錯也沒關係,只要沒逾時,可以再改認證碼。

建立完成帳號後,用相同帳號登入 https://developer.apple.com/ ,這個網站目前只有英文,第一次登入會要求接受蘋果開發者協議。

Developer Agreement

Developer Agreement

點選右下角 [Submit] 接受,再點選 [Join the Apple Developer Program] 。

Join Apple Developer Program

Join Apple Developer Program

點選右上角 [Enroll] 開始進入開發者帳號註冊,搞到現在才開始,真是夠了。

註冊開發者帳號

註冊開發者帳號

接者進入引導畫面,引導畫面可選簡體中文,若英文不好也可以看簡體中文,這個時候可以切換語系,按下 [Start Your Enrollment] 繼續。

開發者帳號註冊引導畫面

開發者帳號註冊引導畫面

不得不說,蘋果網站支援 IE11 的部分常常出問題,如果原先 AppleID 不是兩步驟驗證的帳號,這邊畫面會跳警告畫面,但在 IE11 是全白畫面,ㄧ整個不知所謂,改用 Chrome 繼續才能正常看到,如果 IE11 看不到畫面,先回到帳號管理,看看帳號安全是否啟用了兩步驟驗證。

需要啟用兩步驟驗證

需要啟用兩步驟驗證

之後輸入公司資料,申請 D-U-N-S Number,這部分因為資料必須遮掩,只有上半截:

申請 D-U-N-S Number

申請 D-U-N-S Number

申請完畢後,大概幾分鐘就會把 D-U-N-S Number 的郵件發送到信箱。

收到 D-U-N-S 信件

收到 D-U-N-S 信件

點選郵件內的 [Enroll now] 繼續完成公司帳務申請,裡面有要填 D-U-N-S Number ,大部分都是個資法保護範圍,就看最後面 TaxID ,我只在這邊看到可以填統一編號。

選項輸入:填入統一編號

選項輸入:填入統一編號

完成表單後,大概幾分鐘可收到公司完成註冊的 eMail 通知,下半截都是公司資訊,就跳過了。

收到公司完成註冊

收到公司完成註冊

 

我建帳號時,因為不知道有剛剛說的要求,所以我是用公司資訊部的化名建帳號,這個化名帳號用在 Google Play / Youtube / Facebook 企業帳號 / MacBook Pro 新機註冊上,所以如果不做開發者帳號申請的話,純粹設備管理用化名是沒啥關係。我因為一開始姓名輸入中文,所以在審核資料時,被退,發了一封信通知我要改名。

要改英文名阿

要改英文名阿

周一早上登入網頁修改為羅馬拼音姓名後,回覆這封郵件,並註明 Case Number ,周二早上收到確認改名信件後,約 20 分鐘後接到疑似大陸口音的客服人員人工電話認證,確認個人與公司資料,索要第二個緊急連絡人資訊,特別是公司英文全名、第二緊急連絡人英文全名,客服人員有說,英文名可不用羅馬拼音或漢語拼音,慣用的英文名亦可,所以第二緊急連絡人直接用 丹尼斯 姓 的方式電話登錄,電話掛掉後約 5 分鐘就收到完成郵件。

註冊已接受

註冊已接受

點選 eMail 裡面的 [Review now] 準備進入付款流程。

檢視相關合約

檢視相關合約

左上角有 [Download] ,這內容有 78 頁的 pdf 檔案。

繼續進入下一步付款,一年就要新台幣 3400。

新台幣 3400

新台幣 3400

 

選擇用我的信用卡付款,下面是個人資料就跳過了。

信用卡付款

信用卡付款

 

進入下一頁可輸入公司發票資訊。

輸入公司發票資訊

輸入公司發票資訊

確認後,幾分鐘內就會收到 eMail 的感謝消費信件。

感謝訂購

感謝訂購

大概 20 分鐘左右會收到詳細訂單資訊。

詳細訂單

詳細訂單

約過半天會收到電子發票。

電子發票

電子發票

如果有要看電子發票長啥樣,大概就是下面那個樣子。

電子發票

電子發票

從註冊帳號到完成付款扣掉假日的話,大概就花了我四天。回想起 google play 商店註冊付款就輕鬆多了。

接下來還有開憑證、App 要上傳,蘋果真難搞阿~

 

 

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[iOS] WebView 加上回前頁的手勢


在 Android 因為本身就有回前頁的功能按鈕,因此在以 HTML5 網頁為核心的行動裝置軟體本身並不需要做特別設計。

在 iOS 如 iPhone/iPad 只有下方的 Home 鍵,因此需要考慮一個方式,不管網頁如何跑,都能有回前頁的方案。

一般來說,在 iOS 大多數的軟體不是使用導覽工具列處理,就是利用從右往左滑的翻頁手勢,代表回到上一場景。

因此只要利用這個方向使用從右往左滑的翻頁手勢,代表網頁回前頁的功能。


public override void ViewDidLoad()
{

// 略

var swipeBackRecognizer = new UISwipeGestureRecognizer(HandleSwipeGoBack);
swipeBackRecognizer.Direction = UISwipeGestureRecognizerDirection.Right;

WebView.AddGestureRecognizer(swipeBackRecognizer);

}

void HandleSwipeGoBack()
{

WebView.GoBack();

}


假定畫面上已經有一個 WebView 控制項,就可以在載入事件中直接加入 WebView 物件變數的手勢設定。

參考:https://stackoverflow.com/questions/43779824/how-to-swipe-back-in-xamarin-ios

 

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[iOS] WebView 瀏覽 http 的安全性設定 – Visual Studio for Mac


去年做 Android 的 App ,今年老闆要我做 iOS 的 App 。

我的大部分還是靠 HTML5 網頁呈現即時資訊,所以我主要只要把 App 包個 WebView 即可。

一開始我是在 Xamarin.iOS 大分類下看說明學著寫,例如這個 WebView:

https://docs.microsoft.com/zh-tw/xamarin/ios/user-interface/controls/uiwebview

我一開始以為我自己看得很透了,直接開始寫,但是怎樣都卡在連不上我的手機網頁,只好從上面網址抓線上範例來測試,範例網址的確可以正確呈現:

https://xamarin.com/

但是我只換網址為我的手機網頁就不行,畫面全白… 我開始鎖定是 http 跟 https 的差異。一找,果然在說明書找到:

https://docs.microsoft.com/zh-tw/xamarin/xamarin-forms/user-interface/webview

這個網頁是介紹 iOS/Android/Windows Phone 三種行動裝置共用的設計部分,在網頁中可以看到,iOS 特別註解從 iOS 9 以後安全性變更,預設不能瀏覽 http ,要修改安全性設定…

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

 

冏… 為啥 iOS 的特殊設定不是放在 Xamarin.iOS 下,而是放在 Xamarin Forms 下…

但是又碰上個難題,我是直接在 MacBook Pro 下安裝 Visual Studio for Mac ,沒有另外安裝純文字編輯器可以直接輸入安全性規則,比對原始碼內容,在介面上測試輸入如下:

設定網址安全性

設定網址安全性

重新編譯執行,果然可以正常瀏覽 http 網址。

編輯步驟:

  1. 在最下方點選 [新增項目]
  2. 類型選 [字典]
  3. 編輯項目名稱改為 NSAppTransportSecurity
  4. 在屬性 NSAppTransportSecurity 下方點選 [新增項目]
  5. 類型選 [布林值]
  6. 編輯項目名稱改為 NSAllowsArbitraryLoads
  7. 值 改為 是

存檔後會跟上圖一樣。

微軟網站的線上手冊沒考慮直接使用 Visual Studio for Mac 編輯,所以只能自己試啦。

可以看到專案名叫做 HelloWebView … 跟 Hello World 差不多的意思~~~

Categories: 工作點滴, 技術分享 | 標籤: | 發表留言

[AI] 關於類神經網路的學習經驗分享


話說五月下旬在:

台灣「人工智慧」社團 https://www.facebook.com/groups/Taiwan.AI.Group/

回了一篇落落長的文,要找的時候才發現被砍文了。
在別人的地盤發文的缺點就是刀在人家手上,想砍隨便砍…

看這張擷圖,我在回這篇前幾天寫了一篇落落長的回文,在這篇回應時提到另一篇給樓主看,兩天前要找已經找不到了。

有圖有真相

有圖有真相

我也忘了那篇不見的文章在講啥,就輕鬆分享一些我的想法吧。

1992 (民81) 升大三的暑假,我參加了我唸研究所指導教授的研究生 meeting ,就當成研究會好了,我還記得陳德源學長念混沌 (chaos)、劉業主學長負責念模糊 (fuzzy),還有幾個學長念啥我忘了,一個負責專家系統,我負責念類神經網路 (ANN) ,這是我最早接觸人工智慧 (AI) 的年代,當時念類神經網路應該是一本倚天出的電腦書,那本書大概只有概念,沒辦法依據這個概念去實作。

1994 (民83) 碩一上,去成大電機所念碩博合開的類神經網路,授課教授規定作業都要交程式碼跟運行結果,所以我就買了葉怡成教授的類神經網路,那時候葉老師的書是有 C的程式碼,我則是看懂後,改用 Quick Basic 4.5 寫作業,果然,實作才是王道,我終於開始入門了。後來葉怡成老師新改版的書已經抽掉程式碼。

碩士作業 類神經網路原始碼

碩士作業 類神經網路原始碼

碩士班搞了很多東西,主要包含 GIS 跟 NetFlow Programming,到了碩二下的三月,指導教授叫我列出來得及畢業的論文方向,並簡易試作,其中網流規劃我是計畫專任助理,會跟計畫成果有重疊,所以碩士論文就決定是類神經網路。

四月春假把原先的 QB 程式碼改用 Visual Basic 3 改寫後,每天晚上研究室的多台電腦都被我借來做算不同案例的批次學習,一早我再去每台電腦把計算結果拷貝到電腦進行分析檢討。

我的碩士論文是從曾文水庫九個電傳雨量站去預報未來一小時後曾文水庫的進水量,內容可到我個人網站找,網誌這邊沒有。

一開始滿白目的,犯了一個通盤的錯誤,所以我學習訓練的結果我總合來說,不用學習就可以使用公式:
f(t+1)=f(t)
來取代。

認真去看很多論文,其實都犯了這個錯誤,只用觀測量去推估預測量,例如預測一小時後,得到的結論是預測得很好,預測值只落後觀測值一小時。這種結論其實就是:
f(t+1)=f(t)

好在那時有念時序列分析,當我自己得到跟別人相同結論:「預測得很好,預測值只落後觀測值一小時」時,我是很洩氣,為啥大家做的都差不多,那到底用 ANN 還有甚麼意義?看著看著就想到時系列分析的 AR 模式,然後回想到非線性規劃,我就悟了。

這個狀況在五月初發現,說實在的,以碩士論文程度來說,沒發現也不會怎樣,更不要說那個年代沒幾個人懂,繼續往下做也沒關係,反正就是多一篇垃圾,當然發現得早就是指導教授會要我改… 所以我在 BPN (倒傳遞網路) 裡面加入了不學習的輸出節點當成系統內能,再轉入下一個時段的輸入節點。

這邊就要說,如果使用現成的套件,是不可能自己改架構的,學習不可能允許一個輸出值不被控制,所以能的話還是自己開發比較好,架構可以隨意調整,學習目標也可以任意變動,前期的值域,選擇的反映函數,輸出的映射,學習的目標函數,參數的最佳化等,才能自行變動。

再忙到七月論文口試之前,又體驗了過度描述 (over fitting) 問題。

用基本的數學原理來看問題。
一條變數、一條方程式可以得到一個唯一解。
所以當 n 個變數時,至少需要簡化後方程式還有 n 個方程式才能得到唯一解。
若小於上述條件時,將為無限多組解,當大於上述條件時,將得到近似解。

這段說得很饒口,我再舉一個簡例,大家都會線性回歸吧?線性回歸直接有公式算,在 Excel 只要在圖上按一下滑鼠右鍵就可以加入。
y=ax+b

有兩個變數 a, b
當只有一點 (x1,y1) 時,可以決定出無限多條直線方程式。
當有兩點 (x1,y1)、(x2,y2) 時,可以得到唯一一條直線方程式。 (這兩行是國中數學)
當有三點 (x1,y1)、(x2,y2)、(x3,y3)、…、(xn,yn) 以上時,可得到一條近似方程式最接近所有的點,也就是回歸方程式。 (這行是高中數學)

所以從上面的簡例可以知道,要有一個正確解,至少方程式要大於等於變數量,你才能得到唯一解或近似解來接近真正解,而不是無意義的無限多組解來拚運氣。

以 BPN 來說,參數量很好計算,是依據反應函數方程式來推,所以一層隱藏層就是 3 次方的參數量,而要學習的數據有限,所以只能透過降低參數量來改善過度描述的問題。

比如說一個七次方程式如果因為曲率變化不大,我們可能可以降階到改用三次方程式描述這個函數,所以就減少了四參數。

因此,我需要修剪我的 BPN ,把不重要的因子去掉,保留重要的因子進行分析,所以透過敏感度分析後,把影響不大的變數優先移除掉,以確保我的變數量小於我要學習的組數。

如果是說倒傳遞網路 (BPN) 的批次學習,我的理解是參數量x6 是最少的批次學習尺度,參數量的計算是 神經元數 + 兩兩層數相乘,假設是標準的超越函數,原因是依據數學方成組理論來,變數大於方程組,無限多組解,變數等於方程組,唯一解,變數小於方程組 在目標函數下跑最佳化才有意義,也就是說學習才有意義。大於參數量 是有義解,3 倍學習量是建議最小值,如果是高度非線性,例如三角函數,至少需 6 倍學習量才能良好的描述,所以學習的筆數少於參數量,從數學來看是無義解。

我是覺得當時我碩士論文針對 ANN 找到這些重點算滿大貢獻的了,不過青睞的人不多,還好葉怡成教授看上了,還發個 eMail 給我說要放到參考資料內,我 Outlook 內還有留 1997/11/21 回給葉老師的信…

碩士論文全文可到臺灣博碩士論文知識加值系統下載:https://ndltd.ncl.edu.tw/

鄭子璉,「分佈型類神經網路降雨逕流模式之研究」,碩士論文,國立成功大學水利及海洋工程研究所,民國 85 年 6月。

當然直接在臺灣博碩士論文知識加值系統可以搜尋到更多其他人的論文,做研究這個網站很重要。

當兵的時候,指導教授有要我把論文精簡後投研討會論文:http://www.tlcheng.tk/Paper/ANNRunoff/97topic.htm

當兵的時候,慢慢的想通所謂的學習,就是等同參數最佳化,就是非線性規劃的一種,ANN 通常採用的反應函數都是超越函數,透過微分 (牛頓法) 得到參數變化率的斜率,針對該斜率修正參數,逐步逼近最佳參數,達成最佳學習。

這裡面又有兩個關鍵點:
1. 參數最佳化
2. 評估函數 (目標函數)

首先先談參數最佳化。
牛頓法由於透過斜率為 0 來逼近最佳解,從高三數學教微積分就會教到,這會掉到區域最佳解。所以 ANN 透過多次亂數為起始值進行學習,來盡量找到全域最佳解。
非線性規劃屬於數學規劃的一種,而非線性規劃裡面談到最多的就是怎樣閃掉區域最佳解,所以為了解決這個問題,發展出多種參數逼近的方式。
在人工智慧裡面有個旁支是遺傳演算法,遺傳演算法若從非線性規劃的角度去解釋的話,可以當成格網縮放法 + 隨機格網,可以找到很多研究關於類神經網路與遺傳演算法的混和應用,我個人對於那種把兩種方法分兩步驟用的,沒有感覺,我認為拿遺傳演算法來做學習的,才叫做混和應用。
比如說牛頓法的原理是微分斜率為 0 ,重點就是連續可微。但是實際的應用大多數是有界的,就會產生不連續面,也就是不可微分點,如果還硬用牛頓法硬套,很大的可能結果是一直落在邊界附近的區域最佳解。
這種情形數學理論上來說,應該改用可處理有界或是不連續的非線性規畫法來推參數,也就是所謂的學習,而不是直接用既有的函數庫硬套學習,牛頓法如果能成為通解,後面也不會有一堆數學家研究非線性規劃的方法冒出來。
當然,非線性規劃有很多方法,用其他方法來取代牛頓法進行學習都是提高 ANN 的價值,回到老問題,想要做到這件事,就得自己開發軟體。

其次很重要的是評估函數。
大多數 BPN 可能會用均方根誤差來做評估函數,均方根越小,就認定參數越好,均方根縮小的曲線,就被稱為學習曲線。
很多軟體允許使用者選擇評估函數,但是也是有限的幾種。
從前面討論的線性回歸來看評估函數,線性回歸的公式應該是高二下在教,是利用 y 軸的最小距離平方法來推導,又稱最小平方法或是最小二乘方法。
均方根顧名思義,就是把誤差開根號取平均,最小平方法就是把誤差取平方。兩個在應用上的差別是容易受少數特異點影響,而造成回歸式改變,而均方根誤差,則是因為不受少數特異點影響而改變。
舉個例子好了,比如說要預測雨量,以南部地區來說大部分的情況下是不下雨的,只有少數情形是下雨。所以我不用任何 AI 模式或衛星雲圖,我直接給你 f(t+1)=0 ,也就是說我永遠預測未來一小時後降雨量為 0 ,我的準確率可達 98% 以上,因為南部下雨天數少於 60 天,所以算起來超過 98% 是不下雨的,那麼我到底準還是不準?以降雨預測資料進行學習,若使用均方根誤差,則預測的降雨會偏向 0 ,若使用最小平方法,則預設的降雨會比較大,因為小值的誤差,平方後幾乎沒影響,大值平方後影響就會很大,所以預測的結果就會跟著變化。
拿線性回歸來玩,可以玩甚麼?不要再套用線性回歸,而改用非線性規劃來推估
y=ax+b
的 a, b 兩參數。
比如說就用最小均方根誤差、最大相關係數來比。
我找到了一篇剛好在討論這件事,也用了線性回歸來檢討:
機器學習大神最常用的 5 個回歸損失函數,你知道幾個? https://buzzorange.com/techorange/2018/06/22/computer-learning-5-tips/

從輸出資料的特性,需正確選對評估函數,再使用此評估函數進行參數最佳化 (學習) ,整個設計的模型才會有意義。

用非線性規劃去做 ANN 的參數最佳化是退伍後才領悟的,放在前面是為了比較好的說明,當兵時主要想通的是評估函數這塊。退伍後,回到成大做研究助理,考博士班,所以回學校後就繼續參加研究會,那時相關的論文就多了。

我 ANN 的 VB3 原始碼先給一位直升碩士班的大四吳學弟做直升生的專題研究。

念博士班以後,把我原先的 ANN 模式升級到 VB6 後,幫一個無心唸碩士的學弟做颱風降雨預測。 (http://www.tlcheng.tk/Paper/rain00/rain00.htm)

類神經網路的 VB6 原始碼

類神經網路的 VB6 原始碼

又到資管及工業管理研究所去念數學規劃,才把這塊讀通。到了博三升博四的那年暑假,指導教授要我自己列研究方向決定博士論文,我列了六個方向,其中類神經網路部分,當時有個逢甲來的博一陳學弟碩士做這塊,指導教授要我讓給學弟,最後依據系上大老蔡教授的建議下,走第七個方向 Hydro-Information ,所以才把人工智慧擺在一旁。

AI 人工智慧,在現代資訊技術進步下,應該明確的重新定義。

人工智慧的核心在模擬思考,只會計算的,那叫做計算機 (computer) 。
人腦不是記憶龐大就會產生智慧,更不是透過雲端查詢問題解決方案 (你以為打電話給廠商客服就算你有智慧嗎?)
人工智慧的
第一步是建造出模擬人類思考的正確模型,類神經網路只是簡化後的 Lite 版。
第二步是正確思考。
第三步是獨立思考。
第四部是創造性思考。

換種想法吧,就像養小孩,第一步老天爺做完了,所以第二步是你要教小孩甚麼是對的,第三步是你要信任小孩做正確的事,第四步是他能創造出新的價值。

所以 AI 的核心在第一步。
那麼跟雲端有啥關係?是認為目前電腦的計算速度跟儲存速度比不上人腦嗎?
演算法建模並驗證完成後,成為一個穩定的產品時,才是考慮雲端的時機,就跟檔案空間一樣,一台電腦只能服務你,一台雲端可以服務無數的你。
開發測試 AI 是小範圍的事,已開發完成的 AI 服務大眾才需要雲端,至少是第六步以後的事。

很多人把 AI 過度神化,我就問個問題,我現在要算 4 個數字的平均。
麻煩使用 AI 模型建立平均的架構,我要求也不高,算出來的平均誤差在 1% 以內就好。

ㄜ…

我以前玩過,會讓你懷疑人生,不是,是懷疑所謂的人工智慧。這種類型的硬要凹人工智慧的話,應該改用專家系統做,當然啦,平均直接用個函數就算出來了,是誰教你用所謂的人工智慧做?當然未來希望能整合進人工智慧裡,那就是要像人腦一樣,分理性跟感性,專家系統做理性,類神經網路做感性。

就跟幾年前雲端大熱一樣,雲端不就是伺服器(群)?改個名詞而已。

目前的人工智慧比較流於前人開發好的架構去套用,比如說人臉辨識的架構去套用不同的人臉沒啥問題,你拿來用衛星雲圖預測颱風路徑試看看。

人工智慧的模型、評估函數、參數最佳化、反應函數都是實務應用的重點,目前並沒有標準化的模型,深入理解後架構出來的東西才有意義。

不要跟幾年前雲端一樣,一頭熱不知道在熱啥。

 

Categories: 技術分享, 決策支援系統 | 標籤: | 發表留言

[Outlook] iOS 寄來的信件亂碼


從開發者的角度來看,貧果的技術真的很差。

iOS 都到 11 版了,它的內建郵件軟體還不能設定寄件編碼。

依據 RFC 多媒體郵件 MIME 規範,信頭要標記郵件編碼,軟體才能正確的解碼。

關於 MIME 信件格式架構圖可參考這篇:Outlook 亂碼問題

在台灣最常碰上的就是從 iPhone / iPad 寄來的郵件是亂碼。

今天同事丟來一封信,無法辨識,從關鍵字來看就可以找到 iPhone 發出。

Outlook 2016 變更編碼

Outlook 2016 變更編碼

註:圖上破碎的字塊是故意圖形處理,避免郵件被人工解碼。

早先的 Outlook 版本,收信時就會將信件轉成 Unicode 編碼,如果轉碼錯誤是沒救的。

在台灣由於預設編碼通常為 big5 ,iOS 當出現日韓簡罕時,可能是選字造成 (廢話,一堆長很像的小字,不能分辨是繁體或簡體也是正常的),可能會自動採用簡體來編碼郵件,Outlook 還可以設定使用外寄編碼,例如 utf-8 ,就不會有解碼問題。

收到亂碼信請千萬記住,是寄件端問題,寄件端未依規範編碼,導致收件端無法採用正確解碼,只能依照電腦預設編碼解碼,要改編碼時,優先依照寄件者國別去猜,其次是常用編碼,例如 utf-8 ,當然幾大語系也是猜測重點。

  1. 在 Outlook 2013/2016 可以依照上圖變更編碼,選單的 [動作] > [其他動作] > [編碼] ,以這篇來說改用 簡體中文 就可以解碼。
  2. 如果沒有 Outlook ,我個人習慣都會安裝 Live Mail 來檢視與調整,從 WebMail 下載原始郵件為 .eml 格式,再給 Live Mail 解碼。
  3. Live Mail 在 2017/01/10 被微軟下架,大多數人是沒備份到,所以還有一種做法,把 .eml 更名為 .mht ,給 IE 開啟,就可以在 IE 解碼。
  4. 我自己有寫一個加解密編輯程式支援 .htm / .eml / .mht 預覽,其實就是用 WebBrowser Control 去開啟這個檔案,改編碼時用 TextBox 改,再把內容餵給 WebBrowser Control 預覽。

講實在的,iOS 只是包裝好,技術不怎樣,但我也很佩服貧果,一堆人反映缺寄件編碼就是不改,這大概是為了讓其他 App 能夠生存吧。

資訊人員只好自救啦。

Categories: Office, 工作點滴, 技術分享 | 標籤: | 發表留言

在WordPress.com寫網誌.

%d 位部落客按了讚: