在 Android Things 學習筆記: Raspberry Pi 3 安裝 OS 一文中我們搞定了 Android Things 在 Raspberry Pi 3 上的安裝,終於可以開始來寫我們的程式了。 這邊文章讓我們來小試身手,透過 GPIO 的輸出來控制外接於 Raspberry Pi 3 上的 LED 燈。 使用設備 要完成本篇文章所描述的部份,你需要以下幾種器材 * Raspberry Pi 3 * LED (紅) * 電阻 (150 Ω, 1/4W) * 麵包板 * 單蕊線或跳線 硬體線路 下面的硬體線路使用 Fritzing 軟體來繪製,我選用 來當作提供給 LED 的電源...
Android Things 學習筆記: Raspberry Pi 3 安裝 OS
在 Android Things 學習筆記: 介紹 一文我們介紹了 Android Things ,在我們正式開始開發我們的程式之前,我們先將手邊的 Raspberry Pi 3 Model B 裝上可以用 Android Things 的映像檔案吧。 Android Things 的網頁有針對 Raspberry Pi 3 Model B 的 Getting Started 頁面,就讓我們從這一頁開始我們的 Android Things 旅程吧。 下載映像檔 首先到 System Image Downloads 去下載 Raspberry Pi 3 Model B 的映像檔案,接著將其解壓縮...
Android Things 學習筆記: 介紹
最近打算稍微了解一下 Google 在推的 Android Things ,這是一套以 Android 為基礎改製而成的作業系統,目的在於用於現在很夯的物聯網(Internet of Things, IoT) 上。 關於 Android Things Android Things 前身為 Google 的 Brillo 專案 ,在約 2016 年底改名為 Android Things 。這東西到底是什麼? 簡單的來說,隨著 Android 的普及,會使用 Java 寫 Android app 的人越來越多, Android Things 就是為了這些開發者存在的物連網系統,就如網頁的豪語: I...
Unknown perls from the Clojure standard library 筆記
看完 ClojuTRE 2015 的 Unknown pearls from the Clojure standard library - Renzo Borgatti 演講後,來紀錄個筆記。 這場演講介紹了一些在 clojure.core 裡面的函式,這些函式平常可能不太有機會用到,但是可以協助我們除錯程式的問題。 投影片: 下載連結 destructure destructure (解構) 在 Clojure 裡面是個非常實用的功能,可以方便我們對資料直接指派變數去代替它,如下: No destructuring With destructuring 我們可以透過 destructure ...
使用 Clojure 擷取台灣銀行牌告匯率
最近開始在看理財相關的資訊,畢竟錢一直存著也只是存著,剛好看到了 台灣銀行牌告匯率 的訊息,就讓我們用 Clojure 來寫一個 parser 將這個 HTML 網頁轉換成 Clojure 常用的 edn 格式吧。 本文將簡述如何透過 clj-http 取得 台灣銀行牌告匯率 資訊後,再使用 hickory 對取得網頁的資料進行處理,最後回傳 edn 格式好方便我們未來的 Clojure 程式可以對這些訊息進行處理。 設定我們的目標 在開始寫程式前,先來確立我們的目標。我們希望取得 台灣銀行牌告匯率 的資訊,並將下圖裡面的資料轉換成 Clojure 的 edn 格式。 !img 因此最後我們希...
使用 codox 與 CircleCI 建立 Clojure 專案的文檔
在 Clojure 世界中,常用的產生文檔工具有 Marginalia 以及 Codox。 本文將講述如何透過 Codox 以及 Circle CI 來對你的函式庫進行測試以及產生文檔並發佈到 GitHub pages 去。 當然,為了便於描述,我們一樣從專案的建立開始來講 codox 的使用。 建立我們的專案 首先我們先透過 leinigen 產生我們 Clojure 專案的基本樣板,這邊命名該專案為 專案建立完成後,我們要稍微修改一下 project.clj ,在 欄位加上 lein-codox, 這會讓我們多一個 命令可以用來產生文檔。 如果你希望你產生的文檔,可以連接到 Github ...
淺談 emacs25 的 dynamic modules 功能
emacs 預計在 emacs 25 加入 的功能,透過這個功能我們可以使用 C/C++ 等語言將你的 emacs-lisp 函式變成改寫成如同 builtin 的模組,來提升 emacs-lisp 執行速度或是讓 emacs-lisp 可以與外部函式庫互動。 在本篇文章中,我將稍微講解自己測試 dynamic modules 的心得。 dynamic modules 功能處於測試階段,由於此功能可能在未來有進行不同的更動,因此預設 編譯時這選項 () 是關閉的。 編譯 emacs 目前 功能已經併入到 master branch, 因此只要下載 master branch 即可測試。 當然,...
在 emacs 下使用 mu4e 收發郵件
最近又重新改寫了我的 emacs 設定,捨棄掉了 spacemacs 並重新使用 org-mode 撰寫,你可以在 這裡 看到我目前的設定。 既然剛好重寫,就順便紀錄一下如何在 emacs 下進行郵件的收發,在 emacs 下我們有很多種收發電子郵件的選擇,比如 gnus 、wanderlust ,本文要說的是另外一個很多人在用並且比較好設定的 mu4e。 安裝 mu4e mu4e 實際上是 mu 的 emacs 客戶端,因此我們真正要安裝的是 mu 這套軟體。 在 Mac OSX 中可以透過 homebrew 完成這件事情 由於 homebrew 安裝的東西不會在 emacs 的 中,因此別...
在 emacs 下使用 verify-url 檢查不存在的 URL
在寫文章的時候,常常需要插入一些網頁連結,有時候手誤或是連結已經年久失修,這時候 就需要個好方式來幫忙進行檢查,verify-url 就是一個在 emacs 下幫忙檢查不存在的 URL 的好工具。 安裝 verify-url 自從 emacs 整合了 package.el 後,安裝新的套件都非常輕鬆,你可以直接透過以下命令 來安裝 如果你有使用 Cask 作為 emacs-lisp 開發工具,則可以在你的 檔案加入: 如何使用 verify-url 安裝完後,我們可以用弄個非常簡單的範例來測試,假設我們正在編輯的文件有以下內 容: 接下來輸入 你就會看到有問題的 URL 被上色了: !img ...
在 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 ...