分類: General

  • 一位不曉得算不算資深工程師的非酒後但也是真心話

    標題哏來源是〈一位資深工程師的酒後真心話(翻譯)〉,前陣子讀了這篇文,以及剛剛再讀了一次另一篇文〈沒有人會賠你的〉讓我也想寫寫自己的版本。

    當老師教你「考上不好的學校沒關係,進去後再努力」時,不要傻傻地在大學裡只顧讀書。你當時辭謝的那些社團活動、學長姐家聚,未來都會讓你後悔,懊惱自己的人際關係處理能力有多麼差勁。

    當老師教你「試著生存 Try to survive」他的意思也許更深遠。總之不會只是每個學期的書卷獎,或是學會的獎學金,還是任何的工讀金。

    老師要你先做好分析與設計,再做程式設計,真的是有道理的,不是他故意拖著不讓你展露那三腳貓的程式設計功夫。在整個專案當中,程式設計佔的比例確實不高,關鍵部份的程式又更少,但是分析與設計會決定你這關鍵部份的程式寫的好不好。不要單純偏信什麼敏捷、邊移動邊開槍、先幹出 MVP, PoC 再說,除非你對正在處理的 business logic 與 domain knowledge 瞭若指掌,不然這些「觀念」會害慘你,你會寫出三個月後自己都看不懂的糞 code。

    程式語言很重要,程式語言卻又沒有那麼重要,你可以用任何語言實作出同一組 business logic,但是如果你的實作語言太冷門,找不到人合作,除了孤單寂寞覺得冷,也可能會讓你陷入「非你不可」的泥淖,你休不了長假,抽不了身,到後來除了孤芳自賞、得到社群「奇才」、「怪傑」的尊稱之外,一點好處也沒有,除非你又能夠把這個冷門語言的社群生態系做大。感謝 DHH,沒有他,我再怎麼愛 Ruby 也沒辦法(曾經、短暫地)靠它吃飯。

    你可能很怕「花時間、心血下去學某項別人說很好、很潮的技術,到頭來一場空」遇到這種問題,我現在一律建議你把時間拿去學更實用的生活技能,尤其是語言,我是說自然語言。

    你在大學學的資訊檢索、知識架構,還有因為興趣而自學的人機界面,都是讓你跟別人有些不同的瑰寶。

    任何讓你更有生產力的工具都是好東西,任何讓你只是看起來像個 geek 的工具,玩玩就好。我很後悔,有很長一段時間,從事開發工作時鄙視使用 IDE。

    最後,身心健康真的很重要,真的。

  • 記 COSCUP 2021 參與

    今年我是以講者身分參加,報名「帶您讀源碼」議程,介紹我在這幾個月做的專案「樸實注音鍵盤」:

    如您所見,今年 COSCUP 因為疫情影響,後來決定改成全線上活動,於是我就頭一次玩起剪輯軟體 Kdenlive,製作預錄影片。不得不自我解嘲說大會這突然的需求,讓我在幾週內習得當個 YouTuber 的能力,也算是項收穫。

    後來,我發現,大會改成全線上活動,反而讓我這種內向、畏懼社交的人比起在實體場合更活躍。今年使用的 Gather 線上聚會服務,對我來說取得了一種平衡,既可以讓我想露臉才露臉(打開電腦上的攝影機)、想出聲才出聲(打開電腦上的麥克風)、想裝石化狀態、裝不在電腦前,就什麼都不做,自在許多。同時線上提問的 Slido 服務,也讓我這種喜歡用文字斟酌再三後才送出發問問題的人,可以傳達更明確的想法。

    而在這之前被影片製作搞到非常焦慮的我,後來也覺得預錄這樣的方式,能讓我在議程進行時,更能好整以暇,掌控時間進度。

    為什麼說之前我被影片製作搞到非常焦慮呢?因為原先我手邊的耳麥,無論哪隻(包括網友說效果不錯的 Apple EarPods),錄音效果都奇慘,難以接受這種品質,送到 Audacity 降噪處理後,還是很糟糕。而我已經沒有餘裕去買一隻較好的麥克風,後來我只好用之前在日本買的 SONY ICD-UX560F 錄音筆,錄下我的台詞,結果效果還不錯,去掉了一個心頭疙瘩。

    至於議程參與嘛……,我坦白說,因為知道大會日後會將影片釋出,所以那兩天我幾乎沒有即時在線上參加議程,反而是泡在 Gather 上一直逛攤位、找熟人聊天。沒想到對我這樣個性的人,COSCUP 的「m% 聽議程、n% 交朋友,n > m」是直到改用這樣的形式舉辦,我才實現了這樣的作為。

    感謝「帶您讀源碼」被我推坑接手議程協調工作的 Wen-Chun Lin 夶、感謝大會全體工作人員,今年大會,我玩得非常自在。

  • 整理 Power Mac G4,安裝 OpenBSD

    這台 Power Mac G4 是從朋友那邊接手的,原本硬碟是 MacOS 9.x,因為裡頭資料都還在,基於數位典藏的情懷,我不想清掉,所以我另外拿了一顆自己閒置的 IDE 硬碟,想安裝別的系統。

    MacOS 9 現在即使我想沿用,甚至也沒有可用的 Web 瀏覽器了。

    至於為什麼突然想把平常其實充當茶几的這台再拿出來整理,是因為最近 Apple 的電腦產品線,繼 PowerPC, Intel x86 之後,又宣布換 CPU 的新聞,就那麼讓我想起腳邊還有這台電腦。

    然後我至少試了安裝以下的 OS,但是若不是根本無法安裝,就是官方的線上軟體庫已經不支援 PPC 32 位元架構,或軟體版本陳舊到我很難接受(我基本上是希望系統當中能有一套不要太落後當代的 toolchain 可以 build 程式,其餘各種應用程式則並不強求,原因後述):

    • Mac OS 10.4 Tiger
    • Darwin 8.0.1
    • Debian GNU/Linux
    • NetBSD
    • FreeBSD
    • Vine Linux
    • Gentoo
    • Adélie Linux

    最後我唯一裝的起來、軟體庫又能動、版本也還算新穎的 OS 就只有 OpenBSD 6.7。

    照著官方文件做,安裝過程其實很順利,唯一覺得煩的就是我對 Open Firmware 陌生,需要查指令搞懂怎麼正確啟動光碟開機、怎麼設定開機參數等。

    整個裝完之後,接著就把系統以及 ports 還有 Xenocara 的 source code 都拉進去。我其實也知道這台機器現在要拿來充作什麼實用用途,幾乎可說都不太經濟,一張初代 Raspberry Pi 都還更好用,也更省電,但是如果要研究 OS 怎麼做的,以及 userland 工具程式怎麼寫的,還有一個非 x86 典型系統的底層可以怎麼玩,這台機器配上一個開源的 OS,還是很好的學習研究資源,這也就是我先前說到,想至少要有一份不要太落後當代的 toolchain 可以 build 程式的緣故。

    這台電腦幾乎沒有什麼地方故障,放著閒置這麼久沒用也都好好的,可見當時的 Apple 以及代工的鴻海對工藝品質的要求。剛拿來時,內部也沒有什麼積灰塵,原主人(我朋友他兄長賢伉儷)當時應該是很細心在維護這台。唯一的毛病是主機板電池沒電了,於是我跑了一趟電子材料行,換掉電池之後,再把導熱膏重塗、RAM 接點氧化處弄乾淨,整台系統又是生龍活虎。

  • 窗型冷氣吸入外面油煙的處理方式

    這個問題困擾了我很久。如果只是在一般作息的三餐時段,遇到油煙,人總要吃東西吧?我覺得合理,而且人醒著,頂多馬上關掉冷氣就是了。然而遇到會經常在半夜兩、三點製造油煙的鄰居,我就不知道該如何是好。

    在我查了網上資料,特別是 Mobile01 上的討論後,以及請教過電器行師傅,結論幾乎都指向「現代窗型冷氣都是內循環,機體本身不會有室內外空氣對流的情況,然而機體與機殼之間難免存在縫隙,以及室內外溫差緣故,就會產生對流,所以造成油煙會被抽進室內,很難解決,終極辦法就是換成分離式冷氣」不過電器行師傅在指出縫隙時,給了我一個提示:「如果把縫隙填起來呢?」

    於是問題就獲得很大的改善了。

    如我上面貼的照片,在白天的時候,拆開窗型冷氣面板,透過外面光線,很自然地發現機殼與機體之間上緣、左側、右側都有泡棉包覆,惟下緣透光,我就拿紙膠帶盡可能把縫隙補起來。

    實際效果,就是今天下午補眠到近傍晚時,醒來發現僅有非常輕微的油煙味(我好鼻師,換成其他家人來聞可能就完全聞不出來),比之前輕微很多很多,而打開窗戶後,瞬間湧入的濃濃油煙味讓我嚇了一跳,而這原來會是在我還沒填補縫隙前,冷氣抽進來的濃度。

    另外一個連帶效益是,由於把縫隙補滿,位在接近不遠處的測溫頭也就不會誤判,於是減少了壓縮機全力運轉的頻率,原本甚至每隔幾分鐘就狂運轉,吵的我很難入睡。

    一個簡單的 life hack。

  • Dell G3 3579 System Recovery

    筆記一下,實在很累…。

    1. 因為之前 SupportAssist OS Recovery 的 partition 被我幹掉,所以要去 Dell 官網下載 Dell OS Recovery Tool 做 USB 版 recovery disk。
    2. 把 BIOS 裡的 PCIe NVMe SSD 先關掉,不然會卡在 DPC_WATCHDOG_VIOLATION 錯誤。我在這裡卡了非常久,直到想起網上有討論到 SSD firmware 更新後遇到這問題。(然而這台配的是 Transcend TS256GMTE110S,也沒看到有什麼 firmware 更新?)
    3. 拿步驟 1 的 USB drive 開機,進 SupportAssist OS Recovery。
    4. 做完 system recovery,先進 Windows 10 做初始設定,再進 BIOS 設定,把 PCIe NVMe SSD 打開、SATA Operation Modem 確認為 AHCI。
    5. 繼續跑漫長的 WIndows Update 與其他設定…。

    另外抱怨一下,筆電真的要買方便維修的,不要給自己找麻煩,或是給家人找麻煩。Dell 在臺灣沒有實體維修據點,出問題的話單是要聯絡客服就讓人感覺很累…。

    我還寧願出傳說中的子龍任務,也不想這樣隔空與服務窗口交涉。

  • 把桌面環境再度換成 GNOME

    今天我把桌面環境從 KDE Plasma 再度換成 GNOME,版本號 3.34.4,不過還不是很確定是否會與它生生世世。

    我是個長期的 GNOME 3 Hater,主因就是非常不認同它淨「借鏡」了某些很明顯是源自 Apple 的設計,以及趨向觸控螢幕操作的思維,但是其中有些地方又做不到位,於是在這之下的生產力,變得無比低落。單是拔掉 taskbar 卻又沒有一個更俐落的替代品,就讓我惱火不已,其餘原本有高度自訂空間的設定,也因為「取法」極簡思維被大幅拔掉,於是原本可以很個人化的環境,變得很呆板。我到現在都還忘不了,當初跑個 pacman -Syu 發現 GNOME 從 2.x 被升級至 3 版,突然在電腦上做什麼事都不順暢痛快了的憤怒。

    不過隨著產品的迭代,GNOME 3 也漸漸洗練多了。這只是我的臆測,我覺得自從 Ubuntu 官方放棄自己維護 Unity (Lomiri) 改用 GNOME 3,把更多使用者的反饋帶進來,可能也是一股推力。

    只是呢,GNOME Shell 預設的 Dash 依然那麼難用,即使是 Ubuntu 根據 Unity 的 Dock 設計做的調整版(修改自後面講到的 Dash to Dock)我也不是很喜歡,還是使用原始版的 Dash to Dock extension 模擬 macOS 的 Dock、擺在螢幕下緣,並設定成自動隱藏,這樣用起來比較順手。

    其餘一些想要自訂的地方,必須靠 GNOME Tweaks 程式、或是 dconf-editor 去設定,但是彈性還是遠比 KDE Plasma 小,像是「外接螢幕使用不同桌布」這件事,我找了一下網上資料,不靠第三方程式協助,就是做不到。(攤手)

    先記下來,就看我可以跟它相處多久吧。