pretty code

2024年10月12日 星期六

2024 week 41 新玩意

01. Linux Group By 功能

Linux 實在是一個很強大的作業系統,應該是說它的生態系很強大,什麼工具早就有人開發好了,根本不需要你寫半行 code 來解決問題。

就拿最近我在整理的一份 PAD 資料,突然想要做個表格放進簡報裡,regex + sort 取出資料常常在做,但要如何 group by 來加總一時還想不出來,隨便拿個程式語言做這些事當然很簡單,但人會被慣壞,有更簡單的方法當然更好囉。

老樣子,Google 一下,原來這麼簡單,我常用的 uniq 工具就可以了,加上 -c 選項即可。之後再用 sed 取出加總並調整一下順序,就可以在 Power Point 裡面用 "插入 -> 物件 -> Word",然後在跳出來的 Word 浮動視窗貼上 sed 整理好的文字,然後選 "插入 -> 表格 -> 文字轉換成表格",這樣就可以一氣呵成了。


02. Tmux

以前就知道 Screen 的替代品 Tmux(嚴格說起來應該是比 Screen 功能還多),但一直沒有機會使用,工作站也沒有這個軟體可以使用,但自從在公司電腦安裝了 WSL2 後,應該是時候試用 Tmux 了。

它跟 Vim 一樣,有很多設定值可以調整,為了跟 Vim 使用體驗一致,除了前置組合按鍵外,應該要讓設定值盡量跟 Vim 看齊。

沒關係,慢慢來即可,畢竟工作環境不是一蹴可幾的事。

2024年10月10日 星期四

忙碌的一天

為了慶祝國家生日,凌晨三點半就興奮的睡不著覺?

打開已經畢業的暗黑 2 重製版玩了一下,說也奇怪,一說畢業後,玩遊戲的感覺都不一樣了,已經沒有之前那樣覺得好玩了,勉強玩了標馬、弓馬、以及暗黑親兒子槌丁後,陪早起的老婆看了一下電視,為了怕中午出門開車危險,又回去睡了快兩個小時,雖然大都是在作夢,體力條還是有稍許的回復XD

之前就一直想換掉客廳的窗簾軌道,20 多年了很多零件早已經生鏽,每週三次的澆花都讓人覺得阿雜。

雖然窗簾有很多種,什麼羅馬簾、蜂巢簾、風琴簾等等,看起來是很好看沒錯,等舊了需要重做就知道,要找人重做不是那麼容易,你得安排時間,就算你想自己 DIY,先不提好不好拆,光拆下來的東西要怎麼丟就是個大問題!

因此我的結論是,如果家裡有 DIY 工具,我覺得 IKEA 簡易的窗簾桿以及環狀窗簾夾是最好的 DIY 選擇,安裝簡易,只有一點要特別注意,IKEA 的窗簾桿組合並未包含螺絲,還好家裡之前有幾顆自攻螺絲,才能順利的繼續的鎖在原本的窗框上,本想直接鎖在牆壁上,但手上的其他螺絲似乎無法應付家裡的石膏牆面,只是把洞越挖越大(也許應該要用膨脹螺絲,但已經懶得出門了),也是因為後來找到自攻螺絲,才毅然決然地改鎖在窗框上。


DIY 前沒先確定附件是否齊全是我犯的第一個錯誤,第二個錯誤則是缺少隨機應變的能力,為了改鎖在窗框上,因此需避開原本的防盜設施,雖然我想應該早就壞了?但為了這個第三點支撐,理論上應該要讓它盡可能的接近中央位置才對,不然窗簾會被第三點擋住而拉不過去XD

還好我本來就不會完全拉滿,算是沒有什麼大礙,真是恭喜老爺,賀喜夫人。

明明裝上新窗簾桿時,還有擦過窗框跟防盜設施,怎麼還是那麼髒XD

一組窗簾桿還有 3 包窗簾掛勾(一包 10 件組)也才 NT $996,之後要換也是很簡單。


拆卸及安裝窗簾還算是最簡單的部分,雖然也搞了一個小時多有,但事後的善後才是最麻煩的,清潔整理就算了,反正本來就是要做的,拆下的窗簾桿及細件要如何回收才是最麻煩的,花了九牛二虎之力才把窗簾桿折成較小寬度,方便社區清潔人員做後續處理。

下午在 DIY 窗簾前,還先整理了上星期六三創下訂,然後今天送來的 Dell 24 吋可調整高度螢幕,這也是我第一次使用 DP port 的螢幕,還知道了之前不知道的上行連接埠(資料上傳到主機)以及下行連接埠的名詞,也算是長了見識,可惜上星期購買有點匆忙,沒注意到螢幕居然沒有喇叭,我還一直以為 HDMI 的螢幕一定會有喇叭呢?


上星期日也新組了一張 IKEA 購買的椅子,IKEA 的東西都還算好組,我應該把 IKEA 我認為好坐的椅子都買遍了吧?雖然家具類會附工具,但還是不太好鎖,這次的椅子螺絲又剛好在邊邊,手上的棘輪工具組需要的空間又比這張椅子的大,還好在工具箱找到一個塑膠套筒,增加摩擦力後,鎖起來果然輕鬆多了,這個是以前的 IKEA 附贈的還是其他的 DIY 家具附的我已經沒印象了?


順便多記錄一些這星期想到該記住的重點XD

無印的這款濕紙巾盒是我看某個家庭主婦的頻道知道的,一試成主顧果然好用,但沒辦法放我常買的 80 抽厚濕紙巾(需要先用掉幾張),今天試買了同牌子的 70 抽,感覺這樣的張數比較適合這個濕紙巾盒。


下面是我用的牙間刷尺寸,每次都會忘記XD


空白的筆記本還是比較好組織想法,不上台北的話,這樣的筆記本我目前只在佳瑪看過,為了這個還要特地上台北購買還是不方便。


前幾個禮拜安裝的庫存廁所崁燈,接腳是快速接頭,就不用纏膠帶纏得那麼辛苦。



應該還有很多要補充,但忙了一天累了,明天還要上班,晚點再看是否有需要補充的注意事項,對上班族來說,家事還真是費工呀XD

2024/10/11 更新

早上上班前一鼓作氣的將家中所有變壓器拍了一遍,之後使用比較方便,畢竟手上還是有好幾台電子書閱讀器,目前確定的是 Google 30W 快充變壓器不能用在我的一些小家電上

Sharp 手機充電器,5V 2A。

倒數第二支 HTC 手機,5V 2A。

我猜應該是 Acer 手機,5V 1A。

買 Pixel 8a 順便購買的充電器,15W 3A、27W 3A、30W 2A。

Google 電視棒,5V 1.5A。

Dell 螢幕 U2424HE-4Y 相關連接孔

目前筆電外接在 port 6,port 9 和 port 11 都接了 USB 線,port 11 只能充電。

因為我用 port 6 接 Dell 筆電,故有傳輸資料功能,因此 port 9 上接的鍵盤及 Type-C 接頭接上的裝置,筆電才能辨識,如果是用 HDMI,我就需要用到 port 8 上行連接埠的功能,將其接到筆電後,才能打通 port 9 的功能。

port 09 - 1 外接鍵盤
port 09 - 2  Type-C 接頭
port 11 - Micro-A 接頭 

至於 port 13 和 port 14 未試,不知是否能跟 port 9 一樣?
隔天測試的結果,port 13、port 14 接上手機都可以辨識

port 13 最高 2A。



SSD 18 LT 200 BL 18V 鋰電無碳刷充及起子機

數字越大,速度越快(最小鎖緊扭矩、中等鎖緊扭矩、最大鎖緊扭矩)。

金屬等硬質材料,很短的衝擊持續時間,達到最大鎖緊扭矩,數字 3。

木材等軟質材料,更長的衝擊持續時間,數字 1。


SB 18 電鑽

上面是 1 ~ 20 扭矩控制,中間由左至右,分別是鎖螺絲(可以設定 1 ~ 20 扭矩,或是設置中間位置),鑽孔,衝擊式鑽孔,下面則是齒輪級別。

1 齒輪,低速,高扭矩,適合鎖螺絲。
2 齒輪,高速,適合鑽孔。

理論上鑽孔都是最大扭矩,只有鎖螺絲需要調整扭矩。


另外上面這兩隻用的電池是 18V 2.0 Ah,充電器為 ASC 55,充電時間 40 分?

2024年10月7日 星期一

有試有機會

雖然昨天就知道 PAD example 在 ORFS 裡面有點混亂,應該是說 OpenROAD 裡面,所以今天也沒打算使用最新 commit 來測試。

不過早上在整理資料的過程中無意間發現原來有一個跟 PAD 有關的範例,但公司的舊版本 ORFS 會死在 FloorPlan 的階段,找了一下 issues,看起來應該有問題?但還是想用最新的 commit 來試試。

不過手上沒有實體 Linux 主機了,雖然我有自己的私人 VM,但我需要 GUI 環境。

既然昨天在家使用 WSL2 開啟 GUI 非常方便,於是便發個 request 詢問 IT 公司資安政策是否允許安裝 WSL2,沒想到居然 OK,只要額外安裝一個監控軟體即可。

果然是有問有機會呀XD

以後工作更方便了,不用等到回家才能繼續測試。

但公司 10 年前的電腦似乎有些慢,第一次開啟 Ubuntu 22.04 都沒有反應,後來改用系統管理員執行一下子就進去了,但帳號會變成 root,還好可以用 wsl 指令更改預設使用者。

據我實測的結果,好像什麼都不用設定就能使用 GUI 了?也許這是 WSL2 預設的選項?

應該就是下面圖片的那個選項吧。

2024年10月6日 星期日

目前使用 VM 價錢備忘

去年為了開發 Kobo EInk Bro 開了一個 VM,後來因為工作關係便不了了之!但為了已安裝的東西不用再重新下載編譯,於是只有做停止 VM 這個動作,目前一個月約要 NT $170 左右。

由於昨天在 WSL2 安裝 OpenROAD-flow-scripts 不是很順利,於是今天又開啟一年未用的 VM,看看是否是 WSL2 的問題導致安裝失敗?

到現在環境都還沒準備好,放假想先確認一些疑點的打算看來也是有點抖,目前只能確認 PAD 流程似乎不在正常的流程中,而是放在 test 當中? 

放假到現在也不是一無是處,至少喚起我對這個 VM 的記憶,原本以為是儲存映像檔故要重新建立 VM,搞了半天,只要把停止的 VM 個體重新啟動即可,為了這個即插即用的便利,每個月要花 NT $170 還真是有點貴XD

也順便記錄一下,目前用的 VM 價錢,一個小時約莫要 NT $6 左右(含 Disk),如果單獨計算只看 Compute Engine 一個小時則是 NT $5 左右。


2024/10/06 晚上更新

OpenROAD-flow-scripts 在 VM 編譯一切正常,想了一下,直接切到 OpenROAD-flow-scripts/tools/OpenROAD/build 資料夾並依照 OpenROAD Tool Guide 去編譯,而不是在 OpenROAD-flow-scripts 裡面執行 local build,反正我執行的 local build 第一階段 yosys 是正常,我單獨編譯完 OpenROAD 後,將 OpenROAD 安裝到 OpenROAD-flow-scripts/tools/install/OpenROAD 即可。

之前因為 OpenROAD-flow-scripts 不成功,第二次 build 我好像有用 sudo 執行?導致某些產出都是 root 的所有權,將相關檔案砍完後,在 OpenROAD 的資料夾編譯一切正常。

那為什麼在 OpenROAD-flow-scripts 編譯一直有問題?我到現在也還不能解釋?目前只能確認 OpenROAD-flow-scripts 在編譯時,會單獨下載 OpenROAD 並切到 OpenROAD 資料夾去編譯,中間有用到 CMake,其他我就未詳細追究了。

因為我最主要是要看 layout 檔案,本想照此網友文章建置 X 環境,但我發現似乎在 WSL2 裡的 GUI Application 可以直接在 Windows 本機開啟,該網友文章我只做了 "勾選Windows子系統Linux版與虛擬機器平台" 這個步驟而已。


順便記錄一下工作站 OpenROAD-flow-scripts 版本,我就不用每次放假都要連回公司確認,為了這個電腦還不能關機,算是有點小麻煩。


2024/10/07 更新

下午詢問 IT 後,確定公司也可以安裝 WSL2,編譯 ORFS 果然跟家裡遇到的問題一樣,但因為公司電腦還在安裝中,等跑完再來更新解決辦法。

晚上 11 點多吹完頭髮後,VPN 連回公司確認 ORFS 是否有安裝成功,果然跟我想的一樣,不知道為什麼用 sudo ./setup.sh 執行的過程,會產生沒辦法寫入所有權為 root 的檔案?setup.sh 有起別的 shell 跑東東?但印象中這樣還是會帶到 sudo 的權限才對吧?

總之,按照下面步驟執行即可,step 2 就是執行會報錯的檔案,因為這個檔案的內容好像跟 build 有關,在後面還會用到,我也懶得研究 setup.sh 相關變數的值,故 setup.sh 只好浪費時間執行兩次。

step 4 是再一次確認是否還有 root 所有權的檔案,檢查結果只有這個檔案。



順便記錄一下 coyote_tc 的錯誤,本想靠它來確認 PAD 流程,但應該跟 issue 說明一樣,是不能執行的沒錯。


2024/10/11 更新

雖然知道 designs/sky130hd/coyote_tc 是不能跑的範例,但還是釐清一下相關的 issues,免得以後又要查找一次。

如果是直接跑範例,錯誤就如上張圖一樣,使用 "Command terminated by signal 9" 關鍵字去搜尋,看到的是這個 issue #1621

這個 #1621 有提到另外一個 issue #1082,裡面有明確提到,這個 coyote_tc example 是不能跑的,而且應該被移除才對,因為這樣會讓使用者誤會。

#1621 最後面有提到問題是出在 Routing congestion?其 issue 為 #1630
(但怎麼跑到那一步,我還看不出來,理論上已經到 stage 5 了?)

總之,目前 ORFS 沒有一個範例是有包含 PAD,以上。

2024年10月5日 星期六

Pubook Pro 10.3 會是我的最終歸宿嗎?

一直欠缺一台可以上網的 10 吋電子書閱讀器。

雖然文石的機器速度很快,但我個人的資料都在 Google Drive 上,不可能不登入 Google 帳號,HyRead 的新機器還在預購中,讀墨似乎有出一台開放式的機器,但我今天忘記調查了XD

在知道 Pubook Pro 是使用 MT8183 後,我就決定購買這台了,雖然在三創試用的感覺還是偏慢,但在眾多考量後我也似乎只有這台可以選擇。

沒辦法,誰叫我的 Kobo EInk Bro 一直胎死腹中,VM 的保留映像都繳了快一年的錢,但還沒時間去開啟它繼續進一步的測試。

我想我跟步驚雲一樣,都是孤獨的一個人走在驚雲道上…

2024/10/06 更新

昨天晚上 6 點多 PChome 下單後,今天下午 5 點多就收到包裹。

開機時系統大概是今年 3 月的版本,跑了一個還是兩個更新後就全部更新完畢。

目前用起來感覺還行,估計花個 1 ~ 2 天來調教一番。

潮濕起來真的是要人命

最近無意間發現 IKEA 買的每個竹子材質產品都發霉了!

最先發現的是附抽屜螢幕架,接著是盤架,最後則是手機架。

不知道是不是竹子材質的關係?感覺在潮濕的環境特別容易發霉。

我都覺得肺部在積水了XD


昨天突然發了一筆獎金,對我們還沒碰正式專案的人來說都算是賺到的,也算是個意料之外的小確幸。

今天要殺去三創買東東了,預計採購新螢幕、螢幕架?又或是筆電增高架就不用外接螢幕了?

2024/10/05 下午更新

三創的東西真的很少,筆電增高架看不到幾台,螢幕支架需要桌板有一定厚度故也不能用,最後買了一台 Dell U2424HE-4Y,還是覺得 24 吋比較適合工作,不會太大台。

另外還想買 Pubook Pro 10.3 可惜沒有現貨,這個就等之後有緣再說吧。

2024年9月22日 星期日

Google 已經慢慢成為微軟第 2 了嗎?

之前發現我一直在用的 DailyMoney App,有網友在爭求了原作者的同意後,使用原本的程式碼加上自己的修改並創建了另一個稱為 Financier 的軟體,還可以使用 Android Studio 來編譯。

今年第一次購買超過 6500 元的手機,故可以跟別人一樣同步使用最新版本的 Android OS!由於這個緣故,當初差點不能使用我自己編譯的 Daily Money

既然已經知道有網友做好的版本,應該要趁此機會更新一下開發環境才對,雖然看評論也已經不能用在新版 Android OS 了,但至少開發環境版本較新,理論上應該不難解決才對?沒想到下載了最新版的 AS 後,一堆 build error,沒有一個可以有效解決。

因此想試試之前開發的 KoboPageTurner 專案裡面的 Android App,看看是不是也會有編譯問題?當初開發的日期是 2020/08/15,AS 應該還不算太舊吧?

沒想到編譯時一樣會有一堆 error,Google 你真的太扯了!一個開發環境在更新時居然一點向後相容性都沒有?

雖然我不是專門寫 App 的,但無法在半個小時內收斂問題我還是覺得無法接受?

2024年9月17日 星期二

四天的努力終於有了點成果

從上星期三開始,使用一套之前沒用過的 EDA Tool 來驗證以前部門弟兄的 design,如果只是要讓他跑起來不是什麼難事,拿先前其他部門的設定修改一下即可。

但我的問題是要修掉 EDA 報出 Nonequivalent 的地方,感覺 EDA 好像告訴了你什麼,但是好像也沒個屁用,想要比照文件儲存 checkpoint 方便之後 debug 不用重跑,但文件就是沒講到如何在載入 checkpoint 後,重回 GUI 的方法,有稍微在 Command Reference 那份文件瀏覽一下指令,但那個貌似進入 GUI 的指令(open gui)居然是在已進入 GUI mode 的情況下使用?

今天早上終於在循序閱讀文件的別地方看到進入 GUI mode 的指令(set gui on),也看到 EDA Status Code 的地方,終於知道 make Error 24 是如何來的,原來是 status flag bit3 和 bit4 為 1 的緣故(16 + 8 = 24)。

快中午時,試著詢問部門非常有經驗很厲害的一位資深同事,嚴格來說應該是我的直屬主管,最近組織架構多了這層級後,我以後有人罩了XD

雖然前輩也沒用過這套軟體,但在跟他聊了快 10 分鐘的過程中,還是學到了不少東西。

下午不知道為什麼突然心血來潮去看之前 DC 的 log,確定了這 4 個暫存器確實在 DC 合成的過程中被優化,也用我之前寫的 split_rtl 小工具從 netlist 中複製出這 4 個暫存器的 module code,也確定確實被優化了。

但不知為什麼這套 EDA 卻只報出其中一個 2_2 register 無法 mapping?難怪網路上有看到某人提到,如果要用這套 Formality Tool,最好 Synthesis Tool 也用同一家的比較好 debug 問題,畢竟同一家的工具彼此間資訊比較容易互通有無。

最後又多加了第 5 個暫存器的 Constraint 後,終於解決 Nonequivalent 的問題,剩下的就是 Unmapped 裡面的 Extra 和 Unreachable 到底需不需要解決?我個人稍微閱讀文件的結論是不用。

對一個新手來說,這樣還算可以吧?放假回去後要來整理這幾天資料寫文件了。

2024/09/21 更新

在寫文件的過程中才發現,EDA Tool 只有報一個 register 是因為被 group 了,但當初以為統計表上的一個就是一個,故沒有特別去看單獨報表。

這告訴我們一件事,別人的專案也許用到的指令並不齊全,但只要他們有放的指令,一定有它們的目的,不管怎樣還是要看一眼才對。

2024/09/24 更新

這篇文章應該是我看過介紹 LEC 最好的簡介文章了。

為了不浪費這三個月買的授權,這兩天嘗試使用 Hier Comparision,但還是覺得有點怪怪的,感覺結果不符預期,重點是還跑得比 Flat Comparison 慢。

不管如何,還是更新了之前寫的文章,目前頁數已經來到 3 字頭XD

2024/09/26 更新

把 Hier Comparision 章節又看了一遍,把知道的參數都試了一輪,還是有 Non-equivalent 的問題。

再一次看了文章後,覺得最扯的是有一個 Add noblack box 指令,要下這個指令的前提是你必須已經知道要比較的子模組裡面的個別模組有因為優化被提出到個別模組外,也因為如此,兩個模組比較一定會不同,故必須使用這個指令讓個別模組不要成為 blackbox,這樣子模組在比較時,下面的所有模組會被攤平一起視為整體來比較,這樣才能得到一樣的答案。


問題是如果我對整個 design 都了然於心,我還需要 EDA 工具做啥?

感覺又是一個雞生蛋蛋生雞的問題?

2024/09/27 更新

看起來如果 DC 有下 -no_boundary_optimation 參數,應該就不會有上述情況發生?

2024年9月15日 星期日

我不喜歡輸的感覺

Web App 最讓人詬病的就是動態產生網頁內容,尤其是用 Javascript 動態產生的,某種程度上都會大大增加 parsing 的困擾。

有時候只想快速得到一個結果,我還得先用一個類瀏覽器的函式庫取得內容,這不是我喜歡的解決問題方式。

以前曾在網路上看到某位號稱新店寶橋路正規表示法第一的網友,我決定來效法他的作法。

先點選小老婆 Top 50 撥放清單任一首歌,接著使用 Chrome 檢查功能進到 Elements 頁面,在 html tag 處按下滑鼠右鍵 -> Copy -> Copy element,將複製內容另存檔案為 Top_50.txt。


然後就沒有然後了。  

grep -E 'h3 .*aria-label' Top_50.txt | sed -En 's/^\s*<h3.*aria-label="(.* )上傳者.*">/\1/p'


01.郭静 - 陨落(电影《大红包》告白推广曲) (动态歌词) 
02.郭靜 - 夢在遠方 
03.今天起 
04.【純享版】尤長靖/郭靜《氧氣》 治癒系嗓音隔空吟唱太好聽!《天賜的聲音》ep7 純享版no noice /浙江衛視官方hd/ 
05.郭靜 claire kuo - 在樹上唱歌 (官方版mv) 
06.郭靜 claire kuo - 軟綿綿 (官方版mv) 
07.郭靜 - 像我這樣 
08.郭靜 claire kuo - 還有什麼好在意 whatever (官方版mv) 
09.郭靜 claire kuo - 回憶的閣樓 memories of us (官方版mv) 
10.郭靜 claire kuo - 該忘的日子 i am moving on (官方歌詞版) - 韓劇《雲畫的月光》片尾曲 
11.郭靜 claire kuo【深呼吸 take a breath】official lyric video 
12.郭靜 claire kuo - 想個不停 (官方版mv) 
13.郭靜 claire kuo - 不想有遺憾 don’t wanna miss you (官方歌詞版) - 衛視中文台戲劇「長不大的爸爸」插曲 
14.相思弦 
15.逆行的減法 
16.触碰你 
17.在曾有你的地方 
18.郭靜《只為遇見你》【只為遇見你 nice to meet you ost電視劇片頭曲】官方動態歌詞mv (無損高音質) 
19.像风 
20.單身美好 
21.我的小森林 
22.郭靜 claire kuo - 簡單 (官方版mv) 
23.愛情模樣 
24.沙漏 (網劇ᐸ時光教會我愛你ᐳ插曲) 
25.類似快樂的信 (電視劇《戀戀小酒窩》片尾曲) 
26.又是艷陽天 
27.郭靜 claire kuo【消耗寂寞 leave me hanging】official lyric video 
28.悸動 
29.亲爱的你 郭静 [动态歌词/lyrics] 
30.我想要有人為我傷心 
31.算不算 
32.『溫柔女聲』郭靜(guo jing)-拜你所傷(bai ni shuo ci)【我就祝福你,幸福快樂。】#流行歌曲 #動態歌詞 #lyrics #高音質 #好聽 
33.郭靜《一個人勇敢》【我的時代, 你的時代 go go squid2 dt / appledog's time ost電視劇插曲】官方動態歌詞mv (無損高音質) 
34.郭靜 claire kuo - 何日君再來(官方歌詞版)- 電視劇《回家》插曲 
35.郭靜 claire kuo - 小聲音 (官方版mv) 
36.郭靜claire kuo《我非獨自生活》官方版mv 
37.郭靜 claire kuo - 可惜 (官方歌詞版) - 中天電視劇「何以笙蕭默 」片頭曲、 民視偶像劇「星座愛情」獅子女片尾曲 
38.郭靜 claire kuo - 我不是你的那首情歌 not meant to be together (官方版mv) 
39.郭靜 claire kuo - 拍檔 partners (官方版mv) - 電視劇《後菜鳥的燦爛時代》片頭曲 
40.郭靜 claire kuo - 別去問他好嗎 don't let him know (官方版mv) 
41.郭靜 claire kuo - 忘了如何遺忘 how to forget (官方版mv) - 電視劇《聶小倩》片尾曲 
42.郭靜 claire kuo - 每一天都不同 (官方版mv) 
43.郭靜 claire kuo - 明白 (官方版mv) 
44.他爱的梦 
45.《陪你逐風飛翔 to fly with you》郭靜 claire kuo - 越走越遠 farther and farther🥀(英繁中文歌詞 eng lyrics)🤍陪你逐風飛翔 情感插曲 ost 
46.郭靜  claire《慶幸遇見你》【我可能遇到了救星 hi venus ost 電視劇插曲】official lyric video 
47.(mv) 郭靜 (guo jing) - 月亮會記得(yue liang hui ji de) (the moon will remember) ost. 小女霓裳 aka ni chang 
48.最精彩的豔遇 
49.郭靜 claire kuo《暖橘》【我的助理不簡單 never too late ost 電視劇插曲】official lyric video 
50.DuDu好 

最後在聽到第 26 首歌《又是艷陽天》時,搞定此事並寫完更新 Blog

2024/09/15 洗完澡更新

洗澡時才想到忘記補上今天現學現賣的技巧,使用 VIM 在每列前面補上 index。

雖然我也可以都用 VIM 搞定,但我現在只能想到 .recording 2 種方法,操作起來沒有那麼漂亮,故我還是拆成三動來記錄。

01. 先把上面抓到的歌名另存一個檔案,比如 Final_50.txt。 
02. Sed -Ei 's/(.*)/1. \1/g' Final_50.txt
03. 從第 2 列開始,使用區塊模式選取 1 這一個 column,可以用 ctrl + v + G 一口氣選取,然後按下 g + ctrl + a,便會幫每一列的數字自動加 1。
04. Sed -Ei 's/^([0-9]+{1,1}\..*)/0\1/g' Final_50.txt,這裡是幫 1 ~ 9 前面補上 0。

現在就剩下如何都用 VIM 搞定,我猜應該是朝自動向下填入方向去找尋對應指令。

2024/09/16 更新

殘念,這個增加數字的技巧是從 VIM 7.4.754 版本才開始,我們家的工作站版本居然比這還舊?不支援 true color 也就算了,什麼都沒有是怎樣!

另外,對於我這種 parsing 需求來說,也許使用油猴也是個不錯的選擇,改天再來嘗試。

2024/09/21 更新

其實小老婆好聽的歌還可以再追加幾首,有 50 幾首合我口味的歌,真是不簡單呀。

昨天從下午 1:30 開始就邊聽 Top 50 邊 review 這幾天寫的文件,一直到下午 4:30 才聽到《在曾有你的地方》,3 個小時也還聽不到 40 首,不知道為什麼開車時卻覺得很快就輪回一輪了?要不是顧及老婆感受,我應該可以一直聽這歌單不會膩吧XD

另外一個撥放清單的歌混合了我從前到現在聽過覺得好聽的歌,各國語言都有,到目前也才 157 首,一樣可以用我上面 regex 的技巧取出歌名,但在複製 HTML 時,要記得自己用滑鼠拉到最後,不然預設好像只顯示 100 首,另外最後面可能會有幾首是 YouTube 推薦的,但因為是同 CSS 設定,故目前無法有效過濾,也許得用 VIM 手動砍掉推薦影片後面的 HTML 吧。

VIM 學習最後一哩路

除了工作站連線軟體不論,即使不連工作站,VIM 也算是我每天必開的軟體之一,雖然說辦公室也有安裝一套很久之前購買的 UltraEdit 13,但除了要跑 Verilog 外,我已經習慣不用 UltraEdit 的日子很久了。

當需要大量修改文字,可能會用 recording,比較不同 log 差異使用 vimdiff,另外簡易搜尋取代也算是每天必用功能之一。

感覺好像不是一般使用者了,但離鑽進 VIM 這顆蘋果的外皮也還差得很遠!

要說現在會的 VIM 技巧不夠用嗎?好像也不是!即使我的操作不是 VIM 打最少字的最佳範例,但要應付目前工作所需好像也還游刃有餘?

除了本來就有購買的《精通 vi 與 Vim 》第八版紙本書外,剛才又選了兩本英文電子書加入我的工具箱中,不到 300 的價錢真的是很超值,更別提這兩本書也是 DRM-Free。

有很多想看的書未看,但被生活與工作占領大半人生的現代人真的很悲哀,連想好好看本自己想看的書也沒時間。

明年的我還會有心情參加小老婆演唱會嗎?我很懷疑…

山不轉路轉

早上試著找出解決 YouTube Music 加入一個以上撥放清單的歌到待撥清單,按下隨機撥放卻只剩 25 首歌的問題。

想要試圖找出工程師的邏輯,將一些動作排列組合後情況依然無解,過程中還不小心將小老婆的歌單移除了幾首,害我想盡辦法找出來補回,本想將網頁存檔寫個 parser 找到這 50 首歌歌名備份,但這種 Web App 類的 code 都很髒,實在不想花時間做這種鳥事。

後來決定將救回來的歌單再備份一份取不同的名字,也順便將我開車想聽的不同播放清單音樂又另外儲存成一個播放清單,真是有你的 Google,數位垃圾就是這樣造成的。

除此之外,也把存的一些數學、3D 影像、數位邏輯等撥放清單刪一刪,順便把我喜歡的小老婆表情包變公開清單,就是喜歡小老婆也沒什麼好害羞的XD

目前暫時先用前導數字調整順序,改天再來好好安排規則。

YouTube Music、微軟新注音學習、無窮盡的網頁廣告,真是讓我越來越頭痛,這樣下去,只會讓人越來越不想用手機、用電腦以及上網。

3D 結構光撥放清單可刪,但電腦儲存的小老婆結構光檔案我可捨不得刪呀XD

想到去年的中秋、國慶連假還在家自行架設結構光環境學習,今年可真是人事已非…


2024/09/15 晚上更新

不就是正規表示法嗎?一片蛋糕罷了。

2024/10/02 更新

一樣的歌放兩個撥放清單真的很愚蠢!要新增可以一次勾選兩個清單新增,但要刪除只能兩邊清單個別點進去刪除。

不過有一個簡單的方法,點選不同撥放清單都有的歌,進去該首歌後,選擇儲存把原本勾選的按掉即可。

2024年9月14日 星期六

一些 sed 指令備忘

sed 還是有一些細微處不太明白,但現階段這樣就夠我用了,還是老樣子,不要太早最佳化!

什麼時候該鑽研,什麼時候又該無視,坦白說很難拿捏?

我想當覺得用起來不太順時,應該就是需要改進的時候了。

sed -i 取代檔案用
sed -e 直接對 stdin 

不管哪個都可以用一般取代跟 \1。

有多少愛可以重來

這星期中餐吃了好多次早餐店XD

一來是因為不用準備零錢,二來是因為天氣炎熱,實在不想搞到全身都是汗臭味,我已經從中午爬 10 層樓梯加走路,變成只有走路,到現在連路都不走了!

這星期某天吃午餐時,聽到一首還不錯聽的歌,使用聽聲搜尋後,得到的結果是趙乃吉的《有多少愛可以重來》,當時也未曾多想,便順勢的加入到 YouTube 的歌單中。

早上在聽該歌單的最後幾首時,剛好又聽到這首歌,不過老婆上完廁所後就把我正在聽的歌中斷,改去看我出錢訂閱的串流平台了?

剛好筆電是開機的狀態,因為當時還未記住歌名也未記住歌手,隨手用印象最深刻的歌詞『有多少愛可以重來』Google 了一下,才發現是迪克牛仔唱的,原本以為這就是原唱了,隨著無聊看了一下底下留言,才發現居然還有原主唱,最一開始居然是民國 83 年黃仲崑唱的,原來這是一首這麼老的歌呀,真是不查不知道。

只可惜人的第一印象很重要,我到現在還是覺得 Google 推薦給我的第三手歌手唱得比較好聽XD

連一首歌的原唱都這麼曲折離奇,如果不是我老婆強制中斷我正在聽的歌,如果我沒接著搜尋,如果看到迪克牛仔的影片後沒有繼續往下看留言,這三個條件只要一個不滿足,我到現在都還會以為原唱者是女生?

人還是不要太相信別人餵的資訊,凡事還是要自己思考後下判斷,不論判斷是對是錯,這都是一個避免有心人士操弄的最佳學習機會。

2024 week 37 新玩意

01. 不要太相信 EDA 文件

我是不知道 EDA 授權金額多少錢,但 EDA 文件普遍寫得不好倒是真的,看起來寫了很多,但對解決問題沒啥幫助,不然就是文件寫的跟指令實際行為有時候會對不起來。

不過前提是文件要先從頭到尾認真看一遍,最好要看 2 ~ 3 遍,如果還是覺得哪邊怪,那恭喜你,你不孤單XD

02. 除非特例,少用 GUI mode,不然容易當機

我們跑的設計應該很小,但我這星期就遇到當機 2 ~ 3 次了,原本都以為是該指令要跑很久,後來越想越不對勁,去 EDA license 頁面確認,果然該 license 已經沒有被占用,資源是已釋放的狀態。

我猜,EDA 應該有另一個 thread 定期回報授權主機,避免當機占用 license,畢竟授權不便宜。

因此,不管是在哪個模式下,如果覺得 EDA 好像當機了,給它個面子等個 30 分鐘左右,如果從授權主機看不到你的使用授權,就可以放心地使用 kill 砍掉該 process。

印象中,top 指令看到都還是 run,而不是 zombie?

03. EDA 相關工作要建立 SOP

EDA 動不動就要跑很久,錯了再來一次的時間成本很寶貴。

要做什麼之前最好先想好,檢查再檢查,最好有 check list 可以檢查。

VIM、Shell Script、grep 各種技巧要不斷精進,這都是可以提高工作效率的投資。

要建立自己的工作模式,比如開幾個工作視窗,要不要用分頁,視窗要擺在哪邊,養成下意識的動作,做起事來會比較流暢。

2024年9月13日 星期五

十三號星期五

這個星期都在跟某個 EDA 奮戰,明明照著文件下了幾個 debug command,結果都不符預期!連想要透過 check point 存檔進入 GUI mode 也無法隨心所欲。

還好我沒聽文件在唬爛,使用快失效 command 的 session 指令存檔進入 GUI mode 以避免重複執行的等待時間。

由於之前還不知道有這兩個 command,所以這星期至少打了 10 幾次 make 有,打久了對 make 每次都有 Error 也不免感到困惑?

原本以為是不是因為 makefile 是從別人的專案來的,故裡面有地方沒有用到 tab 字元?後來拿掉沒用的 target 後情況依舊,我才恍然大悟跟 makefile 本身無關。

網路上查了一下,那是 make 在執行指令時指令本身回傳的,也就是 EDA tool 回傳的。

剛寫了個測試程式試了一下,果然是這樣沒錯,現在只差不清楚為什麼 $? 永遠回傳 2 就是了?

以我的例子來說,make test 執行我的 test_make 時,因為不是回傳 0,故其實 make 也不會往下執行了,因此為了避免 make 不如預期浪費時間,畢竟 EDA 隨便都要跑一個小時以上,我的建議是在 makefile 要執行的指令前一律加上 -@,另外在 makefile 裡面要印出 $?,記得要變成 $$?

- ignore error
@ not display command


2024/09/14 更新

早上不死心繼續 Google 了一下,看到一篇之前就看過的文章,先前可能被 EDA 搞得很累,沒有很認真看那篇文章,但至少是從那篇文章知道 Error Code 是從指令來的。

原來 $? 之所以永遠回傳 2,那是因為對 GNU make 來說,這就表示 make 執行其他指令時有問題,故 make 遇到有錯一律會回傳 2

所以在執行 Shell Script 時,我們只需要關心 return code  是不是 0 就好了。

當然如果你的 Makefile 是在編譯執行檔,Error Code 還是多少有點用處,不過除錯這件事嗎,只能 case by case,沒有一個放諸四海皆準的道理。

另外,昨天建議加上 -@,睡過覺起來覺得似乎也不太對,約耳說,要讓錯出現在錯的地方,忽略它繼續往下走,其實也沒什麼幫助就是。

2024年9月8日 星期日

經營 Github 專案還真需要愛

當初開發了幾個 Kobo 專案,其中 KoboPageturner 已經不太用了,自從去年參考 KOReader issue 討論串後,已經可以直接用我的 Logitecn R500 在 KOReader 翻頁,再加上我的自製硬體翻頁器因為拙劣的焊接技術已經燒掉了,故這個專案可能只剩沒帶翻頁器時,臨時可以用手機充當翻頁器用。

至於其他兩個專案,Clare 2E or Libra 2 一定要上我的 patch 不然不能用藍牙,KoboFileServer 則是拿來 Wi-Fi 傳檔用,故還算是我還蠻常用的兩個專案。

今早收到 KoboFileServer 的 css patch,照該網友說法,似乎在小螢幕上會有問題?

由於我也不是專門寫網頁的人,故我也不太懂我原來的 css 哪邊會有問題,我猜應該是用 pixel 指定字型大小?

我這已經是夠冷門的專案了,到現在也才只有 3 個人發 patch,但想到還要回覆就有點懶XD

要回覆前,我得先自己測試,如果需要編譯我還得準備環境,畢竟這已經是兩年多前的專案了,我的電腦還有沒有環境我都不確定了?

結論就是,要經營 Github 專案還真需要愛呀,還好我不靠這個吃飯,有沒有 stars 我也不會很在意?

左邊是我原本的,右邊是網友改的,本想用抓圖方式,還要搞定無痕模式抓圖的限制,不然就是要裝另一套瀏覽器,想想就懶,直接開筆電相機抓圖就好XD


2024/09/12 更新

前天該網友有回信,原來所謂的小螢幕超出是指上下會出現 scroller bar,想了一下,既然有人有需求,乾脆加上 button 切換,馬上 Google 一番,搞定收工。

雖然我自己是比較喜歡原本的,但該網友有讓表格的字離邊框遠點,確實是比較好看,但預設畫面限縮在正中間導致字體變小,個人覺得是對老人比較不友善XD

2024年9月7日 星期六

消失的記憶

一直覺得有哪件事忘了記錄,剛剛終於想起來了。

我手上 Kobo Elipsa 裝的 Plato 版本似乎有問題,只要沒回到 Kobo 本身 OS,即使 Plato 有進入休眠,但隔天電就會被耗光,不知道是不是跟舊版有關就是了?

又或許進入 Plato 後,預設會開啟 Wi-Fi?導致電被耗光?

我也懶得深入追究了,目前先記得有這回事就好!

又是 Verilog

前幾天為了快速讓 DC 可以往後跑下去驗證環境是否正常,還沒等到樓上同事的回覆,我就已經先改好了,在我看了大神的幾篇 race conditon 文章後,個人覺得從 = 改成 <= 的結果是一樣的,畢竟在那個 T 中,外面取 signal 的其他 module,如果本身判斷處也是 sequential logic,勢必要在下一個 T 才能收到這個變化,不會因為這裡寫成 blocking assignment 就會有所改變,至少我個人目前的理解是這樣。

早上起床後有寫了支測試程式試了一下,看起來跟我想的一樣,但因為早上急著出門,一直到剛剛才有時間整理一下,馬上現學現賣早上學會的分割視窗功能,雖然這邊有點為用而用,畢竟 VIM 本身就可以分割視窗,但這裡真的是分割視窗,視窗分別各開一個 VIM。


畢竟我手上沒有 code,m1 module 是我憑大意寫出來的,但應該有還原出原模組的用意?

m1 out[1:0] 使用 Blocking assignment
m2 out[1:0] 使用 Non-blocking assignment

test1 使用 sequential logic 判斷 m1 out[1:0] 值用
test2 使用 sequential logic 判斷 m2 out[1:0] 值用

test3 使用 combinational logic 判斷 m1 out[1:0] 值用
test4 使用 combinational logic 判斷 m2 out[1:0] 值用


因為我 0ns 沒有拿來幹嗎,故 testbench 在這個時間點都用 blocking assignment。

為了避免 5ns 使用 blocking assignment 跟 clk assignment 產生 race condtion,我將 d 跟 flag 設值提早到 4ns 處,因為我 m1 和 m2 就是要在 5ns 開始判斷訊號做事,不要拖到下一個 posedge clok。  

10ns 雖然也是使用 Non-blocking assignment,但我沒有 negedge clk 的 case,故這裡即使用 blocking assignment 也不怕 race condtion。


從 waveform 可以看出,5ns 時,不管是 test1 或是 test2 在 testbench 那端,因為是用 sequential logic 去接 data 訊號,故輸出是 x。

相反的 test3 和 test4 因為是用 combinational logic 去接 data 訊號,故輸出是 1。

因此,截至目前為止,我對 Verilog 的理解是:

01. 在 testbench 那端使用 blocking assignment 設值,大部分情況在另一個 module 的循序邏輯都可以看到該訊號變化,但如果 testbench 那端的 data 設值是跟 clk 在同一個時間點,有可能 clk 會先改變(看各家 simulation 實作,Spec 這裡順序是不確定的,看誰先從 active region 被取出),這意味著在別的 module 的循序邏輯會看不到該訊號變化。

02. testbench non-blocking assignment 沒有異議,一定是別的 module 循序邏輯的下一個 clock 才能捕捉到。

03. 如果 module 組合邏輯的輸出,跟本身模組裡面的循序邏輯設值有關,即使是透過組合邏輯輸出,testbench 或是其他使用的 module 那端,也是要在下一個 clk 才會反映出來,除非使用端也是用組合邏輯接,但只要這個訊號有被其他循序邏輯用到,就是要等下一個 clk。

我的理解應該是對的吧?

眼球果真是兵家必爭之地

現代人娛樂太多但擁有的時間又太少,如何在有限的時間內盡量吸引民眾注意力,並將流量轉成紅利,我想應該是所有網紅、媒體業甚至是廣告業者等的必做功課吧?

雖然我很喜歡可愛的小老婆,但偶爾看到豆花妹的影片還是會稍微點一下,剛點的第一首歌曲是《迷人的危險》,副歌還不錯,但主歌就不是我會喜歡的旋律,真是可惜了這一首歌…

接下來又隨意點了 Youtube 下面推薦的另外一首歌《煙火》,這次就是我的菜,趕緊更新到我的歌單之中。

雖然推薦清單還有豆花妹其他的歌,但我已經懶得點了,即使對象是憑良心說比小老婆漂亮的豆花妹!因為一來我不喜歡受演算法主導,二來我是老人體力有限,沒有天大的吸引力我連點一下遙控器都懶,就像平常吹頭髮滑 Google Play Movie 或 Netflix 一樣,有時候從頭滑到尾,即使會考慮租借或是按下加入待看清單,但沒有一部電影真的會讓我願意花費體力以及時間去點下購買或撥放,我想我是真的老了,廉頗老矣XD

講到這裡,又想罵 Youtube Music 兩句,更新了一些歌曲,但一直沒機會將所有歌唱撥放清單好好地加入待撥歌單中並隨機撥放,老婆我也是不願意只聽小老婆的歌呀,都是 Google 害我的?

假設現在待撥歌單有 200 首歌,一點下隨機撥放按鈕後,可能只會剩下 20 首歌,這不知道是哪門子的隨機撥放,重點是看 Google Play 評論這個問題已經很久了,Google 真的已經不是我 20 幾年前認識的 Google 了,連我用左腳都能改的 bug 居然要拖那麼久?

逼得我只好將小老婆的歌單再取其精華另建新歌單(只是沒事找事做,順便讓小老婆好聽的歌在更好聽,同一個撥放清單的按下隨機是正常的,只有加了一個以上才有問題),原本只想要湊 23 首,畢竟劍聖最後也只有使出劍二十三,沒想到越加越多加到 Top 50,這樣也好,取其精華的好處就是每首歌聽了都開心XD

歌手除了唱歌好聽以及個人魅力有沒有觀眾緣外,歌曲好不好聽也是很重要滴,這樣算起來小老婆還算幸運,至少我個人覺得好聽的歌還真不少就是XD

唉,除了工作及家人外,要我願意花費時間的事情真的是不多了…

WSL 分割視窗

上一次頻繁使用 WSL 是為了搞定 Kobo Libra2 藍牙問題

今年換了新部門,工作時大幅使用 Linux 工作站,雖然我 20 幾年前就把 Linux 當個人電腦用,但也只限於上網,BBS,MSN 以及幫媽媽燒錄 VCD 給同事?

最近終於比較不用一直看文件,故也要趕快找時間熟悉 C Shell or Tcl 變專家,不然一有需求,為了不想浪費晚上時間的運用,勢必要趕在下班前把環境或 script 準備好,忙中容易出錯不說,也容易耽誤了下班時間。

WSL 就是一個很方便的東東,讓我不需要多重開機就可以使用 Linux,不過 spfdisk 我也 10 幾年沒用過就是了!

有時候想把心得抓圖放到 Blog,愚蠢的我居然是開兩個 WSL 並排來抓圖,早上終於想到要 Google 了XD

其實這很合理,一開始沒必要最佳化,但當重複事件不斷發生,就要開始優化工作流程了,畢竟我們可是聰明的工程師,數十年如一日不是吾輩該有的工作態度!

Alt + Shift + plus 開啟右邊視窗
Alt + Shift + minus 開啟下邊視窗

Power Shell 也適用

帥呀老皮

2024年9月6日 星期五

Tcl 變數邏輯

繼昨天了解 env var 如何判斷後,今天拿了之前買的一本 Tcl 紙本書去辦公室,放在辦公室應該比較有機會翻閱?

我在工作站建了兩支檔案,test.csh 以及 test.tcl,把練習過的語法寫在裡面,以後要找也方便。

不過,可能是看得還不夠多,到現在還是不太能抓到 Tcl 變數在不同 command 下,到底何時要加 $?


就拿常用的 for loop 來說,incr i 就不需要加 $,但是 llength 和 lindex 後面的 list 變數就要加 $,似乎不能單純看變數是否要改變來決定是否要加 $,又或者是 list 有它自己的規則?

2024/09/07 更新

昨天晚上想睡了,回頭看好像自打嘴巴,感覺以這裡來說,因為 incr 有改變值,所以才不加 $,好像還蠻合理,但 info exists command 確實是不用加 $,我印象中紙本書前幾頁也是有不用加 $ 的 command?

2024年9月5日 星期四

認真過每一天

下班前一個百思不解的問題,沒想到在洗澡時就讓我無意間想出來了?

前幾天在中央集權的框架中加入了一個地方自治的機制,雖然改動的不多,但我還真的蠻佩服我自己,當初只是為了不要大改別人家的專案才這樣設計,沒想到居然還有保留彈性的副作用,差點都以為自己是天才了,誰說一定要善用設計模式才是高手,只要認真過每一天,每天勤練感謝的正拳,總有一天,我們也能成為獵人協會會長XD

這個問題就是,雖然加入了地方自治的機制,但因為 DC license 有限,我也沒時間測試原本框架的功能是否正常,早上跑完自己想知道的頻率數據後,下午想說就來跑看看原始流程吧,沒想到還是出事了!

Tcl 變數其實跟 C 語言很像,使用前要先宣告。

前天為了兩者兼容,加了一段 if else 語法,下面是該語法示意:

if {"$::env(variable)" == "1") {
    set file_name "file_name_${varable}.log"
} else {
    set file_name "file_name.log"
}

殊不知當 variable 不存在時,此段語法會報錯,但不會影響 DC 繼續往下跑下去。

只要工作不會中斷,一切都好辦,將 else 往上提變成預設值,因為地方自治一定會有該變數,故不會有問題,而當跑中央集權框架時,因為有著預設值的關係,故變數不存在報錯也無妨。

雖然無妨,但那 Error 的字眼就掛在 DC log 中也是很礙眼,故下班前有稍微找一下如何檢查 Tcl 變數,但一直不懂為什麼要拿掉 $ 符號?

原來 info exists variable 的用法,variable 本來就不用加上 $,既然我們要檢查的是 env,當然就要從 $::env(variable) 變成 ::env(variable) 才行。

在曾有你的地方

小老婆歌迷也快滿兩年了,到現在還是覺得怎麼這麼可愛XD

一直以為我比較喜歡的是《夢在遠方》,但每當在車上聽到《在曾有你的地方》時,我都會跟老婆說我戀愛了!

不得不說,歌詞寫的也很棒,不需要看歌詞都知道在唱什麼,跟另外一首《七夕生蛋》不一樣?


不知不覺,距離人生第一次聽小老婆演唱會也過了一年有了,時間過得真快呀!

2024 week 36 新玩意

01. 跳板工作站顯目提醒

前幾天自己耍笨,以為工作站沒有安裝相關軟體,又麻煩老闆重傳一次檔案XD

但這樣下去不行,下次搞不好又會忘記跌股?年紀大了,不能依賴自己的記憶。

原本想要加一個 dispatcher,就是 shell 收到指令,都要先攔截進到這個 dispatcher,就可以趁機檢查工作站名稱並提醒自己,但不知道有沒有這種東西?

還好昨天突然想到可以用 prompt,就是那個 shell 提示。

Bash 要設定 $PS1,C Shell 則是要設定 $prompt,兩者顏色語法好像也不一樣?


02. DC 獨立男人

DC 可能因為一直改版,有些指令參數跟以前不一樣,一般都是進到 dc_shell,再用 man 指令查詢。不過,部門只有一套授權,所以當在 log 發現 Error 時,只能等到 DC 跑完才能查XD

前天因為沒什麼睡,昨天下午在完成老闆交代的任務後,就不勉強自己繼續看 Spec,而是上網查詢一下 csh 相關知識,終於讓我無意間看到好東東

alias dcman "man -M $SYNOPSYS/doc/syn/man"

之後就可以直接打 dcman create_clock 查詢了。

03. DC check tcl 語法

也是從同一個網站看來,前天加入自動化 build 不同參數 DC 時,很多錯誤都要等到執行到那邊才會知道,這也是將流程拆分成不同檔案的缺點,無法一目了然的看到並發現錯誤。我們可以用 DC 自帶的 tool 來檢查,只是不知道能不能從進入點 tcl 一直檢查到所有 tcl 檔案?早上進辦公室後在確認一下。

dcprocheck xxx.tcl

2024年9月4日 星期三

它抓得住我

我算是用 Blog 記錄一些瑣事的人,沒有它我都不會寫程式了,即使到今天,我寫任何程式沒有 Google 我都記不住函數的參數以及順序有哪些?

正所謂凡走過必留下痕跡,吾生平所為未嘗有不可對人言者XD

當然沒事還是不要去看謎片,看完真的空虛呀XD

儘管如此,當初居然未曾想到要替 Blog 搜尋留下統計資料?

沒關係,凡事都不嫌晚,只要開始就好!


老樣子,還是沒變,兵器榜排行第一還是大台北行政區圖?

第二名是很久以前,自己玩 Amazon VM 洗出來的XD

其他文章都是電子書相關的。

值得注意的是,Redfish 居然可以排進前十名,難道是我當初看走眼了嗎?這個東東已經要成為伺服器管理任務中的 Windows 嗎?

2024/09/24 更新

只有數字不會騙人,Redfish 根本沒有成為當紅炸子雞,一切只是我想太多!

2024年9月3日 星期二

天下大勢,分久必合,合久必分

之前將某 VLSI Synthesis 專案架構加到某個 Open Source 的框架當中,當時心裡就想,這樣其實會失去彈性,我個人是比較支持原本那樣的架構,不要走中央集權的模式。

果不其然,下午有個需求想知道某專案的上限在哪?這樣的需求還是要透過自動化處理比較 Smart,還好之前是用最低限度修改的方式將專案加入到框架當中,稍微想了一下,複製了幾個檔案,為了不要大改之前的東西並重複利用 config.mk 原本的內容,在某專案根目錄又加回了 Makefile,方便我在根目錄中觸發自動化流程。

此次修改最麻煩的是 C Shell 一些語法撰寫,我想一般人應該都比較熟悉 Bash,在不斷的 Google 下,終於順利將自動化流程跑起來,但也花了我一個半小時XD

本次快速重點

01. 不管是 Tcl or C Shell 變數都可以用 {} 包住,避免串接時失敗。
02. @ 是 C Shell 用來執行數學運算。
03. bc 是用來處理浮點數並格式化。


小專案單次合成雖然很快,但也要跑將近一個小時,本想晚上回到家吃完飯再用 VPN 連回公司確認一下是否有照我的想法一個接一個的自動化跑下去,無奈公司電腦網路在休眠時常常會無端斷線,只好明天再來看看結果如何?

經過這次事件,明白到自己還是缺少 C Shell 以及 Tcl 相關書籍,趕快買了 2 本書壓壓驚,Tcl 就算了,C Shell 的書還真是難找,只好找了一本快 30 年前的書XD

不得不說,O'Reilly 出版商真是有情有義,在 Google Play 買的書都沒有 DRM 保護,直接就可以下載,也算是節省了我一些時間。

有沒有人可以告訴我使用 Bash 跑商業 EDA tool 到底會不會有問題呀?我實在不想繼續考古下去了…

2024/09/04 更新

作夢都夢到自己在改 C Shell script,有沒有這麼可怕XD

害我半夜三點起來就沒睡了,趕緊把最近買的五本書使用自己開發的 kobofileserver 上傳到 Kobo Elipsa 電子書閱讀器上,然後就沒然後了XD

一直到剛剛都還在看著 PTT 追新聞,我也算是有情有義的男人吧XD


感謝網友 usimon 建議增加多檔上傳功能,原來這功能還真是好用,可能是我以前只會循序邏輯的執行事情吧XD

難道這就是傳說中的單核單執行緒先佔式多工老男人腦XD

2024/09/04 到公司後更新

恨呀,果然有問題,偏偏昨天 VPN 連不回來。

昨天犯了一個錯誤,都怪該死的 DC command 語法,害我不小心中招XD

{$clock} 因為在 Tcl 裡面,{} 就跟 Bash 的單引號一樣,是當純字串的,想單然爾,我昨天的心力都白費了。

解決方式也很簡單,跳脫大小括弧即可。

\{$clock\}

但是人生就是有那麼多 But,此招對 DC 這個聖鬥士無效,它就是需要 {},無奈之下,只好將該 command 改用 echo 自動化產生 Tcl script。

為了這個臭蟲,早上雖然提早來公司,但又花了我一個小時 debug,今天真不是我的天呀!

2024年9月1日 星期日

方恨少

我書讀得不多(學校的書),雜書倒是看了不少,要細數人生遺憾的幾件事情當中,以前不曾好好上學(認真唸書考試)應該可以算上一筆。

最近為了工作,買了幾本 VLSI 相關的電子書,才知道這類的書還真不是普通的貴,重點還有些年紀,有些書甚至還超過 20 年有!以前一直覺得 C/C++ 規格書已經夠貴了,這禮拜買的四本書,好幾本的價格都可以跟規格書比擬,我雖然沒細算,但應該介於 7,500 ~ 8,000 有吧?

有 3 本書在 Play 購買,一本在 Elsevier 購買 

有一本我可能只想看某幾節罷了,但還是買了下去,正所謂孩子的學習不能等,不過為了我這個學習的孩子,花的錢應該也可以買一部不錯的筆電了吧?這還只是 Blog 我有印象記錄下來的部分XD

早上無意間想到好讀網站,沒想到又開始繼續營運了,但我憑印象找了幾本看過的書都未曾看到下載處,我猜應該是熱心人士,憑著之前部分砍站的備份又讓他繼續下去吧?印象中 20 幾年前購買好讀 PDA 版 App 時,只需要台幣 500 元,還用電子郵件跟周劍輝博士聊了幾句查帳要翻一堆法規的需求,沒想到時光飛逝呀…

有時候不是讀者不支持正版,但就是有些書買不到正版電子書,即使除了車子之外,最大支出都在買書上的我(正常食衣住行不算),我猜也大概只有百分之九十幾以上是花錢購買的正版。

像我一直很想購買《黑豹列傳》電子書,每當人生低潮的時候,對話裡的一些大道理總會讓我再找到奮鬥的力量繼續下去,只可惜現在連漫畫書店都沒剩幾間了!

蝦皮等網站也不是買不到盜版 JPG 電子檔,重點還比隨便一本資訊電子書便宜,但個人還是想要支持正版,畢竟現在不是學生,只好放棄購買的念頭,改天寫信去出版社敲碗好了,估計 5 萬 ~ 10 萬內應該可以買到全 900 期?

無聊又抓了一下 Readmoo 和 Kobo 購書金額圖,順便看看 Kobo 網站開發團隊是否又無聊到去更改 CSS class name

Readmoo 最近五年購書金額統計

Kobo 最近五年購書金額統計

嗯,真是幹得好,這星期買的四本資訊電子書金額居然快跟 Kobo 今年目前已購書金額相當,真是錢到用時方恨少呀! 

2024/09/01 晚上更新

查了一下,原來是熱心讀者接手好讀網站,但我還是搞不懂為什麼找不到我以前看過的書?

剛才想要略表一點心意,一直以為是我哪裡操作錯誤,查了一下,原來是 Taiwan 不支持 Paypal?但我是用信用卡支持的不是?我還真有點搞混了!


2024/09/24 更新

信用卡帳單出來了,真是不忍直視呀!幸好 Google 匯出檔案還算容易,還是 Elsevier 比較乾脆,直接給電子檔。

要買資訊相關的電子書,我只推薦 manning,Elsevier 以及 O'Reilly 這三家。