資訊技術

The Decline and Fall of Java on the Desktop

從 1995 年問世至今的 Java,儘管知名度高,發展也算活躍,並且有著跨平台的優勢,卻似乎未曾在 PC 應用程式的開發上佔據很重要的份額。 直到 Android 以 Java 作為首選的程式語言,才終於找到另外一片天地。然而 Java 起初既為桌面系統而生,何以在桌面系統上走得不是那麼順遂?關於此議題,jDeploy 工具的開發者 Steve Hannah,撰寫了多篇幅的專題文章《The Decline and Fall of Java on the Desktop》,分別為 Part 1Part 2

 

分類: 

論自架郵件服務的務實性,與維護經驗回顧

前陣子先後讀到兩篇關於自架郵件服務的感想文章,看完後感觸蠻多的。當年 DR 在開始接觸 Linux 時,一個令人印象深刻之處,就是 Linux 可以用來架設許多服務。然而其中關於郵件服務這一塊,在瞭解其組成與各樣條件後,DR 很早就覺得這是個沒事不要自己架的東西。個人就用免費郵件服務,中小企業或機構需求則購買郵件代管,會省事很多。

 

Chris Siebenmann 是任職於多倫多大學的 Unix 系統工程師,在他所寫的文章《Running your own email is increasingly an artisanal choice, not a practical one》裡,Siebenmann 客觀地描述,儘管他至今依然在維運著自行架設的校園郵件服務,而這樣的作法雖然擁有高自訂性,以及獨立自主的優勢;但對比大型廠商所能夠輕而易舉達到的服務品質,已經不是一個很務實的選擇。

 

分類: 

記憶體消耗測試腳本

故事的起頭是這樣的,話說 DR 手邊有一項任務需要處理大量的表格資料,為此便寫了一支 Python 程式。然而這支程式的資料迭代過程有一項設計缺失,會導致已經處理完並存檔的資料,仍持續累積在記憶體裡,造成程式的記憶體佔用量持續升高。當 DR 隨意地用 htop 查看系統資源時,才赫然發現若按照這個累積速度,恐怕二號機上的 16GB 記憶體會被整個吃光。但當下又不太想讓它重跑,於是就硬著頭皮看著它跑完。果不其然,在整個執行過程中,系統記憶體一度接近耗盡,連 swap 都用上了。

 

程式沒寫好雖然尷尬,然而轉念一想,若寫一支能夠刻意把記憶體吃光的程式,似乎對於某些情境是有意義的,像是用於測試系統高負載情形及設備可靠性等等。於是順手另外再寫了一支腳本程式(mem_consume_test.py),來專門實現記憶體的消耗。這支腳本係針對 Linux 平台設計,對於記憶體使用量的監控是從 /proc/meminfo 中的數值計算而成。

 

分類: 

CentOS Stream 8 一年後使用心得

由於 Red Hat 提早結束了 CentOS 8 的生命週期,並且讓 CentOS 這個品牌從 RHEL 的免費版本,轉型成為 RHEL 的上游開發版本,也就是 CentOS Stream。使得原本許多 CentOS 的使用者,必然會需要思考合適的替代方案。雖然人們似乎會自然地關注諸如 AlmaLinuxRocky Linux 這些比照原本 CentOS 模式,從 RHEL 原始碼重新編譯而成的發行版本。然而說實在話,DR 並不認為需要就此將 CentOS Stream 從可行的選擇清單中剔除。因此在過去一年多的時間裡,DR 在工作環境裡建置了幾部 CentOS Stream 8 主機,而本文即是維運至今的一些感想。

 

分類: 

Who is the target user?

KDE 專案的開發者 Nate Graham 所發表的一篇文章《Who is the target user?》,內容以桌上角色扮演遊戲《吸血鬼之避世潛藏》(Vampire: The Masquerade)的技能點作為引言,來探討在軟體開發領域中,如何根據使用者的技能等級來進行分類。並藉此分析目標群體,以便找出合適的軟體設計。在該遊戲裡,電腦(Computers)技能按點數多寡,從 1 到 5 可分為以下五種等級:

  1. 學生(Student):懂得點選操作。
  2. 大學(College):能夠處理簡易資料。
  3. 大師(Master):具備軟體設計能力。
  4. 博士(Doctorate):可受聘為顧問,舒服度日。
  5. 學者(Scholar):總是走在科技前沿。

 

分類: 

Flatpak Is Not the Future

眾所周知,有別於 Windows 及 macOS 系統,主要是使用個別的安裝程式來執行軟體安裝動作。Linux 作業系統通常是利用發行版所提供的套件管理工具,例如 apt、yum 及 dnf 等等,從設定好的套件庫來源中下載及安裝軟體套件。當然某些情況下也會存在獨立的安裝程式,不過其具體的實作並沒有統一的標準,可能很粗略,也可能做得很精密。除此之外,也是有針對特定領域、並且是使用者層級的管理工具,比方說 Wine 相容層可以用於安裝及管理 Windows 應用程式;以及 Steam 遊戲平台則是用於安裝及管理遊戲程式。

 

分類: 

01/13/2022 Firefox 當機事件回顧

如文章標題所示,這其實是發生在好段時間前的事了,但直到最近,腦袋才比較有空可以認真看一下相關的細節。話說在 1 月 13 日當天下午,包含 DR 自己、以及公司內其他少數有在使用 Firefox 瀏覽器的同事,都發現網頁突然皆無法開啟。除此之外瀏覽器也無法正常關閉,只能從背景殺掉。但殺掉重啟後狀況依舊,開啟網頁都卡住不動,而同時間其它瀏覽器都是正常的。

 

雖然 DR 個人蠻期望 Firefox 能夠擁有更多的使用者,但諷刺地,正是因為公司內 Firefox 使用者不多,不然這真的會是大事件。而網路上當然也是有哀號聲,於是循線找了一下(1749908 - Infinite loop in HTTP3 hangs socket thread),發現若透過 about:config,停用 network.http.http3.enabled 參數,也就是將 HTTP/3 通訊協定停用,則 Firefox 便能夠恢復正常。

 

分類: 

Pentium on a 386 motherboard

Dependency Injection 網站上有著許多關於早期 PC 硬體的文章,其中有一篇《Pentium on a 386 motherboard》更是特別,是嘗試將一顆 Pentium Overdrive CPU,安裝到理應不相容的 386 主機板上。原來儘管兩者有著不同的針腳數目,但 Pentium Overdrive 多出來的針腳似乎不致影響系統的基本運作。於是作者先在 CPU 上銜接一個 PGA169 插座,來略過那些多餘的針腳,再將 CPU 安裝到主機板上。然後就成功開機,進入到 DOS 作業系統了……

 

分類: 

ddrescue 磁碟對拷腳本

可能先前多少曾提及過,ddrescue 這款磁碟救援工具已是 DR 最主要的磁碟複製方案。基本上無論磁碟好壞,DR 預設都是使用這支工具來做複製。這樣做的好處,是即便中途發生非預期的讀取失敗,也無須中斷重來。而且能夠將錯誤區域註記下來,後續便可再針對錯誤區域重試,或者做其它的處置。

 

去年為公司的舊電腦規劃了中期延壽計畫,雖然其中有許多電腦大概都用了超過 10 年。但其實只要將 HDD 換成 SSD,就能夠獲得顯著的效能改善,足敷日常任務所需。因此便經常使用 ddrescue,將舊 HDD 的資料原封不動地對拷到新的 SSD 上。倘若新的磁碟較大,則對拷後便會再用其它工具(如 GParted 等),做分割區大小的調整。

 

分類: 

How Linux and open-source software took the computing world by storm

來自 Flux 網站的播客文本《How Linux and open-source software took the computing world by storm》,內容是與 Miguel de Icaza 的訪談。Miguel de Icaza 是 Midnight Commander 檔案管理員的原作者,也是 GNOME 專案的創始人之一。

分類: 

頁面

Subscribe to RSS - 資訊技術