筆記

Linux 初學指南

類似於先前程式設計初學指南的風格,本文是嘗試對 Linux 作業系統的初學者,提供一些概括性的指引,所以不會有任何具體的指令或操作流程。但仍希望透過這些經驗分享,可以幫助初學者形塑出適當的學習路徑。

 

如同先前的程式設計初學指南,本文會先簡單交代 DR 早年的 Linux 學習歷程,讓本文的觀點能夠比較容易被理解。

 

就目前印象所及,DR 第一次認知到 Linux 的存在,應該是一則關於《雷神之鎚 III》(Quake III Arena,1999)的消息,內容提到這款遊戲為 Windows 及 Linux 釋出了測試版本。消息雖短,卻足以讓人意識到,原來 Linux 是有別於 Windows 的另一種作業系統。

 

分類: 

Word 繁簡轉換之問題

許多人都知道,Microsoft Word 有一項繁簡轉換的功能,能夠將文字在簡體中文及繁體中文之間互相轉換。雖然這確實是很方便的功能,但如果真的將這項功能應用在工作實務上,則很快就會意識到,它的轉換結果存在著一些問題。

 

儘管我們大概都明白,對於中文繁簡轉換,很難有完美的系統性解決方案(看看現今中文維基百科的繁簡亂象就知道了),因而轉換後的結果勢必都還要再做人工校正,以保障其正確性。然而 Word 的繁簡轉換功能卻存在著一些理應可以修復、卻一直沒有處理的 Bug(包含目前最新的 Word 2016 在內)。因此,本文接下來的內容會說明這些問題,讓有意使用 Word 繁簡轉換功能的人士可以留意到當中的地雷。

 

關於【使用台港澳等地字元】這個選項,目前並無已知的問題,若停用會出現諸如簡體的「并」字無法轉換成繁體「並」字的狀況,反之若啟用該選項則沒有負面效果。因此在做繁簡轉換時,這個選項應是必選且無害的。

 

分類: 

英打練習小程式

在工作的時候,一直看稿改稿查資料,有時候精神會消耗得很快。而每當 DR 覺得自己開始精神耗弱時,就會逛逛網站、看看文章,試圖藉此提振一下自己的精神。然而最近 DR 讀到一篇文章,內容提到其實「多工切換」正是使精神加劇耗損的元兇。因此若四處瀏覽各種訊息,不僅未必達到回神的效果,反而有可能變得越加疲倦。因此,真正適當的緩解方式,是執行一項能夠專注的活動,讓腦袋在單工思緒中逐步復原。

 

DR 發覺這似乎還蠻有道理的,於是便開始設想幾種可能的方案。然而其中的許多方案若用在上班時間裡,要嘛不易執行、要嘛有觀感問題。想了一下,又蹦出了一項方案:不如做一支可以練習英打速度的程式,這或許是一個幫助提神的好辦法。

 

在初步的構思階段裡,DR 原先期望這支 Python 程式能夠有一個稍微華麗一點的文字介面,例如在打字的同時能夠有一行顯示倒數計時,提醒使用者剩下多少時間。但查了一下,發現這項需求似無可輕鬆達成的跨平台方案,後來便決定不要在這方面著墨太多,並回歸到最原始、一行一行的文字輸出入介面。

 

分類: 

Your Amazon EC2 Abuse Report

日前 DR 協助同事檢查公司的郵件主機,想確認究竟對外開放了哪些服務。而對於這類需求,DR 總是認為使用 Nmap 做埠口掃描是很方便的檢查方式。於是就在自己的 EC2 主機上使用 Nmap,從外部網路來掃描該郵件主機。然而之後 DR 就收到了來自 Amazon 的一封信,標題為「Your Amazon EC2 Abuse Report」,內容則是可疑活動的記錄與警告,使得 DR 必須很快回信解釋一下原由。

 

經對方的回覆後才知道,原來在 EC2 主機上做這類動作,是要事先填表單申請的,真是孤陋寡聞。詳情可見官方說明頁面:Vulnerability and Penetration Testing

 

分類: 

文字介面的聖經關鍵字搜尋

話說 DR 在 N900 上有使用一款聖經閱讀軟體 Katana,然而這個軟體卻有個問題,就是搜尋欄位無法使用輸入法,也就不能在搜尋經文時輸入中文。看了一下原始碼,發現該搜尋欄位是單純使用 Qt 的 QLineEdit 元件來建構,而無法使用輸入法的問題應該跟底層 Qt 函式庫在 Maemo 系統上的實作有關。因此一時之間也想不到有什麼好的修正方式。

 

分類: 

檔名式的程式遞迴法

最近 DR 工作的地方開始使用線上打卡系統,來取代原本以門禁刷卡做出缺勤管理的方式。而這項變化也不免讓人思考,是否有更加自動化的打卡方式?由於 DR 上班做的第一件事就是將電腦開機,至於關機則也是下班時的固定動作。於是便嘗試利用 Python 及 Selenium 撰寫了一支打卡程式,然後設法將它結合在電腦開關機的程序裡。

 

使用的作業系統為 Windows 7,一開始 DR 是將打卡程式加入到群組原則(gpedit.msc)的啟動 / 關機指令碼裡,但測試結果並不是很理想。於是便改為將程式捷徑放進使用者的「啟動」資料夾裡,讓打卡程式在進入桌面後自動執行。

 

至於關機的部份,則是再寫一支名為 shutdown.bat 的批次檔。該批次檔的作用是先後執行打卡程式及關機指令,因此只要使用者(也就是 DR 自己)的關機操作方式改為點選該批次檔,便會在關機前執行打卡動作。批次檔的內容如下:

@echo off
time_clock_automatic.py
shutdown /s /t 30

 

分類: 

大量文字檔編碼轉換

一座古蹟應該要修繕到什麼程度,有時候還真是個好問題。

 

話說本站的前一個版本(v5)是由靜態的 HTML 網頁檔所組成,數了一下,總共有 249 支網頁檔位於舊網站的目錄中,而其中絕大多數是採用繁體中文的 Big5 編碼。然而日前 DR 看著看著,突然覺得這些編碼應該要統一成 UTF-8 才是,於是便開始構思應該要怎麼處理才好。

 

雖然一開始很自然而然就會想到 iconv 這支工具,但隨後很快就會意識到,這項需求實則需要更加精細的功能。它應該要能夠偵測檔案的編碼,而不是僅檢查 <meta> 標籤的 charset 屬性,然後根據偵測結果來決定是否需要執行編碼轉換。除此之外,它也要能夠在轉換後自動修改 charset 屬性。

 

分類: 

Drupal 7 新增「更新日期」資訊於文章頁面

自從本站於數年前利用 Drupal 7 重新建置後,DR 便偶爾會意識到一個問題,但過去一直都沒有動手處理。這個問題就是文章頁面僅會顯示起初的發表日期,而沒有包含後來的更新日期,並且管理介面也沒有提供這方面的設定功能。

 

雖然文章起初的發表日期是可以輕易重設的,也就是說,發表日期經覆寫後也可以等同於文章最後的更新日期。然而 DR 卻認為同時顯示發表日期與更新日期仍是有其意義的,尤其對於技術性的文章而言,發表日期可以透露出該主題之所以存在的時間背景,至於更新日期則可以反應出,文章的內容並不一定是過時的,而是有可能是與時俱進的(不過,也有可能只是純粹訂正錯字而已)。

 

於是最近 DR 終於卯起來解決了這個問題,循線找了一下,決定修改 modules/node/node.module 這支檔案裡的 template_preprocess_node() 函式,首先新增一個自訂變數:

  $variables['updated_date'] = format_date($node->changed);
  

 

分類: 

GNOME 無障礙功能與右側數字鍵盤

除了玩《銀河生死鬥》(Tribes)系列遊戲會需要用到外,其實 DR 在日常的操作上一直沒有使用鍵盤右側數字區的習慣。因此直到日前有朋友來家裡操作電腦,才發現原來在 Fedora 21 上,右側數字區的按鍵是無法輸入的,無論 Num Lock 鍵啟用與否。

 

上網查了一下,發現這是因為系統預設啟用了「無障礙功能」(Universal Access)的「滑鼠按鍵」(Mouse Keys)項目,讓數字區的按鍵可以在桌面操作時充當滑鼠的功能。至於該項目的停用方式,即是前往無障礙功能的設定頁面,命令行的執行方式如下:

  • gnome-control-center universal-access

 

然後找到【滑鼠按鍵】項目後再行關閉即可。

 

分類: 

ddrescue 硬碟救援及對拷

幾天前(其實就是中秋節那一天)接到一部故障的主機,發現是裡頭的 WD 藍標 500GB 硬碟掛了,如果用 GNOME 磁碟工具程式(gnome-disks)來檢視 S.M.A.R.T. 資訊,就會看到一項「Reallocated Sector Count」出現錯誤:

 

 

於是拿了一顆 Toshiba 1TB 硬碟打算做更換。由於 DR 先前還未曾使用 ddrescue 做過針對故障磁碟的對拷,便想說順便嘗試看看。若故障的來源磁碟為 sdb,而目標磁碟為 sdc,則 DR 所使用的指令如下:

  • sudo ddrescue -f -r 1 -n -v /dev/sdb /dev/sdc recovery.log

 

分類: 

頁面

Subscribe to RSS - 筆記