作者: 林仔文

  • 董事長樂團 – 瘋人(吉他)

    (Em)Em    G      Am        Em
    聽無聲 看無影 揣無岫(巢) 咧講啥
    Cmaj7 G Am7 Em
    無地驚 我是痟人 一條命 無影無跡

    C G
    若毋是你遮愛我 我嘛袂愛你
    Am Em
    人情世事 我早就放袂記
    C G
    浮沉佇風中的花蕊 半暝的銃子
    Am Em D
    社會無情 來來去去
    C G Am Em
    喔⋯⋯身在江湖 兄弟代 無地覕藏
    C G Am D
    喔⋯⋯吞落腹內 心內事啥人會知
    (Em)Em G Am Em
    你的聲 你的影 你的心情 我會疼
    Cmaj7 G Am7 D
    麻麻~我是瘋人 過了今夜 過了風聲

    若毋是你遮愛我 我嘛袂愛你
    人情世事 我早就放袂記

    浮沉佇風中的花蕊 半暝的銃子
    社會無情 來來去去

    我毋是你講的彼款人
    身在江湖 兄弟代 無地覕藏

    我毋是你講的彼款人
    吞落腹內 心悲哀 啥人會知

    你的聲 你的影 你的心情 我會疼
    麻麻~我是瘋人 我是瘋人 無人會知
  • LaTeX for Windows 11 & VS Code

    前一陣子要 re-build 之前用 LaTeX 寫的文章,試了好幾種方法,最後發現只要把 MiKTeX 裝起來就搞定了。基本上隨附的 TeXworks 編輯器也夠好用。

    但如果想要在 Visual Studio Code(VS Code)中編輯,請先安裝 VS Code 外掛 LaTeX Workshop

    若要使用我之前寫的樣版(LaTeX 中英文報告 preamble 設定(2018)),要調成使用 XeLaTeX 來編譯。細節可以參考下列設定(settings.json):

    {
        "livePreview.notifyOnOpenLooseFile": false,
        "editor.unicodeHighlight.nonBasicASCII": false,
        "[python]": {
            "editor.formatOnType": true
        },
        "python.defaultInterpreterPath": "C:\\Users\\show6\\AppData\\Local\\Programs\\Python\\Python311\\python.exe",
        "window.zoomLevel": 1,
        "security.workspace.trust.untrustedFiles": "open",
        "git.openRepositoryInParentFolders": "always",
        "explorer.confirmDelete": false,
        "git.autofetch": true,
        "interactiveWindow.executeWithShiftEnter": true,
        "latex-workshop.latex.tools": [
        
            {
                "name": "xelatex",
                "command": "xelatex",
                "args": [
                  "-synctex=1",
                  "-interaction=nonstopmode",
                  "%DOC%"
                ]
            }, 
            {
                "name": "latexmk",
                "command": "latexmk",
                "args": [
                    "-synctex=1",
                    "-interaction=nonstopmode",
                    "-file-line-error",
                    "-pdf",
                    "-outdir=%OUTDIR%",
                    "%DOC%"
                ],
                "env": {}
            },
            {
                "name": "lualatexmk",
                "command": "latexmk",
                "args": [
                    "-synctex=1",
                    "-interaction=nonstopmode",
                    "-file-line-error",
                    "-lualatex",
                    "-outdir=%OUTDIR%",
                    "%DOC%"
                ],
                "env": {}
            },
            {
                "name": "xelatexmk",
                "command": "latexmk",
                "args": [
                    "-synctex=1",
                    "-interaction=nonstopmode",
                    "-file-line-error",
                    "-xelatex",
                    "-outdir=%OUTDIR%",
                    "%DOC%"
                ],
                "env": {}
            },
            {
                "name": "latexmk_rconly",
                "command": "latexmk",
                "args": [
                    "%DOC%"
                ],
                "env": {}
            },
            {
                "name": "pdflatex",
                "command": "pdflatex",
                "args": [
                    "-synctex=1",
                    "-interaction=nonstopmode",
                    "-file-line-error",
                    "%DOC%"
                ],
                "env": {}
            },
            {
                "name": "bibtex",
                "command": "bibtex",
                "args": [
                    "%DOCFILE%"
                ],
                "env": {}
            },
            {
                "name": "rnw2tex",
                "command": "Rscript",
                "args": [
                    "-e",
                    "knitr::opts_knit$set(concordance = TRUE); knitr::knit('%DOCFILE_EXT%')"
                ],
                "env": {}
            },
            {
                "name": "jnw2tex",
                "command": "julia",
                "args": [
                    "-e",
                    "using Weave; weave(\"%DOC_EXT%\", doctype=\"tex\")"
                ],
                "env": {}
            },
            {
                "name": "jnw2texminted",
                "command": "julia",
                "args": [
                    "-e",
                    "using Weave; weave(\"%DOC_EXT%\", doctype=\"texminted\")"
                ],
                "env": {}
            },
            {
                "name": "pnw2tex",
                "command": "pweave",
                "args": [
                    "-f",
                    "tex",
                    "%DOC_EXT%"
                ],
                "env": {}
            },
            {
                "name": "pnw2texminted",
                "command": "pweave",
                "args": [
                    "-f",
                    "texminted",
                    "%DOC_EXT%"
                ],
                "env": {}
            },
            {
                "name": "tectonic",
                "command": "tectonic",
                "args": [
                    "--synctex",
                    "--keep-logs",
                    "--print",
                    "%DOC%.tex"
                ],
                "env": {}
            }
        ], 
        "latex-workshop.latex.recipes": [
            {
                "name": "xelatex",
                "tools": [
                "xelatex"
                ]
            }
        ]
    }

    測試 OK 的環境:

    • Windows 11 24H2
    • MikTeX 24.1
    • LaTeX Workshop 10.9.1
  • 來生緣(吉他)

    前一陣子重聽一次,真有時代的味道。原 Key Em,這裡抓 Dm 較好彈唱。

    Dm         Gm
    尋尋覓覓 在無聲無息中消逝
    C Am Dm
    總是找不到回憶找不到曾被遺忘的真實

    Dm Gm
    一生一世的過去 你一點一滴的遺棄
    C7 F A7
    痛苦痛悲痛心痛恨痛失去你
    Dm D7
    也許分開不容易
    Gm
    也許相親相愛不可以
    C7 F A7
    痛苦痛悲痛心痛恨痛失自己

    Dm Gm
    情深緣淺不得意 你我也知道去珍惜
    Am7 Dm Dm
    只好等在來生裡再踏上 彼此故事的開始

    ******
    Dm Gm
    生生世世 在無窮無盡的夢裡
    C Am Dm
    偶而翻起了日記翻起了你我之間的故事

    Dm Gm
    一段一段的回憶回憶已經沒有意義
    C7 F A7
    痛苦痛悲痛心痛恨痛失去你
    Dm D7
    也許分開不容易
    Gm
    也許相親相愛不可以
    C7 F A7
    痛苦痛悲痛心痛恨痛失自己

    Dm Gm
    情深緣淺不得意 你我也知道去珍惜
    Am7 Dm Dm
    只好等在來生裡再踏上彼此故事的開始
    Am7 Dm Dm
    只好等在來生裡再踏上彼此故事的開始

  • 家裡的單人床配置

    家裡的單人床配置,個人覺得 CP 值滿高的,記錄一下。

    床用的是 MUJI 的單人附床板床墊。這一組整體床價格約台幣一萬出頭,內容包含獨立筒床墊+床架+床罩,以品牌床組來說非常超值。該牌的尺寸比較特別,長度是 195 cm 比常規還長,這點對於愈長愈高的現代人來說很不錯;寛度則是 97 cm 還算可以。併二張就變成 King size 超大床,尺寸接近 200*100cm,2 個人睡距離超遠😂。不過這個特規不容易買到替代的床墊或床罩就是了……另外一提,床腳要另外買,有幾種高度可以選。選高一點的床腳還可以增加一些床下的收納空間。如果要併二張變成 King size,該牌也有賣專用的固定配件可以避免兩張床睡一睡分開。

    保潔墊用宜得利的 N WARM。冬天的時候相當推薦,鋪上去後,睡起來親膚不冷,睡眠的舒適度提升很多。

    被子的部分是用單人十月被。表布質感很好不需要裝被套,可以省一條被套的錢。被子也可以機洗,乾滿快的。雖然號稱「十月」被,但天氣熱一點的日子特別是在六到九月的酷暑,只開電扇不開冷氣的話我個人是覺得太熱蓋不住。所以我個人是會搭一條標準尺寸的單人薄被,熱一點的時候就單蓋薄被,放掉十月被。到了冬天,這條被子的厚度比較尷尬,我個人是把十月被裝進去前述的薄被裡面當被胎。再冷一點日子如寒流天,就需要開個暖氣來幫忙一下了。前述組合以我個人體質,室內溫度低於 16 度就不夠力了。

  • 團隊的幸福感

    前一陣子同事提到了「追求工作的幸福感」這件事,我花了一點時間思考這件事。直接講我初步的結論。一個團隊的氣氛、向心力或默契,也許可以用下列方式來判斷:

    • 首先,先評估自己做為團隊中的一員是不是幸福的?
    • 接著評估團隊中的其它成員是不是幸福的?

    如果上述二者為真,也就是說團隊中的所有成員無論是對於自己或他人都是感受到幸福的,這或許就是一個很棒的團隊。

    如果你也有 Leader 的身份,可能會跟我一樣在「幸福」二字上有不安定感。有人的幸福是做的踏實,有人的是沒什麼壓力;有人的幸福是薪酬高,有人的是早下班。幸福感無法量化,天坪的一端那個有著烏托邦式超幸福的團隊,雖然理性上知道不存在,但這種 100 分的例子反而簡單好討論。若是一個光譜中間、介於幸福與不幸福的團隊,它牽扯從自我、人與人、到對公司之間的互動,這種幸福感的評價會更不可能。

    工作的本質就是大大小小的需求到回應的集合。對於客戶的需求,我們以產品或服務回應;對於主管或同事的需求,我們以解決方案或配套措施回應。你有問題,我幫你解決,簡單來說是這樣。人與人之間擺脫不了上述關係。客戶對廠商、上司對下屬,甚至是家長對子女。

    所謂不在其位,不謀其政。在工作的關係中,做為受託者,最大的榮耀莫過於託付者可以毫無疑慮地把工作交付予你。在公司的軟硬體或架構流程之外,這種信任感建立在對方的能力、專業、經驗、默契,甚至是共同的價值觀上。當整個群體能為了共同價值觀努力,這將是超越默契的無法描述的新的境界。

    回到幸福感。評估「信任感」是否比評估「幸福感」更容易也更具有工作上的效益?我的答案是肯定的:

    • 首先,先評估自己做為團隊中的一員是不是為人所信任?
    • 接著評估團隊中的其它成員是否為你所信任的?

    如果團隊中的所有成員無論是對於自己或他人都是為人所信任的,這肯定是一個有著超默契的高效率團隊。

  • 我只在乎你(吉他)

    原調鄧麗君唱 E。這邊抓 G,男生唱夾到 3 到 5 格(C)都是舒服的音域。

    G          Bm Em        Bm
    如果沒有遇見你 我將會是在那裡
    C G Em Am D
    日子過的怎麼樣 人生是否要珍惜
    G Bm Em Bm
    也許認識某一人 過著平凡的日子
    C G Em Am D
    不知道會不會 也有愛情甜如蜜

    G Em
    任時光匆匆流去 我只在乎你
    G Em
    心甘情願感染 你的氣息
    C B7 Em
    人生幾何 能夠得到知己
    C Cm D B7
    失去生命的力量也不可惜
    Em Em/Eb
    所以我求求你
    Em/D Dm7/C
    別讓我離開你
    G Bm Em C D G
    除了你 我不能感到一絲絲情意

    G Bm Em Bm
    如果有那麼一天 你說即將要離去
    C G Em Am D
    我會迷失我自己 走入無邊人海裡
    G Bm Em Bm
    不要什麼諾言 只要天天在一起
    C G Em Am D
    我不能只依靠 片片回憶活下去

    G Em
    任時光匆匆流去 我只在乎你
    G Em
    心甘情願感染 你的氣息
    C B7 Em
    人生幾何 能夠得到知己
    C Cm D B7
    失去生命的力量也不可惜
    Em Em/Eb
    所以我求求你
    Em/D Dm7/C
    別讓我離開你
    G Bm Em C D G
    除了你 我不能感到一絲絲情意
  • 人情債

    從早上起床趕火車,到晚上回到家裡,你的資產少了二千多塊。在擠翻天的火車上不小心踩到別人的腳,扣五十元;忘了幫同事買早餐,那略顯失望的神情,扣一百二十元;中午休息時間,去便利商店買了杯咖啡,身上的零錢竟然不夠,惹得被店員白眼,扣了三百元。一整天下來,零零總總加起來竟然近二千元。用台灣中位數日薪來算,賺的錢還不到它扣呢。

    如果向造物者提議在所有的地球人身上裝上所謂的道德自律器,一旦引起他人道德上的不良觀感,便需透過某種形式去償還。例如:極強烈的嘔吐、一瞬間肚子被三百磅的拳頭狠揍、拉一整晚而且是辣到菊花開的腹瀉。叫它「天罰」好了。應該滿有趣的。

    我特別建議天罰要延遲奉還。當事人引發他人道德不適,初始自己也只是感覺像是偶發的不適,要過了下班時間回家後才會重重地受罰(我們會看到夜間的路邊一堆人倒在地上嘔吐之類的)。雖然受到懲罰的原因很難直接聯想,然而由於生物的制約效果,就像小狗聽到鐵碗的碰撞聲便知道是吃飯時間了,久而久之便無聲無息地將兩者連接在一起,但身體或大腦可是毫不自知的。道德不良感愈差、次數愈多,不適感就愈強烈。強度要多變態有多變態。

    若是符合資本主義精神,天罰是採用扣錢的呢?套在社畜上,也就是說不需要做任何身體苦難形式上的道德補償,只要記得天天去上班,讓存簿裡面的金額足夠。即使不小心踩到別人,也不至於會有噁心想吐、拉不完的肚子那些症頭。只要乖乖上班賺錢確保荷包滿滿即可?

    造物者先問你:要包多少紅包錢給下個月要結婚的好友?行情是一千八到三千六,或是三千六到六千?認識超久的要不要包個一萬?上次他包一萬,我是不是要包一萬二?欸,這場婚宴每一張宴會桌的開銷?我坐車長距離赴宴的交通費?他的新娘或她的新郎富不富有?原生家庭有不有錢?我的薪水與他(她)的薪水比值?這問題自古以來都哲人難解。

    再問另一種年終歲末要給父母親、兒孫子等等的紅包錢。在父母親面前,紅包的數字恐怕連造物者都不敢置喙?

    人與人之間的交往有不同的深度,會有摩擦也會有相互幫忙,也就是所謂的人情債。如果單把人情債量化,好像就跟道德債是差不多的意思了。

    所以天罰採用扣錢的是好主意嗎?一來恐怕難以量化,二來世界的經濟會完蛋吧。

  • 極簡主義與實用主義

    近幾年看了不少極簡主義的作品。最早是近藤麻理惠的整理魔法,後來偶然接觸到斷捨離的原書,也在 Netflix 上看了幾個美式的極簡主義紀錄片。看了一些專家或網友的說法,有人說極簡不是窮,真正的極簡反而很花錢;有人說整理與減物只是極簡的一半,極簡的重點是在心靈層面上的。雖然我喜歡極簡主義,但我過的不像極簡主義者。若說有什麼我生活上的行為準則比較接近極簡主義的,大概就是我重視複合性延續性

    我認為極簡的表層意含是追求物品的複合性。多合一或是機能性是能有效簡化物品數量的一種方式。科技的進步本質上也是將複雜度封裝起來,以更簡化的形式表現。後人基於前者,將複雜度不斷地封裝,將操作介面不斷地簡化。於是從第一台跟房間一樣大的電腦,到可以拿在手上的智慧型手機,在晶片技術的加持下,使用面向從專業人員漸漸走到大眾。大多數人在日常生活中都可以受益於科技進步所帶來的極簡化。只是要留意的是不要被科技大廠之間的規格競爭給迷惑,需要與想要只是一線之隔。

    我認為更深入一點的極簡是:延續性。如果一個選擇無法維持一段時間,五年、十年或一輩子,那麼這就不屬於極簡的範圍。延續性原則「有可能」能讓我們擺脫日常生活中的諸多煩惱 XD。其中一個例子是極限節食。靠這個方法來減肥對我來說不可能持續一輩子,因此不符合延續性原則;去健身房重訓這事,我通常認為如果不是為了專項的訓練,在家裡就能做的徒手訓練會更符合延續性原則。

    延續性的界線在哪?極限節食的減肥型態也許不符合延續性原則,但若強度低一點的減食能夠同時達到健康的目的並符合延續性,那麼即使是放棄減重的目的也可行的。同理,居家的徒手訓練與健身房的重訓也是不相衝突的例子。

    極簡主義雖然重視「減法」,但並不代表人生的選擇只能是單選,它也可是複合的。同時,人生也會有新的挑戰與需求(例如新的工作或生小孩),這便是與極簡主義共生的「加法」。延續性原則可以在「減法」上給出一個方向;複合性原則可以則可以在「加法」上給出另一個方向,從而補足極簡主義對於生活的實用性

    什麼是實用具體成效才是關鍵,極簡主義無論型式為何,該實作手段若有效,甚至在生活層面上大大有效,它便是可以遵循的原則。這便是結合實用主義的極簡主義流派,姑且稱之「實用極簡主義」(我自創的)。

    以上。

  • 《一次讀懂哲學經典》讀後

    最近讀的一本書是《一次讀懂哲學經典》,副標題是「五十本哲學經典」。顧名思義,用了很懶人包的方式介紹了五十本分別來自五十位哲學家的作品。我個人認為重點更著重在人,書是襯托,用來引出各大家的思想。當然,要把五十本書濃縮到一本,內容不可能講的太深,但對於了解哲學家在想什麼、在研究些什麼、研究的範圍到哪裡很有幫助。看完才知道哲學研究的範圍包羅萬象:宇宙、生命、性別、政治、心理、道德、數學等,我一直以為只有很硬核的形而上才是哲學。作者很好心地在介紹每一本哲學經典前濃縮了幾句話的摘要,對照我有看過的《黑天鵝效應》與《論語》(只讀過一部分),作者的摘要算是下得很精確了。所以是……太懶讀摘要就好?說實話當初為了裝逼買的,沒預期到內容這麼艱深,中間一度要棄追。不過有些內容仔細嚼一嚼還是滿有味道的。接下來講講我比較有印象幾個思想:

    漢娜.鄂蘭:推崇人的價值、社會沒有廢料。為何?因為人人生而不同,都有自己的長處,因此都能對社會產生貢獻。結合我自己的價值觀:環境成就個人。早個一百年前出生,LeBron James 或 Michael Jordan 的命運可能大不相同。努力固然重要,但沒有環境就沒有舞台,因此做為既得利益者更應該去推動社會的美好。

    黑格爾的思想是包容的。真理可以是絕對的、可以是二元的、也可以是光譜上的全部。這個世界或許需要萬有理論,但是宇宙若容不下它,即使物理只能蹩腳地分別在微觀世界用量子、巨觀世界用相對論去解釋,這樣的宇宙仍然是完美的!微觀與巨觀之間的模糊帶呢?或許這也是宇宙真理的一部分吧。

    亞里斯多德:我本來就喜歡亞里士多德的「第一哲學」或「第一性」的概念。書中給的結論是:不要去追求幸福,而是要追求做有意義的事;完成了有意義的事,自然會感到幸福。看起來好像是套套邏輯,語句也可以置換套用在不同的情境(?),要用來叫人認真工作或認真讀書很好用?(歪樓)


    後話。是說這本書的二書價也太好了。我這本書賣第三手還是有 5x% 的價。台灣人這麼自虐?

  • LabVIEW 的輸出路徑一覽

    LabVIEW 內建的路徑有這幾種:

    • Current VI’s path
    • Application Directory
    • Default Directory
    • Default Data Directory
    • VI library
    • Temporary Directory

    路徑的呼叫方式可參考下圖:

    把 VI 放在 C:\some-folder 中,執行後的結果如下:

    比較容易有疑問的是 Application Directory。實測後無論是掛在 LabVIEW Project 下或是在 Main Application Instance 下(不透過 LabVIEW Porject,直接開 VI),其輸出路徑都一樣。

    Build 成執行檔(.exe)後再執行,輸出的路徑會有滿大的差異:

    Current VI’s path 整個變了,傳統上在 Build path 時用 “.." 來取得所在目錄的方法會失效。這樣看來,用 Application Directory 來操作路徑會有比較好的相容性,至少將來 build 成執行檔後其目錄路徑不變。

    另外資料或暫存檔分別放在 Default Data Directory 與 Temporay Directory 也會有比較好相容性(路徑不變)。

    再補充一點,Temporary Directory、Default Directory 與 Default Data Directory 可到 Options >> Paths 中修改: