發表文章

[System] VMWare(vmdx) convert to hyper-v

公司電腦全面更換為 Win10 之後,如果要執行 VMWare 虛擬機器,必須將 Hyper-V 功能關閉才可使用。 錯誤訊息: VMware Workstation and Hyper-V are not compatible. Remove the Hyper-V role from the system before running VMware Workstation .  如果仍要使用 VMWare 的話,可參考這篇 VMware 與 Hyper-V 的相容性問題 。  那如果想要將 VMWare 轉到 Hyper-V 該怎麼做呢? (GOOGLE 找好久,決定紀錄下來以免下次找不到)  破題,請參考這篇 VMware 虛擬鏡像轉 Hyper-V  總結如下:  工具: 1. Microsoft Virtual Machine Converter 3.0 2. dsfok tools 步驟: 1. 安裝完 Microsoft Virtual Machine Converter 3.0 之後,打開 PowerShell 2. 鍵入 Import-Module "C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1" 3. 鍵入 ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "D:\vmware\WorkArea\Win7x64_MySQL\Win7x64.vmdk" -DestinationLiteralPath "D:\hyperV\WorkArea\Win7x64_MySQL" -VhdType DynamicHardDisk -VhdFormat Vhdx 如果出現以下訊息,就繼續執行第4步驟 ConvertTo-MvmcVirtualHardDisk : The entry 1 is not a supported disk database entry for the descriptor. ......... 以下略 4. 出現上述訊息就輪到 dsfok tools 上場了 先切換到 dsfok 的目錄,...

[Debug] PC Chrome Debug Mobile Chrome

圖片
桌機、手機的 Web 環境不同,有時桌機可以正常,手機卻異常的狀況。 可是桌機瀏覽器還可以開啟 DevTools看看問題何在,那手機怎麼辦??? google 不虧是 google,這種狀況都設想到了。 作法簡略如下: 1. 桌機及手機先用 USB 連接 (相關 Driver 請確定有安裝成功,我的是 ASUS) 2. 手機開啟開發人員選項 (手機關於中的版本號碼點七下) 3. 手機開啟 USB 偵錯功能 4. 將桌機及手機的 Chrome 打開來,在桌機的 Chrome 網址列打上  chrome://inspect/ 5. 下圖中標示1的功能,可以指定手機開啟特定網頁 6. 下圖中標示2的功能 Inspect,可以在桌機開啟 DevTools並操作手機網頁功能 7. 下圖中標示3的功能 Inspect fallback,在上面有提示了。 Remote browser is newer than client browser. Try `inspect fallback` if inspection fails. 8. 傑克,這真是太神奇了 文章來源: 使用 PC 版 Chrome 來 Debug 手機版的 Chrome

[IIS] 自我簽署憑證來啟用SSL

圖片
文章原由,手機開發 Web 掃描功能的應用,要使用手機上鏡頭必須在 https 下才可以開啟,測試的環境有此需由,故採用自我簽發的憑證。 操作簡略如下 1. 在 IIS 管理員下找到 "伺服器憑證",點擊兩下以開啟 2. 在右方找到 "建立自我簽署憑證..." 3.  取個好記的名字 4. 在網站右邊,找到 "繫結" 5. 設定開啟 SSL 來源如下: 技巧和訣竅:在IIS 7.0上使用自我簽署憑證來啟用SSL

Vue 多螢解決方案

先記錄一下,作為日後學習的目標 因緣際會學了一套前端框架 vue,深深覺得日後會是javascript的天下,為了在電腦、手機、瀏覽器,甚至是日後IOT裝置,都能一次開發,多個平台適用,不依賴任何os就可以達到跨平台的,企業選擇開發語言一定會以此作為考量 1.Vue 可以在瀏覽器上運用 2.搭配 electron 可以開發桌面應用程式 3.Vue-Native 可以開發手機app

2018 年終回顧

好羞愧呀,這一年幾乎沒有寫什麼內容,可是回顧過去一年自己在作什麼還是很重要的。 是說依舊在寫程式,但是靠著月薪實在沒辦法達到財富自由,因緣際會下認識一些在作程式交易的朋友,看他們買策略買程式在股市廝殺,那為什麼我不自己寫? 我有能力寫程式、收集資料,光起跑點就贏過還在手寫筆記的人, 既然寫程式是興趣、賺錢也是興趣,就作了吧! 不過程式問題可以想辦法解決,抓資料、爬蟲、定時Line回報, 訂指標、寫策略、回測、選股,都是小事。 但"事情不是像憨子想的那麼簡單",賺錢這檔事真的沒有絕對, 資料很多、策略很多,但是市場不是可以預測的,在股市操作的心法、整體環境的氣氛更是重要。總之賠了一些錢,不過隨著幾個月盯著股市的經驗,感覺自己在這方面也有不少成長,就當作是繳學費吧。 至於程式自動化交易,目前看來期貨還是王道,不過我不是很了解期貨交易賺錢法門,單靠技術分析真的會賺錢嗎? 在期貨上沒有下一步動作,所以還是在用程式在現股作篩選而已,希望有朝一日可以找到自己的賺錢策略。而在這股票相關的程式裡,簡略寫下作了哪些事情 1. StockManager: 管理介面程式,提供操作介面、訊息通知、同步作業、各項策略的執行介面 2. StockStructure: 資料表物件定義及各項邏輯結構定義 3. StockEvent: 代理執行作業過程中的非同步作業及管理事件執行 4. StockInidicator: 股票指標物件,使用 Ta-lib 函式庫做出各項技術面、籌碼面指標 5. StockStrategy: 策略物件,區分為選股策略、買賣策略、下單策略,各項策略可互相搭配使用 6. StockHelper: 負責資料庫存取及實際爬蟲作業 7. StockAnalyzer: 分析股票物件漲跌勢區間及該區間的各項指標運算 8. StockUtils: 自定義函式 9. BackTesting: 回測方式分類 10. IMMessage: 訊息通知介面及實作 11. SKCOMTester: 群益證券 API 參考 12. TestStock: 測試使用的 Form 13. SportingAppFW: 先前以VB.net所寫的強大框架,提供Oracle、SQL Server、SQLite ORM架構、自製windows...

[Demo] Demo SportingAppFW.SaMultiRangeBar

圖片
最近兩天寫的 Component,在 winform 的平台上,找不到合用的,只好自己寫。 功能是在各種級距的設定上,希望能有更友善的輸入介面。 如下圖,可以透過拖拉、級距輸入框設定級距數值。並在下方自定義的輸入框, 定義該級距的標籤。 github repository: Demo SaMultiRangeBar 歡迎發 PR 給我,謝謝

[開源] SportingAppFW: total solution framework in vb.net

個人在編寫程式的過程,慢慢建立屬於自己的框架。 目前不設進度,不設限,也就是這框架會依照我的開發狀況隨之更新。 歡迎發 PR 給我,謝謝 github repository: SportingAppFW

2017 年終回顧

又到了一年一度檢視過去自己著墨在那些地方,這次就從軟體趨勢熱門程度作為角度來檢視自己聚焦的力道。 PS. 軟體趨勢為個人感受,不具任何代表性意義 去年 2016 年至 2017 年續航力最好的,大概就是 AI 的話題。 AI 牽涉的範圍廣泛,從 fb message bot、line bot、slack bot、telegram bot...etc 這類 bot 平台的出現,還有各個 bot 整合開發平台的出現,感受的出來 bot 的建置越趨成熟,接下來看是不是有突破性的應用了。 這類 bot 背後加上機器學習,會得到更強大的使用者經驗及應用。 所以目前在風頭上的大概就屬機器學習了,整個趨勢感覺還在成長,未來的發展不可限量。 討論度變少的就是穿戴裝置跟IoT了,來預言一下,接下來 1~3 年聚焦重點應該是機器學習這類資料科學跟AR/VR/MR了。 為什麼這麼說呢! 因為 Magic Leap 這個神秘了六年的獨角獸,明年初第一個產品要推出啦!雖然是開發者版本的頭戴式裝置, 但是背後主要的科技重點是 AR/VR/MR,我好期待這吸金的新創產業,到底要端出什麼樣的菜呢? 回到正題,在風頭上的 AI,與之相關的聊天平台機器人作業,這一年來我又作了什麼呢? 一、Line Bot:     1. 從原本的 python2 migrate 到 python3     2. 實作部署到 heroku 二、Machine Learning:     1. gossip_gensim 八卦版鄉民斷詞分析 三、IoT:     1. nodemcu 開發版實作,磁簧開關觸發後透過 Line Bot 傳送訊息 除了上面這三件事之外,比較值得一提的條列在下面 四、DevOps:     1. 手工建置 CI 進行自動化部署作業 五、程式碼編輯平台:     1. visual studio code : 原本是用 sublime,後來轉換到 vs code 之後,就黏住了,果然維持著微軟的高品質。     2. visu...

[Note]程式碼存取安全性原則工具

1. Visual Studio 2008 命令提示字元 2. caspol -addgroup All_Code -zone Trusted LocalIntranet 參考: HOW TO:使用 Caspol.exe 加入程式碼群組

[程式佈署作業]

現在這個年代有版本管控可以使用,但是為什麼總是線上環境的程式, 總是找不到 Source,不然就是 Source 對不起來。 這一定是管理有問題,矇著眼睛在作事。 以往都是直接拿執行檔更新佈署,而某負責部署作業的同仁可以這麼無腦部署, 我也是醉了 (我菜比八沒資格說話)。 這次有機會負責網頁部署作業,怎樣也不能讓網頁陷入程式跟 Source 對不起來的窘境, 決定自己來土砲個佈署作業。 首先,為了避免程式跟 Source 對不起來,這個版本管控的簽入、佈署一定要綁在一起, 不能各自作。 一定要有 Source 才能更新程式,所以第一步要想辦法從 Source 主機上自動下載, 公司是用微軟 TFS,以下都用 TFS 作為例子吧! ---- 第一步 下載 Source ---- 慶幸的是 TF 命令列只要備妥幾個 dll 就可以了, 於是把本機的相關檔案直接 copy 到網頁主機上。 備妥以下檔案: Microsoft.TeamFoundation.Client.dll Microsoft.TeamFoundation.Common.dll Microsoft.TeamFoundation.Common.Library.dll Microsoft.TeamFoundation.dll Microsoft.TeamFoundation.VersionControl.Client.dll Microsoft.TeamFoundation.VersionControl.Common.dll Microsoft.TeamFoundation.VersionControl.Controls.dll TF.exe TF.exe.config TF 命令簡略如下: 1. 建立工作區: (SERVER NAME 我們是用 http://[SERVER NAME]:8080, 所以請視各位的環境設置)     tf workspace /new /server:[SERVER NAME] 2. 自 TFS 上下載     tf get [SOURCE PATH] /force /recursive ---- 第二步 建置程式 ---- 看到上面是用 TFS,可以猜的出來建置程式要用 MSBuild 吧! 公司環境是...

[分享] visual studio tools

圖片
  1.       dumpbin /headers [FILE_PATH] Description: dump exe/dll header information 2.       corflags [FILE_PATH] Description: exe/dll is running on 32bit/64bit platform If exe/dll is building with Any CPU, you will see     PE: PE32     32BIT: 0 Else if exe/dll is building with x86, you will see     PE: PE32     32BIT: 1 Else If exe/dll is building with x64, you will see     PE: PE32+     32BIT: 0

[開源] gossip_gensim 八卦版鄉民斷詞分析

開源的部份請見連結 gossip_genim in github 作法參考 以 gensim 訓練中文詞向量 訓練資料是之前從 ptt 八卦版爬下來的文章及推文,資料範圍大概是 2017年4月下旬發文 及推文的文字內容。 原本爬下來的推文是用來做 ChatBot,希望這 ChatBot 能以鄉民的口吻跟使用者聊天。  使用 python library ChatterBot ,正所謂魔鬼藏在細節裡,當所有詞句都塞進去訓練後,  因為資料量過於龐大(其實我覺得並不多呀~~),反應非常緩慢,一句話要數分鐘才有  反應,嘗試就效能的部份改善這 ChatterBot 專案,還是無功而返,現在就邊走邊看是不是  有更好效能的版本推出囉! 回過頭來,八卦鄉民斷詞分析的結果還是來看一下吧! 這裡的示範就不要跟 github 一樣,來看看有什麼好玩的。 道德感 相似詞前 10 排序 鄉願,0.9327921271324158 出於,0.9301384091377258 半斤八兩,0.9297078251838684 不同於,0.9280074834823608 大開眼界,0.9261846542358398 不一,0.9260203242301941 情意,0.923358678817749 人們,0.9223132133483887 身處,0.9210435748100281 字詞,0.9183312058448792 ---------------------------- 情意 相似詞前 10 排序 特質,0.9544895887374878 出於,0.9533513784408569 抨擊,0.9482460618019104 世俗,0.9448075294494629 無論是,0.9444169402122498 這裡面,0.9436346888542175 Bl,0.943479061126709 得以,0.9434195160865784 一代宗師,0.9433241486549377 邏輯性,0.940061092376709 ---------------------------- 流動 相似詞前 10 排序 情慾,0.8976155519485474 憧憬,0.883830547332...

[Solved] Spam email from AutoMSW

Part I: 上星期六在公司的郵件信箱收到來自屬名為 pchome 廣告信一封,起初沒放在心上就丟進垃圾捅了,只覺得很疑惑,公司的信箱從未在公開的網路上填寫過,難不成內部流出?還是有間諜軟體在我電腦裡? 這已經超出我的能力了,先這樣吧! Part II: 星期三收到一樣類型的信件內容來自屬名為 Yah00電子報兩封。 好吧!你成功吸引到我的注意了,內容是這樣 ------------------- 吃這水果降低可怕文明病 日本濱松醫科大學和農研機構的共同研究,針對一千人進行長期的健康追蹤調查,研究橘子的營養與健康狀態之間的關聯。結果發現血液中橘子的成分含量越高的人,越不容易得糖尿病,也不容易有非酒精性的肝功能異常… (繼續閱讀…) ------------------- 當然我也沒有笨到去按 (繼續閱讀...),特地看了一下連結的網址是指到 163.29.157.240,可是這 ip ping 不到呀!就算我點了 (繼續閱讀...),是能做什麼? 好吧!你又成功吸引到我的注意了,這垃圾信是發心酸的嗎?沒有假網站?沒有詐騙?沒有推銷?沒有病毒?發爽的?為了丟垃圾而丟垃圾? 抱著疑惑又把這兩封信丟到垃圾桶去。 Part III: 今天星期五又寄來了,這次給三封一樣的信,屬名為 ETToday。我不禁在想如果我都不理會,是不是下次就會寄四封、五封、六封... 我該好奇一下最終他會寄幾封給我嗎? 雖然直接設垃圾郵件就好了,但是會不會他只是想癱瘓 mail server?雖然這也不關我的事情,但是偵探性格又出來了。 直接把 mime header 拿出來看,嗯~ 都是些沒用的資訊,紀錄從公司的哪個 SMTP Server 來的、發信的 ip 是從哪裡來的, 拿 ip 去餵狗得到一堆在 ptt 的網址,要不是這 ip 是動態 ip,就是發這垃圾信的人也是鄉民。 證據不足還是不要先把罪灌到鄉民身上。 倒是看到一行 X-Mailer: Auto Mailer (www.automsw.com) ID: 1385853 拿 automsw 去餵狗,原來是個發信軟體,後面還帶了 ID,這不會是他們的客戶 ID 吧! 我不要臉的用破英文去問 automsw 客服,看能不能問到幕後主使者是誰? 哎唷!客服回信的速度超快,兩三分鐘就回信了,大意就是客戶資料不能提供(意思是被我猜對了,那是客...

[Solved] Bot 同意資料取得的網頁一直跳出

圖片
5/31 Line 全面更新 7.5.0 之後,透過 Messaging API 在 Group 裡,總算可以取得發言人的 User Id。 我一直很好奇,在這之前 Bot 在 Group 裡誰說話都分不清楚的情形下,能發展出什麼應用,因為對 Bot 來說都是同一 Group Id 在說話,那跟對單一 User 對話有什麼不同? 在 7.5.0 版本上路之後,一切都有了新的開始;不過當你加入群組之前,可能已經有 Bot 在裡面,而你在不知情的情形下,加入了有 Bot 的群組裡,而這個 Bot 可以取得你的 User Id,這對於注重隱私的我們來說,這可是大忌,所以眼尖的各位一定發現了,Line 會自動跳出網頁,要求你同意將帳號資訊分享給 Bot,如果你不同意,Line 就會一直跳針似的,在你每次與 Bot 相遇的時候,一直問你一直問你。 好啦!其實我沒有不同意,但是 Line 就是一直跳出來問我,按了同意也還是再問!開了幾十個網頁都在問同不同意,煩死了。 花了點時間了解一下原因,原來是因為預設瀏覽器是 Firefox 的關係,有在使用 Firefox 的各位,一定有發現,當你在其他 app 點選開啟網頁的時候,Firefox 會開在後台 (background),不會帶到前景 (foreground),再按一次網頁連結,才會把 Firefox 叫出來。 就是因為這個原因,導致 Line 同意頁面的功能失效。 怎麼辦呢?請到應用程式裡,把預設瀏覽器改成其他瀏覽器吧!填完同意書再改回預設瀏覽器吧!我還以為是 Line 出包了,大家的同意書都是寫假的。 給跟我有一樣情形的朋友,參考參考。 Line Messaging API: Obtaining user consent

Python Stack & Queue?

有了先前一些小專案的練習,現在回頭看書看到 Iterable、Iterator 的章節,想著這不就是Stack & Queue 嗎?  趁還熱騰騰的,把它寫下來吧。 >>> #python stack ... >>> a = [] >>> a.append(1) >>> a.append(2) >>> a.append(3) >>> a.pop() 3 >>> a.pop() 2 >>> a.pop() 1 >>> >>> #python queue ... >>> a = [] >>> a.append(1) >>> a.append(2) >>> a.append(3) >>> b = iter(a) >>> for c in b: ...   print(c) ... 1 2 3 >>>#python queue >>>#好啦. 當然也可以這樣做 >>> a = [] >>> a.append(1) >>> a.append(2) >>> a.append(3) >>> a.reverse() >>> a.pop() 1 >>> a.pop() 2 >>> a.pop() 3

[記事] VMware Workstation 12.5.5 Player Port Forward

筆記一下,現在的版本是 VMware Workstation 12 Player Version 12.5.5。 之前用 VMware Player Version 6.0.4 的時候,如果要做 port forward, 第一步要修改設定檔 (C:\ProgramData\VMware\vmnetnat.conf), 第二步要重啟 VMware NAT Service。 VMWare Workstation 12 Player 這設定檔還在,可是怎麼設怎麼重啟服務都沒有用。 好不容易找到的方法,一定要記下來。 參考: Download vmnetcfg.exe & vmnetcfglib.dll for VMware Player 連結裡面 Version 12.1 vmnetcfg.exe 經過實驗是可以使用的。 (稍微備份連結 For VMware Workstation Player 12.1.0: Download ) 將下載的 vmnetcfg.exe 放到電腦裡的 VMware 安裝路徑下執行,就可以設定 port forward。

migrate line bot webhook from python2 to python3

總算把原本用 python2 寫的 line bot 改成 python3 了。 有鑑於 python3 的成熟度越來越高,加上許多 library support; 以及目前正悄悄進行的 line bot 新功能 (先賣個關子)。 索性把整個平台轉到 python3 上, 這邊標注一下遇到那一些 python2、python3不同的地方(一小部份) Python2.7 Python3.4 備註 / / → int / → float; // → int urllib urllib.quota urllib.parse.quota urllib urllib.urlopen urllib.request.urlopen urllib urllib.urlencode urllib.parse.urlencode sys sys.maxint sys.maxsize The sys.maxint constant was removed, since there is no longer a limit to the value of integers. However, sys.maxsize can be used as an integer larger than any practical list or string index. It conforms to the implementation’s “natural” integer size and is typically the same as sys.maxint in previous releases on the same platform (assuming the same build options). https://docs.python.org/3.1/whatsnew/3.0.html#integers range xrange range python2 xrange = python3 range,pytho...

[心得] nodeMCU 開發語言

圖片
從一開始以為 nodeMCU 要用 Lua 開發,到後來發現 arduino IDE 也能開發。 從一開始以為 nodeMCU 要先燒 firmware,到剛剛試用 arduino 才發現 arduino 沒有這步驟。 從一開始用 ESPlorer IDE 覺得介面很難懂,到剛剛試用 arduino IDE 才發現原來 arduino IDE 進步到支持中文介面,而且字型挺耐看的。 以下是我現在所認知的 nodeMCU 兩種開發模式(有錯的話,還請指教)   IDE 不用Lua 或 C++ 語言來分優劣勢的話,還是 arduino IDE 美觀的多。 函式庫的支持度來說,我想 arduino 更勝一籌。 執行效率不用說, script language 居於劣勢,C++ develop 勝。 開發時的方便性,當然是 Lua 的好,直接上傳檔案到開發版就好了,馬上就可以看到結果。 我想下一個專案就用 arduino IDE 開發吧!

nodemcu 開發篇(三) - 畫面

圖片
來看看 Line 收到訊息的畫面 落落長,不過也就兩種訊息,一個是開發版接上電源並且連上wifi後,會自動發送的初始化訊息,訊息內容展示 IP 位置,可以透過瀏覽器連上此位置做開發版設定,當然初始化訊息是可以客製的,等會會展示設定的頁面。 另一個訊息是當開關被觸發時,發送出來的訊息,罐頭訊息一多起來,連最後一點美感都蕩然無存了,有人有好想法美化罐頭訊息嗎?歡迎跟我分享。 接下來就是設定頁面的展示 首頁 Sensor Behavior 設定門窗開關感測器的行為 AP Configuration 開發版到一個新的wifi環境時,提供 AP 功能用以設定 wifi 環境使用的 SSID、Password、IP 位置 WIFI Configuration 設定接上電源後連接的 wifi 帳號密碼 Line Notification 設定要通知的 Line ID、客製化訊息內容 Chart Display 記得前面一篇架構圖裡有畫到 firebase 的部份嗎?運用資料然後透過 HighChart 做資料的展示 About 就是關於我啦! Sensor Behavior Name 這個裝置的名字,放在大門口所以叫做 Front Door,可以視放置位置命名,用來辨識哪個裝置發出的訊息 Trigger 門窗開關感測器觸發動作可以有關閉時觸發或是打開時觸發 Power Save 省電設定,裝置作用的過程,最耗電的就是wifi連線,為了省電,可以設定每次觸發Line通知後,隨即斷開wifi。 但是一旦開啟之後會有兩個問題: 一是因為沒有一直連接wifi,所以無法使用頁面設定的功能,如果有設定的需求,必須重啟電源,設計在電源接上的初始階段,會連著wifi,此時就可以使用頁面設定功能。  二是當開關被觸發時,無法隨即送出訊息,必須重新連上wifi再發送訊息,測試會有1~5秒不等的延遲,視當時的網路狀況而定。 Sensitivity 觸發幾次才發送訊息,最左邊的High表示觸發1次就發送訊息 Reset Timer 設定觸發過後一段時間內,不再觸發,以免過多重複訊息的發送,影響體驗(原本在家使用,設定10秒,但是開關門還是各被觸發一次,因為開門之後會摸來摸去,就超過10秒了) AP Co...

nodemcu 開發篇(二) - 架構

圖片
實地操作的影片,等我有時間再弄。 架構圖如下 上圖關於設定感應器的部份,是直接透過 nodemcu AP mode 處理 http request。 初次使用時,尚未設定 wifi 連線,可以透過預設的 SSID、Password 連上開發版,透過瀏覽器指向固定IP 192.168.26.1 即可設定 wifi 連線及其他客製化設定。 事後檢討了這個架構,當物聯網裝置變多的時候,要逐台設定也是很累人的事情,尤其常常一個小功能就一個開發版,應該像小米智能家庭一樣,開發版要直接向 Server 註冊,並開放設定的 API,使用者可以透過雲端主機全面設定所有物聯網裝置,由主機向各個裝置發送相關設定。 當然還是存在初次設定wifi的問題,那就看騰訊的 airkiss 是不是能搶佔開發版連接wifi station 的協定囉,畢竟這塊 nodeMCU 有支援 airkiss。 而小米的智能家庭設備能透過手機app設定同一個區網設備的wifi,操作上很自然,小米跟騰訊兩家初始產品不同的公司,也紛紛在搶佔物聯網這塊大餅呀!