筆記

英打練習小程式

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

 

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

 

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

 

Tags: 

Your Amazon EC2 Abuse Report

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

 

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

 

Tags: 

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

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

 

Tags: 

檔名式的程式遞迴法

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

 

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

 

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

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

 

Tags: 

大量文字檔編碼轉換

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

 

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

 

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

 

Tags: 

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

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

 

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

 

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

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

 

Tags: 

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

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

 

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

  • gnome-control-center universal-access

 

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

 

Tags: 

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

 

Tags: 

NEC/TOKIN 0E907

日前處理到一部故障的筆電,型號為 Lenovo IdeaPad Y550,CPU 是 Pentium T4400,而作業系統為 Windows 7。這部筆電最主要的問題是容易跳電關閉,尤其是在剛載入 Windows 的時候。另外也用裝有 Fedora 22 的可開機隨身碟測試過,儘管跳電情形不似 Windows 那般頻繁,但也還是會發生。

 

所以這很顯然是硬體性的故障,後來出於好奇的緣故,DR 索性把主機板拆出來,想看看是否有一些肉眼可見的問題。主機板的型號是 KIWB1/B2 LA-4602P(Rev: 1.0,2009-06-19),就在一邊端詳著主機板、一邊搜尋相關資訊的情況下,DR 發現問題是出在位於 CPU 插槽背面的一顆 NEC/TOKIN 0E907 去耦電容,又名為「Proadlizer」,此外網路上也經常將它寫為「OE907」。

 

Tags: 

程式化的 Word 文字搜尋與取代

最近在工作上會很需要經常使用 MS Word,對多份稿件進行大量的文字搜尋及取代。雖然早先已寫了一支 Python 程式來處裡,然而在後續檢查內容的過程裡,卻發現原先撰寫的取代功能處理得未盡確實,例如文字方塊(textbox)裡的內容就無法被取代掉。經過上網搜尋後找到了一項解法,儘管確實可行,不過 DR 仍覺得其背後的設計邏輯還蠻弔詭的。

 

原本的寫法是像這樣:

Tags: 

頁面

Subscribe to RSS - 筆記