分類: General

  • 移除 Ubuntu 的過時版本 Linux Kernel

    筆記一下:

    列出系統上安裝的過時版本的 Linux kernel:

    dpkg -l --no-pager | grep "^rc" | awk '{print $2}'

    確認無誤後,一舉移除這些過時版本的 Linux kernel:

    dpkg -l --no-pager | grep "^rc" | awk '{print "sudo apt purge -y "$2}' | sh
  • 我創立了一間公司

    上一篇提到,我考慮找沒有限制 core hours 的遠距工作機會,或是自己創業。後來的發展是,我創立了一間公司「宏雅微系統有限公司」。

    自己跑公司設立的過程,跟公部門打交道,實不相瞞,稱不上順利,也難免讓我有些心浮氣躁,好在總是撐過來了。至少往後,自己或他人遇到類似的狀況時,可以從中自助或助人,也是一項收穫。

    相對地,民間機構,像是美印社(刻印行)、銀行、會計師事務所、辦公空間業者,多是和善、好溝通的,也不乏對中年創業的我投予鼓勵打氣,真的很感謝這些人。

  • 求職或創業方向的期中檢討

    原先認為投入 Android NDK 是個不錯的轉身方向,但是現在想來,當初實在太過天真。

    以為競爭者會比較少,會比較講求實戰經驗與能力,實際上呢?競爭者會比較少,因為需要用到 Android NDK 的單位也沒多少;而在寥寥可數的職缺當中,要求 CS 本科系學位的,卻也並不罕見。

    但是這幾個月並沒有徒勞,學會 Kotlin 語言、更新了比較 modern 的 Android 開發思維、把多年前的心願實現、證明自己確實有能力從內部程式到 UI/UX 顧及到各方面,設計出一個產品,找回自信心,都是紮紮實實的收穫。

    真要說完全沒有機會找上門,也是有欠公允的。至少在 SNS 上,就有幾個老朋友,或僅有一面之緣甚至素未謀面的網友,介紹職缺給我,只是如果再顧及到工作地點與時間,這些機會需要長途通勤或是有 core hours,都會再回到我疼痛症狀發作的老問題,以及家庭照護的衝突。

    如此一來,找沒有限制 core hours 的遠距工作機會,或是自己創業,就成了不得不為之的方向。做 Web 還是做 Android,做純軟還是軟硬整合,在這個方向之下,就都不是前提。

  • 從 Arch Linux 轉回使用 Ubuntu (2)

    再簡單交代一下,我覺得「不如歸去」的思路:

    1. 比起有商業資金挹注研發工作的那些 Linux 發行版本,Arch 本身並不像那些 Linux 發行版本會主動貢獻一些「新玩意兒」來增強 Linux 生態系的各式應用。
    2. 反之,Arch 是把各種 Linux 軟體,包括那些「新玩意兒」從 upstream 那邊拿來,盡可能原汁原味地打包,然後提供給使用者使用,使用者發現什麼問題,也就減少了發行版本在中間自行打補釘、加料的干擾因素,回報給 upstream 時幾乎可以確信是 upstream 本身軟體的問題。透過這樣的正向循環,促使 Linux 上的軟體品質愈臻完善。
    3. 老話重提:「各人有各人的環境場合」、各人有各人的 Arch 用法,只是我個人會覺得,如果要用 Arch,可以盡可能多用一點裡頭包的 packages(無論你是把它當 server 還是 desktop/workstation 在用),然後盡可能地小步前進跟上 rolling update,有問題,回報上游,甚至自己試著修,這是我認為使用 Arch 時對社群發展最佳的方式。
    4. 只是,這麼多年下來,我看到這樣做的人很少,但是自居 power user、用了一個比較 geek 向的 Linux 發行版本就自以為高大上的人很多, 讓我看得心很累。
    5. 而且,我現在的情況,已經無力再繼續當個 “Arch-based upstream QA”,我得走了,我還有更迫切的、攸關溫飽的事要顧。

  • 從 Arch Linux 轉回使用 Ubuntu

    六月份的時候,筆電的 SSD 壞掉,買了新的來換,也順便在重建系統時,把用了 11 年的 Arch Linux 換成 Ubuntu。

    接下來我要講的,很可能肯定會讓我在相關 SNS 被砲轟到體無完膚,不過我還是想說說一些感想。

    原本我是因為每次 Ubuntu 升版都會出包,所以才會轉用 Arch Linux(之前我相信 rolling update 小步前進會比一次大幅更新好),這次改回 Ubuntu 也沒例外,GNOME 3 深度整合綁 IBus 輸入法框架至今依然就是有些,逼得我還是得手動換成 Fcitx。

    不過,解掉這類不順手的地方後,Ubuntu 21.04 還是讓我用得蠻開心的,像是我指定使用 ZFS,在有些操作下,系統會自動幫我建立 snapshot,我就覺得電腦用起來覺得安心許多;筆電的闔上螢幕再打開後,系統喚醒也一直都是正常的,不像之前三不五時叫不醒,得用有點微妙的時間差再次把螢幕闔上、打開,才有可能把電腦叫醒,啊?對,就很像把賴床的人隔幾分鐘後再去叫他起床一樣,充滿了人性。

    除了這種預設安裝絕大部分都已就緒可用,還是這種預設安裝絕大部分都已就緒可用,的使用體驗,讓現在已經不想折騰環境建置與設定的我,選擇回到 Ubuntu。現在的我已經不想再當一個 “Arch-based upstream QA”,給我一個基本可用的環境,不求新,但求穩,讓我可以好好做自己的專案開發工作就好。

    更何況,有時候,我預期 Arch 會迅速跟上 upstream 的 package(s),實際上更新步調並沒有那麼及時。現實就是 Arch 的 packages packaging 仰賴志工、人工維護,當認養 package 的維護人未能跟上 upstream 的更新步調,我也只能自己改 PKGBUILD 自力救濟。這樣的體驗真的不能說很好。

    再者,我自己身體力行,把 Arch 當 desktop/workstation 用,親身當這些 GUI applications / desktop environments 的 upstream QA 時,我發現其他一些人,逢人就把 Arch 誇上天、邀入坑,自己卻只把 Arch 當成 server 用,我就覺得有點…無言,雖然各人有各人的環境場合,但是我認為這種用法,Linux 桌面元年不知何年何月方能得償所望?想想還是算了吧!就連現在的我也不想再承擔這種大義大任,就給我一個「預設安裝絕大部分都已就緒可用」的桌面環境就好。

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

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

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

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

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

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

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

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

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

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