筆記

[Mozilla Thunderbird] 條件式的內文與收件者自動代入

工作上的電子郵件往來有些時候是很制式化的,意即可能會有相當固定的回覆內容或者是相同的處理方式。而對於這類千篇一律的流程,就不免會讓人思考是否有更自動化的作法,比方說讓郵件編輯器預先根據特定條件來產生回覆內容、或是預先代入特定的轉寄對象。如此一來,使用者就不用再花時間打字或是進行選取的動作,不僅能夠更快的將郵件寄出,甚至還能避免一些人為錯誤。

 

Mozilla Thunderbird 郵件軟體來說,可行的作法就是自行撰寫 JavaScript 程式,然後包成擴充套件安裝到 Thunderbird 裡。而 DR 製作了一個範例擴充套件:conditional_message,該套件所處理的應用情境如下:

  1. 當接收到的郵件主旨含有「ABC」時,代表是來自「ABC」單位的郵件。
  2. 對該單位經常性往來的人員給予簡單回覆。
  3. 然後將郵件轉寄給固定的人員進行後續處理。

 

Tags: 

Linux 平台的掃描器操作

 

赫然發現在 Linux 平台上使用掃描器其實還蠻簡單的,以 DR 所使用的 Epson Stylus CX5100 多功能事務機為例,在 Fedora 19 上由於提供掃描器支援的 SANE 已經跟著 GNOME 桌面環境一併安裝,因此只需要再安裝 XSaneGIMP plugin:

Tags: 

無 IDE 的 Android 應用程式開發與測試環境

 

有些時候會需要在 Android 系統上測試一些程式碼,而一般來說,Android 的開發環境是基於 Eclipse。然而 DR 已經有好段時間沒有使用任何 IDE 了,目前所習慣的開發模式通常就是在文字編輯器上寫程式、用檔案瀏覽器管理檔案以及使用命令行介面(虛擬終端機)進行所需的操作,使用 IDE 反而會覺得渾身不對勁,尤其以前少數使用 Eclipse 的經驗也不是很好。

 

此外 DR 也不太滿意 AVD(Android Virtual Device)緩慢的效能,因此會想要建立一個無 IDE、也不需要 AVD 卻能夠測試 Android 應用程式的工作環境,所構思的具體作法如下:

Tags: 

SpeechRecognitionEngine

Windows 平台上的語音辨識方案有兩種:一種是 .NET Framework 所內建的 System.Speech 命名空間,而另一種則是由 Microsoft Speech Platform SDK 所提供的 Microsoft.Speech 命名空間。兩者的結構頗為相似,許多類別和方法都是一樣的,不過前者的環境建置比較單純,用的是 Windows 本身的語音辨識功能,不需要再安裝 SDK。

 

Tags: 

Pocketsphinx

Pocketsphinx 是來自卡內基美隆大學(Carnegie Mellon University)的語音辨識工具,許多 Linux 發行版的套件庫已經有收納此工具,以 Fedora 19 為例,執行以下 yum 安裝指令就能夠將所需的套件安裝完畢:

  • sudo yum install pocketsphinx pocketsphinx-python

 

Tags: 

Google Speech API

這陣子因為工作需求開始研究對聲音檔進行語音辨識的可行方案,第一個想到的便是 Google 的 Speech API。不過時至目前為止 Google 似乎還沒有打算將 Speech API 作為正式的產品發佈,不僅沒有任何官方文件說明其規格與操作方式,取得 API 存取權的方式也頗為迂迴。此外 Speech API 的存取也有不少限制,例如每日的請求次數為 50 次,以及聲音檔的長度限制大約在 10 秒左右。這使得目前的 Speech API 比較像是供開發者預覽用途,而不太適合實務應用。

 

Tags: 

Reverse Engineering for Beginners

Reverse Engineering for Beginners(逆向工程初學指南)是一本線上電子書,作者為 Dennis Yurichev。以份量來說,這本書的內容相當豐富,不過由於組合語言對 DR 而言實在是可怕的東西,所以 DR 只有快速的瀏覽了一下,然後挑了一個簡單的習題(1.4)試做看看。

 

習題 1.4 的要求是從執行檔中找出密碼,DR 下載了 Linux 版本的範例執行檔(password1),執行時會顯示「enter password:」,任意輸入字串後則顯示「password is not correct」。接著 DR 使用 hexdump 工具去尋找裡頭的可列印字串:

  • hexdump -C password1 | more

 

Tags: 

SDL 的滑鼠按鍵識別

最近 DR 在 Linux 上玩遊戲時,發現有不少遊戲在操控設定上無法識別除了基本三鍵以外的滑鼠按鍵,例如拇指旁的按鍵。但卻又不是每一款遊戲都有這問題,例如《惡靈勢力 2》(Left 4 Dead 2)就能夠識別到額外按鍵。這個狀況引起了 DR 的好奇心,基本上 Linux 遊戲的輸入控制都是利用 SDL 完成的,因此 DR 便想要自己動手做做看,並嘗試找出可能的差異。

 

一開始 DR 用以下的程式碼來識別滑鼠按鍵,但很快就發現了問題:

Tags: 

Mozilla Thunderbird 擴充套件開發

前一陣子 DR 因為工作環境的需求,開始嘗試撰寫 Mozilla Thunderbird 的擴充套件,卻發現網路上找不太到適合新手入門的教程。儘管網路上針對 Mozilla Firefox 的教程有比較多一點,可以先用來學習一些基礎概念(因為所有 XUL 應用程式的擴充套件都是採用相同的架構)。然而若想要進一步涉入 Thunderbird 的控制,就會發現幾乎找不到有什麼教程可以讀……

 

或許是因為這個領域缺乏入門資源,有志願者製作了 Add-on SDK 來協助擴充套件的開發。不過很不幸地,這玩意僅支援 Firefox 而不支援 Thunderbird,因此 DR 沒辦法用來做進一步的利用。

Tags: 

異常延遲的 GNOME Terminal

最近 DR 常透過 SSH 遠端連線到網際網路上的主機去做密集的指令操作,卻發現輸出入的反應速度相當緩慢,按個按鍵要等上許久才會顯示出所按的按鍵,就連 Tab 鍵自動補齊的反應速度也是慢得可怕。原本認為是網路的問題(畢竟是網際網路而非區域網路),但幾個環節檢查下來,只覺得網路速度應該沒有那麼差才是。

 

直到有一次 DR 在 Windows 下用 PuTTY 登入至相同的主機想要查點資訊,赫然發現反應速度天差地遠,當然沒有像區域網路那麼順暢,但至少回復到可以接受的程度。這才意會到恐怕這並不是什麼網路問題,問題是出在虛擬終端機軟體上。

 

Tags: 

頁面

Subscribe to RSS - 筆記