pretty code

顯示具有 MIS 標籤的文章。 顯示所有文章
顯示具有 MIS 標籤的文章。 顯示所有文章

2026年4月9日 星期四

雜訊

今天本來準備要來做一個之前因為 design 還未 ready 的 block,好不容易比對好 sram 種類,正準備插入測試電路,就遇到 read design 的第一個問題,還在思考要如何解的時候,同事問了我一個問題,他的環境跑 synthesis 似乎出了問題,無法產生該有的檔案。

沒想到就是這個問題,花了我快 3 個小時才找到 root cause,確實值得好好記錄下來。

我們登入的環境,會隨機分配,大部分都是分到前兩台,似乎從昨天開始,開始有機會被分配到第 3 台!

本來只是不同主機,並沒什麼大不了,偏偏就只有該位同事在那一台工作會出事!

這是第一個誤區,也是追查問題過程中的雜訊。

既然同事有問題就是有問題,應該要想辦法試著在我這裡也重現問題,而不是一直往該位同事的環境或資料夾方向去確認問題!

雖然這只是事後諸葛,我也不確定早上真的這樣做就可以更快找到問題?畢竟這個問題非常神奇XD

總之,就在我嘗試從環境,變數,資料夾等方向去解決問題,但仍然無法收斂問題後,因為我也沒招了,便請同事發個郵件給 IT,詢問到底哪裡出了問題?

就在我上廁所的當下,突然覺得還有一個可以嘗試的步驟,於是便請同事確認執行後是否有額外的錯誤訊息可參考。

可惜的是,錯誤訊息還是那些原本就從 console 可以看到的,執行這個步驟並沒有更多的資訊可供回饋!

就在我回位子嘗試的當下,我居然也撞出跟他一樣的問題了,真是恭喜老爺,賀喜夫人。

Debug 最怕的不是不知如何解題,而是無法重現問題!

有了一樣的問題那就好辦,雖然當下我也覺得跟事實衝突,明明那個步驟我也曾經成功產生檔案過?

還好後來馬上發現,那個檔案原來是一天前就產生的,換句話說,過去的一天內,我跟其他貌似成功的同事其實都已經發生問題而不自知!

我們之所以可以成功,那是因為該步驟只檢查檔案在不在,並不在意檔案是不是當下產生的!

所以那些一天前的檔案,其實有點 cache 的意思在?

剛好在幫同事確認問題的過程中,有看到登入的 script 被強制指定到第三台主機,修改的同事也有寫了註解,敘述修改時間為一天以前。

於是真相大白了,問題就是發生在第三台主機,雖然我同事環境還是有他的問題在XD

所以同事的環境問題是第二個雜訊,浪費了我不少時間。

總之,Debug 的同時,也要避免被雜訊影響,這是我今天學到的教訓!

不過,雜訊發生的當下,其實你很難知道那就是雜訊本人?

所以,以後要 Debug 時,應該還是要以重現問題為優先才對?

直到寫作當下,本人也還沒有正確解答就是了?

好不容易解決了同事的問題,快下班前終於可以好好的來看我自己的問題。

沒想到解決了第一個問題後,後續又冒出了好多個問題,解決第二個問題後,我也累了,決定下班打東東了XD

2026/04/10 更新

給 Gemini 的提示詞:工程師 debug 時最怕遇到雜訊,一不小心往往容易陷入死胡同而不自知。一個有經驗的工程師 debug 應該要像古人庖丁解牛般的抽絲剝繭,手起刀落,真相自然也就浮出水面。


使用 Pro 重生。


2026/04/10 下班更新

原來我唯一知道的就是我什麼都不知道!

本來以為昨天的問題已經告一段落,沒想到居然冒出新的問題?

原來我昨天看到的並不是事件的全貌!

昨天知道第三台主機雖然無法產生檔案,但是可以沿用舊檔案,因為我們目前就是要鎖住在 git 某個版本,而我們不是 designer 也不會去修改 RTL,所以使用舊檔案確實是 5566 的無所謂。

但昨天在第三台主機執行時偶爾驚鴻一瞥看到的錯誤,確實是個警訊無誤,只是當時並沒有想太多XD

今天 IT 回覆後,又產生了新的問題,還好客戶 IT 很給力,在幾封書信往返之後,終於讓我看到事件的全貌。

客戶在某個資料夾下會有一個儲存環境變數的檔案,這麼說好了,前兩台主機用的是一套,第三台主機用的又是另外一套。

因為一天以前大家都在前兩台主機工作,故這個儲存環境變數的檔案繼續沿用並沒有什麼不妥。

但當我們現在被強制登入到第三台主機,此時這個檔案就不能繼續沿用了,如果不砍掉重新產生,就是會有那麼多奇奇怪怪的問題。

這也是我昨天一直無法收斂問題的原因,因為我跟我同事觀察到的現象一點都對不上。

原來因為他前天不在,故他晚了我們整整兩天 git clone 新版本,理所當然的他並沒有那個環境變數檔案在新資料夾中。

理論上,雖然他晚了兩天,但因為他也是登入到新主機,故兩者都是新的,自然應該百毒不侵才對。

壞就壞在,我們的工作性質會殘留很多終端機在工作站中,我個人還算好一點,做完的工作我就會順手關掉終端機,但同事似乎無此習慣,此時只要在舊的終端機中執行並驗證環境,就會讓這個問題更加發散而無法收斂。

2026年2月10日 星期二

三世麟未動

困擾了我快半年的問題,今天早上應該是解決了?

之前可能是換新電腦的關係,原本的固定 IP,Server 那邊可能需要重新設定記住認證,故我有好長一段時間登入後網卡會先斷線一陣子才重新連線。

這段時間說長不長,說短也不短,但就是很阿雜。

雖然有詢問過 IT 重新加入設定,但不知道什麼原因,情況依舊沒有改善。

今天終於受不了了,Google 了一下,AI 給了些建議,reset network stack 最對我脾胃。


雖然因為權限,沒有執行完全,但關機後重新開機似乎就不再斷線了?

不排除是已經熱機等緣故,比如說已有 cache 資料?

明天再試一次,不再斷線應該就是解決了無誤!

2026/02/12 更新

自己在耍白癡,這個指令就只是重設 IP address 的意思,果然不起作用XD

改調整了一個 Group Policy 設定,希望這次可以永遠解決問題。

2024年11月9日 星期六

Outlook pst 檔案壓縮後大小沒有變化解決方式

如題,清空一堆郵件後,如果經壓縮後,檔案大小與按右鍵看到的大小不符時,只能手動建立一個新的 pst 檔案,再把舊的複製過去,然後砍掉舊的 pst 檔,這樣空間才能夠被釋放出來。

離開前部門也快一年了,終於把過去的郵件全砍光了,也算跟過去的我告別!

我還是喜歡看著老鷹在天空中飛翔XD

2020年7月2日 星期四

Open CMD window quickly on Windows 10

I test my code every day. I must change folder to do different tests. Although I can use Windows PowerShell quickly in current folder by using "right-click + shift key", the Windows PowerShell is not good to do my common tests.

I added a Windows Batch in "C:\Users\XXX\AppData\Roaming\Microsoft\Windows\SendTo" folder, and the content only has two lines.

@echo off
start cmd

I can do my tests quickly now.


By the way, there are other ways to do this wok. You could refer to the link below.
https://www.itechtics.com/open-command-window-folder/

2020/07/07

I do not like to modify registry of Windows. However, this way is the best way. I did another improvement by adding a registry.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\Dos]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\Dos\command]
@="cmd"

Just for fun.

2020年5月27日 星期三

Windows 工作排程器設定注意事項

一直以來,設定工作排程時,都是使用 "不論使用者登入與否均執行" 這個選項。

最近我們開始要定期更換密碼,上禮拜換完密碼後,所有排程都無法正常工作,檢查之後才發現,原來更改密碼後也要一併再次輸入密碼,否則工作排程便會失效。

每次都要再次輸入密碼似乎有點麻煩,來研究一下子選項 "不要儲存密碼。工作將只有本機資源的存取權" 好了(A處)。

原本以為所有跟網路有關的都無法使用!經實測後發現只有存取網路磁碟機會受到影響,至少可以讓我大部分的排程都不用再輸入密碼了。

紀錄一下避免忘記。

2020年5月22日 星期五

Convert MBR to GPT

I am not sure why my new clone disk is MBR, not GPT. I want to change it.
After searching internet, I found we can use "MBR2GT.exe" to do this.

The steps below is how to do it.

1. Open PowerShell Window.
2. Type "Get-Disk" command to check your disk number.
3. Open Dos Window with administrator privilege.
4. Type "MBR2GPT.EXE /convert /disk:2 /logs:D:\ /allowFullOS" to convert disk.

You could also refer to the link below to get detail information.
https://docs.microsoft.com/en-us/windows/deployment/mbr-to-gpt#summary

2020年4月23日 星期四

使用 Windows Batch File 調整網路介面設定

之前寫了一個 Batch File 可以選擇要使用那個網路介面工作,因為 D 槽被自己的白爛程式砍掉後,暫時只能手動處理。

最近又需要頻繁切換有線網路及無線網路好登入 Linux 主機,為了增加工作效率,憑著記憶再把原本的 Batch File 重現,一天累積下來大概可以節省 1 分鐘又 40 秒吧,我果然是個節省的人XD

至少爽度無限呀!

另外,我習慣拉捷徑至桌面好方便操作,因為 Windows 10 某些指令需要管理員權限,只要在捷徑->進階內容,將以管理員身分執行選項勾選即可。

@echo off

echo 1. Use LAN network.
echo 2. Use WIFI network.
echo 3. Disable All interfaces.
echo.

set /p ID=Your choice :

IF "%ID%" == "1" (
    goto C1
)

IF "%ID%" == "2" (
    goto C2
)

IF "%ID%" == "3" (
    goto C3
)

goto END

:C1
netsh interface set interface name="乙太網路" admin=ENABLED
netsh interface set interface name="Wi-Fi" admin=DISABLED
goto END    
    
    
:C2
netsh interface set interface name="乙太網路" admin=DISABLED
netsh interface set interface name="Wi-Fi" admin=ENABLED
goto END

:C3
netsh interface set interface name="乙太網路" admin=DISABLED
netsh interface set interface name="Wi-Fi" admin=DISABLED
goto END

:END
pause

2019年11月18日 星期一

傳說中的記憶體增加警告

之前為了讓網域上的 device 可以連接 Server 做測試,需要有合法的 OS,但 IT 只有 Win10 的授權可以安裝,反正也不需要什麼多好的效能,故上線時倒也一直相安無事。

約莫是一年前發現 Server 會無緣無故無法從遠端連線,即使人在本機前面,輸入帳密後依然無法操作電腦,經過了幾次觀察後才發現,是因為實體記憶體已經快耗盡,系統不斷在做 Swap 才導致操作無法回應。後來歸納出是因為 Win10 只要一陣子沒有做 Windows Update,記憶體便會緩慢的不斷增加,而我們的電腦只有 8G 的 RAM 可用。

手上 Coding 的工作便做不完了,實在是不想每天做 IT 營運檢查,故那時寫了一個簡單程式,會去監控 Server 的記憶體使用情形,每天會發送一次 mail 報告目前記憶體使用情形,每一個小時也會檢查一次,如果超過 50% 便會再發一次 mail 通知,覺得記憶體使用過多,便遠端去做 Windows Update 即可。

雖然針對電腦管理也有很多免費軟體可用,但實在是不想安裝軟體,故自己來還是比較簡單,對 Server 也比較沒負擔,因為管理軟體大概都需要開啟 Web 服務以及安裝資料庫,好方便監控。

不知不覺就這樣過了一年,昨天休假時無聊開啟公司信箱,第一次遇到超過 50% 的情形,截張圖紀念一下。

話說 Win10 還真吃記憶體,昨天每日報告還在 38% 左右,晚上 5 點多左右便升到了 55%,Windows 還真是讓人猜不透呀。

2014年7月5日 星期六

自然人憑證解鎖 6981 錯誤

不管是使用 HiCOS 或是 MOICA 網站上的解鎖功能
如果出現 6981 的錯誤代碼
請先檢查是否使用有鍵盤的讀卡機
據客服說法是因為解鎖時程序被有鍵盤的讀卡機擋下所致
此問題只能找讀卡機廠商解決

感覺這個問題不太好解
廠商回了一次電話後就沒有下文

最快的解決之道就是找人借一個普通的讀卡機
終於我又有自然人憑證可用了

另外如果像我是使用 Win8 64 的人
如果有遇到安裝讀卡機驅動失敗的情形
請先記得將讀卡機拔掉
安裝程序便能順利安裝成功

2014年6月12日 星期四

刪除 Win8 的服務

之前安裝 MySQL 因為版本不一致無法順利安裝
也因為安裝不成功導致電腦管理的服務裡還殘存 MySQL

以前都是直接進 registry 去刪除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
但這招在 Win8 卻無法成功

有一個錯誤的訊息掛在服務裡看著也是礙眼

找了一下
只要直接下命令
sc delete [service name]
就可以順利的移除服務

2013年7月24日 星期三

懶惰是進步的原動力

工作上偶爾要幫忙同事檢查機房,每天日記有一項是要記錄主機的硬碟剩餘空間,這部份已經寫好程式,有新的主機只要更改批次檔即可,但還需要手動將程式產生出來的結果打到 WORD。

這禮拜終於受不了了,本以為要寫點 WORD VBA,後來想到也許合併列印就可以解決我的問題,再加上來源檔可以選擇 CSV 檔,稍微修改程式和批次檔,所有的主機都不用自己打字了。

早就該這樣做了,以前的我不知在想什麼?

2013年7月4日 星期四

印表機自動選紙失效

某部門有個需求,希望 MP Tray 可以擺回收紙,不選進紙匣的時候,從正常的 Tray 出來,需要印回收紙的時候,再去手動選擇,如果是 EPSON 的印表機,可以檢查 MP Mode 的設定,只要設定 Last 的話,MP Tray便會是最後的選擇。

過了好久好久之後,今天有個同事說,她某個檔案就是會從 MP 出紙,不管是手動還是自動都是從 MP 出紙,找了一下,發現是版面設定的問題,因為該檔案紙張是選自訂大小,故印表機判斷要從 MP 出紙,記錄一下避免忘記。

2011年5月17日 星期二

MIS墨氏補遺

註:以下只適用於有鎖權限的情況下。

以守代攻
目前 IE ONLY 的網頁當道,免不了會用上一些 ActiveX 增加網頁功能,如果有鎖權限,使用者根本看不到提醒的說明文字,自然也看不到安裝的確認。這時候,只要使用切換身份的秘訣,配合工具→管理附加元件→個別更新,大概可以解決一半以上的問題。

以攻代守
切換身份不是萬靈丹,至少有些軟體不吃這套,最好是用本機電腦的管理者登入,才不會發生一些奇奇怪的問題。

攻守兼資
當以上兩招都無效時,記住一句話,重開機是微軟最好的朋友!此招不但攻中有守,守中有攻,最厲害處是變化無窮,隨時可由攻變守,由守變攻。

以上是做了一年 MIS 的小小感想...

2011年5月6日 星期五

測量繪圖機

今天幫同梯處理重測軟體的問題
猜測是因為昨天一口氣灌了兩套版本
但是登錄檔沒有分開的緣故
導致在使用某些dll時版本不符

好奇看著同梯出圖測試
才發現步驟好麻煩
1.先把檔案複製到C槽
2.打開dos視窗
3.呼叫 mode 指令設 baud rate
4.copy xx com1

我想如果可以寫一個程式
只要他們選好要出圖的檔案
直接幫他們產生批次檔並執行
應該可以節省個幾分鐘吧

目前想到可能會有的問題
1.copy 後面的檔案要加引號,如果有空白的話
2.需確定大家都是 com1 會不會有 lpt 等

2011年5月3日 星期二

Windows 字型

正常來說,字型預設路徑是 C:\Windows\Fonts\
不過在 Windows 刪除字型
不是直接砍掉預設路徑下的檔案那麼簡單
而是要一併砍掉下面機碼的字型對應
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]

也正因為有了這機碼
作業系統才知道字型名稱跟實際檔名的對應

2011年4月30日 星期六

IE6登錄檔設定位置

還好我是程式設計師
才能很快的找到這些機碼
之前重灌電腦時還傻傻的用人工去設
如果公務體系沒有一堆雜事要做
我想我應該能提供給我的同仁更好的服務XD



;允許主動式內容
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN]
"iexplore.exe"=dword:00000000

;安全性-信任的網站  
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\gov.tw]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\gov.tw\*.taipei]
"http"=dword:00000002
  
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range1]
"http"=dword:00000002
":Range"="127.0.0.1"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\Range2]
"http"=dword:00000002
":Range"="127.0.0.2"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]
@=""
"Flags"=dword:00000043

;取消封鎖快顯  
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\New Windows]
"PopupMgr"="no"


;安全性-信任的網站-自訂層級
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2]
"1001"=dword:00000000
"1004"=dword:00000000
"1201"=dword:00000000
"1C00"=hex:00,00,01,00
"2201"=dword:00000000

Excel 複製罕用字變韓文

一般來說
如果某些系統有用到罕用字
只要在需要的電腦上裝該系統需要的罕用字
就可以順利的觀看

如果將看到的罕用字貼在 Word
Word 可以順利的顯示
如果將看到的罕用字貼在 Excel
Excel 卻會顯示奇怪的韓文

即使將 Word 存檔
再將該罕用字貼回 Excel
仍然是奇怪的韓文

今天加班好奇 google 了一下
終於在黑暗執行緒的網站上發現解決之道
-----------------------------------------------------------------------------------------------------------

因為New Gulim字型檔在原本繁體中文造字區中放入了韓文,
Office會優先去用該字型檔中的泡菜字,而不用造字。
(註:Office2007就不會,只有2003會,網路說 Office XP也會)
解決方法很簡單,將NGULIM.TTF檔刪除,美麗的中國字就重見天日囉。

-----------------------------------------------------------------------------------------------------------

Word 指定頁數無法列印

最近同仁發生了一件很靈異的事件
原本可以印的檔案
只因為新增了一頁
之後指定列印第 2 頁都無法出來
感覺就好像消失在黑洞中
完全沒有任何錯誤訊息

這時候必須注意一個地方
1.如果檔案有頁碼,看其頁碼是否不是從第 1 頁開始。
2.如果檔案無頁碼,使用插入頁碼或檢視縮圖來確認是否跟1一樣的問題。

這次發生的原因就是因為使用者的檔案沒有頁碼
但其頁碼又不是從第 1 頁開始
所以才產生了這個靈異現象
猜測是因為這個檔案之前是從別的檔案的某 1 頁複製而來

CloneZilla 備份 VISTA

最近換了顆 HD
不論是使用 CloneZilla 備份影像檔並還原到新分割區
或是使用分割區備份到分割區
還原後皆無法開機
原來以為是 CloneZilla 的問題
後來想了一下
有可能是 VISTA 的 MBR 有問題
(有裝 linux 在其他分割區都會有這問題)
本想直接用 VISTA 原版光碟開機修復(BootRec.exe)
但是居然無法開機
(靠,,,,我是買正版的耶)

最後只好隨便灌個 linux 產生 grub 選單
終於大師兄回來了XD

2011年4月28日 星期四

windows 刪除目錄及檔案

有時候只是下個指令就可以解決的事
實在是不想寫程式去做

以刪除目錄及檔案這件事來說
你可能在比對新舊資料時
產生了一份清單
你想把清單上的目錄及檔案都刪除
linux 只要簡單的一個 rm -rf
windows 的指令找了老半天才找到

/* 刪除 xxxxxx 的目錄及子目錄, 不要詢問 */
rd /S /Q xxxxx

搞定,收工XD