星期六, 6月 25, 2022

吐槽 VB6

 最近又一次受 VB6.0 荼毒迫害。

最近和其他單位同事合作回溯性分析,分析公司用戶資料。資料能透過資訊系統一筆筆查,問題是筆數多(N>2K),資料分散在不同報表程式和網頁表單上。因各種因素,不能直連 production DB 下 SQL。反覆請人代撈實務不可行。但政策不禁自動化軟體代替鍵盤滑鼠操作報表軟體,只要遵循審查流程。

然後就又跟 VB6.0 槓上了。很大部份資料需透過一 VB6.0 報表軟體查詢。報表軟體上有 ListView 顯示用戶的多筆紀錄,操作者點選 ListView 上的紀錄,程式跳出對應該紀錄的進一步細節。

真人鍵盤滑鼠操作沒啥問題,用自動化 VB6 就開始不講武德。

在家中做模擬,就發現 MSDN 上的東西很多對 VB6 沒用。例如,MSDN 說 LVM_SETITEMSTATE 可以改變 ListView 目前被圈選的 item。實際使用畫面上 ListView 被 highlight 的 item 會變,但後續 side effect 不會觸發。又例如 MSDN 說 LVM_SETITEM 可改變 ListView 呈現的資料,結果實際使用只會改畫面上的資料,隨便重排資料修改就不見了。

那用 code injection 解決呢?很久前就試過,VB6 編出來的 code 本質是編成 native code 的虛擬機操作,大量意義不明的中間變數和莫名操作,一切 control flow 最終回歸 MSVBVM60.DLL 和元件庫。有效操作被嚴重稀釋。逆向天然自帶虛擬機的 binary 嚴重超過我業餘用戶的能力,我連自己寫的 mock 都沒辦法分析,生產環境中的報表軟體就不用試了。

最後,又一次倒在 VB6 鐵拳之下,還是只有模擬鍵盤滑鼠按鍵的方式可行。方案沒技術含量,而且使用期間電腦不能操作,但自動點選存資料還是弄出來了,之後走審查流程後就在公司內正式開發、使用。順利的話能解決分析需求,還有機會與另外一個 side project (搜尋引擎)形成連動,做成一條龍。

業餘 side project 坑好像越挖越大,一開始是好玩,然後是實用,現在目標變成發展產業鏈了 XDD。但還是要吐槽 VB6,根本就上個時代的遺毒...

全文連結

星期四, 6月 23, 2022

讀書:程序員進階心法:快速突破成長瓶頸

博客來

書本其實並沒有單一的主題,而是將有關程序員成長的方方面面,從入行、職業路線的進階,為人處事、找工作、如何寫好代碼等都全部帶到,而且都有足夠深度。感覺是長期累積的心得文集。有人說這本書應該可以多讀幾次,每次都能感受不同的醍醐味。

全文連結

星期四, 6月 09, 2022

高等數學同濟七版

亞馬遜連結

最近很多研究活動在數學上撞牆,只好拿書回來念。目前快唸完第三章,做了點習題。目前學起來還算舒服,連我這奔四並且數學倒退到初中程度的大叔都勉強能跟上,有些東西跳著看,例如三角函數或曲率這累跟我本行沒半毛錢關係、業餘研究很可能也用不到的就不客氣的跳了。

這書知乎評價看來普通,有人說這套「如果你不是美食家,也不是嚴格控制營養攝入的運動員,只是想舒舒服服吃頓飯,同濟版高數還是很不錯的。」不過我只是想用最短時間,快速學過自學工科需要的數學,應該也夠用了。未來想更進一步再換更好但更花時間的教材吧。不想學數學的工程師不是個好醫生(?)




全文連結