淺談 emacs25 的 dynamic modules 功能

emacs 預計在 emacs 25 加入 的功能,透過這個功能我們可以使用 C/C++ 等語言將你的 emacs-lisp 函式變成改寫成如同 builtin 的模組,來提升 emacs-lisp 執行速度或是讓 emacs-lisp 可以與外部函式庫互動。 在本篇文章中,我將稍微講解自己測試 dynamic modules 的心得。

閱讀全文 »

在 emacs 下使用 mu4e 收發郵件

最近又重新改寫了我的 emacs 設定,捨棄掉了 spacemacs 並重新使用 org-mode 撰寫,你可以在 這裡 看到我目前的設定。 既然剛好重寫,就順便紀錄一下如何在 emacs 下進行郵件的收發,在 emacs 下我們有很多種收發電子郵件的選擇,比如 gnus 、wanderlust ,本文要說的是另外一個很多人在用並且比較好設定的 mu4e。

閱讀全文 »

在 clojure 下使用 JLine 2.x 實現互動式命令

GNU Readline Library 在 Linux 下是一個很常用的函式庫,在許多需要互動的指令程式上 很常見到其蹤影,最經典的莫過於 shell 了。我們在 shell 輸入資訊、使用上下鍵切換歷 史紀錄、按 進行自動補全等功能,實際上都是使用到了 readline 函式庫, 在 Clojure 中,若我們想要製作類似 GNU Readline 那樣的功能,我們可以透過 JNA/JNI 等方式來讀取 readline 函式庫,或者是找其他實現。 在本篇文章中,我選用了 JLine 2.x 來作為 readline 函式庫的替代。JLine 2.x 是一個 開源並使用 Modified BSD License 授權的純 Java 實現的函式庫,他提供了許多與 GNU Readline 類似的功能,是用來實現互動式命令很方便的工具。

閱讀全文 »

使用 clojure 和 JavaFX WebView 來打造桌面程式

在 使用 clojurescript 和 electron 來打造桌面程式 一文中我們說到了如何使用 electron 搭配 clojurescript 達到在 Node.js 平台使用 HTML 5 來打造桌面程式的方法, 這一次則是來談談如何使用 Clojure 搭配 JavaFX WebView 辦到類似的事情。 JavaFX 是目前 Java 發展的重點項目,自 Java 8 後已經整合進 JRE 裡面,在其中最吸引 我的就是 WebView 組件了,該組件實際上就是一個 WebKit 瀏覽器,既然 Java 8 已經塞 入了 Webkit 支援,也就是說我們可以用寫網頁的方式來建立我...

閱讀全文 »

COSCUP 2013 \"Org-Mode - emacs 下的瑞士軍刀\" 投影片

Org-Mode - emacs 下的瑞士軍刀 是我在 COSCUP 2013 以 emacs.tw 社群 身份所做的演講,講述了 org-mode 這個現在 emacs 慣用者無法脫離的必備程式。 org-mode 使用 純文字檔案 實現 時間管理 、 記事 、 文檔輸出 等功 能,即使不是 emacs 使用者在使用後也能夠感受到其強大的威力,對我個人而言, 最喜歡的就是他的文檔輸出功能。 以往要產生 PDF 檔案,不是使用 Office 軟體 (Microsoft Office、 LibreOffice),就是要使用 LaTeX 來撰寫,前者排版需要對軟體具有一定的熟練 度,後者則是要先痛...

閱讀全文 »

在 emacs 中使用 EasyPG 加密文章

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

閱讀全文 »

讓 Clojurescript 使用 node.js 的外部函式庫,以 tty.js 為例

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

閱讀全文 »

使用 ClojureScript 來寫 node.js 程式

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

閱讀全文 »

在 emacs 下使用 json.el 來讀取 JSON 資料

JSON (JavaScript Object Notation) 是一種輕量級的資料交換語言。隨著 web 變得越來越重要以及 node.js 的興起,JSON 已經變成現在非常重要的資料格 式了。 JSON 格式到底有什麼好的呢?這要從 XML 開始說起了,在 XML 當中對於資 料會寫成以下的形式 或是 你也可以寫成這樣 當然你也可以寫成其他你喜歡的 XML 格式。如果我們將這樣的資料轉換成 JSON 格式的話,則會變成這樣 有沒有注意到原本很複雜的資料格式,突然變成清爽多了? 若你有興趣想更加理解 JSON 格式,可以參考: 你不可不知的 JSON 基本介紹 使用 json.el em...

閱讀全文 »