發表文章

目前顯示的是 12月, 2024的文章

資料清洗,事件檢視器二三事,工作筆記

圖片
 自開始使用LogParse後,在整理log就方便許多了。 在做log紀錄時發現到了一些異常(圖1)。 資料異常(圖1) 有多項錯誤指向「沒有智慧卡讀取器可用」(圖2) 沒有智慧卡讀取器可用(圖2)    去查了一下Log 發現到,H37200070012 這一台 竟然每秒上傳Log (圖3)。      從 2024/12/16  上午8:06 ~  2024/12/16  上午8:10 ,一共上傳了256筆。 每秒上傳Log(圖3) 這樣的狀況不太合理,問前輩後得知「醫院晚上都會關機,早上會在重新開機,不會一直待機」。 那這樣的狀況也只能算是1筆錯誤 。 當每秒都上傳Log時,就需要去注意是否哪裡有異常了、是否包含了哪些情況要去排查 心得 有的LOG 是先發生讀卡機錯誤 緊接著伴隨 上傳錯誤。 有的是 讀取卡片錯誤 導致 讀卡機錯誤。 像是骨牌效應,A錯誤後 伴隨著B、C。(圖4) 如果照以往 單純 用LOG 顯示的警示字 去統計資料會很好統計,但統計出來的資料可能就不準確。 若要真的去找出問題並給予建議 則需要在更細微的去察看到底是哪個環節發生的問題。 骨牌效應的log錯誤(圖4) 這時候就要去看當A發生時 ,是否有受到其他影響。 進而去提出是否該更換 讀卡機、配備....等

官網切版,工作介紹

圖片
這次的專案是做官網切版。 由於時間不多,目前只用2個禮拜做好前台RWD切版,後續還有些細節待條,目前還差後台RWD切版,找時間再切了。 https://www.emmt-system.com/officeweb   目前設計稿也關掉了 開發環境 這次預計使用的開發環境  後台框架是採用laravel (php) 資料庫mssql server 2022 前台框架 React 佈署環境 IIS 

關閉熱模組HMR更新,工作筆記

圖片
如果是用JS 框架,對於 npm run dev 一定很不陌生。 以svelte 來說,npm run dev  底層是呼叫vite 。 由於在某些情況下,需要關閉HMR(熱模組)做功能上的校條與監控。 這時候 就可以加入 hmr:false ,將熱模組關閉 (圖1) 熱模組HMR關閉(圖1) 這樣子在開發功能上,就可以透過f5 更新來做頁面觀察了。 心得 HMR 熱模組是雙面刃,好處是 不需要時刻更新按f5,有新的功能寫好就會自動更新。 換而言之,在撰寫功能時 時常也會看到404 畫面,因為功能還沒寫好 就自動更新了。 最近因為要觀察背景更新 和writeable 的狀況,就把hmr 關掉 做檢查。 在做檢查時 發現到 打包出來的環境 和 關閉hmr 的開發環境很像。 在檢查 和使用功能時,不仿也關閉hmr 進行測試,會有不少收穫。

最近看的書,易讀程式之美學

圖片
 最近找了時間去圖書館,看到了一本書「 易讀程式之美學 」(圖1)。 易讀程式之美學(圖1) 雖然這本書出版很久了,但裡面的內容很值得看。教你怎樣能把程式碼變得更易讀、細微的眉眉角角、為何這樣寫、最好的寫法不代表適合的寫法。 很多時候平時沒注意到或者照舊的寫法,是不是能讓你好閱讀、好理解。 其實做到後期,有很多時候要在code review 或者 重新改架構時,就會需要再花些時間去理解 「前人再寫什麼」 。 「你怎麼蓋房子就會影響之後的使用」 題外話     當我把這本書和師傅分享時,師傅說我在介紹你其它書(4本),這本書只是擷取其中一部分而已。       師傅:根打穩,不然你永遠都只是在練習 師傅的知識像榕樹一樣,又廣又深.....🙈🙈

php websocket ,隨手筆記

圖片
 今天玩了一下php的 websocket,用了 Ratchet 基本上都幫忙寫好了,可以按照官網提供的 範例  做一個chat-server.php 至於websocket的使用場景,則看應用的情況。 下面這是AI的回應。 用一個php websocket 做簡單的不同視窗對話

事件檢視器,.evtv 轉.csv超坑,工作筆記,經驗筆記

圖片
前情提要   最近每天都在觀察上線的evtx log,log 少說有1萬筆。 尤其要在log中找出異常和統計,在事件檢視器中 查看就很不好找資料,還是匯出來用excel 找比較快。 在事件檢視器中,有個另存檔案的按鈕,可選擇存.csv檔 在用excel 開,一切就是萬惡的源頭..... 另存.csv(圖1) 問題的起源 原本是用 事件檢視器 內建的功能去轉.csv ,但沒想到 裡面的內容過大... csv 會有遺失 怎麼比對資料.csv 和 原始的evtx 會對不起來,在原始evtx中是有錯誤內容,但轉成csv後 錯誤內容 有的會遺失😒 ....靠, 當所有資料都統計完了,卻發現怎麼內容對不起來 (小插曲...) 前輩: 你就一個一個看阿! 我: 一個就有3W多筆耶....後面還有20幾個耶。 發現好用工具 LogParse 去網路上找一下後,發現window 有出整理Log的工具 LogParse ,處理大量Log 和轉成csv 都不是問題,還能用下SQL 的方式 去處理資料。(圖2) logparse裝完就可以輸入CLI指令,想當然要有 圖形化介面在整理資料會更好查看,這時可以在裝 LogParseStudio 。(圖3、圖4) LogParse(圖2) LogParse Studio 下載(圖3) LogParse Studio (圖4) logparse studio 在使用上不難(圖5),而且出來的資料會把 遺失訊息 、錯誤訊息分開(圖6)  logparse 使用介面(圖5) 訊息顯示得更詳細(圖6) 後續處理 透過logparse整理後的資料,可以匯出結果.csv😀,如果有大量資料也可搭配powershell 寫批次 處理。(圖7、圖8) 透過powser shell批次處理(圖7) powershell匹量執行(圖8) 心得 在資料處理的時候要特別小心,是否有遺失、處理錯誤... 在統計的時候 發現怎麼都對不上,就覺得超級嘔0..0👿 沒事不要用事件檢視器 另存轉檔,檔案內容太大會有遺失😹😹😹....   心中有一萬隻草尼馬在內心的大草原上奔跑,伊~哈~

重新省思,心情日記

最近面試,對方問 : 我會什麼前端框架、主要語言? 這不禁讓我停頓一下,如果是以往會很快順利回答,但做到現在發現到說 以往接觸到的網頁 只是一部份,其他層面也是很重要的。 已經不再特別注意我會什麼了而是我成長些什麼.... 做到現在我發現到說,我不再只專注於前端、後端...也會在於 如何安裝與佈署環境、怎樣改善效能、資訊的安全性、系統權限層級、數據分析、如何維護與延展、LOG紀錄的追蹤與排查.... 所做的事情不再是專注於網頁,應該說網頁只是一個時代趨向的呈現,從WPF 到 WEB 到APP。 師傅常會說 市場上很多都在於解決眼前的事情並沒有考慮到持續性與效能,導致於劣幣逐良幣,農夫越來越多。而老闆會說 我用便宜的人才就能解決問題,為何要用你還比較貴呢? 師傅也常跟我說一句話,不要隨著潮流走,世代在變化很快,而是走出你的獨特性。 以前會做事態度是 怎麼達到目標,現在反倒是 更在意過程與後續的完善。

事件檢視器,自訂篩選,工作筆記

圖片
 在事件檢視器中,可以看見windows的log紀錄。 也可以透過 「篩選目前的紀錄」,自訂篩選條件。(圖1) 篩選目前的紀錄(圖1) 這次遇到的情況 是在事件來源中找不到 自訂的來源「VIP」。(圖2) 自訂來源VIP(圖2) 這時候就可以透過,手動編輯查詢。 是在「篩選目前的紀錄>XML」,將手動查詢 打勾。(圖3) 手動查詢(圖3) 裡面會有段 <QueryList> <Query Id="0" Path="file://D:\dwn\1206Log資料處理\VIP Events\W51128030049.evtx">   <Select Path="file://D:\dwn\1206Log資料處理\VIP Events\W51128030049.evtx"> * </Select>   </Query> * 內可以自行編輯查詢內容 ------------------------ ex: 時間是 要查11/25~12/06 & 來源 VIP <QueryList>   <Query Id="0" Path="file://D:\dwn\1206Log資料處理\VIP Events\W51128030049.evtx">     <Select Path="file://D:\dwn\1206Log資料處理\VIP Events\W51128030049.evtx">       *[System[TimeCreated[@SystemTime&gt;='2024-11-25T00:00:00.000Z' and @SystemTime&lt;='2024-12-06T23:59:59.999Z'] and Provider[@Name='VIP']]]     </Select>   </Query> </QueryList> !!!注意!!! 自訂好的篩選器儲存後,下次帶出的 也是A檔案的篩選。 如果有B、C、...

資料整理,excel power Query,工作筆記

圖片
前情提要 自醫院系統上線後,就需要去查看事件日記的異常狀況(圖1),後續也會再做進一步的資料統計與分析。一天新增的資料筆數約1000~2000筆。 有的時候異常是屬於 系統、硬體 或其他情況。(圖2) 事件log(圖1) 事件異常(圖2) 有了log 事件.evtx 檔,它僅能在事件檢視器上看。 後續若要做進一步查詢和統計時,可以另存成.csv 檔(圖3)。 將.evtx 另存.csv檔(圖3) 接著就透過excel 打開csv 做資料整理。(圖4) .evtx 另存檔.csv(圖4) 資料如果少用公式的filter搭配unique可以篩選出想要的資料。 但這次的資料量log 紀錄來源 每天至少1萬筆 以上,要用filter 找出資料做整理,會比較辛苦。 這時可以用excel 的 「資料」,利用它的power query 來整理資料會很方便,用起來和power BI 差不多。(圖5) excel 「資料」功能(圖5) 透過power query 打開csv,做進一步整理。(圖6) 打開csv (圖6) 整理資料 打開.csv,點選轉換資料,才能進一步處理資料。載入只是整理成表格。(圖7) 這裡就可以設定 檔案的 分割方式,好方便整理成dataframe 。 轉換資料(圖7) 再power query整理的資料 就是以行和列來做一次性處理了。 (圖8) power query處理資料(圖8) power query 修改的資料不會影響原本的csv檔,也可查看套用的步驟紀錄,檢視 整理的前後差異。(圖9) 可步驟處理,查看前後處理狀況(圖9) 整理後的資料 好比這次需要檢查有沒有在回傳錯誤中卻操作順利完成的資料 亦或是順利上傳,卻有異常錯誤(圖10) 檢查異常(圖10) 操作影片 power query 資料整理操作影片(圖11) 操作影片(圖11) 心得 其實power query和power BI 差不多,再處理大量資料都很方便。或者也可使用 python 的panda 去做 資料整理,可在google 的colab 上操作。(圖12) colab 整理資料(圖12) 利用dataframe 整理資料 (圖13) 整理後的dataframe(圖13) 最後整理出來的結果都一樣。 但經太久沒有用python 來整理資料了,所以這次就選擇 方便好上手又有介面的power...

無限滾軸(三) 搭配 背景更新,工作筆記,經驗筆記

圖片
前情提要   自從 做了無限滾軸後, 客戶提出也需要在背景更新。 當table 的內容 ,採用了無限滾軸後,內容其實是無上限的增加。 既使在背景是 讀取的API 有做換頁 讀取,當滾軸 回滾的時候 其實也很難知道 當前的陣列資料 是屬於第N頁的 API資料。 (圖1) ex: 每往下滾 +20 ,+20,+20,+20,+20  頁面呈現 當 視覺 看到第 50 筆的時候, 要怎麼知道 這是 3次的 更新資料? buffer (圖1) 無限滾軸難以取得頁數 (圖2) 無限滾軸,往下抓最新一頁很容易,但是如果遇到 回滾的時候 ,資料都已經全部渲染到畫面了,就很難去算 看到的 第 70筆 是屬於第幾頁的資料,因為無限滾軸 的特性就是一直往下長..... 實際做法 這裡有兩種做法。 一種是 去紀錄 每次頁數的第N+1 筆資料,ex: 1,11,21,31,41,51...當切換到 當前滾軸的時候 去推算他是在 第N筆的哪一區, 例如每頁有10筆, 現在 可視區在第51筆,則是 51/10=5,推算這是在第5頁。 一種是 利用 滾軸的所在位置 /每行的高度/每頁有幾筆去做推算。 當前頁數 = ⌊ 滾軸的位置 每頁高度 ⌋ + 1 \text{當前頁數} = \left\lfloor \frac{\text{滾軸的位置}}{\text{每頁高度}} \right\rfloor + 1 心得 一開始並沒有去做 回滾後,當前的視區是隸屬哪一頁,導致自動更新永遠只更新最新一頁。 當頁面回滾的時候,背景更新抓的卻還是新的一頁,ex: 滾到第10頁,回滾到中間的位置,背景更新卻還是在第10頁。 看到的時候還真的是耐人尋味, 原來就是少了這一味,山珍海味😏 無限滾軸要注意的事情很多,還有頁面渲染遺失的問題,狸貓換太子,真假變不見。

好久沒有寫blog,心情日記

圖片
 這陣子很忙, 自從大學畢業後就沒有再更新blog了。 上班的筆記 幾乎都是 做成note 或PDF ,常用的 note 也開始要收費了。 所以這裡就來做個速寫筆記blog, 把工作的經驗 在做個短暫的紀錄 加強記憶。 最近忙著處理工作的事情、運動、彈琴、看書、進修,沒有時間畫畫。 最近一直在反覆 複習日文,好久沒看日文了,大多是在看漫畫有用到😏,明年打算去考N2 給自己的目標衝刺一下。 最近該找個時間再來畫畫,畫畫真的會讓人忘卻時間😀   這是祕魯,細節還沒有時間去畫,就只是簡單畫個線搞。

設立排程 定時觸發,工作筆記,經驗筆記

圖片
 之前 的環境是以雲端為主, 只要將寫好的排程 放在 雲端排成器,再透過網頁介面管理好 設立好時間就會自動執行了。 那麼這次的環境是以 windows 本機為主。 windows 有內建工作排程器 Schtasks.exe ,可以透過CLI 指令(圖1) 也可以 透過 介面去設定。 CLI指令 建立排程(圖1) 工作排程器的介面,可在 控制台>所有控制台項目>系統管理工具 上查看。(圖2) 工作排程器介面的位置(圖2) 透過指令建立起來,可以在 工作排程器的介面上看到,也可編輯&管理。(圖3) 工作 排程器 (圖3) 檢查執行 如果執行錯誤,可以在windows 事件檢視器上查看。(圖4) 查看執行結果(圖4) 心得 這次用php 去執行 UpdateReportLives.php 有遇到些問題。 如果是用指令 去執行,要注意 執行的檔案位置。 在網頁呼叫api 可以成功,但是換成php.exe 去執行 就會遇到 錯誤,原因是 沒有切換到 該檔案的工作目錄。(圖5) 要記得加上  chdir(dirname(__FILE__)) 切換到正確的工作目錄(圖5) 我本來想說 chdir(dirname(__FILE__)) ,這段可以放在公用檔,但是執行上也是會失敗,只好 個別檔呼叫時,個別寫 。 ---------------------------------------------------------------- 此外 在設定排程前,可先在命令提示字元(cmd)去執行,看看是否會有warning 或 error (圖6) 即使在cmd 有出現warning ,程式在cmd能正常執行,但是如果沒去解決問題,在排程上執行 就會停止了,並有錯誤事件(圖7) cmd 上執行(圖6) 排程強制停止(圖7)

可使用的容量 二三事,工作筆記,經驗筆記

圖片
 繼php 在windows 事件檢視器未果後, 事件紀錄改成使用txt 的方式。 在記錄的時候要注意 儲存區的大小。 多少大小做分檔、資料保留時間多久、多久定時清檔 有次在裝醫院的環境時,卻發現寫個.txt 都無法寫入.... 原來是 儲存區滿了.... 看了一下發現,院方只放20GB,包含windows系統 、更新...。😕😕  整個能用的空間就是很小,放在上面的東西最好就是壓縮、定時清除。 最後 院方有開到100G 但除了放網站系統外 ,就其他的資料、更新套件吃掉約50G(圖1) 已使用儲存區(圖1) 如果沒有計算足夠空間,能不能寫log,系統可能會一直出錯甚至崩潰都有可能

php的 在window的事件檢視器

圖片
  前情提要 在做API的時候,需要做log紀錄。一方面是方便追蹤,另一方面也是方便除錯。 因為做的專案開發用的語言是以php為底,當前輩提出說要記錄在事件檢視器上(圖1),以方便管理。 事件檢視器(圖1) 以往做log的方法,會是用在txt 或者sql,無論用甚麼方法都不難免需要人工管理。 用其他方法去記錄日記,則需要再花額外的時間成本去做維護與管理,多久要刪除、分割的檔案大小,window的事件器則已經做好這一塊了,window的事件檢視器則會定時刪除。 下面這段是這兩者的具體差異。(圖2) widows 事件檢視器&其他文件差異(圖2) 實驗成果 php 如果要寫入到window 的事件檢視器,則必須在php.ini 打開 syslog,打開後就可以跟著 官 網的範例 ,寫幾個 事件 (圖3) 。 php的syslog 寫入事件(圖3) 測試下來,相容效果其實並不好,當有相容性問題 會在log 紀錄時一併顯示、來源、事件辨別碼無法修改。(圖4) php 在事件檢視器相容問題(圖4) 在網路上也有提供其他方法,如 php的COM ,需要再額外安裝 和 相關的.dll 擴充 心得 因為要能新增來源,我有實驗了php的com 但怎麼試,都不成功。 在使用php的com 還需要再去打開window 的一些權限設定 改天再來試試看