跳至正文

Yen-Chin, Lee

關於 Emacs、Clojure、Linux 與開發工具的筆記。

coldnew's blog

自己的 iPhone 電源座自己印 2

這是另外一個我想要的 iPhone 6 電源座,取自於 Thingverse - iPhone 6 Dock 這個模型。 雖然這個模型比較適合不裝保護套的 iPhone,不過在裝上 Lightning 線上去時進行一些調 整,還是可以用於 0.3mm 的保護套上。 成品圖如下: 正面照 + iPhone 正面照 背面照 這模型有提供合適大小的孔洞讓你把 Lightning 線塞到裡面,我是接上電腦確定 iPhone 有 充到電源後,再使用 熱融膠 將後面給黏住。 我的列印資訊 我習慣使用 slic3r 來作為切割軟體,以下是我設定參數資訊 | Parameter | value | | ---…

閱讀全文 »

Project Euler 練習

Project Euler 是一個很不錯的程式練習網站,和 LeetCode 相比起來,Project Euler 的 題目比較偏向數學,也就是只要你數學不錯,用紙筆也是可以進行解題。對於工程師來說, 數學的磨練是不可以停止的,因此我重新紀錄我解 Project Euler 題目的經過。 在這邊我使用 Clojure 來進行解題,你可以在 這裡 找到完整程式碼,大部分的程式都盡 可能用 函數式 的方式來解決。 001: Multiples of 3 and 5 If we list all the natural numbers below 10 that are multiples of 3…

閱讀全文 »

在 clojure 中使用 OpenCV 3.x

OpenCV 是一套非常強大且好用的影像處理函式庫,一開始使用 C 語言來進行開發,後來移 植到 C++ 上面,並提供了 Python 的綁定。自 2.4 版本後,OpenCV 開始提供了 JAVA 的 wrpaaer,也因此使用 JAVA 或是 Clojure 的人都可以輕鬆愉快的使用 OpenCV 了。 本文將簡單介紹如何在 Clojure 下寫 OpenCV 的程式,而 OpenCV 的程式教學則在以後 (或遙遠的未來) 再來寫 :) OpenCV 3.0 和 OpenCV 2.x 的 Java 版本有一些不同,3.0 拿掉了以往可以直接透過 imshow 進行顯示的功能,因此你必須將圖…

閱讀全文 »

qpm - Qt 下的套件管理程式

一直以來,我的 Qt 程式如果需要第三方的模組,通常都是使用 git submodule 去將他加 入到我的專案來,但是這樣總是缺少了一些彈性,畢竟蠻多人不太會用 git 的 submodule 功能 :( 。 qpm 是一個類似 node.js 的 npm 的套件管理程式,透過他可以讓你安裝第三方的 Qt 模組 就像開發 node.js 程式那樣方便,當你使用 qpm 安裝新的模組時,他下載的是 程式碼 ,因此你可以確保你的程式編譯出來可以完整相容第三方套件,而不會有因為 API 改變而 導致程式掛掉的問題。 讓我們來開始使用 qpm 吧 :) 安裝 qpm 如果你是 Windows、Mac…

閱讀全文 »

在 clojurescript 下使用 readline 實現互動式命令 - Node.js 篇

在 在 clojure 下使用 JLine 2.x 實現互動式命令 一文中我們提到了如何在 clojure 實 現像 bash 那樣的互動式命令,這次來談談如何在 clojurescript 與 node.js 中辦到相同 的事情。 node.js 本身已經提供了 readline 模組,該模組雖然功能不如 JLine 2.x 完整,但是實 作一個簡單的互動式命令已經非常足夠,本文將講解如何在 clojurescript 下使用 node.js 的 readline 模組。 建立我們的專案 首先我們使用 lein 建立我們的專案,專案名稱為 readline : 專案建立完成後,我們要稍微修改…

閱讀全文 »

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

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

閱讀全文 »

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

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

閱讀全文 »

使用 clojurescript 和 electron 來打造桌面程式

最近在研究自幹自己的 emacs,於是瞄上了 Electron 。Electron 原名為 Atom-Shell, 也就是 GitHub 開發的 ATOM 編輯器使用的 UI 介面端。Electron 和 NW.js (node-webkit) 一樣是從 Chromium 改過來的,不過目前看起來發展性比較好 (個人觀點), 如果想要使用 node.js 去製作桌面版的圖形介面程式,Electron 和 NW.js 皆是很好的進 入點。 當然,如果你想知道 electron 和 nw.js 的差異,可以參考這篇文章: Technical Differences Between Electron…

閱讀全文 »

使用 Busybox 建立 RISC-V 的迷你系統

在 RISC-V 初探 一文中我們講到了如何使用 riscv-poky 去產生你的 RISC-V 系統,那如 果我們不想要透過 Yocto 去建立我們的 RISC-V Linux 系統,這樣子要怎樣建立迷你的系 統呢? 答案就是 Busybox 。 Busybox 是一個非常有趣的程式,舉凡我們在 Linux 下最常用的命令如 ls、cd 等到 sed、 vi 他都具有相對應的簡單實現,此外,這些命令實際上都只是一個軟連結 (symlink) 連結 到名為 busybox 的執行檔,也就是說,如果我們將 busybox 進行靜態編譯 (static link), 則製作出來的系統整體大小大約為…

閱讀全文 »

RISC-V 初探

在現在的世界,如果要講到指令集架構(ISA),腦海中第一個想到的不是 x86 就是 ARM 或 者 MIPS,然而如果想要自己製作一個 CPU 來玩,如果不透過現有的指令集的話,要從 CPU 打造到編譯器的撰寫、Linux 的移植又會花費大量的時間,有沒有一個現成且不需要商業授 權的指令集可以直接套用呢?有,那就是 RISC-V。 RISC-V (發音為: risk-five) 是由 UC Berkeley 所發展的開源 ISA,具有大約 100 個 指令,並且提供 16、32、64、128 等多種記憶體定址方式,更酷的事情是,RISC-V 已經具 有 Linux、GCC、LLVM、Yocto…

閱讀全文 »
© 2012–2026 Yen-Chin, LeeRSSPowered by Astro