pretty code

2023年5月31日 星期三

cl command line

即使在 Windows 下,我還是習慣用 gcc 來編譯自己寫的 C 程式,如果是別人的專案,只要是寫得好的 project,用 gcc 理論上也不會有什麼大問題。

至於一些有名的專案,為了減少編譯問題,大部份都還是提供 VC 的編譯選項,確實 Windows 下用 VC 問題會比較少!

另外,有些專案也會附上 cmake 設定檔,只要電腦環境有安裝好其他的相依性函式庫,這種的問題也不大。

但如果是一些 github 上的小專案,又沒有提供編譯說明文件,這時就會有點小麻煩,理論上用 IDE 來設定應該會比較輕鬆?

但我是個不習慣使用 IDE 的人,還是來找一下 command line 編譯選項好了。

https://github.com/j30206868/StereoSGBMNote

以上面專案為例,此專案是實作 SGBM 匹配演算法的專案,可以幫助我們學習演算法,他本身有用到 OpenCV。

底下是編譯步驟:

01. 配合電腦的 VC  版本,找到 OpenCV 有提供預先編譯好的版本,以 VS2015 為例,可以下載 3.4.10 版本!

02. 將下載檔案解壓縮到某個資料夾,此處我是解壓縮到 E:\OpenCV_C。

03. 切換目錄到 StereoSGBMNote 專案路徑,在這裡新增一個 build.bat,內容如下。

@echo off

set path=%path%;E:\OpenCV_C\opencv\build\x64\vc14\bin

cl main.cpp stereoSGBM.cpp /Fe"test.exe" /I E:\OpenCV_C\opencv\build\include /link E:\OpenCV_C\opencv\build\x64\vc14\lib\opencv_world3410.lib

echo.
pause

set path 是為了執行的時候可以找到相關 DLL 檔。
/Fe 是指定執行檔名稱。
/I 是指定標頭檔路徑。
/link 是指定 link 的 library,預設是 Release。

有些原始碼會有其他字元集的註解,假設跟當前終端機預設不同會有警告,如果是 UTF-8 編碼字元,可以加上 /utf-8 消除編譯警告。

04. 配合批次檔內容,開啟對應的 VC prompt,以此例來說是 "VS2015 x64 Native Tools Command Prompt"。

05. 在開啟的 VS 視窗中,切換工作目錄到專案路徑,執行我們剛準備好的 build.bat 即可。

2023年5月15日 星期一

勞工保險條例第 65-4 條

昨天聚餐時媽媽問了一個問題,大意是說為什麼她的同事勞保退休年金有調整變多但她的數字卻沒有變化?

一直以為是她的同事沒有說清楚,因為媽媽在一兩年前也有調整一次,理論上大家都一樣才對,害我又以為是她的同事在那亂說!

回家查了一下,才知道是我孤陋寡聞,這個東西還真的每個人都不一樣!

根據勞工保險條例第 65-4 條:「本保險之年金給付金額,於中央主計機關發布之消費者物價指數累計成長率達正負百分之五時,即依該成長率調整之。」

又根據勞工保險條例施行細則第 96 條第二項:「本條例中華民國九十七年七月十七日修正之條文施行第二年起,前項消費者物價指數累計成長率達正負百分之五時,保險人應於當年五月底前報請中央主管機關核定公告,並自當年五月開始調整年金給付金額。」

簡單來說只要跟退休那年的物價指數相比相差達正負百分之五時,該年度五月份年金金額就會乘上那個相差比例。

比如說有位勞工在 2010 年退休,勞保退休年金月領 20,000 元,今年(2023)物價指數相差剛好是正百分之五,則該年度年金調整後金額為 20,000 x 1.05 =  21,000,年金調整過後就會以該年度(2023)當基準重新計算,直到物價指數又相差達正負百分之五時,便會再重調整一次。

另外,民眾在六月份刷存摺時會看到兩筆金額,分別是 20,000 和 1,000,自七月起就會是一筆金額 21,000 入帳(似乎五月份年金是六月領?)。

我想應該不會有人遇到負百分之五的情況吧?

2023年5月3日 星期三

Create requirements.txt from current Python code.

pip install pipreqs.

pipresq --encoding utf-8

requirements.txt will be in current working folder.