對於一些和隱私比較相關的文件,總是希望可以加密起來,讓自己可以更加放心。 在 emacs 中,提供了 Easy PG 來協助你加密存文字檔案,你只要很簡單的將你的 檔案副檔名再加上 .gpg ,這樣 emacs 就會向你詢問加密用的密碼。 俗話說的好,一圖勝千言: 客製化 Easy PG 即使這樣就可以加密你的文章,有些時候也是會被 Emacs 預設的詢問機制給厭煩 的,在 EasyPG 下面有兩個常用的變數可以修改 EasyPG 的運作。 epa-file-select-keys 這個變數用來控制 是否彈出選擇密碼類型的視窗 ,他的說明 ...
閱讀全文 »

在 使用 ClojureScript 來寫 node.js 程式 一文當中,我們提到了可以用 ClojureScript 來寫 node.js 的程式,可是如果要引用 node.js 的外部函式,比 如說 tty.js 時,要怎麼辦呢? tty.js 是一個可以讓你在瀏覽器下使用終端機的一個很酷的 node.js 程式,雖 然他是獨立的程式,但是也可以當作函式庫引用。 本篇文章將描述如何在 ClojureScript 裏面呼叫 tty.js 的函式來建立我們的 node.js 程式。 建立新的專案 我們首先先來建立一個新的開發環境,就叫他為 cljs-tty 好了 ...
閱讀全文 »

ClojureScript 是相當於 Clojure 在 javascript 上的實現,由 Clojure 團隊所設 計出來的 Lisp 方言,他的語法基本上都和 Clojure 相同,也就是說,你 只要學一個 Clojure 語言,你就很可能可以辦到 Web Server 用 Clojure, Web Frontend 使用 ClojureScript 來開發的情況。 ClojureScript 的編譯器使用 Clojure 來撰寫,並使用 Google Closure Compiler 來將編譯出來的 javascript 程式進行最佳化,對於喜歡 Lisp 又想體 驗 nod ...
閱讀全文 »

JSON (JavaScript Object Notation) 是一種輕量級的資料交換語言。隨著 web 變得越來越重要以及 node.js 的興起,JSON 已經變成現在非常重要的資料格 式了。 JSON 格式到底有什麼好的呢?這要從 XML 開始說起了,在 XML 當中對於資 料會寫成以下的形式 <person first-name="John" last-name="Smith"/> 或是 <person> <first-name>John</first-name> <last-name& ...
閱讀全文 »

git-wip 是一個能夠不斷幫你進行備份檔案的 shell script 程式,會將你正在進行編輯的檔案, 放置到 wip branch (Work in Process),這樣假如你不小心滅掉了你的 commit, 或是某天想找尋 某次被遺忘的修改,你都可以透過 git-wip 很簡單的完成他。 使用過 git-wip 後,你可以在你的 git 紀錄看到像下圖這樣的資訊 git-wip 需要配合文字編輯器才能擁有他最強大的 備份 功能,我們將在本 篇文章說明 git-wip 的設計以及 vim、emacs 使用 git-wip 的方式。 安裝 git- ...
閱讀全文 »

QEMU 除了是很棒的虛擬機以外,在 Linux 下我們也可以透過他來進行 chroot 到 ARM 平台 的環境,這樣當你要針對某個 ARM 平台下的執行檔進行測試的時候,你不必複 製他到 ARM 的開發板下,直接在本機就可以做測試了。 注意: 在這篇文章的範例,都必須以 root 權限 運行。 預先準備 要能夠在 x86/amd64 環境下透過 QEMU 進行 chroot, 必須要有具有 binfmt_misc 的 linux 系統,如果沒有的話,則必須重新編譯 kernel,並將 kernel 加入以 下設定。 Executable file format ...
閱讀全文 »

Raspberry Pi 提供了許多的 GPIO 讓使用者可以配合電路來做出許多不同的設計, 本篇文章使用 Raspbian 作為 Raspberry Pi 的系統,並透過 Python、C 語言與 newlisp 幾種類型的範例,來展示如何在 Raspberry Pi 下透過 GPIO 來操作 GPIO。 注意: 在這篇文章的範例,都必須以 root 權限 運行。 使用設備 要完成本篇文章所描述的部份,你需要以下幾種器材 1. Raspberry Pi 2. LED 3. 電阻 220 Ω 或其他適合阻值 4. 麵包板 5. 單蕊線 硬體線路 ...
閱讀全文 »

barebox 是 uboot 的第二代版本,和 u-boot 相比,barebox 的設計和 Linux Kernel 類似,因此對於有 Linux Kernel 開發經驗的使用者而言,要進行 barebox 的開發相對簡單。此外,barebox 亦提供有和編譯 Linux Kernel 使用 的 menuconfig 相同的介面,開發者可以快快樂樂的使用 menuconfig 來配置你的 barebox,而不需要像配置 uboot 那樣還要修改許多麻煩的巨集。 本文描述如何編譯以及讓你的 Raspberry Pi 一開機就進入到 barebox 環境, 以實務上而言並沒有多大用處 ...
閱讀全文 »

有些時候我們切換到 console 下操作,想要快速切換目前的資料夾到 emacs 正在編 輯的文件所在的資料夾,你可以將以下程式加入到你的 ~/.bashrc alias jm='cd $(emacsclient -e "(with-current-buffer (window-buffer (frame-selected-window)) default-directory)" | '"sed -E 's/(^\")|(\"$)//g')" 這樣一來,當你身處在 bash 下的時候,使用 jm 就 ...
閱讀全文 »